diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index dc5f9014..73fc1ace 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -9,4 +9,4 @@ community_bridge: # Replace with a single Community Bridge project-name e.g., cl liberapay: # Replace with a single Liberapay username issuehunt: # Replace with a single IssueHunt username otechie: # Replace with a single Otechie username -custom: paypal.me/iqoptionapi +custom: https://streamelements.com/iqoptionapi/tip # Replace with a single Otechie username diff --git a/.github/ISSUE_TEMPLATE/-bug-report----short-description.md b/.github/ISSUE_TEMPLATE/-bug-report----short-description.md new file mode 100644 index 00000000..5557cd3f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/-bug-report----short-description.md @@ -0,0 +1,28 @@ +--- +name: "[Bug report] - short description" +about: Create a report to help us improve +title: '' +labels: ANALYSE +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md new file mode 100644 index 00000000..5caec9b6 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -0,0 +1,28 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: ANALYSE +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + + +**Additional context** +Add any other context about the problem here. diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000..f28fcf6f --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,24 @@ +## Issue Description + +describe Which issue is and how can I reproduce this issue on current environment. + +You can also attach video, screenshots or both. + +## Proposed Change + +Don't put many issues grouped here if is not related. + +Make it easy to code review + +- change 1 +- change 2 + +## Tested code evidence + +video or screenshot with fixed is running + +## How to test code + +details how can anyone can test to see if issue is fixed. + +Detail like if your grandpa was testing it diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 00000000..309dc5dc --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,43 @@ +name: Test + +on: + pull_request: {} + push: + branches: master + tags: "*" + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Setup Python + uses: actions/setup-python@v1 + with: + python-version: 3.9 + + - uses: actions/cache@v2 + id: cache-it + with: + path: | + .venv + key: ${{ runner.os }}-venv-${{ hashFiles('**/Pipefile') }} + restore-keys: | + ${{ runner.os }}-venv + + - name: Install pipenv + run: | + pip install pipenv + + - name: Install dependencies + if: steps.cache-it.outputs.cache-hit != 'true' + run: pipenv install --deploy --dev + +# - run: pipenv run pylint iqoptionapi +# - run: pipenv run isort --recursive --diff . +# - run: pipenv run black --check . +# - run: pipenv run flake8 +# - run: pipenv run mypy +# - run: pipenv run pytest --cov --cov-fail-under=100 + diff --git a/.gitignore b/.gitignore index 43f44683..e414b5ec 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,5 @@ dist/ .vscode/ /.vs venv/ +.idea +test.py diff --git a/Pipfile b/Pipfile new file mode 100644 index 00000000..fdfb1780 --- /dev/null +++ b/Pipfile @@ -0,0 +1,26 @@ +[[source]] +url = "https://pypi.org/simple" +verify_ssl = true +name = "pypi" + +[packages] +requests = "*" +websocket_client = "==0.56" + +[dev-packages] +pylint = "*" +black = "==20.8b1" +flake8 = "*" +isort = "*" +mypy = "*" +pre-commit = "*" +pytest = "*" +pytest-cov = "*" +snakeviz = "*" + + +[requires] +python_version = "3.9" + +[scripts] +test = "sh -c 'isort iqoptionapi && black iqoptionapi && flake8 --exclude .venv && mypy --ignore-missing-imports && pytest'" diff --git a/README.md b/README.md index 32049d96..3cf4e9a6 100644 --- a/README.md +++ b/README.md @@ -1,158 +1,181 @@ +## AJUDE A MANTER O PROJETO ATIVO +EN: HELP KEEPING THIS PROJECT ACTIVE
-# IQ Option API +Para manter o projeto continuamente atualizado contribua com uma doação, com alguma correção ou melhoria. -## How to contribute: +As doações serão usadas para adicionar novas features citadas abaixo. -Fork this project. +https://streamelements.com/iqoptionapi/tip +

+## Español - AYUDA A MANTENER ESTE PROYECTO ACTIVO +Para mantener el proyecto continuamente actualizado, contribuye con una donación, con cualquier corrección o mejora. -Clone your project. +Las donaciones se utilizarán para agregar nuevas funciones que se mencionan a continuación. -Remove default remote -``` -git remote remove origin -``` -Register in your local project the following remote: +EN: To keep the project continuously updated you can contribute with a donation or with some correction or improvement. -pull remote should be my repository -``` -git remote add origin git@github.com:evecimar/iqoptionapi.git -``` -push remote should be your repository -``` -git remote set-url --push origin git@github.com:your_repository/iqoptionapi.git -``` +https://streamelements.com/iqoptionapi/tip +

-Set like a default repository +## HELP KEEPING THIS PROJECT ACTIVE -``` -git branch --set-upstream-to=origin/master master -``` -make a pull request to send me your contribution +To keep project continuously updated, contribute with a donation, with any correction or improvement. -[![Build Status](https://travis-ci.org/Lu-Yi-Hsun/iqoptionapi.svg?branch=master)](https://travis-ci.org/Lu-Yi-Hsun/iqoptionapi) -[![cover](https://codecov.io/gh/Lu-Yi-Hsun/iqoptionapi/branch/master/graphs/badge.svg?branch=master)](https://codecov.io/gh/Lu-Yi-Hsun/iqoptionapi) +Donations will be used to add new features mentioned below. -[![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.me/iqoptionapi) +https://streamelements.com/iqoptionapi/tip +

-## last update:2020/02/29 +## PLANEJAMENTO DE NOVAS FEATURES +EN: NEW FEATURES PLANNING
+ES: PLANIFICACIÓN DE NUEVAS CARACTERÍSTICAS -### Version: 5.1.1 -#### fix change_balance +- CALENDARIO ECONOMICO / ECONOMIC CALENDAR (UNDER DEVELOPMENT) +

+Descrição: +Pega o calendario econimico da iqoption. +Essa feature vai possibilitar que vocês possar evitar fazer operações quando estiver muito arriscado. +

-```python -from iqoptionapi.stable_api import IQ_Option -email = "your@mail.ocm" -password = "your_password" -account_mode = "real" # real/practic +![ECONOMIC CALENDAR](image/econimic_calendar.png) +
-I_want_money = IQ_Option(email,password, account_mode) +- FEED DE NOTICIAS/ NEWS FEED +

+Descrição: +Noticias sobre o mercado +![NEWS FEED](image/news_feed.png) +

-balance_id = I_want_money.change_balance("practic") +## IQOPTION API SUPPORTED BY COMMUNITY -``` -#### Add option balance_mode on create IQ_Option objetct. +This api is intended to be an open source project to communicate with iqOption site. +this is a no official repository, it means it is maintained by community -```python -from iqoptionapi.stable_api import IQ_Option -email = "your@mail.ocm" -password = "your_password" -account_mode = "real" # real/practic +Esta API é destinada a ser um projeto de código aberto para se comunicar com o site da iqOption. +este é um repositório não oficial, significa que é mantido pela comunidade -I_want_money = IQ_Option(email,password, account_mode) +Esta API está destinada a ser un proyecto de código abierto para comunicarse con el sitio de IqIoption. +este es un repositorio no oficial, significa que es mantenido por la comunidad -``` -last update:2019/11/22 +### IMPORTANT NOTE / NOTA IMPORTANTE -Version:5.1 -add[get_option_open_by_other_pc](#getoptionopenbyotherpc) api +Due to the large amount of scammers that have appeared in the market, it is recommended that you DO NOT enter your password into an unknown exe or robot site that operates on iqoption because many of those have stolen people's passwords so be careful. It's best if you develop your robot or hire someone you trust. +Devido a grande quantidade de golpistas que tem aparecido no mercado, recomenda-se que você NÃO inserir sua senha em exe ou sites de robo desconhecidos que opera na iqoption porque muitos desses tem roubado as senhas das pessoas então tomem cuidado. O melhor é você desenvolver seu robo ou contratar alguem de confiança. -Version:5.0 +### Canal no youtube explicando com trabalhar com a api -please donate >< get_digital_spot_profit_after_sale pay me lot of time +Kodandao com Faria -https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/125 +https://www.youtube.com/channel/UCetDOTbLD_gCy0aI4aQwMsg -add [get_digital_spot_profit_after_sale](#getdigitalspotprofitaftersale) api +
+

Idiomas | Languages

+ + Português + + + Espanol + + + English + +


-Version:4.5 +This api is based on [Lu-Yi-Hsun](https://github.com/Lu-Yi-Hsun/iqoptionapi/) -add [get_remaning](#getremaning) api +Thanks also for [this version](https://github.com/evecimar/iqoptionapi) he fixed some bugs. -Version:4.4 - -fix check_win_digital(check_win_digital(Synchronous message) and check_win_digital_v2(Asynchronous messages) are different implement way) - -add get_digital_position() +It was not been updated by him. +So I decided to study and do this work. +I don't know how all works yet but I'll learn and teach you -Version:4.3 +## Summary -add subscribe_top_assets_updated & popularity -https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/131 +- [Contribute with Community](#contribe) +- [Python version 3.7](#pythonversion) +- [How to start](#howtostart) +- [How to get Technical Indicators](#technicalindicators) -Version:4.2 +## Live documentation -add reconnect sample -add get_async_order api +[documentation](https://iqoptionapi.github.io/iqoptionapi/) -Version:4.0.1 +
-fix get_positions() -https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/132 +## Contribute with Community -add get_optioninfo_v2 +Help me to keep this project working. Open relevant issues and give a hand to fix the bug. +I'll start a channel on youtube in future as soon as possible to share how I'm working with this project. +The channel will be in portuguese but you can help with subtitles. +I'll do lives on twitch to work together with you. And if you enjoy it and could contribute with any donation it will be welcome. -Version:4.0.0 +If something is not clear on documentation let me know and I'll try to explain what I know. -:exclamation::exclamation::exclamation: -update websocket-client==0.56 -:exclamation: -please uninstall all websocket-client and update up websocket-client==0.56 -``` -sudo pip uninstall websocket-client -sudo pip install websocket-client==0.56 -``` -:exclamation: +Please send me suggestions ... feedbacks are welcome ---- -## About API +
+ +### PYTHON VERSION + +I'm using this tools anaconda with python 3.7 with contains a lot of libs pre-installed -only support US Dollar account +
-https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/73#issue-406537365 +## How to start + +You must have python installed version 3.7 or higher + +then you must have websocket-client installed on your project ```python -#hight level api ,This api is write base on ""iqoptionapi.api" for more easy +pip install websocket-client==0.56 +``` + +Now you can install this project as library: + +```bash +sudo pip install -U git+git://github.com/iqoptionapi/iqoptionapi.git + +OR + +pip install -U https://github.com/iqoptionapi/iqoptionapi/archive/refs/heads/master.zip +``` + +```Python +# Alto Nivel from iqoptionapi.stable_api import IQ_Option -#low level api + +# Baixo Nivel from iqoptionapi.api import IQOptionAPI ``` + ```bash . ├── docs -├── iqoptionapi(API code) -    ├── http(doing http get/post) +├── iqoptionapi(Código da API) +    ├── http(Realiza requisições HTTP GET/POST)    └── ws    ├── chanels(Doing websocket action)    └── objects(Get back data from websocket action) ``` - - - ## Can not loging problem -#### fix way 1 +#### fix way 1 + ```bash sudo pip3 uninstall websocket-client sudo pip3 install websocket-client==0.56 ``` - - ### problem 2 #### websocket conflict with websocket-client @@ -162,6 +185,7 @@ if you have this problem https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/66 fix way + ```bash sudo pip3 uninstall websocket sudo pip3 install websocket-client==0.47.0 @@ -169,43 +193,44 @@ sudo pip3 install websocket-client==0.47.0 --- -## Installation & GET new version -For Python3 -```bash -sudo pip3 install -U git+git://github.com/Lu-Yi-Hsun/iqoptionapi.git -``` -For Python2 -```bash -sudo pip2 install -U git+git://github.com/Lu-Yi-Hsun/iqoptionapi.git -``` ---- ## Littile sample + ```python import time from iqoptionapi.stable_api import IQ_Option -I_want_money=IQ_Option("email","password") +Iq=IQ_Option("email","password") goal="EURUSD" print("get candles") -print(I_want_money.get_candles(goal,60,111,time.time())) +print(Iq.get_candles(goal,60,111,time.time())) ``` --- -## Document +## Funções e exemplos + +### Import -### Import ```python from iqoptionapi.stable_api import IQ_Option ``` + --- + ### Debug mode on +### Debug + +Ligado + ```python import logging logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') ``` + --- + ### Login + !!! Login NOT support SMS Authorization yet @@ -214,89 +239,168 @@ I suggest close it because your robot will stop to wait you to check sms code (o !!! +Desligado + ```python -I_want_money=IQ_Option("email","password") +Iq=IQ_Option("email","password") ``` --- + ### set_max_reconnect + default number is 5 https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/22 -Protect if you get some error (iqoptionapi auto reconnect) too many time,IQoption will ban your IP +## Como realizar login +```python +from iqoptionapi.stable_api import IQ_Option + +API = IQ_Option("email", "senha") ``` -I_want_money.set_max_reconnect(number) -``` + +Iq.set_max_reconnect(number) + +```` --- + ### Reconnect&check connect -some time connect will close so this way can check connect and reconnect -try close your network and restart network in this sample +### Reconectar e checar se está conectado + +Caso ocorra algum erro e a conexão com a IQ seja perdida, você pode estar implementando isto ```python from iqoptionapi.stable_api import IQ_Option -import logging import time logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') -I_want_money=IQ_Option("email","password") -I_want_money.set_max_reconnect(-1)#allow unlimited reconnect +Iq=IQ_Option("email","password") +Iq.set_max_reconnect(-1)#allow unlimited reconnect while True: #you can !!close yuor network!! to simulation network fails - if I_want_money.check_connect()==False:#detect the websocket is close + if Iq.check_connect()==False:#detect the websocket is close print("try reconnect") - I_want_money.connect()#try to connect + Iq.connect()#try to connect print("reconnect Success") time.sleep(1) -``` +```` - - --- -### Check version + +## Como realizar login com 2 fatores ```python from iqoptionapi.stable_api import IQ_Option -print(IQ_Option.__version__) + +print("Conectando...") +api = IQ_Option("email", "password") +status, reason = api.connect() +print('##### Primeira tentativa #####') +print('Status:', status) +print('Reason:', reason) +print("Email:", api.email) + +if reason == "2FA": + print('##### 2FA HABILITADO #####') + print("Um sms foi enviado com um código para seu número") + + code_sms = input("Digite o código recebido: ") + status, reason = api.connect_2fa(code_sms) + + print('##### Segunda tentativa #####') + print('Status:', status) + print('Reason:', reason) + print("Email:", api.email) + +print("Banca:", api.get_balance()) +print("##############################") ``` + +### Check version + +### Tipo de conta e banca + +#### Retornar sua banca com get_balance() + +```python +API.get_balance() +``` + ### Check connect -return True/False +#### Resetar conta de TREINAMENTO (10k) + +Função para resetar a conta de treinamento(depositar os 10k de testes) ```python -print(I_want_money.check_connect()) +print(Iq.check_connect()) ``` ### Reconnect + ```python -I_want_money.connect() +Iq.connect() ``` + +### Nova função de captura payout digital + --- -### Check Asset if open or not +```python +active = 'EURUSD' +payout = Iq.get_digital_payout(active) +print(payout) +``` -:exclamation:be careful get_all_open_time() is very heavy for network. +--- -get_all_open_time() return the DICT +### Nova função de abertura de ordem na digital + +--- + +```python +active = 'EURUSD' +amount = 100.0 +action = 'CALL' +duration = 1 +status, order_id = Iq.buy_digital_spot_v2(active, amount, action, duration) +print(status, order_id) +``` + +--- + +```python +active = 'EURUSD' +payout = Iq.get_digital_payout(active) +print(payout) +``` + +--- -"cfd" is include Stock,Commodities,ETFs asset +### Retornar ativos e verificar se estão aberto -DICT["forex"/"cfd"/"crypto"/"digital"/"turbo"/"binary"][Asset Name]["open"] +ATENÇÃO: Tome cuidado, get_all_open_time() é pesado para a internet + +- Função get_all_open_time() retorna um DICT +- "cfd" inclue ações,Commodities e ativos de ETFs + +DICT["forex"/"cfd"/"crypto"/"digital"/"turbo"/"binary"][asset name]["open"] it will return True/False - + ```python from iqoptionapi.stable_api import IQ_Option import logging import random logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') -I_want_money=IQ_Option("email","password") -ALL_Asset=I_want_money.get_all_open_time() +Iq=IQ_Option("email","password") +ALL_Asset=Iq.get_all_open_time() #check if open or not -print(ALL_Asset["forex"]["EURUSD"]["open"]) +print(ALL_Asset["forex"]["EURUSD"]["open"]) print(ALL_Asset["cfd"]["FACEBOOK"]["open"])#Stock,Commodities,ETFs print(ALL_Asset["crypto"]["BTCUSD-L"]["open"]) print(ALL_Asset["digital"]["EURUSD-OTC"]["open"]) @@ -305,357 +409,418 @@ print(ALL_Asset["digital"]["EURUSD-OTC"]["open"]) print(ALL_Asset["turbo"]["EURUSD-OTC"]["open"]) print(ALL_Asset["binary"]["EURUSD-OTC"]["open"]) +ATIVOS = API.get_all_open_time() -#!!!! exception "" -print(ALL_Asset["binary"]["not exist asset"]["open"])#it will return "{}" a None of the dict +#Checando se está aberto ou não +print(ATIVOS["forex"]["EURUSD"]["open"]) +print(ATIVOS["cfd"]["FACEBOOK"]["open"]) #Ações,Commodities e ETFs +print(ATIVOS["crypto"]["BTCUSD-L"]["open"]) +print(ATIVOS["digital"]["EURUSD-OTC"]["open"]) -#!!!!print all!!!! -for type_name, data in ALL_Asset.items(): - for Asset,value in data.items(): - print(type_name,Asset,value["open"]) +#Binarias tem dois modos diferentes: "turbo" e "binary" +print(ALL_Asset["turbo"]["EURUSD-OTC"]["open"]) +print(ALL_Asset["binary"]["EURUSD-OTC"]["open"]) ``` ### View all ACTIVES Name + you will get right all ACTIVES and code [ACTIVES](iqoptionapi/constants.py) +Para exibir todas os ativos + ```python -print(I_want_money.get_all_ACTIVES_OPCODE()) +print(Iq.get_all_ACTIVES_OPCODE()) ``` +for tipo, data in ATIVOS.items(): +for ativo_nome,value in data.items(): +print(tipo,ativo_nome,value["open"]) + +```` --- -### For all +### Ver o nome e ID de todos os ativos +- [Arquivo com lista de ativos e id's](iqoptionapi/constants.py) -this api can work for option&digital&Forex&Stock&Commodities&Crypto&ETFs +```python +print(API.get_all_ACTIVES_OPCODE()) +```` -#### get_async_order +--- -get the order data by id +get the order data by id ```python from iqoptionapi.stable_api import IQ_Option -import logging import time #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') -I_want_money=IQ_Option("email","password") - +Iq=IQ_Option("email","password") + ACTIVES="EURUSD" duration=1#minute 1 or 5 amount=1 action="call"#put print("__For_Binary_Option__") -_,id=I_want_money.buy(amount,ACTIVES,action,duration) -while I_want_money.get_async_order(id)==None: +_,id=Iq.buy(amount,ACTIVES,action,duration) +while Iq.get_async_order(id)==None: pass -print(I_want_money.get_async_order(id)) +print(Iq.get_async_order(id)) print("\n\n") print("__For_Digital_Option__spot") -id=I_want_money.buy_digital_spot(ACTIVES,amount,action,duration) -while I_want_money.get_async_order(id)==None: +id=Iq.buy_digital_spot(ACTIVES,amount,action,duration) +while Iq.get_async_order(id)==None: pass -order_data=I_want_money.get_async_order(id) -print(I_want_money.get_async_order(id)) +order_data=Iq.get_async_order(id) +print(Iq.get_async_order(id)) print("\n\n") +``` -print("__For_Forex_Stock_Commodities_Crypto_ETFs") +print("\_\_For_Forex_Stock_Commodities_Crypto_ETFs") instrument_type="crypto" instrument_id="BTCUSD" side="buy" amount=1.23 leverage=3 type="market" -limit_price=None -stop_price=None -stop_lose_kind="percent" -stop_lose_value=95 -take_profit_kind=None -take_profit_value=None -use_trail_stop=True -auto_margin_call=False -use_token_for_commission=False -check,id=I_want_money.buy_order(instrument_type=instrument_type, instrument_id=instrument_id, - side=side, amount=amount,leverage=leverage, - type=type,limit_price=limit_price, stop_price=stop_price, - stop_lose_value=stop_lose_value, stop_lose_kind=stop_lose_kind, - take_profit_value=take_profit_value, take_profit_kind=take_profit_kind, - use_trail_stop=use_trail_stop, auto_margin_call=auto_margin_call, - use_token_for_commission=use_token_for_commission) -while I_want_money.get_async_order(id)==None: - pass -order_data=I_want_money.get_async_order(id) -print(I_want_money.get_async_order(id)) -``` - +limit_price=None +stop_price=None +stop_lose_kind="percent" +stop_lose_value=95 +take_profit_kind=None +take_profit_value=None +use_trail_stop=True +auto_margin_call=False +use_token_for_commission=False +check,id=Iq.buy_order(instrument_type=instrument_type, instrument_id=instrument_id, +side=side, amount=amount,leverage=leverage, +type=type,limit_price=limit_price, stop_price=stop_price, +stop_lose_value=stop_lose_value, stop_lose_kind=stop_lose_kind, +take_profit_value=take_profit_value, take_profit_kind=take_profit_kind, +use_trail_stop=use_trail_stop, auto_margin_call=auto_margin_call, +use_token_for_commission=use_token_for_commission) +while Iq.get_async_order(id)==None: +pass +order_data=Iq.get_async_order(id) +print(Iq.get_async_order(id)) + +```` ### For Options -#### BUY +```python +API.get_traders_mood(Paridade) + # Retorno: Sera do tipo float que representa em porcentagem os 'calls' + # Se você quiser saber a porcentagem de put, tente 100-API.get_traders_mood(Paridade) +```` Sample + ```python from iqoptionapi.stable_api import IQ_Option -import logging import time logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') -I_want_money=IQ_Option("email","pass") +Iq=IQ_Option("email","pass") goal="EURUSD" print("get candles") -print(I_want_money.get_candles(goal,60,111,time.time())) +print(Iq.get_candles(goal,60,111,time.time())) Money=1 ACTIVES="EURUSD" ACTION="call"#or "put" expirations_mode=1 -I_want_money.buy(Money,ACTIVES,ACTION,expirations_mode) +Iq.buy(Money,ACTIVES,ACTION,expirations_mode) ``` +Explicação + ```python -I_want_money.buy(Money,ACTIVES,ACTION,expirations) +Iq.buy(Money,ACTIVES,ACTION,expirations) #Money:How many you want to buy type(int) #ACTIVES:sample input "EURUSD" OR "EURGBP".... you can view by get_all_ACTIVES_OPCODE #ACTION:"call"/"put" type(str) #expirations:input minute,careful too large will false to buy(Closed market time)thank Darth-Carrotpie's code (int)https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/6 - #return:(None/id_number):if sucess return (id_number) esle return(None) 2.1.5 change this + #return:(None/id_number):if sucess return (id_number) esle return(None) 2.1.5 change this ``` + #### buy_multi Sample + ```python from iqoptionapi.stable_api import IQ_Option -I_want_money=IQ_Option("email","password") +Iq=IQ_Option("email","password") Money=[] ACTIVES=[] ACTION=[] expirations_mode=[] -Money.append(1) -ACTIVES.append("EURUSD") -ACTION.append("call")#put -expirations_mode.append(1) +Entrada.append(1) +Paridade.append("EURUSD") +Direcao.append("call") # ou put +Duracao.append(1) -Money.append(1) -ACTIVES.append("EURAUD") -ACTION.append("call")#put -expirations_mode.append(1) +Entrada.append(1) +Paridade.append("EURAUD") +Direcao.append("call")#put +Duracao.append(1) print("buy multi") -id_list=I_want_money.buy_multi(Money,ACTIVES,ACTION,expirations_mode) +id_list=Iq.buy_multi(Money,ACTIVES,ACTION,expirations_mode) print("check win only one id (id_list[0])") -print(I_want_money.check_win_v2(id_list[0])) +print(Iq.check_win_v2(id_list[0])) ``` -#### get_remaning +--- + +#### Tempo restante para operação com get_remaning() -purchase time=remaning time - 30 +Formula: tempo de compra = tempo restante - 30 ```python from iqoptionapi.stable_api import IQ_Option -I_want_money=IQ_Option("email","password") +Iq=IQ_Option("email","password") Money=1 ACTIVES="EURUSD" ACTION="call"#or "put" expirations_mode=1 while True: - remaning_time=I_want_money.get_remaning(expirations_mode) + remaning_time=Iq.get_remaning(expirations_mode) purchase_time=remaning_time-30 if purchase_time<4:#buy the binary option at purchase_time<4 - I_want_money.buy(Money,ACTIVES,ACTION,expirations_mode) + Iq.buy(Money,ACTIVES,ACTION,expirations_mode) break ``` -#### sell_option +#### Vender operação com sell_option() + +O ID('s) passados para o sell_option() devem ser int ou um list contendo os id's ```python -I_want_money.sell_option(sell_all)#input int or list +Iq.sell_option(sell_all)#input int or list ``` -Sample +Exemplo ```python from iqoptionapi.stable_api import IQ_Option import time print("login...") -I_want_money=IQ_Option("email","password") +Iq=IQ_Option("email","password") -Money=1 -ACTIVES="EURUSD" -ACTION="call"#or "put" -expirations_mode=1 +API = IQ_Option("email", "password") -id=I_want_money.buy(Money,ACTIVES,ACTION,expirations_mode) -id2=I_want_money.buy(Money,ACTIVES,ACTION,expirations_mode) +Entrada = 1 +Paridade = "EURUSD" +Direcao = "call" +Duracao = 1 + +id=Iq.buy(Money,ACTIVES,ACTION,expirations_mode) +id2=Iq.buy(Money,ACTIVES,ACTION,expirations_mode) time.sleep(5) + sell_all=[] sell_all.append(id) sell_all.append(id2) -print(I_want_money.sell_option(sell_all)) +print(Iq.sell_option(sell_all)) ``` + #### check win -(only for option) +print(API.sell_option(sell_all)) -It will do loop until get win or loose +```` -:exclamation: +#### Verificar resultado da operação nas **BINÁRIA** -it have a little problem when network close and reconnect miss get "listInfoData" +> As funções check_win() e check_win_v2() pararam de funcionar -this function will doing Infinity loop +Para pegarmos o resultado de uma operação feito na binarias, podemos estar utilizando o check_win_v3() ou o check_win_v4() + +###### check_win_v3() ```python -I_want_money.check_win(23243221) +Iq.check_win(23243221) #""you need to get id_number from buy function"" -#I_want_money.check_win(id_number) +#Iq.check_win(id_number) #this function will do loop check your bet until if win/equal/loose -``` +```` + ##### check_win_v2 -(only for option) +API = IQ_Option("email", "password") -more better way +Entrada = 1 +Paridade = "EURUSD" +Direcao = "call" +Duracao = 1 -an other way to fix that(implement by get_betinfo) +id = API.buy(Entrada, Paridade, Direcao, Duracao) -input by int +time.sleep(5) ```python -I_want_money.check_win_v2(23243221) +Iq.check_win_v2(23243221) #""you need to get id_number from buy function"" -#I_want_money.check_win_v2(id_number) +#Iq.check_win_v2(id_number) #this function will do loop check your bet until if win/equal/loose ``` --- + "get_binary_option_detail" and "get_all_profit" are base on "get_all_init()",if you want raw data you can call + ```python -I_want_money.get_all_init() +Iq.get_all_init() ``` --- - +### Dados brutos da **BINÁRIA** + +#### get_all_init() + +"get_binary_option_detail()" e "get_all_profit()" são baseados no "get_all_init()", para retornar os dados "brutos", você pode utilizar: + +Exemplo + +```python +from iqoptionapi.stable_api import IQ_Option + +API = IQ_Option("email", "password") + +print(API.get_all_init()) +``` ![](image/expiration_time.png) -#### get_binary_option_detail +#### get_binary_option_detail() + +sample -sample ```python from iqoptionapi.stable_api import IQ_Option print("login...") -I_want_money=IQ_Option("email","password") -d=I_want_money.get_binary_option_detail() +Iq=IQ_Option("email","password") +d=Iq.get_binary_option_detail() print(d["CADCHF"]["turbo"]) print(d["CADCHF"]["binary"]) ``` #### get all profit -sample + +sample + ```python from iqoptionapi.stable_api import IQ_Option print("login...") -I_want_money=IQ_Option("email","password") -d=I_want_money.get_all_profit() +Iq=IQ_Option("email","password") +d=Iq.get_all_profit() print(d["CADCHF"]["turbo"]) print(d["CADCHF"]["binary"]) ``` ---- -#### get_betinfo -(only for option) +--- -it will get infomation about Bet by "id" +#### get_betinfo -:exclamation: +Temos dois modos para fazer isto, para ambos precisamos indicar quantos 'trades' você quer retornar do histórico de trading ( apenas das binárias ) -if your bet(id) not have answer yet(game_state) or wrong id it will return False -input by int +###### get_optioninfo() ```python - -isSuccessful,dict=I_want_money.get_betinfo(4452272449) -#I_want_money.get_betinfo + +isSuccessful,dict=Iq.get_betinfo(4452272449) +#Iq.get_betinfo #INPUT: int #OUTPUT:isSuccessful,dict +print(API.get_optioninfo(10)) ``` + #### get_optioninfo -input how many data you want to get from Trading History(only for binary option) +###### get_optioninfo_v2() ``` -print(I_want_money.get_optioninfo(10)) +print(Iq.get_optioninfo(10)) ``` + #### get_optioninfo_v2 -input how many data you want to get from Trading History(only for binary option) +API = IQ_Option("email", "password") + +print(API.get_optioninfo_v2(10)) ``` -print(I_want_money.get_optioninfo_v2(10)) +print(Iq.get_optioninfo_v2(10)) ``` + #### get_option_open_by_other_pc -if your account is login in other plance/PC and doing buy option +#### Pegar opções feitas por outro dispositivo com get_option_open_by_other_pc() -you can get the option by this function +Se sua conta está logada em outro celular/PC e está realizando operações, você pode "pegar" a operação do modo abaixo ```python import time from iqoptionapi.stable_api import IQ_Option -I_want_money=IQ_Option("email","password") +Iq=IQ_Option("email","password") while True: #please open website iqoption and buy some binary option - if I_want_money.get_option_open_by_other_pc()!={}: + if Iq.get_option_open_by_other_pc()!={}: break time.sleep(1) print("Get option from other Pc and same account") -print(I_want_money.get_option_open_by_other_pc()) +print(Iq.get_option_open_by_other_pc()) -id=list(I_want_money.get_option_open_by_other_pc().keys())[0] -I_want_money.del_option_open_by_other_pc(id) +id=list(Iq.get_option_open_by_other_pc().keys())[0] +Iq.del_option_open_by_other_pc(id) print("After del by id") -print(I_want_money.get_option_open_by_other_pc()) +print(Iq.get_option_open_by_other_pc()) ``` -___ --- + +--- + ### For Digital + [Digital options buy with actual price sample code](https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/65#issuecomment-511660908) -#### Sample +### Para digitais ```python from iqoptionapi.stable_api import IQ_Option import time import random -I_want_money=IQ_Option("email","password") +Iq=IQ_Option("email","password") ACTIVES="EURUSD" duration=1#minute 1 or 5 amount=1 -I_want_money.subscribe_strike_list(ACTIVES,duration) +Iq.subscribe_strike_list(ACTIVES,duration) #get strike_list -data=I_want_money.get_realtime_strike_list(ACTIVES, duration) +data=Iq.get_realtime_strike_list(ACTIVES, duration) print("get strike data") print(data) """data -{'1.127100': - { 'call': - { 'profit': None, +{'1.127100': + { 'call': + { 'profit': None, 'id': 'doEURUSD201811120649PT1MC11271' - }, - 'put': - { 'profit': 566.6666666666666, + }, + 'put': + { 'profit': 566.6666666666666, 'id': 'doEURUSD201811120649PT1MP11271' - } + } }............ -} +} """ #get price list price_list=list(data.keys()) @@ -668,12 +833,12 @@ profit=data[choose_price]["call"]["profit"] print("choose you want to buy") print("price:",choose_price,"side:call","instrument_id:",instrument_id,"profit:",profit) #put instrument_id to buy -buy_check,id=I_want_money.buy_digital(amount,instrument_id) +buy_check,id=Iq.buy_digital(amount,instrument_id) if buy_check: print("wait for check win") #check win while True: - check_close,win_money=I_want_money.check_win_digital_v2(id) + check_close,win_money=Iq.check_win_digital_v2(id) if check_close: if float(win_money)>0: win_money=("%.2f" % (win_money)) @@ -681,121 +846,127 @@ if buy_check: else: print("you loose") break - I_want_money.unsubscribe_strike_list(ACTIVES,duration) + Iq.unsubscribe_strike_list(ACTIVES,duration) else: print("fail to buy,please run again") ``` + #### Get all strike list data -##### Data format +#### get_all_strike_list_data() -```python +Formato da informação retornada -{'1.127100': { 'call': {'profit': None, 'id': 'doEURUSD201811120649PT1MC11271'}, 'put': {'profit': 566.6666666666666, 'id': 'doEURUSD201811120649PT1MP11271'} }.......} -``` +{'1.127100': { 'call': {'profit': None, 'id': 'doEURUSD201811120649PT1MC11271'}, 'put': {'profit': 566.6666666666666, 'id': 'doEURUSD201811120649PT1MP11271'} }.......} -##### sample +```` +Exemplo de uso ```python from iqoptionapi.stable_api import IQ_Option import time -I_want_money=IQ_Option("email","password") +Iq=IQ_Option("email","password") ACTIVES="EURUSD" duration=1#minute 1 or 5 -I_want_money.subscribe_strike_list(ACTIVES,duration) +Iq.subscribe_strike_list(ACTIVES,duration) while True: - data=I_want_money.get_realtime_strike_list(ACTIVES, duration) + data=Iq.get_realtime_strike_list(ACTIVES, duration) for price in data: print("price",price,data[price]) time.sleep(5) -I_want_money.unsubscribe_strike_list(ACTIVES,duration) -``` +Iq.unsubscribe_strike_list(ACTIVES,duration) +```` -#### buy_digital_spot +#### Realizar operações nas Digitais com buy_digital_spot() -buy the digit in current price +Abrir operação na digital com preço atual ```python from iqoptionapi.stable_api import IQ_Option - -I_want_money=IQ_Option("email","password") + +Iq=IQ_Option("email","password") ACTIVES="EURUSD" duration=1#minute 1 or 5 amount=1 action="call"#put -print(I_want_money.buy_digital_spot(ACTIVES,amount,action,duration)) +print(Iq.buy_digital_spot(ACTIVES,amount,action,duration)) ``` -#### get_digital_spot_profit_after_sale +#### Pegar lucro pós venda com get_digital_spot_profit_after_sale() -get Profit After Sale(P/L) ![](image/profit_after_sale.png) + ```python -from iqoptionapi.stable_api import IQ_Option -I_want_money=IQ_Option("email","passord") +from iqoptionapi.stable_api import IQ_Option +Iq=IQ_Option("email","passord") ACTIVES="EURUSD" duration=1#minute 1 or 5 amount=100 action="put"#put - -I_want_money.subscribe_strike_list(ACTIVES,duration) -id=I_want_money.buy_digital_spot(ACTIVES,amount,action,duration) - + +Iq.subscribe_strike_list(ACTIVES,duration) +id=Iq.buy_digital_spot(ACTIVES,amount,action,duration) + while True: - PL=I_want_money.get_digital_spot_profit_after_sale(id) + PL=Iq.get_digital_spot_profit_after_sale(id) if PL!=None: print(PL) - + ``` #### get_digital_current_profit get current price profit - ```python from iqoptionapi.stable_api import IQ_Option import time import logging #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') -I_want_money=IQ_Option("email","password") +Iq=IQ_Option("email","password") ACTIVES="EURUSD" duration=1#minute 1 or 5 -I_want_money.subscribe_strike_list(ACTIVES,duration) +Iq.subscribe_strike_list(ACTIVES,duration) while True: - data=I_want_money.get_digital_current_profit(ACTIVES, duration) + data=Iq.get_digital_current_profit(ACTIVES, duration) print(data)#from first print it may be get false,just wait a second you can get the profit time.sleep(1) -I_want_money.unsubscribe_strike_list(ACTIVES,duration) +Iq.unsubscribe_strike_list(ACTIVES,duration) ``` #### Buy digit + ```python -buy_check,id=I_want_money.buy_digital(amount,instrument_id) -#get instrument_id from I_want_money.get_realtime_strike_list +buy_check,id=Iq.buy_digital(amount,instrument_id) +#get instrument_id from Iq.get_realtime_strike_list ``` -#### check win for digital -##### check_win_digital +#### check win for digital +#### Verificar resultado da operação nas **DIGITAIS** this api is implement by get_digital_position() +###### check_win_digital() + +Esta função foi implementada com get_digital_position() + ```python -I_want_money.check_win_digital(id)#get the id from I_want_money.buy_digital +Iq.check_win_digital(id)#get the id from Iq.buy_digital #return:check_close,win_money #return sample #if you loose:Ture,o #if you win:True,1232.3 #if trade not clode yet:False,None ``` + ##### check_win_digital_v2 - + :exclamation::exclamation: this api is asynchronous get id data,it only can get id data before you call the buy action. if you restart the program,the asynchronous id data can not get again,so check_win_digital_v2 may not working,so you need to use "check_win_digital"! ```python -I_want_money.check_win_digital_v2(id)#get the id from I_want_money.buy_digital +Iq.check_win_digital_v2(id)#get the id from Iq.buy_digital #return:check_close,win_money #return sample #if you loose:Ture,o @@ -803,7 +974,7 @@ I_want_money.check_win_digital_v2(id)#get the id from I_want_money.buy_digital #if trade not clode yet:False,None ``` -sample code +Exemplo ```python from iqoptionapi.stable_api import IQ_Option @@ -812,69 +983,81 @@ import random import time import datetime #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') -I_want_money=IQ_Option("email","password") +Iq=IQ_Option("email","password") +API = IQ_Option("email", "password") + + +Paridade = "EURUSD" +Duracao = 1 #1 ou 5 minutos +Entrada = 1 +Direcao = "call" ACTIVES="EURUSD" duration=1#minute 1 or 5 amount=1 action="call"#put -id=(I_want_money.buy_digital_spot(ACTIVES,amount,action,duration)) +id=(Iq.buy_digital_spot(ACTIVES,amount,action,duration)) print(id) -if id !="error": + +if id != "error": while True: - check,win=I_want_money.check_win_digital_v2(id) + check,win=Iq.check_win_digital_v2(id) if check==True: break - if win<0: - print("you loss "+str(win)+"$") + if lucro < 0: + print("Voce perdeu "+str(win)+"$") else: - print("you win "+str(win)+"$") + print("Voce ganhou "+str(win)+"$") else: - print("please try again") + print("Por favor, tente novamente") ``` - #### close digital + ```python -I_want_money.close_digital_option(id) +Iq.close_digital_option(id) ``` + #### get digital data -##### sample1 +#### Pegar informações das **DIGITAIS** + +Utilizando get_digital_position() ```python from iqoptionapi.stable_api import IQ_Option import logging import time #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') -I_want_money=IQ_Option("email","password") +Iq=IQ_Option("email","password") ACTIVES="EURUSD-OTC" duration=1#minute 1 or 5 amount=1 action="call"#put from datetime import datetime - -id=I_want_money.buy_digital_spot(ACTIVES,amount,action,duration) + +id=Iq.buy_digital_spot(ACTIVES,amount,action,duration) while True: - check,_=I_want_money.check_win_digital(id) + check,_=Iq.check_win_digital(id) if check: break -print(I_want_money.get_digital_position(id)) -print(I_want_money.check_win_digital(id)) +print(Iq.get_digital_position(id)) +print(Iq.check_win_digital(id)) ``` + #####sample 2 ```python -#print(I_want_money.get_order(id))#not work for digital -print(I_want_money.get_positions("digital-option")) -print(I_want_money.get_digital_position(2323433))#in put the id -print(I_want_money.get_position_history("digital-option")) +#print(Iq.get_order(id))#not work for digital +print(Iq.get_positions("digital-option")) +print(Iq.get_digital_position(2323433))#in put the id +print(Iq.get_position_history("digital-option")) ``` - --- + ### For Forex&Stock&Commodities&Crypto&ETFs #### you need to check Asset is open or close! @@ -882,19 +1065,17 @@ print(I_want_money.get_position_history("digital-option")) try this api [get_all_open_time](#checkopen) ![](image/asset_close.png) - - #### About instrument_type and instrument_id you can search instrument_type and instrument_id from this file [search instrument_type and instrument_id](instrument.txt) - #### Sample + ```python from iqoptionapi.stable_api import IQ_Option -I_want_money=IQ_Option("email","password") +Iq=IQ_Option("email","password") instrument_type="crypto" instrument_id="BTCUSD" @@ -936,23 +1117,20 @@ auto_margin_call=False#True/False use_token_for_commission=False#True/False -check,order_id=I_want_money.buy_order(instrument_type=instrument_type, instrument_id=instrument_id, +check,order_id=Iq.buy_order(instrument_type=instrument_type, instrument_id=instrument_id, side=side, amount=amount,leverage=leverage, type=type,limit_price=limit_price, stop_price=stop_price, stop_lose_value=stop_lose_value, stop_lose_kind=stop_lose_kind, take_profit_value=take_profit_value, take_profit_kind=take_profit_kind, use_trail_stop=use_trail_stop, auto_margin_call=auto_margin_call, use_token_for_commission=use_token_for_commission) -print(I_want_money.get_order(order_id)) -print(I_want_money.get_positions("crypto")) -print(I_want_money.get_position_history("crypto")) -print(I_want_money.get_available_leverages("crypto","BTCUSD")) -print(I_want_money.close_position(order_id)) -print(I_want_money.get_overnight_fee("crypto","BTCUSD")) +print(Iq.get_order(order_id)) +print(Iq.get_positions("crypto")) +print(Iq.get_position_history("crypto")) +print(Iq.get_available_leverages("crypto","BTCUSD")) +print(Iq.close_position(order_id)) +print(Iq.get_overnight_fee("crypto","BTCUSD")) ``` - - - #### Buy @@ -966,26 +1144,26 @@ if Buy sucess return (True,buy_order_id) "diff"=Profit in Money -|parameter||||| ---|--|--|--|--| -instrument_type|[instrument_type](#instrumenttypeid) -instrument_id| [instrument_id](#instrumenttypeid) -side|"buy"|"sell" -amount|value(float/int) -leverage|value(int) -type|"market"|"limit"|"stop" -limit_price|None|value(float/int):Only working by set type="limit" -stop_price|None|value(float/int):Only working by set type="stop" -stop_lose_kind|None|"price"|"diff"|"percent" -stop_lose_value|None|value(float/int) -take_profit_kind|None|"price"|"diff"|"percent" -take_profit_value|None|value(float/int) -use_trail_stop|True|False -auto_margin_call|True|False -use_token_for_commission|True|False - -```python -check,order_id=I_want_money.buy_order( +| parameter | | | | | +| ------------------------ | ------------------------------------ | ------------------------------------------------- | ------ | --------- | +| instrument_type | [instrument_type](#instrumenttypeid) | +| instrument_id | [instrument_id](#instrumenttypeid) | +| side | "buy" | "sell" | +| amount | value(float/int) | +| leverage | value(int) | +| type | "market" | "limit" | "stop" | +| limit_price | None | value(float/int):Only working by set type="limit" | +| stop_price | None | value(float/int):Only working by set type="stop" | +| stop_lose_kind | None | "price" | "diff" | "percent" | +| stop_lose_value | None | value(float/int) | +| take_profit_kind | None | "price" | "diff" | "percent" | +| take_profit_value | None | value(float/int) | +| use_trail_stop | True | False | +| auto_margin_call | True | False | +| use_token_for_commission | True | False | + +```python +check,order_id=Iq.buy_order( instrument_type=instrument_type, instrument_id=instrument_id, side=side, amount=amount,leverage=leverage, type=type,limit_price=limit_price, stop_price=stop_price, @@ -997,27 +1175,30 @@ check,order_id=I_want_money.buy_order( use_token_for_commission=use_token_for_commission) ``` + #### change_order ##### change PENDING + ![](image/change_ID_Name_order_id.png) ##### change Position -![](image/change_ID_Name_position_id.png) -|parameter||||| ---|--|--|--|--| -ID_Name|"position_id"|"order_id" -order_id|"you need to get order_id from buy_order()" -stop_lose_kind|None|"price"|"diff"|"percent" -stop_lose_value|None|value(float/int) -take_profit_kind|None|"price"|"diff"|"percent" -take_profit_value|None|value(float/int) -use_trail_stop|True|False -auto_margin_call|True|False +![](image/change_ID_Name_position_id.png) +| parameter | | | | | +| ----------------- | ------------------------------------------- | ---------------- | ------ | --------- | +| ID_Name | "position_id" | "order_id" | +| order_id | "you need to get order_id from buy_order()" | +| stop_lose_kind | None | "price" | "diff" | "percent" | +| stop_lose_value | None | value(float/int) | +| take_profit_kind | None | "price" | "diff" | "percent" | +| take_profit_value | None | value(float/int) | +| use_trail_stop | True | False | +| auto_margin_call | True | False | ##### sample + ```python ID_Name="order_id"#"position_id"/"order_id" stop_lose_kind=None @@ -1026,7 +1207,7 @@ take_profit_kind="percent" take_profit_value=200 use_trail_stop=False auto_margin_call=True -I_want_money.change_order(ID_Name=ID_Name,order_id=order_id, +Iq.change_order(ID_Name=ID_Name,order_id=order_id, stop_lose_kind=stop_lose_kind,stop_lose_value=stop_lose_value, take_profit_kind=take_profit_kind,take_profit_value=take_profit_value, use_trail_stop=use_trail_stop,auto_margin_call=auto_margin_call) @@ -1034,26 +1215,26 @@ I_want_money.change_order(ID_Name=ID_Name,order_id=order_id, --- - #### get_order - get infomation about buy_order_id return (True/False,get_order,None) ```python -I_want_money.get_order(buy_order_id) +Iq.get_order(buy_order_id) ``` #### get_pending + you will get there data ![](image/get_pending.png) ```python -I_want_money.get_pending(instrument_type) +Iq.get_pending(instrument_type) ``` + #### get_positions you will get there data @@ -1062,16 +1243,16 @@ you will get there data return (True/False,get_positions,None) - :exclamation: not support ""turbo-option"" instrument_type="crypto","forex","fx-option","multi-option","cfd","digital-option" ```python -I_want_money.get_positions(instrument_type) +Iq.get_positions(instrument_type) ``` #### get_position + you will get there data ![](image/get_position.png) @@ -1081,7 +1262,7 @@ you will get one position by buy_order_id return (True/False,position data,None) ```python -I_want_money.get_positions(buy_order_id) +Iq.get_positions(buy_order_id) ``` #### get_position_history @@ -1093,8 +1274,9 @@ you will get there data return (True/False,position_history,None) ```python -I_want_money.get_position_history(instrument_type) +Iq.get_position_history(instrument_type) ``` + #### get_position_history_v2 instrument_type="crypto","forex","fx-option","turbo-option","multi-option","cfd","digital-option" @@ -1108,25 +1290,25 @@ import random import time import datetime logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') -I_want_money=IQ_Option("email","password") +Iq=IQ_Option("email","password") -#instrument_type="crypto","forex","fx-option","turbo-option","multi-option","cfd","digital-option" +#instrument_type="crypto","forex","fx-option","turbo-option","multi-option","cfd","digital-option" instrument_type="digital-option" limit=2#How many you want to get -offset=0#offset from end time,if end time is 0,it mean get the data from now +offset=0#offset from end time,if end time is 0,it mean get the data from now start=0#start time Timestamp end=0#Timestamp -data=I_want_money.get_position_history_v2(instrument_type,limit,offset,start,end) +data=Iq.get_position_history_v2(instrument_type,limit,offset,start,end) print(data) #--------- this will get data start from 2019/7/1(end) to 2019/1/1(start) and only get 2(limit) data and offset is 0 instrument_type="digital-option" limit=2#How many you want to get -offset=0#offset from end time,if end time is 0,it mean get the data from now +offset=0#offset from end time,if end time is 0,it mean get the data from now start=int(time.mktime(datetime.datetime.strptime("2019/1/1", "%Y/%m/%d").timetuple())) end=int(time.mktime(datetime.datetime.strptime("2019/7/1", "%Y/%m/%d").timetuple())) -data=I_want_money.get_position_history_v2(instrument_type,limit,offset,start,end) +data=Iq.get_position_history_v2(instrument_type,limit,offset,start,end) print(data) ``` @@ -1138,8 +1320,9 @@ get available leverages return (True/False,available_leverages,None) ```python -I_want_money.get_available_leverages(instrument_type,actives) +Iq.get_available_leverages(instrument_type,actives) ``` + #### cancel_order you will do this @@ -1149,7 +1332,7 @@ you will do this return (True/False) ```python -I_want_money.cancel_order(buy_order_id) +Iq.cancel_order(buy_order_id) ``` #### close_position @@ -1161,7 +1344,7 @@ you will do this return (True/False) ```python -I_want_money.close_position(buy_order_id) +Iq.close_position(buy_order_id) ``` #### get_overnight_fee @@ -1169,51 +1352,56 @@ I_want_money.close_position(buy_order_id) return (True/False,overnight_fee,None) ```python -I_want_money.get_overnight_fee(instrument_type,active) +Iq.get_overnight_fee(instrument_type,active) ``` + --- + --- ### Candle #### get candles + :exclamation: - get_candles can not get "real time data" ,it will late about 30sec +get_candles can not get "real time data" ,it will late about 30sec -if you very care about real time you need use +if you very care about real time you need use "get realtime candles" OR "collect realtime candles" -sample +sample ""now"" time 1:30:45sec -1. you want to get candles 1:30:45sec now - +1. you want to get candles 1:30:45sec now + you may get 1:30:15sec data have been late approximately 30sec -2. you want to get candles 1:00:33sec +2. you want to get candles 1:00:33sec you will get the right data ```python -I_want_money.get_candles(ACTIVES,interval,count,endtime) +Iq.get_candles(ACTIVES,interval,count,endtime) #ACTIVES:sample input "EURUSD" OR "EURGBP".... youcan #interval:duration of candles #count:how many candles you want to get from now to past #endtime:get candles from past to "endtime" ``` + :exclamation: try this code to get more than 1000 candle + ```python from iqoptionapi.stable_api import IQ_Option import time -I_want_money=IQ_Option("email","password") +Iq=IQ_Option("email","password") end_from_time=time.time() ANS=[] for i in range(70): - data=I_want_money.get_candles("EURUSD", 60, 1000, end_from_time) + data=Iq.get_candles("EURUSD", 60, 1000, end_from_time) ANS =data+ANS end_from_time=int(data[0]["from"])-1 print(ANS) @@ -1221,76 +1409,85 @@ print(ANS) #### get realtime candles -##### Sample +##### Sample + ```python from iqoptionapi.stable_api import IQ_Option import logging import time #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') print("login...") -I_want_money=IQ_Option("email","password") +Iq=IQ_Option("email","password") goal="EURUSD" size="all"#size=[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,"all"] maxdict=10 print("start stream...") -I_want_money.start_candles_stream(goal,size,maxdict) +Iq.start_candles_stream(goal,size,maxdict) #DO something print("Do something...") time.sleep(10) print("print candles") -cc=I_want_money.get_realtime_candles(goal,size) +cc=Iq.get_realtime_candles(goal,size) for k in cc: print(goal,"size",k,cc[k]) print("stop candle") -I_want_money.stop_candles_stream(goal,size) +Iq.stop_candles_stream(goal,size) ``` - + ##### start_candles_stream - -* input: - * goal:"EURUSD"... - * size:[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,"all"] - * maxdict:set max buffer you want to save + +- input: + - goal:"EURUSD"... + - size:[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,"all"] + - maxdict:set max buffer you want to save size ![](image/time_interval.png) ##### get_realtime_candles -* input: - * goal:"EURUSD"... - * size:[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,"all"] -* output: - * dict + +- input: + - goal:"EURUSD"... + - size:[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,"all"] +- output: + - dict + ##### stop_candles_stream -* input: - * goal:"EURUSD"... - * size:[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,"all"] + +- input: + - goal:"EURUSD"... + - size:[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,"all"] --- + ### time #### get_server_timestamp + the get_server_timestamp time is sync with iqoption + ```python -I_want_money.get_server_timestamp() +Iq.get_server_timestamp() ``` #### Purchase Time + this sample get the Purchase time clock + ```python import time #get the end of the timestamp by expiration time def get_expiration_time(t): - exp=time.time()#or I_want_money.get_server_timestamp() to get more Precision + exp=time.time()#or Iq.get_server_timestamp() to get more Precision if (exp % 60) > 30: end = exp - (exp % 60) + 60*(t+1) else: end = exp - (exp % 60)+60*(t) return end - + expiration_time=2 end_time=0 @@ -1300,7 +1497,9 @@ while True: print(end_time-time.time()-30) time.sleep(1) ``` + --- + ### Get top_assets_updated instrument_type="binary-option"/"digital-option"/"forex"/"cfd"/"crypto" @@ -1310,17 +1509,17 @@ from iqoptionapi.stable_api import IQ_Option import logging import time #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') -I_want_money=IQ_Option("email","password") +Iq=IQ_Option("email","password") instrument_type="digital-option"#"binary-option"/"digital-option"/"forex"/"cfd"/"crypto" -I_want_money.subscribe_top_assets_updated(instrument_type) +Iq.subscribe_top_assets_updated(instrument_type) print("__Please_wait_for_sec__") while True: - if I_want_money.get_top_assets_updated(instrument_type)!=None: - print(I_want_money.get_top_assets_updated(instrument_type)) + if Iq.get_top_assets_updated(instrument_type)!=None: + print(Iq.get_top_assets_updated(instrument_type)) print("\n\n") time.sleep(1) -I_want_money.unsubscribe_top_assets_updated(instrument_type) +Iq.unsubscribe_top_assets_updated(instrument_type) ``` #### get popularity by top_assets_updated() api @@ -1334,25 +1533,25 @@ from iqoptionapi.stable_api import IQ_Option import logging import time import operator - + #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') def opcode_to_name(opcode_data,opcode): - return list(opcode_data.keys())[list(opcode_data.values()).index(opcode)] + return list(opcode_data.keys())[list(opcode_data.values()).index(opcode)] -I_want_money=IQ_Option("email","password") -I_want_money.update_ACTIVES_OPCODE() -opcode_data=I_want_money.get_all_ACTIVES_OPCODE() +Iq=IQ_Option("email","password") +Iq.update_ACTIVES_OPCODE() +opcode_data=Iq.get_all_ACTIVES_OPCODE() instrument_type="digital-option"#"binary-option"/"digital-option"/"forex"/"cfd"/"crypto" -I_want_money.subscribe_top_assets_updated(instrument_type) +Iq.subscribe_top_assets_updated(instrument_type) print("__Please_wait_for_sec__") while True: - if I_want_money.get_top_assets_updated(instrument_type)!=None: + if Iq.get_top_assets_updated(instrument_type)!=None: break -top_assets=I_want_money.get_top_assets_updated(instrument_type) +top_assets=Iq.get_top_assets_updated(instrument_type) popularity={} for asset in top_assets: opcode=asset["active_id"] @@ -1362,18 +1561,18 @@ for asset in top_assets: popularity[name]=popularity_value except: pass - - + + sorted_popularity = sorted(popularity.items(), key=operator.itemgetter(1)) print("__Popularity_min_to_max__") for lis in sorted_popularity: print(lis) -I_want_money.unsubscribe_top_assets_updated(instrument_type) +Iq.unsubscribe_top_assets_updated(instrument_type) ``` - --- + ### Get mood for now... only support get binary option mood , i will implement beterr if need.. @@ -1382,59 +1581,87 @@ Sample ```python from iqoptionapi.stable_api import IQ_Option -I_want_money=IQ_Option("email","password") +Iq=IQ_Option("email","password") goal="EURUSD" -I_want_money.start_mood_stream(goal) -print(I_want_money.get_traders_mood(goal)) -I_want_money.stop_mood_stream(goal) +instrument="forex" ## Option "forex", "turbo-option" +Iq.start_mood_stream(goal, instrument) +print(Iq.get_traders_mood(goal)) +Iq.stop_mood_stream(goal) ``` -#### get_traders_mood +it returns example: +0.4233422 +item means 42 % call/buy -get percent of higher(call) +#### get_traders_mood + +get percent of higher(call) if you want to know percent of lower(put) just 1-higher + ```python -I_want_money.get_traders_mood(goal) +Iq.get_traders_mood(goal) #input:input "EURUSD" OR "EURGBP".... you can view by get_all_ACTIVES_OPCODE #output:(float) the higher(call)% -#if you want to know lower(put)% try 1-I_want_money.get_traders_mood(goal) +#if you want to know lower(put)% try 1-Iq.get_traders_mood(goal) ``` + #### get_all_traders_mood + get all you start mood + ```python -I_want_money.get_all_traders_mood(goal) +Iq.get_all_traders_mood(goal) #output:(dict) all mood you start ``` +
+ +#### How to Get Technical indicators + +It get technical indicator from any asset cointains it + +```python +## api auth then +asset="GBPUSD" +indicators = Iq.get_technical_indicators(asset) +print(indicators) + +``` + +if assets doesn't contains technical indicator it returns: + +```json +{ + "code": "no_technical_indicator_available", + "message": "Active is not supported: active id 'ACTIVE_ID_PASSED'" +} +``` + ### Account #### get balance + ```python -I_want_money.get_balance() +Iq.get_balance() ``` - #### reset practice balance -reset practice balance to $10000 +reset practice balance to \$10000 ```python from iqoptionapi.stable_api import IQ_Option -I_want_money=IQ_Option("email","password") -print(I_want_money.reset_practice_balance()) +Iq=IQ_Option("email","password") +print(Iq.reset_practice_balance()) ``` #### Change real/practice Account + ```python -I_want_money.change_balance(MODE) +Iq.change_balance(MODE) #MODE: "PRACTICE"/"REAL" ``` --- - - - - - diff --git a/doc/en/2 factor/index.md b/doc/en/2 factor/index.md new file mode 100644 index 00000000..e3778194 --- /dev/null +++ b/doc/en/2 factor/index.md @@ -0,0 +1,30 @@ +## Two Factor Auth + +Enable two factor auth on iqoption site then use this code to and auth code + +```python +from iqoptionapi.stable_api import IQ_Option + +print("Conecting...") +api = IQ_Option("email", "password") +status, reason = api.connect() +print('##### first try #####') +print('Status:', status) +print('Reason:', reason) +print("Email:", api.email) + +if reason == "2FA": + print('##### 2FA enabled #####') + print("An sms has been sent with a code to your number") + + code_sms = input("Enter the code received: ") + status, reason = api.connect_2fa(code_sms) + + print('##### second try #####') + print('Status:', status) + print('Reason:', reason) + print("Email:", api.email) + +print("Balance:", api.get_balance()) +print("##############################") +``` \ No newline at end of file diff --git a/doc/en/account/account.md b/doc/en/account/account.md new file mode 100644 index 00000000..9529d863 --- /dev/null +++ b/doc/en/account/account.md @@ -0,0 +1,208 @@ +# Account + +## get_balance() + +```python +Iq.get_balance() +``` + +## get_balance_v2() + +more accuracy + +```python +Iq.get_balance_v2() +``` + +## get_currency() + +you will check what currency you use + +```python +Iq.get_currency() +``` + +## reset_practice_balance() + +reset practice balance to \$10000 + +```python +from iqoptionapi.stable_api import IQ_Option +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +print(Iq.reset_practice_balance()) +``` + +## Change real/practice Account + +MODE="PRACTICE"/"REAL"/"TOURNAMENT"
+PRACTICE - it is demo account
+REAL - It is our money in risk
+TOURNAMENT - Tournaments account
+ +```python +balance_type="PRACTICE" +Iq.change_balance(balance_type) +``` + +## get Other People stratagy + +### sample + +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import time + +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +while_run_time=10 + +#For digital option + +name="live-deal-digital-option" #"live-deal-binary-option-placed"/"live-deal-digital-option" +active="EURUSD" +_type="PT1M"#"PT1M"/"PT5M"/"PT15M" +buffersize=10# +print("_____________subscribe_live_deal_______________") +Iq.subscribe_live_deal(name,active,_type,buffersize) + + +start_t=time.time() +while True: + #data size is below buffersize + #data[0] is the last data + data=(Iq.get_live_deal(name,active,_type)) + print("__For_digital_option__ data size:"+str(len(data))) + print(data) + print("\n\n") + time.sleep(1) + if time.time()-start_t>while_run_time: + break +print("_____________unscribe_live_deal_______________") +Iq.unscribe_live_deal(name,active,_type) + + +#For binary option + +name="live-deal-binary-option-placed" +active="EURUSD" +_type="turbo"#"turbo"/"binary" +buffersize=10# +print("_____________subscribe_live_deal_______________") +Iq.subscribe_live_deal(name,active,_type,buffersize) + +start_t=time.time() +while True: + #data size is below buffersize + #data[0] is the last data + data=(Iq.get_live_deal(name,active,_type)) + print("__For_binary_option__ data size:"+str(len(data))) + print(data) + print("\n\n") + time.sleep(1) + if time.time()-start_t>while_run_time: + break +print("_____________unscribe_live_deal_______________") +Iq.unscribe_live_deal(name,active,_type) +``` + +### subscribe_live_deal + +```python +Iq.subscribe_live_deal(name,active,_type,buffersize) +``` + +### unscribe_live_deal + +```python +Iq.unscribe_live_deal(name,active,_type) +``` + +### get_live_deal + +```python +Iq.get_live_deal(name,active,_type) +``` + +### pop_live_deal + +pop the data from list + +```python +Iq.pop_live_deal(name,active,_type) +``` + +## get Other people detail + +### sample + +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import time + +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +while_run_time=10 + +#For binary option +name="live-deal-binary-option-placed" +active="EURUSD" +_type="turbo"#"turbo"/"binary" +buffersize=10# +print("_____________subscribe_live_deal_______________") +print("\n\n") +Iq.subscribe_live_deal(name,active,_type,buffersize) + +last_trade_data=Iq.get_live_deal(name,active,_type)[0] + +user_id=last_trade_data["user_id"] +counutry_id=last_trade_data["country_id"] +print("_______get_user_profile_client__________") +print(Iq.get_user_profile_client(user_id)) +pro_data=Iq.get_user_profile_client(user_id) +print("\n\n") + +print("___________request_leaderboard_userinfo_deals_client______") +print(Iq.request_leaderboard_userinfo_deals_client(user_id,counutry_id)) +user_data=Iq.request_leaderboard_userinfo_deals_client(user_id,counutry_id) +worldwide=user_data["result"]["entries_by_country"]["0"]["position"] +profit=user_data["result"]["entries_by_country"]["0"]["score"] +print("\n") +print("user_name:"+pro_data["user_name"]) +print("This week worldwide:"+str(worldwide)) +print("This week's gross profit:"+str(profit)) +print("\n\n") + +print("___________get_users_availability____________") +print(Iq.get_users_availability(user_id)) +print("\n\n") +print("_____________unscribe_live_deal_______________") +Iq.unscribe_live_deal(name,active,_type) + +``` + +### get_user_profile_client() + +this api can get user name and image + +```python +Iq.get_user_profile_client(user_id) +``` + +### request_leaderboard_userinfo_deals_client() + +this api can get user detail + +```python +Iq.request_leaderboard_userinfo_deals_client(user_id,counutry_id) +``` + +### get_users_availability() + +```python +Iq.get_users_availability(user_id) +``` diff --git a/doc/en/all/all.md b/doc/en/all/all.md new file mode 100644 index 00000000..15c89b04 --- /dev/null +++ b/doc/en/all/all.md @@ -0,0 +1,482 @@ +# For all + +this api can work for option&digital&Forex&Stock&Commodities&Crypto&ETFs + +## Check Asset if open or not + +be careful get_all_open_time() is very heavy for network. + +get_all_open_time() return the DICT + +"cfd" is include Stock,Commodities,ETFs asset + +DICT["forex"/"cfd"/"crypto"/"digital"/"turbo"/"binary"][asset name]["open"] + +it will return True/False + +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import random +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +ALL_Asset=Iq.get_all_open_time() +#check if open or not +print(ALL_Asset["forex"]["EURUSD"]["open"]) +print(ALL_Asset["cfd"]["FACEBOOK"]["open"])#Stock,Commodities,ETFs +print(ALL_Asset["crypto"]["BTCUSD-L"]["open"]) +print(ALL_Asset["digital"]["EURUSD-OTC"]["open"]) + +#Binary have two diffenence type:"turbo","binary" +print(ALL_Asset["turbo"]["EURUSD-OTC"]["open"]) +print(ALL_Asset["binary"]["EURUSD-OTC"]["open"]) + + +#!!!! exception "" +print(ALL_Asset["binary"]["not exist asset"]["open"])#it will return "{}" a None of the dict + +#!!!!print all!!!! +for type_name, data in ALL_Asset.items(): + for Asset,value in data.items(): + print(type_name,Asset,value["open"]) +``` + +## View all ACTIVES Name + +``` +print(Iq.get_all_ACTIVES_OPCODE()) +``` + +## update ACTIVES OPCODE + +``` +Iq.update_ACTIVES_OPCODE() +``` + +## get_async_order() + +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import time +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +ACTIVES="EURUSD" +duration=1#minute 1 or 5 +amount=1 +action="call"#put + +print("__For_Binary_Option__") +_,id=Iq.buy(amount,ACTIVES,action,duration) +while Iq.get_async_order(id)==None: + pass +print(Iq.get_async_order(id)) +print("\n\n") + +print("__For_Digital_Option__spot") +_,id=Iq.buy_digital_spot(ACTIVES,amount,action,duration) +while Iq.get_async_order(id)==None: + pass +order_data=Iq.get_async_order(id) +print(Iq.get_async_order(id)) +print("\n\n") + +print("__For_Forex_Stock_Commodities_Crypto_ETFs") +instrument_type="crypto" +instrument_id="BTCUSD" +side="buy" +amount=1.23 +leverage=3 +type="market" +limit_price=None +stop_price=None +stop_lose_kind="percent" +stop_lose_value=95 +take_profit_kind=None +take_profit_value=None +use_trail_stop=True +auto_margin_call=False +use_token_for_commission=False +check,id=Iq.buy_order(instrument_type=instrument_type, instrument_id=instrument_id, + side=side, amount=amount,leverage=leverage, + type=type,limit_price=limit_price, stop_price=stop_price, + stop_lose_value=stop_lose_value, stop_lose_kind=stop_lose_kind, + take_profit_value=take_profit_value, take_profit_kind=take_profit_kind, + use_trail_stop=use_trail_stop, auto_margin_call=auto_margin_call, + use_token_for_commission=use_token_for_commission) +while Iq.get_async_order(id)==None: + pass +order_data=Iq.get_async_order(id) +print(Iq.get_async_order(id)) +``` + +## get_commission_change() + +instrument_type: "binary-option"/"turbo-option"/"digital-option"/"crypto"/"forex"/"cfd" + +Iq.subscribe_commission_changed(instrument_type) Iq.get_commission_change(instrument_type) Iq.unsubscribe_commission_changed(instrument_type) + +Sample code + +```python +import time +from iqoptionapi.stable_api import IQ_Option +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +#instrument_type: "binary-option"/"turbo-option"/"digital-option"/"crypto"/"forex"/"cfd" +instrument_type=["binary-option","turbo-option","digital-option","crypto","forex","cfd"] +for ins in instrument_type: + Iq.subscribe_commission_changed(ins) +print("Start stream please wait profit change...") +while True: + for ins in instrument_type: + commissio_data=Iq.get_commission_change(ins) + if commissio_data!={}: + for active_name in commissio_data: + if commissio_data[active_name]!={}: + the_min_timestamp=min(commissio_data[active_name].keys()) + commissio=commissio_data[active_name][the_min_timestamp] + profit=(100-commissio)/100 + print("instrument_type: "+str(ins)+" active_name: "+str(active_name)+" profit change to: "+str(profit)) + #Data have been update so need del + del Iq.get_commission_change(ins)[active_name][the_min_timestamp] + time.sleep(1) +``` + +## Get top_assets_updated + +### smaple + +instrument_type="binary-option"/"digital-option"/"forex"/"cfd"/"crypto" + +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import time +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +instrument_type="digital-option"#"binary-option"/"digital-option"/"forex"/"cfd"/"crypto" +Iq.subscribe_top_assets_updated(instrument_type) + +print("__Please_wait_for_sec__") +while True: + if Iq.get_top_assets_updated(instrument_type)!=None: + print(Iq.get_top_assets_updated(instrument_type)) + print("\n\n") + time.sleep(1) +Iq.unsubscribe_top_assets_updated(instrument_type) +``` + +### subscribe_top_assets_updated() + +```python +instrument_type="digital-option"#"binary-option"/"digital-option"/"forex"/"cfd"/"crypto" +Iq.subscribe_top_assets_updated(instrument_type) +``` + +### get_top_assets_updated() + +need call get_top_assets_updated() after subscribe_top_assets_updated() + +```python +Iq.get_top_assets_updated(instrument_type) +``` + +### unsubscribe_top_assets_updated() + +if you not using please close stram for safe network + +```python +Iq.unsubscribe_top_assets_updated(instrument_type) +``` + +### get sort by popularity + +![](image/top_assets_updated.png) + +#### sample + +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import time +import operator + +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +def opcode_to_name(opcode_data,opcode): + return list(opcode_data.keys())[list(opcode_data.values()).index(opcode)] + +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +Iq.update_ACTIVES_OPCODE() +opcode_data=Iq.get_all_ACTIVES_OPCODE() + +instrument_type="digital-option"#"binary-option"/"digital-option"/"forex"/"cfd"/"crypto" +Iq.subscribe_top_assets_updated(instrument_type) + + +print("__Please_wait_for_sec__") +while True: + if Iq.get_top_assets_updated(instrument_type)!=None: + break + +top_assets=Iq.get_top_assets_updated(instrument_type) +popularity={} +for asset in top_assets: + opcode=asset["active_id"] + popularity_value=asset["popularity"]["value"] + try: + name=opcode_to_name(opcode_data,opcode) + popularity[name]=popularity_value + except: + pass + + +sorted_popularity = sorted(popularity.items(), key=operator.itemgetter(1)) +print("__Popularity_min_to_max__") +for lis in sorted_popularity: + print(lis) + +Iq.unsubscribe_top_assets_updated(instrument_type) +``` + +## get_leader_board + +Get leader board data + +```python +from iqoptionapi.stable_api import IQ_Option +Iq=IQ_Option(email,password) +Iq.connect()#connect to iqoption + +country="TW" +from_position=1 +to_position=1 +near_traders_count=0 + +print(Iq.get_leader_board(country,from_position,to_position,near_traders_count)) +``` + +!!! country +ID = {"Worldwide":0, +"AF": 1, +"AL": 2, +"DZ": 3, +"AD": 5, +"AO": 6, +"AI": 7, +"AG": 9, +"AR": 10, +"AM": 11, +"AW": 12, +"AT": 14, +"AZ": 15, +"BS": 16, +"BH": 17, +"BD": 18, +"BB": 19, +"BY": 20, +"BZ": 22, +"BJ": 23, +"BM": 24, +"BO": 26, +"BA": 27, +"BW": 28, +"BV": 29, +"BR": 30, +"BN": 31, +"BG": 32, +"BF": 33, +"BI": 34, +"KH": 35, +"CM": 36, +"CV": 38, +"KY": 39, +"TD": 41, +"CL": 42, +"CN": 43, +"CC": 45, +"CO": 46, +"KM": 47, +"CG": 48, +"CK": 49, +"CR": 50, +"CI": 51, +"HR": 52, +"CU": 53, +"CY": 54, +"CZ": 55, +"DK": 56, +"DJ": 57, +"DM": 58, +"DO": 59, +"TL": 60, +"EC": 61, +"EG": 62, +"SV": 63, +"EE": 66, +"ET": 67, +"FO": 69, +"FJ": 70, +"FI": 71, +"FR": 72, +"GF": 73, +"PF": 74, +"GA": 75, +"GM": 76, +"GE": 77, +"DE": 78, +"GH": 79, +"GR": 81, +"GD": 83, +"GP": 84, +"GT": 86, +"GN": 87, +"GY": 88, +"HT": 89, +"HN": 90, +"HK": 91, +"HU": 92, +"IS": 93, +"ID": 94, +"IQ": 95, +"IE": 96, +"IT": 97, +"JM": 98, +"JO": 100, +"KZ": 101, +"KE": 102, +"KI": 103, +"KW": 104, +"KG": 105, +"LA": 106, +"LV": 107, +"LB": 108, +"LS": 109, +"LR": 110, +"LY": 111, +"LT": 113, +"LU": 114, +"MO": 115, +"MK": 116, +"MG": 117, +"MW": 118, +"MY": 119, +"MV": 120, +"ML": 121, +"MT": 122, +"MQ": 124, +"MR": 125, +"MU": 126, +"MX": 128, +"FM": 129, +"MD": 130, +"MC": 131, +"MN": 132, +"MA": 134, +"MZ": 135, +"MM": 136, +"NA": 137, +"NP": 139, +"NL": 140, +"AN": 141, +"NC": 142, +"NZ": 143, +"NI": 144, +"NE": 145, +"NG": 146, +"NO": 149, +"OM": 150, +"PK": 151, +"PW": 152, +"PA": 153, +"PG": 154, +"PY": 155, +"PE": 156, +"PH": 157, +"PL": 159, +"PT": 160, +"QA": 162, +"RE": 163, +"RO": 164, +"RW": 166, +"KN": 167, +"LC": 168, +"SA": 171, +"SN": 172, +"SC": 173, +"SG": 175, +"SK": 176, +"SI": 177, +"SO": 179, +"ZA": 180, +"KR": 181, +"ES": 182, +"LK": 183, +"SH": 184, +"SR": 186, +"SZ": 187, +"SE": 188, +"CH": 189, +"TW": 191, +"TJ": 192, +"TZ": 193, +"TH": 194, +"TG": 195, +"TT": 198, +"TN": 199, +"TR": 200, +"TM": 201, +"UG": 203, +"UA": 204, +"AE": 205, +"GB": 206, +"UY": 207, +"UZ": 208, +"VE": 211, +"VN": 212, +"VG": 213, +"YE": 216, +"ZM": 218, +"ZW": 219, +"RS": 220, +"ME": 221, +"IN": 225, +"TC": 234, +"CD": 235, +"GG": 236, +"IM": 237, +"JE": 239, +"CW": 246, } + +## login with 2 factor auth + +```python +from iqoptionapi.stable_api import IQ_Option + +print("Connecting...") +api = IQ_Option("email", "password") +status, reason = api.connect() +print('##### First try #####') +print('Status:', status) +print('Reason:', reason) +print("Email:", api.email) + +if reason == "2FA": + print('##### 2FA Enabled #####') + print("An sms was sent with auth code to your number") + + code_sms = input("Enter 2FA code: ") + status, reason = api.connect_2fa(code_sms) + + print('##### second try #####') + print('Status:', status) + print('Reason:', reason) + print("Email:", api.email) + +print("Balance:", api.get_balance()) +print("##############################") +``` diff --git a/doc/en/all/image/top_assets_updated.png b/doc/en/all/image/top_assets_updated.png new file mode 100644 index 00000000..edd76b53 Binary files /dev/null and b/doc/en/all/image/top_assets_updated.png differ diff --git a/doc/en/binary option/binary option.md b/doc/en/binary option/binary option.md new file mode 100644 index 00000000..f40d31c7 --- /dev/null +++ b/doc/en/binary option/binary option.md @@ -0,0 +1,307 @@ +#For Binary Option + + +## buy + +buy the binary option + +### buy() + +sample + +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import time +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +Iq=IQ_Option("email","pass") +goal="EURUSD" +print("get candles") +print(Iq.get_candles(goal,60,111,time.time())) +Money=1 +ACTIVES="EURUSD" +ACTION="call"#or "put" +expirations_mode=1 + +check,id=Iq.buy(Money,ACTIVES,ACTION,expirations_mode) +if check: + print("!buy!") +else: + print("buy fail") +``` + +```python +Iq.buy(Money,ACTIVES,ACTION,expirations) + #Money:How many you want to buy type(int) + #ACTIVES:sample input "EURUSD" OR "EURGBP".... you can view by get_all_ACTIVES_OPCODE + #ACTION:"call"/"put" type(str) + #expirations:input minute,careful too large will false to buy(Closed market time)thank Darth-Carrotpie's code (int)https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/6 + #return:if sucess return (True,id_number) esle return(Fale,None) +``` +### buy_multi() + +```python +from iqoptionapi.stable_api import IQ_Option +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +Money=[] +ACTIVES=[] +ACTION=[] +expirations_mode=[] + +Money.append(1) +ACTIVES.append("EURUSD") +ACTION.append("call")#put +expirations_mode.append(1) + +Money.append(1) +ACTIVES.append("EURAUD") +ACTION.append("call")#put +expirations_mode.append(1) + +print("buy multi") +id_list=Iq.buy_multi(Money,ACTIVES,ACTION,expirations_mode) + +print("check win only one id (id_list[0])") +print(Iq.check_win_v2(id_list[0],2)) +``` +### buy_by_raw_expirations() + +buy the binary optoin by expired + +```python +price=2 +active="EURUSD" +direction="call"#put +option="turbo"#binary +expired=1293923# this expried time you need to count or get by your self +Iq.buy_by_raw_expirations(price, active, direction, option,expired) +``` + +## get_remaning() + +purchase time=remaning time - 30 +```python +from iqoptionapi.stable_api import IQ_Option +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +Money=1 +ACTIVES="EURUSD" +ACTION="call"#or "put" +expirations_mode=1 +while True: + remaning_time=Iq.get_remaning(expirations_mode) + purchase_time=remaning_time-30 + if purchase_time<4:#buy the binary option at purchase_time<4 + Iq.buy(Money,ACTIVES,ACTION,expirations_mode) + break +``` + +## sell_option() + +```python +Iq.sell_option(sell_all)#input int or list order id +``` +Sample + +```python +from iqoptionapi.stable_api import IQ_Option +import time +print("login...") +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +Money=1 +ACTIVES="EURUSD" +ACTION="call"#or "put" +expirations_mode=1 + +id=Iq.buy(Money,ACTIVES,ACTION,expirations_mode) +id2=Iq.buy(Money,ACTIVES,ACTION,expirations_mode) + +time.sleep(5) +sell_all=[] +sell_all.append(id) +sell_all.append(id2) +print(Iq.sell_option(sell_all)) +``` + +## check win + +It will do loop until get win or loose + +### check_win() + +```python +from iqoptionapi.stable_api import IQ_Option +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +check,id = Iq.buy(1, "EURUSD", "call", 1) +print("start check win please wait") +print(Iq.check_win(id)) +``` + +```python +Iq.check_win(23243221) +#""you need to get id_number from buy function"" +#Iq.check_win(id_number) +#this function will do loop check your bet until if win/equal/loose +``` + +### check_win_v2() + +```python +from iqoptionapi.stable_api import IQ_Option +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +check,id = Iq.buy(1, "EURUSD", "call", 1) +print("start check win please wait") +polling_time=3 +print(Iq.check_win_v2(id,polling_time)) +``` + +### check_win_v3() + +great way + +```python +from iqoptionapi.stable_api import IQ_Option +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +check,id = Iq.buy(1, "EURUSD", "call", 1) +print("start check win please wait") +print(Iq.check_win_v3(id)) +``` + +## get_binary_option_detail() +![](expiration_time.png) + +sample +```python +from iqoptionapi.stable_api import IQ_Option +print("login...") +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +d=Iq.get_binary_option_detail() +print(d["CADCHF"]["turbo"]) +print(d["CADCHF"]["binary"]) +``` +## get_all_init() + +get_binary_option_detail is base on this api + +you will get the raw detail about binary option +``` +Iq.get_all_init() +``` + +## get_all_profit() + +sample + +```python +from iqoptionapi.stable_api import IQ_Option +print("login...") +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +d=Iq.get_all_profit() +print(d["CADCHF"]["turbo"]) +print(d["CADCHF"]["binary"]) +``` + +if you want realtime profit try this +[get real time profit](/all/#get_commission_change) + +## get_betinfo() + +if order not close yet or wrong id it will return False +```python +isSuccessful,dict=Iq.get_betinfo(4452272449) +#Iq.get_betinfo +#INPUT: order id +#OUTPUT:isSuccessful,dict +``` +## get_optioninfo + +### get_optioninfo() + +input how many data you want to get from Trading History(only for binary option) +```python +print(Iq.get_optioninfo(10)) +``` + +### get_optioninfo_v2() + +input how many data you want to get from Trading History(only for binary option) +```python +print(Iq.get_optioninfo_v2(10)) +``` +### get_option_open_by_other_pc() + +if your account is login in other plance/PC and doing buy option + +you can get the option by this function + +```python +import time +from iqoptionapi.stable_api import IQ_Option +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +while True: + #please open website iqoption and buy some binary option + if Iq.get_option_open_by_other_pc()!={}: + break + time.sleep(1) +print("Get option from other Pc and same account") +print(Iq.get_option_open_by_other_pc()) + +id=list(Iq.get_option_open_by_other_pc().keys())[0] +Iq.del_option_open_by_other_pc(id) +print("After del by id") +print(Iq.get_option_open_by_other_pc()) +``` + +## Get mood + +### sample + +```python +from iqoptionapi.stable_api import IQ_Option +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +goal="EURUSD" +Iq.start_mood_stream(goal) +print(Iq.get_traders_mood(goal)) +Iq.stop_mood_stream(goal) +``` + +### start_mood_stream() + +```python +Iq.start_mood_stream(goal) +``` + +### get_traders_mood() + +call get_traders_mood() after start_mood_stream + +```python +Iq.get_traders_mood(goal) +``` + +### get_all_traders_mood() + +it will get all trade mood what you start stream + +```python +Iq.get_all_traders_mood() +#output:(dict) all mood you start +``` + +### stop_mood_stream() + +if you not using the mood ,please stop safe network + +```python +Iq.stop_mood_stream(goal) +``` + diff --git a/doc/en/binary option/expiration_time.png b/doc/en/binary option/expiration_time.png new file mode 100644 index 00000000..160fb591 Binary files /dev/null and b/doc/en/binary option/expiration_time.png differ diff --git a/doc/en/candle/candle.md b/doc/en/candle/candle.md new file mode 100644 index 00000000..42be2e2d --- /dev/null +++ b/doc/en/candle/candle.md @@ -0,0 +1,132 @@ +# Candle + +## get candles + +only get close clndle, not realtime + +``` +Iq.get_candles(ACTIVES,interval,count,endtime) + #ACTIVES:sample input "EURUSD" OR "EURGBP".... youcan + #interval:duration of candles + #count:how many candles you want to get from now to past + #endtime:get candles from past to "endtime" +``` + +### sample + +```python +from iqoptionapi.stable_api import IQ_Option +import time +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +end_from_time=time.time() +ANS=[] +for i in range(70): + data=Iq.get_candles("EURUSD", 60, 1000, end_from_time) + ANS =data+ANS + end_from_time=int(data[0]["from"])-1 +print(ANS) +``` + +## get realtime candles + +### indicator sample + +```python + +from talib.abstract import * +from iqoptionapi.stable_api import IQ_Option +import time +import numpy as np +print("login...") +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +goal="EURUSD" +size=10#size=[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,"all"] +timeperiod=10 +maxdict=20 +print("start stream...") +Iq.start_candles_stream(goal,size,maxdict) +print("Start EMA Sample") +while True: + candles=Iq.get_realtime_candles(goal,size) + + inputs = { + 'open': np.array([]), + 'high': np.array([]), + 'low': np.array([]), + 'close': np.array([]), + 'volume': np.array([]) + } + for timestamp in candles: + + inputs["open"]=np.append(inputs["open"],candles[timestamp]["open"] ) + inputs["high"]=np.append(inputs["open"],candles[timestamp]["max"] ) + inputs["low"]=np.append(inputs["open"],candles[timestamp]["min"] ) + inputs["close"]=np.append(inputs["open"],candles[timestamp]["close"] ) + inputs["volume"]=np.append(inputs["open"],candles[timestamp]["volume"] ) + + + print("Show EMA") + print(EMA(inputs, timeperiod=timeperiod)) + print("\n") + time.sleep(1) +Iq.stop_candles_stream(goal,size) +``` + +### Sample + +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import time +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +print("login...") +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +goal="EURUSD" +size="all"#size=[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,"all"] +maxdict=10 +print("start stream...") +Iq.start_candles_stream(goal,size,maxdict) +#DO something +print("Do something...") +time.sleep(10) + +print("print candles") +cc=Iq.get_realtime_candles(goal,size) +for k in cc: + print(goal,"size",k,cc[k]) +print("stop candle") +Iq.stop_candles_stream(goal,size) +``` + +### size + +![](image/time_interval.png) + +### start_candles_stream() + +```python +goal="EURUSD" +size="all"#size=[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,"all"] +maxdict=10 +print("start stream...") +Iq.start_candles_stream(goal,size,maxdict) +``` + +### get_realtime_candles() + +get_realtime_candles() after call start_candles_stream() + +``` +Iq.get_realtime_candles(goal,size) +``` + +### stop_candles_stream() + +if you not using get_realtime_candles() anymore please close the stream + +```python +Iq.stop_candles_stream(goal,size) +``` \ No newline at end of file diff --git a/doc/en/candle/image/time_interval.png b/doc/en/candle/image/time_interval.png new file mode 100644 index 00000000..e465879b Binary files /dev/null and b/doc/en/candle/image/time_interval.png differ diff --git a/doc/en/digital/digital.md b/doc/en/digital/digital.md new file mode 100644 index 00000000..f94c595b --- /dev/null +++ b/doc/en/digital/digital.md @@ -0,0 +1,275 @@ +# Digital + + +## Payout + +```python +active = 'EURUSD' +payout = Iq.get_digital_payout(active) +print(payout) +``` + +![payout](image/payout.png) + +## Nearest strike mode +![](image/near.png) +### sample + +```python +from iqoptionapi.stable_api import IQ_Option +import time +import random +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +ACTIVES="EURUSD" +duration=1#minute 1 or 5 +amount=1 +Iq.subscribe_strike_list(ACTIVES,duration) +#get strike_list +data=Iq.get_realtime_strike_list(ACTIVES, duration) +print("get strike data") +print(data) +"""data +{'1.127100': + { 'call': + { 'profit': None, + 'id': 'doEURUSD201811120649PT1MC11271' + }, + 'put': + { 'profit': 566.6666666666666, + 'id': 'doEURUSD201811120649PT1MP11271' + } + }............ +} +""" +#get price list +price_list=list(data.keys()) +#random choose Strategy +choose_price=price_list[random.randint(0,len(price_list)-1)] +#get instrument_id +instrument_id=data[choose_price]["call"]["id"] +#get profit +profit=data[choose_price]["call"]["profit"] +print("choose you want to buy") +print("price:",choose_price,"side:call","instrument_id:",instrument_id,"profit:",profit) +#put instrument_id to buy +buy_check,id=Iq.buy_digital(amount,instrument_id) +polling_time=5 +if buy_check: + print("wait for check win") + #check win + while True: + check_close,win_money=Iq.check_win_digital_v2(id,polling_time) + if check_close: + if float(win_money)>0: + win_money=("%.2f" % (win_money)) + print("you win",win_money,"money") + else: + print("you loose") + break + Iq.unsubscribe_strike_list(ACTIVES,duration) +else: + print("fail to buy,please run again") +``` + +### Get all strike list data + +smaple +```python +from iqoptionapi.stable_api import IQ_Option +import time +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +ACTIVES="EURUSD" +duration=1#minute 1 or 5 +Iq.subscribe_strike_list(ACTIVES,duration) +while True: + data=Iq.get_realtime_strike_list(ACTIVES, duration) + for price in data: + print("price",price,data[price]) + time.sleep(5) +Iq.unsubscribe_strike_list(ACTIVES,duration) +``` +#### subscribe_strike_list() + +```python +Iq.subscribe_strike_list(ACTIVES,duration) +``` + +#### get_realtime_strike_list + +you need call subscribe_strike_list() before get_realtime_strike_list() +```python +Iq.get_realtime_strike_list(ACTIVES,duration) +``` + +#### unsubscribe_strike_list() +```python +Iq.unsubscribe_strike_list(ACTIVES,duration) +``` +### buy_digital() + +```python +buy_check,id=Iq.buy_digital(amount,instrument_id) +#get instrument_id from Iq.get_realtime_strike_list +``` + +## Current price mode + +![](image/spot.png) + + + +### buy_digital_spot +buy the digit in current price + +return check and id + +```python +from iqoptionapi.stable_api import IQ_Option + +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +ACTIVES="EURUSD" +duration=1#minute 1 or 5 +amount=1 +action="call"#put +print(Iq.buy_digital_spot(ACTIVES,amount,action,duration)) +``` + +### get_digital_spot_profit_after_sale() + +get Profit After Sale(P/L) + +![](image/profit_after_sale.png) + +sample + +```python +from iqoptionapi.stable_api import IQ_Option +Iq=IQ_Option("email","passord") +ACTIVES="EURUSD" +duration=1#minute 1 or 5 +amount=100 +action="put"#put + +Iq.subscribe_strike_list(ACTIVES,duration) +_,id=Iq.buy_digital_spot(ACTIVES,amount,action,duration) + +while True: + PL=Iq.get_digital_spot_profit_after_sale(id) + if PL!=None: + print(PL) +``` + +### get_digital_current_profit() + +```python +from iqoptionapi.stable_api import IQ_Option +import time +import logging +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +ACTIVES="EURUSD" +duration=1#minute 1 or 5 +Iq.subscribe_strike_list(ACTIVES,duration) +while True: + data=Iq.get_digital_current_profit(ACTIVES, duration) + print(data)#from first print it may be get false,just wait a second you can get the profit + time.sleep(1) +Iq.unsubscribe_strike_list(ACTIVES,duration) +``` + +## check win for digital + +### check_win_digital() + +this api is implement by get_digital_position() + +this function is polling , so need to set polling time +```python +Iq.check_win_digital(id,polling_time)#get the id from Iq.buy_digital +``` +### check_win_digital_v2() + +this api is asynchronous get id data,it only can get id data before you call the buy action. if you restart the program,the asynchronous id data can not get again,so check_win_digital_v2 may not working,so you need to use "check_win_digital"! + +```python + Iq.check_win_digital_v2(id)#get the id from Iq.buy_digital +#return:check_close,win_money +#return sample +#if you loose:Ture,o +#if you win:True,1232.3 +#if trade not clode yet:False,None +``` + +sample code + +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import random +import time +import datetime +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +ACTIVES="EURUSD" +duration=1#minute 1 or 5 +amount=1 +action="call"#put +_,id=(Iq.buy_digital_spot(ACTIVES,amount,action,duration)) +print(id) +if id !="error": + while True: + check,win=Iq.check_win_digital_v2(id) + if check==True: + break + if win<0: + print("you loss "+str(win)+"$") + else: + print("you win "+str(win)+"$") +else: + print("please try again") +``` + +## close_digital_option() + +```python +Iq.close_digital_option(id) +``` + +## get digital data + +smaple1 +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import time +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +ACTIVES="EURUSD-OTC" +duration=1#minute 1 or 5 +amount=1 +action="call"#put +from datetime import datetime + +_,id=Iq.buy_digital_spot(ACTIVES,amount,action,duration) + +while True: + check,_=Iq.check_win_digital(id) + if check: + break +print(Iq.get_digital_position(id)) +print(Iq.check_win_digital(id)) +``` + +sample2 + +```python +print(Iq.get_positions("digital-option")) +print(Iq.get_digital_position(2323433))#in put the id +print(Iq.get_position_history("digital-option")) +``` \ No newline at end of file diff --git a/doc/en/digital/image/near.png b/doc/en/digital/image/near.png new file mode 100644 index 00000000..1b8e10f1 Binary files /dev/null and b/doc/en/digital/image/near.png differ diff --git a/doc/en/digital/image/payout.png b/doc/en/digital/image/payout.png new file mode 100644 index 00000000..e81e5aff Binary files /dev/null and b/doc/en/digital/image/payout.png differ diff --git a/doc/en/digital/image/profit_after_sale.png b/doc/en/digital/image/profit_after_sale.png new file mode 100644 index 00000000..8839db1f Binary files /dev/null and b/doc/en/digital/image/profit_after_sale.png differ diff --git a/doc/en/digital/image/spot.png b/doc/en/digital/image/spot.png new file mode 100644 index 00000000..752803b3 Binary files /dev/null and b/doc/en/digital/image/spot.png differ diff --git a/doc/en/fef/fef.md b/doc/en/fef/fef.md new file mode 100644 index 00000000..c2ef83c0 --- /dev/null +++ b/doc/en/fef/fef.md @@ -0,0 +1,286 @@ +# Forex&Stock&Commodities&Crypto&ETFs + +## instrument_type and instrument_id +you can search instrument_type and instrument_id from this file + +search [instrument_type and instrument_id](instrument.txt) + +## sample + +```python +from iqoptionapi.stable_api import IQ_Option +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +instrument_type="crypto" +instrument_id="BTCUSD" +side="buy"#input:"buy"/"sell" +amount=1.23#input how many Amount you want to play + +#"leverage"="Multiplier" +leverage=3#you can get more information in get_available_leverages() + +type="market"#input:"market"/"limit"/"stop" + +#for type="limit"/"stop" + +# only working by set type="limit" +limit_price=None#input:None/value(float/int) + +# only working by set type="stop" +stop_price=None#input:None/value(float/int) + +#"percent"=Profit Percentage +#"price"=Asset Price +#"diff"=Profit in Money + +stop_lose_kind="percent"#input:None/"price"/"diff"/"percent" +stop_lose_value=95#input:None/value(float/int) + +take_profit_kind=None#input:None/"price"/"diff"/"percent" +take_profit_value=None#input:None/value(float/int) + +#"use_trail_stop"="Trailing Stop" +use_trail_stop=True#True/False + +#"auto_margin_call"="Use Balance to Keep Position Open" +auto_margin_call=False#True/False +#if you want "take_profit_kind"& +# "take_profit_value"& +# "stop_lose_kind"& +# "stop_lose_value" all being "Not Set","auto_margin_call" need to set:True + +use_token_for_commission=False#True/False + +check,order_id=Iq.buy_order(instrument_type=instrument_type, instrument_id=instrument_id, + side=side, amount=amount,leverage=leverage, + type=type,limit_price=limit_price, stop_price=stop_price, + stop_lose_value=stop_lose_value, stop_lose_kind=stop_lose_kind, + take_profit_value=take_profit_value, take_profit_kind=take_profit_kind, + use_trail_stop=use_trail_stop, auto_margin_call=auto_margin_call, + use_token_for_commission=use_token_for_commission) +print(Iq.get_order(order_id)) +print(Iq.get_positions("crypto")) +print(Iq.get_position_history("crypto")) +print(Iq.get_available_leverages("crypto","BTCUSD")) +print(Iq.close_position(order_id)) +print(Iq.get_overnight_fee("crypto","BTCUSD")) +``` + +## buy_order() +return (True/False,buy_order_id/False) + +if Buy sucess return (True,buy_order_id) + +"percent"=Profit Percentage + +"price"=Asset Price + +"diff"=Profit in Money + + +|parameter||||| +--|--|--|--|--| +instrument_type|[instrument_type](#instrumenttypeid) +instrument_id| [instrument_id](#instrumenttypeid) +side|"buy"|"sell" +amount|value(float/int) +leverage|value(int) +type|"market"|"limit"|"stop" +limit_price|None|value(float/int):Only working by set type="limit" +stop_price|None|value(float/int):Only working by set type="stop" +stop_lose_kind|None|"price"|"diff"|"percent" +stop_lose_value|None|value(float/int) +take_profit_kind|None|"price"|"diff"|"percent" +take_profit_value|None|value(float/int) +use_trail_stop|True|False +auto_margin_call|True|False +use_token_for_commission|True|False + +```python +check,order_id=Iq.buy_order( + instrument_type=instrument_type, instrument_id=instrument_id, + side=side, amount=amount,leverage=leverage, + type=type,limit_price=limit_price, stop_price=stop_price, + stop_lose_kind=stop_lose_kind, + stop_lose_value=stop_lose_value, + take_profit_kind=take_profit_kind, + take_profit_value=take_profit_value, + use_trail_stop=use_trail_stop, auto_margin_call=auto_margin_call, + use_token_for_commission=use_token_for_commission) + +``` + +## change_order() +ID_Name=""order_id" | ID_Name="position_id" +:-------------------------:|:-------------------------: +![](image/change_ID_Name_order_id.png) | ![](image/change_ID_Name_position_id.png) + + +|parameter||||| +--|--|--|--|--| +ID_Name|"position_id"|"order_id" +order_id|"you need to get order_id from buy_order()" +stop_lose_kind|None|"price"|"diff"|"percent" +stop_lose_value|None|value(float/int) +take_profit_kind|None|"price"|"diff"|"percent" +take_profit_value|None|value(float/int) +use_trail_stop|True|False +auto_margin_call|True|False + +### sample + +```python +ID_Name="order_id"#"position_id"/"order_id" +stop_lose_kind=None +stop_lose_value=None +take_profit_kind="percent" +take_profit_value=200 +use_trail_stop=False +auto_margin_call=True +Iq.change_order(ID_Name=ID_Name,order_id=order_id, + stop_lose_kind=stop_lose_kind,stop_lose_value=stop_lose_value, + take_profit_kind=take_profit_kind,take_profit_value=take_profit_value, + use_trail_stop=use_trail_stop,auto_margin_call=auto_margin_call) +``` + +## get_order() + +get infomation about buy_order_id + +return (True/False,get_order,None) + +```python +Iq.get_order(buy_order_id) +``` + +## get_pending() + +you will get there data + +![](image/get_pending.png) + +```python +Iq.get_pending(instrument_type) +``` + +## get_positions() + +you will get there data + +![](image/get_positions.png) + + +return (True/False,get_positions,None) + +not support ""turbo-option"" + +instrument_type="crypto","forex","fx-option","multi-option","cfd","digital-option" + +```python +Iq.get_positions(instrument_type) +``` + +## get_position() + +you will get there data + + +![](image/get_position.png) + +you will get one position by buy_order_id + +return (True/False,position data,None) + +```python +Iq.get_positions(buy_order_id) +``` + +## get_position_history +you will get there data + +![](image/get_position_history.png) + +### get_position_history() + +return (True/False,position_history,None) + +``` +Iq.get_position_history(instrument_type) +``` + +### get_position_history_v2 + +instrument_type="crypto","forex","fx-option","turbo-option","multi-option","cfd","digital-option" + +get_position_history_v2(instrument_type,limit,offset,start,end) + +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import random +import time +import datetime +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +#instrument_type="crypto","forex","fx-option","turbo-option","multi-option","cfd","digital-option" +instrument_type="digital-option" +limit=2#How many you want to get +offset=0#offset from end time,if end time is 0,it mean get the data from now +start=0#start time Timestamp +end=0#Timestamp +data=Iq.get_position_history_v2(instrument_type,limit,offset,start,end) + +print(data) + +#--------- this will get data start from 2019/7/1(end) to 2019/1/1(start) and only get 2(limit) data and offset is 0 +instrument_type="digital-option" +limit=2#How many you want to get +offset=0#offset from end time,if end time is 0,it mean get the data from now +start=int(time.mktime(datetime.datetime.strptime("2019/1/1", "%Y/%m/%d").timetuple())) +end=int(time.mktime(datetime.datetime.strptime("2019/7/1", "%Y/%m/%d").timetuple())) +data=Iq.get_position_history_v2(instrument_type,limit,offset,start,end) +print(data) +``` + +## get_available_leverages() + +get available leverages + +return (True/False,available_leverages,None) + +```python +Iq.get_available_leverages(instrument_type,actives) +``` + +## cancel_order() + +you will do this + +![](image/cancel_order.png) + +return (True/False) + +```python +Iq.cancel_order(buy_order_id) +``` + +## close_position() + +you will do this + +![](image/close_position.png) + +return (True/False) + +```python +Iq.close_position(buy_order_id) +``` + +## get_overnight_fee() + +return (True/False,overnight_fee,None) + +```python +Iq.get_overnight_fee(instrument_type,active) +``` \ No newline at end of file diff --git a/doc/en/fef/image/cancel_order.png b/doc/en/fef/image/cancel_order.png new file mode 100644 index 00000000..bbdb6193 Binary files /dev/null and b/doc/en/fef/image/cancel_order.png differ diff --git a/doc/en/fef/image/change_ID_Name_order_id.png b/doc/en/fef/image/change_ID_Name_order_id.png new file mode 100644 index 00000000..66900fcf Binary files /dev/null and b/doc/en/fef/image/change_ID_Name_order_id.png differ diff --git a/doc/en/fef/image/change_ID_Name_position_id.png b/doc/en/fef/image/change_ID_Name_position_id.png new file mode 100644 index 00000000..61e407b1 Binary files /dev/null and b/doc/en/fef/image/change_ID_Name_position_id.png differ diff --git a/doc/en/fef/image/close_position.png b/doc/en/fef/image/close_position.png new file mode 100644 index 00000000..7f52ea76 Binary files /dev/null and b/doc/en/fef/image/close_position.png differ diff --git a/doc/en/fef/image/get_pending.png b/doc/en/fef/image/get_pending.png new file mode 100644 index 00000000..76d5660f Binary files /dev/null and b/doc/en/fef/image/get_pending.png differ diff --git a/doc/en/fef/image/get_position.png b/doc/en/fef/image/get_position.png new file mode 100644 index 00000000..29567127 Binary files /dev/null and b/doc/en/fef/image/get_position.png differ diff --git a/doc/en/fef/image/get_position_history.png b/doc/en/fef/image/get_position_history.png new file mode 100644 index 00000000..16c9ec03 Binary files /dev/null and b/doc/en/fef/image/get_position_history.png differ diff --git a/doc/en/fef/image/get_positions.png b/doc/en/fef/image/get_positions.png new file mode 100644 index 00000000..ff757ff6 Binary files /dev/null and b/doc/en/fef/image/get_positions.png differ diff --git a/doc/en/fef/instrument.txt b/doc/en/fef/instrument.txt new file mode 100644 index 00000000..920723d1 --- /dev/null +++ b/doc/en/fef/instrument.txt @@ -0,0 +1,318 @@ +Name: NZD/SEK instrument_id: "NZDSEK" instrument_type: "forex" +Name: NZD/USD instrument_id: "NZDUSD" instrument_type: "forex" +Name: CAD/TRY instrument_id: "CADTRY" instrument_type: "forex" +Name: EUR/CHF instrument_id: "EURCHF" instrument_type: "forex" +Name: USD/THB instrument_id: "USDTHB" instrument_type: "forex" +Name: EUR/TRY instrument_id: "EURTRY" instrument_type: "forex" +Name: GBP/AUD instrument_id: "GBPAUD" instrument_type: "forex" +Name: AUD/USD instrument_id: "AUDUSD" instrument_type: "forex" +Name: EUR/MXN instrument_id: "EURMXN" instrument_type: "forex" +Name: USD/CHF instrument_id: "USDCHF" instrument_type: "forex" +Name: NOK/DKK instrument_id: "NOKDKK" instrument_type: "forex" +Name: EUR/NOK instrument_id: "EURNOK" instrument_type: "forex" +Name: SEK/JPY instrument_id: "SEKJPY" instrument_type: "forex" +Name: CAD/NOK instrument_id: "CADNOK" instrument_type: "forex" +Name: NOK/SEK instrument_id: "NOKSEK" instrument_type: "forex" +Name: GBP/HUF instrument_id: "GBPHUF" instrument_type: "forex" +Name: GBP/SGD instrument_id: "GBPSGD" instrument_type: "forex" +Name: AUD/NZD instrument_id: "AUDNZD" instrument_type: "forex" +Name: GBP/JPY instrument_id: "GBPJPY" instrument_type: "forex" +Name: CHF/SEK instrument_id: "CHFSEK" instrument_type: "forex" +Name: AUD/NOK instrument_id: "AUDNOK" instrument_type: "forex" +Name: GBP/NOK instrument_id: "GBPNOK" instrument_type: "forex" +Name: AUD/DKK instrument_id: "AUDDKK" instrument_type: "forex" +Name: EUR/AUD instrument_id: "EURAUD" instrument_type: "forex" +Name: AUD/CHF instrument_id: "AUDCHF" instrument_type: "forex" +Name: GBP/CHF instrument_id: "GBPCHF" instrument_type: "forex" +Name: AUD/CAD instrument_id: "AUDCAD" instrument_type: "forex" +Name: CHF/DKK instrument_id: "CHFDKK" instrument_type: "forex" +Name: AUD/TRY instrument_id: "AUDTRY" instrument_type: "forex" +Name: NZD/CHF instrument_id: "NZDCHF" instrument_type: "forex" +Name: USD/SEK instrument_id: "USDSEK" instrument_type: "forex" +Name: GBP/NZD instrument_id: "GBPNZD" instrument_type: "forex" +Name: EUR/DKK instrument_id: "EURDKK" instrument_type: "forex" +Name: NZD/DKK instrument_id: "NZDDKK" instrument_type: "forex" +Name: CAD/SGD instrument_id: "CADSGD" instrument_type: "forex" +Name: EUR/GBP instrument_id: "EURGBP" instrument_type: "forex" +Name: EUR/CAD instrument_id: "EURCAD" instrument_type: "forex" +Name: USD/CZK instrument_id: "USDCZK" instrument_type: "forex" +Name: AUD/MXN instrument_id: "AUDMXN" instrument_type: "forex" +Name: EUR/NZD instrument_id: "EURNZD" instrument_type: "forex" +Name: GBP/PLN instrument_id: "GBPPLN" instrument_type: "forex" +Name: NZD/NOK instrument_id: "NZDNOK" instrument_type: "forex" +Name: AUD/SGD instrument_id: "AUDSGD" instrument_type: "forex" +Name: GBP/SEK instrument_id: "GBPSEK" instrument_type: "forex" +Name: NZD/CAD instrument_id: "NZDCAD" instrument_type: "forex" +Name: NZD/MXN instrument_id: "NZDMXN" instrument_type: "forex" +Name: NZD/TRY instrument_id: "NZDTRY" instrument_type: "forex" +Name: CHF/SGD instrument_id: "CHFSGD" instrument_type: "forex" +Name: USD/MXN instrument_id: "USDMXN" instrument_type: "forex" +Name: EUR/HUF instrument_id: "EURHUF" instrument_type: "forex" +Name: GBP/CAD instrument_id: "GBPCAD" instrument_type: "forex" +Name: USD/TRY instrument_id: "USDTRY" instrument_type: "forex" +Name: USD/JPY instrument_id: "USDJPY" instrument_type: "forex" +Name: EUR/USD instrument_id: "EURUSD" instrument_type: "forex" +Name: AUD/SEK instrument_id: "AUDSEK" instrument_type: "forex" +Name: CHF/NOK instrument_id: "CHFNOK" instrument_type: "forex" +Name: USD/PLN instrument_id: "USDPLN" instrument_type: "forex" +Name: USD/HUF instrument_id: "USDHUF" instrument_type: "forex" +Name: CHF/JPY instrument_id: "CHFJPY" instrument_type: "forex" +Name: GBP/ILS instrument_id: "GBPILS" instrument_type: "forex" +Name: NZD/JPY instrument_id: "NZDJPY" instrument_type: "forex" +Name: CHF/TRY instrument_id: "CHFTRY" instrument_type: "forex" +Name: CAD/JPY instrument_id: "CADJPY" instrument_type: "forex" +Name: USD/RUB instrument_id: "USDRUB" instrument_type: "forex" +Name: SGD/JPY instrument_id: "SGDJPY" instrument_type: "forex" +Name: GBP/USD instrument_id: "GBPUSD" instrument_type: "forex" +Name: CAD/PLN instrument_id: "CADPLN" instrument_type: "forex" +Name: DKK/SGD instrument_id: "DKKSGD" instrument_type: "forex" +Name: NZD/SGD instrument_id: "NZDSGD" instrument_type: "forex" +Name: AUD/JPY instrument_id: "AUDJPY" instrument_type: "forex" +Name: NOK/JPY instrument_id: "NOKJPY" instrument_type: "forex" +Name: PLN/SEK instrument_id: "PLNSEK" instrument_type: "forex" +Name: USD/SGD instrument_id: "USDSGD" instrument_type: "forex" +Name: GBP/MXN instrument_id: "GBPMXN" instrument_type: "forex" +Name: USD/CAD instrument_id: "USDCAD" instrument_type: "forex" +Name: SEK/DKK instrument_id: "SEKDKK" instrument_type: "forex" +Name: DKK/PLN instrument_id: "DKKPLN" instrument_type: "forex" +Name: CAD/MXN instrument_id: "CADMXN" instrument_type: "forex" +Name: GBP/TRY instrument_id: "GBPTRY" instrument_type: "forex" +Name: EUR/SGD instrument_id: "EURSGD" instrument_type: "forex" +Name: NZD/ZAR instrument_id: "NZDZAR" instrument_type: "forex" +Name: EUR/CZK instrument_id: "EURCZK" instrument_type: "forex" +Name: EUR/JPY instrument_id: "EURJPY" instrument_type: "forex" +Name: CAD/CHF instrument_id: "CADCHF" instrument_type: "forex" +Name: USD/INR instrument_id: "USDINR" instrument_type: "forex" +Name: USD/BRL instrument_id: "USDBRL" instrument_type: "forex" +Name: USD/NOK instrument_id: "USDNOK" instrument_type: "forex" +Name: USD/DKK instrument_id: "USDDKK" instrument_type: "forex" +Name: China Large-Cap ETF instrument_id: "FXI" instrument_type: "cfd" +Name: IBM Corporation instrument_id: "IBM:US" instrument_type: "cfd" +Name: IDEXX Laboratories instrument_id: "IDXX" instrument_type: "cfd" +Name: Siemens instrument_id: "SIED-CHIX" instrument_type: "cfd" +Name: Roche instrument_id: "ROGZ-CHIX" instrument_type: "cfd" +Name: Airbus SE instrument_id: "AIRP-CHIX" instrument_type: "cfd" +Name: AbbVie instrument_id: "ABBV:US" instrument_type: "cfd" +Name: Concho Resources instrument_id: "CXO:US" instrument_type: "cfd" +Name: Verizon instrument_id: "VZ:US" instrument_type: "cfd" +Name: Unilever instrument_id: "ULVRL-CHIX" instrument_type: "cfd" +Name: Lockheed Martin instrument_id: "LMT:US" instrument_type: "cfd" +Name: NextEra Energy instrument_id: "NEE:US" instrument_type: "cfd" +Name: US 100 instrument_id: "USNDAQ100" instrument_type: "cfd" +Name: Entergy instrument_id: "ETR:US" instrument_type: "cfd" +Name: QQQ Trust, Series 1 instrument_id: "QQQ" instrument_type: "cfd" +Name: DTE Energy instrument_id: "DTE:US" instrument_type: "cfd" +Name: Tesco instrument_id: "TSCOL-CHIX" instrument_type: "cfd" +Name: First Solar instrument_id: "FSLR:US" instrument_type: "cfd" +Name: Pfizer instrument_id: "PFE:US" instrument_type: "cfd" +Name: Eastman Chemical instrument_id: "EMN:US" instrument_type: "cfd" +Name: JP Morgan Chase instrument_id: "JPM" instrument_type: "cfd" +Name: Google instrument_id: "GOOGLE" instrument_type: "cfd" +Name: Fastenal instrument_id: "FAST:US" instrument_type: "cfd" +Name: HSBC Holdings PLC instrument_id: "HSBAL-CHIX" instrument_type: "cfd" +Name: DaVita instrument_id: "DVA:US" instrument_type: "cfd" +Name: Utilities SPDR instrument_id: "XLU" instrument_type: "cfd" +Name: Federal Realty instrument_id: "FRT:US" instrument_type: "cfd" +Name: Commerzbank instrument_id: "CBKD-CHIX" instrument_type: "cfd" +Name: Amgen instrument_id: "AMGN:US" instrument_type: "cfd" +Name: Silver instrument_id: "XAGUSD" instrument_type: "cfd" +Name: Resmed Inc instrument_id: "RMD" instrument_type: "cfd" +Name: Equifax instrument_id: "EFX:US" instrument_type: "cfd" +Name: Digital Realty Trust instrument_id: "DLR:US" instrument_type: "cfd" +Name: Adobe Systems instrument_id: "ADBE:US" instrument_type: "cfd" +Name: Autodesk instrument_id: "ADSK:US" instrument_type: "cfd" +Name: Barclays instrument_id: "BARCL-CHIX" instrument_type: "cfd" +Name: Spotify instrument_id: "SPOT" instrument_type: "cfd" +Name: Standard Chartered instrument_id: "STANL-CHIX" instrument_type: "cfd" +Name: Alibaba instrument_id: "ALIBABA" instrument_type: "cfd" +Name: Freeport-McMoRan instrument_id: "FCX:US" instrument_type: "cfd" +Name: Delta Air Lines instrument_id: "DAL:US" instrument_type: "cfd" +Name: Materials Select Sector SPDR instrument_id: "XLB" instrument_type: "cfd" +Name: Amazon instrument_id: "AMAZON" instrument_type: "cfd" +Name: Semiconductor ETF instrument_id: "SMH" instrument_type: "cfd" +Name: S&P 500 ETF instrument_id: "SPY" instrument_type: "cfd" +Name: Caterpillar instrument_id: "CAT:US" instrument_type: "cfd" +Name: US 30 instrument_id: "US30" instrument_type: "cfd" +Name: ConocoPhillips instrument_id: "COP:US" instrument_type: "cfd" +Name: Flowserve instrument_id: "FLS:US" instrument_type: "cfd" +Name: Goldman Sachs instrument_id: "GS" instrument_type: "cfd" +Name: AU 200 instrument_id: "AUS200" instrument_type: "cfd" +Name: Edison instrument_id: "EIX:US" instrument_type: "cfd" +Name: Crude Oil WTI instrument_id: "USOUSD" instrument_type: "cfd" +Name: MSCI Mexico ETF instrument_id: "EWW" instrument_type: "cfd" +Name: General Electric instrument_id: "GE" instrument_type: "cfd" +Name: Micron Technology instrument_id: "MU:US" instrument_type: "cfd" +Name: Telefónica instrument_id: "TEFE-CHIX" instrument_type: "cfd" +Name: Procter & Gamble instrument_id: "PG:US" instrument_type: "cfd" +Name: Accenture instrument_id: "ACN:US" instrument_type: "cfd" +Name: Costco instrument_id: "COST:US" instrument_type: "cfd" +Name: Medtronic instrument_id: "MDT:US" instrument_type: "cfd" +Name: MSCI Emerging Markets ETF instrument_id: "EEM" instrument_type: "cfd" +Name: Expeditors instrument_id: "EXPD:US" instrument_type: "cfd" +Name: Facebook instrument_id: "FACEBOOK" instrument_type: "cfd" +Name: Tesla instrument_id: "TESLA" instrument_type: "cfd" +Name: Merck instrument_id: "MRKD-CHIX" instrument_type: "cfd" +Name: FirstEnergy instrument_id: "FE:US" instrument_type: "cfd" +Name: Altria instrument_id: "MO:US" instrument_type: "cfd" +Name: Core MSCI Emerging Markets instrument_id: "IEMG" instrument_type: "cfd" +Name: AS Roma instrument_id: "ASRM" instrument_type: "cfd" +Name: Bayer instrument_id: "BAYND-CHIX" instrument_type: "cfd" +Name: Continental instrument_id: "COND-CHIX" instrument_type: "cfd" +Name: Qualcomm instrument_id: "QCOM:US" instrument_type: "cfd" +Name: Vodafone Group PLC instrument_id: "VODL-CHIX" instrument_type: "cfd" +Name: Visa instrument_id: "V:US" instrument_type: "cfd" +Name: AT&T instrument_id: "T:US" instrument_type: "cfd" +Name: FedEx instrument_id: "FDX:US" instrument_type: "cfd" +Name: Frontier Communications instrument_id: "FTR:US" instrument_type: "cfd" +Name: Teleflex Inc instrument_id: "TFX" instrument_type: "cfd" +Name: Twitter Inc instrument_id: "TWITTER" instrument_type: "cfd" +Name: Royal Bank of Scotland instrument_id: "RBSL-CHIX" instrument_type: "cfd" +Name: S&P Oil & Gas Explor & Product instrument_id: "XOP" instrument_type: "cfd" +Name: Deutsche Post instrument_id: "DPWD-CHIX" instrument_type: "cfd" +Name: General Motors instrument_id: "GM" instrument_type: "cfd" +Name: US 500 instrument_id: "USSPX500" instrument_type: "cfd" +Name: Bank of America instrument_id: "BAC:US" instrument_type: "cfd" +Name: Nike instrument_id: "NIKE" instrument_type: "cfd" +Name: Darden Restaurants instrument_id: "DRI:US" instrument_type: "cfd" +Name: UBS instrument_id: "UBSGZ-CHIX" instrument_type: "cfd" +Name: Discover Financial Services instrument_id: "DFS:US" instrument_type: "cfd" +Name: Emerson Electric instrument_id: "EMR:US" instrument_type: "cfd" +Name: Advance Auto Parts instrument_id: "AAP:US" instrument_type: "cfd" +Name: Duke Realty Corp instrument_id: "DRE" instrument_type: "cfd" +Name: Rolls-Royce instrument_id: "RRL-CHIX" instrument_type: "cfd" +Name: Wells Fargo instrument_id: "WFC:US" instrument_type: "cfd" +Name: CitiGroup instrument_id: "CITI" instrument_type: "cfd" +Name: Cisco Systems instrument_id: "CISCO" instrument_type: "cfd" +Name: Apple instrument_id: "APPLE" instrument_type: "cfd" +Name: MSCI Japan ETF instrument_id: "EWJ" instrument_type: "cfd" +Name: F5 Networks instrument_id: "FFIV:US" instrument_type: "cfd" +Name: Heinz instrument_id: "KHC:US" instrument_type: "cfd" +Name: British American Tobacco instrument_id: "BATSL-CHIX" instrument_type: "cfd" +Name: Nvidia instrument_id: "NVDA:US" instrument_type: "cfd" +Name: E.ON instrument_id: "EOAND-CHIX" instrument_type: "cfd" +Name: Citrix Systems instrument_id: "CTXS:US" instrument_type: "cfd" +Name: UK 100 instrument_id: "UK100" instrument_type: "cfd" +Name: BBVA instrument_id: "BBVAE-CHIX" instrument_type: "cfd" +Name: Philip Morris Int. instrument_id: "PM:US" instrument_type: "cfd" +Name: Consolidated Edison instrument_id: "ED:US" instrument_type: "cfd" +Name: Netflix instrument_id: "NFLX:US" instrument_type: "cfd" +Name: Allianz instrument_id: "ALVD-CHIX" instrument_type: "cfd" +Name: FR 40 instrument_id: "FRANCE40" instrument_type: "cfd" +Name: Schlumberger instrument_id: "SLB:US" instrument_type: "cfd" +Name: Platinum instrument_id: "XPTUSD" instrument_type: "cfd" +Name: Consumer Discretionary SPDR instrument_id: "XLY" instrument_type: "cfd" +Name: BHP Billiton instrument_id: "BLTL-CHIX" instrument_type: "cfd" +Name: Credit Suisse instrument_id: "CSGNZ-CHIX" instrument_type: "cfd" +Name: Activision Blizzard instrument_id: "ATVI:US" instrument_type: "cfd" +Name: Hasbro instrument_id: "HAS:US" instrument_type: "cfd" +Name: Bristol-Myers Squibb instrument_id: "BMY:US" instrument_type: "cfd" +Name: Equity Residential instrument_id: "EQR:US" instrument_type: "cfd" +Name: Suncor Energy Inc. instrument_id: "SU" instrument_type: "cfd" +Name: Cintas instrument_id: "CTAS:US" instrument_type: "cfd" +Name: Morgan Stanley instrument_id: "MORSTAN" instrument_type: "cfd" +Name: Devon Energy instrument_id: "DVN:US" instrument_type: "cfd" +Name: Dun & Bradstreet instrument_id: "DNB:US" instrument_type: "cfd" +Name: S&P Metals & Mining ETF instrument_id: "XME" instrument_type: "cfd" +Name: SP 35 instrument_id: "SPAIN35" instrument_type: "cfd" +Name: Boeing instrument_id: "BA:US" instrument_type: "cfd" +Name: Ferrari instrument_id: "FERRARI" instrument_type: "cfd" +Name: US Real Estate ETF instrument_id: "IYR" instrument_type: "cfd" +Name: Dover instrument_id: "DOV:US" instrument_type: "cfd" +Name: Honeywell instrument_id: "HON:US" instrument_type: "cfd" +Name: Marks & Spencer instrument_id: "MKSL-CHIX" instrument_type: "cfd" +Name: BMW instrument_id: "BMWD-CHIX" instrument_type: "cfd" +Name: HK 50 instrument_id: "HONGKONG50" instrument_type: "cfd" +Name: PayPal instrument_id: "PYPL:US" instrument_type: "cfd" +Name: Alcoa instrument_id: "AA:US" instrument_type: "cfd" +Name: CVS Health instrument_id: "CVS:US" instrument_type: "cfd" +Name: iShares Russell 2000 ETF instrument_id: "IWM" instrument_type: "cfd" +Name: Walgreens Boots All. instrument_id: "WBA:US" instrument_type: "cfd" +Name: ANSYS instrument_id: "ANSS" instrument_type: "cfd" +Name: Energy SPDR instrument_id: "XLE" instrument_type: "cfd" +Name: Wheat instrument_id: "W1" instrument_type: "cfd" +Name: Ecolab instrument_id: "ECL:US" instrument_type: "cfd" +Name: Starbucks instrument_id: "SBUX:US" instrument_type: "cfd" +Name: Heineken Holding NV instrument_id: "HEIOA-CHIX" instrument_type: "cfd" +Name: Quest Diagnostics instrument_id: "DGX:US" instrument_type: "cfd" +Name: easyJet instrument_id: "EZJL-CHIX" instrument_type: "cfd" +Name: JP 225 instrument_id: "JAPAN225" instrument_type: "cfd" +Name: AMD instrument_id: "AMD" instrument_type: "cfd" +Name: Colgate-Palmolive instrument_id: "CL:US" instrument_type: "cfd" +Name: Salesforce.com instrument_id: "CRM:US" instrument_type: "cfd" +Name: Technology SPDR instrument_id: "XLK" instrument_type: "cfd" +Name: Dropbox instrument_id: "DBX" instrument_type: "cfd" +Name: Fidelity National Information Services instrument_id: "FIS:US" instrument_type: "cfd" +Name: 3M Company instrument_id: "MMM:US" instrument_type: "cfd" +Name: Daimler instrument_id: "DAID-CHIX" instrument_type: "cfd" +Name: Baidu instrument_id: "BAIDU" instrument_type: "cfd" +Name: Wal-Mart Stores instrument_id: "WMT:US" instrument_type: "cfd" +Name: Exxon Mobil instrument_id: "XOM:US" instrument_type: "cfd" +Name: Raytheon instrument_id: "RTN:US" instrument_type: "cfd" +Name: eBay instrument_id: "EBAY:US" instrument_type: "cfd" +Name: Discovery – Class A instrument_id: "DISCA:US" instrument_type: "cfd" +Name: Oil Services ETF instrument_id: "OIH" instrument_type: "cfd" +Name: Microsoft instrument_id: "MSFT" instrument_type: "cfd" +Name: Chevron instrument_id: "CVX:US" instrument_type: "cfd" +Name: Lloyds Banking Group PLC instrument_id: "LLOYL-CHIX" instrument_type: "cfd" +Name: 20+ Year Treasury Bond ETF instrument_id: "TLT" instrument_type: "cfd" +Name: Adidas instrument_id: "ADSD-CHIX" instrument_type: "cfd" +Name: Comcast – Class A instrument_id: "CMCSA:US" instrument_type: "cfd" +Name: Danaher instrument_id: "DHR:US" instrument_type: "cfd" +Name: Align Technology instrument_id: "ALGN" instrument_type: "cfd" +Name: Volkswagen instrument_id: "VOW3D-CHIX" instrument_type: "cfd" +Name: Fiserv instrument_id: "FISV:US" instrument_type: "cfd" +Name: L'Oreal instrument_id: "ORP-CHIX" instrument_type: "cfd" +Name: D. R. Horton instrument_id: "DHI:US" instrument_type: "cfd" +Name: Deutsche Telekom instrument_id: "DTED-CHIX" instrument_type: "cfd" +Name: Gold Miners ETF instrument_id: "GDX" instrument_type: "cfd" +Name: Gold instrument_id: "XAUUSD" instrument_type: "cfd" +Name: Extra Space Storage instrument_id: "EXR:US" instrument_type: "cfd" +Name: Manchester United instrument_id: "MANU" instrument_type: "cfd" +Name: Banco Santander instrument_id: "SANE-CHIX" instrument_type: "cfd" +Name: Abbott Labs instrument_id: "ABT:US" instrument_type: "cfd" +Name: FMC Corporation instrument_id: "FMC:US" instrument_type: "cfd" +Name: Snapchat instrument_id: "SNAP" instrument_type: "cfd" +Name: ThyssenKrupp instrument_id: "TKAD-CHIX" instrument_type: "cfd" +Name: GER 30 instrument_id: "GERMANY30" instrument_type: "cfd" +Name: Fortune Brands Home & Security instrument_id: "FBHS:US" instrument_type: "cfd" +Name: Crude Oil Brent instrument_id: "UKOUSD" instrument_type: "cfd" +Name: Coca Cola instrument_id: "COKE" instrument_type: "cfd" +Name: Essex Property Trust instrument_id: "ESS:US" instrument_type: "cfd" +Name: Wm Morrison Supermarkets instrument_id: "MRWL-CHIX" instrument_type: "cfd" +Name: Gilead Sciences instrument_id: "GILD:US" instrument_type: "cfd" +Name: MasterCard instrument_id: "MA:US" instrument_type: "cfd" +Name: Nestlé instrument_id: "NESNZ-CHIX" instrument_type: "cfd" +Name: CenturyLink instrument_id: "CTL:US" instrument_type: "cfd" +Name: Deutsche Bank instrument_id: "DBKD-CHIX" instrument_type: "cfd" +Name: T-Mobile US, Inc. instrument_id: "TMUS" instrument_type: "cfd" +Name: McDonald's instrument_id: "MCDON" instrument_type: "cfd" +Name: Diamond Offshore Drilling instrument_id: "DO:US" instrument_type: "cfd" +Name: Intel instrument_id: "INTEL" instrument_type: "cfd" +Name: Fifth Third Bank instrument_id: "FITB:US" instrument_type: "cfd" +Name: Best Buy instrument_id: "BBY:US" instrument_type: "cfd" +Name: EQT Corporation instrument_id: "EQT:US" instrument_type: "cfd" +Name: BP PLC instrument_id: "BPL-CHIX" instrument_type: "cfd" +Name: E-Trade instrument_id: "ETFC:US" instrument_type: "cfd" +Name: Stryker instrument_id: "SYK:US" instrument_type: "cfd" +Name: Dow Jones Industrial Average ETF instrument_id: "DIA" instrument_type: "cfd" +Name: NEM ×20 instrument_id: "XEMUSD-L" instrument_type: "crypto" +Name: Ethereum instrument_id: "ETHUSD" instrument_type: "crypto" +Name: EOS ×20 instrument_id: "EOSUSD-L" instrument_type: "crypto" +Name: Qtum instrument_id: "QTMUSD" instrument_type: "crypto" +Name: EOS instrument_id: "EOSUSD" instrument_type: "crypto" +Name: Bitcoin Cash ×20 instrument_id: "BCHUSD-L" instrument_type: "crypto" +Name: Bitcoin instrument_id: "BTCUSD" instrument_type: "crypto" +Name: TRON instrument_id: "TRXUSD" instrument_type: "crypto" +Name: Ripple ×20 instrument_id: "XRPUSD-L" instrument_type: "crypto" +Name: Stellar ×20 instrument_id: "XLMUSD-L" instrument_type: "crypto" +Name: Ethereum ×50 instrument_id: "ETHUSD-L" instrument_type: "crypto" +Name: ZCash instrument_id: "ZECUSD" instrument_type: "crypto" +Name: Litecoin instrument_id: "LTCUSD" instrument_type: "crypto" +Name: Bitcoin Cash instrument_id: "BCHUSD" instrument_type: "crypto" +Name: Bitcoin ×100 instrument_id: "BTCUSD-L" instrument_type: "crypto" +Name: OmiseGo instrument_id: "OMGUSD" instrument_type: "crypto" +Name: TRON ×50 instrument_id: "TRXUSD-L" instrument_type: "crypto" +Name: Cardano ×20 instrument_id: "ADAUSD-L" instrument_type: "crypto" +Name: Dash instrument_id: "DSHUSD" instrument_type: "crypto" +Name: Litecoin ×20 instrument_id: "LTCUSD-L" instrument_type: "crypto" +Name: Ripple instrument_id: "XRPUSD" instrument_type: "crypto" \ No newline at end of file diff --git a/doc/en/index.md b/doc/en/index.md new file mode 100644 index 00000000..7f61b440 --- /dev/null +++ b/doc/en/index.md @@ -0,0 +1,141 @@ +# Get start + +## Install iqoptionapi + +You can download the source code and run this + +``` +python setup.py install +``` +or install using (you need [git installed](https://git-scm.com/downloads)): +``` +pip install -U git+git://github.com/iqoptionapi/iqoptionapi.git +``` + +## little sample + +```python +import time +from iqoptionapi.stable_api import IQ_Option +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +goal="EURUSD" +print("get candles") +print(Iq.get_candles(goal,60,111,time.time())) +``` + +## Import + +```python +from iqoptionapi.stable_api import IQ_Option +``` + +## Login + +Iq.connect() will return (check,reason) + +if connect sucess return True,None + +if connect fail return False,reason + +```python +from iqoptionapi.stable_api import IQ_Option +import logging + +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +Iq=IQ_Option("email","password") +check, reason=Iq.connect()#connect to iqoption +print(check, reason) +``` + +## Debug mode on + +```python +import logging +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +``` + +## Connect&Check connect + +some time connect will close so this way can check connect and reconnect + +try close your network and restart network in this sample + +```python +from iqoptionapi.stable_api import IQ_Option +error_password="""{"code":"invalid_credentials","message":"You entered the wrong credentials. Please check that the login/password is correct."}""" +iqoption = IQ_Option("email", "password") +check,reason=iqoption.connect() +if check: + print("Start your robot") + #if see this you can close network for test + while True: + if iqoption.check_connect()==False:#detect the websocket is close + print("try reconnect") + check,reason=iqoption.connect() + if check: + print("Reconnect successfully") + else: + if reason==error_password: + print("Error Password") + else: + print("No Network") + +else: + + if reason=="[Errno -2] Name or service not known": + print("No Network") + elif reason==error_password: + print("Error Password") +``` + +## set_session + +Default User-Agent is "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36" + +```python +from iqoptionapi.stable_api import IQ_Option +import logging +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') + +Iq=IQ_Option("email","password") + +#Default is "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36" + +header={"User-Agent":r"Mozilla/5.0 (X11; Linux x86_64; rv:70.0) Gecko/20100101 Firefox/70.0"} +cookie={"Iq":"GOOD"} + +Iq.set_session(header,cookie) + +Iq.connect()#connect to iqoption +``` + +## Check version + +```python +from iqoptionapi.stable_api import IQ_Option +print(IQ_Option.__version__) +``` + +## Check connect + +return True/False + +``` +print(Iq.check_connect()) +``` + +## Reconnect + +```python +Iq.connect() +``` + +## time + +get_server_timestamp +the get_server_timestamp time is sync with iqoption + +```python +Iq.get_server_timestamp() +``` diff --git a/doc/en/techinical analysis/image/Oscillators.JPG b/doc/en/techinical analysis/image/Oscillators.JPG new file mode 100644 index 00000000..77e72115 Binary files /dev/null and b/doc/en/techinical analysis/image/Oscillators.JPG differ diff --git a/doc/en/techinical analysis/image/info.jpg b/doc/en/techinical analysis/image/info.jpg new file mode 100644 index 00000000..92af60ee Binary files /dev/null and b/doc/en/techinical analysis/image/info.jpg differ diff --git a/doc/en/techinical analysis/image/moving-average.JPG b/doc/en/techinical analysis/image/moving-average.JPG new file mode 100644 index 00000000..171e3946 Binary files /dev/null and b/doc/en/techinical analysis/image/moving-average.JPG differ diff --git a/doc/en/techinical analysis/image/pivots.JPG b/doc/en/techinical analysis/image/pivots.JPG new file mode 100644 index 00000000..34039c41 Binary files /dev/null and b/doc/en/techinical analysis/image/pivots.JPG differ diff --git a/doc/en/techinical analysis/image/technical-analysis.jpg b/doc/en/techinical analysis/image/technical-analysis.jpg new file mode 100644 index 00000000..1c57e334 Binary files /dev/null and b/doc/en/techinical analysis/image/technical-analysis.jpg differ diff --git a/doc/en/techinical analysis/index.md b/doc/en/techinical analysis/index.md new file mode 100644 index 00000000..daa6c6cb --- /dev/null +++ b/doc/en/techinical analysis/index.md @@ -0,0 +1,68 @@ +## Tecnical analysis + +It is available in same assets and you can check it on asset info: + +![asset Info](image/info.jpg) + +if there is a session like this you can get data: + +NOTE: If there is no techinical Analysis on asset you want, you can't use it. + +![techinical Analysis menu](image/technical-analysis.jpg) + +There are some indicators available: + +## Pivots + +![Pivots](image/pivots.JPG) + +## Oscillators + +![Oscillators](image/Oscillators.JPG) + +## Moving Averages + +![Moving Averages](image/Oscillators.JPG) + +## How to use: + +```python + +asset="GBPUSD" +indicators = Iq.get_technical_indicators(asset) +print(indicators) + +``` + +if assets doesn't contains technical Analysis it returns: + +``` +{ + "code": "no_technical_indicator_available", + "message": "Active is not supported: active id 'ACTIVE_ID_PASSED'" +} +``` + +If there is something: + +NOTE: YOU MUST TO ANALYSE THE PRINT OUTPUT + +```json +[ + { + "action": "hold", + "candle_size": 60, + "group": "OSCILLATORS", + "name": "Relative Strength Index (14)", + "value": 59.168583 + }, + { + "action": "hold", + "candle_size": 60, + "group": "PIVOTS", + "name": "Classic s3", + "value": 1.057292 + } + ..... +] +``` diff --git a/doc/es/account/account.md b/doc/es/account/account.md new file mode 100644 index 00000000..31faf816 --- /dev/null +++ b/doc/es/account/account.md @@ -0,0 +1,193 @@ +# Cuenta + +## get_balance() +Obtén el saldo de tu cuenta + +```python +Iq.get_balance() +``` + +## get_balance_v2() +Obtén el saldo de tu cuenta con MÁS PRECISIÓN + +```python +Iq.get_balance_v2() +``` + +## get_currency() +Comprobar que divisa utiliza tu cuenta (USD, EUR...) + +```python +Iq.get_currency() +``` + +## reset_practice_balance() +Recargar el saldo de tu cuenta de práctica a $10000 + +```python +from iqoptionapi.stable_api import IQ_Option +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +print(Iq.reset_practice_balance()) +``` + +## Cambiar tu cuenta entre los smodos Real/Práctica + +MODE="PRACTICE"/"REAL" +```python +Iq.change_balance(MODE) + #MODE: "PRACTICE"/"REAL" +``` + +## obtener la Estratégia de Otra Gente + + +### Ejemplo +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import time + +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +while_run_time=10 + +#Para opciones digitales +name="live-deal-digital-option" #"live-deal-binary-option-placed"/"live-deal-digital-option" +active="EURUSD" +_type="PT1M"#"PT1M"/"PT5M"/"PT15M" +buffersize=10# +print("_____________subscribe_live_deal_______________") +Iq.subscribe_live_deal(name,active,_type,buffersize) + + +start_t=time.time() +while True: + data=(Iq.get_live_deal(name,active,_type)) + print("__For_digital_option__ data size:"+str(len(data))) + print(data) + print("\n\n") + time.sleep(1) + if time.time()-start_t>while_run_time: + break +print("_____________unscribe_live_deal_______________") +Iq.unscribe_live_deal(name,active,_type) + + +#Para opciones binariass +name="live-deal-binary-option-placed" +active="EURUSD" +_type="turbo"#"turbo"/"binary" +buffersize=10# +print("_____________subscribe_live_deal_______________") +Iq.subscribe_live_deal(name,active,_type,buffersize) + +start_t=time.time() +while True: + data=(Iq.get_live_deal(name,active,_type)) + print("__For_binary_option__ data size:"+str(len(data))) + print(data) + print("\n\n") + time.sleep(1) + if time.time()-start_t>while_run_time: + break +print("_____________unscribe_live_deal_______________") +Iq.unscribe_live_deal(name,active,_type) +``` + +### subscribe_live_deal +Suscribirse a un acuerdo en vivo + +```python +Iq.subscribe_live_deal(name,active,_type,buffersize) +``` + +### unscribe_live_deal +Cancelar suscripción al acuerdo en vivo + +```python +Iq.unscribe_live_deal(name,active,_type) +``` + +### get_live_deal +Obtener el acuerdo en vivo + +```python +Iq.get_live_deal(name,active,_type) +``` +### pop_live_deal + +```python +Iq.pop_live_deal(name,active,_type) +``` +## get Other people detail +Obtener los detalles de otra gente + +### Ejemplo +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import time + +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +while_run_time=10 + +#Para opciones binarias +name="live-deal-binary-option-placed" +active="EURUSD" +_type="turbo"#"turbo"/"binary" +buffersize=10# +print("_____________subscribe_live_deal_______________") +print("\n\n") +Iq.subscribe_live_deal(name,active,_type,buffersize) + +last_trade_data=Iq.get_live_deal(name,active,_type)[0] + +user_id=last_trade_data["user_id"] +counutry_id=last_trade_data["country_id"] +print("_______get_user_profile_client__________") +print(Iq.get_user_profile_client(user_id)) +pro_data=Iq.get_user_profile_client(user_id) +print("\n\n") + +print("___________request_leaderboard_userinfo_deals_client______") +print(Iq.request_leaderboard_userinfo_deals_client(user_id,counutry_id)) +user_data=Iq.request_leaderboard_userinfo_deals_client(user_id,counutry_id) +worldwide=user_data["result"]["entries_by_country"]["0"]["position"] +profit=user_data["result"]["entries_by_country"]["0"]["score"] +print("\n") +print("user_name:"+pro_data["user_name"]) +print("Esta semana en todo el mundo: "+str(worldwide)) +print("Esta semana beneficios en bruto: "+str(profit)) +print("\n\n") + +print("___________get_users_availability____________") +print(Iq.get_users_availability(user_id)) +print("\n\n") +print("_____________unscribe_live_deal_______________") +Iq.unscribe_live_deal(name,active,_type) + +``` + +### get_user_profile_client() +Obtener el nombre de usuario y imagen + +```python +Iq.get_user_profile_client(user_id) +``` + +### request_leaderboard_userinfo_deals_client() +Obtener los detalles del cliente + +```python +Iq.request_leaderboard_userinfo_deals_client(user_id,counutry_id) +``` + +### get_users_availability() + +```python +Iq.get_users_availability(user_id) +``` \ No newline at end of file diff --git a/doc/es/all/.DS_Store b/doc/es/all/.DS_Store new file mode 100644 index 00000000..5adc762b Binary files /dev/null and b/doc/es/all/.DS_Store differ diff --git a/doc/es/all/all.md b/doc/es/all/all.md new file mode 100644 index 00000000..22c9d102 --- /dev/null +++ b/doc/es/all/all.md @@ -0,0 +1,450 @@ +# Para todo + +Esta api puede trabajar con option&digital&Forex&Stock&Commodities&Crypto&ETFs + +## Comprobar si un asset está abierto o no + +tener cuidado con get_all_open_time() es demasiado pesado para la conexión. + +get_all_open_time() devuelve un DICT + +"cfd" incluye,Commodities,ETFs asset + +DICT["forex"/"cfd"/"crypto"/"digital"/"turbo"/"binary"][Asset Name]["open"] + +devolverá True/False + +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import random +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +ALL_Asset=Iq.get_all_open_time() + +#Comprobar si está abierto o no +print(ALL_Asset["forex"]["EURUSD"]["open"]) +print(ALL_Asset["cfd"]["FACEBOOK"]["open"])#Stock,Commodities,ETFs +print(ALL_Asset["crypto"]["BTCUSD-L"]["open"]) +print(ALL_Asset["digital"]["EURUSD-OTC"]["open"]) + +#La binarias tienes doss tipos -> type:"turbo","binary" +print(ALL_Asset["turbo"]["EURUSD-OTC"]["open"]) +print(ALL_Asset["binary"]["EURUSD-OTC"]["open"]) + + +#!!!! Excepciój "" +print(ALL_Asset["binary"]["not exist asset"]["open"])#Devolverá "{}" a None de un dict + +#!!!!Imprimir todo!!! +for type_name, data in ALL_Asset.items(): + for Asset,value in data.items(): + print(type_name,Asset,value["open"]) +``` + +## Ver todos los nombress de lo Activos (ACTIVES) + +``` +print(Iq.get_all_ACTIVES_OPCODE()) +``` +## Actualizar OPCODE de los Activos (ACTIVES) +``` +Iq.update_ACTIVES_OPCODE() +``` +## get_async_order() + +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import time +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +ACTIVES="EURUSD" +duration=1#minute 1 or 5 +amount=1 +action="call"#put + +print("__Para_Opciones_Binarias__") +_,id=Iq.buy(amount,ACTIVES,action,duration) +while Iq.get_async_order(id)==None: + pass +print(Iq.get_async_order(id)) +print("\n\n") + +print("__Para_Opciones_Digitales__spot") +_,id=Iq.buy_digital_spot(ACTIVES,amount,action,duration) +while Iq.get_async_order(id)==None: + pass +order_data=Iq.get_async_order(id) +print(Iq.get_async_order(id)) +print("\n\n") + +print("__Para_Forex_Mercado_MateriasPrimas_Crypto_ETFs") +instrument_type="crypto" +instrument_id="BTCUSD" +side="buy" +amount=1.23 +leverage=3 +type="market" +limit_price=None +stop_price=None +stop_lose_kind="percent" +stop_lose_value=95 +take_profit_kind=None +take_profit_value=None +use_trail_stop=True +auto_margin_call=False +use_token_for_commission=False +check,id=Iq.buy_order(instrument_type=instrument_type, instrument_id=instrument_id, + side=side, amount=amount,leverage=leverage, + type=type,limit_price=limit_price, stop_price=stop_price, + stop_lose_value=stop_lose_value, stop_lose_kind=stop_lose_kind, + take_profit_value=take_profit_value, take_profit_kind=take_profit_kind, + use_trail_stop=use_trail_stop, auto_margin_call=auto_margin_call, + use_token_for_commission=use_token_for_commission) +while Iq.get_async_order(id)==None: + pass +order_data=Iq.get_async_order(id) +print(Iq.get_async_order(id)) +``` + +## get_commission_change() + +instrument_type: "binary-option"/"turbo-option"/"digital-option"/"crypto"/"forex"/"cfd" + +Iq.subscribe_commission_changed(instrument_type) Iq.get_commission_change(instrument_type) Iq.unsubscribe_commission_changed(instrument_type) + +Código de ejemplo + +```python +import time +from iqoptionapi.stable_api import IQ_Option +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +#instrument_type: "binary-option"/"turbo-option"/"digital-option"/"crypto"/"forex"/"cfd" +instrument_type=["binary-option","turbo-option","digital-option","crypto","forex","cfd"] +for ins in instrument_type: + Iq.subscribe_commission_changed(ins) +print("Start stream please wait profit change...") +while True: + for ins in instrument_type: + commissio_data=Iq.get_commission_change(ins) + if commissio_data!={}: + for active_name in commissio_data: + if commissio_data[active_name]!={}: + the_min_timestamp=min(commissio_data[active_name].keys()) + commissio=commissio_data[active_name][the_min_timestamp] + profit=(100-commissio)/100 + print("instrument_type: "+str(ins)+" active_name: "+str(active_name)+" profit change to: "+str(profit)) + #Data have been update so need del + del Iq.get_commission_change(ins)[active_name][the_min_timestamp] + time.sleep(1) +``` + + +## Obtener top_assets_updated + + +### Ejemplo + +instrument_type="binary-option"/"digital-option"/"forex"/"cfd"/"crypto" +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import time +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +instrument_type="digital-option"#"binary-option"/"digital-option"/"forex"/"cfd"/"crypto" +Iq.subscribe_top_assets_updated(instrument_type) + +print("__Please_wait_for_sec__") +while True: + if Iq.get_top_assets_updated(instrument_type)!=None: + print(Iq.get_top_assets_updated(instrument_type)) + print("\n\n") + time.sleep(1) +Iq.unsubscribe_top_assets_updated(instrument_type) +``` +### subscribe_top_assets_updated() + +```python +instrument_type="digital-option"#"binary-option"/"digital-option"/"forex"/"cfd"/"crypto" +Iq.subscribe_top_assets_updated(instrument_type) +``` + +### get_top_assets_updated() + +se necesista llamar a get_top_assets_updated() después de subscribe_top_assets_updated() +```python +Iq.get_top_assets_updated(instrument_type) +``` + + +### unsubscribe_top_assets_updated() + +Si no vas a uarlo, ciérralo para una conexión sesgura +```python +Iq.unsubscribe_top_assets_updated(instrument_type) +``` + +### orderar par popularidad + +![](image/top_assets_updated.png) + + +#### Ejemplo +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import time +import operator + +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +def opcode_to_name(opcode_data,opcode): + return list(opcode_data.keys())[list(opcode_data.values()).index(opcode)] + +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +Iq.update_ACTIVES_OPCODE() +opcode_data=Iq.get_all_ACTIVES_OPCODE() + +instrument_type="digital-option"#"binary-option"/"digital-option"/"forex"/"cfd"/"crypto" +Iq.subscribe_top_assets_updated(instrument_type) + + +print("__Please_wait_for_sec__") +while True: + if Iq.get_top_assets_updated(instrument_type)!=None: + break + +top_assets=Iq.get_top_assets_updated(instrument_type) +popularity={} +for asset in top_assets: + opcode=asset["active_id"] + popularity_value=asset["popularity"]["value"] + try: + name=opcode_to_name(opcode_data,opcode) + popularity[name]=popularity_value + except: + pass + + +sorted_popularity = sorted(popularity.items(), key=operator.itemgetter(1)) +print("__Popularidad_min_to_max__") +for lis in sorted_popularity: + print(lis) + +Iq.unsubscribe_top_assets_updated(instrument_type) +``` + +## get_leader_board + +Obtener el ranking the líders + +```python +from iqoptionapi.stable_api import IQ_Option +Iq=IQ_Option(email,password) +Iq.connect()#connect to iqoption + +country="TW" +from_position=1 +to_position=1 +near_traders_count=0 + +print(Iq.get_leader_board(country,from_position,to_position,near_traders_count)) +``` + +!!! country + ID = {"Worldwide":0, + "AF": 1, + "AL": 2, + "DZ": 3, + "AD": 5, + "AO": 6, + "AI": 7, + "AG": 9, + "AR": 10, + "AM": 11, + "AW": 12, + "AT": 14, + "AZ": 15, + "BS": 16, + "BH": 17, + "BD": 18, + "BB": 19, + "BY": 20, + "BZ": 22, + "BJ": 23, + "BM": 24, + "BO": 26, + "BA": 27, + "BW": 28, + "BV": 29, + "BR": 30, + "BN": 31, + "BG": 32, + "BF": 33, + "BI": 34, + "KH": 35, + "CM": 36, + "CV": 38, + "KY": 39, + "TD": 41, + "CL": 42, + "CN": 43, + "CC": 45, + "CO": 46, + "KM": 47, + "CG": 48, + "CK": 49, + "CR": 50, + "CI": 51, + "HR": 52, + "CU": 53, + "CY": 54, + "CZ": 55, + "DK": 56, + "DJ": 57, + "DM": 58, + "DO": 59, + "TL": 60, + "EC": 61, + "EG": 62, + "SV": 63, + "EE": 66, + "ET": 67, + "FO": 69, + "FJ": 70, + "FI": 71, + "FR": 72, + "GF": 73, + "PF": 74, + "GA": 75, + "GM": 76, + "GE": 77, + "DE": 78, + "GH": 79, + "GR": 81, + "GD": 83, + "GP": 84, + "GT": 86, + "GN": 87, + "GY": 88, + "HT": 89, + "HN": 90, + "HK": 91, + "HU": 92, + "IS": 93, + "ID": 94, + "IQ": 95, + "IE": 96, + "IT": 97, + "JM": 98, + "JO": 100, + "KZ": 101, + "KE": 102, + "KI": 103, + "KW": 104, + "KG": 105, + "LA": 106, + "LV": 107, + "LB": 108, + "LS": 109, + "LR": 110, + "LY": 111, + "LT": 113, + "LU": 114, + "MO": 115, + "MK": 116, + "MG": 117, + "MW": 118, + "MY": 119, + "MV": 120, + "ML": 121, + "MT": 122, + "MQ": 124, + "MR": 125, + "MU": 126, + "MX": 128, + "FM": 129, + "MD": 130, + "MC": 131, + "MN": 132, + "MA": 134, + "MZ": 135, + "MM": 136, + "NA": 137, + "NP": 139, + "NL": 140, + "AN": 141, + "NC": 142, + "NZ": 143, + "NI": 144, + "NE": 145, + "NG": 146, + "NO": 149, + "OM": 150, + "PK": 151, + "PW": 152, + "PA": 153, + "PG": 154, + "PY": 155, + "PE": 156, + "PH": 157, + "PL": 159, + "PT": 160, + "QA": 162, + "RE": 163, + "RO": 164, + "RW": 166, + "KN": 167, + "LC": 168, + "SA": 171, + "SN": 172, + "SC": 173, + "SG": 175, + "SK": 176, + "SI": 177, + "SO": 179, + "ZA": 180, + "KR": 181, + "ES": 182, + "LK": 183, + "SH": 184, + "SR": 186, + "SZ": 187, + "SE": 188, + "CH": 189, + "TW": 191, + "TJ": 192, + "TZ": 193, + "TH": 194, + "TG": 195, + "TT": 198, + "TN": 199, + "TR": 200, + "TM": 201, + "UG": 203, + "UA": 204, + "AE": 205, + "GB": 206, + "UY": 207, + "UZ": 208, + "VE": 211, + "VN": 212, + "VG": 213, + "YE": 216, + "ZM": 218, + "ZW": 219, + "RS": 220, + "ME": 221, + "IN": 225, + "TC": 234, + "CD": 235, + "GG": 236, + "IM": 237, + "JE": 239, + "CW": 246, } diff --git a/doc/es/all/image/top_assets_updated.png b/doc/es/all/image/top_assets_updated.png new file mode 100644 index 00000000..edd76b53 Binary files /dev/null and b/doc/es/all/image/top_assets_updated.png differ diff --git a/doc/es/binary option/binary option.md b/doc/es/binary option/binary option.md new file mode 100644 index 00000000..3cf222bc --- /dev/null +++ b/doc/es/binary option/binary option.md @@ -0,0 +1,312 @@ +#Para opciones binarias + + +## comprar + +comprar una opción binaria + +### buy() + +Ejemplo + +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import time +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +Iq=IQ_Option("email","pass") +goal="EURUSD" +print("get candles") +print(Iq.get_candles(goal,60,111,time.time())) +Money=1 +ACTIVES="EURUSD" +ACTION="call"#or "put" +expirations_mode=1 + +check,id=Iq.buy(Money,ACTIVES,ACTION,expirations_mode) +if check: + print("!buy!") +else: + print("buy fail") +``` + +```python +Iq.buy(Money,ACTIVES,ACTION,expirations) + #Money:Cantidad de dinero type(int) + #ACTIVES:Ejemplo de entrada "EURUSD" OR "EURGBP".... puedes ver todos loa ACTIVE con -> get_all_ACTIVES_OPCODE + #ACTION:"call"/"put" type(str) call -> sube, put -> baja + #expirations:Introduce minutos, cuidado con los timpos muy largos ya que fallará al comprar (Tiempo de cierre de merrcado) Gracias a Darth-Carrotpie's code (int)https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/6 + #return:if sucess return (True,id_number) esle return(Fale,None) +``` +### buy_multi() + +```python +from iqoptionapi.stable_api import IQ_Option +Iq=IQ_Option("email","password") +Iq.connect()#conectar a iqoption +Money=[] +ACTIVES=[] +ACTION=[] +expirations_mode=[] + +Money.append(1) +ACTIVES.append("EURUSD") +ACTION.append("call") +expirations_mode.append(1) + +Money.append(1) +ACTIVES.append("EURAUD") +ACTION.append("call") +expirations_mode.append(1) + +print("buy multi") +id_list=Iq.buy_multi(Money,ACTIVES,ACTION,expirations_mode) + +print("check win only one id (id_list[0])") +print(Iq.check_win_v2(id_list[0],2)) +``` +### buy_by_raw_expirations() + +buy the binary optoin by expired + +```python +price=2 +active="EURUSD" +direction="call" +option="turbo"#binary +expired=1293923# Este tiempo de expiración necesitas contarlo o obtenerlo por tu mismo +Iq.buy_by_raw_expirations(price, active, direction, option,expired) +``` + +## get_remaning() + +purchase time=remaning time - 30 +```python +from iqoptionapi.stable_api import IQ_Option +Iq=IQ_Option("email","password") +Iq.connect()#conectar a iqoption +Money=1 +ACTIVES="EURUSD" +ACTION="call"#or "put" +expirations_mode=1 +while True: + remaning_time=Iq.get_remaning(expirations_mode) + purchase_time=remaning_time-30 + if purchase_time<4:#comprar las opciones binarias con un tiempo de compra menor a 4 min + Iq.buy(Money,ACTIVES,ACTION,expirations_mode) + break +``` + +## sell_option() + +```python +Iq.sell_option(sell_all)#Introduce int o una lista de id de órdenes +``` +Ejemplo + +```python +from iqoptionapi.stable_api import IQ_Option +import time +print("login...") +Iq=IQ_Option("email","password") +Iq.connect()#conectar a iqoption +Money=1 +ACTIVES="EURUSD" +ACTION="call"#or "put" +expirations_mode=1 + +id=Iq.buy(Money,ACTIVES,ACTION,expirations_mode) +id2=Iq.buy(Money,ACTIVES,ACTION,expirations_mode) + +time.sleep(5) +sell_all=[] +sell_all.append(id) +sell_all.append(id2) +print(Iq.sell_option(sell_all)) +``` + +## check win + +Entrará en bucle hasta que la respuesta sea ganadora (win) o sin beneficios (loose) + +### check_win() + +```python +from iqoptionapi.stable_api import IQ_Option +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +check,id = Iq.buy(1, "EURUSD", "call", 1) +print("Empezando a comprobar la operación...") +print(Iq.check_win(id)) +``` + +```python +Iq.check_win(23243221) +#""Necesitas obtener el id_number de la función buy()"" +#Iq.check_win(id_number) +#Esta función entrará en un bucle hasta que el resultado sea: win/equal/loose +``` + +### check_win_v2() + +```python +from iqoptionapi.stable_api import IQ_Option +Iq=IQ_Option("email","password") +Iq.connect()#conectar a iqoption +check,id = Iq.buy(1, "EURUSD", "call", 1) +print("Empezando a comprobar la operación...") +polling_time=3 +print(Iq.check_win_v2(id,polling_time)) +``` + +### check_win_v3() + +Mejor camino para comprobar el resultado de +la operación + +```python +from iqoptionapi.stable_api import IQ_Option +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +check,id = Iq.buy(1, "EURUSD", "call", 1) +print("Empezando a comprobar la operación...") +print(Iq.check_win_v3(id)) +``` + +## get_binary_option_detail() +![](expiration_time.png) + +sample +```python +from iqoptionapi.stable_api import IQ_Option +print("login...") +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +d=Iq.get_binary_option_detail() +print(d["CADCHF"]["turbo"]) +print(d["CADCHF"]["binary"]) +``` +## get_all_init() + +get_binary_option_detail es la base en eta api + +Tu obtendrás los detalle sobre la opción binaria + +``` +Iq.get_all_init() +``` + +## get_all_profit() + +sample + +```python +from iqoptionapi.stable_api import IQ_Option +print("login...") +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +d=Iq.get_all_profit() +print(d["CADCHF"]["turbo"]) +print(d["CADCHF"]["binary"]) +``` + +Si tu quieres saber el profit en tiempo real +[get real time profit](/all/#get_commission_change) + +## get_betinfo() + +Si la opción no cierra todavía o el id es incorrecto, devolverá False +if order not close yet or wrong id it will return False +```python +isSuccessful,dict=Iq.get_betinfo(4452272449) +#Iq.get_betinfo +#ENTRADA: order id +#SALIDA:isSuccessful,dict +``` +## get_optioninfo + +### get_optioninfo() + +Introduce cuántos datos quieres obtener del historial de Trading (solo para opciones binarias) + +```python +print(Iq.get_optioninfo(10)) +``` + +### get_optioninfo_v2() + +Introduce cuántos datos quieres obtener del historial de Trading (solo para opciones binarias) + +```python +print(Iq.get_optioninfo_v2(10)) +``` +### get_option_open_by_other_pc() + +Obtener si tu cuenta tiene otra sesión abierta (puede ser en otro pc) y está abriendo opciones + +Tu puedes obtener la opción con esta función + +```python +import time +from iqoptionapi.stable_api import IQ_Option +Iq=IQ_Option("email","password") +Iq.connect()#conectar a iqoption +while True: + #Por favor accede a la web de iqoption y abre alguna opción binaria + if Iq.get_option_open_by_other_pc()!={}: + break + time.sleep(1) +print("Obtener la opción abierta de otra sesión y de la misma cuenta") +print(Iq.get_option_open_by_other_pc()) + +id=list(Iq.get_option_open_by_other_pc().keys())[0] +Iq.del_option_open_by_other_pc(id) +print("Depués de la id") +print(Iq.get_option_open_by_other_pc()) +``` + +## Obtener indicador + +### Ejemplo¡ + +```python +from iqoptionapi.stable_api import IQ_Option +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +goal="EURUSD" +Iq.start_mood_stream(goal) +print(Iq.get_traders_mood(goal)) +Iq.stop_mood_stream(goal) +``` + +### start_mood_stream() + +```python +Iq.start_mood_stream(goal) +``` + +### get_traders_mood() + +call get_traders_mood() after start_mood_stream + +```python +Iq.get_traders_mood(goal) +``` + +### get_all_traders_mood() + +Obtendrá todo el indicador de operaciones en que hayas activado el stream + +```python +Iq.get_all_traders_mood() +#output:(dict) all mood you start +``` + +### stop_mood_stream() + +Si no está usando el indicador, porfavor páralo para una mejor conexión. + +```python +Iq.stop_mood_stream(goal) +``` + diff --git a/doc/es/binary option/expiration_time.png b/doc/es/binary option/expiration_time.png new file mode 100644 index 00000000..160fb591 Binary files /dev/null and b/doc/es/binary option/expiration_time.png differ diff --git a/doc/es/candle/candle.md b/doc/es/candle/candle.md new file mode 100644 index 00000000..78fa4022 --- /dev/null +++ b/doc/es/candle/candle.md @@ -0,0 +1,132 @@ +# Velas + +## Obtener velas + +Solo obtiene lass velas cerrada no en tiempo real + +``` +Iq.get_candles(ACTIVES,interval,count,endtime) + #ACTIVES: Ejemplo de entrada "EURUSD" OR "EURGBP"..ñ + #interval: Duración de las velas en Segundoss + #count: Cuantas velas quieres obtener del pasado + #endtime: Obtener velas del pasado hasta una fecha concreta +``` + +### Ejemplo + +```python +from iqoptionapi.stable_api import IQ_Option +import time +Iq=IQ_Option("email","password") +Iq.connect()#conectar a iqoption +end_from_time=time.time() +ANS=[] +for i in range(70): + data=Iq.get_candles("EURUSD", 60, 1000, end_from_time) + ANS =data+ANS + end_from_time=int(data[0]["from"])-1 +print(ANS) +``` + +## Obtener las nuevas velas en tiempo real + +### Ejemplo de indicador + +```python + +from talib.abstract import * +from iqoptionapi.stable_api import IQ_Option +import time +import numpy as np +print("login...") +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +goal="EURUSD" +size=10#size=[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,"all"] +timeperiod=10 +maxdict=20 +print("Empezar el stream...") +Iq.start_candles_stream(goal,size,maxdict) +print("Empezar ejemplo de EMA") +while True: + candles=Iq.get_realtime_candles(goal,size) + + inputs = { + 'open': np.array([]), + 'high': np.array([]), + 'low': np.array([]), + 'close': np.array([]), + 'volume': np.array([]) + } + for timestamp in candles: + + inputs["open"]=np.append(inputs["open"],candles[timestamp]["open"] ) + inputs["high"]=np.append(inputs["open"],candles[timestamp]["max"] ) + inputs["low"]=np.append(inputs["open"],candles[timestamp]["min"] ) + inputs["close"]=np.append(inputs["open"],candles[timestamp]["close"] ) + inputs["volume"]=np.append(inputs["open"],candles[timestamp]["volume"] ) + + + print("Mostrar la EMA") + print(EMA(inputs, timeperiod=timeperiod)) + print("\n") + time.sleep(1) +Iq.stop_candles_stream(goal,size) +``` + +### Ejemplo + +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import time +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +print("Accediendo...") +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +goal="EURUSD" +size="all"#size=[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,"all"] +maxdict=10 +print("Empezar stream...") +Iq.start_candles_stream(goal,size,maxdict) +#DO something +print("Hacer algo...") +time.sleep(10) + +print("imprimir velas") +cc=Iq.get_realtime_candles(goal,size) +for k in cc: + print(goal,"size",k,cc[k]) +print("parar velas") +Iq.stop_candles_stream(goal,size) +``` + +### Tamaño + +![](image/time_interval.png) + +### start_candles_stream() + +```python +goal="EURUSD" +size="all"#size=[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,"all"] +maxdict=10 +print("start stream...") +Iq.start_candles_stream(goal,size,maxdict) +``` + +### get_realtime_candles() + +get_realtime_candles() despuess de llamr start_candles_stream() + +``` +Iq.get_realtime_candles(goal,size) +``` + +### stop_candles_stream() + +Si no estás usando get_realtime_candles() porfavor cierra el stream + +```python +Iq.stop_candles_stream(goal,size) +``` \ No newline at end of file diff --git a/doc/es/candle/image/time_interval.png b/doc/es/candle/image/time_interval.png new file mode 100644 index 00000000..e465879b Binary files /dev/null and b/doc/es/candle/image/time_interval.png differ diff --git a/doc/es/digital/digital.md b/doc/es/digital/digital.md new file mode 100644 index 00000000..9d71978f --- /dev/null +++ b/doc/es/digital/digital.md @@ -0,0 +1,268 @@ +# Digital + + +## Cerca del modo strike +![](image/near.png) +### Ejemplo + +```python +from iqoptionapi.stable_api import IQ_Option +import time +import random +Iq=IQ_Option("email","password") +Iq.connect()#conectar a iqoption +ACTIVES="EURUSD" +duration=1#minuto 1 or 5 +amount=1 +Iq.subscribe_strike_list(ACTIVES,duration) +#get strike_list +data=Iq.get_realtime_strike_list(ACTIVES, duration) +print("get strike data") +print(data) +"""data +{'1.127100': + { 'call': + { 'profit': None, + 'id': 'doEURUSD201811120649PT1MC11271' + }, + 'put': + { 'profit': 566.6666666666666, + 'id': 'doEURUSD201811120649PT1MP11271' + } + }............ +} +""" +#Obtener la lista de precios +price_list=list(data.keys()) +#Elegir una estratégia aleatoria +choose_price=price_list[random.randint(0,len(price_list)-1)] +#Obtener instrument_id +instrument_id=data[choose_price]["call"]["id"] +#Obtener profit +profit=data[choose_price]["call"]["profit"] +print("Elegir que quiere commprar") +print("precio:",choose_price,"side:call","instrument_id:",instrument_id,"profit:",profit) +#Escojer instrument_id para abrir operación +buy_check,id=Iq.buy_digital(amount,instrument_id) +polling_time=5 +if buy_check: + print("Esperar para comprobar win") + #comprobar win + while True: + check_close,win_money=Iq.check_win_digital_v2(id,polling_time) + if check_close: + if float(win_money)>0: + win_money=("%.2f" % (win_money)) + print("Tu has ganado",win_money,"dinero") + else: + print("Sin beneficioss") + break + Iq.unsubscribe_strike_list(ACTIVES,duration) +else: + print("Fallo al comprar, porfavor prueba otra vez") +``` + +### Obtener toda la lissta de datos de todos los strike + +Ejemplo +```python +from iqoptionapi.stable_api import IQ_Option +import time +Iq=IQ_Option("email","password") +Iq.connect()#conecta a iqoption +ACTIVES="EURUSD" +duration=1#minuto 1 or 5 +Iq.subscribe_strike_list(ACTIVES,duration) +while True: + data=Iq.get_realtime_strike_list(ACTIVES, duration) + for price in data: + print("precio",price,data[price]) + time.sleep(5) +Iq.unsubscribe_strike_list(ACTIVES,duration) +``` +#### subscribe_strike_list() + +```python +Iq.subscribe_strike_list(ACTIVES,duration) +``` + +#### get_realtime_strike_list + +Tu necesitas llamar a subscribe_strike_list() antes de get_realtime_strike_list() +```python +Iq.get_realtime_strike_list(ACTIVES,duration) +``` + +#### unsubscribe_strike_list() +```python +Iq.unsubscribe_strike_list(ACTIVES,duration) +``` +### buy_digital() + +```python +buy_check,id=Iq.buy_digital(amount,instrument_id) +#obtener el instrument_id de Iq.get_realtime_strike_list +``` + +## Modo actual del precio + +![](image/spot.png) + + + +### buy_digital_spot +Comprar el dígito en el precio actual + +Devuelve check y id + +```python +from iqoptionapi.stable_api import IQ_Option + +Iq=IQ_Option("email","password") +Iq.connect()#conectar a iqoption +ACTIVES="EURUSD" +duration=1#minuto 1 or 5 +amount=1 +action="call"#put +print(Iq.buy_digital_spot(ACTIVES,amount,action,duration)) +``` + +### get_digital_spot_profit_after_sale() + +Obtener Profit después de la Venta(P/L) + +![](image/profit_after_sale.png) + +Ejemplo + +```python +from iqoptionapi.stable_api import IQ_Option +Iq=IQ_Option("email","passord") +ACTIVES="EURUSD" +duration=1#minute 1 or 5 +amount=100 +action="put"#put + +Iq.subscribe_strike_list(ACTIVES,duration) +_,id=Iq.buy_digital_spot(ACTIVES,amount,action,duration) + +while True: + PL=Iq.get_digital_spot_profit_after_sale(id) + if PL!=None: + print(PL) +``` + +### get_digital_current_profit() + +```python +from iqoptionapi.stable_api import IQ_Option +import time +import logging +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +Iq=IQ_Option("email","password") +Iq.connect()#conectar a iqoption +ACTIVES="EURUSD" +duration=1#minuto 1 or 5 +Iq.subscribe_strike_list(ACTIVES,duration) +while True: + data=Iq.get_digital_current_profit(ACTIVES, duration) + print(data)# La primera impresión puede ser falsa, sólo espera un segundo puedes obtener el beneficio + time.sleep(1) +Iq.unsubscribe_strike_list(ACTIVES,duration) +``` + +## check win for digital + +### check_win_digital() + +Esta api esta implementada por get_digital_position() + +Esta función esta encuestando, necesitas escojet el tiempo de encuesta + +```python +Iq.check_win_digital(id,polling_time)#obtener el id de Iq.buy_digital +``` +### check_win_digital_v2() + +Esta api es asíncrona, obtiene el id de los datos. Solo puede obtener el id de los datos antess de que puedass comprar la opción. +Si reinicias el programa, no se puede obtener otra vez la id de los datos de manera asíncrona otra vez. +De esta forma no se puede trabajar con check_win_digital_v2, asi tu necesitas usar check_win_digital. + +```python + Iq.check_win_digital_v2(id)#obtener el id deIq.buy_digital +#return:check_close,win_money +#return sample +#if you loose:Ture,o +#if you win:True,1232.3 +#if trade not clode yet:False,None +``` + +Ejemplo de código + +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import random +import time +import datetime +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +ACTIVES="EURUSD" +duration=1#minuto 1 or 5 +amount=1 +action="call"#put +_,id=(Iq.buy_digital_spot(ACTIVES,amount,action,duration)) +print(id) +if id !="error": + while True: + check,win=Iq.check_win_digital_v2(id) + if check==True: + break + if win<0: + print("Has perdido "+str(win)+"$") + else: + print("Has ganado "+str(win)+"$") +else: + print("Porfavor prueba otra vez") +``` + +## close_digital_option() + +```python +Iq.close_digital_option(id) +``` + +## Obtener datos de opciones digitaless + +Ejemplo 1 +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import time +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +Iq=IQ_Option("email","password") +Iq.connect()#conectar a iqoption +ACTIVES="EURUSD-OTC" +duration=1#minuto 1 or 5 +amount=1 +action="call"#put +from datetime import datetime + +_,id=Iq.buy_digital_spot(ACTIVES,amount,action,duration) + +while True: + check,_=Iq.check_win_digital(id) + if check: + break +print(Iq.get_digital_position(id)) +print(Iq.check_win_digital(id)) +``` + +Ejemplo 2 + +```python +print(Iq.get_positions("digital-option")) +print(Iq.get_digital_position(2323433))#Comprobar por id +print(Iq.get_position_history("digital-option")) +``` \ No newline at end of file diff --git a/doc/es/digital/image/near.png b/doc/es/digital/image/near.png new file mode 100644 index 00000000..1b8e10f1 Binary files /dev/null and b/doc/es/digital/image/near.png differ diff --git a/doc/es/digital/image/profit_after_sale.png b/doc/es/digital/image/profit_after_sale.png new file mode 100644 index 00000000..8839db1f Binary files /dev/null and b/doc/es/digital/image/profit_after_sale.png differ diff --git a/doc/es/digital/image/spot.png b/doc/es/digital/image/spot.png new file mode 100644 index 00000000..752803b3 Binary files /dev/null and b/doc/es/digital/image/spot.png differ diff --git a/doc/es/fef/.DS_Store b/doc/es/fef/.DS_Store new file mode 100644 index 00000000..7d3e9ae9 Binary files /dev/null and b/doc/es/fef/.DS_Store differ diff --git a/doc/es/fef/fef.md b/doc/es/fef/fef.md new file mode 100644 index 00000000..1bbf29d6 --- /dev/null +++ b/doc/es/fef/fef.md @@ -0,0 +1,285 @@ +# Forex&Stock&Commodities&Crypto&ETFs + +## instrument_type y instrument_id +Tu puedes buscar instrument_type and instrument_id de este archivo + +buscar [instrument_type and instrument_id](instrument.txt) + +## Ejemplo + +```python +from iqoptionapi.stable_api import IQ_Option +Iq=IQ_Option("email","password") +Iq.connect()#conectar a iqoption +instrument_type="crypto" +instrument_id="BTCUSD" +side="buy"#Introducir:"buy"/"sell" +amount=1.23#Introducir la cantidad de dinero por operación + +#"leverage"="Multiplier" +leverage=3#Puedes obtener más sinformación de get_available_leverages() + +type="market"#Introducir:"market"/"limit"/"stop" + +#Para type="limit"/"stop" + +# olo funciona con type="limit" +limit_price=None#input:None/value(float/int) + +#Solo funciona con type="stop" +stop_price=None#input:None/value(float/int) + +#"percent"=Profit Percentage +#"price"=Asset Price +#"diff"=Profit in Money + +stop_lose_kind="percent"#input:None/"price"/"diff"/"percent" +stop_lose_value=95#input:None/value(float/int) + +take_profit_kind=None#input:None/"price"/"diff"/"percent" +take_profit_value=None#input:None/value(float/int) + +#"use_trail_stop"="Trailing Stop" +use_trail_stop=True#True/False + +#"auto_margin_call"="Utilizar el dinero te la cuenta para mantener Abierta la Posición" +auto_margin_call=False#True/False +#Si tu quieres "take_profit_kind"& +# "take_profit_value"& +# "stop_lose_kind"& +# "stop_lose_value" all being "Not Set","auto_margin_call" need to set:True + +use_token_for_commission=False#True/False + +check,order_id=Iq.buy_order(instrument_type=instrument_type, instrument_id=instrument_id, + side=side, amount=amount,leverage=leverage, + type=type,limit_price=limit_price, stop_price=stop_price, + stop_lose_value=stop_lose_value, stop_lose_kind=stop_lose_kind, + take_profit_value=take_profit_value, take_profit_kind=take_profit_kind, + use_trail_stop=use_trail_stop, auto_margin_call=auto_margin_call, + use_token_for_commission=use_token_for_commission) +print(Iq.get_order(order_id)) +print(Iq.get_positions("crypto")) +print(Iq.get_position_history("crypto")) +print(Iq.get_available_leverages("crypto","BTCUSD")) +print(Iq.close_position(order_id)) +print(Iq.get_overnight_fee("crypto","BTCUSD")) +``` + +## buy_order() +devuelve (True/False,buy_order_id/False) + +Si Buy es satisfactoria devuelve (True,buy_order_id) + +"percent"=Profit Percentage + +"price"=Asset Price + +"diff"=Profit en dinero + + +|parameter||||| +--|--|--|--|--| +instrument_type|[instrument_type](#instrumenttypeid) +instrument_id| [instrument_id](#instrumenttypeid) +side|"buy"|"sell" +amount|value(float/int) +leverage|value(int) +type|"market"|"limit"|"stop" +limit_price|None|value(float/int):Only working by set type="limit" +stop_price|None|value(float/int):Only working by set type="stop" +stop_lose_kind|None|"price"|"diff"|"percent" +stop_lose_value|None|value(float/int) +take_profit_kind|None|"price"|"diff"|"percent" +take_profit_value|None|value(float/int) +use_trail_stop|True|False +auto_margin_call|True|False +use_token_for_commission|True|False + +```python +check,order_id=Iq.buy_order( + instrument_type=instrument_type, instrument_id=instrument_id, + side=side, amount=amount,leverage=leverage, + type=type,limit_price=limit_price, stop_price=stop_price, + stop_lose_kind=stop_lose_kind, + stop_lose_value=stop_lose_value, + take_profit_kind=take_profit_kind, + take_profit_value=take_profit_value, + use_trail_stop=use_trail_stop, auto_margin_call=auto_margin_call, + use_token_for_commission=use_token_for_commission) + +``` + +## change_order() +ID_Name=""order_id" | ID_Name="position_id" +:-------------------------:|:-------------------------: +![](image/change_ID_Name_order_id.png) | ![](image/change_ID_Name_position_id.png) + + +|parameter||||| +--|--|--|--|--| +ID_Name|"position_id"|"order_id" +order_id|"you need to get order_id from buy_order()" +stop_lose_kind|None|"price"|"diff"|"percent" +stop_lose_value|None|value(float/int) +take_profit_kind|None|"price"|"diff"|"percent" +take_profit_value|None|value(float/int) +use_trail_stop|True|False +auto_margin_call|True|False + +### sample + +```python +ID_Name="order_id"#"position_id"/"order_id" +stop_lose_kind=None +stop_lose_value=None +take_profit_kind="percent" +take_profit_value=200 +use_trail_stop=False +auto_margin_call=True +Iq.change_order(ID_Name=ID_Name,order_id=order_id, + stop_lose_kind=stop_lose_kind,stop_lose_value=stop_lose_value, + take_profit_kind=take_profit_kind,take_profit_value=take_profit_value, + use_trail_stop=use_trail_stop,auto_margin_call=auto_margin_call) +``` + +## get_order() + +Obtener información sobre buy_order_id + +devuelve (True/False,get_order,None) + +```python +Iq.get_order(buy_order_id) +``` + +## get_pending() + +Obtendrás los dato + +![](image/get_pending.png) + +```python +Iq.get_pending(instrument_type) +``` + +## get_positions() + +Obtendrá los datos + +![](image/get_positions.png) + + +devuelve (True/False,get_positions,None) + +no soporte para ""turbo-option"" + +instrument_type="crypto","forex","fx-option","multi-option","cfd","digital-option" + +```python +Iq.get_positions(instrument_type) +``` + +## get_position() + +Obtendrás los datos + +![](image/get_position.png) + +Obtendráss una possición por buy_order_id + +devuelve (True/False,position data,None) + +```python +Iq.get_positions(buy_order_id) +``` + +## get_position_history +Obtendrás los datos + +![](image/get_position_history.png) + +### get_position_history() + +devuelve (True/False,position_history,None) + +``` +Iq.get_position_history(instrument_type) +``` + +### get_position_history_v2 + +instrument_type="crypto","forex","fx-option","turbo-option","multi-option","cfd","digital-option" + +get_position_history_v2(instrument_type,limit,offset,start,end) + +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import random +import time +import datetime +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +Iq=IQ_Option("email","password") +Iq.connect()#conectar a iqoption +#instrument_type="crypto","forex","fx-option","turbo-option","multi-option","cfd","digital-option" +instrument_type="digital-option" +limit=2#Cuántos quieres obtener +offset=0#offset de tiempo final, si el tiempo final es 0,significa que se obtendrán los datos desde ahora +start=0#Empezar el tiempo en Timestamp +end=0#Timestamp +data=Iq.get_position_history_v2(instrument_type,limit,offset,start,end) + +print(data) + +#--------- Esto obtendrá los datos empezando por 2019/7/1(end) hasta 2019/1/1(start) y solo obteniendo 2(limit) datoss siendo el offset 0 +instrument_type="digital-option" +limit=2#Cuántos quieres obtener +offset=0#offset de tiempo final, si el tiempo final es 0, significa que se obtendrán los datos desde ahora +start=int(time.mktime(datetime.datetime.strptime("2019/1/1", "%Y/%m/%d").timetuple())) +end=int(time.mktime(datetime.datetime.strptime("2019/7/1", "%Y/%m/%d").timetuple())) +data=Iq.get_position_history_v2(instrument_type,limit,offset,start,end) +print(data) +``` + +## get_available_leverages() + +Obtener apalancamiento disponible + +devuelve (True/False,available_leverages,None) + +```python +Iq.get_available_leverages(instrument_type,actives) +``` + +## cancel_order() + +Cancelarás la orden + +![](image/cancel_order.png) + +devuelve (True/False) + +```python +Iq.cancel_order(buy_order_id) +``` + +## close_position() + +Cancelarás la poición + +![](image/close_position.png) + +devuelve (True/False) + +```python +Iq.close_position(buy_order_id) +``` + +## get_overnight_fee() + +devuelve (True/False,overnight_fee,None) + +```python +Iq.get_overnight_fee(instrument_type,active) +``` \ No newline at end of file diff --git a/doc/es/fef/image/cancel_order.png b/doc/es/fef/image/cancel_order.png new file mode 100644 index 00000000..bbdb6193 Binary files /dev/null and b/doc/es/fef/image/cancel_order.png differ diff --git a/doc/es/fef/image/change_ID_Name_order_id.png b/doc/es/fef/image/change_ID_Name_order_id.png new file mode 100644 index 00000000..66900fcf Binary files /dev/null and b/doc/es/fef/image/change_ID_Name_order_id.png differ diff --git a/doc/es/fef/image/change_ID_Name_position_id.png b/doc/es/fef/image/change_ID_Name_position_id.png new file mode 100644 index 00000000..61e407b1 Binary files /dev/null and b/doc/es/fef/image/change_ID_Name_position_id.png differ diff --git a/doc/es/fef/image/close_position.png b/doc/es/fef/image/close_position.png new file mode 100644 index 00000000..7f52ea76 Binary files /dev/null and b/doc/es/fef/image/close_position.png differ diff --git a/doc/es/fef/image/get_pending.png b/doc/es/fef/image/get_pending.png new file mode 100644 index 00000000..76d5660f Binary files /dev/null and b/doc/es/fef/image/get_pending.png differ diff --git a/doc/es/fef/image/get_position.png b/doc/es/fef/image/get_position.png new file mode 100644 index 00000000..29567127 Binary files /dev/null and b/doc/es/fef/image/get_position.png differ diff --git a/doc/es/fef/image/get_position_history.png b/doc/es/fef/image/get_position_history.png new file mode 100644 index 00000000..16c9ec03 Binary files /dev/null and b/doc/es/fef/image/get_position_history.png differ diff --git a/doc/es/fef/image/get_positions.png b/doc/es/fef/image/get_positions.png new file mode 100644 index 00000000..ff757ff6 Binary files /dev/null and b/doc/es/fef/image/get_positions.png differ diff --git a/doc/es/fef/instrument.txt b/doc/es/fef/instrument.txt new file mode 100644 index 00000000..920723d1 --- /dev/null +++ b/doc/es/fef/instrument.txt @@ -0,0 +1,318 @@ +Name: NZD/SEK instrument_id: "NZDSEK" instrument_type: "forex" +Name: NZD/USD instrument_id: "NZDUSD" instrument_type: "forex" +Name: CAD/TRY instrument_id: "CADTRY" instrument_type: "forex" +Name: EUR/CHF instrument_id: "EURCHF" instrument_type: "forex" +Name: USD/THB instrument_id: "USDTHB" instrument_type: "forex" +Name: EUR/TRY instrument_id: "EURTRY" instrument_type: "forex" +Name: GBP/AUD instrument_id: "GBPAUD" instrument_type: "forex" +Name: AUD/USD instrument_id: "AUDUSD" instrument_type: "forex" +Name: EUR/MXN instrument_id: "EURMXN" instrument_type: "forex" +Name: USD/CHF instrument_id: "USDCHF" instrument_type: "forex" +Name: NOK/DKK instrument_id: "NOKDKK" instrument_type: "forex" +Name: EUR/NOK instrument_id: "EURNOK" instrument_type: "forex" +Name: SEK/JPY instrument_id: "SEKJPY" instrument_type: "forex" +Name: CAD/NOK instrument_id: "CADNOK" instrument_type: "forex" +Name: NOK/SEK instrument_id: "NOKSEK" instrument_type: "forex" +Name: GBP/HUF instrument_id: "GBPHUF" instrument_type: "forex" +Name: GBP/SGD instrument_id: "GBPSGD" instrument_type: "forex" +Name: AUD/NZD instrument_id: "AUDNZD" instrument_type: "forex" +Name: GBP/JPY instrument_id: "GBPJPY" instrument_type: "forex" +Name: CHF/SEK instrument_id: "CHFSEK" instrument_type: "forex" +Name: AUD/NOK instrument_id: "AUDNOK" instrument_type: "forex" +Name: GBP/NOK instrument_id: "GBPNOK" instrument_type: "forex" +Name: AUD/DKK instrument_id: "AUDDKK" instrument_type: "forex" +Name: EUR/AUD instrument_id: "EURAUD" instrument_type: "forex" +Name: AUD/CHF instrument_id: "AUDCHF" instrument_type: "forex" +Name: GBP/CHF instrument_id: "GBPCHF" instrument_type: "forex" +Name: AUD/CAD instrument_id: "AUDCAD" instrument_type: "forex" +Name: CHF/DKK instrument_id: "CHFDKK" instrument_type: "forex" +Name: AUD/TRY instrument_id: "AUDTRY" instrument_type: "forex" +Name: NZD/CHF instrument_id: "NZDCHF" instrument_type: "forex" +Name: USD/SEK instrument_id: "USDSEK" instrument_type: "forex" +Name: GBP/NZD instrument_id: "GBPNZD" instrument_type: "forex" +Name: EUR/DKK instrument_id: "EURDKK" instrument_type: "forex" +Name: NZD/DKK instrument_id: "NZDDKK" instrument_type: "forex" +Name: CAD/SGD instrument_id: "CADSGD" instrument_type: "forex" +Name: EUR/GBP instrument_id: "EURGBP" instrument_type: "forex" +Name: EUR/CAD instrument_id: "EURCAD" instrument_type: "forex" +Name: USD/CZK instrument_id: "USDCZK" instrument_type: "forex" +Name: AUD/MXN instrument_id: "AUDMXN" instrument_type: "forex" +Name: EUR/NZD instrument_id: "EURNZD" instrument_type: "forex" +Name: GBP/PLN instrument_id: "GBPPLN" instrument_type: "forex" +Name: NZD/NOK instrument_id: "NZDNOK" instrument_type: "forex" +Name: AUD/SGD instrument_id: "AUDSGD" instrument_type: "forex" +Name: GBP/SEK instrument_id: "GBPSEK" instrument_type: "forex" +Name: NZD/CAD instrument_id: "NZDCAD" instrument_type: "forex" +Name: NZD/MXN instrument_id: "NZDMXN" instrument_type: "forex" +Name: NZD/TRY instrument_id: "NZDTRY" instrument_type: "forex" +Name: CHF/SGD instrument_id: "CHFSGD" instrument_type: "forex" +Name: USD/MXN instrument_id: "USDMXN" instrument_type: "forex" +Name: EUR/HUF instrument_id: "EURHUF" instrument_type: "forex" +Name: GBP/CAD instrument_id: "GBPCAD" instrument_type: "forex" +Name: USD/TRY instrument_id: "USDTRY" instrument_type: "forex" +Name: USD/JPY instrument_id: "USDJPY" instrument_type: "forex" +Name: EUR/USD instrument_id: "EURUSD" instrument_type: "forex" +Name: AUD/SEK instrument_id: "AUDSEK" instrument_type: "forex" +Name: CHF/NOK instrument_id: "CHFNOK" instrument_type: "forex" +Name: USD/PLN instrument_id: "USDPLN" instrument_type: "forex" +Name: USD/HUF instrument_id: "USDHUF" instrument_type: "forex" +Name: CHF/JPY instrument_id: "CHFJPY" instrument_type: "forex" +Name: GBP/ILS instrument_id: "GBPILS" instrument_type: "forex" +Name: NZD/JPY instrument_id: "NZDJPY" instrument_type: "forex" +Name: CHF/TRY instrument_id: "CHFTRY" instrument_type: "forex" +Name: CAD/JPY instrument_id: "CADJPY" instrument_type: "forex" +Name: USD/RUB instrument_id: "USDRUB" instrument_type: "forex" +Name: SGD/JPY instrument_id: "SGDJPY" instrument_type: "forex" +Name: GBP/USD instrument_id: "GBPUSD" instrument_type: "forex" +Name: CAD/PLN instrument_id: "CADPLN" instrument_type: "forex" +Name: DKK/SGD instrument_id: "DKKSGD" instrument_type: "forex" +Name: NZD/SGD instrument_id: "NZDSGD" instrument_type: "forex" +Name: AUD/JPY instrument_id: "AUDJPY" instrument_type: "forex" +Name: NOK/JPY instrument_id: "NOKJPY" instrument_type: "forex" +Name: PLN/SEK instrument_id: "PLNSEK" instrument_type: "forex" +Name: USD/SGD instrument_id: "USDSGD" instrument_type: "forex" +Name: GBP/MXN instrument_id: "GBPMXN" instrument_type: "forex" +Name: USD/CAD instrument_id: "USDCAD" instrument_type: "forex" +Name: SEK/DKK instrument_id: "SEKDKK" instrument_type: "forex" +Name: DKK/PLN instrument_id: "DKKPLN" instrument_type: "forex" +Name: CAD/MXN instrument_id: "CADMXN" instrument_type: "forex" +Name: GBP/TRY instrument_id: "GBPTRY" instrument_type: "forex" +Name: EUR/SGD instrument_id: "EURSGD" instrument_type: "forex" +Name: NZD/ZAR instrument_id: "NZDZAR" instrument_type: "forex" +Name: EUR/CZK instrument_id: "EURCZK" instrument_type: "forex" +Name: EUR/JPY instrument_id: "EURJPY" instrument_type: "forex" +Name: CAD/CHF instrument_id: "CADCHF" instrument_type: "forex" +Name: USD/INR instrument_id: "USDINR" instrument_type: "forex" +Name: USD/BRL instrument_id: "USDBRL" instrument_type: "forex" +Name: USD/NOK instrument_id: "USDNOK" instrument_type: "forex" +Name: USD/DKK instrument_id: "USDDKK" instrument_type: "forex" +Name: China Large-Cap ETF instrument_id: "FXI" instrument_type: "cfd" +Name: IBM Corporation instrument_id: "IBM:US" instrument_type: "cfd" +Name: IDEXX Laboratories instrument_id: "IDXX" instrument_type: "cfd" +Name: Siemens instrument_id: "SIED-CHIX" instrument_type: "cfd" +Name: Roche instrument_id: "ROGZ-CHIX" instrument_type: "cfd" +Name: Airbus SE instrument_id: "AIRP-CHIX" instrument_type: "cfd" +Name: AbbVie instrument_id: "ABBV:US" instrument_type: "cfd" +Name: Concho Resources instrument_id: "CXO:US" instrument_type: "cfd" +Name: Verizon instrument_id: "VZ:US" instrument_type: "cfd" +Name: Unilever instrument_id: "ULVRL-CHIX" instrument_type: "cfd" +Name: Lockheed Martin instrument_id: "LMT:US" instrument_type: "cfd" +Name: NextEra Energy instrument_id: "NEE:US" instrument_type: "cfd" +Name: US 100 instrument_id: "USNDAQ100" instrument_type: "cfd" +Name: Entergy instrument_id: "ETR:US" instrument_type: "cfd" +Name: QQQ Trust, Series 1 instrument_id: "QQQ" instrument_type: "cfd" +Name: DTE Energy instrument_id: "DTE:US" instrument_type: "cfd" +Name: Tesco instrument_id: "TSCOL-CHIX" instrument_type: "cfd" +Name: First Solar instrument_id: "FSLR:US" instrument_type: "cfd" +Name: Pfizer instrument_id: "PFE:US" instrument_type: "cfd" +Name: Eastman Chemical instrument_id: "EMN:US" instrument_type: "cfd" +Name: JP Morgan Chase instrument_id: "JPM" instrument_type: "cfd" +Name: Google instrument_id: "GOOGLE" instrument_type: "cfd" +Name: Fastenal instrument_id: "FAST:US" instrument_type: "cfd" +Name: HSBC Holdings PLC instrument_id: "HSBAL-CHIX" instrument_type: "cfd" +Name: DaVita instrument_id: "DVA:US" instrument_type: "cfd" +Name: Utilities SPDR instrument_id: "XLU" instrument_type: "cfd" +Name: Federal Realty instrument_id: "FRT:US" instrument_type: "cfd" +Name: Commerzbank instrument_id: "CBKD-CHIX" instrument_type: "cfd" +Name: Amgen instrument_id: "AMGN:US" instrument_type: "cfd" +Name: Silver instrument_id: "XAGUSD" instrument_type: "cfd" +Name: Resmed Inc instrument_id: "RMD" instrument_type: "cfd" +Name: Equifax instrument_id: "EFX:US" instrument_type: "cfd" +Name: Digital Realty Trust instrument_id: "DLR:US" instrument_type: "cfd" +Name: Adobe Systems instrument_id: "ADBE:US" instrument_type: "cfd" +Name: Autodesk instrument_id: "ADSK:US" instrument_type: "cfd" +Name: Barclays instrument_id: "BARCL-CHIX" instrument_type: "cfd" +Name: Spotify instrument_id: "SPOT" instrument_type: "cfd" +Name: Standard Chartered instrument_id: "STANL-CHIX" instrument_type: "cfd" +Name: Alibaba instrument_id: "ALIBABA" instrument_type: "cfd" +Name: Freeport-McMoRan instrument_id: "FCX:US" instrument_type: "cfd" +Name: Delta Air Lines instrument_id: "DAL:US" instrument_type: "cfd" +Name: Materials Select Sector SPDR instrument_id: "XLB" instrument_type: "cfd" +Name: Amazon instrument_id: "AMAZON" instrument_type: "cfd" +Name: Semiconductor ETF instrument_id: "SMH" instrument_type: "cfd" +Name: S&P 500 ETF instrument_id: "SPY" instrument_type: "cfd" +Name: Caterpillar instrument_id: "CAT:US" instrument_type: "cfd" +Name: US 30 instrument_id: "US30" instrument_type: "cfd" +Name: ConocoPhillips instrument_id: "COP:US" instrument_type: "cfd" +Name: Flowserve instrument_id: "FLS:US" instrument_type: "cfd" +Name: Goldman Sachs instrument_id: "GS" instrument_type: "cfd" +Name: AU 200 instrument_id: "AUS200" instrument_type: "cfd" +Name: Edison instrument_id: "EIX:US" instrument_type: "cfd" +Name: Crude Oil WTI instrument_id: "USOUSD" instrument_type: "cfd" +Name: MSCI Mexico ETF instrument_id: "EWW" instrument_type: "cfd" +Name: General Electric instrument_id: "GE" instrument_type: "cfd" +Name: Micron Technology instrument_id: "MU:US" instrument_type: "cfd" +Name: Telefónica instrument_id: "TEFE-CHIX" instrument_type: "cfd" +Name: Procter & Gamble instrument_id: "PG:US" instrument_type: "cfd" +Name: Accenture instrument_id: "ACN:US" instrument_type: "cfd" +Name: Costco instrument_id: "COST:US" instrument_type: "cfd" +Name: Medtronic instrument_id: "MDT:US" instrument_type: "cfd" +Name: MSCI Emerging Markets ETF instrument_id: "EEM" instrument_type: "cfd" +Name: Expeditors instrument_id: "EXPD:US" instrument_type: "cfd" +Name: Facebook instrument_id: "FACEBOOK" instrument_type: "cfd" +Name: Tesla instrument_id: "TESLA" instrument_type: "cfd" +Name: Merck instrument_id: "MRKD-CHIX" instrument_type: "cfd" +Name: FirstEnergy instrument_id: "FE:US" instrument_type: "cfd" +Name: Altria instrument_id: "MO:US" instrument_type: "cfd" +Name: Core MSCI Emerging Markets instrument_id: "IEMG" instrument_type: "cfd" +Name: AS Roma instrument_id: "ASRM" instrument_type: "cfd" +Name: Bayer instrument_id: "BAYND-CHIX" instrument_type: "cfd" +Name: Continental instrument_id: "COND-CHIX" instrument_type: "cfd" +Name: Qualcomm instrument_id: "QCOM:US" instrument_type: "cfd" +Name: Vodafone Group PLC instrument_id: "VODL-CHIX" instrument_type: "cfd" +Name: Visa instrument_id: "V:US" instrument_type: "cfd" +Name: AT&T instrument_id: "T:US" instrument_type: "cfd" +Name: FedEx instrument_id: "FDX:US" instrument_type: "cfd" +Name: Frontier Communications instrument_id: "FTR:US" instrument_type: "cfd" +Name: Teleflex Inc instrument_id: "TFX" instrument_type: "cfd" +Name: Twitter Inc instrument_id: "TWITTER" instrument_type: "cfd" +Name: Royal Bank of Scotland instrument_id: "RBSL-CHIX" instrument_type: "cfd" +Name: S&P Oil & Gas Explor & Product instrument_id: "XOP" instrument_type: "cfd" +Name: Deutsche Post instrument_id: "DPWD-CHIX" instrument_type: "cfd" +Name: General Motors instrument_id: "GM" instrument_type: "cfd" +Name: US 500 instrument_id: "USSPX500" instrument_type: "cfd" +Name: Bank of America instrument_id: "BAC:US" instrument_type: "cfd" +Name: Nike instrument_id: "NIKE" instrument_type: "cfd" +Name: Darden Restaurants instrument_id: "DRI:US" instrument_type: "cfd" +Name: UBS instrument_id: "UBSGZ-CHIX" instrument_type: "cfd" +Name: Discover Financial Services instrument_id: "DFS:US" instrument_type: "cfd" +Name: Emerson Electric instrument_id: "EMR:US" instrument_type: "cfd" +Name: Advance Auto Parts instrument_id: "AAP:US" instrument_type: "cfd" +Name: Duke Realty Corp instrument_id: "DRE" instrument_type: "cfd" +Name: Rolls-Royce instrument_id: "RRL-CHIX" instrument_type: "cfd" +Name: Wells Fargo instrument_id: "WFC:US" instrument_type: "cfd" +Name: CitiGroup instrument_id: "CITI" instrument_type: "cfd" +Name: Cisco Systems instrument_id: "CISCO" instrument_type: "cfd" +Name: Apple instrument_id: "APPLE" instrument_type: "cfd" +Name: MSCI Japan ETF instrument_id: "EWJ" instrument_type: "cfd" +Name: F5 Networks instrument_id: "FFIV:US" instrument_type: "cfd" +Name: Heinz instrument_id: "KHC:US" instrument_type: "cfd" +Name: British American Tobacco instrument_id: "BATSL-CHIX" instrument_type: "cfd" +Name: Nvidia instrument_id: "NVDA:US" instrument_type: "cfd" +Name: E.ON instrument_id: "EOAND-CHIX" instrument_type: "cfd" +Name: Citrix Systems instrument_id: "CTXS:US" instrument_type: "cfd" +Name: UK 100 instrument_id: "UK100" instrument_type: "cfd" +Name: BBVA instrument_id: "BBVAE-CHIX" instrument_type: "cfd" +Name: Philip Morris Int. instrument_id: "PM:US" instrument_type: "cfd" +Name: Consolidated Edison instrument_id: "ED:US" instrument_type: "cfd" +Name: Netflix instrument_id: "NFLX:US" instrument_type: "cfd" +Name: Allianz instrument_id: "ALVD-CHIX" instrument_type: "cfd" +Name: FR 40 instrument_id: "FRANCE40" instrument_type: "cfd" +Name: Schlumberger instrument_id: "SLB:US" instrument_type: "cfd" +Name: Platinum instrument_id: "XPTUSD" instrument_type: "cfd" +Name: Consumer Discretionary SPDR instrument_id: "XLY" instrument_type: "cfd" +Name: BHP Billiton instrument_id: "BLTL-CHIX" instrument_type: "cfd" +Name: Credit Suisse instrument_id: "CSGNZ-CHIX" instrument_type: "cfd" +Name: Activision Blizzard instrument_id: "ATVI:US" instrument_type: "cfd" +Name: Hasbro instrument_id: "HAS:US" instrument_type: "cfd" +Name: Bristol-Myers Squibb instrument_id: "BMY:US" instrument_type: "cfd" +Name: Equity Residential instrument_id: "EQR:US" instrument_type: "cfd" +Name: Suncor Energy Inc. instrument_id: "SU" instrument_type: "cfd" +Name: Cintas instrument_id: "CTAS:US" instrument_type: "cfd" +Name: Morgan Stanley instrument_id: "MORSTAN" instrument_type: "cfd" +Name: Devon Energy instrument_id: "DVN:US" instrument_type: "cfd" +Name: Dun & Bradstreet instrument_id: "DNB:US" instrument_type: "cfd" +Name: S&P Metals & Mining ETF instrument_id: "XME" instrument_type: "cfd" +Name: SP 35 instrument_id: "SPAIN35" instrument_type: "cfd" +Name: Boeing instrument_id: "BA:US" instrument_type: "cfd" +Name: Ferrari instrument_id: "FERRARI" instrument_type: "cfd" +Name: US Real Estate ETF instrument_id: "IYR" instrument_type: "cfd" +Name: Dover instrument_id: "DOV:US" instrument_type: "cfd" +Name: Honeywell instrument_id: "HON:US" instrument_type: "cfd" +Name: Marks & Spencer instrument_id: "MKSL-CHIX" instrument_type: "cfd" +Name: BMW instrument_id: "BMWD-CHIX" instrument_type: "cfd" +Name: HK 50 instrument_id: "HONGKONG50" instrument_type: "cfd" +Name: PayPal instrument_id: "PYPL:US" instrument_type: "cfd" +Name: Alcoa instrument_id: "AA:US" instrument_type: "cfd" +Name: CVS Health instrument_id: "CVS:US" instrument_type: "cfd" +Name: iShares Russell 2000 ETF instrument_id: "IWM" instrument_type: "cfd" +Name: Walgreens Boots All. instrument_id: "WBA:US" instrument_type: "cfd" +Name: ANSYS instrument_id: "ANSS" instrument_type: "cfd" +Name: Energy SPDR instrument_id: "XLE" instrument_type: "cfd" +Name: Wheat instrument_id: "W1" instrument_type: "cfd" +Name: Ecolab instrument_id: "ECL:US" instrument_type: "cfd" +Name: Starbucks instrument_id: "SBUX:US" instrument_type: "cfd" +Name: Heineken Holding NV instrument_id: "HEIOA-CHIX" instrument_type: "cfd" +Name: Quest Diagnostics instrument_id: "DGX:US" instrument_type: "cfd" +Name: easyJet instrument_id: "EZJL-CHIX" instrument_type: "cfd" +Name: JP 225 instrument_id: "JAPAN225" instrument_type: "cfd" +Name: AMD instrument_id: "AMD" instrument_type: "cfd" +Name: Colgate-Palmolive instrument_id: "CL:US" instrument_type: "cfd" +Name: Salesforce.com instrument_id: "CRM:US" instrument_type: "cfd" +Name: Technology SPDR instrument_id: "XLK" instrument_type: "cfd" +Name: Dropbox instrument_id: "DBX" instrument_type: "cfd" +Name: Fidelity National Information Services instrument_id: "FIS:US" instrument_type: "cfd" +Name: 3M Company instrument_id: "MMM:US" instrument_type: "cfd" +Name: Daimler instrument_id: "DAID-CHIX" instrument_type: "cfd" +Name: Baidu instrument_id: "BAIDU" instrument_type: "cfd" +Name: Wal-Mart Stores instrument_id: "WMT:US" instrument_type: "cfd" +Name: Exxon Mobil instrument_id: "XOM:US" instrument_type: "cfd" +Name: Raytheon instrument_id: "RTN:US" instrument_type: "cfd" +Name: eBay instrument_id: "EBAY:US" instrument_type: "cfd" +Name: Discovery – Class A instrument_id: "DISCA:US" instrument_type: "cfd" +Name: Oil Services ETF instrument_id: "OIH" instrument_type: "cfd" +Name: Microsoft instrument_id: "MSFT" instrument_type: "cfd" +Name: Chevron instrument_id: "CVX:US" instrument_type: "cfd" +Name: Lloyds Banking Group PLC instrument_id: "LLOYL-CHIX" instrument_type: "cfd" +Name: 20+ Year Treasury Bond ETF instrument_id: "TLT" instrument_type: "cfd" +Name: Adidas instrument_id: "ADSD-CHIX" instrument_type: "cfd" +Name: Comcast – Class A instrument_id: "CMCSA:US" instrument_type: "cfd" +Name: Danaher instrument_id: "DHR:US" instrument_type: "cfd" +Name: Align Technology instrument_id: "ALGN" instrument_type: "cfd" +Name: Volkswagen instrument_id: "VOW3D-CHIX" instrument_type: "cfd" +Name: Fiserv instrument_id: "FISV:US" instrument_type: "cfd" +Name: L'Oreal instrument_id: "ORP-CHIX" instrument_type: "cfd" +Name: D. R. Horton instrument_id: "DHI:US" instrument_type: "cfd" +Name: Deutsche Telekom instrument_id: "DTED-CHIX" instrument_type: "cfd" +Name: Gold Miners ETF instrument_id: "GDX" instrument_type: "cfd" +Name: Gold instrument_id: "XAUUSD" instrument_type: "cfd" +Name: Extra Space Storage instrument_id: "EXR:US" instrument_type: "cfd" +Name: Manchester United instrument_id: "MANU" instrument_type: "cfd" +Name: Banco Santander instrument_id: "SANE-CHIX" instrument_type: "cfd" +Name: Abbott Labs instrument_id: "ABT:US" instrument_type: "cfd" +Name: FMC Corporation instrument_id: "FMC:US" instrument_type: "cfd" +Name: Snapchat instrument_id: "SNAP" instrument_type: "cfd" +Name: ThyssenKrupp instrument_id: "TKAD-CHIX" instrument_type: "cfd" +Name: GER 30 instrument_id: "GERMANY30" instrument_type: "cfd" +Name: Fortune Brands Home & Security instrument_id: "FBHS:US" instrument_type: "cfd" +Name: Crude Oil Brent instrument_id: "UKOUSD" instrument_type: "cfd" +Name: Coca Cola instrument_id: "COKE" instrument_type: "cfd" +Name: Essex Property Trust instrument_id: "ESS:US" instrument_type: "cfd" +Name: Wm Morrison Supermarkets instrument_id: "MRWL-CHIX" instrument_type: "cfd" +Name: Gilead Sciences instrument_id: "GILD:US" instrument_type: "cfd" +Name: MasterCard instrument_id: "MA:US" instrument_type: "cfd" +Name: Nestlé instrument_id: "NESNZ-CHIX" instrument_type: "cfd" +Name: CenturyLink instrument_id: "CTL:US" instrument_type: "cfd" +Name: Deutsche Bank instrument_id: "DBKD-CHIX" instrument_type: "cfd" +Name: T-Mobile US, Inc. instrument_id: "TMUS" instrument_type: "cfd" +Name: McDonald's instrument_id: "MCDON" instrument_type: "cfd" +Name: Diamond Offshore Drilling instrument_id: "DO:US" instrument_type: "cfd" +Name: Intel instrument_id: "INTEL" instrument_type: "cfd" +Name: Fifth Third Bank instrument_id: "FITB:US" instrument_type: "cfd" +Name: Best Buy instrument_id: "BBY:US" instrument_type: "cfd" +Name: EQT Corporation instrument_id: "EQT:US" instrument_type: "cfd" +Name: BP PLC instrument_id: "BPL-CHIX" instrument_type: "cfd" +Name: E-Trade instrument_id: "ETFC:US" instrument_type: "cfd" +Name: Stryker instrument_id: "SYK:US" instrument_type: "cfd" +Name: Dow Jones Industrial Average ETF instrument_id: "DIA" instrument_type: "cfd" +Name: NEM ×20 instrument_id: "XEMUSD-L" instrument_type: "crypto" +Name: Ethereum instrument_id: "ETHUSD" instrument_type: "crypto" +Name: EOS ×20 instrument_id: "EOSUSD-L" instrument_type: "crypto" +Name: Qtum instrument_id: "QTMUSD" instrument_type: "crypto" +Name: EOS instrument_id: "EOSUSD" instrument_type: "crypto" +Name: Bitcoin Cash ×20 instrument_id: "BCHUSD-L" instrument_type: "crypto" +Name: Bitcoin instrument_id: "BTCUSD" instrument_type: "crypto" +Name: TRON instrument_id: "TRXUSD" instrument_type: "crypto" +Name: Ripple ×20 instrument_id: "XRPUSD-L" instrument_type: "crypto" +Name: Stellar ×20 instrument_id: "XLMUSD-L" instrument_type: "crypto" +Name: Ethereum ×50 instrument_id: "ETHUSD-L" instrument_type: "crypto" +Name: ZCash instrument_id: "ZECUSD" instrument_type: "crypto" +Name: Litecoin instrument_id: "LTCUSD" instrument_type: "crypto" +Name: Bitcoin Cash instrument_id: "BCHUSD" instrument_type: "crypto" +Name: Bitcoin ×100 instrument_id: "BTCUSD-L" instrument_type: "crypto" +Name: OmiseGo instrument_id: "OMGUSD" instrument_type: "crypto" +Name: TRON ×50 instrument_id: "TRXUSD-L" instrument_type: "crypto" +Name: Cardano ×20 instrument_id: "ADAUSD-L" instrument_type: "crypto" +Name: Dash instrument_id: "DSHUSD" instrument_type: "crypto" +Name: Litecoin ×20 instrument_id: "LTCUSD-L" instrument_type: "crypto" +Name: Ripple instrument_id: "XRPUSD" instrument_type: "crypto" \ No newline at end of file diff --git a/doc/es/index.md b/doc/es/index.md new file mode 100644 index 00000000..fae30c0f --- /dev/null +++ b/doc/es/index.md @@ -0,0 +1,144 @@ +# Primeros pasos + +## Instalar iqoptionapi + +descarga el código fuente y ejecuta lo siguiente: + +``` +python setup.py install +``` + +o instalar usando (Necesitas [git instalada](https://git-scm.com/downloads)): +``` +pip install -U git+git://github.com/iqoptionapi/iqoptionapi.git +``` + +## Un ejemplo simple + +```python +import time +from iqoptionapi.stable_api import IQ_Option +Iq=IQ_Option("email","password") +Iq.connect()#connect to iqoption +goal="EURUSD" +print("get candles") +print(Iq.get_candles(goal,60,111,time.time())) +``` + +## Importar la librería + +```python +from iqoptionapi.stable_api import IQ_Option +``` + +## Login + +Iq.connect() will return (check,reason) + +Si la conexión es exitosa, devuelve -> True,None + +Si hay algún fallo en la conexión, devuelve -> False,reason + +```python +from iqoptionapi.stable_api import IQ_Option +import logging + +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +Iq=IQ_Option("email","password") +check, reason=Iq.connect()#connect to iqoption +print(check, reason) +``` + +## Activar el modo Debug + +```python +import logging +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +``` + +## Conectarse y comprobar la conexión + +A veces la conexión se cierra, así que debemos de comprobar la conexión y +volvenos a conectar. + +Prueba a desconectar tu conexión y volverla a conectar para probar el siguiente +ejemplo. + +```python +from iqoptionapi.stable_api import IQ_Option +error_password="""{"code":"invalid_credentials","message":"You entered the wrong credentials. Please check that the login/password is correct."}""" +iqoption = IQ_Option("email", "password") +check,reason=iqoption.connect() +if check: + print("Activa tu robot") + #Si ves esto puedess cerrar la conexión para probarlo + while True: + if iqoption.check_connect()==False:#Detecta si el websocket ha sido cerrado + print("Probando a reconectar") + check,reason=iqoption.connect() + if check: + print("Reconectado con éxito") + else: + if reason==error_password: + print("Contraseña incorrecta") + else: + print("No hay conexión") + +else: + + if reason=="[Errno -2] Nombre or servicio no conocido": + print("No hay conexión") + elif reason==error_password: + print("Error en la Contraseña") +``` + +## set_session + +Default User-Agent is "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36" + +```python +from iqoptionapi.stable_api import IQ_Option +import logging +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') + +Iq=IQ_Option("email","password") + +#Por defecto es "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36" + +header={"User-Agent":r"Mozilla/5.0 (X11; Linux x86_64; rv:70.0) Gecko/20100101 Firefox/70.0"} +cookie={"Iq":"GOOD"} + +Iq.set_session(header,cookie) + +Iq.connect()#Conectar a IqOption +``` + +## Comprobar versión + +```python +from iqoptionapi.stable_api import IQ_Option +print(IQ_Option.__version__) +``` + +## Comprobar conexión + +return True/False + +``` +print(Iq.check_connect()) +``` + +## Reconnect + +```python +Iq.connect() +``` + +## time + +get_server_timestamp +El tiempo se sincronica con iqoption + +```python +Iq.get_server_timestamp() +``` diff --git a/doc/es/techinical analysis/image/Oscillators.JPG b/doc/es/techinical analysis/image/Oscillators.JPG new file mode 100644 index 00000000..77e72115 Binary files /dev/null and b/doc/es/techinical analysis/image/Oscillators.JPG differ diff --git a/doc/es/techinical analysis/image/info.jpg b/doc/es/techinical analysis/image/info.jpg new file mode 100644 index 00000000..92af60ee Binary files /dev/null and b/doc/es/techinical analysis/image/info.jpg differ diff --git a/doc/es/techinical analysis/image/moving-average.JPG b/doc/es/techinical analysis/image/moving-average.JPG new file mode 100644 index 00000000..171e3946 Binary files /dev/null and b/doc/es/techinical analysis/image/moving-average.JPG differ diff --git a/doc/es/techinical analysis/image/pivots.JPG b/doc/es/techinical analysis/image/pivots.JPG new file mode 100644 index 00000000..34039c41 Binary files /dev/null and b/doc/es/techinical analysis/image/pivots.JPG differ diff --git a/doc/es/techinical analysis/image/technical-analysis.jpg b/doc/es/techinical analysis/image/technical-analysis.jpg new file mode 100644 index 00000000..1c57e334 Binary files /dev/null and b/doc/es/techinical analysis/image/technical-analysis.jpg differ diff --git a/doc/es/techinical analysis/index.md b/doc/es/techinical analysis/index.md new file mode 100644 index 00000000..67063386 --- /dev/null +++ b/doc/es/techinical analysis/index.md @@ -0,0 +1,66 @@ +## Tecnical analysis + +Está disponible en los assets que puedes comprobar en "asset info": + +![asset Info](image/info.jpg) + +Si hay una sesión como esta tu puedes obtener los datos + +NOTA: Si no hay análisis técnico en el asset que tu quieres, no podrás uarlo + +![techinical Analysis menu](image/technical-analysis.jpg) + +Hay algunos indicadores disponibles + +## Pivotes + +![Pivots](image/pivots.JPG) + +## Osciladores + +![Oscillators](image/Oscillators.JPG) + +## Promedioss móviles + +![Moving Averages](image/Oscillators.JPG) + +## Cómo usar: + +```python + +asset="GBPUSD" +indicators = Iq.get_technical_indicators(asset) +print(indicators) + +``` +Si el asset no contiene el análisis técnico, devolverá: + +``` +{ + "code": "no_technical_indicator_available", + "message": "Active is not supported: active id 'ACTIVE_ID_PASSED'" +} +``` +Si lo contiene, devolverá algo parecido a esto: + +NOTA: DEBE ANALIZAR EL CONTENIDO QUE SE IMPRIME + +```json +[ + { + "action": "hold", + "candle_size": 60, + "group": "OSCILLATORS", + "name": "Relative Strength Index (14)", + "value": 59.168583 + }, + { + "action": "hold", + "candle_size": 60, + "group": "PIVOTS", + "name": "Classic s3", + "value": 1.057292 + } + ..... +] +``` diff --git a/doc/image/features/econimic_calendar.png b/doc/image/features/econimic_calendar.png new file mode 100644 index 00000000..d2776fd7 Binary files /dev/null and b/doc/image/features/econimic_calendar.png differ diff --git a/doc/image/features/news_feed.png b/doc/image/features/news_feed.png new file mode 100644 index 00000000..1dbfa2d3 Binary files /dev/null and b/doc/image/features/news_feed.png differ diff --git a/doc/image/flags/br.png b/doc/image/flags/br.png new file mode 100644 index 00000000..ae18081a Binary files /dev/null and b/doc/image/flags/br.png differ diff --git a/doc/image/flags/en.png b/doc/image/flags/en.png new file mode 100644 index 00000000..56268bc4 Binary files /dev/null and b/doc/image/flags/en.png differ diff --git a/doc/image/flags/es.png b/doc/image/flags/es.png new file mode 100644 index 00000000..6a9319d1 Binary files /dev/null and b/doc/image/flags/es.png differ diff --git a/doc/image/icon/brain.png b/doc/image/icon/brain.png new file mode 100644 index 00000000..7bda7cbf Binary files /dev/null and b/doc/image/icon/brain.png differ diff --git a/doc/image/icon/iq.ico b/doc/image/icon/iq.ico new file mode 100644 index 00000000..af03fbce Binary files /dev/null and b/doc/image/icon/iq.ico differ diff --git a/doc/image/icon/mars.png b/doc/image/icon/mars.png new file mode 100644 index 00000000..ed37b30c Binary files /dev/null and b/doc/image/icon/mars.png differ diff --git a/doc/index.md b/doc/index.md new file mode 100644 index 00000000..a3adb18c --- /dev/null +++ b/doc/index.md @@ -0,0 +1,43 @@ + +## CONTRIBUTE + +{% set donation_link = config.theme.donation_link or "#" %} + +[Ajudar a manter o projeto e trazer novas features
Help maintain the project and bring new features]({{ donation_link }}) + +## UPCOMMING FEATURES + +- Economic calendar (UNDER DEVELOPMENT) + +![ECONOMIC CALENDAR](image/features/econimic_calendar.png) + +- News feed + +![NEWS FEED](image/features/news_feed.png) + +## IQOPTION API SUPPORTED BY COMMUNITY + +This api is intended to be an open source project to communicate with iqOption site. +this is a no official repository, it means it is maintained by community + +Esta API é destinada a ser um projeto de código aberto para se comunicar com o site da iqOption. +este é um repositório não oficial, significa que é mantido pela comunidade + +Esta API está destinada a ser un proyecto de código abierto para comunicarse con el sitio de IqIoption. +este es un repositorio no oficial, significa que es mantenido por la comunidad + +
+

Idiomas | Languages

+ + Português + + + Espanol + + + English + +
diff --git a/doc/javascripts/.Rhistory b/doc/javascripts/.Rhistory new file mode 100644 index 00000000..e69de29b diff --git a/doc/javascripts/extra.js b/doc/javascripts/extra.js new file mode 100644 index 00000000..b1f42222 --- /dev/null +++ b/doc/javascripts/extra.js @@ -0,0 +1,27 @@ +window.MathJax = { + jax: ["input/TeX","input/MathML","input/AsciiMath","output/SVG"], + extensions: ["tex2jax.js","mml2jax.js","asciimath2jax.js","MathMenu.js","MathZoom.js","AssistiveMML.js", "a11y/accessibility-menu.js"], + TeX: { + extensions: ["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"] + }, + tex2jax: { + inlineMath: [ ["\\(","\\)"] ], + displayMath: [ ["\\[","\\]"] ] + }, + TeX: { + TagSide: "right", + TagIndent: ".8em", + MultLineWidth: "85%", + equationNumbers: { + autoNumber: "AMS", + }, + unicode: { + fonts: "STIXGeneral,'Arial Unicode MS'" + } + }, + displayAlign: "left", + showProcessingMessages: false, + messageStyle: "none" +}; + + diff --git a/doc/paypal-donate-button.png b/doc/paypal-donate-button.png new file mode 100644 index 00000000..7cd94d16 Binary files /dev/null and b/doc/paypal-donate-button.png differ diff --git a/doc/pt/changelog.md b/doc/pt/changelog.md new file mode 100644 index 00000000..405bcabb --- /dev/null +++ b/doc/pt/changelog.md @@ -0,0 +1,107 @@ +## Version 5.3.0 + +add technical Indicators + +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import time +import userdata + +asset= "EURUSD" +maxdict=10 +size=300 + +logging.disable(level=(logging.DEBUG)) + +user = userdata.mainUser +Iq= IQ_Option(user["username"],user["password"]) +indicators = Iq.get_technical_indicators(asset) +print(indicators) +print("passou while bot") + +``` + +### Version: 5.1.1 + +#### fix change_balance + +```python +from iqoptionapi.stable_api import IQ_Option +email = "your@mail.ocm" +password = "your_password" +account_mode = "real" # real/practic + +Iq = IQ_Option(email,password, account_mode) + +balance_id = Iq.change_balance("practic") + +``` + +#### Add option balance_mode on create IQ_Option objetct. + +```python +from iqoptionapi.stable_api import IQ_Option +email = "your@mail.ocm" +password = "your_password" +account_mode = "real" # real/practic + +Iq = IQ_Option(email,password, account_mode) + +``` + +last update:2019/11/22 + +Version:5.1 +add[get_option_open_by_other_pc](#getoptionopenbyotherpc) api + +Version:5.0 + +please donate >< get_digital_spot_profit_after_sale pay me lot of time + +https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/125 + +add [get_digital_spot_profit_after_sale](#getdigitalspotprofitaftersale) api + +Version:4.5 + +add [get_remaning](#getremaning) api + +Version:4.4 + +fix check_win_digital(check_win_digital(Synchronous message) and check_win_digital_v2(Asynchronous messages) are different implement way) + +add get_digital_position() + +Version:4.3 + +add subscribe_top_assets_updated & popularity +https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/131 + +Version:4.2 + +add reconnect sample +add get_async_order api + +Version:4.0.1 + +fix get_positions() +https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/132 + +add get_optioninfo_v2 + +Version:4.0.0 + +:exclamation::exclamation::exclamation: +update websocket-client==0.56 +:exclamation: +please uninstall all websocket-client and update up websocket-client==0.56 + +``` +sudo pip uninstall websocket-client +sudo pip install websocket-client==0.56 +``` + +:exclamation: + +--- diff --git a/doc/pt/forex.md b/doc/pt/forex.md new file mode 100644 index 00000000..31c04bc0 --- /dev/null +++ b/doc/pt/forex.md @@ -0,0 +1 @@ +## How to trade with forex diff --git a/doc/pt/index.md b/doc/pt/index.md new file mode 100644 index 00000000..fb4004b8 --- /dev/null +++ b/doc/pt/index.md @@ -0,0 +1,14 @@ +# IQ Option API + +{% set donation_link = config.theme.donation_link or "#" %} + +[Ajudar a manter o projeto e trazer novas features]({{ donation_link }}) + +Ainda não possui a tradução em portugues. + +Em breve estará disponivel. + +Para manter o projeto continuamente atualizado contribua com uma doação, com alguma correção ou melhoria. + +As doações serão usadas para adicionar novas features. + diff --git a/doc/theme/material/.icons/fontawesome/LICENSE.txt b/doc/theme/material/.icons/fontawesome/LICENSE.txt new file mode 100644 index 00000000..f31bef92 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/LICENSE.txt @@ -0,0 +1,34 @@ +Font Awesome Free License +------------------------- + +Font Awesome Free is free, open source, and GPL friendly. You can use it for +commercial projects, open source projects, or really almost whatever you want. +Full Font Awesome Free license: https://fontawesome.com/license/free. + +# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/) +In the Font Awesome Free download, the CC BY 4.0 license applies to all icons +packaged as SVG and JS file types. + +# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL) +In the Font Awesome Free download, the SIL OFL license applies to all icons +packaged as web and desktop font files. + +# Code: MIT License (https://opensource.org/licenses/MIT) +In the Font Awesome Free download, the MIT license applies to all non-font and +non-icon files. + +# Attribution +Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font +Awesome Free files already contain embedded comments with sufficient +attribution, so you shouldn't need to do anything additional when using these +files normally. + +We've kept attribution comments terse, so we ask that you do not actively work +to remove them from files, especially code. They're a great way for folks to +learn about Font Awesome. + +# Brand Icons +All brand icons are trademarks of their respective owners. The use of these +trademarks does not indicate endorsement of the trademark holder by Font +Awesome, nor vice versa. **Please do not use brand logos for any purpose except +to represent the company, product, or service to which they refer.** diff --git a/doc/theme/material/.icons/fontawesome/brands/500px.svg b/doc/theme/material/.icons/fontawesome/brands/500px.svg new file mode 100644 index 00000000..d872f24a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/500px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/accessible-icon.svg b/doc/theme/material/.icons/fontawesome/brands/accessible-icon.svg new file mode 100644 index 00000000..725b9028 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/accessible-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/accusoft.svg b/doc/theme/material/.icons/fontawesome/brands/accusoft.svg new file mode 100644 index 00000000..7be2e628 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/accusoft.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/acquisitions-incorporated.svg b/doc/theme/material/.icons/fontawesome/brands/acquisitions-incorporated.svg new file mode 100644 index 00000000..0a225485 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/acquisitions-incorporated.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/adn.svg b/doc/theme/material/.icons/fontawesome/brands/adn.svg new file mode 100644 index 00000000..ee285395 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/adn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/adobe.svg b/doc/theme/material/.icons/fontawesome/brands/adobe.svg new file mode 100644 index 00000000..27030e6b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/adobe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/adversal.svg b/doc/theme/material/.icons/fontawesome/brands/adversal.svg new file mode 100644 index 00000000..125dd501 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/adversal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/affiliatetheme.svg b/doc/theme/material/.icons/fontawesome/brands/affiliatetheme.svg new file mode 100644 index 00000000..d5dd4e8e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/affiliatetheme.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/airbnb.svg b/doc/theme/material/.icons/fontawesome/brands/airbnb.svg new file mode 100644 index 00000000..b3ca9d6b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/airbnb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/algolia.svg b/doc/theme/material/.icons/fontawesome/brands/algolia.svg new file mode 100644 index 00000000..979d7cd7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/algolia.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/alipay.svg b/doc/theme/material/.icons/fontawesome/brands/alipay.svg new file mode 100644 index 00000000..de341fbc --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/alipay.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/amazon-pay.svg b/doc/theme/material/.icons/fontawesome/brands/amazon-pay.svg new file mode 100644 index 00000000..5c90ad76 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/amazon-pay.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/amazon.svg b/doc/theme/material/.icons/fontawesome/brands/amazon.svg new file mode 100644 index 00000000..642fdb2d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/amazon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/amilia.svg b/doc/theme/material/.icons/fontawesome/brands/amilia.svg new file mode 100644 index 00000000..48c693c9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/amilia.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/android.svg b/doc/theme/material/.icons/fontawesome/brands/android.svg new file mode 100644 index 00000000..da3cfeb7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/android.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/angellist.svg b/doc/theme/material/.icons/fontawesome/brands/angellist.svg new file mode 100644 index 00000000..422885c2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/angellist.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/angrycreative.svg b/doc/theme/material/.icons/fontawesome/brands/angrycreative.svg new file mode 100644 index 00000000..b2624691 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/angrycreative.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/angular.svg b/doc/theme/material/.icons/fontawesome/brands/angular.svg new file mode 100644 index 00000000..9948fb75 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/angular.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/app-store-ios.svg b/doc/theme/material/.icons/fontawesome/brands/app-store-ios.svg new file mode 100644 index 00000000..12fc8484 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/app-store-ios.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/app-store.svg b/doc/theme/material/.icons/fontawesome/brands/app-store.svg new file mode 100644 index 00000000..52e04a60 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/app-store.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/apper.svg b/doc/theme/material/.icons/fontawesome/brands/apper.svg new file mode 100644 index 00000000..f986f504 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/apper.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/apple-pay.svg b/doc/theme/material/.icons/fontawesome/brands/apple-pay.svg new file mode 100644 index 00000000..5d3145ad --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/apple-pay.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/apple.svg b/doc/theme/material/.icons/fontawesome/brands/apple.svg new file mode 100644 index 00000000..e24ed63e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/apple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/artstation.svg b/doc/theme/material/.icons/fontawesome/brands/artstation.svg new file mode 100644 index 00000000..cc08b02c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/artstation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/asymmetrik.svg b/doc/theme/material/.icons/fontawesome/brands/asymmetrik.svg new file mode 100644 index 00000000..ef472962 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/asymmetrik.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/atlassian.svg b/doc/theme/material/.icons/fontawesome/brands/atlassian.svg new file mode 100644 index 00000000..c07561e7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/atlassian.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/audible.svg b/doc/theme/material/.icons/fontawesome/brands/audible.svg new file mode 100644 index 00000000..7ee5aef8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/audible.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/autoprefixer.svg b/doc/theme/material/.icons/fontawesome/brands/autoprefixer.svg new file mode 100644 index 00000000..912dee1b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/autoprefixer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/avianex.svg b/doc/theme/material/.icons/fontawesome/brands/avianex.svg new file mode 100644 index 00000000..40953096 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/avianex.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/aviato.svg b/doc/theme/material/.icons/fontawesome/brands/aviato.svg new file mode 100644 index 00000000..064e0444 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/aviato.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/aws.svg b/doc/theme/material/.icons/fontawesome/brands/aws.svg new file mode 100644 index 00000000..ea1def3f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/aws.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/bandcamp.svg b/doc/theme/material/.icons/fontawesome/brands/bandcamp.svg new file mode 100644 index 00000000..f1e1c204 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/bandcamp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/battle-net.svg b/doc/theme/material/.icons/fontawesome/brands/battle-net.svg new file mode 100644 index 00000000..a4716898 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/battle-net.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/behance-square.svg b/doc/theme/material/.icons/fontawesome/brands/behance-square.svg new file mode 100644 index 00000000..2d9e08bf --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/behance-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/behance.svg b/doc/theme/material/.icons/fontawesome/brands/behance.svg new file mode 100644 index 00000000..73e94677 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/behance.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/bimobject.svg b/doc/theme/material/.icons/fontawesome/brands/bimobject.svg new file mode 100644 index 00000000..b708fdea --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/bimobject.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/bitbucket.svg b/doc/theme/material/.icons/fontawesome/brands/bitbucket.svg new file mode 100644 index 00000000..2f70ac0d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/bitbucket.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/bitcoin.svg b/doc/theme/material/.icons/fontawesome/brands/bitcoin.svg new file mode 100644 index 00000000..3a0e098d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/bitcoin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/bity.svg b/doc/theme/material/.icons/fontawesome/brands/bity.svg new file mode 100644 index 00000000..cf6c63d9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/bity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/black-tie.svg b/doc/theme/material/.icons/fontawesome/brands/black-tie.svg new file mode 100644 index 00000000..36f3eb79 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/black-tie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/blackberry.svg b/doc/theme/material/.icons/fontawesome/brands/blackberry.svg new file mode 100644 index 00000000..d8308865 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/blackberry.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/blogger-b.svg b/doc/theme/material/.icons/fontawesome/brands/blogger-b.svg new file mode 100644 index 00000000..c313b521 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/blogger-b.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/blogger.svg b/doc/theme/material/.icons/fontawesome/brands/blogger.svg new file mode 100644 index 00000000..7707557e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/blogger.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/bluetooth-b.svg b/doc/theme/material/.icons/fontawesome/brands/bluetooth-b.svg new file mode 100644 index 00000000..d6e3a5e1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/bluetooth-b.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/bluetooth.svg b/doc/theme/material/.icons/fontawesome/brands/bluetooth.svg new file mode 100644 index 00000000..aad75a38 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/bluetooth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/bootstrap.svg b/doc/theme/material/.icons/fontawesome/brands/bootstrap.svg new file mode 100644 index 00000000..6d0ed4f5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/bootstrap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/btc.svg b/doc/theme/material/.icons/fontawesome/brands/btc.svg new file mode 100644 index 00000000..45e65158 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/btc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/buffer.svg b/doc/theme/material/.icons/fontawesome/brands/buffer.svg new file mode 100644 index 00000000..91cfe03f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/buffer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/buromobelexperte.svg b/doc/theme/material/.icons/fontawesome/brands/buromobelexperte.svg new file mode 100644 index 00000000..f419c909 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/buromobelexperte.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/buy-n-large.svg b/doc/theme/material/.icons/fontawesome/brands/buy-n-large.svg new file mode 100644 index 00000000..4be604df --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/buy-n-large.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/buysellads.svg b/doc/theme/material/.icons/fontawesome/brands/buysellads.svg new file mode 100644 index 00000000..5bb292db --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/buysellads.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/canadian-maple-leaf.svg b/doc/theme/material/.icons/fontawesome/brands/canadian-maple-leaf.svg new file mode 100644 index 00000000..ca96f7c4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/canadian-maple-leaf.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/cc-amazon-pay.svg b/doc/theme/material/.icons/fontawesome/brands/cc-amazon-pay.svg new file mode 100644 index 00000000..7a986691 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/cc-amazon-pay.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/cc-amex.svg b/doc/theme/material/.icons/fontawesome/brands/cc-amex.svg new file mode 100644 index 00000000..7d435154 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/cc-amex.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/cc-apple-pay.svg b/doc/theme/material/.icons/fontawesome/brands/cc-apple-pay.svg new file mode 100644 index 00000000..a8a56ed5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/cc-apple-pay.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/cc-diners-club.svg b/doc/theme/material/.icons/fontawesome/brands/cc-diners-club.svg new file mode 100644 index 00000000..7ade2bb5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/cc-diners-club.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/cc-discover.svg b/doc/theme/material/.icons/fontawesome/brands/cc-discover.svg new file mode 100644 index 00000000..2b780e4e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/cc-discover.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/cc-jcb.svg b/doc/theme/material/.icons/fontawesome/brands/cc-jcb.svg new file mode 100644 index 00000000..8671a884 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/cc-jcb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/cc-mastercard.svg b/doc/theme/material/.icons/fontawesome/brands/cc-mastercard.svg new file mode 100644 index 00000000..af0753ea --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/cc-mastercard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/cc-paypal.svg b/doc/theme/material/.icons/fontawesome/brands/cc-paypal.svg new file mode 100644 index 00000000..6ca92005 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/cc-paypal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/cc-stripe.svg b/doc/theme/material/.icons/fontawesome/brands/cc-stripe.svg new file mode 100644 index 00000000..5cb2a8d2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/cc-stripe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/cc-visa.svg b/doc/theme/material/.icons/fontawesome/brands/cc-visa.svg new file mode 100644 index 00000000..b5cb29a2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/cc-visa.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/centercode.svg b/doc/theme/material/.icons/fontawesome/brands/centercode.svg new file mode 100644 index 00000000..440b9c83 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/centercode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/centos.svg b/doc/theme/material/.icons/fontawesome/brands/centos.svg new file mode 100644 index 00000000..72b5f203 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/centos.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/chrome.svg b/doc/theme/material/.icons/fontawesome/brands/chrome.svg new file mode 100644 index 00000000..5ea90d91 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/chrome.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/chromecast.svg b/doc/theme/material/.icons/fontawesome/brands/chromecast.svg new file mode 100644 index 00000000..bb04abbd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/chromecast.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/cloudscale.svg b/doc/theme/material/.icons/fontawesome/brands/cloudscale.svg new file mode 100644 index 00000000..9ad2a405 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/cloudscale.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/cloudsmith.svg b/doc/theme/material/.icons/fontawesome/brands/cloudsmith.svg new file mode 100644 index 00000000..bd2d4704 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/cloudsmith.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/cloudversify.svg b/doc/theme/material/.icons/fontawesome/brands/cloudversify.svg new file mode 100644 index 00000000..4ed2518d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/cloudversify.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/codepen.svg b/doc/theme/material/.icons/fontawesome/brands/codepen.svg new file mode 100644 index 00000000..32585370 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/codepen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/codiepie.svg b/doc/theme/material/.icons/fontawesome/brands/codiepie.svg new file mode 100644 index 00000000..dc7579c0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/codiepie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/confluence.svg b/doc/theme/material/.icons/fontawesome/brands/confluence.svg new file mode 100644 index 00000000..ffeb9239 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/confluence.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/connectdevelop.svg b/doc/theme/material/.icons/fontawesome/brands/connectdevelop.svg new file mode 100644 index 00000000..d665edc3 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/connectdevelop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/contao.svg b/doc/theme/material/.icons/fontawesome/brands/contao.svg new file mode 100644 index 00000000..a08f60af --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/contao.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/cotton-bureau.svg b/doc/theme/material/.icons/fontawesome/brands/cotton-bureau.svg new file mode 100644 index 00000000..e2a4ad96 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/cotton-bureau.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/cpanel.svg b/doc/theme/material/.icons/fontawesome/brands/cpanel.svg new file mode 100644 index 00000000..c95511c1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/cpanel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/creative-commons-by.svg b/doc/theme/material/.icons/fontawesome/brands/creative-commons-by.svg new file mode 100644 index 00000000..5432986b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/creative-commons-by.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/creative-commons-nc-eu.svg b/doc/theme/material/.icons/fontawesome/brands/creative-commons-nc-eu.svg new file mode 100644 index 00000000..539c7d60 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/creative-commons-nc-eu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/creative-commons-nc-jp.svg b/doc/theme/material/.icons/fontawesome/brands/creative-commons-nc-jp.svg new file mode 100644 index 00000000..a8d89b19 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/creative-commons-nc-jp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/creative-commons-nc.svg b/doc/theme/material/.icons/fontawesome/brands/creative-commons-nc.svg new file mode 100644 index 00000000..abb1577a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/creative-commons-nc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/creative-commons-nd.svg b/doc/theme/material/.icons/fontawesome/brands/creative-commons-nd.svg new file mode 100644 index 00000000..07b5fde4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/creative-commons-nd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/creative-commons-pd-alt.svg b/doc/theme/material/.icons/fontawesome/brands/creative-commons-pd-alt.svg new file mode 100644 index 00000000..d3621842 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/creative-commons-pd-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/creative-commons-pd.svg b/doc/theme/material/.icons/fontawesome/brands/creative-commons-pd.svg new file mode 100644 index 00000000..884fbd02 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/creative-commons-pd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/creative-commons-remix.svg b/doc/theme/material/.icons/fontawesome/brands/creative-commons-remix.svg new file mode 100644 index 00000000..70ced894 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/creative-commons-remix.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/creative-commons-sa.svg b/doc/theme/material/.icons/fontawesome/brands/creative-commons-sa.svg new file mode 100644 index 00000000..c9f41f8f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/creative-commons-sa.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/creative-commons-sampling-plus.svg b/doc/theme/material/.icons/fontawesome/brands/creative-commons-sampling-plus.svg new file mode 100644 index 00000000..c06a1cd5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/creative-commons-sampling-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/creative-commons-sampling.svg b/doc/theme/material/.icons/fontawesome/brands/creative-commons-sampling.svg new file mode 100644 index 00000000..40a20c65 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/creative-commons-sampling.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/creative-commons-share.svg b/doc/theme/material/.icons/fontawesome/brands/creative-commons-share.svg new file mode 100644 index 00000000..afef40ad --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/creative-commons-share.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/creative-commons-zero.svg b/doc/theme/material/.icons/fontawesome/brands/creative-commons-zero.svg new file mode 100644 index 00000000..a67d7898 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/creative-commons-zero.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/creative-commons.svg b/doc/theme/material/.icons/fontawesome/brands/creative-commons.svg new file mode 100644 index 00000000..e24a68f6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/creative-commons.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/critical-role.svg b/doc/theme/material/.icons/fontawesome/brands/critical-role.svg new file mode 100644 index 00000000..cbfc8083 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/critical-role.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/css3-alt.svg b/doc/theme/material/.icons/fontawesome/brands/css3-alt.svg new file mode 100644 index 00000000..544362a1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/css3-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/css3.svg b/doc/theme/material/.icons/fontawesome/brands/css3.svg new file mode 100644 index 00000000..5ea43eda --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/css3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/cuttlefish.svg b/doc/theme/material/.icons/fontawesome/brands/cuttlefish.svg new file mode 100644 index 00000000..92f20d8e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/cuttlefish.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/d-and-d-beyond.svg b/doc/theme/material/.icons/fontawesome/brands/d-and-d-beyond.svg new file mode 100644 index 00000000..195c6e9b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/d-and-d-beyond.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/d-and-d.svg b/doc/theme/material/.icons/fontawesome/brands/d-and-d.svg new file mode 100644 index 00000000..9411ae03 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/d-and-d.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/dailymotion.svg b/doc/theme/material/.icons/fontawesome/brands/dailymotion.svg new file mode 100644 index 00000000..45ec4d27 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/dailymotion.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/dashcube.svg b/doc/theme/material/.icons/fontawesome/brands/dashcube.svg new file mode 100644 index 00000000..c31239b2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/dashcube.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/delicious.svg b/doc/theme/material/.icons/fontawesome/brands/delicious.svg new file mode 100644 index 00000000..f2077542 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/delicious.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/deploydog.svg b/doc/theme/material/.icons/fontawesome/brands/deploydog.svg new file mode 100644 index 00000000..c9764e80 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/deploydog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/deskpro.svg b/doc/theme/material/.icons/fontawesome/brands/deskpro.svg new file mode 100644 index 00000000..48ad2699 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/deskpro.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/dev.svg b/doc/theme/material/.icons/fontawesome/brands/dev.svg new file mode 100644 index 00000000..399017f5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/dev.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/deviantart.svg b/doc/theme/material/.icons/fontawesome/brands/deviantart.svg new file mode 100644 index 00000000..017804bc --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/deviantart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/dhl.svg b/doc/theme/material/.icons/fontawesome/brands/dhl.svg new file mode 100644 index 00000000..cc62f97d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/dhl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/diaspora.svg b/doc/theme/material/.icons/fontawesome/brands/diaspora.svg new file mode 100644 index 00000000..edd3ace0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/diaspora.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/digg.svg b/doc/theme/material/.icons/fontawesome/brands/digg.svg new file mode 100644 index 00000000..9c580fb0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/digg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/digital-ocean.svg b/doc/theme/material/.icons/fontawesome/brands/digital-ocean.svg new file mode 100644 index 00000000..861def5b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/digital-ocean.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/discord.svg b/doc/theme/material/.icons/fontawesome/brands/discord.svg new file mode 100644 index 00000000..650fe8f0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/discord.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/discourse.svg b/doc/theme/material/.icons/fontawesome/brands/discourse.svg new file mode 100644 index 00000000..87403975 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/discourse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/dochub.svg b/doc/theme/material/.icons/fontawesome/brands/dochub.svg new file mode 100644 index 00000000..c336088d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/dochub.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/docker.svg b/doc/theme/material/.icons/fontawesome/brands/docker.svg new file mode 100644 index 00000000..c4b13198 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/docker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/draft2digital.svg b/doc/theme/material/.icons/fontawesome/brands/draft2digital.svg new file mode 100644 index 00000000..37207200 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/draft2digital.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/dribbble-square.svg b/doc/theme/material/.icons/fontawesome/brands/dribbble-square.svg new file mode 100644 index 00000000..147f5aee --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/dribbble-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/dribbble.svg b/doc/theme/material/.icons/fontawesome/brands/dribbble.svg new file mode 100644 index 00000000..165c90af --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/dribbble.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/dropbox.svg b/doc/theme/material/.icons/fontawesome/brands/dropbox.svg new file mode 100644 index 00000000..cbc4787b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/dropbox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/drupal.svg b/doc/theme/material/.icons/fontawesome/brands/drupal.svg new file mode 100644 index 00000000..09a90aee --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/drupal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/dyalog.svg b/doc/theme/material/.icons/fontawesome/brands/dyalog.svg new file mode 100644 index 00000000..40a59c73 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/dyalog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/earlybirds.svg b/doc/theme/material/.icons/fontawesome/brands/earlybirds.svg new file mode 100644 index 00000000..42c9f51f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/earlybirds.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/ebay.svg b/doc/theme/material/.icons/fontawesome/brands/ebay.svg new file mode 100644 index 00000000..fe79f933 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/ebay.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/edge.svg b/doc/theme/material/.icons/fontawesome/brands/edge.svg new file mode 100644 index 00000000..f4a91ecf --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/edge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/elementor.svg b/doc/theme/material/.icons/fontawesome/brands/elementor.svg new file mode 100644 index 00000000..da050213 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/elementor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/ello.svg b/doc/theme/material/.icons/fontawesome/brands/ello.svg new file mode 100644 index 00000000..4cc8b075 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/ello.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/ember.svg b/doc/theme/material/.icons/fontawesome/brands/ember.svg new file mode 100644 index 00000000..69b71761 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/ember.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/empire.svg b/doc/theme/material/.icons/fontawesome/brands/empire.svg new file mode 100644 index 00000000..b000c8e0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/empire.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/envira.svg b/doc/theme/material/.icons/fontawesome/brands/envira.svg new file mode 100644 index 00000000..92aee143 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/envira.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/erlang.svg b/doc/theme/material/.icons/fontawesome/brands/erlang.svg new file mode 100644 index 00000000..01e29ac9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/erlang.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/ethereum.svg b/doc/theme/material/.icons/fontawesome/brands/ethereum.svg new file mode 100644 index 00000000..fce0031a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/ethereum.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/etsy.svg b/doc/theme/material/.icons/fontawesome/brands/etsy.svg new file mode 100644 index 00000000..1dc36341 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/etsy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/evernote.svg b/doc/theme/material/.icons/fontawesome/brands/evernote.svg new file mode 100644 index 00000000..f1cc8cb9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/evernote.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/expeditedssl.svg b/doc/theme/material/.icons/fontawesome/brands/expeditedssl.svg new file mode 100644 index 00000000..a5c29368 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/expeditedssl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/facebook-f.svg b/doc/theme/material/.icons/fontawesome/brands/facebook-f.svg new file mode 100644 index 00000000..40d4f1c2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/facebook-f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/facebook-messenger.svg b/doc/theme/material/.icons/fontawesome/brands/facebook-messenger.svg new file mode 100644 index 00000000..309d7106 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/facebook-messenger.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/facebook-square.svg b/doc/theme/material/.icons/fontawesome/brands/facebook-square.svg new file mode 100644 index 00000000..0de47eb3 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/facebook-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/facebook.svg b/doc/theme/material/.icons/fontawesome/brands/facebook.svg new file mode 100644 index 00000000..6e23a941 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/facebook.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/fantasy-flight-games.svg b/doc/theme/material/.icons/fontawesome/brands/fantasy-flight-games.svg new file mode 100644 index 00000000..23a64016 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/fantasy-flight-games.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/fedex.svg b/doc/theme/material/.icons/fontawesome/brands/fedex.svg new file mode 100644 index 00000000..bcea5e54 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/fedex.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/fedora.svg b/doc/theme/material/.icons/fontawesome/brands/fedora.svg new file mode 100644 index 00000000..798af6e0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/fedora.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/figma.svg b/doc/theme/material/.icons/fontawesome/brands/figma.svg new file mode 100644 index 00000000..b46cf0ea --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/figma.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/firefox-browser.svg b/doc/theme/material/.icons/fontawesome/brands/firefox-browser.svg new file mode 100644 index 00000000..4f90a53c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/firefox-browser.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/firefox.svg b/doc/theme/material/.icons/fontawesome/brands/firefox.svg new file mode 100644 index 00000000..a01c4e56 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/firefox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/first-order-alt.svg b/doc/theme/material/.icons/fontawesome/brands/first-order-alt.svg new file mode 100644 index 00000000..1279395b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/first-order-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/first-order.svg b/doc/theme/material/.icons/fontawesome/brands/first-order.svg new file mode 100644 index 00000000..527e4a5a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/first-order.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/firstdraft.svg b/doc/theme/material/.icons/fontawesome/brands/firstdraft.svg new file mode 100644 index 00000000..c2bcd312 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/firstdraft.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/flickr.svg b/doc/theme/material/.icons/fontawesome/brands/flickr.svg new file mode 100644 index 00000000..15dcfc6c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/flickr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/flipboard.svg b/doc/theme/material/.icons/fontawesome/brands/flipboard.svg new file mode 100644 index 00000000..866f82fd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/flipboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/fly.svg b/doc/theme/material/.icons/fontawesome/brands/fly.svg new file mode 100644 index 00000000..69ee5c7b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/fly.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/font-awesome-alt.svg b/doc/theme/material/.icons/fontawesome/brands/font-awesome-alt.svg new file mode 100644 index 00000000..f80146ae --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/font-awesome-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/font-awesome-flag.svg b/doc/theme/material/.icons/fontawesome/brands/font-awesome-flag.svg new file mode 100644 index 00000000..9f0b7a48 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/font-awesome-flag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/font-awesome-logo-full.svg b/doc/theme/material/.icons/fontawesome/brands/font-awesome-logo-full.svg new file mode 100644 index 00000000..06b75a4d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/font-awesome-logo-full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/font-awesome.svg b/doc/theme/material/.icons/fontawesome/brands/font-awesome.svg new file mode 100644 index 00000000..8c1d4452 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/font-awesome.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/fonticons-fi.svg b/doc/theme/material/.icons/fontawesome/brands/fonticons-fi.svg new file mode 100644 index 00000000..e654422c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/fonticons-fi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/fonticons.svg b/doc/theme/material/.icons/fontawesome/brands/fonticons.svg new file mode 100644 index 00000000..b9e2de54 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/fonticons.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/fort-awesome-alt.svg b/doc/theme/material/.icons/fontawesome/brands/fort-awesome-alt.svg new file mode 100644 index 00000000..bc6d0c24 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/fort-awesome-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/fort-awesome.svg b/doc/theme/material/.icons/fontawesome/brands/fort-awesome.svg new file mode 100644 index 00000000..a763d437 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/fort-awesome.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/forumbee.svg b/doc/theme/material/.icons/fontawesome/brands/forumbee.svg new file mode 100644 index 00000000..d31d6411 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/forumbee.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/foursquare.svg b/doc/theme/material/.icons/fontawesome/brands/foursquare.svg new file mode 100644 index 00000000..130fa9b3 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/foursquare.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/free-code-camp.svg b/doc/theme/material/.icons/fontawesome/brands/free-code-camp.svg new file mode 100644 index 00000000..d4ec80f7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/free-code-camp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/freebsd.svg b/doc/theme/material/.icons/fontawesome/brands/freebsd.svg new file mode 100644 index 00000000..98c790fa --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/freebsd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/fulcrum.svg b/doc/theme/material/.icons/fontawesome/brands/fulcrum.svg new file mode 100644 index 00000000..adf033c9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/fulcrum.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/galactic-republic.svg b/doc/theme/material/.icons/fontawesome/brands/galactic-republic.svg new file mode 100644 index 00000000..79def97b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/galactic-republic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/galactic-senate.svg b/doc/theme/material/.icons/fontawesome/brands/galactic-senate.svg new file mode 100644 index 00000000..87e87501 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/galactic-senate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/get-pocket.svg b/doc/theme/material/.icons/fontawesome/brands/get-pocket.svg new file mode 100644 index 00000000..f6046088 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/get-pocket.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/gg-circle.svg b/doc/theme/material/.icons/fontawesome/brands/gg-circle.svg new file mode 100644 index 00000000..7ff26dd6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/gg-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/gg.svg b/doc/theme/material/.icons/fontawesome/brands/gg.svg new file mode 100644 index 00000000..cace4961 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/gg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/git-alt.svg b/doc/theme/material/.icons/fontawesome/brands/git-alt.svg new file mode 100644 index 00000000..36d10c0b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/git-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/git-square.svg b/doc/theme/material/.icons/fontawesome/brands/git-square.svg new file mode 100644 index 00000000..22531643 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/git-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/git.svg b/doc/theme/material/.icons/fontawesome/brands/git.svg new file mode 100644 index 00000000..40571b1f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/git.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/github-alt.svg b/doc/theme/material/.icons/fontawesome/brands/github-alt.svg new file mode 100644 index 00000000..43d2da5d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/github-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/github-square.svg b/doc/theme/material/.icons/fontawesome/brands/github-square.svg new file mode 100644 index 00000000..a235d2f4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/github-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/github.svg b/doc/theme/material/.icons/fontawesome/brands/github.svg new file mode 100644 index 00000000..53bd7b2d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/github.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/gitkraken.svg b/doc/theme/material/.icons/fontawesome/brands/gitkraken.svg new file mode 100644 index 00000000..a3bc20fc --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/gitkraken.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/gitlab.svg b/doc/theme/material/.icons/fontawesome/brands/gitlab.svg new file mode 100644 index 00000000..ae4efce6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/gitlab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/gitter.svg b/doc/theme/material/.icons/fontawesome/brands/gitter.svg new file mode 100644 index 00000000..6aaafd9a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/gitter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/glide-g.svg b/doc/theme/material/.icons/fontawesome/brands/glide-g.svg new file mode 100644 index 00000000..7517405f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/glide-g.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/glide.svg b/doc/theme/material/.icons/fontawesome/brands/glide.svg new file mode 100644 index 00000000..0fbdca4b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/glide.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/gofore.svg b/doc/theme/material/.icons/fontawesome/brands/gofore.svg new file mode 100644 index 00000000..792de75e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/gofore.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/goodreads-g.svg b/doc/theme/material/.icons/fontawesome/brands/goodreads-g.svg new file mode 100644 index 00000000..b3554663 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/goodreads-g.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/goodreads.svg b/doc/theme/material/.icons/fontawesome/brands/goodreads.svg new file mode 100644 index 00000000..040163af --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/goodreads.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/google-drive.svg b/doc/theme/material/.icons/fontawesome/brands/google-drive.svg new file mode 100644 index 00000000..cd8dd52a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/google-drive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/google-play.svg b/doc/theme/material/.icons/fontawesome/brands/google-play.svg new file mode 100644 index 00000000..82cffd53 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/google-play.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/google-plus-g.svg b/doc/theme/material/.icons/fontawesome/brands/google-plus-g.svg new file mode 100644 index 00000000..c4587db3 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/google-plus-g.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/google-plus-square.svg b/doc/theme/material/.icons/fontawesome/brands/google-plus-square.svg new file mode 100644 index 00000000..f18979c9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/google-plus-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/google-plus.svg b/doc/theme/material/.icons/fontawesome/brands/google-plus.svg new file mode 100644 index 00000000..46e143e6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/google-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/google-wallet.svg b/doc/theme/material/.icons/fontawesome/brands/google-wallet.svg new file mode 100644 index 00000000..009afb61 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/google-wallet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/google.svg b/doc/theme/material/.icons/fontawesome/brands/google.svg new file mode 100644 index 00000000..014b5ceb --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/google.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/gratipay.svg b/doc/theme/material/.icons/fontawesome/brands/gratipay.svg new file mode 100644 index 00000000..a35d8b19 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/gratipay.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/grav.svg b/doc/theme/material/.icons/fontawesome/brands/grav.svg new file mode 100644 index 00000000..e12bbf51 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/grav.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/gripfire.svg b/doc/theme/material/.icons/fontawesome/brands/gripfire.svg new file mode 100644 index 00000000..561aa2d7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/gripfire.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/grunt.svg b/doc/theme/material/.icons/fontawesome/brands/grunt.svg new file mode 100644 index 00000000..a36fab81 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/grunt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/gulp.svg b/doc/theme/material/.icons/fontawesome/brands/gulp.svg new file mode 100644 index 00000000..0bb37a27 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/gulp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/hacker-news-square.svg b/doc/theme/material/.icons/fontawesome/brands/hacker-news-square.svg new file mode 100644 index 00000000..1bb8cab4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/hacker-news-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/hacker-news.svg b/doc/theme/material/.icons/fontawesome/brands/hacker-news.svg new file mode 100644 index 00000000..0de37e65 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/hacker-news.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/hackerrank.svg b/doc/theme/material/.icons/fontawesome/brands/hackerrank.svg new file mode 100644 index 00000000..d2a44d1b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/hackerrank.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/hips.svg b/doc/theme/material/.icons/fontawesome/brands/hips.svg new file mode 100644 index 00000000..7eb9cdf4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/hips.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/hire-a-helper.svg b/doc/theme/material/.icons/fontawesome/brands/hire-a-helper.svg new file mode 100644 index 00000000..5fdb39dc --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/hire-a-helper.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/hooli.svg b/doc/theme/material/.icons/fontawesome/brands/hooli.svg new file mode 100644 index 00000000..e4cf9298 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/hooli.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/hornbill.svg b/doc/theme/material/.icons/fontawesome/brands/hornbill.svg new file mode 100644 index 00000000..e147e879 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/hornbill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/hotjar.svg b/doc/theme/material/.icons/fontawesome/brands/hotjar.svg new file mode 100644 index 00000000..7e477296 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/hotjar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/houzz.svg b/doc/theme/material/.icons/fontawesome/brands/houzz.svg new file mode 100644 index 00000000..1ad90a21 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/houzz.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/html5.svg b/doc/theme/material/.icons/fontawesome/brands/html5.svg new file mode 100644 index 00000000..a06827da --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/html5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/hubspot.svg b/doc/theme/material/.icons/fontawesome/brands/hubspot.svg new file mode 100644 index 00000000..03f8f4e0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/hubspot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/ideal.svg b/doc/theme/material/.icons/fontawesome/brands/ideal.svg new file mode 100644 index 00000000..11b81baf --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/ideal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/imdb.svg b/doc/theme/material/.icons/fontawesome/brands/imdb.svg new file mode 100644 index 00000000..a4d5eb55 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/imdb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/instagram-square.svg b/doc/theme/material/.icons/fontawesome/brands/instagram-square.svg new file mode 100644 index 00000000..4338164b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/instagram-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/instagram.svg b/doc/theme/material/.icons/fontawesome/brands/instagram.svg new file mode 100644 index 00000000..89c89b76 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/instagram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/intercom.svg b/doc/theme/material/.icons/fontawesome/brands/intercom.svg new file mode 100644 index 00000000..a36742b7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/intercom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/internet-explorer.svg b/doc/theme/material/.icons/fontawesome/brands/internet-explorer.svg new file mode 100644 index 00000000..36173c0b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/internet-explorer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/invision.svg b/doc/theme/material/.icons/fontawesome/brands/invision.svg new file mode 100644 index 00000000..3af871b1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/invision.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/ioxhost.svg b/doc/theme/material/.icons/fontawesome/brands/ioxhost.svg new file mode 100644 index 00000000..64f31af2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/ioxhost.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/itch-io.svg b/doc/theme/material/.icons/fontawesome/brands/itch-io.svg new file mode 100644 index 00000000..ee2e014d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/itch-io.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/itunes-note.svg b/doc/theme/material/.icons/fontawesome/brands/itunes-note.svg new file mode 100644 index 00000000..bb46e702 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/itunes-note.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/itunes.svg b/doc/theme/material/.icons/fontawesome/brands/itunes.svg new file mode 100644 index 00000000..32736ae8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/itunes.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/java.svg b/doc/theme/material/.icons/fontawesome/brands/java.svg new file mode 100644 index 00000000..d3dd63ad --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/java.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/jedi-order.svg b/doc/theme/material/.icons/fontawesome/brands/jedi-order.svg new file mode 100644 index 00000000..990461a6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/jedi-order.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/jenkins.svg b/doc/theme/material/.icons/fontawesome/brands/jenkins.svg new file mode 100644 index 00000000..4c2251f1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/jenkins.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/jira.svg b/doc/theme/material/.icons/fontawesome/brands/jira.svg new file mode 100644 index 00000000..467d3f6d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/jira.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/joget.svg b/doc/theme/material/.icons/fontawesome/brands/joget.svg new file mode 100644 index 00000000..1007ec64 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/joget.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/joomla.svg b/doc/theme/material/.icons/fontawesome/brands/joomla.svg new file mode 100644 index 00000000..a5654303 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/joomla.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/js-square.svg b/doc/theme/material/.icons/fontawesome/brands/js-square.svg new file mode 100644 index 00000000..389af1c1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/js-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/js.svg b/doc/theme/material/.icons/fontawesome/brands/js.svg new file mode 100644 index 00000000..1bf21b89 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/js.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/jsfiddle.svg b/doc/theme/material/.icons/fontawesome/brands/jsfiddle.svg new file mode 100644 index 00000000..2fb27ee3 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/jsfiddle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/kaggle.svg b/doc/theme/material/.icons/fontawesome/brands/kaggle.svg new file mode 100644 index 00000000..b93394a0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/kaggle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/keybase.svg b/doc/theme/material/.icons/fontawesome/brands/keybase.svg new file mode 100644 index 00000000..5968b2fd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/keybase.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/keycdn.svg b/doc/theme/material/.icons/fontawesome/brands/keycdn.svg new file mode 100644 index 00000000..da19aee0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/keycdn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/kickstarter-k.svg b/doc/theme/material/.icons/fontawesome/brands/kickstarter-k.svg new file mode 100644 index 00000000..4ad8ad2c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/kickstarter-k.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/kickstarter.svg b/doc/theme/material/.icons/fontawesome/brands/kickstarter.svg new file mode 100644 index 00000000..c765b1b4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/kickstarter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/korvue.svg b/doc/theme/material/.icons/fontawesome/brands/korvue.svg new file mode 100644 index 00000000..c9c44a81 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/korvue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/laravel.svg b/doc/theme/material/.icons/fontawesome/brands/laravel.svg new file mode 100644 index 00000000..a98d06cb --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/laravel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/lastfm-square.svg b/doc/theme/material/.icons/fontawesome/brands/lastfm-square.svg new file mode 100644 index 00000000..e9febdb6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/lastfm-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/lastfm.svg b/doc/theme/material/.icons/fontawesome/brands/lastfm.svg new file mode 100644 index 00000000..7508067a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/lastfm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/leanpub.svg b/doc/theme/material/.icons/fontawesome/brands/leanpub.svg new file mode 100644 index 00000000..994eca34 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/leanpub.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/less.svg b/doc/theme/material/.icons/fontawesome/brands/less.svg new file mode 100644 index 00000000..12a0ae2a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/less.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/line.svg b/doc/theme/material/.icons/fontawesome/brands/line.svg new file mode 100644 index 00000000..866abd87 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/linkedin-in.svg b/doc/theme/material/.icons/fontawesome/brands/linkedin-in.svg new file mode 100644 index 00000000..226b6f9a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/linkedin-in.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/linkedin.svg b/doc/theme/material/.icons/fontawesome/brands/linkedin.svg new file mode 100644 index 00000000..69d8e973 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/linkedin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/linode.svg b/doc/theme/material/.icons/fontawesome/brands/linode.svg new file mode 100644 index 00000000..502bdf79 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/linode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/linux.svg b/doc/theme/material/.icons/fontawesome/brands/linux.svg new file mode 100644 index 00000000..ca9b9a85 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/linux.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/lyft.svg b/doc/theme/material/.icons/fontawesome/brands/lyft.svg new file mode 100644 index 00000000..4283ec51 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/lyft.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/magento.svg b/doc/theme/material/.icons/fontawesome/brands/magento.svg new file mode 100644 index 00000000..bdf6488e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/magento.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/mailchimp.svg b/doc/theme/material/.icons/fontawesome/brands/mailchimp.svg new file mode 100644 index 00000000..c990e286 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/mailchimp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/mandalorian.svg b/doc/theme/material/.icons/fontawesome/brands/mandalorian.svg new file mode 100644 index 00000000..0440e7dc --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/mandalorian.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/markdown.svg b/doc/theme/material/.icons/fontawesome/brands/markdown.svg new file mode 100644 index 00000000..843d4801 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/markdown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/mastodon.svg b/doc/theme/material/.icons/fontawesome/brands/mastodon.svg new file mode 100644 index 00000000..847e4b0e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/mastodon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/maxcdn.svg b/doc/theme/material/.icons/fontawesome/brands/maxcdn.svg new file mode 100644 index 00000000..4f4b85da --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/maxcdn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/mdb.svg b/doc/theme/material/.icons/fontawesome/brands/mdb.svg new file mode 100644 index 00000000..99e737b5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/mdb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/medapps.svg b/doc/theme/material/.icons/fontawesome/brands/medapps.svg new file mode 100644 index 00000000..bb1a667a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/medapps.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/medium-m.svg b/doc/theme/material/.icons/fontawesome/brands/medium-m.svg new file mode 100644 index 00000000..8305fdac --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/medium-m.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/medium.svg b/doc/theme/material/.icons/fontawesome/brands/medium.svg new file mode 100644 index 00000000..f370e1e1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/medium.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/medrt.svg b/doc/theme/material/.icons/fontawesome/brands/medrt.svg new file mode 100644 index 00000000..37759446 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/medrt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/meetup.svg b/doc/theme/material/.icons/fontawesome/brands/meetup.svg new file mode 100644 index 00000000..d387c4bd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/meetup.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/megaport.svg b/doc/theme/material/.icons/fontawesome/brands/megaport.svg new file mode 100644 index 00000000..17faf7ce --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/megaport.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/mendeley.svg b/doc/theme/material/.icons/fontawesome/brands/mendeley.svg new file mode 100644 index 00000000..c0f76a8d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/mendeley.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/microblog.svg b/doc/theme/material/.icons/fontawesome/brands/microblog.svg new file mode 100644 index 00000000..d1c0570c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/microblog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/microsoft.svg b/doc/theme/material/.icons/fontawesome/brands/microsoft.svg new file mode 100644 index 00000000..ed898955 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/microsoft.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/mix.svg b/doc/theme/material/.icons/fontawesome/brands/mix.svg new file mode 100644 index 00000000..d131e232 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/mix.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/mixcloud.svg b/doc/theme/material/.icons/fontawesome/brands/mixcloud.svg new file mode 100644 index 00000000..094239bb --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/mixcloud.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/mixer.svg b/doc/theme/material/.icons/fontawesome/brands/mixer.svg new file mode 100644 index 00000000..785ab392 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/mixer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/mizuni.svg b/doc/theme/material/.icons/fontawesome/brands/mizuni.svg new file mode 100644 index 00000000..8cb8d918 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/mizuni.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/modx.svg b/doc/theme/material/.icons/fontawesome/brands/modx.svg new file mode 100644 index 00000000..9cbc71fd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/modx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/monero.svg b/doc/theme/material/.icons/fontawesome/brands/monero.svg new file mode 100644 index 00000000..c4892b6c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/monero.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/napster.svg b/doc/theme/material/.icons/fontawesome/brands/napster.svg new file mode 100644 index 00000000..866e31da --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/napster.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/neos.svg b/doc/theme/material/.icons/fontawesome/brands/neos.svg new file mode 100644 index 00000000..2bece211 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/neos.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/nimblr.svg b/doc/theme/material/.icons/fontawesome/brands/nimblr.svg new file mode 100644 index 00000000..add60b07 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/nimblr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/node-js.svg b/doc/theme/material/.icons/fontawesome/brands/node-js.svg new file mode 100644 index 00000000..c73f1a64 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/node-js.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/node.svg b/doc/theme/material/.icons/fontawesome/brands/node.svg new file mode 100644 index 00000000..3bdb5eac --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/npm.svg b/doc/theme/material/.icons/fontawesome/brands/npm.svg new file mode 100644 index 00000000..ad643c36 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/npm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/ns8.svg b/doc/theme/material/.icons/fontawesome/brands/ns8.svg new file mode 100644 index 00000000..1f5e2fc9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/ns8.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/nutritionix.svg b/doc/theme/material/.icons/fontawesome/brands/nutritionix.svg new file mode 100644 index 00000000..19eb0e07 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/nutritionix.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/odnoklassniki-square.svg b/doc/theme/material/.icons/fontawesome/brands/odnoklassniki-square.svg new file mode 100644 index 00000000..e2793a94 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/odnoklassniki-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/odnoklassniki.svg b/doc/theme/material/.icons/fontawesome/brands/odnoklassniki.svg new file mode 100644 index 00000000..f426fd36 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/odnoklassniki.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/old-republic.svg b/doc/theme/material/.icons/fontawesome/brands/old-republic.svg new file mode 100644 index 00000000..f941d36c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/old-republic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/opencart.svg b/doc/theme/material/.icons/fontawesome/brands/opencart.svg new file mode 100644 index 00000000..2f1498a1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/opencart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/openid.svg b/doc/theme/material/.icons/fontawesome/brands/openid.svg new file mode 100644 index 00000000..d36573e0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/openid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/opera.svg b/doc/theme/material/.icons/fontawesome/brands/opera.svg new file mode 100644 index 00000000..4fd8cb92 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/opera.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/optin-monster.svg b/doc/theme/material/.icons/fontawesome/brands/optin-monster.svg new file mode 100644 index 00000000..cbf70491 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/optin-monster.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/orcid.svg b/doc/theme/material/.icons/fontawesome/brands/orcid.svg new file mode 100644 index 00000000..3b0a650f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/orcid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/osi.svg b/doc/theme/material/.icons/fontawesome/brands/osi.svg new file mode 100644 index 00000000..7add2192 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/osi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/page4.svg b/doc/theme/material/.icons/fontawesome/brands/page4.svg new file mode 100644 index 00000000..e0eda5d3 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/page4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/pagelines.svg b/doc/theme/material/.icons/fontawesome/brands/pagelines.svg new file mode 100644 index 00000000..6722988a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/pagelines.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/palfed.svg b/doc/theme/material/.icons/fontawesome/brands/palfed.svg new file mode 100644 index 00000000..5c8a4b2c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/palfed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/patreon.svg b/doc/theme/material/.icons/fontawesome/brands/patreon.svg new file mode 100644 index 00000000..19909571 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/patreon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/paypal.svg b/doc/theme/material/.icons/fontawesome/brands/paypal.svg new file mode 100644 index 00000000..ecf00b6d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/paypal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/penny-arcade.svg b/doc/theme/material/.icons/fontawesome/brands/penny-arcade.svg new file mode 100644 index 00000000..6644a560 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/penny-arcade.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/periscope.svg b/doc/theme/material/.icons/fontawesome/brands/periscope.svg new file mode 100644 index 00000000..9f46704c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/periscope.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/phabricator.svg b/doc/theme/material/.icons/fontawesome/brands/phabricator.svg new file mode 100644 index 00000000..c5188475 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/phabricator.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/phoenix-framework.svg b/doc/theme/material/.icons/fontawesome/brands/phoenix-framework.svg new file mode 100644 index 00000000..4542fc2f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/phoenix-framework.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/phoenix-squadron.svg b/doc/theme/material/.icons/fontawesome/brands/phoenix-squadron.svg new file mode 100644 index 00000000..d07ac212 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/phoenix-squadron.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/php.svg b/doc/theme/material/.icons/fontawesome/brands/php.svg new file mode 100644 index 00000000..c2d86d48 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/php.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/pied-piper-alt.svg b/doc/theme/material/.icons/fontawesome/brands/pied-piper-alt.svg new file mode 100644 index 00000000..4e8c419b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/pied-piper-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/pied-piper-hat.svg b/doc/theme/material/.icons/fontawesome/brands/pied-piper-hat.svg new file mode 100644 index 00000000..2f93465d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/pied-piper-hat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/pied-piper-pp.svg b/doc/theme/material/.icons/fontawesome/brands/pied-piper-pp.svg new file mode 100644 index 00000000..092ca730 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/pied-piper-pp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/pied-piper-square.svg b/doc/theme/material/.icons/fontawesome/brands/pied-piper-square.svg new file mode 100644 index 00000000..d74fb980 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/pied-piper-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/pied-piper.svg b/doc/theme/material/.icons/fontawesome/brands/pied-piper.svg new file mode 100644 index 00000000..484a2031 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/pied-piper.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/pinterest-p.svg b/doc/theme/material/.icons/fontawesome/brands/pinterest-p.svg new file mode 100644 index 00000000..311932af --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/pinterest-p.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/pinterest-square.svg b/doc/theme/material/.icons/fontawesome/brands/pinterest-square.svg new file mode 100644 index 00000000..7a502a79 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/pinterest-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/pinterest.svg b/doc/theme/material/.icons/fontawesome/brands/pinterest.svg new file mode 100644 index 00000000..42c1f645 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/pinterest.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/playstation.svg b/doc/theme/material/.icons/fontawesome/brands/playstation.svg new file mode 100644 index 00000000..3cd7fcad --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/playstation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/product-hunt.svg b/doc/theme/material/.icons/fontawesome/brands/product-hunt.svg new file mode 100644 index 00000000..847ac2c2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/product-hunt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/pushed.svg b/doc/theme/material/.icons/fontawesome/brands/pushed.svg new file mode 100644 index 00000000..f7e24f0c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/pushed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/python.svg b/doc/theme/material/.icons/fontawesome/brands/python.svg new file mode 100644 index 00000000..cf92eb97 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/python.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/qq.svg b/doc/theme/material/.icons/fontawesome/brands/qq.svg new file mode 100644 index 00000000..541bdd57 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/qq.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/quinscape.svg b/doc/theme/material/.icons/fontawesome/brands/quinscape.svg new file mode 100644 index 00000000..dd9822dd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/quinscape.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/quora.svg b/doc/theme/material/.icons/fontawesome/brands/quora.svg new file mode 100644 index 00000000..601d815c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/quora.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/r-project.svg b/doc/theme/material/.icons/fontawesome/brands/r-project.svg new file mode 100644 index 00000000..ef4076e4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/r-project.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/raspberry-pi.svg b/doc/theme/material/.icons/fontawesome/brands/raspberry-pi.svg new file mode 100644 index 00000000..cce311f0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/raspberry-pi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/ravelry.svg b/doc/theme/material/.icons/fontawesome/brands/ravelry.svg new file mode 100644 index 00000000..49d511c0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/ravelry.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/react.svg b/doc/theme/material/.icons/fontawesome/brands/react.svg new file mode 100644 index 00000000..e5884106 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/reacteurope.svg b/doc/theme/material/.icons/fontawesome/brands/reacteurope.svg new file mode 100644 index 00000000..9bb1c8c5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/reacteurope.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/readme.svg b/doc/theme/material/.icons/fontawesome/brands/readme.svg new file mode 100644 index 00000000..482c337e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/readme.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/rebel.svg b/doc/theme/material/.icons/fontawesome/brands/rebel.svg new file mode 100644 index 00000000..555b0533 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/rebel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/red-river.svg b/doc/theme/material/.icons/fontawesome/brands/red-river.svg new file mode 100644 index 00000000..6e7044f2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/red-river.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/reddit-alien.svg b/doc/theme/material/.icons/fontawesome/brands/reddit-alien.svg new file mode 100644 index 00000000..85b98591 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/reddit-alien.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/reddit-square.svg b/doc/theme/material/.icons/fontawesome/brands/reddit-square.svg new file mode 100644 index 00000000..e940a851 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/reddit-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/reddit.svg b/doc/theme/material/.icons/fontawesome/brands/reddit.svg new file mode 100644 index 00000000..262d0a7f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/reddit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/redhat.svg b/doc/theme/material/.icons/fontawesome/brands/redhat.svg new file mode 100644 index 00000000..3d82184d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/redhat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/renren.svg b/doc/theme/material/.icons/fontawesome/brands/renren.svg new file mode 100644 index 00000000..9706a702 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/renren.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/replyd.svg b/doc/theme/material/.icons/fontawesome/brands/replyd.svg new file mode 100644 index 00000000..fe526f2b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/replyd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/researchgate.svg b/doc/theme/material/.icons/fontawesome/brands/researchgate.svg new file mode 100644 index 00000000..db7149f4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/researchgate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/resolving.svg b/doc/theme/material/.icons/fontawesome/brands/resolving.svg new file mode 100644 index 00000000..339cbca0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/resolving.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/rev.svg b/doc/theme/material/.icons/fontawesome/brands/rev.svg new file mode 100644 index 00000000..22d6264c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/rev.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/rocketchat.svg b/doc/theme/material/.icons/fontawesome/brands/rocketchat.svg new file mode 100644 index 00000000..c3a36d75 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/rocketchat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/rockrms.svg b/doc/theme/material/.icons/fontawesome/brands/rockrms.svg new file mode 100644 index 00000000..6c41d790 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/rockrms.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/safari.svg b/doc/theme/material/.icons/fontawesome/brands/safari.svg new file mode 100644 index 00000000..98387b35 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/safari.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/salesforce.svg b/doc/theme/material/.icons/fontawesome/brands/salesforce.svg new file mode 100644 index 00000000..4ba079c7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/salesforce.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/sass.svg b/doc/theme/material/.icons/fontawesome/brands/sass.svg new file mode 100644 index 00000000..1f832a50 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/sass.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/schlix.svg b/doc/theme/material/.icons/fontawesome/brands/schlix.svg new file mode 100644 index 00000000..413e4ff7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/schlix.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/scribd.svg b/doc/theme/material/.icons/fontawesome/brands/scribd.svg new file mode 100644 index 00000000..f1ecad19 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/scribd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/searchengin.svg b/doc/theme/material/.icons/fontawesome/brands/searchengin.svg new file mode 100644 index 00000000..2ed72b1a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/searchengin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/sellcast.svg b/doc/theme/material/.icons/fontawesome/brands/sellcast.svg new file mode 100644 index 00000000..75b47f18 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/sellcast.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/sellsy.svg b/doc/theme/material/.icons/fontawesome/brands/sellsy.svg new file mode 100644 index 00000000..6119fe58 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/sellsy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/servicestack.svg b/doc/theme/material/.icons/fontawesome/brands/servicestack.svg new file mode 100644 index 00000000..9f937eb4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/servicestack.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/shirtsinbulk.svg b/doc/theme/material/.icons/fontawesome/brands/shirtsinbulk.svg new file mode 100644 index 00000000..4832095e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/shirtsinbulk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/shopify.svg b/doc/theme/material/.icons/fontawesome/brands/shopify.svg new file mode 100644 index 00000000..09533c95 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/shopify.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/shopware.svg b/doc/theme/material/.icons/fontawesome/brands/shopware.svg new file mode 100644 index 00000000..02529ecf --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/shopware.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/simplybuilt.svg b/doc/theme/material/.icons/fontawesome/brands/simplybuilt.svg new file mode 100644 index 00000000..fbecfe96 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/simplybuilt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/sistrix.svg b/doc/theme/material/.icons/fontawesome/brands/sistrix.svg new file mode 100644 index 00000000..e62cef61 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/sistrix.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/sith.svg b/doc/theme/material/.icons/fontawesome/brands/sith.svg new file mode 100644 index 00000000..98c96401 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/sith.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/sketch.svg b/doc/theme/material/.icons/fontawesome/brands/sketch.svg new file mode 100644 index 00000000..fb22f316 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/sketch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/skyatlas.svg b/doc/theme/material/.icons/fontawesome/brands/skyatlas.svg new file mode 100644 index 00000000..d2c8a3bf --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/skyatlas.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/skype.svg b/doc/theme/material/.icons/fontawesome/brands/skype.svg new file mode 100644 index 00000000..538843cd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/skype.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/slack-hash.svg b/doc/theme/material/.icons/fontawesome/brands/slack-hash.svg new file mode 100644 index 00000000..a465405e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/slack-hash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/slack.svg b/doc/theme/material/.icons/fontawesome/brands/slack.svg new file mode 100644 index 00000000..ee293d67 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/slack.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/slideshare.svg b/doc/theme/material/.icons/fontawesome/brands/slideshare.svg new file mode 100644 index 00000000..42150926 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/slideshare.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/snapchat-ghost.svg b/doc/theme/material/.icons/fontawesome/brands/snapchat-ghost.svg new file mode 100644 index 00000000..30b14548 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/snapchat-ghost.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/snapchat-square.svg b/doc/theme/material/.icons/fontawesome/brands/snapchat-square.svg new file mode 100644 index 00000000..c91e05ec --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/snapchat-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/snapchat.svg b/doc/theme/material/.icons/fontawesome/brands/snapchat.svg new file mode 100644 index 00000000..88cfa167 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/snapchat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/soundcloud.svg b/doc/theme/material/.icons/fontawesome/brands/soundcloud.svg new file mode 100644 index 00000000..0d9b0616 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/soundcloud.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/sourcetree.svg b/doc/theme/material/.icons/fontawesome/brands/sourcetree.svg new file mode 100644 index 00000000..d4a15c50 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/sourcetree.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/speakap.svg b/doc/theme/material/.icons/fontawesome/brands/speakap.svg new file mode 100644 index 00000000..5123f7b8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/speakap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/speaker-deck.svg b/doc/theme/material/.icons/fontawesome/brands/speaker-deck.svg new file mode 100644 index 00000000..678132ee --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/speaker-deck.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/spotify.svg b/doc/theme/material/.icons/fontawesome/brands/spotify.svg new file mode 100644 index 00000000..dcd028a9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/spotify.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/squarespace.svg b/doc/theme/material/.icons/fontawesome/brands/squarespace.svg new file mode 100644 index 00000000..6b31da58 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/squarespace.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/stack-exchange.svg b/doc/theme/material/.icons/fontawesome/brands/stack-exchange.svg new file mode 100644 index 00000000..3889ae23 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/stack-exchange.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/stack-overflow.svg b/doc/theme/material/.icons/fontawesome/brands/stack-overflow.svg new file mode 100644 index 00000000..e8560a30 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/stack-overflow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/stackpath.svg b/doc/theme/material/.icons/fontawesome/brands/stackpath.svg new file mode 100644 index 00000000..c2e53143 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/stackpath.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/staylinked.svg b/doc/theme/material/.icons/fontawesome/brands/staylinked.svg new file mode 100644 index 00000000..3c6b2c8f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/staylinked.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/steam-square.svg b/doc/theme/material/.icons/fontawesome/brands/steam-square.svg new file mode 100644 index 00000000..59a6a8f6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/steam-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/steam-symbol.svg b/doc/theme/material/.icons/fontawesome/brands/steam-symbol.svg new file mode 100644 index 00000000..f0ab74db --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/steam-symbol.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/steam.svg b/doc/theme/material/.icons/fontawesome/brands/steam.svg new file mode 100644 index 00000000..62d2616c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/steam.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/sticker-mule.svg b/doc/theme/material/.icons/fontawesome/brands/sticker-mule.svg new file mode 100644 index 00000000..6a23f17f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/sticker-mule.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/strava.svg b/doc/theme/material/.icons/fontawesome/brands/strava.svg new file mode 100644 index 00000000..40102da3 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/strava.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/stripe-s.svg b/doc/theme/material/.icons/fontawesome/brands/stripe-s.svg new file mode 100644 index 00000000..08c5eb9e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/stripe-s.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/stripe.svg b/doc/theme/material/.icons/fontawesome/brands/stripe.svg new file mode 100644 index 00000000..1688d50a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/stripe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/studiovinari.svg b/doc/theme/material/.icons/fontawesome/brands/studiovinari.svg new file mode 100644 index 00000000..e6e7fa89 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/studiovinari.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/stumbleupon-circle.svg b/doc/theme/material/.icons/fontawesome/brands/stumbleupon-circle.svg new file mode 100644 index 00000000..a4b42346 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/stumbleupon-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/stumbleupon.svg b/doc/theme/material/.icons/fontawesome/brands/stumbleupon.svg new file mode 100644 index 00000000..999d3862 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/stumbleupon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/superpowers.svg b/doc/theme/material/.icons/fontawesome/brands/superpowers.svg new file mode 100644 index 00000000..a6f13f6d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/superpowers.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/supple.svg b/doc/theme/material/.icons/fontawesome/brands/supple.svg new file mode 100644 index 00000000..5afe8792 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/supple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/suse.svg b/doc/theme/material/.icons/fontawesome/brands/suse.svg new file mode 100644 index 00000000..a5a612d7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/suse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/swift.svg b/doc/theme/material/.icons/fontawesome/brands/swift.svg new file mode 100644 index 00000000..c3cda3c0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/swift.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/symfony.svg b/doc/theme/material/.icons/fontawesome/brands/symfony.svg new file mode 100644 index 00000000..51905feb --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/symfony.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/teamspeak.svg b/doc/theme/material/.icons/fontawesome/brands/teamspeak.svg new file mode 100644 index 00000000..507fef80 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/teamspeak.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/telegram-plane.svg b/doc/theme/material/.icons/fontawesome/brands/telegram-plane.svg new file mode 100644 index 00000000..a4e067b5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/telegram-plane.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/telegram.svg b/doc/theme/material/.icons/fontawesome/brands/telegram.svg new file mode 100644 index 00000000..fc5492cc --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/telegram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/tencent-weibo.svg b/doc/theme/material/.icons/fontawesome/brands/tencent-weibo.svg new file mode 100644 index 00000000..30b49fc8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/tencent-weibo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/the-red-yeti.svg b/doc/theme/material/.icons/fontawesome/brands/the-red-yeti.svg new file mode 100644 index 00000000..c6e8f07a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/the-red-yeti.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/themeco.svg b/doc/theme/material/.icons/fontawesome/brands/themeco.svg new file mode 100644 index 00000000..0e706e41 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/themeco.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/themeisle.svg b/doc/theme/material/.icons/fontawesome/brands/themeisle.svg new file mode 100644 index 00000000..98148387 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/themeisle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/think-peaks.svg b/doc/theme/material/.icons/fontawesome/brands/think-peaks.svg new file mode 100644 index 00000000..d956893c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/think-peaks.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/trade-federation.svg b/doc/theme/material/.icons/fontawesome/brands/trade-federation.svg new file mode 100644 index 00000000..07bd63b2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/trade-federation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/trello.svg b/doc/theme/material/.icons/fontawesome/brands/trello.svg new file mode 100644 index 00000000..634c6c3b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/trello.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/tripadvisor.svg b/doc/theme/material/.icons/fontawesome/brands/tripadvisor.svg new file mode 100644 index 00000000..d3f32571 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/tripadvisor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/tumblr-square.svg b/doc/theme/material/.icons/fontawesome/brands/tumblr-square.svg new file mode 100644 index 00000000..96b8cf5c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/tumblr-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/tumblr.svg b/doc/theme/material/.icons/fontawesome/brands/tumblr.svg new file mode 100644 index 00000000..da593777 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/tumblr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/twitch.svg b/doc/theme/material/.icons/fontawesome/brands/twitch.svg new file mode 100644 index 00000000..119260f0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/twitch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/twitter-square.svg b/doc/theme/material/.icons/fontawesome/brands/twitter-square.svg new file mode 100644 index 00000000..a754fd07 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/twitter-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/twitter.svg b/doc/theme/material/.icons/fontawesome/brands/twitter.svg new file mode 100644 index 00000000..f0ed9c5f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/twitter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/typo3.svg b/doc/theme/material/.icons/fontawesome/brands/typo3.svg new file mode 100644 index 00000000..4da76b3b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/typo3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/uber.svg b/doc/theme/material/.icons/fontawesome/brands/uber.svg new file mode 100644 index 00000000..569a1cd9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/uber.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/ubuntu.svg b/doc/theme/material/.icons/fontawesome/brands/ubuntu.svg new file mode 100644 index 00000000..e1958dc4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/ubuntu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/uikit.svg b/doc/theme/material/.icons/fontawesome/brands/uikit.svg new file mode 100644 index 00000000..26ab6110 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/uikit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/umbraco.svg b/doc/theme/material/.icons/fontawesome/brands/umbraco.svg new file mode 100644 index 00000000..fad502dd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/umbraco.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/uniregistry.svg b/doc/theme/material/.icons/fontawesome/brands/uniregistry.svg new file mode 100644 index 00000000..c77b4914 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/uniregistry.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/unity.svg b/doc/theme/material/.icons/fontawesome/brands/unity.svg new file mode 100644 index 00000000..3d1b1b85 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/unity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/untappd.svg b/doc/theme/material/.icons/fontawesome/brands/untappd.svg new file mode 100644 index 00000000..5e062938 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/untappd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/ups.svg b/doc/theme/material/.icons/fontawesome/brands/ups.svg new file mode 100644 index 00000000..eecae78c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/ups.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/usb.svg b/doc/theme/material/.icons/fontawesome/brands/usb.svg new file mode 100644 index 00000000..a9d265ee --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/usb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/usps.svg b/doc/theme/material/.icons/fontawesome/brands/usps.svg new file mode 100644 index 00000000..f939b3e2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/usps.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/ussunnah.svg b/doc/theme/material/.icons/fontawesome/brands/ussunnah.svg new file mode 100644 index 00000000..1dd9ed12 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/ussunnah.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/vaadin.svg b/doc/theme/material/.icons/fontawesome/brands/vaadin.svg new file mode 100644 index 00000000..fadce5ad --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/vaadin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/viacoin.svg b/doc/theme/material/.icons/fontawesome/brands/viacoin.svg new file mode 100644 index 00000000..c4777d6f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/viacoin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/viadeo-square.svg b/doc/theme/material/.icons/fontawesome/brands/viadeo-square.svg new file mode 100644 index 00000000..9212671d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/viadeo-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/viadeo.svg b/doc/theme/material/.icons/fontawesome/brands/viadeo.svg new file mode 100644 index 00000000..f4c1f8a1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/viadeo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/viber.svg b/doc/theme/material/.icons/fontawesome/brands/viber.svg new file mode 100644 index 00000000..e40506b7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/viber.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/vimeo-square.svg b/doc/theme/material/.icons/fontawesome/brands/vimeo-square.svg new file mode 100644 index 00000000..eed266e7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/vimeo-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/vimeo-v.svg b/doc/theme/material/.icons/fontawesome/brands/vimeo-v.svg new file mode 100644 index 00000000..c8715281 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/vimeo-v.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/vimeo.svg b/doc/theme/material/.icons/fontawesome/brands/vimeo.svg new file mode 100644 index 00000000..3a0c5273 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/vimeo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/vine.svg b/doc/theme/material/.icons/fontawesome/brands/vine.svg new file mode 100644 index 00000000..53cb27f8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/vine.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/vk.svg b/doc/theme/material/.icons/fontawesome/brands/vk.svg new file mode 100644 index 00000000..022717d1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/vk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/vnv.svg b/doc/theme/material/.icons/fontawesome/brands/vnv.svg new file mode 100644 index 00000000..56cd37b4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/vnv.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/vuejs.svg b/doc/theme/material/.icons/fontawesome/brands/vuejs.svg new file mode 100644 index 00000000..932887c1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/vuejs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/waze.svg b/doc/theme/material/.icons/fontawesome/brands/waze.svg new file mode 100644 index 00000000..7bfebb1d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/waze.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/weebly.svg b/doc/theme/material/.icons/fontawesome/brands/weebly.svg new file mode 100644 index 00000000..917dabe6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/weebly.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/weibo.svg b/doc/theme/material/.icons/fontawesome/brands/weibo.svg new file mode 100644 index 00000000..84f18c49 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/weibo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/weixin.svg b/doc/theme/material/.icons/fontawesome/brands/weixin.svg new file mode 100644 index 00000000..cd27b198 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/weixin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/whatsapp-square.svg b/doc/theme/material/.icons/fontawesome/brands/whatsapp-square.svg new file mode 100644 index 00000000..7db67533 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/whatsapp-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/whatsapp.svg b/doc/theme/material/.icons/fontawesome/brands/whatsapp.svg new file mode 100644 index 00000000..6ca3eb35 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/whatsapp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/whmcs.svg b/doc/theme/material/.icons/fontawesome/brands/whmcs.svg new file mode 100644 index 00000000..2bbd6959 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/whmcs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/wikipedia-w.svg b/doc/theme/material/.icons/fontawesome/brands/wikipedia-w.svg new file mode 100644 index 00000000..07542530 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/wikipedia-w.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/windows.svg b/doc/theme/material/.icons/fontawesome/brands/windows.svg new file mode 100644 index 00000000..586ba25d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/windows.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/wix.svg b/doc/theme/material/.icons/fontawesome/brands/wix.svg new file mode 100644 index 00000000..c1bea30e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/wix.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/wizards-of-the-coast.svg b/doc/theme/material/.icons/fontawesome/brands/wizards-of-the-coast.svg new file mode 100644 index 00000000..5842f47b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/wizards-of-the-coast.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/wolf-pack-battalion.svg b/doc/theme/material/.icons/fontawesome/brands/wolf-pack-battalion.svg new file mode 100644 index 00000000..0d03a669 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/wolf-pack-battalion.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/wordpress-simple.svg b/doc/theme/material/.icons/fontawesome/brands/wordpress-simple.svg new file mode 100644 index 00000000..de9795ad --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/wordpress-simple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/wordpress.svg b/doc/theme/material/.icons/fontawesome/brands/wordpress.svg new file mode 100644 index 00000000..3cc2bd44 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/wordpress.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/wpbeginner.svg b/doc/theme/material/.icons/fontawesome/brands/wpbeginner.svg new file mode 100644 index 00000000..1f81e844 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/wpbeginner.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/wpexplorer.svg b/doc/theme/material/.icons/fontawesome/brands/wpexplorer.svg new file mode 100644 index 00000000..706e12a9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/wpexplorer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/wpforms.svg b/doc/theme/material/.icons/fontawesome/brands/wpforms.svg new file mode 100644 index 00000000..03a3662b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/wpforms.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/wpressr.svg b/doc/theme/material/.icons/fontawesome/brands/wpressr.svg new file mode 100644 index 00000000..daa6135c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/wpressr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/xbox.svg b/doc/theme/material/.icons/fontawesome/brands/xbox.svg new file mode 100644 index 00000000..5420576e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/xbox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/xing-square.svg b/doc/theme/material/.icons/fontawesome/brands/xing-square.svg new file mode 100644 index 00000000..8c9fb829 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/xing-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/xing.svg b/doc/theme/material/.icons/fontawesome/brands/xing.svg new file mode 100644 index 00000000..c4007711 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/xing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/y-combinator.svg b/doc/theme/material/.icons/fontawesome/brands/y-combinator.svg new file mode 100644 index 00000000..d4a0f7e2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/y-combinator.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/yahoo.svg b/doc/theme/material/.icons/fontawesome/brands/yahoo.svg new file mode 100644 index 00000000..22dea83d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/yahoo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/yammer.svg b/doc/theme/material/.icons/fontawesome/brands/yammer.svg new file mode 100644 index 00000000..ff483ed8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/yammer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/yandex-international.svg b/doc/theme/material/.icons/fontawesome/brands/yandex-international.svg new file mode 100644 index 00000000..2b1c10c7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/yandex-international.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/yandex.svg b/doc/theme/material/.icons/fontawesome/brands/yandex.svg new file mode 100644 index 00000000..d054fe04 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/yandex.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/yarn.svg b/doc/theme/material/.icons/fontawesome/brands/yarn.svg new file mode 100644 index 00000000..ed00ea94 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/yarn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/yelp.svg b/doc/theme/material/.icons/fontawesome/brands/yelp.svg new file mode 100644 index 00000000..43150f3a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/yelp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/yoast.svg b/doc/theme/material/.icons/fontawesome/brands/yoast.svg new file mode 100644 index 00000000..bf2ec0f1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/yoast.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/youtube-square.svg b/doc/theme/material/.icons/fontawesome/brands/youtube-square.svg new file mode 100644 index 00000000..07b9ab59 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/youtube-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/youtube.svg b/doc/theme/material/.icons/fontawesome/brands/youtube.svg new file mode 100644 index 00000000..e831b886 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/youtube.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/brands/zhihu.svg b/doc/theme/material/.icons/fontawesome/brands/zhihu.svg new file mode 100644 index 00000000..c206c266 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/brands/zhihu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/address-book.svg b/doc/theme/material/.icons/fontawesome/regular/address-book.svg new file mode 100644 index 00000000..1c941ca3 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/address-book.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/address-card.svg b/doc/theme/material/.icons/fontawesome/regular/address-card.svg new file mode 100644 index 00000000..4e0179f5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/address-card.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/angry.svg b/doc/theme/material/.icons/fontawesome/regular/angry.svg new file mode 100644 index 00000000..f8636abe --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/angry.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/arrow-alt-circle-down.svg b/doc/theme/material/.icons/fontawesome/regular/arrow-alt-circle-down.svg new file mode 100644 index 00000000..5f758488 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/arrow-alt-circle-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/arrow-alt-circle-left.svg b/doc/theme/material/.icons/fontawesome/regular/arrow-alt-circle-left.svg new file mode 100644 index 00000000..eb3fbdb9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/arrow-alt-circle-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/arrow-alt-circle-right.svg b/doc/theme/material/.icons/fontawesome/regular/arrow-alt-circle-right.svg new file mode 100644 index 00000000..061d9726 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/arrow-alt-circle-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/arrow-alt-circle-up.svg b/doc/theme/material/.icons/fontawesome/regular/arrow-alt-circle-up.svg new file mode 100644 index 00000000..519288e7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/arrow-alt-circle-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/bell-slash.svg b/doc/theme/material/.icons/fontawesome/regular/bell-slash.svg new file mode 100644 index 00000000..410eb75e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/bell-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/bell.svg b/doc/theme/material/.icons/fontawesome/regular/bell.svg new file mode 100644 index 00000000..2b98a370 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/bell.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/bookmark.svg b/doc/theme/material/.icons/fontawesome/regular/bookmark.svg new file mode 100644 index 00000000..741b441f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/bookmark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/building.svg b/doc/theme/material/.icons/fontawesome/regular/building.svg new file mode 100644 index 00000000..4178db46 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/building.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/calendar-alt.svg b/doc/theme/material/.icons/fontawesome/regular/calendar-alt.svg new file mode 100644 index 00000000..130e2ab7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/calendar-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/calendar-check.svg b/doc/theme/material/.icons/fontawesome/regular/calendar-check.svg new file mode 100644 index 00000000..55a9f20f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/calendar-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/calendar-minus.svg b/doc/theme/material/.icons/fontawesome/regular/calendar-minus.svg new file mode 100644 index 00000000..0b83b348 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/calendar-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/calendar-plus.svg b/doc/theme/material/.icons/fontawesome/regular/calendar-plus.svg new file mode 100644 index 00000000..7715ffc4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/calendar-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/calendar-times.svg b/doc/theme/material/.icons/fontawesome/regular/calendar-times.svg new file mode 100644 index 00000000..8a9a10c7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/calendar-times.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/calendar.svg b/doc/theme/material/.icons/fontawesome/regular/calendar.svg new file mode 100644 index 00000000..725e8879 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/calendar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/caret-square-down.svg b/doc/theme/material/.icons/fontawesome/regular/caret-square-down.svg new file mode 100644 index 00000000..29a40ab9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/caret-square-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/caret-square-left.svg b/doc/theme/material/.icons/fontawesome/regular/caret-square-left.svg new file mode 100644 index 00000000..5fa7f8b0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/caret-square-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/caret-square-right.svg b/doc/theme/material/.icons/fontawesome/regular/caret-square-right.svg new file mode 100644 index 00000000..03b43897 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/caret-square-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/caret-square-up.svg b/doc/theme/material/.icons/fontawesome/regular/caret-square-up.svg new file mode 100644 index 00000000..b59f23b3 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/caret-square-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/chart-bar.svg b/doc/theme/material/.icons/fontawesome/regular/chart-bar.svg new file mode 100644 index 00000000..36820b76 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/chart-bar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/check-circle.svg b/doc/theme/material/.icons/fontawesome/regular/check-circle.svg new file mode 100644 index 00000000..000b850f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/check-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/check-square.svg b/doc/theme/material/.icons/fontawesome/regular/check-square.svg new file mode 100644 index 00000000..602b375b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/check-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/circle.svg b/doc/theme/material/.icons/fontawesome/regular/circle.svg new file mode 100644 index 00000000..835815e1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/clipboard.svg b/doc/theme/material/.icons/fontawesome/regular/clipboard.svg new file mode 100644 index 00000000..a9260d17 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/clipboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/clock.svg b/doc/theme/material/.icons/fontawesome/regular/clock.svg new file mode 100644 index 00000000..136a550a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/clock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/clone.svg b/doc/theme/material/.icons/fontawesome/regular/clone.svg new file mode 100644 index 00000000..f9b3a6b8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/clone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/closed-captioning.svg b/doc/theme/material/.icons/fontawesome/regular/closed-captioning.svg new file mode 100644 index 00000000..277952b0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/closed-captioning.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/comment-alt.svg b/doc/theme/material/.icons/fontawesome/regular/comment-alt.svg new file mode 100644 index 00000000..cf31f088 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/comment-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/comment-dots.svg b/doc/theme/material/.icons/fontawesome/regular/comment-dots.svg new file mode 100644 index 00000000..de4dc072 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/comment-dots.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/comment.svg b/doc/theme/material/.icons/fontawesome/regular/comment.svg new file mode 100644 index 00000000..6fb2541d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/comment.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/comments.svg b/doc/theme/material/.icons/fontawesome/regular/comments.svg new file mode 100644 index 00000000..9ab2d387 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/comments.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/compass.svg b/doc/theme/material/.icons/fontawesome/regular/compass.svg new file mode 100644 index 00000000..225da398 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/compass.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/copy.svg b/doc/theme/material/.icons/fontawesome/regular/copy.svg new file mode 100644 index 00000000..9875df30 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/copy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/copyright.svg b/doc/theme/material/.icons/fontawesome/regular/copyright.svg new file mode 100644 index 00000000..61318d6c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/copyright.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/credit-card.svg b/doc/theme/material/.icons/fontawesome/regular/credit-card.svg new file mode 100644 index 00000000..f5a047fb --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/credit-card.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/dizzy.svg b/doc/theme/material/.icons/fontawesome/regular/dizzy.svg new file mode 100644 index 00000000..b84e0059 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/dizzy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/dot-circle.svg b/doc/theme/material/.icons/fontawesome/regular/dot-circle.svg new file mode 100644 index 00000000..eacf9b70 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/dot-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/edit.svg b/doc/theme/material/.icons/fontawesome/regular/edit.svg new file mode 100644 index 00000000..d7b19146 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/envelope-open.svg b/doc/theme/material/.icons/fontawesome/regular/envelope-open.svg new file mode 100644 index 00000000..8aa3359e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/envelope-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/envelope.svg b/doc/theme/material/.icons/fontawesome/regular/envelope.svg new file mode 100644 index 00000000..a2557ef2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/envelope.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/eye-slash.svg b/doc/theme/material/.icons/fontawesome/regular/eye-slash.svg new file mode 100644 index 00000000..ac123231 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/eye-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/eye.svg b/doc/theme/material/.icons/fontawesome/regular/eye.svg new file mode 100644 index 00000000..2083b106 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/eye.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/file-alt.svg b/doc/theme/material/.icons/fontawesome/regular/file-alt.svg new file mode 100644 index 00000000..e32217d2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/file-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/file-archive.svg b/doc/theme/material/.icons/fontawesome/regular/file-archive.svg new file mode 100644 index 00000000..af14d23f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/file-archive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/file-audio.svg b/doc/theme/material/.icons/fontawesome/regular/file-audio.svg new file mode 100644 index 00000000..2b7c9ca7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/file-audio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/file-code.svg b/doc/theme/material/.icons/fontawesome/regular/file-code.svg new file mode 100644 index 00000000..6483b793 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/file-code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/file-excel.svg b/doc/theme/material/.icons/fontawesome/regular/file-excel.svg new file mode 100644 index 00000000..48123027 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/file-excel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/file-image.svg b/doc/theme/material/.icons/fontawesome/regular/file-image.svg new file mode 100644 index 00000000..2ca87e5c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/file-image.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/file-pdf.svg b/doc/theme/material/.icons/fontawesome/regular/file-pdf.svg new file mode 100644 index 00000000..3f2fa453 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/file-pdf.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/file-powerpoint.svg b/doc/theme/material/.icons/fontawesome/regular/file-powerpoint.svg new file mode 100644 index 00000000..41e3505b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/file-powerpoint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/file-video.svg b/doc/theme/material/.icons/fontawesome/regular/file-video.svg new file mode 100644 index 00000000..af025d5a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/file-video.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/file-word.svg b/doc/theme/material/.icons/fontawesome/regular/file-word.svg new file mode 100644 index 00000000..2ba49900 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/file-word.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/file.svg b/doc/theme/material/.icons/fontawesome/regular/file.svg new file mode 100644 index 00000000..9bc15133 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/file.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/flag.svg b/doc/theme/material/.icons/fontawesome/regular/flag.svg new file mode 100644 index 00000000..352a6d35 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/flag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/flushed.svg b/doc/theme/material/.icons/fontawesome/regular/flushed.svg new file mode 100644 index 00000000..cb201a24 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/flushed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/folder-open.svg b/doc/theme/material/.icons/fontawesome/regular/folder-open.svg new file mode 100644 index 00000000..d367d41b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/folder-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/folder.svg b/doc/theme/material/.icons/fontawesome/regular/folder.svg new file mode 100644 index 00000000..7c9d6c4d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/folder.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/font-awesome-logo-full.svg b/doc/theme/material/.icons/fontawesome/regular/font-awesome-logo-full.svg new file mode 100644 index 00000000..06b75a4d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/font-awesome-logo-full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/frown-open.svg b/doc/theme/material/.icons/fontawesome/regular/frown-open.svg new file mode 100644 index 00000000..728cc1cb --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/frown-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/frown.svg b/doc/theme/material/.icons/fontawesome/regular/frown.svg new file mode 100644 index 00000000..a8cb6037 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/frown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/futbol.svg b/doc/theme/material/.icons/fontawesome/regular/futbol.svg new file mode 100644 index 00000000..06014652 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/futbol.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/gem.svg b/doc/theme/material/.icons/fontawesome/regular/gem.svg new file mode 100644 index 00000000..9640cbf9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/gem.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/grimace.svg b/doc/theme/material/.icons/fontawesome/regular/grimace.svg new file mode 100644 index 00000000..3ef8c880 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/grimace.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/grin-alt.svg b/doc/theme/material/.icons/fontawesome/regular/grin-alt.svg new file mode 100644 index 00000000..6e8ac81e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/grin-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/grin-beam-sweat.svg b/doc/theme/material/.icons/fontawesome/regular/grin-beam-sweat.svg new file mode 100644 index 00000000..6f221335 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/grin-beam-sweat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/grin-beam.svg b/doc/theme/material/.icons/fontawesome/regular/grin-beam.svg new file mode 100644 index 00000000..0f8b3660 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/grin-beam.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/grin-hearts.svg b/doc/theme/material/.icons/fontawesome/regular/grin-hearts.svg new file mode 100644 index 00000000..3ecf5f4a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/grin-hearts.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/grin-squint-tears.svg b/doc/theme/material/.icons/fontawesome/regular/grin-squint-tears.svg new file mode 100644 index 00000000..06116746 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/grin-squint-tears.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/grin-squint.svg b/doc/theme/material/.icons/fontawesome/regular/grin-squint.svg new file mode 100644 index 00000000..b6d15a4e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/grin-squint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/grin-stars.svg b/doc/theme/material/.icons/fontawesome/regular/grin-stars.svg new file mode 100644 index 00000000..8f8f2d07 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/grin-stars.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/grin-tears.svg b/doc/theme/material/.icons/fontawesome/regular/grin-tears.svg new file mode 100644 index 00000000..fefc4237 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/grin-tears.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/grin-tongue-squint.svg b/doc/theme/material/.icons/fontawesome/regular/grin-tongue-squint.svg new file mode 100644 index 00000000..6434a61b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/grin-tongue-squint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/grin-tongue-wink.svg b/doc/theme/material/.icons/fontawesome/regular/grin-tongue-wink.svg new file mode 100644 index 00000000..e75cdccd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/grin-tongue-wink.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/grin-tongue.svg b/doc/theme/material/.icons/fontawesome/regular/grin-tongue.svg new file mode 100644 index 00000000..1afbcef4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/grin-tongue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/grin-wink.svg b/doc/theme/material/.icons/fontawesome/regular/grin-wink.svg new file mode 100644 index 00000000..ed3b703d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/grin-wink.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/grin.svg b/doc/theme/material/.icons/fontawesome/regular/grin.svg new file mode 100644 index 00000000..1630a892 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/grin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/hand-lizard.svg b/doc/theme/material/.icons/fontawesome/regular/hand-lizard.svg new file mode 100644 index 00000000..bdeca648 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/hand-lizard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/hand-paper.svg b/doc/theme/material/.icons/fontawesome/regular/hand-paper.svg new file mode 100644 index 00000000..6a0a7fc2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/hand-paper.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/hand-peace.svg b/doc/theme/material/.icons/fontawesome/regular/hand-peace.svg new file mode 100644 index 00000000..e445ba62 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/hand-peace.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/hand-point-down.svg b/doc/theme/material/.icons/fontawesome/regular/hand-point-down.svg new file mode 100644 index 00000000..d87f28ec --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/hand-point-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/hand-point-left.svg b/doc/theme/material/.icons/fontawesome/regular/hand-point-left.svg new file mode 100644 index 00000000..23e5b139 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/hand-point-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/hand-point-right.svg b/doc/theme/material/.icons/fontawesome/regular/hand-point-right.svg new file mode 100644 index 00000000..cc7e062b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/hand-point-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/hand-point-up.svg b/doc/theme/material/.icons/fontawesome/regular/hand-point-up.svg new file mode 100644 index 00000000..b7475816 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/hand-point-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/hand-pointer.svg b/doc/theme/material/.icons/fontawesome/regular/hand-pointer.svg new file mode 100644 index 00000000..8ce3eece --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/hand-pointer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/hand-rock.svg b/doc/theme/material/.icons/fontawesome/regular/hand-rock.svg new file mode 100644 index 00000000..0fda3efd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/hand-rock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/hand-scissors.svg b/doc/theme/material/.icons/fontawesome/regular/hand-scissors.svg new file mode 100644 index 00000000..45c99302 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/hand-scissors.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/hand-spock.svg b/doc/theme/material/.icons/fontawesome/regular/hand-spock.svg new file mode 100644 index 00000000..d61cda4d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/hand-spock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/handshake.svg b/doc/theme/material/.icons/fontawesome/regular/handshake.svg new file mode 100644 index 00000000..b395862d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/handshake.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/hdd.svg b/doc/theme/material/.icons/fontawesome/regular/hdd.svg new file mode 100644 index 00000000..101b7a97 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/hdd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/heart.svg b/doc/theme/material/.icons/fontawesome/regular/heart.svg new file mode 100644 index 00000000..9a380831 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/heart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/hospital.svg b/doc/theme/material/.icons/fontawesome/regular/hospital.svg new file mode 100644 index 00000000..07d145f6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/hospital.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/hourglass.svg b/doc/theme/material/.icons/fontawesome/regular/hourglass.svg new file mode 100644 index 00000000..c89faa1d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/hourglass.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/id-badge.svg b/doc/theme/material/.icons/fontawesome/regular/id-badge.svg new file mode 100644 index 00000000..39008027 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/id-badge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/id-card.svg b/doc/theme/material/.icons/fontawesome/regular/id-card.svg new file mode 100644 index 00000000..58ce378b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/id-card.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/image.svg b/doc/theme/material/.icons/fontawesome/regular/image.svg new file mode 100644 index 00000000..235e3cff --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/image.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/images.svg b/doc/theme/material/.icons/fontawesome/regular/images.svg new file mode 100644 index 00000000..3a394542 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/images.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/keyboard.svg b/doc/theme/material/.icons/fontawesome/regular/keyboard.svg new file mode 100644 index 00000000..3b3705dc --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/keyboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/kiss-beam.svg b/doc/theme/material/.icons/fontawesome/regular/kiss-beam.svg new file mode 100644 index 00000000..85718086 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/kiss-beam.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/kiss-wink-heart.svg b/doc/theme/material/.icons/fontawesome/regular/kiss-wink-heart.svg new file mode 100644 index 00000000..a513302e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/kiss-wink-heart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/kiss.svg b/doc/theme/material/.icons/fontawesome/regular/kiss.svg new file mode 100644 index 00000000..5af5fc76 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/kiss.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/laugh-beam.svg b/doc/theme/material/.icons/fontawesome/regular/laugh-beam.svg new file mode 100644 index 00000000..d9e473f2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/laugh-beam.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/laugh-squint.svg b/doc/theme/material/.icons/fontawesome/regular/laugh-squint.svg new file mode 100644 index 00000000..4edf0d0c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/laugh-squint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/laugh-wink.svg b/doc/theme/material/.icons/fontawesome/regular/laugh-wink.svg new file mode 100644 index 00000000..39c36954 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/laugh-wink.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/laugh.svg b/doc/theme/material/.icons/fontawesome/regular/laugh.svg new file mode 100644 index 00000000..b8524251 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/laugh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/lemon.svg b/doc/theme/material/.icons/fontawesome/regular/lemon.svg new file mode 100644 index 00000000..ab9ed90b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/lemon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/life-ring.svg b/doc/theme/material/.icons/fontawesome/regular/life-ring.svg new file mode 100644 index 00000000..2cf33268 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/life-ring.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/lightbulb.svg b/doc/theme/material/.icons/fontawesome/regular/lightbulb.svg new file mode 100644 index 00000000..90c250af --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/lightbulb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/list-alt.svg b/doc/theme/material/.icons/fontawesome/regular/list-alt.svg new file mode 100644 index 00000000..7df6fba0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/list-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/map.svg b/doc/theme/material/.icons/fontawesome/regular/map.svg new file mode 100644 index 00000000..6c613d4f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/map.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/meh-blank.svg b/doc/theme/material/.icons/fontawesome/regular/meh-blank.svg new file mode 100644 index 00000000..ebeece47 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/meh-blank.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/meh-rolling-eyes.svg b/doc/theme/material/.icons/fontawesome/regular/meh-rolling-eyes.svg new file mode 100644 index 00000000..3fb3476f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/meh-rolling-eyes.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/meh.svg b/doc/theme/material/.icons/fontawesome/regular/meh.svg new file mode 100644 index 00000000..3bff8acc --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/meh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/minus-square.svg b/doc/theme/material/.icons/fontawesome/regular/minus-square.svg new file mode 100644 index 00000000..6b72714e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/minus-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/money-bill-alt.svg b/doc/theme/material/.icons/fontawesome/regular/money-bill-alt.svg new file mode 100644 index 00000000..013118a3 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/money-bill-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/moon.svg b/doc/theme/material/.icons/fontawesome/regular/moon.svg new file mode 100644 index 00000000..91c3b80f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/moon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/newspaper.svg b/doc/theme/material/.icons/fontawesome/regular/newspaper.svg new file mode 100644 index 00000000..a54e3ca5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/newspaper.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/object-group.svg b/doc/theme/material/.icons/fontawesome/regular/object-group.svg new file mode 100644 index 00000000..e483f376 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/object-group.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/object-ungroup.svg b/doc/theme/material/.icons/fontawesome/regular/object-ungroup.svg new file mode 100644 index 00000000..62553630 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/object-ungroup.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/paper-plane.svg b/doc/theme/material/.icons/fontawesome/regular/paper-plane.svg new file mode 100644 index 00000000..215e2933 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/paper-plane.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/pause-circle.svg b/doc/theme/material/.icons/fontawesome/regular/pause-circle.svg new file mode 100644 index 00000000..caebd9e9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/pause-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/play-circle.svg b/doc/theme/material/.icons/fontawesome/regular/play-circle.svg new file mode 100644 index 00000000..9de60df9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/play-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/plus-square.svg b/doc/theme/material/.icons/fontawesome/regular/plus-square.svg new file mode 100644 index 00000000..dfc22ac6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/plus-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/question-circle.svg b/doc/theme/material/.icons/fontawesome/regular/question-circle.svg new file mode 100644 index 00000000..9a30b85d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/question-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/registered.svg b/doc/theme/material/.icons/fontawesome/regular/registered.svg new file mode 100644 index 00000000..db9e8da5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/registered.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/sad-cry.svg b/doc/theme/material/.icons/fontawesome/regular/sad-cry.svg new file mode 100644 index 00000000..8ab84c9f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/sad-cry.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/sad-tear.svg b/doc/theme/material/.icons/fontawesome/regular/sad-tear.svg new file mode 100644 index 00000000..e19421ca --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/sad-tear.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/save.svg b/doc/theme/material/.icons/fontawesome/regular/save.svg new file mode 100644 index 00000000..d2245da4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/save.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/share-square.svg b/doc/theme/material/.icons/fontawesome/regular/share-square.svg new file mode 100644 index 00000000..6e678e9c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/share-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/smile-beam.svg b/doc/theme/material/.icons/fontawesome/regular/smile-beam.svg new file mode 100644 index 00000000..1077160f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/smile-beam.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/smile-wink.svg b/doc/theme/material/.icons/fontawesome/regular/smile-wink.svg new file mode 100644 index 00000000..e842eede --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/smile-wink.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/smile.svg b/doc/theme/material/.icons/fontawesome/regular/smile.svg new file mode 100644 index 00000000..025898d4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/smile.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/snowflake.svg b/doc/theme/material/.icons/fontawesome/regular/snowflake.svg new file mode 100644 index 00000000..2258d805 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/snowflake.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/square.svg b/doc/theme/material/.icons/fontawesome/regular/square.svg new file mode 100644 index 00000000..b9a4b962 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/star-half.svg b/doc/theme/material/.icons/fontawesome/regular/star-half.svg new file mode 100644 index 00000000..12b063fd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/star-half.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/star.svg b/doc/theme/material/.icons/fontawesome/regular/star.svg new file mode 100644 index 00000000..a1370d23 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/star.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/sticky-note.svg b/doc/theme/material/.icons/fontawesome/regular/sticky-note.svg new file mode 100644 index 00000000..45919b2d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/sticky-note.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/stop-circle.svg b/doc/theme/material/.icons/fontawesome/regular/stop-circle.svg new file mode 100644 index 00000000..37bf314d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/stop-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/sun.svg b/doc/theme/material/.icons/fontawesome/regular/sun.svg new file mode 100644 index 00000000..78d33ba5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/sun.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/surprise.svg b/doc/theme/material/.icons/fontawesome/regular/surprise.svg new file mode 100644 index 00000000..4210c378 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/surprise.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/thumbs-down.svg b/doc/theme/material/.icons/fontawesome/regular/thumbs-down.svg new file mode 100644 index 00000000..d7b49d53 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/thumbs-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/thumbs-up.svg b/doc/theme/material/.icons/fontawesome/regular/thumbs-up.svg new file mode 100644 index 00000000..f60e4d11 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/thumbs-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/times-circle.svg b/doc/theme/material/.icons/fontawesome/regular/times-circle.svg new file mode 100644 index 00000000..15181d34 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/times-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/tired.svg b/doc/theme/material/.icons/fontawesome/regular/tired.svg new file mode 100644 index 00000000..6f700be9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/tired.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/trash-alt.svg b/doc/theme/material/.icons/fontawesome/regular/trash-alt.svg new file mode 100644 index 00000000..69511ac7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/trash-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/user-circle.svg b/doc/theme/material/.icons/fontawesome/regular/user-circle.svg new file mode 100644 index 00000000..1d678d24 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/user-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/user.svg b/doc/theme/material/.icons/fontawesome/regular/user.svg new file mode 100644 index 00000000..bdc327c6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/user.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/window-close.svg b/doc/theme/material/.icons/fontawesome/regular/window-close.svg new file mode 100644 index 00000000..13759855 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/window-close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/window-maximize.svg b/doc/theme/material/.icons/fontawesome/regular/window-maximize.svg new file mode 100644 index 00000000..39c0ac06 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/window-maximize.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/window-minimize.svg b/doc/theme/material/.icons/fontawesome/regular/window-minimize.svg new file mode 100644 index 00000000..0986bbaa --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/window-minimize.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/regular/window-restore.svg b/doc/theme/material/.icons/fontawesome/regular/window-restore.svg new file mode 100644 index 00000000..9d1bfa7b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/regular/window-restore.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/ad.svg b/doc/theme/material/.icons/fontawesome/solid/ad.svg new file mode 100644 index 00000000..bd78e06d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/ad.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/address-book.svg b/doc/theme/material/.icons/fontawesome/solid/address-book.svg new file mode 100644 index 00000000..f652f5a9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/address-book.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/address-card.svg b/doc/theme/material/.icons/fontawesome/solid/address-card.svg new file mode 100644 index 00000000..628ced25 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/address-card.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/adjust.svg b/doc/theme/material/.icons/fontawesome/solid/adjust.svg new file mode 100644 index 00000000..2616d99a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/adjust.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/air-freshener.svg b/doc/theme/material/.icons/fontawesome/solid/air-freshener.svg new file mode 100644 index 00000000..25713c70 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/air-freshener.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/align-center.svg b/doc/theme/material/.icons/fontawesome/solid/align-center.svg new file mode 100644 index 00000000..43b33667 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/align-center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/align-justify.svg b/doc/theme/material/.icons/fontawesome/solid/align-justify.svg new file mode 100644 index 00000000..1e69256e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/align-justify.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/align-left.svg b/doc/theme/material/.icons/fontawesome/solid/align-left.svg new file mode 100644 index 00000000..d188e173 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/align-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/align-right.svg b/doc/theme/material/.icons/fontawesome/solid/align-right.svg new file mode 100644 index 00000000..8d5f5e81 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/align-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/allergies.svg b/doc/theme/material/.icons/fontawesome/solid/allergies.svg new file mode 100644 index 00000000..335f5bcb --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/allergies.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/ambulance.svg b/doc/theme/material/.icons/fontawesome/solid/ambulance.svg new file mode 100644 index 00000000..b35a7bc0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/ambulance.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/american-sign-language-interpreting.svg b/doc/theme/material/.icons/fontawesome/solid/american-sign-language-interpreting.svg new file mode 100644 index 00000000..d65a1664 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/american-sign-language-interpreting.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/anchor.svg b/doc/theme/material/.icons/fontawesome/solid/anchor.svg new file mode 100644 index 00000000..792266ba --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/anchor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/angle-double-down.svg b/doc/theme/material/.icons/fontawesome/solid/angle-double-down.svg new file mode 100644 index 00000000..3228f4ab --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/angle-double-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/angle-double-left.svg b/doc/theme/material/.icons/fontawesome/solid/angle-double-left.svg new file mode 100644 index 00000000..4474d83e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/angle-double-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/angle-double-right.svg b/doc/theme/material/.icons/fontawesome/solid/angle-double-right.svg new file mode 100644 index 00000000..cdf93366 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/angle-double-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/angle-double-up.svg b/doc/theme/material/.icons/fontawesome/solid/angle-double-up.svg new file mode 100644 index 00000000..74b542f6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/angle-double-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/angle-down.svg b/doc/theme/material/.icons/fontawesome/solid/angle-down.svg new file mode 100644 index 00000000..14623425 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/angle-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/angle-left.svg b/doc/theme/material/.icons/fontawesome/solid/angle-left.svg new file mode 100644 index 00000000..1e28c704 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/angle-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/angle-right.svg b/doc/theme/material/.icons/fontawesome/solid/angle-right.svg new file mode 100644 index 00000000..ec7fbe9f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/angle-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/angle-up.svg b/doc/theme/material/.icons/fontawesome/solid/angle-up.svg new file mode 100644 index 00000000..1d0bbead --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/angle-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/angry.svg b/doc/theme/material/.icons/fontawesome/solid/angry.svg new file mode 100644 index 00000000..eca0b5d6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/angry.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/ankh.svg b/doc/theme/material/.icons/fontawesome/solid/ankh.svg new file mode 100644 index 00000000..2cab7bfd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/ankh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/apple-alt.svg b/doc/theme/material/.icons/fontawesome/solid/apple-alt.svg new file mode 100644 index 00000000..995d76e9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/apple-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/archive.svg b/doc/theme/material/.icons/fontawesome/solid/archive.svg new file mode 100644 index 00000000..394dad2d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/archive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/archway.svg b/doc/theme/material/.icons/fontawesome/solid/archway.svg new file mode 100644 index 00000000..e5ad2f3d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/archway.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/arrow-alt-circle-down.svg b/doc/theme/material/.icons/fontawesome/solid/arrow-alt-circle-down.svg new file mode 100644 index 00000000..a2f644f8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/arrow-alt-circle-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/arrow-alt-circle-left.svg b/doc/theme/material/.icons/fontawesome/solid/arrow-alt-circle-left.svg new file mode 100644 index 00000000..8a53b226 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/arrow-alt-circle-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/arrow-alt-circle-right.svg b/doc/theme/material/.icons/fontawesome/solid/arrow-alt-circle-right.svg new file mode 100644 index 00000000..9da44be8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/arrow-alt-circle-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/arrow-alt-circle-up.svg b/doc/theme/material/.icons/fontawesome/solid/arrow-alt-circle-up.svg new file mode 100644 index 00000000..c650c826 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/arrow-alt-circle-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/arrow-circle-down.svg b/doc/theme/material/.icons/fontawesome/solid/arrow-circle-down.svg new file mode 100644 index 00000000..08b9f13a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/arrow-circle-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/arrow-circle-left.svg b/doc/theme/material/.icons/fontawesome/solid/arrow-circle-left.svg new file mode 100644 index 00000000..59be8d9e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/arrow-circle-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/arrow-circle-right.svg b/doc/theme/material/.icons/fontawesome/solid/arrow-circle-right.svg new file mode 100644 index 00000000..f059bab9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/arrow-circle-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/arrow-circle-up.svg b/doc/theme/material/.icons/fontawesome/solid/arrow-circle-up.svg new file mode 100644 index 00000000..d9d8081c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/arrow-circle-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/arrow-down.svg b/doc/theme/material/.icons/fontawesome/solid/arrow-down.svg new file mode 100644 index 00000000..61b4db70 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/arrow-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/arrow-left.svg b/doc/theme/material/.icons/fontawesome/solid/arrow-left.svg new file mode 100644 index 00000000..b229b8d1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/arrow-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/arrow-right.svg b/doc/theme/material/.icons/fontawesome/solid/arrow-right.svg new file mode 100644 index 00000000..1b9b05b4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/arrow-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/arrow-up.svg b/doc/theme/material/.icons/fontawesome/solid/arrow-up.svg new file mode 100644 index 00000000..bc571b5d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/arrow-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/arrows-alt-h.svg b/doc/theme/material/.icons/fontawesome/solid/arrows-alt-h.svg new file mode 100644 index 00000000..0caa926d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/arrows-alt-h.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/arrows-alt-v.svg b/doc/theme/material/.icons/fontawesome/solid/arrows-alt-v.svg new file mode 100644 index 00000000..ebb23acb --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/arrows-alt-v.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/arrows-alt.svg b/doc/theme/material/.icons/fontawesome/solid/arrows-alt.svg new file mode 100644 index 00000000..d885a5a6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/arrows-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/assistive-listening-systems.svg b/doc/theme/material/.icons/fontawesome/solid/assistive-listening-systems.svg new file mode 100644 index 00000000..5071f596 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/assistive-listening-systems.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/asterisk.svg b/doc/theme/material/.icons/fontawesome/solid/asterisk.svg new file mode 100644 index 00000000..d77cbb6b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/asterisk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/at.svg b/doc/theme/material/.icons/fontawesome/solid/at.svg new file mode 100644 index 00000000..846893f5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/at.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/atlas.svg b/doc/theme/material/.icons/fontawesome/solid/atlas.svg new file mode 100644 index 00000000..ea31821f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/atlas.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/atom.svg b/doc/theme/material/.icons/fontawesome/solid/atom.svg new file mode 100644 index 00000000..b9f35da1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/atom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/audio-description.svg b/doc/theme/material/.icons/fontawesome/solid/audio-description.svg new file mode 100644 index 00000000..712578ee --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/audio-description.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/award.svg b/doc/theme/material/.icons/fontawesome/solid/award.svg new file mode 100644 index 00000000..3350fa6a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/award.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/baby-carriage.svg b/doc/theme/material/.icons/fontawesome/solid/baby-carriage.svg new file mode 100644 index 00000000..e8dd92b8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/baby-carriage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/baby.svg b/doc/theme/material/.icons/fontawesome/solid/baby.svg new file mode 100644 index 00000000..0313288a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/baby.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/backspace.svg b/doc/theme/material/.icons/fontawesome/solid/backspace.svg new file mode 100644 index 00000000..b1c99522 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/backspace.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/backward.svg b/doc/theme/material/.icons/fontawesome/solid/backward.svg new file mode 100644 index 00000000..b37fcc22 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/backward.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/bacon.svg b/doc/theme/material/.icons/fontawesome/solid/bacon.svg new file mode 100644 index 00000000..3976fe30 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/bacon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/bahai.svg b/doc/theme/material/.icons/fontawesome/solid/bahai.svg new file mode 100644 index 00000000..8ea2a693 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/bahai.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/balance-scale-left.svg b/doc/theme/material/.icons/fontawesome/solid/balance-scale-left.svg new file mode 100644 index 00000000..e7b692e6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/balance-scale-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/balance-scale-right.svg b/doc/theme/material/.icons/fontawesome/solid/balance-scale-right.svg new file mode 100644 index 00000000..77476a1f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/balance-scale-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/balance-scale.svg b/doc/theme/material/.icons/fontawesome/solid/balance-scale.svg new file mode 100644 index 00000000..e526521e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/balance-scale.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/ban.svg b/doc/theme/material/.icons/fontawesome/solid/ban.svg new file mode 100644 index 00000000..85f7f06f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/ban.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/band-aid.svg b/doc/theme/material/.icons/fontawesome/solid/band-aid.svg new file mode 100644 index 00000000..4d0f5591 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/band-aid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/barcode.svg b/doc/theme/material/.icons/fontawesome/solid/barcode.svg new file mode 100644 index 00000000..58cbee7d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/barcode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/bars.svg b/doc/theme/material/.icons/fontawesome/solid/bars.svg new file mode 100644 index 00000000..87d79f9e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/bars.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/baseball-ball.svg b/doc/theme/material/.icons/fontawesome/solid/baseball-ball.svg new file mode 100644 index 00000000..bcdb0a0c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/baseball-ball.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/basketball-ball.svg b/doc/theme/material/.icons/fontawesome/solid/basketball-ball.svg new file mode 100644 index 00000000..bb2ba238 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/basketball-ball.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/bath.svg b/doc/theme/material/.icons/fontawesome/solid/bath.svg new file mode 100644 index 00000000..8f20e3c5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/bath.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/battery-empty.svg b/doc/theme/material/.icons/fontawesome/solid/battery-empty.svg new file mode 100644 index 00000000..b4a57fac --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/battery-empty.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/battery-full.svg b/doc/theme/material/.icons/fontawesome/solid/battery-full.svg new file mode 100644 index 00000000..056b8189 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/battery-full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/battery-half.svg b/doc/theme/material/.icons/fontawesome/solid/battery-half.svg new file mode 100644 index 00000000..16a8fc33 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/battery-half.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/battery-quarter.svg b/doc/theme/material/.icons/fontawesome/solid/battery-quarter.svg new file mode 100644 index 00000000..d48ca28b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/battery-quarter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/battery-three-quarters.svg b/doc/theme/material/.icons/fontawesome/solid/battery-three-quarters.svg new file mode 100644 index 00000000..43fc35ad --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/battery-three-quarters.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/bed.svg b/doc/theme/material/.icons/fontawesome/solid/bed.svg new file mode 100644 index 00000000..d70b0221 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/bed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/beer.svg b/doc/theme/material/.icons/fontawesome/solid/beer.svg new file mode 100644 index 00000000..a4ad01aa --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/beer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/bell-slash.svg b/doc/theme/material/.icons/fontawesome/solid/bell-slash.svg new file mode 100644 index 00000000..e36f5001 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/bell-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/bell.svg b/doc/theme/material/.icons/fontawesome/solid/bell.svg new file mode 100644 index 00000000..e45be58c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/bell.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/bezier-curve.svg b/doc/theme/material/.icons/fontawesome/solid/bezier-curve.svg new file mode 100644 index 00000000..ca10d7a7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/bezier-curve.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/bible.svg b/doc/theme/material/.icons/fontawesome/solid/bible.svg new file mode 100644 index 00000000..8c6c9532 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/bible.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/bicycle.svg b/doc/theme/material/.icons/fontawesome/solid/bicycle.svg new file mode 100644 index 00000000..124ca5e1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/bicycle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/biking.svg b/doc/theme/material/.icons/fontawesome/solid/biking.svg new file mode 100644 index 00000000..f35f41e5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/biking.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/binoculars.svg b/doc/theme/material/.icons/fontawesome/solid/binoculars.svg new file mode 100644 index 00000000..d09ca73b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/binoculars.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/biohazard.svg b/doc/theme/material/.icons/fontawesome/solid/biohazard.svg new file mode 100644 index 00000000..fddaee62 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/biohazard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/birthday-cake.svg b/doc/theme/material/.icons/fontawesome/solid/birthday-cake.svg new file mode 100644 index 00000000..50e92ae4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/birthday-cake.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/blender-phone.svg b/doc/theme/material/.icons/fontawesome/solid/blender-phone.svg new file mode 100644 index 00000000..29733d67 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/blender-phone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/blender.svg b/doc/theme/material/.icons/fontawesome/solid/blender.svg new file mode 100644 index 00000000..8357ad27 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/blender.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/blind.svg b/doc/theme/material/.icons/fontawesome/solid/blind.svg new file mode 100644 index 00000000..a16a8903 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/blind.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/blog.svg b/doc/theme/material/.icons/fontawesome/solid/blog.svg new file mode 100644 index 00000000..c9f8bb5b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/blog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/bold.svg b/doc/theme/material/.icons/fontawesome/solid/bold.svg new file mode 100644 index 00000000..c58ae487 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/bold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/bolt.svg b/doc/theme/material/.icons/fontawesome/solid/bolt.svg new file mode 100644 index 00000000..4654a1eb --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/bolt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/bomb.svg b/doc/theme/material/.icons/fontawesome/solid/bomb.svg new file mode 100644 index 00000000..d7a56f2b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/bomb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/bone.svg b/doc/theme/material/.icons/fontawesome/solid/bone.svg new file mode 100644 index 00000000..1d43763e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/bone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/bong.svg b/doc/theme/material/.icons/fontawesome/solid/bong.svg new file mode 100644 index 00000000..e84800ce --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/bong.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/book-dead.svg b/doc/theme/material/.icons/fontawesome/solid/book-dead.svg new file mode 100644 index 00000000..76a2ce39 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/book-dead.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/book-medical.svg b/doc/theme/material/.icons/fontawesome/solid/book-medical.svg new file mode 100644 index 00000000..64564f85 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/book-medical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/book-open.svg b/doc/theme/material/.icons/fontawesome/solid/book-open.svg new file mode 100644 index 00000000..342917db --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/book-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/book-reader.svg b/doc/theme/material/.icons/fontawesome/solid/book-reader.svg new file mode 100644 index 00000000..4d39dcbc --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/book-reader.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/book.svg b/doc/theme/material/.icons/fontawesome/solid/book.svg new file mode 100644 index 00000000..d27fdae7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/book.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/bookmark.svg b/doc/theme/material/.icons/fontawesome/solid/bookmark.svg new file mode 100644 index 00000000..d1c8e4a2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/bookmark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/border-all.svg b/doc/theme/material/.icons/fontawesome/solid/border-all.svg new file mode 100644 index 00000000..d5b7c918 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/border-all.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/border-none.svg b/doc/theme/material/.icons/fontawesome/solid/border-none.svg new file mode 100644 index 00000000..2e53f36d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/border-none.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/border-style.svg b/doc/theme/material/.icons/fontawesome/solid/border-style.svg new file mode 100644 index 00000000..10ff9417 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/border-style.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/bowling-ball.svg b/doc/theme/material/.icons/fontawesome/solid/bowling-ball.svg new file mode 100644 index 00000000..59602f68 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/bowling-ball.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/box-open.svg b/doc/theme/material/.icons/fontawesome/solid/box-open.svg new file mode 100644 index 00000000..0e6242c6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/box-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/box-tissue.svg b/doc/theme/material/.icons/fontawesome/solid/box-tissue.svg new file mode 100644 index 00000000..48d9e8e3 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/box-tissue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/box.svg b/doc/theme/material/.icons/fontawesome/solid/box.svg new file mode 100644 index 00000000..6cd0dc12 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/boxes.svg b/doc/theme/material/.icons/fontawesome/solid/boxes.svg new file mode 100644 index 00000000..b2da05b6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/boxes.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/braille.svg b/doc/theme/material/.icons/fontawesome/solid/braille.svg new file mode 100644 index 00000000..08f034ff --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/braille.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/brain.svg b/doc/theme/material/.icons/fontawesome/solid/brain.svg new file mode 100644 index 00000000..dee0d37f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/brain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/bread-slice.svg b/doc/theme/material/.icons/fontawesome/solid/bread-slice.svg new file mode 100644 index 00000000..9b62b940 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/bread-slice.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/briefcase-medical.svg b/doc/theme/material/.icons/fontawesome/solid/briefcase-medical.svg new file mode 100644 index 00000000..f1404740 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/briefcase-medical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/briefcase.svg b/doc/theme/material/.icons/fontawesome/solid/briefcase.svg new file mode 100644 index 00000000..8c2882a0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/briefcase.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/broadcast-tower.svg b/doc/theme/material/.icons/fontawesome/solid/broadcast-tower.svg new file mode 100644 index 00000000..614bc53d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/broadcast-tower.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/broom.svg b/doc/theme/material/.icons/fontawesome/solid/broom.svg new file mode 100644 index 00000000..93b43c99 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/broom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/brush.svg b/doc/theme/material/.icons/fontawesome/solid/brush.svg new file mode 100644 index 00000000..e42b048b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/brush.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/bug.svg b/doc/theme/material/.icons/fontawesome/solid/bug.svg new file mode 100644 index 00000000..b9185530 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/bug.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/building.svg b/doc/theme/material/.icons/fontawesome/solid/building.svg new file mode 100644 index 00000000..a109377b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/building.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/bullhorn.svg b/doc/theme/material/.icons/fontawesome/solid/bullhorn.svg new file mode 100644 index 00000000..25374265 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/bullhorn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/bullseye.svg b/doc/theme/material/.icons/fontawesome/solid/bullseye.svg new file mode 100644 index 00000000..ec402e64 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/bullseye.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/burn.svg b/doc/theme/material/.icons/fontawesome/solid/burn.svg new file mode 100644 index 00000000..44183cf1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/burn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/bus-alt.svg b/doc/theme/material/.icons/fontawesome/solid/bus-alt.svg new file mode 100644 index 00000000..bfaad721 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/bus-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/bus.svg b/doc/theme/material/.icons/fontawesome/solid/bus.svg new file mode 100644 index 00000000..040c4a6b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/bus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/business-time.svg b/doc/theme/material/.icons/fontawesome/solid/business-time.svg new file mode 100644 index 00000000..74b5a1df --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/business-time.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/calculator.svg b/doc/theme/material/.icons/fontawesome/solid/calculator.svg new file mode 100644 index 00000000..9b367dfa --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/calculator.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/calendar-alt.svg b/doc/theme/material/.icons/fontawesome/solid/calendar-alt.svg new file mode 100644 index 00000000..b07a0911 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/calendar-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/calendar-check.svg b/doc/theme/material/.icons/fontawesome/solid/calendar-check.svg new file mode 100644 index 00000000..35b590d0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/calendar-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/calendar-day.svg b/doc/theme/material/.icons/fontawesome/solid/calendar-day.svg new file mode 100644 index 00000000..20f9fa09 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/calendar-day.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/calendar-minus.svg b/doc/theme/material/.icons/fontawesome/solid/calendar-minus.svg new file mode 100644 index 00000000..78b8a3c0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/calendar-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/calendar-plus.svg b/doc/theme/material/.icons/fontawesome/solid/calendar-plus.svg new file mode 100644 index 00000000..5e1b3382 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/calendar-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/calendar-times.svg b/doc/theme/material/.icons/fontawesome/solid/calendar-times.svg new file mode 100644 index 00000000..4db39b2d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/calendar-times.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/calendar-week.svg b/doc/theme/material/.icons/fontawesome/solid/calendar-week.svg new file mode 100644 index 00000000..1bb6c949 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/calendar-week.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/calendar.svg b/doc/theme/material/.icons/fontawesome/solid/calendar.svg new file mode 100644 index 00000000..2d3eefe8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/calendar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/camera-retro.svg b/doc/theme/material/.icons/fontawesome/solid/camera-retro.svg new file mode 100644 index 00000000..67b7cfd5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/camera-retro.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/camera.svg b/doc/theme/material/.icons/fontawesome/solid/camera.svg new file mode 100644 index 00000000..dc9f6081 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/camera.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/campground.svg b/doc/theme/material/.icons/fontawesome/solid/campground.svg new file mode 100644 index 00000000..39719580 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/campground.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/candy-cane.svg b/doc/theme/material/.icons/fontawesome/solid/candy-cane.svg new file mode 100644 index 00000000..7e6600a4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/candy-cane.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/cannabis.svg b/doc/theme/material/.icons/fontawesome/solid/cannabis.svg new file mode 100644 index 00000000..f93e6b5e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/cannabis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/capsules.svg b/doc/theme/material/.icons/fontawesome/solid/capsules.svg new file mode 100644 index 00000000..20d8ceea --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/capsules.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/car-alt.svg b/doc/theme/material/.icons/fontawesome/solid/car-alt.svg new file mode 100644 index 00000000..88111cfa --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/car-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/car-battery.svg b/doc/theme/material/.icons/fontawesome/solid/car-battery.svg new file mode 100644 index 00000000..537e7d29 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/car-battery.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/car-crash.svg b/doc/theme/material/.icons/fontawesome/solid/car-crash.svg new file mode 100644 index 00000000..b117434f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/car-crash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/car-side.svg b/doc/theme/material/.icons/fontawesome/solid/car-side.svg new file mode 100644 index 00000000..a6543989 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/car-side.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/car.svg b/doc/theme/material/.icons/fontawesome/solid/car.svg new file mode 100644 index 00000000..9b238990 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/car.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/caravan.svg b/doc/theme/material/.icons/fontawesome/solid/caravan.svg new file mode 100644 index 00000000..95ef1257 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/caravan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/caret-down.svg b/doc/theme/material/.icons/fontawesome/solid/caret-down.svg new file mode 100644 index 00000000..b3ee2ea9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/caret-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/caret-left.svg b/doc/theme/material/.icons/fontawesome/solid/caret-left.svg new file mode 100644 index 00000000..36d7191a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/caret-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/caret-right.svg b/doc/theme/material/.icons/fontawesome/solid/caret-right.svg new file mode 100644 index 00000000..bcd4cd10 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/caret-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/caret-square-down.svg b/doc/theme/material/.icons/fontawesome/solid/caret-square-down.svg new file mode 100644 index 00000000..87a4f7a0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/caret-square-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/caret-square-left.svg b/doc/theme/material/.icons/fontawesome/solid/caret-square-left.svg new file mode 100644 index 00000000..856dcac9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/caret-square-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/caret-square-right.svg b/doc/theme/material/.icons/fontawesome/solid/caret-square-right.svg new file mode 100644 index 00000000..d69ec9fd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/caret-square-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/caret-square-up.svg b/doc/theme/material/.icons/fontawesome/solid/caret-square-up.svg new file mode 100644 index 00000000..005ea2c0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/caret-square-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/caret-up.svg b/doc/theme/material/.icons/fontawesome/solid/caret-up.svg new file mode 100644 index 00000000..b4c7e548 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/caret-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/carrot.svg b/doc/theme/material/.icons/fontawesome/solid/carrot.svg new file mode 100644 index 00000000..cedac22b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/carrot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/cart-arrow-down.svg b/doc/theme/material/.icons/fontawesome/solid/cart-arrow-down.svg new file mode 100644 index 00000000..69e39712 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/cart-arrow-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/cart-plus.svg b/doc/theme/material/.icons/fontawesome/solid/cart-plus.svg new file mode 100644 index 00000000..7f5ab7f5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/cart-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/cash-register.svg b/doc/theme/material/.icons/fontawesome/solid/cash-register.svg new file mode 100644 index 00000000..eaf65d9e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/cash-register.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/cat.svg b/doc/theme/material/.icons/fontawesome/solid/cat.svg new file mode 100644 index 00000000..486bbcc4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/cat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/certificate.svg b/doc/theme/material/.icons/fontawesome/solid/certificate.svg new file mode 100644 index 00000000..c57ab137 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/certificate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/chair.svg b/doc/theme/material/.icons/fontawesome/solid/chair.svg new file mode 100644 index 00000000..101e5d20 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/chair.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/chalkboard-teacher.svg b/doc/theme/material/.icons/fontawesome/solid/chalkboard-teacher.svg new file mode 100644 index 00000000..ce1d9dc5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/chalkboard-teacher.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/chalkboard.svg b/doc/theme/material/.icons/fontawesome/solid/chalkboard.svg new file mode 100644 index 00000000..6ec7e00d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/chalkboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/charging-station.svg b/doc/theme/material/.icons/fontawesome/solid/charging-station.svg new file mode 100644 index 00000000..2b0997f1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/charging-station.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/chart-area.svg b/doc/theme/material/.icons/fontawesome/solid/chart-area.svg new file mode 100644 index 00000000..47c88629 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/chart-area.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/chart-bar.svg b/doc/theme/material/.icons/fontawesome/solid/chart-bar.svg new file mode 100644 index 00000000..e08c6f7c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/chart-bar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/chart-line.svg b/doc/theme/material/.icons/fontawesome/solid/chart-line.svg new file mode 100644 index 00000000..5a0e06fe --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/chart-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/chart-pie.svg b/doc/theme/material/.icons/fontawesome/solid/chart-pie.svg new file mode 100644 index 00000000..e1b476bd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/chart-pie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/check-circle.svg b/doc/theme/material/.icons/fontawesome/solid/check-circle.svg new file mode 100644 index 00000000..bdda551e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/check-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/check-double.svg b/doc/theme/material/.icons/fontawesome/solid/check-double.svg new file mode 100644 index 00000000..ecfd0823 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/check-double.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/check-square.svg b/doc/theme/material/.icons/fontawesome/solid/check-square.svg new file mode 100644 index 00000000..4ea6964a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/check-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/check.svg b/doc/theme/material/.icons/fontawesome/solid/check.svg new file mode 100644 index 00000000..2ec27cf8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/cheese.svg b/doc/theme/material/.icons/fontawesome/solid/cheese.svg new file mode 100644 index 00000000..f1856d50 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/cheese.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/chess-bishop.svg b/doc/theme/material/.icons/fontawesome/solid/chess-bishop.svg new file mode 100644 index 00000000..13cc8007 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/chess-bishop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/chess-board.svg b/doc/theme/material/.icons/fontawesome/solid/chess-board.svg new file mode 100644 index 00000000..8f30ead9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/chess-board.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/chess-king.svg b/doc/theme/material/.icons/fontawesome/solid/chess-king.svg new file mode 100644 index 00000000..22165b87 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/chess-king.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/chess-knight.svg b/doc/theme/material/.icons/fontawesome/solid/chess-knight.svg new file mode 100644 index 00000000..4f50d227 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/chess-knight.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/chess-pawn.svg b/doc/theme/material/.icons/fontawesome/solid/chess-pawn.svg new file mode 100644 index 00000000..5c4bdeae --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/chess-pawn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/chess-queen.svg b/doc/theme/material/.icons/fontawesome/solid/chess-queen.svg new file mode 100644 index 00000000..70162231 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/chess-queen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/chess-rook.svg b/doc/theme/material/.icons/fontawesome/solid/chess-rook.svg new file mode 100644 index 00000000..248f5126 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/chess-rook.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/chess.svg b/doc/theme/material/.icons/fontawesome/solid/chess.svg new file mode 100644 index 00000000..ca77f3e5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/chess.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/chevron-circle-down.svg b/doc/theme/material/.icons/fontawesome/solid/chevron-circle-down.svg new file mode 100644 index 00000000..4be7cea6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/chevron-circle-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/chevron-circle-left.svg b/doc/theme/material/.icons/fontawesome/solid/chevron-circle-left.svg new file mode 100644 index 00000000..60b5ac6e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/chevron-circle-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/chevron-circle-right.svg b/doc/theme/material/.icons/fontawesome/solid/chevron-circle-right.svg new file mode 100644 index 00000000..93350ee7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/chevron-circle-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/chevron-circle-up.svg b/doc/theme/material/.icons/fontawesome/solid/chevron-circle-up.svg new file mode 100644 index 00000000..d973a5df --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/chevron-circle-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/chevron-down.svg b/doc/theme/material/.icons/fontawesome/solid/chevron-down.svg new file mode 100644 index 00000000..5962e893 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/chevron-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/chevron-left.svg b/doc/theme/material/.icons/fontawesome/solid/chevron-left.svg new file mode 100644 index 00000000..c2dcbcca --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/chevron-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/chevron-right.svg b/doc/theme/material/.icons/fontawesome/solid/chevron-right.svg new file mode 100644 index 00000000..6d3e119b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/chevron-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/chevron-up.svg b/doc/theme/material/.icons/fontawesome/solid/chevron-up.svg new file mode 100644 index 00000000..a38c372a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/chevron-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/child.svg b/doc/theme/material/.icons/fontawesome/solid/child.svg new file mode 100644 index 00000000..8bbc718b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/child.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/church.svg b/doc/theme/material/.icons/fontawesome/solid/church.svg new file mode 100644 index 00000000..a9e57d50 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/church.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/circle-notch.svg b/doc/theme/material/.icons/fontawesome/solid/circle-notch.svg new file mode 100644 index 00000000..3cc8c0b5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/circle-notch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/circle.svg b/doc/theme/material/.icons/fontawesome/solid/circle.svg new file mode 100644 index 00000000..c2db0b25 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/city.svg b/doc/theme/material/.icons/fontawesome/solid/city.svg new file mode 100644 index 00000000..a27d3116 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/city.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/clinic-medical.svg b/doc/theme/material/.icons/fontawesome/solid/clinic-medical.svg new file mode 100644 index 00000000..fc72d08c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/clinic-medical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/clipboard-check.svg b/doc/theme/material/.icons/fontawesome/solid/clipboard-check.svg new file mode 100644 index 00000000..3cdd41e9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/clipboard-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/clipboard-list.svg b/doc/theme/material/.icons/fontawesome/solid/clipboard-list.svg new file mode 100644 index 00000000..f8421f08 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/clipboard-list.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/clipboard.svg b/doc/theme/material/.icons/fontawesome/solid/clipboard.svg new file mode 100644 index 00000000..103d885f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/clipboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/clock.svg b/doc/theme/material/.icons/fontawesome/solid/clock.svg new file mode 100644 index 00000000..43b47bf2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/clock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/clone.svg b/doc/theme/material/.icons/fontawesome/solid/clone.svg new file mode 100644 index 00000000..0f40db07 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/clone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/closed-captioning.svg b/doc/theme/material/.icons/fontawesome/solid/closed-captioning.svg new file mode 100644 index 00000000..f0c68d04 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/closed-captioning.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/cloud-download-alt.svg b/doc/theme/material/.icons/fontawesome/solid/cloud-download-alt.svg new file mode 100644 index 00000000..3cd62ac2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/cloud-download-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/cloud-meatball.svg b/doc/theme/material/.icons/fontawesome/solid/cloud-meatball.svg new file mode 100644 index 00000000..fe0a3a98 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/cloud-meatball.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/cloud-moon-rain.svg b/doc/theme/material/.icons/fontawesome/solid/cloud-moon-rain.svg new file mode 100644 index 00000000..dc164ec4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/cloud-moon-rain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/cloud-moon.svg b/doc/theme/material/.icons/fontawesome/solid/cloud-moon.svg new file mode 100644 index 00000000..2caccfb1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/cloud-moon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/cloud-rain.svg b/doc/theme/material/.icons/fontawesome/solid/cloud-rain.svg new file mode 100644 index 00000000..766e9ae9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/cloud-rain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/cloud-showers-heavy.svg b/doc/theme/material/.icons/fontawesome/solid/cloud-showers-heavy.svg new file mode 100644 index 00000000..9b6d5b6a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/cloud-showers-heavy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/cloud-sun-rain.svg b/doc/theme/material/.icons/fontawesome/solid/cloud-sun-rain.svg new file mode 100644 index 00000000..eedd183b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/cloud-sun-rain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/cloud-sun.svg b/doc/theme/material/.icons/fontawesome/solid/cloud-sun.svg new file mode 100644 index 00000000..e4afd9ff --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/cloud-sun.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/cloud-upload-alt.svg b/doc/theme/material/.icons/fontawesome/solid/cloud-upload-alt.svg new file mode 100644 index 00000000..8cf98e90 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/cloud-upload-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/cloud.svg b/doc/theme/material/.icons/fontawesome/solid/cloud.svg new file mode 100644 index 00000000..38d2dc53 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/cloud.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/cocktail.svg b/doc/theme/material/.icons/fontawesome/solid/cocktail.svg new file mode 100644 index 00000000..b630000b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/cocktail.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/code-branch.svg b/doc/theme/material/.icons/fontawesome/solid/code-branch.svg new file mode 100644 index 00000000..0f33c5c5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/code-branch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/code.svg b/doc/theme/material/.icons/fontawesome/solid/code.svg new file mode 100644 index 00000000..ea8da707 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/coffee.svg b/doc/theme/material/.icons/fontawesome/solid/coffee.svg new file mode 100644 index 00000000..af4c0247 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/coffee.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/cog.svg b/doc/theme/material/.icons/fontawesome/solid/cog.svg new file mode 100644 index 00000000..fb5bd35a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/cog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/cogs.svg b/doc/theme/material/.icons/fontawesome/solid/cogs.svg new file mode 100644 index 00000000..c016886e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/cogs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/coins.svg b/doc/theme/material/.icons/fontawesome/solid/coins.svg new file mode 100644 index 00000000..511b0331 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/coins.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/columns.svg b/doc/theme/material/.icons/fontawesome/solid/columns.svg new file mode 100644 index 00000000..84ec2a09 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/columns.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/comment-alt.svg b/doc/theme/material/.icons/fontawesome/solid/comment-alt.svg new file mode 100644 index 00000000..5d81f790 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/comment-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/comment-dollar.svg b/doc/theme/material/.icons/fontawesome/solid/comment-dollar.svg new file mode 100644 index 00000000..5b2aaae4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/comment-dollar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/comment-dots.svg b/doc/theme/material/.icons/fontawesome/solid/comment-dots.svg new file mode 100644 index 00000000..5866e419 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/comment-dots.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/comment-medical.svg b/doc/theme/material/.icons/fontawesome/solid/comment-medical.svg new file mode 100644 index 00000000..6f8a3fdc --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/comment-medical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/comment-slash.svg b/doc/theme/material/.icons/fontawesome/solid/comment-slash.svg new file mode 100644 index 00000000..b4b826fb --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/comment-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/comment.svg b/doc/theme/material/.icons/fontawesome/solid/comment.svg new file mode 100644 index 00000000..f6332836 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/comment.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/comments-dollar.svg b/doc/theme/material/.icons/fontawesome/solid/comments-dollar.svg new file mode 100644 index 00000000..1e1d7c9a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/comments-dollar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/comments.svg b/doc/theme/material/.icons/fontawesome/solid/comments.svg new file mode 100644 index 00000000..2ea7897c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/comments.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/compact-disc.svg b/doc/theme/material/.icons/fontawesome/solid/compact-disc.svg new file mode 100644 index 00000000..7a583fce --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/compact-disc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/compass.svg b/doc/theme/material/.icons/fontawesome/solid/compass.svg new file mode 100644 index 00000000..68006585 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/compass.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/compress-alt.svg b/doc/theme/material/.icons/fontawesome/solid/compress-alt.svg new file mode 100644 index 00000000..cdb15369 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/compress-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/compress-arrows-alt.svg b/doc/theme/material/.icons/fontawesome/solid/compress-arrows-alt.svg new file mode 100644 index 00000000..c06ee8f8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/compress-arrows-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/compress.svg b/doc/theme/material/.icons/fontawesome/solid/compress.svg new file mode 100644 index 00000000..f2faafbf --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/compress.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/concierge-bell.svg b/doc/theme/material/.icons/fontawesome/solid/concierge-bell.svg new file mode 100644 index 00000000..91d12a63 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/concierge-bell.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/cookie-bite.svg b/doc/theme/material/.icons/fontawesome/solid/cookie-bite.svg new file mode 100644 index 00000000..5fa2c8d4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/cookie-bite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/cookie.svg b/doc/theme/material/.icons/fontawesome/solid/cookie.svg new file mode 100644 index 00000000..6f26bdc3 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/cookie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/copy.svg b/doc/theme/material/.icons/fontawesome/solid/copy.svg new file mode 100644 index 00000000..dffe43e7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/copy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/copyright.svg b/doc/theme/material/.icons/fontawesome/solid/copyright.svg new file mode 100644 index 00000000..36d7b91c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/copyright.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/couch.svg b/doc/theme/material/.icons/fontawesome/solid/couch.svg new file mode 100644 index 00000000..ba8c3ffb --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/couch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/credit-card.svg b/doc/theme/material/.icons/fontawesome/solid/credit-card.svg new file mode 100644 index 00000000..676d3586 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/credit-card.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/crop-alt.svg b/doc/theme/material/.icons/fontawesome/solid/crop-alt.svg new file mode 100644 index 00000000..aa7438eb --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/crop-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/crop.svg b/doc/theme/material/.icons/fontawesome/solid/crop.svg new file mode 100644 index 00000000..5bd06a92 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/crop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/cross.svg b/doc/theme/material/.icons/fontawesome/solid/cross.svg new file mode 100644 index 00000000..86113de5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/cross.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/crosshairs.svg b/doc/theme/material/.icons/fontawesome/solid/crosshairs.svg new file mode 100644 index 00000000..60acd3e2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/crosshairs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/crow.svg b/doc/theme/material/.icons/fontawesome/solid/crow.svg new file mode 100644 index 00000000..e982936a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/crow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/crown.svg b/doc/theme/material/.icons/fontawesome/solid/crown.svg new file mode 100644 index 00000000..03b1f191 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/crown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/crutch.svg b/doc/theme/material/.icons/fontawesome/solid/crutch.svg new file mode 100644 index 00000000..cc081dd4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/crutch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/cube.svg b/doc/theme/material/.icons/fontawesome/solid/cube.svg new file mode 100644 index 00000000..a627fd54 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/cube.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/cubes.svg b/doc/theme/material/.icons/fontawesome/solid/cubes.svg new file mode 100644 index 00000000..208f688a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/cubes.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/cut.svg b/doc/theme/material/.icons/fontawesome/solid/cut.svg new file mode 100644 index 00000000..4f626aa0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/cut.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/database.svg b/doc/theme/material/.icons/fontawesome/solid/database.svg new file mode 100644 index 00000000..a6e4982b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/database.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/deaf.svg b/doc/theme/material/.icons/fontawesome/solid/deaf.svg new file mode 100644 index 00000000..25a7a86e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/deaf.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/democrat.svg b/doc/theme/material/.icons/fontawesome/solid/democrat.svg new file mode 100644 index 00000000..5cde060f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/democrat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/desktop.svg b/doc/theme/material/.icons/fontawesome/solid/desktop.svg new file mode 100644 index 00000000..bba157e8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/desktop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/dharmachakra.svg b/doc/theme/material/.icons/fontawesome/solid/dharmachakra.svg new file mode 100644 index 00000000..6838379b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/dharmachakra.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/diagnoses.svg b/doc/theme/material/.icons/fontawesome/solid/diagnoses.svg new file mode 100644 index 00000000..8f56e24c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/diagnoses.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/dice-d20.svg b/doc/theme/material/.icons/fontawesome/solid/dice-d20.svg new file mode 100644 index 00000000..085e3f0d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/dice-d20.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/dice-d6.svg b/doc/theme/material/.icons/fontawesome/solid/dice-d6.svg new file mode 100644 index 00000000..b1d270a0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/dice-d6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/dice-five.svg b/doc/theme/material/.icons/fontawesome/solid/dice-five.svg new file mode 100644 index 00000000..7fd8c1d2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/dice-five.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/dice-four.svg b/doc/theme/material/.icons/fontawesome/solid/dice-four.svg new file mode 100644 index 00000000..9cd681bd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/dice-four.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/dice-one.svg b/doc/theme/material/.icons/fontawesome/solid/dice-one.svg new file mode 100644 index 00000000..e5d3b5e1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/dice-one.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/dice-six.svg b/doc/theme/material/.icons/fontawesome/solid/dice-six.svg new file mode 100644 index 00000000..c1ed7cfc --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/dice-six.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/dice-three.svg b/doc/theme/material/.icons/fontawesome/solid/dice-three.svg new file mode 100644 index 00000000..c035c804 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/dice-three.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/dice-two.svg b/doc/theme/material/.icons/fontawesome/solid/dice-two.svg new file mode 100644 index 00000000..d6528d79 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/dice-two.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/dice.svg b/doc/theme/material/.icons/fontawesome/solid/dice.svg new file mode 100644 index 00000000..da8a8123 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/dice.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/digital-tachograph.svg b/doc/theme/material/.icons/fontawesome/solid/digital-tachograph.svg new file mode 100644 index 00000000..65f4a028 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/digital-tachograph.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/directions.svg b/doc/theme/material/.icons/fontawesome/solid/directions.svg new file mode 100644 index 00000000..aa23106e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/directions.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/disease.svg b/doc/theme/material/.icons/fontawesome/solid/disease.svg new file mode 100644 index 00000000..dd01d417 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/disease.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/divide.svg b/doc/theme/material/.icons/fontawesome/solid/divide.svg new file mode 100644 index 00000000..cb6d8b6f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/divide.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/dizzy.svg b/doc/theme/material/.icons/fontawesome/solid/dizzy.svg new file mode 100644 index 00000000..d1b52469 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/dizzy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/dna.svg b/doc/theme/material/.icons/fontawesome/solid/dna.svg new file mode 100644 index 00000000..81cddb6a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/dna.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/dog.svg b/doc/theme/material/.icons/fontawesome/solid/dog.svg new file mode 100644 index 00000000..1db54342 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/dog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/dollar-sign.svg b/doc/theme/material/.icons/fontawesome/solid/dollar-sign.svg new file mode 100644 index 00000000..23cf6910 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/dollar-sign.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/dolly-flatbed.svg b/doc/theme/material/.icons/fontawesome/solid/dolly-flatbed.svg new file mode 100644 index 00000000..bb20bdeb --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/dolly-flatbed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/dolly.svg b/doc/theme/material/.icons/fontawesome/solid/dolly.svg new file mode 100644 index 00000000..0fe3a517 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/dolly.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/donate.svg b/doc/theme/material/.icons/fontawesome/solid/donate.svg new file mode 100644 index 00000000..bacf83e6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/donate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/door-closed.svg b/doc/theme/material/.icons/fontawesome/solid/door-closed.svg new file mode 100644 index 00000000..00add341 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/door-closed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/door-open.svg b/doc/theme/material/.icons/fontawesome/solid/door-open.svg new file mode 100644 index 00000000..e246f1fb --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/door-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/dot-circle.svg b/doc/theme/material/.icons/fontawesome/solid/dot-circle.svg new file mode 100644 index 00000000..5cb222dd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/dot-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/dove.svg b/doc/theme/material/.icons/fontawesome/solid/dove.svg new file mode 100644 index 00000000..86139028 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/dove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/download.svg b/doc/theme/material/.icons/fontawesome/solid/download.svg new file mode 100644 index 00000000..da5eec40 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/drafting-compass.svg b/doc/theme/material/.icons/fontawesome/solid/drafting-compass.svg new file mode 100644 index 00000000..c2834adb --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/drafting-compass.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/dragon.svg b/doc/theme/material/.icons/fontawesome/solid/dragon.svg new file mode 100644 index 00000000..a9480403 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/dragon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/draw-polygon.svg b/doc/theme/material/.icons/fontawesome/solid/draw-polygon.svg new file mode 100644 index 00000000..0a9c61b7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/draw-polygon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/drum-steelpan.svg b/doc/theme/material/.icons/fontawesome/solid/drum-steelpan.svg new file mode 100644 index 00000000..c4b12b48 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/drum-steelpan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/drum.svg b/doc/theme/material/.icons/fontawesome/solid/drum.svg new file mode 100644 index 00000000..dbc7b6d6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/drum.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/drumstick-bite.svg b/doc/theme/material/.icons/fontawesome/solid/drumstick-bite.svg new file mode 100644 index 00000000..13678858 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/drumstick-bite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/dumbbell.svg b/doc/theme/material/.icons/fontawesome/solid/dumbbell.svg new file mode 100644 index 00000000..2fe16673 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/dumbbell.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/dumpster-fire.svg b/doc/theme/material/.icons/fontawesome/solid/dumpster-fire.svg new file mode 100644 index 00000000..9bd654f4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/dumpster-fire.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/dumpster.svg b/doc/theme/material/.icons/fontawesome/solid/dumpster.svg new file mode 100644 index 00000000..74cdd3f9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/dumpster.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/dungeon.svg b/doc/theme/material/.icons/fontawesome/solid/dungeon.svg new file mode 100644 index 00000000..48d55329 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/dungeon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/edit.svg b/doc/theme/material/.icons/fontawesome/solid/edit.svg new file mode 100644 index 00000000..2313feb1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/egg.svg b/doc/theme/material/.icons/fontawesome/solid/egg.svg new file mode 100644 index 00000000..804ac67c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/egg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/eject.svg b/doc/theme/material/.icons/fontawesome/solid/eject.svg new file mode 100644 index 00000000..d240b0d1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/eject.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/ellipsis-h.svg b/doc/theme/material/.icons/fontawesome/solid/ellipsis-h.svg new file mode 100644 index 00000000..70748ad9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/ellipsis-h.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/ellipsis-v.svg b/doc/theme/material/.icons/fontawesome/solid/ellipsis-v.svg new file mode 100644 index 00000000..e8e713ad --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/ellipsis-v.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/envelope-open-text.svg b/doc/theme/material/.icons/fontawesome/solid/envelope-open-text.svg new file mode 100644 index 00000000..61ecfa31 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/envelope-open-text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/envelope-open.svg b/doc/theme/material/.icons/fontawesome/solid/envelope-open.svg new file mode 100644 index 00000000..faed6805 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/envelope-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/envelope-square.svg b/doc/theme/material/.icons/fontawesome/solid/envelope-square.svg new file mode 100644 index 00000000..c35055f9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/envelope-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/envelope.svg b/doc/theme/material/.icons/fontawesome/solid/envelope.svg new file mode 100644 index 00000000..edbcad3d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/envelope.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/equals.svg b/doc/theme/material/.icons/fontawesome/solid/equals.svg new file mode 100644 index 00000000..9dcbfdb5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/equals.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/eraser.svg b/doc/theme/material/.icons/fontawesome/solid/eraser.svg new file mode 100644 index 00000000..4c6a0465 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/eraser.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/ethernet.svg b/doc/theme/material/.icons/fontawesome/solid/ethernet.svg new file mode 100644 index 00000000..2b391a39 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/ethernet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/euro-sign.svg b/doc/theme/material/.icons/fontawesome/solid/euro-sign.svg new file mode 100644 index 00000000..8e502588 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/euro-sign.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/exchange-alt.svg b/doc/theme/material/.icons/fontawesome/solid/exchange-alt.svg new file mode 100644 index 00000000..b22538a9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/exchange-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/exclamation-circle.svg b/doc/theme/material/.icons/fontawesome/solid/exclamation-circle.svg new file mode 100644 index 00000000..16593039 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/exclamation-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/exclamation-triangle.svg b/doc/theme/material/.icons/fontawesome/solid/exclamation-triangle.svg new file mode 100644 index 00000000..2ab53271 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/exclamation-triangle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/exclamation.svg b/doc/theme/material/.icons/fontawesome/solid/exclamation.svg new file mode 100644 index 00000000..89ef11a7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/exclamation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/expand-alt.svg b/doc/theme/material/.icons/fontawesome/solid/expand-alt.svg new file mode 100644 index 00000000..05eb2593 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/expand-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/expand-arrows-alt.svg b/doc/theme/material/.icons/fontawesome/solid/expand-arrows-alt.svg new file mode 100644 index 00000000..ce405a12 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/expand-arrows-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/expand.svg b/doc/theme/material/.icons/fontawesome/solid/expand.svg new file mode 100644 index 00000000..e8f812d4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/expand.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/external-link-alt.svg b/doc/theme/material/.icons/fontawesome/solid/external-link-alt.svg new file mode 100644 index 00000000..0132297c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/external-link-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/external-link-square-alt.svg b/doc/theme/material/.icons/fontawesome/solid/external-link-square-alt.svg new file mode 100644 index 00000000..099977be --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/external-link-square-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/eye-dropper.svg b/doc/theme/material/.icons/fontawesome/solid/eye-dropper.svg new file mode 100644 index 00000000..51c3453a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/eye-dropper.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/eye-slash.svg b/doc/theme/material/.icons/fontawesome/solid/eye-slash.svg new file mode 100644 index 00000000..d2898a17 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/eye-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/eye.svg b/doc/theme/material/.icons/fontawesome/solid/eye.svg new file mode 100644 index 00000000..3f000f15 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/eye.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/fan.svg b/doc/theme/material/.icons/fontawesome/solid/fan.svg new file mode 100644 index 00000000..dd50af56 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/fan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/fast-backward.svg b/doc/theme/material/.icons/fontawesome/solid/fast-backward.svg new file mode 100644 index 00000000..dfe10e5c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/fast-backward.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/fast-forward.svg b/doc/theme/material/.icons/fontawesome/solid/fast-forward.svg new file mode 100644 index 00000000..57c072ae --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/fast-forward.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/faucet.svg b/doc/theme/material/.icons/fontawesome/solid/faucet.svg new file mode 100644 index 00000000..f1a9b7ce --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/faucet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/fax.svg b/doc/theme/material/.icons/fontawesome/solid/fax.svg new file mode 100644 index 00000000..acb5db64 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/fax.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/feather-alt.svg b/doc/theme/material/.icons/fontawesome/solid/feather-alt.svg new file mode 100644 index 00000000..a04ebbd1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/feather-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/feather.svg b/doc/theme/material/.icons/fontawesome/solid/feather.svg new file mode 100644 index 00000000..bbdb9342 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/feather.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/female.svg b/doc/theme/material/.icons/fontawesome/solid/female.svg new file mode 100644 index 00000000..c20b5dd3 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/female.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/fighter-jet.svg b/doc/theme/material/.icons/fontawesome/solid/fighter-jet.svg new file mode 100644 index 00000000..3fdfe2d8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/fighter-jet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/file-alt.svg b/doc/theme/material/.icons/fontawesome/solid/file-alt.svg new file mode 100644 index 00000000..e1f980c8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/file-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/file-archive.svg b/doc/theme/material/.icons/fontawesome/solid/file-archive.svg new file mode 100644 index 00000000..7c60e72c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/file-archive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/file-audio.svg b/doc/theme/material/.icons/fontawesome/solid/file-audio.svg new file mode 100644 index 00000000..c491a45a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/file-audio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/file-code.svg b/doc/theme/material/.icons/fontawesome/solid/file-code.svg new file mode 100644 index 00000000..65c4779d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/file-code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/file-contract.svg b/doc/theme/material/.icons/fontawesome/solid/file-contract.svg new file mode 100644 index 00000000..0a023feb --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/file-contract.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/file-csv.svg b/doc/theme/material/.icons/fontawesome/solid/file-csv.svg new file mode 100644 index 00000000..7b0d2736 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/file-csv.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/file-download.svg b/doc/theme/material/.icons/fontawesome/solid/file-download.svg new file mode 100644 index 00000000..b0dfa46e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/file-download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/file-excel.svg b/doc/theme/material/.icons/fontawesome/solid/file-excel.svg new file mode 100644 index 00000000..62cec9dd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/file-excel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/file-export.svg b/doc/theme/material/.icons/fontawesome/solid/file-export.svg new file mode 100644 index 00000000..1590d5de --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/file-export.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/file-image.svg b/doc/theme/material/.icons/fontawesome/solid/file-image.svg new file mode 100644 index 00000000..ad19e312 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/file-image.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/file-import.svg b/doc/theme/material/.icons/fontawesome/solid/file-import.svg new file mode 100644 index 00000000..a89e8eaf --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/file-import.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/file-invoice-dollar.svg b/doc/theme/material/.icons/fontawesome/solid/file-invoice-dollar.svg new file mode 100644 index 00000000..39184ce7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/file-invoice-dollar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/file-invoice.svg b/doc/theme/material/.icons/fontawesome/solid/file-invoice.svg new file mode 100644 index 00000000..5f5b2419 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/file-invoice.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/file-medical-alt.svg b/doc/theme/material/.icons/fontawesome/solid/file-medical-alt.svg new file mode 100644 index 00000000..0c0699c3 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/file-medical-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/file-medical.svg b/doc/theme/material/.icons/fontawesome/solid/file-medical.svg new file mode 100644 index 00000000..748bf58f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/file-medical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/file-pdf.svg b/doc/theme/material/.icons/fontawesome/solid/file-pdf.svg new file mode 100644 index 00000000..9782667d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/file-pdf.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/file-powerpoint.svg b/doc/theme/material/.icons/fontawesome/solid/file-powerpoint.svg new file mode 100644 index 00000000..bd26fb92 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/file-powerpoint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/file-prescription.svg b/doc/theme/material/.icons/fontawesome/solid/file-prescription.svg new file mode 100644 index 00000000..563292ba --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/file-prescription.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/file-signature.svg b/doc/theme/material/.icons/fontawesome/solid/file-signature.svg new file mode 100644 index 00000000..6b27b140 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/file-signature.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/file-upload.svg b/doc/theme/material/.icons/fontawesome/solid/file-upload.svg new file mode 100644 index 00000000..49b0a88d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/file-upload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/file-video.svg b/doc/theme/material/.icons/fontawesome/solid/file-video.svg new file mode 100644 index 00000000..b1001afd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/file-video.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/file-word.svg b/doc/theme/material/.icons/fontawesome/solid/file-word.svg new file mode 100644 index 00000000..f484a94c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/file-word.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/file.svg b/doc/theme/material/.icons/fontawesome/solid/file.svg new file mode 100644 index 00000000..7f495dce --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/file.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/fill-drip.svg b/doc/theme/material/.icons/fontawesome/solid/fill-drip.svg new file mode 100644 index 00000000..74346b5c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/fill-drip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/fill.svg b/doc/theme/material/.icons/fontawesome/solid/fill.svg new file mode 100644 index 00000000..b7bf4056 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/film.svg b/doc/theme/material/.icons/fontawesome/solid/film.svg new file mode 100644 index 00000000..f120aee2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/film.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/filter.svg b/doc/theme/material/.icons/fontawesome/solid/filter.svg new file mode 100644 index 00000000..95861a39 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/filter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/fingerprint.svg b/doc/theme/material/.icons/fontawesome/solid/fingerprint.svg new file mode 100644 index 00000000..3cd58417 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/fingerprint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/fire-alt.svg b/doc/theme/material/.icons/fontawesome/solid/fire-alt.svg new file mode 100644 index 00000000..d8766309 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/fire-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/fire-extinguisher.svg b/doc/theme/material/.icons/fontawesome/solid/fire-extinguisher.svg new file mode 100644 index 00000000..2bd87380 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/fire-extinguisher.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/fire.svg b/doc/theme/material/.icons/fontawesome/solid/fire.svg new file mode 100644 index 00000000..5ab3fa83 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/fire.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/first-aid.svg b/doc/theme/material/.icons/fontawesome/solid/first-aid.svg new file mode 100644 index 00000000..43fd5225 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/first-aid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/fish.svg b/doc/theme/material/.icons/fontawesome/solid/fish.svg new file mode 100644 index 00000000..8312ff5c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/fish.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/fist-raised.svg b/doc/theme/material/.icons/fontawesome/solid/fist-raised.svg new file mode 100644 index 00000000..26f32ec9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/fist-raised.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/flag-checkered.svg b/doc/theme/material/.icons/fontawesome/solid/flag-checkered.svg new file mode 100644 index 00000000..acb3406a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/flag-checkered.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/flag-usa.svg b/doc/theme/material/.icons/fontawesome/solid/flag-usa.svg new file mode 100644 index 00000000..7cb1a625 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/flag-usa.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/flag.svg b/doc/theme/material/.icons/fontawesome/solid/flag.svg new file mode 100644 index 00000000..f967752b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/flag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/flask.svg b/doc/theme/material/.icons/fontawesome/solid/flask.svg new file mode 100644 index 00000000..c30929ac --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/flask.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/flushed.svg b/doc/theme/material/.icons/fontawesome/solid/flushed.svg new file mode 100644 index 00000000..1e6e1c96 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/flushed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/folder-minus.svg b/doc/theme/material/.icons/fontawesome/solid/folder-minus.svg new file mode 100644 index 00000000..4e554e0d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/folder-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/folder-open.svg b/doc/theme/material/.icons/fontawesome/solid/folder-open.svg new file mode 100644 index 00000000..a6a92edd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/folder-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/folder-plus.svg b/doc/theme/material/.icons/fontawesome/solid/folder-plus.svg new file mode 100644 index 00000000..9efcea8f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/folder-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/folder.svg b/doc/theme/material/.icons/fontawesome/solid/folder.svg new file mode 100644 index 00000000..c9607689 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/folder.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/font-awesome-logo-full.svg b/doc/theme/material/.icons/fontawesome/solid/font-awesome-logo-full.svg new file mode 100644 index 00000000..06b75a4d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/font-awesome-logo-full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/font.svg b/doc/theme/material/.icons/fontawesome/solid/font.svg new file mode 100644 index 00000000..6745a095 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/font.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/football-ball.svg b/doc/theme/material/.icons/fontawesome/solid/football-ball.svg new file mode 100644 index 00000000..260c2914 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/football-ball.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/forward.svg b/doc/theme/material/.icons/fontawesome/solid/forward.svg new file mode 100644 index 00000000..5349d49f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/forward.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/frog.svg b/doc/theme/material/.icons/fontawesome/solid/frog.svg new file mode 100644 index 00000000..8c072de9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/frog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/frown-open.svg b/doc/theme/material/.icons/fontawesome/solid/frown-open.svg new file mode 100644 index 00000000..dac5ca2a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/frown-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/frown.svg b/doc/theme/material/.icons/fontawesome/solid/frown.svg new file mode 100644 index 00000000..8207b8dd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/frown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/funnel-dollar.svg b/doc/theme/material/.icons/fontawesome/solid/funnel-dollar.svg new file mode 100644 index 00000000..d5970e14 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/funnel-dollar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/futbol.svg b/doc/theme/material/.icons/fontawesome/solid/futbol.svg new file mode 100644 index 00000000..936fcad2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/futbol.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/gamepad.svg b/doc/theme/material/.icons/fontawesome/solid/gamepad.svg new file mode 100644 index 00000000..f39af0a4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/gamepad.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/gas-pump.svg b/doc/theme/material/.icons/fontawesome/solid/gas-pump.svg new file mode 100644 index 00000000..0a389954 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/gas-pump.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/gavel.svg b/doc/theme/material/.icons/fontawesome/solid/gavel.svg new file mode 100644 index 00000000..c68ac7c3 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/gavel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/gem.svg b/doc/theme/material/.icons/fontawesome/solid/gem.svg new file mode 100644 index 00000000..6172b871 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/gem.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/genderless.svg b/doc/theme/material/.icons/fontawesome/solid/genderless.svg new file mode 100644 index 00000000..9c928673 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/genderless.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/ghost.svg b/doc/theme/material/.icons/fontawesome/solid/ghost.svg new file mode 100644 index 00000000..91b24056 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/ghost.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/gift.svg b/doc/theme/material/.icons/fontawesome/solid/gift.svg new file mode 100644 index 00000000..d3c13490 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/gift.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/gifts.svg b/doc/theme/material/.icons/fontawesome/solid/gifts.svg new file mode 100644 index 00000000..e132b647 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/gifts.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/glass-cheers.svg b/doc/theme/material/.icons/fontawesome/solid/glass-cheers.svg new file mode 100644 index 00000000..0f8de5ab --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/glass-cheers.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/glass-martini-alt.svg b/doc/theme/material/.icons/fontawesome/solid/glass-martini-alt.svg new file mode 100644 index 00000000..dc4aa9c6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/glass-martini-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/glass-martini.svg b/doc/theme/material/.icons/fontawesome/solid/glass-martini.svg new file mode 100644 index 00000000..283c3c61 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/glass-martini.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/glass-whiskey.svg b/doc/theme/material/.icons/fontawesome/solid/glass-whiskey.svg new file mode 100644 index 00000000..27b29539 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/glass-whiskey.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/glasses.svg b/doc/theme/material/.icons/fontawesome/solid/glasses.svg new file mode 100644 index 00000000..51f3462e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/glasses.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/globe-africa.svg b/doc/theme/material/.icons/fontawesome/solid/globe-africa.svg new file mode 100644 index 00000000..0cf09fbd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/globe-africa.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/globe-americas.svg b/doc/theme/material/.icons/fontawesome/solid/globe-americas.svg new file mode 100644 index 00000000..121a1f98 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/globe-americas.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/globe-asia.svg b/doc/theme/material/.icons/fontawesome/solid/globe-asia.svg new file mode 100644 index 00000000..658160ef --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/globe-asia.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/globe-europe.svg b/doc/theme/material/.icons/fontawesome/solid/globe-europe.svg new file mode 100644 index 00000000..59823305 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/globe-europe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/globe.svg b/doc/theme/material/.icons/fontawesome/solid/globe.svg new file mode 100644 index 00000000..93b61784 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/globe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/golf-ball.svg b/doc/theme/material/.icons/fontawesome/solid/golf-ball.svg new file mode 100644 index 00000000..9e87e82a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/golf-ball.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/gopuram.svg b/doc/theme/material/.icons/fontawesome/solid/gopuram.svg new file mode 100644 index 00000000..efe3a7cc --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/gopuram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/graduation-cap.svg b/doc/theme/material/.icons/fontawesome/solid/graduation-cap.svg new file mode 100644 index 00000000..101c3315 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/graduation-cap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/greater-than-equal.svg b/doc/theme/material/.icons/fontawesome/solid/greater-than-equal.svg new file mode 100644 index 00000000..1c071f5d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/greater-than-equal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/greater-than.svg b/doc/theme/material/.icons/fontawesome/solid/greater-than.svg new file mode 100644 index 00000000..152a4bcc --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/greater-than.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/grimace.svg b/doc/theme/material/.icons/fontawesome/solid/grimace.svg new file mode 100644 index 00000000..dda0b7b7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/grimace.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/grin-alt.svg b/doc/theme/material/.icons/fontawesome/solid/grin-alt.svg new file mode 100644 index 00000000..c400d4db --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/grin-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/grin-beam-sweat.svg b/doc/theme/material/.icons/fontawesome/solid/grin-beam-sweat.svg new file mode 100644 index 00000000..1e109656 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/grin-beam-sweat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/grin-beam.svg b/doc/theme/material/.icons/fontawesome/solid/grin-beam.svg new file mode 100644 index 00000000..cfde54a9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/grin-beam.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/grin-hearts.svg b/doc/theme/material/.icons/fontawesome/solid/grin-hearts.svg new file mode 100644 index 00000000..eae2d18c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/grin-hearts.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/grin-squint-tears.svg b/doc/theme/material/.icons/fontawesome/solid/grin-squint-tears.svg new file mode 100644 index 00000000..39073b7d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/grin-squint-tears.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/grin-squint.svg b/doc/theme/material/.icons/fontawesome/solid/grin-squint.svg new file mode 100644 index 00000000..de54800c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/grin-squint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/grin-stars.svg b/doc/theme/material/.icons/fontawesome/solid/grin-stars.svg new file mode 100644 index 00000000..a6432aab --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/grin-stars.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/grin-tears.svg b/doc/theme/material/.icons/fontawesome/solid/grin-tears.svg new file mode 100644 index 00000000..1413617a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/grin-tears.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/grin-tongue-squint.svg b/doc/theme/material/.icons/fontawesome/solid/grin-tongue-squint.svg new file mode 100644 index 00000000..c903494b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/grin-tongue-squint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/grin-tongue-wink.svg b/doc/theme/material/.icons/fontawesome/solid/grin-tongue-wink.svg new file mode 100644 index 00000000..49beb845 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/grin-tongue-wink.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/grin-tongue.svg b/doc/theme/material/.icons/fontawesome/solid/grin-tongue.svg new file mode 100644 index 00000000..6aff145f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/grin-tongue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/grin-wink.svg b/doc/theme/material/.icons/fontawesome/solid/grin-wink.svg new file mode 100644 index 00000000..4c8ed97b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/grin-wink.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/grin.svg b/doc/theme/material/.icons/fontawesome/solid/grin.svg new file mode 100644 index 00000000..4ba985a0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/grin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/grip-horizontal.svg b/doc/theme/material/.icons/fontawesome/solid/grip-horizontal.svg new file mode 100644 index 00000000..bb19ff31 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/grip-horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/grip-lines-vertical.svg b/doc/theme/material/.icons/fontawesome/solid/grip-lines-vertical.svg new file mode 100644 index 00000000..92feba89 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/grip-lines-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/grip-lines.svg b/doc/theme/material/.icons/fontawesome/solid/grip-lines.svg new file mode 100644 index 00000000..6fb9ce7c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/grip-lines.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/grip-vertical.svg b/doc/theme/material/.icons/fontawesome/solid/grip-vertical.svg new file mode 100644 index 00000000..a383a433 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/grip-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/guitar.svg b/doc/theme/material/.icons/fontawesome/solid/guitar.svg new file mode 100644 index 00000000..2eb401df --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/guitar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/h-square.svg b/doc/theme/material/.icons/fontawesome/solid/h-square.svg new file mode 100644 index 00000000..0b85e285 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/h-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hamburger.svg b/doc/theme/material/.icons/fontawesome/solid/hamburger.svg new file mode 100644 index 00000000..e73c324c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hamburger.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hammer.svg b/doc/theme/material/.icons/fontawesome/solid/hammer.svg new file mode 100644 index 00000000..78df6b49 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hammer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hamsa.svg b/doc/theme/material/.icons/fontawesome/solid/hamsa.svg new file mode 100644 index 00000000..b38511ad --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hamsa.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hand-holding-heart.svg b/doc/theme/material/.icons/fontawesome/solid/hand-holding-heart.svg new file mode 100644 index 00000000..65ee45e7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hand-holding-heart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hand-holding-medical.svg b/doc/theme/material/.icons/fontawesome/solid/hand-holding-medical.svg new file mode 100644 index 00000000..4af4748a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hand-holding-medical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hand-holding-usd.svg b/doc/theme/material/.icons/fontawesome/solid/hand-holding-usd.svg new file mode 100644 index 00000000..2bd108e6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hand-holding-usd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hand-holding-water.svg b/doc/theme/material/.icons/fontawesome/solid/hand-holding-water.svg new file mode 100644 index 00000000..36c5c92a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hand-holding-water.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hand-holding.svg b/doc/theme/material/.icons/fontawesome/solid/hand-holding.svg new file mode 100644 index 00000000..1328cfd2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hand-holding.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hand-lizard.svg b/doc/theme/material/.icons/fontawesome/solid/hand-lizard.svg new file mode 100644 index 00000000..7258eda1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hand-lizard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hand-middle-finger.svg b/doc/theme/material/.icons/fontawesome/solid/hand-middle-finger.svg new file mode 100644 index 00000000..52c9b435 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hand-middle-finger.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hand-paper.svg b/doc/theme/material/.icons/fontawesome/solid/hand-paper.svg new file mode 100644 index 00000000..af3ee7ad --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hand-paper.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hand-peace.svg b/doc/theme/material/.icons/fontawesome/solid/hand-peace.svg new file mode 100644 index 00000000..3fcdaad9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hand-peace.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hand-point-down.svg b/doc/theme/material/.icons/fontawesome/solid/hand-point-down.svg new file mode 100644 index 00000000..af8513f0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hand-point-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hand-point-left.svg b/doc/theme/material/.icons/fontawesome/solid/hand-point-left.svg new file mode 100644 index 00000000..5fa16c8d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hand-point-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hand-point-right.svg b/doc/theme/material/.icons/fontawesome/solid/hand-point-right.svg new file mode 100644 index 00000000..e3f50e12 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hand-point-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hand-point-up.svg b/doc/theme/material/.icons/fontawesome/solid/hand-point-up.svg new file mode 100644 index 00000000..8bf94b71 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hand-point-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hand-pointer.svg b/doc/theme/material/.icons/fontawesome/solid/hand-pointer.svg new file mode 100644 index 00000000..b4665d46 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hand-pointer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hand-rock.svg b/doc/theme/material/.icons/fontawesome/solid/hand-rock.svg new file mode 100644 index 00000000..ce1f6ea3 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hand-rock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hand-scissors.svg b/doc/theme/material/.icons/fontawesome/solid/hand-scissors.svg new file mode 100644 index 00000000..f0545580 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hand-scissors.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hand-sparkles.svg b/doc/theme/material/.icons/fontawesome/solid/hand-sparkles.svg new file mode 100644 index 00000000..38ce6749 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hand-sparkles.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hand-spock.svg b/doc/theme/material/.icons/fontawesome/solid/hand-spock.svg new file mode 100644 index 00000000..b6e722bd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hand-spock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hands-helping.svg b/doc/theme/material/.icons/fontawesome/solid/hands-helping.svg new file mode 100644 index 00000000..162f45e9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hands-helping.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hands-wash.svg b/doc/theme/material/.icons/fontawesome/solid/hands-wash.svg new file mode 100644 index 00000000..14dd5228 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hands-wash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hands.svg b/doc/theme/material/.icons/fontawesome/solid/hands.svg new file mode 100644 index 00000000..5f0b02d9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hands.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/handshake-alt-slash.svg b/doc/theme/material/.icons/fontawesome/solid/handshake-alt-slash.svg new file mode 100644 index 00000000..c5f455ba --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/handshake-alt-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/handshake-slash.svg b/doc/theme/material/.icons/fontawesome/solid/handshake-slash.svg new file mode 100644 index 00000000..3685b8b5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/handshake-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/handshake.svg b/doc/theme/material/.icons/fontawesome/solid/handshake.svg new file mode 100644 index 00000000..bd5cf53e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/handshake.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hanukiah.svg b/doc/theme/material/.icons/fontawesome/solid/hanukiah.svg new file mode 100644 index 00000000..b431d6ae --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hanukiah.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hard-hat.svg b/doc/theme/material/.icons/fontawesome/solid/hard-hat.svg new file mode 100644 index 00000000..bcbaa1e9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hard-hat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hashtag.svg b/doc/theme/material/.icons/fontawesome/solid/hashtag.svg new file mode 100644 index 00000000..831f2659 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hashtag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hat-cowboy-side.svg b/doc/theme/material/.icons/fontawesome/solid/hat-cowboy-side.svg new file mode 100644 index 00000000..4f0f7a32 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hat-cowboy-side.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hat-cowboy.svg b/doc/theme/material/.icons/fontawesome/solid/hat-cowboy.svg new file mode 100644 index 00000000..764d3ce0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hat-cowboy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hat-wizard.svg b/doc/theme/material/.icons/fontawesome/solid/hat-wizard.svg new file mode 100644 index 00000000..a7e9f31e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hat-wizard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hdd.svg b/doc/theme/material/.icons/fontawesome/solid/hdd.svg new file mode 100644 index 00000000..b8d1672d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hdd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/head-side-cough-slash.svg b/doc/theme/material/.icons/fontawesome/solid/head-side-cough-slash.svg new file mode 100644 index 00000000..c7d943ce --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/head-side-cough-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/head-side-cough.svg b/doc/theme/material/.icons/fontawesome/solid/head-side-cough.svg new file mode 100644 index 00000000..006a1c35 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/head-side-cough.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/head-side-mask.svg b/doc/theme/material/.icons/fontawesome/solid/head-side-mask.svg new file mode 100644 index 00000000..a8f521ee --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/head-side-mask.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/head-side-virus.svg b/doc/theme/material/.icons/fontawesome/solid/head-side-virus.svg new file mode 100644 index 00000000..db6cf4f0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/head-side-virus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/heading.svg b/doc/theme/material/.icons/fontawesome/solid/heading.svg new file mode 100644 index 00000000..86c2f059 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/heading.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/headphones-alt.svg b/doc/theme/material/.icons/fontawesome/solid/headphones-alt.svg new file mode 100644 index 00000000..735dc8a7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/headphones-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/headphones.svg b/doc/theme/material/.icons/fontawesome/solid/headphones.svg new file mode 100644 index 00000000..013bac6f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/headphones.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/headset.svg b/doc/theme/material/.icons/fontawesome/solid/headset.svg new file mode 100644 index 00000000..e63e7fd2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/headset.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/heart-broken.svg b/doc/theme/material/.icons/fontawesome/solid/heart-broken.svg new file mode 100644 index 00000000..bcc6ccfc --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/heart-broken.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/heart.svg b/doc/theme/material/.icons/fontawesome/solid/heart.svg new file mode 100644 index 00000000..d9fa587d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/heart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/heartbeat.svg b/doc/theme/material/.icons/fontawesome/solid/heartbeat.svg new file mode 100644 index 00000000..fa2bb9b4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/heartbeat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/helicopter.svg b/doc/theme/material/.icons/fontawesome/solid/helicopter.svg new file mode 100644 index 00000000..3dd4f03e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/helicopter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/highlighter.svg b/doc/theme/material/.icons/fontawesome/solid/highlighter.svg new file mode 100644 index 00000000..ea4f67f6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/highlighter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hiking.svg b/doc/theme/material/.icons/fontawesome/solid/hiking.svg new file mode 100644 index 00000000..067d8bb6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hiking.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hippo.svg b/doc/theme/material/.icons/fontawesome/solid/hippo.svg new file mode 100644 index 00000000..e8c2a223 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hippo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/history.svg b/doc/theme/material/.icons/fontawesome/solid/history.svg new file mode 100644 index 00000000..8157c313 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/history.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hockey-puck.svg b/doc/theme/material/.icons/fontawesome/solid/hockey-puck.svg new file mode 100644 index 00000000..24a0a90d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hockey-puck.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/holly-berry.svg b/doc/theme/material/.icons/fontawesome/solid/holly-berry.svg new file mode 100644 index 00000000..71e156e5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/holly-berry.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/home.svg b/doc/theme/material/.icons/fontawesome/solid/home.svg new file mode 100644 index 00000000..0d0d49e4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/home.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/horse-head.svg b/doc/theme/material/.icons/fontawesome/solid/horse-head.svg new file mode 100644 index 00000000..98a804a9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/horse-head.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/horse.svg b/doc/theme/material/.icons/fontawesome/solid/horse.svg new file mode 100644 index 00000000..88892f5d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/horse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hospital-alt.svg b/doc/theme/material/.icons/fontawesome/solid/hospital-alt.svg new file mode 100644 index 00000000..5229e16c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hospital-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hospital-symbol.svg b/doc/theme/material/.icons/fontawesome/solid/hospital-symbol.svg new file mode 100644 index 00000000..9463a88d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hospital-symbol.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hospital-user.svg b/doc/theme/material/.icons/fontawesome/solid/hospital-user.svg new file mode 100644 index 00000000..2c21de96 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hospital-user.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hospital.svg b/doc/theme/material/.icons/fontawesome/solid/hospital.svg new file mode 100644 index 00000000..e670862f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hospital.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hot-tub.svg b/doc/theme/material/.icons/fontawesome/solid/hot-tub.svg new file mode 100644 index 00000000..402e0fde --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hot-tub.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hotdog.svg b/doc/theme/material/.icons/fontawesome/solid/hotdog.svg new file mode 100644 index 00000000..0d59d0e7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hotdog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hotel.svg b/doc/theme/material/.icons/fontawesome/solid/hotel.svg new file mode 100644 index 00000000..39a8e565 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hotel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hourglass-end.svg b/doc/theme/material/.icons/fontawesome/solid/hourglass-end.svg new file mode 100644 index 00000000..4773ce65 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hourglass-end.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hourglass-half.svg b/doc/theme/material/.icons/fontawesome/solid/hourglass-half.svg new file mode 100644 index 00000000..adf6f26d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hourglass-half.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hourglass-start.svg b/doc/theme/material/.icons/fontawesome/solid/hourglass-start.svg new file mode 100644 index 00000000..214b6c71 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hourglass-start.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hourglass.svg b/doc/theme/material/.icons/fontawesome/solid/hourglass.svg new file mode 100644 index 00000000..cd6052ce --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hourglass.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/house-damage.svg b/doc/theme/material/.icons/fontawesome/solid/house-damage.svg new file mode 100644 index 00000000..6a9deccd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/house-damage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/house-user.svg b/doc/theme/material/.icons/fontawesome/solid/house-user.svg new file mode 100644 index 00000000..b699d304 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/house-user.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/hryvnia.svg b/doc/theme/material/.icons/fontawesome/solid/hryvnia.svg new file mode 100644 index 00000000..d817adfa --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/hryvnia.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/i-cursor.svg b/doc/theme/material/.icons/fontawesome/solid/i-cursor.svg new file mode 100644 index 00000000..2367160d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/i-cursor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/ice-cream.svg b/doc/theme/material/.icons/fontawesome/solid/ice-cream.svg new file mode 100644 index 00000000..15085a96 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/ice-cream.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/icicles.svg b/doc/theme/material/.icons/fontawesome/solid/icicles.svg new file mode 100644 index 00000000..962982d5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/icicles.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/icons.svg b/doc/theme/material/.icons/fontawesome/solid/icons.svg new file mode 100644 index 00000000..f7ed59c6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/icons.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/id-badge.svg b/doc/theme/material/.icons/fontawesome/solid/id-badge.svg new file mode 100644 index 00000000..a5ce6e1d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/id-badge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/id-card-alt.svg b/doc/theme/material/.icons/fontawesome/solid/id-card-alt.svg new file mode 100644 index 00000000..0b21ac36 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/id-card-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/id-card.svg b/doc/theme/material/.icons/fontawesome/solid/id-card.svg new file mode 100644 index 00000000..b6be99cb --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/id-card.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/igloo.svg b/doc/theme/material/.icons/fontawesome/solid/igloo.svg new file mode 100644 index 00000000..e2d77d48 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/igloo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/image.svg b/doc/theme/material/.icons/fontawesome/solid/image.svg new file mode 100644 index 00000000..dbf552da --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/image.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/images.svg b/doc/theme/material/.icons/fontawesome/solid/images.svg new file mode 100644 index 00000000..efd28e2a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/images.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/inbox.svg b/doc/theme/material/.icons/fontawesome/solid/inbox.svg new file mode 100644 index 00000000..74e065ff --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/inbox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/indent.svg b/doc/theme/material/.icons/fontawesome/solid/indent.svg new file mode 100644 index 00000000..e99bac6b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/indent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/industry.svg b/doc/theme/material/.icons/fontawesome/solid/industry.svg new file mode 100644 index 00000000..c04e11ac --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/industry.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/infinity.svg b/doc/theme/material/.icons/fontawesome/solid/infinity.svg new file mode 100644 index 00000000..d8dd3984 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/infinity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/info-circle.svg b/doc/theme/material/.icons/fontawesome/solid/info-circle.svg new file mode 100644 index 00000000..a25c1632 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/info-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/info.svg b/doc/theme/material/.icons/fontawesome/solid/info.svg new file mode 100644 index 00000000..e6b9c3f6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/info.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/italic.svg b/doc/theme/material/.icons/fontawesome/solid/italic.svg new file mode 100644 index 00000000..d05e744f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/italic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/jedi.svg b/doc/theme/material/.icons/fontawesome/solid/jedi.svg new file mode 100644 index 00000000..020c30e2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/jedi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/joint.svg b/doc/theme/material/.icons/fontawesome/solid/joint.svg new file mode 100644 index 00000000..84cf5b91 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/joint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/journal-whills.svg b/doc/theme/material/.icons/fontawesome/solid/journal-whills.svg new file mode 100644 index 00000000..c9606a3d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/journal-whills.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/kaaba.svg b/doc/theme/material/.icons/fontawesome/solid/kaaba.svg new file mode 100644 index 00000000..1b0cb851 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/kaaba.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/key.svg b/doc/theme/material/.icons/fontawesome/solid/key.svg new file mode 100644 index 00000000..dbe72909 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/key.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/keyboard.svg b/doc/theme/material/.icons/fontawesome/solid/keyboard.svg new file mode 100644 index 00000000..12686637 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/keyboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/khanda.svg b/doc/theme/material/.icons/fontawesome/solid/khanda.svg new file mode 100644 index 00000000..76326371 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/khanda.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/kiss-beam.svg b/doc/theme/material/.icons/fontawesome/solid/kiss-beam.svg new file mode 100644 index 00000000..a2c3e501 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/kiss-beam.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/kiss-wink-heart.svg b/doc/theme/material/.icons/fontawesome/solid/kiss-wink-heart.svg new file mode 100644 index 00000000..de6ecee3 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/kiss-wink-heart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/kiss.svg b/doc/theme/material/.icons/fontawesome/solid/kiss.svg new file mode 100644 index 00000000..0f685244 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/kiss.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/kiwi-bird.svg b/doc/theme/material/.icons/fontawesome/solid/kiwi-bird.svg new file mode 100644 index 00000000..bbc7c9af --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/kiwi-bird.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/landmark.svg b/doc/theme/material/.icons/fontawesome/solid/landmark.svg new file mode 100644 index 00000000..90e5009b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/landmark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/language.svg b/doc/theme/material/.icons/fontawesome/solid/language.svg new file mode 100644 index 00000000..32108d8c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/language.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/laptop-code.svg b/doc/theme/material/.icons/fontawesome/solid/laptop-code.svg new file mode 100644 index 00000000..a607c0f2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/laptop-code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/laptop-house.svg b/doc/theme/material/.icons/fontawesome/solid/laptop-house.svg new file mode 100644 index 00000000..1f83435f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/laptop-house.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/laptop-medical.svg b/doc/theme/material/.icons/fontawesome/solid/laptop-medical.svg new file mode 100644 index 00000000..0cea89a6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/laptop-medical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/laptop.svg b/doc/theme/material/.icons/fontawesome/solid/laptop.svg new file mode 100644 index 00000000..b68aab38 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/laptop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/laugh-beam.svg b/doc/theme/material/.icons/fontawesome/solid/laugh-beam.svg new file mode 100644 index 00000000..9baa5495 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/laugh-beam.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/laugh-squint.svg b/doc/theme/material/.icons/fontawesome/solid/laugh-squint.svg new file mode 100644 index 00000000..20046e6d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/laugh-squint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/laugh-wink.svg b/doc/theme/material/.icons/fontawesome/solid/laugh-wink.svg new file mode 100644 index 00000000..1dffaa60 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/laugh-wink.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/laugh.svg b/doc/theme/material/.icons/fontawesome/solid/laugh.svg new file mode 100644 index 00000000..07d3111e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/laugh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/layer-group.svg b/doc/theme/material/.icons/fontawesome/solid/layer-group.svg new file mode 100644 index 00000000..ecbec29f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/layer-group.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/leaf.svg b/doc/theme/material/.icons/fontawesome/solid/leaf.svg new file mode 100644 index 00000000..f31abe1b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/leaf.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/lemon.svg b/doc/theme/material/.icons/fontawesome/solid/lemon.svg new file mode 100644 index 00000000..e8f98bd6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/lemon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/less-than-equal.svg b/doc/theme/material/.icons/fontawesome/solid/less-than-equal.svg new file mode 100644 index 00000000..7bbf5c08 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/less-than-equal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/less-than.svg b/doc/theme/material/.icons/fontawesome/solid/less-than.svg new file mode 100644 index 00000000..5a72828e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/less-than.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/level-down-alt.svg b/doc/theme/material/.icons/fontawesome/solid/level-down-alt.svg new file mode 100644 index 00000000..9cd52902 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/level-down-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/level-up-alt.svg b/doc/theme/material/.icons/fontawesome/solid/level-up-alt.svg new file mode 100644 index 00000000..ea28ce8e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/level-up-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/life-ring.svg b/doc/theme/material/.icons/fontawesome/solid/life-ring.svg new file mode 100644 index 00000000..02ca0243 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/life-ring.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/lightbulb.svg b/doc/theme/material/.icons/fontawesome/solid/lightbulb.svg new file mode 100644 index 00000000..08338ad4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/lightbulb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/link.svg b/doc/theme/material/.icons/fontawesome/solid/link.svg new file mode 100644 index 00000000..c61fc5ef --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/lira-sign.svg b/doc/theme/material/.icons/fontawesome/solid/lira-sign.svg new file mode 100644 index 00000000..00766604 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/lira-sign.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/list-alt.svg b/doc/theme/material/.icons/fontawesome/solid/list-alt.svg new file mode 100644 index 00000000..5e32557c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/list-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/list-ol.svg b/doc/theme/material/.icons/fontawesome/solid/list-ol.svg new file mode 100644 index 00000000..96185568 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/list-ol.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/list-ul.svg b/doc/theme/material/.icons/fontawesome/solid/list-ul.svg new file mode 100644 index 00000000..7fa661d1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/list-ul.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/list.svg b/doc/theme/material/.icons/fontawesome/solid/list.svg new file mode 100644 index 00000000..6345952a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/list.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/location-arrow.svg b/doc/theme/material/.icons/fontawesome/solid/location-arrow.svg new file mode 100644 index 00000000..853ee9c3 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/location-arrow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/lock-open.svg b/doc/theme/material/.icons/fontawesome/solid/lock-open.svg new file mode 100644 index 00000000..7f949963 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/lock-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/lock.svg b/doc/theme/material/.icons/fontawesome/solid/lock.svg new file mode 100644 index 00000000..7d0e70bd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/long-arrow-alt-down.svg b/doc/theme/material/.icons/fontawesome/solid/long-arrow-alt-down.svg new file mode 100644 index 00000000..75e69e79 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/long-arrow-alt-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/long-arrow-alt-left.svg b/doc/theme/material/.icons/fontawesome/solid/long-arrow-alt-left.svg new file mode 100644 index 00000000..b9e103b3 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/long-arrow-alt-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/long-arrow-alt-right.svg b/doc/theme/material/.icons/fontawesome/solid/long-arrow-alt-right.svg new file mode 100644 index 00000000..2f388d53 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/long-arrow-alt-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/long-arrow-alt-up.svg b/doc/theme/material/.icons/fontawesome/solid/long-arrow-alt-up.svg new file mode 100644 index 00000000..cdd5dcf7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/long-arrow-alt-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/low-vision.svg b/doc/theme/material/.icons/fontawesome/solid/low-vision.svg new file mode 100644 index 00000000..64fbc142 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/low-vision.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/luggage-cart.svg b/doc/theme/material/.icons/fontawesome/solid/luggage-cart.svg new file mode 100644 index 00000000..c8514212 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/luggage-cart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/lungs-virus.svg b/doc/theme/material/.icons/fontawesome/solid/lungs-virus.svg new file mode 100644 index 00000000..4a4c6803 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/lungs-virus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/lungs.svg b/doc/theme/material/.icons/fontawesome/solid/lungs.svg new file mode 100644 index 00000000..cfc26ca3 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/lungs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/magic.svg b/doc/theme/material/.icons/fontawesome/solid/magic.svg new file mode 100644 index 00000000..9ee277f1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/magic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/magnet.svg b/doc/theme/material/.icons/fontawesome/solid/magnet.svg new file mode 100644 index 00000000..16e44c4a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/magnet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/mail-bulk.svg b/doc/theme/material/.icons/fontawesome/solid/mail-bulk.svg new file mode 100644 index 00000000..38e5f5ae --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/mail-bulk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/male.svg b/doc/theme/material/.icons/fontawesome/solid/male.svg new file mode 100644 index 00000000..b41d026f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/male.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/map-marked-alt.svg b/doc/theme/material/.icons/fontawesome/solid/map-marked-alt.svg new file mode 100644 index 00000000..12cfe126 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/map-marked-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/map-marked.svg b/doc/theme/material/.icons/fontawesome/solid/map-marked.svg new file mode 100644 index 00000000..49181424 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/map-marked.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/map-marker-alt.svg b/doc/theme/material/.icons/fontawesome/solid/map-marker-alt.svg new file mode 100644 index 00000000..d3d94f03 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/map-marker-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/map-marker.svg b/doc/theme/material/.icons/fontawesome/solid/map-marker.svg new file mode 100644 index 00000000..c2047c7b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/map-marker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/map-pin.svg b/doc/theme/material/.icons/fontawesome/solid/map-pin.svg new file mode 100644 index 00000000..3d710733 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/map-pin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/map-signs.svg b/doc/theme/material/.icons/fontawesome/solid/map-signs.svg new file mode 100644 index 00000000..5f5b9b3d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/map-signs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/map.svg b/doc/theme/material/.icons/fontawesome/solid/map.svg new file mode 100644 index 00000000..4f9aaf20 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/map.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/marker.svg b/doc/theme/material/.icons/fontawesome/solid/marker.svg new file mode 100644 index 00000000..bde41659 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/marker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/mars-double.svg b/doc/theme/material/.icons/fontawesome/solid/mars-double.svg new file mode 100644 index 00000000..49a76e07 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/mars-double.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/mars-stroke-h.svg b/doc/theme/material/.icons/fontawesome/solid/mars-stroke-h.svg new file mode 100644 index 00000000..32ea3f52 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/mars-stroke-h.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/mars-stroke-v.svg b/doc/theme/material/.icons/fontawesome/solid/mars-stroke-v.svg new file mode 100644 index 00000000..e3c03aac --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/mars-stroke-v.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/mars-stroke.svg b/doc/theme/material/.icons/fontawesome/solid/mars-stroke.svg new file mode 100644 index 00000000..076d1e6d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/mars-stroke.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/mars.svg b/doc/theme/material/.icons/fontawesome/solid/mars.svg new file mode 100644 index 00000000..022f88d0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/mars.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/mask.svg b/doc/theme/material/.icons/fontawesome/solid/mask.svg new file mode 100644 index 00000000..d4067931 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/mask.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/medal.svg b/doc/theme/material/.icons/fontawesome/solid/medal.svg new file mode 100644 index 00000000..520c13db --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/medal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/medkit.svg b/doc/theme/material/.icons/fontawesome/solid/medkit.svg new file mode 100644 index 00000000..637d38e9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/medkit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/meh-blank.svg b/doc/theme/material/.icons/fontawesome/solid/meh-blank.svg new file mode 100644 index 00000000..e98e39bb --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/meh-blank.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/meh-rolling-eyes.svg b/doc/theme/material/.icons/fontawesome/solid/meh-rolling-eyes.svg new file mode 100644 index 00000000..06899405 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/meh-rolling-eyes.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/meh.svg b/doc/theme/material/.icons/fontawesome/solid/meh.svg new file mode 100644 index 00000000..198bebde --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/meh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/memory.svg b/doc/theme/material/.icons/fontawesome/solid/memory.svg new file mode 100644 index 00000000..1ae9bcd2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/memory.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/menorah.svg b/doc/theme/material/.icons/fontawesome/solid/menorah.svg new file mode 100644 index 00000000..a6f11b97 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/menorah.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/mercury.svg b/doc/theme/material/.icons/fontawesome/solid/mercury.svg new file mode 100644 index 00000000..a9304158 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/mercury.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/meteor.svg b/doc/theme/material/.icons/fontawesome/solid/meteor.svg new file mode 100644 index 00000000..5ba72916 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/meteor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/microchip.svg b/doc/theme/material/.icons/fontawesome/solid/microchip.svg new file mode 100644 index 00000000..49acc0e2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/microchip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/microphone-alt-slash.svg b/doc/theme/material/.icons/fontawesome/solid/microphone-alt-slash.svg new file mode 100644 index 00000000..59ad8b27 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/microphone-alt-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/microphone-alt.svg b/doc/theme/material/.icons/fontawesome/solid/microphone-alt.svg new file mode 100644 index 00000000..dd8f50f0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/microphone-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/microphone-slash.svg b/doc/theme/material/.icons/fontawesome/solid/microphone-slash.svg new file mode 100644 index 00000000..8d3badb7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/microphone-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/microphone.svg b/doc/theme/material/.icons/fontawesome/solid/microphone.svg new file mode 100644 index 00000000..194b4d31 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/microphone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/microscope.svg b/doc/theme/material/.icons/fontawesome/solid/microscope.svg new file mode 100644 index 00000000..ef714036 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/microscope.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/minus-circle.svg b/doc/theme/material/.icons/fontawesome/solid/minus-circle.svg new file mode 100644 index 00000000..efe6e46a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/minus-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/minus-square.svg b/doc/theme/material/.icons/fontawesome/solid/minus-square.svg new file mode 100644 index 00000000..27ebb01c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/minus-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/minus.svg b/doc/theme/material/.icons/fontawesome/solid/minus.svg new file mode 100644 index 00000000..ac83426d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/mitten.svg b/doc/theme/material/.icons/fontawesome/solid/mitten.svg new file mode 100644 index 00000000..a4dca754 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/mitten.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/mobile-alt.svg b/doc/theme/material/.icons/fontawesome/solid/mobile-alt.svg new file mode 100644 index 00000000..e8084596 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/mobile-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/mobile.svg b/doc/theme/material/.icons/fontawesome/solid/mobile.svg new file mode 100644 index 00000000..2783241d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/mobile.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/money-bill-alt.svg b/doc/theme/material/.icons/fontawesome/solid/money-bill-alt.svg new file mode 100644 index 00000000..41a1e5d7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/money-bill-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/money-bill-wave-alt.svg b/doc/theme/material/.icons/fontawesome/solid/money-bill-wave-alt.svg new file mode 100644 index 00000000..f32fcfe8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/money-bill-wave-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/money-bill-wave.svg b/doc/theme/material/.icons/fontawesome/solid/money-bill-wave.svg new file mode 100644 index 00000000..fc782394 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/money-bill-wave.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/money-bill.svg b/doc/theme/material/.icons/fontawesome/solid/money-bill.svg new file mode 100644 index 00000000..e1ae0f29 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/money-bill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/money-check-alt.svg b/doc/theme/material/.icons/fontawesome/solid/money-check-alt.svg new file mode 100644 index 00000000..08816382 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/money-check-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/money-check.svg b/doc/theme/material/.icons/fontawesome/solid/money-check.svg new file mode 100644 index 00000000..84bbeac2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/money-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/monument.svg b/doc/theme/material/.icons/fontawesome/solid/monument.svg new file mode 100644 index 00000000..5dd373a7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/monument.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/moon.svg b/doc/theme/material/.icons/fontawesome/solid/moon.svg new file mode 100644 index 00000000..dd9ff7e8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/moon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/mortar-pestle.svg b/doc/theme/material/.icons/fontawesome/solid/mortar-pestle.svg new file mode 100644 index 00000000..56041707 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/mortar-pestle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/mosque.svg b/doc/theme/material/.icons/fontawesome/solid/mosque.svg new file mode 100644 index 00000000..396eb4ee --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/mosque.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/motorcycle.svg b/doc/theme/material/.icons/fontawesome/solid/motorcycle.svg new file mode 100644 index 00000000..14889799 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/motorcycle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/mountain.svg b/doc/theme/material/.icons/fontawesome/solid/mountain.svg new file mode 100644 index 00000000..919fcd4e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/mountain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/mouse-pointer.svg b/doc/theme/material/.icons/fontawesome/solid/mouse-pointer.svg new file mode 100644 index 00000000..c5f252d0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/mouse-pointer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/mouse.svg b/doc/theme/material/.icons/fontawesome/solid/mouse.svg new file mode 100644 index 00000000..dad8e470 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/mouse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/mug-hot.svg b/doc/theme/material/.icons/fontawesome/solid/mug-hot.svg new file mode 100644 index 00000000..750e0861 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/mug-hot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/music.svg b/doc/theme/material/.icons/fontawesome/solid/music.svg new file mode 100644 index 00000000..723dcfe4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/music.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/network-wired.svg b/doc/theme/material/.icons/fontawesome/solid/network-wired.svg new file mode 100644 index 00000000..1be547c0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/network-wired.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/neuter.svg b/doc/theme/material/.icons/fontawesome/solid/neuter.svg new file mode 100644 index 00000000..cb7635d0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/neuter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/newspaper.svg b/doc/theme/material/.icons/fontawesome/solid/newspaper.svg new file mode 100644 index 00000000..48bcb02d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/newspaper.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/not-equal.svg b/doc/theme/material/.icons/fontawesome/solid/not-equal.svg new file mode 100644 index 00000000..d11d1391 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/not-equal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/notes-medical.svg b/doc/theme/material/.icons/fontawesome/solid/notes-medical.svg new file mode 100644 index 00000000..fc5d5962 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/notes-medical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/object-group.svg b/doc/theme/material/.icons/fontawesome/solid/object-group.svg new file mode 100644 index 00000000..b07fcecf --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/object-group.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/object-ungroup.svg b/doc/theme/material/.icons/fontawesome/solid/object-ungroup.svg new file mode 100644 index 00000000..a66887b1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/object-ungroup.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/oil-can.svg b/doc/theme/material/.icons/fontawesome/solid/oil-can.svg new file mode 100644 index 00000000..02a86938 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/oil-can.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/om.svg b/doc/theme/material/.icons/fontawesome/solid/om.svg new file mode 100644 index 00000000..34fbced8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/om.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/otter.svg b/doc/theme/material/.icons/fontawesome/solid/otter.svg new file mode 100644 index 00000000..c908a04d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/otter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/outdent.svg b/doc/theme/material/.icons/fontawesome/solid/outdent.svg new file mode 100644 index 00000000..0f4749c7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/outdent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/pager.svg b/doc/theme/material/.icons/fontawesome/solid/pager.svg new file mode 100644 index 00000000..896c919f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/pager.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/paint-brush.svg b/doc/theme/material/.icons/fontawesome/solid/paint-brush.svg new file mode 100644 index 00000000..01d1c927 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/paint-brush.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/paint-roller.svg b/doc/theme/material/.icons/fontawesome/solid/paint-roller.svg new file mode 100644 index 00000000..14d3b6ac --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/paint-roller.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/palette.svg b/doc/theme/material/.icons/fontawesome/solid/palette.svg new file mode 100644 index 00000000..a75b257e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/palette.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/pallet.svg b/doc/theme/material/.icons/fontawesome/solid/pallet.svg new file mode 100644 index 00000000..564f45be --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/pallet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/paper-plane.svg b/doc/theme/material/.icons/fontawesome/solid/paper-plane.svg new file mode 100644 index 00000000..cecb40f2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/paper-plane.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/paperclip.svg b/doc/theme/material/.icons/fontawesome/solid/paperclip.svg new file mode 100644 index 00000000..162db7e5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/paperclip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/parachute-box.svg b/doc/theme/material/.icons/fontawesome/solid/parachute-box.svg new file mode 100644 index 00000000..80abd2ea --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/parachute-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/paragraph.svg b/doc/theme/material/.icons/fontawesome/solid/paragraph.svg new file mode 100644 index 00000000..9b31e4be --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/paragraph.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/parking.svg b/doc/theme/material/.icons/fontawesome/solid/parking.svg new file mode 100644 index 00000000..04a13736 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/parking.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/passport.svg b/doc/theme/material/.icons/fontawesome/solid/passport.svg new file mode 100644 index 00000000..1a7aa6f1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/passport.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/pastafarianism.svg b/doc/theme/material/.icons/fontawesome/solid/pastafarianism.svg new file mode 100644 index 00000000..402622aa --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/pastafarianism.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/paste.svg b/doc/theme/material/.icons/fontawesome/solid/paste.svg new file mode 100644 index 00000000..17707e9f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/paste.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/pause-circle.svg b/doc/theme/material/.icons/fontawesome/solid/pause-circle.svg new file mode 100644 index 00000000..72a8e48c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/pause-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/pause.svg b/doc/theme/material/.icons/fontawesome/solid/pause.svg new file mode 100644 index 00000000..63a15b6e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/pause.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/paw.svg b/doc/theme/material/.icons/fontawesome/solid/paw.svg new file mode 100644 index 00000000..5cb50f82 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/paw.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/peace.svg b/doc/theme/material/.icons/fontawesome/solid/peace.svg new file mode 100644 index 00000000..7c5ce22f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/peace.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/pen-alt.svg b/doc/theme/material/.icons/fontawesome/solid/pen-alt.svg new file mode 100644 index 00000000..ab987aad --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/pen-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/pen-fancy.svg b/doc/theme/material/.icons/fontawesome/solid/pen-fancy.svg new file mode 100644 index 00000000..d51e1d59 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/pen-fancy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/pen-nib.svg b/doc/theme/material/.icons/fontawesome/solid/pen-nib.svg new file mode 100644 index 00000000..8f740779 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/pen-nib.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/pen-square.svg b/doc/theme/material/.icons/fontawesome/solid/pen-square.svg new file mode 100644 index 00000000..0f30e05f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/pen-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/pen.svg b/doc/theme/material/.icons/fontawesome/solid/pen.svg new file mode 100644 index 00000000..2d043aa4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/pen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/pencil-alt.svg b/doc/theme/material/.icons/fontawesome/solid/pencil-alt.svg new file mode 100644 index 00000000..26d7daea --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/pencil-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/pencil-ruler.svg b/doc/theme/material/.icons/fontawesome/solid/pencil-ruler.svg new file mode 100644 index 00000000..572c3552 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/pencil-ruler.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/people-arrows.svg b/doc/theme/material/.icons/fontawesome/solid/people-arrows.svg new file mode 100644 index 00000000..a394be1d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/people-arrows.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/people-carry.svg b/doc/theme/material/.icons/fontawesome/solid/people-carry.svg new file mode 100644 index 00000000..98a947fb --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/people-carry.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/pepper-hot.svg b/doc/theme/material/.icons/fontawesome/solid/pepper-hot.svg new file mode 100644 index 00000000..a3811e44 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/pepper-hot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/percent.svg b/doc/theme/material/.icons/fontawesome/solid/percent.svg new file mode 100644 index 00000000..16106767 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/percent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/percentage.svg b/doc/theme/material/.icons/fontawesome/solid/percentage.svg new file mode 100644 index 00000000..574fb055 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/percentage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/person-booth.svg b/doc/theme/material/.icons/fontawesome/solid/person-booth.svg new file mode 100644 index 00000000..dd7624fa --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/person-booth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/phone-alt.svg b/doc/theme/material/.icons/fontawesome/solid/phone-alt.svg new file mode 100644 index 00000000..2f936215 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/phone-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/phone-slash.svg b/doc/theme/material/.icons/fontawesome/solid/phone-slash.svg new file mode 100644 index 00000000..0e20562e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/phone-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/phone-square-alt.svg b/doc/theme/material/.icons/fontawesome/solid/phone-square-alt.svg new file mode 100644 index 00000000..c3df7c77 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/phone-square-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/phone-square.svg b/doc/theme/material/.icons/fontawesome/solid/phone-square.svg new file mode 100644 index 00000000..0871b57a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/phone-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/phone-volume.svg b/doc/theme/material/.icons/fontawesome/solid/phone-volume.svg new file mode 100644 index 00000000..b9de1f3b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/phone-volume.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/phone.svg b/doc/theme/material/.icons/fontawesome/solid/phone.svg new file mode 100644 index 00000000..2cf74a9d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/phone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/photo-video.svg b/doc/theme/material/.icons/fontawesome/solid/photo-video.svg new file mode 100644 index 00000000..745cf53c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/photo-video.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/piggy-bank.svg b/doc/theme/material/.icons/fontawesome/solid/piggy-bank.svg new file mode 100644 index 00000000..65fb510e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/piggy-bank.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/pills.svg b/doc/theme/material/.icons/fontawesome/solid/pills.svg new file mode 100644 index 00000000..eadd5aa1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/pills.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/pizza-slice.svg b/doc/theme/material/.icons/fontawesome/solid/pizza-slice.svg new file mode 100644 index 00000000..764072a6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/pizza-slice.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/place-of-worship.svg b/doc/theme/material/.icons/fontawesome/solid/place-of-worship.svg new file mode 100644 index 00000000..0998c6a0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/place-of-worship.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/plane-arrival.svg b/doc/theme/material/.icons/fontawesome/solid/plane-arrival.svg new file mode 100644 index 00000000..a8fc810b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/plane-arrival.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/plane-departure.svg b/doc/theme/material/.icons/fontawesome/solid/plane-departure.svg new file mode 100644 index 00000000..b84c8f11 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/plane-departure.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/plane-slash.svg b/doc/theme/material/.icons/fontawesome/solid/plane-slash.svg new file mode 100644 index 00000000..58097c42 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/plane-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/plane.svg b/doc/theme/material/.icons/fontawesome/solid/plane.svg new file mode 100644 index 00000000..964d452f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/plane.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/play-circle.svg b/doc/theme/material/.icons/fontawesome/solid/play-circle.svg new file mode 100644 index 00000000..ea103970 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/play-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/play.svg b/doc/theme/material/.icons/fontawesome/solid/play.svg new file mode 100644 index 00000000..d7fa87f3 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/play.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/plug.svg b/doc/theme/material/.icons/fontawesome/solid/plug.svg new file mode 100644 index 00000000..68218d07 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/plug.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/plus-circle.svg b/doc/theme/material/.icons/fontawesome/solid/plus-circle.svg new file mode 100644 index 00000000..f7a138c6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/plus-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/plus-square.svg b/doc/theme/material/.icons/fontawesome/solid/plus-square.svg new file mode 100644 index 00000000..ff058b57 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/plus-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/plus.svg b/doc/theme/material/.icons/fontawesome/solid/plus.svg new file mode 100644 index 00000000..95992e1f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/podcast.svg b/doc/theme/material/.icons/fontawesome/solid/podcast.svg new file mode 100644 index 00000000..9ee3b6fa --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/podcast.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/poll-h.svg b/doc/theme/material/.icons/fontawesome/solid/poll-h.svg new file mode 100644 index 00000000..c3993a99 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/poll-h.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/poll.svg b/doc/theme/material/.icons/fontawesome/solid/poll.svg new file mode 100644 index 00000000..96d2fb67 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/poll.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/poo-storm.svg b/doc/theme/material/.icons/fontawesome/solid/poo-storm.svg new file mode 100644 index 00000000..cf79910f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/poo-storm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/poo.svg b/doc/theme/material/.icons/fontawesome/solid/poo.svg new file mode 100644 index 00000000..997725b5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/poo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/poop.svg b/doc/theme/material/.icons/fontawesome/solid/poop.svg new file mode 100644 index 00000000..8adbdb89 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/poop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/portrait.svg b/doc/theme/material/.icons/fontawesome/solid/portrait.svg new file mode 100644 index 00000000..a62ed180 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/portrait.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/pound-sign.svg b/doc/theme/material/.icons/fontawesome/solid/pound-sign.svg new file mode 100644 index 00000000..8705075f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/pound-sign.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/power-off.svg b/doc/theme/material/.icons/fontawesome/solid/power-off.svg new file mode 100644 index 00000000..37113180 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/power-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/pray.svg b/doc/theme/material/.icons/fontawesome/solid/pray.svg new file mode 100644 index 00000000..dc87ee56 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/pray.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/praying-hands.svg b/doc/theme/material/.icons/fontawesome/solid/praying-hands.svg new file mode 100644 index 00000000..6756d8c8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/praying-hands.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/prescription-bottle-alt.svg b/doc/theme/material/.icons/fontawesome/solid/prescription-bottle-alt.svg new file mode 100644 index 00000000..5757bf87 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/prescription-bottle-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/prescription-bottle.svg b/doc/theme/material/.icons/fontawesome/solid/prescription-bottle.svg new file mode 100644 index 00000000..6f2d6c36 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/prescription-bottle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/prescription.svg b/doc/theme/material/.icons/fontawesome/solid/prescription.svg new file mode 100644 index 00000000..f0cfc721 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/prescription.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/print.svg b/doc/theme/material/.icons/fontawesome/solid/print.svg new file mode 100644 index 00000000..2c11c293 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/print.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/procedures.svg b/doc/theme/material/.icons/fontawesome/solid/procedures.svg new file mode 100644 index 00000000..5ccfafbe --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/procedures.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/project-diagram.svg b/doc/theme/material/.icons/fontawesome/solid/project-diagram.svg new file mode 100644 index 00000000..cb21c6f8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/project-diagram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/pump-medical.svg b/doc/theme/material/.icons/fontawesome/solid/pump-medical.svg new file mode 100644 index 00000000..ba0a1d43 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/pump-medical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/pump-soap.svg b/doc/theme/material/.icons/fontawesome/solid/pump-soap.svg new file mode 100644 index 00000000..6fd1d5e1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/pump-soap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/puzzle-piece.svg b/doc/theme/material/.icons/fontawesome/solid/puzzle-piece.svg new file mode 100644 index 00000000..a632d8a9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/puzzle-piece.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/qrcode.svg b/doc/theme/material/.icons/fontawesome/solid/qrcode.svg new file mode 100644 index 00000000..c92fa7ca --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/qrcode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/question-circle.svg b/doc/theme/material/.icons/fontawesome/solid/question-circle.svg new file mode 100644 index 00000000..a8f42436 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/question-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/question.svg b/doc/theme/material/.icons/fontawesome/solid/question.svg new file mode 100644 index 00000000..065e9fe7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/question.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/quidditch.svg b/doc/theme/material/.icons/fontawesome/solid/quidditch.svg new file mode 100644 index 00000000..6d0be5eb --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/quidditch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/quote-left.svg b/doc/theme/material/.icons/fontawesome/solid/quote-left.svg new file mode 100644 index 00000000..d73aa5e4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/quote-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/quote-right.svg b/doc/theme/material/.icons/fontawesome/solid/quote-right.svg new file mode 100644 index 00000000..18537bfe --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/quote-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/quran.svg b/doc/theme/material/.icons/fontawesome/solid/quran.svg new file mode 100644 index 00000000..a40a656d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/quran.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/radiation-alt.svg b/doc/theme/material/.icons/fontawesome/solid/radiation-alt.svg new file mode 100644 index 00000000..a44836cf --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/radiation-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/radiation.svg b/doc/theme/material/.icons/fontawesome/solid/radiation.svg new file mode 100644 index 00000000..c6c5b9c4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/radiation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/rainbow.svg b/doc/theme/material/.icons/fontawesome/solid/rainbow.svg new file mode 100644 index 00000000..ef50bef2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/rainbow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/random.svg b/doc/theme/material/.icons/fontawesome/solid/random.svg new file mode 100644 index 00000000..c6e56dc6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/random.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/receipt.svg b/doc/theme/material/.icons/fontawesome/solid/receipt.svg new file mode 100644 index 00000000..60d8a6c0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/receipt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/record-vinyl.svg b/doc/theme/material/.icons/fontawesome/solid/record-vinyl.svg new file mode 100644 index 00000000..bffe9269 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/record-vinyl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/recycle.svg b/doc/theme/material/.icons/fontawesome/solid/recycle.svg new file mode 100644 index 00000000..1c7fa716 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/recycle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/redo-alt.svg b/doc/theme/material/.icons/fontawesome/solid/redo-alt.svg new file mode 100644 index 00000000..f014834d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/redo-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/redo.svg b/doc/theme/material/.icons/fontawesome/solid/redo.svg new file mode 100644 index 00000000..85da0c0b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/redo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/registered.svg b/doc/theme/material/.icons/fontawesome/solid/registered.svg new file mode 100644 index 00000000..7d883448 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/registered.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/remove-format.svg b/doc/theme/material/.icons/fontawesome/solid/remove-format.svg new file mode 100644 index 00000000..3d1bd2eb --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/remove-format.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/reply-all.svg b/doc/theme/material/.icons/fontawesome/solid/reply-all.svg new file mode 100644 index 00000000..41b428a4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/reply-all.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/reply.svg b/doc/theme/material/.icons/fontawesome/solid/reply.svg new file mode 100644 index 00000000..50f99ff0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/reply.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/republican.svg b/doc/theme/material/.icons/fontawesome/solid/republican.svg new file mode 100644 index 00000000..76f70e91 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/republican.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/restroom.svg b/doc/theme/material/.icons/fontawesome/solid/restroom.svg new file mode 100644 index 00000000..87486b85 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/restroom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/retweet.svg b/doc/theme/material/.icons/fontawesome/solid/retweet.svg new file mode 100644 index 00000000..6181bf52 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/retweet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/ribbon.svg b/doc/theme/material/.icons/fontawesome/solid/ribbon.svg new file mode 100644 index 00000000..c87df5ff --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/ribbon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/ring.svg b/doc/theme/material/.icons/fontawesome/solid/ring.svg new file mode 100644 index 00000000..cba4ca69 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/ring.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/road.svg b/doc/theme/material/.icons/fontawesome/solid/road.svg new file mode 100644 index 00000000..6cc2df2b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/road.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/robot.svg b/doc/theme/material/.icons/fontawesome/solid/robot.svg new file mode 100644 index 00000000..d2383dfd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/robot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/rocket.svg b/doc/theme/material/.icons/fontawesome/solid/rocket.svg new file mode 100644 index 00000000..0fcaaec0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/rocket.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/route.svg b/doc/theme/material/.icons/fontawesome/solid/route.svg new file mode 100644 index 00000000..2d050c40 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/route.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/rss-square.svg b/doc/theme/material/.icons/fontawesome/solid/rss-square.svg new file mode 100644 index 00000000..ff9a15a6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/rss-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/rss.svg b/doc/theme/material/.icons/fontawesome/solid/rss.svg new file mode 100644 index 00000000..e6fa54c3 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/rss.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/ruble-sign.svg b/doc/theme/material/.icons/fontawesome/solid/ruble-sign.svg new file mode 100644 index 00000000..50ec2f50 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/ruble-sign.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/ruler-combined.svg b/doc/theme/material/.icons/fontawesome/solid/ruler-combined.svg new file mode 100644 index 00000000..c4ceb4a6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/ruler-combined.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/ruler-horizontal.svg b/doc/theme/material/.icons/fontawesome/solid/ruler-horizontal.svg new file mode 100644 index 00000000..12c5426e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/ruler-horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/ruler-vertical.svg b/doc/theme/material/.icons/fontawesome/solid/ruler-vertical.svg new file mode 100644 index 00000000..364cb31c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/ruler-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/ruler.svg b/doc/theme/material/.icons/fontawesome/solid/ruler.svg new file mode 100644 index 00000000..3f7a16b4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/ruler.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/running.svg b/doc/theme/material/.icons/fontawesome/solid/running.svg new file mode 100644 index 00000000..0e4a5a19 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/running.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/rupee-sign.svg b/doc/theme/material/.icons/fontawesome/solid/rupee-sign.svg new file mode 100644 index 00000000..b7144973 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/rupee-sign.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sad-cry.svg b/doc/theme/material/.icons/fontawesome/solid/sad-cry.svg new file mode 100644 index 00000000..448b6df8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sad-cry.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sad-tear.svg b/doc/theme/material/.icons/fontawesome/solid/sad-tear.svg new file mode 100644 index 00000000..4071d102 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sad-tear.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/satellite-dish.svg b/doc/theme/material/.icons/fontawesome/solid/satellite-dish.svg new file mode 100644 index 00000000..7b53497c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/satellite-dish.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/satellite.svg b/doc/theme/material/.icons/fontawesome/solid/satellite.svg new file mode 100644 index 00000000..cfddf1ce --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/satellite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/save.svg b/doc/theme/material/.icons/fontawesome/solid/save.svg new file mode 100644 index 00000000..76494fd2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/save.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/school.svg b/doc/theme/material/.icons/fontawesome/solid/school.svg new file mode 100644 index 00000000..298fb88a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/school.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/screwdriver.svg b/doc/theme/material/.icons/fontawesome/solid/screwdriver.svg new file mode 100644 index 00000000..04ce7786 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/screwdriver.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/scroll.svg b/doc/theme/material/.icons/fontawesome/solid/scroll.svg new file mode 100644 index 00000000..0ba80124 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/scroll.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sd-card.svg b/doc/theme/material/.icons/fontawesome/solid/sd-card.svg new file mode 100644 index 00000000..be6da436 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sd-card.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/search-dollar.svg b/doc/theme/material/.icons/fontawesome/solid/search-dollar.svg new file mode 100644 index 00000000..009f332e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/search-dollar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/search-location.svg b/doc/theme/material/.icons/fontawesome/solid/search-location.svg new file mode 100644 index 00000000..cae1a2bb --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/search-location.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/search-minus.svg b/doc/theme/material/.icons/fontawesome/solid/search-minus.svg new file mode 100644 index 00000000..7befe08b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/search-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/search-plus.svg b/doc/theme/material/.icons/fontawesome/solid/search-plus.svg new file mode 100644 index 00000000..e4f5984b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/search-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/search.svg b/doc/theme/material/.icons/fontawesome/solid/search.svg new file mode 100644 index 00000000..865b962e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/seedling.svg b/doc/theme/material/.icons/fontawesome/solid/seedling.svg new file mode 100644 index 00000000..b5e2a26e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/seedling.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/server.svg b/doc/theme/material/.icons/fontawesome/solid/server.svg new file mode 100644 index 00000000..4e6c50fd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/server.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/shapes.svg b/doc/theme/material/.icons/fontawesome/solid/shapes.svg new file mode 100644 index 00000000..3880ff36 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/shapes.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/share-alt-square.svg b/doc/theme/material/.icons/fontawesome/solid/share-alt-square.svg new file mode 100644 index 00000000..b1c9c0ab --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/share-alt-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/share-alt.svg b/doc/theme/material/.icons/fontawesome/solid/share-alt.svg new file mode 100644 index 00000000..34c8fcc2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/share-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/share-square.svg b/doc/theme/material/.icons/fontawesome/solid/share-square.svg new file mode 100644 index 00000000..c86740ad --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/share-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/share.svg b/doc/theme/material/.icons/fontawesome/solid/share.svg new file mode 100644 index 00000000..e7e262b4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/share.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/shekel-sign.svg b/doc/theme/material/.icons/fontawesome/solid/shekel-sign.svg new file mode 100644 index 00000000..079555e4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/shekel-sign.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/shield-alt.svg b/doc/theme/material/.icons/fontawesome/solid/shield-alt.svg new file mode 100644 index 00000000..f21eee0e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/shield-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/shield-virus.svg b/doc/theme/material/.icons/fontawesome/solid/shield-virus.svg new file mode 100644 index 00000000..5110fd98 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/shield-virus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/ship.svg b/doc/theme/material/.icons/fontawesome/solid/ship.svg new file mode 100644 index 00000000..13a3d2ba --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/ship.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/shipping-fast.svg b/doc/theme/material/.icons/fontawesome/solid/shipping-fast.svg new file mode 100644 index 00000000..342f4d40 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/shipping-fast.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/shoe-prints.svg b/doc/theme/material/.icons/fontawesome/solid/shoe-prints.svg new file mode 100644 index 00000000..9f056d4a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/shoe-prints.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/shopping-bag.svg b/doc/theme/material/.icons/fontawesome/solid/shopping-bag.svg new file mode 100644 index 00000000..78f8a425 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/shopping-bag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/shopping-basket.svg b/doc/theme/material/.icons/fontawesome/solid/shopping-basket.svg new file mode 100644 index 00000000..6eef20e6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/shopping-basket.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/shopping-cart.svg b/doc/theme/material/.icons/fontawesome/solid/shopping-cart.svg new file mode 100644 index 00000000..d409917d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/shopping-cart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/shower.svg b/doc/theme/material/.icons/fontawesome/solid/shower.svg new file mode 100644 index 00000000..9e332790 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/shower.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/shuttle-van.svg b/doc/theme/material/.icons/fontawesome/solid/shuttle-van.svg new file mode 100644 index 00000000..820b13df --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/shuttle-van.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sign-in-alt.svg b/doc/theme/material/.icons/fontawesome/solid/sign-in-alt.svg new file mode 100644 index 00000000..5b235c0c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sign-in-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sign-language.svg b/doc/theme/material/.icons/fontawesome/solid/sign-language.svg new file mode 100644 index 00000000..6602b6d3 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sign-language.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sign-out-alt.svg b/doc/theme/material/.icons/fontawesome/solid/sign-out-alt.svg new file mode 100644 index 00000000..ca985336 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sign-out-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sign.svg b/doc/theme/material/.icons/fontawesome/solid/sign.svg new file mode 100644 index 00000000..0b2a45bb --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sign.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/signal.svg b/doc/theme/material/.icons/fontawesome/solid/signal.svg new file mode 100644 index 00000000..d929175e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/signal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/signature.svg b/doc/theme/material/.icons/fontawesome/solid/signature.svg new file mode 100644 index 00000000..de2832b7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/signature.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sim-card.svg b/doc/theme/material/.icons/fontawesome/solid/sim-card.svg new file mode 100644 index 00000000..12786193 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sim-card.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sitemap.svg b/doc/theme/material/.icons/fontawesome/solid/sitemap.svg new file mode 100644 index 00000000..a7009eaf --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sitemap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/skating.svg b/doc/theme/material/.icons/fontawesome/solid/skating.svg new file mode 100644 index 00000000..74d50063 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/skating.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/skiing-nordic.svg b/doc/theme/material/.icons/fontawesome/solid/skiing-nordic.svg new file mode 100644 index 00000000..1c29fc38 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/skiing-nordic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/skiing.svg b/doc/theme/material/.icons/fontawesome/solid/skiing.svg new file mode 100644 index 00000000..3362f8f1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/skiing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/skull-crossbones.svg b/doc/theme/material/.icons/fontawesome/solid/skull-crossbones.svg new file mode 100644 index 00000000..aae294fe --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/skull-crossbones.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/skull.svg b/doc/theme/material/.icons/fontawesome/solid/skull.svg new file mode 100644 index 00000000..72429692 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/skull.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/slash.svg b/doc/theme/material/.icons/fontawesome/solid/slash.svg new file mode 100644 index 00000000..aa5bcdba --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sleigh.svg b/doc/theme/material/.icons/fontawesome/solid/sleigh.svg new file mode 100644 index 00000000..1ea545cb --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sleigh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sliders-h.svg b/doc/theme/material/.icons/fontawesome/solid/sliders-h.svg new file mode 100644 index 00000000..e5d7fd78 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sliders-h.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/smile-beam.svg b/doc/theme/material/.icons/fontawesome/solid/smile-beam.svg new file mode 100644 index 00000000..38695752 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/smile-beam.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/smile-wink.svg b/doc/theme/material/.icons/fontawesome/solid/smile-wink.svg new file mode 100644 index 00000000..b85ec119 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/smile-wink.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/smile.svg b/doc/theme/material/.icons/fontawesome/solid/smile.svg new file mode 100644 index 00000000..dc8784a7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/smile.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/smog.svg b/doc/theme/material/.icons/fontawesome/solid/smog.svg new file mode 100644 index 00000000..d7f68973 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/smog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/smoking-ban.svg b/doc/theme/material/.icons/fontawesome/solid/smoking-ban.svg new file mode 100644 index 00000000..4382b1f7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/smoking-ban.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/smoking.svg b/doc/theme/material/.icons/fontawesome/solid/smoking.svg new file mode 100644 index 00000000..6dd41578 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/smoking.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sms.svg b/doc/theme/material/.icons/fontawesome/solid/sms.svg new file mode 100644 index 00000000..6a6e950c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sms.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/snowboarding.svg b/doc/theme/material/.icons/fontawesome/solid/snowboarding.svg new file mode 100644 index 00000000..d241f40e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/snowboarding.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/snowflake.svg b/doc/theme/material/.icons/fontawesome/solid/snowflake.svg new file mode 100644 index 00000000..270da5d1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/snowflake.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/snowman.svg b/doc/theme/material/.icons/fontawesome/solid/snowman.svg new file mode 100644 index 00000000..795a2040 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/snowman.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/snowplow.svg b/doc/theme/material/.icons/fontawesome/solid/snowplow.svg new file mode 100644 index 00000000..19d31e98 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/snowplow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/soap.svg b/doc/theme/material/.icons/fontawesome/solid/soap.svg new file mode 100644 index 00000000..3c7638b5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/soap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/socks.svg b/doc/theme/material/.icons/fontawesome/solid/socks.svg new file mode 100644 index 00000000..c8696f6b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/socks.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/solar-panel.svg b/doc/theme/material/.icons/fontawesome/solid/solar-panel.svg new file mode 100644 index 00000000..2760e792 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/solar-panel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sort-alpha-down-alt.svg b/doc/theme/material/.icons/fontawesome/solid/sort-alpha-down-alt.svg new file mode 100644 index 00000000..ce88c909 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sort-alpha-down-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sort-alpha-down.svg b/doc/theme/material/.icons/fontawesome/solid/sort-alpha-down.svg new file mode 100644 index 00000000..e1e1d213 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sort-alpha-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sort-alpha-up-alt.svg b/doc/theme/material/.icons/fontawesome/solid/sort-alpha-up-alt.svg new file mode 100644 index 00000000..194b0524 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sort-alpha-up-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sort-alpha-up.svg b/doc/theme/material/.icons/fontawesome/solid/sort-alpha-up.svg new file mode 100644 index 00000000..f04200dc --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sort-alpha-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sort-amount-down-alt.svg b/doc/theme/material/.icons/fontawesome/solid/sort-amount-down-alt.svg new file mode 100644 index 00000000..c3865bdf --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sort-amount-down-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sort-amount-down.svg b/doc/theme/material/.icons/fontawesome/solid/sort-amount-down.svg new file mode 100644 index 00000000..8c5c4383 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sort-amount-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sort-amount-up-alt.svg b/doc/theme/material/.icons/fontawesome/solid/sort-amount-up-alt.svg new file mode 100644 index 00000000..3cf6a05a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sort-amount-up-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sort-amount-up.svg b/doc/theme/material/.icons/fontawesome/solid/sort-amount-up.svg new file mode 100644 index 00000000..57a0e334 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sort-amount-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sort-down.svg b/doc/theme/material/.icons/fontawesome/solid/sort-down.svg new file mode 100644 index 00000000..2644ba2b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sort-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sort-numeric-down-alt.svg b/doc/theme/material/.icons/fontawesome/solid/sort-numeric-down-alt.svg new file mode 100644 index 00000000..ba5c79ad --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sort-numeric-down-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sort-numeric-down.svg b/doc/theme/material/.icons/fontawesome/solid/sort-numeric-down.svg new file mode 100644 index 00000000..548a2438 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sort-numeric-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sort-numeric-up-alt.svg b/doc/theme/material/.icons/fontawesome/solid/sort-numeric-up-alt.svg new file mode 100644 index 00000000..d804ec54 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sort-numeric-up-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sort-numeric-up.svg b/doc/theme/material/.icons/fontawesome/solid/sort-numeric-up.svg new file mode 100644 index 00000000..79d1c44c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sort-numeric-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sort-up.svg b/doc/theme/material/.icons/fontawesome/solid/sort-up.svg new file mode 100644 index 00000000..c6e1001d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sort-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sort.svg b/doc/theme/material/.icons/fontawesome/solid/sort.svg new file mode 100644 index 00000000..89c08354 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sort.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/spa.svg b/doc/theme/material/.icons/fontawesome/solid/spa.svg new file mode 100644 index 00000000..53388af8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/spa.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/space-shuttle.svg b/doc/theme/material/.icons/fontawesome/solid/space-shuttle.svg new file mode 100644 index 00000000..c3dd8845 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/space-shuttle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/spell-check.svg b/doc/theme/material/.icons/fontawesome/solid/spell-check.svg new file mode 100644 index 00000000..bab1dbed --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/spell-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/spider.svg b/doc/theme/material/.icons/fontawesome/solid/spider.svg new file mode 100644 index 00000000..f2d7030b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/spider.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/spinner.svg b/doc/theme/material/.icons/fontawesome/solid/spinner.svg new file mode 100644 index 00000000..4397764e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/spinner.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/splotch.svg b/doc/theme/material/.icons/fontawesome/solid/splotch.svg new file mode 100644 index 00000000..070a1c1c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/splotch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/spray-can.svg b/doc/theme/material/.icons/fontawesome/solid/spray-can.svg new file mode 100644 index 00000000..05947c08 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/spray-can.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/square-full.svg b/doc/theme/material/.icons/fontawesome/solid/square-full.svg new file mode 100644 index 00000000..7bb73943 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/square-full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/square-root-alt.svg b/doc/theme/material/.icons/fontawesome/solid/square-root-alt.svg new file mode 100644 index 00000000..c7e20a31 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/square-root-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/square.svg b/doc/theme/material/.icons/fontawesome/solid/square.svg new file mode 100644 index 00000000..40338d44 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/stamp.svg b/doc/theme/material/.icons/fontawesome/solid/stamp.svg new file mode 100644 index 00000000..591a5bba --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/stamp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/star-and-crescent.svg b/doc/theme/material/.icons/fontawesome/solid/star-and-crescent.svg new file mode 100644 index 00000000..6d378602 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/star-and-crescent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/star-half-alt.svg b/doc/theme/material/.icons/fontawesome/solid/star-half-alt.svg new file mode 100644 index 00000000..5a9b4c38 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/star-half-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/star-half.svg b/doc/theme/material/.icons/fontawesome/solid/star-half.svg new file mode 100644 index 00000000..6599dcbf --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/star-half.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/star-of-david.svg b/doc/theme/material/.icons/fontawesome/solid/star-of-david.svg new file mode 100644 index 00000000..d9a5e5cd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/star-of-david.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/star-of-life.svg b/doc/theme/material/.icons/fontawesome/solid/star-of-life.svg new file mode 100644 index 00000000..0737995e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/star-of-life.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/star.svg b/doc/theme/material/.icons/fontawesome/solid/star.svg new file mode 100644 index 00000000..7cfd13b8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/star.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/step-backward.svg b/doc/theme/material/.icons/fontawesome/solid/step-backward.svg new file mode 100644 index 00000000..e6f0d100 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/step-backward.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/step-forward.svg b/doc/theme/material/.icons/fontawesome/solid/step-forward.svg new file mode 100644 index 00000000..33eb8fb6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/step-forward.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/stethoscope.svg b/doc/theme/material/.icons/fontawesome/solid/stethoscope.svg new file mode 100644 index 00000000..10d30562 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/stethoscope.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sticky-note.svg b/doc/theme/material/.icons/fontawesome/solid/sticky-note.svg new file mode 100644 index 00000000..4b577b88 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sticky-note.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/stop-circle.svg b/doc/theme/material/.icons/fontawesome/solid/stop-circle.svg new file mode 100644 index 00000000..15f56cdb --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/stop-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/stop.svg b/doc/theme/material/.icons/fontawesome/solid/stop.svg new file mode 100644 index 00000000..40338d44 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/stop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/stopwatch-20.svg b/doc/theme/material/.icons/fontawesome/solid/stopwatch-20.svg new file mode 100644 index 00000000..8de6daa2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/stopwatch-20.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/stopwatch.svg b/doc/theme/material/.icons/fontawesome/solid/stopwatch.svg new file mode 100644 index 00000000..72c13459 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/stopwatch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/store-alt-slash.svg b/doc/theme/material/.icons/fontawesome/solid/store-alt-slash.svg new file mode 100644 index 00000000..292db4e8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/store-alt-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/store-alt.svg b/doc/theme/material/.icons/fontawesome/solid/store-alt.svg new file mode 100644 index 00000000..488759f1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/store-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/store-slash.svg b/doc/theme/material/.icons/fontawesome/solid/store-slash.svg new file mode 100644 index 00000000..cade88e5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/store-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/store.svg b/doc/theme/material/.icons/fontawesome/solid/store.svg new file mode 100644 index 00000000..aa0281fc --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/store.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/stream.svg b/doc/theme/material/.icons/fontawesome/solid/stream.svg new file mode 100644 index 00000000..938cc188 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/stream.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/street-view.svg b/doc/theme/material/.icons/fontawesome/solid/street-view.svg new file mode 100644 index 00000000..2ae0457e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/street-view.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/strikethrough.svg b/doc/theme/material/.icons/fontawesome/solid/strikethrough.svg new file mode 100644 index 00000000..9135f5dc --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/strikethrough.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/stroopwafel.svg b/doc/theme/material/.icons/fontawesome/solid/stroopwafel.svg new file mode 100644 index 00000000..4d736947 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/stroopwafel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/subscript.svg b/doc/theme/material/.icons/fontawesome/solid/subscript.svg new file mode 100644 index 00000000..b07e6379 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/subscript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/subway.svg b/doc/theme/material/.icons/fontawesome/solid/subway.svg new file mode 100644 index 00000000..19e5a379 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/subway.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/suitcase-rolling.svg b/doc/theme/material/.icons/fontawesome/solid/suitcase-rolling.svg new file mode 100644 index 00000000..d54be1e0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/suitcase-rolling.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/suitcase.svg b/doc/theme/material/.icons/fontawesome/solid/suitcase.svg new file mode 100644 index 00000000..effa01c1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/suitcase.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sun.svg b/doc/theme/material/.icons/fontawesome/solid/sun.svg new file mode 100644 index 00000000..19bc76b9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sun.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/superscript.svg b/doc/theme/material/.icons/fontawesome/solid/superscript.svg new file mode 100644 index 00000000..869c1c0b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/superscript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/surprise.svg b/doc/theme/material/.icons/fontawesome/solid/surprise.svg new file mode 100644 index 00000000..478b6b01 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/surprise.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/swatchbook.svg b/doc/theme/material/.icons/fontawesome/solid/swatchbook.svg new file mode 100644 index 00000000..0a0a82ed --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/swatchbook.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/swimmer.svg b/doc/theme/material/.icons/fontawesome/solid/swimmer.svg new file mode 100644 index 00000000..261e60b4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/swimmer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/swimming-pool.svg b/doc/theme/material/.icons/fontawesome/solid/swimming-pool.svg new file mode 100644 index 00000000..533688df --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/swimming-pool.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/synagogue.svg b/doc/theme/material/.icons/fontawesome/solid/synagogue.svg new file mode 100644 index 00000000..12056ee7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/synagogue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sync-alt.svg b/doc/theme/material/.icons/fontawesome/solid/sync-alt.svg new file mode 100644 index 00000000..3c3106d8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sync-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/sync.svg b/doc/theme/material/.icons/fontawesome/solid/sync.svg new file mode 100644 index 00000000..39175f77 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/sync.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/syringe.svg b/doc/theme/material/.icons/fontawesome/solid/syringe.svg new file mode 100644 index 00000000..95626f74 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/syringe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/table-tennis.svg b/doc/theme/material/.icons/fontawesome/solid/table-tennis.svg new file mode 100644 index 00000000..a7f5e9a5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/table-tennis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/table.svg b/doc/theme/material/.icons/fontawesome/solid/table.svg new file mode 100644 index 00000000..5690c5cc --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/table.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/tablet-alt.svg b/doc/theme/material/.icons/fontawesome/solid/tablet-alt.svg new file mode 100644 index 00000000..9e962f78 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/tablet-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/tablet.svg b/doc/theme/material/.icons/fontawesome/solid/tablet.svg new file mode 100644 index 00000000..da45e7d2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/tablet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/tablets.svg b/doc/theme/material/.icons/fontawesome/solid/tablets.svg new file mode 100644 index 00000000..74c8265e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/tablets.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/tachometer-alt.svg b/doc/theme/material/.icons/fontawesome/solid/tachometer-alt.svg new file mode 100644 index 00000000..977e1e9f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/tachometer-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/tag.svg b/doc/theme/material/.icons/fontawesome/solid/tag.svg new file mode 100644 index 00000000..f54df34d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/tag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/tags.svg b/doc/theme/material/.icons/fontawesome/solid/tags.svg new file mode 100644 index 00000000..4ea728d5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/tags.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/tape.svg b/doc/theme/material/.icons/fontawesome/solid/tape.svg new file mode 100644 index 00000000..1fbaa1da --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/tape.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/tasks.svg b/doc/theme/material/.icons/fontawesome/solid/tasks.svg new file mode 100644 index 00000000..05e6abbd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/tasks.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/taxi.svg b/doc/theme/material/.icons/fontawesome/solid/taxi.svg new file mode 100644 index 00000000..13f05d0d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/taxi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/teeth-open.svg b/doc/theme/material/.icons/fontawesome/solid/teeth-open.svg new file mode 100644 index 00000000..f02650ab --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/teeth-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/teeth.svg b/doc/theme/material/.icons/fontawesome/solid/teeth.svg new file mode 100644 index 00000000..17e4027e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/teeth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/temperature-high.svg b/doc/theme/material/.icons/fontawesome/solid/temperature-high.svg new file mode 100644 index 00000000..e61b22b3 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/temperature-high.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/temperature-low.svg b/doc/theme/material/.icons/fontawesome/solid/temperature-low.svg new file mode 100644 index 00000000..07d2427c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/temperature-low.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/tenge.svg b/doc/theme/material/.icons/fontawesome/solid/tenge.svg new file mode 100644 index 00000000..cc8be5c1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/tenge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/terminal.svg b/doc/theme/material/.icons/fontawesome/solid/terminal.svg new file mode 100644 index 00000000..85b2b5e8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/terminal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/text-height.svg b/doc/theme/material/.icons/fontawesome/solid/text-height.svg new file mode 100644 index 00000000..0cde8698 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/text-height.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/text-width.svg b/doc/theme/material/.icons/fontawesome/solid/text-width.svg new file mode 100644 index 00000000..8d79728d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/text-width.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/th-large.svg b/doc/theme/material/.icons/fontawesome/solid/th-large.svg new file mode 100644 index 00000000..7894f58b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/th-large.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/th-list.svg b/doc/theme/material/.icons/fontawesome/solid/th-list.svg new file mode 100644 index 00000000..361af542 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/th-list.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/th.svg b/doc/theme/material/.icons/fontawesome/solid/th.svg new file mode 100644 index 00000000..73b6c92c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/th.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/theater-masks.svg b/doc/theme/material/.icons/fontawesome/solid/theater-masks.svg new file mode 100644 index 00000000..d16e6631 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/theater-masks.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/thermometer-empty.svg b/doc/theme/material/.icons/fontawesome/solid/thermometer-empty.svg new file mode 100644 index 00000000..5a6a6b8e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/thermometer-empty.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/thermometer-full.svg b/doc/theme/material/.icons/fontawesome/solid/thermometer-full.svg new file mode 100644 index 00000000..caeb8b66 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/thermometer-full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/thermometer-half.svg b/doc/theme/material/.icons/fontawesome/solid/thermometer-half.svg new file mode 100644 index 00000000..8c355127 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/thermometer-half.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/thermometer-quarter.svg b/doc/theme/material/.icons/fontawesome/solid/thermometer-quarter.svg new file mode 100644 index 00000000..0478872e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/thermometer-quarter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/thermometer-three-quarters.svg b/doc/theme/material/.icons/fontawesome/solid/thermometer-three-quarters.svg new file mode 100644 index 00000000..b5188d58 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/thermometer-three-quarters.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/thermometer.svg b/doc/theme/material/.icons/fontawesome/solid/thermometer.svg new file mode 100644 index 00000000..af0b9ef9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/thermometer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/thumbs-down.svg b/doc/theme/material/.icons/fontawesome/solid/thumbs-down.svg new file mode 100644 index 00000000..7681fdee --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/thumbs-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/thumbs-up.svg b/doc/theme/material/.icons/fontawesome/solid/thumbs-up.svg new file mode 100644 index 00000000..539949df --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/thumbs-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/thumbtack.svg b/doc/theme/material/.icons/fontawesome/solid/thumbtack.svg new file mode 100644 index 00000000..132254aa --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/thumbtack.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/ticket-alt.svg b/doc/theme/material/.icons/fontawesome/solid/ticket-alt.svg new file mode 100644 index 00000000..70158467 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/ticket-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/times-circle.svg b/doc/theme/material/.icons/fontawesome/solid/times-circle.svg new file mode 100644 index 00000000..cdee9414 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/times-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/times.svg b/doc/theme/material/.icons/fontawesome/solid/times.svg new file mode 100644 index 00000000..571a32a1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/times.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/tint-slash.svg b/doc/theme/material/.icons/fontawesome/solid/tint-slash.svg new file mode 100644 index 00000000..df76bdf0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/tint-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/tint.svg b/doc/theme/material/.icons/fontawesome/solid/tint.svg new file mode 100644 index 00000000..8dd8f93e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/tint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/tired.svg b/doc/theme/material/.icons/fontawesome/solid/tired.svg new file mode 100644 index 00000000..bdc5ce0d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/tired.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/toggle-off.svg b/doc/theme/material/.icons/fontawesome/solid/toggle-off.svg new file mode 100644 index 00000000..dce9c007 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/toggle-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/toggle-on.svg b/doc/theme/material/.icons/fontawesome/solid/toggle-on.svg new file mode 100644 index 00000000..6c4c2dc1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/toggle-on.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/toilet-paper-slash.svg b/doc/theme/material/.icons/fontawesome/solid/toilet-paper-slash.svg new file mode 100644 index 00000000..1c2f2b82 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/toilet-paper-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/toilet-paper.svg b/doc/theme/material/.icons/fontawesome/solid/toilet-paper.svg new file mode 100644 index 00000000..6201721d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/toilet-paper.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/toilet.svg b/doc/theme/material/.icons/fontawesome/solid/toilet.svg new file mode 100644 index 00000000..c5abd013 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/toilet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/toolbox.svg b/doc/theme/material/.icons/fontawesome/solid/toolbox.svg new file mode 100644 index 00000000..dc11fef6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/toolbox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/tools.svg b/doc/theme/material/.icons/fontawesome/solid/tools.svg new file mode 100644 index 00000000..668d558e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/tools.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/tooth.svg b/doc/theme/material/.icons/fontawesome/solid/tooth.svg new file mode 100644 index 00000000..745734cb --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/tooth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/torah.svg b/doc/theme/material/.icons/fontawesome/solid/torah.svg new file mode 100644 index 00000000..237b5f7e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/torah.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/torii-gate.svg b/doc/theme/material/.icons/fontawesome/solid/torii-gate.svg new file mode 100644 index 00000000..8b2d5261 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/torii-gate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/tractor.svg b/doc/theme/material/.icons/fontawesome/solid/tractor.svg new file mode 100644 index 00000000..fe0dea7f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/tractor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/trademark.svg b/doc/theme/material/.icons/fontawesome/solid/trademark.svg new file mode 100644 index 00000000..4898eb52 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/trademark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/traffic-light.svg b/doc/theme/material/.icons/fontawesome/solid/traffic-light.svg new file mode 100644 index 00000000..0eb4de19 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/traffic-light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/trailer.svg b/doc/theme/material/.icons/fontawesome/solid/trailer.svg new file mode 100644 index 00000000..dbf1022d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/trailer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/train.svg b/doc/theme/material/.icons/fontawesome/solid/train.svg new file mode 100644 index 00000000..79c0266f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/train.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/tram.svg b/doc/theme/material/.icons/fontawesome/solid/tram.svg new file mode 100644 index 00000000..e3156976 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/tram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/transgender-alt.svg b/doc/theme/material/.icons/fontawesome/solid/transgender-alt.svg new file mode 100644 index 00000000..6c1d1679 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/transgender-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/transgender.svg b/doc/theme/material/.icons/fontawesome/solid/transgender.svg new file mode 100644 index 00000000..10d73936 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/transgender.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/trash-alt.svg b/doc/theme/material/.icons/fontawesome/solid/trash-alt.svg new file mode 100644 index 00000000..acdf905f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/trash-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/trash-restore-alt.svg b/doc/theme/material/.icons/fontawesome/solid/trash-restore-alt.svg new file mode 100644 index 00000000..1b812d1c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/trash-restore-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/trash-restore.svg b/doc/theme/material/.icons/fontawesome/solid/trash-restore.svg new file mode 100644 index 00000000..65f6e999 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/trash-restore.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/trash.svg b/doc/theme/material/.icons/fontawesome/solid/trash.svg new file mode 100644 index 00000000..bbc002b0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/trash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/tree.svg b/doc/theme/material/.icons/fontawesome/solid/tree.svg new file mode 100644 index 00000000..a3c7f934 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/tree.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/trophy.svg b/doc/theme/material/.icons/fontawesome/solid/trophy.svg new file mode 100644 index 00000000..6157afa0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/trophy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/truck-loading.svg b/doc/theme/material/.icons/fontawesome/solid/truck-loading.svg new file mode 100644 index 00000000..7153afd0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/truck-loading.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/truck-monster.svg b/doc/theme/material/.icons/fontawesome/solid/truck-monster.svg new file mode 100644 index 00000000..b2855fb9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/truck-monster.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/truck-moving.svg b/doc/theme/material/.icons/fontawesome/solid/truck-moving.svg new file mode 100644 index 00000000..18ea46f5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/truck-moving.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/truck-pickup.svg b/doc/theme/material/.icons/fontawesome/solid/truck-pickup.svg new file mode 100644 index 00000000..37bc87d9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/truck-pickup.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/truck.svg b/doc/theme/material/.icons/fontawesome/solid/truck.svg new file mode 100644 index 00000000..8b405fee --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/truck.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/tshirt.svg b/doc/theme/material/.icons/fontawesome/solid/tshirt.svg new file mode 100644 index 00000000..4cdf227e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/tshirt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/tty.svg b/doc/theme/material/.icons/fontawesome/solid/tty.svg new file mode 100644 index 00000000..7a3bc4ac --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/tty.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/tv.svg b/doc/theme/material/.icons/fontawesome/solid/tv.svg new file mode 100644 index 00000000..1080e94e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/tv.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/umbrella-beach.svg b/doc/theme/material/.icons/fontawesome/solid/umbrella-beach.svg new file mode 100644 index 00000000..9a75c525 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/umbrella-beach.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/umbrella.svg b/doc/theme/material/.icons/fontawesome/solid/umbrella.svg new file mode 100644 index 00000000..83de3d7b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/umbrella.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/underline.svg b/doc/theme/material/.icons/fontawesome/solid/underline.svg new file mode 100644 index 00000000..d2654366 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/underline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/undo-alt.svg b/doc/theme/material/.icons/fontawesome/solid/undo-alt.svg new file mode 100644 index 00000000..bdc97cae --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/undo-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/undo.svg b/doc/theme/material/.icons/fontawesome/solid/undo.svg new file mode 100644 index 00000000..44b39041 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/undo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/universal-access.svg b/doc/theme/material/.icons/fontawesome/solid/universal-access.svg new file mode 100644 index 00000000..1079d879 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/universal-access.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/university.svg b/doc/theme/material/.icons/fontawesome/solid/university.svg new file mode 100644 index 00000000..7abeb4df --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/university.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/unlink.svg b/doc/theme/material/.icons/fontawesome/solid/unlink.svg new file mode 100644 index 00000000..8cba9f8f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/unlink.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/unlock-alt.svg b/doc/theme/material/.icons/fontawesome/solid/unlock-alt.svg new file mode 100644 index 00000000..b38ffb6a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/unlock-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/unlock.svg b/doc/theme/material/.icons/fontawesome/solid/unlock.svg new file mode 100644 index 00000000..0b2258a8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/unlock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/upload.svg b/doc/theme/material/.icons/fontawesome/solid/upload.svg new file mode 100644 index 00000000..1c880b51 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/upload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/user-alt-slash.svg b/doc/theme/material/.icons/fontawesome/solid/user-alt-slash.svg new file mode 100644 index 00000000..74f85978 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/user-alt-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/user-alt.svg b/doc/theme/material/.icons/fontawesome/solid/user-alt.svg new file mode 100644 index 00000000..024cb44b --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/user-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/user-astronaut.svg b/doc/theme/material/.icons/fontawesome/solid/user-astronaut.svg new file mode 100644 index 00000000..631f1682 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/user-astronaut.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/user-check.svg b/doc/theme/material/.icons/fontawesome/solid/user-check.svg new file mode 100644 index 00000000..a6306118 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/user-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/user-circle.svg b/doc/theme/material/.icons/fontawesome/solid/user-circle.svg new file mode 100644 index 00000000..6e03b1bd --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/user-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/user-clock.svg b/doc/theme/material/.icons/fontawesome/solid/user-clock.svg new file mode 100644 index 00000000..1c45c705 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/user-clock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/user-cog.svg b/doc/theme/material/.icons/fontawesome/solid/user-cog.svg new file mode 100644 index 00000000..bae9930e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/user-cog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/user-edit.svg b/doc/theme/material/.icons/fontawesome/solid/user-edit.svg new file mode 100644 index 00000000..bde9c901 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/user-edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/user-friends.svg b/doc/theme/material/.icons/fontawesome/solid/user-friends.svg new file mode 100644 index 00000000..2e43c598 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/user-friends.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/user-graduate.svg b/doc/theme/material/.icons/fontawesome/solid/user-graduate.svg new file mode 100644 index 00000000..8855caaa --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/user-graduate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/user-injured.svg b/doc/theme/material/.icons/fontawesome/solid/user-injured.svg new file mode 100644 index 00000000..c0096dc7 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/user-injured.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/user-lock.svg b/doc/theme/material/.icons/fontawesome/solid/user-lock.svg new file mode 100644 index 00000000..300b9dd4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/user-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/user-md.svg b/doc/theme/material/.icons/fontawesome/solid/user-md.svg new file mode 100644 index 00000000..583cdc39 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/user-md.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/user-minus.svg b/doc/theme/material/.icons/fontawesome/solid/user-minus.svg new file mode 100644 index 00000000..f019e706 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/user-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/user-ninja.svg b/doc/theme/material/.icons/fontawesome/solid/user-ninja.svg new file mode 100644 index 00000000..7bdec360 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/user-ninja.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/user-nurse.svg b/doc/theme/material/.icons/fontawesome/solid/user-nurse.svg new file mode 100644 index 00000000..94e665f6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/user-nurse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/user-plus.svg b/doc/theme/material/.icons/fontawesome/solid/user-plus.svg new file mode 100644 index 00000000..01c84c36 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/user-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/user-secret.svg b/doc/theme/material/.icons/fontawesome/solid/user-secret.svg new file mode 100644 index 00000000..daae530d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/user-secret.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/user-shield.svg b/doc/theme/material/.icons/fontawesome/solid/user-shield.svg new file mode 100644 index 00000000..7cfba68f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/user-shield.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/user-slash.svg b/doc/theme/material/.icons/fontawesome/solid/user-slash.svg new file mode 100644 index 00000000..491e32a3 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/user-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/user-tag.svg b/doc/theme/material/.icons/fontawesome/solid/user-tag.svg new file mode 100644 index 00000000..ec1a1e70 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/user-tag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/user-tie.svg b/doc/theme/material/.icons/fontawesome/solid/user-tie.svg new file mode 100644 index 00000000..9bd9f95a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/user-tie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/user-times.svg b/doc/theme/material/.icons/fontawesome/solid/user-times.svg new file mode 100644 index 00000000..341b1f12 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/user-times.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/user.svg b/doc/theme/material/.icons/fontawesome/solid/user.svg new file mode 100644 index 00000000..591873a5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/user.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/users-cog.svg b/doc/theme/material/.icons/fontawesome/solid/users-cog.svg new file mode 100644 index 00000000..a90e8b03 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/users-cog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/users.svg b/doc/theme/material/.icons/fontawesome/solid/users.svg new file mode 100644 index 00000000..3f07aab0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/users.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/utensil-spoon.svg b/doc/theme/material/.icons/fontawesome/solid/utensil-spoon.svg new file mode 100644 index 00000000..ec19dac5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/utensil-spoon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/utensils.svg b/doc/theme/material/.icons/fontawesome/solid/utensils.svg new file mode 100644 index 00000000..29fa05ab --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/utensils.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/vector-square.svg b/doc/theme/material/.icons/fontawesome/solid/vector-square.svg new file mode 100644 index 00000000..848b9fb4 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/vector-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/venus-double.svg b/doc/theme/material/.icons/fontawesome/solid/venus-double.svg new file mode 100644 index 00000000..8fa1ba94 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/venus-double.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/venus-mars.svg b/doc/theme/material/.icons/fontawesome/solid/venus-mars.svg new file mode 100644 index 00000000..78089d80 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/venus-mars.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/venus.svg b/doc/theme/material/.icons/fontawesome/solid/venus.svg new file mode 100644 index 00000000..637ef0cc --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/venus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/vial.svg b/doc/theme/material/.icons/fontawesome/solid/vial.svg new file mode 100644 index 00000000..e01d94ae --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/vial.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/vials.svg b/doc/theme/material/.icons/fontawesome/solid/vials.svg new file mode 100644 index 00000000..13e7c5ac --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/vials.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/video-slash.svg b/doc/theme/material/.icons/fontawesome/solid/video-slash.svg new file mode 100644 index 00000000..d221789f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/video-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/video.svg b/doc/theme/material/.icons/fontawesome/solid/video.svg new file mode 100644 index 00000000..e14b3b93 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/video.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/vihara.svg b/doc/theme/material/.icons/fontawesome/solid/vihara.svg new file mode 100644 index 00000000..d25739c1 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/vihara.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/virus-slash.svg b/doc/theme/material/.icons/fontawesome/solid/virus-slash.svg new file mode 100644 index 00000000..ae3fea9a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/virus-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/virus.svg b/doc/theme/material/.icons/fontawesome/solid/virus.svg new file mode 100644 index 00000000..b0a2e48d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/virus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/viruses.svg b/doc/theme/material/.icons/fontawesome/solid/viruses.svg new file mode 100644 index 00000000..492482da --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/viruses.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/voicemail.svg b/doc/theme/material/.icons/fontawesome/solid/voicemail.svg new file mode 100644 index 00000000..e75e0d06 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/voicemail.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/volleyball-ball.svg b/doc/theme/material/.icons/fontawesome/solid/volleyball-ball.svg new file mode 100644 index 00000000..3255dc9c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/volleyball-ball.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/volume-down.svg b/doc/theme/material/.icons/fontawesome/solid/volume-down.svg new file mode 100644 index 00000000..b3105c3d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/volume-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/volume-mute.svg b/doc/theme/material/.icons/fontawesome/solid/volume-mute.svg new file mode 100644 index 00000000..b78aad67 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/volume-mute.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/volume-off.svg b/doc/theme/material/.icons/fontawesome/solid/volume-off.svg new file mode 100644 index 00000000..9bd55c95 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/volume-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/volume-up.svg b/doc/theme/material/.icons/fontawesome/solid/volume-up.svg new file mode 100644 index 00000000..c85f3e8d --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/volume-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/vote-yea.svg b/doc/theme/material/.icons/fontawesome/solid/vote-yea.svg new file mode 100644 index 00000000..496a5762 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/vote-yea.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/vr-cardboard.svg b/doc/theme/material/.icons/fontawesome/solid/vr-cardboard.svg new file mode 100644 index 00000000..dd9eff58 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/vr-cardboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/walking.svg b/doc/theme/material/.icons/fontawesome/solid/walking.svg new file mode 100644 index 00000000..4e85cd58 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/walking.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/wallet.svg b/doc/theme/material/.icons/fontawesome/solid/wallet.svg new file mode 100644 index 00000000..f5842294 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/wallet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/warehouse.svg b/doc/theme/material/.icons/fontawesome/solid/warehouse.svg new file mode 100644 index 00000000..712b0826 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/warehouse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/water.svg b/doc/theme/material/.icons/fontawesome/solid/water.svg new file mode 100644 index 00000000..cc7a7d3c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/water.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/wave-square.svg b/doc/theme/material/.icons/fontawesome/solid/wave-square.svg new file mode 100644 index 00000000..2b47a0c9 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/wave-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/weight-hanging.svg b/doc/theme/material/.icons/fontawesome/solid/weight-hanging.svg new file mode 100644 index 00000000..db2801aa --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/weight-hanging.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/weight.svg b/doc/theme/material/.icons/fontawesome/solid/weight.svg new file mode 100644 index 00000000..12e7df5c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/weight.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/wheelchair.svg b/doc/theme/material/.icons/fontawesome/solid/wheelchair.svg new file mode 100644 index 00000000..abb35d56 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/wheelchair.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/wifi.svg b/doc/theme/material/.icons/fontawesome/solid/wifi.svg new file mode 100644 index 00000000..5ac43b3e --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/wifi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/wind.svg b/doc/theme/material/.icons/fontawesome/solid/wind.svg new file mode 100644 index 00000000..705d74b8 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/wind.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/window-close.svg b/doc/theme/material/.icons/fontawesome/solid/window-close.svg new file mode 100644 index 00000000..da63df91 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/window-close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/window-maximize.svg b/doc/theme/material/.icons/fontawesome/solid/window-maximize.svg new file mode 100644 index 00000000..d305d0ad --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/window-maximize.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/window-minimize.svg b/doc/theme/material/.icons/fontawesome/solid/window-minimize.svg new file mode 100644 index 00000000..c0e48b3f --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/window-minimize.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/window-restore.svg b/doc/theme/material/.icons/fontawesome/solid/window-restore.svg new file mode 100644 index 00000000..355ce8f0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/window-restore.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/wine-bottle.svg b/doc/theme/material/.icons/fontawesome/solid/wine-bottle.svg new file mode 100644 index 00000000..6b66813c --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/wine-bottle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/wine-glass-alt.svg b/doc/theme/material/.icons/fontawesome/solid/wine-glass-alt.svg new file mode 100644 index 00000000..2822897a --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/wine-glass-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/wine-glass.svg b/doc/theme/material/.icons/fontawesome/solid/wine-glass.svg new file mode 100644 index 00000000..a27377d0 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/wine-glass.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/won-sign.svg b/doc/theme/material/.icons/fontawesome/solid/won-sign.svg new file mode 100644 index 00000000..4cfd37d2 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/won-sign.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/wrench.svg b/doc/theme/material/.icons/fontawesome/solid/wrench.svg new file mode 100644 index 00000000..378cf6c6 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/wrench.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/x-ray.svg b/doc/theme/material/.icons/fontawesome/solid/x-ray.svg new file mode 100644 index 00000000..fe20d416 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/x-ray.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/yen-sign.svg b/doc/theme/material/.icons/fontawesome/solid/yen-sign.svg new file mode 100644 index 00000000..3cdb4ec5 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/yen-sign.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/fontawesome/solid/yin-yang.svg b/doc/theme/material/.icons/fontawesome/solid/yin-yang.svg new file mode 100644 index 00000000..7aa88f98 --- /dev/null +++ b/doc/theme/material/.icons/fontawesome/solid/yin-yang.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ab-testing.svg b/doc/theme/material/.icons/material/ab-testing.svg new file mode 100644 index 00000000..e0ea0cdb --- /dev/null +++ b/doc/theme/material/.icons/material/ab-testing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/abjad-arabic.svg b/doc/theme/material/.icons/material/abjad-arabic.svg new file mode 100644 index 00000000..3cf54edd --- /dev/null +++ b/doc/theme/material/.icons/material/abjad-arabic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/abjad-hebrew.svg b/doc/theme/material/.icons/material/abjad-hebrew.svg new file mode 100644 index 00000000..d7f08c5a --- /dev/null +++ b/doc/theme/material/.icons/material/abjad-hebrew.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/abugida-devanagari.svg b/doc/theme/material/.icons/material/abugida-devanagari.svg new file mode 100644 index 00000000..4dc7c277 --- /dev/null +++ b/doc/theme/material/.icons/material/abugida-devanagari.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/abugida-thai.svg b/doc/theme/material/.icons/material/abugida-thai.svg new file mode 100644 index 00000000..13fc9a0c --- /dev/null +++ b/doc/theme/material/.icons/material/abugida-thai.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/access-point-network-off.svg b/doc/theme/material/.icons/material/access-point-network-off.svg new file mode 100644 index 00000000..1833501d --- /dev/null +++ b/doc/theme/material/.icons/material/access-point-network-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/access-point-network.svg b/doc/theme/material/.icons/material/access-point-network.svg new file mode 100644 index 00000000..17c88daa --- /dev/null +++ b/doc/theme/material/.icons/material/access-point-network.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/access-point.svg b/doc/theme/material/.icons/material/access-point.svg new file mode 100644 index 00000000..c4cd8578 --- /dev/null +++ b/doc/theme/material/.icons/material/access-point.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-alert-outline.svg b/doc/theme/material/.icons/material/account-alert-outline.svg new file mode 100644 index 00000000..22d9ea8b --- /dev/null +++ b/doc/theme/material/.icons/material/account-alert-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-alert.svg b/doc/theme/material/.icons/material/account-alert.svg new file mode 100644 index 00000000..4493a3b8 --- /dev/null +++ b/doc/theme/material/.icons/material/account-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-arrow-left-outline.svg b/doc/theme/material/.icons/material/account-arrow-left-outline.svg new file mode 100644 index 00000000..8d991859 --- /dev/null +++ b/doc/theme/material/.icons/material/account-arrow-left-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-arrow-left.svg b/doc/theme/material/.icons/material/account-arrow-left.svg new file mode 100644 index 00000000..5758aed8 --- /dev/null +++ b/doc/theme/material/.icons/material/account-arrow-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-arrow-right-outline.svg b/doc/theme/material/.icons/material/account-arrow-right-outline.svg new file mode 100644 index 00000000..8a111a7f --- /dev/null +++ b/doc/theme/material/.icons/material/account-arrow-right-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-arrow-right.svg b/doc/theme/material/.icons/material/account-arrow-right.svg new file mode 100644 index 00000000..3eee48a7 --- /dev/null +++ b/doc/theme/material/.icons/material/account-arrow-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-box-multiple-outline.svg b/doc/theme/material/.icons/material/account-box-multiple-outline.svg new file mode 100644 index 00000000..4c213a0a --- /dev/null +++ b/doc/theme/material/.icons/material/account-box-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-box-multiple.svg b/doc/theme/material/.icons/material/account-box-multiple.svg new file mode 100644 index 00000000..6d3b259b --- /dev/null +++ b/doc/theme/material/.icons/material/account-box-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-box-outline.svg b/doc/theme/material/.icons/material/account-box-outline.svg new file mode 100644 index 00000000..c1921440 --- /dev/null +++ b/doc/theme/material/.icons/material/account-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-box.svg b/doc/theme/material/.icons/material/account-box.svg new file mode 100644 index 00000000..e7eed83a --- /dev/null +++ b/doc/theme/material/.icons/material/account-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-cancel-outline.svg b/doc/theme/material/.icons/material/account-cancel-outline.svg new file mode 100644 index 00000000..c2d5e230 --- /dev/null +++ b/doc/theme/material/.icons/material/account-cancel-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-cancel.svg b/doc/theme/material/.icons/material/account-cancel.svg new file mode 100644 index 00000000..18eb2671 --- /dev/null +++ b/doc/theme/material/.icons/material/account-cancel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-cash-outline.svg b/doc/theme/material/.icons/material/account-cash-outline.svg new file mode 100644 index 00000000..91af66d5 --- /dev/null +++ b/doc/theme/material/.icons/material/account-cash-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-cash.svg b/doc/theme/material/.icons/material/account-cash.svg new file mode 100644 index 00000000..d8326762 --- /dev/null +++ b/doc/theme/material/.icons/material/account-cash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-check-outline.svg b/doc/theme/material/.icons/material/account-check-outline.svg new file mode 100644 index 00000000..28f459b0 --- /dev/null +++ b/doc/theme/material/.icons/material/account-check-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-check.svg b/doc/theme/material/.icons/material/account-check.svg new file mode 100644 index 00000000..0217da5e --- /dev/null +++ b/doc/theme/material/.icons/material/account-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-child-circle.svg b/doc/theme/material/.icons/material/account-child-circle.svg new file mode 100644 index 00000000..7f76f571 --- /dev/null +++ b/doc/theme/material/.icons/material/account-child-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-child-outline.svg b/doc/theme/material/.icons/material/account-child-outline.svg new file mode 100644 index 00000000..9fd307a2 --- /dev/null +++ b/doc/theme/material/.icons/material/account-child-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-child.svg b/doc/theme/material/.icons/material/account-child.svg new file mode 100644 index 00000000..0971d37a --- /dev/null +++ b/doc/theme/material/.icons/material/account-child.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-circle-outline.svg b/doc/theme/material/.icons/material/account-circle-outline.svg new file mode 100644 index 00000000..10c6e99e --- /dev/null +++ b/doc/theme/material/.icons/material/account-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-circle.svg b/doc/theme/material/.icons/material/account-circle.svg new file mode 100644 index 00000000..27f3e1d3 --- /dev/null +++ b/doc/theme/material/.icons/material/account-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-clock-outline.svg b/doc/theme/material/.icons/material/account-clock-outline.svg new file mode 100644 index 00000000..574ee3c5 --- /dev/null +++ b/doc/theme/material/.icons/material/account-clock-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-clock.svg b/doc/theme/material/.icons/material/account-clock.svg new file mode 100644 index 00000000..e66aa75f --- /dev/null +++ b/doc/theme/material/.icons/material/account-clock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-cog-outline.svg b/doc/theme/material/.icons/material/account-cog-outline.svg new file mode 100644 index 00000000..235c2f4f --- /dev/null +++ b/doc/theme/material/.icons/material/account-cog-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-cog.svg b/doc/theme/material/.icons/material/account-cog.svg new file mode 100644 index 00000000..ca6a9b37 --- /dev/null +++ b/doc/theme/material/.icons/material/account-cog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-convert-outline.svg b/doc/theme/material/.icons/material/account-convert-outline.svg new file mode 100644 index 00000000..8182fdc3 --- /dev/null +++ b/doc/theme/material/.icons/material/account-convert-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-convert.svg b/doc/theme/material/.icons/material/account-convert.svg new file mode 100644 index 00000000..e2f19e6d --- /dev/null +++ b/doc/theme/material/.icons/material/account-convert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-cowboy-hat.svg b/doc/theme/material/.icons/material/account-cowboy-hat.svg new file mode 100644 index 00000000..d643edf5 --- /dev/null +++ b/doc/theme/material/.icons/material/account-cowboy-hat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-details-outline.svg b/doc/theme/material/.icons/material/account-details-outline.svg new file mode 100644 index 00000000..6de294f1 --- /dev/null +++ b/doc/theme/material/.icons/material/account-details-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-details.svg b/doc/theme/material/.icons/material/account-details.svg new file mode 100644 index 00000000..b94e2e00 --- /dev/null +++ b/doc/theme/material/.icons/material/account-details.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-edit-outline.svg b/doc/theme/material/.icons/material/account-edit-outline.svg new file mode 100644 index 00000000..d0d5cbe8 --- /dev/null +++ b/doc/theme/material/.icons/material/account-edit-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-edit.svg b/doc/theme/material/.icons/material/account-edit.svg new file mode 100644 index 00000000..5366fc08 --- /dev/null +++ b/doc/theme/material/.icons/material/account-edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-group-outline.svg b/doc/theme/material/.icons/material/account-group-outline.svg new file mode 100644 index 00000000..3da8dd50 --- /dev/null +++ b/doc/theme/material/.icons/material/account-group-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-group.svg b/doc/theme/material/.icons/material/account-group.svg new file mode 100644 index 00000000..13cce07a --- /dev/null +++ b/doc/theme/material/.icons/material/account-group.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-hard-hat.svg b/doc/theme/material/.icons/material/account-hard-hat.svg new file mode 100644 index 00000000..a1f17a43 --- /dev/null +++ b/doc/theme/material/.icons/material/account-hard-hat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-heart-outline.svg b/doc/theme/material/.icons/material/account-heart-outline.svg new file mode 100644 index 00000000..0484c996 --- /dev/null +++ b/doc/theme/material/.icons/material/account-heart-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-heart.svg b/doc/theme/material/.icons/material/account-heart.svg new file mode 100644 index 00000000..6d6b30ce --- /dev/null +++ b/doc/theme/material/.icons/material/account-heart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-key-outline.svg b/doc/theme/material/.icons/material/account-key-outline.svg new file mode 100644 index 00000000..2bc79434 --- /dev/null +++ b/doc/theme/material/.icons/material/account-key-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-key.svg b/doc/theme/material/.icons/material/account-key.svg new file mode 100644 index 00000000..19526b29 --- /dev/null +++ b/doc/theme/material/.icons/material/account-key.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-lock-outline.svg b/doc/theme/material/.icons/material/account-lock-outline.svg new file mode 100644 index 00000000..9d9ffe4a --- /dev/null +++ b/doc/theme/material/.icons/material/account-lock-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-lock.svg b/doc/theme/material/.icons/material/account-lock.svg new file mode 100644 index 00000000..c7756675 --- /dev/null +++ b/doc/theme/material/.icons/material/account-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-minus-outline.svg b/doc/theme/material/.icons/material/account-minus-outline.svg new file mode 100644 index 00000000..a35d360b --- /dev/null +++ b/doc/theme/material/.icons/material/account-minus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-minus.svg b/doc/theme/material/.icons/material/account-minus.svg new file mode 100644 index 00000000..ee7d4b84 --- /dev/null +++ b/doc/theme/material/.icons/material/account-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-multiple-check-outline.svg b/doc/theme/material/.icons/material/account-multiple-check-outline.svg new file mode 100644 index 00000000..94fd44d2 --- /dev/null +++ b/doc/theme/material/.icons/material/account-multiple-check-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-multiple-check.svg b/doc/theme/material/.icons/material/account-multiple-check.svg new file mode 100644 index 00000000..92f634ed --- /dev/null +++ b/doc/theme/material/.icons/material/account-multiple-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-multiple-minus-outline.svg b/doc/theme/material/.icons/material/account-multiple-minus-outline.svg new file mode 100644 index 00000000..3ca945cf --- /dev/null +++ b/doc/theme/material/.icons/material/account-multiple-minus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-multiple-minus.svg b/doc/theme/material/.icons/material/account-multiple-minus.svg new file mode 100644 index 00000000..d6f39cf0 --- /dev/null +++ b/doc/theme/material/.icons/material/account-multiple-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-multiple-outline.svg b/doc/theme/material/.icons/material/account-multiple-outline.svg new file mode 100644 index 00000000..0e148191 --- /dev/null +++ b/doc/theme/material/.icons/material/account-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-multiple-plus-outline.svg b/doc/theme/material/.icons/material/account-multiple-plus-outline.svg new file mode 100644 index 00000000..c7ccb424 --- /dev/null +++ b/doc/theme/material/.icons/material/account-multiple-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-multiple-plus.svg b/doc/theme/material/.icons/material/account-multiple-plus.svg new file mode 100644 index 00000000..6c945342 --- /dev/null +++ b/doc/theme/material/.icons/material/account-multiple-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-multiple-remove-outline.svg b/doc/theme/material/.icons/material/account-multiple-remove-outline.svg new file mode 100644 index 00000000..c6e88d18 --- /dev/null +++ b/doc/theme/material/.icons/material/account-multiple-remove-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-multiple-remove.svg b/doc/theme/material/.icons/material/account-multiple-remove.svg new file mode 100644 index 00000000..b1c8d169 --- /dev/null +++ b/doc/theme/material/.icons/material/account-multiple-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-multiple.svg b/doc/theme/material/.icons/material/account-multiple.svg new file mode 100644 index 00000000..d3b5e9cd --- /dev/null +++ b/doc/theme/material/.icons/material/account-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-music-outline.svg b/doc/theme/material/.icons/material/account-music-outline.svg new file mode 100644 index 00000000..647a7900 --- /dev/null +++ b/doc/theme/material/.icons/material/account-music-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-music.svg b/doc/theme/material/.icons/material/account-music.svg new file mode 100644 index 00000000..8e362689 --- /dev/null +++ b/doc/theme/material/.icons/material/account-music.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-network-outline.svg b/doc/theme/material/.icons/material/account-network-outline.svg new file mode 100644 index 00000000..b96c6f18 --- /dev/null +++ b/doc/theme/material/.icons/material/account-network-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-network.svg b/doc/theme/material/.icons/material/account-network.svg new file mode 100644 index 00000000..792904df --- /dev/null +++ b/doc/theme/material/.icons/material/account-network.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-off-outline.svg b/doc/theme/material/.icons/material/account-off-outline.svg new file mode 100644 index 00000000..25acfe9d --- /dev/null +++ b/doc/theme/material/.icons/material/account-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-off.svg b/doc/theme/material/.icons/material/account-off.svg new file mode 100644 index 00000000..61d494d6 --- /dev/null +++ b/doc/theme/material/.icons/material/account-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-outline.svg b/doc/theme/material/.icons/material/account-outline.svg new file mode 100644 index 00000000..ac62ab0b --- /dev/null +++ b/doc/theme/material/.icons/material/account-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-plus-outline.svg b/doc/theme/material/.icons/material/account-plus-outline.svg new file mode 100644 index 00000000..b0e30e4c --- /dev/null +++ b/doc/theme/material/.icons/material/account-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-plus.svg b/doc/theme/material/.icons/material/account-plus.svg new file mode 100644 index 00000000..6c555f63 --- /dev/null +++ b/doc/theme/material/.icons/material/account-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-question-outline.svg b/doc/theme/material/.icons/material/account-question-outline.svg new file mode 100644 index 00000000..0f508538 --- /dev/null +++ b/doc/theme/material/.icons/material/account-question-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-question.svg b/doc/theme/material/.icons/material/account-question.svg new file mode 100644 index 00000000..8c530708 --- /dev/null +++ b/doc/theme/material/.icons/material/account-question.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-remove-outline.svg b/doc/theme/material/.icons/material/account-remove-outline.svg new file mode 100644 index 00000000..e0255b2e --- /dev/null +++ b/doc/theme/material/.icons/material/account-remove-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-remove.svg b/doc/theme/material/.icons/material/account-remove.svg new file mode 100644 index 00000000..15229213 --- /dev/null +++ b/doc/theme/material/.icons/material/account-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-search-outline.svg b/doc/theme/material/.icons/material/account-search-outline.svg new file mode 100644 index 00000000..f71a0365 --- /dev/null +++ b/doc/theme/material/.icons/material/account-search-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-search.svg b/doc/theme/material/.icons/material/account-search.svg new file mode 100644 index 00000000..debbcee0 --- /dev/null +++ b/doc/theme/material/.icons/material/account-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-settings-outline.svg b/doc/theme/material/.icons/material/account-settings-outline.svg new file mode 100644 index 00000000..811dc13f --- /dev/null +++ b/doc/theme/material/.icons/material/account-settings-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-settings.svg b/doc/theme/material/.icons/material/account-settings.svg new file mode 100644 index 00000000..32cf47ae --- /dev/null +++ b/doc/theme/material/.icons/material/account-settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-star-outline.svg b/doc/theme/material/.icons/material/account-star-outline.svg new file mode 100644 index 00000000..ca5d2953 --- /dev/null +++ b/doc/theme/material/.icons/material/account-star-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-star.svg b/doc/theme/material/.icons/material/account-star.svg new file mode 100644 index 00000000..1eed03cf --- /dev/null +++ b/doc/theme/material/.icons/material/account-star.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-supervisor-circle.svg b/doc/theme/material/.icons/material/account-supervisor-circle.svg new file mode 100644 index 00000000..2faae88f --- /dev/null +++ b/doc/theme/material/.icons/material/account-supervisor-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-supervisor-outline.svg b/doc/theme/material/.icons/material/account-supervisor-outline.svg new file mode 100644 index 00000000..e38f5bc0 --- /dev/null +++ b/doc/theme/material/.icons/material/account-supervisor-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-supervisor.svg b/doc/theme/material/.icons/material/account-supervisor.svg new file mode 100644 index 00000000..acf3dcbe --- /dev/null +++ b/doc/theme/material/.icons/material/account-supervisor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-switch-outline.svg b/doc/theme/material/.icons/material/account-switch-outline.svg new file mode 100644 index 00000000..052dada5 --- /dev/null +++ b/doc/theme/material/.icons/material/account-switch-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-switch.svg b/doc/theme/material/.icons/material/account-switch.svg new file mode 100644 index 00000000..0957cfce --- /dev/null +++ b/doc/theme/material/.icons/material/account-switch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-tie-outline.svg b/doc/theme/material/.icons/material/account-tie-outline.svg new file mode 100644 index 00000000..c8df2c90 --- /dev/null +++ b/doc/theme/material/.icons/material/account-tie-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-tie-voice-off-outline.svg b/doc/theme/material/.icons/material/account-tie-voice-off-outline.svg new file mode 100644 index 00000000..be373676 --- /dev/null +++ b/doc/theme/material/.icons/material/account-tie-voice-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-tie-voice-off.svg b/doc/theme/material/.icons/material/account-tie-voice-off.svg new file mode 100644 index 00000000..3468af56 --- /dev/null +++ b/doc/theme/material/.icons/material/account-tie-voice-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-tie-voice-outline.svg b/doc/theme/material/.icons/material/account-tie-voice-outline.svg new file mode 100644 index 00000000..64d77268 --- /dev/null +++ b/doc/theme/material/.icons/material/account-tie-voice-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-tie-voice.svg b/doc/theme/material/.icons/material/account-tie-voice.svg new file mode 100644 index 00000000..80be2ac9 --- /dev/null +++ b/doc/theme/material/.icons/material/account-tie-voice.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-tie.svg b/doc/theme/material/.icons/material/account-tie.svg new file mode 100644 index 00000000..c378e7ec --- /dev/null +++ b/doc/theme/material/.icons/material/account-tie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account-voice.svg b/doc/theme/material/.icons/material/account-voice.svg new file mode 100644 index 00000000..a079819e --- /dev/null +++ b/doc/theme/material/.icons/material/account-voice.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/account.svg b/doc/theme/material/.icons/material/account.svg new file mode 100644 index 00000000..8c8e27ce --- /dev/null +++ b/doc/theme/material/.icons/material/account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/adjust.svg b/doc/theme/material/.icons/material/adjust.svg new file mode 100644 index 00000000..27c4ee78 --- /dev/null +++ b/doc/theme/material/.icons/material/adjust.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/adobe-acrobat.svg b/doc/theme/material/.icons/material/adobe-acrobat.svg new file mode 100644 index 00000000..136692ce --- /dev/null +++ b/doc/theme/material/.icons/material/adobe-acrobat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/adobe.svg b/doc/theme/material/.icons/material/adobe.svg new file mode 100644 index 00000000..815cb957 --- /dev/null +++ b/doc/theme/material/.icons/material/adobe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/air-conditioner.svg b/doc/theme/material/.icons/material/air-conditioner.svg new file mode 100644 index 00000000..7998c01c --- /dev/null +++ b/doc/theme/material/.icons/material/air-conditioner.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/air-filter.svg b/doc/theme/material/.icons/material/air-filter.svg new file mode 100644 index 00000000..9c0d6228 --- /dev/null +++ b/doc/theme/material/.icons/material/air-filter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/air-horn.svg b/doc/theme/material/.icons/material/air-horn.svg new file mode 100644 index 00000000..c50ff8fc --- /dev/null +++ b/doc/theme/material/.icons/material/air-horn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/air-humidifier.svg b/doc/theme/material/.icons/material/air-humidifier.svg new file mode 100644 index 00000000..ec0fca9c --- /dev/null +++ b/doc/theme/material/.icons/material/air-humidifier.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/air-purifier.svg b/doc/theme/material/.icons/material/air-purifier.svg new file mode 100644 index 00000000..89e541ff --- /dev/null +++ b/doc/theme/material/.icons/material/air-purifier.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/airbag.svg b/doc/theme/material/.icons/material/airbag.svg new file mode 100644 index 00000000..8919f9a9 --- /dev/null +++ b/doc/theme/material/.icons/material/airbag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/airballoon-outline.svg b/doc/theme/material/.icons/material/airballoon-outline.svg new file mode 100644 index 00000000..d9a93bf6 --- /dev/null +++ b/doc/theme/material/.icons/material/airballoon-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/airballoon.svg b/doc/theme/material/.icons/material/airballoon.svg new file mode 100644 index 00000000..8c3acccb --- /dev/null +++ b/doc/theme/material/.icons/material/airballoon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/airplane-landing.svg b/doc/theme/material/.icons/material/airplane-landing.svg new file mode 100644 index 00000000..5f0582c3 --- /dev/null +++ b/doc/theme/material/.icons/material/airplane-landing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/airplane-off.svg b/doc/theme/material/.icons/material/airplane-off.svg new file mode 100644 index 00000000..f0b8669f --- /dev/null +++ b/doc/theme/material/.icons/material/airplane-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/airplane-takeoff.svg b/doc/theme/material/.icons/material/airplane-takeoff.svg new file mode 100644 index 00000000..bf9e34d2 --- /dev/null +++ b/doc/theme/material/.icons/material/airplane-takeoff.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/airplane.svg b/doc/theme/material/.icons/material/airplane.svg new file mode 100644 index 00000000..6c3d6855 --- /dev/null +++ b/doc/theme/material/.icons/material/airplane.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/airport.svg b/doc/theme/material/.icons/material/airport.svg new file mode 100644 index 00000000..988c0e76 --- /dev/null +++ b/doc/theme/material/.icons/material/airport.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alarm-bell.svg b/doc/theme/material/.icons/material/alarm-bell.svg new file mode 100644 index 00000000..77d5f8c5 --- /dev/null +++ b/doc/theme/material/.icons/material/alarm-bell.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alarm-check.svg b/doc/theme/material/.icons/material/alarm-check.svg new file mode 100644 index 00000000..b0c5f450 --- /dev/null +++ b/doc/theme/material/.icons/material/alarm-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alarm-light-outline.svg b/doc/theme/material/.icons/material/alarm-light-outline.svg new file mode 100644 index 00000000..b667f8e7 --- /dev/null +++ b/doc/theme/material/.icons/material/alarm-light-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alarm-light.svg b/doc/theme/material/.icons/material/alarm-light.svg new file mode 100644 index 00000000..5dd31089 --- /dev/null +++ b/doc/theme/material/.icons/material/alarm-light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alarm-multiple.svg b/doc/theme/material/.icons/material/alarm-multiple.svg new file mode 100644 index 00000000..81494666 --- /dev/null +++ b/doc/theme/material/.icons/material/alarm-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alarm-note-off.svg b/doc/theme/material/.icons/material/alarm-note-off.svg new file mode 100644 index 00000000..1e346a8c --- /dev/null +++ b/doc/theme/material/.icons/material/alarm-note-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alarm-note.svg b/doc/theme/material/.icons/material/alarm-note.svg new file mode 100644 index 00000000..339cd851 --- /dev/null +++ b/doc/theme/material/.icons/material/alarm-note.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alarm-off.svg b/doc/theme/material/.icons/material/alarm-off.svg new file mode 100644 index 00000000..b338a7b2 --- /dev/null +++ b/doc/theme/material/.icons/material/alarm-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alarm-plus.svg b/doc/theme/material/.icons/material/alarm-plus.svg new file mode 100644 index 00000000..02c01a75 --- /dev/null +++ b/doc/theme/material/.icons/material/alarm-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alarm-snooze.svg b/doc/theme/material/.icons/material/alarm-snooze.svg new file mode 100644 index 00000000..5c989942 --- /dev/null +++ b/doc/theme/material/.icons/material/alarm-snooze.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alarm.svg b/doc/theme/material/.icons/material/alarm.svg new file mode 100644 index 00000000..69b39770 --- /dev/null +++ b/doc/theme/material/.icons/material/alarm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/album.svg b/doc/theme/material/.icons/material/album.svg new file mode 100644 index 00000000..4ed9b553 --- /dev/null +++ b/doc/theme/material/.icons/material/album.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alert-box-outline.svg b/doc/theme/material/.icons/material/alert-box-outline.svg new file mode 100644 index 00000000..478da97b --- /dev/null +++ b/doc/theme/material/.icons/material/alert-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alert-box.svg b/doc/theme/material/.icons/material/alert-box.svg new file mode 100644 index 00000000..cc8f7717 --- /dev/null +++ b/doc/theme/material/.icons/material/alert-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alert-circle-check-outline.svg b/doc/theme/material/.icons/material/alert-circle-check-outline.svg new file mode 100644 index 00000000..9af74c92 --- /dev/null +++ b/doc/theme/material/.icons/material/alert-circle-check-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alert-circle-check.svg b/doc/theme/material/.icons/material/alert-circle-check.svg new file mode 100644 index 00000000..70aa7be5 --- /dev/null +++ b/doc/theme/material/.icons/material/alert-circle-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alert-circle-outline.svg b/doc/theme/material/.icons/material/alert-circle-outline.svg new file mode 100644 index 00000000..c5a93e71 --- /dev/null +++ b/doc/theme/material/.icons/material/alert-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alert-circle.svg b/doc/theme/material/.icons/material/alert-circle.svg new file mode 100644 index 00000000..ef4d3e65 --- /dev/null +++ b/doc/theme/material/.icons/material/alert-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alert-decagram-outline.svg b/doc/theme/material/.icons/material/alert-decagram-outline.svg new file mode 100644 index 00000000..e6b63419 --- /dev/null +++ b/doc/theme/material/.icons/material/alert-decagram-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alert-decagram.svg b/doc/theme/material/.icons/material/alert-decagram.svg new file mode 100644 index 00000000..800081b3 --- /dev/null +++ b/doc/theme/material/.icons/material/alert-decagram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alert-octagon-outline.svg b/doc/theme/material/.icons/material/alert-octagon-outline.svg new file mode 100644 index 00000000..6509fa04 --- /dev/null +++ b/doc/theme/material/.icons/material/alert-octagon-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alert-octagon.svg b/doc/theme/material/.icons/material/alert-octagon.svg new file mode 100644 index 00000000..68b09831 --- /dev/null +++ b/doc/theme/material/.icons/material/alert-octagon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alert-octagram-outline.svg b/doc/theme/material/.icons/material/alert-octagram-outline.svg new file mode 100644 index 00000000..bfcd21ab --- /dev/null +++ b/doc/theme/material/.icons/material/alert-octagram-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alert-octagram.svg b/doc/theme/material/.icons/material/alert-octagram.svg new file mode 100644 index 00000000..8887f862 --- /dev/null +++ b/doc/theme/material/.icons/material/alert-octagram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alert-outline.svg b/doc/theme/material/.icons/material/alert-outline.svg new file mode 100644 index 00000000..36d1e5b7 --- /dev/null +++ b/doc/theme/material/.icons/material/alert-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alert-rhombus-outline.svg b/doc/theme/material/.icons/material/alert-rhombus-outline.svg new file mode 100644 index 00000000..880324e4 --- /dev/null +++ b/doc/theme/material/.icons/material/alert-rhombus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alert-rhombus.svg b/doc/theme/material/.icons/material/alert-rhombus.svg new file mode 100644 index 00000000..498a94d6 --- /dev/null +++ b/doc/theme/material/.icons/material/alert-rhombus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alert.svg b/doc/theme/material/.icons/material/alert.svg new file mode 100644 index 00000000..b5473e8a --- /dev/null +++ b/doc/theme/material/.icons/material/alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alien-outline.svg b/doc/theme/material/.icons/material/alien-outline.svg new file mode 100644 index 00000000..83f7d459 --- /dev/null +++ b/doc/theme/material/.icons/material/alien-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alien.svg b/doc/theme/material/.icons/material/alien.svg new file mode 100644 index 00000000..267d2966 --- /dev/null +++ b/doc/theme/material/.icons/material/alien.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/align-horizontal-center.svg b/doc/theme/material/.icons/material/align-horizontal-center.svg new file mode 100644 index 00000000..39280372 --- /dev/null +++ b/doc/theme/material/.icons/material/align-horizontal-center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/align-horizontal-left.svg b/doc/theme/material/.icons/material/align-horizontal-left.svg new file mode 100644 index 00000000..f98c4b38 --- /dev/null +++ b/doc/theme/material/.icons/material/align-horizontal-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/align-horizontal-right.svg b/doc/theme/material/.icons/material/align-horizontal-right.svg new file mode 100644 index 00000000..7c316774 --- /dev/null +++ b/doc/theme/material/.icons/material/align-horizontal-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/align-vertical-bottom.svg b/doc/theme/material/.icons/material/align-vertical-bottom.svg new file mode 100644 index 00000000..5bc04237 --- /dev/null +++ b/doc/theme/material/.icons/material/align-vertical-bottom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/align-vertical-center.svg b/doc/theme/material/.icons/material/align-vertical-center.svg new file mode 100644 index 00000000..55af3a3e --- /dev/null +++ b/doc/theme/material/.icons/material/align-vertical-center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/align-vertical-top.svg b/doc/theme/material/.icons/material/align-vertical-top.svg new file mode 100644 index 00000000..08d44900 --- /dev/null +++ b/doc/theme/material/.icons/material/align-vertical-top.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/all-inclusive.svg b/doc/theme/material/.icons/material/all-inclusive.svg new file mode 100644 index 00000000..ea8ba39d --- /dev/null +++ b/doc/theme/material/.icons/material/all-inclusive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/allergy.svg b/doc/theme/material/.icons/material/allergy.svg new file mode 100644 index 00000000..0b3cbc5c --- /dev/null +++ b/doc/theme/material/.icons/material/allergy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-a-box-outline.svg b/doc/theme/material/.icons/material/alpha-a-box-outline.svg new file mode 100644 index 00000000..9b874994 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-a-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-a-box.svg b/doc/theme/material/.icons/material/alpha-a-box.svg new file mode 100644 index 00000000..4c83f1fe --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-a-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-a-circle-outline.svg b/doc/theme/material/.icons/material/alpha-a-circle-outline.svg new file mode 100644 index 00000000..672f598e --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-a-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-a-circle.svg b/doc/theme/material/.icons/material/alpha-a-circle.svg new file mode 100644 index 00000000..bf856138 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-a-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-a.svg b/doc/theme/material/.icons/material/alpha-a.svg new file mode 100644 index 00000000..c9d66ee6 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-a.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-b-box-outline.svg b/doc/theme/material/.icons/material/alpha-b-box-outline.svg new file mode 100644 index 00000000..3ca92108 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-b-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-b-box.svg b/doc/theme/material/.icons/material/alpha-b-box.svg new file mode 100644 index 00000000..41129985 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-b-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-b-circle-outline.svg b/doc/theme/material/.icons/material/alpha-b-circle-outline.svg new file mode 100644 index 00000000..3d3106b7 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-b-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-b-circle.svg b/doc/theme/material/.icons/material/alpha-b-circle.svg new file mode 100644 index 00000000..49797d61 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-b-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-b.svg b/doc/theme/material/.icons/material/alpha-b.svg new file mode 100644 index 00000000..7f536b56 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-b.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-c-box-outline.svg b/doc/theme/material/.icons/material/alpha-c-box-outline.svg new file mode 100644 index 00000000..aad88088 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-c-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-c-box.svg b/doc/theme/material/.icons/material/alpha-c-box.svg new file mode 100644 index 00000000..5ec96817 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-c-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-c-circle-outline.svg b/doc/theme/material/.icons/material/alpha-c-circle-outline.svg new file mode 100644 index 00000000..0be86cae --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-c-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-c-circle.svg b/doc/theme/material/.icons/material/alpha-c-circle.svg new file mode 100644 index 00000000..0ac61aa6 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-c-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-c.svg b/doc/theme/material/.icons/material/alpha-c.svg new file mode 100644 index 00000000..6f0a107a --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-c.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-d-box-outline.svg b/doc/theme/material/.icons/material/alpha-d-box-outline.svg new file mode 100644 index 00000000..33a30621 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-d-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-d-box.svg b/doc/theme/material/.icons/material/alpha-d-box.svg new file mode 100644 index 00000000..e8f62099 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-d-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-d-circle-outline.svg b/doc/theme/material/.icons/material/alpha-d-circle-outline.svg new file mode 100644 index 00000000..0bd16e49 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-d-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-d-circle.svg b/doc/theme/material/.icons/material/alpha-d-circle.svg new file mode 100644 index 00000000..59c63b75 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-d-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-d.svg b/doc/theme/material/.icons/material/alpha-d.svg new file mode 100644 index 00000000..0722a99f --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-d.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-e-box-outline.svg b/doc/theme/material/.icons/material/alpha-e-box-outline.svg new file mode 100644 index 00000000..80e1a7b4 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-e-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-e-box.svg b/doc/theme/material/.icons/material/alpha-e-box.svg new file mode 100644 index 00000000..31e8cab3 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-e-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-e-circle-outline.svg b/doc/theme/material/.icons/material/alpha-e-circle-outline.svg new file mode 100644 index 00000000..ed633c03 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-e-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-e-circle.svg b/doc/theme/material/.icons/material/alpha-e-circle.svg new file mode 100644 index 00000000..1e096ad6 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-e-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-e.svg b/doc/theme/material/.icons/material/alpha-e.svg new file mode 100644 index 00000000..e1f2f09b --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-e.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-f-box-outline.svg b/doc/theme/material/.icons/material/alpha-f-box-outline.svg new file mode 100644 index 00000000..d2b68b8e --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-f-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-f-box.svg b/doc/theme/material/.icons/material/alpha-f-box.svg new file mode 100644 index 00000000..cfc263d1 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-f-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-f-circle-outline.svg b/doc/theme/material/.icons/material/alpha-f-circle-outline.svg new file mode 100644 index 00000000..5937a4b9 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-f-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-f-circle.svg b/doc/theme/material/.icons/material/alpha-f-circle.svg new file mode 100644 index 00000000..58ce2df1 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-f-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-f.svg b/doc/theme/material/.icons/material/alpha-f.svg new file mode 100644 index 00000000..e1bb4343 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-g-box-outline.svg b/doc/theme/material/.icons/material/alpha-g-box-outline.svg new file mode 100644 index 00000000..2ba9ac0e --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-g-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-g-box.svg b/doc/theme/material/.icons/material/alpha-g-box.svg new file mode 100644 index 00000000..db424219 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-g-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-g-circle-outline.svg b/doc/theme/material/.icons/material/alpha-g-circle-outline.svg new file mode 100644 index 00000000..009c655d --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-g-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-g-circle.svg b/doc/theme/material/.icons/material/alpha-g-circle.svg new file mode 100644 index 00000000..ba47383d --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-g-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-g.svg b/doc/theme/material/.icons/material/alpha-g.svg new file mode 100644 index 00000000..03b6319a --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-g.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-h-box-outline.svg b/doc/theme/material/.icons/material/alpha-h-box-outline.svg new file mode 100644 index 00000000..149cc78a --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-h-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-h-box.svg b/doc/theme/material/.icons/material/alpha-h-box.svg new file mode 100644 index 00000000..cf243df7 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-h-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-h-circle-outline.svg b/doc/theme/material/.icons/material/alpha-h-circle-outline.svg new file mode 100644 index 00000000..31636eb9 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-h-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-h-circle.svg b/doc/theme/material/.icons/material/alpha-h-circle.svg new file mode 100644 index 00000000..fa53e021 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-h-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-h.svg b/doc/theme/material/.icons/material/alpha-h.svg new file mode 100644 index 00000000..3ab09b95 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-h.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-i-box-outline.svg b/doc/theme/material/.icons/material/alpha-i-box-outline.svg new file mode 100644 index 00000000..32fd60fa --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-i-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-i-box.svg b/doc/theme/material/.icons/material/alpha-i-box.svg new file mode 100644 index 00000000..8ef7eb64 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-i-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-i-circle-outline.svg b/doc/theme/material/.icons/material/alpha-i-circle-outline.svg new file mode 100644 index 00000000..3fd5f41f --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-i-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-i-circle.svg b/doc/theme/material/.icons/material/alpha-i-circle.svg new file mode 100644 index 00000000..e908474f --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-i-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-i.svg b/doc/theme/material/.icons/material/alpha-i.svg new file mode 100644 index 00000000..a02ab545 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-i.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-j-box-outline.svg b/doc/theme/material/.icons/material/alpha-j-box-outline.svg new file mode 100644 index 00000000..7698dc73 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-j-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-j-box.svg b/doc/theme/material/.icons/material/alpha-j-box.svg new file mode 100644 index 00000000..79fa44b1 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-j-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-j-circle-outline.svg b/doc/theme/material/.icons/material/alpha-j-circle-outline.svg new file mode 100644 index 00000000..ee1812bb --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-j-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-j-circle.svg b/doc/theme/material/.icons/material/alpha-j-circle.svg new file mode 100644 index 00000000..92786a94 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-j-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-j.svg b/doc/theme/material/.icons/material/alpha-j.svg new file mode 100644 index 00000000..024fc3e0 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-j.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-k-box-outline.svg b/doc/theme/material/.icons/material/alpha-k-box-outline.svg new file mode 100644 index 00000000..1ac4519d --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-k-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-k-box.svg b/doc/theme/material/.icons/material/alpha-k-box.svg new file mode 100644 index 00000000..290cb09b --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-k-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-k-circle-outline.svg b/doc/theme/material/.icons/material/alpha-k-circle-outline.svg new file mode 100644 index 00000000..4a9cc669 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-k-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-k-circle.svg b/doc/theme/material/.icons/material/alpha-k-circle.svg new file mode 100644 index 00000000..dbb5d74f --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-k-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-k.svg b/doc/theme/material/.icons/material/alpha-k.svg new file mode 100644 index 00000000..365868ac --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-k.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-l-box-outline.svg b/doc/theme/material/.icons/material/alpha-l-box-outline.svg new file mode 100644 index 00000000..363370d6 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-l-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-l-box.svg b/doc/theme/material/.icons/material/alpha-l-box.svg new file mode 100644 index 00000000..12641c8f --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-l-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-l-circle-outline.svg b/doc/theme/material/.icons/material/alpha-l-circle-outline.svg new file mode 100644 index 00000000..52436e02 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-l-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-l-circle.svg b/doc/theme/material/.icons/material/alpha-l-circle.svg new file mode 100644 index 00000000..c2bac6c3 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-l-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-l.svg b/doc/theme/material/.icons/material/alpha-l.svg new file mode 100644 index 00000000..f3ebde28 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-l.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-m-box-outline.svg b/doc/theme/material/.icons/material/alpha-m-box-outline.svg new file mode 100644 index 00000000..b6b78d28 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-m-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-m-box.svg b/doc/theme/material/.icons/material/alpha-m-box.svg new file mode 100644 index 00000000..08732d0b --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-m-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-m-circle-outline.svg b/doc/theme/material/.icons/material/alpha-m-circle-outline.svg new file mode 100644 index 00000000..6be9ffdb --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-m-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-m-circle.svg b/doc/theme/material/.icons/material/alpha-m-circle.svg new file mode 100644 index 00000000..b07275d8 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-m-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-m.svg b/doc/theme/material/.icons/material/alpha-m.svg new file mode 100644 index 00000000..5e1c5a54 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-m.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-n-box-outline.svg b/doc/theme/material/.icons/material/alpha-n-box-outline.svg new file mode 100644 index 00000000..0429e49c --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-n-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-n-box.svg b/doc/theme/material/.icons/material/alpha-n-box.svg new file mode 100644 index 00000000..cd3c704d --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-n-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-n-circle-outline.svg b/doc/theme/material/.icons/material/alpha-n-circle-outline.svg new file mode 100644 index 00000000..e023e936 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-n-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-n-circle.svg b/doc/theme/material/.icons/material/alpha-n-circle.svg new file mode 100644 index 00000000..b986f3d2 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-n-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-n.svg b/doc/theme/material/.icons/material/alpha-n.svg new file mode 100644 index 00000000..3e20f7fb --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-n.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-o-box-outline.svg b/doc/theme/material/.icons/material/alpha-o-box-outline.svg new file mode 100644 index 00000000..feda654b --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-o-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-o-box.svg b/doc/theme/material/.icons/material/alpha-o-box.svg new file mode 100644 index 00000000..1dffe543 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-o-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-o-circle-outline.svg b/doc/theme/material/.icons/material/alpha-o-circle-outline.svg new file mode 100644 index 00000000..bdbd537d --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-o-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-o-circle.svg b/doc/theme/material/.icons/material/alpha-o-circle.svg new file mode 100644 index 00000000..9c22b102 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-o-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-o.svg b/doc/theme/material/.icons/material/alpha-o.svg new file mode 100644 index 00000000..7b55d392 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-o.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-p-box-outline.svg b/doc/theme/material/.icons/material/alpha-p-box-outline.svg new file mode 100644 index 00000000..5851cb37 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-p-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-p-box.svg b/doc/theme/material/.icons/material/alpha-p-box.svg new file mode 100644 index 00000000..45fab6f4 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-p-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-p-circle-outline.svg b/doc/theme/material/.icons/material/alpha-p-circle-outline.svg new file mode 100644 index 00000000..c7835323 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-p-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-p-circle.svg b/doc/theme/material/.icons/material/alpha-p-circle.svg new file mode 100644 index 00000000..ff1c3973 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-p-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-p.svg b/doc/theme/material/.icons/material/alpha-p.svg new file mode 100644 index 00000000..438597e4 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-p.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-q-box-outline.svg b/doc/theme/material/.icons/material/alpha-q-box-outline.svg new file mode 100644 index 00000000..abf30dc0 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-q-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-q-box.svg b/doc/theme/material/.icons/material/alpha-q-box.svg new file mode 100644 index 00000000..a3bfaa82 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-q-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-q-circle-outline.svg b/doc/theme/material/.icons/material/alpha-q-circle-outline.svg new file mode 100644 index 00000000..67fe62ca --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-q-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-q-circle.svg b/doc/theme/material/.icons/material/alpha-q-circle.svg new file mode 100644 index 00000000..f5bf425b --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-q-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-q.svg b/doc/theme/material/.icons/material/alpha-q.svg new file mode 100644 index 00000000..fa3e76ef --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-q.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-r-box-outline.svg b/doc/theme/material/.icons/material/alpha-r-box-outline.svg new file mode 100644 index 00000000..3913c45e --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-r-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-r-box.svg b/doc/theme/material/.icons/material/alpha-r-box.svg new file mode 100644 index 00000000..9c390730 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-r-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-r-circle-outline.svg b/doc/theme/material/.icons/material/alpha-r-circle-outline.svg new file mode 100644 index 00000000..12a079d8 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-r-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-r-circle.svg b/doc/theme/material/.icons/material/alpha-r-circle.svg new file mode 100644 index 00000000..a626740f --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-r-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-r.svg b/doc/theme/material/.icons/material/alpha-r.svg new file mode 100644 index 00000000..551e4390 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-r.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-s-box-outline.svg b/doc/theme/material/.icons/material/alpha-s-box-outline.svg new file mode 100644 index 00000000..d4051ef7 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-s-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-s-box.svg b/doc/theme/material/.icons/material/alpha-s-box.svg new file mode 100644 index 00000000..9622fb3b --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-s-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-s-circle-outline.svg b/doc/theme/material/.icons/material/alpha-s-circle-outline.svg new file mode 100644 index 00000000..e7310b5e --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-s-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-s-circle.svg b/doc/theme/material/.icons/material/alpha-s-circle.svg new file mode 100644 index 00000000..77558cf1 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-s-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-s.svg b/doc/theme/material/.icons/material/alpha-s.svg new file mode 100644 index 00000000..f11da32d --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-s.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-t-box-outline.svg b/doc/theme/material/.icons/material/alpha-t-box-outline.svg new file mode 100644 index 00000000..ecf2102b --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-t-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-t-box.svg b/doc/theme/material/.icons/material/alpha-t-box.svg new file mode 100644 index 00000000..8c3cb4bf --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-t-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-t-circle-outline.svg b/doc/theme/material/.icons/material/alpha-t-circle-outline.svg new file mode 100644 index 00000000..64e2f2f8 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-t-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-t-circle.svg b/doc/theme/material/.icons/material/alpha-t-circle.svg new file mode 100644 index 00000000..f356e7bd --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-t-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-t.svg b/doc/theme/material/.icons/material/alpha-t.svg new file mode 100644 index 00000000..26f7ad9d --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-t.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-u-box-outline.svg b/doc/theme/material/.icons/material/alpha-u-box-outline.svg new file mode 100644 index 00000000..8374e32f --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-u-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-u-box.svg b/doc/theme/material/.icons/material/alpha-u-box.svg new file mode 100644 index 00000000..f91c6fc0 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-u-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-u-circle-outline.svg b/doc/theme/material/.icons/material/alpha-u-circle-outline.svg new file mode 100644 index 00000000..d840c19d --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-u-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-u-circle.svg b/doc/theme/material/.icons/material/alpha-u-circle.svg new file mode 100644 index 00000000..e0d395df --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-u-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-u.svg b/doc/theme/material/.icons/material/alpha-u.svg new file mode 100644 index 00000000..aec7b135 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-u.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-v-box-outline.svg b/doc/theme/material/.icons/material/alpha-v-box-outline.svg new file mode 100644 index 00000000..79d243f9 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-v-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-v-box.svg b/doc/theme/material/.icons/material/alpha-v-box.svg new file mode 100644 index 00000000..978e0bce --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-v-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-v-circle-outline.svg b/doc/theme/material/.icons/material/alpha-v-circle-outline.svg new file mode 100644 index 00000000..e435df33 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-v-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-v-circle.svg b/doc/theme/material/.icons/material/alpha-v-circle.svg new file mode 100644 index 00000000..da5484c8 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-v-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-v.svg b/doc/theme/material/.icons/material/alpha-v.svg new file mode 100644 index 00000000..e3ca9da3 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-v.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-w-box-outline.svg b/doc/theme/material/.icons/material/alpha-w-box-outline.svg new file mode 100644 index 00000000..d3a16898 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-w-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-w-box.svg b/doc/theme/material/.icons/material/alpha-w-box.svg new file mode 100644 index 00000000..7565e076 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-w-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-w-circle-outline.svg b/doc/theme/material/.icons/material/alpha-w-circle-outline.svg new file mode 100644 index 00000000..8ece081d --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-w-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-w-circle.svg b/doc/theme/material/.icons/material/alpha-w-circle.svg new file mode 100644 index 00000000..eab29ece --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-w-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-w.svg b/doc/theme/material/.icons/material/alpha-w.svg new file mode 100644 index 00000000..fcd4844b --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-w.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-x-box-outline.svg b/doc/theme/material/.icons/material/alpha-x-box-outline.svg new file mode 100644 index 00000000..3aac7a5b --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-x-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-x-box.svg b/doc/theme/material/.icons/material/alpha-x-box.svg new file mode 100644 index 00000000..c809a34a --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-x-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-x-circle-outline.svg b/doc/theme/material/.icons/material/alpha-x-circle-outline.svg new file mode 100644 index 00000000..8f1152aa --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-x-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-x-circle.svg b/doc/theme/material/.icons/material/alpha-x-circle.svg new file mode 100644 index 00000000..ca7d58f1 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-x-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-x.svg b/doc/theme/material/.icons/material/alpha-x.svg new file mode 100644 index 00000000..4b736b5b --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-x.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-y-box-outline.svg b/doc/theme/material/.icons/material/alpha-y-box-outline.svg new file mode 100644 index 00000000..a090d126 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-y-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-y-box.svg b/doc/theme/material/.icons/material/alpha-y-box.svg new file mode 100644 index 00000000..30e5130c --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-y-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-y-circle-outline.svg b/doc/theme/material/.icons/material/alpha-y-circle-outline.svg new file mode 100644 index 00000000..ec072156 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-y-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-y-circle.svg b/doc/theme/material/.icons/material/alpha-y-circle.svg new file mode 100644 index 00000000..ac1adea8 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-y-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-y.svg b/doc/theme/material/.icons/material/alpha-y.svg new file mode 100644 index 00000000..846536c0 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-y.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-z-box-outline.svg b/doc/theme/material/.icons/material/alpha-z-box-outline.svg new file mode 100644 index 00000000..79498811 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-z-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-z-box.svg b/doc/theme/material/.icons/material/alpha-z-box.svg new file mode 100644 index 00000000..e6eda50d --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-z-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-z-circle-outline.svg b/doc/theme/material/.icons/material/alpha-z-circle-outline.svg new file mode 100644 index 00000000..d0072f44 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-z-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-z-circle.svg b/doc/theme/material/.icons/material/alpha-z-circle.svg new file mode 100644 index 00000000..ddfb246a --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-z-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha-z.svg b/doc/theme/material/.icons/material/alpha-z.svg new file mode 100644 index 00000000..a2f778db --- /dev/null +++ b/doc/theme/material/.icons/material/alpha-z.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alpha.svg b/doc/theme/material/.icons/material/alpha.svg new file mode 100644 index 00000000..4a5790e1 --- /dev/null +++ b/doc/theme/material/.icons/material/alpha.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alphabet-aurebesh.svg b/doc/theme/material/.icons/material/alphabet-aurebesh.svg new file mode 100644 index 00000000..c8af2245 --- /dev/null +++ b/doc/theme/material/.icons/material/alphabet-aurebesh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alphabet-cyrillic.svg b/doc/theme/material/.icons/material/alphabet-cyrillic.svg new file mode 100644 index 00000000..44addae6 --- /dev/null +++ b/doc/theme/material/.icons/material/alphabet-cyrillic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alphabet-greek.svg b/doc/theme/material/.icons/material/alphabet-greek.svg new file mode 100644 index 00000000..64e910a7 --- /dev/null +++ b/doc/theme/material/.icons/material/alphabet-greek.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alphabet-latin.svg b/doc/theme/material/.icons/material/alphabet-latin.svg new file mode 100644 index 00000000..c60be028 --- /dev/null +++ b/doc/theme/material/.icons/material/alphabet-latin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alphabet-piqad.svg b/doc/theme/material/.icons/material/alphabet-piqad.svg new file mode 100644 index 00000000..2e2a912e --- /dev/null +++ b/doc/theme/material/.icons/material/alphabet-piqad.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alphabet-tengwar.svg b/doc/theme/material/.icons/material/alphabet-tengwar.svg new file mode 100644 index 00000000..b6b6d67e --- /dev/null +++ b/doc/theme/material/.icons/material/alphabet-tengwar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alphabetical-off.svg b/doc/theme/material/.icons/material/alphabetical-off.svg new file mode 100644 index 00000000..477fbc21 --- /dev/null +++ b/doc/theme/material/.icons/material/alphabetical-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alphabetical-variant-off.svg b/doc/theme/material/.icons/material/alphabetical-variant-off.svg new file mode 100644 index 00000000..ba0464b0 --- /dev/null +++ b/doc/theme/material/.icons/material/alphabetical-variant-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alphabetical-variant.svg b/doc/theme/material/.icons/material/alphabetical-variant.svg new file mode 100644 index 00000000..ca1ffe66 --- /dev/null +++ b/doc/theme/material/.icons/material/alphabetical-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/alphabetical.svg b/doc/theme/material/.icons/material/alphabetical.svg new file mode 100644 index 00000000..ff47a095 --- /dev/null +++ b/doc/theme/material/.icons/material/alphabetical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/altimeter.svg b/doc/theme/material/.icons/material/altimeter.svg new file mode 100644 index 00000000..34f7eb38 --- /dev/null +++ b/doc/theme/material/.icons/material/altimeter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/amazon-alexa.svg b/doc/theme/material/.icons/material/amazon-alexa.svg new file mode 100644 index 00000000..7d0dda01 --- /dev/null +++ b/doc/theme/material/.icons/material/amazon-alexa.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/amazon.svg b/doc/theme/material/.icons/material/amazon.svg new file mode 100644 index 00000000..cb56b4e2 --- /dev/null +++ b/doc/theme/material/.icons/material/amazon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ambulance.svg b/doc/theme/material/.icons/material/ambulance.svg new file mode 100644 index 00000000..b1e91ce3 --- /dev/null +++ b/doc/theme/material/.icons/material/ambulance.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ammunition.svg b/doc/theme/material/.icons/material/ammunition.svg new file mode 100644 index 00000000..21589610 --- /dev/null +++ b/doc/theme/material/.icons/material/ammunition.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ampersand.svg b/doc/theme/material/.icons/material/ampersand.svg new file mode 100644 index 00000000..e0fa5475 --- /dev/null +++ b/doc/theme/material/.icons/material/ampersand.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/amplifier-off.svg b/doc/theme/material/.icons/material/amplifier-off.svg new file mode 100644 index 00000000..720d9f5f --- /dev/null +++ b/doc/theme/material/.icons/material/amplifier-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/amplifier.svg b/doc/theme/material/.icons/material/amplifier.svg new file mode 100644 index 00000000..ee4df907 --- /dev/null +++ b/doc/theme/material/.icons/material/amplifier.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/anchor.svg b/doc/theme/material/.icons/material/anchor.svg new file mode 100644 index 00000000..4c86a0e7 --- /dev/null +++ b/doc/theme/material/.icons/material/anchor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/android-auto.svg b/doc/theme/material/.icons/material/android-auto.svg new file mode 100644 index 00000000..ed5ac4fb --- /dev/null +++ b/doc/theme/material/.icons/material/android-auto.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/android-debug-bridge.svg b/doc/theme/material/.icons/material/android-debug-bridge.svg new file mode 100644 index 00000000..de679fe6 --- /dev/null +++ b/doc/theme/material/.icons/material/android-debug-bridge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/android-messages.svg b/doc/theme/material/.icons/material/android-messages.svg new file mode 100644 index 00000000..24752ada --- /dev/null +++ b/doc/theme/material/.icons/material/android-messages.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/android-studio.svg b/doc/theme/material/.icons/material/android-studio.svg new file mode 100644 index 00000000..d7cf5cc7 --- /dev/null +++ b/doc/theme/material/.icons/material/android-studio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/android.svg b/doc/theme/material/.icons/material/android.svg new file mode 100644 index 00000000..cda89094 --- /dev/null +++ b/doc/theme/material/.icons/material/android.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/angle-acute.svg b/doc/theme/material/.icons/material/angle-acute.svg new file mode 100644 index 00000000..f63d4b97 --- /dev/null +++ b/doc/theme/material/.icons/material/angle-acute.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/angle-obtuse.svg b/doc/theme/material/.icons/material/angle-obtuse.svg new file mode 100644 index 00000000..069679b8 --- /dev/null +++ b/doc/theme/material/.icons/material/angle-obtuse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/angle-right.svg b/doc/theme/material/.icons/material/angle-right.svg new file mode 100644 index 00000000..975eabdc --- /dev/null +++ b/doc/theme/material/.icons/material/angle-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/angular.svg b/doc/theme/material/.icons/material/angular.svg new file mode 100644 index 00000000..3ae35899 --- /dev/null +++ b/doc/theme/material/.icons/material/angular.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/angularjs.svg b/doc/theme/material/.icons/material/angularjs.svg new file mode 100644 index 00000000..ef5685ef --- /dev/null +++ b/doc/theme/material/.icons/material/angularjs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/animation-outline.svg b/doc/theme/material/.icons/material/animation-outline.svg new file mode 100644 index 00000000..13c2b013 --- /dev/null +++ b/doc/theme/material/.icons/material/animation-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/animation-play-outline.svg b/doc/theme/material/.icons/material/animation-play-outline.svg new file mode 100644 index 00000000..3a29a93b --- /dev/null +++ b/doc/theme/material/.icons/material/animation-play-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/animation-play.svg b/doc/theme/material/.icons/material/animation-play.svg new file mode 100644 index 00000000..5c7a2e58 --- /dev/null +++ b/doc/theme/material/.icons/material/animation-play.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/animation.svg b/doc/theme/material/.icons/material/animation.svg new file mode 100644 index 00000000..2fdee894 --- /dev/null +++ b/doc/theme/material/.icons/material/animation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ansible.svg b/doc/theme/material/.icons/material/ansible.svg new file mode 100644 index 00000000..171e8130 --- /dev/null +++ b/doc/theme/material/.icons/material/ansible.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/antenna.svg b/doc/theme/material/.icons/material/antenna.svg new file mode 100644 index 00000000..0d28c07b --- /dev/null +++ b/doc/theme/material/.icons/material/antenna.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/anvil.svg b/doc/theme/material/.icons/material/anvil.svg new file mode 100644 index 00000000..c0c467e8 --- /dev/null +++ b/doc/theme/material/.icons/material/anvil.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/apache-kafka.svg b/doc/theme/material/.icons/material/apache-kafka.svg new file mode 100644 index 00000000..928cfb53 --- /dev/null +++ b/doc/theme/material/.icons/material/apache-kafka.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/api-off.svg b/doc/theme/material/.icons/material/api-off.svg new file mode 100644 index 00000000..cd2c72ce --- /dev/null +++ b/doc/theme/material/.icons/material/api-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/api.svg b/doc/theme/material/.icons/material/api.svg new file mode 100644 index 00000000..4502b828 --- /dev/null +++ b/doc/theme/material/.icons/material/api.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/apple-airplay.svg b/doc/theme/material/.icons/material/apple-airplay.svg new file mode 100644 index 00000000..393771f7 --- /dev/null +++ b/doc/theme/material/.icons/material/apple-airplay.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/apple-finder.svg b/doc/theme/material/.icons/material/apple-finder.svg new file mode 100644 index 00000000..370d8d29 --- /dev/null +++ b/doc/theme/material/.icons/material/apple-finder.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/apple-icloud.svg b/doc/theme/material/.icons/material/apple-icloud.svg new file mode 100644 index 00000000..1bd18463 --- /dev/null +++ b/doc/theme/material/.icons/material/apple-icloud.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/apple-ios.svg b/doc/theme/material/.icons/material/apple-ios.svg new file mode 100644 index 00000000..20f1bcbc --- /dev/null +++ b/doc/theme/material/.icons/material/apple-ios.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/apple-keyboard-caps.svg b/doc/theme/material/.icons/material/apple-keyboard-caps.svg new file mode 100644 index 00000000..1c652de7 --- /dev/null +++ b/doc/theme/material/.icons/material/apple-keyboard-caps.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/apple-keyboard-command.svg b/doc/theme/material/.icons/material/apple-keyboard-command.svg new file mode 100644 index 00000000..1bdaef95 --- /dev/null +++ b/doc/theme/material/.icons/material/apple-keyboard-command.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/apple-keyboard-control.svg b/doc/theme/material/.icons/material/apple-keyboard-control.svg new file mode 100644 index 00000000..aa4ec5fd --- /dev/null +++ b/doc/theme/material/.icons/material/apple-keyboard-control.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/apple-keyboard-option.svg b/doc/theme/material/.icons/material/apple-keyboard-option.svg new file mode 100644 index 00000000..51cbdcf8 --- /dev/null +++ b/doc/theme/material/.icons/material/apple-keyboard-option.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/apple-keyboard-shift.svg b/doc/theme/material/.icons/material/apple-keyboard-shift.svg new file mode 100644 index 00000000..94a2c633 --- /dev/null +++ b/doc/theme/material/.icons/material/apple-keyboard-shift.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/apple-safari.svg b/doc/theme/material/.icons/material/apple-safari.svg new file mode 100644 index 00000000..7ea5c93b --- /dev/null +++ b/doc/theme/material/.icons/material/apple-safari.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/apple.svg b/doc/theme/material/.icons/material/apple.svg new file mode 100644 index 00000000..59763d87 --- /dev/null +++ b/doc/theme/material/.icons/material/apple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/application-export.svg b/doc/theme/material/.icons/material/application-export.svg new file mode 100644 index 00000000..801a3932 --- /dev/null +++ b/doc/theme/material/.icons/material/application-export.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/application-import.svg b/doc/theme/material/.icons/material/application-import.svg new file mode 100644 index 00000000..8c90d318 --- /dev/null +++ b/doc/theme/material/.icons/material/application-import.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/application.svg b/doc/theme/material/.icons/material/application.svg new file mode 100644 index 00000000..b98217b9 --- /dev/null +++ b/doc/theme/material/.icons/material/application.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/approximately-equal-box.svg b/doc/theme/material/.icons/material/approximately-equal-box.svg new file mode 100644 index 00000000..01e1eb34 --- /dev/null +++ b/doc/theme/material/.icons/material/approximately-equal-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/approximately-equal.svg b/doc/theme/material/.icons/material/approximately-equal.svg new file mode 100644 index 00000000..45258556 --- /dev/null +++ b/doc/theme/material/.icons/material/approximately-equal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/apps-box.svg b/doc/theme/material/.icons/material/apps-box.svg new file mode 100644 index 00000000..1dc3ebb6 --- /dev/null +++ b/doc/theme/material/.icons/material/apps-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/apps.svg b/doc/theme/material/.icons/material/apps.svg new file mode 100644 index 00000000..5ff759bf --- /dev/null +++ b/doc/theme/material/.icons/material/apps.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arch.svg b/doc/theme/material/.icons/material/arch.svg new file mode 100644 index 00000000..1e18ecdd --- /dev/null +++ b/doc/theme/material/.icons/material/arch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/archive-arrow-down-outline.svg b/doc/theme/material/.icons/material/archive-arrow-down-outline.svg new file mode 100644 index 00000000..e98053d7 --- /dev/null +++ b/doc/theme/material/.icons/material/archive-arrow-down-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/archive-arrow-down.svg b/doc/theme/material/.icons/material/archive-arrow-down.svg new file mode 100644 index 00000000..aa7cedaa --- /dev/null +++ b/doc/theme/material/.icons/material/archive-arrow-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/archive-arrow-up-outline.svg b/doc/theme/material/.icons/material/archive-arrow-up-outline.svg new file mode 100644 index 00000000..a36697e4 --- /dev/null +++ b/doc/theme/material/.icons/material/archive-arrow-up-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/archive-arrow-up.svg b/doc/theme/material/.icons/material/archive-arrow-up.svg new file mode 100644 index 00000000..3a379809 --- /dev/null +++ b/doc/theme/material/.icons/material/archive-arrow-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/archive-outline.svg b/doc/theme/material/.icons/material/archive-outline.svg new file mode 100644 index 00000000..65debd34 --- /dev/null +++ b/doc/theme/material/.icons/material/archive-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/archive.svg b/doc/theme/material/.icons/material/archive.svg new file mode 100644 index 00000000..0c2f4b11 --- /dev/null +++ b/doc/theme/material/.icons/material/archive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arm-flex-outline.svg b/doc/theme/material/.icons/material/arm-flex-outline.svg new file mode 100644 index 00000000..0b546c55 --- /dev/null +++ b/doc/theme/material/.icons/material/arm-flex-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arm-flex.svg b/doc/theme/material/.icons/material/arm-flex.svg new file mode 100644 index 00000000..ecfe412f --- /dev/null +++ b/doc/theme/material/.icons/material/arm-flex.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrange-bring-forward.svg b/doc/theme/material/.icons/material/arrange-bring-forward.svg new file mode 100644 index 00000000..3383c84e --- /dev/null +++ b/doc/theme/material/.icons/material/arrange-bring-forward.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrange-bring-to-front.svg b/doc/theme/material/.icons/material/arrange-bring-to-front.svg new file mode 100644 index 00000000..b74b9275 --- /dev/null +++ b/doc/theme/material/.icons/material/arrange-bring-to-front.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrange-send-backward.svg b/doc/theme/material/.icons/material/arrange-send-backward.svg new file mode 100644 index 00000000..1e11ad8c --- /dev/null +++ b/doc/theme/material/.icons/material/arrange-send-backward.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrange-send-to-back.svg b/doc/theme/material/.icons/material/arrange-send-to-back.svg new file mode 100644 index 00000000..97b2137a --- /dev/null +++ b/doc/theme/material/.icons/material/arrange-send-to-back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-all.svg b/doc/theme/material/.icons/material/arrow-all.svg new file mode 100644 index 00000000..5850f86a --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-all.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-bottom-left-bold-outline.svg b/doc/theme/material/.icons/material/arrow-bottom-left-bold-outline.svg new file mode 100644 index 00000000..258f5bad --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-bottom-left-bold-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-bottom-left-thick.svg b/doc/theme/material/.icons/material/arrow-bottom-left-thick.svg new file mode 100644 index 00000000..ee0d416c --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-bottom-left-thick.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-bottom-left.svg b/doc/theme/material/.icons/material/arrow-bottom-left.svg new file mode 100644 index 00000000..4c10fc2e --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-bottom-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-bottom-right-bold-outline.svg b/doc/theme/material/.icons/material/arrow-bottom-right-bold-outline.svg new file mode 100644 index 00000000..1c5b2dc6 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-bottom-right-bold-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-bottom-right-thick.svg b/doc/theme/material/.icons/material/arrow-bottom-right-thick.svg new file mode 100644 index 00000000..30dd6639 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-bottom-right-thick.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-bottom-right.svg b/doc/theme/material/.icons/material/arrow-bottom-right.svg new file mode 100644 index 00000000..4df1d770 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-bottom-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-collapse-all.svg b/doc/theme/material/.icons/material/arrow-collapse-all.svg new file mode 100644 index 00000000..5081a038 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-collapse-all.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-collapse-down.svg b/doc/theme/material/.icons/material/arrow-collapse-down.svg new file mode 100644 index 00000000..fc6392fa --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-collapse-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-collapse-horizontal.svg b/doc/theme/material/.icons/material/arrow-collapse-horizontal.svg new file mode 100644 index 00000000..4d1dfcd0 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-collapse-horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-collapse-left.svg b/doc/theme/material/.icons/material/arrow-collapse-left.svg new file mode 100644 index 00000000..f36d3eab --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-collapse-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-collapse-right.svg b/doc/theme/material/.icons/material/arrow-collapse-right.svg new file mode 100644 index 00000000..d9f38ebb --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-collapse-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-collapse-up.svg b/doc/theme/material/.icons/material/arrow-collapse-up.svg new file mode 100644 index 00000000..3ac6e197 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-collapse-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-collapse-vertical.svg b/doc/theme/material/.icons/material/arrow-collapse-vertical.svg new file mode 100644 index 00000000..de4868c8 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-collapse-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-collapse.svg b/doc/theme/material/.icons/material/arrow-collapse.svg new file mode 100644 index 00000000..e33a279a --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-collapse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-decision-auto-outline.svg b/doc/theme/material/.icons/material/arrow-decision-auto-outline.svg new file mode 100644 index 00000000..6a1ecb40 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-decision-auto-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-decision-auto.svg b/doc/theme/material/.icons/material/arrow-decision-auto.svg new file mode 100644 index 00000000..2c2c6b19 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-decision-auto.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-decision-outline.svg b/doc/theme/material/.icons/material/arrow-decision-outline.svg new file mode 100644 index 00000000..e934cc3a --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-decision-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-decision.svg b/doc/theme/material/.icons/material/arrow-decision.svg new file mode 100644 index 00000000..a6f7a242 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-decision.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-down-bold-box-outline.svg b/doc/theme/material/.icons/material/arrow-down-bold-box-outline.svg new file mode 100644 index 00000000..993731cc --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-down-bold-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-down-bold-box.svg b/doc/theme/material/.icons/material/arrow-down-bold-box.svg new file mode 100644 index 00000000..9e7df2ba --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-down-bold-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-down-bold-circle-outline.svg b/doc/theme/material/.icons/material/arrow-down-bold-circle-outline.svg new file mode 100644 index 00000000..d88e2501 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-down-bold-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-down-bold-circle.svg b/doc/theme/material/.icons/material/arrow-down-bold-circle.svg new file mode 100644 index 00000000..56ea715e --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-down-bold-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-down-bold-hexagon-outline.svg b/doc/theme/material/.icons/material/arrow-down-bold-hexagon-outline.svg new file mode 100644 index 00000000..55a53f21 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-down-bold-hexagon-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-down-bold-outline.svg b/doc/theme/material/.icons/material/arrow-down-bold-outline.svg new file mode 100644 index 00000000..f9f62ef0 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-down-bold-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-down-bold.svg b/doc/theme/material/.icons/material/arrow-down-bold.svg new file mode 100644 index 00000000..d5da1081 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-down-bold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-down-box.svg b/doc/theme/material/.icons/material/arrow-down-box.svg new file mode 100644 index 00000000..54ad4a44 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-down-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-down-circle-outline.svg b/doc/theme/material/.icons/material/arrow-down-circle-outline.svg new file mode 100644 index 00000000..24571eef --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-down-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-down-circle.svg b/doc/theme/material/.icons/material/arrow-down-circle.svg new file mode 100644 index 00000000..53bf9297 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-down-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-down-drop-circle-outline.svg b/doc/theme/material/.icons/material/arrow-down-drop-circle-outline.svg new file mode 100644 index 00000000..4de0fba7 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-down-drop-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-down-drop-circle.svg b/doc/theme/material/.icons/material/arrow-down-drop-circle.svg new file mode 100644 index 00000000..b7bf510d --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-down-drop-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-down-thick.svg b/doc/theme/material/.icons/material/arrow-down-thick.svg new file mode 100644 index 00000000..50f06979 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-down-thick.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-down.svg b/doc/theme/material/.icons/material/arrow-down.svg new file mode 100644 index 00000000..8f408e44 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-expand-all.svg b/doc/theme/material/.icons/material/arrow-expand-all.svg new file mode 100644 index 00000000..865f7624 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-expand-all.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-expand-down.svg b/doc/theme/material/.icons/material/arrow-expand-down.svg new file mode 100644 index 00000000..806f969b --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-expand-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-expand-horizontal.svg b/doc/theme/material/.icons/material/arrow-expand-horizontal.svg new file mode 100644 index 00000000..f81ddfed --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-expand-horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-expand-left.svg b/doc/theme/material/.icons/material/arrow-expand-left.svg new file mode 100644 index 00000000..5fbc3bbe --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-expand-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-expand-right.svg b/doc/theme/material/.icons/material/arrow-expand-right.svg new file mode 100644 index 00000000..6c4006dc --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-expand-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-expand-up.svg b/doc/theme/material/.icons/material/arrow-expand-up.svg new file mode 100644 index 00000000..b5bb9928 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-expand-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-expand-vertical.svg b/doc/theme/material/.icons/material/arrow-expand-vertical.svg new file mode 100644 index 00000000..6be41b17 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-expand-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-expand.svg b/doc/theme/material/.icons/material/arrow-expand.svg new file mode 100644 index 00000000..6e4d3909 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-expand.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-horizontal-lock.svg b/doc/theme/material/.icons/material/arrow-horizontal-lock.svg new file mode 100644 index 00000000..0d8d6a55 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-horizontal-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-left-bold-box-outline.svg b/doc/theme/material/.icons/material/arrow-left-bold-box-outline.svg new file mode 100644 index 00000000..c4aa8b3b --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-left-bold-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-left-bold-box.svg b/doc/theme/material/.icons/material/arrow-left-bold-box.svg new file mode 100644 index 00000000..45265fc0 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-left-bold-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-left-bold-circle-outline.svg b/doc/theme/material/.icons/material/arrow-left-bold-circle-outline.svg new file mode 100644 index 00000000..e4c4beb9 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-left-bold-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-left-bold-circle.svg b/doc/theme/material/.icons/material/arrow-left-bold-circle.svg new file mode 100644 index 00000000..f210f481 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-left-bold-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-left-bold-hexagon-outline.svg b/doc/theme/material/.icons/material/arrow-left-bold-hexagon-outline.svg new file mode 100644 index 00000000..e8590361 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-left-bold-hexagon-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-left-bold-outline.svg b/doc/theme/material/.icons/material/arrow-left-bold-outline.svg new file mode 100644 index 00000000..fa294849 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-left-bold-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-left-bold.svg b/doc/theme/material/.icons/material/arrow-left-bold.svg new file mode 100644 index 00000000..1ecb61f0 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-left-bold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-left-box.svg b/doc/theme/material/.icons/material/arrow-left-box.svg new file mode 100644 index 00000000..0754624a --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-left-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-left-circle-outline.svg b/doc/theme/material/.icons/material/arrow-left-circle-outline.svg new file mode 100644 index 00000000..1abc78e6 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-left-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-left-circle.svg b/doc/theme/material/.icons/material/arrow-left-circle.svg new file mode 100644 index 00000000..be2cf65d --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-left-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-left-drop-circle-outline.svg b/doc/theme/material/.icons/material/arrow-left-drop-circle-outline.svg new file mode 100644 index 00000000..1592233c --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-left-drop-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-left-drop-circle.svg b/doc/theme/material/.icons/material/arrow-left-drop-circle.svg new file mode 100644 index 00000000..5d5bb7eb --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-left-drop-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-left-right-bold-outline.svg b/doc/theme/material/.icons/material/arrow-left-right-bold-outline.svg new file mode 100644 index 00000000..0af33cf1 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-left-right-bold-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-left-right-bold.svg b/doc/theme/material/.icons/material/arrow-left-right-bold.svg new file mode 100644 index 00000000..966193c5 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-left-right-bold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-left-right.svg b/doc/theme/material/.icons/material/arrow-left-right.svg new file mode 100644 index 00000000..c0d18c3a --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-left-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-left-thick.svg b/doc/theme/material/.icons/material/arrow-left-thick.svg new file mode 100644 index 00000000..d0f9e0f8 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-left-thick.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-left.svg b/doc/theme/material/.icons/material/arrow-left.svg new file mode 100644 index 00000000..ffb97e41 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-right-bold-box-outline.svg b/doc/theme/material/.icons/material/arrow-right-bold-box-outline.svg new file mode 100644 index 00000000..b856e8fe --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-right-bold-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-right-bold-box.svg b/doc/theme/material/.icons/material/arrow-right-bold-box.svg new file mode 100644 index 00000000..42869bef --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-right-bold-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-right-bold-circle-outline.svg b/doc/theme/material/.icons/material/arrow-right-bold-circle-outline.svg new file mode 100644 index 00000000..bd02570d --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-right-bold-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-right-bold-circle.svg b/doc/theme/material/.icons/material/arrow-right-bold-circle.svg new file mode 100644 index 00000000..6732c65e --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-right-bold-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-right-bold-hexagon-outline.svg b/doc/theme/material/.icons/material/arrow-right-bold-hexagon-outline.svg new file mode 100644 index 00000000..fdaa4a0b --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-right-bold-hexagon-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-right-bold-outline.svg b/doc/theme/material/.icons/material/arrow-right-bold-outline.svg new file mode 100644 index 00000000..3ec7b4d2 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-right-bold-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-right-bold.svg b/doc/theme/material/.icons/material/arrow-right-bold.svg new file mode 100644 index 00000000..a9c52874 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-right-bold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-right-box.svg b/doc/theme/material/.icons/material/arrow-right-box.svg new file mode 100644 index 00000000..fb82145c --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-right-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-right-circle-outline.svg b/doc/theme/material/.icons/material/arrow-right-circle-outline.svg new file mode 100644 index 00000000..fb0a093c --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-right-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-right-circle.svg b/doc/theme/material/.icons/material/arrow-right-circle.svg new file mode 100644 index 00000000..b77ed1d9 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-right-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-right-drop-circle-outline.svg b/doc/theme/material/.icons/material/arrow-right-drop-circle-outline.svg new file mode 100644 index 00000000..5b12a3da --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-right-drop-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-right-drop-circle.svg b/doc/theme/material/.icons/material/arrow-right-drop-circle.svg new file mode 100644 index 00000000..282d3dc7 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-right-drop-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-right-thick.svg b/doc/theme/material/.icons/material/arrow-right-thick.svg new file mode 100644 index 00000000..a2092e30 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-right-thick.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-right.svg b/doc/theme/material/.icons/material/arrow-right.svg new file mode 100644 index 00000000..6bf1a762 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-split-horizontal.svg b/doc/theme/material/.icons/material/arrow-split-horizontal.svg new file mode 100644 index 00000000..6e55e0bd --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-split-horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-split-vertical.svg b/doc/theme/material/.icons/material/arrow-split-vertical.svg new file mode 100644 index 00000000..bdd4ab29 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-split-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-top-left-bold-outline.svg b/doc/theme/material/.icons/material/arrow-top-left-bold-outline.svg new file mode 100644 index 00000000..7c0e07f7 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-top-left-bold-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-top-left-bottom-right-bold.svg b/doc/theme/material/.icons/material/arrow-top-left-bottom-right-bold.svg new file mode 100644 index 00000000..b1ea7f9e --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-top-left-bottom-right-bold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-top-left-bottom-right.svg b/doc/theme/material/.icons/material/arrow-top-left-bottom-right.svg new file mode 100644 index 00000000..1a5ca169 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-top-left-bottom-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-top-left-thick.svg b/doc/theme/material/.icons/material/arrow-top-left-thick.svg new file mode 100644 index 00000000..4e7b4a3a --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-top-left-thick.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-top-left.svg b/doc/theme/material/.icons/material/arrow-top-left.svg new file mode 100644 index 00000000..428c9bde --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-top-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-top-right-bold-outline.svg b/doc/theme/material/.icons/material/arrow-top-right-bold-outline.svg new file mode 100644 index 00000000..1092ee74 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-top-right-bold-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-top-right-bottom-left-bold.svg b/doc/theme/material/.icons/material/arrow-top-right-bottom-left-bold.svg new file mode 100644 index 00000000..b2b6617b --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-top-right-bottom-left-bold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-top-right-bottom-left.svg b/doc/theme/material/.icons/material/arrow-top-right-bottom-left.svg new file mode 100644 index 00000000..4c0925db --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-top-right-bottom-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-top-right-thick.svg b/doc/theme/material/.icons/material/arrow-top-right-thick.svg new file mode 100644 index 00000000..efc0e86a --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-top-right-thick.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-top-right.svg b/doc/theme/material/.icons/material/arrow-top-right.svg new file mode 100644 index 00000000..e3fbefa0 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-top-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-up-bold-box-outline.svg b/doc/theme/material/.icons/material/arrow-up-bold-box-outline.svg new file mode 100644 index 00000000..67a3ab4f --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-up-bold-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-up-bold-box.svg b/doc/theme/material/.icons/material/arrow-up-bold-box.svg new file mode 100644 index 00000000..595ab8f2 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-up-bold-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-up-bold-circle-outline.svg b/doc/theme/material/.icons/material/arrow-up-bold-circle-outline.svg new file mode 100644 index 00000000..6b078e44 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-up-bold-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-up-bold-circle.svg b/doc/theme/material/.icons/material/arrow-up-bold-circle.svg new file mode 100644 index 00000000..f861693e --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-up-bold-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-up-bold-hexagon-outline.svg b/doc/theme/material/.icons/material/arrow-up-bold-hexagon-outline.svg new file mode 100644 index 00000000..22c04ae5 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-up-bold-hexagon-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-up-bold-outline.svg b/doc/theme/material/.icons/material/arrow-up-bold-outline.svg new file mode 100644 index 00000000..10c808d7 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-up-bold-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-up-bold.svg b/doc/theme/material/.icons/material/arrow-up-bold.svg new file mode 100644 index 00000000..ac89f31c --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-up-bold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-up-box.svg b/doc/theme/material/.icons/material/arrow-up-box.svg new file mode 100644 index 00000000..9a66b211 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-up-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-up-circle-outline.svg b/doc/theme/material/.icons/material/arrow-up-circle-outline.svg new file mode 100644 index 00000000..30008b3a --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-up-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-up-circle.svg b/doc/theme/material/.icons/material/arrow-up-circle.svg new file mode 100644 index 00000000..dfa0e211 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-up-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-up-down-bold-outline.svg b/doc/theme/material/.icons/material/arrow-up-down-bold-outline.svg new file mode 100644 index 00000000..1d7e95be --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-up-down-bold-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-up-down-bold.svg b/doc/theme/material/.icons/material/arrow-up-down-bold.svg new file mode 100644 index 00000000..fd05920b --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-up-down-bold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-up-down.svg b/doc/theme/material/.icons/material/arrow-up-down.svg new file mode 100644 index 00000000..7f20b974 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-up-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-up-drop-circle-outline.svg b/doc/theme/material/.icons/material/arrow-up-drop-circle-outline.svg new file mode 100644 index 00000000..ffe73276 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-up-drop-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-up-drop-circle.svg b/doc/theme/material/.icons/material/arrow-up-drop-circle.svg new file mode 100644 index 00000000..43ab7f4c --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-up-drop-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-up-thick.svg b/doc/theme/material/.icons/material/arrow-up-thick.svg new file mode 100644 index 00000000..cb70d65d --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-up-thick.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-up.svg b/doc/theme/material/.icons/material/arrow-up.svg new file mode 100644 index 00000000..dc4e5e0b --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/arrow-vertical-lock.svg b/doc/theme/material/.icons/material/arrow-vertical-lock.svg new file mode 100644 index 00000000..8812af47 --- /dev/null +++ b/doc/theme/material/.icons/material/arrow-vertical-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/artstation.svg b/doc/theme/material/.icons/material/artstation.svg new file mode 100644 index 00000000..bd314a01 --- /dev/null +++ b/doc/theme/material/.icons/material/artstation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/aspect-ratio.svg b/doc/theme/material/.icons/material/aspect-ratio.svg new file mode 100644 index 00000000..2e3e1750 --- /dev/null +++ b/doc/theme/material/.icons/material/aspect-ratio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/assistant.svg b/doc/theme/material/.icons/material/assistant.svg new file mode 100644 index 00000000..35ea26ce --- /dev/null +++ b/doc/theme/material/.icons/material/assistant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/asterisk.svg b/doc/theme/material/.icons/material/asterisk.svg new file mode 100644 index 00000000..296dfce2 --- /dev/null +++ b/doc/theme/material/.icons/material/asterisk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/at.svg b/doc/theme/material/.icons/material/at.svg new file mode 100644 index 00000000..fb22524a --- /dev/null +++ b/doc/theme/material/.icons/material/at.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/atlassian.svg b/doc/theme/material/.icons/material/atlassian.svg new file mode 100644 index 00000000..a4b31756 --- /dev/null +++ b/doc/theme/material/.icons/material/atlassian.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/atm.svg b/doc/theme/material/.icons/material/atm.svg new file mode 100644 index 00000000..2170b193 --- /dev/null +++ b/doc/theme/material/.icons/material/atm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/atom-variant.svg b/doc/theme/material/.icons/material/atom-variant.svg new file mode 100644 index 00000000..5b783f7c --- /dev/null +++ b/doc/theme/material/.icons/material/atom-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/atom.svg b/doc/theme/material/.icons/material/atom.svg new file mode 100644 index 00000000..a65dd3dd --- /dev/null +++ b/doc/theme/material/.icons/material/atom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/attachment.svg b/doc/theme/material/.icons/material/attachment.svg new file mode 100644 index 00000000..0f4eb317 --- /dev/null +++ b/doc/theme/material/.icons/material/attachment.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/audio-video-off.svg b/doc/theme/material/.icons/material/audio-video-off.svg new file mode 100644 index 00000000..75c08f4f --- /dev/null +++ b/doc/theme/material/.icons/material/audio-video-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/audio-video.svg b/doc/theme/material/.icons/material/audio-video.svg new file mode 100644 index 00000000..327cd06b --- /dev/null +++ b/doc/theme/material/.icons/material/audio-video.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/augmented-reality.svg b/doc/theme/material/.icons/material/augmented-reality.svg new file mode 100644 index 00000000..332ea2b0 --- /dev/null +++ b/doc/theme/material/.icons/material/augmented-reality.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/auto-download.svg b/doc/theme/material/.icons/material/auto-download.svg new file mode 100644 index 00000000..2f376533 --- /dev/null +++ b/doc/theme/material/.icons/material/auto-download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/auto-fix.svg b/doc/theme/material/.icons/material/auto-fix.svg new file mode 100644 index 00000000..33dd1209 --- /dev/null +++ b/doc/theme/material/.icons/material/auto-fix.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/auto-upload.svg b/doc/theme/material/.icons/material/auto-upload.svg new file mode 100644 index 00000000..003dd914 --- /dev/null +++ b/doc/theme/material/.icons/material/auto-upload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/autorenew.svg b/doc/theme/material/.icons/material/autorenew.svg new file mode 100644 index 00000000..be150e22 --- /dev/null +++ b/doc/theme/material/.icons/material/autorenew.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/av-timer.svg b/doc/theme/material/.icons/material/av-timer.svg new file mode 100644 index 00000000..d6fa5fae --- /dev/null +++ b/doc/theme/material/.icons/material/av-timer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/aws.svg b/doc/theme/material/.icons/material/aws.svg new file mode 100644 index 00000000..71d48cb0 --- /dev/null +++ b/doc/theme/material/.icons/material/aws.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/axe.svg b/doc/theme/material/.icons/material/axe.svg new file mode 100644 index 00000000..e4d273b9 --- /dev/null +++ b/doc/theme/material/.icons/material/axe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/axis-arrow-info.svg b/doc/theme/material/.icons/material/axis-arrow-info.svg new file mode 100644 index 00000000..4c8bd48b --- /dev/null +++ b/doc/theme/material/.icons/material/axis-arrow-info.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/axis-arrow-lock.svg b/doc/theme/material/.icons/material/axis-arrow-lock.svg new file mode 100644 index 00000000..be7d232c --- /dev/null +++ b/doc/theme/material/.icons/material/axis-arrow-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/axis-arrow.svg b/doc/theme/material/.icons/material/axis-arrow.svg new file mode 100644 index 00000000..e580701a --- /dev/null +++ b/doc/theme/material/.icons/material/axis-arrow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/axis-lock.svg b/doc/theme/material/.icons/material/axis-lock.svg new file mode 100644 index 00000000..4d0eddf8 --- /dev/null +++ b/doc/theme/material/.icons/material/axis-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/axis-x-arrow-lock.svg b/doc/theme/material/.icons/material/axis-x-arrow-lock.svg new file mode 100644 index 00000000..21ce5785 --- /dev/null +++ b/doc/theme/material/.icons/material/axis-x-arrow-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/axis-x-arrow.svg b/doc/theme/material/.icons/material/axis-x-arrow.svg new file mode 100644 index 00000000..0dac790f --- /dev/null +++ b/doc/theme/material/.icons/material/axis-x-arrow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/axis-x-rotate-clockwise.svg b/doc/theme/material/.icons/material/axis-x-rotate-clockwise.svg new file mode 100644 index 00000000..ab631849 --- /dev/null +++ b/doc/theme/material/.icons/material/axis-x-rotate-clockwise.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/axis-x-rotate-counterclockwise.svg b/doc/theme/material/.icons/material/axis-x-rotate-counterclockwise.svg new file mode 100644 index 00000000..4ad7cdf0 --- /dev/null +++ b/doc/theme/material/.icons/material/axis-x-rotate-counterclockwise.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/axis-x-y-arrow-lock.svg b/doc/theme/material/.icons/material/axis-x-y-arrow-lock.svg new file mode 100644 index 00000000..71ea5aa0 --- /dev/null +++ b/doc/theme/material/.icons/material/axis-x-y-arrow-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/axis-y-arrow-lock.svg b/doc/theme/material/.icons/material/axis-y-arrow-lock.svg new file mode 100644 index 00000000..9944811a --- /dev/null +++ b/doc/theme/material/.icons/material/axis-y-arrow-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/axis-y-arrow.svg b/doc/theme/material/.icons/material/axis-y-arrow.svg new file mode 100644 index 00000000..e7452205 --- /dev/null +++ b/doc/theme/material/.icons/material/axis-y-arrow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/axis-y-rotate-clockwise.svg b/doc/theme/material/.icons/material/axis-y-rotate-clockwise.svg new file mode 100644 index 00000000..62a97c0d --- /dev/null +++ b/doc/theme/material/.icons/material/axis-y-rotate-clockwise.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/axis-y-rotate-counterclockwise.svg b/doc/theme/material/.icons/material/axis-y-rotate-counterclockwise.svg new file mode 100644 index 00000000..1f0ce9d1 --- /dev/null +++ b/doc/theme/material/.icons/material/axis-y-rotate-counterclockwise.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/axis-z-arrow-lock.svg b/doc/theme/material/.icons/material/axis-z-arrow-lock.svg new file mode 100644 index 00000000..bd863228 --- /dev/null +++ b/doc/theme/material/.icons/material/axis-z-arrow-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/axis-z-arrow.svg b/doc/theme/material/.icons/material/axis-z-arrow.svg new file mode 100644 index 00000000..d6330d54 --- /dev/null +++ b/doc/theme/material/.icons/material/axis-z-arrow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/axis-z-rotate-clockwise.svg b/doc/theme/material/.icons/material/axis-z-rotate-clockwise.svg new file mode 100644 index 00000000..be49fee5 --- /dev/null +++ b/doc/theme/material/.icons/material/axis-z-rotate-clockwise.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/axis-z-rotate-counterclockwise.svg b/doc/theme/material/.icons/material/axis-z-rotate-counterclockwise.svg new file mode 100644 index 00000000..478fc5df --- /dev/null +++ b/doc/theme/material/.icons/material/axis-z-rotate-counterclockwise.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/axis.svg b/doc/theme/material/.icons/material/axis.svg new file mode 100644 index 00000000..79d0377d --- /dev/null +++ b/doc/theme/material/.icons/material/axis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/babel.svg b/doc/theme/material/.icons/material/babel.svg new file mode 100644 index 00000000..5188009e --- /dev/null +++ b/doc/theme/material/.icons/material/babel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/baby-bottle-outline.svg b/doc/theme/material/.icons/material/baby-bottle-outline.svg new file mode 100644 index 00000000..18f481c7 --- /dev/null +++ b/doc/theme/material/.icons/material/baby-bottle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/baby-bottle.svg b/doc/theme/material/.icons/material/baby-bottle.svg new file mode 100644 index 00000000..594ee0a9 --- /dev/null +++ b/doc/theme/material/.icons/material/baby-bottle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/baby-buggy.svg b/doc/theme/material/.icons/material/baby-buggy.svg new file mode 100644 index 00000000..e815cb86 --- /dev/null +++ b/doc/theme/material/.icons/material/baby-buggy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/baby-carriage-off.svg b/doc/theme/material/.icons/material/baby-carriage-off.svg new file mode 100644 index 00000000..051851a7 --- /dev/null +++ b/doc/theme/material/.icons/material/baby-carriage-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/baby-carriage.svg b/doc/theme/material/.icons/material/baby-carriage.svg new file mode 100644 index 00000000..b09f4d6d --- /dev/null +++ b/doc/theme/material/.icons/material/baby-carriage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/baby-face-outline.svg b/doc/theme/material/.icons/material/baby-face-outline.svg new file mode 100644 index 00000000..97877694 --- /dev/null +++ b/doc/theme/material/.icons/material/baby-face-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/baby-face.svg b/doc/theme/material/.icons/material/baby-face.svg new file mode 100644 index 00000000..48223cba --- /dev/null +++ b/doc/theme/material/.icons/material/baby-face.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/baby.svg b/doc/theme/material/.icons/material/baby.svg new file mode 100644 index 00000000..c54d3d09 --- /dev/null +++ b/doc/theme/material/.icons/material/baby.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/backburger.svg b/doc/theme/material/.icons/material/backburger.svg new file mode 100644 index 00000000..4f3d296c --- /dev/null +++ b/doc/theme/material/.icons/material/backburger.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/backspace-outline.svg b/doc/theme/material/.icons/material/backspace-outline.svg new file mode 100644 index 00000000..5164f058 --- /dev/null +++ b/doc/theme/material/.icons/material/backspace-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/backspace-reverse-outline.svg b/doc/theme/material/.icons/material/backspace-reverse-outline.svg new file mode 100644 index 00000000..f14cd3e4 --- /dev/null +++ b/doc/theme/material/.icons/material/backspace-reverse-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/backspace-reverse.svg b/doc/theme/material/.icons/material/backspace-reverse.svg new file mode 100644 index 00000000..86e22efb --- /dev/null +++ b/doc/theme/material/.icons/material/backspace-reverse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/backspace.svg b/doc/theme/material/.icons/material/backspace.svg new file mode 100644 index 00000000..b5722e6b --- /dev/null +++ b/doc/theme/material/.icons/material/backspace.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/backup-restore.svg b/doc/theme/material/.icons/material/backup-restore.svg new file mode 100644 index 00000000..8b5d8c2e --- /dev/null +++ b/doc/theme/material/.icons/material/backup-restore.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bacteria-outline.svg b/doc/theme/material/.icons/material/bacteria-outline.svg new file mode 100644 index 00000000..67cacdba --- /dev/null +++ b/doc/theme/material/.icons/material/bacteria-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bacteria.svg b/doc/theme/material/.icons/material/bacteria.svg new file mode 100644 index 00000000..7b7bdf44 --- /dev/null +++ b/doc/theme/material/.icons/material/bacteria.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/badge-account-alert-outline.svg b/doc/theme/material/.icons/material/badge-account-alert-outline.svg new file mode 100644 index 00000000..b2f993e2 --- /dev/null +++ b/doc/theme/material/.icons/material/badge-account-alert-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/badge-account-alert.svg b/doc/theme/material/.icons/material/badge-account-alert.svg new file mode 100644 index 00000000..50f8c77d --- /dev/null +++ b/doc/theme/material/.icons/material/badge-account-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/badge-account-horizontal-outline.svg b/doc/theme/material/.icons/material/badge-account-horizontal-outline.svg new file mode 100644 index 00000000..0442f31e --- /dev/null +++ b/doc/theme/material/.icons/material/badge-account-horizontal-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/badge-account-horizontal.svg b/doc/theme/material/.icons/material/badge-account-horizontal.svg new file mode 100644 index 00000000..b5a0cb34 --- /dev/null +++ b/doc/theme/material/.icons/material/badge-account-horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/badge-account-outline.svg b/doc/theme/material/.icons/material/badge-account-outline.svg new file mode 100644 index 00000000..057c629a --- /dev/null +++ b/doc/theme/material/.icons/material/badge-account-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/badge-account.svg b/doc/theme/material/.icons/material/badge-account.svg new file mode 100644 index 00000000..82016772 --- /dev/null +++ b/doc/theme/material/.icons/material/badge-account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/badminton.svg b/doc/theme/material/.icons/material/badminton.svg new file mode 100644 index 00000000..acf5edac --- /dev/null +++ b/doc/theme/material/.icons/material/badminton.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bag-carry-on-check.svg b/doc/theme/material/.icons/material/bag-carry-on-check.svg new file mode 100644 index 00000000..90b6a207 --- /dev/null +++ b/doc/theme/material/.icons/material/bag-carry-on-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bag-carry-on-off.svg b/doc/theme/material/.icons/material/bag-carry-on-off.svg new file mode 100644 index 00000000..ad9df950 --- /dev/null +++ b/doc/theme/material/.icons/material/bag-carry-on-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bag-carry-on.svg b/doc/theme/material/.icons/material/bag-carry-on.svg new file mode 100644 index 00000000..75821b1f --- /dev/null +++ b/doc/theme/material/.icons/material/bag-carry-on.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bag-checked.svg b/doc/theme/material/.icons/material/bag-checked.svg new file mode 100644 index 00000000..71ec47e1 --- /dev/null +++ b/doc/theme/material/.icons/material/bag-checked.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bag-personal-off-outline.svg b/doc/theme/material/.icons/material/bag-personal-off-outline.svg new file mode 100644 index 00000000..10d9abd6 --- /dev/null +++ b/doc/theme/material/.icons/material/bag-personal-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bag-personal-off.svg b/doc/theme/material/.icons/material/bag-personal-off.svg new file mode 100644 index 00000000..2100909a --- /dev/null +++ b/doc/theme/material/.icons/material/bag-personal-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bag-personal-outline.svg b/doc/theme/material/.icons/material/bag-personal-outline.svg new file mode 100644 index 00000000..34d38c05 --- /dev/null +++ b/doc/theme/material/.icons/material/bag-personal-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bag-personal.svg b/doc/theme/material/.icons/material/bag-personal.svg new file mode 100644 index 00000000..f18faed0 --- /dev/null +++ b/doc/theme/material/.icons/material/bag-personal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/baguette.svg b/doc/theme/material/.icons/material/baguette.svg new file mode 100644 index 00000000..63aa1d14 --- /dev/null +++ b/doc/theme/material/.icons/material/baguette.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/balloon.svg b/doc/theme/material/.icons/material/balloon.svg new file mode 100644 index 00000000..a3c6434e --- /dev/null +++ b/doc/theme/material/.icons/material/balloon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ballot-outline.svg b/doc/theme/material/.icons/material/ballot-outline.svg new file mode 100644 index 00000000..37ceeefe --- /dev/null +++ b/doc/theme/material/.icons/material/ballot-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ballot-recount-outline.svg b/doc/theme/material/.icons/material/ballot-recount-outline.svg new file mode 100644 index 00000000..f0a7a574 --- /dev/null +++ b/doc/theme/material/.icons/material/ballot-recount-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ballot-recount.svg b/doc/theme/material/.icons/material/ballot-recount.svg new file mode 100644 index 00000000..930a8859 --- /dev/null +++ b/doc/theme/material/.icons/material/ballot-recount.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ballot.svg b/doc/theme/material/.icons/material/ballot.svg new file mode 100644 index 00000000..938ff3bd --- /dev/null +++ b/doc/theme/material/.icons/material/ballot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bandage.svg b/doc/theme/material/.icons/material/bandage.svg new file mode 100644 index 00000000..5b1acd9e --- /dev/null +++ b/doc/theme/material/.icons/material/bandage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bandcamp.svg b/doc/theme/material/.icons/material/bandcamp.svg new file mode 100644 index 00000000..559090c2 --- /dev/null +++ b/doc/theme/material/.icons/material/bandcamp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bank-minus.svg b/doc/theme/material/.icons/material/bank-minus.svg new file mode 100644 index 00000000..ab4b74b8 --- /dev/null +++ b/doc/theme/material/.icons/material/bank-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bank-outline.svg b/doc/theme/material/.icons/material/bank-outline.svg new file mode 100644 index 00000000..a0b43646 --- /dev/null +++ b/doc/theme/material/.icons/material/bank-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bank-plus.svg b/doc/theme/material/.icons/material/bank-plus.svg new file mode 100644 index 00000000..54406310 --- /dev/null +++ b/doc/theme/material/.icons/material/bank-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bank-remove.svg b/doc/theme/material/.icons/material/bank-remove.svg new file mode 100644 index 00000000..a6ffecac --- /dev/null +++ b/doc/theme/material/.icons/material/bank-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bank-transfer-in.svg b/doc/theme/material/.icons/material/bank-transfer-in.svg new file mode 100644 index 00000000..fbfd7342 --- /dev/null +++ b/doc/theme/material/.icons/material/bank-transfer-in.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bank-transfer-out.svg b/doc/theme/material/.icons/material/bank-transfer-out.svg new file mode 100644 index 00000000..cb933452 --- /dev/null +++ b/doc/theme/material/.icons/material/bank-transfer-out.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bank-transfer.svg b/doc/theme/material/.icons/material/bank-transfer.svg new file mode 100644 index 00000000..31f5e162 --- /dev/null +++ b/doc/theme/material/.icons/material/bank-transfer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bank.svg b/doc/theme/material/.icons/material/bank.svg new file mode 100644 index 00000000..87c505d5 --- /dev/null +++ b/doc/theme/material/.icons/material/bank.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/barcode-off.svg b/doc/theme/material/.icons/material/barcode-off.svg new file mode 100644 index 00000000..2fbc056b --- /dev/null +++ b/doc/theme/material/.icons/material/barcode-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/barcode-scan.svg b/doc/theme/material/.icons/material/barcode-scan.svg new file mode 100644 index 00000000..05989399 --- /dev/null +++ b/doc/theme/material/.icons/material/barcode-scan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/barcode.svg b/doc/theme/material/.icons/material/barcode.svg new file mode 100644 index 00000000..dff1fb81 --- /dev/null +++ b/doc/theme/material/.icons/material/barcode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/barley-off.svg b/doc/theme/material/.icons/material/barley-off.svg new file mode 100644 index 00000000..31a553a4 --- /dev/null +++ b/doc/theme/material/.icons/material/barley-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/barley.svg b/doc/theme/material/.icons/material/barley.svg new file mode 100644 index 00000000..c96aebb1 --- /dev/null +++ b/doc/theme/material/.icons/material/barley.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/barn.svg b/doc/theme/material/.icons/material/barn.svg new file mode 100644 index 00000000..f5e72894 --- /dev/null +++ b/doc/theme/material/.icons/material/barn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/barrel.svg b/doc/theme/material/.icons/material/barrel.svg new file mode 100644 index 00000000..e419e595 --- /dev/null +++ b/doc/theme/material/.icons/material/barrel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/baseball-bat.svg b/doc/theme/material/.icons/material/baseball-bat.svg new file mode 100644 index 00000000..84ce882a --- /dev/null +++ b/doc/theme/material/.icons/material/baseball-bat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/baseball.svg b/doc/theme/material/.icons/material/baseball.svg new file mode 100644 index 00000000..c5d5c718 --- /dev/null +++ b/doc/theme/material/.icons/material/baseball.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bash.svg b/doc/theme/material/.icons/material/bash.svg new file mode 100644 index 00000000..83c1d0b8 --- /dev/null +++ b/doc/theme/material/.icons/material/bash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/basket-fill.svg b/doc/theme/material/.icons/material/basket-fill.svg new file mode 100644 index 00000000..6db01f2c --- /dev/null +++ b/doc/theme/material/.icons/material/basket-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/basket-outline.svg b/doc/theme/material/.icons/material/basket-outline.svg new file mode 100644 index 00000000..a09ac33d --- /dev/null +++ b/doc/theme/material/.icons/material/basket-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/basket-unfill.svg b/doc/theme/material/.icons/material/basket-unfill.svg new file mode 100644 index 00000000..c89c6d98 --- /dev/null +++ b/doc/theme/material/.icons/material/basket-unfill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/basket.svg b/doc/theme/material/.icons/material/basket.svg new file mode 100644 index 00000000..82543e8c --- /dev/null +++ b/doc/theme/material/.icons/material/basket.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/basketball-hoop-outline.svg b/doc/theme/material/.icons/material/basketball-hoop-outline.svg new file mode 100644 index 00000000..aebe7cc2 --- /dev/null +++ b/doc/theme/material/.icons/material/basketball-hoop-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/basketball-hoop.svg b/doc/theme/material/.icons/material/basketball-hoop.svg new file mode 100644 index 00000000..b8813d4f --- /dev/null +++ b/doc/theme/material/.icons/material/basketball-hoop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/basketball.svg b/doc/theme/material/.icons/material/basketball.svg new file mode 100644 index 00000000..d02547a3 --- /dev/null +++ b/doc/theme/material/.icons/material/basketball.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bat.svg b/doc/theme/material/.icons/material/bat.svg new file mode 100644 index 00000000..53e16ad0 --- /dev/null +++ b/doc/theme/material/.icons/material/bat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-10-bluetooth.svg b/doc/theme/material/.icons/material/battery-10-bluetooth.svg new file mode 100644 index 00000000..a0c2452b --- /dev/null +++ b/doc/theme/material/.icons/material/battery-10-bluetooth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-10.svg b/doc/theme/material/.icons/material/battery-10.svg new file mode 100644 index 00000000..b69922a3 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-10.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-20-bluetooth.svg b/doc/theme/material/.icons/material/battery-20-bluetooth.svg new file mode 100644 index 00000000..0d335153 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-20-bluetooth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-20.svg b/doc/theme/material/.icons/material/battery-20.svg new file mode 100644 index 00000000..8d00e401 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-20.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-30-bluetooth.svg b/doc/theme/material/.icons/material/battery-30-bluetooth.svg new file mode 100644 index 00000000..ef814fda --- /dev/null +++ b/doc/theme/material/.icons/material/battery-30-bluetooth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-30.svg b/doc/theme/material/.icons/material/battery-30.svg new file mode 100644 index 00000000..8cef06dc --- /dev/null +++ b/doc/theme/material/.icons/material/battery-30.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-40-bluetooth.svg b/doc/theme/material/.icons/material/battery-40-bluetooth.svg new file mode 100644 index 00000000..f09fdf50 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-40-bluetooth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-40.svg b/doc/theme/material/.icons/material/battery-40.svg new file mode 100644 index 00000000..026a6bb4 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-40.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-50-bluetooth.svg b/doc/theme/material/.icons/material/battery-50-bluetooth.svg new file mode 100644 index 00000000..59c7aa46 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-50-bluetooth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-50.svg b/doc/theme/material/.icons/material/battery-50.svg new file mode 100644 index 00000000..0a7adf52 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-50.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-60-bluetooth.svg b/doc/theme/material/.icons/material/battery-60-bluetooth.svg new file mode 100644 index 00000000..eed8eaa7 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-60-bluetooth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-60.svg b/doc/theme/material/.icons/material/battery-60.svg new file mode 100644 index 00000000..858daeff --- /dev/null +++ b/doc/theme/material/.icons/material/battery-60.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-70-bluetooth.svg b/doc/theme/material/.icons/material/battery-70-bluetooth.svg new file mode 100644 index 00000000..d66b2679 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-70-bluetooth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-70.svg b/doc/theme/material/.icons/material/battery-70.svg new file mode 100644 index 00000000..48d019d9 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-70.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-80-bluetooth.svg b/doc/theme/material/.icons/material/battery-80-bluetooth.svg new file mode 100644 index 00000000..17977028 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-80-bluetooth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-80.svg b/doc/theme/material/.icons/material/battery-80.svg new file mode 100644 index 00000000..b1e8ddc8 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-80.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-90-bluetooth.svg b/doc/theme/material/.icons/material/battery-90-bluetooth.svg new file mode 100644 index 00000000..2d8f8998 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-90-bluetooth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-90.svg b/doc/theme/material/.icons/material/battery-90.svg new file mode 100644 index 00000000..07d8ba45 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-90.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-alert-bluetooth.svg b/doc/theme/material/.icons/material/battery-alert-bluetooth.svg new file mode 100644 index 00000000..05841bb7 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-alert-bluetooth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-alert-variant-outline.svg b/doc/theme/material/.icons/material/battery-alert-variant-outline.svg new file mode 100644 index 00000000..10c89f41 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-alert-variant-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-alert-variant.svg b/doc/theme/material/.icons/material/battery-alert-variant.svg new file mode 100644 index 00000000..e0697b16 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-alert-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-alert.svg b/doc/theme/material/.icons/material/battery-alert.svg new file mode 100644 index 00000000..4d15d5ca --- /dev/null +++ b/doc/theme/material/.icons/material/battery-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-bluetooth-variant.svg b/doc/theme/material/.icons/material/battery-bluetooth-variant.svg new file mode 100644 index 00000000..17dab376 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-bluetooth-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-bluetooth.svg b/doc/theme/material/.icons/material/battery-bluetooth.svg new file mode 100644 index 00000000..06477d6e --- /dev/null +++ b/doc/theme/material/.icons/material/battery-bluetooth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-charging-10.svg b/doc/theme/material/.icons/material/battery-charging-10.svg new file mode 100644 index 00000000..3ffcbcfe --- /dev/null +++ b/doc/theme/material/.icons/material/battery-charging-10.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-charging-100.svg b/doc/theme/material/.icons/material/battery-charging-100.svg new file mode 100644 index 00000000..c974b7ac --- /dev/null +++ b/doc/theme/material/.icons/material/battery-charging-100.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-charging-20.svg b/doc/theme/material/.icons/material/battery-charging-20.svg new file mode 100644 index 00000000..95bf9b91 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-charging-20.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-charging-30.svg b/doc/theme/material/.icons/material/battery-charging-30.svg new file mode 100644 index 00000000..e6851738 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-charging-30.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-charging-40.svg b/doc/theme/material/.icons/material/battery-charging-40.svg new file mode 100644 index 00000000..3ae1fefd --- /dev/null +++ b/doc/theme/material/.icons/material/battery-charging-40.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-charging-50.svg b/doc/theme/material/.icons/material/battery-charging-50.svg new file mode 100644 index 00000000..3ae1fefd --- /dev/null +++ b/doc/theme/material/.icons/material/battery-charging-50.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-charging-60.svg b/doc/theme/material/.icons/material/battery-charging-60.svg new file mode 100644 index 00000000..850f50fb --- /dev/null +++ b/doc/theme/material/.icons/material/battery-charging-60.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-charging-70.svg b/doc/theme/material/.icons/material/battery-charging-70.svg new file mode 100644 index 00000000..6fc2366b --- /dev/null +++ b/doc/theme/material/.icons/material/battery-charging-70.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-charging-80.svg b/doc/theme/material/.icons/material/battery-charging-80.svg new file mode 100644 index 00000000..eaea3bac --- /dev/null +++ b/doc/theme/material/.icons/material/battery-charging-80.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-charging-90.svg b/doc/theme/material/.icons/material/battery-charging-90.svg new file mode 100644 index 00000000..34644768 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-charging-90.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-charging-high.svg b/doc/theme/material/.icons/material/battery-charging-high.svg new file mode 100644 index 00000000..ed03ddbb --- /dev/null +++ b/doc/theme/material/.icons/material/battery-charging-high.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-charging-low.svg b/doc/theme/material/.icons/material/battery-charging-low.svg new file mode 100644 index 00000000..d986de89 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-charging-low.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-charging-medium.svg b/doc/theme/material/.icons/material/battery-charging-medium.svg new file mode 100644 index 00000000..6d6f71e4 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-charging-medium.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-charging-outline.svg b/doc/theme/material/.icons/material/battery-charging-outline.svg new file mode 100644 index 00000000..bde0f404 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-charging-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-charging-wireless-10.svg b/doc/theme/material/.icons/material/battery-charging-wireless-10.svg new file mode 100644 index 00000000..125b95f0 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-charging-wireless-10.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-charging-wireless-20.svg b/doc/theme/material/.icons/material/battery-charging-wireless-20.svg new file mode 100644 index 00000000..ff03f997 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-charging-wireless-20.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-charging-wireless-30.svg b/doc/theme/material/.icons/material/battery-charging-wireless-30.svg new file mode 100644 index 00000000..47ca7a87 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-charging-wireless-30.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-charging-wireless-40.svg b/doc/theme/material/.icons/material/battery-charging-wireless-40.svg new file mode 100644 index 00000000..be660874 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-charging-wireless-40.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-charging-wireless-50.svg b/doc/theme/material/.icons/material/battery-charging-wireless-50.svg new file mode 100644 index 00000000..44b0999d --- /dev/null +++ b/doc/theme/material/.icons/material/battery-charging-wireless-50.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-charging-wireless-60.svg b/doc/theme/material/.icons/material/battery-charging-wireless-60.svg new file mode 100644 index 00000000..cd9ac6d3 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-charging-wireless-60.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-charging-wireless-70.svg b/doc/theme/material/.icons/material/battery-charging-wireless-70.svg new file mode 100644 index 00000000..33964dec --- /dev/null +++ b/doc/theme/material/.icons/material/battery-charging-wireless-70.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-charging-wireless-80.svg b/doc/theme/material/.icons/material/battery-charging-wireless-80.svg new file mode 100644 index 00000000..de64767b --- /dev/null +++ b/doc/theme/material/.icons/material/battery-charging-wireless-80.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-charging-wireless-90.svg b/doc/theme/material/.icons/material/battery-charging-wireless-90.svg new file mode 100644 index 00000000..95ea15ef --- /dev/null +++ b/doc/theme/material/.icons/material/battery-charging-wireless-90.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-charging-wireless-alert.svg b/doc/theme/material/.icons/material/battery-charging-wireless-alert.svg new file mode 100644 index 00000000..7787a477 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-charging-wireless-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-charging-wireless-outline.svg b/doc/theme/material/.icons/material/battery-charging-wireless-outline.svg new file mode 100644 index 00000000..50c46123 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-charging-wireless-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-charging-wireless.svg b/doc/theme/material/.icons/material/battery-charging-wireless.svg new file mode 100644 index 00000000..6e0b4c2c --- /dev/null +++ b/doc/theme/material/.icons/material/battery-charging-wireless.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-charging.svg b/doc/theme/material/.icons/material/battery-charging.svg new file mode 100644 index 00000000..75a25800 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-charging.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-heart-outline.svg b/doc/theme/material/.icons/material/battery-heart-outline.svg new file mode 100644 index 00000000..4cafaf61 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-heart-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-heart-variant.svg b/doc/theme/material/.icons/material/battery-heart-variant.svg new file mode 100644 index 00000000..4efc92fc --- /dev/null +++ b/doc/theme/material/.icons/material/battery-heart-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-heart.svg b/doc/theme/material/.icons/material/battery-heart.svg new file mode 100644 index 00000000..b83f3aa5 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-heart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-high.svg b/doc/theme/material/.icons/material/battery-high.svg new file mode 100644 index 00000000..2287bfcf --- /dev/null +++ b/doc/theme/material/.icons/material/battery-high.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-low.svg b/doc/theme/material/.icons/material/battery-low.svg new file mode 100644 index 00000000..e32c76c9 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-low.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-medium.svg b/doc/theme/material/.icons/material/battery-medium.svg new file mode 100644 index 00000000..d12103ad --- /dev/null +++ b/doc/theme/material/.icons/material/battery-medium.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-minus.svg b/doc/theme/material/.icons/material/battery-minus.svg new file mode 100644 index 00000000..38b9ad0b --- /dev/null +++ b/doc/theme/material/.icons/material/battery-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-negative.svg b/doc/theme/material/.icons/material/battery-negative.svg new file mode 100644 index 00000000..d7648ca9 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-negative.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-off-outline.svg b/doc/theme/material/.icons/material/battery-off-outline.svg new file mode 100644 index 00000000..5dc8d6e3 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-off.svg b/doc/theme/material/.icons/material/battery-off.svg new file mode 100644 index 00000000..bd09a207 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-outline.svg b/doc/theme/material/.icons/material/battery-outline.svg new file mode 100644 index 00000000..0bbfdae2 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-plus.svg b/doc/theme/material/.icons/material/battery-plus.svg new file mode 100644 index 00000000..6a8f6b20 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-positive.svg b/doc/theme/material/.icons/material/battery-positive.svg new file mode 100644 index 00000000..5577a1fb --- /dev/null +++ b/doc/theme/material/.icons/material/battery-positive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-unknown-bluetooth.svg b/doc/theme/material/.icons/material/battery-unknown-bluetooth.svg new file mode 100644 index 00000000..4297ed2b --- /dev/null +++ b/doc/theme/material/.icons/material/battery-unknown-bluetooth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery-unknown.svg b/doc/theme/material/.icons/material/battery-unknown.svg new file mode 100644 index 00000000..1deafb41 --- /dev/null +++ b/doc/theme/material/.icons/material/battery-unknown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battery.svg b/doc/theme/material/.icons/material/battery.svg new file mode 100644 index 00000000..daec250b --- /dev/null +++ b/doc/theme/material/.icons/material/battery.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/battlenet.svg b/doc/theme/material/.icons/material/battlenet.svg new file mode 100644 index 00000000..18fc5130 --- /dev/null +++ b/doc/theme/material/.icons/material/battlenet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/beach.svg b/doc/theme/material/.icons/material/beach.svg new file mode 100644 index 00000000..4b02f9ca --- /dev/null +++ b/doc/theme/material/.icons/material/beach.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/beaker-alert-outline.svg b/doc/theme/material/.icons/material/beaker-alert-outline.svg new file mode 100644 index 00000000..3006f2fb --- /dev/null +++ b/doc/theme/material/.icons/material/beaker-alert-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/beaker-alert.svg b/doc/theme/material/.icons/material/beaker-alert.svg new file mode 100644 index 00000000..a992a172 --- /dev/null +++ b/doc/theme/material/.icons/material/beaker-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/beaker-check-outline.svg b/doc/theme/material/.icons/material/beaker-check-outline.svg new file mode 100644 index 00000000..6bfff2dc --- /dev/null +++ b/doc/theme/material/.icons/material/beaker-check-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/beaker-check.svg b/doc/theme/material/.icons/material/beaker-check.svg new file mode 100644 index 00000000..3f733d02 --- /dev/null +++ b/doc/theme/material/.icons/material/beaker-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/beaker-minus-outline.svg b/doc/theme/material/.icons/material/beaker-minus-outline.svg new file mode 100644 index 00000000..235a2ac8 --- /dev/null +++ b/doc/theme/material/.icons/material/beaker-minus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/beaker-minus.svg b/doc/theme/material/.icons/material/beaker-minus.svg new file mode 100644 index 00000000..9154dc91 --- /dev/null +++ b/doc/theme/material/.icons/material/beaker-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/beaker-outline.svg b/doc/theme/material/.icons/material/beaker-outline.svg new file mode 100644 index 00000000..ed40c474 --- /dev/null +++ b/doc/theme/material/.icons/material/beaker-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/beaker-plus-outline.svg b/doc/theme/material/.icons/material/beaker-plus-outline.svg new file mode 100644 index 00000000..ee87b167 --- /dev/null +++ b/doc/theme/material/.icons/material/beaker-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/beaker-plus.svg b/doc/theme/material/.icons/material/beaker-plus.svg new file mode 100644 index 00000000..0fe8a0a8 --- /dev/null +++ b/doc/theme/material/.icons/material/beaker-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/beaker-question-outline.svg b/doc/theme/material/.icons/material/beaker-question-outline.svg new file mode 100644 index 00000000..7414119c --- /dev/null +++ b/doc/theme/material/.icons/material/beaker-question-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/beaker-question.svg b/doc/theme/material/.icons/material/beaker-question.svg new file mode 100644 index 00000000..a7538541 --- /dev/null +++ b/doc/theme/material/.icons/material/beaker-question.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/beaker-remove-outline.svg b/doc/theme/material/.icons/material/beaker-remove-outline.svg new file mode 100644 index 00000000..ea2c0a44 --- /dev/null +++ b/doc/theme/material/.icons/material/beaker-remove-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/beaker-remove.svg b/doc/theme/material/.icons/material/beaker-remove.svg new file mode 100644 index 00000000..53c714d8 --- /dev/null +++ b/doc/theme/material/.icons/material/beaker-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/beaker.svg b/doc/theme/material/.icons/material/beaker.svg new file mode 100644 index 00000000..9d9814d5 --- /dev/null +++ b/doc/theme/material/.icons/material/beaker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bed-double-outline.svg b/doc/theme/material/.icons/material/bed-double-outline.svg new file mode 100644 index 00000000..de766e6a --- /dev/null +++ b/doc/theme/material/.icons/material/bed-double-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bed-double.svg b/doc/theme/material/.icons/material/bed-double.svg new file mode 100644 index 00000000..6a4f025f --- /dev/null +++ b/doc/theme/material/.icons/material/bed-double.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bed-empty.svg b/doc/theme/material/.icons/material/bed-empty.svg new file mode 100644 index 00000000..0f016529 --- /dev/null +++ b/doc/theme/material/.icons/material/bed-empty.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bed-king-outline.svg b/doc/theme/material/.icons/material/bed-king-outline.svg new file mode 100644 index 00000000..e1b9fc63 --- /dev/null +++ b/doc/theme/material/.icons/material/bed-king-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bed-king.svg b/doc/theme/material/.icons/material/bed-king.svg new file mode 100644 index 00000000..b25d4c07 --- /dev/null +++ b/doc/theme/material/.icons/material/bed-king.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bed-outline.svg b/doc/theme/material/.icons/material/bed-outline.svg new file mode 100644 index 00000000..a5d598be --- /dev/null +++ b/doc/theme/material/.icons/material/bed-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bed-queen-outline.svg b/doc/theme/material/.icons/material/bed-queen-outline.svg new file mode 100644 index 00000000..c9d0bacb --- /dev/null +++ b/doc/theme/material/.icons/material/bed-queen-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bed-queen.svg b/doc/theme/material/.icons/material/bed-queen.svg new file mode 100644 index 00000000..908e0d9d --- /dev/null +++ b/doc/theme/material/.icons/material/bed-queen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bed-single-outline.svg b/doc/theme/material/.icons/material/bed-single-outline.svg new file mode 100644 index 00000000..9b826b32 --- /dev/null +++ b/doc/theme/material/.icons/material/bed-single-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bed-single.svg b/doc/theme/material/.icons/material/bed-single.svg new file mode 100644 index 00000000..d463f277 --- /dev/null +++ b/doc/theme/material/.icons/material/bed-single.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bed.svg b/doc/theme/material/.icons/material/bed.svg new file mode 100644 index 00000000..bc64a4a9 --- /dev/null +++ b/doc/theme/material/.icons/material/bed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bee-flower.svg b/doc/theme/material/.icons/material/bee-flower.svg new file mode 100644 index 00000000..ca8dec07 --- /dev/null +++ b/doc/theme/material/.icons/material/bee-flower.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bee.svg b/doc/theme/material/.icons/material/bee.svg new file mode 100644 index 00000000..e59f5bac --- /dev/null +++ b/doc/theme/material/.icons/material/bee.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/beehive-off-outline.svg b/doc/theme/material/.icons/material/beehive-off-outline.svg new file mode 100644 index 00000000..e7e5a2cf --- /dev/null +++ b/doc/theme/material/.icons/material/beehive-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/beehive-outline.svg b/doc/theme/material/.icons/material/beehive-outline.svg new file mode 100644 index 00000000..46225d2e --- /dev/null +++ b/doc/theme/material/.icons/material/beehive-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/beer-outline.svg b/doc/theme/material/.icons/material/beer-outline.svg new file mode 100644 index 00000000..6ffd29bf --- /dev/null +++ b/doc/theme/material/.icons/material/beer-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/beer.svg b/doc/theme/material/.icons/material/beer.svg new file mode 100644 index 00000000..442a260e --- /dev/null +++ b/doc/theme/material/.icons/material/beer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bell-alert-outline.svg b/doc/theme/material/.icons/material/bell-alert-outline.svg new file mode 100644 index 00000000..734e1b87 --- /dev/null +++ b/doc/theme/material/.icons/material/bell-alert-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bell-alert.svg b/doc/theme/material/.icons/material/bell-alert.svg new file mode 100644 index 00000000..26f2bce8 --- /dev/null +++ b/doc/theme/material/.icons/material/bell-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bell-cancel-outline.svg b/doc/theme/material/.icons/material/bell-cancel-outline.svg new file mode 100644 index 00000000..50685f00 --- /dev/null +++ b/doc/theme/material/.icons/material/bell-cancel-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bell-cancel.svg b/doc/theme/material/.icons/material/bell-cancel.svg new file mode 100644 index 00000000..86235bae --- /dev/null +++ b/doc/theme/material/.icons/material/bell-cancel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bell-check-outline.svg b/doc/theme/material/.icons/material/bell-check-outline.svg new file mode 100644 index 00000000..257fe6f3 --- /dev/null +++ b/doc/theme/material/.icons/material/bell-check-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bell-check.svg b/doc/theme/material/.icons/material/bell-check.svg new file mode 100644 index 00000000..0f50d1e5 --- /dev/null +++ b/doc/theme/material/.icons/material/bell-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bell-circle-outline.svg b/doc/theme/material/.icons/material/bell-circle-outline.svg new file mode 100644 index 00000000..00b7f9d3 --- /dev/null +++ b/doc/theme/material/.icons/material/bell-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bell-circle.svg b/doc/theme/material/.icons/material/bell-circle.svg new file mode 100644 index 00000000..d99ae224 --- /dev/null +++ b/doc/theme/material/.icons/material/bell-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bell-minus-outline.svg b/doc/theme/material/.icons/material/bell-minus-outline.svg new file mode 100644 index 00000000..cdd10738 --- /dev/null +++ b/doc/theme/material/.icons/material/bell-minus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bell-minus.svg b/doc/theme/material/.icons/material/bell-minus.svg new file mode 100644 index 00000000..94d59f50 --- /dev/null +++ b/doc/theme/material/.icons/material/bell-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bell-off-outline.svg b/doc/theme/material/.icons/material/bell-off-outline.svg new file mode 100644 index 00000000..f44cd647 --- /dev/null +++ b/doc/theme/material/.icons/material/bell-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bell-off.svg b/doc/theme/material/.icons/material/bell-off.svg new file mode 100644 index 00000000..d2d3c168 --- /dev/null +++ b/doc/theme/material/.icons/material/bell-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bell-outline.svg b/doc/theme/material/.icons/material/bell-outline.svg new file mode 100644 index 00000000..02e22a88 --- /dev/null +++ b/doc/theme/material/.icons/material/bell-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bell-plus-outline.svg b/doc/theme/material/.icons/material/bell-plus-outline.svg new file mode 100644 index 00000000..0e2bbdac --- /dev/null +++ b/doc/theme/material/.icons/material/bell-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bell-plus.svg b/doc/theme/material/.icons/material/bell-plus.svg new file mode 100644 index 00000000..5d0e7813 --- /dev/null +++ b/doc/theme/material/.icons/material/bell-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bell-remove-outline.svg b/doc/theme/material/.icons/material/bell-remove-outline.svg new file mode 100644 index 00000000..82f8f353 --- /dev/null +++ b/doc/theme/material/.icons/material/bell-remove-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bell-remove.svg b/doc/theme/material/.icons/material/bell-remove.svg new file mode 100644 index 00000000..671d6067 --- /dev/null +++ b/doc/theme/material/.icons/material/bell-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bell-ring-outline.svg b/doc/theme/material/.icons/material/bell-ring-outline.svg new file mode 100644 index 00000000..1b4808be --- /dev/null +++ b/doc/theme/material/.icons/material/bell-ring-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bell-ring.svg b/doc/theme/material/.icons/material/bell-ring.svg new file mode 100644 index 00000000..29dcc4b5 --- /dev/null +++ b/doc/theme/material/.icons/material/bell-ring.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bell-sleep-outline.svg b/doc/theme/material/.icons/material/bell-sleep-outline.svg new file mode 100644 index 00000000..91b963e6 --- /dev/null +++ b/doc/theme/material/.icons/material/bell-sleep-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bell-sleep.svg b/doc/theme/material/.icons/material/bell-sleep.svg new file mode 100644 index 00000000..12239bce --- /dev/null +++ b/doc/theme/material/.icons/material/bell-sleep.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bell.svg b/doc/theme/material/.icons/material/bell.svg new file mode 100644 index 00000000..232b52d5 --- /dev/null +++ b/doc/theme/material/.icons/material/bell.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/beta.svg b/doc/theme/material/.icons/material/beta.svg new file mode 100644 index 00000000..0ede5a5f --- /dev/null +++ b/doc/theme/material/.icons/material/beta.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/betamax.svg b/doc/theme/material/.icons/material/betamax.svg new file mode 100644 index 00000000..c4cb82ae --- /dev/null +++ b/doc/theme/material/.icons/material/betamax.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/biathlon.svg b/doc/theme/material/.icons/material/biathlon.svg new file mode 100644 index 00000000..c50df2b0 --- /dev/null +++ b/doc/theme/material/.icons/material/biathlon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bicycle-basket.svg b/doc/theme/material/.icons/material/bicycle-basket.svg new file mode 100644 index 00000000..1ff995b6 --- /dev/null +++ b/doc/theme/material/.icons/material/bicycle-basket.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bicycle.svg b/doc/theme/material/.icons/material/bicycle.svg new file mode 100644 index 00000000..03923397 --- /dev/null +++ b/doc/theme/material/.icons/material/bicycle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bike-fast.svg b/doc/theme/material/.icons/material/bike-fast.svg new file mode 100644 index 00000000..361e2965 --- /dev/null +++ b/doc/theme/material/.icons/material/bike-fast.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bike.svg b/doc/theme/material/.icons/material/bike.svg new file mode 100644 index 00000000..3d118b5b --- /dev/null +++ b/doc/theme/material/.icons/material/bike.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/billboard.svg b/doc/theme/material/.icons/material/billboard.svg new file mode 100644 index 00000000..0face38d --- /dev/null +++ b/doc/theme/material/.icons/material/billboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/billiards-rack.svg b/doc/theme/material/.icons/material/billiards-rack.svg new file mode 100644 index 00000000..2d2f124f --- /dev/null +++ b/doc/theme/material/.icons/material/billiards-rack.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/billiards.svg b/doc/theme/material/.icons/material/billiards.svg new file mode 100644 index 00000000..0f559b40 --- /dev/null +++ b/doc/theme/material/.icons/material/billiards.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/binoculars.svg b/doc/theme/material/.icons/material/binoculars.svg new file mode 100644 index 00000000..f16c51cb --- /dev/null +++ b/doc/theme/material/.icons/material/binoculars.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bio.svg b/doc/theme/material/.icons/material/bio.svg new file mode 100644 index 00000000..58033190 --- /dev/null +++ b/doc/theme/material/.icons/material/bio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/biohazard.svg b/doc/theme/material/.icons/material/biohazard.svg new file mode 100644 index 00000000..57b6dcf1 --- /dev/null +++ b/doc/theme/material/.icons/material/biohazard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bitbucket.svg b/doc/theme/material/.icons/material/bitbucket.svg new file mode 100644 index 00000000..6b9ac140 --- /dev/null +++ b/doc/theme/material/.icons/material/bitbucket.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bitcoin.svg b/doc/theme/material/.icons/material/bitcoin.svg new file mode 100644 index 00000000..3e0d035d --- /dev/null +++ b/doc/theme/material/.icons/material/bitcoin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/black-mesa.svg b/doc/theme/material/.icons/material/black-mesa.svg new file mode 100644 index 00000000..4b06cd8e --- /dev/null +++ b/doc/theme/material/.icons/material/black-mesa.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/blender-software.svg b/doc/theme/material/.icons/material/blender-software.svg new file mode 100644 index 00000000..6df5f7ae --- /dev/null +++ b/doc/theme/material/.icons/material/blender-software.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/blender.svg b/doc/theme/material/.icons/material/blender.svg new file mode 100644 index 00000000..5ebee136 --- /dev/null +++ b/doc/theme/material/.icons/material/blender.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/blinds-open.svg b/doc/theme/material/.icons/material/blinds-open.svg new file mode 100644 index 00000000..46c52603 --- /dev/null +++ b/doc/theme/material/.icons/material/blinds-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/blinds.svg b/doc/theme/material/.icons/material/blinds.svg new file mode 100644 index 00000000..74a7ea34 --- /dev/null +++ b/doc/theme/material/.icons/material/blinds.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/block-helper.svg b/doc/theme/material/.icons/material/block-helper.svg new file mode 100644 index 00000000..91a083ba --- /dev/null +++ b/doc/theme/material/.icons/material/block-helper.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/blogger.svg b/doc/theme/material/.icons/material/blogger.svg new file mode 100644 index 00000000..80f87c1b --- /dev/null +++ b/doc/theme/material/.icons/material/blogger.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/blood-bag.svg b/doc/theme/material/.icons/material/blood-bag.svg new file mode 100644 index 00000000..8d98f59c --- /dev/null +++ b/doc/theme/material/.icons/material/blood-bag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bluetooth-audio.svg b/doc/theme/material/.icons/material/bluetooth-audio.svg new file mode 100644 index 00000000..1ff78d75 --- /dev/null +++ b/doc/theme/material/.icons/material/bluetooth-audio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bluetooth-connect.svg b/doc/theme/material/.icons/material/bluetooth-connect.svg new file mode 100644 index 00000000..1410e4d3 --- /dev/null +++ b/doc/theme/material/.icons/material/bluetooth-connect.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bluetooth-off.svg b/doc/theme/material/.icons/material/bluetooth-off.svg new file mode 100644 index 00000000..a8619dc1 --- /dev/null +++ b/doc/theme/material/.icons/material/bluetooth-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bluetooth-settings.svg b/doc/theme/material/.icons/material/bluetooth-settings.svg new file mode 100644 index 00000000..99c39632 --- /dev/null +++ b/doc/theme/material/.icons/material/bluetooth-settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bluetooth-transfer.svg b/doc/theme/material/.icons/material/bluetooth-transfer.svg new file mode 100644 index 00000000..9e4a650c --- /dev/null +++ b/doc/theme/material/.icons/material/bluetooth-transfer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bluetooth.svg b/doc/theme/material/.icons/material/bluetooth.svg new file mode 100644 index 00000000..b8320107 --- /dev/null +++ b/doc/theme/material/.icons/material/bluetooth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/blur-linear.svg b/doc/theme/material/.icons/material/blur-linear.svg new file mode 100644 index 00000000..92f411ce --- /dev/null +++ b/doc/theme/material/.icons/material/blur-linear.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/blur-off.svg b/doc/theme/material/.icons/material/blur-off.svg new file mode 100644 index 00000000..64d405df --- /dev/null +++ b/doc/theme/material/.icons/material/blur-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/blur-radial.svg b/doc/theme/material/.icons/material/blur-radial.svg new file mode 100644 index 00000000..be4729b7 --- /dev/null +++ b/doc/theme/material/.icons/material/blur-radial.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/blur.svg b/doc/theme/material/.icons/material/blur.svg new file mode 100644 index 00000000..30be2582 --- /dev/null +++ b/doc/theme/material/.icons/material/blur.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bolnisi-cross.svg b/doc/theme/material/.icons/material/bolnisi-cross.svg new file mode 100644 index 00000000..b4c5a8cd --- /dev/null +++ b/doc/theme/material/.icons/material/bolnisi-cross.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bolt.svg b/doc/theme/material/.icons/material/bolt.svg new file mode 100644 index 00000000..72eb6674 --- /dev/null +++ b/doc/theme/material/.icons/material/bolt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bomb-off.svg b/doc/theme/material/.icons/material/bomb-off.svg new file mode 100644 index 00000000..1182c7d1 --- /dev/null +++ b/doc/theme/material/.icons/material/bomb-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bomb.svg b/doc/theme/material/.icons/material/bomb.svg new file mode 100644 index 00000000..d8ede823 --- /dev/null +++ b/doc/theme/material/.icons/material/bomb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bone.svg b/doc/theme/material/.icons/material/bone.svg new file mode 100644 index 00000000..a6963410 --- /dev/null +++ b/doc/theme/material/.icons/material/bone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-account-outline.svg b/doc/theme/material/.icons/material/book-account-outline.svg new file mode 100644 index 00000000..1b25c074 --- /dev/null +++ b/doc/theme/material/.icons/material/book-account-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-account.svg b/doc/theme/material/.icons/material/book-account.svg new file mode 100644 index 00000000..2604e329 --- /dev/null +++ b/doc/theme/material/.icons/material/book-account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-alphabet.svg b/doc/theme/material/.icons/material/book-alphabet.svg new file mode 100644 index 00000000..77f52838 --- /dev/null +++ b/doc/theme/material/.icons/material/book-alphabet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-cross.svg b/doc/theme/material/.icons/material/book-cross.svg new file mode 100644 index 00000000..e2296a9a --- /dev/null +++ b/doc/theme/material/.icons/material/book-cross.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-information-variant.svg b/doc/theme/material/.icons/material/book-information-variant.svg new file mode 100644 index 00000000..07c4a00c --- /dev/null +++ b/doc/theme/material/.icons/material/book-information-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-lock-open.svg b/doc/theme/material/.icons/material/book-lock-open.svg new file mode 100644 index 00000000..dc69ea49 --- /dev/null +++ b/doc/theme/material/.icons/material/book-lock-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-lock.svg b/doc/theme/material/.icons/material/book-lock.svg new file mode 100644 index 00000000..05d46c9e --- /dev/null +++ b/doc/theme/material/.icons/material/book-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-minus-multiple-outline.svg b/doc/theme/material/.icons/material/book-minus-multiple-outline.svg new file mode 100644 index 00000000..004a4967 --- /dev/null +++ b/doc/theme/material/.icons/material/book-minus-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-minus-multiple.svg b/doc/theme/material/.icons/material/book-minus-multiple.svg new file mode 100644 index 00000000..63f6d11a --- /dev/null +++ b/doc/theme/material/.icons/material/book-minus-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-minus.svg b/doc/theme/material/.icons/material/book-minus.svg new file mode 100644 index 00000000..8054892a --- /dev/null +++ b/doc/theme/material/.icons/material/book-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-multiple-outline.svg b/doc/theme/material/.icons/material/book-multiple-outline.svg new file mode 100644 index 00000000..700c224f --- /dev/null +++ b/doc/theme/material/.icons/material/book-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-multiple.svg b/doc/theme/material/.icons/material/book-multiple.svg new file mode 100644 index 00000000..06a4d9e2 --- /dev/null +++ b/doc/theme/material/.icons/material/book-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-music.svg b/doc/theme/material/.icons/material/book-music.svg new file mode 100644 index 00000000..0d6cc89f --- /dev/null +++ b/doc/theme/material/.icons/material/book-music.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-open-outline.svg b/doc/theme/material/.icons/material/book-open-outline.svg new file mode 100644 index 00000000..d16ef1c9 --- /dev/null +++ b/doc/theme/material/.icons/material/book-open-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-open-page-variant.svg b/doc/theme/material/.icons/material/book-open-page-variant.svg new file mode 100644 index 00000000..e90166aa --- /dev/null +++ b/doc/theme/material/.icons/material/book-open-page-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-open-variant.svg b/doc/theme/material/.icons/material/book-open-variant.svg new file mode 100644 index 00000000..e082fd2a --- /dev/null +++ b/doc/theme/material/.icons/material/book-open-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-open.svg b/doc/theme/material/.icons/material/book-open.svg new file mode 100644 index 00000000..03997060 --- /dev/null +++ b/doc/theme/material/.icons/material/book-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-outline.svg b/doc/theme/material/.icons/material/book-outline.svg new file mode 100644 index 00000000..abacfb8f --- /dev/null +++ b/doc/theme/material/.icons/material/book-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-play-outline.svg b/doc/theme/material/.icons/material/book-play-outline.svg new file mode 100644 index 00000000..e930a988 --- /dev/null +++ b/doc/theme/material/.icons/material/book-play-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-play.svg b/doc/theme/material/.icons/material/book-play.svg new file mode 100644 index 00000000..0ce11c05 --- /dev/null +++ b/doc/theme/material/.icons/material/book-play.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-plus-multiple-outline.svg b/doc/theme/material/.icons/material/book-plus-multiple-outline.svg new file mode 100644 index 00000000..1a5e9b25 --- /dev/null +++ b/doc/theme/material/.icons/material/book-plus-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-plus-multiple.svg b/doc/theme/material/.icons/material/book-plus-multiple.svg new file mode 100644 index 00000000..695ecacd --- /dev/null +++ b/doc/theme/material/.icons/material/book-plus-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-plus.svg b/doc/theme/material/.icons/material/book-plus.svg new file mode 100644 index 00000000..980c0e5b --- /dev/null +++ b/doc/theme/material/.icons/material/book-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-remove-multiple-outline.svg b/doc/theme/material/.icons/material/book-remove-multiple-outline.svg new file mode 100644 index 00000000..2b3979a2 --- /dev/null +++ b/doc/theme/material/.icons/material/book-remove-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-remove-multiple.svg b/doc/theme/material/.icons/material/book-remove-multiple.svg new file mode 100644 index 00000000..20a49698 --- /dev/null +++ b/doc/theme/material/.icons/material/book-remove-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-remove.svg b/doc/theme/material/.icons/material/book-remove.svg new file mode 100644 index 00000000..8b3eb3a4 --- /dev/null +++ b/doc/theme/material/.icons/material/book-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-search-outline.svg b/doc/theme/material/.icons/material/book-search-outline.svg new file mode 100644 index 00000000..3e57bac8 --- /dev/null +++ b/doc/theme/material/.icons/material/book-search-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-search.svg b/doc/theme/material/.icons/material/book-search.svg new file mode 100644 index 00000000..7ca56ea0 --- /dev/null +++ b/doc/theme/material/.icons/material/book-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-variant-multiple.svg b/doc/theme/material/.icons/material/book-variant-multiple.svg new file mode 100644 index 00000000..5c15b594 --- /dev/null +++ b/doc/theme/material/.icons/material/book-variant-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book-variant.svg b/doc/theme/material/.icons/material/book-variant.svg new file mode 100644 index 00000000..eed94a8d --- /dev/null +++ b/doc/theme/material/.icons/material/book-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/book.svg b/doc/theme/material/.icons/material/book.svg new file mode 100644 index 00000000..ef7c148b --- /dev/null +++ b/doc/theme/material/.icons/material/book.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bookmark-check-outline.svg b/doc/theme/material/.icons/material/bookmark-check-outline.svg new file mode 100644 index 00000000..eab6a501 --- /dev/null +++ b/doc/theme/material/.icons/material/bookmark-check-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bookmark-check.svg b/doc/theme/material/.icons/material/bookmark-check.svg new file mode 100644 index 00000000..4c501c5a --- /dev/null +++ b/doc/theme/material/.icons/material/bookmark-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bookmark-minus-outline.svg b/doc/theme/material/.icons/material/bookmark-minus-outline.svg new file mode 100644 index 00000000..1c9a28c5 --- /dev/null +++ b/doc/theme/material/.icons/material/bookmark-minus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bookmark-minus.svg b/doc/theme/material/.icons/material/bookmark-minus.svg new file mode 100644 index 00000000..b280e84b --- /dev/null +++ b/doc/theme/material/.icons/material/bookmark-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bookmark-multiple-outline.svg b/doc/theme/material/.icons/material/bookmark-multiple-outline.svg new file mode 100644 index 00000000..9b228361 --- /dev/null +++ b/doc/theme/material/.icons/material/bookmark-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bookmark-multiple.svg b/doc/theme/material/.icons/material/bookmark-multiple.svg new file mode 100644 index 00000000..814794aa --- /dev/null +++ b/doc/theme/material/.icons/material/bookmark-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bookmark-music-outline.svg b/doc/theme/material/.icons/material/bookmark-music-outline.svg new file mode 100644 index 00000000..7149718a --- /dev/null +++ b/doc/theme/material/.icons/material/bookmark-music-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bookmark-music.svg b/doc/theme/material/.icons/material/bookmark-music.svg new file mode 100644 index 00000000..a59a564d --- /dev/null +++ b/doc/theme/material/.icons/material/bookmark-music.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bookmark-off-outline.svg b/doc/theme/material/.icons/material/bookmark-off-outline.svg new file mode 100644 index 00000000..26f13f68 --- /dev/null +++ b/doc/theme/material/.icons/material/bookmark-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bookmark-off.svg b/doc/theme/material/.icons/material/bookmark-off.svg new file mode 100644 index 00000000..6b11b355 --- /dev/null +++ b/doc/theme/material/.icons/material/bookmark-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bookmark-outline.svg b/doc/theme/material/.icons/material/bookmark-outline.svg new file mode 100644 index 00000000..21454349 --- /dev/null +++ b/doc/theme/material/.icons/material/bookmark-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bookmark-plus-outline.svg b/doc/theme/material/.icons/material/bookmark-plus-outline.svg new file mode 100644 index 00000000..7ef987aa --- /dev/null +++ b/doc/theme/material/.icons/material/bookmark-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bookmark-plus.svg b/doc/theme/material/.icons/material/bookmark-plus.svg new file mode 100644 index 00000000..ac704fd9 --- /dev/null +++ b/doc/theme/material/.icons/material/bookmark-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bookmark-remove-outline.svg b/doc/theme/material/.icons/material/bookmark-remove-outline.svg new file mode 100644 index 00000000..55c84704 --- /dev/null +++ b/doc/theme/material/.icons/material/bookmark-remove-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bookmark-remove.svg b/doc/theme/material/.icons/material/bookmark-remove.svg new file mode 100644 index 00000000..244e49ea --- /dev/null +++ b/doc/theme/material/.icons/material/bookmark-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bookmark.svg b/doc/theme/material/.icons/material/bookmark.svg new file mode 100644 index 00000000..ac19d189 --- /dev/null +++ b/doc/theme/material/.icons/material/bookmark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bookshelf.svg b/doc/theme/material/.icons/material/bookshelf.svg new file mode 100644 index 00000000..1f87ed39 --- /dev/null +++ b/doc/theme/material/.icons/material/bookshelf.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/boom-gate-alert-outline.svg b/doc/theme/material/.icons/material/boom-gate-alert-outline.svg new file mode 100644 index 00000000..07bec0c5 --- /dev/null +++ b/doc/theme/material/.icons/material/boom-gate-alert-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/boom-gate-alert.svg b/doc/theme/material/.icons/material/boom-gate-alert.svg new file mode 100644 index 00000000..73603ecf --- /dev/null +++ b/doc/theme/material/.icons/material/boom-gate-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/boom-gate-down-outline.svg b/doc/theme/material/.icons/material/boom-gate-down-outline.svg new file mode 100644 index 00000000..f0fcf6b9 --- /dev/null +++ b/doc/theme/material/.icons/material/boom-gate-down-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/boom-gate-down.svg b/doc/theme/material/.icons/material/boom-gate-down.svg new file mode 100644 index 00000000..f1d68299 --- /dev/null +++ b/doc/theme/material/.icons/material/boom-gate-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/boom-gate-outline.svg b/doc/theme/material/.icons/material/boom-gate-outline.svg new file mode 100644 index 00000000..feac8d99 --- /dev/null +++ b/doc/theme/material/.icons/material/boom-gate-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/boom-gate-up-outline.svg b/doc/theme/material/.icons/material/boom-gate-up-outline.svg new file mode 100644 index 00000000..15c76590 --- /dev/null +++ b/doc/theme/material/.icons/material/boom-gate-up-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/boom-gate-up.svg b/doc/theme/material/.icons/material/boom-gate-up.svg new file mode 100644 index 00000000..4f30a973 --- /dev/null +++ b/doc/theme/material/.icons/material/boom-gate-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/boom-gate.svg b/doc/theme/material/.icons/material/boom-gate.svg new file mode 100644 index 00000000..fcc816c2 --- /dev/null +++ b/doc/theme/material/.icons/material/boom-gate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/boombox.svg b/doc/theme/material/.icons/material/boombox.svg new file mode 100644 index 00000000..ac654b1a --- /dev/null +++ b/doc/theme/material/.icons/material/boombox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/boomerang.svg b/doc/theme/material/.icons/material/boomerang.svg new file mode 100644 index 00000000..ce2f9bd2 --- /dev/null +++ b/doc/theme/material/.icons/material/boomerang.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bootstrap.svg b/doc/theme/material/.icons/material/bootstrap.svg new file mode 100644 index 00000000..df594798 --- /dev/null +++ b/doc/theme/material/.icons/material/bootstrap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/border-all-variant.svg b/doc/theme/material/.icons/material/border-all-variant.svg new file mode 100644 index 00000000..af936cff --- /dev/null +++ b/doc/theme/material/.icons/material/border-all-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/border-all.svg b/doc/theme/material/.icons/material/border-all.svg new file mode 100644 index 00000000..b888f62b --- /dev/null +++ b/doc/theme/material/.icons/material/border-all.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/border-bottom-variant.svg b/doc/theme/material/.icons/material/border-bottom-variant.svg new file mode 100644 index 00000000..9352db39 --- /dev/null +++ b/doc/theme/material/.icons/material/border-bottom-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/border-bottom.svg b/doc/theme/material/.icons/material/border-bottom.svg new file mode 100644 index 00000000..b0b5ac1d --- /dev/null +++ b/doc/theme/material/.icons/material/border-bottom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/border-color.svg b/doc/theme/material/.icons/material/border-color.svg new file mode 100644 index 00000000..685b11d8 --- /dev/null +++ b/doc/theme/material/.icons/material/border-color.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/border-horizontal.svg b/doc/theme/material/.icons/material/border-horizontal.svg new file mode 100644 index 00000000..d127c396 --- /dev/null +++ b/doc/theme/material/.icons/material/border-horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/border-inside.svg b/doc/theme/material/.icons/material/border-inside.svg new file mode 100644 index 00000000..61233fac --- /dev/null +++ b/doc/theme/material/.icons/material/border-inside.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/border-left-variant.svg b/doc/theme/material/.icons/material/border-left-variant.svg new file mode 100644 index 00000000..2e3aeee1 --- /dev/null +++ b/doc/theme/material/.icons/material/border-left-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/border-left.svg b/doc/theme/material/.icons/material/border-left.svg new file mode 100644 index 00000000..c640e4d0 --- /dev/null +++ b/doc/theme/material/.icons/material/border-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/border-none-variant.svg b/doc/theme/material/.icons/material/border-none-variant.svg new file mode 100644 index 00000000..e1ea4714 --- /dev/null +++ b/doc/theme/material/.icons/material/border-none-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/border-none.svg b/doc/theme/material/.icons/material/border-none.svg new file mode 100644 index 00000000..9afd75b1 --- /dev/null +++ b/doc/theme/material/.icons/material/border-none.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/border-outside.svg b/doc/theme/material/.icons/material/border-outside.svg new file mode 100644 index 00000000..cfb1e5a2 --- /dev/null +++ b/doc/theme/material/.icons/material/border-outside.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/border-right-variant.svg b/doc/theme/material/.icons/material/border-right-variant.svg new file mode 100644 index 00000000..e412a454 --- /dev/null +++ b/doc/theme/material/.icons/material/border-right-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/border-right.svg b/doc/theme/material/.icons/material/border-right.svg new file mode 100644 index 00000000..15ba7598 --- /dev/null +++ b/doc/theme/material/.icons/material/border-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/border-style.svg b/doc/theme/material/.icons/material/border-style.svg new file mode 100644 index 00000000..ce567a61 --- /dev/null +++ b/doc/theme/material/.icons/material/border-style.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/border-top-variant.svg b/doc/theme/material/.icons/material/border-top-variant.svg new file mode 100644 index 00000000..7385c92e --- /dev/null +++ b/doc/theme/material/.icons/material/border-top-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/border-top.svg b/doc/theme/material/.icons/material/border-top.svg new file mode 100644 index 00000000..f031ab91 --- /dev/null +++ b/doc/theme/material/.icons/material/border-top.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/border-vertical.svg b/doc/theme/material/.icons/material/border-vertical.svg new file mode 100644 index 00000000..8c068b31 --- /dev/null +++ b/doc/theme/material/.icons/material/border-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bottle-soda-classic-outline.svg b/doc/theme/material/.icons/material/bottle-soda-classic-outline.svg new file mode 100644 index 00000000..f3008e36 --- /dev/null +++ b/doc/theme/material/.icons/material/bottle-soda-classic-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bottle-soda-classic.svg b/doc/theme/material/.icons/material/bottle-soda-classic.svg new file mode 100644 index 00000000..97ff8938 --- /dev/null +++ b/doc/theme/material/.icons/material/bottle-soda-classic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bottle-soda-outline.svg b/doc/theme/material/.icons/material/bottle-soda-outline.svg new file mode 100644 index 00000000..b1e11f8d --- /dev/null +++ b/doc/theme/material/.icons/material/bottle-soda-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bottle-soda.svg b/doc/theme/material/.icons/material/bottle-soda.svg new file mode 100644 index 00000000..36d6bb78 --- /dev/null +++ b/doc/theme/material/.icons/material/bottle-soda.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bottle-tonic-outline.svg b/doc/theme/material/.icons/material/bottle-tonic-outline.svg new file mode 100644 index 00000000..0d518315 --- /dev/null +++ b/doc/theme/material/.icons/material/bottle-tonic-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bottle-tonic-plus-outline.svg b/doc/theme/material/.icons/material/bottle-tonic-plus-outline.svg new file mode 100644 index 00000000..598d5f55 --- /dev/null +++ b/doc/theme/material/.icons/material/bottle-tonic-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bottle-tonic-plus.svg b/doc/theme/material/.icons/material/bottle-tonic-plus.svg new file mode 100644 index 00000000..e7e31cde --- /dev/null +++ b/doc/theme/material/.icons/material/bottle-tonic-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bottle-tonic-skull-outline.svg b/doc/theme/material/.icons/material/bottle-tonic-skull-outline.svg new file mode 100644 index 00000000..0d15a0bc --- /dev/null +++ b/doc/theme/material/.icons/material/bottle-tonic-skull-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bottle-tonic-skull.svg b/doc/theme/material/.icons/material/bottle-tonic-skull.svg new file mode 100644 index 00000000..4cedebd9 --- /dev/null +++ b/doc/theme/material/.icons/material/bottle-tonic-skull.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bottle-tonic.svg b/doc/theme/material/.icons/material/bottle-tonic.svg new file mode 100644 index 00000000..c152a040 --- /dev/null +++ b/doc/theme/material/.icons/material/bottle-tonic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bottle-wine-outline.svg b/doc/theme/material/.icons/material/bottle-wine-outline.svg new file mode 100644 index 00000000..ac7bf9ca --- /dev/null +++ b/doc/theme/material/.icons/material/bottle-wine-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bottle-wine.svg b/doc/theme/material/.icons/material/bottle-wine.svg new file mode 100644 index 00000000..8120d34e --- /dev/null +++ b/doc/theme/material/.icons/material/bottle-wine.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bow-tie.svg b/doc/theme/material/.icons/material/bow-tie.svg new file mode 100644 index 00000000..6016fd42 --- /dev/null +++ b/doc/theme/material/.icons/material/bow-tie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bowl-mix-outline.svg b/doc/theme/material/.icons/material/bowl-mix-outline.svg new file mode 100644 index 00000000..6f3d9eb5 --- /dev/null +++ b/doc/theme/material/.icons/material/bowl-mix-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bowl-mix.svg b/doc/theme/material/.icons/material/bowl-mix.svg new file mode 100644 index 00000000..707abec0 --- /dev/null +++ b/doc/theme/material/.icons/material/bowl-mix.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bowl-outline.svg b/doc/theme/material/.icons/material/bowl-outline.svg new file mode 100644 index 00000000..8c7f2ee2 --- /dev/null +++ b/doc/theme/material/.icons/material/bowl-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bowl.svg b/doc/theme/material/.icons/material/bowl.svg new file mode 100644 index 00000000..b05aac40 --- /dev/null +++ b/doc/theme/material/.icons/material/bowl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bowling.svg b/doc/theme/material/.icons/material/bowling.svg new file mode 100644 index 00000000..69600342 --- /dev/null +++ b/doc/theme/material/.icons/material/bowling.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/box-cutter-off.svg b/doc/theme/material/.icons/material/box-cutter-off.svg new file mode 100644 index 00000000..d86753d7 --- /dev/null +++ b/doc/theme/material/.icons/material/box-cutter-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/box-cutter.svg b/doc/theme/material/.icons/material/box-cutter.svg new file mode 100644 index 00000000..0f5e508e --- /dev/null +++ b/doc/theme/material/.icons/material/box-cutter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/box-shadow.svg b/doc/theme/material/.icons/material/box-shadow.svg new file mode 100644 index 00000000..36fb97d8 --- /dev/null +++ b/doc/theme/material/.icons/material/box-shadow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/box.svg b/doc/theme/material/.icons/material/box.svg new file mode 100644 index 00000000..1593c786 --- /dev/null +++ b/doc/theme/material/.icons/material/box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/boxing-glove.svg b/doc/theme/material/.icons/material/boxing-glove.svg new file mode 100644 index 00000000..de7137ed --- /dev/null +++ b/doc/theme/material/.icons/material/boxing-glove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/braille.svg b/doc/theme/material/.icons/material/braille.svg new file mode 100644 index 00000000..2b25249d --- /dev/null +++ b/doc/theme/material/.icons/material/braille.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/brain.svg b/doc/theme/material/.icons/material/brain.svg new file mode 100644 index 00000000..97cfe013 --- /dev/null +++ b/doc/theme/material/.icons/material/brain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bread-slice-outline.svg b/doc/theme/material/.icons/material/bread-slice-outline.svg new file mode 100644 index 00000000..cf3d5da2 --- /dev/null +++ b/doc/theme/material/.icons/material/bread-slice-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bread-slice.svg b/doc/theme/material/.icons/material/bread-slice.svg new file mode 100644 index 00000000..63308fcf --- /dev/null +++ b/doc/theme/material/.icons/material/bread-slice.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bridge.svg b/doc/theme/material/.icons/material/bridge.svg new file mode 100644 index 00000000..4a953eaa --- /dev/null +++ b/doc/theme/material/.icons/material/bridge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/briefcase-account-outline.svg b/doc/theme/material/.icons/material/briefcase-account-outline.svg new file mode 100644 index 00000000..75934eb3 --- /dev/null +++ b/doc/theme/material/.icons/material/briefcase-account-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/briefcase-account.svg b/doc/theme/material/.icons/material/briefcase-account.svg new file mode 100644 index 00000000..c1b590cd --- /dev/null +++ b/doc/theme/material/.icons/material/briefcase-account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/briefcase-check-outline.svg b/doc/theme/material/.icons/material/briefcase-check-outline.svg new file mode 100644 index 00000000..418e0d14 --- /dev/null +++ b/doc/theme/material/.icons/material/briefcase-check-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/briefcase-check.svg b/doc/theme/material/.icons/material/briefcase-check.svg new file mode 100644 index 00000000..bdde4844 --- /dev/null +++ b/doc/theme/material/.icons/material/briefcase-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/briefcase-clock-outline.svg b/doc/theme/material/.icons/material/briefcase-clock-outline.svg new file mode 100644 index 00000000..1e45d4de --- /dev/null +++ b/doc/theme/material/.icons/material/briefcase-clock-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/briefcase-clock.svg b/doc/theme/material/.icons/material/briefcase-clock.svg new file mode 100644 index 00000000..abb7f669 --- /dev/null +++ b/doc/theme/material/.icons/material/briefcase-clock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/briefcase-download-outline.svg b/doc/theme/material/.icons/material/briefcase-download-outline.svg new file mode 100644 index 00000000..818fcca4 --- /dev/null +++ b/doc/theme/material/.icons/material/briefcase-download-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/briefcase-download.svg b/doc/theme/material/.icons/material/briefcase-download.svg new file mode 100644 index 00000000..da244f0b --- /dev/null +++ b/doc/theme/material/.icons/material/briefcase-download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/briefcase-edit-outline.svg b/doc/theme/material/.icons/material/briefcase-edit-outline.svg new file mode 100644 index 00000000..58e0138f --- /dev/null +++ b/doc/theme/material/.icons/material/briefcase-edit-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/briefcase-edit.svg b/doc/theme/material/.icons/material/briefcase-edit.svg new file mode 100644 index 00000000..4d36f2cf --- /dev/null +++ b/doc/theme/material/.icons/material/briefcase-edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/briefcase-minus-outline.svg b/doc/theme/material/.icons/material/briefcase-minus-outline.svg new file mode 100644 index 00000000..fba82ad3 --- /dev/null +++ b/doc/theme/material/.icons/material/briefcase-minus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/briefcase-minus.svg b/doc/theme/material/.icons/material/briefcase-minus.svg new file mode 100644 index 00000000..cfe47a59 --- /dev/null +++ b/doc/theme/material/.icons/material/briefcase-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/briefcase-outline.svg b/doc/theme/material/.icons/material/briefcase-outline.svg new file mode 100644 index 00000000..b9d5ec24 --- /dev/null +++ b/doc/theme/material/.icons/material/briefcase-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/briefcase-plus-outline.svg b/doc/theme/material/.icons/material/briefcase-plus-outline.svg new file mode 100644 index 00000000..eff0d4e9 --- /dev/null +++ b/doc/theme/material/.icons/material/briefcase-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/briefcase-plus.svg b/doc/theme/material/.icons/material/briefcase-plus.svg new file mode 100644 index 00000000..49f1f94f --- /dev/null +++ b/doc/theme/material/.icons/material/briefcase-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/briefcase-remove-outline.svg b/doc/theme/material/.icons/material/briefcase-remove-outline.svg new file mode 100644 index 00000000..345d2ab7 --- /dev/null +++ b/doc/theme/material/.icons/material/briefcase-remove-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/briefcase-remove.svg b/doc/theme/material/.icons/material/briefcase-remove.svg new file mode 100644 index 00000000..8d063fe0 --- /dev/null +++ b/doc/theme/material/.icons/material/briefcase-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/briefcase-search-outline.svg b/doc/theme/material/.icons/material/briefcase-search-outline.svg new file mode 100644 index 00000000..13772990 --- /dev/null +++ b/doc/theme/material/.icons/material/briefcase-search-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/briefcase-search.svg b/doc/theme/material/.icons/material/briefcase-search.svg new file mode 100644 index 00000000..58f7343a --- /dev/null +++ b/doc/theme/material/.icons/material/briefcase-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/briefcase-upload-outline.svg b/doc/theme/material/.icons/material/briefcase-upload-outline.svg new file mode 100644 index 00000000..d4f17189 --- /dev/null +++ b/doc/theme/material/.icons/material/briefcase-upload-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/briefcase-upload.svg b/doc/theme/material/.icons/material/briefcase-upload.svg new file mode 100644 index 00000000..a8d78bdb --- /dev/null +++ b/doc/theme/material/.icons/material/briefcase-upload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/briefcase.svg b/doc/theme/material/.icons/material/briefcase.svg new file mode 100644 index 00000000..4d18b9d5 --- /dev/null +++ b/doc/theme/material/.icons/material/briefcase.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/brightness-1.svg b/doc/theme/material/.icons/material/brightness-1.svg new file mode 100644 index 00000000..7a824a8e --- /dev/null +++ b/doc/theme/material/.icons/material/brightness-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/brightness-2.svg b/doc/theme/material/.icons/material/brightness-2.svg new file mode 100644 index 00000000..fa448860 --- /dev/null +++ b/doc/theme/material/.icons/material/brightness-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/brightness-3.svg b/doc/theme/material/.icons/material/brightness-3.svg new file mode 100644 index 00000000..9f42ded9 --- /dev/null +++ b/doc/theme/material/.icons/material/brightness-3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/brightness-4.svg b/doc/theme/material/.icons/material/brightness-4.svg new file mode 100644 index 00000000..5fc3613b --- /dev/null +++ b/doc/theme/material/.icons/material/brightness-4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/brightness-5.svg b/doc/theme/material/.icons/material/brightness-5.svg new file mode 100644 index 00000000..70b251ba --- /dev/null +++ b/doc/theme/material/.icons/material/brightness-5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/brightness-6.svg b/doc/theme/material/.icons/material/brightness-6.svg new file mode 100644 index 00000000..875d8188 --- /dev/null +++ b/doc/theme/material/.icons/material/brightness-6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/brightness-7.svg b/doc/theme/material/.icons/material/brightness-7.svg new file mode 100644 index 00000000..7c2e177f --- /dev/null +++ b/doc/theme/material/.icons/material/brightness-7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/brightness-auto.svg b/doc/theme/material/.icons/material/brightness-auto.svg new file mode 100644 index 00000000..e5330418 --- /dev/null +++ b/doc/theme/material/.icons/material/brightness-auto.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/brightness-percent.svg b/doc/theme/material/.icons/material/brightness-percent.svg new file mode 100644 index 00000000..7cc3c485 --- /dev/null +++ b/doc/theme/material/.icons/material/brightness-percent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/broom.svg b/doc/theme/material/.icons/material/broom.svg new file mode 100644 index 00000000..8b144e42 --- /dev/null +++ b/doc/theme/material/.icons/material/broom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/brush.svg b/doc/theme/material/.icons/material/brush.svg new file mode 100644 index 00000000..fc4bd78a --- /dev/null +++ b/doc/theme/material/.icons/material/brush.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bucket-outline.svg b/doc/theme/material/.icons/material/bucket-outline.svg new file mode 100644 index 00000000..05a962cb --- /dev/null +++ b/doc/theme/material/.icons/material/bucket-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bucket.svg b/doc/theme/material/.icons/material/bucket.svg new file mode 100644 index 00000000..35944b67 --- /dev/null +++ b/doc/theme/material/.icons/material/bucket.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/buddhism.svg b/doc/theme/material/.icons/material/buddhism.svg new file mode 100644 index 00000000..85bbc579 --- /dev/null +++ b/doc/theme/material/.icons/material/buddhism.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/buffer.svg b/doc/theme/material/.icons/material/buffer.svg new file mode 100644 index 00000000..0c8da764 --- /dev/null +++ b/doc/theme/material/.icons/material/buffer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/buffet.svg b/doc/theme/material/.icons/material/buffet.svg new file mode 100644 index 00000000..20ce406e --- /dev/null +++ b/doc/theme/material/.icons/material/buffet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bug-check-outline.svg b/doc/theme/material/.icons/material/bug-check-outline.svg new file mode 100644 index 00000000..82fcc5d0 --- /dev/null +++ b/doc/theme/material/.icons/material/bug-check-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bug-check.svg b/doc/theme/material/.icons/material/bug-check.svg new file mode 100644 index 00000000..23bb9687 --- /dev/null +++ b/doc/theme/material/.icons/material/bug-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bug-outline.svg b/doc/theme/material/.icons/material/bug-outline.svg new file mode 100644 index 00000000..d4ac67cb --- /dev/null +++ b/doc/theme/material/.icons/material/bug-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bug.svg b/doc/theme/material/.icons/material/bug.svg new file mode 100644 index 00000000..f2aea359 --- /dev/null +++ b/doc/theme/material/.icons/material/bug.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bugle.svg b/doc/theme/material/.icons/material/bugle.svg new file mode 100644 index 00000000..afe1d5c5 --- /dev/null +++ b/doc/theme/material/.icons/material/bugle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bulldozer.svg b/doc/theme/material/.icons/material/bulldozer.svg new file mode 100644 index 00000000..0e23d711 --- /dev/null +++ b/doc/theme/material/.icons/material/bulldozer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bullet.svg b/doc/theme/material/.icons/material/bullet.svg new file mode 100644 index 00000000..83e74f3b --- /dev/null +++ b/doc/theme/material/.icons/material/bullet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bulletin-board.svg b/doc/theme/material/.icons/material/bulletin-board.svg new file mode 100644 index 00000000..6625b3ec --- /dev/null +++ b/doc/theme/material/.icons/material/bulletin-board.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bullhorn-outline.svg b/doc/theme/material/.icons/material/bullhorn-outline.svg new file mode 100644 index 00000000..042de504 --- /dev/null +++ b/doc/theme/material/.icons/material/bullhorn-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bullhorn.svg b/doc/theme/material/.icons/material/bullhorn.svg new file mode 100644 index 00000000..f478d42e --- /dev/null +++ b/doc/theme/material/.icons/material/bullhorn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bullseye-arrow.svg b/doc/theme/material/.icons/material/bullseye-arrow.svg new file mode 100644 index 00000000..047cfd44 --- /dev/null +++ b/doc/theme/material/.icons/material/bullseye-arrow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bullseye.svg b/doc/theme/material/.icons/material/bullseye.svg new file mode 100644 index 00000000..a615d31c --- /dev/null +++ b/doc/theme/material/.icons/material/bullseye.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bulma.svg b/doc/theme/material/.icons/material/bulma.svg new file mode 100644 index 00000000..acb4f846 --- /dev/null +++ b/doc/theme/material/.icons/material/bulma.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bunk-bed-outline.svg b/doc/theme/material/.icons/material/bunk-bed-outline.svg new file mode 100644 index 00000000..ff9e674a --- /dev/null +++ b/doc/theme/material/.icons/material/bunk-bed-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bunk-bed.svg b/doc/theme/material/.icons/material/bunk-bed.svg new file mode 100644 index 00000000..2343acc0 --- /dev/null +++ b/doc/theme/material/.icons/material/bunk-bed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bus-alert.svg b/doc/theme/material/.icons/material/bus-alert.svg new file mode 100644 index 00000000..929596fe --- /dev/null +++ b/doc/theme/material/.icons/material/bus-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bus-articulated-end.svg b/doc/theme/material/.icons/material/bus-articulated-end.svg new file mode 100644 index 00000000..d7349d9e --- /dev/null +++ b/doc/theme/material/.icons/material/bus-articulated-end.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bus-articulated-front.svg b/doc/theme/material/.icons/material/bus-articulated-front.svg new file mode 100644 index 00000000..cc307f78 --- /dev/null +++ b/doc/theme/material/.icons/material/bus-articulated-front.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bus-clock.svg b/doc/theme/material/.icons/material/bus-clock.svg new file mode 100644 index 00000000..2a933647 --- /dev/null +++ b/doc/theme/material/.icons/material/bus-clock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bus-double-decker.svg b/doc/theme/material/.icons/material/bus-double-decker.svg new file mode 100644 index 00000000..36ecd762 --- /dev/null +++ b/doc/theme/material/.icons/material/bus-double-decker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bus-marker.svg b/doc/theme/material/.icons/material/bus-marker.svg new file mode 100644 index 00000000..5e2bd263 --- /dev/null +++ b/doc/theme/material/.icons/material/bus-marker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bus-multiple.svg b/doc/theme/material/.icons/material/bus-multiple.svg new file mode 100644 index 00000000..b6889e52 --- /dev/null +++ b/doc/theme/material/.icons/material/bus-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bus-school.svg b/doc/theme/material/.icons/material/bus-school.svg new file mode 100644 index 00000000..478cc7b5 --- /dev/null +++ b/doc/theme/material/.icons/material/bus-school.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bus-side.svg b/doc/theme/material/.icons/material/bus-side.svg new file mode 100644 index 00000000..e25e0234 --- /dev/null +++ b/doc/theme/material/.icons/material/bus-side.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bus-stop-covered.svg b/doc/theme/material/.icons/material/bus-stop-covered.svg new file mode 100644 index 00000000..a6d9c020 --- /dev/null +++ b/doc/theme/material/.icons/material/bus-stop-covered.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bus-stop-uncovered.svg b/doc/theme/material/.icons/material/bus-stop-uncovered.svg new file mode 100644 index 00000000..cac5be91 --- /dev/null +++ b/doc/theme/material/.icons/material/bus-stop-uncovered.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bus-stop.svg b/doc/theme/material/.icons/material/bus-stop.svg new file mode 100644 index 00000000..0cdccf63 --- /dev/null +++ b/doc/theme/material/.icons/material/bus-stop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/bus.svg b/doc/theme/material/.icons/material/bus.svg new file mode 100644 index 00000000..67ab70d3 --- /dev/null +++ b/doc/theme/material/.icons/material/bus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cable-data.svg b/doc/theme/material/.icons/material/cable-data.svg new file mode 100644 index 00000000..87d07557 --- /dev/null +++ b/doc/theme/material/.icons/material/cable-data.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cached.svg b/doc/theme/material/.icons/material/cached.svg new file mode 100644 index 00000000..b749b01b --- /dev/null +++ b/doc/theme/material/.icons/material/cached.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cactus.svg b/doc/theme/material/.icons/material/cactus.svg new file mode 100644 index 00000000..0ae564ee --- /dev/null +++ b/doc/theme/material/.icons/material/cactus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cake-layered.svg b/doc/theme/material/.icons/material/cake-layered.svg new file mode 100644 index 00000000..942d4899 --- /dev/null +++ b/doc/theme/material/.icons/material/cake-layered.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cake-variant.svg b/doc/theme/material/.icons/material/cake-variant.svg new file mode 100644 index 00000000..48c73b28 --- /dev/null +++ b/doc/theme/material/.icons/material/cake-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cake.svg b/doc/theme/material/.icons/material/cake.svg new file mode 100644 index 00000000..7ef075d6 --- /dev/null +++ b/doc/theme/material/.icons/material/cake.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calculator-variant.svg b/doc/theme/material/.icons/material/calculator-variant.svg new file mode 100644 index 00000000..2216695a --- /dev/null +++ b/doc/theme/material/.icons/material/calculator-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calculator.svg b/doc/theme/material/.icons/material/calculator.svg new file mode 100644 index 00000000..e2593cd2 --- /dev/null +++ b/doc/theme/material/.icons/material/calculator.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-account-outline.svg b/doc/theme/material/.icons/material/calendar-account-outline.svg new file mode 100644 index 00000000..892de067 --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-account-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-account.svg b/doc/theme/material/.icons/material/calendar-account.svg new file mode 100644 index 00000000..5c954b74 --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-alert.svg b/doc/theme/material/.icons/material/calendar-alert.svg new file mode 100644 index 00000000..599d6983 --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-arrow-left.svg b/doc/theme/material/.icons/material/calendar-arrow-left.svg new file mode 100644 index 00000000..1290dd80 --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-arrow-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-arrow-right.svg b/doc/theme/material/.icons/material/calendar-arrow-right.svg new file mode 100644 index 00000000..57355fa2 --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-arrow-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-blank-multiple.svg b/doc/theme/material/.icons/material/calendar-blank-multiple.svg new file mode 100644 index 00000000..9d3c3f8a --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-blank-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-blank-outline.svg b/doc/theme/material/.icons/material/calendar-blank-outline.svg new file mode 100644 index 00000000..e19a138a --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-blank-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-blank.svg b/doc/theme/material/.icons/material/calendar-blank.svg new file mode 100644 index 00000000..338f349d --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-blank.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-check-outline.svg b/doc/theme/material/.icons/material/calendar-check-outline.svg new file mode 100644 index 00000000..8224c4a5 --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-check-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-check.svg b/doc/theme/material/.icons/material/calendar-check.svg new file mode 100644 index 00000000..47a96655 --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-clock.svg b/doc/theme/material/.icons/material/calendar-clock.svg new file mode 100644 index 00000000..8efb1f05 --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-clock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-edit.svg b/doc/theme/material/.icons/material/calendar-edit.svg new file mode 100644 index 00000000..3d630216 --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-export.svg b/doc/theme/material/.icons/material/calendar-export.svg new file mode 100644 index 00000000..768e026e --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-export.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-heart.svg b/doc/theme/material/.icons/material/calendar-heart.svg new file mode 100644 index 00000000..ddfb00c3 --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-heart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-import.svg b/doc/theme/material/.icons/material/calendar-import.svg new file mode 100644 index 00000000..b5998aa5 --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-import.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-minus.svg b/doc/theme/material/.icons/material/calendar-minus.svg new file mode 100644 index 00000000..d2a75795 --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-month-outline.svg b/doc/theme/material/.icons/material/calendar-month-outline.svg new file mode 100644 index 00000000..25cd8a44 --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-month-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-month.svg b/doc/theme/material/.icons/material/calendar-month.svg new file mode 100644 index 00000000..43f4213f --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-month.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-multiple-check.svg b/doc/theme/material/.icons/material/calendar-multiple-check.svg new file mode 100644 index 00000000..7fdadd88 --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-multiple-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-multiple.svg b/doc/theme/material/.icons/material/calendar-multiple.svg new file mode 100644 index 00000000..c0209455 --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-multiselect.svg b/doc/theme/material/.icons/material/calendar-multiselect.svg new file mode 100644 index 00000000..9b905a9a --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-multiselect.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-outline.svg b/doc/theme/material/.icons/material/calendar-outline.svg new file mode 100644 index 00000000..67c0c6ec --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-plus.svg b/doc/theme/material/.icons/material/calendar-plus.svg new file mode 100644 index 00000000..c217d9fa --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-question.svg b/doc/theme/material/.icons/material/calendar-question.svg new file mode 100644 index 00000000..343e755a --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-question.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-range-outline.svg b/doc/theme/material/.icons/material/calendar-range-outline.svg new file mode 100644 index 00000000..c418d99d --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-range-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-range.svg b/doc/theme/material/.icons/material/calendar-range.svg new file mode 100644 index 00000000..02e73a0b --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-range.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-refresh-outline.svg b/doc/theme/material/.icons/material/calendar-refresh-outline.svg new file mode 100644 index 00000000..508941b2 --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-refresh-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-refresh.svg b/doc/theme/material/.icons/material/calendar-refresh.svg new file mode 100644 index 00000000..bbe6b647 --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-refresh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-remove-outline.svg b/doc/theme/material/.icons/material/calendar-remove-outline.svg new file mode 100644 index 00000000..4a604c28 --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-remove-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-remove.svg b/doc/theme/material/.icons/material/calendar-remove.svg new file mode 100644 index 00000000..fab2227f --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-search.svg b/doc/theme/material/.icons/material/calendar-search.svg new file mode 100644 index 00000000..8f811284 --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-star.svg b/doc/theme/material/.icons/material/calendar-star.svg new file mode 100644 index 00000000..869b1659 --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-star.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-sync-outline.svg b/doc/theme/material/.icons/material/calendar-sync-outline.svg new file mode 100644 index 00000000..a2dd55a4 --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-sync-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-sync.svg b/doc/theme/material/.icons/material/calendar-sync.svg new file mode 100644 index 00000000..fa241e8c --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-sync.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-text-outline.svg b/doc/theme/material/.icons/material/calendar-text-outline.svg new file mode 100644 index 00000000..0f66f19c --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-text-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-text.svg b/doc/theme/material/.icons/material/calendar-text.svg new file mode 100644 index 00000000..b498553d --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-today.svg b/doc/theme/material/.icons/material/calendar-today.svg new file mode 100644 index 00000000..77dfde05 --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-today.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-week-begin.svg b/doc/theme/material/.icons/material/calendar-week-begin.svg new file mode 100644 index 00000000..1c3f0457 --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-week-begin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-week.svg b/doc/theme/material/.icons/material/calendar-week.svg new file mode 100644 index 00000000..6a262aec --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-week.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-weekend-outline.svg b/doc/theme/material/.icons/material/calendar-weekend-outline.svg new file mode 100644 index 00000000..9cd9513a --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-weekend-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar-weekend.svg b/doc/theme/material/.icons/material/calendar-weekend.svg new file mode 100644 index 00000000..45454606 --- /dev/null +++ b/doc/theme/material/.icons/material/calendar-weekend.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/calendar.svg b/doc/theme/material/.icons/material/calendar.svg new file mode 100644 index 00000000..c423ffc3 --- /dev/null +++ b/doc/theme/material/.icons/material/calendar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/call-made.svg b/doc/theme/material/.icons/material/call-made.svg new file mode 100644 index 00000000..59179a9b --- /dev/null +++ b/doc/theme/material/.icons/material/call-made.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/call-merge.svg b/doc/theme/material/.icons/material/call-merge.svg new file mode 100644 index 00000000..71840adf --- /dev/null +++ b/doc/theme/material/.icons/material/call-merge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/call-missed.svg b/doc/theme/material/.icons/material/call-missed.svg new file mode 100644 index 00000000..3955f7ee --- /dev/null +++ b/doc/theme/material/.icons/material/call-missed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/call-received.svg b/doc/theme/material/.icons/material/call-received.svg new file mode 100644 index 00000000..4f1af1c3 --- /dev/null +++ b/doc/theme/material/.icons/material/call-received.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/call-split.svg b/doc/theme/material/.icons/material/call-split.svg new file mode 100644 index 00000000..5e2dc91b --- /dev/null +++ b/doc/theme/material/.icons/material/call-split.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camcorder-off.svg b/doc/theme/material/.icons/material/camcorder-off.svg new file mode 100644 index 00000000..7f727666 --- /dev/null +++ b/doc/theme/material/.icons/material/camcorder-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camcorder.svg b/doc/theme/material/.icons/material/camcorder.svg new file mode 100644 index 00000000..e44981a0 --- /dev/null +++ b/doc/theme/material/.icons/material/camcorder.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera-account.svg b/doc/theme/material/.icons/material/camera-account.svg new file mode 100644 index 00000000..167c6946 --- /dev/null +++ b/doc/theme/material/.icons/material/camera-account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera-burst.svg b/doc/theme/material/.icons/material/camera-burst.svg new file mode 100644 index 00000000..32dbe1a0 --- /dev/null +++ b/doc/theme/material/.icons/material/camera-burst.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera-control.svg b/doc/theme/material/.icons/material/camera-control.svg new file mode 100644 index 00000000..7cf3b075 --- /dev/null +++ b/doc/theme/material/.icons/material/camera-control.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera-enhance-outline.svg b/doc/theme/material/.icons/material/camera-enhance-outline.svg new file mode 100644 index 00000000..1c39e95b --- /dev/null +++ b/doc/theme/material/.icons/material/camera-enhance-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera-enhance.svg b/doc/theme/material/.icons/material/camera-enhance.svg new file mode 100644 index 00000000..109346a1 --- /dev/null +++ b/doc/theme/material/.icons/material/camera-enhance.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera-front-variant.svg b/doc/theme/material/.icons/material/camera-front-variant.svg new file mode 100644 index 00000000..2a9bfc03 --- /dev/null +++ b/doc/theme/material/.icons/material/camera-front-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera-front.svg b/doc/theme/material/.icons/material/camera-front.svg new file mode 100644 index 00000000..b712842e --- /dev/null +++ b/doc/theme/material/.icons/material/camera-front.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera-gopro.svg b/doc/theme/material/.icons/material/camera-gopro.svg new file mode 100644 index 00000000..2d4b0fc3 --- /dev/null +++ b/doc/theme/material/.icons/material/camera-gopro.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera-image.svg b/doc/theme/material/.icons/material/camera-image.svg new file mode 100644 index 00000000..b7f3042e --- /dev/null +++ b/doc/theme/material/.icons/material/camera-image.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera-iris.svg b/doc/theme/material/.icons/material/camera-iris.svg new file mode 100644 index 00000000..843d897c --- /dev/null +++ b/doc/theme/material/.icons/material/camera-iris.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera-metering-center.svg b/doc/theme/material/.icons/material/camera-metering-center.svg new file mode 100644 index 00000000..471ab1e8 --- /dev/null +++ b/doc/theme/material/.icons/material/camera-metering-center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera-metering-matrix.svg b/doc/theme/material/.icons/material/camera-metering-matrix.svg new file mode 100644 index 00000000..148a07bc --- /dev/null +++ b/doc/theme/material/.icons/material/camera-metering-matrix.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera-metering-partial.svg b/doc/theme/material/.icons/material/camera-metering-partial.svg new file mode 100644 index 00000000..67717c80 --- /dev/null +++ b/doc/theme/material/.icons/material/camera-metering-partial.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera-metering-spot.svg b/doc/theme/material/.icons/material/camera-metering-spot.svg new file mode 100644 index 00000000..28f6f8c5 --- /dev/null +++ b/doc/theme/material/.icons/material/camera-metering-spot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera-off.svg b/doc/theme/material/.icons/material/camera-off.svg new file mode 100644 index 00000000..18de4f8c --- /dev/null +++ b/doc/theme/material/.icons/material/camera-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera-outline.svg b/doc/theme/material/.icons/material/camera-outline.svg new file mode 100644 index 00000000..655e5f14 --- /dev/null +++ b/doc/theme/material/.icons/material/camera-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera-party-mode.svg b/doc/theme/material/.icons/material/camera-party-mode.svg new file mode 100644 index 00000000..9e159241 --- /dev/null +++ b/doc/theme/material/.icons/material/camera-party-mode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera-plus-outline.svg b/doc/theme/material/.icons/material/camera-plus-outline.svg new file mode 100644 index 00000000..3b77bdf1 --- /dev/null +++ b/doc/theme/material/.icons/material/camera-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera-plus.svg b/doc/theme/material/.icons/material/camera-plus.svg new file mode 100644 index 00000000..2ac1c6f2 --- /dev/null +++ b/doc/theme/material/.icons/material/camera-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera-rear-variant.svg b/doc/theme/material/.icons/material/camera-rear-variant.svg new file mode 100644 index 00000000..1d34386d --- /dev/null +++ b/doc/theme/material/.icons/material/camera-rear-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera-rear.svg b/doc/theme/material/.icons/material/camera-rear.svg new file mode 100644 index 00000000..4631aaa0 --- /dev/null +++ b/doc/theme/material/.icons/material/camera-rear.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera-retake-outline.svg b/doc/theme/material/.icons/material/camera-retake-outline.svg new file mode 100644 index 00000000..eb28a722 --- /dev/null +++ b/doc/theme/material/.icons/material/camera-retake-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera-retake.svg b/doc/theme/material/.icons/material/camera-retake.svg new file mode 100644 index 00000000..fe8fd181 --- /dev/null +++ b/doc/theme/material/.icons/material/camera-retake.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera-switch-outline.svg b/doc/theme/material/.icons/material/camera-switch-outline.svg new file mode 100644 index 00000000..1ae29235 --- /dev/null +++ b/doc/theme/material/.icons/material/camera-switch-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera-switch.svg b/doc/theme/material/.icons/material/camera-switch.svg new file mode 100644 index 00000000..a0111f51 --- /dev/null +++ b/doc/theme/material/.icons/material/camera-switch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera-timer.svg b/doc/theme/material/.icons/material/camera-timer.svg new file mode 100644 index 00000000..96a49de4 --- /dev/null +++ b/doc/theme/material/.icons/material/camera-timer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera-wireless-outline.svg b/doc/theme/material/.icons/material/camera-wireless-outline.svg new file mode 100644 index 00000000..57d0817e --- /dev/null +++ b/doc/theme/material/.icons/material/camera-wireless-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera-wireless.svg b/doc/theme/material/.icons/material/camera-wireless.svg new file mode 100644 index 00000000..25895588 --- /dev/null +++ b/doc/theme/material/.icons/material/camera-wireless.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/camera.svg b/doc/theme/material/.icons/material/camera.svg new file mode 100644 index 00000000..44422202 --- /dev/null +++ b/doc/theme/material/.icons/material/camera.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/campfire.svg b/doc/theme/material/.icons/material/campfire.svg new file mode 100644 index 00000000..8e44a6f8 --- /dev/null +++ b/doc/theme/material/.icons/material/campfire.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cancel.svg b/doc/theme/material/.icons/material/cancel.svg new file mode 100644 index 00000000..d3294292 --- /dev/null +++ b/doc/theme/material/.icons/material/cancel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/candle.svg b/doc/theme/material/.icons/material/candle.svg new file mode 100644 index 00000000..301bff0c --- /dev/null +++ b/doc/theme/material/.icons/material/candle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/candycane.svg b/doc/theme/material/.icons/material/candycane.svg new file mode 100644 index 00000000..71c28983 --- /dev/null +++ b/doc/theme/material/.icons/material/candycane.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cannabis.svg b/doc/theme/material/.icons/material/cannabis.svg new file mode 100644 index 00000000..7eae28c4 --- /dev/null +++ b/doc/theme/material/.icons/material/cannabis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/caps-lock.svg b/doc/theme/material/.icons/material/caps-lock.svg new file mode 100644 index 00000000..89734692 --- /dev/null +++ b/doc/theme/material/.icons/material/caps-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-2-plus.svg b/doc/theme/material/.icons/material/car-2-plus.svg new file mode 100644 index 00000000..3b47baf5 --- /dev/null +++ b/doc/theme/material/.icons/material/car-2-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-3-plus.svg b/doc/theme/material/.icons/material/car-3-plus.svg new file mode 100644 index 00000000..d929d548 --- /dev/null +++ b/doc/theme/material/.icons/material/car-3-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-arrow-left.svg b/doc/theme/material/.icons/material/car-arrow-left.svg new file mode 100644 index 00000000..033721b9 --- /dev/null +++ b/doc/theme/material/.icons/material/car-arrow-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-arrow-right.svg b/doc/theme/material/.icons/material/car-arrow-right.svg new file mode 100644 index 00000000..903034d0 --- /dev/null +++ b/doc/theme/material/.icons/material/car-arrow-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-back.svg b/doc/theme/material/.icons/material/car-back.svg new file mode 100644 index 00000000..4df2d27d --- /dev/null +++ b/doc/theme/material/.icons/material/car-back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-battery.svg b/doc/theme/material/.icons/material/car-battery.svg new file mode 100644 index 00000000..351a5641 --- /dev/null +++ b/doc/theme/material/.icons/material/car-battery.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-brake-abs.svg b/doc/theme/material/.icons/material/car-brake-abs.svg new file mode 100644 index 00000000..1f8e530f --- /dev/null +++ b/doc/theme/material/.icons/material/car-brake-abs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-brake-alert.svg b/doc/theme/material/.icons/material/car-brake-alert.svg new file mode 100644 index 00000000..7fb386a8 --- /dev/null +++ b/doc/theme/material/.icons/material/car-brake-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-brake-hold.svg b/doc/theme/material/.icons/material/car-brake-hold.svg new file mode 100644 index 00000000..7846fbdb --- /dev/null +++ b/doc/theme/material/.icons/material/car-brake-hold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-brake-parking.svg b/doc/theme/material/.icons/material/car-brake-parking.svg new file mode 100644 index 00000000..27998bc1 --- /dev/null +++ b/doc/theme/material/.icons/material/car-brake-parking.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-brake-retarder.svg b/doc/theme/material/.icons/material/car-brake-retarder.svg new file mode 100644 index 00000000..197785f6 --- /dev/null +++ b/doc/theme/material/.icons/material/car-brake-retarder.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-child-seat.svg b/doc/theme/material/.icons/material/car-child-seat.svg new file mode 100644 index 00000000..7f521686 --- /dev/null +++ b/doc/theme/material/.icons/material/car-child-seat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-clutch.svg b/doc/theme/material/.icons/material/car-clutch.svg new file mode 100644 index 00000000..8f8ade7e --- /dev/null +++ b/doc/theme/material/.icons/material/car-clutch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-cog.svg b/doc/theme/material/.icons/material/car-cog.svg new file mode 100644 index 00000000..1b98824f --- /dev/null +++ b/doc/theme/material/.icons/material/car-cog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-connected.svg b/doc/theme/material/.icons/material/car-connected.svg new file mode 100644 index 00000000..aae93957 --- /dev/null +++ b/doc/theme/material/.icons/material/car-connected.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-convertible.svg b/doc/theme/material/.icons/material/car-convertible.svg new file mode 100644 index 00000000..f4ccb554 --- /dev/null +++ b/doc/theme/material/.icons/material/car-convertible.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-coolant-level.svg b/doc/theme/material/.icons/material/car-coolant-level.svg new file mode 100644 index 00000000..194b5733 --- /dev/null +++ b/doc/theme/material/.icons/material/car-coolant-level.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-cruise-control.svg b/doc/theme/material/.icons/material/car-cruise-control.svg new file mode 100644 index 00000000..6b90c0be --- /dev/null +++ b/doc/theme/material/.icons/material/car-cruise-control.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-defrost-front.svg b/doc/theme/material/.icons/material/car-defrost-front.svg new file mode 100644 index 00000000..c17e3aac --- /dev/null +++ b/doc/theme/material/.icons/material/car-defrost-front.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-defrost-rear.svg b/doc/theme/material/.icons/material/car-defrost-rear.svg new file mode 100644 index 00000000..044e0df7 --- /dev/null +++ b/doc/theme/material/.icons/material/car-defrost-rear.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-door-lock.svg b/doc/theme/material/.icons/material/car-door-lock.svg new file mode 100644 index 00000000..48e5a031 --- /dev/null +++ b/doc/theme/material/.icons/material/car-door-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-door.svg b/doc/theme/material/.icons/material/car-door.svg new file mode 100644 index 00000000..a9f039a3 --- /dev/null +++ b/doc/theme/material/.icons/material/car-door.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-electric.svg b/doc/theme/material/.icons/material/car-electric.svg new file mode 100644 index 00000000..7ec0aae6 --- /dev/null +++ b/doc/theme/material/.icons/material/car-electric.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-esp.svg b/doc/theme/material/.icons/material/car-esp.svg new file mode 100644 index 00000000..2e8b7173 --- /dev/null +++ b/doc/theme/material/.icons/material/car-esp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-estate.svg b/doc/theme/material/.icons/material/car-estate.svg new file mode 100644 index 00000000..6e005b7e --- /dev/null +++ b/doc/theme/material/.icons/material/car-estate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-hatchback.svg b/doc/theme/material/.icons/material/car-hatchback.svg new file mode 100644 index 00000000..ffaa2ee8 --- /dev/null +++ b/doc/theme/material/.icons/material/car-hatchback.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-info.svg b/doc/theme/material/.icons/material/car-info.svg new file mode 100644 index 00000000..fb322106 --- /dev/null +++ b/doc/theme/material/.icons/material/car-info.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-key.svg b/doc/theme/material/.icons/material/car-key.svg new file mode 100644 index 00000000..b622dda7 --- /dev/null +++ b/doc/theme/material/.icons/material/car-key.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-light-dimmed.svg b/doc/theme/material/.icons/material/car-light-dimmed.svg new file mode 100644 index 00000000..c4f36456 --- /dev/null +++ b/doc/theme/material/.icons/material/car-light-dimmed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-light-fog.svg b/doc/theme/material/.icons/material/car-light-fog.svg new file mode 100644 index 00000000..944a4c4e --- /dev/null +++ b/doc/theme/material/.icons/material/car-light-fog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-light-high.svg b/doc/theme/material/.icons/material/car-light-high.svg new file mode 100644 index 00000000..da6de474 --- /dev/null +++ b/doc/theme/material/.icons/material/car-light-high.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-limousine.svg b/doc/theme/material/.icons/material/car-limousine.svg new file mode 100644 index 00000000..931c4703 --- /dev/null +++ b/doc/theme/material/.icons/material/car-limousine.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-multiple.svg b/doc/theme/material/.icons/material/car-multiple.svg new file mode 100644 index 00000000..68c41fe8 --- /dev/null +++ b/doc/theme/material/.icons/material/car-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-off.svg b/doc/theme/material/.icons/material/car-off.svg new file mode 100644 index 00000000..8083aff2 --- /dev/null +++ b/doc/theme/material/.icons/material/car-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-parking-lights.svg b/doc/theme/material/.icons/material/car-parking-lights.svg new file mode 100644 index 00000000..84d3cd1a --- /dev/null +++ b/doc/theme/material/.icons/material/car-parking-lights.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-pickup.svg b/doc/theme/material/.icons/material/car-pickup.svg new file mode 100644 index 00000000..9804467c --- /dev/null +++ b/doc/theme/material/.icons/material/car-pickup.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-seat-cooler.svg b/doc/theme/material/.icons/material/car-seat-cooler.svg new file mode 100644 index 00000000..0860fde1 --- /dev/null +++ b/doc/theme/material/.icons/material/car-seat-cooler.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-seat-heater.svg b/doc/theme/material/.icons/material/car-seat-heater.svg new file mode 100644 index 00000000..6c0dbe78 --- /dev/null +++ b/doc/theme/material/.icons/material/car-seat-heater.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-seat.svg b/doc/theme/material/.icons/material/car-seat.svg new file mode 100644 index 00000000..1a4b6603 --- /dev/null +++ b/doc/theme/material/.icons/material/car-seat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-settings.svg b/doc/theme/material/.icons/material/car-settings.svg new file mode 100644 index 00000000..ccefd040 --- /dev/null +++ b/doc/theme/material/.icons/material/car-settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-shift-pattern.svg b/doc/theme/material/.icons/material/car-shift-pattern.svg new file mode 100644 index 00000000..1142e598 --- /dev/null +++ b/doc/theme/material/.icons/material/car-shift-pattern.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-side.svg b/doc/theme/material/.icons/material/car-side.svg new file mode 100644 index 00000000..45c8f6cd --- /dev/null +++ b/doc/theme/material/.icons/material/car-side.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-sports.svg b/doc/theme/material/.icons/material/car-sports.svg new file mode 100644 index 00000000..66e41687 --- /dev/null +++ b/doc/theme/material/.icons/material/car-sports.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-tire-alert.svg b/doc/theme/material/.icons/material/car-tire-alert.svg new file mode 100644 index 00000000..2310a71d --- /dev/null +++ b/doc/theme/material/.icons/material/car-tire-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-traction-control.svg b/doc/theme/material/.icons/material/car-traction-control.svg new file mode 100644 index 00000000..3870cc81 --- /dev/null +++ b/doc/theme/material/.icons/material/car-traction-control.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-turbocharger.svg b/doc/theme/material/.icons/material/car-turbocharger.svg new file mode 100644 index 00000000..3608bf8d --- /dev/null +++ b/doc/theme/material/.icons/material/car-turbocharger.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-wash.svg b/doc/theme/material/.icons/material/car-wash.svg new file mode 100644 index 00000000..d64472de --- /dev/null +++ b/doc/theme/material/.icons/material/car-wash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-windshield-outline.svg b/doc/theme/material/.icons/material/car-windshield-outline.svg new file mode 100644 index 00000000..329e7b4b --- /dev/null +++ b/doc/theme/material/.icons/material/car-windshield-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car-windshield.svg b/doc/theme/material/.icons/material/car-windshield.svg new file mode 100644 index 00000000..918217f2 --- /dev/null +++ b/doc/theme/material/.icons/material/car-windshield.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/car.svg b/doc/theme/material/.icons/material/car.svg new file mode 100644 index 00000000..1eb068c8 --- /dev/null +++ b/doc/theme/material/.icons/material/car.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/caravan.svg b/doc/theme/material/.icons/material/caravan.svg new file mode 100644 index 00000000..5618e71c --- /dev/null +++ b/doc/theme/material/.icons/material/caravan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/card-account-details-outline.svg b/doc/theme/material/.icons/material/card-account-details-outline.svg new file mode 100644 index 00000000..0cfc3b1f --- /dev/null +++ b/doc/theme/material/.icons/material/card-account-details-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/card-account-details-star-outline.svg b/doc/theme/material/.icons/material/card-account-details-star-outline.svg new file mode 100644 index 00000000..b04af34f --- /dev/null +++ b/doc/theme/material/.icons/material/card-account-details-star-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/card-account-details-star.svg b/doc/theme/material/.icons/material/card-account-details-star.svg new file mode 100644 index 00000000..aee2febd --- /dev/null +++ b/doc/theme/material/.icons/material/card-account-details-star.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/card-account-details.svg b/doc/theme/material/.icons/material/card-account-details.svg new file mode 100644 index 00000000..3e2cd20b --- /dev/null +++ b/doc/theme/material/.icons/material/card-account-details.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/card-account-mail-outline.svg b/doc/theme/material/.icons/material/card-account-mail-outline.svg new file mode 100644 index 00000000..b3ec2be7 --- /dev/null +++ b/doc/theme/material/.icons/material/card-account-mail-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/card-account-mail.svg b/doc/theme/material/.icons/material/card-account-mail.svg new file mode 100644 index 00000000..ed2a7d74 --- /dev/null +++ b/doc/theme/material/.icons/material/card-account-mail.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/card-account-phone-outline.svg b/doc/theme/material/.icons/material/card-account-phone-outline.svg new file mode 100644 index 00000000..6b4adf2d --- /dev/null +++ b/doc/theme/material/.icons/material/card-account-phone-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/card-account-phone.svg b/doc/theme/material/.icons/material/card-account-phone.svg new file mode 100644 index 00000000..f9860b63 --- /dev/null +++ b/doc/theme/material/.icons/material/card-account-phone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/card-bulleted-off-outline.svg b/doc/theme/material/.icons/material/card-bulleted-off-outline.svg new file mode 100644 index 00000000..3e236762 --- /dev/null +++ b/doc/theme/material/.icons/material/card-bulleted-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/card-bulleted-off.svg b/doc/theme/material/.icons/material/card-bulleted-off.svg new file mode 100644 index 00000000..70db1fac --- /dev/null +++ b/doc/theme/material/.icons/material/card-bulleted-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/card-bulleted-outline.svg b/doc/theme/material/.icons/material/card-bulleted-outline.svg new file mode 100644 index 00000000..310e7185 --- /dev/null +++ b/doc/theme/material/.icons/material/card-bulleted-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/card-bulleted-settings-outline.svg b/doc/theme/material/.icons/material/card-bulleted-settings-outline.svg new file mode 100644 index 00000000..a3ab9309 --- /dev/null +++ b/doc/theme/material/.icons/material/card-bulleted-settings-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/card-bulleted-settings.svg b/doc/theme/material/.icons/material/card-bulleted-settings.svg new file mode 100644 index 00000000..f2b9be34 --- /dev/null +++ b/doc/theme/material/.icons/material/card-bulleted-settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/card-bulleted.svg b/doc/theme/material/.icons/material/card-bulleted.svg new file mode 100644 index 00000000..83574f3f --- /dev/null +++ b/doc/theme/material/.icons/material/card-bulleted.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/card-outline.svg b/doc/theme/material/.icons/material/card-outline.svg new file mode 100644 index 00000000..f598d280 --- /dev/null +++ b/doc/theme/material/.icons/material/card-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/card-plus-outline.svg b/doc/theme/material/.icons/material/card-plus-outline.svg new file mode 100644 index 00000000..2f7f5d32 --- /dev/null +++ b/doc/theme/material/.icons/material/card-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/card-plus.svg b/doc/theme/material/.icons/material/card-plus.svg new file mode 100644 index 00000000..52e64453 --- /dev/null +++ b/doc/theme/material/.icons/material/card-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/card-search-outline.svg b/doc/theme/material/.icons/material/card-search-outline.svg new file mode 100644 index 00000000..389807c5 --- /dev/null +++ b/doc/theme/material/.icons/material/card-search-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/card-search.svg b/doc/theme/material/.icons/material/card-search.svg new file mode 100644 index 00000000..d1882aba --- /dev/null +++ b/doc/theme/material/.icons/material/card-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/card-text-outline.svg b/doc/theme/material/.icons/material/card-text-outline.svg new file mode 100644 index 00000000..fbe63cec --- /dev/null +++ b/doc/theme/material/.icons/material/card-text-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/card-text.svg b/doc/theme/material/.icons/material/card-text.svg new file mode 100644 index 00000000..f5e3f211 --- /dev/null +++ b/doc/theme/material/.icons/material/card-text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/card.svg b/doc/theme/material/.icons/material/card.svg new file mode 100644 index 00000000..7ef6332b --- /dev/null +++ b/doc/theme/material/.icons/material/card.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cards-club.svg b/doc/theme/material/.icons/material/cards-club.svg new file mode 100644 index 00000000..a77ece01 --- /dev/null +++ b/doc/theme/material/.icons/material/cards-club.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cards-diamond-outline.svg b/doc/theme/material/.icons/material/cards-diamond-outline.svg new file mode 100644 index 00000000..e5651100 --- /dev/null +++ b/doc/theme/material/.icons/material/cards-diamond-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cards-diamond.svg b/doc/theme/material/.icons/material/cards-diamond.svg new file mode 100644 index 00000000..01b5cda2 --- /dev/null +++ b/doc/theme/material/.icons/material/cards-diamond.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cards-heart.svg b/doc/theme/material/.icons/material/cards-heart.svg new file mode 100644 index 00000000..69d69a0e --- /dev/null +++ b/doc/theme/material/.icons/material/cards-heart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cards-outline.svg b/doc/theme/material/.icons/material/cards-outline.svg new file mode 100644 index 00000000..e0ecfa79 --- /dev/null +++ b/doc/theme/material/.icons/material/cards-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cards-playing-outline.svg b/doc/theme/material/.icons/material/cards-playing-outline.svg new file mode 100644 index 00000000..41621783 --- /dev/null +++ b/doc/theme/material/.icons/material/cards-playing-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cards-spade.svg b/doc/theme/material/.icons/material/cards-spade.svg new file mode 100644 index 00000000..daaf4f74 --- /dev/null +++ b/doc/theme/material/.icons/material/cards-spade.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cards-variant.svg b/doc/theme/material/.icons/material/cards-variant.svg new file mode 100644 index 00000000..193dcd67 --- /dev/null +++ b/doc/theme/material/.icons/material/cards-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cards.svg b/doc/theme/material/.icons/material/cards.svg new file mode 100644 index 00000000..009e7db6 --- /dev/null +++ b/doc/theme/material/.icons/material/cards.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/carrot.svg b/doc/theme/material/.icons/material/carrot.svg new file mode 100644 index 00000000..0d38cb53 --- /dev/null +++ b/doc/theme/material/.icons/material/carrot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cart-arrow-down.svg b/doc/theme/material/.icons/material/cart-arrow-down.svg new file mode 100644 index 00000000..fac27672 --- /dev/null +++ b/doc/theme/material/.icons/material/cart-arrow-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cart-arrow-right.svg b/doc/theme/material/.icons/material/cart-arrow-right.svg new file mode 100644 index 00000000..3967ea0d --- /dev/null +++ b/doc/theme/material/.icons/material/cart-arrow-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cart-arrow-up.svg b/doc/theme/material/.icons/material/cart-arrow-up.svg new file mode 100644 index 00000000..689af286 --- /dev/null +++ b/doc/theme/material/.icons/material/cart-arrow-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cart-minus.svg b/doc/theme/material/.icons/material/cart-minus.svg new file mode 100644 index 00000000..9135e077 --- /dev/null +++ b/doc/theme/material/.icons/material/cart-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cart-off.svg b/doc/theme/material/.icons/material/cart-off.svg new file mode 100644 index 00000000..27ab8f92 --- /dev/null +++ b/doc/theme/material/.icons/material/cart-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cart-outline.svg b/doc/theme/material/.icons/material/cart-outline.svg new file mode 100644 index 00000000..f82ed2e2 --- /dev/null +++ b/doc/theme/material/.icons/material/cart-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cart-plus.svg b/doc/theme/material/.icons/material/cart-plus.svg new file mode 100644 index 00000000..70be3a4d --- /dev/null +++ b/doc/theme/material/.icons/material/cart-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cart-remove.svg b/doc/theme/material/.icons/material/cart-remove.svg new file mode 100644 index 00000000..637fc2c0 --- /dev/null +++ b/doc/theme/material/.icons/material/cart-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cart.svg b/doc/theme/material/.icons/material/cart.svg new file mode 100644 index 00000000..a8eb75e2 --- /dev/null +++ b/doc/theme/material/.icons/material/cart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/case-sensitive-alt.svg b/doc/theme/material/.icons/material/case-sensitive-alt.svg new file mode 100644 index 00000000..783c6e1f --- /dev/null +++ b/doc/theme/material/.icons/material/case-sensitive-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cash-100.svg b/doc/theme/material/.icons/material/cash-100.svg new file mode 100644 index 00000000..d6baf177 --- /dev/null +++ b/doc/theme/material/.icons/material/cash-100.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cash-marker.svg b/doc/theme/material/.icons/material/cash-marker.svg new file mode 100644 index 00000000..82031f48 --- /dev/null +++ b/doc/theme/material/.icons/material/cash-marker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cash-minus.svg b/doc/theme/material/.icons/material/cash-minus.svg new file mode 100644 index 00000000..f9d149e8 --- /dev/null +++ b/doc/theme/material/.icons/material/cash-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cash-multiple.svg b/doc/theme/material/.icons/material/cash-multiple.svg new file mode 100644 index 00000000..059c09c7 --- /dev/null +++ b/doc/theme/material/.icons/material/cash-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cash-plus.svg b/doc/theme/material/.icons/material/cash-plus.svg new file mode 100644 index 00000000..85beb49c --- /dev/null +++ b/doc/theme/material/.icons/material/cash-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cash-refund.svg b/doc/theme/material/.icons/material/cash-refund.svg new file mode 100644 index 00000000..5714d95a --- /dev/null +++ b/doc/theme/material/.icons/material/cash-refund.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cash-register.svg b/doc/theme/material/.icons/material/cash-register.svg new file mode 100644 index 00000000..20a1c701 --- /dev/null +++ b/doc/theme/material/.icons/material/cash-register.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cash-remove.svg b/doc/theme/material/.icons/material/cash-remove.svg new file mode 100644 index 00000000..03226498 --- /dev/null +++ b/doc/theme/material/.icons/material/cash-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cash-usd-outline.svg b/doc/theme/material/.icons/material/cash-usd-outline.svg new file mode 100644 index 00000000..bc170dbe --- /dev/null +++ b/doc/theme/material/.icons/material/cash-usd-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cash-usd.svg b/doc/theme/material/.icons/material/cash-usd.svg new file mode 100644 index 00000000..66bbb2e7 --- /dev/null +++ b/doc/theme/material/.icons/material/cash-usd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cash.svg b/doc/theme/material/.icons/material/cash.svg new file mode 100644 index 00000000..30060f20 --- /dev/null +++ b/doc/theme/material/.icons/material/cash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cassette.svg b/doc/theme/material/.icons/material/cassette.svg new file mode 100644 index 00000000..a8c50164 --- /dev/null +++ b/doc/theme/material/.icons/material/cassette.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cast-audio.svg b/doc/theme/material/.icons/material/cast-audio.svg new file mode 100644 index 00000000..b0b3ef9d --- /dev/null +++ b/doc/theme/material/.icons/material/cast-audio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cast-connected.svg b/doc/theme/material/.icons/material/cast-connected.svg new file mode 100644 index 00000000..5485cc5e --- /dev/null +++ b/doc/theme/material/.icons/material/cast-connected.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cast-education.svg b/doc/theme/material/.icons/material/cast-education.svg new file mode 100644 index 00000000..a720a92d --- /dev/null +++ b/doc/theme/material/.icons/material/cast-education.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cast-off.svg b/doc/theme/material/.icons/material/cast-off.svg new file mode 100644 index 00000000..a622c6bd --- /dev/null +++ b/doc/theme/material/.icons/material/cast-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cast.svg b/doc/theme/material/.icons/material/cast.svg new file mode 100644 index 00000000..d8a6d623 --- /dev/null +++ b/doc/theme/material/.icons/material/cast.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/castle.svg b/doc/theme/material/.icons/material/castle.svg new file mode 100644 index 00000000..66594a8a --- /dev/null +++ b/doc/theme/material/.icons/material/castle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cat.svg b/doc/theme/material/.icons/material/cat.svg new file mode 100644 index 00000000..e117cf31 --- /dev/null +++ b/doc/theme/material/.icons/material/cat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cctv.svg b/doc/theme/material/.icons/material/cctv.svg new file mode 100644 index 00000000..3d11a0ee --- /dev/null +++ b/doc/theme/material/.icons/material/cctv.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ceiling-light.svg b/doc/theme/material/.icons/material/ceiling-light.svg new file mode 100644 index 00000000..7ae8cdab --- /dev/null +++ b/doc/theme/material/.icons/material/ceiling-light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cellphone-android.svg b/doc/theme/material/.icons/material/cellphone-android.svg new file mode 100644 index 00000000..4f5b8b01 --- /dev/null +++ b/doc/theme/material/.icons/material/cellphone-android.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cellphone-arrow-down.svg b/doc/theme/material/.icons/material/cellphone-arrow-down.svg new file mode 100644 index 00000000..fc02a00c --- /dev/null +++ b/doc/theme/material/.icons/material/cellphone-arrow-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cellphone-basic.svg b/doc/theme/material/.icons/material/cellphone-basic.svg new file mode 100644 index 00000000..802c9e69 --- /dev/null +++ b/doc/theme/material/.icons/material/cellphone-basic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cellphone-charging.svg b/doc/theme/material/.icons/material/cellphone-charging.svg new file mode 100644 index 00000000..0b67d114 --- /dev/null +++ b/doc/theme/material/.icons/material/cellphone-charging.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cellphone-cog.svg b/doc/theme/material/.icons/material/cellphone-cog.svg new file mode 100644 index 00000000..7e8a5c70 --- /dev/null +++ b/doc/theme/material/.icons/material/cellphone-cog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cellphone-dock.svg b/doc/theme/material/.icons/material/cellphone-dock.svg new file mode 100644 index 00000000..d336c85d --- /dev/null +++ b/doc/theme/material/.icons/material/cellphone-dock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cellphone-erase.svg b/doc/theme/material/.icons/material/cellphone-erase.svg new file mode 100644 index 00000000..c2229ecd --- /dev/null +++ b/doc/theme/material/.icons/material/cellphone-erase.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cellphone-information.svg b/doc/theme/material/.icons/material/cellphone-information.svg new file mode 100644 index 00000000..cf705890 --- /dev/null +++ b/doc/theme/material/.icons/material/cellphone-information.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cellphone-iphone.svg b/doc/theme/material/.icons/material/cellphone-iphone.svg new file mode 100644 index 00000000..7f0075c0 --- /dev/null +++ b/doc/theme/material/.icons/material/cellphone-iphone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cellphone-key.svg b/doc/theme/material/.icons/material/cellphone-key.svg new file mode 100644 index 00000000..8c141769 --- /dev/null +++ b/doc/theme/material/.icons/material/cellphone-key.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cellphone-link-off.svg b/doc/theme/material/.icons/material/cellphone-link-off.svg new file mode 100644 index 00000000..4d40d561 --- /dev/null +++ b/doc/theme/material/.icons/material/cellphone-link-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cellphone-link.svg b/doc/theme/material/.icons/material/cellphone-link.svg new file mode 100644 index 00000000..3c47b4dc --- /dev/null +++ b/doc/theme/material/.icons/material/cellphone-link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cellphone-lock.svg b/doc/theme/material/.icons/material/cellphone-lock.svg new file mode 100644 index 00000000..fceb322a --- /dev/null +++ b/doc/theme/material/.icons/material/cellphone-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cellphone-message-off.svg b/doc/theme/material/.icons/material/cellphone-message-off.svg new file mode 100644 index 00000000..3478232d --- /dev/null +++ b/doc/theme/material/.icons/material/cellphone-message-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cellphone-message.svg b/doc/theme/material/.icons/material/cellphone-message.svg new file mode 100644 index 00000000..7111606a --- /dev/null +++ b/doc/theme/material/.icons/material/cellphone-message.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cellphone-nfc-off.svg b/doc/theme/material/.icons/material/cellphone-nfc-off.svg new file mode 100644 index 00000000..940da82b --- /dev/null +++ b/doc/theme/material/.icons/material/cellphone-nfc-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cellphone-nfc.svg b/doc/theme/material/.icons/material/cellphone-nfc.svg new file mode 100644 index 00000000..7cb0c8af --- /dev/null +++ b/doc/theme/material/.icons/material/cellphone-nfc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cellphone-off.svg b/doc/theme/material/.icons/material/cellphone-off.svg new file mode 100644 index 00000000..c575182f --- /dev/null +++ b/doc/theme/material/.icons/material/cellphone-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cellphone-play.svg b/doc/theme/material/.icons/material/cellphone-play.svg new file mode 100644 index 00000000..9c37d40c --- /dev/null +++ b/doc/theme/material/.icons/material/cellphone-play.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cellphone-screenshot.svg b/doc/theme/material/.icons/material/cellphone-screenshot.svg new file mode 100644 index 00000000..fe822046 --- /dev/null +++ b/doc/theme/material/.icons/material/cellphone-screenshot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cellphone-settings.svg b/doc/theme/material/.icons/material/cellphone-settings.svg new file mode 100644 index 00000000..b5195015 --- /dev/null +++ b/doc/theme/material/.icons/material/cellphone-settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cellphone-sound.svg b/doc/theme/material/.icons/material/cellphone-sound.svg new file mode 100644 index 00000000..5838679e --- /dev/null +++ b/doc/theme/material/.icons/material/cellphone-sound.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cellphone-text.svg b/doc/theme/material/.icons/material/cellphone-text.svg new file mode 100644 index 00000000..4315484e --- /dev/null +++ b/doc/theme/material/.icons/material/cellphone-text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cellphone-wireless.svg b/doc/theme/material/.icons/material/cellphone-wireless.svg new file mode 100644 index 00000000..bbbb0574 --- /dev/null +++ b/doc/theme/material/.icons/material/cellphone-wireless.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cellphone.svg b/doc/theme/material/.icons/material/cellphone.svg new file mode 100644 index 00000000..d043f2df --- /dev/null +++ b/doc/theme/material/.icons/material/cellphone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/celtic-cross.svg b/doc/theme/material/.icons/material/celtic-cross.svg new file mode 100644 index 00000000..21b9c650 --- /dev/null +++ b/doc/theme/material/.icons/material/celtic-cross.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/centos.svg b/doc/theme/material/.icons/material/centos.svg new file mode 100644 index 00000000..45130165 --- /dev/null +++ b/doc/theme/material/.icons/material/centos.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/certificate-outline.svg b/doc/theme/material/.icons/material/certificate-outline.svg new file mode 100644 index 00000000..3449ceba --- /dev/null +++ b/doc/theme/material/.icons/material/certificate-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/certificate.svg b/doc/theme/material/.icons/material/certificate.svg new file mode 100644 index 00000000..eb6196bb --- /dev/null +++ b/doc/theme/material/.icons/material/certificate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chair-rolling.svg b/doc/theme/material/.icons/material/chair-rolling.svg new file mode 100644 index 00000000..edd4ff27 --- /dev/null +++ b/doc/theme/material/.icons/material/chair-rolling.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chair-school.svg b/doc/theme/material/.icons/material/chair-school.svg new file mode 100644 index 00000000..a8350cc9 --- /dev/null +++ b/doc/theme/material/.icons/material/chair-school.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/charity.svg b/doc/theme/material/.icons/material/charity.svg new file mode 100644 index 00000000..b6bf3704 --- /dev/null +++ b/doc/theme/material/.icons/material/charity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chart-arc.svg b/doc/theme/material/.icons/material/chart-arc.svg new file mode 100644 index 00000000..7a9c7e14 --- /dev/null +++ b/doc/theme/material/.icons/material/chart-arc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chart-areaspline-variant.svg b/doc/theme/material/.icons/material/chart-areaspline-variant.svg new file mode 100644 index 00000000..ab8ec736 --- /dev/null +++ b/doc/theme/material/.icons/material/chart-areaspline-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chart-areaspline.svg b/doc/theme/material/.icons/material/chart-areaspline.svg new file mode 100644 index 00000000..f1b8bb5e --- /dev/null +++ b/doc/theme/material/.icons/material/chart-areaspline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chart-bar-stacked.svg b/doc/theme/material/.icons/material/chart-bar-stacked.svg new file mode 100644 index 00000000..7b1e6630 --- /dev/null +++ b/doc/theme/material/.icons/material/chart-bar-stacked.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chart-bar.svg b/doc/theme/material/.icons/material/chart-bar.svg new file mode 100644 index 00000000..2811a9eb --- /dev/null +++ b/doc/theme/material/.icons/material/chart-bar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chart-bell-curve-cumulative.svg b/doc/theme/material/.icons/material/chart-bell-curve-cumulative.svg new file mode 100644 index 00000000..944e4fec --- /dev/null +++ b/doc/theme/material/.icons/material/chart-bell-curve-cumulative.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chart-bell-curve.svg b/doc/theme/material/.icons/material/chart-bell-curve.svg new file mode 100644 index 00000000..9c115ee1 --- /dev/null +++ b/doc/theme/material/.icons/material/chart-bell-curve.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chart-bubble.svg b/doc/theme/material/.icons/material/chart-bubble.svg new file mode 100644 index 00000000..bbe2b9d6 --- /dev/null +++ b/doc/theme/material/.icons/material/chart-bubble.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chart-donut-variant.svg b/doc/theme/material/.icons/material/chart-donut-variant.svg new file mode 100644 index 00000000..f0096612 --- /dev/null +++ b/doc/theme/material/.icons/material/chart-donut-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chart-donut.svg b/doc/theme/material/.icons/material/chart-donut.svg new file mode 100644 index 00000000..82761c95 --- /dev/null +++ b/doc/theme/material/.icons/material/chart-donut.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chart-gantt.svg b/doc/theme/material/.icons/material/chart-gantt.svg new file mode 100644 index 00000000..a72f9031 --- /dev/null +++ b/doc/theme/material/.icons/material/chart-gantt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chart-histogram.svg b/doc/theme/material/.icons/material/chart-histogram.svg new file mode 100644 index 00000000..4dd096b6 --- /dev/null +++ b/doc/theme/material/.icons/material/chart-histogram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chart-line-stacked.svg b/doc/theme/material/.icons/material/chart-line-stacked.svg new file mode 100644 index 00000000..43f72950 --- /dev/null +++ b/doc/theme/material/.icons/material/chart-line-stacked.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chart-line-variant.svg b/doc/theme/material/.icons/material/chart-line-variant.svg new file mode 100644 index 00000000..d9215b0a --- /dev/null +++ b/doc/theme/material/.icons/material/chart-line-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chart-line.svg b/doc/theme/material/.icons/material/chart-line.svg new file mode 100644 index 00000000..b8c3645e --- /dev/null +++ b/doc/theme/material/.icons/material/chart-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chart-multiline.svg b/doc/theme/material/.icons/material/chart-multiline.svg new file mode 100644 index 00000000..31c49ba2 --- /dev/null +++ b/doc/theme/material/.icons/material/chart-multiline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chart-multiple.svg b/doc/theme/material/.icons/material/chart-multiple.svg new file mode 100644 index 00000000..40d98803 --- /dev/null +++ b/doc/theme/material/.icons/material/chart-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chart-pie.svg b/doc/theme/material/.icons/material/chart-pie.svg new file mode 100644 index 00000000..28df8dd5 --- /dev/null +++ b/doc/theme/material/.icons/material/chart-pie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chart-ppf.svg b/doc/theme/material/.icons/material/chart-ppf.svg new file mode 100644 index 00000000..5c080ac0 --- /dev/null +++ b/doc/theme/material/.icons/material/chart-ppf.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chart-sankey-variant.svg b/doc/theme/material/.icons/material/chart-sankey-variant.svg new file mode 100644 index 00000000..36eafbad --- /dev/null +++ b/doc/theme/material/.icons/material/chart-sankey-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chart-sankey.svg b/doc/theme/material/.icons/material/chart-sankey.svg new file mode 100644 index 00000000..220aef6b --- /dev/null +++ b/doc/theme/material/.icons/material/chart-sankey.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chart-scatter-plot-hexbin.svg b/doc/theme/material/.icons/material/chart-scatter-plot-hexbin.svg new file mode 100644 index 00000000..f14eba14 --- /dev/null +++ b/doc/theme/material/.icons/material/chart-scatter-plot-hexbin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chart-scatter-plot.svg b/doc/theme/material/.icons/material/chart-scatter-plot.svg new file mode 100644 index 00000000..1ce48634 --- /dev/null +++ b/doc/theme/material/.icons/material/chart-scatter-plot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chart-timeline-variant.svg b/doc/theme/material/.icons/material/chart-timeline-variant.svg new file mode 100644 index 00000000..dc1a3e47 --- /dev/null +++ b/doc/theme/material/.icons/material/chart-timeline-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chart-timeline.svg b/doc/theme/material/.icons/material/chart-timeline.svg new file mode 100644 index 00000000..0294d3b8 --- /dev/null +++ b/doc/theme/material/.icons/material/chart-timeline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chart-tree.svg b/doc/theme/material/.icons/material/chart-tree.svg new file mode 100644 index 00000000..e6876c62 --- /dev/null +++ b/doc/theme/material/.icons/material/chart-tree.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chat-alert-outline.svg b/doc/theme/material/.icons/material/chat-alert-outline.svg new file mode 100644 index 00000000..572ce06a --- /dev/null +++ b/doc/theme/material/.icons/material/chat-alert-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chat-alert.svg b/doc/theme/material/.icons/material/chat-alert.svg new file mode 100644 index 00000000..1b594cd8 --- /dev/null +++ b/doc/theme/material/.icons/material/chat-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chat-minus-outline.svg b/doc/theme/material/.icons/material/chat-minus-outline.svg new file mode 100644 index 00000000..74fb6cfb --- /dev/null +++ b/doc/theme/material/.icons/material/chat-minus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chat-minus.svg b/doc/theme/material/.icons/material/chat-minus.svg new file mode 100644 index 00000000..2e19cf9d --- /dev/null +++ b/doc/theme/material/.icons/material/chat-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chat-outline.svg b/doc/theme/material/.icons/material/chat-outline.svg new file mode 100644 index 00000000..e170846d --- /dev/null +++ b/doc/theme/material/.icons/material/chat-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chat-plus-outline.svg b/doc/theme/material/.icons/material/chat-plus-outline.svg new file mode 100644 index 00000000..9486cacf --- /dev/null +++ b/doc/theme/material/.icons/material/chat-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chat-plus.svg b/doc/theme/material/.icons/material/chat-plus.svg new file mode 100644 index 00000000..2871f55c --- /dev/null +++ b/doc/theme/material/.icons/material/chat-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chat-processing-outline.svg b/doc/theme/material/.icons/material/chat-processing-outline.svg new file mode 100644 index 00000000..cd7f9c19 --- /dev/null +++ b/doc/theme/material/.icons/material/chat-processing-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chat-processing.svg b/doc/theme/material/.icons/material/chat-processing.svg new file mode 100644 index 00000000..993cbcd5 --- /dev/null +++ b/doc/theme/material/.icons/material/chat-processing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chat-remove-outline.svg b/doc/theme/material/.icons/material/chat-remove-outline.svg new file mode 100644 index 00000000..a09929b7 --- /dev/null +++ b/doc/theme/material/.icons/material/chat-remove-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chat-remove.svg b/doc/theme/material/.icons/material/chat-remove.svg new file mode 100644 index 00000000..2c5bcbfe --- /dev/null +++ b/doc/theme/material/.icons/material/chat-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chat-sleep-outline.svg b/doc/theme/material/.icons/material/chat-sleep-outline.svg new file mode 100644 index 00000000..9f66ede4 --- /dev/null +++ b/doc/theme/material/.icons/material/chat-sleep-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chat-sleep.svg b/doc/theme/material/.icons/material/chat-sleep.svg new file mode 100644 index 00000000..23cd33e1 --- /dev/null +++ b/doc/theme/material/.icons/material/chat-sleep.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chat.svg b/doc/theme/material/.icons/material/chat.svg new file mode 100644 index 00000000..d89d9f83 --- /dev/null +++ b/doc/theme/material/.icons/material/chat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/check-all.svg b/doc/theme/material/.icons/material/check-all.svg new file mode 100644 index 00000000..8de704e1 --- /dev/null +++ b/doc/theme/material/.icons/material/check-all.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/check-bold.svg b/doc/theme/material/.icons/material/check-bold.svg new file mode 100644 index 00000000..f6fd9da3 --- /dev/null +++ b/doc/theme/material/.icons/material/check-bold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/check-box-multiple-outline.svg b/doc/theme/material/.icons/material/check-box-multiple-outline.svg new file mode 100644 index 00000000..1367c125 --- /dev/null +++ b/doc/theme/material/.icons/material/check-box-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/check-box-outline.svg b/doc/theme/material/.icons/material/check-box-outline.svg new file mode 100644 index 00000000..4cba7654 --- /dev/null +++ b/doc/theme/material/.icons/material/check-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/check-circle-outline.svg b/doc/theme/material/.icons/material/check-circle-outline.svg new file mode 100644 index 00000000..0037f3fd --- /dev/null +++ b/doc/theme/material/.icons/material/check-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/check-circle.svg b/doc/theme/material/.icons/material/check-circle.svg new file mode 100644 index 00000000..6a8235c0 --- /dev/null +++ b/doc/theme/material/.icons/material/check-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/check-decagram.svg b/doc/theme/material/.icons/material/check-decagram.svg new file mode 100644 index 00000000..758ef24e --- /dev/null +++ b/doc/theme/material/.icons/material/check-decagram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/check-network-outline.svg b/doc/theme/material/.icons/material/check-network-outline.svg new file mode 100644 index 00000000..de4f13bc --- /dev/null +++ b/doc/theme/material/.icons/material/check-network-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/check-network.svg b/doc/theme/material/.icons/material/check-network.svg new file mode 100644 index 00000000..283988f9 --- /dev/null +++ b/doc/theme/material/.icons/material/check-network.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/check-outline.svg b/doc/theme/material/.icons/material/check-outline.svg new file mode 100644 index 00000000..c5901274 --- /dev/null +++ b/doc/theme/material/.icons/material/check-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/check-underline-circle-outline.svg b/doc/theme/material/.icons/material/check-underline-circle-outline.svg new file mode 100644 index 00000000..7095b718 --- /dev/null +++ b/doc/theme/material/.icons/material/check-underline-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/check-underline-circle.svg b/doc/theme/material/.icons/material/check-underline-circle.svg new file mode 100644 index 00000000..cebdb85a --- /dev/null +++ b/doc/theme/material/.icons/material/check-underline-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/check-underline.svg b/doc/theme/material/.icons/material/check-underline.svg new file mode 100644 index 00000000..bd5bf3e0 --- /dev/null +++ b/doc/theme/material/.icons/material/check-underline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/check.svg b/doc/theme/material/.icons/material/check.svg new file mode 100644 index 00000000..5c123bfd --- /dev/null +++ b/doc/theme/material/.icons/material/check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/checkbook.svg b/doc/theme/material/.icons/material/checkbook.svg new file mode 100644 index 00000000..f7fc169d --- /dev/null +++ b/doc/theme/material/.icons/material/checkbook.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/checkbox-blank-circle-outline.svg b/doc/theme/material/.icons/material/checkbox-blank-circle-outline.svg new file mode 100644 index 00000000..e986852f --- /dev/null +++ b/doc/theme/material/.icons/material/checkbox-blank-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/checkbox-blank-circle.svg b/doc/theme/material/.icons/material/checkbox-blank-circle.svg new file mode 100644 index 00000000..0f0f814e --- /dev/null +++ b/doc/theme/material/.icons/material/checkbox-blank-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/checkbox-blank-off-outline.svg b/doc/theme/material/.icons/material/checkbox-blank-off-outline.svg new file mode 100644 index 00000000..8dac7027 --- /dev/null +++ b/doc/theme/material/.icons/material/checkbox-blank-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/checkbox-blank-off.svg b/doc/theme/material/.icons/material/checkbox-blank-off.svg new file mode 100644 index 00000000..0cefc726 --- /dev/null +++ b/doc/theme/material/.icons/material/checkbox-blank-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/checkbox-blank-outline.svg b/doc/theme/material/.icons/material/checkbox-blank-outline.svg new file mode 100644 index 00000000..7d5babd9 --- /dev/null +++ b/doc/theme/material/.icons/material/checkbox-blank-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/checkbox-blank.svg b/doc/theme/material/.icons/material/checkbox-blank.svg new file mode 100644 index 00000000..a0537331 --- /dev/null +++ b/doc/theme/material/.icons/material/checkbox-blank.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/checkbox-intermediate.svg b/doc/theme/material/.icons/material/checkbox-intermediate.svg new file mode 100644 index 00000000..e4224152 --- /dev/null +++ b/doc/theme/material/.icons/material/checkbox-intermediate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/checkbox-marked-circle-outline.svg b/doc/theme/material/.icons/material/checkbox-marked-circle-outline.svg new file mode 100644 index 00000000..9eafbe84 --- /dev/null +++ b/doc/theme/material/.icons/material/checkbox-marked-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/checkbox-marked-circle.svg b/doc/theme/material/.icons/material/checkbox-marked-circle.svg new file mode 100644 index 00000000..5cd5a712 --- /dev/null +++ b/doc/theme/material/.icons/material/checkbox-marked-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/checkbox-marked-outline.svg b/doc/theme/material/.icons/material/checkbox-marked-outline.svg new file mode 100644 index 00000000..4504a84d --- /dev/null +++ b/doc/theme/material/.icons/material/checkbox-marked-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/checkbox-marked.svg b/doc/theme/material/.icons/material/checkbox-marked.svg new file mode 100644 index 00000000..2417071c --- /dev/null +++ b/doc/theme/material/.icons/material/checkbox-marked.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/checkbox-multiple-blank-circle-outline.svg b/doc/theme/material/.icons/material/checkbox-multiple-blank-circle-outline.svg new file mode 100644 index 00000000..17ccdb2b --- /dev/null +++ b/doc/theme/material/.icons/material/checkbox-multiple-blank-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/checkbox-multiple-blank-circle.svg b/doc/theme/material/.icons/material/checkbox-multiple-blank-circle.svg new file mode 100644 index 00000000..0615d499 --- /dev/null +++ b/doc/theme/material/.icons/material/checkbox-multiple-blank-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/checkbox-multiple-blank-outline.svg b/doc/theme/material/.icons/material/checkbox-multiple-blank-outline.svg new file mode 100644 index 00000000..0023da2f --- /dev/null +++ b/doc/theme/material/.icons/material/checkbox-multiple-blank-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/checkbox-multiple-blank.svg b/doc/theme/material/.icons/material/checkbox-multiple-blank.svg new file mode 100644 index 00000000..eb804999 --- /dev/null +++ b/doc/theme/material/.icons/material/checkbox-multiple-blank.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/checkbox-multiple-marked-circle-outline.svg b/doc/theme/material/.icons/material/checkbox-multiple-marked-circle-outline.svg new file mode 100644 index 00000000..58094939 --- /dev/null +++ b/doc/theme/material/.icons/material/checkbox-multiple-marked-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/checkbox-multiple-marked-circle.svg b/doc/theme/material/.icons/material/checkbox-multiple-marked-circle.svg new file mode 100644 index 00000000..43e55bb0 --- /dev/null +++ b/doc/theme/material/.icons/material/checkbox-multiple-marked-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/checkbox-multiple-marked-outline.svg b/doc/theme/material/.icons/material/checkbox-multiple-marked-outline.svg new file mode 100644 index 00000000..55745d0a --- /dev/null +++ b/doc/theme/material/.icons/material/checkbox-multiple-marked-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/checkbox-multiple-marked.svg b/doc/theme/material/.icons/material/checkbox-multiple-marked.svg new file mode 100644 index 00000000..794a93d5 --- /dev/null +++ b/doc/theme/material/.icons/material/checkbox-multiple-marked.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/checkerboard-minus.svg b/doc/theme/material/.icons/material/checkerboard-minus.svg new file mode 100644 index 00000000..14f3fd44 --- /dev/null +++ b/doc/theme/material/.icons/material/checkerboard-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/checkerboard-plus.svg b/doc/theme/material/.icons/material/checkerboard-plus.svg new file mode 100644 index 00000000..0d08f2fc --- /dev/null +++ b/doc/theme/material/.icons/material/checkerboard-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/checkerboard-remove.svg b/doc/theme/material/.icons/material/checkerboard-remove.svg new file mode 100644 index 00000000..7b309268 --- /dev/null +++ b/doc/theme/material/.icons/material/checkerboard-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/checkerboard.svg b/doc/theme/material/.icons/material/checkerboard.svg new file mode 100644 index 00000000..230da149 --- /dev/null +++ b/doc/theme/material/.icons/material/checkerboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cheese-off.svg b/doc/theme/material/.icons/material/cheese-off.svg new file mode 100644 index 00000000..502e5864 --- /dev/null +++ b/doc/theme/material/.icons/material/cheese-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cheese.svg b/doc/theme/material/.icons/material/cheese.svg new file mode 100644 index 00000000..9b142a58 --- /dev/null +++ b/doc/theme/material/.icons/material/cheese.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chef-hat.svg b/doc/theme/material/.icons/material/chef-hat.svg new file mode 100644 index 00000000..ff186d66 --- /dev/null +++ b/doc/theme/material/.icons/material/chef-hat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chemical-weapon.svg b/doc/theme/material/.icons/material/chemical-weapon.svg new file mode 100644 index 00000000..b69e2cf2 --- /dev/null +++ b/doc/theme/material/.icons/material/chemical-weapon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chess-bishop.svg b/doc/theme/material/.icons/material/chess-bishop.svg new file mode 100644 index 00000000..3852fb75 --- /dev/null +++ b/doc/theme/material/.icons/material/chess-bishop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chess-king.svg b/doc/theme/material/.icons/material/chess-king.svg new file mode 100644 index 00000000..bcc52f4f --- /dev/null +++ b/doc/theme/material/.icons/material/chess-king.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chess-knight.svg b/doc/theme/material/.icons/material/chess-knight.svg new file mode 100644 index 00000000..8a90ef1b --- /dev/null +++ b/doc/theme/material/.icons/material/chess-knight.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chess-pawn.svg b/doc/theme/material/.icons/material/chess-pawn.svg new file mode 100644 index 00000000..487bd023 --- /dev/null +++ b/doc/theme/material/.icons/material/chess-pawn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chess-queen.svg b/doc/theme/material/.icons/material/chess-queen.svg new file mode 100644 index 00000000..8f425b63 --- /dev/null +++ b/doc/theme/material/.icons/material/chess-queen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chess-rook.svg b/doc/theme/material/.icons/material/chess-rook.svg new file mode 100644 index 00000000..583f9ad9 --- /dev/null +++ b/doc/theme/material/.icons/material/chess-rook.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chevron-double-down.svg b/doc/theme/material/.icons/material/chevron-double-down.svg new file mode 100644 index 00000000..6d3d567d --- /dev/null +++ b/doc/theme/material/.icons/material/chevron-double-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chevron-double-left.svg b/doc/theme/material/.icons/material/chevron-double-left.svg new file mode 100644 index 00000000..f8947a68 --- /dev/null +++ b/doc/theme/material/.icons/material/chevron-double-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chevron-double-right.svg b/doc/theme/material/.icons/material/chevron-double-right.svg new file mode 100644 index 00000000..6bc99c5f --- /dev/null +++ b/doc/theme/material/.icons/material/chevron-double-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chevron-double-up.svg b/doc/theme/material/.icons/material/chevron-double-up.svg new file mode 100644 index 00000000..ce65d4b9 --- /dev/null +++ b/doc/theme/material/.icons/material/chevron-double-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chevron-down-box-outline.svg b/doc/theme/material/.icons/material/chevron-down-box-outline.svg new file mode 100644 index 00000000..d3f8daa6 --- /dev/null +++ b/doc/theme/material/.icons/material/chevron-down-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chevron-down-box.svg b/doc/theme/material/.icons/material/chevron-down-box.svg new file mode 100644 index 00000000..86f68e3b --- /dev/null +++ b/doc/theme/material/.icons/material/chevron-down-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chevron-down-circle-outline.svg b/doc/theme/material/.icons/material/chevron-down-circle-outline.svg new file mode 100644 index 00000000..b447fe1f --- /dev/null +++ b/doc/theme/material/.icons/material/chevron-down-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chevron-down-circle.svg b/doc/theme/material/.icons/material/chevron-down-circle.svg new file mode 100644 index 00000000..8ff2f075 --- /dev/null +++ b/doc/theme/material/.icons/material/chevron-down-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chevron-down.svg b/doc/theme/material/.icons/material/chevron-down.svg new file mode 100644 index 00000000..622cbd4f --- /dev/null +++ b/doc/theme/material/.icons/material/chevron-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chevron-left-box-outline.svg b/doc/theme/material/.icons/material/chevron-left-box-outline.svg new file mode 100644 index 00000000..20e12679 --- /dev/null +++ b/doc/theme/material/.icons/material/chevron-left-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chevron-left-box.svg b/doc/theme/material/.icons/material/chevron-left-box.svg new file mode 100644 index 00000000..5b9e446e --- /dev/null +++ b/doc/theme/material/.icons/material/chevron-left-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chevron-left-circle-outline.svg b/doc/theme/material/.icons/material/chevron-left-circle-outline.svg new file mode 100644 index 00000000..5866f07f --- /dev/null +++ b/doc/theme/material/.icons/material/chevron-left-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chevron-left-circle.svg b/doc/theme/material/.icons/material/chevron-left-circle.svg new file mode 100644 index 00000000..a123441b --- /dev/null +++ b/doc/theme/material/.icons/material/chevron-left-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chevron-left.svg b/doc/theme/material/.icons/material/chevron-left.svg new file mode 100644 index 00000000..2291392e --- /dev/null +++ b/doc/theme/material/.icons/material/chevron-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chevron-right-box-outline.svg b/doc/theme/material/.icons/material/chevron-right-box-outline.svg new file mode 100644 index 00000000..763d2931 --- /dev/null +++ b/doc/theme/material/.icons/material/chevron-right-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chevron-right-box.svg b/doc/theme/material/.icons/material/chevron-right-box.svg new file mode 100644 index 00000000..3f344b50 --- /dev/null +++ b/doc/theme/material/.icons/material/chevron-right-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chevron-right-circle-outline.svg b/doc/theme/material/.icons/material/chevron-right-circle-outline.svg new file mode 100644 index 00000000..ec248492 --- /dev/null +++ b/doc/theme/material/.icons/material/chevron-right-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chevron-right-circle.svg b/doc/theme/material/.icons/material/chevron-right-circle.svg new file mode 100644 index 00000000..1548d76f --- /dev/null +++ b/doc/theme/material/.icons/material/chevron-right-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chevron-right.svg b/doc/theme/material/.icons/material/chevron-right.svg new file mode 100644 index 00000000..b8c47d9e --- /dev/null +++ b/doc/theme/material/.icons/material/chevron-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chevron-triple-down.svg b/doc/theme/material/.icons/material/chevron-triple-down.svg new file mode 100644 index 00000000..10408326 --- /dev/null +++ b/doc/theme/material/.icons/material/chevron-triple-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chevron-triple-left.svg b/doc/theme/material/.icons/material/chevron-triple-left.svg new file mode 100644 index 00000000..d65817c9 --- /dev/null +++ b/doc/theme/material/.icons/material/chevron-triple-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chevron-triple-right.svg b/doc/theme/material/.icons/material/chevron-triple-right.svg new file mode 100644 index 00000000..cbd03e7c --- /dev/null +++ b/doc/theme/material/.icons/material/chevron-triple-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chevron-triple-up.svg b/doc/theme/material/.icons/material/chevron-triple-up.svg new file mode 100644 index 00000000..13aac972 --- /dev/null +++ b/doc/theme/material/.icons/material/chevron-triple-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chevron-up-box-outline.svg b/doc/theme/material/.icons/material/chevron-up-box-outline.svg new file mode 100644 index 00000000..d2dcae07 --- /dev/null +++ b/doc/theme/material/.icons/material/chevron-up-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chevron-up-box.svg b/doc/theme/material/.icons/material/chevron-up-box.svg new file mode 100644 index 00000000..28e2e996 --- /dev/null +++ b/doc/theme/material/.icons/material/chevron-up-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chevron-up-circle-outline.svg b/doc/theme/material/.icons/material/chevron-up-circle-outline.svg new file mode 100644 index 00000000..62f1d44b --- /dev/null +++ b/doc/theme/material/.icons/material/chevron-up-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chevron-up-circle.svg b/doc/theme/material/.icons/material/chevron-up-circle.svg new file mode 100644 index 00000000..78f227cc --- /dev/null +++ b/doc/theme/material/.icons/material/chevron-up-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chevron-up.svg b/doc/theme/material/.icons/material/chevron-up.svg new file mode 100644 index 00000000..6c23eaa9 --- /dev/null +++ b/doc/theme/material/.icons/material/chevron-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chili-hot.svg b/doc/theme/material/.icons/material/chili-hot.svg new file mode 100644 index 00000000..74f3a234 --- /dev/null +++ b/doc/theme/material/.icons/material/chili-hot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chili-medium.svg b/doc/theme/material/.icons/material/chili-medium.svg new file mode 100644 index 00000000..f371cd86 --- /dev/null +++ b/doc/theme/material/.icons/material/chili-medium.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chili-mild.svg b/doc/theme/material/.icons/material/chili-mild.svg new file mode 100644 index 00000000..cd0196f2 --- /dev/null +++ b/doc/theme/material/.icons/material/chili-mild.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/chip.svg b/doc/theme/material/.icons/material/chip.svg new file mode 100644 index 00000000..38992b6d --- /dev/null +++ b/doc/theme/material/.icons/material/chip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/christianity-outline.svg b/doc/theme/material/.icons/material/christianity-outline.svg new file mode 100644 index 00000000..db706b5a --- /dev/null +++ b/doc/theme/material/.icons/material/christianity-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/christianity.svg b/doc/theme/material/.icons/material/christianity.svg new file mode 100644 index 00000000..537d734c --- /dev/null +++ b/doc/theme/material/.icons/material/christianity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/church.svg b/doc/theme/material/.icons/material/church.svg new file mode 100644 index 00000000..5229d03c --- /dev/null +++ b/doc/theme/material/.icons/material/church.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cigar.svg b/doc/theme/material/.icons/material/cigar.svg new file mode 100644 index 00000000..a22286b6 --- /dev/null +++ b/doc/theme/material/.icons/material/cigar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/circle-double.svg b/doc/theme/material/.icons/material/circle-double.svg new file mode 100644 index 00000000..3b04567b --- /dev/null +++ b/doc/theme/material/.icons/material/circle-double.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/circle-edit-outline.svg b/doc/theme/material/.icons/material/circle-edit-outline.svg new file mode 100644 index 00000000..fcc5afcb --- /dev/null +++ b/doc/theme/material/.icons/material/circle-edit-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/circle-expand.svg b/doc/theme/material/.icons/material/circle-expand.svg new file mode 100644 index 00000000..15f2e200 --- /dev/null +++ b/doc/theme/material/.icons/material/circle-expand.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/circle-half-full.svg b/doc/theme/material/.icons/material/circle-half-full.svg new file mode 100644 index 00000000..2e77d2cc --- /dev/null +++ b/doc/theme/material/.icons/material/circle-half-full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/circle-half.svg b/doc/theme/material/.icons/material/circle-half.svg new file mode 100644 index 00000000..463d8c9f --- /dev/null +++ b/doc/theme/material/.icons/material/circle-half.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/circle-medium.svg b/doc/theme/material/.icons/material/circle-medium.svg new file mode 100644 index 00000000..5fb75fe3 --- /dev/null +++ b/doc/theme/material/.icons/material/circle-medium.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/circle-multiple-outline.svg b/doc/theme/material/.icons/material/circle-multiple-outline.svg new file mode 100644 index 00000000..db81061d --- /dev/null +++ b/doc/theme/material/.icons/material/circle-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/circle-multiple.svg b/doc/theme/material/.icons/material/circle-multiple.svg new file mode 100644 index 00000000..4697d441 --- /dev/null +++ b/doc/theme/material/.icons/material/circle-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/circle-off-outline.svg b/doc/theme/material/.icons/material/circle-off-outline.svg new file mode 100644 index 00000000..f9218ebf --- /dev/null +++ b/doc/theme/material/.icons/material/circle-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/circle-outline.svg b/doc/theme/material/.icons/material/circle-outline.svg new file mode 100644 index 00000000..e986852f --- /dev/null +++ b/doc/theme/material/.icons/material/circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/circle-slice-1.svg b/doc/theme/material/.icons/material/circle-slice-1.svg new file mode 100644 index 00000000..3e15129b --- /dev/null +++ b/doc/theme/material/.icons/material/circle-slice-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/circle-slice-2.svg b/doc/theme/material/.icons/material/circle-slice-2.svg new file mode 100644 index 00000000..e9d70ce6 --- /dev/null +++ b/doc/theme/material/.icons/material/circle-slice-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/circle-slice-3.svg b/doc/theme/material/.icons/material/circle-slice-3.svg new file mode 100644 index 00000000..66be5e55 --- /dev/null +++ b/doc/theme/material/.icons/material/circle-slice-3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/circle-slice-4.svg b/doc/theme/material/.icons/material/circle-slice-4.svg new file mode 100644 index 00000000..95c19996 --- /dev/null +++ b/doc/theme/material/.icons/material/circle-slice-4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/circle-slice-5.svg b/doc/theme/material/.icons/material/circle-slice-5.svg new file mode 100644 index 00000000..c3e8d1df --- /dev/null +++ b/doc/theme/material/.icons/material/circle-slice-5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/circle-slice-6.svg b/doc/theme/material/.icons/material/circle-slice-6.svg new file mode 100644 index 00000000..f2a1cabb --- /dev/null +++ b/doc/theme/material/.icons/material/circle-slice-6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/circle-slice-7.svg b/doc/theme/material/.icons/material/circle-slice-7.svg new file mode 100644 index 00000000..86e6944a --- /dev/null +++ b/doc/theme/material/.icons/material/circle-slice-7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/circle-slice-8.svg b/doc/theme/material/.icons/material/circle-slice-8.svg new file mode 100644 index 00000000..abd79c92 --- /dev/null +++ b/doc/theme/material/.icons/material/circle-slice-8.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/circle-small.svg b/doc/theme/material/.icons/material/circle-small.svg new file mode 100644 index 00000000..caaa2678 --- /dev/null +++ b/doc/theme/material/.icons/material/circle-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/circle.svg b/doc/theme/material/.icons/material/circle.svg new file mode 100644 index 00000000..0f0f814e --- /dev/null +++ b/doc/theme/material/.icons/material/circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/circular-saw.svg b/doc/theme/material/.icons/material/circular-saw.svg new file mode 100644 index 00000000..87ce0a50 --- /dev/null +++ b/doc/theme/material/.icons/material/circular-saw.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/city-variant-outline.svg b/doc/theme/material/.icons/material/city-variant-outline.svg new file mode 100644 index 00000000..f2a10566 --- /dev/null +++ b/doc/theme/material/.icons/material/city-variant-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/city-variant.svg b/doc/theme/material/.icons/material/city-variant.svg new file mode 100644 index 00000000..f197d0db --- /dev/null +++ b/doc/theme/material/.icons/material/city-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/city.svg b/doc/theme/material/.icons/material/city.svg new file mode 100644 index 00000000..cfaf1e0f --- /dev/null +++ b/doc/theme/material/.icons/material/city.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-account-outline.svg b/doc/theme/material/.icons/material/clipboard-account-outline.svg new file mode 100644 index 00000000..0f59464f --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-account-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-account.svg b/doc/theme/material/.icons/material/clipboard-account.svg new file mode 100644 index 00000000..5a87185c --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-alert-outline.svg b/doc/theme/material/.icons/material/clipboard-alert-outline.svg new file mode 100644 index 00000000..c96c04e3 --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-alert-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-alert.svg b/doc/theme/material/.icons/material/clipboard-alert.svg new file mode 100644 index 00000000..f150b1c6 --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-arrow-down-outline.svg b/doc/theme/material/.icons/material/clipboard-arrow-down-outline.svg new file mode 100644 index 00000000..b38f4cc5 --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-arrow-down-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-arrow-down.svg b/doc/theme/material/.icons/material/clipboard-arrow-down.svg new file mode 100644 index 00000000..56338439 --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-arrow-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-arrow-left-outline.svg b/doc/theme/material/.icons/material/clipboard-arrow-left-outline.svg new file mode 100644 index 00000000..c24ff573 --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-arrow-left-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-arrow-left.svg b/doc/theme/material/.icons/material/clipboard-arrow-left.svg new file mode 100644 index 00000000..f095535f --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-arrow-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-arrow-right-outline.svg b/doc/theme/material/.icons/material/clipboard-arrow-right-outline.svg new file mode 100644 index 00000000..a679a949 --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-arrow-right-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-arrow-right.svg b/doc/theme/material/.icons/material/clipboard-arrow-right.svg new file mode 100644 index 00000000..ec274303 --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-arrow-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-arrow-up-outline.svg b/doc/theme/material/.icons/material/clipboard-arrow-up-outline.svg new file mode 100644 index 00000000..86185ae4 --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-arrow-up-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-arrow-up.svg b/doc/theme/material/.icons/material/clipboard-arrow-up.svg new file mode 100644 index 00000000..f3bd2402 --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-arrow-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-check-multiple-outline.svg b/doc/theme/material/.icons/material/clipboard-check-multiple-outline.svg new file mode 100644 index 00000000..40f8e363 --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-check-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-check-multiple.svg b/doc/theme/material/.icons/material/clipboard-check-multiple.svg new file mode 100644 index 00000000..aa2c5146 --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-check-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-check-outline.svg b/doc/theme/material/.icons/material/clipboard-check-outline.svg new file mode 100644 index 00000000..092508fe --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-check-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-check.svg b/doc/theme/material/.icons/material/clipboard-check.svg new file mode 100644 index 00000000..b23250a3 --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-file-outline.svg b/doc/theme/material/.icons/material/clipboard-file-outline.svg new file mode 100644 index 00000000..dc6a49a9 --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-file-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-file.svg b/doc/theme/material/.icons/material/clipboard-file.svg new file mode 100644 index 00000000..cd7a2efd --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-file.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-flow-outline.svg b/doc/theme/material/.icons/material/clipboard-flow-outline.svg new file mode 100644 index 00000000..0bf28a4a --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-flow-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-flow.svg b/doc/theme/material/.icons/material/clipboard-flow.svg new file mode 100644 index 00000000..483552e0 --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-flow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-list-outline.svg b/doc/theme/material/.icons/material/clipboard-list-outline.svg new file mode 100644 index 00000000..f8df2c4a --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-list-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-list.svg b/doc/theme/material/.icons/material/clipboard-list.svg new file mode 100644 index 00000000..e74cf334 --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-list.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-multiple-outline.svg b/doc/theme/material/.icons/material/clipboard-multiple-outline.svg new file mode 100644 index 00000000..56920881 --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-multiple.svg b/doc/theme/material/.icons/material/clipboard-multiple.svg new file mode 100644 index 00000000..da2750e3 --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-outline.svg b/doc/theme/material/.icons/material/clipboard-outline.svg new file mode 100644 index 00000000..62b468b3 --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-play-multiple-outline.svg b/doc/theme/material/.icons/material/clipboard-play-multiple-outline.svg new file mode 100644 index 00000000..783d2521 --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-play-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-play-multiple.svg b/doc/theme/material/.icons/material/clipboard-play-multiple.svg new file mode 100644 index 00000000..7835aee8 --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-play-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-play-outline.svg b/doc/theme/material/.icons/material/clipboard-play-outline.svg new file mode 100644 index 00000000..b91108e1 --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-play-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-play.svg b/doc/theme/material/.icons/material/clipboard-play.svg new file mode 100644 index 00000000..0a0cacca --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-play.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-plus-outline.svg b/doc/theme/material/.icons/material/clipboard-plus-outline.svg new file mode 100644 index 00000000..10b7bc9a --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-plus.svg b/doc/theme/material/.icons/material/clipboard-plus.svg new file mode 100644 index 00000000..abaed68c --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-pulse-outline.svg b/doc/theme/material/.icons/material/clipboard-pulse-outline.svg new file mode 100644 index 00000000..9cfb2f6d --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-pulse-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-pulse.svg b/doc/theme/material/.icons/material/clipboard-pulse.svg new file mode 100644 index 00000000..4e48b19f --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-pulse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-text-multiple-outline.svg b/doc/theme/material/.icons/material/clipboard-text-multiple-outline.svg new file mode 100644 index 00000000..6fa1f933 --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-text-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-text-multiple.svg b/doc/theme/material/.icons/material/clipboard-text-multiple.svg new file mode 100644 index 00000000..34f1e0c0 --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-text-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-text-outline.svg b/doc/theme/material/.icons/material/clipboard-text-outline.svg new file mode 100644 index 00000000..68acec28 --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-text-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-text-play-outline.svg b/doc/theme/material/.icons/material/clipboard-text-play-outline.svg new file mode 100644 index 00000000..fc215b0b --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-text-play-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-text-play.svg b/doc/theme/material/.icons/material/clipboard-text-play.svg new file mode 100644 index 00000000..53f12d78 --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-text-play.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard-text.svg b/doc/theme/material/.icons/material/clipboard-text.svg new file mode 100644 index 00000000..044a8634 --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard-text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clipboard.svg b/doc/theme/material/.icons/material/clipboard.svg new file mode 100644 index 00000000..3321a5f0 --- /dev/null +++ b/doc/theme/material/.icons/material/clipboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clippy.svg b/doc/theme/material/.icons/material/clippy.svg new file mode 100644 index 00000000..7961902c --- /dev/null +++ b/doc/theme/material/.icons/material/clippy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clock-alert-outline.svg b/doc/theme/material/.icons/material/clock-alert-outline.svg new file mode 100644 index 00000000..959db60b --- /dev/null +++ b/doc/theme/material/.icons/material/clock-alert-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clock-alert.svg b/doc/theme/material/.icons/material/clock-alert.svg new file mode 100644 index 00000000..a3bb2172 --- /dev/null +++ b/doc/theme/material/.icons/material/clock-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clock-check-outline.svg b/doc/theme/material/.icons/material/clock-check-outline.svg new file mode 100644 index 00000000..d9fbf5b6 --- /dev/null +++ b/doc/theme/material/.icons/material/clock-check-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clock-check.svg b/doc/theme/material/.icons/material/clock-check.svg new file mode 100644 index 00000000..1611c1ef --- /dev/null +++ b/doc/theme/material/.icons/material/clock-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clock-digital.svg b/doc/theme/material/.icons/material/clock-digital.svg new file mode 100644 index 00000000..760936d7 --- /dev/null +++ b/doc/theme/material/.icons/material/clock-digital.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clock-end.svg b/doc/theme/material/.icons/material/clock-end.svg new file mode 100644 index 00000000..9c7a8b7b --- /dev/null +++ b/doc/theme/material/.icons/material/clock-end.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clock-fast.svg b/doc/theme/material/.icons/material/clock-fast.svg new file mode 100644 index 00000000..264625aa --- /dev/null +++ b/doc/theme/material/.icons/material/clock-fast.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clock-in.svg b/doc/theme/material/.icons/material/clock-in.svg new file mode 100644 index 00000000..7b70f7e3 --- /dev/null +++ b/doc/theme/material/.icons/material/clock-in.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clock-out.svg b/doc/theme/material/.icons/material/clock-out.svg new file mode 100644 index 00000000..4f38c8f2 --- /dev/null +++ b/doc/theme/material/.icons/material/clock-out.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clock-outline.svg b/doc/theme/material/.icons/material/clock-outline.svg new file mode 100644 index 00000000..7c722635 --- /dev/null +++ b/doc/theme/material/.icons/material/clock-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clock-start.svg b/doc/theme/material/.icons/material/clock-start.svg new file mode 100644 index 00000000..28da3882 --- /dev/null +++ b/doc/theme/material/.icons/material/clock-start.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clock.svg b/doc/theme/material/.icons/material/clock.svg new file mode 100644 index 00000000..b44f88ae --- /dev/null +++ b/doc/theme/material/.icons/material/clock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/close-box-multiple-outline.svg b/doc/theme/material/.icons/material/close-box-multiple-outline.svg new file mode 100644 index 00000000..2c16e12a --- /dev/null +++ b/doc/theme/material/.icons/material/close-box-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/close-box-multiple.svg b/doc/theme/material/.icons/material/close-box-multiple.svg new file mode 100644 index 00000000..0b81a597 --- /dev/null +++ b/doc/theme/material/.icons/material/close-box-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/close-box-outline.svg b/doc/theme/material/.icons/material/close-box-outline.svg new file mode 100644 index 00000000..0df25da8 --- /dev/null +++ b/doc/theme/material/.icons/material/close-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/close-box.svg b/doc/theme/material/.icons/material/close-box.svg new file mode 100644 index 00000000..182bb6dc --- /dev/null +++ b/doc/theme/material/.icons/material/close-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/close-circle-multiple-outline.svg b/doc/theme/material/.icons/material/close-circle-multiple-outline.svg new file mode 100644 index 00000000..407a1996 --- /dev/null +++ b/doc/theme/material/.icons/material/close-circle-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/close-circle-multiple.svg b/doc/theme/material/.icons/material/close-circle-multiple.svg new file mode 100644 index 00000000..71cc0b85 --- /dev/null +++ b/doc/theme/material/.icons/material/close-circle-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/close-circle-outline.svg b/doc/theme/material/.icons/material/close-circle-outline.svg new file mode 100644 index 00000000..05d6f711 --- /dev/null +++ b/doc/theme/material/.icons/material/close-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/close-circle.svg b/doc/theme/material/.icons/material/close-circle.svg new file mode 100644 index 00000000..7a6746ca --- /dev/null +++ b/doc/theme/material/.icons/material/close-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/close-network-outline.svg b/doc/theme/material/.icons/material/close-network-outline.svg new file mode 100644 index 00000000..292f0b2a --- /dev/null +++ b/doc/theme/material/.icons/material/close-network-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/close-network.svg b/doc/theme/material/.icons/material/close-network.svg new file mode 100644 index 00000000..d34b1f9f --- /dev/null +++ b/doc/theme/material/.icons/material/close-network.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/close-octagon-outline.svg b/doc/theme/material/.icons/material/close-octagon-outline.svg new file mode 100644 index 00000000..a705ee38 --- /dev/null +++ b/doc/theme/material/.icons/material/close-octagon-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/close-octagon.svg b/doc/theme/material/.icons/material/close-octagon.svg new file mode 100644 index 00000000..aa9a08f5 --- /dev/null +++ b/doc/theme/material/.icons/material/close-octagon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/close-outline.svg b/doc/theme/material/.icons/material/close-outline.svg new file mode 100644 index 00000000..63c17840 --- /dev/null +++ b/doc/theme/material/.icons/material/close-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/close-thick.svg b/doc/theme/material/.icons/material/close-thick.svg new file mode 100644 index 00000000..44d41fe4 --- /dev/null +++ b/doc/theme/material/.icons/material/close-thick.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/close.svg b/doc/theme/material/.icons/material/close.svg new file mode 100644 index 00000000..d6d792fb --- /dev/null +++ b/doc/theme/material/.icons/material/close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/closed-caption-outline.svg b/doc/theme/material/.icons/material/closed-caption-outline.svg new file mode 100644 index 00000000..b85044d8 --- /dev/null +++ b/doc/theme/material/.icons/material/closed-caption-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/closed-caption.svg b/doc/theme/material/.icons/material/closed-caption.svg new file mode 100644 index 00000000..9ea3333c --- /dev/null +++ b/doc/theme/material/.icons/material/closed-caption.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cloud-alert.svg b/doc/theme/material/.icons/material/cloud-alert.svg new file mode 100644 index 00000000..b5ff1e88 --- /dev/null +++ b/doc/theme/material/.icons/material/cloud-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cloud-braces.svg b/doc/theme/material/.icons/material/cloud-braces.svg new file mode 100644 index 00000000..fe5c02c7 --- /dev/null +++ b/doc/theme/material/.icons/material/cloud-braces.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cloud-check-outline.svg b/doc/theme/material/.icons/material/cloud-check-outline.svg new file mode 100644 index 00000000..9dc4b96d --- /dev/null +++ b/doc/theme/material/.icons/material/cloud-check-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cloud-check.svg b/doc/theme/material/.icons/material/cloud-check.svg new file mode 100644 index 00000000..f52702b2 --- /dev/null +++ b/doc/theme/material/.icons/material/cloud-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cloud-circle.svg b/doc/theme/material/.icons/material/cloud-circle.svg new file mode 100644 index 00000000..f6eab693 --- /dev/null +++ b/doc/theme/material/.icons/material/cloud-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cloud-download-outline.svg b/doc/theme/material/.icons/material/cloud-download-outline.svg new file mode 100644 index 00000000..7dc48810 --- /dev/null +++ b/doc/theme/material/.icons/material/cloud-download-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cloud-download.svg b/doc/theme/material/.icons/material/cloud-download.svg new file mode 100644 index 00000000..87e13faf --- /dev/null +++ b/doc/theme/material/.icons/material/cloud-download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cloud-lock-outline.svg b/doc/theme/material/.icons/material/cloud-lock-outline.svg new file mode 100644 index 00000000..446e0d51 --- /dev/null +++ b/doc/theme/material/.icons/material/cloud-lock-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cloud-lock.svg b/doc/theme/material/.icons/material/cloud-lock.svg new file mode 100644 index 00000000..532603a8 --- /dev/null +++ b/doc/theme/material/.icons/material/cloud-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cloud-off-outline.svg b/doc/theme/material/.icons/material/cloud-off-outline.svg new file mode 100644 index 00000000..9cdb8180 --- /dev/null +++ b/doc/theme/material/.icons/material/cloud-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cloud-outline.svg b/doc/theme/material/.icons/material/cloud-outline.svg new file mode 100644 index 00000000..3b1fcd38 --- /dev/null +++ b/doc/theme/material/.icons/material/cloud-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cloud-print-outline.svg b/doc/theme/material/.icons/material/cloud-print-outline.svg new file mode 100644 index 00000000..c93c872c --- /dev/null +++ b/doc/theme/material/.icons/material/cloud-print-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cloud-print.svg b/doc/theme/material/.icons/material/cloud-print.svg new file mode 100644 index 00000000..3f692280 --- /dev/null +++ b/doc/theme/material/.icons/material/cloud-print.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cloud-question.svg b/doc/theme/material/.icons/material/cloud-question.svg new file mode 100644 index 00000000..119218a4 --- /dev/null +++ b/doc/theme/material/.icons/material/cloud-question.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cloud-refresh.svg b/doc/theme/material/.icons/material/cloud-refresh.svg new file mode 100644 index 00000000..df7f43fe --- /dev/null +++ b/doc/theme/material/.icons/material/cloud-refresh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cloud-search-outline.svg b/doc/theme/material/.icons/material/cloud-search-outline.svg new file mode 100644 index 00000000..ffd5887b --- /dev/null +++ b/doc/theme/material/.icons/material/cloud-search-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cloud-search.svg b/doc/theme/material/.icons/material/cloud-search.svg new file mode 100644 index 00000000..6f61a53d --- /dev/null +++ b/doc/theme/material/.icons/material/cloud-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cloud-sync-outline.svg b/doc/theme/material/.icons/material/cloud-sync-outline.svg new file mode 100644 index 00000000..0c09ef8c --- /dev/null +++ b/doc/theme/material/.icons/material/cloud-sync-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cloud-sync.svg b/doc/theme/material/.icons/material/cloud-sync.svg new file mode 100644 index 00000000..3e38c902 --- /dev/null +++ b/doc/theme/material/.icons/material/cloud-sync.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cloud-tags.svg b/doc/theme/material/.icons/material/cloud-tags.svg new file mode 100644 index 00000000..92821932 --- /dev/null +++ b/doc/theme/material/.icons/material/cloud-tags.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cloud-upload-outline.svg b/doc/theme/material/.icons/material/cloud-upload-outline.svg new file mode 100644 index 00000000..a2b946ee --- /dev/null +++ b/doc/theme/material/.icons/material/cloud-upload-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cloud-upload.svg b/doc/theme/material/.icons/material/cloud-upload.svg new file mode 100644 index 00000000..d06549a6 --- /dev/null +++ b/doc/theme/material/.icons/material/cloud-upload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cloud.svg b/doc/theme/material/.icons/material/cloud.svg new file mode 100644 index 00000000..ce1396e1 --- /dev/null +++ b/doc/theme/material/.icons/material/cloud.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/clover.svg b/doc/theme/material/.icons/material/clover.svg new file mode 100644 index 00000000..f1a696e2 --- /dev/null +++ b/doc/theme/material/.icons/material/clover.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/coach-lamp.svg b/doc/theme/material/.icons/material/coach-lamp.svg new file mode 100644 index 00000000..bc272bcd --- /dev/null +++ b/doc/theme/material/.icons/material/coach-lamp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/coat-rack.svg b/doc/theme/material/.icons/material/coat-rack.svg new file mode 100644 index 00000000..c5df2c16 --- /dev/null +++ b/doc/theme/material/.icons/material/coat-rack.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/code-array.svg b/doc/theme/material/.icons/material/code-array.svg new file mode 100644 index 00000000..2d559ac1 --- /dev/null +++ b/doc/theme/material/.icons/material/code-array.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/code-braces-box.svg b/doc/theme/material/.icons/material/code-braces-box.svg new file mode 100644 index 00000000..7c9fbee8 --- /dev/null +++ b/doc/theme/material/.icons/material/code-braces-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/code-braces.svg b/doc/theme/material/.icons/material/code-braces.svg new file mode 100644 index 00000000..0e6661c7 --- /dev/null +++ b/doc/theme/material/.icons/material/code-braces.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/code-brackets.svg b/doc/theme/material/.icons/material/code-brackets.svg new file mode 100644 index 00000000..58659528 --- /dev/null +++ b/doc/theme/material/.icons/material/code-brackets.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/code-equal.svg b/doc/theme/material/.icons/material/code-equal.svg new file mode 100644 index 00000000..73d28bda --- /dev/null +++ b/doc/theme/material/.icons/material/code-equal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/code-greater-than-or-equal.svg b/doc/theme/material/.icons/material/code-greater-than-or-equal.svg new file mode 100644 index 00000000..6c23ec7e --- /dev/null +++ b/doc/theme/material/.icons/material/code-greater-than-or-equal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/code-greater-than.svg b/doc/theme/material/.icons/material/code-greater-than.svg new file mode 100644 index 00000000..0b47fafb --- /dev/null +++ b/doc/theme/material/.icons/material/code-greater-than.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/code-json.svg b/doc/theme/material/.icons/material/code-json.svg new file mode 100644 index 00000000..a2147502 --- /dev/null +++ b/doc/theme/material/.icons/material/code-json.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/code-less-than-or-equal.svg b/doc/theme/material/.icons/material/code-less-than-or-equal.svg new file mode 100644 index 00000000..c5bf93bc --- /dev/null +++ b/doc/theme/material/.icons/material/code-less-than-or-equal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/code-less-than.svg b/doc/theme/material/.icons/material/code-less-than.svg new file mode 100644 index 00000000..c73b2290 --- /dev/null +++ b/doc/theme/material/.icons/material/code-less-than.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/code-not-equal-variant.svg b/doc/theme/material/.icons/material/code-not-equal-variant.svg new file mode 100644 index 00000000..d9723126 --- /dev/null +++ b/doc/theme/material/.icons/material/code-not-equal-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/code-not-equal.svg b/doc/theme/material/.icons/material/code-not-equal.svg new file mode 100644 index 00000000..ffde464c --- /dev/null +++ b/doc/theme/material/.icons/material/code-not-equal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/code-parentheses-box.svg b/doc/theme/material/.icons/material/code-parentheses-box.svg new file mode 100644 index 00000000..42ab3d20 --- /dev/null +++ b/doc/theme/material/.icons/material/code-parentheses-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/code-parentheses.svg b/doc/theme/material/.icons/material/code-parentheses.svg new file mode 100644 index 00000000..c37eaf17 --- /dev/null +++ b/doc/theme/material/.icons/material/code-parentheses.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/code-string.svg b/doc/theme/material/.icons/material/code-string.svg new file mode 100644 index 00000000..6a8d3195 --- /dev/null +++ b/doc/theme/material/.icons/material/code-string.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/code-tags-check.svg b/doc/theme/material/.icons/material/code-tags-check.svg new file mode 100644 index 00000000..44900905 --- /dev/null +++ b/doc/theme/material/.icons/material/code-tags-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/code-tags.svg b/doc/theme/material/.icons/material/code-tags.svg new file mode 100644 index 00000000..344e3715 --- /dev/null +++ b/doc/theme/material/.icons/material/code-tags.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/codepen.svg b/doc/theme/material/.icons/material/codepen.svg new file mode 100644 index 00000000..acd29441 --- /dev/null +++ b/doc/theme/material/.icons/material/codepen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/coffee-maker.svg b/doc/theme/material/.icons/material/coffee-maker.svg new file mode 100644 index 00000000..36090f79 --- /dev/null +++ b/doc/theme/material/.icons/material/coffee-maker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/coffee-off-outline.svg b/doc/theme/material/.icons/material/coffee-off-outline.svg new file mode 100644 index 00000000..221053a2 --- /dev/null +++ b/doc/theme/material/.icons/material/coffee-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/coffee-off.svg b/doc/theme/material/.icons/material/coffee-off.svg new file mode 100644 index 00000000..5b3c6682 --- /dev/null +++ b/doc/theme/material/.icons/material/coffee-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/coffee-outline.svg b/doc/theme/material/.icons/material/coffee-outline.svg new file mode 100644 index 00000000..91276153 --- /dev/null +++ b/doc/theme/material/.icons/material/coffee-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/coffee-to-go-outline.svg b/doc/theme/material/.icons/material/coffee-to-go-outline.svg new file mode 100644 index 00000000..cedf7b7d --- /dev/null +++ b/doc/theme/material/.icons/material/coffee-to-go-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/coffee-to-go.svg b/doc/theme/material/.icons/material/coffee-to-go.svg new file mode 100644 index 00000000..657e11e5 --- /dev/null +++ b/doc/theme/material/.icons/material/coffee-to-go.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/coffee.svg b/doc/theme/material/.icons/material/coffee.svg new file mode 100644 index 00000000..00ce83f5 --- /dev/null +++ b/doc/theme/material/.icons/material/coffee.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/coffin.svg b/doc/theme/material/.icons/material/coffin.svg new file mode 100644 index 00000000..894721dc --- /dev/null +++ b/doc/theme/material/.icons/material/coffin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cog-box.svg b/doc/theme/material/.icons/material/cog-box.svg new file mode 100644 index 00000000..1171906c --- /dev/null +++ b/doc/theme/material/.icons/material/cog-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cog-clockwise.svg b/doc/theme/material/.icons/material/cog-clockwise.svg new file mode 100644 index 00000000..0a81cf1c --- /dev/null +++ b/doc/theme/material/.icons/material/cog-clockwise.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cog-counterclockwise.svg b/doc/theme/material/.icons/material/cog-counterclockwise.svg new file mode 100644 index 00000000..b75bc9d1 --- /dev/null +++ b/doc/theme/material/.icons/material/cog-counterclockwise.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cog-off-outline.svg b/doc/theme/material/.icons/material/cog-off-outline.svg new file mode 100644 index 00000000..7bf4481b --- /dev/null +++ b/doc/theme/material/.icons/material/cog-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cog-off.svg b/doc/theme/material/.icons/material/cog-off.svg new file mode 100644 index 00000000..1a621447 --- /dev/null +++ b/doc/theme/material/.icons/material/cog-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cog-outline.svg b/doc/theme/material/.icons/material/cog-outline.svg new file mode 100644 index 00000000..d09ba734 --- /dev/null +++ b/doc/theme/material/.icons/material/cog-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cog-transfer-outline.svg b/doc/theme/material/.icons/material/cog-transfer-outline.svg new file mode 100644 index 00000000..973fec89 --- /dev/null +++ b/doc/theme/material/.icons/material/cog-transfer-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cog-transfer.svg b/doc/theme/material/.icons/material/cog-transfer.svg new file mode 100644 index 00000000..53591317 --- /dev/null +++ b/doc/theme/material/.icons/material/cog-transfer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cog.svg b/doc/theme/material/.icons/material/cog.svg new file mode 100644 index 00000000..5657c3f8 --- /dev/null +++ b/doc/theme/material/.icons/material/cog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cogs.svg b/doc/theme/material/.icons/material/cogs.svg new file mode 100644 index 00000000..c4590054 --- /dev/null +++ b/doc/theme/material/.icons/material/cogs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/collage.svg b/doc/theme/material/.icons/material/collage.svg new file mode 100644 index 00000000..bab0f2f9 --- /dev/null +++ b/doc/theme/material/.icons/material/collage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/collapse-all-outline.svg b/doc/theme/material/.icons/material/collapse-all-outline.svg new file mode 100644 index 00000000..ab641059 --- /dev/null +++ b/doc/theme/material/.icons/material/collapse-all-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/collapse-all.svg b/doc/theme/material/.icons/material/collapse-all.svg new file mode 100644 index 00000000..bdbf2360 --- /dev/null +++ b/doc/theme/material/.icons/material/collapse-all.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/color-helper.svg b/doc/theme/material/.icons/material/color-helper.svg new file mode 100644 index 00000000..66028b36 --- /dev/null +++ b/doc/theme/material/.icons/material/color-helper.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comma-box-outline.svg b/doc/theme/material/.icons/material/comma-box-outline.svg new file mode 100644 index 00000000..0f749193 --- /dev/null +++ b/doc/theme/material/.icons/material/comma-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comma-box.svg b/doc/theme/material/.icons/material/comma-box.svg new file mode 100644 index 00000000..42a1c843 --- /dev/null +++ b/doc/theme/material/.icons/material/comma-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comma-circle-outline.svg b/doc/theme/material/.icons/material/comma-circle-outline.svg new file mode 100644 index 00000000..730ced5b --- /dev/null +++ b/doc/theme/material/.icons/material/comma-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comma-circle.svg b/doc/theme/material/.icons/material/comma-circle.svg new file mode 100644 index 00000000..5ee9da70 --- /dev/null +++ b/doc/theme/material/.icons/material/comma-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comma.svg b/doc/theme/material/.icons/material/comma.svg new file mode 100644 index 00000000..4c79c345 --- /dev/null +++ b/doc/theme/material/.icons/material/comma.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-account-outline.svg b/doc/theme/material/.icons/material/comment-account-outline.svg new file mode 100644 index 00000000..2b04682a --- /dev/null +++ b/doc/theme/material/.icons/material/comment-account-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-account.svg b/doc/theme/material/.icons/material/comment-account.svg new file mode 100644 index 00000000..d77e5e1f --- /dev/null +++ b/doc/theme/material/.icons/material/comment-account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-alert-outline.svg b/doc/theme/material/.icons/material/comment-alert-outline.svg new file mode 100644 index 00000000..79b4cd2e --- /dev/null +++ b/doc/theme/material/.icons/material/comment-alert-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-alert.svg b/doc/theme/material/.icons/material/comment-alert.svg new file mode 100644 index 00000000..fba28163 --- /dev/null +++ b/doc/theme/material/.icons/material/comment-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-arrow-left-outline.svg b/doc/theme/material/.icons/material/comment-arrow-left-outline.svg new file mode 100644 index 00000000..a888547e --- /dev/null +++ b/doc/theme/material/.icons/material/comment-arrow-left-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-arrow-left.svg b/doc/theme/material/.icons/material/comment-arrow-left.svg new file mode 100644 index 00000000..ff7c340d --- /dev/null +++ b/doc/theme/material/.icons/material/comment-arrow-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-arrow-right-outline.svg b/doc/theme/material/.icons/material/comment-arrow-right-outline.svg new file mode 100644 index 00000000..e1aedfd4 --- /dev/null +++ b/doc/theme/material/.icons/material/comment-arrow-right-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-arrow-right.svg b/doc/theme/material/.icons/material/comment-arrow-right.svg new file mode 100644 index 00000000..5d2f9788 --- /dev/null +++ b/doc/theme/material/.icons/material/comment-arrow-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-check-outline.svg b/doc/theme/material/.icons/material/comment-check-outline.svg new file mode 100644 index 00000000..bf3b1a95 --- /dev/null +++ b/doc/theme/material/.icons/material/comment-check-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-check.svg b/doc/theme/material/.icons/material/comment-check.svg new file mode 100644 index 00000000..5fb7e180 --- /dev/null +++ b/doc/theme/material/.icons/material/comment-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-edit-outline.svg b/doc/theme/material/.icons/material/comment-edit-outline.svg new file mode 100644 index 00000000..d8b769a9 --- /dev/null +++ b/doc/theme/material/.icons/material/comment-edit-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-edit.svg b/doc/theme/material/.icons/material/comment-edit.svg new file mode 100644 index 00000000..de41ccb6 --- /dev/null +++ b/doc/theme/material/.icons/material/comment-edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-eye-outline.svg b/doc/theme/material/.icons/material/comment-eye-outline.svg new file mode 100644 index 00000000..877a3633 --- /dev/null +++ b/doc/theme/material/.icons/material/comment-eye-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-eye.svg b/doc/theme/material/.icons/material/comment-eye.svg new file mode 100644 index 00000000..75e428d0 --- /dev/null +++ b/doc/theme/material/.icons/material/comment-eye.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-multiple-outline.svg b/doc/theme/material/.icons/material/comment-multiple-outline.svg new file mode 100644 index 00000000..d6d4b874 --- /dev/null +++ b/doc/theme/material/.icons/material/comment-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-multiple.svg b/doc/theme/material/.icons/material/comment-multiple.svg new file mode 100644 index 00000000..d7ede45f --- /dev/null +++ b/doc/theme/material/.icons/material/comment-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-outline.svg b/doc/theme/material/.icons/material/comment-outline.svg new file mode 100644 index 00000000..edef540b --- /dev/null +++ b/doc/theme/material/.icons/material/comment-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-plus-outline.svg b/doc/theme/material/.icons/material/comment-plus-outline.svg new file mode 100644 index 00000000..53a0d8c6 --- /dev/null +++ b/doc/theme/material/.icons/material/comment-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-plus.svg b/doc/theme/material/.icons/material/comment-plus.svg new file mode 100644 index 00000000..0f24d9b2 --- /dev/null +++ b/doc/theme/material/.icons/material/comment-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-processing-outline.svg b/doc/theme/material/.icons/material/comment-processing-outline.svg new file mode 100644 index 00000000..5a805aa0 --- /dev/null +++ b/doc/theme/material/.icons/material/comment-processing-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-processing.svg b/doc/theme/material/.icons/material/comment-processing.svg new file mode 100644 index 00000000..78ecc842 --- /dev/null +++ b/doc/theme/material/.icons/material/comment-processing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-question-outline.svg b/doc/theme/material/.icons/material/comment-question-outline.svg new file mode 100644 index 00000000..7a54acb7 --- /dev/null +++ b/doc/theme/material/.icons/material/comment-question-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-question.svg b/doc/theme/material/.icons/material/comment-question.svg new file mode 100644 index 00000000..f66c28c8 --- /dev/null +++ b/doc/theme/material/.icons/material/comment-question.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-quote-outline.svg b/doc/theme/material/.icons/material/comment-quote-outline.svg new file mode 100644 index 00000000..c9b87519 --- /dev/null +++ b/doc/theme/material/.icons/material/comment-quote-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-quote.svg b/doc/theme/material/.icons/material/comment-quote.svg new file mode 100644 index 00000000..212fc1d9 --- /dev/null +++ b/doc/theme/material/.icons/material/comment-quote.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-remove-outline.svg b/doc/theme/material/.icons/material/comment-remove-outline.svg new file mode 100644 index 00000000..2f602f1b --- /dev/null +++ b/doc/theme/material/.icons/material/comment-remove-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-remove.svg b/doc/theme/material/.icons/material/comment-remove.svg new file mode 100644 index 00000000..175076c0 --- /dev/null +++ b/doc/theme/material/.icons/material/comment-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-search-outline.svg b/doc/theme/material/.icons/material/comment-search-outline.svg new file mode 100644 index 00000000..73f61707 --- /dev/null +++ b/doc/theme/material/.icons/material/comment-search-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-search.svg b/doc/theme/material/.icons/material/comment-search.svg new file mode 100644 index 00000000..ec7a40eb --- /dev/null +++ b/doc/theme/material/.icons/material/comment-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-text-multiple-outline.svg b/doc/theme/material/.icons/material/comment-text-multiple-outline.svg new file mode 100644 index 00000000..4751e4d8 --- /dev/null +++ b/doc/theme/material/.icons/material/comment-text-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-text-multiple.svg b/doc/theme/material/.icons/material/comment-text-multiple.svg new file mode 100644 index 00000000..5ccef380 --- /dev/null +++ b/doc/theme/material/.icons/material/comment-text-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-text-outline.svg b/doc/theme/material/.icons/material/comment-text-outline.svg new file mode 100644 index 00000000..0572a92c --- /dev/null +++ b/doc/theme/material/.icons/material/comment-text-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment-text.svg b/doc/theme/material/.icons/material/comment-text.svg new file mode 100644 index 00000000..e8a8f488 --- /dev/null +++ b/doc/theme/material/.icons/material/comment-text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/comment.svg b/doc/theme/material/.icons/material/comment.svg new file mode 100644 index 00000000..3273d4b5 --- /dev/null +++ b/doc/theme/material/.icons/material/comment.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/compare.svg b/doc/theme/material/.icons/material/compare.svg new file mode 100644 index 00000000..2b837511 --- /dev/null +++ b/doc/theme/material/.icons/material/compare.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/compass-off-outline.svg b/doc/theme/material/.icons/material/compass-off-outline.svg new file mode 100644 index 00000000..087533d5 --- /dev/null +++ b/doc/theme/material/.icons/material/compass-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/compass-off.svg b/doc/theme/material/.icons/material/compass-off.svg new file mode 100644 index 00000000..4e1fd6dd --- /dev/null +++ b/doc/theme/material/.icons/material/compass-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/compass-outline.svg b/doc/theme/material/.icons/material/compass-outline.svg new file mode 100644 index 00000000..c3349538 --- /dev/null +++ b/doc/theme/material/.icons/material/compass-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/compass-rose.svg b/doc/theme/material/.icons/material/compass-rose.svg new file mode 100644 index 00000000..9cd9032b --- /dev/null +++ b/doc/theme/material/.icons/material/compass-rose.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/compass.svg b/doc/theme/material/.icons/material/compass.svg new file mode 100644 index 00000000..eee8f9c0 --- /dev/null +++ b/doc/theme/material/.icons/material/compass.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/concourse-ci.svg b/doc/theme/material/.icons/material/concourse-ci.svg new file mode 100644 index 00000000..368e7848 --- /dev/null +++ b/doc/theme/material/.icons/material/concourse-ci.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/console-line.svg b/doc/theme/material/.icons/material/console-line.svg new file mode 100644 index 00000000..9c1aa315 --- /dev/null +++ b/doc/theme/material/.icons/material/console-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/console-network-outline.svg b/doc/theme/material/.icons/material/console-network-outline.svg new file mode 100644 index 00000000..9f1b8537 --- /dev/null +++ b/doc/theme/material/.icons/material/console-network-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/console-network.svg b/doc/theme/material/.icons/material/console-network.svg new file mode 100644 index 00000000..657de4bd --- /dev/null +++ b/doc/theme/material/.icons/material/console-network.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/console.svg b/doc/theme/material/.icons/material/console.svg new file mode 100644 index 00000000..f2e532d2 --- /dev/null +++ b/doc/theme/material/.icons/material/console.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/consolidate.svg b/doc/theme/material/.icons/material/consolidate.svg new file mode 100644 index 00000000..15cca12f --- /dev/null +++ b/doc/theme/material/.icons/material/consolidate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/contactless-payment-circle-outline.svg b/doc/theme/material/.icons/material/contactless-payment-circle-outline.svg new file mode 100644 index 00000000..4959ce9c --- /dev/null +++ b/doc/theme/material/.icons/material/contactless-payment-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/contactless-payment-circle.svg b/doc/theme/material/.icons/material/contactless-payment-circle.svg new file mode 100644 index 00000000..87c955a4 --- /dev/null +++ b/doc/theme/material/.icons/material/contactless-payment-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/contactless-payment.svg b/doc/theme/material/.icons/material/contactless-payment.svg new file mode 100644 index 00000000..e51e1c64 --- /dev/null +++ b/doc/theme/material/.icons/material/contactless-payment.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/contacts-outline.svg b/doc/theme/material/.icons/material/contacts-outline.svg new file mode 100644 index 00000000..c9ffbe36 --- /dev/null +++ b/doc/theme/material/.icons/material/contacts-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/contacts.svg b/doc/theme/material/.icons/material/contacts.svg new file mode 100644 index 00000000..dd04860d --- /dev/null +++ b/doc/theme/material/.icons/material/contacts.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/contain-end.svg b/doc/theme/material/.icons/material/contain-end.svg new file mode 100644 index 00000000..c2d8e6b4 --- /dev/null +++ b/doc/theme/material/.icons/material/contain-end.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/contain-start.svg b/doc/theme/material/.icons/material/contain-start.svg new file mode 100644 index 00000000..cb48a2d8 --- /dev/null +++ b/doc/theme/material/.icons/material/contain-start.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/contain.svg b/doc/theme/material/.icons/material/contain.svg new file mode 100644 index 00000000..e1a318dd --- /dev/null +++ b/doc/theme/material/.icons/material/contain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/content-copy.svg b/doc/theme/material/.icons/material/content-copy.svg new file mode 100644 index 00000000..75de8edd --- /dev/null +++ b/doc/theme/material/.icons/material/content-copy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/content-cut.svg b/doc/theme/material/.icons/material/content-cut.svg new file mode 100644 index 00000000..a8bd9eeb --- /dev/null +++ b/doc/theme/material/.icons/material/content-cut.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/content-duplicate.svg b/doc/theme/material/.icons/material/content-duplicate.svg new file mode 100644 index 00000000..b06933aa --- /dev/null +++ b/doc/theme/material/.icons/material/content-duplicate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/content-paste.svg b/doc/theme/material/.icons/material/content-paste.svg new file mode 100644 index 00000000..783f7529 --- /dev/null +++ b/doc/theme/material/.icons/material/content-paste.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/content-save-alert-outline.svg b/doc/theme/material/.icons/material/content-save-alert-outline.svg new file mode 100644 index 00000000..d4da4e87 --- /dev/null +++ b/doc/theme/material/.icons/material/content-save-alert-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/content-save-alert.svg b/doc/theme/material/.icons/material/content-save-alert.svg new file mode 100644 index 00000000..c8bd931a --- /dev/null +++ b/doc/theme/material/.icons/material/content-save-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/content-save-all-outline.svg b/doc/theme/material/.icons/material/content-save-all-outline.svg new file mode 100644 index 00000000..489c9bbb --- /dev/null +++ b/doc/theme/material/.icons/material/content-save-all-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/content-save-all.svg b/doc/theme/material/.icons/material/content-save-all.svg new file mode 100644 index 00000000..28decfc9 --- /dev/null +++ b/doc/theme/material/.icons/material/content-save-all.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/content-save-edit-outline.svg b/doc/theme/material/.icons/material/content-save-edit-outline.svg new file mode 100644 index 00000000..fcd0404c --- /dev/null +++ b/doc/theme/material/.icons/material/content-save-edit-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/content-save-edit.svg b/doc/theme/material/.icons/material/content-save-edit.svg new file mode 100644 index 00000000..4f85721f --- /dev/null +++ b/doc/theme/material/.icons/material/content-save-edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/content-save-move-outline.svg b/doc/theme/material/.icons/material/content-save-move-outline.svg new file mode 100644 index 00000000..ffe9221a --- /dev/null +++ b/doc/theme/material/.icons/material/content-save-move-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/content-save-move.svg b/doc/theme/material/.icons/material/content-save-move.svg new file mode 100644 index 00000000..d857ab12 --- /dev/null +++ b/doc/theme/material/.icons/material/content-save-move.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/content-save-outline.svg b/doc/theme/material/.icons/material/content-save-outline.svg new file mode 100644 index 00000000..3ba1d25d --- /dev/null +++ b/doc/theme/material/.icons/material/content-save-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/content-save-settings-outline.svg b/doc/theme/material/.icons/material/content-save-settings-outline.svg new file mode 100644 index 00000000..fd52204c --- /dev/null +++ b/doc/theme/material/.icons/material/content-save-settings-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/content-save-settings.svg b/doc/theme/material/.icons/material/content-save-settings.svg new file mode 100644 index 00000000..eed86436 --- /dev/null +++ b/doc/theme/material/.icons/material/content-save-settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/content-save.svg b/doc/theme/material/.icons/material/content-save.svg new file mode 100644 index 00000000..89f20542 --- /dev/null +++ b/doc/theme/material/.icons/material/content-save.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/contrast-box.svg b/doc/theme/material/.icons/material/contrast-box.svg new file mode 100644 index 00000000..9bf4998b --- /dev/null +++ b/doc/theme/material/.icons/material/contrast-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/contrast-circle.svg b/doc/theme/material/.icons/material/contrast-circle.svg new file mode 100644 index 00000000..aec5cb8f --- /dev/null +++ b/doc/theme/material/.icons/material/contrast-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/contrast.svg b/doc/theme/material/.icons/material/contrast.svg new file mode 100644 index 00000000..f3a970bf --- /dev/null +++ b/doc/theme/material/.icons/material/contrast.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/controller-classic-outline.svg b/doc/theme/material/.icons/material/controller-classic-outline.svg new file mode 100644 index 00000000..4ae61402 --- /dev/null +++ b/doc/theme/material/.icons/material/controller-classic-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/controller-classic.svg b/doc/theme/material/.icons/material/controller-classic.svg new file mode 100644 index 00000000..abd68dfb --- /dev/null +++ b/doc/theme/material/.icons/material/controller-classic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cookie.svg b/doc/theme/material/.icons/material/cookie.svg new file mode 100644 index 00000000..654edc46 --- /dev/null +++ b/doc/theme/material/.icons/material/cookie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/coolant-temperature.svg b/doc/theme/material/.icons/material/coolant-temperature.svg new file mode 100644 index 00000000..67164759 --- /dev/null +++ b/doc/theme/material/.icons/material/coolant-temperature.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/copyright.svg b/doc/theme/material/.icons/material/copyright.svg new file mode 100644 index 00000000..26195051 --- /dev/null +++ b/doc/theme/material/.icons/material/copyright.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cordova.svg b/doc/theme/material/.icons/material/cordova.svg new file mode 100644 index 00000000..688cc37c --- /dev/null +++ b/doc/theme/material/.icons/material/cordova.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/corn-off.svg b/doc/theme/material/.icons/material/corn-off.svg new file mode 100644 index 00000000..51c1dfb1 --- /dev/null +++ b/doc/theme/material/.icons/material/corn-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/corn.svg b/doc/theme/material/.icons/material/corn.svg new file mode 100644 index 00000000..9fcfd812 --- /dev/null +++ b/doc/theme/material/.icons/material/corn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/counter.svg b/doc/theme/material/.icons/material/counter.svg new file mode 100644 index 00000000..5634b4eb --- /dev/null +++ b/doc/theme/material/.icons/material/counter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cow.svg b/doc/theme/material/.icons/material/cow.svg new file mode 100644 index 00000000..d1844e3e --- /dev/null +++ b/doc/theme/material/.icons/material/cow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cpu-32-bit.svg b/doc/theme/material/.icons/material/cpu-32-bit.svg new file mode 100644 index 00000000..839d6bbe --- /dev/null +++ b/doc/theme/material/.icons/material/cpu-32-bit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cpu-64-bit.svg b/doc/theme/material/.icons/material/cpu-64-bit.svg new file mode 100644 index 00000000..329e24a5 --- /dev/null +++ b/doc/theme/material/.icons/material/cpu-64-bit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/crane.svg b/doc/theme/material/.icons/material/crane.svg new file mode 100644 index 00000000..889964ac --- /dev/null +++ b/doc/theme/material/.icons/material/crane.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/creation.svg b/doc/theme/material/.icons/material/creation.svg new file mode 100644 index 00000000..2980b85b --- /dev/null +++ b/doc/theme/material/.icons/material/creation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/creative-commons.svg b/doc/theme/material/.icons/material/creative-commons.svg new file mode 100644 index 00000000..f4b26d2a --- /dev/null +++ b/doc/theme/material/.icons/material/creative-commons.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/credit-card-check-outline.svg b/doc/theme/material/.icons/material/credit-card-check-outline.svg new file mode 100644 index 00000000..186aebca --- /dev/null +++ b/doc/theme/material/.icons/material/credit-card-check-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/credit-card-check.svg b/doc/theme/material/.icons/material/credit-card-check.svg new file mode 100644 index 00000000..5ebd36a9 --- /dev/null +++ b/doc/theme/material/.icons/material/credit-card-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/credit-card-clock-outline.svg b/doc/theme/material/.icons/material/credit-card-clock-outline.svg new file mode 100644 index 00000000..d3b80345 --- /dev/null +++ b/doc/theme/material/.icons/material/credit-card-clock-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/credit-card-clock.svg b/doc/theme/material/.icons/material/credit-card-clock.svg new file mode 100644 index 00000000..91688e57 --- /dev/null +++ b/doc/theme/material/.icons/material/credit-card-clock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/credit-card-marker-outline.svg b/doc/theme/material/.icons/material/credit-card-marker-outline.svg new file mode 100644 index 00000000..bb6cb825 --- /dev/null +++ b/doc/theme/material/.icons/material/credit-card-marker-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/credit-card-marker.svg b/doc/theme/material/.icons/material/credit-card-marker.svg new file mode 100644 index 00000000..52bfcb76 --- /dev/null +++ b/doc/theme/material/.icons/material/credit-card-marker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/credit-card-minus-outline.svg b/doc/theme/material/.icons/material/credit-card-minus-outline.svg new file mode 100644 index 00000000..660c2025 --- /dev/null +++ b/doc/theme/material/.icons/material/credit-card-minus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/credit-card-minus.svg b/doc/theme/material/.icons/material/credit-card-minus.svg new file mode 100644 index 00000000..d8236030 --- /dev/null +++ b/doc/theme/material/.icons/material/credit-card-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/credit-card-multiple-outline.svg b/doc/theme/material/.icons/material/credit-card-multiple-outline.svg new file mode 100644 index 00000000..00b9366f --- /dev/null +++ b/doc/theme/material/.icons/material/credit-card-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/credit-card-multiple.svg b/doc/theme/material/.icons/material/credit-card-multiple.svg new file mode 100644 index 00000000..dde612c9 --- /dev/null +++ b/doc/theme/material/.icons/material/credit-card-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/credit-card-off-outline.svg b/doc/theme/material/.icons/material/credit-card-off-outline.svg new file mode 100644 index 00000000..212e4600 --- /dev/null +++ b/doc/theme/material/.icons/material/credit-card-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/credit-card-off.svg b/doc/theme/material/.icons/material/credit-card-off.svg new file mode 100644 index 00000000..a9994dcb --- /dev/null +++ b/doc/theme/material/.icons/material/credit-card-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/credit-card-outline.svg b/doc/theme/material/.icons/material/credit-card-outline.svg new file mode 100644 index 00000000..5374aa23 --- /dev/null +++ b/doc/theme/material/.icons/material/credit-card-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/credit-card-plus-outline.svg b/doc/theme/material/.icons/material/credit-card-plus-outline.svg new file mode 100644 index 00000000..b1d512f3 --- /dev/null +++ b/doc/theme/material/.icons/material/credit-card-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/credit-card-plus.svg b/doc/theme/material/.icons/material/credit-card-plus.svg new file mode 100644 index 00000000..876ed275 --- /dev/null +++ b/doc/theme/material/.icons/material/credit-card-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/credit-card-refund-outline.svg b/doc/theme/material/.icons/material/credit-card-refund-outline.svg new file mode 100644 index 00000000..3d990026 --- /dev/null +++ b/doc/theme/material/.icons/material/credit-card-refund-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/credit-card-refund.svg b/doc/theme/material/.icons/material/credit-card-refund.svg new file mode 100644 index 00000000..81b2b649 --- /dev/null +++ b/doc/theme/material/.icons/material/credit-card-refund.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/credit-card-remove-outline.svg b/doc/theme/material/.icons/material/credit-card-remove-outline.svg new file mode 100644 index 00000000..4d1c592e --- /dev/null +++ b/doc/theme/material/.icons/material/credit-card-remove-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/credit-card-remove.svg b/doc/theme/material/.icons/material/credit-card-remove.svg new file mode 100644 index 00000000..f80c1e76 --- /dev/null +++ b/doc/theme/material/.icons/material/credit-card-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/credit-card-scan-outline.svg b/doc/theme/material/.icons/material/credit-card-scan-outline.svg new file mode 100644 index 00000000..c573efb9 --- /dev/null +++ b/doc/theme/material/.icons/material/credit-card-scan-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/credit-card-scan.svg b/doc/theme/material/.icons/material/credit-card-scan.svg new file mode 100644 index 00000000..34783764 --- /dev/null +++ b/doc/theme/material/.icons/material/credit-card-scan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/credit-card-settings-outline.svg b/doc/theme/material/.icons/material/credit-card-settings-outline.svg new file mode 100644 index 00000000..d9556575 --- /dev/null +++ b/doc/theme/material/.icons/material/credit-card-settings-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/credit-card-settings.svg b/doc/theme/material/.icons/material/credit-card-settings.svg new file mode 100644 index 00000000..3f91768f --- /dev/null +++ b/doc/theme/material/.icons/material/credit-card-settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/credit-card-wireless-off-outline.svg b/doc/theme/material/.icons/material/credit-card-wireless-off-outline.svg new file mode 100644 index 00000000..9b8f9acd --- /dev/null +++ b/doc/theme/material/.icons/material/credit-card-wireless-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/credit-card-wireless-off.svg b/doc/theme/material/.icons/material/credit-card-wireless-off.svg new file mode 100644 index 00000000..0a26274c --- /dev/null +++ b/doc/theme/material/.icons/material/credit-card-wireless-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/credit-card-wireless-outline.svg b/doc/theme/material/.icons/material/credit-card-wireless-outline.svg new file mode 100644 index 00000000..9ac64614 --- /dev/null +++ b/doc/theme/material/.icons/material/credit-card-wireless-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/credit-card-wireless.svg b/doc/theme/material/.icons/material/credit-card-wireless.svg new file mode 100644 index 00000000..8257842d --- /dev/null +++ b/doc/theme/material/.icons/material/credit-card-wireless.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/credit-card.svg b/doc/theme/material/.icons/material/credit-card.svg new file mode 100644 index 00000000..52d2087d --- /dev/null +++ b/doc/theme/material/.icons/material/credit-card.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cricket.svg b/doc/theme/material/.icons/material/cricket.svg new file mode 100644 index 00000000..7b89283e --- /dev/null +++ b/doc/theme/material/.icons/material/cricket.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/crop-free.svg b/doc/theme/material/.icons/material/crop-free.svg new file mode 100644 index 00000000..f8bf59f9 --- /dev/null +++ b/doc/theme/material/.icons/material/crop-free.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/crop-landscape.svg b/doc/theme/material/.icons/material/crop-landscape.svg new file mode 100644 index 00000000..4480ae5f --- /dev/null +++ b/doc/theme/material/.icons/material/crop-landscape.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/crop-portrait.svg b/doc/theme/material/.icons/material/crop-portrait.svg new file mode 100644 index 00000000..171db11b --- /dev/null +++ b/doc/theme/material/.icons/material/crop-portrait.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/crop-rotate.svg b/doc/theme/material/.icons/material/crop-rotate.svg new file mode 100644 index 00000000..533ad95f --- /dev/null +++ b/doc/theme/material/.icons/material/crop-rotate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/crop-square.svg b/doc/theme/material/.icons/material/crop-square.svg new file mode 100644 index 00000000..b45c7c4e --- /dev/null +++ b/doc/theme/material/.icons/material/crop-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/crop.svg b/doc/theme/material/.icons/material/crop.svg new file mode 100644 index 00000000..74a1ab2c --- /dev/null +++ b/doc/theme/material/.icons/material/crop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/crosshairs-gps.svg b/doc/theme/material/.icons/material/crosshairs-gps.svg new file mode 100644 index 00000000..f4d38e32 --- /dev/null +++ b/doc/theme/material/.icons/material/crosshairs-gps.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/crosshairs-off.svg b/doc/theme/material/.icons/material/crosshairs-off.svg new file mode 100644 index 00000000..333cd317 --- /dev/null +++ b/doc/theme/material/.icons/material/crosshairs-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/crosshairs-question.svg b/doc/theme/material/.icons/material/crosshairs-question.svg new file mode 100644 index 00000000..07cacf88 --- /dev/null +++ b/doc/theme/material/.icons/material/crosshairs-question.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/crosshairs.svg b/doc/theme/material/.icons/material/crosshairs.svg new file mode 100644 index 00000000..43a3095b --- /dev/null +++ b/doc/theme/material/.icons/material/crosshairs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/crown-outline.svg b/doc/theme/material/.icons/material/crown-outline.svg new file mode 100644 index 00000000..6a534400 --- /dev/null +++ b/doc/theme/material/.icons/material/crown-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/crown.svg b/doc/theme/material/.icons/material/crown.svg new file mode 100644 index 00000000..87ef87de --- /dev/null +++ b/doc/theme/material/.icons/material/crown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cryengine.svg b/doc/theme/material/.icons/material/cryengine.svg new file mode 100644 index 00000000..44c67033 --- /dev/null +++ b/doc/theme/material/.icons/material/cryengine.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/crystal-ball.svg b/doc/theme/material/.icons/material/crystal-ball.svg new file mode 100644 index 00000000..a564538a --- /dev/null +++ b/doc/theme/material/.icons/material/crystal-ball.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cube-outline.svg b/doc/theme/material/.icons/material/cube-outline.svg new file mode 100644 index 00000000..9a0d5070 --- /dev/null +++ b/doc/theme/material/.icons/material/cube-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cube-scan.svg b/doc/theme/material/.icons/material/cube-scan.svg new file mode 100644 index 00000000..411047d8 --- /dev/null +++ b/doc/theme/material/.icons/material/cube-scan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cube-send.svg b/doc/theme/material/.icons/material/cube-send.svg new file mode 100644 index 00000000..86c6ff63 --- /dev/null +++ b/doc/theme/material/.icons/material/cube-send.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cube-unfolded.svg b/doc/theme/material/.icons/material/cube-unfolded.svg new file mode 100644 index 00000000..d179b42e --- /dev/null +++ b/doc/theme/material/.icons/material/cube-unfolded.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cube.svg b/doc/theme/material/.icons/material/cube.svg new file mode 100644 index 00000000..d05e0a1d --- /dev/null +++ b/doc/theme/material/.icons/material/cube.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cup-off-outline.svg b/doc/theme/material/.icons/material/cup-off-outline.svg new file mode 100644 index 00000000..4e791265 --- /dev/null +++ b/doc/theme/material/.icons/material/cup-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cup-off.svg b/doc/theme/material/.icons/material/cup-off.svg new file mode 100644 index 00000000..67ed2a4f --- /dev/null +++ b/doc/theme/material/.icons/material/cup-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cup-outline.svg b/doc/theme/material/.icons/material/cup-outline.svg new file mode 100644 index 00000000..28fcff88 --- /dev/null +++ b/doc/theme/material/.icons/material/cup-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cup-water.svg b/doc/theme/material/.icons/material/cup-water.svg new file mode 100644 index 00000000..c1420bfe --- /dev/null +++ b/doc/theme/material/.icons/material/cup-water.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cup.svg b/doc/theme/material/.icons/material/cup.svg new file mode 100644 index 00000000..36f2090f --- /dev/null +++ b/doc/theme/material/.icons/material/cup.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cupboard-outline.svg b/doc/theme/material/.icons/material/cupboard-outline.svg new file mode 100644 index 00000000..2c25efb5 --- /dev/null +++ b/doc/theme/material/.icons/material/cupboard-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cupboard.svg b/doc/theme/material/.icons/material/cupboard.svg new file mode 100644 index 00000000..1ae29166 --- /dev/null +++ b/doc/theme/material/.icons/material/cupboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cupcake.svg b/doc/theme/material/.icons/material/cupcake.svg new file mode 100644 index 00000000..94cf8e94 --- /dev/null +++ b/doc/theme/material/.icons/material/cupcake.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/curling.svg b/doc/theme/material/.icons/material/curling.svg new file mode 100644 index 00000000..45129fc1 --- /dev/null +++ b/doc/theme/material/.icons/material/curling.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/currency-bdt.svg b/doc/theme/material/.icons/material/currency-bdt.svg new file mode 100644 index 00000000..97698920 --- /dev/null +++ b/doc/theme/material/.icons/material/currency-bdt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/currency-brl.svg b/doc/theme/material/.icons/material/currency-brl.svg new file mode 100644 index 00000000..bb80488b --- /dev/null +++ b/doc/theme/material/.icons/material/currency-brl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/currency-btc.svg b/doc/theme/material/.icons/material/currency-btc.svg new file mode 100644 index 00000000..ce8aaccd --- /dev/null +++ b/doc/theme/material/.icons/material/currency-btc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/currency-cny.svg b/doc/theme/material/.icons/material/currency-cny.svg new file mode 100644 index 00000000..99e0d450 --- /dev/null +++ b/doc/theme/material/.icons/material/currency-cny.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/currency-eth.svg b/doc/theme/material/.icons/material/currency-eth.svg new file mode 100644 index 00000000..8f047643 --- /dev/null +++ b/doc/theme/material/.icons/material/currency-eth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/currency-eur-off.svg b/doc/theme/material/.icons/material/currency-eur-off.svg new file mode 100644 index 00000000..76fd16a3 --- /dev/null +++ b/doc/theme/material/.icons/material/currency-eur-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/currency-eur.svg b/doc/theme/material/.icons/material/currency-eur.svg new file mode 100644 index 00000000..6116760b --- /dev/null +++ b/doc/theme/material/.icons/material/currency-eur.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/currency-gbp.svg b/doc/theme/material/.icons/material/currency-gbp.svg new file mode 100644 index 00000000..a8a89a08 --- /dev/null +++ b/doc/theme/material/.icons/material/currency-gbp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/currency-ils.svg b/doc/theme/material/.icons/material/currency-ils.svg new file mode 100644 index 00000000..e16c0a7e --- /dev/null +++ b/doc/theme/material/.icons/material/currency-ils.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/currency-inr.svg b/doc/theme/material/.icons/material/currency-inr.svg new file mode 100644 index 00000000..c75a20c7 --- /dev/null +++ b/doc/theme/material/.icons/material/currency-inr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/currency-jpy.svg b/doc/theme/material/.icons/material/currency-jpy.svg new file mode 100644 index 00000000..99e0d450 --- /dev/null +++ b/doc/theme/material/.icons/material/currency-jpy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/currency-krw.svg b/doc/theme/material/.icons/material/currency-krw.svg new file mode 100644 index 00000000..e0f093a2 --- /dev/null +++ b/doc/theme/material/.icons/material/currency-krw.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/currency-kzt.svg b/doc/theme/material/.icons/material/currency-kzt.svg new file mode 100644 index 00000000..60279f60 --- /dev/null +++ b/doc/theme/material/.icons/material/currency-kzt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/currency-ngn.svg b/doc/theme/material/.icons/material/currency-ngn.svg new file mode 100644 index 00000000..0ceaad21 --- /dev/null +++ b/doc/theme/material/.icons/material/currency-ngn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/currency-php.svg b/doc/theme/material/.icons/material/currency-php.svg new file mode 100644 index 00000000..28244bc6 --- /dev/null +++ b/doc/theme/material/.icons/material/currency-php.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/currency-rial.svg b/doc/theme/material/.icons/material/currency-rial.svg new file mode 100644 index 00000000..822f7778 --- /dev/null +++ b/doc/theme/material/.icons/material/currency-rial.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/currency-rub.svg b/doc/theme/material/.icons/material/currency-rub.svg new file mode 100644 index 00000000..70e29de9 --- /dev/null +++ b/doc/theme/material/.icons/material/currency-rub.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/currency-sign.svg b/doc/theme/material/.icons/material/currency-sign.svg new file mode 100644 index 00000000..0a96130a --- /dev/null +++ b/doc/theme/material/.icons/material/currency-sign.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/currency-try.svg b/doc/theme/material/.icons/material/currency-try.svg new file mode 100644 index 00000000..60703daf --- /dev/null +++ b/doc/theme/material/.icons/material/currency-try.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/currency-twd.svg b/doc/theme/material/.icons/material/currency-twd.svg new file mode 100644 index 00000000..d9a924e0 --- /dev/null +++ b/doc/theme/material/.icons/material/currency-twd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/currency-usd-circle-outline.svg b/doc/theme/material/.icons/material/currency-usd-circle-outline.svg new file mode 100644 index 00000000..4b950627 --- /dev/null +++ b/doc/theme/material/.icons/material/currency-usd-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/currency-usd-circle.svg b/doc/theme/material/.icons/material/currency-usd-circle.svg new file mode 100644 index 00000000..42908112 --- /dev/null +++ b/doc/theme/material/.icons/material/currency-usd-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/currency-usd-off.svg b/doc/theme/material/.icons/material/currency-usd-off.svg new file mode 100644 index 00000000..4cf72064 --- /dev/null +++ b/doc/theme/material/.icons/material/currency-usd-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/currency-usd.svg b/doc/theme/material/.icons/material/currency-usd.svg new file mode 100644 index 00000000..9ba1ef2f --- /dev/null +++ b/doc/theme/material/.icons/material/currency-usd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/current-ac.svg b/doc/theme/material/.icons/material/current-ac.svg new file mode 100644 index 00000000..7f2176d6 --- /dev/null +++ b/doc/theme/material/.icons/material/current-ac.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/current-dc.svg b/doc/theme/material/.icons/material/current-dc.svg new file mode 100644 index 00000000..282f6ad4 --- /dev/null +++ b/doc/theme/material/.icons/material/current-dc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cursor-default-click-outline.svg b/doc/theme/material/.icons/material/cursor-default-click-outline.svg new file mode 100644 index 00000000..830b2522 --- /dev/null +++ b/doc/theme/material/.icons/material/cursor-default-click-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cursor-default-click.svg b/doc/theme/material/.icons/material/cursor-default-click.svg new file mode 100644 index 00000000..f9a9b91e --- /dev/null +++ b/doc/theme/material/.icons/material/cursor-default-click.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cursor-default-gesture-outline.svg b/doc/theme/material/.icons/material/cursor-default-gesture-outline.svg new file mode 100644 index 00000000..71c6564d --- /dev/null +++ b/doc/theme/material/.icons/material/cursor-default-gesture-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cursor-default-gesture.svg b/doc/theme/material/.icons/material/cursor-default-gesture.svg new file mode 100644 index 00000000..dbc661c0 --- /dev/null +++ b/doc/theme/material/.icons/material/cursor-default-gesture.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cursor-default-outline.svg b/doc/theme/material/.icons/material/cursor-default-outline.svg new file mode 100644 index 00000000..49d299df --- /dev/null +++ b/doc/theme/material/.icons/material/cursor-default-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cursor-default.svg b/doc/theme/material/.icons/material/cursor-default.svg new file mode 100644 index 00000000..03d6173a --- /dev/null +++ b/doc/theme/material/.icons/material/cursor-default.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cursor-move.svg b/doc/theme/material/.icons/material/cursor-move.svg new file mode 100644 index 00000000..e504fed8 --- /dev/null +++ b/doc/theme/material/.icons/material/cursor-move.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cursor-pointer.svg b/doc/theme/material/.icons/material/cursor-pointer.svg new file mode 100644 index 00000000..880edf00 --- /dev/null +++ b/doc/theme/material/.icons/material/cursor-pointer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/cursor-text.svg b/doc/theme/material/.icons/material/cursor-text.svg new file mode 100644 index 00000000..def0b151 --- /dev/null +++ b/doc/theme/material/.icons/material/cursor-text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/database-check.svg b/doc/theme/material/.icons/material/database-check.svg new file mode 100644 index 00000000..f19d1c1a --- /dev/null +++ b/doc/theme/material/.icons/material/database-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/database-edit.svg b/doc/theme/material/.icons/material/database-edit.svg new file mode 100644 index 00000000..f44a6a3f --- /dev/null +++ b/doc/theme/material/.icons/material/database-edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/database-export.svg b/doc/theme/material/.icons/material/database-export.svg new file mode 100644 index 00000000..6cbe251f --- /dev/null +++ b/doc/theme/material/.icons/material/database-export.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/database-import.svg b/doc/theme/material/.icons/material/database-import.svg new file mode 100644 index 00000000..2553eb5d --- /dev/null +++ b/doc/theme/material/.icons/material/database-import.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/database-lock.svg b/doc/theme/material/.icons/material/database-lock.svg new file mode 100644 index 00000000..198f32ea --- /dev/null +++ b/doc/theme/material/.icons/material/database-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/database-marker.svg b/doc/theme/material/.icons/material/database-marker.svg new file mode 100644 index 00000000..38127992 --- /dev/null +++ b/doc/theme/material/.icons/material/database-marker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/database-minus.svg b/doc/theme/material/.icons/material/database-minus.svg new file mode 100644 index 00000000..3c978f2d --- /dev/null +++ b/doc/theme/material/.icons/material/database-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/database-plus.svg b/doc/theme/material/.icons/material/database-plus.svg new file mode 100644 index 00000000..678f53dd --- /dev/null +++ b/doc/theme/material/.icons/material/database-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/database-refresh.svg b/doc/theme/material/.icons/material/database-refresh.svg new file mode 100644 index 00000000..98a354c7 --- /dev/null +++ b/doc/theme/material/.icons/material/database-refresh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/database-remove.svg b/doc/theme/material/.icons/material/database-remove.svg new file mode 100644 index 00000000..9eb2a108 --- /dev/null +++ b/doc/theme/material/.icons/material/database-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/database-search.svg b/doc/theme/material/.icons/material/database-search.svg new file mode 100644 index 00000000..71a9b9c1 --- /dev/null +++ b/doc/theme/material/.icons/material/database-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/database-settings.svg b/doc/theme/material/.icons/material/database-settings.svg new file mode 100644 index 00000000..a1f87ebe --- /dev/null +++ b/doc/theme/material/.icons/material/database-settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/database-sync.svg b/doc/theme/material/.icons/material/database-sync.svg new file mode 100644 index 00000000..a884c481 --- /dev/null +++ b/doc/theme/material/.icons/material/database-sync.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/database.svg b/doc/theme/material/.icons/material/database.svg new file mode 100644 index 00000000..6e95c2b5 --- /dev/null +++ b/doc/theme/material/.icons/material/database.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/death-star-variant.svg b/doc/theme/material/.icons/material/death-star-variant.svg new file mode 100644 index 00000000..df045765 --- /dev/null +++ b/doc/theme/material/.icons/material/death-star-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/death-star.svg b/doc/theme/material/.icons/material/death-star.svg new file mode 100644 index 00000000..9c858b91 --- /dev/null +++ b/doc/theme/material/.icons/material/death-star.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/deathly-hallows.svg b/doc/theme/material/.icons/material/deathly-hallows.svg new file mode 100644 index 00000000..e5d1ab4a --- /dev/null +++ b/doc/theme/material/.icons/material/deathly-hallows.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/debian.svg b/doc/theme/material/.icons/material/debian.svg new file mode 100644 index 00000000..b9d3dc13 --- /dev/null +++ b/doc/theme/material/.icons/material/debian.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/debug-step-into.svg b/doc/theme/material/.icons/material/debug-step-into.svg new file mode 100644 index 00000000..b5ac7582 --- /dev/null +++ b/doc/theme/material/.icons/material/debug-step-into.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/debug-step-out.svg b/doc/theme/material/.icons/material/debug-step-out.svg new file mode 100644 index 00000000..2097480e --- /dev/null +++ b/doc/theme/material/.icons/material/debug-step-out.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/debug-step-over.svg b/doc/theme/material/.icons/material/debug-step-over.svg new file mode 100644 index 00000000..1baf2730 --- /dev/null +++ b/doc/theme/material/.icons/material/debug-step-over.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/decagram-outline.svg b/doc/theme/material/.icons/material/decagram-outline.svg new file mode 100644 index 00000000..c99c5263 --- /dev/null +++ b/doc/theme/material/.icons/material/decagram-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/decagram.svg b/doc/theme/material/.icons/material/decagram.svg new file mode 100644 index 00000000..03704a89 --- /dev/null +++ b/doc/theme/material/.icons/material/decagram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/decimal-comma-decrease.svg b/doc/theme/material/.icons/material/decimal-comma-decrease.svg new file mode 100644 index 00000000..7e383abf --- /dev/null +++ b/doc/theme/material/.icons/material/decimal-comma-decrease.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/decimal-comma-increase.svg b/doc/theme/material/.icons/material/decimal-comma-increase.svg new file mode 100644 index 00000000..9b78718c --- /dev/null +++ b/doc/theme/material/.icons/material/decimal-comma-increase.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/decimal-comma.svg b/doc/theme/material/.icons/material/decimal-comma.svg new file mode 100644 index 00000000..91751dab --- /dev/null +++ b/doc/theme/material/.icons/material/decimal-comma.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/decimal-decrease.svg b/doc/theme/material/.icons/material/decimal-decrease.svg new file mode 100644 index 00000000..b97a963a --- /dev/null +++ b/doc/theme/material/.icons/material/decimal-decrease.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/decimal-increase.svg b/doc/theme/material/.icons/material/decimal-increase.svg new file mode 100644 index 00000000..1fdc76c2 --- /dev/null +++ b/doc/theme/material/.icons/material/decimal-increase.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/decimal.svg b/doc/theme/material/.icons/material/decimal.svg new file mode 100644 index 00000000..b233e773 --- /dev/null +++ b/doc/theme/material/.icons/material/decimal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/delete-alert-outline.svg b/doc/theme/material/.icons/material/delete-alert-outline.svg new file mode 100644 index 00000000..6e426cad --- /dev/null +++ b/doc/theme/material/.icons/material/delete-alert-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/delete-alert.svg b/doc/theme/material/.icons/material/delete-alert.svg new file mode 100644 index 00000000..819ed06d --- /dev/null +++ b/doc/theme/material/.icons/material/delete-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/delete-circle-outline.svg b/doc/theme/material/.icons/material/delete-circle-outline.svg new file mode 100644 index 00000000..6bd862bb --- /dev/null +++ b/doc/theme/material/.icons/material/delete-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/delete-circle.svg b/doc/theme/material/.icons/material/delete-circle.svg new file mode 100644 index 00000000..65209400 --- /dev/null +++ b/doc/theme/material/.icons/material/delete-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/delete-empty-outline.svg b/doc/theme/material/.icons/material/delete-empty-outline.svg new file mode 100644 index 00000000..4b42554d --- /dev/null +++ b/doc/theme/material/.icons/material/delete-empty-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/delete-empty.svg b/doc/theme/material/.icons/material/delete-empty.svg new file mode 100644 index 00000000..46c813e6 --- /dev/null +++ b/doc/theme/material/.icons/material/delete-empty.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/delete-forever-outline.svg b/doc/theme/material/.icons/material/delete-forever-outline.svg new file mode 100644 index 00000000..e93b11d3 --- /dev/null +++ b/doc/theme/material/.icons/material/delete-forever-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/delete-forever.svg b/doc/theme/material/.icons/material/delete-forever.svg new file mode 100644 index 00000000..7949096a --- /dev/null +++ b/doc/theme/material/.icons/material/delete-forever.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/delete-off-outline.svg b/doc/theme/material/.icons/material/delete-off-outline.svg new file mode 100644 index 00000000..31461f00 --- /dev/null +++ b/doc/theme/material/.icons/material/delete-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/delete-off.svg b/doc/theme/material/.icons/material/delete-off.svg new file mode 100644 index 00000000..e8f97bb1 --- /dev/null +++ b/doc/theme/material/.icons/material/delete-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/delete-outline.svg b/doc/theme/material/.icons/material/delete-outline.svg new file mode 100644 index 00000000..76073877 --- /dev/null +++ b/doc/theme/material/.icons/material/delete-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/delete-restore.svg b/doc/theme/material/.icons/material/delete-restore.svg new file mode 100644 index 00000000..be6e111d --- /dev/null +++ b/doc/theme/material/.icons/material/delete-restore.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/delete-sweep-outline.svg b/doc/theme/material/.icons/material/delete-sweep-outline.svg new file mode 100644 index 00000000..cbbffda2 --- /dev/null +++ b/doc/theme/material/.icons/material/delete-sweep-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/delete-sweep.svg b/doc/theme/material/.icons/material/delete-sweep.svg new file mode 100644 index 00000000..ede08b5e --- /dev/null +++ b/doc/theme/material/.icons/material/delete-sweep.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/delete-variant.svg b/doc/theme/material/.icons/material/delete-variant.svg new file mode 100644 index 00000000..65b53bd4 --- /dev/null +++ b/doc/theme/material/.icons/material/delete-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/delete.svg b/doc/theme/material/.icons/material/delete.svg new file mode 100644 index 00000000..faf6da34 --- /dev/null +++ b/doc/theme/material/.icons/material/delete.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/delta.svg b/doc/theme/material/.icons/material/delta.svg new file mode 100644 index 00000000..71f40c38 --- /dev/null +++ b/doc/theme/material/.icons/material/delta.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/desk-lamp.svg b/doc/theme/material/.icons/material/desk-lamp.svg new file mode 100644 index 00000000..47dc9828 --- /dev/null +++ b/doc/theme/material/.icons/material/desk-lamp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/desk.svg b/doc/theme/material/.icons/material/desk.svg new file mode 100644 index 00000000..542a2a39 --- /dev/null +++ b/doc/theme/material/.icons/material/desk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/deskphone.svg b/doc/theme/material/.icons/material/deskphone.svg new file mode 100644 index 00000000..e6d07874 --- /dev/null +++ b/doc/theme/material/.icons/material/deskphone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/desktop-classic.svg b/doc/theme/material/.icons/material/desktop-classic.svg new file mode 100644 index 00000000..9fd4114f --- /dev/null +++ b/doc/theme/material/.icons/material/desktop-classic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/desktop-mac-dashboard.svg b/doc/theme/material/.icons/material/desktop-mac-dashboard.svg new file mode 100644 index 00000000..f257e0a0 --- /dev/null +++ b/doc/theme/material/.icons/material/desktop-mac-dashboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/desktop-mac.svg b/doc/theme/material/.icons/material/desktop-mac.svg new file mode 100644 index 00000000..77f9ea65 --- /dev/null +++ b/doc/theme/material/.icons/material/desktop-mac.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/desktop-tower-monitor.svg b/doc/theme/material/.icons/material/desktop-tower-monitor.svg new file mode 100644 index 00000000..afcbe399 --- /dev/null +++ b/doc/theme/material/.icons/material/desktop-tower-monitor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/desktop-tower.svg b/doc/theme/material/.icons/material/desktop-tower.svg new file mode 100644 index 00000000..1a7bb131 --- /dev/null +++ b/doc/theme/material/.icons/material/desktop-tower.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/details.svg b/doc/theme/material/.icons/material/details.svg new file mode 100644 index 00000000..8cc7aada --- /dev/null +++ b/doc/theme/material/.icons/material/details.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dev-to.svg b/doc/theme/material/.icons/material/dev-to.svg new file mode 100644 index 00000000..3d1d3bc0 --- /dev/null +++ b/doc/theme/material/.icons/material/dev-to.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/developer-board.svg b/doc/theme/material/.icons/material/developer-board.svg new file mode 100644 index 00000000..3bb851f0 --- /dev/null +++ b/doc/theme/material/.icons/material/developer-board.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/deviantart.svg b/doc/theme/material/.icons/material/deviantart.svg new file mode 100644 index 00000000..affbd3f3 --- /dev/null +++ b/doc/theme/material/.icons/material/deviantart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/devices.svg b/doc/theme/material/.icons/material/devices.svg new file mode 100644 index 00000000..8c9aac93 --- /dev/null +++ b/doc/theme/material/.icons/material/devices.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/diabetes.svg b/doc/theme/material/.icons/material/diabetes.svg new file mode 100644 index 00000000..784a7fc0 --- /dev/null +++ b/doc/theme/material/.icons/material/diabetes.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dialpad.svg b/doc/theme/material/.icons/material/dialpad.svg new file mode 100644 index 00000000..0d81834d --- /dev/null +++ b/doc/theme/material/.icons/material/dialpad.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/diameter-outline.svg b/doc/theme/material/.icons/material/diameter-outline.svg new file mode 100644 index 00000000..3db68ade --- /dev/null +++ b/doc/theme/material/.icons/material/diameter-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/diameter-variant.svg b/doc/theme/material/.icons/material/diameter-variant.svg new file mode 100644 index 00000000..25d73e4a --- /dev/null +++ b/doc/theme/material/.icons/material/diameter-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/diameter.svg b/doc/theme/material/.icons/material/diameter.svg new file mode 100644 index 00000000..76597071 --- /dev/null +++ b/doc/theme/material/.icons/material/diameter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/diamond-outline.svg b/doc/theme/material/.icons/material/diamond-outline.svg new file mode 100644 index 00000000..9eb6a1c7 --- /dev/null +++ b/doc/theme/material/.icons/material/diamond-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/diamond-stone.svg b/doc/theme/material/.icons/material/diamond-stone.svg new file mode 100644 index 00000000..63194e7c --- /dev/null +++ b/doc/theme/material/.icons/material/diamond-stone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/diamond.svg b/doc/theme/material/.icons/material/diamond.svg new file mode 100644 index 00000000..bad24dda --- /dev/null +++ b/doc/theme/material/.icons/material/diamond.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dice-1-outline.svg b/doc/theme/material/.icons/material/dice-1-outline.svg new file mode 100644 index 00000000..c7ac0002 --- /dev/null +++ b/doc/theme/material/.icons/material/dice-1-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dice-1.svg b/doc/theme/material/.icons/material/dice-1.svg new file mode 100644 index 00000000..6c0c2777 --- /dev/null +++ b/doc/theme/material/.icons/material/dice-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dice-2-outline.svg b/doc/theme/material/.icons/material/dice-2-outline.svg new file mode 100644 index 00000000..f380554c --- /dev/null +++ b/doc/theme/material/.icons/material/dice-2-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dice-2.svg b/doc/theme/material/.icons/material/dice-2.svg new file mode 100644 index 00000000..ecb46a04 --- /dev/null +++ b/doc/theme/material/.icons/material/dice-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dice-3-outline.svg b/doc/theme/material/.icons/material/dice-3-outline.svg new file mode 100644 index 00000000..904d6e34 --- /dev/null +++ b/doc/theme/material/.icons/material/dice-3-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dice-3.svg b/doc/theme/material/.icons/material/dice-3.svg new file mode 100644 index 00000000..6ef34548 --- /dev/null +++ b/doc/theme/material/.icons/material/dice-3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dice-4-outline.svg b/doc/theme/material/.icons/material/dice-4-outline.svg new file mode 100644 index 00000000..66cf76ac --- /dev/null +++ b/doc/theme/material/.icons/material/dice-4-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dice-4.svg b/doc/theme/material/.icons/material/dice-4.svg new file mode 100644 index 00000000..760cc74a --- /dev/null +++ b/doc/theme/material/.icons/material/dice-4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dice-5-outline.svg b/doc/theme/material/.icons/material/dice-5-outline.svg new file mode 100644 index 00000000..65aeb346 --- /dev/null +++ b/doc/theme/material/.icons/material/dice-5-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dice-5.svg b/doc/theme/material/.icons/material/dice-5.svg new file mode 100644 index 00000000..0f03c5aa --- /dev/null +++ b/doc/theme/material/.icons/material/dice-5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dice-6-outline.svg b/doc/theme/material/.icons/material/dice-6-outline.svg new file mode 100644 index 00000000..e87d3561 --- /dev/null +++ b/doc/theme/material/.icons/material/dice-6-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dice-6.svg b/doc/theme/material/.icons/material/dice-6.svg new file mode 100644 index 00000000..f90e3104 --- /dev/null +++ b/doc/theme/material/.icons/material/dice-6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dice-d10-outline.svg b/doc/theme/material/.icons/material/dice-d10-outline.svg new file mode 100644 index 00000000..8055354a --- /dev/null +++ b/doc/theme/material/.icons/material/dice-d10-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dice-d10.svg b/doc/theme/material/.icons/material/dice-d10.svg new file mode 100644 index 00000000..e5124729 --- /dev/null +++ b/doc/theme/material/.icons/material/dice-d10.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dice-d12-outline.svg b/doc/theme/material/.icons/material/dice-d12-outline.svg new file mode 100644 index 00000000..5e80b294 --- /dev/null +++ b/doc/theme/material/.icons/material/dice-d12-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dice-d12.svg b/doc/theme/material/.icons/material/dice-d12.svg new file mode 100644 index 00000000..a496a53c --- /dev/null +++ b/doc/theme/material/.icons/material/dice-d12.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dice-d20-outline.svg b/doc/theme/material/.icons/material/dice-d20-outline.svg new file mode 100644 index 00000000..797f4ac4 --- /dev/null +++ b/doc/theme/material/.icons/material/dice-d20-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dice-d20.svg b/doc/theme/material/.icons/material/dice-d20.svg new file mode 100644 index 00000000..86012e48 --- /dev/null +++ b/doc/theme/material/.icons/material/dice-d20.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dice-d4-outline.svg b/doc/theme/material/.icons/material/dice-d4-outline.svg new file mode 100644 index 00000000..8434d74d --- /dev/null +++ b/doc/theme/material/.icons/material/dice-d4-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dice-d4.svg b/doc/theme/material/.icons/material/dice-d4.svg new file mode 100644 index 00000000..2d8daa5b --- /dev/null +++ b/doc/theme/material/.icons/material/dice-d4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dice-d6-outline.svg b/doc/theme/material/.icons/material/dice-d6-outline.svg new file mode 100644 index 00000000..ace5755c --- /dev/null +++ b/doc/theme/material/.icons/material/dice-d6-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dice-d6.svg b/doc/theme/material/.icons/material/dice-d6.svg new file mode 100644 index 00000000..cda4723d --- /dev/null +++ b/doc/theme/material/.icons/material/dice-d6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dice-d8-outline.svg b/doc/theme/material/.icons/material/dice-d8-outline.svg new file mode 100644 index 00000000..7d6f0ff7 --- /dev/null +++ b/doc/theme/material/.icons/material/dice-d8-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dice-d8.svg b/doc/theme/material/.icons/material/dice-d8.svg new file mode 100644 index 00000000..8941b25f --- /dev/null +++ b/doc/theme/material/.icons/material/dice-d8.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dice-multiple-outline.svg b/doc/theme/material/.icons/material/dice-multiple-outline.svg new file mode 100644 index 00000000..5ad947a5 --- /dev/null +++ b/doc/theme/material/.icons/material/dice-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dice-multiple.svg b/doc/theme/material/.icons/material/dice-multiple.svg new file mode 100644 index 00000000..83d93970 --- /dev/null +++ b/doc/theme/material/.icons/material/dice-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/digital-ocean.svg b/doc/theme/material/.icons/material/digital-ocean.svg new file mode 100644 index 00000000..afe7c5c6 --- /dev/null +++ b/doc/theme/material/.icons/material/digital-ocean.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dip-switch.svg b/doc/theme/material/.icons/material/dip-switch.svg new file mode 100644 index 00000000..57a9500d --- /dev/null +++ b/doc/theme/material/.icons/material/dip-switch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/directions-fork.svg b/doc/theme/material/.icons/material/directions-fork.svg new file mode 100644 index 00000000..000fe4df --- /dev/null +++ b/doc/theme/material/.icons/material/directions-fork.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/directions.svg b/doc/theme/material/.icons/material/directions.svg new file mode 100644 index 00000000..75e7395d --- /dev/null +++ b/doc/theme/material/.icons/material/directions.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/disc-alert.svg b/doc/theme/material/.icons/material/disc-alert.svg new file mode 100644 index 00000000..f03a2127 --- /dev/null +++ b/doc/theme/material/.icons/material/disc-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/disc-player.svg b/doc/theme/material/.icons/material/disc-player.svg new file mode 100644 index 00000000..1339e637 --- /dev/null +++ b/doc/theme/material/.icons/material/disc-player.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/disc.svg b/doc/theme/material/.icons/material/disc.svg new file mode 100644 index 00000000..f4355908 --- /dev/null +++ b/doc/theme/material/.icons/material/disc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/discord.svg b/doc/theme/material/.icons/material/discord.svg new file mode 100644 index 00000000..3d84e4d6 --- /dev/null +++ b/doc/theme/material/.icons/material/discord.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dishwasher-alert.svg b/doc/theme/material/.icons/material/dishwasher-alert.svg new file mode 100644 index 00000000..4d94273b --- /dev/null +++ b/doc/theme/material/.icons/material/dishwasher-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dishwasher-off.svg b/doc/theme/material/.icons/material/dishwasher-off.svg new file mode 100644 index 00000000..867e0baa --- /dev/null +++ b/doc/theme/material/.icons/material/dishwasher-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dishwasher.svg b/doc/theme/material/.icons/material/dishwasher.svg new file mode 100644 index 00000000..ae9e1e70 --- /dev/null +++ b/doc/theme/material/.icons/material/dishwasher.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/disqus.svg b/doc/theme/material/.icons/material/disqus.svg new file mode 100644 index 00000000..06882678 --- /dev/null +++ b/doc/theme/material/.icons/material/disqus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/distribute-horizontal-center.svg b/doc/theme/material/.icons/material/distribute-horizontal-center.svg new file mode 100644 index 00000000..273f2be6 --- /dev/null +++ b/doc/theme/material/.icons/material/distribute-horizontal-center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/distribute-horizontal-left.svg b/doc/theme/material/.icons/material/distribute-horizontal-left.svg new file mode 100644 index 00000000..795c45af --- /dev/null +++ b/doc/theme/material/.icons/material/distribute-horizontal-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/distribute-horizontal-right.svg b/doc/theme/material/.icons/material/distribute-horizontal-right.svg new file mode 100644 index 00000000..292f8eb5 --- /dev/null +++ b/doc/theme/material/.icons/material/distribute-horizontal-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/distribute-vertical-bottom.svg b/doc/theme/material/.icons/material/distribute-vertical-bottom.svg new file mode 100644 index 00000000..1391d366 --- /dev/null +++ b/doc/theme/material/.icons/material/distribute-vertical-bottom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/distribute-vertical-center.svg b/doc/theme/material/.icons/material/distribute-vertical-center.svg new file mode 100644 index 00000000..a5bb7338 --- /dev/null +++ b/doc/theme/material/.icons/material/distribute-vertical-center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/distribute-vertical-top.svg b/doc/theme/material/.icons/material/distribute-vertical-top.svg new file mode 100644 index 00000000..d6e91f9a --- /dev/null +++ b/doc/theme/material/.icons/material/distribute-vertical-top.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/diving-flippers.svg b/doc/theme/material/.icons/material/diving-flippers.svg new file mode 100644 index 00000000..6c05f5ed --- /dev/null +++ b/doc/theme/material/.icons/material/diving-flippers.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/diving-helmet.svg b/doc/theme/material/.icons/material/diving-helmet.svg new file mode 100644 index 00000000..61e8d796 --- /dev/null +++ b/doc/theme/material/.icons/material/diving-helmet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/diving-scuba-flag.svg b/doc/theme/material/.icons/material/diving-scuba-flag.svg new file mode 100644 index 00000000..3271f74a --- /dev/null +++ b/doc/theme/material/.icons/material/diving-scuba-flag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/diving-scuba-tank-multiple.svg b/doc/theme/material/.icons/material/diving-scuba-tank-multiple.svg new file mode 100644 index 00000000..110c70e9 --- /dev/null +++ b/doc/theme/material/.icons/material/diving-scuba-tank-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/diving-scuba-tank.svg b/doc/theme/material/.icons/material/diving-scuba-tank.svg new file mode 100644 index 00000000..7d859125 --- /dev/null +++ b/doc/theme/material/.icons/material/diving-scuba-tank.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/diving-scuba.svg b/doc/theme/material/.icons/material/diving-scuba.svg new file mode 100644 index 00000000..27ddfee3 --- /dev/null +++ b/doc/theme/material/.icons/material/diving-scuba.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/diving-snorkel.svg b/doc/theme/material/.icons/material/diving-snorkel.svg new file mode 100644 index 00000000..aa8046d7 --- /dev/null +++ b/doc/theme/material/.icons/material/diving-snorkel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/division-box.svg b/doc/theme/material/.icons/material/division-box.svg new file mode 100644 index 00000000..dd97a724 --- /dev/null +++ b/doc/theme/material/.icons/material/division-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/division.svg b/doc/theme/material/.icons/material/division.svg new file mode 100644 index 00000000..ca187448 --- /dev/null +++ b/doc/theme/material/.icons/material/division.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dlna.svg b/doc/theme/material/.icons/material/dlna.svg new file mode 100644 index 00000000..0c6bab17 --- /dev/null +++ b/doc/theme/material/.icons/material/dlna.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dna.svg b/doc/theme/material/.icons/material/dna.svg new file mode 100644 index 00000000..b5c06135 --- /dev/null +++ b/doc/theme/material/.icons/material/dna.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dns-outline.svg b/doc/theme/material/.icons/material/dns-outline.svg new file mode 100644 index 00000000..010ed09e --- /dev/null +++ b/doc/theme/material/.icons/material/dns-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dns.svg b/doc/theme/material/.icons/material/dns.svg new file mode 100644 index 00000000..8aa3656b --- /dev/null +++ b/doc/theme/material/.icons/material/dns.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/do-not-disturb-off.svg b/doc/theme/material/.icons/material/do-not-disturb-off.svg new file mode 100644 index 00000000..d1912fb3 --- /dev/null +++ b/doc/theme/material/.icons/material/do-not-disturb-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/do-not-disturb.svg b/doc/theme/material/.icons/material/do-not-disturb.svg new file mode 100644 index 00000000..ec8c39b4 --- /dev/null +++ b/doc/theme/material/.icons/material/do-not-disturb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dock-bottom.svg b/doc/theme/material/.icons/material/dock-bottom.svg new file mode 100644 index 00000000..8d64f6a0 --- /dev/null +++ b/doc/theme/material/.icons/material/dock-bottom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dock-left.svg b/doc/theme/material/.icons/material/dock-left.svg new file mode 100644 index 00000000..098621c6 --- /dev/null +++ b/doc/theme/material/.icons/material/dock-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dock-right.svg b/doc/theme/material/.icons/material/dock-right.svg new file mode 100644 index 00000000..ceb04a1c --- /dev/null +++ b/doc/theme/material/.icons/material/dock-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dock-window.svg b/doc/theme/material/.icons/material/dock-window.svg new file mode 100644 index 00000000..8c943ee4 --- /dev/null +++ b/doc/theme/material/.icons/material/dock-window.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/docker.svg b/doc/theme/material/.icons/material/docker.svg new file mode 100644 index 00000000..e0b3b8ab --- /dev/null +++ b/doc/theme/material/.icons/material/docker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/doctor.svg b/doc/theme/material/.icons/material/doctor.svg new file mode 100644 index 00000000..5269fa05 --- /dev/null +++ b/doc/theme/material/.icons/material/doctor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dog-service.svg b/doc/theme/material/.icons/material/dog-service.svg new file mode 100644 index 00000000..dd873a81 --- /dev/null +++ b/doc/theme/material/.icons/material/dog-service.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dog-side.svg b/doc/theme/material/.icons/material/dog-side.svg new file mode 100644 index 00000000..2016a100 --- /dev/null +++ b/doc/theme/material/.icons/material/dog-side.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dog.svg b/doc/theme/material/.icons/material/dog.svg new file mode 100644 index 00000000..fc5cb59a --- /dev/null +++ b/doc/theme/material/.icons/material/dog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dolby.svg b/doc/theme/material/.icons/material/dolby.svg new file mode 100644 index 00000000..73762ca9 --- /dev/null +++ b/doc/theme/material/.icons/material/dolby.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dolly.svg b/doc/theme/material/.icons/material/dolly.svg new file mode 100644 index 00000000..b1565ef8 --- /dev/null +++ b/doc/theme/material/.icons/material/dolly.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/domain-off.svg b/doc/theme/material/.icons/material/domain-off.svg new file mode 100644 index 00000000..1f10fc1a --- /dev/null +++ b/doc/theme/material/.icons/material/domain-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/domain-plus.svg b/doc/theme/material/.icons/material/domain-plus.svg new file mode 100644 index 00000000..1b2871a4 --- /dev/null +++ b/doc/theme/material/.icons/material/domain-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/domain-remove.svg b/doc/theme/material/.icons/material/domain-remove.svg new file mode 100644 index 00000000..eb39debd --- /dev/null +++ b/doc/theme/material/.icons/material/domain-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/domain.svg b/doc/theme/material/.icons/material/domain.svg new file mode 100644 index 00000000..7d8a92f2 --- /dev/null +++ b/doc/theme/material/.icons/material/domain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/domino-mask.svg b/doc/theme/material/.icons/material/domino-mask.svg new file mode 100644 index 00000000..969e2844 --- /dev/null +++ b/doc/theme/material/.icons/material/domino-mask.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/donkey.svg b/doc/theme/material/.icons/material/donkey.svg new file mode 100644 index 00000000..23283637 --- /dev/null +++ b/doc/theme/material/.icons/material/donkey.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/door-closed-lock.svg b/doc/theme/material/.icons/material/door-closed-lock.svg new file mode 100644 index 00000000..0a33b125 --- /dev/null +++ b/doc/theme/material/.icons/material/door-closed-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/door-closed.svg b/doc/theme/material/.icons/material/door-closed.svg new file mode 100644 index 00000000..591bc752 --- /dev/null +++ b/doc/theme/material/.icons/material/door-closed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/door-open.svg b/doc/theme/material/.icons/material/door-open.svg new file mode 100644 index 00000000..93714d8a --- /dev/null +++ b/doc/theme/material/.icons/material/door-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/door.svg b/doc/theme/material/.icons/material/door.svg new file mode 100644 index 00000000..ae3c44b5 --- /dev/null +++ b/doc/theme/material/.icons/material/door.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/doorbell-video.svg b/doc/theme/material/.icons/material/doorbell-video.svg new file mode 100644 index 00000000..9f55d8cf --- /dev/null +++ b/doc/theme/material/.icons/material/doorbell-video.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/doorbell.svg b/doc/theme/material/.icons/material/doorbell.svg new file mode 100644 index 00000000..7611a15a --- /dev/null +++ b/doc/theme/material/.icons/material/doorbell.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dot-net.svg b/doc/theme/material/.icons/material/dot-net.svg new file mode 100644 index 00000000..48af82bc --- /dev/null +++ b/doc/theme/material/.icons/material/dot-net.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dots-horizontal-circle-outline.svg b/doc/theme/material/.icons/material/dots-horizontal-circle-outline.svg new file mode 100644 index 00000000..6047d4b0 --- /dev/null +++ b/doc/theme/material/.icons/material/dots-horizontal-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dots-horizontal-circle.svg b/doc/theme/material/.icons/material/dots-horizontal-circle.svg new file mode 100644 index 00000000..ab0796b4 --- /dev/null +++ b/doc/theme/material/.icons/material/dots-horizontal-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dots-horizontal.svg b/doc/theme/material/.icons/material/dots-horizontal.svg new file mode 100644 index 00000000..12ac139c --- /dev/null +++ b/doc/theme/material/.icons/material/dots-horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dots-vertical-circle-outline.svg b/doc/theme/material/.icons/material/dots-vertical-circle-outline.svg new file mode 100644 index 00000000..b0cf493d --- /dev/null +++ b/doc/theme/material/.icons/material/dots-vertical-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dots-vertical-circle.svg b/doc/theme/material/.icons/material/dots-vertical-circle.svg new file mode 100644 index 00000000..ba7b8b53 --- /dev/null +++ b/doc/theme/material/.icons/material/dots-vertical-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dots-vertical.svg b/doc/theme/material/.icons/material/dots-vertical.svg new file mode 100644 index 00000000..a6c3d694 --- /dev/null +++ b/doc/theme/material/.icons/material/dots-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/douban.svg b/doc/theme/material/.icons/material/douban.svg new file mode 100644 index 00000000..c777be88 --- /dev/null +++ b/doc/theme/material/.icons/material/douban.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/download-lock-outline.svg b/doc/theme/material/.icons/material/download-lock-outline.svg new file mode 100644 index 00000000..76b5ba0d --- /dev/null +++ b/doc/theme/material/.icons/material/download-lock-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/download-lock.svg b/doc/theme/material/.icons/material/download-lock.svg new file mode 100644 index 00000000..6ace43f5 --- /dev/null +++ b/doc/theme/material/.icons/material/download-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/download-multiple.svg b/doc/theme/material/.icons/material/download-multiple.svg new file mode 100644 index 00000000..3bab463a --- /dev/null +++ b/doc/theme/material/.icons/material/download-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/download-network-outline.svg b/doc/theme/material/.icons/material/download-network-outline.svg new file mode 100644 index 00000000..6c37dbd1 --- /dev/null +++ b/doc/theme/material/.icons/material/download-network-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/download-network.svg b/doc/theme/material/.icons/material/download-network.svg new file mode 100644 index 00000000..5a6b4643 --- /dev/null +++ b/doc/theme/material/.icons/material/download-network.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/download-off-outline.svg b/doc/theme/material/.icons/material/download-off-outline.svg new file mode 100644 index 00000000..e6dd5bbd --- /dev/null +++ b/doc/theme/material/.icons/material/download-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/download-off.svg b/doc/theme/material/.icons/material/download-off.svg new file mode 100644 index 00000000..fb6847e3 --- /dev/null +++ b/doc/theme/material/.icons/material/download-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/download-outline.svg b/doc/theme/material/.icons/material/download-outline.svg new file mode 100644 index 00000000..405e72eb --- /dev/null +++ b/doc/theme/material/.icons/material/download-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/download.svg b/doc/theme/material/.icons/material/download.svg new file mode 100644 index 00000000..8ff54628 --- /dev/null +++ b/doc/theme/material/.icons/material/download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/drag-horizontal-variant.svg b/doc/theme/material/.icons/material/drag-horizontal-variant.svg new file mode 100644 index 00000000..96480e25 --- /dev/null +++ b/doc/theme/material/.icons/material/drag-horizontal-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/drag-horizontal.svg b/doc/theme/material/.icons/material/drag-horizontal.svg new file mode 100644 index 00000000..77f65b8e --- /dev/null +++ b/doc/theme/material/.icons/material/drag-horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/drag-variant.svg b/doc/theme/material/.icons/material/drag-variant.svg new file mode 100644 index 00000000..2c904943 --- /dev/null +++ b/doc/theme/material/.icons/material/drag-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/drag-vertical-variant.svg b/doc/theme/material/.icons/material/drag-vertical-variant.svg new file mode 100644 index 00000000..5a98931b --- /dev/null +++ b/doc/theme/material/.icons/material/drag-vertical-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/drag-vertical.svg b/doc/theme/material/.icons/material/drag-vertical.svg new file mode 100644 index 00000000..0f86f74f --- /dev/null +++ b/doc/theme/material/.icons/material/drag-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/drag.svg b/doc/theme/material/.icons/material/drag.svg new file mode 100644 index 00000000..1cccd3c6 --- /dev/null +++ b/doc/theme/material/.icons/material/drag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/drama-masks.svg b/doc/theme/material/.icons/material/drama-masks.svg new file mode 100644 index 00000000..0f8aa1df --- /dev/null +++ b/doc/theme/material/.icons/material/drama-masks.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/draw.svg b/doc/theme/material/.icons/material/draw.svg new file mode 100644 index 00000000..6a21bc43 --- /dev/null +++ b/doc/theme/material/.icons/material/draw.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/drawing-box.svg b/doc/theme/material/.icons/material/drawing-box.svg new file mode 100644 index 00000000..c4fbb2aa --- /dev/null +++ b/doc/theme/material/.icons/material/drawing-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/drawing.svg b/doc/theme/material/.icons/material/drawing.svg new file mode 100644 index 00000000..a63ef74a --- /dev/null +++ b/doc/theme/material/.icons/material/drawing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dresser-outline.svg b/doc/theme/material/.icons/material/dresser-outline.svg new file mode 100644 index 00000000..8e17a274 --- /dev/null +++ b/doc/theme/material/.icons/material/dresser-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dresser.svg b/doc/theme/material/.icons/material/dresser.svg new file mode 100644 index 00000000..e8d536e0 --- /dev/null +++ b/doc/theme/material/.icons/material/dresser.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/drone.svg b/doc/theme/material/.icons/material/drone.svg new file mode 100644 index 00000000..ba2fb32c --- /dev/null +++ b/doc/theme/material/.icons/material/drone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dropbox.svg b/doc/theme/material/.icons/material/dropbox.svg new file mode 100644 index 00000000..45fb05f8 --- /dev/null +++ b/doc/theme/material/.icons/material/dropbox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/drupal.svg b/doc/theme/material/.icons/material/drupal.svg new file mode 100644 index 00000000..50469fcc --- /dev/null +++ b/doc/theme/material/.icons/material/drupal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/duck.svg b/doc/theme/material/.icons/material/duck.svg new file mode 100644 index 00000000..01e7613c --- /dev/null +++ b/doc/theme/material/.icons/material/duck.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dumbbell.svg b/doc/theme/material/.icons/material/dumbbell.svg new file mode 100644 index 00000000..9d6de780 --- /dev/null +++ b/doc/theme/material/.icons/material/dumbbell.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/dump-truck.svg b/doc/theme/material/.icons/material/dump-truck.svg new file mode 100644 index 00000000..321e4326 --- /dev/null +++ b/doc/theme/material/.icons/material/dump-truck.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ear-hearing-off.svg b/doc/theme/material/.icons/material/ear-hearing-off.svg new file mode 100644 index 00000000..24ce4373 --- /dev/null +++ b/doc/theme/material/.icons/material/ear-hearing-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ear-hearing.svg b/doc/theme/material/.icons/material/ear-hearing.svg new file mode 100644 index 00000000..9ef61ec5 --- /dev/null +++ b/doc/theme/material/.icons/material/ear-hearing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/earth-arrow-right.svg b/doc/theme/material/.icons/material/earth-arrow-right.svg new file mode 100644 index 00000000..b9270825 --- /dev/null +++ b/doc/theme/material/.icons/material/earth-arrow-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/earth-box-minus.svg b/doc/theme/material/.icons/material/earth-box-minus.svg new file mode 100644 index 00000000..20850c61 --- /dev/null +++ b/doc/theme/material/.icons/material/earth-box-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/earth-box-off.svg b/doc/theme/material/.icons/material/earth-box-off.svg new file mode 100644 index 00000000..0ee8ccdd --- /dev/null +++ b/doc/theme/material/.icons/material/earth-box-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/earth-box-plus.svg b/doc/theme/material/.icons/material/earth-box-plus.svg new file mode 100644 index 00000000..060d7eb8 --- /dev/null +++ b/doc/theme/material/.icons/material/earth-box-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/earth-box-remove.svg b/doc/theme/material/.icons/material/earth-box-remove.svg new file mode 100644 index 00000000..b1e83390 --- /dev/null +++ b/doc/theme/material/.icons/material/earth-box-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/earth-box.svg b/doc/theme/material/.icons/material/earth-box.svg new file mode 100644 index 00000000..6ab74968 --- /dev/null +++ b/doc/theme/material/.icons/material/earth-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/earth-minus.svg b/doc/theme/material/.icons/material/earth-minus.svg new file mode 100644 index 00000000..001ef36e --- /dev/null +++ b/doc/theme/material/.icons/material/earth-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/earth-off.svg b/doc/theme/material/.icons/material/earth-off.svg new file mode 100644 index 00000000..f6b1568e --- /dev/null +++ b/doc/theme/material/.icons/material/earth-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/earth-plus.svg b/doc/theme/material/.icons/material/earth-plus.svg new file mode 100644 index 00000000..ab05a324 --- /dev/null +++ b/doc/theme/material/.icons/material/earth-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/earth-remove.svg b/doc/theme/material/.icons/material/earth-remove.svg new file mode 100644 index 00000000..c13663ad --- /dev/null +++ b/doc/theme/material/.icons/material/earth-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/earth.svg b/doc/theme/material/.icons/material/earth.svg new file mode 100644 index 00000000..980428c8 --- /dev/null +++ b/doc/theme/material/.icons/material/earth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/egg-easter.svg b/doc/theme/material/.icons/material/egg-easter.svg new file mode 100644 index 00000000..30995685 --- /dev/null +++ b/doc/theme/material/.icons/material/egg-easter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/egg-off-outline.svg b/doc/theme/material/.icons/material/egg-off-outline.svg new file mode 100644 index 00000000..2db9c152 --- /dev/null +++ b/doc/theme/material/.icons/material/egg-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/egg-off.svg b/doc/theme/material/.icons/material/egg-off.svg new file mode 100644 index 00000000..02eb09b3 --- /dev/null +++ b/doc/theme/material/.icons/material/egg-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/egg-outline.svg b/doc/theme/material/.icons/material/egg-outline.svg new file mode 100644 index 00000000..8f498baf --- /dev/null +++ b/doc/theme/material/.icons/material/egg-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/egg.svg b/doc/theme/material/.icons/material/egg.svg new file mode 100644 index 00000000..adca6a48 --- /dev/null +++ b/doc/theme/material/.icons/material/egg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/eight-track.svg b/doc/theme/material/.icons/material/eight-track.svg new file mode 100644 index 00000000..fdb118b7 --- /dev/null +++ b/doc/theme/material/.icons/material/eight-track.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/eject-outline.svg b/doc/theme/material/.icons/material/eject-outline.svg new file mode 100644 index 00000000..ff4691a3 --- /dev/null +++ b/doc/theme/material/.icons/material/eject-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/eject.svg b/doc/theme/material/.icons/material/eject.svg new file mode 100644 index 00000000..5a6d681c --- /dev/null +++ b/doc/theme/material/.icons/material/eject.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/electric-switch-closed.svg b/doc/theme/material/.icons/material/electric-switch-closed.svg new file mode 100644 index 00000000..162a16f0 --- /dev/null +++ b/doc/theme/material/.icons/material/electric-switch-closed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/electric-switch.svg b/doc/theme/material/.icons/material/electric-switch.svg new file mode 100644 index 00000000..174995a6 --- /dev/null +++ b/doc/theme/material/.icons/material/electric-switch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/electron-framework.svg b/doc/theme/material/.icons/material/electron-framework.svg new file mode 100644 index 00000000..17aacb71 --- /dev/null +++ b/doc/theme/material/.icons/material/electron-framework.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/elephant.svg b/doc/theme/material/.icons/material/elephant.svg new file mode 100644 index 00000000..7b1f72f0 --- /dev/null +++ b/doc/theme/material/.icons/material/elephant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/elevation-decline.svg b/doc/theme/material/.icons/material/elevation-decline.svg new file mode 100644 index 00000000..08aa1937 --- /dev/null +++ b/doc/theme/material/.icons/material/elevation-decline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/elevation-rise.svg b/doc/theme/material/.icons/material/elevation-rise.svg new file mode 100644 index 00000000..b4dfe77b --- /dev/null +++ b/doc/theme/material/.icons/material/elevation-rise.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/elevator-down.svg b/doc/theme/material/.icons/material/elevator-down.svg new file mode 100644 index 00000000..aede85f2 --- /dev/null +++ b/doc/theme/material/.icons/material/elevator-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/elevator-passenger.svg b/doc/theme/material/.icons/material/elevator-passenger.svg new file mode 100644 index 00000000..6931506d --- /dev/null +++ b/doc/theme/material/.icons/material/elevator-passenger.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/elevator-up.svg b/doc/theme/material/.icons/material/elevator-up.svg new file mode 100644 index 00000000..80b22c4a --- /dev/null +++ b/doc/theme/material/.icons/material/elevator-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/elevator.svg b/doc/theme/material/.icons/material/elevator.svg new file mode 100644 index 00000000..18dcf37c --- /dev/null +++ b/doc/theme/material/.icons/material/elevator.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ellipse-outline.svg b/doc/theme/material/.icons/material/ellipse-outline.svg new file mode 100644 index 00000000..be8d4eb7 --- /dev/null +++ b/doc/theme/material/.icons/material/ellipse-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ellipse.svg b/doc/theme/material/.icons/material/ellipse.svg new file mode 100644 index 00000000..c8ebdf80 --- /dev/null +++ b/doc/theme/material/.icons/material/ellipse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-alert-outline.svg b/doc/theme/material/.icons/material/email-alert-outline.svg new file mode 100644 index 00000000..328e4ef5 --- /dev/null +++ b/doc/theme/material/.icons/material/email-alert-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-alert.svg b/doc/theme/material/.icons/material/email-alert.svg new file mode 100644 index 00000000..714d4402 --- /dev/null +++ b/doc/theme/material/.icons/material/email-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-box.svg b/doc/theme/material/.icons/material/email-box.svg new file mode 100644 index 00000000..a0b0f0a3 --- /dev/null +++ b/doc/theme/material/.icons/material/email-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-check-outline.svg b/doc/theme/material/.icons/material/email-check-outline.svg new file mode 100644 index 00000000..41d1c475 --- /dev/null +++ b/doc/theme/material/.icons/material/email-check-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-check.svg b/doc/theme/material/.icons/material/email-check.svg new file mode 100644 index 00000000..97d99fcc --- /dev/null +++ b/doc/theme/material/.icons/material/email-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-edit-outline.svg b/doc/theme/material/.icons/material/email-edit-outline.svg new file mode 100644 index 00000000..3a84adee --- /dev/null +++ b/doc/theme/material/.icons/material/email-edit-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-edit.svg b/doc/theme/material/.icons/material/email-edit.svg new file mode 100644 index 00000000..debe578a --- /dev/null +++ b/doc/theme/material/.icons/material/email-edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-lock.svg b/doc/theme/material/.icons/material/email-lock.svg new file mode 100644 index 00000000..420d891a --- /dev/null +++ b/doc/theme/material/.icons/material/email-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-mark-as-unread.svg b/doc/theme/material/.icons/material/email-mark-as-unread.svg new file mode 100644 index 00000000..3b56410f --- /dev/null +++ b/doc/theme/material/.icons/material/email-mark-as-unread.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-minus-outline.svg b/doc/theme/material/.icons/material/email-minus-outline.svg new file mode 100644 index 00000000..737a7c1e --- /dev/null +++ b/doc/theme/material/.icons/material/email-minus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-minus.svg b/doc/theme/material/.icons/material/email-minus.svg new file mode 100644 index 00000000..42c605b6 --- /dev/null +++ b/doc/theme/material/.icons/material/email-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-multiple-outline.svg b/doc/theme/material/.icons/material/email-multiple-outline.svg new file mode 100644 index 00000000..05d1377e --- /dev/null +++ b/doc/theme/material/.icons/material/email-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-multiple.svg b/doc/theme/material/.icons/material/email-multiple.svg new file mode 100644 index 00000000..183eb612 --- /dev/null +++ b/doc/theme/material/.icons/material/email-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-newsletter.svg b/doc/theme/material/.icons/material/email-newsletter.svg new file mode 100644 index 00000000..d0d7bf4f --- /dev/null +++ b/doc/theme/material/.icons/material/email-newsletter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-off-outline.svg b/doc/theme/material/.icons/material/email-off-outline.svg new file mode 100644 index 00000000..e757ed3b --- /dev/null +++ b/doc/theme/material/.icons/material/email-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-off.svg b/doc/theme/material/.icons/material/email-off.svg new file mode 100644 index 00000000..d745159b --- /dev/null +++ b/doc/theme/material/.icons/material/email-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-open-multiple-outline.svg b/doc/theme/material/.icons/material/email-open-multiple-outline.svg new file mode 100644 index 00000000..41532ea0 --- /dev/null +++ b/doc/theme/material/.icons/material/email-open-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-open-multiple.svg b/doc/theme/material/.icons/material/email-open-multiple.svg new file mode 100644 index 00000000..46bfc0e4 --- /dev/null +++ b/doc/theme/material/.icons/material/email-open-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-open-outline.svg b/doc/theme/material/.icons/material/email-open-outline.svg new file mode 100644 index 00000000..79bc19aa --- /dev/null +++ b/doc/theme/material/.icons/material/email-open-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-open.svg b/doc/theme/material/.icons/material/email-open.svg new file mode 100644 index 00000000..eba2d3bb --- /dev/null +++ b/doc/theme/material/.icons/material/email-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-outline.svg b/doc/theme/material/.icons/material/email-outline.svg new file mode 100644 index 00000000..38de0806 --- /dev/null +++ b/doc/theme/material/.icons/material/email-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-plus-outline.svg b/doc/theme/material/.icons/material/email-plus-outline.svg new file mode 100644 index 00000000..789cce1c --- /dev/null +++ b/doc/theme/material/.icons/material/email-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-plus.svg b/doc/theme/material/.icons/material/email-plus.svg new file mode 100644 index 00000000..6e3c3573 --- /dev/null +++ b/doc/theme/material/.icons/material/email-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-receive-outline.svg b/doc/theme/material/.icons/material/email-receive-outline.svg new file mode 100644 index 00000000..16e7fce3 --- /dev/null +++ b/doc/theme/material/.icons/material/email-receive-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-receive.svg b/doc/theme/material/.icons/material/email-receive.svg new file mode 100644 index 00000000..f81b1f8f --- /dev/null +++ b/doc/theme/material/.icons/material/email-receive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-search-outline.svg b/doc/theme/material/.icons/material/email-search-outline.svg new file mode 100644 index 00000000..9bf6533c --- /dev/null +++ b/doc/theme/material/.icons/material/email-search-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-search.svg b/doc/theme/material/.icons/material/email-search.svg new file mode 100644 index 00000000..50c64d6e --- /dev/null +++ b/doc/theme/material/.icons/material/email-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-send-outline.svg b/doc/theme/material/.icons/material/email-send-outline.svg new file mode 100644 index 00000000..ed4d557c --- /dev/null +++ b/doc/theme/material/.icons/material/email-send-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-send.svg b/doc/theme/material/.icons/material/email-send.svg new file mode 100644 index 00000000..ca78d7f3 --- /dev/null +++ b/doc/theme/material/.icons/material/email-send.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-sync-outline.svg b/doc/theme/material/.icons/material/email-sync-outline.svg new file mode 100644 index 00000000..d7cc7876 --- /dev/null +++ b/doc/theme/material/.icons/material/email-sync-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-sync.svg b/doc/theme/material/.icons/material/email-sync.svg new file mode 100644 index 00000000..d3ec8bc4 --- /dev/null +++ b/doc/theme/material/.icons/material/email-sync.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email-variant.svg b/doc/theme/material/.icons/material/email-variant.svg new file mode 100644 index 00000000..12677180 --- /dev/null +++ b/doc/theme/material/.icons/material/email-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/email.svg b/doc/theme/material/.icons/material/email.svg new file mode 100644 index 00000000..4f9c3de8 --- /dev/null +++ b/doc/theme/material/.icons/material/email.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ember.svg b/doc/theme/material/.icons/material/ember.svg new file mode 100644 index 00000000..dbff395c --- /dev/null +++ b/doc/theme/material/.icons/material/ember.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emby.svg b/doc/theme/material/.icons/material/emby.svg new file mode 100644 index 00000000..3107f82e --- /dev/null +++ b/doc/theme/material/.icons/material/emby.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-angry-outline.svg b/doc/theme/material/.icons/material/emoticon-angry-outline.svg new file mode 100644 index 00000000..e9679ec1 --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-angry-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-angry.svg b/doc/theme/material/.icons/material/emoticon-angry.svg new file mode 100644 index 00000000..4d40fe8f --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-angry.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-confused-outline.svg b/doc/theme/material/.icons/material/emoticon-confused-outline.svg new file mode 100644 index 00000000..5c985bb0 --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-confused-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-confused.svg b/doc/theme/material/.icons/material/emoticon-confused.svg new file mode 100644 index 00000000..e1059cd7 --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-confused.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-cool-outline.svg b/doc/theme/material/.icons/material/emoticon-cool-outline.svg new file mode 100644 index 00000000..d76467fb --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-cool-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-cool.svg b/doc/theme/material/.icons/material/emoticon-cool.svg new file mode 100644 index 00000000..4250915d --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-cool.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-cry-outline.svg b/doc/theme/material/.icons/material/emoticon-cry-outline.svg new file mode 100644 index 00000000..40846314 --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-cry-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-cry.svg b/doc/theme/material/.icons/material/emoticon-cry.svg new file mode 100644 index 00000000..d7099c89 --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-cry.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-dead-outline.svg b/doc/theme/material/.icons/material/emoticon-dead-outline.svg new file mode 100644 index 00000000..32f11a2e --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-dead-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-dead.svg b/doc/theme/material/.icons/material/emoticon-dead.svg new file mode 100644 index 00000000..0ba7681c --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-dead.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-devil-outline.svg b/doc/theme/material/.icons/material/emoticon-devil-outline.svg new file mode 100644 index 00000000..e414e82b --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-devil-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-devil.svg b/doc/theme/material/.icons/material/emoticon-devil.svg new file mode 100644 index 00000000..ed9a611f --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-devil.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-excited-outline.svg b/doc/theme/material/.icons/material/emoticon-excited-outline.svg new file mode 100644 index 00000000..47e70039 --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-excited-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-excited.svg b/doc/theme/material/.icons/material/emoticon-excited.svg new file mode 100644 index 00000000..6bd1cda3 --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-excited.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-frown-outline.svg b/doc/theme/material/.icons/material/emoticon-frown-outline.svg new file mode 100644 index 00000000..34ca565c --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-frown-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-frown.svg b/doc/theme/material/.icons/material/emoticon-frown.svg new file mode 100644 index 00000000..cb0c9bef --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-frown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-happy-outline.svg b/doc/theme/material/.icons/material/emoticon-happy-outline.svg new file mode 100644 index 00000000..ea37ea4a --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-happy-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-happy.svg b/doc/theme/material/.icons/material/emoticon-happy.svg new file mode 100644 index 00000000..f1eccf2b --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-happy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-kiss-outline.svg b/doc/theme/material/.icons/material/emoticon-kiss-outline.svg new file mode 100644 index 00000000..8fba79aa --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-kiss-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-kiss.svg b/doc/theme/material/.icons/material/emoticon-kiss.svg new file mode 100644 index 00000000..191a2646 --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-kiss.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-lol-outline.svg b/doc/theme/material/.icons/material/emoticon-lol-outline.svg new file mode 100644 index 00000000..75cb97d6 --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-lol-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-lol.svg b/doc/theme/material/.icons/material/emoticon-lol.svg new file mode 100644 index 00000000..74f0377c --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-lol.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-neutral-outline.svg b/doc/theme/material/.icons/material/emoticon-neutral-outline.svg new file mode 100644 index 00000000..dfac891b --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-neutral-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-neutral.svg b/doc/theme/material/.icons/material/emoticon-neutral.svg new file mode 100644 index 00000000..1ab3b226 --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-neutral.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-outline.svg b/doc/theme/material/.icons/material/emoticon-outline.svg new file mode 100644 index 00000000..d3df3801 --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-poop-outline.svg b/doc/theme/material/.icons/material/emoticon-poop-outline.svg new file mode 100644 index 00000000..07a3bd82 --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-poop-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-poop.svg b/doc/theme/material/.icons/material/emoticon-poop.svg new file mode 100644 index 00000000..78eef4d3 --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-poop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-sad-outline.svg b/doc/theme/material/.icons/material/emoticon-sad-outline.svg new file mode 100644 index 00000000..866081ce --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-sad-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-sad.svg b/doc/theme/material/.icons/material/emoticon-sad.svg new file mode 100644 index 00000000..096284ac --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-sad.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-tongue-outline.svg b/doc/theme/material/.icons/material/emoticon-tongue-outline.svg new file mode 100644 index 00000000..1d5c4877 --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-tongue-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-tongue.svg b/doc/theme/material/.icons/material/emoticon-tongue.svg new file mode 100644 index 00000000..2feb136f --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-tongue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-wink-outline.svg b/doc/theme/material/.icons/material/emoticon-wink-outline.svg new file mode 100644 index 00000000..23d63bdc --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-wink-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon-wink.svg b/doc/theme/material/.icons/material/emoticon-wink.svg new file mode 100644 index 00000000..146e74f9 --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon-wink.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/emoticon.svg b/doc/theme/material/.icons/material/emoticon.svg new file mode 100644 index 00000000..8caf7f44 --- /dev/null +++ b/doc/theme/material/.icons/material/emoticon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/engine-off-outline.svg b/doc/theme/material/.icons/material/engine-off-outline.svg new file mode 100644 index 00000000..95d64f2d --- /dev/null +++ b/doc/theme/material/.icons/material/engine-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/engine-off.svg b/doc/theme/material/.icons/material/engine-off.svg new file mode 100644 index 00000000..dfbf382d --- /dev/null +++ b/doc/theme/material/.icons/material/engine-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/engine-outline.svg b/doc/theme/material/.icons/material/engine-outline.svg new file mode 100644 index 00000000..a844b725 --- /dev/null +++ b/doc/theme/material/.icons/material/engine-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/engine.svg b/doc/theme/material/.icons/material/engine.svg new file mode 100644 index 00000000..e84116f8 --- /dev/null +++ b/doc/theme/material/.icons/material/engine.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/epsilon.svg b/doc/theme/material/.icons/material/epsilon.svg new file mode 100644 index 00000000..d2664d67 --- /dev/null +++ b/doc/theme/material/.icons/material/epsilon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/equal-box.svg b/doc/theme/material/.icons/material/equal-box.svg new file mode 100644 index 00000000..b4668c39 --- /dev/null +++ b/doc/theme/material/.icons/material/equal-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/equal.svg b/doc/theme/material/.icons/material/equal.svg new file mode 100644 index 00000000..ddc31064 --- /dev/null +++ b/doc/theme/material/.icons/material/equal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/equalizer-outline.svg b/doc/theme/material/.icons/material/equalizer-outline.svg new file mode 100644 index 00000000..8da8d0a2 --- /dev/null +++ b/doc/theme/material/.icons/material/equalizer-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/equalizer.svg b/doc/theme/material/.icons/material/equalizer.svg new file mode 100644 index 00000000..4d5b9a8d --- /dev/null +++ b/doc/theme/material/.icons/material/equalizer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/eraser-variant.svg b/doc/theme/material/.icons/material/eraser-variant.svg new file mode 100644 index 00000000..10fd341e --- /dev/null +++ b/doc/theme/material/.icons/material/eraser-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/eraser.svg b/doc/theme/material/.icons/material/eraser.svg new file mode 100644 index 00000000..0cd034b9 --- /dev/null +++ b/doc/theme/material/.icons/material/eraser.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/escalator-box.svg b/doc/theme/material/.icons/material/escalator-box.svg new file mode 100644 index 00000000..387a78e1 --- /dev/null +++ b/doc/theme/material/.icons/material/escalator-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/escalator-down.svg b/doc/theme/material/.icons/material/escalator-down.svg new file mode 100644 index 00000000..ab76d97c --- /dev/null +++ b/doc/theme/material/.icons/material/escalator-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/escalator-up.svg b/doc/theme/material/.icons/material/escalator-up.svg new file mode 100644 index 00000000..c1114404 --- /dev/null +++ b/doc/theme/material/.icons/material/escalator-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/escalator.svg b/doc/theme/material/.icons/material/escalator.svg new file mode 100644 index 00000000..fe35fc10 --- /dev/null +++ b/doc/theme/material/.icons/material/escalator.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/eslint.svg b/doc/theme/material/.icons/material/eslint.svg new file mode 100644 index 00000000..31113a4f --- /dev/null +++ b/doc/theme/material/.icons/material/eslint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/et.svg b/doc/theme/material/.icons/material/et.svg new file mode 100644 index 00000000..635c48cf --- /dev/null +++ b/doc/theme/material/.icons/material/et.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ethereum.svg b/doc/theme/material/.icons/material/ethereum.svg new file mode 100644 index 00000000..2b928366 --- /dev/null +++ b/doc/theme/material/.icons/material/ethereum.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ethernet-cable-off.svg b/doc/theme/material/.icons/material/ethernet-cable-off.svg new file mode 100644 index 00000000..fd615e1f --- /dev/null +++ b/doc/theme/material/.icons/material/ethernet-cable-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ethernet-cable.svg b/doc/theme/material/.icons/material/ethernet-cable.svg new file mode 100644 index 00000000..4f58688c --- /dev/null +++ b/doc/theme/material/.icons/material/ethernet-cable.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ethernet.svg b/doc/theme/material/.icons/material/ethernet.svg new file mode 100644 index 00000000..5302c27a --- /dev/null +++ b/doc/theme/material/.icons/material/ethernet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ev-station.svg b/doc/theme/material/.icons/material/ev-station.svg new file mode 100644 index 00000000..b3d8d503 --- /dev/null +++ b/doc/theme/material/.icons/material/ev-station.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/evernote.svg b/doc/theme/material/.icons/material/evernote.svg new file mode 100644 index 00000000..d554945c --- /dev/null +++ b/doc/theme/material/.icons/material/evernote.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/excavator.svg b/doc/theme/material/.icons/material/excavator.svg new file mode 100644 index 00000000..57425f07 --- /dev/null +++ b/doc/theme/material/.icons/material/excavator.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/exclamation-thick.svg b/doc/theme/material/.icons/material/exclamation-thick.svg new file mode 100644 index 00000000..9dcfb094 --- /dev/null +++ b/doc/theme/material/.icons/material/exclamation-thick.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/exclamation.svg b/doc/theme/material/.icons/material/exclamation.svg new file mode 100644 index 00000000..8288f1bb --- /dev/null +++ b/doc/theme/material/.icons/material/exclamation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/exit-run.svg b/doc/theme/material/.icons/material/exit-run.svg new file mode 100644 index 00000000..827a353d --- /dev/null +++ b/doc/theme/material/.icons/material/exit-run.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/exit-to-app.svg b/doc/theme/material/.icons/material/exit-to-app.svg new file mode 100644 index 00000000..f8147415 --- /dev/null +++ b/doc/theme/material/.icons/material/exit-to-app.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/expand-all-outline.svg b/doc/theme/material/.icons/material/expand-all-outline.svg new file mode 100644 index 00000000..840d6452 --- /dev/null +++ b/doc/theme/material/.icons/material/expand-all-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/expand-all.svg b/doc/theme/material/.icons/material/expand-all.svg new file mode 100644 index 00000000..0681d162 --- /dev/null +++ b/doc/theme/material/.icons/material/expand-all.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/expansion-card-variant.svg b/doc/theme/material/.icons/material/expansion-card-variant.svg new file mode 100644 index 00000000..eb006bc3 --- /dev/null +++ b/doc/theme/material/.icons/material/expansion-card-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/expansion-card.svg b/doc/theme/material/.icons/material/expansion-card.svg new file mode 100644 index 00000000..3ddf4651 --- /dev/null +++ b/doc/theme/material/.icons/material/expansion-card.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/exponent-box.svg b/doc/theme/material/.icons/material/exponent-box.svg new file mode 100644 index 00000000..e5020b3b --- /dev/null +++ b/doc/theme/material/.icons/material/exponent-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/exponent.svg b/doc/theme/material/.icons/material/exponent.svg new file mode 100644 index 00000000..11dc82d3 --- /dev/null +++ b/doc/theme/material/.icons/material/exponent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/export-variant.svg b/doc/theme/material/.icons/material/export-variant.svg new file mode 100644 index 00000000..32900540 --- /dev/null +++ b/doc/theme/material/.icons/material/export-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/export.svg b/doc/theme/material/.icons/material/export.svg new file mode 100644 index 00000000..735d4150 --- /dev/null +++ b/doc/theme/material/.icons/material/export.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/eye-check-outline.svg b/doc/theme/material/.icons/material/eye-check-outline.svg new file mode 100644 index 00000000..af1cd83e --- /dev/null +++ b/doc/theme/material/.icons/material/eye-check-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/eye-check.svg b/doc/theme/material/.icons/material/eye-check.svg new file mode 100644 index 00000000..1a4c799d --- /dev/null +++ b/doc/theme/material/.icons/material/eye-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/eye-circle-outline.svg b/doc/theme/material/.icons/material/eye-circle-outline.svg new file mode 100644 index 00000000..85dd3829 --- /dev/null +++ b/doc/theme/material/.icons/material/eye-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/eye-circle.svg b/doc/theme/material/.icons/material/eye-circle.svg new file mode 100644 index 00000000..3549f021 --- /dev/null +++ b/doc/theme/material/.icons/material/eye-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/eye-minus-outline.svg b/doc/theme/material/.icons/material/eye-minus-outline.svg new file mode 100644 index 00000000..640633fc --- /dev/null +++ b/doc/theme/material/.icons/material/eye-minus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/eye-minus.svg b/doc/theme/material/.icons/material/eye-minus.svg new file mode 100644 index 00000000..71e1bfbb --- /dev/null +++ b/doc/theme/material/.icons/material/eye-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/eye-off-outline.svg b/doc/theme/material/.icons/material/eye-off-outline.svg new file mode 100644 index 00000000..9319b4e0 --- /dev/null +++ b/doc/theme/material/.icons/material/eye-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/eye-off.svg b/doc/theme/material/.icons/material/eye-off.svg new file mode 100644 index 00000000..80e9a2db --- /dev/null +++ b/doc/theme/material/.icons/material/eye-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/eye-outline.svg b/doc/theme/material/.icons/material/eye-outline.svg new file mode 100644 index 00000000..b2999070 --- /dev/null +++ b/doc/theme/material/.icons/material/eye-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/eye-plus-outline.svg b/doc/theme/material/.icons/material/eye-plus-outline.svg new file mode 100644 index 00000000..e0e0273a --- /dev/null +++ b/doc/theme/material/.icons/material/eye-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/eye-plus.svg b/doc/theme/material/.icons/material/eye-plus.svg new file mode 100644 index 00000000..a26eddb6 --- /dev/null +++ b/doc/theme/material/.icons/material/eye-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/eye-settings-outline.svg b/doc/theme/material/.icons/material/eye-settings-outline.svg new file mode 100644 index 00000000..ae8c0f93 --- /dev/null +++ b/doc/theme/material/.icons/material/eye-settings-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/eye-settings.svg b/doc/theme/material/.icons/material/eye-settings.svg new file mode 100644 index 00000000..6a0cbb69 --- /dev/null +++ b/doc/theme/material/.icons/material/eye-settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/eye.svg b/doc/theme/material/.icons/material/eye.svg new file mode 100644 index 00000000..5c8f02a0 --- /dev/null +++ b/doc/theme/material/.icons/material/eye.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/eyedropper-minus.svg b/doc/theme/material/.icons/material/eyedropper-minus.svg new file mode 100644 index 00000000..2b61cc86 --- /dev/null +++ b/doc/theme/material/.icons/material/eyedropper-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/eyedropper-off.svg b/doc/theme/material/.icons/material/eyedropper-off.svg new file mode 100644 index 00000000..5e4fdc81 --- /dev/null +++ b/doc/theme/material/.icons/material/eyedropper-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/eyedropper-plus.svg b/doc/theme/material/.icons/material/eyedropper-plus.svg new file mode 100644 index 00000000..004e24ec --- /dev/null +++ b/doc/theme/material/.icons/material/eyedropper-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/eyedropper-remove.svg b/doc/theme/material/.icons/material/eyedropper-remove.svg new file mode 100644 index 00000000..24bbfc50 --- /dev/null +++ b/doc/theme/material/.icons/material/eyedropper-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/eyedropper-variant.svg b/doc/theme/material/.icons/material/eyedropper-variant.svg new file mode 100644 index 00000000..51973c4d --- /dev/null +++ b/doc/theme/material/.icons/material/eyedropper-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/eyedropper.svg b/doc/theme/material/.icons/material/eyedropper.svg new file mode 100644 index 00000000..31680d06 --- /dev/null +++ b/doc/theme/material/.icons/material/eyedropper.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/face-agent.svg b/doc/theme/material/.icons/material/face-agent.svg new file mode 100644 index 00000000..c1a420f1 --- /dev/null +++ b/doc/theme/material/.icons/material/face-agent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/face-outline.svg b/doc/theme/material/.icons/material/face-outline.svg new file mode 100644 index 00000000..32fb8fea --- /dev/null +++ b/doc/theme/material/.icons/material/face-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/face-profile-woman.svg b/doc/theme/material/.icons/material/face-profile-woman.svg new file mode 100644 index 00000000..4f2362ba --- /dev/null +++ b/doc/theme/material/.icons/material/face-profile-woman.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/face-profile.svg b/doc/theme/material/.icons/material/face-profile.svg new file mode 100644 index 00000000..c351f2c1 --- /dev/null +++ b/doc/theme/material/.icons/material/face-profile.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/face-recognition.svg b/doc/theme/material/.icons/material/face-recognition.svg new file mode 100644 index 00000000..ead35f76 --- /dev/null +++ b/doc/theme/material/.icons/material/face-recognition.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/face-woman-outline.svg b/doc/theme/material/.icons/material/face-woman-outline.svg new file mode 100644 index 00000000..feea3ce2 --- /dev/null +++ b/doc/theme/material/.icons/material/face-woman-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/face-woman.svg b/doc/theme/material/.icons/material/face-woman.svg new file mode 100644 index 00000000..5de191e1 --- /dev/null +++ b/doc/theme/material/.icons/material/face-woman.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/face.svg b/doc/theme/material/.icons/material/face.svg new file mode 100644 index 00000000..f1f82526 --- /dev/null +++ b/doc/theme/material/.icons/material/face.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/facebook-messenger.svg b/doc/theme/material/.icons/material/facebook-messenger.svg new file mode 100644 index 00000000..98c39c94 --- /dev/null +++ b/doc/theme/material/.icons/material/facebook-messenger.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/facebook-workplace.svg b/doc/theme/material/.icons/material/facebook-workplace.svg new file mode 100644 index 00000000..c1104eea --- /dev/null +++ b/doc/theme/material/.icons/material/facebook-workplace.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/facebook.svg b/doc/theme/material/.icons/material/facebook.svg new file mode 100644 index 00000000..71006405 --- /dev/null +++ b/doc/theme/material/.icons/material/facebook.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/factory.svg b/doc/theme/material/.icons/material/factory.svg new file mode 100644 index 00000000..a455ca64 --- /dev/null +++ b/doc/theme/material/.icons/material/factory.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fan-off.svg b/doc/theme/material/.icons/material/fan-off.svg new file mode 100644 index 00000000..c12b0584 --- /dev/null +++ b/doc/theme/material/.icons/material/fan-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fan.svg b/doc/theme/material/.icons/material/fan.svg new file mode 100644 index 00000000..35374cb2 --- /dev/null +++ b/doc/theme/material/.icons/material/fan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fast-forward-10.svg b/doc/theme/material/.icons/material/fast-forward-10.svg new file mode 100644 index 00000000..95413f32 --- /dev/null +++ b/doc/theme/material/.icons/material/fast-forward-10.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fast-forward-30.svg b/doc/theme/material/.icons/material/fast-forward-30.svg new file mode 100644 index 00000000..6fed60a9 --- /dev/null +++ b/doc/theme/material/.icons/material/fast-forward-30.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fast-forward-5.svg b/doc/theme/material/.icons/material/fast-forward-5.svg new file mode 100644 index 00000000..8654742f --- /dev/null +++ b/doc/theme/material/.icons/material/fast-forward-5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fast-forward-outline.svg b/doc/theme/material/.icons/material/fast-forward-outline.svg new file mode 100644 index 00000000..e690ddb4 --- /dev/null +++ b/doc/theme/material/.icons/material/fast-forward-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fast-forward.svg b/doc/theme/material/.icons/material/fast-forward.svg new file mode 100644 index 00000000..75f45314 --- /dev/null +++ b/doc/theme/material/.icons/material/fast-forward.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fax.svg b/doc/theme/material/.icons/material/fax.svg new file mode 100644 index 00000000..4dcdf007 --- /dev/null +++ b/doc/theme/material/.icons/material/fax.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/feather.svg b/doc/theme/material/.icons/material/feather.svg new file mode 100644 index 00000000..b86c5ba1 --- /dev/null +++ b/doc/theme/material/.icons/material/feather.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/feature-search-outline.svg b/doc/theme/material/.icons/material/feature-search-outline.svg new file mode 100644 index 00000000..412fe16c --- /dev/null +++ b/doc/theme/material/.icons/material/feature-search-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/feature-search.svg b/doc/theme/material/.icons/material/feature-search.svg new file mode 100644 index 00000000..79b0943b --- /dev/null +++ b/doc/theme/material/.icons/material/feature-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fedora.svg b/doc/theme/material/.icons/material/fedora.svg new file mode 100644 index 00000000..08854fc8 --- /dev/null +++ b/doc/theme/material/.icons/material/fedora.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ferris-wheel.svg b/doc/theme/material/.icons/material/ferris-wheel.svg new file mode 100644 index 00000000..5c039d2a --- /dev/null +++ b/doc/theme/material/.icons/material/ferris-wheel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ferry.svg b/doc/theme/material/.icons/material/ferry.svg new file mode 100644 index 00000000..924fff58 --- /dev/null +++ b/doc/theme/material/.icons/material/ferry.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-account-outline.svg b/doc/theme/material/.icons/material/file-account-outline.svg new file mode 100644 index 00000000..921f00f7 --- /dev/null +++ b/doc/theme/material/.icons/material/file-account-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-account.svg b/doc/theme/material/.icons/material/file-account.svg new file mode 100644 index 00000000..c4ada31f --- /dev/null +++ b/doc/theme/material/.icons/material/file-account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-alert-outline.svg b/doc/theme/material/.icons/material/file-alert-outline.svg new file mode 100644 index 00000000..c5770625 --- /dev/null +++ b/doc/theme/material/.icons/material/file-alert-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-alert.svg b/doc/theme/material/.icons/material/file-alert.svg new file mode 100644 index 00000000..11ecbcdc --- /dev/null +++ b/doc/theme/material/.icons/material/file-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-cabinet.svg b/doc/theme/material/.icons/material/file-cabinet.svg new file mode 100644 index 00000000..0aa9d95b --- /dev/null +++ b/doc/theme/material/.icons/material/file-cabinet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-cad-box.svg b/doc/theme/material/.icons/material/file-cad-box.svg new file mode 100644 index 00000000..682ab45d --- /dev/null +++ b/doc/theme/material/.icons/material/file-cad-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-cad.svg b/doc/theme/material/.icons/material/file-cad.svg new file mode 100644 index 00000000..fa0034de --- /dev/null +++ b/doc/theme/material/.icons/material/file-cad.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-cancel-outline.svg b/doc/theme/material/.icons/material/file-cancel-outline.svg new file mode 100644 index 00000000..dbe2ab9a --- /dev/null +++ b/doc/theme/material/.icons/material/file-cancel-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-cancel.svg b/doc/theme/material/.icons/material/file-cancel.svg new file mode 100644 index 00000000..0b0f10fe --- /dev/null +++ b/doc/theme/material/.icons/material/file-cancel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-certificate-outline.svg b/doc/theme/material/.icons/material/file-certificate-outline.svg new file mode 100644 index 00000000..9ff25677 --- /dev/null +++ b/doc/theme/material/.icons/material/file-certificate-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-certificate.svg b/doc/theme/material/.icons/material/file-certificate.svg new file mode 100644 index 00000000..cb053d74 --- /dev/null +++ b/doc/theme/material/.icons/material/file-certificate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-chart-outline.svg b/doc/theme/material/.icons/material/file-chart-outline.svg new file mode 100644 index 00000000..38e3caf3 --- /dev/null +++ b/doc/theme/material/.icons/material/file-chart-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-chart.svg b/doc/theme/material/.icons/material/file-chart.svg new file mode 100644 index 00000000..825c164d --- /dev/null +++ b/doc/theme/material/.icons/material/file-chart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-check-outline.svg b/doc/theme/material/.icons/material/file-check-outline.svg new file mode 100644 index 00000000..c349b9f0 --- /dev/null +++ b/doc/theme/material/.icons/material/file-check-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-check.svg b/doc/theme/material/.icons/material/file-check.svg new file mode 100644 index 00000000..a665ba96 --- /dev/null +++ b/doc/theme/material/.icons/material/file-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-clock-outline.svg b/doc/theme/material/.icons/material/file-clock-outline.svg new file mode 100644 index 00000000..aba8d1f6 --- /dev/null +++ b/doc/theme/material/.icons/material/file-clock-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-clock.svg b/doc/theme/material/.icons/material/file-clock.svg new file mode 100644 index 00000000..6c445657 --- /dev/null +++ b/doc/theme/material/.icons/material/file-clock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-cloud-outline.svg b/doc/theme/material/.icons/material/file-cloud-outline.svg new file mode 100644 index 00000000..37e462aa --- /dev/null +++ b/doc/theme/material/.icons/material/file-cloud-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-cloud.svg b/doc/theme/material/.icons/material/file-cloud.svg new file mode 100644 index 00000000..5a4d0bb8 --- /dev/null +++ b/doc/theme/material/.icons/material/file-cloud.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-code-outline.svg b/doc/theme/material/.icons/material/file-code-outline.svg new file mode 100644 index 00000000..834b1486 --- /dev/null +++ b/doc/theme/material/.icons/material/file-code-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-code.svg b/doc/theme/material/.icons/material/file-code.svg new file mode 100644 index 00000000..48237d6b --- /dev/null +++ b/doc/theme/material/.icons/material/file-code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-cog-outline.svg b/doc/theme/material/.icons/material/file-cog-outline.svg new file mode 100644 index 00000000..76c81def --- /dev/null +++ b/doc/theme/material/.icons/material/file-cog-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-cog.svg b/doc/theme/material/.icons/material/file-cog.svg new file mode 100644 index 00000000..a4bd9fb9 --- /dev/null +++ b/doc/theme/material/.icons/material/file-cog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-compare.svg b/doc/theme/material/.icons/material/file-compare.svg new file mode 100644 index 00000000..a01878b5 --- /dev/null +++ b/doc/theme/material/.icons/material/file-compare.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-delimited-outline.svg b/doc/theme/material/.icons/material/file-delimited-outline.svg new file mode 100644 index 00000000..9972dc9c --- /dev/null +++ b/doc/theme/material/.icons/material/file-delimited-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-delimited.svg b/doc/theme/material/.icons/material/file-delimited.svg new file mode 100644 index 00000000..e3a94bc6 --- /dev/null +++ b/doc/theme/material/.icons/material/file-delimited.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-document-edit-outline.svg b/doc/theme/material/.icons/material/file-document-edit-outline.svg new file mode 100644 index 00000000..2ed6d7f7 --- /dev/null +++ b/doc/theme/material/.icons/material/file-document-edit-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-document-edit.svg b/doc/theme/material/.icons/material/file-document-edit.svg new file mode 100644 index 00000000..0a6ce0ed --- /dev/null +++ b/doc/theme/material/.icons/material/file-document-edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-document-outline.svg b/doc/theme/material/.icons/material/file-document-outline.svg new file mode 100644 index 00000000..7da78b24 --- /dev/null +++ b/doc/theme/material/.icons/material/file-document-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-document.svg b/doc/theme/material/.icons/material/file-document.svg new file mode 100644 index 00000000..86b0320a --- /dev/null +++ b/doc/theme/material/.icons/material/file-document.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-download-outline.svg b/doc/theme/material/.icons/material/file-download-outline.svg new file mode 100644 index 00000000..43833cb7 --- /dev/null +++ b/doc/theme/material/.icons/material/file-download-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-download.svg b/doc/theme/material/.icons/material/file-download.svg new file mode 100644 index 00000000..870d667b --- /dev/null +++ b/doc/theme/material/.icons/material/file-download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-edit-outline.svg b/doc/theme/material/.icons/material/file-edit-outline.svg new file mode 100644 index 00000000..fdf3ce90 --- /dev/null +++ b/doc/theme/material/.icons/material/file-edit-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-edit.svg b/doc/theme/material/.icons/material/file-edit.svg new file mode 100644 index 00000000..3846090a --- /dev/null +++ b/doc/theme/material/.icons/material/file-edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-excel-box-outline.svg b/doc/theme/material/.icons/material/file-excel-box-outline.svg new file mode 100644 index 00000000..cbc2b512 --- /dev/null +++ b/doc/theme/material/.icons/material/file-excel-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-excel-box.svg b/doc/theme/material/.icons/material/file-excel-box.svg new file mode 100644 index 00000000..d88ec148 --- /dev/null +++ b/doc/theme/material/.icons/material/file-excel-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-excel-outline.svg b/doc/theme/material/.icons/material/file-excel-outline.svg new file mode 100644 index 00000000..329a5be6 --- /dev/null +++ b/doc/theme/material/.icons/material/file-excel-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-excel.svg b/doc/theme/material/.icons/material/file-excel.svg new file mode 100644 index 00000000..12bc7734 --- /dev/null +++ b/doc/theme/material/.icons/material/file-excel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-export-outline.svg b/doc/theme/material/.icons/material/file-export-outline.svg new file mode 100644 index 00000000..3206bf61 --- /dev/null +++ b/doc/theme/material/.icons/material/file-export-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-export.svg b/doc/theme/material/.icons/material/file-export.svg new file mode 100644 index 00000000..09dbb20d --- /dev/null +++ b/doc/theme/material/.icons/material/file-export.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-eye-outline.svg b/doc/theme/material/.icons/material/file-eye-outline.svg new file mode 100644 index 00000000..e11e421d --- /dev/null +++ b/doc/theme/material/.icons/material/file-eye-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-eye.svg b/doc/theme/material/.icons/material/file-eye.svg new file mode 100644 index 00000000..1a40e1b9 --- /dev/null +++ b/doc/theme/material/.icons/material/file-eye.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-find-outline.svg b/doc/theme/material/.icons/material/file-find-outline.svg new file mode 100644 index 00000000..f6f608e2 --- /dev/null +++ b/doc/theme/material/.icons/material/file-find-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-find.svg b/doc/theme/material/.icons/material/file-find.svg new file mode 100644 index 00000000..d52ca311 --- /dev/null +++ b/doc/theme/material/.icons/material/file-find.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-hidden.svg b/doc/theme/material/.icons/material/file-hidden.svg new file mode 100644 index 00000000..93e06821 --- /dev/null +++ b/doc/theme/material/.icons/material/file-hidden.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-image-outline.svg b/doc/theme/material/.icons/material/file-image-outline.svg new file mode 100644 index 00000000..a70e0683 --- /dev/null +++ b/doc/theme/material/.icons/material/file-image-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-image.svg b/doc/theme/material/.icons/material/file-image.svg new file mode 100644 index 00000000..0ac1bda0 --- /dev/null +++ b/doc/theme/material/.icons/material/file-image.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-import-outline.svg b/doc/theme/material/.icons/material/file-import-outline.svg new file mode 100644 index 00000000..6b86de93 --- /dev/null +++ b/doc/theme/material/.icons/material/file-import-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-import.svg b/doc/theme/material/.icons/material/file-import.svg new file mode 100644 index 00000000..05338b80 --- /dev/null +++ b/doc/theme/material/.icons/material/file-import.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-key-outline.svg b/doc/theme/material/.icons/material/file-key-outline.svg new file mode 100644 index 00000000..fd49da16 --- /dev/null +++ b/doc/theme/material/.icons/material/file-key-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-key.svg b/doc/theme/material/.icons/material/file-key.svg new file mode 100644 index 00000000..3d5a314b --- /dev/null +++ b/doc/theme/material/.icons/material/file-key.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-link-outline.svg b/doc/theme/material/.icons/material/file-link-outline.svg new file mode 100644 index 00000000..8bff7c89 --- /dev/null +++ b/doc/theme/material/.icons/material/file-link-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-link.svg b/doc/theme/material/.icons/material/file-link.svg new file mode 100644 index 00000000..20ee84c8 --- /dev/null +++ b/doc/theme/material/.icons/material/file-link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-lock-outline.svg b/doc/theme/material/.icons/material/file-lock-outline.svg new file mode 100644 index 00000000..15a020fb --- /dev/null +++ b/doc/theme/material/.icons/material/file-lock-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-lock.svg b/doc/theme/material/.icons/material/file-lock.svg new file mode 100644 index 00000000..fa4b42d3 --- /dev/null +++ b/doc/theme/material/.icons/material/file-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-move-outline.svg b/doc/theme/material/.icons/material/file-move-outline.svg new file mode 100644 index 00000000..c5fa8fec --- /dev/null +++ b/doc/theme/material/.icons/material/file-move-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-move.svg b/doc/theme/material/.icons/material/file-move.svg new file mode 100644 index 00000000..037cf5f7 --- /dev/null +++ b/doc/theme/material/.icons/material/file-move.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-multiple-outline.svg b/doc/theme/material/.icons/material/file-multiple-outline.svg new file mode 100644 index 00000000..0b3860f0 --- /dev/null +++ b/doc/theme/material/.icons/material/file-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-multiple.svg b/doc/theme/material/.icons/material/file-multiple.svg new file mode 100644 index 00000000..3a950233 --- /dev/null +++ b/doc/theme/material/.icons/material/file-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-music-outline.svg b/doc/theme/material/.icons/material/file-music-outline.svg new file mode 100644 index 00000000..bfdf751b --- /dev/null +++ b/doc/theme/material/.icons/material/file-music-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-music.svg b/doc/theme/material/.icons/material/file-music.svg new file mode 100644 index 00000000..c677c283 --- /dev/null +++ b/doc/theme/material/.icons/material/file-music.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-outline.svg b/doc/theme/material/.icons/material/file-outline.svg new file mode 100644 index 00000000..dce81c85 --- /dev/null +++ b/doc/theme/material/.icons/material/file-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-pdf-box-outline.svg b/doc/theme/material/.icons/material/file-pdf-box-outline.svg new file mode 100644 index 00000000..3da5ad50 --- /dev/null +++ b/doc/theme/material/.icons/material/file-pdf-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-pdf-box.svg b/doc/theme/material/.icons/material/file-pdf-box.svg new file mode 100644 index 00000000..77de5b82 --- /dev/null +++ b/doc/theme/material/.icons/material/file-pdf-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-pdf-outline.svg b/doc/theme/material/.icons/material/file-pdf-outline.svg new file mode 100644 index 00000000..114197d3 --- /dev/null +++ b/doc/theme/material/.icons/material/file-pdf-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-pdf.svg b/doc/theme/material/.icons/material/file-pdf.svg new file mode 100644 index 00000000..4240e271 --- /dev/null +++ b/doc/theme/material/.icons/material/file-pdf.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-percent-outline.svg b/doc/theme/material/.icons/material/file-percent-outline.svg new file mode 100644 index 00000000..b7d6cfd4 --- /dev/null +++ b/doc/theme/material/.icons/material/file-percent-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-percent.svg b/doc/theme/material/.icons/material/file-percent.svg new file mode 100644 index 00000000..1b2db9fd --- /dev/null +++ b/doc/theme/material/.icons/material/file-percent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-phone-outline.svg b/doc/theme/material/.icons/material/file-phone-outline.svg new file mode 100644 index 00000000..864846f4 --- /dev/null +++ b/doc/theme/material/.icons/material/file-phone-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-phone.svg b/doc/theme/material/.icons/material/file-phone.svg new file mode 100644 index 00000000..3ed8d716 --- /dev/null +++ b/doc/theme/material/.icons/material/file-phone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-plus-outline.svg b/doc/theme/material/.icons/material/file-plus-outline.svg new file mode 100644 index 00000000..481f5d1e --- /dev/null +++ b/doc/theme/material/.icons/material/file-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-plus.svg b/doc/theme/material/.icons/material/file-plus.svg new file mode 100644 index 00000000..6d7fa4b3 --- /dev/null +++ b/doc/theme/material/.icons/material/file-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-powerpoint-box-outline.svg b/doc/theme/material/.icons/material/file-powerpoint-box-outline.svg new file mode 100644 index 00000000..674a94db --- /dev/null +++ b/doc/theme/material/.icons/material/file-powerpoint-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-powerpoint-box.svg b/doc/theme/material/.icons/material/file-powerpoint-box.svg new file mode 100644 index 00000000..3417ae65 --- /dev/null +++ b/doc/theme/material/.icons/material/file-powerpoint-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-powerpoint-outline.svg b/doc/theme/material/.icons/material/file-powerpoint-outline.svg new file mode 100644 index 00000000..6890f2d2 --- /dev/null +++ b/doc/theme/material/.icons/material/file-powerpoint-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-powerpoint.svg b/doc/theme/material/.icons/material/file-powerpoint.svg new file mode 100644 index 00000000..aa8361cc --- /dev/null +++ b/doc/theme/material/.icons/material/file-powerpoint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-presentation-box.svg b/doc/theme/material/.icons/material/file-presentation-box.svg new file mode 100644 index 00000000..3b61eb7b --- /dev/null +++ b/doc/theme/material/.icons/material/file-presentation-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-question-outline.svg b/doc/theme/material/.icons/material/file-question-outline.svg new file mode 100644 index 00000000..f23a02d6 --- /dev/null +++ b/doc/theme/material/.icons/material/file-question-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-question.svg b/doc/theme/material/.icons/material/file-question.svg new file mode 100644 index 00000000..36001e6b --- /dev/null +++ b/doc/theme/material/.icons/material/file-question.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-refresh-outline.svg b/doc/theme/material/.icons/material/file-refresh-outline.svg new file mode 100644 index 00000000..c464cf4d --- /dev/null +++ b/doc/theme/material/.icons/material/file-refresh-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-refresh.svg b/doc/theme/material/.icons/material/file-refresh.svg new file mode 100644 index 00000000..8efdd602 --- /dev/null +++ b/doc/theme/material/.icons/material/file-refresh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-remove-outline.svg b/doc/theme/material/.icons/material/file-remove-outline.svg new file mode 100644 index 00000000..f25f5824 --- /dev/null +++ b/doc/theme/material/.icons/material/file-remove-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-remove.svg b/doc/theme/material/.icons/material/file-remove.svg new file mode 100644 index 00000000..4bc0651e --- /dev/null +++ b/doc/theme/material/.icons/material/file-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-replace-outline.svg b/doc/theme/material/.icons/material/file-replace-outline.svg new file mode 100644 index 00000000..6a67c600 --- /dev/null +++ b/doc/theme/material/.icons/material/file-replace-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-replace.svg b/doc/theme/material/.icons/material/file-replace.svg new file mode 100644 index 00000000..c15df936 --- /dev/null +++ b/doc/theme/material/.icons/material/file-replace.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-restore-outline.svg b/doc/theme/material/.icons/material/file-restore-outline.svg new file mode 100644 index 00000000..a453fd17 --- /dev/null +++ b/doc/theme/material/.icons/material/file-restore-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-restore.svg b/doc/theme/material/.icons/material/file-restore.svg new file mode 100644 index 00000000..305d2762 --- /dev/null +++ b/doc/theme/material/.icons/material/file-restore.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-search-outline.svg b/doc/theme/material/.icons/material/file-search-outline.svg new file mode 100644 index 00000000..9362e12e --- /dev/null +++ b/doc/theme/material/.icons/material/file-search-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-search.svg b/doc/theme/material/.icons/material/file-search.svg new file mode 100644 index 00000000..eae2c7d8 --- /dev/null +++ b/doc/theme/material/.icons/material/file-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-send-outline.svg b/doc/theme/material/.icons/material/file-send-outline.svg new file mode 100644 index 00000000..5f7a0e10 --- /dev/null +++ b/doc/theme/material/.icons/material/file-send-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-send.svg b/doc/theme/material/.icons/material/file-send.svg new file mode 100644 index 00000000..90a412d2 --- /dev/null +++ b/doc/theme/material/.icons/material/file-send.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-settings-outline.svg b/doc/theme/material/.icons/material/file-settings-outline.svg new file mode 100644 index 00000000..e5581c5e --- /dev/null +++ b/doc/theme/material/.icons/material/file-settings-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-settings.svg b/doc/theme/material/.icons/material/file-settings.svg new file mode 100644 index 00000000..adeea637 --- /dev/null +++ b/doc/theme/material/.icons/material/file-settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-star-outline.svg b/doc/theme/material/.icons/material/file-star-outline.svg new file mode 100644 index 00000000..f3423d5b --- /dev/null +++ b/doc/theme/material/.icons/material/file-star-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-star.svg b/doc/theme/material/.icons/material/file-star.svg new file mode 100644 index 00000000..a7867580 --- /dev/null +++ b/doc/theme/material/.icons/material/file-star.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-swap-outline.svg b/doc/theme/material/.icons/material/file-swap-outline.svg new file mode 100644 index 00000000..bcdda41c --- /dev/null +++ b/doc/theme/material/.icons/material/file-swap-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-swap.svg b/doc/theme/material/.icons/material/file-swap.svg new file mode 100644 index 00000000..03c67055 --- /dev/null +++ b/doc/theme/material/.icons/material/file-swap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-sync-outline.svg b/doc/theme/material/.icons/material/file-sync-outline.svg new file mode 100644 index 00000000..c874f110 --- /dev/null +++ b/doc/theme/material/.icons/material/file-sync-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-sync.svg b/doc/theme/material/.icons/material/file-sync.svg new file mode 100644 index 00000000..798c3913 --- /dev/null +++ b/doc/theme/material/.icons/material/file-sync.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-table-box-multiple-outline.svg b/doc/theme/material/.icons/material/file-table-box-multiple-outline.svg new file mode 100644 index 00000000..fe6d347d --- /dev/null +++ b/doc/theme/material/.icons/material/file-table-box-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-table-box-multiple.svg b/doc/theme/material/.icons/material/file-table-box-multiple.svg new file mode 100644 index 00000000..092ebca0 --- /dev/null +++ b/doc/theme/material/.icons/material/file-table-box-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-table-box-outline.svg b/doc/theme/material/.icons/material/file-table-box-outline.svg new file mode 100644 index 00000000..4b25c10b --- /dev/null +++ b/doc/theme/material/.icons/material/file-table-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-table-box.svg b/doc/theme/material/.icons/material/file-table-box.svg new file mode 100644 index 00000000..9736d0aa --- /dev/null +++ b/doc/theme/material/.icons/material/file-table-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-table-outline.svg b/doc/theme/material/.icons/material/file-table-outline.svg new file mode 100644 index 00000000..3f253f87 --- /dev/null +++ b/doc/theme/material/.icons/material/file-table-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-table.svg b/doc/theme/material/.icons/material/file-table.svg new file mode 100644 index 00000000..bf71b14a --- /dev/null +++ b/doc/theme/material/.icons/material/file-table.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-tree-outline.svg b/doc/theme/material/.icons/material/file-tree-outline.svg new file mode 100644 index 00000000..0e15430f --- /dev/null +++ b/doc/theme/material/.icons/material/file-tree-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-tree.svg b/doc/theme/material/.icons/material/file-tree.svg new file mode 100644 index 00000000..c637d71f --- /dev/null +++ b/doc/theme/material/.icons/material/file-tree.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-undo-outline.svg b/doc/theme/material/.icons/material/file-undo-outline.svg new file mode 100644 index 00000000..b6fcae8e --- /dev/null +++ b/doc/theme/material/.icons/material/file-undo-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-undo.svg b/doc/theme/material/.icons/material/file-undo.svg new file mode 100644 index 00000000..86f1ffaa --- /dev/null +++ b/doc/theme/material/.icons/material/file-undo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-upload-outline.svg b/doc/theme/material/.icons/material/file-upload-outline.svg new file mode 100644 index 00000000..61ba39f7 --- /dev/null +++ b/doc/theme/material/.icons/material/file-upload-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-upload.svg b/doc/theme/material/.icons/material/file-upload.svg new file mode 100644 index 00000000..4e1c6075 --- /dev/null +++ b/doc/theme/material/.icons/material/file-upload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-video-outline.svg b/doc/theme/material/.icons/material/file-video-outline.svg new file mode 100644 index 00000000..36ac9ba2 --- /dev/null +++ b/doc/theme/material/.icons/material/file-video-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-video.svg b/doc/theme/material/.icons/material/file-video.svg new file mode 100644 index 00000000..4105d9dd --- /dev/null +++ b/doc/theme/material/.icons/material/file-video.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-word-box-outline.svg b/doc/theme/material/.icons/material/file-word-box-outline.svg new file mode 100644 index 00000000..e77500fa --- /dev/null +++ b/doc/theme/material/.icons/material/file-word-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-word-box.svg b/doc/theme/material/.icons/material/file-word-box.svg new file mode 100644 index 00000000..2026e0c4 --- /dev/null +++ b/doc/theme/material/.icons/material/file-word-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-word-outline.svg b/doc/theme/material/.icons/material/file-word-outline.svg new file mode 100644 index 00000000..f82f83aa --- /dev/null +++ b/doc/theme/material/.icons/material/file-word-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file-word.svg b/doc/theme/material/.icons/material/file-word.svg new file mode 100644 index 00000000..72311177 --- /dev/null +++ b/doc/theme/material/.icons/material/file-word.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/file.svg b/doc/theme/material/.icons/material/file.svg new file mode 100644 index 00000000..241694b4 --- /dev/null +++ b/doc/theme/material/.icons/material/file.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/film.svg b/doc/theme/material/.icons/material/film.svg new file mode 100644 index 00000000..4af1ef2f --- /dev/null +++ b/doc/theme/material/.icons/material/film.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/filmstrip-box-multiple.svg b/doc/theme/material/.icons/material/filmstrip-box-multiple.svg new file mode 100644 index 00000000..df83d54d --- /dev/null +++ b/doc/theme/material/.icons/material/filmstrip-box-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/filmstrip-box.svg b/doc/theme/material/.icons/material/filmstrip-box.svg new file mode 100644 index 00000000..ba5c5176 --- /dev/null +++ b/doc/theme/material/.icons/material/filmstrip-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/filmstrip-off.svg b/doc/theme/material/.icons/material/filmstrip-off.svg new file mode 100644 index 00000000..209732ab --- /dev/null +++ b/doc/theme/material/.icons/material/filmstrip-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/filmstrip.svg b/doc/theme/material/.icons/material/filmstrip.svg new file mode 100644 index 00000000..b21cd9ae --- /dev/null +++ b/doc/theme/material/.icons/material/filmstrip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/filter-menu-outline.svg b/doc/theme/material/.icons/material/filter-menu-outline.svg new file mode 100644 index 00000000..aee310af --- /dev/null +++ b/doc/theme/material/.icons/material/filter-menu-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/filter-menu.svg b/doc/theme/material/.icons/material/filter-menu.svg new file mode 100644 index 00000000..01c9badc --- /dev/null +++ b/doc/theme/material/.icons/material/filter-menu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/filter-minus-outline.svg b/doc/theme/material/.icons/material/filter-minus-outline.svg new file mode 100644 index 00000000..18c1d07d --- /dev/null +++ b/doc/theme/material/.icons/material/filter-minus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/filter-minus.svg b/doc/theme/material/.icons/material/filter-minus.svg new file mode 100644 index 00000000..a2ce2616 --- /dev/null +++ b/doc/theme/material/.icons/material/filter-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/filter-outline.svg b/doc/theme/material/.icons/material/filter-outline.svg new file mode 100644 index 00000000..985da876 --- /dev/null +++ b/doc/theme/material/.icons/material/filter-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/filter-plus-outline.svg b/doc/theme/material/.icons/material/filter-plus-outline.svg new file mode 100644 index 00000000..e306c2b4 --- /dev/null +++ b/doc/theme/material/.icons/material/filter-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/filter-plus.svg b/doc/theme/material/.icons/material/filter-plus.svg new file mode 100644 index 00000000..303e219c --- /dev/null +++ b/doc/theme/material/.icons/material/filter-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/filter-remove-outline.svg b/doc/theme/material/.icons/material/filter-remove-outline.svg new file mode 100644 index 00000000..e97a2a49 --- /dev/null +++ b/doc/theme/material/.icons/material/filter-remove-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/filter-remove.svg b/doc/theme/material/.icons/material/filter-remove.svg new file mode 100644 index 00000000..888d7184 --- /dev/null +++ b/doc/theme/material/.icons/material/filter-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/filter-variant-minus.svg b/doc/theme/material/.icons/material/filter-variant-minus.svg new file mode 100644 index 00000000..4230cc66 --- /dev/null +++ b/doc/theme/material/.icons/material/filter-variant-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/filter-variant-plus.svg b/doc/theme/material/.icons/material/filter-variant-plus.svg new file mode 100644 index 00000000..1dc17665 --- /dev/null +++ b/doc/theme/material/.icons/material/filter-variant-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/filter-variant-remove.svg b/doc/theme/material/.icons/material/filter-variant-remove.svg new file mode 100644 index 00000000..7aee3b72 --- /dev/null +++ b/doc/theme/material/.icons/material/filter-variant-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/filter-variant.svg b/doc/theme/material/.icons/material/filter-variant.svg new file mode 100644 index 00000000..fd96c28a --- /dev/null +++ b/doc/theme/material/.icons/material/filter-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/filter.svg b/doc/theme/material/.icons/material/filter.svg new file mode 100644 index 00000000..42bca90c --- /dev/null +++ b/doc/theme/material/.icons/material/filter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/finance.svg b/doc/theme/material/.icons/material/finance.svg new file mode 100644 index 00000000..ac59d119 --- /dev/null +++ b/doc/theme/material/.icons/material/finance.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/find-replace.svg b/doc/theme/material/.icons/material/find-replace.svg new file mode 100644 index 00000000..f672f797 --- /dev/null +++ b/doc/theme/material/.icons/material/find-replace.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fingerprint-off.svg b/doc/theme/material/.icons/material/fingerprint-off.svg new file mode 100644 index 00000000..c726b16b --- /dev/null +++ b/doc/theme/material/.icons/material/fingerprint-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fingerprint.svg b/doc/theme/material/.icons/material/fingerprint.svg new file mode 100644 index 00000000..463d6a69 --- /dev/null +++ b/doc/theme/material/.icons/material/fingerprint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fire-extinguisher.svg b/doc/theme/material/.icons/material/fire-extinguisher.svg new file mode 100644 index 00000000..92c60618 --- /dev/null +++ b/doc/theme/material/.icons/material/fire-extinguisher.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fire-hydrant-alert.svg b/doc/theme/material/.icons/material/fire-hydrant-alert.svg new file mode 100644 index 00000000..9177e7df --- /dev/null +++ b/doc/theme/material/.icons/material/fire-hydrant-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fire-hydrant-off.svg b/doc/theme/material/.icons/material/fire-hydrant-off.svg new file mode 100644 index 00000000..5a4e13d0 --- /dev/null +++ b/doc/theme/material/.icons/material/fire-hydrant-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fire-hydrant.svg b/doc/theme/material/.icons/material/fire-hydrant.svg new file mode 100644 index 00000000..bc28a86d --- /dev/null +++ b/doc/theme/material/.icons/material/fire-hydrant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fire-truck.svg b/doc/theme/material/.icons/material/fire-truck.svg new file mode 100644 index 00000000..9c69f136 --- /dev/null +++ b/doc/theme/material/.icons/material/fire-truck.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fire.svg b/doc/theme/material/.icons/material/fire.svg new file mode 100644 index 00000000..354333d4 --- /dev/null +++ b/doc/theme/material/.icons/material/fire.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/firebase.svg b/doc/theme/material/.icons/material/firebase.svg new file mode 100644 index 00000000..4bba065d --- /dev/null +++ b/doc/theme/material/.icons/material/firebase.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/firefox.svg b/doc/theme/material/.icons/material/firefox.svg new file mode 100644 index 00000000..56e02bd1 --- /dev/null +++ b/doc/theme/material/.icons/material/firefox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fireplace-off.svg b/doc/theme/material/.icons/material/fireplace-off.svg new file mode 100644 index 00000000..b864c79f --- /dev/null +++ b/doc/theme/material/.icons/material/fireplace-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fireplace.svg b/doc/theme/material/.icons/material/fireplace.svg new file mode 100644 index 00000000..fbd2a19e --- /dev/null +++ b/doc/theme/material/.icons/material/fireplace.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/firework.svg b/doc/theme/material/.icons/material/firework.svg new file mode 100644 index 00000000..c7edad68 --- /dev/null +++ b/doc/theme/material/.icons/material/firework.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fish-off.svg b/doc/theme/material/.icons/material/fish-off.svg new file mode 100644 index 00000000..c9e0b98f --- /dev/null +++ b/doc/theme/material/.icons/material/fish-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fish.svg b/doc/theme/material/.icons/material/fish.svg new file mode 100644 index 00000000..484a06a8 --- /dev/null +++ b/doc/theme/material/.icons/material/fish.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fishbowl-outline.svg b/doc/theme/material/.icons/material/fishbowl-outline.svg new file mode 100644 index 00000000..d3998852 --- /dev/null +++ b/doc/theme/material/.icons/material/fishbowl-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fishbowl.svg b/doc/theme/material/.icons/material/fishbowl.svg new file mode 100644 index 00000000..fc001d7c --- /dev/null +++ b/doc/theme/material/.icons/material/fishbowl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fit-to-page-outline.svg b/doc/theme/material/.icons/material/fit-to-page-outline.svg new file mode 100644 index 00000000..e277a3bd --- /dev/null +++ b/doc/theme/material/.icons/material/fit-to-page-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fit-to-page.svg b/doc/theme/material/.icons/material/fit-to-page.svg new file mode 100644 index 00000000..89e16636 --- /dev/null +++ b/doc/theme/material/.icons/material/fit-to-page.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flag-checkered.svg b/doc/theme/material/.icons/material/flag-checkered.svg new file mode 100644 index 00000000..73ed4f84 --- /dev/null +++ b/doc/theme/material/.icons/material/flag-checkered.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flag-minus-outline.svg b/doc/theme/material/.icons/material/flag-minus-outline.svg new file mode 100644 index 00000000..9ac78a48 --- /dev/null +++ b/doc/theme/material/.icons/material/flag-minus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flag-minus.svg b/doc/theme/material/.icons/material/flag-minus.svg new file mode 100644 index 00000000..243280f8 --- /dev/null +++ b/doc/theme/material/.icons/material/flag-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flag-outline.svg b/doc/theme/material/.icons/material/flag-outline.svg new file mode 100644 index 00000000..a3445b19 --- /dev/null +++ b/doc/theme/material/.icons/material/flag-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flag-plus-outline.svg b/doc/theme/material/.icons/material/flag-plus-outline.svg new file mode 100644 index 00000000..13b47a45 --- /dev/null +++ b/doc/theme/material/.icons/material/flag-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flag-plus.svg b/doc/theme/material/.icons/material/flag-plus.svg new file mode 100644 index 00000000..160aee3f --- /dev/null +++ b/doc/theme/material/.icons/material/flag-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flag-remove-outline.svg b/doc/theme/material/.icons/material/flag-remove-outline.svg new file mode 100644 index 00000000..65b21c87 --- /dev/null +++ b/doc/theme/material/.icons/material/flag-remove-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flag-remove.svg b/doc/theme/material/.icons/material/flag-remove.svg new file mode 100644 index 00000000..6ac45be4 --- /dev/null +++ b/doc/theme/material/.icons/material/flag-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flag-triangle.svg b/doc/theme/material/.icons/material/flag-triangle.svg new file mode 100644 index 00000000..c716ac76 --- /dev/null +++ b/doc/theme/material/.icons/material/flag-triangle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flag-variant-outline.svg b/doc/theme/material/.icons/material/flag-variant-outline.svg new file mode 100644 index 00000000..e6158796 --- /dev/null +++ b/doc/theme/material/.icons/material/flag-variant-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flag-variant.svg b/doc/theme/material/.icons/material/flag-variant.svg new file mode 100644 index 00000000..af01c379 --- /dev/null +++ b/doc/theme/material/.icons/material/flag-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flag.svg b/doc/theme/material/.icons/material/flag.svg new file mode 100644 index 00000000..edb9e252 --- /dev/null +++ b/doc/theme/material/.icons/material/flag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flare.svg b/doc/theme/material/.icons/material/flare.svg new file mode 100644 index 00000000..fedecbbf --- /dev/null +++ b/doc/theme/material/.icons/material/flare.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flash-alert-outline.svg b/doc/theme/material/.icons/material/flash-alert-outline.svg new file mode 100644 index 00000000..c9b1f344 --- /dev/null +++ b/doc/theme/material/.icons/material/flash-alert-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flash-alert.svg b/doc/theme/material/.icons/material/flash-alert.svg new file mode 100644 index 00000000..09ac1f45 --- /dev/null +++ b/doc/theme/material/.icons/material/flash-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flash-auto.svg b/doc/theme/material/.icons/material/flash-auto.svg new file mode 100644 index 00000000..0bc60553 --- /dev/null +++ b/doc/theme/material/.icons/material/flash-auto.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flash-circle.svg b/doc/theme/material/.icons/material/flash-circle.svg new file mode 100644 index 00000000..34bc0d63 --- /dev/null +++ b/doc/theme/material/.icons/material/flash-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flash-off.svg b/doc/theme/material/.icons/material/flash-off.svg new file mode 100644 index 00000000..b94f2d0a --- /dev/null +++ b/doc/theme/material/.icons/material/flash-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flash-outline.svg b/doc/theme/material/.icons/material/flash-outline.svg new file mode 100644 index 00000000..2cbb706b --- /dev/null +++ b/doc/theme/material/.icons/material/flash-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flash-red-eye.svg b/doc/theme/material/.icons/material/flash-red-eye.svg new file mode 100644 index 00000000..a7da97c8 --- /dev/null +++ b/doc/theme/material/.icons/material/flash-red-eye.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flash.svg b/doc/theme/material/.icons/material/flash.svg new file mode 100644 index 00000000..73f182a4 --- /dev/null +++ b/doc/theme/material/.icons/material/flash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flashlight-off.svg b/doc/theme/material/.icons/material/flashlight-off.svg new file mode 100644 index 00000000..1e64773e --- /dev/null +++ b/doc/theme/material/.icons/material/flashlight-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flashlight.svg b/doc/theme/material/.icons/material/flashlight.svg new file mode 100644 index 00000000..f9b4bc13 --- /dev/null +++ b/doc/theme/material/.icons/material/flashlight.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flask-empty-minus-outline.svg b/doc/theme/material/.icons/material/flask-empty-minus-outline.svg new file mode 100644 index 00000000..ae594e61 --- /dev/null +++ b/doc/theme/material/.icons/material/flask-empty-minus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flask-empty-minus.svg b/doc/theme/material/.icons/material/flask-empty-minus.svg new file mode 100644 index 00000000..dc0a6d9d --- /dev/null +++ b/doc/theme/material/.icons/material/flask-empty-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flask-empty-off-outline.svg b/doc/theme/material/.icons/material/flask-empty-off-outline.svg new file mode 100644 index 00000000..b88977e4 --- /dev/null +++ b/doc/theme/material/.icons/material/flask-empty-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flask-empty-off.svg b/doc/theme/material/.icons/material/flask-empty-off.svg new file mode 100644 index 00000000..ea1a9177 --- /dev/null +++ b/doc/theme/material/.icons/material/flask-empty-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flask-empty-outline.svg b/doc/theme/material/.icons/material/flask-empty-outline.svg new file mode 100644 index 00000000..96f9c098 --- /dev/null +++ b/doc/theme/material/.icons/material/flask-empty-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flask-empty-plus-outline.svg b/doc/theme/material/.icons/material/flask-empty-plus-outline.svg new file mode 100644 index 00000000..0edf98ae --- /dev/null +++ b/doc/theme/material/.icons/material/flask-empty-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flask-empty-plus.svg b/doc/theme/material/.icons/material/flask-empty-plus.svg new file mode 100644 index 00000000..4fa3f28c --- /dev/null +++ b/doc/theme/material/.icons/material/flask-empty-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flask-empty-remove-outline.svg b/doc/theme/material/.icons/material/flask-empty-remove-outline.svg new file mode 100644 index 00000000..e6fd7e8a --- /dev/null +++ b/doc/theme/material/.icons/material/flask-empty-remove-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flask-empty-remove.svg b/doc/theme/material/.icons/material/flask-empty-remove.svg new file mode 100644 index 00000000..99bdb1f8 --- /dev/null +++ b/doc/theme/material/.icons/material/flask-empty-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flask-empty.svg b/doc/theme/material/.icons/material/flask-empty.svg new file mode 100644 index 00000000..805df761 --- /dev/null +++ b/doc/theme/material/.icons/material/flask-empty.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flask-minus-outline.svg b/doc/theme/material/.icons/material/flask-minus-outline.svg new file mode 100644 index 00000000..d8b6fb72 --- /dev/null +++ b/doc/theme/material/.icons/material/flask-minus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flask-minus.svg b/doc/theme/material/.icons/material/flask-minus.svg new file mode 100644 index 00000000..64af4e13 --- /dev/null +++ b/doc/theme/material/.icons/material/flask-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flask-off-outline.svg b/doc/theme/material/.icons/material/flask-off-outline.svg new file mode 100644 index 00000000..a8b57b4b --- /dev/null +++ b/doc/theme/material/.icons/material/flask-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flask-off.svg b/doc/theme/material/.icons/material/flask-off.svg new file mode 100644 index 00000000..12411c4b --- /dev/null +++ b/doc/theme/material/.icons/material/flask-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flask-outline.svg b/doc/theme/material/.icons/material/flask-outline.svg new file mode 100644 index 00000000..5888a04b --- /dev/null +++ b/doc/theme/material/.icons/material/flask-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flask-plus-outline.svg b/doc/theme/material/.icons/material/flask-plus-outline.svg new file mode 100644 index 00000000..c3d04318 --- /dev/null +++ b/doc/theme/material/.icons/material/flask-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flask-plus.svg b/doc/theme/material/.icons/material/flask-plus.svg new file mode 100644 index 00000000..9a715da6 --- /dev/null +++ b/doc/theme/material/.icons/material/flask-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flask-remove-outline.svg b/doc/theme/material/.icons/material/flask-remove-outline.svg new file mode 100644 index 00000000..756b5a4b --- /dev/null +++ b/doc/theme/material/.icons/material/flask-remove-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flask-remove.svg b/doc/theme/material/.icons/material/flask-remove.svg new file mode 100644 index 00000000..8ddaa420 --- /dev/null +++ b/doc/theme/material/.icons/material/flask-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flask-round-bottom-empty-outline.svg b/doc/theme/material/.icons/material/flask-round-bottom-empty-outline.svg new file mode 100644 index 00000000..1a55c765 --- /dev/null +++ b/doc/theme/material/.icons/material/flask-round-bottom-empty-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flask-round-bottom-empty.svg b/doc/theme/material/.icons/material/flask-round-bottom-empty.svg new file mode 100644 index 00000000..fc94f819 --- /dev/null +++ b/doc/theme/material/.icons/material/flask-round-bottom-empty.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flask-round-bottom-outline.svg b/doc/theme/material/.icons/material/flask-round-bottom-outline.svg new file mode 100644 index 00000000..dfd2d05a --- /dev/null +++ b/doc/theme/material/.icons/material/flask-round-bottom-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flask-round-bottom.svg b/doc/theme/material/.icons/material/flask-round-bottom.svg new file mode 100644 index 00000000..10d45e72 --- /dev/null +++ b/doc/theme/material/.icons/material/flask-round-bottom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flask.svg b/doc/theme/material/.icons/material/flask.svg new file mode 100644 index 00000000..2db47f5d --- /dev/null +++ b/doc/theme/material/.icons/material/flask.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fleur-de-lis.svg b/doc/theme/material/.icons/material/fleur-de-lis.svg new file mode 100644 index 00000000..90c36ce9 --- /dev/null +++ b/doc/theme/material/.icons/material/fleur-de-lis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flip-horizontal.svg b/doc/theme/material/.icons/material/flip-horizontal.svg new file mode 100644 index 00000000..9518e5ee --- /dev/null +++ b/doc/theme/material/.icons/material/flip-horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flip-to-back.svg b/doc/theme/material/.icons/material/flip-to-back.svg new file mode 100644 index 00000000..a6cbe039 --- /dev/null +++ b/doc/theme/material/.icons/material/flip-to-back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flip-to-front.svg b/doc/theme/material/.icons/material/flip-to-front.svg new file mode 100644 index 00000000..c24e4210 --- /dev/null +++ b/doc/theme/material/.icons/material/flip-to-front.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flip-vertical.svg b/doc/theme/material/.icons/material/flip-vertical.svg new file mode 100644 index 00000000..88110c3a --- /dev/null +++ b/doc/theme/material/.icons/material/flip-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/floor-lamp-dual.svg b/doc/theme/material/.icons/material/floor-lamp-dual.svg new file mode 100644 index 00000000..a665a3db --- /dev/null +++ b/doc/theme/material/.icons/material/floor-lamp-dual.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/floor-lamp-variant.svg b/doc/theme/material/.icons/material/floor-lamp-variant.svg new file mode 100644 index 00000000..13e85b40 --- /dev/null +++ b/doc/theme/material/.icons/material/floor-lamp-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/floor-lamp.svg b/doc/theme/material/.icons/material/floor-lamp.svg new file mode 100644 index 00000000..aac6eef4 --- /dev/null +++ b/doc/theme/material/.icons/material/floor-lamp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/floor-plan.svg b/doc/theme/material/.icons/material/floor-plan.svg new file mode 100644 index 00000000..c1814dca --- /dev/null +++ b/doc/theme/material/.icons/material/floor-plan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/floppy-variant.svg b/doc/theme/material/.icons/material/floppy-variant.svg new file mode 100644 index 00000000..fbd9c733 --- /dev/null +++ b/doc/theme/material/.icons/material/floppy-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/floppy.svg b/doc/theme/material/.icons/material/floppy.svg new file mode 100644 index 00000000..74ba41f6 --- /dev/null +++ b/doc/theme/material/.icons/material/floppy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flower-outline.svg b/doc/theme/material/.icons/material/flower-outline.svg new file mode 100644 index 00000000..a75af02b --- /dev/null +++ b/doc/theme/material/.icons/material/flower-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flower-poppy.svg b/doc/theme/material/.icons/material/flower-poppy.svg new file mode 100644 index 00000000..20d273fc --- /dev/null +++ b/doc/theme/material/.icons/material/flower-poppy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flower-tulip-outline.svg b/doc/theme/material/.icons/material/flower-tulip-outline.svg new file mode 100644 index 00000000..0cc6f502 --- /dev/null +++ b/doc/theme/material/.icons/material/flower-tulip-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flower-tulip.svg b/doc/theme/material/.icons/material/flower-tulip.svg new file mode 100644 index 00000000..2bbcc013 --- /dev/null +++ b/doc/theme/material/.icons/material/flower-tulip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/flower.svg b/doc/theme/material/.icons/material/flower.svg new file mode 100644 index 00000000..b86c8530 --- /dev/null +++ b/doc/theme/material/.icons/material/flower.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/focus-auto.svg b/doc/theme/material/.icons/material/focus-auto.svg new file mode 100644 index 00000000..8311329e --- /dev/null +++ b/doc/theme/material/.icons/material/focus-auto.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/focus-field-horizontal.svg b/doc/theme/material/.icons/material/focus-field-horizontal.svg new file mode 100644 index 00000000..c91b27d7 --- /dev/null +++ b/doc/theme/material/.icons/material/focus-field-horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/focus-field-vertical.svg b/doc/theme/material/.icons/material/focus-field-vertical.svg new file mode 100644 index 00000000..22a74b79 --- /dev/null +++ b/doc/theme/material/.icons/material/focus-field-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/focus-field.svg b/doc/theme/material/.icons/material/focus-field.svg new file mode 100644 index 00000000..4ce5c9d0 --- /dev/null +++ b/doc/theme/material/.icons/material/focus-field.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-account-outline.svg b/doc/theme/material/.icons/material/folder-account-outline.svg new file mode 100644 index 00000000..b7fbaa4b --- /dev/null +++ b/doc/theme/material/.icons/material/folder-account-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-account.svg b/doc/theme/material/.icons/material/folder-account.svg new file mode 100644 index 00000000..d290245a --- /dev/null +++ b/doc/theme/material/.icons/material/folder-account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-alert-outline.svg b/doc/theme/material/.icons/material/folder-alert-outline.svg new file mode 100644 index 00000000..3caf61fb --- /dev/null +++ b/doc/theme/material/.icons/material/folder-alert-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-alert.svg b/doc/theme/material/.icons/material/folder-alert.svg new file mode 100644 index 00000000..29e758b2 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-clock-outline.svg b/doc/theme/material/.icons/material/folder-clock-outline.svg new file mode 100644 index 00000000..a0e21929 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-clock-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-clock.svg b/doc/theme/material/.icons/material/folder-clock.svg new file mode 100644 index 00000000..9330a7a2 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-clock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-cog-outline.svg b/doc/theme/material/.icons/material/folder-cog-outline.svg new file mode 100644 index 00000000..9b5e6f30 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-cog-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-cog.svg b/doc/theme/material/.icons/material/folder-cog.svg new file mode 100644 index 00000000..022c5216 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-cog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-download-outline.svg b/doc/theme/material/.icons/material/folder-download-outline.svg new file mode 100644 index 00000000..afafe5cb --- /dev/null +++ b/doc/theme/material/.icons/material/folder-download-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-download.svg b/doc/theme/material/.icons/material/folder-download.svg new file mode 100644 index 00000000..1c35afa9 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-edit-outline.svg b/doc/theme/material/.icons/material/folder-edit-outline.svg new file mode 100644 index 00000000..eae51f1f --- /dev/null +++ b/doc/theme/material/.icons/material/folder-edit-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-edit.svg b/doc/theme/material/.icons/material/folder-edit.svg new file mode 100644 index 00000000..05788e17 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-google-drive.svg b/doc/theme/material/.icons/material/folder-google-drive.svg new file mode 100644 index 00000000..1f3534b9 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-google-drive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-heart-outline.svg b/doc/theme/material/.icons/material/folder-heart-outline.svg new file mode 100644 index 00000000..ad967a34 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-heart-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-heart.svg b/doc/theme/material/.icons/material/folder-heart.svg new file mode 100644 index 00000000..ba685bd5 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-heart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-home-outline.svg b/doc/theme/material/.icons/material/folder-home-outline.svg new file mode 100644 index 00000000..7cab12b5 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-home-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-home.svg b/doc/theme/material/.icons/material/folder-home.svg new file mode 100644 index 00000000..9467841b --- /dev/null +++ b/doc/theme/material/.icons/material/folder-home.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-image.svg b/doc/theme/material/.icons/material/folder-image.svg new file mode 100644 index 00000000..f85a93d4 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-image.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-information-outline.svg b/doc/theme/material/.icons/material/folder-information-outline.svg new file mode 100644 index 00000000..094fd81a --- /dev/null +++ b/doc/theme/material/.icons/material/folder-information-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-information.svg b/doc/theme/material/.icons/material/folder-information.svg new file mode 100644 index 00000000..f7abacc6 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-information.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-key-network-outline.svg b/doc/theme/material/.icons/material/folder-key-network-outline.svg new file mode 100644 index 00000000..43fe52eb --- /dev/null +++ b/doc/theme/material/.icons/material/folder-key-network-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-key-network.svg b/doc/theme/material/.icons/material/folder-key-network.svg new file mode 100644 index 00000000..f43fff2d --- /dev/null +++ b/doc/theme/material/.icons/material/folder-key-network.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-key-outline.svg b/doc/theme/material/.icons/material/folder-key-outline.svg new file mode 100644 index 00000000..edf122f4 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-key-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-key.svg b/doc/theme/material/.icons/material/folder-key.svg new file mode 100644 index 00000000..f955fc1d --- /dev/null +++ b/doc/theme/material/.icons/material/folder-key.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-lock-open.svg b/doc/theme/material/.icons/material/folder-lock-open.svg new file mode 100644 index 00000000..85360194 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-lock-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-lock.svg b/doc/theme/material/.icons/material/folder-lock.svg new file mode 100644 index 00000000..f9ecffba --- /dev/null +++ b/doc/theme/material/.icons/material/folder-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-marker-outline.svg b/doc/theme/material/.icons/material/folder-marker-outline.svg new file mode 100644 index 00000000..d33c3bc8 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-marker-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-marker.svg b/doc/theme/material/.icons/material/folder-marker.svg new file mode 100644 index 00000000..99131cad --- /dev/null +++ b/doc/theme/material/.icons/material/folder-marker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-move-outline.svg b/doc/theme/material/.icons/material/folder-move-outline.svg new file mode 100644 index 00000000..65c24ebf --- /dev/null +++ b/doc/theme/material/.icons/material/folder-move-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-move.svg b/doc/theme/material/.icons/material/folder-move.svg new file mode 100644 index 00000000..0857ef04 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-move.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-multiple-image.svg b/doc/theme/material/.icons/material/folder-multiple-image.svg new file mode 100644 index 00000000..9ef363c6 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-multiple-image.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-multiple-outline.svg b/doc/theme/material/.icons/material/folder-multiple-outline.svg new file mode 100644 index 00000000..f0406db6 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-multiple.svg b/doc/theme/material/.icons/material/folder-multiple.svg new file mode 100644 index 00000000..13843fa7 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-music-outline.svg b/doc/theme/material/.icons/material/folder-music-outline.svg new file mode 100644 index 00000000..c5fe7aae --- /dev/null +++ b/doc/theme/material/.icons/material/folder-music-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-music.svg b/doc/theme/material/.icons/material/folder-music.svg new file mode 100644 index 00000000..b686e974 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-music.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-network-outline.svg b/doc/theme/material/.icons/material/folder-network-outline.svg new file mode 100644 index 00000000..67b343bf --- /dev/null +++ b/doc/theme/material/.icons/material/folder-network-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-network.svg b/doc/theme/material/.icons/material/folder-network.svg new file mode 100644 index 00000000..6ab7364f --- /dev/null +++ b/doc/theme/material/.icons/material/folder-network.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-open-outline.svg b/doc/theme/material/.icons/material/folder-open-outline.svg new file mode 100644 index 00000000..3d524f47 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-open-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-open.svg b/doc/theme/material/.icons/material/folder-open.svg new file mode 100644 index 00000000..e5de9067 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-outline.svg b/doc/theme/material/.icons/material/folder-outline.svg new file mode 100644 index 00000000..a95f4dfd --- /dev/null +++ b/doc/theme/material/.icons/material/folder-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-plus-outline.svg b/doc/theme/material/.icons/material/folder-plus-outline.svg new file mode 100644 index 00000000..ceadd8d9 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-plus.svg b/doc/theme/material/.icons/material/folder-plus.svg new file mode 100644 index 00000000..d4f28c69 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-pound-outline.svg b/doc/theme/material/.icons/material/folder-pound-outline.svg new file mode 100644 index 00000000..cfe16da7 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-pound-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-pound.svg b/doc/theme/material/.icons/material/folder-pound.svg new file mode 100644 index 00000000..dfd9c6cc --- /dev/null +++ b/doc/theme/material/.icons/material/folder-pound.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-refresh-outline.svg b/doc/theme/material/.icons/material/folder-refresh-outline.svg new file mode 100644 index 00000000..e9fcb3b6 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-refresh-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-refresh.svg b/doc/theme/material/.icons/material/folder-refresh.svg new file mode 100644 index 00000000..294e72f1 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-refresh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-remove-outline.svg b/doc/theme/material/.icons/material/folder-remove-outline.svg new file mode 100644 index 00000000..8a5ad11d --- /dev/null +++ b/doc/theme/material/.icons/material/folder-remove-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-remove.svg b/doc/theme/material/.icons/material/folder-remove.svg new file mode 100644 index 00000000..e7435e73 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-search-outline.svg b/doc/theme/material/.icons/material/folder-search-outline.svg new file mode 100644 index 00000000..17c327e8 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-search-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-search.svg b/doc/theme/material/.icons/material/folder-search.svg new file mode 100644 index 00000000..285cb370 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-settings-outline.svg b/doc/theme/material/.icons/material/folder-settings-outline.svg new file mode 100644 index 00000000..7db27ba7 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-settings-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-settings.svg b/doc/theme/material/.icons/material/folder-settings.svg new file mode 100644 index 00000000..7fd1ed6a --- /dev/null +++ b/doc/theme/material/.icons/material/folder-settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-star-multiple-outline.svg b/doc/theme/material/.icons/material/folder-star-multiple-outline.svg new file mode 100644 index 00000000..a06e7d7d --- /dev/null +++ b/doc/theme/material/.icons/material/folder-star-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-star-multiple.svg b/doc/theme/material/.icons/material/folder-star-multiple.svg new file mode 100644 index 00000000..62e98d58 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-star-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-star-outline.svg b/doc/theme/material/.icons/material/folder-star-outline.svg new file mode 100644 index 00000000..34dcc849 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-star-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-star.svg b/doc/theme/material/.icons/material/folder-star.svg new file mode 100644 index 00000000..dc9ceed0 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-star.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-swap-outline.svg b/doc/theme/material/.icons/material/folder-swap-outline.svg new file mode 100644 index 00000000..11932103 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-swap-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-swap.svg b/doc/theme/material/.icons/material/folder-swap.svg new file mode 100644 index 00000000..2d568a42 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-swap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-sync-outline.svg b/doc/theme/material/.icons/material/folder-sync-outline.svg new file mode 100644 index 00000000..88c8135a --- /dev/null +++ b/doc/theme/material/.icons/material/folder-sync-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-sync.svg b/doc/theme/material/.icons/material/folder-sync.svg new file mode 100644 index 00000000..1afd2dfd --- /dev/null +++ b/doc/theme/material/.icons/material/folder-sync.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-table-outline.svg b/doc/theme/material/.icons/material/folder-table-outline.svg new file mode 100644 index 00000000..d02f8982 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-table-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-table.svg b/doc/theme/material/.icons/material/folder-table.svg new file mode 100644 index 00000000..5bee5d65 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-table.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-text-outline.svg b/doc/theme/material/.icons/material/folder-text-outline.svg new file mode 100644 index 00000000..b4b1a228 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-text-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-text.svg b/doc/theme/material/.icons/material/folder-text.svg new file mode 100644 index 00000000..10320c9b --- /dev/null +++ b/doc/theme/material/.icons/material/folder-text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-upload-outline.svg b/doc/theme/material/.icons/material/folder-upload-outline.svg new file mode 100644 index 00000000..ba01ec02 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-upload-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-upload.svg b/doc/theme/material/.icons/material/folder-upload.svg new file mode 100644 index 00000000..70ebd346 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-upload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-zip-outline.svg b/doc/theme/material/.icons/material/folder-zip-outline.svg new file mode 100644 index 00000000..e0496168 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-zip-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder-zip.svg b/doc/theme/material/.icons/material/folder-zip.svg new file mode 100644 index 00000000..06f88455 --- /dev/null +++ b/doc/theme/material/.icons/material/folder-zip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/folder.svg b/doc/theme/material/.icons/material/folder.svg new file mode 100644 index 00000000..463ca979 --- /dev/null +++ b/doc/theme/material/.icons/material/folder.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/font-awesome.svg b/doc/theme/material/.icons/material/font-awesome.svg new file mode 100644 index 00000000..85ffc017 --- /dev/null +++ b/doc/theme/material/.icons/material/font-awesome.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/food-apple-outline.svg b/doc/theme/material/.icons/material/food-apple-outline.svg new file mode 100644 index 00000000..e15e129f --- /dev/null +++ b/doc/theme/material/.icons/material/food-apple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/food-apple.svg b/doc/theme/material/.icons/material/food-apple.svg new file mode 100644 index 00000000..a58e8c6a --- /dev/null +++ b/doc/theme/material/.icons/material/food-apple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/food-croissant.svg b/doc/theme/material/.icons/material/food-croissant.svg new file mode 100644 index 00000000..b0087867 --- /dev/null +++ b/doc/theme/material/.icons/material/food-croissant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/food-fork-drink.svg b/doc/theme/material/.icons/material/food-fork-drink.svg new file mode 100644 index 00000000..502d5999 --- /dev/null +++ b/doc/theme/material/.icons/material/food-fork-drink.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/food-off.svg b/doc/theme/material/.icons/material/food-off.svg new file mode 100644 index 00000000..7ea222b8 --- /dev/null +++ b/doc/theme/material/.icons/material/food-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/food-variant-off.svg b/doc/theme/material/.icons/material/food-variant-off.svg new file mode 100644 index 00000000..3d9dfbf8 --- /dev/null +++ b/doc/theme/material/.icons/material/food-variant-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/food-variant.svg b/doc/theme/material/.icons/material/food-variant.svg new file mode 100644 index 00000000..84bb0535 --- /dev/null +++ b/doc/theme/material/.icons/material/food-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/food.svg b/doc/theme/material/.icons/material/food.svg new file mode 100644 index 00000000..0103952b --- /dev/null +++ b/doc/theme/material/.icons/material/food.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/foot-print.svg b/doc/theme/material/.icons/material/foot-print.svg new file mode 100644 index 00000000..db9f8c82 --- /dev/null +++ b/doc/theme/material/.icons/material/foot-print.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/football-australian.svg b/doc/theme/material/.icons/material/football-australian.svg new file mode 100644 index 00000000..72dfe8d5 --- /dev/null +++ b/doc/theme/material/.icons/material/football-australian.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/football-helmet.svg b/doc/theme/material/.icons/material/football-helmet.svg new file mode 100644 index 00000000..8296b52d --- /dev/null +++ b/doc/theme/material/.icons/material/football-helmet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/football.svg b/doc/theme/material/.icons/material/football.svg new file mode 100644 index 00000000..205354eb --- /dev/null +++ b/doc/theme/material/.icons/material/football.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/forklift.svg b/doc/theme/material/.icons/material/forklift.svg new file mode 100644 index 00000000..61c35e56 --- /dev/null +++ b/doc/theme/material/.icons/material/forklift.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/form-dropdown.svg b/doc/theme/material/.icons/material/form-dropdown.svg new file mode 100644 index 00000000..e3d5d7e4 --- /dev/null +++ b/doc/theme/material/.icons/material/form-dropdown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/form-select.svg b/doc/theme/material/.icons/material/form-select.svg new file mode 100644 index 00000000..d1346724 --- /dev/null +++ b/doc/theme/material/.icons/material/form-select.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/form-textarea.svg b/doc/theme/material/.icons/material/form-textarea.svg new file mode 100644 index 00000000..a064cd67 --- /dev/null +++ b/doc/theme/material/.icons/material/form-textarea.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/form-textbox-lock.svg b/doc/theme/material/.icons/material/form-textbox-lock.svg new file mode 100644 index 00000000..298978fe --- /dev/null +++ b/doc/theme/material/.icons/material/form-textbox-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/form-textbox-password.svg b/doc/theme/material/.icons/material/form-textbox-password.svg new file mode 100644 index 00000000..37e52699 --- /dev/null +++ b/doc/theme/material/.icons/material/form-textbox-password.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/form-textbox.svg b/doc/theme/material/.icons/material/form-textbox.svg new file mode 100644 index 00000000..f8397c87 --- /dev/null +++ b/doc/theme/material/.icons/material/form-textbox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-align-bottom.svg b/doc/theme/material/.icons/material/format-align-bottom.svg new file mode 100644 index 00000000..37787f8c --- /dev/null +++ b/doc/theme/material/.icons/material/format-align-bottom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-align-center.svg b/doc/theme/material/.icons/material/format-align-center.svg new file mode 100644 index 00000000..9ca2c15d --- /dev/null +++ b/doc/theme/material/.icons/material/format-align-center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-align-justify.svg b/doc/theme/material/.icons/material/format-align-justify.svg new file mode 100644 index 00000000..5c8cf208 --- /dev/null +++ b/doc/theme/material/.icons/material/format-align-justify.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-align-left.svg b/doc/theme/material/.icons/material/format-align-left.svg new file mode 100644 index 00000000..e003c3f8 --- /dev/null +++ b/doc/theme/material/.icons/material/format-align-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-align-middle.svg b/doc/theme/material/.icons/material/format-align-middle.svg new file mode 100644 index 00000000..b2c97ca0 --- /dev/null +++ b/doc/theme/material/.icons/material/format-align-middle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-align-right.svg b/doc/theme/material/.icons/material/format-align-right.svg new file mode 100644 index 00000000..e60bae70 --- /dev/null +++ b/doc/theme/material/.icons/material/format-align-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-align-top.svg b/doc/theme/material/.icons/material/format-align-top.svg new file mode 100644 index 00000000..a80257e3 --- /dev/null +++ b/doc/theme/material/.icons/material/format-align-top.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-annotation-minus.svg b/doc/theme/material/.icons/material/format-annotation-minus.svg new file mode 100644 index 00000000..bc73b2b0 --- /dev/null +++ b/doc/theme/material/.icons/material/format-annotation-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-annotation-plus.svg b/doc/theme/material/.icons/material/format-annotation-plus.svg new file mode 100644 index 00000000..42b1dc4f --- /dev/null +++ b/doc/theme/material/.icons/material/format-annotation-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-bold.svg b/doc/theme/material/.icons/material/format-bold.svg new file mode 100644 index 00000000..1e01a57d --- /dev/null +++ b/doc/theme/material/.icons/material/format-bold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-clear.svg b/doc/theme/material/.icons/material/format-clear.svg new file mode 100644 index 00000000..ea67e133 --- /dev/null +++ b/doc/theme/material/.icons/material/format-clear.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-color-fill.svg b/doc/theme/material/.icons/material/format-color-fill.svg new file mode 100644 index 00000000..d2b8705c --- /dev/null +++ b/doc/theme/material/.icons/material/format-color-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-color-highlight.svg b/doc/theme/material/.icons/material/format-color-highlight.svg new file mode 100644 index 00000000..06aca931 --- /dev/null +++ b/doc/theme/material/.icons/material/format-color-highlight.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-color-marker-cancel.svg b/doc/theme/material/.icons/material/format-color-marker-cancel.svg new file mode 100644 index 00000000..5be5db5e --- /dev/null +++ b/doc/theme/material/.icons/material/format-color-marker-cancel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-color-text.svg b/doc/theme/material/.icons/material/format-color-text.svg new file mode 100644 index 00000000..5e4832fa --- /dev/null +++ b/doc/theme/material/.icons/material/format-color-text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-columns.svg b/doc/theme/material/.icons/material/format-columns.svg new file mode 100644 index 00000000..699461f5 --- /dev/null +++ b/doc/theme/material/.icons/material/format-columns.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-float-center.svg b/doc/theme/material/.icons/material/format-float-center.svg new file mode 100644 index 00000000..4e2c1f02 --- /dev/null +++ b/doc/theme/material/.icons/material/format-float-center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-float-left.svg b/doc/theme/material/.icons/material/format-float-left.svg new file mode 100644 index 00000000..3acc92c0 --- /dev/null +++ b/doc/theme/material/.icons/material/format-float-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-float-none.svg b/doc/theme/material/.icons/material/format-float-none.svg new file mode 100644 index 00000000..fdd128fc --- /dev/null +++ b/doc/theme/material/.icons/material/format-float-none.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-float-right.svg b/doc/theme/material/.icons/material/format-float-right.svg new file mode 100644 index 00000000..180cb824 --- /dev/null +++ b/doc/theme/material/.icons/material/format-float-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-font-size-decrease.svg b/doc/theme/material/.icons/material/format-font-size-decrease.svg new file mode 100644 index 00000000..f30f1f44 --- /dev/null +++ b/doc/theme/material/.icons/material/format-font-size-decrease.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-font-size-increase.svg b/doc/theme/material/.icons/material/format-font-size-increase.svg new file mode 100644 index 00000000..cd388b74 --- /dev/null +++ b/doc/theme/material/.icons/material/format-font-size-increase.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-font.svg b/doc/theme/material/.icons/material/format-font.svg new file mode 100644 index 00000000..658febf0 --- /dev/null +++ b/doc/theme/material/.icons/material/format-font.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-header-1.svg b/doc/theme/material/.icons/material/format-header-1.svg new file mode 100644 index 00000000..f00b2b92 --- /dev/null +++ b/doc/theme/material/.icons/material/format-header-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-header-2.svg b/doc/theme/material/.icons/material/format-header-2.svg new file mode 100644 index 00000000..cb4db3cc --- /dev/null +++ b/doc/theme/material/.icons/material/format-header-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-header-3.svg b/doc/theme/material/.icons/material/format-header-3.svg new file mode 100644 index 00000000..ad8ed3d1 --- /dev/null +++ b/doc/theme/material/.icons/material/format-header-3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-header-4.svg b/doc/theme/material/.icons/material/format-header-4.svg new file mode 100644 index 00000000..940a983d --- /dev/null +++ b/doc/theme/material/.icons/material/format-header-4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-header-5.svg b/doc/theme/material/.icons/material/format-header-5.svg new file mode 100644 index 00000000..47c23a0c --- /dev/null +++ b/doc/theme/material/.icons/material/format-header-5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-header-6.svg b/doc/theme/material/.icons/material/format-header-6.svg new file mode 100644 index 00000000..eed818a0 --- /dev/null +++ b/doc/theme/material/.icons/material/format-header-6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-header-decrease.svg b/doc/theme/material/.icons/material/format-header-decrease.svg new file mode 100644 index 00000000..972ac4c6 --- /dev/null +++ b/doc/theme/material/.icons/material/format-header-decrease.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-header-equal.svg b/doc/theme/material/.icons/material/format-header-equal.svg new file mode 100644 index 00000000..eb362ba9 --- /dev/null +++ b/doc/theme/material/.icons/material/format-header-equal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-header-increase.svg b/doc/theme/material/.icons/material/format-header-increase.svg new file mode 100644 index 00000000..81f5fe70 --- /dev/null +++ b/doc/theme/material/.icons/material/format-header-increase.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-header-pound.svg b/doc/theme/material/.icons/material/format-header-pound.svg new file mode 100644 index 00000000..1369e719 --- /dev/null +++ b/doc/theme/material/.icons/material/format-header-pound.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-horizontal-align-center.svg b/doc/theme/material/.icons/material/format-horizontal-align-center.svg new file mode 100644 index 00000000..10b6dadd --- /dev/null +++ b/doc/theme/material/.icons/material/format-horizontal-align-center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-horizontal-align-left.svg b/doc/theme/material/.icons/material/format-horizontal-align-left.svg new file mode 100644 index 00000000..59a36346 --- /dev/null +++ b/doc/theme/material/.icons/material/format-horizontal-align-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-horizontal-align-right.svg b/doc/theme/material/.icons/material/format-horizontal-align-right.svg new file mode 100644 index 00000000..6f90ef19 --- /dev/null +++ b/doc/theme/material/.icons/material/format-horizontal-align-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-indent-decrease.svg b/doc/theme/material/.icons/material/format-indent-decrease.svg new file mode 100644 index 00000000..ccbfaf89 --- /dev/null +++ b/doc/theme/material/.icons/material/format-indent-decrease.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-indent-increase.svg b/doc/theme/material/.icons/material/format-indent-increase.svg new file mode 100644 index 00000000..34b8c145 --- /dev/null +++ b/doc/theme/material/.icons/material/format-indent-increase.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-italic.svg b/doc/theme/material/.icons/material/format-italic.svg new file mode 100644 index 00000000..acf7c87a --- /dev/null +++ b/doc/theme/material/.icons/material/format-italic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-letter-case-lower.svg b/doc/theme/material/.icons/material/format-letter-case-lower.svg new file mode 100644 index 00000000..7665b77d --- /dev/null +++ b/doc/theme/material/.icons/material/format-letter-case-lower.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-letter-case-upper.svg b/doc/theme/material/.icons/material/format-letter-case-upper.svg new file mode 100644 index 00000000..9dec6e73 --- /dev/null +++ b/doc/theme/material/.icons/material/format-letter-case-upper.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-letter-case.svg b/doc/theme/material/.icons/material/format-letter-case.svg new file mode 100644 index 00000000..1f2568f7 --- /dev/null +++ b/doc/theme/material/.icons/material/format-letter-case.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-letter-ends-with.svg b/doc/theme/material/.icons/material/format-letter-ends-with.svg new file mode 100644 index 00000000..787f60cc --- /dev/null +++ b/doc/theme/material/.icons/material/format-letter-ends-with.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-letter-matches.svg b/doc/theme/material/.icons/material/format-letter-matches.svg new file mode 100644 index 00000000..cb37b487 --- /dev/null +++ b/doc/theme/material/.icons/material/format-letter-matches.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-letter-starts-with.svg b/doc/theme/material/.icons/material/format-letter-starts-with.svg new file mode 100644 index 00000000..6700c870 --- /dev/null +++ b/doc/theme/material/.icons/material/format-letter-starts-with.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-line-spacing.svg b/doc/theme/material/.icons/material/format-line-spacing.svg new file mode 100644 index 00000000..28167422 --- /dev/null +++ b/doc/theme/material/.icons/material/format-line-spacing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-line-style.svg b/doc/theme/material/.icons/material/format-line-style.svg new file mode 100644 index 00000000..61b5e58d --- /dev/null +++ b/doc/theme/material/.icons/material/format-line-style.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-line-weight.svg b/doc/theme/material/.icons/material/format-line-weight.svg new file mode 100644 index 00000000..f1143abe --- /dev/null +++ b/doc/theme/material/.icons/material/format-line-weight.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-list-bulleted-square.svg b/doc/theme/material/.icons/material/format-list-bulleted-square.svg new file mode 100644 index 00000000..cc42e4a9 --- /dev/null +++ b/doc/theme/material/.icons/material/format-list-bulleted-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-list-bulleted-triangle.svg b/doc/theme/material/.icons/material/format-list-bulleted-triangle.svg new file mode 100644 index 00000000..7fd388ce --- /dev/null +++ b/doc/theme/material/.icons/material/format-list-bulleted-triangle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-list-bulleted-type.svg b/doc/theme/material/.icons/material/format-list-bulleted-type.svg new file mode 100644 index 00000000..4901ae0d --- /dev/null +++ b/doc/theme/material/.icons/material/format-list-bulleted-type.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-list-bulleted.svg b/doc/theme/material/.icons/material/format-list-bulleted.svg new file mode 100644 index 00000000..10ecd34c --- /dev/null +++ b/doc/theme/material/.icons/material/format-list-bulleted.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-list-checkbox.svg b/doc/theme/material/.icons/material/format-list-checkbox.svg new file mode 100644 index 00000000..1444a4f8 --- /dev/null +++ b/doc/theme/material/.icons/material/format-list-checkbox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-list-checks.svg b/doc/theme/material/.icons/material/format-list-checks.svg new file mode 100644 index 00000000..6b3892f6 --- /dev/null +++ b/doc/theme/material/.icons/material/format-list-checks.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-list-numbered-rtl.svg b/doc/theme/material/.icons/material/format-list-numbered-rtl.svg new file mode 100644 index 00000000..1ec5e830 --- /dev/null +++ b/doc/theme/material/.icons/material/format-list-numbered-rtl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-list-numbered.svg b/doc/theme/material/.icons/material/format-list-numbered.svg new file mode 100644 index 00000000..1734c2a8 --- /dev/null +++ b/doc/theme/material/.icons/material/format-list-numbered.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-list-text.svg b/doc/theme/material/.icons/material/format-list-text.svg new file mode 100644 index 00000000..60d6b1a0 --- /dev/null +++ b/doc/theme/material/.icons/material/format-list-text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-overline.svg b/doc/theme/material/.icons/material/format-overline.svg new file mode 100644 index 00000000..2eb5deb9 --- /dev/null +++ b/doc/theme/material/.icons/material/format-overline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-page-break.svg b/doc/theme/material/.icons/material/format-page-break.svg new file mode 100644 index 00000000..f6da2a81 --- /dev/null +++ b/doc/theme/material/.icons/material/format-page-break.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-paint.svg b/doc/theme/material/.icons/material/format-paint.svg new file mode 100644 index 00000000..97af1365 --- /dev/null +++ b/doc/theme/material/.icons/material/format-paint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-paragraph.svg b/doc/theme/material/.icons/material/format-paragraph.svg new file mode 100644 index 00000000..580509b0 --- /dev/null +++ b/doc/theme/material/.icons/material/format-paragraph.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-pilcrow.svg b/doc/theme/material/.icons/material/format-pilcrow.svg new file mode 100644 index 00000000..3db2dbac --- /dev/null +++ b/doc/theme/material/.icons/material/format-pilcrow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-quote-close-outline.svg b/doc/theme/material/.icons/material/format-quote-close-outline.svg new file mode 100644 index 00000000..ede2f930 --- /dev/null +++ b/doc/theme/material/.icons/material/format-quote-close-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-quote-close.svg b/doc/theme/material/.icons/material/format-quote-close.svg new file mode 100644 index 00000000..e95118a9 --- /dev/null +++ b/doc/theme/material/.icons/material/format-quote-close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-quote-open-outline.svg b/doc/theme/material/.icons/material/format-quote-open-outline.svg new file mode 100644 index 00000000..5376a360 --- /dev/null +++ b/doc/theme/material/.icons/material/format-quote-open-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-quote-open.svg b/doc/theme/material/.icons/material/format-quote-open.svg new file mode 100644 index 00000000..2a56d690 --- /dev/null +++ b/doc/theme/material/.icons/material/format-quote-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-rotate-90.svg b/doc/theme/material/.icons/material/format-rotate-90.svg new file mode 100644 index 00000000..adb07976 --- /dev/null +++ b/doc/theme/material/.icons/material/format-rotate-90.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-section.svg b/doc/theme/material/.icons/material/format-section.svg new file mode 100644 index 00000000..631a3322 --- /dev/null +++ b/doc/theme/material/.icons/material/format-section.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-size.svg b/doc/theme/material/.icons/material/format-size.svg new file mode 100644 index 00000000..3556ab39 --- /dev/null +++ b/doc/theme/material/.icons/material/format-size.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-strikethrough-variant.svg b/doc/theme/material/.icons/material/format-strikethrough-variant.svg new file mode 100644 index 00000000..7d83ff8a --- /dev/null +++ b/doc/theme/material/.icons/material/format-strikethrough-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-strikethrough.svg b/doc/theme/material/.icons/material/format-strikethrough.svg new file mode 100644 index 00000000..60c07b5f --- /dev/null +++ b/doc/theme/material/.icons/material/format-strikethrough.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-subscript.svg b/doc/theme/material/.icons/material/format-subscript.svg new file mode 100644 index 00000000..a5db4266 --- /dev/null +++ b/doc/theme/material/.icons/material/format-subscript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-superscript.svg b/doc/theme/material/.icons/material/format-superscript.svg new file mode 100644 index 00000000..ee5fd17e --- /dev/null +++ b/doc/theme/material/.icons/material/format-superscript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-text-rotation-angle-down.svg b/doc/theme/material/.icons/material/format-text-rotation-angle-down.svg new file mode 100644 index 00000000..ecd5d16a --- /dev/null +++ b/doc/theme/material/.icons/material/format-text-rotation-angle-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-text-rotation-angle-up.svg b/doc/theme/material/.icons/material/format-text-rotation-angle-up.svg new file mode 100644 index 00000000..e958e14f --- /dev/null +++ b/doc/theme/material/.icons/material/format-text-rotation-angle-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-text-rotation-down-vertical.svg b/doc/theme/material/.icons/material/format-text-rotation-down-vertical.svg new file mode 100644 index 00000000..daf66ca4 --- /dev/null +++ b/doc/theme/material/.icons/material/format-text-rotation-down-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-text-rotation-down.svg b/doc/theme/material/.icons/material/format-text-rotation-down.svg new file mode 100644 index 00000000..05c2b06d --- /dev/null +++ b/doc/theme/material/.icons/material/format-text-rotation-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-text-rotation-none.svg b/doc/theme/material/.icons/material/format-text-rotation-none.svg new file mode 100644 index 00000000..34bf1df9 --- /dev/null +++ b/doc/theme/material/.icons/material/format-text-rotation-none.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-text-rotation-up.svg b/doc/theme/material/.icons/material/format-text-rotation-up.svg new file mode 100644 index 00000000..3eeb1713 --- /dev/null +++ b/doc/theme/material/.icons/material/format-text-rotation-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-text-rotation-vertical.svg b/doc/theme/material/.icons/material/format-text-rotation-vertical.svg new file mode 100644 index 00000000..e4a2c1cc --- /dev/null +++ b/doc/theme/material/.icons/material/format-text-rotation-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-text-variant.svg b/doc/theme/material/.icons/material/format-text-variant.svg new file mode 100644 index 00000000..8828a88c --- /dev/null +++ b/doc/theme/material/.icons/material/format-text-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-text-wrapping-clip.svg b/doc/theme/material/.icons/material/format-text-wrapping-clip.svg new file mode 100644 index 00000000..1c543fea --- /dev/null +++ b/doc/theme/material/.icons/material/format-text-wrapping-clip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-text-wrapping-overflow.svg b/doc/theme/material/.icons/material/format-text-wrapping-overflow.svg new file mode 100644 index 00000000..5d48608f --- /dev/null +++ b/doc/theme/material/.icons/material/format-text-wrapping-overflow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-text-wrapping-wrap.svg b/doc/theme/material/.icons/material/format-text-wrapping-wrap.svg new file mode 100644 index 00000000..3b2ed4a9 --- /dev/null +++ b/doc/theme/material/.icons/material/format-text-wrapping-wrap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-text.svg b/doc/theme/material/.icons/material/format-text.svg new file mode 100644 index 00000000..84a5f184 --- /dev/null +++ b/doc/theme/material/.icons/material/format-text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-textbox.svg b/doc/theme/material/.icons/material/format-textbox.svg new file mode 100644 index 00000000..c9b2880a --- /dev/null +++ b/doc/theme/material/.icons/material/format-textbox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-textdirection-l-to-r.svg b/doc/theme/material/.icons/material/format-textdirection-l-to-r.svg new file mode 100644 index 00000000..6a598387 --- /dev/null +++ b/doc/theme/material/.icons/material/format-textdirection-l-to-r.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-textdirection-r-to-l.svg b/doc/theme/material/.icons/material/format-textdirection-r-to-l.svg new file mode 100644 index 00000000..13f5d9f3 --- /dev/null +++ b/doc/theme/material/.icons/material/format-textdirection-r-to-l.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-title.svg b/doc/theme/material/.icons/material/format-title.svg new file mode 100644 index 00000000..03728aa5 --- /dev/null +++ b/doc/theme/material/.icons/material/format-title.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-underline.svg b/doc/theme/material/.icons/material/format-underline.svg new file mode 100644 index 00000000..12ba959e --- /dev/null +++ b/doc/theme/material/.icons/material/format-underline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-vertical-align-bottom.svg b/doc/theme/material/.icons/material/format-vertical-align-bottom.svg new file mode 100644 index 00000000..c1f66a3c --- /dev/null +++ b/doc/theme/material/.icons/material/format-vertical-align-bottom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-vertical-align-center.svg b/doc/theme/material/.icons/material/format-vertical-align-center.svg new file mode 100644 index 00000000..1f05a771 --- /dev/null +++ b/doc/theme/material/.icons/material/format-vertical-align-center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-vertical-align-top.svg b/doc/theme/material/.icons/material/format-vertical-align-top.svg new file mode 100644 index 00000000..fe5e0ad2 --- /dev/null +++ b/doc/theme/material/.icons/material/format-vertical-align-top.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-wrap-inline.svg b/doc/theme/material/.icons/material/format-wrap-inline.svg new file mode 100644 index 00000000..eb434fa4 --- /dev/null +++ b/doc/theme/material/.icons/material/format-wrap-inline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-wrap-square.svg b/doc/theme/material/.icons/material/format-wrap-square.svg new file mode 100644 index 00000000..2d08baac --- /dev/null +++ b/doc/theme/material/.icons/material/format-wrap-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-wrap-tight.svg b/doc/theme/material/.icons/material/format-wrap-tight.svg new file mode 100644 index 00000000..850799b3 --- /dev/null +++ b/doc/theme/material/.icons/material/format-wrap-tight.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/format-wrap-top-bottom.svg b/doc/theme/material/.icons/material/format-wrap-top-bottom.svg new file mode 100644 index 00000000..6816e847 --- /dev/null +++ b/doc/theme/material/.icons/material/format-wrap-top-bottom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/forum-outline.svg b/doc/theme/material/.icons/material/forum-outline.svg new file mode 100644 index 00000000..299aef82 --- /dev/null +++ b/doc/theme/material/.icons/material/forum-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/forum.svg b/doc/theme/material/.icons/material/forum.svg new file mode 100644 index 00000000..31e65014 --- /dev/null +++ b/doc/theme/material/.icons/material/forum.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/forward.svg b/doc/theme/material/.icons/material/forward.svg new file mode 100644 index 00000000..2a7e1720 --- /dev/null +++ b/doc/theme/material/.icons/material/forward.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/forwardburger.svg b/doc/theme/material/.icons/material/forwardburger.svg new file mode 100644 index 00000000..1f58e4cb --- /dev/null +++ b/doc/theme/material/.icons/material/forwardburger.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fountain-pen-tip.svg b/doc/theme/material/.icons/material/fountain-pen-tip.svg new file mode 100644 index 00000000..8dc452a8 --- /dev/null +++ b/doc/theme/material/.icons/material/fountain-pen-tip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fountain-pen.svg b/doc/theme/material/.icons/material/fountain-pen.svg new file mode 100644 index 00000000..6873e73b --- /dev/null +++ b/doc/theme/material/.icons/material/fountain-pen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fountain.svg b/doc/theme/material/.icons/material/fountain.svg new file mode 100644 index 00000000..1cdcd3f7 --- /dev/null +++ b/doc/theme/material/.icons/material/fountain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/freebsd.svg b/doc/theme/material/.icons/material/freebsd.svg new file mode 100644 index 00000000..5f04279d --- /dev/null +++ b/doc/theme/material/.icons/material/freebsd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/frequently-asked-questions.svg b/doc/theme/material/.icons/material/frequently-asked-questions.svg new file mode 100644 index 00000000..a624f1f0 --- /dev/null +++ b/doc/theme/material/.icons/material/frequently-asked-questions.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fridge-alert-outline.svg b/doc/theme/material/.icons/material/fridge-alert-outline.svg new file mode 100644 index 00000000..7a94e36e --- /dev/null +++ b/doc/theme/material/.icons/material/fridge-alert-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fridge-alert.svg b/doc/theme/material/.icons/material/fridge-alert.svg new file mode 100644 index 00000000..cb421538 --- /dev/null +++ b/doc/theme/material/.icons/material/fridge-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fridge-bottom.svg b/doc/theme/material/.icons/material/fridge-bottom.svg new file mode 100644 index 00000000..271d1c42 --- /dev/null +++ b/doc/theme/material/.icons/material/fridge-bottom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fridge-off-outline.svg b/doc/theme/material/.icons/material/fridge-off-outline.svg new file mode 100644 index 00000000..80807c3b --- /dev/null +++ b/doc/theme/material/.icons/material/fridge-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fridge-off.svg b/doc/theme/material/.icons/material/fridge-off.svg new file mode 100644 index 00000000..c255acd8 --- /dev/null +++ b/doc/theme/material/.icons/material/fridge-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fridge-outline.svg b/doc/theme/material/.icons/material/fridge-outline.svg new file mode 100644 index 00000000..086d1aa3 --- /dev/null +++ b/doc/theme/material/.icons/material/fridge-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fridge-top.svg b/doc/theme/material/.icons/material/fridge-top.svg new file mode 100644 index 00000000..3d6ec163 --- /dev/null +++ b/doc/theme/material/.icons/material/fridge-top.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fridge.svg b/doc/theme/material/.icons/material/fridge.svg new file mode 100644 index 00000000..60ffd841 --- /dev/null +++ b/doc/theme/material/.icons/material/fridge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fruit-cherries-off.svg b/doc/theme/material/.icons/material/fruit-cherries-off.svg new file mode 100644 index 00000000..cd3d1fe9 --- /dev/null +++ b/doc/theme/material/.icons/material/fruit-cherries-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fruit-cherries.svg b/doc/theme/material/.icons/material/fruit-cherries.svg new file mode 100644 index 00000000..cf2b21a9 --- /dev/null +++ b/doc/theme/material/.icons/material/fruit-cherries.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fruit-citrus-off.svg b/doc/theme/material/.icons/material/fruit-citrus-off.svg new file mode 100644 index 00000000..54a9ba72 --- /dev/null +++ b/doc/theme/material/.icons/material/fruit-citrus-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fruit-citrus.svg b/doc/theme/material/.icons/material/fruit-citrus.svg new file mode 100644 index 00000000..e2e94dc5 --- /dev/null +++ b/doc/theme/material/.icons/material/fruit-citrus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fruit-grapes-outline.svg b/doc/theme/material/.icons/material/fruit-grapes-outline.svg new file mode 100644 index 00000000..eaf2082b --- /dev/null +++ b/doc/theme/material/.icons/material/fruit-grapes-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fruit-grapes.svg b/doc/theme/material/.icons/material/fruit-grapes.svg new file mode 100644 index 00000000..18bd9f90 --- /dev/null +++ b/doc/theme/material/.icons/material/fruit-grapes.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fruit-pineapple.svg b/doc/theme/material/.icons/material/fruit-pineapple.svg new file mode 100644 index 00000000..b174a57a --- /dev/null +++ b/doc/theme/material/.icons/material/fruit-pineapple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fruit-watermelon.svg b/doc/theme/material/.icons/material/fruit-watermelon.svg new file mode 100644 index 00000000..3111019d --- /dev/null +++ b/doc/theme/material/.icons/material/fruit-watermelon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fuel.svg b/doc/theme/material/.icons/material/fuel.svg new file mode 100644 index 00000000..4ae0e411 --- /dev/null +++ b/doc/theme/material/.icons/material/fuel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fullscreen-exit.svg b/doc/theme/material/.icons/material/fullscreen-exit.svg new file mode 100644 index 00000000..51f6547e --- /dev/null +++ b/doc/theme/material/.icons/material/fullscreen-exit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fullscreen.svg b/doc/theme/material/.icons/material/fullscreen.svg new file mode 100644 index 00000000..58054ae3 --- /dev/null +++ b/doc/theme/material/.icons/material/fullscreen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/function-variant.svg b/doc/theme/material/.icons/material/function-variant.svg new file mode 100644 index 00000000..e9618a59 --- /dev/null +++ b/doc/theme/material/.icons/material/function-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/function.svg b/doc/theme/material/.icons/material/function.svg new file mode 100644 index 00000000..b387d3f6 --- /dev/null +++ b/doc/theme/material/.icons/material/function.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/furigana-horizontal.svg b/doc/theme/material/.icons/material/furigana-horizontal.svg new file mode 100644 index 00000000..66d6c5cc --- /dev/null +++ b/doc/theme/material/.icons/material/furigana-horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/furigana-vertical.svg b/doc/theme/material/.icons/material/furigana-vertical.svg new file mode 100644 index 00000000..cc11d379 --- /dev/null +++ b/doc/theme/material/.icons/material/furigana-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fuse-blade.svg b/doc/theme/material/.icons/material/fuse-blade.svg new file mode 100644 index 00000000..39b232d0 --- /dev/null +++ b/doc/theme/material/.icons/material/fuse-blade.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/fuse.svg b/doc/theme/material/.icons/material/fuse.svg new file mode 100644 index 00000000..5bdaac0a --- /dev/null +++ b/doc/theme/material/.icons/material/fuse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gamepad-circle-down.svg b/doc/theme/material/.icons/material/gamepad-circle-down.svg new file mode 100644 index 00000000..ab3cc04c --- /dev/null +++ b/doc/theme/material/.icons/material/gamepad-circle-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gamepad-circle-left.svg b/doc/theme/material/.icons/material/gamepad-circle-left.svg new file mode 100644 index 00000000..5538dca2 --- /dev/null +++ b/doc/theme/material/.icons/material/gamepad-circle-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gamepad-circle-outline.svg b/doc/theme/material/.icons/material/gamepad-circle-outline.svg new file mode 100644 index 00000000..8ed9f696 --- /dev/null +++ b/doc/theme/material/.icons/material/gamepad-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gamepad-circle-right.svg b/doc/theme/material/.icons/material/gamepad-circle-right.svg new file mode 100644 index 00000000..3726fcfc --- /dev/null +++ b/doc/theme/material/.icons/material/gamepad-circle-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gamepad-circle-up.svg b/doc/theme/material/.icons/material/gamepad-circle-up.svg new file mode 100644 index 00000000..17bb2989 --- /dev/null +++ b/doc/theme/material/.icons/material/gamepad-circle-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gamepad-circle.svg b/doc/theme/material/.icons/material/gamepad-circle.svg new file mode 100644 index 00000000..a6b174f5 --- /dev/null +++ b/doc/theme/material/.icons/material/gamepad-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gamepad-down.svg b/doc/theme/material/.icons/material/gamepad-down.svg new file mode 100644 index 00000000..faf240ae --- /dev/null +++ b/doc/theme/material/.icons/material/gamepad-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gamepad-left.svg b/doc/theme/material/.icons/material/gamepad-left.svg new file mode 100644 index 00000000..0bf9bff7 --- /dev/null +++ b/doc/theme/material/.icons/material/gamepad-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gamepad-right.svg b/doc/theme/material/.icons/material/gamepad-right.svg new file mode 100644 index 00000000..1d81e699 --- /dev/null +++ b/doc/theme/material/.icons/material/gamepad-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gamepad-round-down.svg b/doc/theme/material/.icons/material/gamepad-round-down.svg new file mode 100644 index 00000000..120d7a5a --- /dev/null +++ b/doc/theme/material/.icons/material/gamepad-round-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gamepad-round-left.svg b/doc/theme/material/.icons/material/gamepad-round-left.svg new file mode 100644 index 00000000..4db31447 --- /dev/null +++ b/doc/theme/material/.icons/material/gamepad-round-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gamepad-round-outline.svg b/doc/theme/material/.icons/material/gamepad-round-outline.svg new file mode 100644 index 00000000..65a36095 --- /dev/null +++ b/doc/theme/material/.icons/material/gamepad-round-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gamepad-round-right.svg b/doc/theme/material/.icons/material/gamepad-round-right.svg new file mode 100644 index 00000000..b88331dd --- /dev/null +++ b/doc/theme/material/.icons/material/gamepad-round-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gamepad-round-up.svg b/doc/theme/material/.icons/material/gamepad-round-up.svg new file mode 100644 index 00000000..ebaf164f --- /dev/null +++ b/doc/theme/material/.icons/material/gamepad-round-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gamepad-round.svg b/doc/theme/material/.icons/material/gamepad-round.svg new file mode 100644 index 00000000..c3f13037 --- /dev/null +++ b/doc/theme/material/.icons/material/gamepad-round.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gamepad-square-outline.svg b/doc/theme/material/.icons/material/gamepad-square-outline.svg new file mode 100644 index 00000000..5096ac6e --- /dev/null +++ b/doc/theme/material/.icons/material/gamepad-square-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gamepad-square.svg b/doc/theme/material/.icons/material/gamepad-square.svg new file mode 100644 index 00000000..3b971780 --- /dev/null +++ b/doc/theme/material/.icons/material/gamepad-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gamepad-up.svg b/doc/theme/material/.icons/material/gamepad-up.svg new file mode 100644 index 00000000..f4f1510d --- /dev/null +++ b/doc/theme/material/.icons/material/gamepad-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gamepad-variant-outline.svg b/doc/theme/material/.icons/material/gamepad-variant-outline.svg new file mode 100644 index 00000000..0d42c4a7 --- /dev/null +++ b/doc/theme/material/.icons/material/gamepad-variant-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gamepad-variant.svg b/doc/theme/material/.icons/material/gamepad-variant.svg new file mode 100644 index 00000000..d85013f9 --- /dev/null +++ b/doc/theme/material/.icons/material/gamepad-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gamepad.svg b/doc/theme/material/.icons/material/gamepad.svg new file mode 100644 index 00000000..93c683e9 --- /dev/null +++ b/doc/theme/material/.icons/material/gamepad.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gamma.svg b/doc/theme/material/.icons/material/gamma.svg new file mode 100644 index 00000000..79d96bc9 --- /dev/null +++ b/doc/theme/material/.icons/material/gamma.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gantry-crane.svg b/doc/theme/material/.icons/material/gantry-crane.svg new file mode 100644 index 00000000..34539793 --- /dev/null +++ b/doc/theme/material/.icons/material/gantry-crane.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/garage-alert-variant.svg b/doc/theme/material/.icons/material/garage-alert-variant.svg new file mode 100644 index 00000000..7b6fb0d4 --- /dev/null +++ b/doc/theme/material/.icons/material/garage-alert-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/garage-alert.svg b/doc/theme/material/.icons/material/garage-alert.svg new file mode 100644 index 00000000..7cdcdf21 --- /dev/null +++ b/doc/theme/material/.icons/material/garage-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/garage-open-variant.svg b/doc/theme/material/.icons/material/garage-open-variant.svg new file mode 100644 index 00000000..10a70caa --- /dev/null +++ b/doc/theme/material/.icons/material/garage-open-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/garage-open.svg b/doc/theme/material/.icons/material/garage-open.svg new file mode 100644 index 00000000..35e87573 --- /dev/null +++ b/doc/theme/material/.icons/material/garage-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/garage-variant.svg b/doc/theme/material/.icons/material/garage-variant.svg new file mode 100644 index 00000000..d0988d8d --- /dev/null +++ b/doc/theme/material/.icons/material/garage-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/garage.svg b/doc/theme/material/.icons/material/garage.svg new file mode 100644 index 00000000..3ff1e2e0 --- /dev/null +++ b/doc/theme/material/.icons/material/garage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gas-cylinder.svg b/doc/theme/material/.icons/material/gas-cylinder.svg new file mode 100644 index 00000000..8eeef1c9 --- /dev/null +++ b/doc/theme/material/.icons/material/gas-cylinder.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gas-station-off-outline.svg b/doc/theme/material/.icons/material/gas-station-off-outline.svg new file mode 100644 index 00000000..ac90d8d8 --- /dev/null +++ b/doc/theme/material/.icons/material/gas-station-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gas-station-off.svg b/doc/theme/material/.icons/material/gas-station-off.svg new file mode 100644 index 00000000..595b6ca9 --- /dev/null +++ b/doc/theme/material/.icons/material/gas-station-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gas-station-outline.svg b/doc/theme/material/.icons/material/gas-station-outline.svg new file mode 100644 index 00000000..05f7b471 --- /dev/null +++ b/doc/theme/material/.icons/material/gas-station-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gas-station.svg b/doc/theme/material/.icons/material/gas-station.svg new file mode 100644 index 00000000..7badb69d --- /dev/null +++ b/doc/theme/material/.icons/material/gas-station.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gate-and.svg b/doc/theme/material/.icons/material/gate-and.svg new file mode 100644 index 00000000..afe6ab4d --- /dev/null +++ b/doc/theme/material/.icons/material/gate-and.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gate-arrow-right.svg b/doc/theme/material/.icons/material/gate-arrow-right.svg new file mode 100644 index 00000000..0eb2f29e --- /dev/null +++ b/doc/theme/material/.icons/material/gate-arrow-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gate-nand.svg b/doc/theme/material/.icons/material/gate-nand.svg new file mode 100644 index 00000000..39dc7d0d --- /dev/null +++ b/doc/theme/material/.icons/material/gate-nand.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gate-nor.svg b/doc/theme/material/.icons/material/gate-nor.svg new file mode 100644 index 00000000..ca54a11c --- /dev/null +++ b/doc/theme/material/.icons/material/gate-nor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gate-not.svg b/doc/theme/material/.icons/material/gate-not.svg new file mode 100644 index 00000000..1560334f --- /dev/null +++ b/doc/theme/material/.icons/material/gate-not.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gate-open.svg b/doc/theme/material/.icons/material/gate-open.svg new file mode 100644 index 00000000..a231171e --- /dev/null +++ b/doc/theme/material/.icons/material/gate-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gate-or.svg b/doc/theme/material/.icons/material/gate-or.svg new file mode 100644 index 00000000..2f39a38c --- /dev/null +++ b/doc/theme/material/.icons/material/gate-or.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gate-xnor.svg b/doc/theme/material/.icons/material/gate-xnor.svg new file mode 100644 index 00000000..080ba7da --- /dev/null +++ b/doc/theme/material/.icons/material/gate-xnor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gate-xor.svg b/doc/theme/material/.icons/material/gate-xor.svg new file mode 100644 index 00000000..1c063acc --- /dev/null +++ b/doc/theme/material/.icons/material/gate-xor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gate.svg b/doc/theme/material/.icons/material/gate.svg new file mode 100644 index 00000000..ff9fff19 --- /dev/null +++ b/doc/theme/material/.icons/material/gate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gatsby.svg b/doc/theme/material/.icons/material/gatsby.svg new file mode 100644 index 00000000..ca823730 --- /dev/null +++ b/doc/theme/material/.icons/material/gatsby.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gauge-empty.svg b/doc/theme/material/.icons/material/gauge-empty.svg new file mode 100644 index 00000000..c918b200 --- /dev/null +++ b/doc/theme/material/.icons/material/gauge-empty.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gauge-full.svg b/doc/theme/material/.icons/material/gauge-full.svg new file mode 100644 index 00000000..6fb15fb8 --- /dev/null +++ b/doc/theme/material/.icons/material/gauge-full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gauge-low.svg b/doc/theme/material/.icons/material/gauge-low.svg new file mode 100644 index 00000000..3f4aed86 --- /dev/null +++ b/doc/theme/material/.icons/material/gauge-low.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gauge.svg b/doc/theme/material/.icons/material/gauge.svg new file mode 100644 index 00000000..ae600823 --- /dev/null +++ b/doc/theme/material/.icons/material/gauge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gavel.svg b/doc/theme/material/.icons/material/gavel.svg new file mode 100644 index 00000000..e7c1a1a0 --- /dev/null +++ b/doc/theme/material/.icons/material/gavel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gender-female.svg b/doc/theme/material/.icons/material/gender-female.svg new file mode 100644 index 00000000..46b79e50 --- /dev/null +++ b/doc/theme/material/.icons/material/gender-female.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gender-male-female-variant.svg b/doc/theme/material/.icons/material/gender-male-female-variant.svg new file mode 100644 index 00000000..68f08380 --- /dev/null +++ b/doc/theme/material/.icons/material/gender-male-female-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gender-male-female.svg b/doc/theme/material/.icons/material/gender-male-female.svg new file mode 100644 index 00000000..fb1dea3d --- /dev/null +++ b/doc/theme/material/.icons/material/gender-male-female.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gender-male.svg b/doc/theme/material/.icons/material/gender-male.svg new file mode 100644 index 00000000..57541580 --- /dev/null +++ b/doc/theme/material/.icons/material/gender-male.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gender-non-binary.svg b/doc/theme/material/.icons/material/gender-non-binary.svg new file mode 100644 index 00000000..e6818bf0 --- /dev/null +++ b/doc/theme/material/.icons/material/gender-non-binary.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gender-transgender.svg b/doc/theme/material/.icons/material/gender-transgender.svg new file mode 100644 index 00000000..d602ce64 --- /dev/null +++ b/doc/theme/material/.icons/material/gender-transgender.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gentoo.svg b/doc/theme/material/.icons/material/gentoo.svg new file mode 100644 index 00000000..1bd1c67d --- /dev/null +++ b/doc/theme/material/.icons/material/gentoo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gesture-double-tap.svg b/doc/theme/material/.icons/material/gesture-double-tap.svg new file mode 100644 index 00000000..c0325165 --- /dev/null +++ b/doc/theme/material/.icons/material/gesture-double-tap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gesture-pinch.svg b/doc/theme/material/.icons/material/gesture-pinch.svg new file mode 100644 index 00000000..eb04037b --- /dev/null +++ b/doc/theme/material/.icons/material/gesture-pinch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gesture-spread.svg b/doc/theme/material/.icons/material/gesture-spread.svg new file mode 100644 index 00000000..cab3dd26 --- /dev/null +++ b/doc/theme/material/.icons/material/gesture-spread.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gesture-swipe-down.svg b/doc/theme/material/.icons/material/gesture-swipe-down.svg new file mode 100644 index 00000000..57121cd3 --- /dev/null +++ b/doc/theme/material/.icons/material/gesture-swipe-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gesture-swipe-horizontal.svg b/doc/theme/material/.icons/material/gesture-swipe-horizontal.svg new file mode 100644 index 00000000..b99dad94 --- /dev/null +++ b/doc/theme/material/.icons/material/gesture-swipe-horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gesture-swipe-left.svg b/doc/theme/material/.icons/material/gesture-swipe-left.svg new file mode 100644 index 00000000..13cf3799 --- /dev/null +++ b/doc/theme/material/.icons/material/gesture-swipe-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gesture-swipe-right.svg b/doc/theme/material/.icons/material/gesture-swipe-right.svg new file mode 100644 index 00000000..7355a502 --- /dev/null +++ b/doc/theme/material/.icons/material/gesture-swipe-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gesture-swipe-up.svg b/doc/theme/material/.icons/material/gesture-swipe-up.svg new file mode 100644 index 00000000..f714046e --- /dev/null +++ b/doc/theme/material/.icons/material/gesture-swipe-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gesture-swipe-vertical.svg b/doc/theme/material/.icons/material/gesture-swipe-vertical.svg new file mode 100644 index 00000000..f26502b8 --- /dev/null +++ b/doc/theme/material/.icons/material/gesture-swipe-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gesture-swipe.svg b/doc/theme/material/.icons/material/gesture-swipe.svg new file mode 100644 index 00000000..dab8db6e --- /dev/null +++ b/doc/theme/material/.icons/material/gesture-swipe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gesture-tap-box.svg b/doc/theme/material/.icons/material/gesture-tap-box.svg new file mode 100644 index 00000000..d09baf07 --- /dev/null +++ b/doc/theme/material/.icons/material/gesture-tap-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gesture-tap-button.svg b/doc/theme/material/.icons/material/gesture-tap-button.svg new file mode 100644 index 00000000..fe5b9e4b --- /dev/null +++ b/doc/theme/material/.icons/material/gesture-tap-button.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gesture-tap-hold.svg b/doc/theme/material/.icons/material/gesture-tap-hold.svg new file mode 100644 index 00000000..8f5ffde6 --- /dev/null +++ b/doc/theme/material/.icons/material/gesture-tap-hold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gesture-tap.svg b/doc/theme/material/.icons/material/gesture-tap.svg new file mode 100644 index 00000000..729483fe --- /dev/null +++ b/doc/theme/material/.icons/material/gesture-tap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gesture-two-double-tap.svg b/doc/theme/material/.icons/material/gesture-two-double-tap.svg new file mode 100644 index 00000000..d35d9102 --- /dev/null +++ b/doc/theme/material/.icons/material/gesture-two-double-tap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gesture-two-tap.svg b/doc/theme/material/.icons/material/gesture-two-tap.svg new file mode 100644 index 00000000..e8164f83 --- /dev/null +++ b/doc/theme/material/.icons/material/gesture-two-tap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gesture.svg b/doc/theme/material/.icons/material/gesture.svg new file mode 100644 index 00000000..4d1476b8 --- /dev/null +++ b/doc/theme/material/.icons/material/gesture.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ghost-off.svg b/doc/theme/material/.icons/material/ghost-off.svg new file mode 100644 index 00000000..43db2bd3 --- /dev/null +++ b/doc/theme/material/.icons/material/ghost-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ghost.svg b/doc/theme/material/.icons/material/ghost.svg new file mode 100644 index 00000000..bbeee822 --- /dev/null +++ b/doc/theme/material/.icons/material/ghost.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gif.svg b/doc/theme/material/.icons/material/gif.svg new file mode 100644 index 00000000..e9f92288 --- /dev/null +++ b/doc/theme/material/.icons/material/gif.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gift-outline.svg b/doc/theme/material/.icons/material/gift-outline.svg new file mode 100644 index 00000000..016d59e5 --- /dev/null +++ b/doc/theme/material/.icons/material/gift-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gift.svg b/doc/theme/material/.icons/material/gift.svg new file mode 100644 index 00000000..19535cfa --- /dev/null +++ b/doc/theme/material/.icons/material/gift.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/git.svg b/doc/theme/material/.icons/material/git.svg new file mode 100644 index 00000000..ffd7c4a8 --- /dev/null +++ b/doc/theme/material/.icons/material/git.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/github.svg b/doc/theme/material/.icons/material/github.svg new file mode 100644 index 00000000..9333993b --- /dev/null +++ b/doc/theme/material/.icons/material/github.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gitlab.svg b/doc/theme/material/.icons/material/gitlab.svg new file mode 100644 index 00000000..1689781f --- /dev/null +++ b/doc/theme/material/.icons/material/gitlab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/glass-cocktail.svg b/doc/theme/material/.icons/material/glass-cocktail.svg new file mode 100644 index 00000000..fde521da --- /dev/null +++ b/doc/theme/material/.icons/material/glass-cocktail.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/glass-flute.svg b/doc/theme/material/.icons/material/glass-flute.svg new file mode 100644 index 00000000..bc41ce89 --- /dev/null +++ b/doc/theme/material/.icons/material/glass-flute.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/glass-mug-variant.svg b/doc/theme/material/.icons/material/glass-mug-variant.svg new file mode 100644 index 00000000..8197c6a1 --- /dev/null +++ b/doc/theme/material/.icons/material/glass-mug-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/glass-mug.svg b/doc/theme/material/.icons/material/glass-mug.svg new file mode 100644 index 00000000..e2d7de9b --- /dev/null +++ b/doc/theme/material/.icons/material/glass-mug.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/glass-pint-outline.svg b/doc/theme/material/.icons/material/glass-pint-outline.svg new file mode 100644 index 00000000..5bc87212 --- /dev/null +++ b/doc/theme/material/.icons/material/glass-pint-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/glass-stange.svg b/doc/theme/material/.icons/material/glass-stange.svg new file mode 100644 index 00000000..b72ae51f --- /dev/null +++ b/doc/theme/material/.icons/material/glass-stange.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/glass-tulip.svg b/doc/theme/material/.icons/material/glass-tulip.svg new file mode 100644 index 00000000..b4bacb77 --- /dev/null +++ b/doc/theme/material/.icons/material/glass-tulip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/glass-wine.svg b/doc/theme/material/.icons/material/glass-wine.svg new file mode 100644 index 00000000..8dc94fea --- /dev/null +++ b/doc/theme/material/.icons/material/glass-wine.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/glasses.svg b/doc/theme/material/.icons/material/glasses.svg new file mode 100644 index 00000000..09619aca --- /dev/null +++ b/doc/theme/material/.icons/material/glasses.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/globe-light.svg b/doc/theme/material/.icons/material/globe-light.svg new file mode 100644 index 00000000..bbbca0e8 --- /dev/null +++ b/doc/theme/material/.icons/material/globe-light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/globe-model.svg b/doc/theme/material/.icons/material/globe-model.svg new file mode 100644 index 00000000..9d6be4fa --- /dev/null +++ b/doc/theme/material/.icons/material/globe-model.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gmail.svg b/doc/theme/material/.icons/material/gmail.svg new file mode 100644 index 00000000..0bf32cb9 --- /dev/null +++ b/doc/theme/material/.icons/material/gmail.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gnome.svg b/doc/theme/material/.icons/material/gnome.svg new file mode 100644 index 00000000..3ce291b2 --- /dev/null +++ b/doc/theme/material/.icons/material/gnome.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/go-kart-track.svg b/doc/theme/material/.icons/material/go-kart-track.svg new file mode 100644 index 00000000..7bce942d --- /dev/null +++ b/doc/theme/material/.icons/material/go-kart-track.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/go-kart.svg b/doc/theme/material/.icons/material/go-kart.svg new file mode 100644 index 00000000..635ef1c3 --- /dev/null +++ b/doc/theme/material/.icons/material/go-kart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gog.svg b/doc/theme/material/.icons/material/gog.svg new file mode 100644 index 00000000..cf92cff4 --- /dev/null +++ b/doc/theme/material/.icons/material/gog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gold.svg b/doc/theme/material/.icons/material/gold.svg new file mode 100644 index 00000000..6d186708 --- /dev/null +++ b/doc/theme/material/.icons/material/gold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/golf-cart.svg b/doc/theme/material/.icons/material/golf-cart.svg new file mode 100644 index 00000000..c3ea59cf --- /dev/null +++ b/doc/theme/material/.icons/material/golf-cart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/golf-tee.svg b/doc/theme/material/.icons/material/golf-tee.svg new file mode 100644 index 00000000..9d7b4528 --- /dev/null +++ b/doc/theme/material/.icons/material/golf-tee.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/golf.svg b/doc/theme/material/.icons/material/golf.svg new file mode 100644 index 00000000..ed47a4e6 --- /dev/null +++ b/doc/theme/material/.icons/material/golf.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gondola.svg b/doc/theme/material/.icons/material/gondola.svg new file mode 100644 index 00000000..50d323c3 --- /dev/null +++ b/doc/theme/material/.icons/material/gondola.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/goodreads.svg b/doc/theme/material/.icons/material/goodreads.svg new file mode 100644 index 00000000..7db4d645 --- /dev/null +++ b/doc/theme/material/.icons/material/goodreads.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-ads.svg b/doc/theme/material/.icons/material/google-ads.svg new file mode 100644 index 00000000..2c194dca --- /dev/null +++ b/doc/theme/material/.icons/material/google-ads.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-analytics.svg b/doc/theme/material/.icons/material/google-analytics.svg new file mode 100644 index 00000000..7c15c78b --- /dev/null +++ b/doc/theme/material/.icons/material/google-analytics.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-assistant.svg b/doc/theme/material/.icons/material/google-assistant.svg new file mode 100644 index 00000000..bf688e99 --- /dev/null +++ b/doc/theme/material/.icons/material/google-assistant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-cardboard.svg b/doc/theme/material/.icons/material/google-cardboard.svg new file mode 100644 index 00000000..c0b4e3be --- /dev/null +++ b/doc/theme/material/.icons/material/google-cardboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-chrome.svg b/doc/theme/material/.icons/material/google-chrome.svg new file mode 100644 index 00000000..2845cb96 --- /dev/null +++ b/doc/theme/material/.icons/material/google-chrome.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-circles-communities.svg b/doc/theme/material/.icons/material/google-circles-communities.svg new file mode 100644 index 00000000..5b7f91fe --- /dev/null +++ b/doc/theme/material/.icons/material/google-circles-communities.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-circles-extended.svg b/doc/theme/material/.icons/material/google-circles-extended.svg new file mode 100644 index 00000000..330dc9b7 --- /dev/null +++ b/doc/theme/material/.icons/material/google-circles-extended.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-circles-group.svg b/doc/theme/material/.icons/material/google-circles-group.svg new file mode 100644 index 00000000..bd56e9ce --- /dev/null +++ b/doc/theme/material/.icons/material/google-circles-group.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-circles.svg b/doc/theme/material/.icons/material/google-circles.svg new file mode 100644 index 00000000..1d1175b6 --- /dev/null +++ b/doc/theme/material/.icons/material/google-circles.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-classroom.svg b/doc/theme/material/.icons/material/google-classroom.svg new file mode 100644 index 00000000..448c983a --- /dev/null +++ b/doc/theme/material/.icons/material/google-classroom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-cloud.svg b/doc/theme/material/.icons/material/google-cloud.svg new file mode 100644 index 00000000..9b32027b --- /dev/null +++ b/doc/theme/material/.icons/material/google-cloud.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-controller-off.svg b/doc/theme/material/.icons/material/google-controller-off.svg new file mode 100644 index 00000000..c8ed3685 --- /dev/null +++ b/doc/theme/material/.icons/material/google-controller-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-controller.svg b/doc/theme/material/.icons/material/google-controller.svg new file mode 100644 index 00000000..31e3f713 --- /dev/null +++ b/doc/theme/material/.icons/material/google-controller.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-downasaur.svg b/doc/theme/material/.icons/material/google-downasaur.svg new file mode 100644 index 00000000..cdad5534 --- /dev/null +++ b/doc/theme/material/.icons/material/google-downasaur.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-drive.svg b/doc/theme/material/.icons/material/google-drive.svg new file mode 100644 index 00000000..9fb6fd24 --- /dev/null +++ b/doc/theme/material/.icons/material/google-drive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-earth.svg b/doc/theme/material/.icons/material/google-earth.svg new file mode 100644 index 00000000..f0c8fd0c --- /dev/null +++ b/doc/theme/material/.icons/material/google-earth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-fit.svg b/doc/theme/material/.icons/material/google-fit.svg new file mode 100644 index 00000000..7d6f7cdc --- /dev/null +++ b/doc/theme/material/.icons/material/google-fit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-glass.svg b/doc/theme/material/.icons/material/google-glass.svg new file mode 100644 index 00000000..79955fbc --- /dev/null +++ b/doc/theme/material/.icons/material/google-glass.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-hangouts.svg b/doc/theme/material/.icons/material/google-hangouts.svg new file mode 100644 index 00000000..6b5b0f58 --- /dev/null +++ b/doc/theme/material/.icons/material/google-hangouts.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-home.svg b/doc/theme/material/.icons/material/google-home.svg new file mode 100644 index 00000000..874948e3 --- /dev/null +++ b/doc/theme/material/.icons/material/google-home.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-keep.svg b/doc/theme/material/.icons/material/google-keep.svg new file mode 100644 index 00000000..31e0d384 --- /dev/null +++ b/doc/theme/material/.icons/material/google-keep.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-lens.svg b/doc/theme/material/.icons/material/google-lens.svg new file mode 100644 index 00000000..6067b0f7 --- /dev/null +++ b/doc/theme/material/.icons/material/google-lens.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-maps.svg b/doc/theme/material/.icons/material/google-maps.svg new file mode 100644 index 00000000..0239b7e9 --- /dev/null +++ b/doc/theme/material/.icons/material/google-maps.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-my-business.svg b/doc/theme/material/.icons/material/google-my-business.svg new file mode 100644 index 00000000..c4319776 --- /dev/null +++ b/doc/theme/material/.icons/material/google-my-business.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-nearby.svg b/doc/theme/material/.icons/material/google-nearby.svg new file mode 100644 index 00000000..3353e1f0 --- /dev/null +++ b/doc/theme/material/.icons/material/google-nearby.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-photos.svg b/doc/theme/material/.icons/material/google-photos.svg new file mode 100644 index 00000000..162cc630 --- /dev/null +++ b/doc/theme/material/.icons/material/google-photos.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-play.svg b/doc/theme/material/.icons/material/google-play.svg new file mode 100644 index 00000000..b3cf1150 --- /dev/null +++ b/doc/theme/material/.icons/material/google-play.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-plus.svg b/doc/theme/material/.icons/material/google-plus.svg new file mode 100644 index 00000000..685d0258 --- /dev/null +++ b/doc/theme/material/.icons/material/google-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-podcast.svg b/doc/theme/material/.icons/material/google-podcast.svg new file mode 100644 index 00000000..9d26d3f1 --- /dev/null +++ b/doc/theme/material/.icons/material/google-podcast.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-spreadsheet.svg b/doc/theme/material/.icons/material/google-spreadsheet.svg new file mode 100644 index 00000000..3eac6dee --- /dev/null +++ b/doc/theme/material/.icons/material/google-spreadsheet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-street-view.svg b/doc/theme/material/.icons/material/google-street-view.svg new file mode 100644 index 00000000..436b7d53 --- /dev/null +++ b/doc/theme/material/.icons/material/google-street-view.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google-translate.svg b/doc/theme/material/.icons/material/google-translate.svg new file mode 100644 index 00000000..c3da097d --- /dev/null +++ b/doc/theme/material/.icons/material/google-translate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/google.svg b/doc/theme/material/.icons/material/google.svg new file mode 100644 index 00000000..7be010f7 --- /dev/null +++ b/doc/theme/material/.icons/material/google.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/gradient.svg b/doc/theme/material/.icons/material/gradient.svg new file mode 100644 index 00000000..7fd34617 --- /dev/null +++ b/doc/theme/material/.icons/material/gradient.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/grain.svg b/doc/theme/material/.icons/material/grain.svg new file mode 100644 index 00000000..29dc77fc --- /dev/null +++ b/doc/theme/material/.icons/material/grain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/graph-outline.svg b/doc/theme/material/.icons/material/graph-outline.svg new file mode 100644 index 00000000..3418c64d --- /dev/null +++ b/doc/theme/material/.icons/material/graph-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/graph.svg b/doc/theme/material/.icons/material/graph.svg new file mode 100644 index 00000000..44dbcae5 --- /dev/null +++ b/doc/theme/material/.icons/material/graph.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/graphql.svg b/doc/theme/material/.icons/material/graphql.svg new file mode 100644 index 00000000..8699eac5 --- /dev/null +++ b/doc/theme/material/.icons/material/graphql.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/grave-stone.svg b/doc/theme/material/.icons/material/grave-stone.svg new file mode 100644 index 00000000..1151abea --- /dev/null +++ b/doc/theme/material/.icons/material/grave-stone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/grease-pencil.svg b/doc/theme/material/.icons/material/grease-pencil.svg new file mode 100644 index 00000000..61af4088 --- /dev/null +++ b/doc/theme/material/.icons/material/grease-pencil.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/greater-than-or-equal.svg b/doc/theme/material/.icons/material/greater-than-or-equal.svg new file mode 100644 index 00000000..475e59d1 --- /dev/null +++ b/doc/theme/material/.icons/material/greater-than-or-equal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/greater-than.svg b/doc/theme/material/.icons/material/greater-than.svg new file mode 100644 index 00000000..08fa05a8 --- /dev/null +++ b/doc/theme/material/.icons/material/greater-than.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/grid-large.svg b/doc/theme/material/.icons/material/grid-large.svg new file mode 100644 index 00000000..efb413e2 --- /dev/null +++ b/doc/theme/material/.icons/material/grid-large.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/grid-off.svg b/doc/theme/material/.icons/material/grid-off.svg new file mode 100644 index 00000000..311d2c4d --- /dev/null +++ b/doc/theme/material/.icons/material/grid-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/grid.svg b/doc/theme/material/.icons/material/grid.svg new file mode 100644 index 00000000..abead386 --- /dev/null +++ b/doc/theme/material/.icons/material/grid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/grill-outline.svg b/doc/theme/material/.icons/material/grill-outline.svg new file mode 100644 index 00000000..29a9177e --- /dev/null +++ b/doc/theme/material/.icons/material/grill-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/grill.svg b/doc/theme/material/.icons/material/grill.svg new file mode 100644 index 00000000..e33318dd --- /dev/null +++ b/doc/theme/material/.icons/material/grill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/group.svg b/doc/theme/material/.icons/material/group.svg new file mode 100644 index 00000000..e25bcc6d --- /dev/null +++ b/doc/theme/material/.icons/material/group.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/guitar-acoustic.svg b/doc/theme/material/.icons/material/guitar-acoustic.svg new file mode 100644 index 00000000..2ab38735 --- /dev/null +++ b/doc/theme/material/.icons/material/guitar-acoustic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/guitar-electric.svg b/doc/theme/material/.icons/material/guitar-electric.svg new file mode 100644 index 00000000..7a451a9b --- /dev/null +++ b/doc/theme/material/.icons/material/guitar-electric.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/guitar-pick-outline.svg b/doc/theme/material/.icons/material/guitar-pick-outline.svg new file mode 100644 index 00000000..001aa589 --- /dev/null +++ b/doc/theme/material/.icons/material/guitar-pick-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/guitar-pick.svg b/doc/theme/material/.icons/material/guitar-pick.svg new file mode 100644 index 00000000..aacf2da9 --- /dev/null +++ b/doc/theme/material/.icons/material/guitar-pick.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/guy-fawkes-mask.svg b/doc/theme/material/.icons/material/guy-fawkes-mask.svg new file mode 100644 index 00000000..e2680d55 --- /dev/null +++ b/doc/theme/material/.icons/material/guy-fawkes-mask.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hail.svg b/doc/theme/material/.icons/material/hail.svg new file mode 100644 index 00000000..54f0ab04 --- /dev/null +++ b/doc/theme/material/.icons/material/hail.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hair-dryer-outline.svg b/doc/theme/material/.icons/material/hair-dryer-outline.svg new file mode 100644 index 00000000..c6b13546 --- /dev/null +++ b/doc/theme/material/.icons/material/hair-dryer-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hair-dryer.svg b/doc/theme/material/.icons/material/hair-dryer.svg new file mode 100644 index 00000000..68ac3ab8 --- /dev/null +++ b/doc/theme/material/.icons/material/hair-dryer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/halloween.svg b/doc/theme/material/.icons/material/halloween.svg new file mode 100644 index 00000000..5046e4b1 --- /dev/null +++ b/doc/theme/material/.icons/material/halloween.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hamburger.svg b/doc/theme/material/.icons/material/hamburger.svg new file mode 100644 index 00000000..7537b1c7 --- /dev/null +++ b/doc/theme/material/.icons/material/hamburger.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hammer-screwdriver.svg b/doc/theme/material/.icons/material/hammer-screwdriver.svg new file mode 100644 index 00000000..18bee75d --- /dev/null +++ b/doc/theme/material/.icons/material/hammer-screwdriver.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hammer-wrench.svg b/doc/theme/material/.icons/material/hammer-wrench.svg new file mode 100644 index 00000000..ac1c8577 --- /dev/null +++ b/doc/theme/material/.icons/material/hammer-wrench.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hammer.svg b/doc/theme/material/.icons/material/hammer.svg new file mode 100644 index 00000000..ae7c6abf --- /dev/null +++ b/doc/theme/material/.icons/material/hammer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hand-heart.svg b/doc/theme/material/.icons/material/hand-heart.svg new file mode 100644 index 00000000..2665a18c --- /dev/null +++ b/doc/theme/material/.icons/material/hand-heart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hand-left.svg b/doc/theme/material/.icons/material/hand-left.svg new file mode 100644 index 00000000..966516be --- /dev/null +++ b/doc/theme/material/.icons/material/hand-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hand-okay.svg b/doc/theme/material/.icons/material/hand-okay.svg new file mode 100644 index 00000000..5cb2eb84 --- /dev/null +++ b/doc/theme/material/.icons/material/hand-okay.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hand-peace-variant.svg b/doc/theme/material/.icons/material/hand-peace-variant.svg new file mode 100644 index 00000000..7a9aa1a9 --- /dev/null +++ b/doc/theme/material/.icons/material/hand-peace-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hand-peace.svg b/doc/theme/material/.icons/material/hand-peace.svg new file mode 100644 index 00000000..828653f6 --- /dev/null +++ b/doc/theme/material/.icons/material/hand-peace.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hand-pointing-down.svg b/doc/theme/material/.icons/material/hand-pointing-down.svg new file mode 100644 index 00000000..78ac9393 --- /dev/null +++ b/doc/theme/material/.icons/material/hand-pointing-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hand-pointing-left.svg b/doc/theme/material/.icons/material/hand-pointing-left.svg new file mode 100644 index 00000000..ddc2fb53 --- /dev/null +++ b/doc/theme/material/.icons/material/hand-pointing-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hand-pointing-right.svg b/doc/theme/material/.icons/material/hand-pointing-right.svg new file mode 100644 index 00000000..3b423ed3 --- /dev/null +++ b/doc/theme/material/.icons/material/hand-pointing-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hand-pointing-up.svg b/doc/theme/material/.icons/material/hand-pointing-up.svg new file mode 100644 index 00000000..cad9e25e --- /dev/null +++ b/doc/theme/material/.icons/material/hand-pointing-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hand-right.svg b/doc/theme/material/.icons/material/hand-right.svg new file mode 100644 index 00000000..e46b2b53 --- /dev/null +++ b/doc/theme/material/.icons/material/hand-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hand-saw.svg b/doc/theme/material/.icons/material/hand-saw.svg new file mode 100644 index 00000000..1c305b91 --- /dev/null +++ b/doc/theme/material/.icons/material/hand-saw.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hand-water.svg b/doc/theme/material/.icons/material/hand-water.svg new file mode 100644 index 00000000..69ab4575 --- /dev/null +++ b/doc/theme/material/.icons/material/hand-water.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hand.svg b/doc/theme/material/.icons/material/hand.svg new file mode 100644 index 00000000..171912e6 --- /dev/null +++ b/doc/theme/material/.icons/material/hand.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/handball.svg b/doc/theme/material/.icons/material/handball.svg new file mode 100644 index 00000000..2233c0f7 --- /dev/null +++ b/doc/theme/material/.icons/material/handball.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/handcuffs.svg b/doc/theme/material/.icons/material/handcuffs.svg new file mode 100644 index 00000000..daf72e1d --- /dev/null +++ b/doc/theme/material/.icons/material/handcuffs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/handshake.svg b/doc/theme/material/.icons/material/handshake.svg new file mode 100644 index 00000000..ad68e36c --- /dev/null +++ b/doc/theme/material/.icons/material/handshake.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hanger.svg b/doc/theme/material/.icons/material/hanger.svg new file mode 100644 index 00000000..09775e70 --- /dev/null +++ b/doc/theme/material/.icons/material/hanger.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hard-hat.svg b/doc/theme/material/.icons/material/hard-hat.svg new file mode 100644 index 00000000..13bbb6fe --- /dev/null +++ b/doc/theme/material/.icons/material/hard-hat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/harddisk-plus.svg b/doc/theme/material/.icons/material/harddisk-plus.svg new file mode 100644 index 00000000..d4a13af4 --- /dev/null +++ b/doc/theme/material/.icons/material/harddisk-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/harddisk-remove.svg b/doc/theme/material/.icons/material/harddisk-remove.svg new file mode 100644 index 00000000..7bede6cd --- /dev/null +++ b/doc/theme/material/.icons/material/harddisk-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/harddisk.svg b/doc/theme/material/.icons/material/harddisk.svg new file mode 100644 index 00000000..09c9b937 --- /dev/null +++ b/doc/theme/material/.icons/material/harddisk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hat-fedora.svg b/doc/theme/material/.icons/material/hat-fedora.svg new file mode 100644 index 00000000..b78565d9 --- /dev/null +++ b/doc/theme/material/.icons/material/hat-fedora.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hazard-lights.svg b/doc/theme/material/.icons/material/hazard-lights.svg new file mode 100644 index 00000000..8e076266 --- /dev/null +++ b/doc/theme/material/.icons/material/hazard-lights.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hdr-off.svg b/doc/theme/material/.icons/material/hdr-off.svg new file mode 100644 index 00000000..e92c8930 --- /dev/null +++ b/doc/theme/material/.icons/material/hdr-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hdr.svg b/doc/theme/material/.icons/material/hdr.svg new file mode 100644 index 00000000..8b2a1463 --- /dev/null +++ b/doc/theme/material/.icons/material/hdr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/head-alert-outline.svg b/doc/theme/material/.icons/material/head-alert-outline.svg new file mode 100644 index 00000000..110f9195 --- /dev/null +++ b/doc/theme/material/.icons/material/head-alert-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/head-alert.svg b/doc/theme/material/.icons/material/head-alert.svg new file mode 100644 index 00000000..26931952 --- /dev/null +++ b/doc/theme/material/.icons/material/head-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/head-check-outline.svg b/doc/theme/material/.icons/material/head-check-outline.svg new file mode 100644 index 00000000..8655ae7f --- /dev/null +++ b/doc/theme/material/.icons/material/head-check-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/head-check.svg b/doc/theme/material/.icons/material/head-check.svg new file mode 100644 index 00000000..7d934eb6 --- /dev/null +++ b/doc/theme/material/.icons/material/head-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/head-cog-outline.svg b/doc/theme/material/.icons/material/head-cog-outline.svg new file mode 100644 index 00000000..e625d2c8 --- /dev/null +++ b/doc/theme/material/.icons/material/head-cog-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/head-cog.svg b/doc/theme/material/.icons/material/head-cog.svg new file mode 100644 index 00000000..af0f90c6 --- /dev/null +++ b/doc/theme/material/.icons/material/head-cog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/head-dots-horizontal-outline.svg b/doc/theme/material/.icons/material/head-dots-horizontal-outline.svg new file mode 100644 index 00000000..609fc2c1 --- /dev/null +++ b/doc/theme/material/.icons/material/head-dots-horizontal-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/head-dots-horizontal.svg b/doc/theme/material/.icons/material/head-dots-horizontal.svg new file mode 100644 index 00000000..432e475d --- /dev/null +++ b/doc/theme/material/.icons/material/head-dots-horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/head-flash-outline.svg b/doc/theme/material/.icons/material/head-flash-outline.svg new file mode 100644 index 00000000..43074eb4 --- /dev/null +++ b/doc/theme/material/.icons/material/head-flash-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/head-flash.svg b/doc/theme/material/.icons/material/head-flash.svg new file mode 100644 index 00000000..931cc883 --- /dev/null +++ b/doc/theme/material/.icons/material/head-flash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/head-heart-outline.svg b/doc/theme/material/.icons/material/head-heart-outline.svg new file mode 100644 index 00000000..55e6819a --- /dev/null +++ b/doc/theme/material/.icons/material/head-heart-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/head-heart.svg b/doc/theme/material/.icons/material/head-heart.svg new file mode 100644 index 00000000..68a9c1a5 --- /dev/null +++ b/doc/theme/material/.icons/material/head-heart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/head-lightbulb-outline.svg b/doc/theme/material/.icons/material/head-lightbulb-outline.svg new file mode 100644 index 00000000..dad1d30c --- /dev/null +++ b/doc/theme/material/.icons/material/head-lightbulb-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/head-lightbulb.svg b/doc/theme/material/.icons/material/head-lightbulb.svg new file mode 100644 index 00000000..0b04c789 --- /dev/null +++ b/doc/theme/material/.icons/material/head-lightbulb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/head-minus-outline.svg b/doc/theme/material/.icons/material/head-minus-outline.svg new file mode 100644 index 00000000..6928fb73 --- /dev/null +++ b/doc/theme/material/.icons/material/head-minus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/head-minus.svg b/doc/theme/material/.icons/material/head-minus.svg new file mode 100644 index 00000000..979a4f7d --- /dev/null +++ b/doc/theme/material/.icons/material/head-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/head-outline.svg b/doc/theme/material/.icons/material/head-outline.svg new file mode 100644 index 00000000..1320523d --- /dev/null +++ b/doc/theme/material/.icons/material/head-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/head-plus-outline.svg b/doc/theme/material/.icons/material/head-plus-outline.svg new file mode 100644 index 00000000..9d77caef --- /dev/null +++ b/doc/theme/material/.icons/material/head-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/head-plus.svg b/doc/theme/material/.icons/material/head-plus.svg new file mode 100644 index 00000000..5a0ae5f5 --- /dev/null +++ b/doc/theme/material/.icons/material/head-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/head-question-outline.svg b/doc/theme/material/.icons/material/head-question-outline.svg new file mode 100644 index 00000000..92f7e15a --- /dev/null +++ b/doc/theme/material/.icons/material/head-question-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/head-question.svg b/doc/theme/material/.icons/material/head-question.svg new file mode 100644 index 00000000..52b77de1 --- /dev/null +++ b/doc/theme/material/.icons/material/head-question.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/head-remove-outline.svg b/doc/theme/material/.icons/material/head-remove-outline.svg new file mode 100644 index 00000000..c6849704 --- /dev/null +++ b/doc/theme/material/.icons/material/head-remove-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/head-remove.svg b/doc/theme/material/.icons/material/head-remove.svg new file mode 100644 index 00000000..e5650ab8 --- /dev/null +++ b/doc/theme/material/.icons/material/head-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/head-snowflake-outline.svg b/doc/theme/material/.icons/material/head-snowflake-outline.svg new file mode 100644 index 00000000..9b14c970 --- /dev/null +++ b/doc/theme/material/.icons/material/head-snowflake-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/head-snowflake.svg b/doc/theme/material/.icons/material/head-snowflake.svg new file mode 100644 index 00000000..f9324d79 --- /dev/null +++ b/doc/theme/material/.icons/material/head-snowflake.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/head-sync-outline.svg b/doc/theme/material/.icons/material/head-sync-outline.svg new file mode 100644 index 00000000..7245b12f --- /dev/null +++ b/doc/theme/material/.icons/material/head-sync-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/head-sync.svg b/doc/theme/material/.icons/material/head-sync.svg new file mode 100644 index 00000000..9b808f2c --- /dev/null +++ b/doc/theme/material/.icons/material/head-sync.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/head.svg b/doc/theme/material/.icons/material/head.svg new file mode 100644 index 00000000..f1a43695 --- /dev/null +++ b/doc/theme/material/.icons/material/head.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/headphones-bluetooth.svg b/doc/theme/material/.icons/material/headphones-bluetooth.svg new file mode 100644 index 00000000..c9ddac16 --- /dev/null +++ b/doc/theme/material/.icons/material/headphones-bluetooth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/headphones-box.svg b/doc/theme/material/.icons/material/headphones-box.svg new file mode 100644 index 00000000..c6debb58 --- /dev/null +++ b/doc/theme/material/.icons/material/headphones-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/headphones-off.svg b/doc/theme/material/.icons/material/headphones-off.svg new file mode 100644 index 00000000..239fea85 --- /dev/null +++ b/doc/theme/material/.icons/material/headphones-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/headphones-settings.svg b/doc/theme/material/.icons/material/headphones-settings.svg new file mode 100644 index 00000000..1cacd36a --- /dev/null +++ b/doc/theme/material/.icons/material/headphones-settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/headphones.svg b/doc/theme/material/.icons/material/headphones.svg new file mode 100644 index 00000000..5ae302d7 --- /dev/null +++ b/doc/theme/material/.icons/material/headphones.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/headset-dock.svg b/doc/theme/material/.icons/material/headset-dock.svg new file mode 100644 index 00000000..5ec72ff9 --- /dev/null +++ b/doc/theme/material/.icons/material/headset-dock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/headset-off.svg b/doc/theme/material/.icons/material/headset-off.svg new file mode 100644 index 00000000..46d5b32f --- /dev/null +++ b/doc/theme/material/.icons/material/headset-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/headset.svg b/doc/theme/material/.icons/material/headset.svg new file mode 100644 index 00000000..5b2d3a33 --- /dev/null +++ b/doc/theme/material/.icons/material/headset.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/heart-box-outline.svg b/doc/theme/material/.icons/material/heart-box-outline.svg new file mode 100644 index 00000000..e80bc84c --- /dev/null +++ b/doc/theme/material/.icons/material/heart-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/heart-box.svg b/doc/theme/material/.icons/material/heart-box.svg new file mode 100644 index 00000000..ca6466a6 --- /dev/null +++ b/doc/theme/material/.icons/material/heart-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/heart-broken-outline.svg b/doc/theme/material/.icons/material/heart-broken-outline.svg new file mode 100644 index 00000000..293f7f90 --- /dev/null +++ b/doc/theme/material/.icons/material/heart-broken-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/heart-broken.svg b/doc/theme/material/.icons/material/heart-broken.svg new file mode 100644 index 00000000..cc326554 --- /dev/null +++ b/doc/theme/material/.icons/material/heart-broken.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/heart-circle-outline.svg b/doc/theme/material/.icons/material/heart-circle-outline.svg new file mode 100644 index 00000000..11b83041 --- /dev/null +++ b/doc/theme/material/.icons/material/heart-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/heart-circle.svg b/doc/theme/material/.icons/material/heart-circle.svg new file mode 100644 index 00000000..0f057f75 --- /dev/null +++ b/doc/theme/material/.icons/material/heart-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/heart-flash.svg b/doc/theme/material/.icons/material/heart-flash.svg new file mode 100644 index 00000000..5f18dca5 --- /dev/null +++ b/doc/theme/material/.icons/material/heart-flash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/heart-half-full.svg b/doc/theme/material/.icons/material/heart-half-full.svg new file mode 100644 index 00000000..a3f9704a --- /dev/null +++ b/doc/theme/material/.icons/material/heart-half-full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/heart-half-outline.svg b/doc/theme/material/.icons/material/heart-half-outline.svg new file mode 100644 index 00000000..d1fdc1fc --- /dev/null +++ b/doc/theme/material/.icons/material/heart-half-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/heart-half.svg b/doc/theme/material/.icons/material/heart-half.svg new file mode 100644 index 00000000..a52490fa --- /dev/null +++ b/doc/theme/material/.icons/material/heart-half.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/heart-multiple-outline.svg b/doc/theme/material/.icons/material/heart-multiple-outline.svg new file mode 100644 index 00000000..5577df27 --- /dev/null +++ b/doc/theme/material/.icons/material/heart-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/heart-multiple.svg b/doc/theme/material/.icons/material/heart-multiple.svg new file mode 100644 index 00000000..fa9b3a6d --- /dev/null +++ b/doc/theme/material/.icons/material/heart-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/heart-off.svg b/doc/theme/material/.icons/material/heart-off.svg new file mode 100644 index 00000000..d17dd53d --- /dev/null +++ b/doc/theme/material/.icons/material/heart-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/heart-outline.svg b/doc/theme/material/.icons/material/heart-outline.svg new file mode 100644 index 00000000..09836441 --- /dev/null +++ b/doc/theme/material/.icons/material/heart-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/heart-pulse.svg b/doc/theme/material/.icons/material/heart-pulse.svg new file mode 100644 index 00000000..3cacf989 --- /dev/null +++ b/doc/theme/material/.icons/material/heart-pulse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/heart.svg b/doc/theme/material/.icons/material/heart.svg new file mode 100644 index 00000000..69d69a0e --- /dev/null +++ b/doc/theme/material/.icons/material/heart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/helicopter.svg b/doc/theme/material/.icons/material/helicopter.svg new file mode 100644 index 00000000..0e1d6ae8 --- /dev/null +++ b/doc/theme/material/.icons/material/helicopter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/help-box.svg b/doc/theme/material/.icons/material/help-box.svg new file mode 100644 index 00000000..e916ef18 --- /dev/null +++ b/doc/theme/material/.icons/material/help-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/help-circle-outline.svg b/doc/theme/material/.icons/material/help-circle-outline.svg new file mode 100644 index 00000000..9f5515ab --- /dev/null +++ b/doc/theme/material/.icons/material/help-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/help-circle.svg b/doc/theme/material/.icons/material/help-circle.svg new file mode 100644 index 00000000..8e4dd2fc --- /dev/null +++ b/doc/theme/material/.icons/material/help-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/help-network-outline.svg b/doc/theme/material/.icons/material/help-network-outline.svg new file mode 100644 index 00000000..7ea8eaf8 --- /dev/null +++ b/doc/theme/material/.icons/material/help-network-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/help-network.svg b/doc/theme/material/.icons/material/help-network.svg new file mode 100644 index 00000000..6c9e70ad --- /dev/null +++ b/doc/theme/material/.icons/material/help-network.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/help-rhombus-outline.svg b/doc/theme/material/.icons/material/help-rhombus-outline.svg new file mode 100644 index 00000000..3918d4ec --- /dev/null +++ b/doc/theme/material/.icons/material/help-rhombus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/help-rhombus.svg b/doc/theme/material/.icons/material/help-rhombus.svg new file mode 100644 index 00000000..0e19d819 --- /dev/null +++ b/doc/theme/material/.icons/material/help-rhombus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/help.svg b/doc/theme/material/.icons/material/help.svg new file mode 100644 index 00000000..c6b50367 --- /dev/null +++ b/doc/theme/material/.icons/material/help.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hexadecimal.svg b/doc/theme/material/.icons/material/hexadecimal.svg new file mode 100644 index 00000000..9dfee5af --- /dev/null +++ b/doc/theme/material/.icons/material/hexadecimal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hexagon-multiple-outline.svg b/doc/theme/material/.icons/material/hexagon-multiple-outline.svg new file mode 100644 index 00000000..ff22f1d7 --- /dev/null +++ b/doc/theme/material/.icons/material/hexagon-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hexagon-multiple.svg b/doc/theme/material/.icons/material/hexagon-multiple.svg new file mode 100644 index 00000000..f0d13d58 --- /dev/null +++ b/doc/theme/material/.icons/material/hexagon-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hexagon-outline.svg b/doc/theme/material/.icons/material/hexagon-outline.svg new file mode 100644 index 00000000..24e893dd --- /dev/null +++ b/doc/theme/material/.icons/material/hexagon-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hexagon-slice-1.svg b/doc/theme/material/.icons/material/hexagon-slice-1.svg new file mode 100644 index 00000000..7b73486d --- /dev/null +++ b/doc/theme/material/.icons/material/hexagon-slice-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hexagon-slice-2.svg b/doc/theme/material/.icons/material/hexagon-slice-2.svg new file mode 100644 index 00000000..b34ce8be --- /dev/null +++ b/doc/theme/material/.icons/material/hexagon-slice-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hexagon-slice-3.svg b/doc/theme/material/.icons/material/hexagon-slice-3.svg new file mode 100644 index 00000000..5f828be0 --- /dev/null +++ b/doc/theme/material/.icons/material/hexagon-slice-3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hexagon-slice-4.svg b/doc/theme/material/.icons/material/hexagon-slice-4.svg new file mode 100644 index 00000000..a7f09678 --- /dev/null +++ b/doc/theme/material/.icons/material/hexagon-slice-4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hexagon-slice-5.svg b/doc/theme/material/.icons/material/hexagon-slice-5.svg new file mode 100644 index 00000000..32a37528 --- /dev/null +++ b/doc/theme/material/.icons/material/hexagon-slice-5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hexagon-slice-6.svg b/doc/theme/material/.icons/material/hexagon-slice-6.svg new file mode 100644 index 00000000..4117b635 --- /dev/null +++ b/doc/theme/material/.icons/material/hexagon-slice-6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hexagon.svg b/doc/theme/material/.icons/material/hexagon.svg new file mode 100644 index 00000000..087ca6ad --- /dev/null +++ b/doc/theme/material/.icons/material/hexagon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hexagram-outline.svg b/doc/theme/material/.icons/material/hexagram-outline.svg new file mode 100644 index 00000000..a5530676 --- /dev/null +++ b/doc/theme/material/.icons/material/hexagram-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hexagram.svg b/doc/theme/material/.icons/material/hexagram.svg new file mode 100644 index 00000000..b4531b56 --- /dev/null +++ b/doc/theme/material/.icons/material/hexagram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/high-definition-box.svg b/doc/theme/material/.icons/material/high-definition-box.svg new file mode 100644 index 00000000..dd6092fd --- /dev/null +++ b/doc/theme/material/.icons/material/high-definition-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/high-definition.svg b/doc/theme/material/.icons/material/high-definition.svg new file mode 100644 index 00000000..5965a244 --- /dev/null +++ b/doc/theme/material/.icons/material/high-definition.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/highway.svg b/doc/theme/material/.icons/material/highway.svg new file mode 100644 index 00000000..91f7791b --- /dev/null +++ b/doc/theme/material/.icons/material/highway.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hiking.svg b/doc/theme/material/.icons/material/hiking.svg new file mode 100644 index 00000000..05ddae04 --- /dev/null +++ b/doc/theme/material/.icons/material/hiking.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hinduism.svg b/doc/theme/material/.icons/material/hinduism.svg new file mode 100644 index 00000000..f0256772 --- /dev/null +++ b/doc/theme/material/.icons/material/hinduism.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/history.svg b/doc/theme/material/.icons/material/history.svg new file mode 100644 index 00000000..93bf7bf2 --- /dev/null +++ b/doc/theme/material/.icons/material/history.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hockey-puck.svg b/doc/theme/material/.icons/material/hockey-puck.svg new file mode 100644 index 00000000..5564466f --- /dev/null +++ b/doc/theme/material/.icons/material/hockey-puck.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hockey-sticks.svg b/doc/theme/material/.icons/material/hockey-sticks.svg new file mode 100644 index 00000000..6761a7a7 --- /dev/null +++ b/doc/theme/material/.icons/material/hockey-sticks.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hololens.svg b/doc/theme/material/.icons/material/hololens.svg new file mode 100644 index 00000000..325f9f57 --- /dev/null +++ b/doc/theme/material/.icons/material/hololens.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-account.svg b/doc/theme/material/.icons/material/home-account.svg new file mode 100644 index 00000000..9182e9a2 --- /dev/null +++ b/doc/theme/material/.icons/material/home-account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-alert.svg b/doc/theme/material/.icons/material/home-alert.svg new file mode 100644 index 00000000..1d89644b --- /dev/null +++ b/doc/theme/material/.icons/material/home-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-analytics.svg b/doc/theme/material/.icons/material/home-analytics.svg new file mode 100644 index 00000000..2b370f4d --- /dev/null +++ b/doc/theme/material/.icons/material/home-analytics.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-assistant.svg b/doc/theme/material/.icons/material/home-assistant.svg new file mode 100644 index 00000000..852a1420 --- /dev/null +++ b/doc/theme/material/.icons/material/home-assistant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-automation.svg b/doc/theme/material/.icons/material/home-automation.svg new file mode 100644 index 00000000..d269a7b5 --- /dev/null +++ b/doc/theme/material/.icons/material/home-automation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-circle-outline.svg b/doc/theme/material/.icons/material/home-circle-outline.svg new file mode 100644 index 00000000..fe6c5319 --- /dev/null +++ b/doc/theme/material/.icons/material/home-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-circle.svg b/doc/theme/material/.icons/material/home-circle.svg new file mode 100644 index 00000000..7998e9b5 --- /dev/null +++ b/doc/theme/material/.icons/material/home-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-city-outline.svg b/doc/theme/material/.icons/material/home-city-outline.svg new file mode 100644 index 00000000..b2d11c2e --- /dev/null +++ b/doc/theme/material/.icons/material/home-city-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-city.svg b/doc/theme/material/.icons/material/home-city.svg new file mode 100644 index 00000000..0a19b0b0 --- /dev/null +++ b/doc/theme/material/.icons/material/home-city.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-currency-usd.svg b/doc/theme/material/.icons/material/home-currency-usd.svg new file mode 100644 index 00000000..ad897dc0 --- /dev/null +++ b/doc/theme/material/.icons/material/home-currency-usd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-edit-outline.svg b/doc/theme/material/.icons/material/home-edit-outline.svg new file mode 100644 index 00000000..b881f2d2 --- /dev/null +++ b/doc/theme/material/.icons/material/home-edit-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-edit.svg b/doc/theme/material/.icons/material/home-edit.svg new file mode 100644 index 00000000..edb8a363 --- /dev/null +++ b/doc/theme/material/.icons/material/home-edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-export-outline.svg b/doc/theme/material/.icons/material/home-export-outline.svg new file mode 100644 index 00000000..45046adb --- /dev/null +++ b/doc/theme/material/.icons/material/home-export-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-flood.svg b/doc/theme/material/.icons/material/home-flood.svg new file mode 100644 index 00000000..5b04dbd9 --- /dev/null +++ b/doc/theme/material/.icons/material/home-flood.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-floor-0.svg b/doc/theme/material/.icons/material/home-floor-0.svg new file mode 100644 index 00000000..30c77c2c --- /dev/null +++ b/doc/theme/material/.icons/material/home-floor-0.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-floor-1.svg b/doc/theme/material/.icons/material/home-floor-1.svg new file mode 100644 index 00000000..b87eb354 --- /dev/null +++ b/doc/theme/material/.icons/material/home-floor-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-floor-2.svg b/doc/theme/material/.icons/material/home-floor-2.svg new file mode 100644 index 00000000..cf8f410b --- /dev/null +++ b/doc/theme/material/.icons/material/home-floor-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-floor-3.svg b/doc/theme/material/.icons/material/home-floor-3.svg new file mode 100644 index 00000000..54665daa --- /dev/null +++ b/doc/theme/material/.icons/material/home-floor-3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-floor-a.svg b/doc/theme/material/.icons/material/home-floor-a.svg new file mode 100644 index 00000000..e17e61da --- /dev/null +++ b/doc/theme/material/.icons/material/home-floor-a.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-floor-b.svg b/doc/theme/material/.icons/material/home-floor-b.svg new file mode 100644 index 00000000..7d5a6317 --- /dev/null +++ b/doc/theme/material/.icons/material/home-floor-b.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-floor-g.svg b/doc/theme/material/.icons/material/home-floor-g.svg new file mode 100644 index 00000000..0cc70743 --- /dev/null +++ b/doc/theme/material/.icons/material/home-floor-g.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-floor-l.svg b/doc/theme/material/.icons/material/home-floor-l.svg new file mode 100644 index 00000000..92d7b5ad --- /dev/null +++ b/doc/theme/material/.icons/material/home-floor-l.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-floor-negative-1.svg b/doc/theme/material/.icons/material/home-floor-negative-1.svg new file mode 100644 index 00000000..6a3782dd --- /dev/null +++ b/doc/theme/material/.icons/material/home-floor-negative-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-group.svg b/doc/theme/material/.icons/material/home-group.svg new file mode 100644 index 00000000..1ddd4ffc --- /dev/null +++ b/doc/theme/material/.icons/material/home-group.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-heart.svg b/doc/theme/material/.icons/material/home-heart.svg new file mode 100644 index 00000000..850ad96b --- /dev/null +++ b/doc/theme/material/.icons/material/home-heart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-import-outline.svg b/doc/theme/material/.icons/material/home-import-outline.svg new file mode 100644 index 00000000..7e09c5d5 --- /dev/null +++ b/doc/theme/material/.icons/material/home-import-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-lightbulb-outline.svg b/doc/theme/material/.icons/material/home-lightbulb-outline.svg new file mode 100644 index 00000000..969a1f35 --- /dev/null +++ b/doc/theme/material/.icons/material/home-lightbulb-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-lightbulb.svg b/doc/theme/material/.icons/material/home-lightbulb.svg new file mode 100644 index 00000000..4cc9fef7 --- /dev/null +++ b/doc/theme/material/.icons/material/home-lightbulb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-lock-open.svg b/doc/theme/material/.icons/material/home-lock-open.svg new file mode 100644 index 00000000..fba7ee57 --- /dev/null +++ b/doc/theme/material/.icons/material/home-lock-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-lock.svg b/doc/theme/material/.icons/material/home-lock.svg new file mode 100644 index 00000000..9522402f --- /dev/null +++ b/doc/theme/material/.icons/material/home-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-map-marker.svg b/doc/theme/material/.icons/material/home-map-marker.svg new file mode 100644 index 00000000..d0df2a4c --- /dev/null +++ b/doc/theme/material/.icons/material/home-map-marker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-minus-outline.svg b/doc/theme/material/.icons/material/home-minus-outline.svg new file mode 100644 index 00000000..ed7a73ee --- /dev/null +++ b/doc/theme/material/.icons/material/home-minus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-minus.svg b/doc/theme/material/.icons/material/home-minus.svg new file mode 100644 index 00000000..e95fd977 --- /dev/null +++ b/doc/theme/material/.icons/material/home-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-modern.svg b/doc/theme/material/.icons/material/home-modern.svg new file mode 100644 index 00000000..0d292736 --- /dev/null +++ b/doc/theme/material/.icons/material/home-modern.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-outline.svg b/doc/theme/material/.icons/material/home-outline.svg new file mode 100644 index 00000000..2c3eb6ef --- /dev/null +++ b/doc/theme/material/.icons/material/home-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-plus-outline.svg b/doc/theme/material/.icons/material/home-plus-outline.svg new file mode 100644 index 00000000..ac0c5dc0 --- /dev/null +++ b/doc/theme/material/.icons/material/home-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-plus.svg b/doc/theme/material/.icons/material/home-plus.svg new file mode 100644 index 00000000..124d66c5 --- /dev/null +++ b/doc/theme/material/.icons/material/home-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-remove-outline.svg b/doc/theme/material/.icons/material/home-remove-outline.svg new file mode 100644 index 00000000..47e2ccf6 --- /dev/null +++ b/doc/theme/material/.icons/material/home-remove-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-remove.svg b/doc/theme/material/.icons/material/home-remove.svg new file mode 100644 index 00000000..6fd3fa30 --- /dev/null +++ b/doc/theme/material/.icons/material/home-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-roof.svg b/doc/theme/material/.icons/material/home-roof.svg new file mode 100644 index 00000000..9a463230 --- /dev/null +++ b/doc/theme/material/.icons/material/home-roof.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-search-outline.svg b/doc/theme/material/.icons/material/home-search-outline.svg new file mode 100644 index 00000000..6bb63642 --- /dev/null +++ b/doc/theme/material/.icons/material/home-search-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-search.svg b/doc/theme/material/.icons/material/home-search.svg new file mode 100644 index 00000000..27b43d00 --- /dev/null +++ b/doc/theme/material/.icons/material/home-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-thermometer-outline.svg b/doc/theme/material/.icons/material/home-thermometer-outline.svg new file mode 100644 index 00000000..ba76da70 --- /dev/null +++ b/doc/theme/material/.icons/material/home-thermometer-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-thermometer.svg b/doc/theme/material/.icons/material/home-thermometer.svg new file mode 100644 index 00000000..9d4f2f2a --- /dev/null +++ b/doc/theme/material/.icons/material/home-thermometer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-variant-outline.svg b/doc/theme/material/.icons/material/home-variant-outline.svg new file mode 100644 index 00000000..3e6a703d --- /dev/null +++ b/doc/theme/material/.icons/material/home-variant-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home-variant.svg b/doc/theme/material/.icons/material/home-variant.svg new file mode 100644 index 00000000..3b5369e2 --- /dev/null +++ b/doc/theme/material/.icons/material/home-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/home.svg b/doc/theme/material/.icons/material/home.svg new file mode 100644 index 00000000..814d34e2 --- /dev/null +++ b/doc/theme/material/.icons/material/home.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hook-off.svg b/doc/theme/material/.icons/material/hook-off.svg new file mode 100644 index 00000000..905ac42b --- /dev/null +++ b/doc/theme/material/.icons/material/hook-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hook.svg b/doc/theme/material/.icons/material/hook.svg new file mode 100644 index 00000000..fda1de76 --- /dev/null +++ b/doc/theme/material/.icons/material/hook.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hops.svg b/doc/theme/material/.icons/material/hops.svg new file mode 100644 index 00000000..504a4534 --- /dev/null +++ b/doc/theme/material/.icons/material/hops.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/horizontal-rotate-clockwise.svg b/doc/theme/material/.icons/material/horizontal-rotate-clockwise.svg new file mode 100644 index 00000000..048c2a54 --- /dev/null +++ b/doc/theme/material/.icons/material/horizontal-rotate-clockwise.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/horizontal-rotate-counterclockwise.svg b/doc/theme/material/.icons/material/horizontal-rotate-counterclockwise.svg new file mode 100644 index 00000000..6ddeed23 --- /dev/null +++ b/doc/theme/material/.icons/material/horizontal-rotate-counterclockwise.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/horseshoe.svg b/doc/theme/material/.icons/material/horseshoe.svg new file mode 100644 index 00000000..d22104db --- /dev/null +++ b/doc/theme/material/.icons/material/horseshoe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hospital-box-outline.svg b/doc/theme/material/.icons/material/hospital-box-outline.svg new file mode 100644 index 00000000..b7457c51 --- /dev/null +++ b/doc/theme/material/.icons/material/hospital-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hospital-box.svg b/doc/theme/material/.icons/material/hospital-box.svg new file mode 100644 index 00000000..68c26c08 --- /dev/null +++ b/doc/theme/material/.icons/material/hospital-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hospital-building.svg b/doc/theme/material/.icons/material/hospital-building.svg new file mode 100644 index 00000000..a8e040e7 --- /dev/null +++ b/doc/theme/material/.icons/material/hospital-building.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hospital-marker.svg b/doc/theme/material/.icons/material/hospital-marker.svg new file mode 100644 index 00000000..3d249aaf --- /dev/null +++ b/doc/theme/material/.icons/material/hospital-marker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hospital.svg b/doc/theme/material/.icons/material/hospital.svg new file mode 100644 index 00000000..9aa85bc1 --- /dev/null +++ b/doc/theme/material/.icons/material/hospital.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hot-tub.svg b/doc/theme/material/.icons/material/hot-tub.svg new file mode 100644 index 00000000..a5c4f106 --- /dev/null +++ b/doc/theme/material/.icons/material/hot-tub.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hubspot.svg b/doc/theme/material/.icons/material/hubspot.svg new file mode 100644 index 00000000..3c9e75db --- /dev/null +++ b/doc/theme/material/.icons/material/hubspot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hulu.svg b/doc/theme/material/.icons/material/hulu.svg new file mode 100644 index 00000000..2df0bb52 --- /dev/null +++ b/doc/theme/material/.icons/material/hulu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/human-baby-changing-table.svg b/doc/theme/material/.icons/material/human-baby-changing-table.svg new file mode 100644 index 00000000..41c576d0 --- /dev/null +++ b/doc/theme/material/.icons/material/human-baby-changing-table.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/human-child.svg b/doc/theme/material/.icons/material/human-child.svg new file mode 100644 index 00000000..39dce2e1 --- /dev/null +++ b/doc/theme/material/.icons/material/human-child.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/human-female-boy.svg b/doc/theme/material/.icons/material/human-female-boy.svg new file mode 100644 index 00000000..c060fd65 --- /dev/null +++ b/doc/theme/material/.icons/material/human-female-boy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/human-female-female.svg b/doc/theme/material/.icons/material/human-female-female.svg new file mode 100644 index 00000000..52077607 --- /dev/null +++ b/doc/theme/material/.icons/material/human-female-female.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/human-female-girl.svg b/doc/theme/material/.icons/material/human-female-girl.svg new file mode 100644 index 00000000..35e5d256 --- /dev/null +++ b/doc/theme/material/.icons/material/human-female-girl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/human-female.svg b/doc/theme/material/.icons/material/human-female.svg new file mode 100644 index 00000000..776a3d00 --- /dev/null +++ b/doc/theme/material/.icons/material/human-female.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/human-greeting.svg b/doc/theme/material/.icons/material/human-greeting.svg new file mode 100644 index 00000000..bee493cf --- /dev/null +++ b/doc/theme/material/.icons/material/human-greeting.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/human-handsdown.svg b/doc/theme/material/.icons/material/human-handsdown.svg new file mode 100644 index 00000000..bb260738 --- /dev/null +++ b/doc/theme/material/.icons/material/human-handsdown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/human-handsup.svg b/doc/theme/material/.icons/material/human-handsup.svg new file mode 100644 index 00000000..30fd292a --- /dev/null +++ b/doc/theme/material/.icons/material/human-handsup.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/human-male-boy.svg b/doc/theme/material/.icons/material/human-male-boy.svg new file mode 100644 index 00000000..d9df613e --- /dev/null +++ b/doc/theme/material/.icons/material/human-male-boy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/human-male-child.svg b/doc/theme/material/.icons/material/human-male-child.svg new file mode 100644 index 00000000..8583a2aa --- /dev/null +++ b/doc/theme/material/.icons/material/human-male-child.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/human-male-female.svg b/doc/theme/material/.icons/material/human-male-female.svg new file mode 100644 index 00000000..ea32ae27 --- /dev/null +++ b/doc/theme/material/.icons/material/human-male-female.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/human-male-girl.svg b/doc/theme/material/.icons/material/human-male-girl.svg new file mode 100644 index 00000000..4de802d6 --- /dev/null +++ b/doc/theme/material/.icons/material/human-male-girl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/human-male-height-variant.svg b/doc/theme/material/.icons/material/human-male-height-variant.svg new file mode 100644 index 00000000..9e45fd56 --- /dev/null +++ b/doc/theme/material/.icons/material/human-male-height-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/human-male-height.svg b/doc/theme/material/.icons/material/human-male-height.svg new file mode 100644 index 00000000..de3c4af5 --- /dev/null +++ b/doc/theme/material/.icons/material/human-male-height.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/human-male-male.svg b/doc/theme/material/.icons/material/human-male-male.svg new file mode 100644 index 00000000..5a16c3f2 --- /dev/null +++ b/doc/theme/material/.icons/material/human-male-male.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/human-male.svg b/doc/theme/material/.icons/material/human-male.svg new file mode 100644 index 00000000..ada8cff2 --- /dev/null +++ b/doc/theme/material/.icons/material/human-male.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/human-pregnant.svg b/doc/theme/material/.icons/material/human-pregnant.svg new file mode 100644 index 00000000..eb263f48 --- /dev/null +++ b/doc/theme/material/.icons/material/human-pregnant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/human-wheelchair.svg b/doc/theme/material/.icons/material/human-wheelchair.svg new file mode 100644 index 00000000..1276a6ab --- /dev/null +++ b/doc/theme/material/.icons/material/human-wheelchair.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/human.svg b/doc/theme/material/.icons/material/human.svg new file mode 100644 index 00000000..b1dc1849 --- /dev/null +++ b/doc/theme/material/.icons/material/human.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/humble-bundle.svg b/doc/theme/material/.icons/material/humble-bundle.svg new file mode 100644 index 00000000..010279b9 --- /dev/null +++ b/doc/theme/material/.icons/material/humble-bundle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hvac.svg b/doc/theme/material/.icons/material/hvac.svg new file mode 100644 index 00000000..476fca68 --- /dev/null +++ b/doc/theme/material/.icons/material/hvac.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hydraulic-oil-level.svg b/doc/theme/material/.icons/material/hydraulic-oil-level.svg new file mode 100644 index 00000000..209c8a21 --- /dev/null +++ b/doc/theme/material/.icons/material/hydraulic-oil-level.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hydraulic-oil-temperature.svg b/doc/theme/material/.icons/material/hydraulic-oil-temperature.svg new file mode 100644 index 00000000..d6b79744 --- /dev/null +++ b/doc/theme/material/.icons/material/hydraulic-oil-temperature.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/hydro-power.svg b/doc/theme/material/.icons/material/hydro-power.svg new file mode 100644 index 00000000..15b11cbf --- /dev/null +++ b/doc/theme/material/.icons/material/hydro-power.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ice-cream-off.svg b/doc/theme/material/.icons/material/ice-cream-off.svg new file mode 100644 index 00000000..62ec2a28 --- /dev/null +++ b/doc/theme/material/.icons/material/ice-cream-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ice-cream.svg b/doc/theme/material/.icons/material/ice-cream.svg new file mode 100644 index 00000000..007aca2d --- /dev/null +++ b/doc/theme/material/.icons/material/ice-cream.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ice-pop.svg b/doc/theme/material/.icons/material/ice-pop.svg new file mode 100644 index 00000000..5cec3d4f --- /dev/null +++ b/doc/theme/material/.icons/material/ice-pop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/id-card.svg b/doc/theme/material/.icons/material/id-card.svg new file mode 100644 index 00000000..6ee5e171 --- /dev/null +++ b/doc/theme/material/.icons/material/id-card.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/identifier.svg b/doc/theme/material/.icons/material/identifier.svg new file mode 100644 index 00000000..439a7b73 --- /dev/null +++ b/doc/theme/material/.icons/material/identifier.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ideogram-cjk-variant.svg b/doc/theme/material/.icons/material/ideogram-cjk-variant.svg new file mode 100644 index 00000000..89d4d3a3 --- /dev/null +++ b/doc/theme/material/.icons/material/ideogram-cjk-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ideogram-cjk.svg b/doc/theme/material/.icons/material/ideogram-cjk.svg new file mode 100644 index 00000000..6761cb05 --- /dev/null +++ b/doc/theme/material/.icons/material/ideogram-cjk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/iframe-array-outline.svg b/doc/theme/material/.icons/material/iframe-array-outline.svg new file mode 100644 index 00000000..9774732d --- /dev/null +++ b/doc/theme/material/.icons/material/iframe-array-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/iframe-array.svg b/doc/theme/material/.icons/material/iframe-array.svg new file mode 100644 index 00000000..4ddd3892 --- /dev/null +++ b/doc/theme/material/.icons/material/iframe-array.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/iframe-braces-outline.svg b/doc/theme/material/.icons/material/iframe-braces-outline.svg new file mode 100644 index 00000000..9fbfafac --- /dev/null +++ b/doc/theme/material/.icons/material/iframe-braces-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/iframe-braces.svg b/doc/theme/material/.icons/material/iframe-braces.svg new file mode 100644 index 00000000..c20cbf04 --- /dev/null +++ b/doc/theme/material/.icons/material/iframe-braces.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/iframe-outline.svg b/doc/theme/material/.icons/material/iframe-outline.svg new file mode 100644 index 00000000..3b9b0ec5 --- /dev/null +++ b/doc/theme/material/.icons/material/iframe-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/iframe-parentheses-outline.svg b/doc/theme/material/.icons/material/iframe-parentheses-outline.svg new file mode 100644 index 00000000..8a3aff3f --- /dev/null +++ b/doc/theme/material/.icons/material/iframe-parentheses-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/iframe-parentheses.svg b/doc/theme/material/.icons/material/iframe-parentheses.svg new file mode 100644 index 00000000..1c3e9c80 --- /dev/null +++ b/doc/theme/material/.icons/material/iframe-parentheses.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/iframe-variable-outline.svg b/doc/theme/material/.icons/material/iframe-variable-outline.svg new file mode 100644 index 00000000..cfae26a9 --- /dev/null +++ b/doc/theme/material/.icons/material/iframe-variable-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/iframe-variable.svg b/doc/theme/material/.icons/material/iframe-variable.svg new file mode 100644 index 00000000..71f80b99 --- /dev/null +++ b/doc/theme/material/.icons/material/iframe-variable.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/iframe.svg b/doc/theme/material/.icons/material/iframe.svg new file mode 100644 index 00000000..e2fe1d61 --- /dev/null +++ b/doc/theme/material/.icons/material/iframe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-album.svg b/doc/theme/material/.icons/material/image-album.svg new file mode 100644 index 00000000..93de425f --- /dev/null +++ b/doc/theme/material/.icons/material/image-album.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-area-close.svg b/doc/theme/material/.icons/material/image-area-close.svg new file mode 100644 index 00000000..4b73bd73 --- /dev/null +++ b/doc/theme/material/.icons/material/image-area-close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-area.svg b/doc/theme/material/.icons/material/image-area.svg new file mode 100644 index 00000000..b5b4f242 --- /dev/null +++ b/doc/theme/material/.icons/material/image-area.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-auto-adjust.svg b/doc/theme/material/.icons/material/image-auto-adjust.svg new file mode 100644 index 00000000..497bb924 --- /dev/null +++ b/doc/theme/material/.icons/material/image-auto-adjust.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-broken-variant.svg b/doc/theme/material/.icons/material/image-broken-variant.svg new file mode 100644 index 00000000..cce86f26 --- /dev/null +++ b/doc/theme/material/.icons/material/image-broken-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-broken.svg b/doc/theme/material/.icons/material/image-broken.svg new file mode 100644 index 00000000..5209f387 --- /dev/null +++ b/doc/theme/material/.icons/material/image-broken.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-edit-outline.svg b/doc/theme/material/.icons/material/image-edit-outline.svg new file mode 100644 index 00000000..fe2e948a --- /dev/null +++ b/doc/theme/material/.icons/material/image-edit-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-edit.svg b/doc/theme/material/.icons/material/image-edit.svg new file mode 100644 index 00000000..25195b5b --- /dev/null +++ b/doc/theme/material/.icons/material/image-edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-filter-black-white.svg b/doc/theme/material/.icons/material/image-filter-black-white.svg new file mode 100644 index 00000000..ec3ab47a --- /dev/null +++ b/doc/theme/material/.icons/material/image-filter-black-white.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-filter-center-focus-strong-outline.svg b/doc/theme/material/.icons/material/image-filter-center-focus-strong-outline.svg new file mode 100644 index 00000000..b1205fd4 --- /dev/null +++ b/doc/theme/material/.icons/material/image-filter-center-focus-strong-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-filter-center-focus-strong.svg b/doc/theme/material/.icons/material/image-filter-center-focus-strong.svg new file mode 100644 index 00000000..b7046117 --- /dev/null +++ b/doc/theme/material/.icons/material/image-filter-center-focus-strong.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-filter-center-focus-weak.svg b/doc/theme/material/.icons/material/image-filter-center-focus-weak.svg new file mode 100644 index 00000000..61575bd3 --- /dev/null +++ b/doc/theme/material/.icons/material/image-filter-center-focus-weak.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-filter-center-focus.svg b/doc/theme/material/.icons/material/image-filter-center-focus.svg new file mode 100644 index 00000000..35784a40 --- /dev/null +++ b/doc/theme/material/.icons/material/image-filter-center-focus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-filter-drama.svg b/doc/theme/material/.icons/material/image-filter-drama.svg new file mode 100644 index 00000000..e99f0e61 --- /dev/null +++ b/doc/theme/material/.icons/material/image-filter-drama.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-filter-frames.svg b/doc/theme/material/.icons/material/image-filter-frames.svg new file mode 100644 index 00000000..fc0c3ec9 --- /dev/null +++ b/doc/theme/material/.icons/material/image-filter-frames.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-filter-hdr.svg b/doc/theme/material/.icons/material/image-filter-hdr.svg new file mode 100644 index 00000000..d5a500d8 --- /dev/null +++ b/doc/theme/material/.icons/material/image-filter-hdr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-filter-none.svg b/doc/theme/material/.icons/material/image-filter-none.svg new file mode 100644 index 00000000..5d018e02 --- /dev/null +++ b/doc/theme/material/.icons/material/image-filter-none.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-filter-tilt-shift.svg b/doc/theme/material/.icons/material/image-filter-tilt-shift.svg new file mode 100644 index 00000000..cb4ead64 --- /dev/null +++ b/doc/theme/material/.icons/material/image-filter-tilt-shift.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-filter-vintage.svg b/doc/theme/material/.icons/material/image-filter-vintage.svg new file mode 100644 index 00000000..250354f5 --- /dev/null +++ b/doc/theme/material/.icons/material/image-filter-vintage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-frame.svg b/doc/theme/material/.icons/material/image-frame.svg new file mode 100644 index 00000000..0fe13daf --- /dev/null +++ b/doc/theme/material/.icons/material/image-frame.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-minus.svg b/doc/theme/material/.icons/material/image-minus.svg new file mode 100644 index 00000000..f6d8ea58 --- /dev/null +++ b/doc/theme/material/.icons/material/image-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-move.svg b/doc/theme/material/.icons/material/image-move.svg new file mode 100644 index 00000000..e613eaba --- /dev/null +++ b/doc/theme/material/.icons/material/image-move.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-multiple-outline.svg b/doc/theme/material/.icons/material/image-multiple-outline.svg new file mode 100644 index 00000000..8270d598 --- /dev/null +++ b/doc/theme/material/.icons/material/image-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-multiple.svg b/doc/theme/material/.icons/material/image-multiple.svg new file mode 100644 index 00000000..ae310042 --- /dev/null +++ b/doc/theme/material/.icons/material/image-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-off-outline.svg b/doc/theme/material/.icons/material/image-off-outline.svg new file mode 100644 index 00000000..330bec85 --- /dev/null +++ b/doc/theme/material/.icons/material/image-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-off.svg b/doc/theme/material/.icons/material/image-off.svg new file mode 100644 index 00000000..e5073953 --- /dev/null +++ b/doc/theme/material/.icons/material/image-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-outline.svg b/doc/theme/material/.icons/material/image-outline.svg new file mode 100644 index 00000000..b75a5b80 --- /dev/null +++ b/doc/theme/material/.icons/material/image-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-plus.svg b/doc/theme/material/.icons/material/image-plus.svg new file mode 100644 index 00000000..735834e4 --- /dev/null +++ b/doc/theme/material/.icons/material/image-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-remove.svg b/doc/theme/material/.icons/material/image-remove.svg new file mode 100644 index 00000000..339bd52e --- /dev/null +++ b/doc/theme/material/.icons/material/image-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-search-outline.svg b/doc/theme/material/.icons/material/image-search-outline.svg new file mode 100644 index 00000000..562a8935 --- /dev/null +++ b/doc/theme/material/.icons/material/image-search-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-search.svg b/doc/theme/material/.icons/material/image-search.svg new file mode 100644 index 00000000..053cf644 --- /dev/null +++ b/doc/theme/material/.icons/material/image-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-size-select-actual.svg b/doc/theme/material/.icons/material/image-size-select-actual.svg new file mode 100644 index 00000000..115cabc0 --- /dev/null +++ b/doc/theme/material/.icons/material/image-size-select-actual.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-size-select-large.svg b/doc/theme/material/.icons/material/image-size-select-large.svg new file mode 100644 index 00000000..4985574e --- /dev/null +++ b/doc/theme/material/.icons/material/image-size-select-large.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image-size-select-small.svg b/doc/theme/material/.icons/material/image-size-select-small.svg new file mode 100644 index 00000000..1765a434 --- /dev/null +++ b/doc/theme/material/.icons/material/image-size-select-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/image.svg b/doc/theme/material/.icons/material/image.svg new file mode 100644 index 00000000..e452dc3c --- /dev/null +++ b/doc/theme/material/.icons/material/image.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/import.svg b/doc/theme/material/.icons/material/import.svg new file mode 100644 index 00000000..a1bff1e5 --- /dev/null +++ b/doc/theme/material/.icons/material/import.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/inbox-arrow-down-outline.svg b/doc/theme/material/.icons/material/inbox-arrow-down-outline.svg new file mode 100644 index 00000000..b493e732 --- /dev/null +++ b/doc/theme/material/.icons/material/inbox-arrow-down-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/inbox-arrow-down.svg b/doc/theme/material/.icons/material/inbox-arrow-down.svg new file mode 100644 index 00000000..dc91e062 --- /dev/null +++ b/doc/theme/material/.icons/material/inbox-arrow-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/inbox-arrow-up-outline.svg b/doc/theme/material/.icons/material/inbox-arrow-up-outline.svg new file mode 100644 index 00000000..2bf922d5 --- /dev/null +++ b/doc/theme/material/.icons/material/inbox-arrow-up-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/inbox-arrow-up.svg b/doc/theme/material/.icons/material/inbox-arrow-up.svg new file mode 100644 index 00000000..b822f976 --- /dev/null +++ b/doc/theme/material/.icons/material/inbox-arrow-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/inbox-full-outline.svg b/doc/theme/material/.icons/material/inbox-full-outline.svg new file mode 100644 index 00000000..6539c0a0 --- /dev/null +++ b/doc/theme/material/.icons/material/inbox-full-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/inbox-full.svg b/doc/theme/material/.icons/material/inbox-full.svg new file mode 100644 index 00000000..2e6bce01 --- /dev/null +++ b/doc/theme/material/.icons/material/inbox-full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/inbox-multiple-outline.svg b/doc/theme/material/.icons/material/inbox-multiple-outline.svg new file mode 100644 index 00000000..ad512c43 --- /dev/null +++ b/doc/theme/material/.icons/material/inbox-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/inbox-multiple.svg b/doc/theme/material/.icons/material/inbox-multiple.svg new file mode 100644 index 00000000..7e340558 --- /dev/null +++ b/doc/theme/material/.icons/material/inbox-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/inbox-outline.svg b/doc/theme/material/.icons/material/inbox-outline.svg new file mode 100644 index 00000000..49754bac --- /dev/null +++ b/doc/theme/material/.icons/material/inbox-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/inbox.svg b/doc/theme/material/.icons/material/inbox.svg new file mode 100644 index 00000000..6e925e89 --- /dev/null +++ b/doc/theme/material/.icons/material/inbox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/incognito-off.svg b/doc/theme/material/.icons/material/incognito-off.svg new file mode 100644 index 00000000..db420f61 --- /dev/null +++ b/doc/theme/material/.icons/material/incognito-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/incognito.svg b/doc/theme/material/.icons/material/incognito.svg new file mode 100644 index 00000000..e6945ff0 --- /dev/null +++ b/doc/theme/material/.icons/material/incognito.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/infinity.svg b/doc/theme/material/.icons/material/infinity.svg new file mode 100644 index 00000000..08dd1755 --- /dev/null +++ b/doc/theme/material/.icons/material/infinity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/information-outline.svg b/doc/theme/material/.icons/material/information-outline.svg new file mode 100644 index 00000000..3b9ae8a5 --- /dev/null +++ b/doc/theme/material/.icons/material/information-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/information-variant.svg b/doc/theme/material/.icons/material/information-variant.svg new file mode 100644 index 00000000..30425b79 --- /dev/null +++ b/doc/theme/material/.icons/material/information-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/information.svg b/doc/theme/material/.icons/material/information.svg new file mode 100644 index 00000000..8a7224d7 --- /dev/null +++ b/doc/theme/material/.icons/material/information.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/instagram.svg b/doc/theme/material/.icons/material/instagram.svg new file mode 100644 index 00000000..9fc51f83 --- /dev/null +++ b/doc/theme/material/.icons/material/instagram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/instrument-triangle.svg b/doc/theme/material/.icons/material/instrument-triangle.svg new file mode 100644 index 00000000..b4dc3b1c --- /dev/null +++ b/doc/theme/material/.icons/material/instrument-triangle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/invert-colors-off.svg b/doc/theme/material/.icons/material/invert-colors-off.svg new file mode 100644 index 00000000..3c352de2 --- /dev/null +++ b/doc/theme/material/.icons/material/invert-colors-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/invert-colors.svg b/doc/theme/material/.icons/material/invert-colors.svg new file mode 100644 index 00000000..94748685 --- /dev/null +++ b/doc/theme/material/.icons/material/invert-colors.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/iobroker.svg b/doc/theme/material/.icons/material/iobroker.svg new file mode 100644 index 00000000..dd4bc67e --- /dev/null +++ b/doc/theme/material/.icons/material/iobroker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ip-network-outline.svg b/doc/theme/material/.icons/material/ip-network-outline.svg new file mode 100644 index 00000000..5d094874 --- /dev/null +++ b/doc/theme/material/.icons/material/ip-network-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ip-network.svg b/doc/theme/material/.icons/material/ip-network.svg new file mode 100644 index 00000000..2660fe06 --- /dev/null +++ b/doc/theme/material/.icons/material/ip-network.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ip.svg b/doc/theme/material/.icons/material/ip.svg new file mode 100644 index 00000000..1e27e834 --- /dev/null +++ b/doc/theme/material/.icons/material/ip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ipod.svg b/doc/theme/material/.icons/material/ipod.svg new file mode 100644 index 00000000..90f3a667 --- /dev/null +++ b/doc/theme/material/.icons/material/ipod.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/islam.svg b/doc/theme/material/.icons/material/islam.svg new file mode 100644 index 00000000..c8891f0f --- /dev/null +++ b/doc/theme/material/.icons/material/islam.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/island.svg b/doc/theme/material/.icons/material/island.svg new file mode 100644 index 00000000..aaa3ac47 --- /dev/null +++ b/doc/theme/material/.icons/material/island.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/iv-bag.svg b/doc/theme/material/.icons/material/iv-bag.svg new file mode 100644 index 00000000..6b2239c5 --- /dev/null +++ b/doc/theme/material/.icons/material/iv-bag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/jabber.svg b/doc/theme/material/.icons/material/jabber.svg new file mode 100644 index 00000000..c08f945f --- /dev/null +++ b/doc/theme/material/.icons/material/jabber.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/jeepney.svg b/doc/theme/material/.icons/material/jeepney.svg new file mode 100644 index 00000000..3dc76ebe --- /dev/null +++ b/doc/theme/material/.icons/material/jeepney.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/jellyfish-outline.svg b/doc/theme/material/.icons/material/jellyfish-outline.svg new file mode 100644 index 00000000..3ab7f290 --- /dev/null +++ b/doc/theme/material/.icons/material/jellyfish-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/jellyfish.svg b/doc/theme/material/.icons/material/jellyfish.svg new file mode 100644 index 00000000..f25ca809 --- /dev/null +++ b/doc/theme/material/.icons/material/jellyfish.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/jira.svg b/doc/theme/material/.icons/material/jira.svg new file mode 100644 index 00000000..d6850f9e --- /dev/null +++ b/doc/theme/material/.icons/material/jira.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/jquery.svg b/doc/theme/material/.icons/material/jquery.svg new file mode 100644 index 00000000..b702cc38 --- /dev/null +++ b/doc/theme/material/.icons/material/jquery.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/jsfiddle.svg b/doc/theme/material/.icons/material/jsfiddle.svg new file mode 100644 index 00000000..f564e59d --- /dev/null +++ b/doc/theme/material/.icons/material/jsfiddle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/judaism.svg b/doc/theme/material/.icons/material/judaism.svg new file mode 100644 index 00000000..22ea93ba --- /dev/null +++ b/doc/theme/material/.icons/material/judaism.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/jump-rope.svg b/doc/theme/material/.icons/material/jump-rope.svg new file mode 100644 index 00000000..488f7764 --- /dev/null +++ b/doc/theme/material/.icons/material/jump-rope.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/kabaddi.svg b/doc/theme/material/.icons/material/kabaddi.svg new file mode 100644 index 00000000..e0a766ef --- /dev/null +++ b/doc/theme/material/.icons/material/kabaddi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/karate.svg b/doc/theme/material/.icons/material/karate.svg new file mode 100644 index 00000000..76ec5af7 --- /dev/null +++ b/doc/theme/material/.icons/material/karate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/keg.svg b/doc/theme/material/.icons/material/keg.svg new file mode 100644 index 00000000..9c8bad64 --- /dev/null +++ b/doc/theme/material/.icons/material/keg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/kettle-alert-outline.svg b/doc/theme/material/.icons/material/kettle-alert-outline.svg new file mode 100644 index 00000000..784b4438 --- /dev/null +++ b/doc/theme/material/.icons/material/kettle-alert-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/kettle-alert.svg b/doc/theme/material/.icons/material/kettle-alert.svg new file mode 100644 index 00000000..70555b0f --- /dev/null +++ b/doc/theme/material/.icons/material/kettle-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/kettle-off-outline.svg b/doc/theme/material/.icons/material/kettle-off-outline.svg new file mode 100644 index 00000000..6d6de0fd --- /dev/null +++ b/doc/theme/material/.icons/material/kettle-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/kettle-off.svg b/doc/theme/material/.icons/material/kettle-off.svg new file mode 100644 index 00000000..2c451515 --- /dev/null +++ b/doc/theme/material/.icons/material/kettle-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/kettle-outline.svg b/doc/theme/material/.icons/material/kettle-outline.svg new file mode 100644 index 00000000..8174c651 --- /dev/null +++ b/doc/theme/material/.icons/material/kettle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/kettle-steam-outline.svg b/doc/theme/material/.icons/material/kettle-steam-outline.svg new file mode 100644 index 00000000..fd97ed12 --- /dev/null +++ b/doc/theme/material/.icons/material/kettle-steam-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/kettle-steam.svg b/doc/theme/material/.icons/material/kettle-steam.svg new file mode 100644 index 00000000..99161616 --- /dev/null +++ b/doc/theme/material/.icons/material/kettle-steam.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/kettle.svg b/doc/theme/material/.icons/material/kettle.svg new file mode 100644 index 00000000..9eb16a04 --- /dev/null +++ b/doc/theme/material/.icons/material/kettle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/kettlebell.svg b/doc/theme/material/.icons/material/kettlebell.svg new file mode 100644 index 00000000..e808b71b --- /dev/null +++ b/doc/theme/material/.icons/material/kettlebell.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/key-arrow-right.svg b/doc/theme/material/.icons/material/key-arrow-right.svg new file mode 100644 index 00000000..7394fd33 --- /dev/null +++ b/doc/theme/material/.icons/material/key-arrow-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/key-change.svg b/doc/theme/material/.icons/material/key-change.svg new file mode 100644 index 00000000..93ea5692 --- /dev/null +++ b/doc/theme/material/.icons/material/key-change.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/key-link.svg b/doc/theme/material/.icons/material/key-link.svg new file mode 100644 index 00000000..969ca6c5 --- /dev/null +++ b/doc/theme/material/.icons/material/key-link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/key-minus.svg b/doc/theme/material/.icons/material/key-minus.svg new file mode 100644 index 00000000..47d65689 --- /dev/null +++ b/doc/theme/material/.icons/material/key-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/key-outline.svg b/doc/theme/material/.icons/material/key-outline.svg new file mode 100644 index 00000000..1183fa62 --- /dev/null +++ b/doc/theme/material/.icons/material/key-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/key-plus.svg b/doc/theme/material/.icons/material/key-plus.svg new file mode 100644 index 00000000..27f276aa --- /dev/null +++ b/doc/theme/material/.icons/material/key-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/key-remove.svg b/doc/theme/material/.icons/material/key-remove.svg new file mode 100644 index 00000000..a1505720 --- /dev/null +++ b/doc/theme/material/.icons/material/key-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/key-star.svg b/doc/theme/material/.icons/material/key-star.svg new file mode 100644 index 00000000..8d8383a1 --- /dev/null +++ b/doc/theme/material/.icons/material/key-star.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/key-variant.svg b/doc/theme/material/.icons/material/key-variant.svg new file mode 100644 index 00000000..3655c750 --- /dev/null +++ b/doc/theme/material/.icons/material/key-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/key-wireless.svg b/doc/theme/material/.icons/material/key-wireless.svg new file mode 100644 index 00000000..0c62f77e --- /dev/null +++ b/doc/theme/material/.icons/material/key-wireless.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/key.svg b/doc/theme/material/.icons/material/key.svg new file mode 100644 index 00000000..7b815425 --- /dev/null +++ b/doc/theme/material/.icons/material/key.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/keyboard-backspace.svg b/doc/theme/material/.icons/material/keyboard-backspace.svg new file mode 100644 index 00000000..c2b202ee --- /dev/null +++ b/doc/theme/material/.icons/material/keyboard-backspace.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/keyboard-caps.svg b/doc/theme/material/.icons/material/keyboard-caps.svg new file mode 100644 index 00000000..342e77f4 --- /dev/null +++ b/doc/theme/material/.icons/material/keyboard-caps.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/keyboard-close.svg b/doc/theme/material/.icons/material/keyboard-close.svg new file mode 100644 index 00000000..a3b0bb65 --- /dev/null +++ b/doc/theme/material/.icons/material/keyboard-close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/keyboard-esc.svg b/doc/theme/material/.icons/material/keyboard-esc.svg new file mode 100644 index 00000000..044cafa1 --- /dev/null +++ b/doc/theme/material/.icons/material/keyboard-esc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/keyboard-f1.svg b/doc/theme/material/.icons/material/keyboard-f1.svg new file mode 100644 index 00000000..1223859b --- /dev/null +++ b/doc/theme/material/.icons/material/keyboard-f1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/keyboard-f10.svg b/doc/theme/material/.icons/material/keyboard-f10.svg new file mode 100644 index 00000000..fff4e7f6 --- /dev/null +++ b/doc/theme/material/.icons/material/keyboard-f10.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/keyboard-f11.svg b/doc/theme/material/.icons/material/keyboard-f11.svg new file mode 100644 index 00000000..58a1e293 --- /dev/null +++ b/doc/theme/material/.icons/material/keyboard-f11.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/keyboard-f12.svg b/doc/theme/material/.icons/material/keyboard-f12.svg new file mode 100644 index 00000000..cd81fd03 --- /dev/null +++ b/doc/theme/material/.icons/material/keyboard-f12.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/keyboard-f2.svg b/doc/theme/material/.icons/material/keyboard-f2.svg new file mode 100644 index 00000000..9271c553 --- /dev/null +++ b/doc/theme/material/.icons/material/keyboard-f2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/keyboard-f3.svg b/doc/theme/material/.icons/material/keyboard-f3.svg new file mode 100644 index 00000000..d107ae3c --- /dev/null +++ b/doc/theme/material/.icons/material/keyboard-f3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/keyboard-f4.svg b/doc/theme/material/.icons/material/keyboard-f4.svg new file mode 100644 index 00000000..40e17396 --- /dev/null +++ b/doc/theme/material/.icons/material/keyboard-f4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/keyboard-f5.svg b/doc/theme/material/.icons/material/keyboard-f5.svg new file mode 100644 index 00000000..26c5b174 --- /dev/null +++ b/doc/theme/material/.icons/material/keyboard-f5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/keyboard-f6.svg b/doc/theme/material/.icons/material/keyboard-f6.svg new file mode 100644 index 00000000..b9a1b3cb --- /dev/null +++ b/doc/theme/material/.icons/material/keyboard-f6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/keyboard-f7.svg b/doc/theme/material/.icons/material/keyboard-f7.svg new file mode 100644 index 00000000..8d433955 --- /dev/null +++ b/doc/theme/material/.icons/material/keyboard-f7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/keyboard-f8.svg b/doc/theme/material/.icons/material/keyboard-f8.svg new file mode 100644 index 00000000..05a14d57 --- /dev/null +++ b/doc/theme/material/.icons/material/keyboard-f8.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/keyboard-f9.svg b/doc/theme/material/.icons/material/keyboard-f9.svg new file mode 100644 index 00000000..b922746e --- /dev/null +++ b/doc/theme/material/.icons/material/keyboard-f9.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/keyboard-off-outline.svg b/doc/theme/material/.icons/material/keyboard-off-outline.svg new file mode 100644 index 00000000..ee1bac86 --- /dev/null +++ b/doc/theme/material/.icons/material/keyboard-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/keyboard-off.svg b/doc/theme/material/.icons/material/keyboard-off.svg new file mode 100644 index 00000000..2d8b96af --- /dev/null +++ b/doc/theme/material/.icons/material/keyboard-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/keyboard-outline.svg b/doc/theme/material/.icons/material/keyboard-outline.svg new file mode 100644 index 00000000..e1a4b8de --- /dev/null +++ b/doc/theme/material/.icons/material/keyboard-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/keyboard-return.svg b/doc/theme/material/.icons/material/keyboard-return.svg new file mode 100644 index 00000000..0bfba024 --- /dev/null +++ b/doc/theme/material/.icons/material/keyboard-return.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/keyboard-settings-outline.svg b/doc/theme/material/.icons/material/keyboard-settings-outline.svg new file mode 100644 index 00000000..600757c9 --- /dev/null +++ b/doc/theme/material/.icons/material/keyboard-settings-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/keyboard-settings.svg b/doc/theme/material/.icons/material/keyboard-settings.svg new file mode 100644 index 00000000..f83ca9e4 --- /dev/null +++ b/doc/theme/material/.icons/material/keyboard-settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/keyboard-space.svg b/doc/theme/material/.icons/material/keyboard-space.svg new file mode 100644 index 00000000..e513fdb8 --- /dev/null +++ b/doc/theme/material/.icons/material/keyboard-space.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/keyboard-tab.svg b/doc/theme/material/.icons/material/keyboard-tab.svg new file mode 100644 index 00000000..01c12773 --- /dev/null +++ b/doc/theme/material/.icons/material/keyboard-tab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/keyboard-variant.svg b/doc/theme/material/.icons/material/keyboard-variant.svg new file mode 100644 index 00000000..f4704487 --- /dev/null +++ b/doc/theme/material/.icons/material/keyboard-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/keyboard.svg b/doc/theme/material/.icons/material/keyboard.svg new file mode 100644 index 00000000..7279e80f --- /dev/null +++ b/doc/theme/material/.icons/material/keyboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/khanda.svg b/doc/theme/material/.icons/material/khanda.svg new file mode 100644 index 00000000..7d1d74d9 --- /dev/null +++ b/doc/theme/material/.icons/material/khanda.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/kickstarter.svg b/doc/theme/material/.icons/material/kickstarter.svg new file mode 100644 index 00000000..2370194e --- /dev/null +++ b/doc/theme/material/.icons/material/kickstarter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/klingon.svg b/doc/theme/material/.icons/material/klingon.svg new file mode 100644 index 00000000..a695119e --- /dev/null +++ b/doc/theme/material/.icons/material/klingon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/knife-military.svg b/doc/theme/material/.icons/material/knife-military.svg new file mode 100644 index 00000000..fb76180f --- /dev/null +++ b/doc/theme/material/.icons/material/knife-military.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/knife.svg b/doc/theme/material/.icons/material/knife.svg new file mode 100644 index 00000000..761909fd --- /dev/null +++ b/doc/theme/material/.icons/material/knife.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/kodi.svg b/doc/theme/material/.icons/material/kodi.svg new file mode 100644 index 00000000..918d90c8 --- /dev/null +++ b/doc/theme/material/.icons/material/kodi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/kubernetes.svg b/doc/theme/material/.icons/material/kubernetes.svg new file mode 100644 index 00000000..495529b8 --- /dev/null +++ b/doc/theme/material/.icons/material/kubernetes.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/label-multiple-outline.svg b/doc/theme/material/.icons/material/label-multiple-outline.svg new file mode 100644 index 00000000..4dcd7a71 --- /dev/null +++ b/doc/theme/material/.icons/material/label-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/label-multiple.svg b/doc/theme/material/.icons/material/label-multiple.svg new file mode 100644 index 00000000..e1eedba3 --- /dev/null +++ b/doc/theme/material/.icons/material/label-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/label-off-outline.svg b/doc/theme/material/.icons/material/label-off-outline.svg new file mode 100644 index 00000000..289ece68 --- /dev/null +++ b/doc/theme/material/.icons/material/label-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/label-off.svg b/doc/theme/material/.icons/material/label-off.svg new file mode 100644 index 00000000..1764b4f7 --- /dev/null +++ b/doc/theme/material/.icons/material/label-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/label-outline.svg b/doc/theme/material/.icons/material/label-outline.svg new file mode 100644 index 00000000..49bffa20 --- /dev/null +++ b/doc/theme/material/.icons/material/label-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/label-percent-outline.svg b/doc/theme/material/.icons/material/label-percent-outline.svg new file mode 100644 index 00000000..a54c20f5 --- /dev/null +++ b/doc/theme/material/.icons/material/label-percent-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/label-percent.svg b/doc/theme/material/.icons/material/label-percent.svg new file mode 100644 index 00000000..14260097 --- /dev/null +++ b/doc/theme/material/.icons/material/label-percent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/label-variant-outline.svg b/doc/theme/material/.icons/material/label-variant-outline.svg new file mode 100644 index 00000000..2b8690e0 --- /dev/null +++ b/doc/theme/material/.icons/material/label-variant-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/label-variant.svg b/doc/theme/material/.icons/material/label-variant.svg new file mode 100644 index 00000000..16524262 --- /dev/null +++ b/doc/theme/material/.icons/material/label-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/label.svg b/doc/theme/material/.icons/material/label.svg new file mode 100644 index 00000000..ae4dfa03 --- /dev/null +++ b/doc/theme/material/.icons/material/label.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ladybug.svg b/doc/theme/material/.icons/material/ladybug.svg new file mode 100644 index 00000000..db4c03ac --- /dev/null +++ b/doc/theme/material/.icons/material/ladybug.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lambda.svg b/doc/theme/material/.icons/material/lambda.svg new file mode 100644 index 00000000..2cf72ad3 --- /dev/null +++ b/doc/theme/material/.icons/material/lambda.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lamp.svg b/doc/theme/material/.icons/material/lamp.svg new file mode 100644 index 00000000..6aa7fe66 --- /dev/null +++ b/doc/theme/material/.icons/material/lamp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lan-check.svg b/doc/theme/material/.icons/material/lan-check.svg new file mode 100644 index 00000000..3ee4e5bc --- /dev/null +++ b/doc/theme/material/.icons/material/lan-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lan-connect.svg b/doc/theme/material/.icons/material/lan-connect.svg new file mode 100644 index 00000000..fe21829c --- /dev/null +++ b/doc/theme/material/.icons/material/lan-connect.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lan-disconnect.svg b/doc/theme/material/.icons/material/lan-disconnect.svg new file mode 100644 index 00000000..bc518028 --- /dev/null +++ b/doc/theme/material/.icons/material/lan-disconnect.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lan-pending.svg b/doc/theme/material/.icons/material/lan-pending.svg new file mode 100644 index 00000000..8cb48c40 --- /dev/null +++ b/doc/theme/material/.icons/material/lan-pending.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lan.svg b/doc/theme/material/.icons/material/lan.svg new file mode 100644 index 00000000..84ded0df --- /dev/null +++ b/doc/theme/material/.icons/material/lan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/language-c.svg b/doc/theme/material/.icons/material/language-c.svg new file mode 100644 index 00000000..1575535a --- /dev/null +++ b/doc/theme/material/.icons/material/language-c.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/language-cpp.svg b/doc/theme/material/.icons/material/language-cpp.svg new file mode 100644 index 00000000..b3f74e9b --- /dev/null +++ b/doc/theme/material/.icons/material/language-cpp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/language-csharp.svg b/doc/theme/material/.icons/material/language-csharp.svg new file mode 100644 index 00000000..f1e498a1 --- /dev/null +++ b/doc/theme/material/.icons/material/language-csharp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/language-css3.svg b/doc/theme/material/.icons/material/language-css3.svg new file mode 100644 index 00000000..0204b2cc --- /dev/null +++ b/doc/theme/material/.icons/material/language-css3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/language-fortran.svg b/doc/theme/material/.icons/material/language-fortran.svg new file mode 100644 index 00000000..531d03e4 --- /dev/null +++ b/doc/theme/material/.icons/material/language-fortran.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/language-go.svg b/doc/theme/material/.icons/material/language-go.svg new file mode 100644 index 00000000..70fb58bd --- /dev/null +++ b/doc/theme/material/.icons/material/language-go.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/language-haskell.svg b/doc/theme/material/.icons/material/language-haskell.svg new file mode 100644 index 00000000..fd5759ba --- /dev/null +++ b/doc/theme/material/.icons/material/language-haskell.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/language-html5.svg b/doc/theme/material/.icons/material/language-html5.svg new file mode 100644 index 00000000..36ed86b9 --- /dev/null +++ b/doc/theme/material/.icons/material/language-html5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/language-java.svg b/doc/theme/material/.icons/material/language-java.svg new file mode 100644 index 00000000..64781a08 --- /dev/null +++ b/doc/theme/material/.icons/material/language-java.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/language-javascript.svg b/doc/theme/material/.icons/material/language-javascript.svg new file mode 100644 index 00000000..277eca4e --- /dev/null +++ b/doc/theme/material/.icons/material/language-javascript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/language-kotlin.svg b/doc/theme/material/.icons/material/language-kotlin.svg new file mode 100644 index 00000000..2308b7ab --- /dev/null +++ b/doc/theme/material/.icons/material/language-kotlin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/language-lua.svg b/doc/theme/material/.icons/material/language-lua.svg new file mode 100644 index 00000000..673ddf4e --- /dev/null +++ b/doc/theme/material/.icons/material/language-lua.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/language-markdown-outline.svg b/doc/theme/material/.icons/material/language-markdown-outline.svg new file mode 100644 index 00000000..55fce1c8 --- /dev/null +++ b/doc/theme/material/.icons/material/language-markdown-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/language-markdown.svg b/doc/theme/material/.icons/material/language-markdown.svg new file mode 100644 index 00000000..de373dfd --- /dev/null +++ b/doc/theme/material/.icons/material/language-markdown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/language-php.svg b/doc/theme/material/.icons/material/language-php.svg new file mode 100644 index 00000000..0ec5f0da --- /dev/null +++ b/doc/theme/material/.icons/material/language-php.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/language-python.svg b/doc/theme/material/.icons/material/language-python.svg new file mode 100644 index 00000000..efd2c95f --- /dev/null +++ b/doc/theme/material/.icons/material/language-python.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/language-r.svg b/doc/theme/material/.icons/material/language-r.svg new file mode 100644 index 00000000..ff13d942 --- /dev/null +++ b/doc/theme/material/.icons/material/language-r.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/language-ruby-on-rails.svg b/doc/theme/material/.icons/material/language-ruby-on-rails.svg new file mode 100644 index 00000000..183b12e4 --- /dev/null +++ b/doc/theme/material/.icons/material/language-ruby-on-rails.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/language-ruby.svg b/doc/theme/material/.icons/material/language-ruby.svg new file mode 100644 index 00000000..6b4a39ec --- /dev/null +++ b/doc/theme/material/.icons/material/language-ruby.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/language-swift.svg b/doc/theme/material/.icons/material/language-swift.svg new file mode 100644 index 00000000..4aac4657 --- /dev/null +++ b/doc/theme/material/.icons/material/language-swift.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/language-typescript.svg b/doc/theme/material/.icons/material/language-typescript.svg new file mode 100644 index 00000000..6faa9609 --- /dev/null +++ b/doc/theme/material/.icons/material/language-typescript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/language-xaml.svg b/doc/theme/material/.icons/material/language-xaml.svg new file mode 100644 index 00000000..96ceca5a --- /dev/null +++ b/doc/theme/material/.icons/material/language-xaml.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/laptop-chromebook.svg b/doc/theme/material/.icons/material/laptop-chromebook.svg new file mode 100644 index 00000000..c540ffa6 --- /dev/null +++ b/doc/theme/material/.icons/material/laptop-chromebook.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/laptop-mac.svg b/doc/theme/material/.icons/material/laptop-mac.svg new file mode 100644 index 00000000..0b4b1804 --- /dev/null +++ b/doc/theme/material/.icons/material/laptop-mac.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/laptop-off.svg b/doc/theme/material/.icons/material/laptop-off.svg new file mode 100644 index 00000000..a689e2fc --- /dev/null +++ b/doc/theme/material/.icons/material/laptop-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/laptop-windows.svg b/doc/theme/material/.icons/material/laptop-windows.svg new file mode 100644 index 00000000..f0e9df7d --- /dev/null +++ b/doc/theme/material/.icons/material/laptop-windows.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/laptop.svg b/doc/theme/material/.icons/material/laptop.svg new file mode 100644 index 00000000..1fc9d9a3 --- /dev/null +++ b/doc/theme/material/.icons/material/laptop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/laravel.svg b/doc/theme/material/.icons/material/laravel.svg new file mode 100644 index 00000000..535719c8 --- /dev/null +++ b/doc/theme/material/.icons/material/laravel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lasso.svg b/doc/theme/material/.icons/material/lasso.svg new file mode 100644 index 00000000..0dd4893c --- /dev/null +++ b/doc/theme/material/.icons/material/lasso.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lastpass.svg b/doc/theme/material/.icons/material/lastpass.svg new file mode 100644 index 00000000..79cb2cd0 --- /dev/null +++ b/doc/theme/material/.icons/material/lastpass.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/latitude.svg b/doc/theme/material/.icons/material/latitude.svg new file mode 100644 index 00000000..a4b81c0c --- /dev/null +++ b/doc/theme/material/.icons/material/latitude.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/launch.svg b/doc/theme/material/.icons/material/launch.svg new file mode 100644 index 00000000..e0612fe6 --- /dev/null +++ b/doc/theme/material/.icons/material/launch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lava-lamp.svg b/doc/theme/material/.icons/material/lava-lamp.svg new file mode 100644 index 00000000..25dfbfb6 --- /dev/null +++ b/doc/theme/material/.icons/material/lava-lamp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/layers-minus.svg b/doc/theme/material/.icons/material/layers-minus.svg new file mode 100644 index 00000000..797211b2 --- /dev/null +++ b/doc/theme/material/.icons/material/layers-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/layers-off-outline.svg b/doc/theme/material/.icons/material/layers-off-outline.svg new file mode 100644 index 00000000..3577ed7f --- /dev/null +++ b/doc/theme/material/.icons/material/layers-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/layers-off.svg b/doc/theme/material/.icons/material/layers-off.svg new file mode 100644 index 00000000..64f70bc3 --- /dev/null +++ b/doc/theme/material/.icons/material/layers-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/layers-outline.svg b/doc/theme/material/.icons/material/layers-outline.svg new file mode 100644 index 00000000..03c78df6 --- /dev/null +++ b/doc/theme/material/.icons/material/layers-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/layers-plus.svg b/doc/theme/material/.icons/material/layers-plus.svg new file mode 100644 index 00000000..9a23b609 --- /dev/null +++ b/doc/theme/material/.icons/material/layers-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/layers-remove.svg b/doc/theme/material/.icons/material/layers-remove.svg new file mode 100644 index 00000000..532f71e4 --- /dev/null +++ b/doc/theme/material/.icons/material/layers-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/layers-search-outline.svg b/doc/theme/material/.icons/material/layers-search-outline.svg new file mode 100644 index 00000000..99536ba4 --- /dev/null +++ b/doc/theme/material/.icons/material/layers-search-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/layers-search.svg b/doc/theme/material/.icons/material/layers-search.svg new file mode 100644 index 00000000..c47d8358 --- /dev/null +++ b/doc/theme/material/.icons/material/layers-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/layers-triple-outline.svg b/doc/theme/material/.icons/material/layers-triple-outline.svg new file mode 100644 index 00000000..a0f8f872 --- /dev/null +++ b/doc/theme/material/.icons/material/layers-triple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/layers-triple.svg b/doc/theme/material/.icons/material/layers-triple.svg new file mode 100644 index 00000000..eb37ee21 --- /dev/null +++ b/doc/theme/material/.icons/material/layers-triple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/layers.svg b/doc/theme/material/.icons/material/layers.svg new file mode 100644 index 00000000..d766c4eb --- /dev/null +++ b/doc/theme/material/.icons/material/layers.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lead-pencil.svg b/doc/theme/material/.icons/material/lead-pencil.svg new file mode 100644 index 00000000..8d9908a1 --- /dev/null +++ b/doc/theme/material/.icons/material/lead-pencil.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/leaf-maple-off.svg b/doc/theme/material/.icons/material/leaf-maple-off.svg new file mode 100644 index 00000000..db7165e0 --- /dev/null +++ b/doc/theme/material/.icons/material/leaf-maple-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/leaf-maple.svg b/doc/theme/material/.icons/material/leaf-maple.svg new file mode 100644 index 00000000..d25de493 --- /dev/null +++ b/doc/theme/material/.icons/material/leaf-maple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/leaf-off.svg b/doc/theme/material/.icons/material/leaf-off.svg new file mode 100644 index 00000000..e11f0ab9 --- /dev/null +++ b/doc/theme/material/.icons/material/leaf-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/leaf.svg b/doc/theme/material/.icons/material/leaf.svg new file mode 100644 index 00000000..b0b3ac06 --- /dev/null +++ b/doc/theme/material/.icons/material/leaf.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/leak-off.svg b/doc/theme/material/.icons/material/leak-off.svg new file mode 100644 index 00000000..146d66b2 --- /dev/null +++ b/doc/theme/material/.icons/material/leak-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/leak.svg b/doc/theme/material/.icons/material/leak.svg new file mode 100644 index 00000000..d6a1bf1e --- /dev/null +++ b/doc/theme/material/.icons/material/leak.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/led-off.svg b/doc/theme/material/.icons/material/led-off.svg new file mode 100644 index 00000000..aeb347e8 --- /dev/null +++ b/doc/theme/material/.icons/material/led-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/led-on.svg b/doc/theme/material/.icons/material/led-on.svg new file mode 100644 index 00000000..b3d4de63 --- /dev/null +++ b/doc/theme/material/.icons/material/led-on.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/led-outline.svg b/doc/theme/material/.icons/material/led-outline.svg new file mode 100644 index 00000000..eaa32047 --- /dev/null +++ b/doc/theme/material/.icons/material/led-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/led-strip-variant.svg b/doc/theme/material/.icons/material/led-strip-variant.svg new file mode 100644 index 00000000..2c064caa --- /dev/null +++ b/doc/theme/material/.icons/material/led-strip-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/led-strip.svg b/doc/theme/material/.icons/material/led-strip.svg new file mode 100644 index 00000000..eaac5e4e --- /dev/null +++ b/doc/theme/material/.icons/material/led-strip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/led-variant-off.svg b/doc/theme/material/.icons/material/led-variant-off.svg new file mode 100644 index 00000000..31d91c02 --- /dev/null +++ b/doc/theme/material/.icons/material/led-variant-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/led-variant-on.svg b/doc/theme/material/.icons/material/led-variant-on.svg new file mode 100644 index 00000000..3100a767 --- /dev/null +++ b/doc/theme/material/.icons/material/led-variant-on.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/led-variant-outline.svg b/doc/theme/material/.icons/material/led-variant-outline.svg new file mode 100644 index 00000000..2f7c4e18 --- /dev/null +++ b/doc/theme/material/.icons/material/led-variant-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/leek.svg b/doc/theme/material/.icons/material/leek.svg new file mode 100644 index 00000000..b7697a17 --- /dev/null +++ b/doc/theme/material/.icons/material/leek.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/less-than-or-equal.svg b/doc/theme/material/.icons/material/less-than-or-equal.svg new file mode 100644 index 00000000..27441651 --- /dev/null +++ b/doc/theme/material/.icons/material/less-than-or-equal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/less-than.svg b/doc/theme/material/.icons/material/less-than.svg new file mode 100644 index 00000000..2718fa72 --- /dev/null +++ b/doc/theme/material/.icons/material/less-than.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/library-shelves.svg b/doc/theme/material/.icons/material/library-shelves.svg new file mode 100644 index 00000000..87069e27 --- /dev/null +++ b/doc/theme/material/.icons/material/library-shelves.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/library.svg b/doc/theme/material/.icons/material/library.svg new file mode 100644 index 00000000..67ce0465 --- /dev/null +++ b/doc/theme/material/.icons/material/library.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/license.svg b/doc/theme/material/.icons/material/license.svg new file mode 100644 index 00000000..179b4097 --- /dev/null +++ b/doc/theme/material/.icons/material/license.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lifebuoy.svg b/doc/theme/material/.icons/material/lifebuoy.svg new file mode 100644 index 00000000..b94d6083 --- /dev/null +++ b/doc/theme/material/.icons/material/lifebuoy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/light-switch.svg b/doc/theme/material/.icons/material/light-switch.svg new file mode 100644 index 00000000..45112ebb --- /dev/null +++ b/doc/theme/material/.icons/material/light-switch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lightbulb-cfl-off.svg b/doc/theme/material/.icons/material/lightbulb-cfl-off.svg new file mode 100644 index 00000000..c6f98d7c --- /dev/null +++ b/doc/theme/material/.icons/material/lightbulb-cfl-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lightbulb-cfl-spiral-off.svg b/doc/theme/material/.icons/material/lightbulb-cfl-spiral-off.svg new file mode 100644 index 00000000..5fc22f96 --- /dev/null +++ b/doc/theme/material/.icons/material/lightbulb-cfl-spiral-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lightbulb-cfl-spiral.svg b/doc/theme/material/.icons/material/lightbulb-cfl-spiral.svg new file mode 100644 index 00000000..228a07a4 --- /dev/null +++ b/doc/theme/material/.icons/material/lightbulb-cfl-spiral.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lightbulb-cfl.svg b/doc/theme/material/.icons/material/lightbulb-cfl.svg new file mode 100644 index 00000000..fa81edfe --- /dev/null +++ b/doc/theme/material/.icons/material/lightbulb-cfl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lightbulb-group-off-outline.svg b/doc/theme/material/.icons/material/lightbulb-group-off-outline.svg new file mode 100644 index 00000000..45ca07b2 --- /dev/null +++ b/doc/theme/material/.icons/material/lightbulb-group-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lightbulb-group-off.svg b/doc/theme/material/.icons/material/lightbulb-group-off.svg new file mode 100644 index 00000000..01f77a69 --- /dev/null +++ b/doc/theme/material/.icons/material/lightbulb-group-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lightbulb-group-outline.svg b/doc/theme/material/.icons/material/lightbulb-group-outline.svg new file mode 100644 index 00000000..d7b1498b --- /dev/null +++ b/doc/theme/material/.icons/material/lightbulb-group-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lightbulb-group.svg b/doc/theme/material/.icons/material/lightbulb-group.svg new file mode 100644 index 00000000..e5c4cac1 --- /dev/null +++ b/doc/theme/material/.icons/material/lightbulb-group.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lightbulb-multiple-off-outline.svg b/doc/theme/material/.icons/material/lightbulb-multiple-off-outline.svg new file mode 100644 index 00000000..81bec765 --- /dev/null +++ b/doc/theme/material/.icons/material/lightbulb-multiple-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lightbulb-multiple-off.svg b/doc/theme/material/.icons/material/lightbulb-multiple-off.svg new file mode 100644 index 00000000..2f99e05a --- /dev/null +++ b/doc/theme/material/.icons/material/lightbulb-multiple-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lightbulb-multiple-outline.svg b/doc/theme/material/.icons/material/lightbulb-multiple-outline.svg new file mode 100644 index 00000000..fe1d3d0d --- /dev/null +++ b/doc/theme/material/.icons/material/lightbulb-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lightbulb-multiple.svg b/doc/theme/material/.icons/material/lightbulb-multiple.svg new file mode 100644 index 00000000..8c0c847e --- /dev/null +++ b/doc/theme/material/.icons/material/lightbulb-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lightbulb-off-outline.svg b/doc/theme/material/.icons/material/lightbulb-off-outline.svg new file mode 100644 index 00000000..43f8a28a --- /dev/null +++ b/doc/theme/material/.icons/material/lightbulb-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lightbulb-off.svg b/doc/theme/material/.icons/material/lightbulb-off.svg new file mode 100644 index 00000000..1c665ff0 --- /dev/null +++ b/doc/theme/material/.icons/material/lightbulb-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lightbulb-on-outline.svg b/doc/theme/material/.icons/material/lightbulb-on-outline.svg new file mode 100644 index 00000000..dd7033f3 --- /dev/null +++ b/doc/theme/material/.icons/material/lightbulb-on-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lightbulb-on.svg b/doc/theme/material/.icons/material/lightbulb-on.svg new file mode 100644 index 00000000..bfd141f4 --- /dev/null +++ b/doc/theme/material/.icons/material/lightbulb-on.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lightbulb-outline.svg b/doc/theme/material/.icons/material/lightbulb-outline.svg new file mode 100644 index 00000000..58a72df8 --- /dev/null +++ b/doc/theme/material/.icons/material/lightbulb-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lightbulb.svg b/doc/theme/material/.icons/material/lightbulb.svg new file mode 100644 index 00000000..9b724516 --- /dev/null +++ b/doc/theme/material/.icons/material/lightbulb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lighthouse-on.svg b/doc/theme/material/.icons/material/lighthouse-on.svg new file mode 100644 index 00000000..a1e7b631 --- /dev/null +++ b/doc/theme/material/.icons/material/lighthouse-on.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lighthouse.svg b/doc/theme/material/.icons/material/lighthouse.svg new file mode 100644 index 00000000..d5619ca6 --- /dev/null +++ b/doc/theme/material/.icons/material/lighthouse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lightning-bolt-outline.svg b/doc/theme/material/.icons/material/lightning-bolt-outline.svg new file mode 100644 index 00000000..8fc624b1 --- /dev/null +++ b/doc/theme/material/.icons/material/lightning-bolt-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lightning-bolt.svg b/doc/theme/material/.icons/material/lightning-bolt.svg new file mode 100644 index 00000000..dc8d997c --- /dev/null +++ b/doc/theme/material/.icons/material/lightning-bolt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/link-box-outline.svg b/doc/theme/material/.icons/material/link-box-outline.svg new file mode 100644 index 00000000..3d509f46 --- /dev/null +++ b/doc/theme/material/.icons/material/link-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/link-box-variant-outline.svg b/doc/theme/material/.icons/material/link-box-variant-outline.svg new file mode 100644 index 00000000..89705e03 --- /dev/null +++ b/doc/theme/material/.icons/material/link-box-variant-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/link-box-variant.svg b/doc/theme/material/.icons/material/link-box-variant.svg new file mode 100644 index 00000000..b450d24f --- /dev/null +++ b/doc/theme/material/.icons/material/link-box-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/link-box.svg b/doc/theme/material/.icons/material/link-box.svg new file mode 100644 index 00000000..07b14ccf --- /dev/null +++ b/doc/theme/material/.icons/material/link-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/link-lock.svg b/doc/theme/material/.icons/material/link-lock.svg new file mode 100644 index 00000000..2df55188 --- /dev/null +++ b/doc/theme/material/.icons/material/link-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/link-off.svg b/doc/theme/material/.icons/material/link-off.svg new file mode 100644 index 00000000..e779aa55 --- /dev/null +++ b/doc/theme/material/.icons/material/link-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/link-plus.svg b/doc/theme/material/.icons/material/link-plus.svg new file mode 100644 index 00000000..a4b91a11 --- /dev/null +++ b/doc/theme/material/.icons/material/link-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/link-variant-minus.svg b/doc/theme/material/.icons/material/link-variant-minus.svg new file mode 100644 index 00000000..a47e6523 --- /dev/null +++ b/doc/theme/material/.icons/material/link-variant-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/link-variant-off.svg b/doc/theme/material/.icons/material/link-variant-off.svg new file mode 100644 index 00000000..669f0548 --- /dev/null +++ b/doc/theme/material/.icons/material/link-variant-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/link-variant-plus.svg b/doc/theme/material/.icons/material/link-variant-plus.svg new file mode 100644 index 00000000..d9708297 --- /dev/null +++ b/doc/theme/material/.icons/material/link-variant-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/link-variant-remove.svg b/doc/theme/material/.icons/material/link-variant-remove.svg new file mode 100644 index 00000000..638e284b --- /dev/null +++ b/doc/theme/material/.icons/material/link-variant-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/link-variant.svg b/doc/theme/material/.icons/material/link-variant.svg new file mode 100644 index 00000000..5f598f74 --- /dev/null +++ b/doc/theme/material/.icons/material/link-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/link.svg b/doc/theme/material/.icons/material/link.svg new file mode 100644 index 00000000..7829d65b --- /dev/null +++ b/doc/theme/material/.icons/material/link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/linkedin.svg b/doc/theme/material/.icons/material/linkedin.svg new file mode 100644 index 00000000..cfd1cd92 --- /dev/null +++ b/doc/theme/material/.icons/material/linkedin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/linux-mint.svg b/doc/theme/material/.icons/material/linux-mint.svg new file mode 100644 index 00000000..11c3686c --- /dev/null +++ b/doc/theme/material/.icons/material/linux-mint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/linux.svg b/doc/theme/material/.icons/material/linux.svg new file mode 100644 index 00000000..747cb869 --- /dev/null +++ b/doc/theme/material/.icons/material/linux.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lipstick.svg b/doc/theme/material/.icons/material/lipstick.svg new file mode 100644 index 00000000..4f69b28e --- /dev/null +++ b/doc/theme/material/.icons/material/lipstick.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/litecoin.svg b/doc/theme/material/.icons/material/litecoin.svg new file mode 100644 index 00000000..78b61f1c --- /dev/null +++ b/doc/theme/material/.icons/material/litecoin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/loading.svg b/doc/theme/material/.icons/material/loading.svg new file mode 100644 index 00000000..944531cf --- /dev/null +++ b/doc/theme/material/.icons/material/loading.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/location-enter.svg b/doc/theme/material/.icons/material/location-enter.svg new file mode 100644 index 00000000..4c5c9354 --- /dev/null +++ b/doc/theme/material/.icons/material/location-enter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/location-exit.svg b/doc/theme/material/.icons/material/location-exit.svg new file mode 100644 index 00000000..8341fd67 --- /dev/null +++ b/doc/theme/material/.icons/material/location-exit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lock-alert.svg b/doc/theme/material/.icons/material/lock-alert.svg new file mode 100644 index 00000000..64d28340 --- /dev/null +++ b/doc/theme/material/.icons/material/lock-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lock-check.svg b/doc/theme/material/.icons/material/lock-check.svg new file mode 100644 index 00000000..f66f2bc0 --- /dev/null +++ b/doc/theme/material/.icons/material/lock-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lock-clock.svg b/doc/theme/material/.icons/material/lock-clock.svg new file mode 100644 index 00000000..7dd4236c --- /dev/null +++ b/doc/theme/material/.icons/material/lock-clock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lock-open-alert.svg b/doc/theme/material/.icons/material/lock-open-alert.svg new file mode 100644 index 00000000..1f5d37ac --- /dev/null +++ b/doc/theme/material/.icons/material/lock-open-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lock-open-check.svg b/doc/theme/material/.icons/material/lock-open-check.svg new file mode 100644 index 00000000..3823e079 --- /dev/null +++ b/doc/theme/material/.icons/material/lock-open-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lock-open-outline.svg b/doc/theme/material/.icons/material/lock-open-outline.svg new file mode 100644 index 00000000..82454946 --- /dev/null +++ b/doc/theme/material/.icons/material/lock-open-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lock-open-variant-outline.svg b/doc/theme/material/.icons/material/lock-open-variant-outline.svg new file mode 100644 index 00000000..3200f7f7 --- /dev/null +++ b/doc/theme/material/.icons/material/lock-open-variant-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lock-open-variant.svg b/doc/theme/material/.icons/material/lock-open-variant.svg new file mode 100644 index 00000000..1422b194 --- /dev/null +++ b/doc/theme/material/.icons/material/lock-open-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lock-open.svg b/doc/theme/material/.icons/material/lock-open.svg new file mode 100644 index 00000000..9d545e1b --- /dev/null +++ b/doc/theme/material/.icons/material/lock-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lock-outline.svg b/doc/theme/material/.icons/material/lock-outline.svg new file mode 100644 index 00000000..1523b7dd --- /dev/null +++ b/doc/theme/material/.icons/material/lock-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lock-pattern.svg b/doc/theme/material/.icons/material/lock-pattern.svg new file mode 100644 index 00000000..d9650a99 --- /dev/null +++ b/doc/theme/material/.icons/material/lock-pattern.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lock-plus.svg b/doc/theme/material/.icons/material/lock-plus.svg new file mode 100644 index 00000000..67be939c --- /dev/null +++ b/doc/theme/material/.icons/material/lock-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lock-question.svg b/doc/theme/material/.icons/material/lock-question.svg new file mode 100644 index 00000000..d03e8f85 --- /dev/null +++ b/doc/theme/material/.icons/material/lock-question.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lock-reset.svg b/doc/theme/material/.icons/material/lock-reset.svg new file mode 100644 index 00000000..326b05af --- /dev/null +++ b/doc/theme/material/.icons/material/lock-reset.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lock-smart.svg b/doc/theme/material/.icons/material/lock-smart.svg new file mode 100644 index 00000000..560c612a --- /dev/null +++ b/doc/theme/material/.icons/material/lock-smart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lock.svg b/doc/theme/material/.icons/material/lock.svg new file mode 100644 index 00000000..31e07a32 --- /dev/null +++ b/doc/theme/material/.icons/material/lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/locker-multiple.svg b/doc/theme/material/.icons/material/locker-multiple.svg new file mode 100644 index 00000000..278e74e7 --- /dev/null +++ b/doc/theme/material/.icons/material/locker-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/locker.svg b/doc/theme/material/.icons/material/locker.svg new file mode 100644 index 00000000..106a8137 --- /dev/null +++ b/doc/theme/material/.icons/material/locker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/login-variant.svg b/doc/theme/material/.icons/material/login-variant.svg new file mode 100644 index 00000000..f8147415 --- /dev/null +++ b/doc/theme/material/.icons/material/login-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/login.svg b/doc/theme/material/.icons/material/login.svg new file mode 100644 index 00000000..0d34fe38 --- /dev/null +++ b/doc/theme/material/.icons/material/login.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/logout-variant.svg b/doc/theme/material/.icons/material/logout-variant.svg new file mode 100644 index 00000000..8ffadaa7 --- /dev/null +++ b/doc/theme/material/.icons/material/logout-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/logout.svg b/doc/theme/material/.icons/material/logout.svg new file mode 100644 index 00000000..928b38e9 --- /dev/null +++ b/doc/theme/material/.icons/material/logout.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/longitude.svg b/doc/theme/material/.icons/material/longitude.svg new file mode 100644 index 00000000..85e0b7f9 --- /dev/null +++ b/doc/theme/material/.icons/material/longitude.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/looks.svg b/doc/theme/material/.icons/material/looks.svg new file mode 100644 index 00000000..c3d96007 --- /dev/null +++ b/doc/theme/material/.icons/material/looks.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/loupe.svg b/doc/theme/material/.icons/material/loupe.svg new file mode 100644 index 00000000..5f70239c --- /dev/null +++ b/doc/theme/material/.icons/material/loupe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lumx.svg b/doc/theme/material/.icons/material/lumx.svg new file mode 100644 index 00000000..71a1433a --- /dev/null +++ b/doc/theme/material/.icons/material/lumx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/lungs.svg b/doc/theme/material/.icons/material/lungs.svg new file mode 100644 index 00000000..e0111a92 --- /dev/null +++ b/doc/theme/material/.icons/material/lungs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/magnet-on.svg b/doc/theme/material/.icons/material/magnet-on.svg new file mode 100644 index 00000000..bc7a60b8 --- /dev/null +++ b/doc/theme/material/.icons/material/magnet-on.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/magnet.svg b/doc/theme/material/.icons/material/magnet.svg new file mode 100644 index 00000000..366655a0 --- /dev/null +++ b/doc/theme/material/.icons/material/magnet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/magnify-close.svg b/doc/theme/material/.icons/material/magnify-close.svg new file mode 100644 index 00000000..52a72474 --- /dev/null +++ b/doc/theme/material/.icons/material/magnify-close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/magnify-minus-cursor.svg b/doc/theme/material/.icons/material/magnify-minus-cursor.svg new file mode 100644 index 00000000..ae3c2862 --- /dev/null +++ b/doc/theme/material/.icons/material/magnify-minus-cursor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/magnify-minus-outline.svg b/doc/theme/material/.icons/material/magnify-minus-outline.svg new file mode 100644 index 00000000..7e304ec5 --- /dev/null +++ b/doc/theme/material/.icons/material/magnify-minus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/magnify-minus.svg b/doc/theme/material/.icons/material/magnify-minus.svg new file mode 100644 index 00000000..c10ba3cc --- /dev/null +++ b/doc/theme/material/.icons/material/magnify-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/magnify-plus-cursor.svg b/doc/theme/material/.icons/material/magnify-plus-cursor.svg new file mode 100644 index 00000000..aebcb165 --- /dev/null +++ b/doc/theme/material/.icons/material/magnify-plus-cursor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/magnify-plus-outline.svg b/doc/theme/material/.icons/material/magnify-plus-outline.svg new file mode 100644 index 00000000..0d836a88 --- /dev/null +++ b/doc/theme/material/.icons/material/magnify-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/magnify-plus.svg b/doc/theme/material/.icons/material/magnify-plus.svg new file mode 100644 index 00000000..771212e2 --- /dev/null +++ b/doc/theme/material/.icons/material/magnify-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/magnify-remove-cursor.svg b/doc/theme/material/.icons/material/magnify-remove-cursor.svg new file mode 100644 index 00000000..11d0b33a --- /dev/null +++ b/doc/theme/material/.icons/material/magnify-remove-cursor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/magnify-remove-outline.svg b/doc/theme/material/.icons/material/magnify-remove-outline.svg new file mode 100644 index 00000000..65440fb6 --- /dev/null +++ b/doc/theme/material/.icons/material/magnify-remove-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/magnify-scan.svg b/doc/theme/material/.icons/material/magnify-scan.svg new file mode 100644 index 00000000..bf5d77ea --- /dev/null +++ b/doc/theme/material/.icons/material/magnify-scan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/magnify.svg b/doc/theme/material/.icons/material/magnify.svg new file mode 100644 index 00000000..c05f129a --- /dev/null +++ b/doc/theme/material/.icons/material/magnify.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/mail.svg b/doc/theme/material/.icons/material/mail.svg new file mode 100644 index 00000000..4fdaaeba --- /dev/null +++ b/doc/theme/material/.icons/material/mail.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/mailbox-open-outline.svg b/doc/theme/material/.icons/material/mailbox-open-outline.svg new file mode 100644 index 00000000..9e3dda07 --- /dev/null +++ b/doc/theme/material/.icons/material/mailbox-open-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/mailbox-open-up-outline.svg b/doc/theme/material/.icons/material/mailbox-open-up-outline.svg new file mode 100644 index 00000000..f97406e7 --- /dev/null +++ b/doc/theme/material/.icons/material/mailbox-open-up-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/mailbox-open-up.svg b/doc/theme/material/.icons/material/mailbox-open-up.svg new file mode 100644 index 00000000..2f41f38b --- /dev/null +++ b/doc/theme/material/.icons/material/mailbox-open-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/mailbox-open.svg b/doc/theme/material/.icons/material/mailbox-open.svg new file mode 100644 index 00000000..6b687c5d --- /dev/null +++ b/doc/theme/material/.icons/material/mailbox-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/mailbox-outline.svg b/doc/theme/material/.icons/material/mailbox-outline.svg new file mode 100644 index 00000000..7582d37c --- /dev/null +++ b/doc/theme/material/.icons/material/mailbox-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/mailbox-up-outline.svg b/doc/theme/material/.icons/material/mailbox-up-outline.svg new file mode 100644 index 00000000..59e35ca1 --- /dev/null +++ b/doc/theme/material/.icons/material/mailbox-up-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/mailbox-up.svg b/doc/theme/material/.icons/material/mailbox-up.svg new file mode 100644 index 00000000..9d15b569 --- /dev/null +++ b/doc/theme/material/.icons/material/mailbox-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/mailbox.svg b/doc/theme/material/.icons/material/mailbox.svg new file mode 100644 index 00000000..3da2b5e1 --- /dev/null +++ b/doc/theme/material/.icons/material/mailbox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-check-outline.svg b/doc/theme/material/.icons/material/map-check-outline.svg new file mode 100644 index 00000000..aa899dbb --- /dev/null +++ b/doc/theme/material/.icons/material/map-check-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-check.svg b/doc/theme/material/.icons/material/map-check.svg new file mode 100644 index 00000000..036b41f6 --- /dev/null +++ b/doc/theme/material/.icons/material/map-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-clock-outline.svg b/doc/theme/material/.icons/material/map-clock-outline.svg new file mode 100644 index 00000000..8f54bbc9 --- /dev/null +++ b/doc/theme/material/.icons/material/map-clock-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-clock.svg b/doc/theme/material/.icons/material/map-clock.svg new file mode 100644 index 00000000..2c00203c --- /dev/null +++ b/doc/theme/material/.icons/material/map-clock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-legend.svg b/doc/theme/material/.icons/material/map-legend.svg new file mode 100644 index 00000000..118418c0 --- /dev/null +++ b/doc/theme/material/.icons/material/map-legend.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-alert-outline.svg b/doc/theme/material/.icons/material/map-marker-alert-outline.svg new file mode 100644 index 00000000..b70ecb58 --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-alert-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-alert.svg b/doc/theme/material/.icons/material/map-marker-alert.svg new file mode 100644 index 00000000..d19a3169 --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-check-outline.svg b/doc/theme/material/.icons/material/map-marker-check-outline.svg new file mode 100644 index 00000000..3d3e93c6 --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-check-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-check.svg b/doc/theme/material/.icons/material/map-marker-check.svg new file mode 100644 index 00000000..e7d29dd2 --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-circle.svg b/doc/theme/material/.icons/material/map-marker-circle.svg new file mode 100644 index 00000000..ca8f9429 --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-distance.svg b/doc/theme/material/.icons/material/map-marker-distance.svg new file mode 100644 index 00000000..fc7ccd32 --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-distance.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-down.svg b/doc/theme/material/.icons/material/map-marker-down.svg new file mode 100644 index 00000000..0271ae6c --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-left-outline.svg b/doc/theme/material/.icons/material/map-marker-left-outline.svg new file mode 100644 index 00000000..a86e8107 --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-left-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-left.svg b/doc/theme/material/.icons/material/map-marker-left.svg new file mode 100644 index 00000000..19870f6b --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-minus-outline.svg b/doc/theme/material/.icons/material/map-marker-minus-outline.svg new file mode 100644 index 00000000..51a86621 --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-minus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-minus.svg b/doc/theme/material/.icons/material/map-marker-minus.svg new file mode 100644 index 00000000..50827b68 --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-multiple-outline.svg b/doc/theme/material/.icons/material/map-marker-multiple-outline.svg new file mode 100644 index 00000000..4139e289 --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-multiple.svg b/doc/theme/material/.icons/material/map-marker-multiple.svg new file mode 100644 index 00000000..8b253312 --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-off-outline.svg b/doc/theme/material/.icons/material/map-marker-off-outline.svg new file mode 100644 index 00000000..88822f14 --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-off.svg b/doc/theme/material/.icons/material/map-marker-off.svg new file mode 100644 index 00000000..9e7b449b --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-outline.svg b/doc/theme/material/.icons/material/map-marker-outline.svg new file mode 100644 index 00000000..0f024192 --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-path.svg b/doc/theme/material/.icons/material/map-marker-path.svg new file mode 100644 index 00000000..e69a63f1 --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-path.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-plus-outline.svg b/doc/theme/material/.icons/material/map-marker-plus-outline.svg new file mode 100644 index 00000000..d76438bb --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-plus.svg b/doc/theme/material/.icons/material/map-marker-plus.svg new file mode 100644 index 00000000..fde10784 --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-question-outline.svg b/doc/theme/material/.icons/material/map-marker-question-outline.svg new file mode 100644 index 00000000..a97667c3 --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-question-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-question.svg b/doc/theme/material/.icons/material/map-marker-question.svg new file mode 100644 index 00000000..0f1b4158 --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-question.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-radius-outline.svg b/doc/theme/material/.icons/material/map-marker-radius-outline.svg new file mode 100644 index 00000000..8b87423e --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-radius-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-radius.svg b/doc/theme/material/.icons/material/map-marker-radius.svg new file mode 100644 index 00000000..1365309d --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-radius.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-remove-outline.svg b/doc/theme/material/.icons/material/map-marker-remove-outline.svg new file mode 100644 index 00000000..34506d76 --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-remove-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-remove-variant.svg b/doc/theme/material/.icons/material/map-marker-remove-variant.svg new file mode 100644 index 00000000..98fcf40c --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-remove-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-remove.svg b/doc/theme/material/.icons/material/map-marker-remove.svg new file mode 100644 index 00000000..b0ea6faf --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-right-outline.svg b/doc/theme/material/.icons/material/map-marker-right-outline.svg new file mode 100644 index 00000000..acdc4273 --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-right-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-right.svg b/doc/theme/material/.icons/material/map-marker-right.svg new file mode 100644 index 00000000..f489ac75 --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker-up.svg b/doc/theme/material/.icons/material/map-marker-up.svg new file mode 100644 index 00000000..3fc10390 --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-marker.svg b/doc/theme/material/.icons/material/map-marker.svg new file mode 100644 index 00000000..7320fb15 --- /dev/null +++ b/doc/theme/material/.icons/material/map-marker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-minus.svg b/doc/theme/material/.icons/material/map-minus.svg new file mode 100644 index 00000000..1a08d342 --- /dev/null +++ b/doc/theme/material/.icons/material/map-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-outline.svg b/doc/theme/material/.icons/material/map-outline.svg new file mode 100644 index 00000000..f4993ecf --- /dev/null +++ b/doc/theme/material/.icons/material/map-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-plus.svg b/doc/theme/material/.icons/material/map-plus.svg new file mode 100644 index 00000000..b9fe648e --- /dev/null +++ b/doc/theme/material/.icons/material/map-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-search-outline.svg b/doc/theme/material/.icons/material/map-search-outline.svg new file mode 100644 index 00000000..fe2865a4 --- /dev/null +++ b/doc/theme/material/.icons/material/map-search-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map-search.svg b/doc/theme/material/.icons/material/map-search.svg new file mode 100644 index 00000000..4e5ee6a5 --- /dev/null +++ b/doc/theme/material/.icons/material/map-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/map.svg b/doc/theme/material/.icons/material/map.svg new file mode 100644 index 00000000..dcc7f24a --- /dev/null +++ b/doc/theme/material/.icons/material/map.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/mapbox.svg b/doc/theme/material/.icons/material/mapbox.svg new file mode 100644 index 00000000..145ee31f --- /dev/null +++ b/doc/theme/material/.icons/material/mapbox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/margin.svg b/doc/theme/material/.icons/material/margin.svg new file mode 100644 index 00000000..0481f02e --- /dev/null +++ b/doc/theme/material/.icons/material/margin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/marker-cancel.svg b/doc/theme/material/.icons/material/marker-cancel.svg new file mode 100644 index 00000000..8c0a558e --- /dev/null +++ b/doc/theme/material/.icons/material/marker-cancel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/marker-check.svg b/doc/theme/material/.icons/material/marker-check.svg new file mode 100644 index 00000000..5950933c --- /dev/null +++ b/doc/theme/material/.icons/material/marker-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/marker.svg b/doc/theme/material/.icons/material/marker.svg new file mode 100644 index 00000000..24563d67 --- /dev/null +++ b/doc/theme/material/.icons/material/marker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/mastodon.svg b/doc/theme/material/.icons/material/mastodon.svg new file mode 100644 index 00000000..7356623f --- /dev/null +++ b/doc/theme/material/.icons/material/mastodon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/material-design.svg b/doc/theme/material/.icons/material/material-design.svg new file mode 100644 index 00000000..66521d78 --- /dev/null +++ b/doc/theme/material/.icons/material/material-design.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/material-ui.svg b/doc/theme/material/.icons/material/material-ui.svg new file mode 100644 index 00000000..ebca4708 --- /dev/null +++ b/doc/theme/material/.icons/material/material-ui.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/math-compass.svg b/doc/theme/material/.icons/material/math-compass.svg new file mode 100644 index 00000000..480f3ff2 --- /dev/null +++ b/doc/theme/material/.icons/material/math-compass.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/math-cos.svg b/doc/theme/material/.icons/material/math-cos.svg new file mode 100644 index 00000000..852ba182 --- /dev/null +++ b/doc/theme/material/.icons/material/math-cos.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/math-integral-box.svg b/doc/theme/material/.icons/material/math-integral-box.svg new file mode 100644 index 00000000..e2bff8c9 --- /dev/null +++ b/doc/theme/material/.icons/material/math-integral-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/math-integral.svg b/doc/theme/material/.icons/material/math-integral.svg new file mode 100644 index 00000000..8a35ed05 --- /dev/null +++ b/doc/theme/material/.icons/material/math-integral.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/math-log.svg b/doc/theme/material/.icons/material/math-log.svg new file mode 100644 index 00000000..7db54bd0 --- /dev/null +++ b/doc/theme/material/.icons/material/math-log.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/math-norm-box.svg b/doc/theme/material/.icons/material/math-norm-box.svg new file mode 100644 index 00000000..77be0c81 --- /dev/null +++ b/doc/theme/material/.icons/material/math-norm-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/math-norm.svg b/doc/theme/material/.icons/material/math-norm.svg new file mode 100644 index 00000000..cd90c340 --- /dev/null +++ b/doc/theme/material/.icons/material/math-norm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/math-sin.svg b/doc/theme/material/.icons/material/math-sin.svg new file mode 100644 index 00000000..36b1666d --- /dev/null +++ b/doc/theme/material/.icons/material/math-sin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/math-tan.svg b/doc/theme/material/.icons/material/math-tan.svg new file mode 100644 index 00000000..c66ad8d2 --- /dev/null +++ b/doc/theme/material/.icons/material/math-tan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/matrix.svg b/doc/theme/material/.icons/material/matrix.svg new file mode 100644 index 00000000..4e6ac156 --- /dev/null +++ b/doc/theme/material/.icons/material/matrix.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/medal-outline.svg b/doc/theme/material/.icons/material/medal-outline.svg new file mode 100644 index 00000000..a89e5aee --- /dev/null +++ b/doc/theme/material/.icons/material/medal-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/medal.svg b/doc/theme/material/.icons/material/medal.svg new file mode 100644 index 00000000..505ca71c --- /dev/null +++ b/doc/theme/material/.icons/material/medal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/medical-bag.svg b/doc/theme/material/.icons/material/medical-bag.svg new file mode 100644 index 00000000..22a873a8 --- /dev/null +++ b/doc/theme/material/.icons/material/medical-bag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/meditation.svg b/doc/theme/material/.icons/material/meditation.svg new file mode 100644 index 00000000..3e087af1 --- /dev/null +++ b/doc/theme/material/.icons/material/meditation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/memory.svg b/doc/theme/material/.icons/material/memory.svg new file mode 100644 index 00000000..e197bbbe --- /dev/null +++ b/doc/theme/material/.icons/material/memory.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/menu-down-outline.svg b/doc/theme/material/.icons/material/menu-down-outline.svg new file mode 100644 index 00000000..edb50110 --- /dev/null +++ b/doc/theme/material/.icons/material/menu-down-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/menu-down.svg b/doc/theme/material/.icons/material/menu-down.svg new file mode 100644 index 00000000..e0d20ed7 --- /dev/null +++ b/doc/theme/material/.icons/material/menu-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/menu-left-outline.svg b/doc/theme/material/.icons/material/menu-left-outline.svg new file mode 100644 index 00000000..7b653960 --- /dev/null +++ b/doc/theme/material/.icons/material/menu-left-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/menu-left.svg b/doc/theme/material/.icons/material/menu-left.svg new file mode 100644 index 00000000..8b66930d --- /dev/null +++ b/doc/theme/material/.icons/material/menu-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/menu-open.svg b/doc/theme/material/.icons/material/menu-open.svg new file mode 100644 index 00000000..33319dc3 --- /dev/null +++ b/doc/theme/material/.icons/material/menu-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/menu-right-outline.svg b/doc/theme/material/.icons/material/menu-right-outline.svg new file mode 100644 index 00000000..8fbaade0 --- /dev/null +++ b/doc/theme/material/.icons/material/menu-right-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/menu-right.svg b/doc/theme/material/.icons/material/menu-right.svg new file mode 100644 index 00000000..449b0bd2 --- /dev/null +++ b/doc/theme/material/.icons/material/menu-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/menu-swap-outline.svg b/doc/theme/material/.icons/material/menu-swap-outline.svg new file mode 100644 index 00000000..ade9e6f9 --- /dev/null +++ b/doc/theme/material/.icons/material/menu-swap-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/menu-swap.svg b/doc/theme/material/.icons/material/menu-swap.svg new file mode 100644 index 00000000..af7a8367 --- /dev/null +++ b/doc/theme/material/.icons/material/menu-swap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/menu-up-outline.svg b/doc/theme/material/.icons/material/menu-up-outline.svg new file mode 100644 index 00000000..9c088931 --- /dev/null +++ b/doc/theme/material/.icons/material/menu-up-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/menu-up.svg b/doc/theme/material/.icons/material/menu-up.svg new file mode 100644 index 00000000..d4191c12 --- /dev/null +++ b/doc/theme/material/.icons/material/menu-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/menu.svg b/doc/theme/material/.icons/material/menu.svg new file mode 100644 index 00000000..6d2135e1 --- /dev/null +++ b/doc/theme/material/.icons/material/menu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/merge.svg b/doc/theme/material/.icons/material/merge.svg new file mode 100644 index 00000000..e1b0be8b --- /dev/null +++ b/doc/theme/material/.icons/material/merge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-alert-outline.svg b/doc/theme/material/.icons/material/message-alert-outline.svg new file mode 100644 index 00000000..316eb556 --- /dev/null +++ b/doc/theme/material/.icons/material/message-alert-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-alert.svg b/doc/theme/material/.icons/material/message-alert.svg new file mode 100644 index 00000000..2c5d7df1 --- /dev/null +++ b/doc/theme/material/.icons/material/message-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-arrow-left-outline.svg b/doc/theme/material/.icons/material/message-arrow-left-outline.svg new file mode 100644 index 00000000..dbd78eac --- /dev/null +++ b/doc/theme/material/.icons/material/message-arrow-left-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-arrow-left.svg b/doc/theme/material/.icons/material/message-arrow-left.svg new file mode 100644 index 00000000..593ef0fd --- /dev/null +++ b/doc/theme/material/.icons/material/message-arrow-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-arrow-right-outline.svg b/doc/theme/material/.icons/material/message-arrow-right-outline.svg new file mode 100644 index 00000000..4b1f48dc --- /dev/null +++ b/doc/theme/material/.icons/material/message-arrow-right-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-arrow-right.svg b/doc/theme/material/.icons/material/message-arrow-right.svg new file mode 100644 index 00000000..64307498 --- /dev/null +++ b/doc/theme/material/.icons/material/message-arrow-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-bulleted-off.svg b/doc/theme/material/.icons/material/message-bulleted-off.svg new file mode 100644 index 00000000..8d6f3b6b --- /dev/null +++ b/doc/theme/material/.icons/material/message-bulleted-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-bulleted.svg b/doc/theme/material/.icons/material/message-bulleted.svg new file mode 100644 index 00000000..955dc270 --- /dev/null +++ b/doc/theme/material/.icons/material/message-bulleted.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-cog-outline.svg b/doc/theme/material/.icons/material/message-cog-outline.svg new file mode 100644 index 00000000..19e9022f --- /dev/null +++ b/doc/theme/material/.icons/material/message-cog-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-cog.svg b/doc/theme/material/.icons/material/message-cog.svg new file mode 100644 index 00000000..16ed33ed --- /dev/null +++ b/doc/theme/material/.icons/material/message-cog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-draw.svg b/doc/theme/material/.icons/material/message-draw.svg new file mode 100644 index 00000000..34c4fa52 --- /dev/null +++ b/doc/theme/material/.icons/material/message-draw.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-image-outline.svg b/doc/theme/material/.icons/material/message-image-outline.svg new file mode 100644 index 00000000..c3b094c1 --- /dev/null +++ b/doc/theme/material/.icons/material/message-image-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-image.svg b/doc/theme/material/.icons/material/message-image.svg new file mode 100644 index 00000000..385ff344 --- /dev/null +++ b/doc/theme/material/.icons/material/message-image.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-lock-outline.svg b/doc/theme/material/.icons/material/message-lock-outline.svg new file mode 100644 index 00000000..5632810f --- /dev/null +++ b/doc/theme/material/.icons/material/message-lock-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-lock.svg b/doc/theme/material/.icons/material/message-lock.svg new file mode 100644 index 00000000..32c7e32e --- /dev/null +++ b/doc/theme/material/.icons/material/message-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-minus-outline.svg b/doc/theme/material/.icons/material/message-minus-outline.svg new file mode 100644 index 00000000..8024fe12 --- /dev/null +++ b/doc/theme/material/.icons/material/message-minus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-minus.svg b/doc/theme/material/.icons/material/message-minus.svg new file mode 100644 index 00000000..cceaeb63 --- /dev/null +++ b/doc/theme/material/.icons/material/message-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-outline.svg b/doc/theme/material/.icons/material/message-outline.svg new file mode 100644 index 00000000..31827525 --- /dev/null +++ b/doc/theme/material/.icons/material/message-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-plus-outline.svg b/doc/theme/material/.icons/material/message-plus-outline.svg new file mode 100644 index 00000000..e731f7bc --- /dev/null +++ b/doc/theme/material/.icons/material/message-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-plus.svg b/doc/theme/material/.icons/material/message-plus.svg new file mode 100644 index 00000000..a49bf61e --- /dev/null +++ b/doc/theme/material/.icons/material/message-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-processing-outline.svg b/doc/theme/material/.icons/material/message-processing-outline.svg new file mode 100644 index 00000000..a88e8e25 --- /dev/null +++ b/doc/theme/material/.icons/material/message-processing-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-processing.svg b/doc/theme/material/.icons/material/message-processing.svg new file mode 100644 index 00000000..ebe66d82 --- /dev/null +++ b/doc/theme/material/.icons/material/message-processing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-reply-text.svg b/doc/theme/material/.icons/material/message-reply-text.svg new file mode 100644 index 00000000..039cdadc --- /dev/null +++ b/doc/theme/material/.icons/material/message-reply-text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-reply.svg b/doc/theme/material/.icons/material/message-reply.svg new file mode 100644 index 00000000..430a6ed8 --- /dev/null +++ b/doc/theme/material/.icons/material/message-reply.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-settings-outline.svg b/doc/theme/material/.icons/material/message-settings-outline.svg new file mode 100644 index 00000000..62ee43a8 --- /dev/null +++ b/doc/theme/material/.icons/material/message-settings-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-settings.svg b/doc/theme/material/.icons/material/message-settings.svg new file mode 100644 index 00000000..ba1ddd2f --- /dev/null +++ b/doc/theme/material/.icons/material/message-settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-text-clock-outline.svg b/doc/theme/material/.icons/material/message-text-clock-outline.svg new file mode 100644 index 00000000..431e3979 --- /dev/null +++ b/doc/theme/material/.icons/material/message-text-clock-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-text-clock.svg b/doc/theme/material/.icons/material/message-text-clock.svg new file mode 100644 index 00000000..76c5a667 --- /dev/null +++ b/doc/theme/material/.icons/material/message-text-clock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-text-lock-outline.svg b/doc/theme/material/.icons/material/message-text-lock-outline.svg new file mode 100644 index 00000000..04678de9 --- /dev/null +++ b/doc/theme/material/.icons/material/message-text-lock-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-text-lock.svg b/doc/theme/material/.icons/material/message-text-lock.svg new file mode 100644 index 00000000..b60f6cdf --- /dev/null +++ b/doc/theme/material/.icons/material/message-text-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-text-outline.svg b/doc/theme/material/.icons/material/message-text-outline.svg new file mode 100644 index 00000000..e3e9b748 --- /dev/null +++ b/doc/theme/material/.icons/material/message-text-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-text.svg b/doc/theme/material/.icons/material/message-text.svg new file mode 100644 index 00000000..dac6d0b7 --- /dev/null +++ b/doc/theme/material/.icons/material/message-text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message-video.svg b/doc/theme/material/.icons/material/message-video.svg new file mode 100644 index 00000000..97c3264b --- /dev/null +++ b/doc/theme/material/.icons/material/message-video.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/message.svg b/doc/theme/material/.icons/material/message.svg new file mode 100644 index 00000000..c81fbc78 --- /dev/null +++ b/doc/theme/material/.icons/material/message.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/meteor.svg b/doc/theme/material/.icons/material/meteor.svg new file mode 100644 index 00000000..55f5131a --- /dev/null +++ b/doc/theme/material/.icons/material/meteor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/metronome-tick.svg b/doc/theme/material/.icons/material/metronome-tick.svg new file mode 100644 index 00000000..222c583d --- /dev/null +++ b/doc/theme/material/.icons/material/metronome-tick.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/metronome.svg b/doc/theme/material/.icons/material/metronome.svg new file mode 100644 index 00000000..fd509114 --- /dev/null +++ b/doc/theme/material/.icons/material/metronome.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/micro-sd.svg b/doc/theme/material/.icons/material/micro-sd.svg new file mode 100644 index 00000000..f7ab3238 --- /dev/null +++ b/doc/theme/material/.icons/material/micro-sd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microphone-minus.svg b/doc/theme/material/.icons/material/microphone-minus.svg new file mode 100644 index 00000000..73c1cf2e --- /dev/null +++ b/doc/theme/material/.icons/material/microphone-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microphone-off.svg b/doc/theme/material/.icons/material/microphone-off.svg new file mode 100644 index 00000000..354dc3c8 --- /dev/null +++ b/doc/theme/material/.icons/material/microphone-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microphone-outline.svg b/doc/theme/material/.icons/material/microphone-outline.svg new file mode 100644 index 00000000..9b34cdf4 --- /dev/null +++ b/doc/theme/material/.icons/material/microphone-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microphone-plus.svg b/doc/theme/material/.icons/material/microphone-plus.svg new file mode 100644 index 00000000..be516d34 --- /dev/null +++ b/doc/theme/material/.icons/material/microphone-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microphone-settings.svg b/doc/theme/material/.icons/material/microphone-settings.svg new file mode 100644 index 00000000..e8507dd9 --- /dev/null +++ b/doc/theme/material/.icons/material/microphone-settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microphone-variant-off.svg b/doc/theme/material/.icons/material/microphone-variant-off.svg new file mode 100644 index 00000000..b084bca0 --- /dev/null +++ b/doc/theme/material/.icons/material/microphone-variant-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microphone-variant.svg b/doc/theme/material/.icons/material/microphone-variant.svg new file mode 100644 index 00000000..b5ee05da --- /dev/null +++ b/doc/theme/material/.icons/material/microphone-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microphone.svg b/doc/theme/material/.icons/material/microphone.svg new file mode 100644 index 00000000..895f0e4d --- /dev/null +++ b/doc/theme/material/.icons/material/microphone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microscope.svg b/doc/theme/material/.icons/material/microscope.svg new file mode 100644 index 00000000..5e81844b --- /dev/null +++ b/doc/theme/material/.icons/material/microscope.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-access.svg b/doc/theme/material/.icons/material/microsoft-access.svg new file mode 100644 index 00000000..0d144867 --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-access.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-azure-devops.svg b/doc/theme/material/.icons/material/microsoft-azure-devops.svg new file mode 100644 index 00000000..4b7e5b35 --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-azure-devops.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-azure.svg b/doc/theme/material/.icons/material/microsoft-azure.svg new file mode 100644 index 00000000..3f511008 --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-azure.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-bing.svg b/doc/theme/material/.icons/material/microsoft-bing.svg new file mode 100644 index 00000000..0371962e --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-bing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-dynamics-365.svg b/doc/theme/material/.icons/material/microsoft-dynamics-365.svg new file mode 100644 index 00000000..7e19b8a8 --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-dynamics-365.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-edge-legacy.svg b/doc/theme/material/.icons/material/microsoft-edge-legacy.svg new file mode 100644 index 00000000..e43ff58d --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-edge-legacy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-edge.svg b/doc/theme/material/.icons/material/microsoft-edge.svg new file mode 100644 index 00000000..fc63e89c --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-edge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-excel.svg b/doc/theme/material/.icons/material/microsoft-excel.svg new file mode 100644 index 00000000..1350c1a8 --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-excel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-internet-explorer.svg b/doc/theme/material/.icons/material/microsoft-internet-explorer.svg new file mode 100644 index 00000000..5b9a010e --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-internet-explorer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-office.svg b/doc/theme/material/.icons/material/microsoft-office.svg new file mode 100644 index 00000000..24157f4e --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-office.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-onedrive.svg b/doc/theme/material/.icons/material/microsoft-onedrive.svg new file mode 100644 index 00000000..19fe5159 --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-onedrive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-onenote.svg b/doc/theme/material/.icons/material/microsoft-onenote.svg new file mode 100644 index 00000000..a22d4128 --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-onenote.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-outlook.svg b/doc/theme/material/.icons/material/microsoft-outlook.svg new file mode 100644 index 00000000..241ba489 --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-outlook.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-powerpoint.svg b/doc/theme/material/.icons/material/microsoft-powerpoint.svg new file mode 100644 index 00000000..bee4c033 --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-powerpoint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-sharepoint.svg b/doc/theme/material/.icons/material/microsoft-sharepoint.svg new file mode 100644 index 00000000..88b9c46c --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-sharepoint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-teams.svg b/doc/theme/material/.icons/material/microsoft-teams.svg new file mode 100644 index 00000000..12354f7e --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-teams.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-visual-studio-code.svg b/doc/theme/material/.icons/material/microsoft-visual-studio-code.svg new file mode 100644 index 00000000..11b85b5d --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-visual-studio-code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-visual-studio.svg b/doc/theme/material/.icons/material/microsoft-visual-studio.svg new file mode 100644 index 00000000..37e89766 --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-visual-studio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-windows-classic.svg b/doc/theme/material/.icons/material/microsoft-windows-classic.svg new file mode 100644 index 00000000..f26c373b --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-windows-classic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-windows.svg b/doc/theme/material/.icons/material/microsoft-windows.svg new file mode 100644 index 00000000..96c2e6d2 --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-windows.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-word.svg b/doc/theme/material/.icons/material/microsoft-word.svg new file mode 100644 index 00000000..77f46e77 --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-word.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-xbox-controller-battery-alert.svg b/doc/theme/material/.icons/material/microsoft-xbox-controller-battery-alert.svg new file mode 100644 index 00000000..3b6e0dfb --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-xbox-controller-battery-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-xbox-controller-battery-charging.svg b/doc/theme/material/.icons/material/microsoft-xbox-controller-battery-charging.svg new file mode 100644 index 00000000..0b3d69fb --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-xbox-controller-battery-charging.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-xbox-controller-battery-empty.svg b/doc/theme/material/.icons/material/microsoft-xbox-controller-battery-empty.svg new file mode 100644 index 00000000..c713a94c --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-xbox-controller-battery-empty.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-xbox-controller-battery-full.svg b/doc/theme/material/.icons/material/microsoft-xbox-controller-battery-full.svg new file mode 100644 index 00000000..c3a86d68 --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-xbox-controller-battery-full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-xbox-controller-battery-low.svg b/doc/theme/material/.icons/material/microsoft-xbox-controller-battery-low.svg new file mode 100644 index 00000000..2e786f4f --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-xbox-controller-battery-low.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-xbox-controller-battery-medium.svg b/doc/theme/material/.icons/material/microsoft-xbox-controller-battery-medium.svg new file mode 100644 index 00000000..59e859cc --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-xbox-controller-battery-medium.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-xbox-controller-battery-unknown.svg b/doc/theme/material/.icons/material/microsoft-xbox-controller-battery-unknown.svg new file mode 100644 index 00000000..5df1b52e --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-xbox-controller-battery-unknown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-xbox-controller-menu.svg b/doc/theme/material/.icons/material/microsoft-xbox-controller-menu.svg new file mode 100644 index 00000000..e38f1707 --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-xbox-controller-menu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-xbox-controller-off.svg b/doc/theme/material/.icons/material/microsoft-xbox-controller-off.svg new file mode 100644 index 00000000..3539b0c9 --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-xbox-controller-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-xbox-controller-view.svg b/doc/theme/material/.icons/material/microsoft-xbox-controller-view.svg new file mode 100644 index 00000000..1bd41a77 --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-xbox-controller-view.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-xbox-controller.svg b/doc/theme/material/.icons/material/microsoft-xbox-controller.svg new file mode 100644 index 00000000..2596479a --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-xbox-controller.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-xbox.svg b/doc/theme/material/.icons/material/microsoft-xbox.svg new file mode 100644 index 00000000..94baee2e --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-xbox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft-yammer.svg b/doc/theme/material/.icons/material/microsoft-yammer.svg new file mode 100644 index 00000000..9b1dbb30 --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft-yammer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microsoft.svg b/doc/theme/material/.icons/material/microsoft.svg new file mode 100644 index 00000000..35f563d7 --- /dev/null +++ b/doc/theme/material/.icons/material/microsoft.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/microwave.svg b/doc/theme/material/.icons/material/microwave.svg new file mode 100644 index 00000000..d655971b --- /dev/null +++ b/doc/theme/material/.icons/material/microwave.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/middleware-outline.svg b/doc/theme/material/.icons/material/middleware-outline.svg new file mode 100644 index 00000000..6671a27b --- /dev/null +++ b/doc/theme/material/.icons/material/middleware-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/middleware.svg b/doc/theme/material/.icons/material/middleware.svg new file mode 100644 index 00000000..69e87603 --- /dev/null +++ b/doc/theme/material/.icons/material/middleware.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/midi-port.svg b/doc/theme/material/.icons/material/midi-port.svg new file mode 100644 index 00000000..1ba0f45a --- /dev/null +++ b/doc/theme/material/.icons/material/midi-port.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/midi.svg b/doc/theme/material/.icons/material/midi.svg new file mode 100644 index 00000000..6fa120f8 --- /dev/null +++ b/doc/theme/material/.icons/material/midi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/mine.svg b/doc/theme/material/.icons/material/mine.svg new file mode 100644 index 00000000..4af35c3e --- /dev/null +++ b/doc/theme/material/.icons/material/mine.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/minecraft.svg b/doc/theme/material/.icons/material/minecraft.svg new file mode 100644 index 00000000..d4bf2ba5 --- /dev/null +++ b/doc/theme/material/.icons/material/minecraft.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/mini-sd.svg b/doc/theme/material/.icons/material/mini-sd.svg new file mode 100644 index 00000000..3c788eaf --- /dev/null +++ b/doc/theme/material/.icons/material/mini-sd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/minidisc.svg b/doc/theme/material/.icons/material/minidisc.svg new file mode 100644 index 00000000..1f829a34 --- /dev/null +++ b/doc/theme/material/.icons/material/minidisc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/minus-box-multiple-outline.svg b/doc/theme/material/.icons/material/minus-box-multiple-outline.svg new file mode 100644 index 00000000..3634e379 --- /dev/null +++ b/doc/theme/material/.icons/material/minus-box-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/minus-box-multiple.svg b/doc/theme/material/.icons/material/minus-box-multiple.svg new file mode 100644 index 00000000..c8b3d2f1 --- /dev/null +++ b/doc/theme/material/.icons/material/minus-box-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/minus-box-outline.svg b/doc/theme/material/.icons/material/minus-box-outline.svg new file mode 100644 index 00000000..5b2d0bff --- /dev/null +++ b/doc/theme/material/.icons/material/minus-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/minus-box.svg b/doc/theme/material/.icons/material/minus-box.svg new file mode 100644 index 00000000..a62d2513 --- /dev/null +++ b/doc/theme/material/.icons/material/minus-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/minus-circle-multiple-outline.svg b/doc/theme/material/.icons/material/minus-circle-multiple-outline.svg new file mode 100644 index 00000000..62a4cd53 --- /dev/null +++ b/doc/theme/material/.icons/material/minus-circle-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/minus-circle-multiple.svg b/doc/theme/material/.icons/material/minus-circle-multiple.svg new file mode 100644 index 00000000..15d9022b --- /dev/null +++ b/doc/theme/material/.icons/material/minus-circle-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/minus-circle-outline.svg b/doc/theme/material/.icons/material/minus-circle-outline.svg new file mode 100644 index 00000000..31e5934a --- /dev/null +++ b/doc/theme/material/.icons/material/minus-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/minus-circle.svg b/doc/theme/material/.icons/material/minus-circle.svg new file mode 100644 index 00000000..9f237f75 --- /dev/null +++ b/doc/theme/material/.icons/material/minus-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/minus-network-outline.svg b/doc/theme/material/.icons/material/minus-network-outline.svg new file mode 100644 index 00000000..2f04b5ce --- /dev/null +++ b/doc/theme/material/.icons/material/minus-network-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/minus-network.svg b/doc/theme/material/.icons/material/minus-network.svg new file mode 100644 index 00000000..5606ebd4 --- /dev/null +++ b/doc/theme/material/.icons/material/minus-network.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/minus.svg b/doc/theme/material/.icons/material/minus.svg new file mode 100644 index 00000000..c2c08749 --- /dev/null +++ b/doc/theme/material/.icons/material/minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/mirror.svg b/doc/theme/material/.icons/material/mirror.svg new file mode 100644 index 00000000..2eb97141 --- /dev/null +++ b/doc/theme/material/.icons/material/mirror.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/mixed-martial-arts.svg b/doc/theme/material/.icons/material/mixed-martial-arts.svg new file mode 100644 index 00000000..6ce0e12e --- /dev/null +++ b/doc/theme/material/.icons/material/mixed-martial-arts.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/mixed-reality.svg b/doc/theme/material/.icons/material/mixed-reality.svg new file mode 100644 index 00000000..4be6be9f --- /dev/null +++ b/doc/theme/material/.icons/material/mixed-reality.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/mixer.svg b/doc/theme/material/.icons/material/mixer.svg new file mode 100644 index 00000000..2f692ef7 --- /dev/null +++ b/doc/theme/material/.icons/material/mixer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/molecule-co.svg b/doc/theme/material/.icons/material/molecule-co.svg new file mode 100644 index 00000000..bb54108c --- /dev/null +++ b/doc/theme/material/.icons/material/molecule-co.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/molecule-co2.svg b/doc/theme/material/.icons/material/molecule-co2.svg new file mode 100644 index 00000000..a9269781 --- /dev/null +++ b/doc/theme/material/.icons/material/molecule-co2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/molecule.svg b/doc/theme/material/.icons/material/molecule.svg new file mode 100644 index 00000000..738a32d7 --- /dev/null +++ b/doc/theme/material/.icons/material/molecule.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/monitor-cellphone-star.svg b/doc/theme/material/.icons/material/monitor-cellphone-star.svg new file mode 100644 index 00000000..2219875f --- /dev/null +++ b/doc/theme/material/.icons/material/monitor-cellphone-star.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/monitor-cellphone.svg b/doc/theme/material/.icons/material/monitor-cellphone.svg new file mode 100644 index 00000000..b6e8b7c3 --- /dev/null +++ b/doc/theme/material/.icons/material/monitor-cellphone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/monitor-clean.svg b/doc/theme/material/.icons/material/monitor-clean.svg new file mode 100644 index 00000000..f9861dc4 --- /dev/null +++ b/doc/theme/material/.icons/material/monitor-clean.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/monitor-dashboard.svg b/doc/theme/material/.icons/material/monitor-dashboard.svg new file mode 100644 index 00000000..c96d2735 --- /dev/null +++ b/doc/theme/material/.icons/material/monitor-dashboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/monitor-edit.svg b/doc/theme/material/.icons/material/monitor-edit.svg new file mode 100644 index 00000000..4380cc68 --- /dev/null +++ b/doc/theme/material/.icons/material/monitor-edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/monitor-eye.svg b/doc/theme/material/.icons/material/monitor-eye.svg new file mode 100644 index 00000000..40558825 --- /dev/null +++ b/doc/theme/material/.icons/material/monitor-eye.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/monitor-lock.svg b/doc/theme/material/.icons/material/monitor-lock.svg new file mode 100644 index 00000000..a8532f69 --- /dev/null +++ b/doc/theme/material/.icons/material/monitor-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/monitor-multiple.svg b/doc/theme/material/.icons/material/monitor-multiple.svg new file mode 100644 index 00000000..3c38589a --- /dev/null +++ b/doc/theme/material/.icons/material/monitor-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/monitor-off.svg b/doc/theme/material/.icons/material/monitor-off.svg new file mode 100644 index 00000000..8450dfc5 --- /dev/null +++ b/doc/theme/material/.icons/material/monitor-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/monitor-screenshot.svg b/doc/theme/material/.icons/material/monitor-screenshot.svg new file mode 100644 index 00000000..178eeacb --- /dev/null +++ b/doc/theme/material/.icons/material/monitor-screenshot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/monitor-speaker-off.svg b/doc/theme/material/.icons/material/monitor-speaker-off.svg new file mode 100644 index 00000000..16bf30d6 --- /dev/null +++ b/doc/theme/material/.icons/material/monitor-speaker-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/monitor-speaker.svg b/doc/theme/material/.icons/material/monitor-speaker.svg new file mode 100644 index 00000000..632a9953 --- /dev/null +++ b/doc/theme/material/.icons/material/monitor-speaker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/monitor-star.svg b/doc/theme/material/.icons/material/monitor-star.svg new file mode 100644 index 00000000..6f804964 --- /dev/null +++ b/doc/theme/material/.icons/material/monitor-star.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/monitor.svg b/doc/theme/material/.icons/material/monitor.svg new file mode 100644 index 00000000..e59f7362 --- /dev/null +++ b/doc/theme/material/.icons/material/monitor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/moon-first-quarter.svg b/doc/theme/material/.icons/material/moon-first-quarter.svg new file mode 100644 index 00000000..bebbd544 --- /dev/null +++ b/doc/theme/material/.icons/material/moon-first-quarter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/moon-full.svg b/doc/theme/material/.icons/material/moon-full.svg new file mode 100644 index 00000000..809fbfd0 --- /dev/null +++ b/doc/theme/material/.icons/material/moon-full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/moon-last-quarter.svg b/doc/theme/material/.icons/material/moon-last-quarter.svg new file mode 100644 index 00000000..1a247f07 --- /dev/null +++ b/doc/theme/material/.icons/material/moon-last-quarter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/moon-new.svg b/doc/theme/material/.icons/material/moon-new.svg new file mode 100644 index 00000000..c7661dce --- /dev/null +++ b/doc/theme/material/.icons/material/moon-new.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/moon-waning-crescent.svg b/doc/theme/material/.icons/material/moon-waning-crescent.svg new file mode 100644 index 00000000..f4b4087c --- /dev/null +++ b/doc/theme/material/.icons/material/moon-waning-crescent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/moon-waning-gibbous.svg b/doc/theme/material/.icons/material/moon-waning-gibbous.svg new file mode 100644 index 00000000..917969e6 --- /dev/null +++ b/doc/theme/material/.icons/material/moon-waning-gibbous.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/moon-waxing-crescent.svg b/doc/theme/material/.icons/material/moon-waxing-crescent.svg new file mode 100644 index 00000000..043b6c34 --- /dev/null +++ b/doc/theme/material/.icons/material/moon-waxing-crescent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/moon-waxing-gibbous.svg b/doc/theme/material/.icons/material/moon-waxing-gibbous.svg new file mode 100644 index 00000000..52ae79d9 --- /dev/null +++ b/doc/theme/material/.icons/material/moon-waxing-gibbous.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/moped.svg b/doc/theme/material/.icons/material/moped.svg new file mode 100644 index 00000000..ca5c0d55 --- /dev/null +++ b/doc/theme/material/.icons/material/moped.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/more.svg b/doc/theme/material/.icons/material/more.svg new file mode 100644 index 00000000..b0e428f2 --- /dev/null +++ b/doc/theme/material/.icons/material/more.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/mother-heart.svg b/doc/theme/material/.icons/material/mother-heart.svg new file mode 100644 index 00000000..8541acd6 --- /dev/null +++ b/doc/theme/material/.icons/material/mother-heart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/mother-nurse.svg b/doc/theme/material/.icons/material/mother-nurse.svg new file mode 100644 index 00000000..022e000d --- /dev/null +++ b/doc/theme/material/.icons/material/mother-nurse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/motion-sensor.svg b/doc/theme/material/.icons/material/motion-sensor.svg new file mode 100644 index 00000000..7807d848 --- /dev/null +++ b/doc/theme/material/.icons/material/motion-sensor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/motorbike.svg b/doc/theme/material/.icons/material/motorbike.svg new file mode 100644 index 00000000..bdab5eba --- /dev/null +++ b/doc/theme/material/.icons/material/motorbike.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/mouse-bluetooth.svg b/doc/theme/material/.icons/material/mouse-bluetooth.svg new file mode 100644 index 00000000..8e580c7d --- /dev/null +++ b/doc/theme/material/.icons/material/mouse-bluetooth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/mouse-off.svg b/doc/theme/material/.icons/material/mouse-off.svg new file mode 100644 index 00000000..7c9c1bb4 --- /dev/null +++ b/doc/theme/material/.icons/material/mouse-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/mouse-variant-off.svg b/doc/theme/material/.icons/material/mouse-variant-off.svg new file mode 100644 index 00000000..1e5e734c --- /dev/null +++ b/doc/theme/material/.icons/material/mouse-variant-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/mouse-variant.svg b/doc/theme/material/.icons/material/mouse-variant.svg new file mode 100644 index 00000000..aa4560cb --- /dev/null +++ b/doc/theme/material/.icons/material/mouse-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/mouse.svg b/doc/theme/material/.icons/material/mouse.svg new file mode 100644 index 00000000..8028e0c4 --- /dev/null +++ b/doc/theme/material/.icons/material/mouse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/move-resize-variant.svg b/doc/theme/material/.icons/material/move-resize-variant.svg new file mode 100644 index 00000000..de5259d6 --- /dev/null +++ b/doc/theme/material/.icons/material/move-resize-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/move-resize.svg b/doc/theme/material/.icons/material/move-resize.svg new file mode 100644 index 00000000..25f8cc23 --- /dev/null +++ b/doc/theme/material/.icons/material/move-resize.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/movie-edit-outline.svg b/doc/theme/material/.icons/material/movie-edit-outline.svg new file mode 100644 index 00000000..22dc094f --- /dev/null +++ b/doc/theme/material/.icons/material/movie-edit-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/movie-edit.svg b/doc/theme/material/.icons/material/movie-edit.svg new file mode 100644 index 00000000..cac4b82b --- /dev/null +++ b/doc/theme/material/.icons/material/movie-edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/movie-filter-outline.svg b/doc/theme/material/.icons/material/movie-filter-outline.svg new file mode 100644 index 00000000..5a13f5ac --- /dev/null +++ b/doc/theme/material/.icons/material/movie-filter-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/movie-filter.svg b/doc/theme/material/.icons/material/movie-filter.svg new file mode 100644 index 00000000..9b35ded5 --- /dev/null +++ b/doc/theme/material/.icons/material/movie-filter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/movie-open-outline.svg b/doc/theme/material/.icons/material/movie-open-outline.svg new file mode 100644 index 00000000..f1182532 --- /dev/null +++ b/doc/theme/material/.icons/material/movie-open-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/movie-open.svg b/doc/theme/material/.icons/material/movie-open.svg new file mode 100644 index 00000000..04fc7613 --- /dev/null +++ b/doc/theme/material/.icons/material/movie-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/movie-outline.svg b/doc/theme/material/.icons/material/movie-outline.svg new file mode 100644 index 00000000..ace220b1 --- /dev/null +++ b/doc/theme/material/.icons/material/movie-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/movie-roll.svg b/doc/theme/material/.icons/material/movie-roll.svg new file mode 100644 index 00000000..f697c164 --- /dev/null +++ b/doc/theme/material/.icons/material/movie-roll.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/movie-search-outline.svg b/doc/theme/material/.icons/material/movie-search-outline.svg new file mode 100644 index 00000000..061592a3 --- /dev/null +++ b/doc/theme/material/.icons/material/movie-search-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/movie-search.svg b/doc/theme/material/.icons/material/movie-search.svg new file mode 100644 index 00000000..0b36c93a --- /dev/null +++ b/doc/theme/material/.icons/material/movie-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/movie.svg b/doc/theme/material/.icons/material/movie.svg new file mode 100644 index 00000000..bd59988a --- /dev/null +++ b/doc/theme/material/.icons/material/movie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/muffin.svg b/doc/theme/material/.icons/material/muffin.svg new file mode 100644 index 00000000..3f3d61d8 --- /dev/null +++ b/doc/theme/material/.icons/material/muffin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/multiplication-box.svg b/doc/theme/material/.icons/material/multiplication-box.svg new file mode 100644 index 00000000..6e9088d9 --- /dev/null +++ b/doc/theme/material/.icons/material/multiplication-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/multiplication.svg b/doc/theme/material/.icons/material/multiplication.svg new file mode 100644 index 00000000..0b5d93be --- /dev/null +++ b/doc/theme/material/.icons/material/multiplication.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/mushroom-off-outline.svg b/doc/theme/material/.icons/material/mushroom-off-outline.svg new file mode 100644 index 00000000..67d196c5 --- /dev/null +++ b/doc/theme/material/.icons/material/mushroom-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/mushroom-off.svg b/doc/theme/material/.icons/material/mushroom-off.svg new file mode 100644 index 00000000..ab3d47f6 --- /dev/null +++ b/doc/theme/material/.icons/material/mushroom-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/mushroom-outline.svg b/doc/theme/material/.icons/material/mushroom-outline.svg new file mode 100644 index 00000000..a763dd6d --- /dev/null +++ b/doc/theme/material/.icons/material/mushroom-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/mushroom.svg b/doc/theme/material/.icons/material/mushroom.svg new file mode 100644 index 00000000..1b3d5bad --- /dev/null +++ b/doc/theme/material/.icons/material/mushroom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-accidental-double-flat.svg b/doc/theme/material/.icons/material/music-accidental-double-flat.svg new file mode 100644 index 00000000..a522040f --- /dev/null +++ b/doc/theme/material/.icons/material/music-accidental-double-flat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-accidental-double-sharp.svg b/doc/theme/material/.icons/material/music-accidental-double-sharp.svg new file mode 100644 index 00000000..cbc53273 --- /dev/null +++ b/doc/theme/material/.icons/material/music-accidental-double-sharp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-accidental-flat.svg b/doc/theme/material/.icons/material/music-accidental-flat.svg new file mode 100644 index 00000000..8c74c622 --- /dev/null +++ b/doc/theme/material/.icons/material/music-accidental-flat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-accidental-natural.svg b/doc/theme/material/.icons/material/music-accidental-natural.svg new file mode 100644 index 00000000..a2817e6d --- /dev/null +++ b/doc/theme/material/.icons/material/music-accidental-natural.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-accidental-sharp.svg b/doc/theme/material/.icons/material/music-accidental-sharp.svg new file mode 100644 index 00000000..82f39042 --- /dev/null +++ b/doc/theme/material/.icons/material/music-accidental-sharp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-box-multiple-outline.svg b/doc/theme/material/.icons/material/music-box-multiple-outline.svg new file mode 100644 index 00000000..90098f35 --- /dev/null +++ b/doc/theme/material/.icons/material/music-box-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-box-multiple.svg b/doc/theme/material/.icons/material/music-box-multiple.svg new file mode 100644 index 00000000..3518e6e3 --- /dev/null +++ b/doc/theme/material/.icons/material/music-box-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-box-outline.svg b/doc/theme/material/.icons/material/music-box-outline.svg new file mode 100644 index 00000000..4a16dbc1 --- /dev/null +++ b/doc/theme/material/.icons/material/music-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-box.svg b/doc/theme/material/.icons/material/music-box.svg new file mode 100644 index 00000000..23a3905d --- /dev/null +++ b/doc/theme/material/.icons/material/music-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-circle-outline.svg b/doc/theme/material/.icons/material/music-circle-outline.svg new file mode 100644 index 00000000..ff737248 --- /dev/null +++ b/doc/theme/material/.icons/material/music-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-circle.svg b/doc/theme/material/.icons/material/music-circle.svg new file mode 100644 index 00000000..44d53f79 --- /dev/null +++ b/doc/theme/material/.icons/material/music-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-clef-alto.svg b/doc/theme/material/.icons/material/music-clef-alto.svg new file mode 100644 index 00000000..c5c32405 --- /dev/null +++ b/doc/theme/material/.icons/material/music-clef-alto.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-clef-bass.svg b/doc/theme/material/.icons/material/music-clef-bass.svg new file mode 100644 index 00000000..17922f31 --- /dev/null +++ b/doc/theme/material/.icons/material/music-clef-bass.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-clef-treble.svg b/doc/theme/material/.icons/material/music-clef-treble.svg new file mode 100644 index 00000000..8f96b723 --- /dev/null +++ b/doc/theme/material/.icons/material/music-clef-treble.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-note-bluetooth-off.svg b/doc/theme/material/.icons/material/music-note-bluetooth-off.svg new file mode 100644 index 00000000..37146609 --- /dev/null +++ b/doc/theme/material/.icons/material/music-note-bluetooth-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-note-bluetooth.svg b/doc/theme/material/.icons/material/music-note-bluetooth.svg new file mode 100644 index 00000000..521ce3b5 --- /dev/null +++ b/doc/theme/material/.icons/material/music-note-bluetooth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-note-eighth-dotted.svg b/doc/theme/material/.icons/material/music-note-eighth-dotted.svg new file mode 100644 index 00000000..44468498 --- /dev/null +++ b/doc/theme/material/.icons/material/music-note-eighth-dotted.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-note-eighth.svg b/doc/theme/material/.icons/material/music-note-eighth.svg new file mode 100644 index 00000000..21edf382 --- /dev/null +++ b/doc/theme/material/.icons/material/music-note-eighth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-note-half-dotted.svg b/doc/theme/material/.icons/material/music-note-half-dotted.svg new file mode 100644 index 00000000..6b70e78b --- /dev/null +++ b/doc/theme/material/.icons/material/music-note-half-dotted.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-note-half.svg b/doc/theme/material/.icons/material/music-note-half.svg new file mode 100644 index 00000000..8942897c --- /dev/null +++ b/doc/theme/material/.icons/material/music-note-half.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-note-off-outline.svg b/doc/theme/material/.icons/material/music-note-off-outline.svg new file mode 100644 index 00000000..c512ab52 --- /dev/null +++ b/doc/theme/material/.icons/material/music-note-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-note-off.svg b/doc/theme/material/.icons/material/music-note-off.svg new file mode 100644 index 00000000..04924c9f --- /dev/null +++ b/doc/theme/material/.icons/material/music-note-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-note-outline.svg b/doc/theme/material/.icons/material/music-note-outline.svg new file mode 100644 index 00000000..1264a9ed --- /dev/null +++ b/doc/theme/material/.icons/material/music-note-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-note-plus.svg b/doc/theme/material/.icons/material/music-note-plus.svg new file mode 100644 index 00000000..6c40dbb1 --- /dev/null +++ b/doc/theme/material/.icons/material/music-note-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-note-quarter-dotted.svg b/doc/theme/material/.icons/material/music-note-quarter-dotted.svg new file mode 100644 index 00000000..8a388b88 --- /dev/null +++ b/doc/theme/material/.icons/material/music-note-quarter-dotted.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-note-quarter.svg b/doc/theme/material/.icons/material/music-note-quarter.svg new file mode 100644 index 00000000..8d566cda --- /dev/null +++ b/doc/theme/material/.icons/material/music-note-quarter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-note-sixteenth-dotted.svg b/doc/theme/material/.icons/material/music-note-sixteenth-dotted.svg new file mode 100644 index 00000000..d3bf25a1 --- /dev/null +++ b/doc/theme/material/.icons/material/music-note-sixteenth-dotted.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-note-sixteenth.svg b/doc/theme/material/.icons/material/music-note-sixteenth.svg new file mode 100644 index 00000000..657c784a --- /dev/null +++ b/doc/theme/material/.icons/material/music-note-sixteenth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-note-whole-dotted.svg b/doc/theme/material/.icons/material/music-note-whole-dotted.svg new file mode 100644 index 00000000..558032f6 --- /dev/null +++ b/doc/theme/material/.icons/material/music-note-whole-dotted.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-note-whole.svg b/doc/theme/material/.icons/material/music-note-whole.svg new file mode 100644 index 00000000..111ccb21 --- /dev/null +++ b/doc/theme/material/.icons/material/music-note-whole.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-note.svg b/doc/theme/material/.icons/material/music-note.svg new file mode 100644 index 00000000..21edf382 --- /dev/null +++ b/doc/theme/material/.icons/material/music-note.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-off.svg b/doc/theme/material/.icons/material/music-off.svg new file mode 100644 index 00000000..29b39dc1 --- /dev/null +++ b/doc/theme/material/.icons/material/music-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-rest-eighth.svg b/doc/theme/material/.icons/material/music-rest-eighth.svg new file mode 100644 index 00000000..5274cfc3 --- /dev/null +++ b/doc/theme/material/.icons/material/music-rest-eighth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-rest-half.svg b/doc/theme/material/.icons/material/music-rest-half.svg new file mode 100644 index 00000000..53fd09c4 --- /dev/null +++ b/doc/theme/material/.icons/material/music-rest-half.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-rest-quarter.svg b/doc/theme/material/.icons/material/music-rest-quarter.svg new file mode 100644 index 00000000..a7a55b23 --- /dev/null +++ b/doc/theme/material/.icons/material/music-rest-quarter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-rest-sixteenth.svg b/doc/theme/material/.icons/material/music-rest-sixteenth.svg new file mode 100644 index 00000000..e8cf04c0 --- /dev/null +++ b/doc/theme/material/.icons/material/music-rest-sixteenth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music-rest-whole.svg b/doc/theme/material/.icons/material/music-rest-whole.svg new file mode 100644 index 00000000..4f689ef7 --- /dev/null +++ b/doc/theme/material/.icons/material/music-rest-whole.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/music.svg b/doc/theme/material/.icons/material/music.svg new file mode 100644 index 00000000..cbc2e2c2 --- /dev/null +++ b/doc/theme/material/.icons/material/music.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/nail.svg b/doc/theme/material/.icons/material/nail.svg new file mode 100644 index 00000000..5b7c2766 --- /dev/null +++ b/doc/theme/material/.icons/material/nail.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/nas.svg b/doc/theme/material/.icons/material/nas.svg new file mode 100644 index 00000000..b557dae3 --- /dev/null +++ b/doc/theme/material/.icons/material/nas.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/nativescript.svg b/doc/theme/material/.icons/material/nativescript.svg new file mode 100644 index 00000000..cb05cd1f --- /dev/null +++ b/doc/theme/material/.icons/material/nativescript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/nature-people.svg b/doc/theme/material/.icons/material/nature-people.svg new file mode 100644 index 00000000..a816de0c --- /dev/null +++ b/doc/theme/material/.icons/material/nature-people.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/nature.svg b/doc/theme/material/.icons/material/nature.svg new file mode 100644 index 00000000..33fa7c09 --- /dev/null +++ b/doc/theme/material/.icons/material/nature.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/navigation.svg b/doc/theme/material/.icons/material/navigation.svg new file mode 100644 index 00000000..50e1ca68 --- /dev/null +++ b/doc/theme/material/.icons/material/navigation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/near-me.svg b/doc/theme/material/.icons/material/near-me.svg new file mode 100644 index 00000000..af7f5e9c --- /dev/null +++ b/doc/theme/material/.icons/material/near-me.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/necklace.svg b/doc/theme/material/.icons/material/necklace.svg new file mode 100644 index 00000000..d2a03786 --- /dev/null +++ b/doc/theme/material/.icons/material/necklace.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/needle.svg b/doc/theme/material/.icons/material/needle.svg new file mode 100644 index 00000000..c1813ca7 --- /dev/null +++ b/doc/theme/material/.icons/material/needle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/netflix.svg b/doc/theme/material/.icons/material/netflix.svg new file mode 100644 index 00000000..8e69fa46 --- /dev/null +++ b/doc/theme/material/.icons/material/netflix.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/network-off-outline.svg b/doc/theme/material/.icons/material/network-off-outline.svg new file mode 100644 index 00000000..c28e85bc --- /dev/null +++ b/doc/theme/material/.icons/material/network-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/network-off.svg b/doc/theme/material/.icons/material/network-off.svg new file mode 100644 index 00000000..bd0e2d13 --- /dev/null +++ b/doc/theme/material/.icons/material/network-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/network-outline.svg b/doc/theme/material/.icons/material/network-outline.svg new file mode 100644 index 00000000..315f3e71 --- /dev/null +++ b/doc/theme/material/.icons/material/network-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/network-strength-1-alert.svg b/doc/theme/material/.icons/material/network-strength-1-alert.svg new file mode 100644 index 00000000..fa2ae460 --- /dev/null +++ b/doc/theme/material/.icons/material/network-strength-1-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/network-strength-1.svg b/doc/theme/material/.icons/material/network-strength-1.svg new file mode 100644 index 00000000..b9a81ad0 --- /dev/null +++ b/doc/theme/material/.icons/material/network-strength-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/network-strength-2-alert.svg b/doc/theme/material/.icons/material/network-strength-2-alert.svg new file mode 100644 index 00000000..704163eb --- /dev/null +++ b/doc/theme/material/.icons/material/network-strength-2-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/network-strength-2.svg b/doc/theme/material/.icons/material/network-strength-2.svg new file mode 100644 index 00000000..d55fcba3 --- /dev/null +++ b/doc/theme/material/.icons/material/network-strength-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/network-strength-3-alert.svg b/doc/theme/material/.icons/material/network-strength-3-alert.svg new file mode 100644 index 00000000..0dc2e6f9 --- /dev/null +++ b/doc/theme/material/.icons/material/network-strength-3-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/network-strength-3.svg b/doc/theme/material/.icons/material/network-strength-3.svg new file mode 100644 index 00000000..4a9e70ad --- /dev/null +++ b/doc/theme/material/.icons/material/network-strength-3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/network-strength-4-alert.svg b/doc/theme/material/.icons/material/network-strength-4-alert.svg new file mode 100644 index 00000000..f398df98 --- /dev/null +++ b/doc/theme/material/.icons/material/network-strength-4-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/network-strength-4.svg b/doc/theme/material/.icons/material/network-strength-4.svg new file mode 100644 index 00000000..ada3de9e --- /dev/null +++ b/doc/theme/material/.icons/material/network-strength-4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/network-strength-off-outline.svg b/doc/theme/material/.icons/material/network-strength-off-outline.svg new file mode 100644 index 00000000..a9557123 --- /dev/null +++ b/doc/theme/material/.icons/material/network-strength-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/network-strength-off.svg b/doc/theme/material/.icons/material/network-strength-off.svg new file mode 100644 index 00000000..5fe15ccd --- /dev/null +++ b/doc/theme/material/.icons/material/network-strength-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/network-strength-outline.svg b/doc/theme/material/.icons/material/network-strength-outline.svg new file mode 100644 index 00000000..92185ba7 --- /dev/null +++ b/doc/theme/material/.icons/material/network-strength-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/network.svg b/doc/theme/material/.icons/material/network.svg new file mode 100644 index 00000000..87a81aa0 --- /dev/null +++ b/doc/theme/material/.icons/material/network.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/new-box.svg b/doc/theme/material/.icons/material/new-box.svg new file mode 100644 index 00000000..e3e1de9c --- /dev/null +++ b/doc/theme/material/.icons/material/new-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/newspaper-minus.svg b/doc/theme/material/.icons/material/newspaper-minus.svg new file mode 100644 index 00000000..7663e35f --- /dev/null +++ b/doc/theme/material/.icons/material/newspaper-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/newspaper-plus.svg b/doc/theme/material/.icons/material/newspaper-plus.svg new file mode 100644 index 00000000..2d36ad73 --- /dev/null +++ b/doc/theme/material/.icons/material/newspaper-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/newspaper-variant-multiple-outline.svg b/doc/theme/material/.icons/material/newspaper-variant-multiple-outline.svg new file mode 100644 index 00000000..7a035f04 --- /dev/null +++ b/doc/theme/material/.icons/material/newspaper-variant-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/newspaper-variant-multiple.svg b/doc/theme/material/.icons/material/newspaper-variant-multiple.svg new file mode 100644 index 00000000..c75802dc --- /dev/null +++ b/doc/theme/material/.icons/material/newspaper-variant-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/newspaper-variant-outline.svg b/doc/theme/material/.icons/material/newspaper-variant-outline.svg new file mode 100644 index 00000000..a46590e3 --- /dev/null +++ b/doc/theme/material/.icons/material/newspaper-variant-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/newspaper-variant.svg b/doc/theme/material/.icons/material/newspaper-variant.svg new file mode 100644 index 00000000..69779581 --- /dev/null +++ b/doc/theme/material/.icons/material/newspaper-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/newspaper.svg b/doc/theme/material/.icons/material/newspaper.svg new file mode 100644 index 00000000..1958789c --- /dev/null +++ b/doc/theme/material/.icons/material/newspaper.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/nfc-search-variant.svg b/doc/theme/material/.icons/material/nfc-search-variant.svg new file mode 100644 index 00000000..86288d47 --- /dev/null +++ b/doc/theme/material/.icons/material/nfc-search-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/nfc-tap.svg b/doc/theme/material/.icons/material/nfc-tap.svg new file mode 100644 index 00000000..a242c31d --- /dev/null +++ b/doc/theme/material/.icons/material/nfc-tap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/nfc-variant-off.svg b/doc/theme/material/.icons/material/nfc-variant-off.svg new file mode 100644 index 00000000..f6a8006c --- /dev/null +++ b/doc/theme/material/.icons/material/nfc-variant-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/nfc-variant.svg b/doc/theme/material/.icons/material/nfc-variant.svg new file mode 100644 index 00000000..5abebfb5 --- /dev/null +++ b/doc/theme/material/.icons/material/nfc-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/nfc.svg b/doc/theme/material/.icons/material/nfc.svg new file mode 100644 index 00000000..27d9fac8 --- /dev/null +++ b/doc/theme/material/.icons/material/nfc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ninja.svg b/doc/theme/material/.icons/material/ninja.svg new file mode 100644 index 00000000..b7eda3cd --- /dev/null +++ b/doc/theme/material/.icons/material/ninja.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/nintendo-game-boy.svg b/doc/theme/material/.icons/material/nintendo-game-boy.svg new file mode 100644 index 00000000..f453224b --- /dev/null +++ b/doc/theme/material/.icons/material/nintendo-game-boy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/nintendo-switch.svg b/doc/theme/material/.icons/material/nintendo-switch.svg new file mode 100644 index 00000000..e58a3e65 --- /dev/null +++ b/doc/theme/material/.icons/material/nintendo-switch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/nintendo-wii.svg b/doc/theme/material/.icons/material/nintendo-wii.svg new file mode 100644 index 00000000..5b2dbcee --- /dev/null +++ b/doc/theme/material/.icons/material/nintendo-wii.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/nintendo-wiiu.svg b/doc/theme/material/.icons/material/nintendo-wiiu.svg new file mode 100644 index 00000000..eeb45bff --- /dev/null +++ b/doc/theme/material/.icons/material/nintendo-wiiu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/nix.svg b/doc/theme/material/.icons/material/nix.svg new file mode 100644 index 00000000..fb426bd2 --- /dev/null +++ b/doc/theme/material/.icons/material/nix.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/nodejs.svg b/doc/theme/material/.icons/material/nodejs.svg new file mode 100644 index 00000000..fed70b9b --- /dev/null +++ b/doc/theme/material/.icons/material/nodejs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/noodles.svg b/doc/theme/material/.icons/material/noodles.svg new file mode 100644 index 00000000..14b54de7 --- /dev/null +++ b/doc/theme/material/.icons/material/noodles.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/not-equal-variant.svg b/doc/theme/material/.icons/material/not-equal-variant.svg new file mode 100644 index 00000000..38c372ce --- /dev/null +++ b/doc/theme/material/.icons/material/not-equal-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/not-equal.svg b/doc/theme/material/.icons/material/not-equal.svg new file mode 100644 index 00000000..8498a53f --- /dev/null +++ b/doc/theme/material/.icons/material/not-equal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/note-multiple-outline.svg b/doc/theme/material/.icons/material/note-multiple-outline.svg new file mode 100644 index 00000000..b93b43cb --- /dev/null +++ b/doc/theme/material/.icons/material/note-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/note-multiple.svg b/doc/theme/material/.icons/material/note-multiple.svg new file mode 100644 index 00000000..bbb7515c --- /dev/null +++ b/doc/theme/material/.icons/material/note-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/note-outline.svg b/doc/theme/material/.icons/material/note-outline.svg new file mode 100644 index 00000000..bd90f736 --- /dev/null +++ b/doc/theme/material/.icons/material/note-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/note-plus-outline.svg b/doc/theme/material/.icons/material/note-plus-outline.svg new file mode 100644 index 00000000..68b7290f --- /dev/null +++ b/doc/theme/material/.icons/material/note-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/note-plus.svg b/doc/theme/material/.icons/material/note-plus.svg new file mode 100644 index 00000000..971568b1 --- /dev/null +++ b/doc/theme/material/.icons/material/note-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/note-text-outline.svg b/doc/theme/material/.icons/material/note-text-outline.svg new file mode 100644 index 00000000..051e14bc --- /dev/null +++ b/doc/theme/material/.icons/material/note-text-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/note-text.svg b/doc/theme/material/.icons/material/note-text.svg new file mode 100644 index 00000000..8ca5e1e3 --- /dev/null +++ b/doc/theme/material/.icons/material/note-text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/note.svg b/doc/theme/material/.icons/material/note.svg new file mode 100644 index 00000000..d6fc7f2e --- /dev/null +++ b/doc/theme/material/.icons/material/note.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/notebook-multiple.svg b/doc/theme/material/.icons/material/notebook-multiple.svg new file mode 100644 index 00000000..bcaea8c0 --- /dev/null +++ b/doc/theme/material/.icons/material/notebook-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/notebook-outline.svg b/doc/theme/material/.icons/material/notebook-outline.svg new file mode 100644 index 00000000..e99b4dab --- /dev/null +++ b/doc/theme/material/.icons/material/notebook-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/notebook.svg b/doc/theme/material/.icons/material/notebook.svg new file mode 100644 index 00000000..200b8c46 --- /dev/null +++ b/doc/theme/material/.icons/material/notebook.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/notification-clear-all.svg b/doc/theme/material/.icons/material/notification-clear-all.svg new file mode 100644 index 00000000..2e70852a --- /dev/null +++ b/doc/theme/material/.icons/material/notification-clear-all.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/npm.svg b/doc/theme/material/.icons/material/npm.svg new file mode 100644 index 00000000..5c1fde68 --- /dev/null +++ b/doc/theme/material/.icons/material/npm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/nuke.svg b/doc/theme/material/.icons/material/nuke.svg new file mode 100644 index 00000000..1c65c86e --- /dev/null +++ b/doc/theme/material/.icons/material/nuke.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/null.svg b/doc/theme/material/.icons/material/null.svg new file mode 100644 index 00000000..70e00bcf --- /dev/null +++ b/doc/theme/material/.icons/material/null.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-0-box-multiple-outline.svg b/doc/theme/material/.icons/material/numeric-0-box-multiple-outline.svg new file mode 100644 index 00000000..f4a88b89 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-0-box-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-0-box-multiple.svg b/doc/theme/material/.icons/material/numeric-0-box-multiple.svg new file mode 100644 index 00000000..a3a1b523 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-0-box-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-0-box-outline.svg b/doc/theme/material/.icons/material/numeric-0-box-outline.svg new file mode 100644 index 00000000..5ffbd668 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-0-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-0-box.svg b/doc/theme/material/.icons/material/numeric-0-box.svg new file mode 100644 index 00000000..d48e873e --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-0-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-0-circle-outline.svg b/doc/theme/material/.icons/material/numeric-0-circle-outline.svg new file mode 100644 index 00000000..bdbd537d --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-0-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-0-circle.svg b/doc/theme/material/.icons/material/numeric-0-circle.svg new file mode 100644 index 00000000..9c22b102 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-0-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-0.svg b/doc/theme/material/.icons/material/numeric-0.svg new file mode 100644 index 00000000..7b55d392 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-0.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-1-box-multiple-outline.svg b/doc/theme/material/.icons/material/numeric-1-box-multiple-outline.svg new file mode 100644 index 00000000..d96d660d --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-1-box-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-1-box-multiple.svg b/doc/theme/material/.icons/material/numeric-1-box-multiple.svg new file mode 100644 index 00000000..bebc5674 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-1-box-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-1-box-outline.svg b/doc/theme/material/.icons/material/numeric-1-box-outline.svg new file mode 100644 index 00000000..e3a6200c --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-1-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-1-box.svg b/doc/theme/material/.icons/material/numeric-1-box.svg new file mode 100644 index 00000000..191c0411 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-1-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-1-circle-outline.svg b/doc/theme/material/.icons/material/numeric-1-circle-outline.svg new file mode 100644 index 00000000..d343af15 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-1-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-1-circle.svg b/doc/theme/material/.icons/material/numeric-1-circle.svg new file mode 100644 index 00000000..e3bc74e4 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-1-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-1.svg b/doc/theme/material/.icons/material/numeric-1.svg new file mode 100644 index 00000000..20d20322 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-10-box-multiple-outline.svg b/doc/theme/material/.icons/material/numeric-10-box-multiple-outline.svg new file mode 100644 index 00000000..92167af0 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-10-box-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-10-box-multiple.svg b/doc/theme/material/.icons/material/numeric-10-box-multiple.svg new file mode 100644 index 00000000..dc2cc4b0 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-10-box-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-10-box-outline.svg b/doc/theme/material/.icons/material/numeric-10-box-outline.svg new file mode 100644 index 00000000..22914d07 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-10-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-10-box.svg b/doc/theme/material/.icons/material/numeric-10-box.svg new file mode 100644 index 00000000..24f5ddad --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-10-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-10-circle-outline.svg b/doc/theme/material/.icons/material/numeric-10-circle-outline.svg new file mode 100644 index 00000000..f39bd094 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-10-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-10-circle.svg b/doc/theme/material/.icons/material/numeric-10-circle.svg new file mode 100644 index 00000000..88c75709 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-10-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-10.svg b/doc/theme/material/.icons/material/numeric-10.svg new file mode 100644 index 00000000..24e2e022 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-10.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-2-box-multiple-outline.svg b/doc/theme/material/.icons/material/numeric-2-box-multiple-outline.svg new file mode 100644 index 00000000..04d3d8bb --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-2-box-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-2-box-multiple.svg b/doc/theme/material/.icons/material/numeric-2-box-multiple.svg new file mode 100644 index 00000000..9389fa3d --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-2-box-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-2-box-outline.svg b/doc/theme/material/.icons/material/numeric-2-box-outline.svg new file mode 100644 index 00000000..d48cdcdc --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-2-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-2-box.svg b/doc/theme/material/.icons/material/numeric-2-box.svg new file mode 100644 index 00000000..70e1c33a --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-2-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-2-circle-outline.svg b/doc/theme/material/.icons/material/numeric-2-circle-outline.svg new file mode 100644 index 00000000..e5cd5554 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-2-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-2-circle.svg b/doc/theme/material/.icons/material/numeric-2-circle.svg new file mode 100644 index 00000000..4a0d45eb --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-2-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-2.svg b/doc/theme/material/.icons/material/numeric-2.svg new file mode 100644 index 00000000..dc92b8e0 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-3-box-multiple-outline.svg b/doc/theme/material/.icons/material/numeric-3-box-multiple-outline.svg new file mode 100644 index 00000000..54953fa2 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-3-box-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-3-box-multiple.svg b/doc/theme/material/.icons/material/numeric-3-box-multiple.svg new file mode 100644 index 00000000..713bea4f --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-3-box-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-3-box-outline.svg b/doc/theme/material/.icons/material/numeric-3-box-outline.svg new file mode 100644 index 00000000..f9f41117 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-3-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-3-box.svg b/doc/theme/material/.icons/material/numeric-3-box.svg new file mode 100644 index 00000000..744fad29 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-3-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-3-circle-outline.svg b/doc/theme/material/.icons/material/numeric-3-circle-outline.svg new file mode 100644 index 00000000..fc6ffc22 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-3-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-3-circle.svg b/doc/theme/material/.icons/material/numeric-3-circle.svg new file mode 100644 index 00000000..03c7d7eb --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-3-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-3.svg b/doc/theme/material/.icons/material/numeric-3.svg new file mode 100644 index 00000000..570fe272 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-4-box-multiple-outline.svg b/doc/theme/material/.icons/material/numeric-4-box-multiple-outline.svg new file mode 100644 index 00000000..a9fdf14e --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-4-box-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-4-box-multiple.svg b/doc/theme/material/.icons/material/numeric-4-box-multiple.svg new file mode 100644 index 00000000..099bd7cc --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-4-box-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-4-box-outline.svg b/doc/theme/material/.icons/material/numeric-4-box-outline.svg new file mode 100644 index 00000000..8b3eca0e --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-4-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-4-box.svg b/doc/theme/material/.icons/material/numeric-4-box.svg new file mode 100644 index 00000000..12f4784d --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-4-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-4-circle-outline.svg b/doc/theme/material/.icons/material/numeric-4-circle-outline.svg new file mode 100644 index 00000000..62b23f6d --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-4-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-4-circle.svg b/doc/theme/material/.icons/material/numeric-4-circle.svg new file mode 100644 index 00000000..fbf54f78 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-4-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-4.svg b/doc/theme/material/.icons/material/numeric-4.svg new file mode 100644 index 00000000..400f2cad --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-5-box-multiple-outline.svg b/doc/theme/material/.icons/material/numeric-5-box-multiple-outline.svg new file mode 100644 index 00000000..f410acc6 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-5-box-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-5-box-multiple.svg b/doc/theme/material/.icons/material/numeric-5-box-multiple.svg new file mode 100644 index 00000000..a6f5718e --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-5-box-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-5-box-outline.svg b/doc/theme/material/.icons/material/numeric-5-box-outline.svg new file mode 100644 index 00000000..643bf33e --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-5-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-5-box.svg b/doc/theme/material/.icons/material/numeric-5-box.svg new file mode 100644 index 00000000..829b0034 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-5-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-5-circle-outline.svg b/doc/theme/material/.icons/material/numeric-5-circle-outline.svg new file mode 100644 index 00000000..ba478e30 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-5-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-5-circle.svg b/doc/theme/material/.icons/material/numeric-5-circle.svg new file mode 100644 index 00000000..29d08b2f --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-5-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-5.svg b/doc/theme/material/.icons/material/numeric-5.svg new file mode 100644 index 00000000..7fccc996 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-6-box-multiple-outline.svg b/doc/theme/material/.icons/material/numeric-6-box-multiple-outline.svg new file mode 100644 index 00000000..0270a843 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-6-box-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-6-box-multiple.svg b/doc/theme/material/.icons/material/numeric-6-box-multiple.svg new file mode 100644 index 00000000..32ed29d4 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-6-box-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-6-box-outline.svg b/doc/theme/material/.icons/material/numeric-6-box-outline.svg new file mode 100644 index 00000000..59f1a37f --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-6-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-6-box.svg b/doc/theme/material/.icons/material/numeric-6-box.svg new file mode 100644 index 00000000..e6439bad --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-6-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-6-circle-outline.svg b/doc/theme/material/.icons/material/numeric-6-circle-outline.svg new file mode 100644 index 00000000..26e61d72 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-6-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-6-circle.svg b/doc/theme/material/.icons/material/numeric-6-circle.svg new file mode 100644 index 00000000..bad4d988 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-6-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-6.svg b/doc/theme/material/.icons/material/numeric-6.svg new file mode 100644 index 00000000..fe7640ef --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-7-box-multiple-outline.svg b/doc/theme/material/.icons/material/numeric-7-box-multiple-outline.svg new file mode 100644 index 00000000..7f9a3ccf --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-7-box-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-7-box-multiple.svg b/doc/theme/material/.icons/material/numeric-7-box-multiple.svg new file mode 100644 index 00000000..57bafc13 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-7-box-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-7-box-outline.svg b/doc/theme/material/.icons/material/numeric-7-box-outline.svg new file mode 100644 index 00000000..057dca3a --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-7-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-7-box.svg b/doc/theme/material/.icons/material/numeric-7-box.svg new file mode 100644 index 00000000..12e94d71 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-7-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-7-circle-outline.svg b/doc/theme/material/.icons/material/numeric-7-circle-outline.svg new file mode 100644 index 00000000..42ce9193 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-7-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-7-circle.svg b/doc/theme/material/.icons/material/numeric-7-circle.svg new file mode 100644 index 00000000..01801808 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-7-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-7.svg b/doc/theme/material/.icons/material/numeric-7.svg new file mode 100644 index 00000000..0c72b491 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-8-box-multiple-outline.svg b/doc/theme/material/.icons/material/numeric-8-box-multiple-outline.svg new file mode 100644 index 00000000..5fa426fd --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-8-box-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-8-box-multiple.svg b/doc/theme/material/.icons/material/numeric-8-box-multiple.svg new file mode 100644 index 00000000..96178eaa --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-8-box-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-8-box-outline.svg b/doc/theme/material/.icons/material/numeric-8-box-outline.svg new file mode 100644 index 00000000..99c7d113 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-8-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-8-box.svg b/doc/theme/material/.icons/material/numeric-8-box.svg new file mode 100644 index 00000000..0e7d75ff --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-8-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-8-circle-outline.svg b/doc/theme/material/.icons/material/numeric-8-circle-outline.svg new file mode 100644 index 00000000..642aa089 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-8-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-8-circle.svg b/doc/theme/material/.icons/material/numeric-8-circle.svg new file mode 100644 index 00000000..46904a86 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-8-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-8.svg b/doc/theme/material/.icons/material/numeric-8.svg new file mode 100644 index 00000000..caeaab88 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-8.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-9-box-multiple-outline.svg b/doc/theme/material/.icons/material/numeric-9-box-multiple-outline.svg new file mode 100644 index 00000000..ad1a25a9 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-9-box-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-9-box-multiple.svg b/doc/theme/material/.icons/material/numeric-9-box-multiple.svg new file mode 100644 index 00000000..e09b21db --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-9-box-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-9-box-outline.svg b/doc/theme/material/.icons/material/numeric-9-box-outline.svg new file mode 100644 index 00000000..432421aa --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-9-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-9-box.svg b/doc/theme/material/.icons/material/numeric-9-box.svg new file mode 100644 index 00000000..762bc685 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-9-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-9-circle-outline.svg b/doc/theme/material/.icons/material/numeric-9-circle-outline.svg new file mode 100644 index 00000000..d9e10847 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-9-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-9-circle.svg b/doc/theme/material/.icons/material/numeric-9-circle.svg new file mode 100644 index 00000000..0a0945f9 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-9-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-9-plus-box-multiple-outline.svg b/doc/theme/material/.icons/material/numeric-9-plus-box-multiple-outline.svg new file mode 100644 index 00000000..7d8424c1 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-9-plus-box-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-9-plus-box-multiple.svg b/doc/theme/material/.icons/material/numeric-9-plus-box-multiple.svg new file mode 100644 index 00000000..c6d56f15 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-9-plus-box-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-9-plus-box-outline.svg b/doc/theme/material/.icons/material/numeric-9-plus-box-outline.svg new file mode 100644 index 00000000..53956318 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-9-plus-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-9-plus-box.svg b/doc/theme/material/.icons/material/numeric-9-plus-box.svg new file mode 100644 index 00000000..a11750e9 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-9-plus-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-9-plus-circle-outline.svg b/doc/theme/material/.icons/material/numeric-9-plus-circle-outline.svg new file mode 100644 index 00000000..5c08a083 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-9-plus-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-9-plus-circle.svg b/doc/theme/material/.icons/material/numeric-9-plus-circle.svg new file mode 100644 index 00000000..34e63783 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-9-plus-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-9-plus.svg b/doc/theme/material/.icons/material/numeric-9-plus.svg new file mode 100644 index 00000000..4e535018 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-9-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-9.svg b/doc/theme/material/.icons/material/numeric-9.svg new file mode 100644 index 00000000..55c3690b --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-9.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric-negative-1.svg b/doc/theme/material/.icons/material/numeric-negative-1.svg new file mode 100644 index 00000000..3f8bd048 --- /dev/null +++ b/doc/theme/material/.icons/material/numeric-negative-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/numeric.svg b/doc/theme/material/.icons/material/numeric.svg new file mode 100644 index 00000000..dfcf60db --- /dev/null +++ b/doc/theme/material/.icons/material/numeric.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/nut.svg b/doc/theme/material/.icons/material/nut.svg new file mode 100644 index 00000000..1b6f383b --- /dev/null +++ b/doc/theme/material/.icons/material/nut.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/nutrition.svg b/doc/theme/material/.icons/material/nutrition.svg new file mode 100644 index 00000000..c3e8bd3d --- /dev/null +++ b/doc/theme/material/.icons/material/nutrition.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/nuxt.svg b/doc/theme/material/.icons/material/nuxt.svg new file mode 100644 index 00000000..9c0c5591 --- /dev/null +++ b/doc/theme/material/.icons/material/nuxt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/oar.svg b/doc/theme/material/.icons/material/oar.svg new file mode 100644 index 00000000..ada5b665 --- /dev/null +++ b/doc/theme/material/.icons/material/oar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ocarina.svg b/doc/theme/material/.icons/material/ocarina.svg new file mode 100644 index 00000000..4aaa8aed --- /dev/null +++ b/doc/theme/material/.icons/material/ocarina.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/oci.svg b/doc/theme/material/.icons/material/oci.svg new file mode 100644 index 00000000..c443650e --- /dev/null +++ b/doc/theme/material/.icons/material/oci.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ocr.svg b/doc/theme/material/.icons/material/ocr.svg new file mode 100644 index 00000000..8b1b3225 --- /dev/null +++ b/doc/theme/material/.icons/material/ocr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/octagon-outline.svg b/doc/theme/material/.icons/material/octagon-outline.svg new file mode 100644 index 00000000..1f36844a --- /dev/null +++ b/doc/theme/material/.icons/material/octagon-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/octagon.svg b/doc/theme/material/.icons/material/octagon.svg new file mode 100644 index 00000000..68937d44 --- /dev/null +++ b/doc/theme/material/.icons/material/octagon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/octagram-outline.svg b/doc/theme/material/.icons/material/octagram-outline.svg new file mode 100644 index 00000000..6f2afb26 --- /dev/null +++ b/doc/theme/material/.icons/material/octagram-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/octagram.svg b/doc/theme/material/.icons/material/octagram.svg new file mode 100644 index 00000000..e542d0c6 --- /dev/null +++ b/doc/theme/material/.icons/material/octagram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/odnoklassniki.svg b/doc/theme/material/.icons/material/odnoklassniki.svg new file mode 100644 index 00000000..5ea65db8 --- /dev/null +++ b/doc/theme/material/.icons/material/odnoklassniki.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/offer.svg b/doc/theme/material/.icons/material/offer.svg new file mode 100644 index 00000000..b3f51052 --- /dev/null +++ b/doc/theme/material/.icons/material/offer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/office-building.svg b/doc/theme/material/.icons/material/office-building.svg new file mode 100644 index 00000000..79ccac0b --- /dev/null +++ b/doc/theme/material/.icons/material/office-building.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/oil-lamp.svg b/doc/theme/material/.icons/material/oil-lamp.svg new file mode 100644 index 00000000..0c15cfd2 --- /dev/null +++ b/doc/theme/material/.icons/material/oil-lamp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/oil-level.svg b/doc/theme/material/.icons/material/oil-level.svg new file mode 100644 index 00000000..1614b481 --- /dev/null +++ b/doc/theme/material/.icons/material/oil-level.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/oil-temperature.svg b/doc/theme/material/.icons/material/oil-temperature.svg new file mode 100644 index 00000000..f9d05eb4 --- /dev/null +++ b/doc/theme/material/.icons/material/oil-temperature.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/oil.svg b/doc/theme/material/.icons/material/oil.svg new file mode 100644 index 00000000..b480c843 --- /dev/null +++ b/doc/theme/material/.icons/material/oil.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/omega.svg b/doc/theme/material/.icons/material/omega.svg new file mode 100644 index 00000000..ce43305e --- /dev/null +++ b/doc/theme/material/.icons/material/omega.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/one-up.svg b/doc/theme/material/.icons/material/one-up.svg new file mode 100644 index 00000000..ac5ff36b --- /dev/null +++ b/doc/theme/material/.icons/material/one-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/onepassword.svg b/doc/theme/material/.icons/material/onepassword.svg new file mode 100644 index 00000000..75d7ecef --- /dev/null +++ b/doc/theme/material/.icons/material/onepassword.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/opacity.svg b/doc/theme/material/.icons/material/opacity.svg new file mode 100644 index 00000000..bb090229 --- /dev/null +++ b/doc/theme/material/.icons/material/opacity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/open-in-app.svg b/doc/theme/material/.icons/material/open-in-app.svg new file mode 100644 index 00000000..dc88b5c2 --- /dev/null +++ b/doc/theme/material/.icons/material/open-in-app.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/open-in-new.svg b/doc/theme/material/.icons/material/open-in-new.svg new file mode 100644 index 00000000..d836cd74 --- /dev/null +++ b/doc/theme/material/.icons/material/open-in-new.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/open-source-initiative.svg b/doc/theme/material/.icons/material/open-source-initiative.svg new file mode 100644 index 00000000..cf4195f9 --- /dev/null +++ b/doc/theme/material/.icons/material/open-source-initiative.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/openid.svg b/doc/theme/material/.icons/material/openid.svg new file mode 100644 index 00000000..6a13743d --- /dev/null +++ b/doc/theme/material/.icons/material/openid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/opera.svg b/doc/theme/material/.icons/material/opera.svg new file mode 100644 index 00000000..6a3c8cf5 --- /dev/null +++ b/doc/theme/material/.icons/material/opera.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/orbit.svg b/doc/theme/material/.icons/material/orbit.svg new file mode 100644 index 00000000..b16b3b79 --- /dev/null +++ b/doc/theme/material/.icons/material/orbit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/order-alphabetical-ascending.svg b/doc/theme/material/.icons/material/order-alphabetical-ascending.svg new file mode 100644 index 00000000..58e86585 --- /dev/null +++ b/doc/theme/material/.icons/material/order-alphabetical-ascending.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/order-alphabetical-descending.svg b/doc/theme/material/.icons/material/order-alphabetical-descending.svg new file mode 100644 index 00000000..c089e7e9 --- /dev/null +++ b/doc/theme/material/.icons/material/order-alphabetical-descending.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/order-bool-ascending-variant.svg b/doc/theme/material/.icons/material/order-bool-ascending-variant.svg new file mode 100644 index 00000000..47e1692b --- /dev/null +++ b/doc/theme/material/.icons/material/order-bool-ascending-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/order-bool-ascending.svg b/doc/theme/material/.icons/material/order-bool-ascending.svg new file mode 100644 index 00000000..0b795a86 --- /dev/null +++ b/doc/theme/material/.icons/material/order-bool-ascending.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/order-bool-descending-variant.svg b/doc/theme/material/.icons/material/order-bool-descending-variant.svg new file mode 100644 index 00000000..05d8efae --- /dev/null +++ b/doc/theme/material/.icons/material/order-bool-descending-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/order-bool-descending.svg b/doc/theme/material/.icons/material/order-bool-descending.svg new file mode 100644 index 00000000..93f88441 --- /dev/null +++ b/doc/theme/material/.icons/material/order-bool-descending.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/order-numeric-ascending.svg b/doc/theme/material/.icons/material/order-numeric-ascending.svg new file mode 100644 index 00000000..03d92386 --- /dev/null +++ b/doc/theme/material/.icons/material/order-numeric-ascending.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/order-numeric-descending.svg b/doc/theme/material/.icons/material/order-numeric-descending.svg new file mode 100644 index 00000000..b0aeac5c --- /dev/null +++ b/doc/theme/material/.icons/material/order-numeric-descending.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/origin.svg b/doc/theme/material/.icons/material/origin.svg new file mode 100644 index 00000000..42b9b13d --- /dev/null +++ b/doc/theme/material/.icons/material/origin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ornament-variant.svg b/doc/theme/material/.icons/material/ornament-variant.svg new file mode 100644 index 00000000..817ab3c5 --- /dev/null +++ b/doc/theme/material/.icons/material/ornament-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ornament.svg b/doc/theme/material/.icons/material/ornament.svg new file mode 100644 index 00000000..237e8c0d --- /dev/null +++ b/doc/theme/material/.icons/material/ornament.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/outdoor-lamp.svg b/doc/theme/material/.icons/material/outdoor-lamp.svg new file mode 100644 index 00000000..780f878b --- /dev/null +++ b/doc/theme/material/.icons/material/outdoor-lamp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/overscan.svg b/doc/theme/material/.icons/material/overscan.svg new file mode 100644 index 00000000..ee03e889 --- /dev/null +++ b/doc/theme/material/.icons/material/overscan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/owl.svg b/doc/theme/material/.icons/material/owl.svg new file mode 100644 index 00000000..baf0d48b --- /dev/null +++ b/doc/theme/material/.icons/material/owl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pac-man.svg b/doc/theme/material/.icons/material/pac-man.svg new file mode 100644 index 00000000..c7cf1bf1 --- /dev/null +++ b/doc/theme/material/.icons/material/pac-man.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/package-down.svg b/doc/theme/material/.icons/material/package-down.svg new file mode 100644 index 00000000..61bbe9dd --- /dev/null +++ b/doc/theme/material/.icons/material/package-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/package-up.svg b/doc/theme/material/.icons/material/package-up.svg new file mode 100644 index 00000000..1b2e9836 --- /dev/null +++ b/doc/theme/material/.icons/material/package-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/package-variant-closed.svg b/doc/theme/material/.icons/material/package-variant-closed.svg new file mode 100644 index 00000000..56e1b4bd --- /dev/null +++ b/doc/theme/material/.icons/material/package-variant-closed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/package-variant.svg b/doc/theme/material/.icons/material/package-variant.svg new file mode 100644 index 00000000..fea23ab8 --- /dev/null +++ b/doc/theme/material/.icons/material/package-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/package.svg b/doc/theme/material/.icons/material/package.svg new file mode 100644 index 00000000..1c222d08 --- /dev/null +++ b/doc/theme/material/.icons/material/package.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/page-first.svg b/doc/theme/material/.icons/material/page-first.svg new file mode 100644 index 00000000..d5f57590 --- /dev/null +++ b/doc/theme/material/.icons/material/page-first.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/page-last.svg b/doc/theme/material/.icons/material/page-last.svg new file mode 100644 index 00000000..647406a2 --- /dev/null +++ b/doc/theme/material/.icons/material/page-last.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/page-layout-body.svg b/doc/theme/material/.icons/material/page-layout-body.svg new file mode 100644 index 00000000..7d9a5687 --- /dev/null +++ b/doc/theme/material/.icons/material/page-layout-body.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/page-layout-footer.svg b/doc/theme/material/.icons/material/page-layout-footer.svg new file mode 100644 index 00000000..5f4df305 --- /dev/null +++ b/doc/theme/material/.icons/material/page-layout-footer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/page-layout-header-footer.svg b/doc/theme/material/.icons/material/page-layout-header-footer.svg new file mode 100644 index 00000000..0f3eba05 --- /dev/null +++ b/doc/theme/material/.icons/material/page-layout-header-footer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/page-layout-header.svg b/doc/theme/material/.icons/material/page-layout-header.svg new file mode 100644 index 00000000..58e774fc --- /dev/null +++ b/doc/theme/material/.icons/material/page-layout-header.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/page-layout-sidebar-left.svg b/doc/theme/material/.icons/material/page-layout-sidebar-left.svg new file mode 100644 index 00000000..520c80d2 --- /dev/null +++ b/doc/theme/material/.icons/material/page-layout-sidebar-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/page-layout-sidebar-right.svg b/doc/theme/material/.icons/material/page-layout-sidebar-right.svg new file mode 100644 index 00000000..a3fb752f --- /dev/null +++ b/doc/theme/material/.icons/material/page-layout-sidebar-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/page-next-outline.svg b/doc/theme/material/.icons/material/page-next-outline.svg new file mode 100644 index 00000000..7ff002f5 --- /dev/null +++ b/doc/theme/material/.icons/material/page-next-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/page-next.svg b/doc/theme/material/.icons/material/page-next.svg new file mode 100644 index 00000000..0bd0bf1e --- /dev/null +++ b/doc/theme/material/.icons/material/page-next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/page-previous-outline.svg b/doc/theme/material/.icons/material/page-previous-outline.svg new file mode 100644 index 00000000..eeb787ca --- /dev/null +++ b/doc/theme/material/.icons/material/page-previous-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/page-previous.svg b/doc/theme/material/.icons/material/page-previous.svg new file mode 100644 index 00000000..bbfe9a1e --- /dev/null +++ b/doc/theme/material/.icons/material/page-previous.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pail.svg b/doc/theme/material/.icons/material/pail.svg new file mode 100644 index 00000000..a3b0274a --- /dev/null +++ b/doc/theme/material/.icons/material/pail.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/palette-advanced.svg b/doc/theme/material/.icons/material/palette-advanced.svg new file mode 100644 index 00000000..e7203db2 --- /dev/null +++ b/doc/theme/material/.icons/material/palette-advanced.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/palette-outline.svg b/doc/theme/material/.icons/material/palette-outline.svg new file mode 100644 index 00000000..e451194e --- /dev/null +++ b/doc/theme/material/.icons/material/palette-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/palette-swatch-outline.svg b/doc/theme/material/.icons/material/palette-swatch-outline.svg new file mode 100644 index 00000000..0659baeb --- /dev/null +++ b/doc/theme/material/.icons/material/palette-swatch-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/palette-swatch.svg b/doc/theme/material/.icons/material/palette-swatch.svg new file mode 100644 index 00000000..89b3cd77 --- /dev/null +++ b/doc/theme/material/.icons/material/palette-swatch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/palette.svg b/doc/theme/material/.icons/material/palette.svg new file mode 100644 index 00000000..d6890469 --- /dev/null +++ b/doc/theme/material/.icons/material/palette.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/palm-tree.svg b/doc/theme/material/.icons/material/palm-tree.svg new file mode 100644 index 00000000..03ef87be --- /dev/null +++ b/doc/theme/material/.icons/material/palm-tree.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pan-bottom-left.svg b/doc/theme/material/.icons/material/pan-bottom-left.svg new file mode 100644 index 00000000..dbc6047c --- /dev/null +++ b/doc/theme/material/.icons/material/pan-bottom-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pan-bottom-right.svg b/doc/theme/material/.icons/material/pan-bottom-right.svg new file mode 100644 index 00000000..11aa2733 --- /dev/null +++ b/doc/theme/material/.icons/material/pan-bottom-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pan-down.svg b/doc/theme/material/.icons/material/pan-down.svg new file mode 100644 index 00000000..024d4917 --- /dev/null +++ b/doc/theme/material/.icons/material/pan-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pan-horizontal.svg b/doc/theme/material/.icons/material/pan-horizontal.svg new file mode 100644 index 00000000..3469c388 --- /dev/null +++ b/doc/theme/material/.icons/material/pan-horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pan-left.svg b/doc/theme/material/.icons/material/pan-left.svg new file mode 100644 index 00000000..fc84f02a --- /dev/null +++ b/doc/theme/material/.icons/material/pan-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pan-right.svg b/doc/theme/material/.icons/material/pan-right.svg new file mode 100644 index 00000000..7c1f2538 --- /dev/null +++ b/doc/theme/material/.icons/material/pan-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pan-top-left.svg b/doc/theme/material/.icons/material/pan-top-left.svg new file mode 100644 index 00000000..a0b0fc9e --- /dev/null +++ b/doc/theme/material/.icons/material/pan-top-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pan-top-right.svg b/doc/theme/material/.icons/material/pan-top-right.svg new file mode 100644 index 00000000..6c9f28f7 --- /dev/null +++ b/doc/theme/material/.icons/material/pan-top-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pan-up.svg b/doc/theme/material/.icons/material/pan-up.svg new file mode 100644 index 00000000..eed4674a --- /dev/null +++ b/doc/theme/material/.icons/material/pan-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pan-vertical.svg b/doc/theme/material/.icons/material/pan-vertical.svg new file mode 100644 index 00000000..75214741 --- /dev/null +++ b/doc/theme/material/.icons/material/pan-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pan.svg b/doc/theme/material/.icons/material/pan.svg new file mode 100644 index 00000000..198153d1 --- /dev/null +++ b/doc/theme/material/.icons/material/pan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/panda.svg b/doc/theme/material/.icons/material/panda.svg new file mode 100644 index 00000000..b74899b9 --- /dev/null +++ b/doc/theme/material/.icons/material/panda.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pandora.svg b/doc/theme/material/.icons/material/pandora.svg new file mode 100644 index 00000000..8fd64b4a --- /dev/null +++ b/doc/theme/material/.icons/material/pandora.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/panorama-fisheye.svg b/doc/theme/material/.icons/material/panorama-fisheye.svg new file mode 100644 index 00000000..9ff3ff2e --- /dev/null +++ b/doc/theme/material/.icons/material/panorama-fisheye.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/panorama-horizontal.svg b/doc/theme/material/.icons/material/panorama-horizontal.svg new file mode 100644 index 00000000..00b175ca --- /dev/null +++ b/doc/theme/material/.icons/material/panorama-horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/panorama-vertical.svg b/doc/theme/material/.icons/material/panorama-vertical.svg new file mode 100644 index 00000000..4de58f17 --- /dev/null +++ b/doc/theme/material/.icons/material/panorama-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/panorama-wide-angle.svg b/doc/theme/material/.icons/material/panorama-wide-angle.svg new file mode 100644 index 00000000..085f5427 --- /dev/null +++ b/doc/theme/material/.icons/material/panorama-wide-angle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/panorama.svg b/doc/theme/material/.icons/material/panorama.svg new file mode 100644 index 00000000..cc6a9e07 --- /dev/null +++ b/doc/theme/material/.icons/material/panorama.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/paper-cut-vertical.svg b/doc/theme/material/.icons/material/paper-cut-vertical.svg new file mode 100644 index 00000000..f3d9a414 --- /dev/null +++ b/doc/theme/material/.icons/material/paper-cut-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/paper-roll-outline.svg b/doc/theme/material/.icons/material/paper-roll-outline.svg new file mode 100644 index 00000000..90226fb9 --- /dev/null +++ b/doc/theme/material/.icons/material/paper-roll-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/paper-roll.svg b/doc/theme/material/.icons/material/paper-roll.svg new file mode 100644 index 00000000..20553fb2 --- /dev/null +++ b/doc/theme/material/.icons/material/paper-roll.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/paperclip.svg b/doc/theme/material/.icons/material/paperclip.svg new file mode 100644 index 00000000..3502a8fa --- /dev/null +++ b/doc/theme/material/.icons/material/paperclip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/parachute-outline.svg b/doc/theme/material/.icons/material/parachute-outline.svg new file mode 100644 index 00000000..ba7cf65c --- /dev/null +++ b/doc/theme/material/.icons/material/parachute-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/parachute.svg b/doc/theme/material/.icons/material/parachute.svg new file mode 100644 index 00000000..e748d1ef --- /dev/null +++ b/doc/theme/material/.icons/material/parachute.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/parking.svg b/doc/theme/material/.icons/material/parking.svg new file mode 100644 index 00000000..109afa0c --- /dev/null +++ b/doc/theme/material/.icons/material/parking.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/party-popper.svg b/doc/theme/material/.icons/material/party-popper.svg new file mode 100644 index 00000000..0f9ba76f --- /dev/null +++ b/doc/theme/material/.icons/material/party-popper.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/passport-biometric.svg b/doc/theme/material/.icons/material/passport-biometric.svg new file mode 100644 index 00000000..72d01161 --- /dev/null +++ b/doc/theme/material/.icons/material/passport-biometric.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/passport.svg b/doc/theme/material/.icons/material/passport.svg new file mode 100644 index 00000000..3b4e8326 --- /dev/null +++ b/doc/theme/material/.icons/material/passport.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pasta.svg b/doc/theme/material/.icons/material/pasta.svg new file mode 100644 index 00000000..fdac0b3b --- /dev/null +++ b/doc/theme/material/.icons/material/pasta.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/patio-heater.svg b/doc/theme/material/.icons/material/patio-heater.svg new file mode 100644 index 00000000..91e914e3 --- /dev/null +++ b/doc/theme/material/.icons/material/patio-heater.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/patreon.svg b/doc/theme/material/.icons/material/patreon.svg new file mode 100644 index 00000000..fd13227f --- /dev/null +++ b/doc/theme/material/.icons/material/patreon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pause-circle-outline.svg b/doc/theme/material/.icons/material/pause-circle-outline.svg new file mode 100644 index 00000000..4b8fc535 --- /dev/null +++ b/doc/theme/material/.icons/material/pause-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pause-circle.svg b/doc/theme/material/.icons/material/pause-circle.svg new file mode 100644 index 00000000..a9279054 --- /dev/null +++ b/doc/theme/material/.icons/material/pause-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pause-octagon-outline.svg b/doc/theme/material/.icons/material/pause-octagon-outline.svg new file mode 100644 index 00000000..1396ed2c --- /dev/null +++ b/doc/theme/material/.icons/material/pause-octagon-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pause-octagon.svg b/doc/theme/material/.icons/material/pause-octagon.svg new file mode 100644 index 00000000..f31ab54d --- /dev/null +++ b/doc/theme/material/.icons/material/pause-octagon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pause.svg b/doc/theme/material/.icons/material/pause.svg new file mode 100644 index 00000000..c742a30e --- /dev/null +++ b/doc/theme/material/.icons/material/pause.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/paw-off.svg b/doc/theme/material/.icons/material/paw-off.svg new file mode 100644 index 00000000..ee774c30 --- /dev/null +++ b/doc/theme/material/.icons/material/paw-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/paw.svg b/doc/theme/material/.icons/material/paw.svg new file mode 100644 index 00000000..77c15324 --- /dev/null +++ b/doc/theme/material/.icons/material/paw.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pdf-box.svg b/doc/theme/material/.icons/material/pdf-box.svg new file mode 100644 index 00000000..0202f162 --- /dev/null +++ b/doc/theme/material/.icons/material/pdf-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/peace.svg b/doc/theme/material/.icons/material/peace.svg new file mode 100644 index 00000000..8de7bf9a --- /dev/null +++ b/doc/theme/material/.icons/material/peace.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/peanut-off-outline.svg b/doc/theme/material/.icons/material/peanut-off-outline.svg new file mode 100644 index 00000000..e1216277 --- /dev/null +++ b/doc/theme/material/.icons/material/peanut-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/peanut-off.svg b/doc/theme/material/.icons/material/peanut-off.svg new file mode 100644 index 00000000..8e25ce69 --- /dev/null +++ b/doc/theme/material/.icons/material/peanut-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/peanut-outline.svg b/doc/theme/material/.icons/material/peanut-outline.svg new file mode 100644 index 00000000..537ea0d0 --- /dev/null +++ b/doc/theme/material/.icons/material/peanut-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/peanut.svg b/doc/theme/material/.icons/material/peanut.svg new file mode 100644 index 00000000..144397f3 --- /dev/null +++ b/doc/theme/material/.icons/material/peanut.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pen-lock.svg b/doc/theme/material/.icons/material/pen-lock.svg new file mode 100644 index 00000000..7a4b26f0 --- /dev/null +++ b/doc/theme/material/.icons/material/pen-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pen-minus.svg b/doc/theme/material/.icons/material/pen-minus.svg new file mode 100644 index 00000000..0bc1c1f6 --- /dev/null +++ b/doc/theme/material/.icons/material/pen-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pen-off.svg b/doc/theme/material/.icons/material/pen-off.svg new file mode 100644 index 00000000..d15be520 --- /dev/null +++ b/doc/theme/material/.icons/material/pen-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pen-plus.svg b/doc/theme/material/.icons/material/pen-plus.svg new file mode 100644 index 00000000..6e04c056 --- /dev/null +++ b/doc/theme/material/.icons/material/pen-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pen-remove.svg b/doc/theme/material/.icons/material/pen-remove.svg new file mode 100644 index 00000000..142f83b8 --- /dev/null +++ b/doc/theme/material/.icons/material/pen-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pen.svg b/doc/theme/material/.icons/material/pen.svg new file mode 100644 index 00000000..3e216ac4 --- /dev/null +++ b/doc/theme/material/.icons/material/pen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pencil-box-multiple-outline.svg b/doc/theme/material/.icons/material/pencil-box-multiple-outline.svg new file mode 100644 index 00000000..c1a6eb45 --- /dev/null +++ b/doc/theme/material/.icons/material/pencil-box-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pencil-box-multiple.svg b/doc/theme/material/.icons/material/pencil-box-multiple.svg new file mode 100644 index 00000000..1a43db45 --- /dev/null +++ b/doc/theme/material/.icons/material/pencil-box-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pencil-box-outline.svg b/doc/theme/material/.icons/material/pencil-box-outline.svg new file mode 100644 index 00000000..fcfd5db7 --- /dev/null +++ b/doc/theme/material/.icons/material/pencil-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pencil-box.svg b/doc/theme/material/.icons/material/pencil-box.svg new file mode 100644 index 00000000..6ef09793 --- /dev/null +++ b/doc/theme/material/.icons/material/pencil-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pencil-circle-outline.svg b/doc/theme/material/.icons/material/pencil-circle-outline.svg new file mode 100644 index 00000000..05f05127 --- /dev/null +++ b/doc/theme/material/.icons/material/pencil-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pencil-circle.svg b/doc/theme/material/.icons/material/pencil-circle.svg new file mode 100644 index 00000000..eef1cc19 --- /dev/null +++ b/doc/theme/material/.icons/material/pencil-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pencil-lock-outline.svg b/doc/theme/material/.icons/material/pencil-lock-outline.svg new file mode 100644 index 00000000..881b1aca --- /dev/null +++ b/doc/theme/material/.icons/material/pencil-lock-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pencil-lock.svg b/doc/theme/material/.icons/material/pencil-lock.svg new file mode 100644 index 00000000..a92eb50a --- /dev/null +++ b/doc/theme/material/.icons/material/pencil-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pencil-minus-outline.svg b/doc/theme/material/.icons/material/pencil-minus-outline.svg new file mode 100644 index 00000000..27647f53 --- /dev/null +++ b/doc/theme/material/.icons/material/pencil-minus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pencil-minus.svg b/doc/theme/material/.icons/material/pencil-minus.svg new file mode 100644 index 00000000..9ba0681f --- /dev/null +++ b/doc/theme/material/.icons/material/pencil-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pencil-off-outline.svg b/doc/theme/material/.icons/material/pencil-off-outline.svg new file mode 100644 index 00000000..e6558b44 --- /dev/null +++ b/doc/theme/material/.icons/material/pencil-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pencil-off.svg b/doc/theme/material/.icons/material/pencil-off.svg new file mode 100644 index 00000000..f25c0f62 --- /dev/null +++ b/doc/theme/material/.icons/material/pencil-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pencil-outline.svg b/doc/theme/material/.icons/material/pencil-outline.svg new file mode 100644 index 00000000..5a31785c --- /dev/null +++ b/doc/theme/material/.icons/material/pencil-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pencil-plus-outline.svg b/doc/theme/material/.icons/material/pencil-plus-outline.svg new file mode 100644 index 00000000..2f5ef5a7 --- /dev/null +++ b/doc/theme/material/.icons/material/pencil-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pencil-plus.svg b/doc/theme/material/.icons/material/pencil-plus.svg new file mode 100644 index 00000000..03373bd7 --- /dev/null +++ b/doc/theme/material/.icons/material/pencil-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pencil-remove-outline.svg b/doc/theme/material/.icons/material/pencil-remove-outline.svg new file mode 100644 index 00000000..003b906e --- /dev/null +++ b/doc/theme/material/.icons/material/pencil-remove-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pencil-remove.svg b/doc/theme/material/.icons/material/pencil-remove.svg new file mode 100644 index 00000000..345d2581 --- /dev/null +++ b/doc/theme/material/.icons/material/pencil-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pencil-ruler.svg b/doc/theme/material/.icons/material/pencil-ruler.svg new file mode 100644 index 00000000..44b9b3a3 --- /dev/null +++ b/doc/theme/material/.icons/material/pencil-ruler.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pencil.svg b/doc/theme/material/.icons/material/pencil.svg new file mode 100644 index 00000000..50d1ace3 --- /dev/null +++ b/doc/theme/material/.icons/material/pencil.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/penguin.svg b/doc/theme/material/.icons/material/penguin.svg new file mode 100644 index 00000000..15ba7009 --- /dev/null +++ b/doc/theme/material/.icons/material/penguin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pentagon-outline.svg b/doc/theme/material/.icons/material/pentagon-outline.svg new file mode 100644 index 00000000..c2568185 --- /dev/null +++ b/doc/theme/material/.icons/material/pentagon-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pentagon.svg b/doc/theme/material/.icons/material/pentagon.svg new file mode 100644 index 00000000..5d8de0bf --- /dev/null +++ b/doc/theme/material/.icons/material/pentagon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/percent-outline.svg b/doc/theme/material/.icons/material/percent-outline.svg new file mode 100644 index 00000000..c8a65959 --- /dev/null +++ b/doc/theme/material/.icons/material/percent-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/percent.svg b/doc/theme/material/.icons/material/percent.svg new file mode 100644 index 00000000..1961bf33 --- /dev/null +++ b/doc/theme/material/.icons/material/percent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/periodic-table.svg b/doc/theme/material/.icons/material/periodic-table.svg new file mode 100644 index 00000000..f6f2300a --- /dev/null +++ b/doc/theme/material/.icons/material/periodic-table.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/perspective-less.svg b/doc/theme/material/.icons/material/perspective-less.svg new file mode 100644 index 00000000..f287075c --- /dev/null +++ b/doc/theme/material/.icons/material/perspective-less.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/perspective-more.svg b/doc/theme/material/.icons/material/perspective-more.svg new file mode 100644 index 00000000..0277a34b --- /dev/null +++ b/doc/theme/material/.icons/material/perspective-more.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pharmacy.svg b/doc/theme/material/.icons/material/pharmacy.svg new file mode 100644 index 00000000..5a818a98 --- /dev/null +++ b/doc/theme/material/.icons/material/pharmacy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-alert-outline.svg b/doc/theme/material/.icons/material/phone-alert-outline.svg new file mode 100644 index 00000000..39b69fff --- /dev/null +++ b/doc/theme/material/.icons/material/phone-alert-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-alert.svg b/doc/theme/material/.icons/material/phone-alert.svg new file mode 100644 index 00000000..12ef90d0 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-bluetooth-outline.svg b/doc/theme/material/.icons/material/phone-bluetooth-outline.svg new file mode 100644 index 00000000..3fb070ba --- /dev/null +++ b/doc/theme/material/.icons/material/phone-bluetooth-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-bluetooth.svg b/doc/theme/material/.icons/material/phone-bluetooth.svg new file mode 100644 index 00000000..00041775 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-bluetooth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-cancel-outline.svg b/doc/theme/material/.icons/material/phone-cancel-outline.svg new file mode 100644 index 00000000..a9b4b60b --- /dev/null +++ b/doc/theme/material/.icons/material/phone-cancel-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-cancel.svg b/doc/theme/material/.icons/material/phone-cancel.svg new file mode 100644 index 00000000..3948e7b4 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-cancel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-check-outline.svg b/doc/theme/material/.icons/material/phone-check-outline.svg new file mode 100644 index 00000000..fa7e3240 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-check-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-check.svg b/doc/theme/material/.icons/material/phone-check.svg new file mode 100644 index 00000000..f0a34cde --- /dev/null +++ b/doc/theme/material/.icons/material/phone-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-classic-off.svg b/doc/theme/material/.icons/material/phone-classic-off.svg new file mode 100644 index 00000000..59007096 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-classic-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-classic.svg b/doc/theme/material/.icons/material/phone-classic.svg new file mode 100644 index 00000000..1150dda4 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-classic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-forward-outline.svg b/doc/theme/material/.icons/material/phone-forward-outline.svg new file mode 100644 index 00000000..e72c12ca --- /dev/null +++ b/doc/theme/material/.icons/material/phone-forward-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-forward.svg b/doc/theme/material/.icons/material/phone-forward.svg new file mode 100644 index 00000000..c4cb46e2 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-forward.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-hangup-outline.svg b/doc/theme/material/.icons/material/phone-hangup-outline.svg new file mode 100644 index 00000000..1b3ac46b --- /dev/null +++ b/doc/theme/material/.icons/material/phone-hangup-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-hangup.svg b/doc/theme/material/.icons/material/phone-hangup.svg new file mode 100644 index 00000000..ea74bff4 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-hangup.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-in-talk-outline.svg b/doc/theme/material/.icons/material/phone-in-talk-outline.svg new file mode 100644 index 00000000..29e81464 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-in-talk-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-in-talk.svg b/doc/theme/material/.icons/material/phone-in-talk.svg new file mode 100644 index 00000000..210a3c90 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-in-talk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-incoming-outline.svg b/doc/theme/material/.icons/material/phone-incoming-outline.svg new file mode 100644 index 00000000..19621ef4 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-incoming-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-incoming.svg b/doc/theme/material/.icons/material/phone-incoming.svg new file mode 100644 index 00000000..eaab0f2a --- /dev/null +++ b/doc/theme/material/.icons/material/phone-incoming.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-lock-outline.svg b/doc/theme/material/.icons/material/phone-lock-outline.svg new file mode 100644 index 00000000..5d7fe599 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-lock-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-lock.svg b/doc/theme/material/.icons/material/phone-lock.svg new file mode 100644 index 00000000..dc011b38 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-log-outline.svg b/doc/theme/material/.icons/material/phone-log-outline.svg new file mode 100644 index 00000000..bcd340b6 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-log-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-log.svg b/doc/theme/material/.icons/material/phone-log.svg new file mode 100644 index 00000000..7a452247 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-log.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-message-outline.svg b/doc/theme/material/.icons/material/phone-message-outline.svg new file mode 100644 index 00000000..ef5a7819 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-message-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-message.svg b/doc/theme/material/.icons/material/phone-message.svg new file mode 100644 index 00000000..b8bab8c6 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-message.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-minus-outline.svg b/doc/theme/material/.icons/material/phone-minus-outline.svg new file mode 100644 index 00000000..e5a59a0e --- /dev/null +++ b/doc/theme/material/.icons/material/phone-minus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-minus.svg b/doc/theme/material/.icons/material/phone-minus.svg new file mode 100644 index 00000000..2315c259 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-missed-outline.svg b/doc/theme/material/.icons/material/phone-missed-outline.svg new file mode 100644 index 00000000..a11fcf52 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-missed-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-missed.svg b/doc/theme/material/.icons/material/phone-missed.svg new file mode 100644 index 00000000..49b74679 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-missed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-off-outline.svg b/doc/theme/material/.icons/material/phone-off-outline.svg new file mode 100644 index 00000000..eec9b9c9 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-off.svg b/doc/theme/material/.icons/material/phone-off.svg new file mode 100644 index 00000000..080ed360 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-outgoing-outline.svg b/doc/theme/material/.icons/material/phone-outgoing-outline.svg new file mode 100644 index 00000000..feadefd8 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-outgoing-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-outgoing.svg b/doc/theme/material/.icons/material/phone-outgoing.svg new file mode 100644 index 00000000..c9d6f8a8 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-outgoing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-outline.svg b/doc/theme/material/.icons/material/phone-outline.svg new file mode 100644 index 00000000..fd762c4c --- /dev/null +++ b/doc/theme/material/.icons/material/phone-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-paused-outline.svg b/doc/theme/material/.icons/material/phone-paused-outline.svg new file mode 100644 index 00000000..17ccd4ec --- /dev/null +++ b/doc/theme/material/.icons/material/phone-paused-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-paused.svg b/doc/theme/material/.icons/material/phone-paused.svg new file mode 100644 index 00000000..58fdf6d3 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-paused.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-plus-outline.svg b/doc/theme/material/.icons/material/phone-plus-outline.svg new file mode 100644 index 00000000..97cef81d --- /dev/null +++ b/doc/theme/material/.icons/material/phone-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-plus.svg b/doc/theme/material/.icons/material/phone-plus.svg new file mode 100644 index 00000000..b2b868b5 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-return-outline.svg b/doc/theme/material/.icons/material/phone-return-outline.svg new file mode 100644 index 00000000..ea15afc1 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-return-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-return.svg b/doc/theme/material/.icons/material/phone-return.svg new file mode 100644 index 00000000..072485a2 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-return.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-ring-outline.svg b/doc/theme/material/.icons/material/phone-ring-outline.svg new file mode 100644 index 00000000..733b5afd --- /dev/null +++ b/doc/theme/material/.icons/material/phone-ring-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-ring.svg b/doc/theme/material/.icons/material/phone-ring.svg new file mode 100644 index 00000000..61a1e0db --- /dev/null +++ b/doc/theme/material/.icons/material/phone-ring.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-rotate-landscape.svg b/doc/theme/material/.icons/material/phone-rotate-landscape.svg new file mode 100644 index 00000000..77747c0f --- /dev/null +++ b/doc/theme/material/.icons/material/phone-rotate-landscape.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-rotate-portrait.svg b/doc/theme/material/.icons/material/phone-rotate-portrait.svg new file mode 100644 index 00000000..3deb597c --- /dev/null +++ b/doc/theme/material/.icons/material/phone-rotate-portrait.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-settings-outline.svg b/doc/theme/material/.icons/material/phone-settings-outline.svg new file mode 100644 index 00000000..29f8722c --- /dev/null +++ b/doc/theme/material/.icons/material/phone-settings-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-settings.svg b/doc/theme/material/.icons/material/phone-settings.svg new file mode 100644 index 00000000..25e772b2 --- /dev/null +++ b/doc/theme/material/.icons/material/phone-settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone-voip.svg b/doc/theme/material/.icons/material/phone-voip.svg new file mode 100644 index 00000000..7d79e14d --- /dev/null +++ b/doc/theme/material/.icons/material/phone-voip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/phone.svg b/doc/theme/material/.icons/material/phone.svg new file mode 100644 index 00000000..f331a69b --- /dev/null +++ b/doc/theme/material/.icons/material/phone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pi-box.svg b/doc/theme/material/.icons/material/pi-box.svg new file mode 100644 index 00000000..2a5fac8a --- /dev/null +++ b/doc/theme/material/.icons/material/pi-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pi-hole.svg b/doc/theme/material/.icons/material/pi-hole.svg new file mode 100644 index 00000000..8044baea --- /dev/null +++ b/doc/theme/material/.icons/material/pi-hole.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pi.svg b/doc/theme/material/.icons/material/pi.svg new file mode 100644 index 00000000..20865351 --- /dev/null +++ b/doc/theme/material/.icons/material/pi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/piano.svg b/doc/theme/material/.icons/material/piano.svg new file mode 100644 index 00000000..efbdd4d4 --- /dev/null +++ b/doc/theme/material/.icons/material/piano.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pickaxe.svg b/doc/theme/material/.icons/material/pickaxe.svg new file mode 100644 index 00000000..1bccd32f --- /dev/null +++ b/doc/theme/material/.icons/material/pickaxe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/picture-in-picture-bottom-right-outline.svg b/doc/theme/material/.icons/material/picture-in-picture-bottom-right-outline.svg new file mode 100644 index 00000000..530f4dda --- /dev/null +++ b/doc/theme/material/.icons/material/picture-in-picture-bottom-right-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/picture-in-picture-bottom-right.svg b/doc/theme/material/.icons/material/picture-in-picture-bottom-right.svg new file mode 100644 index 00000000..b0a7e464 --- /dev/null +++ b/doc/theme/material/.icons/material/picture-in-picture-bottom-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/picture-in-picture-top-right-outline.svg b/doc/theme/material/.icons/material/picture-in-picture-top-right-outline.svg new file mode 100644 index 00000000..b5e76f0b --- /dev/null +++ b/doc/theme/material/.icons/material/picture-in-picture-top-right-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/picture-in-picture-top-right.svg b/doc/theme/material/.icons/material/picture-in-picture-top-right.svg new file mode 100644 index 00000000..d7646713 --- /dev/null +++ b/doc/theme/material/.icons/material/picture-in-picture-top-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pier-crane.svg b/doc/theme/material/.icons/material/pier-crane.svg new file mode 100644 index 00000000..446b49ff --- /dev/null +++ b/doc/theme/material/.icons/material/pier-crane.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pier.svg b/doc/theme/material/.icons/material/pier.svg new file mode 100644 index 00000000..2ecd23b3 --- /dev/null +++ b/doc/theme/material/.icons/material/pier.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pig-variant.svg b/doc/theme/material/.icons/material/pig-variant.svg new file mode 100644 index 00000000..5f8d45bb --- /dev/null +++ b/doc/theme/material/.icons/material/pig-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pig.svg b/doc/theme/material/.icons/material/pig.svg new file mode 100644 index 00000000..ab5fecae --- /dev/null +++ b/doc/theme/material/.icons/material/pig.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/piggy-bank.svg b/doc/theme/material/.icons/material/piggy-bank.svg new file mode 100644 index 00000000..05f346cc --- /dev/null +++ b/doc/theme/material/.icons/material/piggy-bank.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pill.svg b/doc/theme/material/.icons/material/pill.svg new file mode 100644 index 00000000..201262dd --- /dev/null +++ b/doc/theme/material/.icons/material/pill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pillar.svg b/doc/theme/material/.icons/material/pillar.svg new file mode 100644 index 00000000..67f6ed0e --- /dev/null +++ b/doc/theme/material/.icons/material/pillar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pin-off-outline.svg b/doc/theme/material/.icons/material/pin-off-outline.svg new file mode 100644 index 00000000..9666c194 --- /dev/null +++ b/doc/theme/material/.icons/material/pin-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pin-off.svg b/doc/theme/material/.icons/material/pin-off.svg new file mode 100644 index 00000000..45429235 --- /dev/null +++ b/doc/theme/material/.icons/material/pin-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pin-outline.svg b/doc/theme/material/.icons/material/pin-outline.svg new file mode 100644 index 00000000..47cebc4d --- /dev/null +++ b/doc/theme/material/.icons/material/pin-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pin.svg b/doc/theme/material/.icons/material/pin.svg new file mode 100644 index 00000000..68daca96 --- /dev/null +++ b/doc/theme/material/.icons/material/pin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pine-tree-box.svg b/doc/theme/material/.icons/material/pine-tree-box.svg new file mode 100644 index 00000000..2e7216a6 --- /dev/null +++ b/doc/theme/material/.icons/material/pine-tree-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pine-tree.svg b/doc/theme/material/.icons/material/pine-tree.svg new file mode 100644 index 00000000..a8715f4f --- /dev/null +++ b/doc/theme/material/.icons/material/pine-tree.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pinterest.svg b/doc/theme/material/.icons/material/pinterest.svg new file mode 100644 index 00000000..6de662a2 --- /dev/null +++ b/doc/theme/material/.icons/material/pinterest.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pinwheel-outline.svg b/doc/theme/material/.icons/material/pinwheel-outline.svg new file mode 100644 index 00000000..cef4f4fe --- /dev/null +++ b/doc/theme/material/.icons/material/pinwheel-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pinwheel.svg b/doc/theme/material/.icons/material/pinwheel.svg new file mode 100644 index 00000000..0a7a7a43 --- /dev/null +++ b/doc/theme/material/.icons/material/pinwheel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pipe-disconnected.svg b/doc/theme/material/.icons/material/pipe-disconnected.svg new file mode 100644 index 00000000..3e13dc31 --- /dev/null +++ b/doc/theme/material/.icons/material/pipe-disconnected.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pipe-leak.svg b/doc/theme/material/.icons/material/pipe-leak.svg new file mode 100644 index 00000000..6e8aa66e --- /dev/null +++ b/doc/theme/material/.icons/material/pipe-leak.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pipe-wrench.svg b/doc/theme/material/.icons/material/pipe-wrench.svg new file mode 100644 index 00000000..69aa9c98 --- /dev/null +++ b/doc/theme/material/.icons/material/pipe-wrench.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pipe.svg b/doc/theme/material/.icons/material/pipe.svg new file mode 100644 index 00000000..289cfc84 --- /dev/null +++ b/doc/theme/material/.icons/material/pipe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pirate.svg b/doc/theme/material/.icons/material/pirate.svg new file mode 100644 index 00000000..966c8136 --- /dev/null +++ b/doc/theme/material/.icons/material/pirate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pistol.svg b/doc/theme/material/.icons/material/pistol.svg new file mode 100644 index 00000000..f3380b42 --- /dev/null +++ b/doc/theme/material/.icons/material/pistol.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/piston.svg b/doc/theme/material/.icons/material/piston.svg new file mode 100644 index 00000000..661c007f --- /dev/null +++ b/doc/theme/material/.icons/material/piston.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pizza.svg b/doc/theme/material/.icons/material/pizza.svg new file mode 100644 index 00000000..cdd0d86a --- /dev/null +++ b/doc/theme/material/.icons/material/pizza.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/play-box-multiple-outline.svg b/doc/theme/material/.icons/material/play-box-multiple-outline.svg new file mode 100644 index 00000000..d991b112 --- /dev/null +++ b/doc/theme/material/.icons/material/play-box-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/play-box-multiple.svg b/doc/theme/material/.icons/material/play-box-multiple.svg new file mode 100644 index 00000000..cc861b73 --- /dev/null +++ b/doc/theme/material/.icons/material/play-box-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/play-box-outline.svg b/doc/theme/material/.icons/material/play-box-outline.svg new file mode 100644 index 00000000..8e0df8e5 --- /dev/null +++ b/doc/theme/material/.icons/material/play-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/play-box.svg b/doc/theme/material/.icons/material/play-box.svg new file mode 100644 index 00000000..d68a3f16 --- /dev/null +++ b/doc/theme/material/.icons/material/play-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/play-circle-outline.svg b/doc/theme/material/.icons/material/play-circle-outline.svg new file mode 100644 index 00000000..8ad42ac5 --- /dev/null +++ b/doc/theme/material/.icons/material/play-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/play-circle.svg b/doc/theme/material/.icons/material/play-circle.svg new file mode 100644 index 00000000..5325ff37 --- /dev/null +++ b/doc/theme/material/.icons/material/play-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/play-network-outline.svg b/doc/theme/material/.icons/material/play-network-outline.svg new file mode 100644 index 00000000..c64c6a8b --- /dev/null +++ b/doc/theme/material/.icons/material/play-network-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/play-network.svg b/doc/theme/material/.icons/material/play-network.svg new file mode 100644 index 00000000..03250631 --- /dev/null +++ b/doc/theme/material/.icons/material/play-network.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/play-outline.svg b/doc/theme/material/.icons/material/play-outline.svg new file mode 100644 index 00000000..85dd00a7 --- /dev/null +++ b/doc/theme/material/.icons/material/play-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/play-pause.svg b/doc/theme/material/.icons/material/play-pause.svg new file mode 100644 index 00000000..e23fafc3 --- /dev/null +++ b/doc/theme/material/.icons/material/play-pause.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/play-protected-content.svg b/doc/theme/material/.icons/material/play-protected-content.svg new file mode 100644 index 00000000..e05e9456 --- /dev/null +++ b/doc/theme/material/.icons/material/play-protected-content.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/play-speed.svg b/doc/theme/material/.icons/material/play-speed.svg new file mode 100644 index 00000000..1bdab6c2 --- /dev/null +++ b/doc/theme/material/.icons/material/play-speed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/play.svg b/doc/theme/material/.icons/material/play.svg new file mode 100644 index 00000000..dc2b40fe --- /dev/null +++ b/doc/theme/material/.icons/material/play.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/playlist-check.svg b/doc/theme/material/.icons/material/playlist-check.svg new file mode 100644 index 00000000..5bd80c82 --- /dev/null +++ b/doc/theme/material/.icons/material/playlist-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/playlist-edit.svg b/doc/theme/material/.icons/material/playlist-edit.svg new file mode 100644 index 00000000..4d392888 --- /dev/null +++ b/doc/theme/material/.icons/material/playlist-edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/playlist-minus.svg b/doc/theme/material/.icons/material/playlist-minus.svg new file mode 100644 index 00000000..40854f3a --- /dev/null +++ b/doc/theme/material/.icons/material/playlist-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/playlist-music-outline.svg b/doc/theme/material/.icons/material/playlist-music-outline.svg new file mode 100644 index 00000000..2d829cda --- /dev/null +++ b/doc/theme/material/.icons/material/playlist-music-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/playlist-music.svg b/doc/theme/material/.icons/material/playlist-music.svg new file mode 100644 index 00000000..f7586ec0 --- /dev/null +++ b/doc/theme/material/.icons/material/playlist-music.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/playlist-play.svg b/doc/theme/material/.icons/material/playlist-play.svg new file mode 100644 index 00000000..a838891f --- /dev/null +++ b/doc/theme/material/.icons/material/playlist-play.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/playlist-plus.svg b/doc/theme/material/.icons/material/playlist-plus.svg new file mode 100644 index 00000000..d2958a08 --- /dev/null +++ b/doc/theme/material/.icons/material/playlist-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/playlist-remove.svg b/doc/theme/material/.icons/material/playlist-remove.svg new file mode 100644 index 00000000..1dec96ce --- /dev/null +++ b/doc/theme/material/.icons/material/playlist-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/playlist-star.svg b/doc/theme/material/.icons/material/playlist-star.svg new file mode 100644 index 00000000..e561183d --- /dev/null +++ b/doc/theme/material/.icons/material/playlist-star.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/plex.svg b/doc/theme/material/.icons/material/plex.svg new file mode 100644 index 00000000..c5d17682 --- /dev/null +++ b/doc/theme/material/.icons/material/plex.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/plus-box-multiple-outline.svg b/doc/theme/material/.icons/material/plus-box-multiple-outline.svg new file mode 100644 index 00000000..786ef81e --- /dev/null +++ b/doc/theme/material/.icons/material/plus-box-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/plus-box-multiple.svg b/doc/theme/material/.icons/material/plus-box-multiple.svg new file mode 100644 index 00000000..3bea85c0 --- /dev/null +++ b/doc/theme/material/.icons/material/plus-box-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/plus-box-outline.svg b/doc/theme/material/.icons/material/plus-box-outline.svg new file mode 100644 index 00000000..a7855058 --- /dev/null +++ b/doc/theme/material/.icons/material/plus-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/plus-box.svg b/doc/theme/material/.icons/material/plus-box.svg new file mode 100644 index 00000000..180df0ca --- /dev/null +++ b/doc/theme/material/.icons/material/plus-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/plus-circle-multiple-outline.svg b/doc/theme/material/.icons/material/plus-circle-multiple-outline.svg new file mode 100644 index 00000000..cdacd601 --- /dev/null +++ b/doc/theme/material/.icons/material/plus-circle-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/plus-circle-multiple.svg b/doc/theme/material/.icons/material/plus-circle-multiple.svg new file mode 100644 index 00000000..8c954403 --- /dev/null +++ b/doc/theme/material/.icons/material/plus-circle-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/plus-circle-outline.svg b/doc/theme/material/.icons/material/plus-circle-outline.svg new file mode 100644 index 00000000..03e4c8f6 --- /dev/null +++ b/doc/theme/material/.icons/material/plus-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/plus-circle.svg b/doc/theme/material/.icons/material/plus-circle.svg new file mode 100644 index 00000000..191400ae --- /dev/null +++ b/doc/theme/material/.icons/material/plus-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/plus-minus-box.svg b/doc/theme/material/.icons/material/plus-minus-box.svg new file mode 100644 index 00000000..0471ed83 --- /dev/null +++ b/doc/theme/material/.icons/material/plus-minus-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/plus-minus.svg b/doc/theme/material/.icons/material/plus-minus.svg new file mode 100644 index 00000000..fc3671db --- /dev/null +++ b/doc/theme/material/.icons/material/plus-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/plus-network-outline.svg b/doc/theme/material/.icons/material/plus-network-outline.svg new file mode 100644 index 00000000..c8ee6a6c --- /dev/null +++ b/doc/theme/material/.icons/material/plus-network-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/plus-network.svg b/doc/theme/material/.icons/material/plus-network.svg new file mode 100644 index 00000000..b59454dd --- /dev/null +++ b/doc/theme/material/.icons/material/plus-network.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/plus-one.svg b/doc/theme/material/.icons/material/plus-one.svg new file mode 100644 index 00000000..551b1809 --- /dev/null +++ b/doc/theme/material/.icons/material/plus-one.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/plus-outline.svg b/doc/theme/material/.icons/material/plus-outline.svg new file mode 100644 index 00000000..9fa0a9fb --- /dev/null +++ b/doc/theme/material/.icons/material/plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/plus-thick.svg b/doc/theme/material/.icons/material/plus-thick.svg new file mode 100644 index 00000000..de2f9c14 --- /dev/null +++ b/doc/theme/material/.icons/material/plus-thick.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/plus.svg b/doc/theme/material/.icons/material/plus.svg new file mode 100644 index 00000000..e448436f --- /dev/null +++ b/doc/theme/material/.icons/material/plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/podcast.svg b/doc/theme/material/.icons/material/podcast.svg new file mode 100644 index 00000000..6b240a3d --- /dev/null +++ b/doc/theme/material/.icons/material/podcast.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/podium-bronze.svg b/doc/theme/material/.icons/material/podium-bronze.svg new file mode 100644 index 00000000..ac9a264c --- /dev/null +++ b/doc/theme/material/.icons/material/podium-bronze.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/podium-gold.svg b/doc/theme/material/.icons/material/podium-gold.svg new file mode 100644 index 00000000..91891715 --- /dev/null +++ b/doc/theme/material/.icons/material/podium-gold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/podium-silver.svg b/doc/theme/material/.icons/material/podium-silver.svg new file mode 100644 index 00000000..5b4ec7ad --- /dev/null +++ b/doc/theme/material/.icons/material/podium-silver.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/podium.svg b/doc/theme/material/.icons/material/podium.svg new file mode 100644 index 00000000..4a69a005 --- /dev/null +++ b/doc/theme/material/.icons/material/podium.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/point-of-sale.svg b/doc/theme/material/.icons/material/point-of-sale.svg new file mode 100644 index 00000000..8e19114a --- /dev/null +++ b/doc/theme/material/.icons/material/point-of-sale.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pokeball.svg b/doc/theme/material/.icons/material/pokeball.svg new file mode 100644 index 00000000..1d80d195 --- /dev/null +++ b/doc/theme/material/.icons/material/pokeball.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pokemon-go.svg b/doc/theme/material/.icons/material/pokemon-go.svg new file mode 100644 index 00000000..5cd1c0db --- /dev/null +++ b/doc/theme/material/.icons/material/pokemon-go.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/poker-chip.svg b/doc/theme/material/.icons/material/poker-chip.svg new file mode 100644 index 00000000..893242dc --- /dev/null +++ b/doc/theme/material/.icons/material/poker-chip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/polaroid.svg b/doc/theme/material/.icons/material/polaroid.svg new file mode 100644 index 00000000..a6f533e3 --- /dev/null +++ b/doc/theme/material/.icons/material/polaroid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/police-badge-outline.svg b/doc/theme/material/.icons/material/police-badge-outline.svg new file mode 100644 index 00000000..bf07409e --- /dev/null +++ b/doc/theme/material/.icons/material/police-badge-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/police-badge.svg b/doc/theme/material/.icons/material/police-badge.svg new file mode 100644 index 00000000..74b59289 --- /dev/null +++ b/doc/theme/material/.icons/material/police-badge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/poll-box-outline.svg b/doc/theme/material/.icons/material/poll-box-outline.svg new file mode 100644 index 00000000..db6b2906 --- /dev/null +++ b/doc/theme/material/.icons/material/poll-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/poll-box.svg b/doc/theme/material/.icons/material/poll-box.svg new file mode 100644 index 00000000..6dad2e3b --- /dev/null +++ b/doc/theme/material/.icons/material/poll-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/poll.svg b/doc/theme/material/.icons/material/poll.svg new file mode 100644 index 00000000..bd98af0e --- /dev/null +++ b/doc/theme/material/.icons/material/poll.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/polymer.svg b/doc/theme/material/.icons/material/polymer.svg new file mode 100644 index 00000000..3c4676fe --- /dev/null +++ b/doc/theme/material/.icons/material/polymer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pool.svg b/doc/theme/material/.icons/material/pool.svg new file mode 100644 index 00000000..75fe2e7b --- /dev/null +++ b/doc/theme/material/.icons/material/pool.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/popcorn.svg b/doc/theme/material/.icons/material/popcorn.svg new file mode 100644 index 00000000..ff8f18f3 --- /dev/null +++ b/doc/theme/material/.icons/material/popcorn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/post-outline.svg b/doc/theme/material/.icons/material/post-outline.svg new file mode 100644 index 00000000..1f4d62c5 --- /dev/null +++ b/doc/theme/material/.icons/material/post-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/post.svg b/doc/theme/material/.icons/material/post.svg new file mode 100644 index 00000000..6fc14e09 --- /dev/null +++ b/doc/theme/material/.icons/material/post.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/postage-stamp.svg b/doc/theme/material/.icons/material/postage-stamp.svg new file mode 100644 index 00000000..52ddbf00 --- /dev/null +++ b/doc/theme/material/.icons/material/postage-stamp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pot-mix-outline.svg b/doc/theme/material/.icons/material/pot-mix-outline.svg new file mode 100644 index 00000000..719e93fa --- /dev/null +++ b/doc/theme/material/.icons/material/pot-mix-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pot-mix.svg b/doc/theme/material/.icons/material/pot-mix.svg new file mode 100644 index 00000000..211af7cc --- /dev/null +++ b/doc/theme/material/.icons/material/pot-mix.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pot-outline.svg b/doc/theme/material/.icons/material/pot-outline.svg new file mode 100644 index 00000000..bde86b7b --- /dev/null +++ b/doc/theme/material/.icons/material/pot-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pot-steam-outline.svg b/doc/theme/material/.icons/material/pot-steam-outline.svg new file mode 100644 index 00000000..5d01174f --- /dev/null +++ b/doc/theme/material/.icons/material/pot-steam-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pot-steam.svg b/doc/theme/material/.icons/material/pot-steam.svg new file mode 100644 index 00000000..c2b943bc --- /dev/null +++ b/doc/theme/material/.icons/material/pot-steam.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pot.svg b/doc/theme/material/.icons/material/pot.svg new file mode 100644 index 00000000..b83f663f --- /dev/null +++ b/doc/theme/material/.icons/material/pot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pound-box-outline.svg b/doc/theme/material/.icons/material/pound-box-outline.svg new file mode 100644 index 00000000..2a3057f0 --- /dev/null +++ b/doc/theme/material/.icons/material/pound-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pound-box.svg b/doc/theme/material/.icons/material/pound-box.svg new file mode 100644 index 00000000..4808e6b2 --- /dev/null +++ b/doc/theme/material/.icons/material/pound-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pound.svg b/doc/theme/material/.icons/material/pound.svg new file mode 100644 index 00000000..f9024422 --- /dev/null +++ b/doc/theme/material/.icons/material/pound.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/power-cycle.svg b/doc/theme/material/.icons/material/power-cycle.svg new file mode 100644 index 00000000..ad374a3b --- /dev/null +++ b/doc/theme/material/.icons/material/power-cycle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/power-off.svg b/doc/theme/material/.icons/material/power-off.svg new file mode 100644 index 00000000..89192cf9 --- /dev/null +++ b/doc/theme/material/.icons/material/power-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/power-on.svg b/doc/theme/material/.icons/material/power-on.svg new file mode 100644 index 00000000..f00cae2a --- /dev/null +++ b/doc/theme/material/.icons/material/power-on.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/power-plug-off.svg b/doc/theme/material/.icons/material/power-plug-off.svg new file mode 100644 index 00000000..e9b04cf1 --- /dev/null +++ b/doc/theme/material/.icons/material/power-plug-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/power-plug.svg b/doc/theme/material/.icons/material/power-plug.svg new file mode 100644 index 00000000..0e7d00c8 --- /dev/null +++ b/doc/theme/material/.icons/material/power-plug.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/power-settings.svg b/doc/theme/material/.icons/material/power-settings.svg new file mode 100644 index 00000000..59df973d --- /dev/null +++ b/doc/theme/material/.icons/material/power-settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/power-sleep.svg b/doc/theme/material/.icons/material/power-sleep.svg new file mode 100644 index 00000000..379c70d7 --- /dev/null +++ b/doc/theme/material/.icons/material/power-sleep.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/power-socket-au.svg b/doc/theme/material/.icons/material/power-socket-au.svg new file mode 100644 index 00000000..d87755c4 --- /dev/null +++ b/doc/theme/material/.icons/material/power-socket-au.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/power-socket-de.svg b/doc/theme/material/.icons/material/power-socket-de.svg new file mode 100644 index 00000000..703bb4ba --- /dev/null +++ b/doc/theme/material/.icons/material/power-socket-de.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/power-socket-eu.svg b/doc/theme/material/.icons/material/power-socket-eu.svg new file mode 100644 index 00000000..7167018d --- /dev/null +++ b/doc/theme/material/.icons/material/power-socket-eu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/power-socket-fr.svg b/doc/theme/material/.icons/material/power-socket-fr.svg new file mode 100644 index 00000000..78f4b41a --- /dev/null +++ b/doc/theme/material/.icons/material/power-socket-fr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/power-socket-jp.svg b/doc/theme/material/.icons/material/power-socket-jp.svg new file mode 100644 index 00000000..cd88ac22 --- /dev/null +++ b/doc/theme/material/.icons/material/power-socket-jp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/power-socket-uk.svg b/doc/theme/material/.icons/material/power-socket-uk.svg new file mode 100644 index 00000000..f695d65e --- /dev/null +++ b/doc/theme/material/.icons/material/power-socket-uk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/power-socket-us.svg b/doc/theme/material/.icons/material/power-socket-us.svg new file mode 100644 index 00000000..5294030a --- /dev/null +++ b/doc/theme/material/.icons/material/power-socket-us.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/power-socket.svg b/doc/theme/material/.icons/material/power-socket.svg new file mode 100644 index 00000000..22d1c2a8 --- /dev/null +++ b/doc/theme/material/.icons/material/power-socket.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/power-standby.svg b/doc/theme/material/.icons/material/power-standby.svg new file mode 100644 index 00000000..e7374e85 --- /dev/null +++ b/doc/theme/material/.icons/material/power-standby.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/power.svg b/doc/theme/material/.icons/material/power.svg new file mode 100644 index 00000000..3b7fcbc8 --- /dev/null +++ b/doc/theme/material/.icons/material/power.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/powershell.svg b/doc/theme/material/.icons/material/powershell.svg new file mode 100644 index 00000000..6811a5e8 --- /dev/null +++ b/doc/theme/material/.icons/material/powershell.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/prescription.svg b/doc/theme/material/.icons/material/prescription.svg new file mode 100644 index 00000000..86b2b242 --- /dev/null +++ b/doc/theme/material/.icons/material/prescription.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/presentation-play.svg b/doc/theme/material/.icons/material/presentation-play.svg new file mode 100644 index 00000000..8283b199 --- /dev/null +++ b/doc/theme/material/.icons/material/presentation-play.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/presentation.svg b/doc/theme/material/.icons/material/presentation.svg new file mode 100644 index 00000000..69c3b49e --- /dev/null +++ b/doc/theme/material/.icons/material/presentation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/printer-3d-nozzle-alert-outline.svg b/doc/theme/material/.icons/material/printer-3d-nozzle-alert-outline.svg new file mode 100644 index 00000000..2e1d7c7f --- /dev/null +++ b/doc/theme/material/.icons/material/printer-3d-nozzle-alert-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/printer-3d-nozzle-alert.svg b/doc/theme/material/.icons/material/printer-3d-nozzle-alert.svg new file mode 100644 index 00000000..56d9d19e --- /dev/null +++ b/doc/theme/material/.icons/material/printer-3d-nozzle-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/printer-3d-nozzle-outline.svg b/doc/theme/material/.icons/material/printer-3d-nozzle-outline.svg new file mode 100644 index 00000000..bfe8a8ab --- /dev/null +++ b/doc/theme/material/.icons/material/printer-3d-nozzle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/printer-3d-nozzle.svg b/doc/theme/material/.icons/material/printer-3d-nozzle.svg new file mode 100644 index 00000000..a6419f15 --- /dev/null +++ b/doc/theme/material/.icons/material/printer-3d-nozzle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/printer-3d.svg b/doc/theme/material/.icons/material/printer-3d.svg new file mode 100644 index 00000000..a53b45a0 --- /dev/null +++ b/doc/theme/material/.icons/material/printer-3d.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/printer-alert.svg b/doc/theme/material/.icons/material/printer-alert.svg new file mode 100644 index 00000000..b60b5a88 --- /dev/null +++ b/doc/theme/material/.icons/material/printer-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/printer-check.svg b/doc/theme/material/.icons/material/printer-check.svg new file mode 100644 index 00000000..3d554f0e --- /dev/null +++ b/doc/theme/material/.icons/material/printer-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/printer-off.svg b/doc/theme/material/.icons/material/printer-off.svg new file mode 100644 index 00000000..541d6aff --- /dev/null +++ b/doc/theme/material/.icons/material/printer-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/printer-pos.svg b/doc/theme/material/.icons/material/printer-pos.svg new file mode 100644 index 00000000..7740cdef --- /dev/null +++ b/doc/theme/material/.icons/material/printer-pos.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/printer-settings.svg b/doc/theme/material/.icons/material/printer-settings.svg new file mode 100644 index 00000000..9ebdc13c --- /dev/null +++ b/doc/theme/material/.icons/material/printer-settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/printer-wireless.svg b/doc/theme/material/.icons/material/printer-wireless.svg new file mode 100644 index 00000000..3e50a860 --- /dev/null +++ b/doc/theme/material/.icons/material/printer-wireless.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/printer.svg b/doc/theme/material/.icons/material/printer.svg new file mode 100644 index 00000000..53440dc6 --- /dev/null +++ b/doc/theme/material/.icons/material/printer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/priority-high.svg b/doc/theme/material/.icons/material/priority-high.svg new file mode 100644 index 00000000..351d4402 --- /dev/null +++ b/doc/theme/material/.icons/material/priority-high.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/priority-low.svg b/doc/theme/material/.icons/material/priority-low.svg new file mode 100644 index 00000000..ce110bac --- /dev/null +++ b/doc/theme/material/.icons/material/priority-low.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/professional-hexagon.svg b/doc/theme/material/.icons/material/professional-hexagon.svg new file mode 100644 index 00000000..4f080df5 --- /dev/null +++ b/doc/theme/material/.icons/material/professional-hexagon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/progress-alert.svg b/doc/theme/material/.icons/material/progress-alert.svg new file mode 100644 index 00000000..2186e9ea --- /dev/null +++ b/doc/theme/material/.icons/material/progress-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/progress-check.svg b/doc/theme/material/.icons/material/progress-check.svg new file mode 100644 index 00000000..8803e44f --- /dev/null +++ b/doc/theme/material/.icons/material/progress-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/progress-clock.svg b/doc/theme/material/.icons/material/progress-clock.svg new file mode 100644 index 00000000..a9ab773e --- /dev/null +++ b/doc/theme/material/.icons/material/progress-clock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/progress-close.svg b/doc/theme/material/.icons/material/progress-close.svg new file mode 100644 index 00000000..5494e4f7 --- /dev/null +++ b/doc/theme/material/.icons/material/progress-close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/progress-download.svg b/doc/theme/material/.icons/material/progress-download.svg new file mode 100644 index 00000000..9776b02f --- /dev/null +++ b/doc/theme/material/.icons/material/progress-download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/progress-upload.svg b/doc/theme/material/.icons/material/progress-upload.svg new file mode 100644 index 00000000..81471d6f --- /dev/null +++ b/doc/theme/material/.icons/material/progress-upload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/progress-wrench.svg b/doc/theme/material/.icons/material/progress-wrench.svg new file mode 100644 index 00000000..d11e0e3a --- /dev/null +++ b/doc/theme/material/.icons/material/progress-wrench.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/projector-screen.svg b/doc/theme/material/.icons/material/projector-screen.svg new file mode 100644 index 00000000..e2389c86 --- /dev/null +++ b/doc/theme/material/.icons/material/projector-screen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/projector.svg b/doc/theme/material/.icons/material/projector.svg new file mode 100644 index 00000000..ad315ce4 --- /dev/null +++ b/doc/theme/material/.icons/material/projector.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/propane-tank-outline.svg b/doc/theme/material/.icons/material/propane-tank-outline.svg new file mode 100644 index 00000000..bb6b15a2 --- /dev/null +++ b/doc/theme/material/.icons/material/propane-tank-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/propane-tank.svg b/doc/theme/material/.icons/material/propane-tank.svg new file mode 100644 index 00000000..f45ee771 --- /dev/null +++ b/doc/theme/material/.icons/material/propane-tank.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/protocol.svg b/doc/theme/material/.icons/material/protocol.svg new file mode 100644 index 00000000..df48eb5f --- /dev/null +++ b/doc/theme/material/.icons/material/protocol.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/publish.svg b/doc/theme/material/.icons/material/publish.svg new file mode 100644 index 00000000..e61c7e51 --- /dev/null +++ b/doc/theme/material/.icons/material/publish.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pulse.svg b/doc/theme/material/.icons/material/pulse.svg new file mode 100644 index 00000000..94422795 --- /dev/null +++ b/doc/theme/material/.icons/material/pulse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pump.svg b/doc/theme/material/.icons/material/pump.svg new file mode 100644 index 00000000..a80e5496 --- /dev/null +++ b/doc/theme/material/.icons/material/pump.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/pumpkin.svg b/doc/theme/material/.icons/material/pumpkin.svg new file mode 100644 index 00000000..f39cf171 --- /dev/null +++ b/doc/theme/material/.icons/material/pumpkin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/purse-outline.svg b/doc/theme/material/.icons/material/purse-outline.svg new file mode 100644 index 00000000..e51bf749 --- /dev/null +++ b/doc/theme/material/.icons/material/purse-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/purse.svg b/doc/theme/material/.icons/material/purse.svg new file mode 100644 index 00000000..27f5678b --- /dev/null +++ b/doc/theme/material/.icons/material/purse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/puzzle-outline.svg b/doc/theme/material/.icons/material/puzzle-outline.svg new file mode 100644 index 00000000..5b468ff3 --- /dev/null +++ b/doc/theme/material/.icons/material/puzzle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/puzzle.svg b/doc/theme/material/.icons/material/puzzle.svg new file mode 100644 index 00000000..82dc9efc --- /dev/null +++ b/doc/theme/material/.icons/material/puzzle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/qi.svg b/doc/theme/material/.icons/material/qi.svg new file mode 100644 index 00000000..c9d5e32a --- /dev/null +++ b/doc/theme/material/.icons/material/qi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/qqchat.svg b/doc/theme/material/.icons/material/qqchat.svg new file mode 100644 index 00000000..0a74fec0 --- /dev/null +++ b/doc/theme/material/.icons/material/qqchat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/qrcode-edit.svg b/doc/theme/material/.icons/material/qrcode-edit.svg new file mode 100644 index 00000000..c8b9ea5f --- /dev/null +++ b/doc/theme/material/.icons/material/qrcode-edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/qrcode-minus.svg b/doc/theme/material/.icons/material/qrcode-minus.svg new file mode 100644 index 00000000..d7e37c8b --- /dev/null +++ b/doc/theme/material/.icons/material/qrcode-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/qrcode-plus.svg b/doc/theme/material/.icons/material/qrcode-plus.svg new file mode 100644 index 00000000..7e163fb8 --- /dev/null +++ b/doc/theme/material/.icons/material/qrcode-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/qrcode-remove.svg b/doc/theme/material/.icons/material/qrcode-remove.svg new file mode 100644 index 00000000..17a65249 --- /dev/null +++ b/doc/theme/material/.icons/material/qrcode-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/qrcode-scan.svg b/doc/theme/material/.icons/material/qrcode-scan.svg new file mode 100644 index 00000000..e00dbfcc --- /dev/null +++ b/doc/theme/material/.icons/material/qrcode-scan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/qrcode.svg b/doc/theme/material/.icons/material/qrcode.svg new file mode 100644 index 00000000..b2eb371d --- /dev/null +++ b/doc/theme/material/.icons/material/qrcode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/quadcopter.svg b/doc/theme/material/.icons/material/quadcopter.svg new file mode 100644 index 00000000..e7743dfb --- /dev/null +++ b/doc/theme/material/.icons/material/quadcopter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/quality-high.svg b/doc/theme/material/.icons/material/quality-high.svg new file mode 100644 index 00000000..44ad0690 --- /dev/null +++ b/doc/theme/material/.icons/material/quality-high.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/quality-low.svg b/doc/theme/material/.icons/material/quality-low.svg new file mode 100644 index 00000000..76aa7f2e --- /dev/null +++ b/doc/theme/material/.icons/material/quality-low.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/quality-medium.svg b/doc/theme/material/.icons/material/quality-medium.svg new file mode 100644 index 00000000..8da187be --- /dev/null +++ b/doc/theme/material/.icons/material/quality-medium.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/quora.svg b/doc/theme/material/.icons/material/quora.svg new file mode 100644 index 00000000..ac9707b0 --- /dev/null +++ b/doc/theme/material/.icons/material/quora.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rabbit.svg b/doc/theme/material/.icons/material/rabbit.svg new file mode 100644 index 00000000..7b86538e --- /dev/null +++ b/doc/theme/material/.icons/material/rabbit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/racing-helmet.svg b/doc/theme/material/.icons/material/racing-helmet.svg new file mode 100644 index 00000000..b52e75a3 --- /dev/null +++ b/doc/theme/material/.icons/material/racing-helmet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/racquetball.svg b/doc/theme/material/.icons/material/racquetball.svg new file mode 100644 index 00000000..60b863fb --- /dev/null +++ b/doc/theme/material/.icons/material/racquetball.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/radar.svg b/doc/theme/material/.icons/material/radar.svg new file mode 100644 index 00000000..50118176 --- /dev/null +++ b/doc/theme/material/.icons/material/radar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/radiator-disabled.svg b/doc/theme/material/.icons/material/radiator-disabled.svg new file mode 100644 index 00000000..43ee507f --- /dev/null +++ b/doc/theme/material/.icons/material/radiator-disabled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/radiator-off.svg b/doc/theme/material/.icons/material/radiator-off.svg new file mode 100644 index 00000000..8ef66f03 --- /dev/null +++ b/doc/theme/material/.icons/material/radiator-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/radiator.svg b/doc/theme/material/.icons/material/radiator.svg new file mode 100644 index 00000000..933924e2 --- /dev/null +++ b/doc/theme/material/.icons/material/radiator.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/radio-am.svg b/doc/theme/material/.icons/material/radio-am.svg new file mode 100644 index 00000000..e02eb149 --- /dev/null +++ b/doc/theme/material/.icons/material/radio-am.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/radio-fm.svg b/doc/theme/material/.icons/material/radio-fm.svg new file mode 100644 index 00000000..ae3577b0 --- /dev/null +++ b/doc/theme/material/.icons/material/radio-fm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/radio-handheld.svg b/doc/theme/material/.icons/material/radio-handheld.svg new file mode 100644 index 00000000..49210e8e --- /dev/null +++ b/doc/theme/material/.icons/material/radio-handheld.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/radio-off.svg b/doc/theme/material/.icons/material/radio-off.svg new file mode 100644 index 00000000..33f3eae0 --- /dev/null +++ b/doc/theme/material/.icons/material/radio-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/radio-tower.svg b/doc/theme/material/.icons/material/radio-tower.svg new file mode 100644 index 00000000..e242ab3e --- /dev/null +++ b/doc/theme/material/.icons/material/radio-tower.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/radio.svg b/doc/theme/material/.icons/material/radio.svg new file mode 100644 index 00000000..4df143fd --- /dev/null +++ b/doc/theme/material/.icons/material/radio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/radioactive-off.svg b/doc/theme/material/.icons/material/radioactive-off.svg new file mode 100644 index 00000000..6a8ab369 --- /dev/null +++ b/doc/theme/material/.icons/material/radioactive-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/radioactive.svg b/doc/theme/material/.icons/material/radioactive.svg new file mode 100644 index 00000000..5b2b74e3 --- /dev/null +++ b/doc/theme/material/.icons/material/radioactive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/radiobox-blank.svg b/doc/theme/material/.icons/material/radiobox-blank.svg new file mode 100644 index 00000000..e986852f --- /dev/null +++ b/doc/theme/material/.icons/material/radiobox-blank.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/radiobox-marked.svg b/doc/theme/material/.icons/material/radiobox-marked.svg new file mode 100644 index 00000000..fd1f3c5e --- /dev/null +++ b/doc/theme/material/.icons/material/radiobox-marked.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/radius-outline.svg b/doc/theme/material/.icons/material/radius-outline.svg new file mode 100644 index 00000000..c979f47f --- /dev/null +++ b/doc/theme/material/.icons/material/radius-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/radius.svg b/doc/theme/material/.icons/material/radius.svg new file mode 100644 index 00000000..367f5b88 --- /dev/null +++ b/doc/theme/material/.icons/material/radius.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/railroad-light.svg b/doc/theme/material/.icons/material/railroad-light.svg new file mode 100644 index 00000000..e12612fa --- /dev/null +++ b/doc/theme/material/.icons/material/railroad-light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/raspberry-pi.svg b/doc/theme/material/.icons/material/raspberry-pi.svg new file mode 100644 index 00000000..52d6e73f --- /dev/null +++ b/doc/theme/material/.icons/material/raspberry-pi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ray-end-arrow.svg b/doc/theme/material/.icons/material/ray-end-arrow.svg new file mode 100644 index 00000000..42c51773 --- /dev/null +++ b/doc/theme/material/.icons/material/ray-end-arrow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ray-end.svg b/doc/theme/material/.icons/material/ray-end.svg new file mode 100644 index 00000000..cd61a22e --- /dev/null +++ b/doc/theme/material/.icons/material/ray-end.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ray-start-arrow.svg b/doc/theme/material/.icons/material/ray-start-arrow.svg new file mode 100644 index 00000000..abc5dfd2 --- /dev/null +++ b/doc/theme/material/.icons/material/ray-start-arrow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ray-start-end.svg b/doc/theme/material/.icons/material/ray-start-end.svg new file mode 100644 index 00000000..dc7dd58d --- /dev/null +++ b/doc/theme/material/.icons/material/ray-start-end.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ray-start.svg b/doc/theme/material/.icons/material/ray-start.svg new file mode 100644 index 00000000..230b4c97 --- /dev/null +++ b/doc/theme/material/.icons/material/ray-start.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ray-vertex.svg b/doc/theme/material/.icons/material/ray-vertex.svg new file mode 100644 index 00000000..31a49aa6 --- /dev/null +++ b/doc/theme/material/.icons/material/ray-vertex.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/react.svg b/doc/theme/material/.icons/material/react.svg new file mode 100644 index 00000000..7ab18570 --- /dev/null +++ b/doc/theme/material/.icons/material/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/read.svg b/doc/theme/material/.icons/material/read.svg new file mode 100644 index 00000000..315b97d2 --- /dev/null +++ b/doc/theme/material/.icons/material/read.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/receipt.svg b/doc/theme/material/.icons/material/receipt.svg new file mode 100644 index 00000000..7fddf922 --- /dev/null +++ b/doc/theme/material/.icons/material/receipt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/record-circle-outline.svg b/doc/theme/material/.icons/material/record-circle-outline.svg new file mode 100644 index 00000000..dd632a6f --- /dev/null +++ b/doc/theme/material/.icons/material/record-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/record-circle.svg b/doc/theme/material/.icons/material/record-circle.svg new file mode 100644 index 00000000..7942a5a7 --- /dev/null +++ b/doc/theme/material/.icons/material/record-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/record-player.svg b/doc/theme/material/.icons/material/record-player.svg new file mode 100644 index 00000000..7041f9cf --- /dev/null +++ b/doc/theme/material/.icons/material/record-player.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/record-rec.svg b/doc/theme/material/.icons/material/record-rec.svg new file mode 100644 index 00000000..106f1ea7 --- /dev/null +++ b/doc/theme/material/.icons/material/record-rec.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/record.svg b/doc/theme/material/.icons/material/record.svg new file mode 100644 index 00000000..d9b4ab13 --- /dev/null +++ b/doc/theme/material/.icons/material/record.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rectangle-outline.svg b/doc/theme/material/.icons/material/rectangle-outline.svg new file mode 100644 index 00000000..3f6119c0 --- /dev/null +++ b/doc/theme/material/.icons/material/rectangle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rectangle.svg b/doc/theme/material/.icons/material/rectangle.svg new file mode 100644 index 00000000..449383d4 --- /dev/null +++ b/doc/theme/material/.icons/material/rectangle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/recycle-variant.svg b/doc/theme/material/.icons/material/recycle-variant.svg new file mode 100644 index 00000000..2a98f174 --- /dev/null +++ b/doc/theme/material/.icons/material/recycle-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/recycle.svg b/doc/theme/material/.icons/material/recycle.svg new file mode 100644 index 00000000..93b2859d --- /dev/null +++ b/doc/theme/material/.icons/material/recycle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/reddit.svg b/doc/theme/material/.icons/material/reddit.svg new file mode 100644 index 00000000..b7269888 --- /dev/null +++ b/doc/theme/material/.icons/material/reddit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/redhat.svg b/doc/theme/material/.icons/material/redhat.svg new file mode 100644 index 00000000..254c1bb7 --- /dev/null +++ b/doc/theme/material/.icons/material/redhat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/redo-variant.svg b/doc/theme/material/.icons/material/redo-variant.svg new file mode 100644 index 00000000..f48d2996 --- /dev/null +++ b/doc/theme/material/.icons/material/redo-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/redo.svg b/doc/theme/material/.icons/material/redo.svg new file mode 100644 index 00000000..142bf279 --- /dev/null +++ b/doc/theme/material/.icons/material/redo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/reflect-horizontal.svg b/doc/theme/material/.icons/material/reflect-horizontal.svg new file mode 100644 index 00000000..f113db6c --- /dev/null +++ b/doc/theme/material/.icons/material/reflect-horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/reflect-vertical.svg b/doc/theme/material/.icons/material/reflect-vertical.svg new file mode 100644 index 00000000..3720bdd3 --- /dev/null +++ b/doc/theme/material/.icons/material/reflect-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/refresh-circle.svg b/doc/theme/material/.icons/material/refresh-circle.svg new file mode 100644 index 00000000..f3687f4e --- /dev/null +++ b/doc/theme/material/.icons/material/refresh-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/refresh.svg b/doc/theme/material/.icons/material/refresh.svg new file mode 100644 index 00000000..724c870f --- /dev/null +++ b/doc/theme/material/.icons/material/refresh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/regex.svg b/doc/theme/material/.icons/material/regex.svg new file mode 100644 index 00000000..e0ebbafc --- /dev/null +++ b/doc/theme/material/.icons/material/regex.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/registered-trademark.svg b/doc/theme/material/.icons/material/registered-trademark.svg new file mode 100644 index 00000000..63a7688d --- /dev/null +++ b/doc/theme/material/.icons/material/registered-trademark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/relative-scale.svg b/doc/theme/material/.icons/material/relative-scale.svg new file mode 100644 index 00000000..20dcdbba --- /dev/null +++ b/doc/theme/material/.icons/material/relative-scale.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/reload-alert.svg b/doc/theme/material/.icons/material/reload-alert.svg new file mode 100644 index 00000000..e8a48f73 --- /dev/null +++ b/doc/theme/material/.icons/material/reload-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/reload.svg b/doc/theme/material/.icons/material/reload.svg new file mode 100644 index 00000000..dcdaaf53 --- /dev/null +++ b/doc/theme/material/.icons/material/reload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/reminder.svg b/doc/theme/material/.icons/material/reminder.svg new file mode 100644 index 00000000..f2e19af0 --- /dev/null +++ b/doc/theme/material/.icons/material/reminder.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/remote-desktop.svg b/doc/theme/material/.icons/material/remote-desktop.svg new file mode 100644 index 00000000..1c7458f3 --- /dev/null +++ b/doc/theme/material/.icons/material/remote-desktop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/remote-off.svg b/doc/theme/material/.icons/material/remote-off.svg new file mode 100644 index 00000000..6a2ef597 --- /dev/null +++ b/doc/theme/material/.icons/material/remote-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/remote-tv-off.svg b/doc/theme/material/.icons/material/remote-tv-off.svg new file mode 100644 index 00000000..0371a627 --- /dev/null +++ b/doc/theme/material/.icons/material/remote-tv-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/remote-tv.svg b/doc/theme/material/.icons/material/remote-tv.svg new file mode 100644 index 00000000..f2db6d41 --- /dev/null +++ b/doc/theme/material/.icons/material/remote-tv.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/remote.svg b/doc/theme/material/.icons/material/remote.svg new file mode 100644 index 00000000..c7e94e62 --- /dev/null +++ b/doc/theme/material/.icons/material/remote.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rename-box.svg b/doc/theme/material/.icons/material/rename-box.svg new file mode 100644 index 00000000..213ac2de --- /dev/null +++ b/doc/theme/material/.icons/material/rename-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/reorder-horizontal.svg b/doc/theme/material/.icons/material/reorder-horizontal.svg new file mode 100644 index 00000000..20c571c4 --- /dev/null +++ b/doc/theme/material/.icons/material/reorder-horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/reorder-vertical.svg b/doc/theme/material/.icons/material/reorder-vertical.svg new file mode 100644 index 00000000..2809fa69 --- /dev/null +++ b/doc/theme/material/.icons/material/reorder-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/repeat-off.svg b/doc/theme/material/.icons/material/repeat-off.svg new file mode 100644 index 00000000..34fc9759 --- /dev/null +++ b/doc/theme/material/.icons/material/repeat-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/repeat-once.svg b/doc/theme/material/.icons/material/repeat-once.svg new file mode 100644 index 00000000..17bb9f5f --- /dev/null +++ b/doc/theme/material/.icons/material/repeat-once.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/repeat.svg b/doc/theme/material/.icons/material/repeat.svg new file mode 100644 index 00000000..1e08e98a --- /dev/null +++ b/doc/theme/material/.icons/material/repeat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/replay.svg b/doc/theme/material/.icons/material/replay.svg new file mode 100644 index 00000000..041c1967 --- /dev/null +++ b/doc/theme/material/.icons/material/replay.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/reply-all-outline.svg b/doc/theme/material/.icons/material/reply-all-outline.svg new file mode 100644 index 00000000..3128415e --- /dev/null +++ b/doc/theme/material/.icons/material/reply-all-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/reply-all.svg b/doc/theme/material/.icons/material/reply-all.svg new file mode 100644 index 00000000..5da4611c --- /dev/null +++ b/doc/theme/material/.icons/material/reply-all.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/reply-circle.svg b/doc/theme/material/.icons/material/reply-circle.svg new file mode 100644 index 00000000..4c8354c4 --- /dev/null +++ b/doc/theme/material/.icons/material/reply-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/reply-outline.svg b/doc/theme/material/.icons/material/reply-outline.svg new file mode 100644 index 00000000..7778b14a --- /dev/null +++ b/doc/theme/material/.icons/material/reply-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/reply.svg b/doc/theme/material/.icons/material/reply.svg new file mode 100644 index 00000000..52a1a736 --- /dev/null +++ b/doc/theme/material/.icons/material/reply.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/reproduction.svg b/doc/theme/material/.icons/material/reproduction.svg new file mode 100644 index 00000000..27518516 --- /dev/null +++ b/doc/theme/material/.icons/material/reproduction.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/resistor-nodes.svg b/doc/theme/material/.icons/material/resistor-nodes.svg new file mode 100644 index 00000000..61eed901 --- /dev/null +++ b/doc/theme/material/.icons/material/resistor-nodes.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/resistor.svg b/doc/theme/material/.icons/material/resistor.svg new file mode 100644 index 00000000..a4de02c8 --- /dev/null +++ b/doc/theme/material/.icons/material/resistor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/resize-bottom-right.svg b/doc/theme/material/.icons/material/resize-bottom-right.svg new file mode 100644 index 00000000..6bfd4676 --- /dev/null +++ b/doc/theme/material/.icons/material/resize-bottom-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/resize.svg b/doc/theme/material/.icons/material/resize.svg new file mode 100644 index 00000000..2f567ad3 --- /dev/null +++ b/doc/theme/material/.icons/material/resize.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/responsive.svg b/doc/theme/material/.icons/material/responsive.svg new file mode 100644 index 00000000..b7b05491 --- /dev/null +++ b/doc/theme/material/.icons/material/responsive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/restart-alert.svg b/doc/theme/material/.icons/material/restart-alert.svg new file mode 100644 index 00000000..705bd717 --- /dev/null +++ b/doc/theme/material/.icons/material/restart-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/restart-off.svg b/doc/theme/material/.icons/material/restart-off.svg new file mode 100644 index 00000000..80729be6 --- /dev/null +++ b/doc/theme/material/.icons/material/restart-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/restart.svg b/doc/theme/material/.icons/material/restart.svg new file mode 100644 index 00000000..d2e4f9e7 --- /dev/null +++ b/doc/theme/material/.icons/material/restart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/restore-alert.svg b/doc/theme/material/.icons/material/restore-alert.svg new file mode 100644 index 00000000..71166568 --- /dev/null +++ b/doc/theme/material/.icons/material/restore-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/restore.svg b/doc/theme/material/.icons/material/restore.svg new file mode 100644 index 00000000..a80b3089 --- /dev/null +++ b/doc/theme/material/.icons/material/restore.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rewind-10.svg b/doc/theme/material/.icons/material/rewind-10.svg new file mode 100644 index 00000000..190d514c --- /dev/null +++ b/doc/theme/material/.icons/material/rewind-10.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rewind-30.svg b/doc/theme/material/.icons/material/rewind-30.svg new file mode 100644 index 00000000..527e47e4 --- /dev/null +++ b/doc/theme/material/.icons/material/rewind-30.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rewind-5.svg b/doc/theme/material/.icons/material/rewind-5.svg new file mode 100644 index 00000000..ea042c9c --- /dev/null +++ b/doc/theme/material/.icons/material/rewind-5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rewind-outline.svg b/doc/theme/material/.icons/material/rewind-outline.svg new file mode 100644 index 00000000..a14ddf25 --- /dev/null +++ b/doc/theme/material/.icons/material/rewind-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rewind.svg b/doc/theme/material/.icons/material/rewind.svg new file mode 100644 index 00000000..e4523766 --- /dev/null +++ b/doc/theme/material/.icons/material/rewind.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rhombus-medium.svg b/doc/theme/material/.icons/material/rhombus-medium.svg new file mode 100644 index 00000000..ffc3a0ba --- /dev/null +++ b/doc/theme/material/.icons/material/rhombus-medium.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rhombus-outline.svg b/doc/theme/material/.icons/material/rhombus-outline.svg new file mode 100644 index 00000000..f83d998c --- /dev/null +++ b/doc/theme/material/.icons/material/rhombus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rhombus-split.svg b/doc/theme/material/.icons/material/rhombus-split.svg new file mode 100644 index 00000000..818ee741 --- /dev/null +++ b/doc/theme/material/.icons/material/rhombus-split.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rhombus.svg b/doc/theme/material/.icons/material/rhombus.svg new file mode 100644 index 00000000..a6f2b5f7 --- /dev/null +++ b/doc/theme/material/.icons/material/rhombus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ribbon.svg b/doc/theme/material/.icons/material/ribbon.svg new file mode 100644 index 00000000..26ea9a08 --- /dev/null +++ b/doc/theme/material/.icons/material/ribbon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rice.svg b/doc/theme/material/.icons/material/rice.svg new file mode 100644 index 00000000..67c3c07f --- /dev/null +++ b/doc/theme/material/.icons/material/rice.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ring.svg b/doc/theme/material/.icons/material/ring.svg new file mode 100644 index 00000000..089ca1ec --- /dev/null +++ b/doc/theme/material/.icons/material/ring.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rivet.svg b/doc/theme/material/.icons/material/rivet.svg new file mode 100644 index 00000000..38b62312 --- /dev/null +++ b/doc/theme/material/.icons/material/rivet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/road-variant.svg b/doc/theme/material/.icons/material/road-variant.svg new file mode 100644 index 00000000..b4592991 --- /dev/null +++ b/doc/theme/material/.icons/material/road-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/road.svg b/doc/theme/material/.icons/material/road.svg new file mode 100644 index 00000000..5f203919 --- /dev/null +++ b/doc/theme/material/.icons/material/road.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/robber.svg b/doc/theme/material/.icons/material/robber.svg new file mode 100644 index 00000000..6dbe2875 --- /dev/null +++ b/doc/theme/material/.icons/material/robber.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/robot-industrial.svg b/doc/theme/material/.icons/material/robot-industrial.svg new file mode 100644 index 00000000..7e80ff49 --- /dev/null +++ b/doc/theme/material/.icons/material/robot-industrial.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/robot-mower-outline.svg b/doc/theme/material/.icons/material/robot-mower-outline.svg new file mode 100644 index 00000000..f0eedc8a --- /dev/null +++ b/doc/theme/material/.icons/material/robot-mower-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/robot-mower.svg b/doc/theme/material/.icons/material/robot-mower.svg new file mode 100644 index 00000000..45673894 --- /dev/null +++ b/doc/theme/material/.icons/material/robot-mower.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/robot-vacuum-variant.svg b/doc/theme/material/.icons/material/robot-vacuum-variant.svg new file mode 100644 index 00000000..cd65f1de --- /dev/null +++ b/doc/theme/material/.icons/material/robot-vacuum-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/robot-vacuum.svg b/doc/theme/material/.icons/material/robot-vacuum.svg new file mode 100644 index 00000000..fb4ad134 --- /dev/null +++ b/doc/theme/material/.icons/material/robot-vacuum.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/robot.svg b/doc/theme/material/.icons/material/robot.svg new file mode 100644 index 00000000..178d173b --- /dev/null +++ b/doc/theme/material/.icons/material/robot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rocket-outline.svg b/doc/theme/material/.icons/material/rocket-outline.svg new file mode 100644 index 00000000..b07435b8 --- /dev/null +++ b/doc/theme/material/.icons/material/rocket-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rocket.svg b/doc/theme/material/.icons/material/rocket.svg new file mode 100644 index 00000000..c556436c --- /dev/null +++ b/doc/theme/material/.icons/material/rocket.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rodent.svg b/doc/theme/material/.icons/material/rodent.svg new file mode 100644 index 00000000..54766a89 --- /dev/null +++ b/doc/theme/material/.icons/material/rodent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/roller-skate-off.svg b/doc/theme/material/.icons/material/roller-skate-off.svg new file mode 100644 index 00000000..940eb54e --- /dev/null +++ b/doc/theme/material/.icons/material/roller-skate-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/roller-skate.svg b/doc/theme/material/.icons/material/roller-skate.svg new file mode 100644 index 00000000..b8ac5a01 --- /dev/null +++ b/doc/theme/material/.icons/material/roller-skate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rollerblade-off.svg b/doc/theme/material/.icons/material/rollerblade-off.svg new file mode 100644 index 00000000..c7810773 --- /dev/null +++ b/doc/theme/material/.icons/material/rollerblade-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rollerblade.svg b/doc/theme/material/.icons/material/rollerblade.svg new file mode 100644 index 00000000..7777f490 --- /dev/null +++ b/doc/theme/material/.icons/material/rollerblade.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rollupjs.svg b/doc/theme/material/.icons/material/rollupjs.svg new file mode 100644 index 00000000..cec8f6b1 --- /dev/null +++ b/doc/theme/material/.icons/material/rollupjs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/roman-numeral-1.svg b/doc/theme/material/.icons/material/roman-numeral-1.svg new file mode 100644 index 00000000..a02ab545 --- /dev/null +++ b/doc/theme/material/.icons/material/roman-numeral-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/roman-numeral-10.svg b/doc/theme/material/.icons/material/roman-numeral-10.svg new file mode 100644 index 00000000..4b736b5b --- /dev/null +++ b/doc/theme/material/.icons/material/roman-numeral-10.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/roman-numeral-2.svg b/doc/theme/material/.icons/material/roman-numeral-2.svg new file mode 100644 index 00000000..01d170de --- /dev/null +++ b/doc/theme/material/.icons/material/roman-numeral-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/roman-numeral-3.svg b/doc/theme/material/.icons/material/roman-numeral-3.svg new file mode 100644 index 00000000..ca65c84b --- /dev/null +++ b/doc/theme/material/.icons/material/roman-numeral-3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/roman-numeral-4.svg b/doc/theme/material/.icons/material/roman-numeral-4.svg new file mode 100644 index 00000000..dfd5de43 --- /dev/null +++ b/doc/theme/material/.icons/material/roman-numeral-4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/roman-numeral-5.svg b/doc/theme/material/.icons/material/roman-numeral-5.svg new file mode 100644 index 00000000..e3ca9da3 --- /dev/null +++ b/doc/theme/material/.icons/material/roman-numeral-5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/roman-numeral-6.svg b/doc/theme/material/.icons/material/roman-numeral-6.svg new file mode 100644 index 00000000..d5d8043d --- /dev/null +++ b/doc/theme/material/.icons/material/roman-numeral-6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/roman-numeral-7.svg b/doc/theme/material/.icons/material/roman-numeral-7.svg new file mode 100644 index 00000000..c8c3159d --- /dev/null +++ b/doc/theme/material/.icons/material/roman-numeral-7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/roman-numeral-8.svg b/doc/theme/material/.icons/material/roman-numeral-8.svg new file mode 100644 index 00000000..1052bd16 --- /dev/null +++ b/doc/theme/material/.icons/material/roman-numeral-8.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/roman-numeral-9.svg b/doc/theme/material/.icons/material/roman-numeral-9.svg new file mode 100644 index 00000000..2e9e813c --- /dev/null +++ b/doc/theme/material/.icons/material/roman-numeral-9.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/room-service-outline.svg b/doc/theme/material/.icons/material/room-service-outline.svg new file mode 100644 index 00000000..969cae62 --- /dev/null +++ b/doc/theme/material/.icons/material/room-service-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/room-service.svg b/doc/theme/material/.icons/material/room-service.svg new file mode 100644 index 00000000..eded9e32 --- /dev/null +++ b/doc/theme/material/.icons/material/room-service.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rotate-3d-variant.svg b/doc/theme/material/.icons/material/rotate-3d-variant.svg new file mode 100644 index 00000000..fe0e1e25 --- /dev/null +++ b/doc/theme/material/.icons/material/rotate-3d-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rotate-3d.svg b/doc/theme/material/.icons/material/rotate-3d.svg new file mode 100644 index 00000000..673935e1 --- /dev/null +++ b/doc/theme/material/.icons/material/rotate-3d.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rotate-left-variant.svg b/doc/theme/material/.icons/material/rotate-left-variant.svg new file mode 100644 index 00000000..c692e6c5 --- /dev/null +++ b/doc/theme/material/.icons/material/rotate-left-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rotate-left.svg b/doc/theme/material/.icons/material/rotate-left.svg new file mode 100644 index 00000000..626064cf --- /dev/null +++ b/doc/theme/material/.icons/material/rotate-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rotate-orbit.svg b/doc/theme/material/.icons/material/rotate-orbit.svg new file mode 100644 index 00000000..44165704 --- /dev/null +++ b/doc/theme/material/.icons/material/rotate-orbit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rotate-right-variant.svg b/doc/theme/material/.icons/material/rotate-right-variant.svg new file mode 100644 index 00000000..f6c8d1fb --- /dev/null +++ b/doc/theme/material/.icons/material/rotate-right-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rotate-right.svg b/doc/theme/material/.icons/material/rotate-right.svg new file mode 100644 index 00000000..07087c06 --- /dev/null +++ b/doc/theme/material/.icons/material/rotate-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rounded-corner.svg b/doc/theme/material/.icons/material/rounded-corner.svg new file mode 100644 index 00000000..90fdbf74 --- /dev/null +++ b/doc/theme/material/.icons/material/rounded-corner.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/router-network.svg b/doc/theme/material/.icons/material/router-network.svg new file mode 100644 index 00000000..0dc27b2f --- /dev/null +++ b/doc/theme/material/.icons/material/router-network.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/router-wireless-settings.svg b/doc/theme/material/.icons/material/router-wireless-settings.svg new file mode 100644 index 00000000..a77df799 --- /dev/null +++ b/doc/theme/material/.icons/material/router-wireless-settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/router-wireless.svg b/doc/theme/material/.icons/material/router-wireless.svg new file mode 100644 index 00000000..8027c296 --- /dev/null +++ b/doc/theme/material/.icons/material/router-wireless.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/router.svg b/doc/theme/material/.icons/material/router.svg new file mode 100644 index 00000000..c0f1837b --- /dev/null +++ b/doc/theme/material/.icons/material/router.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/routes-clock.svg b/doc/theme/material/.icons/material/routes-clock.svg new file mode 100644 index 00000000..fc018f2c --- /dev/null +++ b/doc/theme/material/.icons/material/routes-clock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/routes.svg b/doc/theme/material/.icons/material/routes.svg new file mode 100644 index 00000000..6103d296 --- /dev/null +++ b/doc/theme/material/.icons/material/routes.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rowing.svg b/doc/theme/material/.icons/material/rowing.svg new file mode 100644 index 00000000..4e0d1c0e --- /dev/null +++ b/doc/theme/material/.icons/material/rowing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rss-box.svg b/doc/theme/material/.icons/material/rss-box.svg new file mode 100644 index 00000000..23e494f5 --- /dev/null +++ b/doc/theme/material/.icons/material/rss-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rss-off.svg b/doc/theme/material/.icons/material/rss-off.svg new file mode 100644 index 00000000..4b18b8aa --- /dev/null +++ b/doc/theme/material/.icons/material/rss-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rss.svg b/doc/theme/material/.icons/material/rss.svg new file mode 100644 index 00000000..da08a836 --- /dev/null +++ b/doc/theme/material/.icons/material/rss.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rugby.svg b/doc/theme/material/.icons/material/rugby.svg new file mode 100644 index 00000000..4c63f39e --- /dev/null +++ b/doc/theme/material/.icons/material/rugby.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ruler-square-compass.svg b/doc/theme/material/.icons/material/ruler-square-compass.svg new file mode 100644 index 00000000..bd884f2a --- /dev/null +++ b/doc/theme/material/.icons/material/ruler-square-compass.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ruler-square.svg b/doc/theme/material/.icons/material/ruler-square.svg new file mode 100644 index 00000000..fa5b5a87 --- /dev/null +++ b/doc/theme/material/.icons/material/ruler-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ruler.svg b/doc/theme/material/.icons/material/ruler.svg new file mode 100644 index 00000000..b226ad51 --- /dev/null +++ b/doc/theme/material/.icons/material/ruler.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/run-fast.svg b/doc/theme/material/.icons/material/run-fast.svg new file mode 100644 index 00000000..666c0442 --- /dev/null +++ b/doc/theme/material/.icons/material/run-fast.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/run.svg b/doc/theme/material/.icons/material/run.svg new file mode 100644 index 00000000..a6cc315a --- /dev/null +++ b/doc/theme/material/.icons/material/run.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/rv-truck.svg b/doc/theme/material/.icons/material/rv-truck.svg new file mode 100644 index 00000000..0b273c72 --- /dev/null +++ b/doc/theme/material/.icons/material/rv-truck.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sack-percent.svg b/doc/theme/material/.icons/material/sack-percent.svg new file mode 100644 index 00000000..7b89ddec --- /dev/null +++ b/doc/theme/material/.icons/material/sack-percent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sack.svg b/doc/theme/material/.icons/material/sack.svg new file mode 100644 index 00000000..9fa5ee01 --- /dev/null +++ b/doc/theme/material/.icons/material/sack.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/safe-square-outline.svg b/doc/theme/material/.icons/material/safe-square-outline.svg new file mode 100644 index 00000000..0990a404 --- /dev/null +++ b/doc/theme/material/.icons/material/safe-square-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/safe-square.svg b/doc/theme/material/.icons/material/safe-square.svg new file mode 100644 index 00000000..2b6ec405 --- /dev/null +++ b/doc/theme/material/.icons/material/safe-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/safe.svg b/doc/theme/material/.icons/material/safe.svg new file mode 100644 index 00000000..cfa0aa52 --- /dev/null +++ b/doc/theme/material/.icons/material/safe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/safety-goggles.svg b/doc/theme/material/.icons/material/safety-goggles.svg new file mode 100644 index 00000000..e4c90c3a --- /dev/null +++ b/doc/theme/material/.icons/material/safety-goggles.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sail-boat.svg b/doc/theme/material/.icons/material/sail-boat.svg new file mode 100644 index 00000000..f2b537ad --- /dev/null +++ b/doc/theme/material/.icons/material/sail-boat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sale.svg b/doc/theme/material/.icons/material/sale.svg new file mode 100644 index 00000000..8ad874bd --- /dev/null +++ b/doc/theme/material/.icons/material/sale.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/salesforce.svg b/doc/theme/material/.icons/material/salesforce.svg new file mode 100644 index 00000000..457db66a --- /dev/null +++ b/doc/theme/material/.icons/material/salesforce.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sass.svg b/doc/theme/material/.icons/material/sass.svg new file mode 100644 index 00000000..310db18b --- /dev/null +++ b/doc/theme/material/.icons/material/sass.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/satellite-uplink.svg b/doc/theme/material/.icons/material/satellite-uplink.svg new file mode 100644 index 00000000..4f921068 --- /dev/null +++ b/doc/theme/material/.icons/material/satellite-uplink.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/satellite-variant.svg b/doc/theme/material/.icons/material/satellite-variant.svg new file mode 100644 index 00000000..add9e470 --- /dev/null +++ b/doc/theme/material/.icons/material/satellite-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/satellite.svg b/doc/theme/material/.icons/material/satellite.svg new file mode 100644 index 00000000..46fd5912 --- /dev/null +++ b/doc/theme/material/.icons/material/satellite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sausage.svg b/doc/theme/material/.icons/material/sausage.svg new file mode 100644 index 00000000..de182309 --- /dev/null +++ b/doc/theme/material/.icons/material/sausage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/saw-blade.svg b/doc/theme/material/.icons/material/saw-blade.svg new file mode 100644 index 00000000..50aa9c6d --- /dev/null +++ b/doc/theme/material/.icons/material/saw-blade.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/saxophone.svg b/doc/theme/material/.icons/material/saxophone.svg new file mode 100644 index 00000000..4a72e717 --- /dev/null +++ b/doc/theme/material/.icons/material/saxophone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/scale-balance.svg b/doc/theme/material/.icons/material/scale-balance.svg new file mode 100644 index 00000000..445c6709 --- /dev/null +++ b/doc/theme/material/.icons/material/scale-balance.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/scale-bathroom.svg b/doc/theme/material/.icons/material/scale-bathroom.svg new file mode 100644 index 00000000..aa3f7d09 --- /dev/null +++ b/doc/theme/material/.icons/material/scale-bathroom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/scale-off.svg b/doc/theme/material/.icons/material/scale-off.svg new file mode 100644 index 00000000..edbf35e7 --- /dev/null +++ b/doc/theme/material/.icons/material/scale-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/scale.svg b/doc/theme/material/.icons/material/scale.svg new file mode 100644 index 00000000..b01fcf65 --- /dev/null +++ b/doc/theme/material/.icons/material/scale.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/scan-helper.svg b/doc/theme/material/.icons/material/scan-helper.svg new file mode 100644 index 00000000..38c2b2ff --- /dev/null +++ b/doc/theme/material/.icons/material/scan-helper.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/scanner-off.svg b/doc/theme/material/.icons/material/scanner-off.svg new file mode 100644 index 00000000..0550bfa2 --- /dev/null +++ b/doc/theme/material/.icons/material/scanner-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/scanner.svg b/doc/theme/material/.icons/material/scanner.svg new file mode 100644 index 00000000..97d8afc2 --- /dev/null +++ b/doc/theme/material/.icons/material/scanner.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/scatter-plot-outline.svg b/doc/theme/material/.icons/material/scatter-plot-outline.svg new file mode 100644 index 00000000..9af3d602 --- /dev/null +++ b/doc/theme/material/.icons/material/scatter-plot-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/scatter-plot.svg b/doc/theme/material/.icons/material/scatter-plot.svg new file mode 100644 index 00000000..e6b6054a --- /dev/null +++ b/doc/theme/material/.icons/material/scatter-plot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/school-outline.svg b/doc/theme/material/.icons/material/school-outline.svg new file mode 100644 index 00000000..cb7932c3 --- /dev/null +++ b/doc/theme/material/.icons/material/school-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/school.svg b/doc/theme/material/.icons/material/school.svg new file mode 100644 index 00000000..3e2ccbf1 --- /dev/null +++ b/doc/theme/material/.icons/material/school.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/scissors-cutting.svg b/doc/theme/material/.icons/material/scissors-cutting.svg new file mode 100644 index 00000000..779d8274 --- /dev/null +++ b/doc/theme/material/.icons/material/scissors-cutting.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/scooter.svg b/doc/theme/material/.icons/material/scooter.svg new file mode 100644 index 00000000..3cc6b768 --- /dev/null +++ b/doc/theme/material/.icons/material/scooter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/scoreboard-outline.svg b/doc/theme/material/.icons/material/scoreboard-outline.svg new file mode 100644 index 00000000..c31cc2a3 --- /dev/null +++ b/doc/theme/material/.icons/material/scoreboard-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/scoreboard.svg b/doc/theme/material/.icons/material/scoreboard.svg new file mode 100644 index 00000000..7684ec9d --- /dev/null +++ b/doc/theme/material/.icons/material/scoreboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/screen-rotation-lock.svg b/doc/theme/material/.icons/material/screen-rotation-lock.svg new file mode 100644 index 00000000..6ed5ece1 --- /dev/null +++ b/doc/theme/material/.icons/material/screen-rotation-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/screen-rotation.svg b/doc/theme/material/.icons/material/screen-rotation.svg new file mode 100644 index 00000000..04fc0e0f --- /dev/null +++ b/doc/theme/material/.icons/material/screen-rotation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/screw-flat-top.svg b/doc/theme/material/.icons/material/screw-flat-top.svg new file mode 100644 index 00000000..795f4b5b --- /dev/null +++ b/doc/theme/material/.icons/material/screw-flat-top.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/screw-lag.svg b/doc/theme/material/.icons/material/screw-lag.svg new file mode 100644 index 00000000..42ad930e --- /dev/null +++ b/doc/theme/material/.icons/material/screw-lag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/screw-machine-flat-top.svg b/doc/theme/material/.icons/material/screw-machine-flat-top.svg new file mode 100644 index 00000000..1355ba0e --- /dev/null +++ b/doc/theme/material/.icons/material/screw-machine-flat-top.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/screw-machine-round-top.svg b/doc/theme/material/.icons/material/screw-machine-round-top.svg new file mode 100644 index 00000000..816f7f20 --- /dev/null +++ b/doc/theme/material/.icons/material/screw-machine-round-top.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/screw-round-top.svg b/doc/theme/material/.icons/material/screw-round-top.svg new file mode 100644 index 00000000..9cd15d47 --- /dev/null +++ b/doc/theme/material/.icons/material/screw-round-top.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/screwdriver.svg b/doc/theme/material/.icons/material/screwdriver.svg new file mode 100644 index 00000000..b6216ced --- /dev/null +++ b/doc/theme/material/.icons/material/screwdriver.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/script-outline.svg b/doc/theme/material/.icons/material/script-outline.svg new file mode 100644 index 00000000..d5417bd9 --- /dev/null +++ b/doc/theme/material/.icons/material/script-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/script-text-outline.svg b/doc/theme/material/.icons/material/script-text-outline.svg new file mode 100644 index 00000000..aac6e4be --- /dev/null +++ b/doc/theme/material/.icons/material/script-text-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/script-text.svg b/doc/theme/material/.icons/material/script-text.svg new file mode 100644 index 00000000..02f7286e --- /dev/null +++ b/doc/theme/material/.icons/material/script-text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/script.svg b/doc/theme/material/.icons/material/script.svg new file mode 100644 index 00000000..2cab7ded --- /dev/null +++ b/doc/theme/material/.icons/material/script.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sd.svg b/doc/theme/material/.icons/material/sd.svg new file mode 100644 index 00000000..1c82ecc4 --- /dev/null +++ b/doc/theme/material/.icons/material/sd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/seal-variant.svg b/doc/theme/material/.icons/material/seal-variant.svg new file mode 100644 index 00000000..269c3893 --- /dev/null +++ b/doc/theme/material/.icons/material/seal-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/seal.svg b/doc/theme/material/.icons/material/seal.svg new file mode 100644 index 00000000..2b412e2b --- /dev/null +++ b/doc/theme/material/.icons/material/seal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/search-web.svg b/doc/theme/material/.icons/material/search-web.svg new file mode 100644 index 00000000..5b4d5e23 --- /dev/null +++ b/doc/theme/material/.icons/material/search-web.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/seat-flat-angled.svg b/doc/theme/material/.icons/material/seat-flat-angled.svg new file mode 100644 index 00000000..295cca09 --- /dev/null +++ b/doc/theme/material/.icons/material/seat-flat-angled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/seat-flat.svg b/doc/theme/material/.icons/material/seat-flat.svg new file mode 100644 index 00000000..87b564ee --- /dev/null +++ b/doc/theme/material/.icons/material/seat-flat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/seat-individual-suite.svg b/doc/theme/material/.icons/material/seat-individual-suite.svg new file mode 100644 index 00000000..00b40265 --- /dev/null +++ b/doc/theme/material/.icons/material/seat-individual-suite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/seat-legroom-extra.svg b/doc/theme/material/.icons/material/seat-legroom-extra.svg new file mode 100644 index 00000000..9b21c885 --- /dev/null +++ b/doc/theme/material/.icons/material/seat-legroom-extra.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/seat-legroom-normal.svg b/doc/theme/material/.icons/material/seat-legroom-normal.svg new file mode 100644 index 00000000..4c03e523 --- /dev/null +++ b/doc/theme/material/.icons/material/seat-legroom-normal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/seat-legroom-reduced.svg b/doc/theme/material/.icons/material/seat-legroom-reduced.svg new file mode 100644 index 00000000..2a56ce86 --- /dev/null +++ b/doc/theme/material/.icons/material/seat-legroom-reduced.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/seat-outline.svg b/doc/theme/material/.icons/material/seat-outline.svg new file mode 100644 index 00000000..61cf26cf --- /dev/null +++ b/doc/theme/material/.icons/material/seat-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/seat-passenger.svg b/doc/theme/material/.icons/material/seat-passenger.svg new file mode 100644 index 00000000..cd8781ef --- /dev/null +++ b/doc/theme/material/.icons/material/seat-passenger.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/seat-recline-extra.svg b/doc/theme/material/.icons/material/seat-recline-extra.svg new file mode 100644 index 00000000..ec596d0b --- /dev/null +++ b/doc/theme/material/.icons/material/seat-recline-extra.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/seat-recline-normal.svg b/doc/theme/material/.icons/material/seat-recline-normal.svg new file mode 100644 index 00000000..4bc9b003 --- /dev/null +++ b/doc/theme/material/.icons/material/seat-recline-normal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/seat.svg b/doc/theme/material/.icons/material/seat.svg new file mode 100644 index 00000000..91b74e58 --- /dev/null +++ b/doc/theme/material/.icons/material/seat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/seatbelt.svg b/doc/theme/material/.icons/material/seatbelt.svg new file mode 100644 index 00000000..f68808b0 --- /dev/null +++ b/doc/theme/material/.icons/material/seatbelt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/security-network.svg b/doc/theme/material/.icons/material/security-network.svg new file mode 100644 index 00000000..86d07195 --- /dev/null +++ b/doc/theme/material/.icons/material/security-network.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/security.svg b/doc/theme/material/.icons/material/security.svg new file mode 100644 index 00000000..0ef170bd --- /dev/null +++ b/doc/theme/material/.icons/material/security.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/seed-off-outline.svg b/doc/theme/material/.icons/material/seed-off-outline.svg new file mode 100644 index 00000000..c4b06481 --- /dev/null +++ b/doc/theme/material/.icons/material/seed-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/seed-off.svg b/doc/theme/material/.icons/material/seed-off.svg new file mode 100644 index 00000000..59b150f3 --- /dev/null +++ b/doc/theme/material/.icons/material/seed-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/seed-outline.svg b/doc/theme/material/.icons/material/seed-outline.svg new file mode 100644 index 00000000..76ca2698 --- /dev/null +++ b/doc/theme/material/.icons/material/seed-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/seed.svg b/doc/theme/material/.icons/material/seed.svg new file mode 100644 index 00000000..004f4b64 --- /dev/null +++ b/doc/theme/material/.icons/material/seed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/segment.svg b/doc/theme/material/.icons/material/segment.svg new file mode 100644 index 00000000..d654143d --- /dev/null +++ b/doc/theme/material/.icons/material/segment.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/select-all.svg b/doc/theme/material/.icons/material/select-all.svg new file mode 100644 index 00000000..48ce47b1 --- /dev/null +++ b/doc/theme/material/.icons/material/select-all.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/select-color.svg b/doc/theme/material/.icons/material/select-color.svg new file mode 100644 index 00000000..5be7ed6f --- /dev/null +++ b/doc/theme/material/.icons/material/select-color.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/select-compare.svg b/doc/theme/material/.icons/material/select-compare.svg new file mode 100644 index 00000000..a7e3efe5 --- /dev/null +++ b/doc/theme/material/.icons/material/select-compare.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/select-drag.svg b/doc/theme/material/.icons/material/select-drag.svg new file mode 100644 index 00000000..d80f9fff --- /dev/null +++ b/doc/theme/material/.icons/material/select-drag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/select-group.svg b/doc/theme/material/.icons/material/select-group.svg new file mode 100644 index 00000000..bfa1f531 --- /dev/null +++ b/doc/theme/material/.icons/material/select-group.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/select-inverse.svg b/doc/theme/material/.icons/material/select-inverse.svg new file mode 100644 index 00000000..aeafbe9a --- /dev/null +++ b/doc/theme/material/.icons/material/select-inverse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/select-marker.svg b/doc/theme/material/.icons/material/select-marker.svg new file mode 100644 index 00000000..4618acc6 --- /dev/null +++ b/doc/theme/material/.icons/material/select-marker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/select-multiple-marker.svg b/doc/theme/material/.icons/material/select-multiple-marker.svg new file mode 100644 index 00000000..2ce1971d --- /dev/null +++ b/doc/theme/material/.icons/material/select-multiple-marker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/select-multiple.svg b/doc/theme/material/.icons/material/select-multiple.svg new file mode 100644 index 00000000..fd24d039 --- /dev/null +++ b/doc/theme/material/.icons/material/select-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/select-off.svg b/doc/theme/material/.icons/material/select-off.svg new file mode 100644 index 00000000..29c1b671 --- /dev/null +++ b/doc/theme/material/.icons/material/select-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/select-place.svg b/doc/theme/material/.icons/material/select-place.svg new file mode 100644 index 00000000..118302c1 --- /dev/null +++ b/doc/theme/material/.icons/material/select-place.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/select-search.svg b/doc/theme/material/.icons/material/select-search.svg new file mode 100644 index 00000000..dc48e4e2 --- /dev/null +++ b/doc/theme/material/.icons/material/select-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/select.svg b/doc/theme/material/.icons/material/select.svg new file mode 100644 index 00000000..50090a75 --- /dev/null +++ b/doc/theme/material/.icons/material/select.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/selection-drag.svg b/doc/theme/material/.icons/material/selection-drag.svg new file mode 100644 index 00000000..443b939c --- /dev/null +++ b/doc/theme/material/.icons/material/selection-drag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/selection-ellipse-arrow-inside.svg b/doc/theme/material/.icons/material/selection-ellipse-arrow-inside.svg new file mode 100644 index 00000000..705e1ca1 --- /dev/null +++ b/doc/theme/material/.icons/material/selection-ellipse-arrow-inside.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/selection-ellipse.svg b/doc/theme/material/.icons/material/selection-ellipse.svg new file mode 100644 index 00000000..58279c6e --- /dev/null +++ b/doc/theme/material/.icons/material/selection-ellipse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/selection-marker.svg b/doc/theme/material/.icons/material/selection-marker.svg new file mode 100644 index 00000000..5a6d482c --- /dev/null +++ b/doc/theme/material/.icons/material/selection-marker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/selection-multiple-marker.svg b/doc/theme/material/.icons/material/selection-multiple-marker.svg new file mode 100644 index 00000000..c0071187 --- /dev/null +++ b/doc/theme/material/.icons/material/selection-multiple-marker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/selection-multiple.svg b/doc/theme/material/.icons/material/selection-multiple.svg new file mode 100644 index 00000000..f121223a --- /dev/null +++ b/doc/theme/material/.icons/material/selection-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/selection-off.svg b/doc/theme/material/.icons/material/selection-off.svg new file mode 100644 index 00000000..5ca350e2 --- /dev/null +++ b/doc/theme/material/.icons/material/selection-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/selection-search.svg b/doc/theme/material/.icons/material/selection-search.svg new file mode 100644 index 00000000..835da614 --- /dev/null +++ b/doc/theme/material/.icons/material/selection-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/selection.svg b/doc/theme/material/.icons/material/selection.svg new file mode 100644 index 00000000..473cb361 --- /dev/null +++ b/doc/theme/material/.icons/material/selection.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/semantic-web.svg b/doc/theme/material/.icons/material/semantic-web.svg new file mode 100644 index 00000000..c12f70d2 --- /dev/null +++ b/doc/theme/material/.icons/material/semantic-web.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/send-check-outline.svg b/doc/theme/material/.icons/material/send-check-outline.svg new file mode 100644 index 00000000..0e2187e1 --- /dev/null +++ b/doc/theme/material/.icons/material/send-check-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/send-check.svg b/doc/theme/material/.icons/material/send-check.svg new file mode 100644 index 00000000..4e871c97 --- /dev/null +++ b/doc/theme/material/.icons/material/send-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/send-circle-outline.svg b/doc/theme/material/.icons/material/send-circle-outline.svg new file mode 100644 index 00000000..d5494eb1 --- /dev/null +++ b/doc/theme/material/.icons/material/send-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/send-circle.svg b/doc/theme/material/.icons/material/send-circle.svg new file mode 100644 index 00000000..2cca921b --- /dev/null +++ b/doc/theme/material/.icons/material/send-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/send-clock-outline.svg b/doc/theme/material/.icons/material/send-clock-outline.svg new file mode 100644 index 00000000..50d5cd55 --- /dev/null +++ b/doc/theme/material/.icons/material/send-clock-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/send-clock.svg b/doc/theme/material/.icons/material/send-clock.svg new file mode 100644 index 00000000..842b49c3 --- /dev/null +++ b/doc/theme/material/.icons/material/send-clock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/send-lock-outline.svg b/doc/theme/material/.icons/material/send-lock-outline.svg new file mode 100644 index 00000000..65d2c0d3 --- /dev/null +++ b/doc/theme/material/.icons/material/send-lock-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/send-lock.svg b/doc/theme/material/.icons/material/send-lock.svg new file mode 100644 index 00000000..4974cdab --- /dev/null +++ b/doc/theme/material/.icons/material/send-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/send-outline.svg b/doc/theme/material/.icons/material/send-outline.svg new file mode 100644 index 00000000..3ba9b348 --- /dev/null +++ b/doc/theme/material/.icons/material/send-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/send.svg b/doc/theme/material/.icons/material/send.svg new file mode 100644 index 00000000..91046247 --- /dev/null +++ b/doc/theme/material/.icons/material/send.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/serial-port.svg b/doc/theme/material/.icons/material/serial-port.svg new file mode 100644 index 00000000..749e9a8a --- /dev/null +++ b/doc/theme/material/.icons/material/serial-port.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/server-minus.svg b/doc/theme/material/.icons/material/server-minus.svg new file mode 100644 index 00000000..bf5551ff --- /dev/null +++ b/doc/theme/material/.icons/material/server-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/server-network-off.svg b/doc/theme/material/.icons/material/server-network-off.svg new file mode 100644 index 00000000..fe762280 --- /dev/null +++ b/doc/theme/material/.icons/material/server-network-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/server-network.svg b/doc/theme/material/.icons/material/server-network.svg new file mode 100644 index 00000000..afcf29d9 --- /dev/null +++ b/doc/theme/material/.icons/material/server-network.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/server-off.svg b/doc/theme/material/.icons/material/server-off.svg new file mode 100644 index 00000000..e2bd942b --- /dev/null +++ b/doc/theme/material/.icons/material/server-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/server-plus.svg b/doc/theme/material/.icons/material/server-plus.svg new file mode 100644 index 00000000..27c65b66 --- /dev/null +++ b/doc/theme/material/.icons/material/server-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/server-remove.svg b/doc/theme/material/.icons/material/server-remove.svg new file mode 100644 index 00000000..a03af6f0 --- /dev/null +++ b/doc/theme/material/.icons/material/server-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/server-security.svg b/doc/theme/material/.icons/material/server-security.svg new file mode 100644 index 00000000..9db5d3f5 --- /dev/null +++ b/doc/theme/material/.icons/material/server-security.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/server.svg b/doc/theme/material/.icons/material/server.svg new file mode 100644 index 00000000..8cfd2eda --- /dev/null +++ b/doc/theme/material/.icons/material/server.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/set-all.svg b/doc/theme/material/.icons/material/set-all.svg new file mode 100644 index 00000000..8aeae156 --- /dev/null +++ b/doc/theme/material/.icons/material/set-all.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/set-center-right.svg b/doc/theme/material/.icons/material/set-center-right.svg new file mode 100644 index 00000000..8dc28f54 --- /dev/null +++ b/doc/theme/material/.icons/material/set-center-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/set-center.svg b/doc/theme/material/.icons/material/set-center.svg new file mode 100644 index 00000000..d41ea188 --- /dev/null +++ b/doc/theme/material/.icons/material/set-center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/set-left-center.svg b/doc/theme/material/.icons/material/set-left-center.svg new file mode 100644 index 00000000..57c0063a --- /dev/null +++ b/doc/theme/material/.icons/material/set-left-center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/set-left-right.svg b/doc/theme/material/.icons/material/set-left-right.svg new file mode 100644 index 00000000..1d97c630 --- /dev/null +++ b/doc/theme/material/.icons/material/set-left-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/set-left.svg b/doc/theme/material/.icons/material/set-left.svg new file mode 100644 index 00000000..a46b9df1 --- /dev/null +++ b/doc/theme/material/.icons/material/set-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/set-none.svg b/doc/theme/material/.icons/material/set-none.svg new file mode 100644 index 00000000..c1e1ea4d --- /dev/null +++ b/doc/theme/material/.icons/material/set-none.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/set-right.svg b/doc/theme/material/.icons/material/set-right.svg new file mode 100644 index 00000000..070e6d1e --- /dev/null +++ b/doc/theme/material/.icons/material/set-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/set-top-box.svg b/doc/theme/material/.icons/material/set-top-box.svg new file mode 100644 index 00000000..0afdd3ea --- /dev/null +++ b/doc/theme/material/.icons/material/set-top-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/settings-helper.svg b/doc/theme/material/.icons/material/settings-helper.svg new file mode 100644 index 00000000..4dcf4378 --- /dev/null +++ b/doc/theme/material/.icons/material/settings-helper.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shaker-outline.svg b/doc/theme/material/.icons/material/shaker-outline.svg new file mode 100644 index 00000000..37ac2d17 --- /dev/null +++ b/doc/theme/material/.icons/material/shaker-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shaker.svg b/doc/theme/material/.icons/material/shaker.svg new file mode 100644 index 00000000..7c9a9837 --- /dev/null +++ b/doc/theme/material/.icons/material/shaker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shape-circle-plus.svg b/doc/theme/material/.icons/material/shape-circle-plus.svg new file mode 100644 index 00000000..792a80b9 --- /dev/null +++ b/doc/theme/material/.icons/material/shape-circle-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shape-outline.svg b/doc/theme/material/.icons/material/shape-outline.svg new file mode 100644 index 00000000..e3795ed1 --- /dev/null +++ b/doc/theme/material/.icons/material/shape-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shape-oval-plus.svg b/doc/theme/material/.icons/material/shape-oval-plus.svg new file mode 100644 index 00000000..bf05eac8 --- /dev/null +++ b/doc/theme/material/.icons/material/shape-oval-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shape-plus.svg b/doc/theme/material/.icons/material/shape-plus.svg new file mode 100644 index 00000000..c72191bb --- /dev/null +++ b/doc/theme/material/.icons/material/shape-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shape-polygon-plus.svg b/doc/theme/material/.icons/material/shape-polygon-plus.svg new file mode 100644 index 00000000..566c4269 --- /dev/null +++ b/doc/theme/material/.icons/material/shape-polygon-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shape-rectangle-plus.svg b/doc/theme/material/.icons/material/shape-rectangle-plus.svg new file mode 100644 index 00000000..2e538b45 --- /dev/null +++ b/doc/theme/material/.icons/material/shape-rectangle-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shape-square-plus.svg b/doc/theme/material/.icons/material/shape-square-plus.svg new file mode 100644 index 00000000..80d8ef11 --- /dev/null +++ b/doc/theme/material/.icons/material/shape-square-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shape.svg b/doc/theme/material/.icons/material/shape.svg new file mode 100644 index 00000000..13a9e756 --- /dev/null +++ b/doc/theme/material/.icons/material/shape.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/share-all-outline.svg b/doc/theme/material/.icons/material/share-all-outline.svg new file mode 100644 index 00000000..3dc60e89 --- /dev/null +++ b/doc/theme/material/.icons/material/share-all-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/share-all.svg b/doc/theme/material/.icons/material/share-all.svg new file mode 100644 index 00000000..6112c6a1 --- /dev/null +++ b/doc/theme/material/.icons/material/share-all.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/share-circle.svg b/doc/theme/material/.icons/material/share-circle.svg new file mode 100644 index 00000000..29f3a487 --- /dev/null +++ b/doc/theme/material/.icons/material/share-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/share-off-outline.svg b/doc/theme/material/.icons/material/share-off-outline.svg new file mode 100644 index 00000000..4251c49b --- /dev/null +++ b/doc/theme/material/.icons/material/share-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/share-off.svg b/doc/theme/material/.icons/material/share-off.svg new file mode 100644 index 00000000..cc1d00dd --- /dev/null +++ b/doc/theme/material/.icons/material/share-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/share-outline.svg b/doc/theme/material/.icons/material/share-outline.svg new file mode 100644 index 00000000..c9545b22 --- /dev/null +++ b/doc/theme/material/.icons/material/share-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/share-variant.svg b/doc/theme/material/.icons/material/share-variant.svg new file mode 100644 index 00000000..8e04e7c7 --- /dev/null +++ b/doc/theme/material/.icons/material/share-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/share.svg b/doc/theme/material/.icons/material/share.svg new file mode 100644 index 00000000..3a99d17d --- /dev/null +++ b/doc/theme/material/.icons/material/share.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sheep.svg b/doc/theme/material/.icons/material/sheep.svg new file mode 100644 index 00000000..a4ea7785 --- /dev/null +++ b/doc/theme/material/.icons/material/sheep.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-account-outline.svg b/doc/theme/material/.icons/material/shield-account-outline.svg new file mode 100644 index 00000000..4f470af2 --- /dev/null +++ b/doc/theme/material/.icons/material/shield-account-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-account.svg b/doc/theme/material/.icons/material/shield-account.svg new file mode 100644 index 00000000..c0acdef3 --- /dev/null +++ b/doc/theme/material/.icons/material/shield-account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-airplane-outline.svg b/doc/theme/material/.icons/material/shield-airplane-outline.svg new file mode 100644 index 00000000..10ea8c89 --- /dev/null +++ b/doc/theme/material/.icons/material/shield-airplane-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-airplane.svg b/doc/theme/material/.icons/material/shield-airplane.svg new file mode 100644 index 00000000..5e848376 --- /dev/null +++ b/doc/theme/material/.icons/material/shield-airplane.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-alert-outline.svg b/doc/theme/material/.icons/material/shield-alert-outline.svg new file mode 100644 index 00000000..17476946 --- /dev/null +++ b/doc/theme/material/.icons/material/shield-alert-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-alert.svg b/doc/theme/material/.icons/material/shield-alert.svg new file mode 100644 index 00000000..4b212f9f --- /dev/null +++ b/doc/theme/material/.icons/material/shield-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-bug-outline.svg b/doc/theme/material/.icons/material/shield-bug-outline.svg new file mode 100644 index 00000000..2e71d6bb --- /dev/null +++ b/doc/theme/material/.icons/material/shield-bug-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-bug.svg b/doc/theme/material/.icons/material/shield-bug.svg new file mode 100644 index 00000000..d1635465 --- /dev/null +++ b/doc/theme/material/.icons/material/shield-bug.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-car.svg b/doc/theme/material/.icons/material/shield-car.svg new file mode 100644 index 00000000..fabe1e46 --- /dev/null +++ b/doc/theme/material/.icons/material/shield-car.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-check-outline.svg b/doc/theme/material/.icons/material/shield-check-outline.svg new file mode 100644 index 00000000..e38cc7ff --- /dev/null +++ b/doc/theme/material/.icons/material/shield-check-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-check.svg b/doc/theme/material/.icons/material/shield-check.svg new file mode 100644 index 00000000..6c75da88 --- /dev/null +++ b/doc/theme/material/.icons/material/shield-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-cross-outline.svg b/doc/theme/material/.icons/material/shield-cross-outline.svg new file mode 100644 index 00000000..907ba479 --- /dev/null +++ b/doc/theme/material/.icons/material/shield-cross-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-cross.svg b/doc/theme/material/.icons/material/shield-cross.svg new file mode 100644 index 00000000..57ec5256 --- /dev/null +++ b/doc/theme/material/.icons/material/shield-cross.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-edit-outline.svg b/doc/theme/material/.icons/material/shield-edit-outline.svg new file mode 100644 index 00000000..265c30f6 --- /dev/null +++ b/doc/theme/material/.icons/material/shield-edit-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-edit.svg b/doc/theme/material/.icons/material/shield-edit.svg new file mode 100644 index 00000000..5f68ac91 --- /dev/null +++ b/doc/theme/material/.icons/material/shield-edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-half-full.svg b/doc/theme/material/.icons/material/shield-half-full.svg new file mode 100644 index 00000000..29fba730 --- /dev/null +++ b/doc/theme/material/.icons/material/shield-half-full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-half.svg b/doc/theme/material/.icons/material/shield-half.svg new file mode 100644 index 00000000..026ec76a --- /dev/null +++ b/doc/theme/material/.icons/material/shield-half.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-home-outline.svg b/doc/theme/material/.icons/material/shield-home-outline.svg new file mode 100644 index 00000000..8bebc3c3 --- /dev/null +++ b/doc/theme/material/.icons/material/shield-home-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-home.svg b/doc/theme/material/.icons/material/shield-home.svg new file mode 100644 index 00000000..b4dd32b7 --- /dev/null +++ b/doc/theme/material/.icons/material/shield-home.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-key-outline.svg b/doc/theme/material/.icons/material/shield-key-outline.svg new file mode 100644 index 00000000..c38dd8ea --- /dev/null +++ b/doc/theme/material/.icons/material/shield-key-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-key.svg b/doc/theme/material/.icons/material/shield-key.svg new file mode 100644 index 00000000..69d08e6e --- /dev/null +++ b/doc/theme/material/.icons/material/shield-key.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-link-variant-outline.svg b/doc/theme/material/.icons/material/shield-link-variant-outline.svg new file mode 100644 index 00000000..1f9b8af2 --- /dev/null +++ b/doc/theme/material/.icons/material/shield-link-variant-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-link-variant.svg b/doc/theme/material/.icons/material/shield-link-variant.svg new file mode 100644 index 00000000..2a6f5258 --- /dev/null +++ b/doc/theme/material/.icons/material/shield-link-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-lock-outline.svg b/doc/theme/material/.icons/material/shield-lock-outline.svg new file mode 100644 index 00000000..5f75c814 --- /dev/null +++ b/doc/theme/material/.icons/material/shield-lock-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-lock.svg b/doc/theme/material/.icons/material/shield-lock.svg new file mode 100644 index 00000000..0c7fc01d --- /dev/null +++ b/doc/theme/material/.icons/material/shield-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-off-outline.svg b/doc/theme/material/.icons/material/shield-off-outline.svg new file mode 100644 index 00000000..f064b4d8 --- /dev/null +++ b/doc/theme/material/.icons/material/shield-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-off.svg b/doc/theme/material/.icons/material/shield-off.svg new file mode 100644 index 00000000..e7fc4ad5 --- /dev/null +++ b/doc/theme/material/.icons/material/shield-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-outline.svg b/doc/theme/material/.icons/material/shield-outline.svg new file mode 100644 index 00000000..e618b597 --- /dev/null +++ b/doc/theme/material/.icons/material/shield-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-plus-outline.svg b/doc/theme/material/.icons/material/shield-plus-outline.svg new file mode 100644 index 00000000..a1180f5c --- /dev/null +++ b/doc/theme/material/.icons/material/shield-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-plus.svg b/doc/theme/material/.icons/material/shield-plus.svg new file mode 100644 index 00000000..099994ea --- /dev/null +++ b/doc/theme/material/.icons/material/shield-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-refresh-outline.svg b/doc/theme/material/.icons/material/shield-refresh-outline.svg new file mode 100644 index 00000000..ddab4542 --- /dev/null +++ b/doc/theme/material/.icons/material/shield-refresh-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-refresh.svg b/doc/theme/material/.icons/material/shield-refresh.svg new file mode 100644 index 00000000..10a65413 --- /dev/null +++ b/doc/theme/material/.icons/material/shield-refresh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-remove-outline.svg b/doc/theme/material/.icons/material/shield-remove-outline.svg new file mode 100644 index 00000000..eefa52da --- /dev/null +++ b/doc/theme/material/.icons/material/shield-remove-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-remove.svg b/doc/theme/material/.icons/material/shield-remove.svg new file mode 100644 index 00000000..c6154531 --- /dev/null +++ b/doc/theme/material/.icons/material/shield-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-search.svg b/doc/theme/material/.icons/material/shield-search.svg new file mode 100644 index 00000000..43568d9c --- /dev/null +++ b/doc/theme/material/.icons/material/shield-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-star-outline.svg b/doc/theme/material/.icons/material/shield-star-outline.svg new file mode 100644 index 00000000..28099c1d --- /dev/null +++ b/doc/theme/material/.icons/material/shield-star-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-star.svg b/doc/theme/material/.icons/material/shield-star.svg new file mode 100644 index 00000000..c6a056a5 --- /dev/null +++ b/doc/theme/material/.icons/material/shield-star.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-sun-outline.svg b/doc/theme/material/.icons/material/shield-sun-outline.svg new file mode 100644 index 00000000..b1437044 --- /dev/null +++ b/doc/theme/material/.icons/material/shield-sun-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-sun.svg b/doc/theme/material/.icons/material/shield-sun.svg new file mode 100644 index 00000000..ffc1b15e --- /dev/null +++ b/doc/theme/material/.icons/material/shield-sun.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-sync-outline.svg b/doc/theme/material/.icons/material/shield-sync-outline.svg new file mode 100644 index 00000000..39200be8 --- /dev/null +++ b/doc/theme/material/.icons/material/shield-sync-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield-sync.svg b/doc/theme/material/.icons/material/shield-sync.svg new file mode 100644 index 00000000..aadd011f --- /dev/null +++ b/doc/theme/material/.icons/material/shield-sync.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shield.svg b/doc/theme/material/.icons/material/shield.svg new file mode 100644 index 00000000..a33510b5 --- /dev/null +++ b/doc/theme/material/.icons/material/shield.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ship-wheel.svg b/doc/theme/material/.icons/material/ship-wheel.svg new file mode 100644 index 00000000..55ea6820 --- /dev/null +++ b/doc/theme/material/.icons/material/ship-wheel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shoe-formal.svg b/doc/theme/material/.icons/material/shoe-formal.svg new file mode 100644 index 00000000..e6bac686 --- /dev/null +++ b/doc/theme/material/.icons/material/shoe-formal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shoe-heel.svg b/doc/theme/material/.icons/material/shoe-heel.svg new file mode 100644 index 00000000..239bcd2e --- /dev/null +++ b/doc/theme/material/.icons/material/shoe-heel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shoe-print.svg b/doc/theme/material/.icons/material/shoe-print.svg new file mode 100644 index 00000000..4048367e --- /dev/null +++ b/doc/theme/material/.icons/material/shoe-print.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shopping-music.svg b/doc/theme/material/.icons/material/shopping-music.svg new file mode 100644 index 00000000..0c10c436 --- /dev/null +++ b/doc/theme/material/.icons/material/shopping-music.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shopping-outline.svg b/doc/theme/material/.icons/material/shopping-outline.svg new file mode 100644 index 00000000..d5bc6418 --- /dev/null +++ b/doc/theme/material/.icons/material/shopping-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shopping-search.svg b/doc/theme/material/.icons/material/shopping-search.svg new file mode 100644 index 00000000..6cbe4f33 --- /dev/null +++ b/doc/theme/material/.icons/material/shopping-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shopping.svg b/doc/theme/material/.icons/material/shopping.svg new file mode 100644 index 00000000..9226448f --- /dev/null +++ b/doc/theme/material/.icons/material/shopping.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shovel-off.svg b/doc/theme/material/.icons/material/shovel-off.svg new file mode 100644 index 00000000..f9399392 --- /dev/null +++ b/doc/theme/material/.icons/material/shovel-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shovel.svg b/doc/theme/material/.icons/material/shovel.svg new file mode 100644 index 00000000..99218f2a --- /dev/null +++ b/doc/theme/material/.icons/material/shovel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shower-head.svg b/doc/theme/material/.icons/material/shower-head.svg new file mode 100644 index 00000000..0322aee0 --- /dev/null +++ b/doc/theme/material/.icons/material/shower-head.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shower.svg b/doc/theme/material/.icons/material/shower.svg new file mode 100644 index 00000000..d6632936 --- /dev/null +++ b/doc/theme/material/.icons/material/shower.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shredder.svg b/doc/theme/material/.icons/material/shredder.svg new file mode 100644 index 00000000..02de69fa --- /dev/null +++ b/doc/theme/material/.icons/material/shredder.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shuffle-disabled.svg b/doc/theme/material/.icons/material/shuffle-disabled.svg new file mode 100644 index 00000000..234f5d5d --- /dev/null +++ b/doc/theme/material/.icons/material/shuffle-disabled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shuffle-variant.svg b/doc/theme/material/.icons/material/shuffle-variant.svg new file mode 100644 index 00000000..45431ee6 --- /dev/null +++ b/doc/theme/material/.icons/material/shuffle-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shuffle.svg b/doc/theme/material/.icons/material/shuffle.svg new file mode 100644 index 00000000..15823bb9 --- /dev/null +++ b/doc/theme/material/.icons/material/shuffle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/shuriken.svg b/doc/theme/material/.icons/material/shuriken.svg new file mode 100644 index 00000000..4112c1bc --- /dev/null +++ b/doc/theme/material/.icons/material/shuriken.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sigma-lower.svg b/doc/theme/material/.icons/material/sigma-lower.svg new file mode 100644 index 00000000..1db6e150 --- /dev/null +++ b/doc/theme/material/.icons/material/sigma-lower.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sigma.svg b/doc/theme/material/.icons/material/sigma.svg new file mode 100644 index 00000000..6d2f2705 --- /dev/null +++ b/doc/theme/material/.icons/material/sigma.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sign-caution.svg b/doc/theme/material/.icons/material/sign-caution.svg new file mode 100644 index 00000000..a1447f83 --- /dev/null +++ b/doc/theme/material/.icons/material/sign-caution.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sign-direction-minus.svg b/doc/theme/material/.icons/material/sign-direction-minus.svg new file mode 100644 index 00000000..aa6f9b83 --- /dev/null +++ b/doc/theme/material/.icons/material/sign-direction-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sign-direction-plus.svg b/doc/theme/material/.icons/material/sign-direction-plus.svg new file mode 100644 index 00000000..b74d8f5c --- /dev/null +++ b/doc/theme/material/.icons/material/sign-direction-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sign-direction-remove.svg b/doc/theme/material/.icons/material/sign-direction-remove.svg new file mode 100644 index 00000000..8a92d552 --- /dev/null +++ b/doc/theme/material/.icons/material/sign-direction-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sign-direction.svg b/doc/theme/material/.icons/material/sign-direction.svg new file mode 100644 index 00000000..252bb64a --- /dev/null +++ b/doc/theme/material/.icons/material/sign-direction.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sign-real-estate.svg b/doc/theme/material/.icons/material/sign-real-estate.svg new file mode 100644 index 00000000..99e60aa6 --- /dev/null +++ b/doc/theme/material/.icons/material/sign-real-estate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sign-text.svg b/doc/theme/material/.icons/material/sign-text.svg new file mode 100644 index 00000000..8e69635f --- /dev/null +++ b/doc/theme/material/.icons/material/sign-text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/signal-2g.svg b/doc/theme/material/.icons/material/signal-2g.svg new file mode 100644 index 00000000..370c9d86 --- /dev/null +++ b/doc/theme/material/.icons/material/signal-2g.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/signal-3g.svg b/doc/theme/material/.icons/material/signal-3g.svg new file mode 100644 index 00000000..28f9c958 --- /dev/null +++ b/doc/theme/material/.icons/material/signal-3g.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/signal-4g.svg b/doc/theme/material/.icons/material/signal-4g.svg new file mode 100644 index 00000000..37bce316 --- /dev/null +++ b/doc/theme/material/.icons/material/signal-4g.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/signal-5g.svg b/doc/theme/material/.icons/material/signal-5g.svg new file mode 100644 index 00000000..1e6f373d --- /dev/null +++ b/doc/theme/material/.icons/material/signal-5g.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/signal-cellular-1.svg b/doc/theme/material/.icons/material/signal-cellular-1.svg new file mode 100644 index 00000000..f7f553d9 --- /dev/null +++ b/doc/theme/material/.icons/material/signal-cellular-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/signal-cellular-2.svg b/doc/theme/material/.icons/material/signal-cellular-2.svg new file mode 100644 index 00000000..2ebbbfb5 --- /dev/null +++ b/doc/theme/material/.icons/material/signal-cellular-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/signal-cellular-3.svg b/doc/theme/material/.icons/material/signal-cellular-3.svg new file mode 100644 index 00000000..2683a645 --- /dev/null +++ b/doc/theme/material/.icons/material/signal-cellular-3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/signal-cellular-outline.svg b/doc/theme/material/.icons/material/signal-cellular-outline.svg new file mode 100644 index 00000000..e4ef1c3d --- /dev/null +++ b/doc/theme/material/.icons/material/signal-cellular-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/signal-distance-variant.svg b/doc/theme/material/.icons/material/signal-distance-variant.svg new file mode 100644 index 00000000..afd4664f --- /dev/null +++ b/doc/theme/material/.icons/material/signal-distance-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/signal-hspa-plus.svg b/doc/theme/material/.icons/material/signal-hspa-plus.svg new file mode 100644 index 00000000..b924b264 --- /dev/null +++ b/doc/theme/material/.icons/material/signal-hspa-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/signal-hspa.svg b/doc/theme/material/.icons/material/signal-hspa.svg new file mode 100644 index 00000000..bf4470fb --- /dev/null +++ b/doc/theme/material/.icons/material/signal-hspa.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/signal-off.svg b/doc/theme/material/.icons/material/signal-off.svg new file mode 100644 index 00000000..ba961951 --- /dev/null +++ b/doc/theme/material/.icons/material/signal-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/signal-variant.svg b/doc/theme/material/.icons/material/signal-variant.svg new file mode 100644 index 00000000..4667276c --- /dev/null +++ b/doc/theme/material/.icons/material/signal-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/signal.svg b/doc/theme/material/.icons/material/signal.svg new file mode 100644 index 00000000..2a02fff4 --- /dev/null +++ b/doc/theme/material/.icons/material/signal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/signature-freehand.svg b/doc/theme/material/.icons/material/signature-freehand.svg new file mode 100644 index 00000000..5503d194 --- /dev/null +++ b/doc/theme/material/.icons/material/signature-freehand.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/signature-image.svg b/doc/theme/material/.icons/material/signature-image.svg new file mode 100644 index 00000000..45569fd8 --- /dev/null +++ b/doc/theme/material/.icons/material/signature-image.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/signature-text.svg b/doc/theme/material/.icons/material/signature-text.svg new file mode 100644 index 00000000..6cb441f2 --- /dev/null +++ b/doc/theme/material/.icons/material/signature-text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/signature.svg b/doc/theme/material/.icons/material/signature.svg new file mode 100644 index 00000000..0753352e --- /dev/null +++ b/doc/theme/material/.icons/material/signature.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/silo.svg b/doc/theme/material/.icons/material/silo.svg new file mode 100644 index 00000000..9bd392db --- /dev/null +++ b/doc/theme/material/.icons/material/silo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/silverware-clean.svg b/doc/theme/material/.icons/material/silverware-clean.svg new file mode 100644 index 00000000..6c06dbff --- /dev/null +++ b/doc/theme/material/.icons/material/silverware-clean.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/silverware-fork-knife.svg b/doc/theme/material/.icons/material/silverware-fork-knife.svg new file mode 100644 index 00000000..86164872 --- /dev/null +++ b/doc/theme/material/.icons/material/silverware-fork-knife.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/silverware-fork.svg b/doc/theme/material/.icons/material/silverware-fork.svg new file mode 100644 index 00000000..b672e0d7 --- /dev/null +++ b/doc/theme/material/.icons/material/silverware-fork.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/silverware-spoon.svg b/doc/theme/material/.icons/material/silverware-spoon.svg new file mode 100644 index 00000000..da1b7145 --- /dev/null +++ b/doc/theme/material/.icons/material/silverware-spoon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/silverware-variant.svg b/doc/theme/material/.icons/material/silverware-variant.svg new file mode 100644 index 00000000..0c6f3ce9 --- /dev/null +++ b/doc/theme/material/.icons/material/silverware-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/silverware.svg b/doc/theme/material/.icons/material/silverware.svg new file mode 100644 index 00000000..a07cb9dc --- /dev/null +++ b/doc/theme/material/.icons/material/silverware.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sim-alert.svg b/doc/theme/material/.icons/material/sim-alert.svg new file mode 100644 index 00000000..d5a6b9dc --- /dev/null +++ b/doc/theme/material/.icons/material/sim-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sim-off.svg b/doc/theme/material/.icons/material/sim-off.svg new file mode 100644 index 00000000..2839c869 --- /dev/null +++ b/doc/theme/material/.icons/material/sim-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sim.svg b/doc/theme/material/.icons/material/sim.svg new file mode 100644 index 00000000..d32de7f1 --- /dev/null +++ b/doc/theme/material/.icons/material/sim.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/simple-icons.svg b/doc/theme/material/.icons/material/simple-icons.svg new file mode 100644 index 00000000..47a6e260 --- /dev/null +++ b/doc/theme/material/.icons/material/simple-icons.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sina-weibo.svg b/doc/theme/material/.icons/material/sina-weibo.svg new file mode 100644 index 00000000..4432fd5f --- /dev/null +++ b/doc/theme/material/.icons/material/sina-weibo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sitemap.svg b/doc/theme/material/.icons/material/sitemap.svg new file mode 100644 index 00000000..93940971 --- /dev/null +++ b/doc/theme/material/.icons/material/sitemap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/size-l.svg b/doc/theme/material/.icons/material/size-l.svg new file mode 100644 index 00000000..f3ebde28 --- /dev/null +++ b/doc/theme/material/.icons/material/size-l.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/size-m.svg b/doc/theme/material/.icons/material/size-m.svg new file mode 100644 index 00000000..7d9ed988 --- /dev/null +++ b/doc/theme/material/.icons/material/size-m.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/size-s.svg b/doc/theme/material/.icons/material/size-s.svg new file mode 100644 index 00000000..57bcd501 --- /dev/null +++ b/doc/theme/material/.icons/material/size-s.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/size-xl.svg b/doc/theme/material/.icons/material/size-xl.svg new file mode 100644 index 00000000..5217dfc3 --- /dev/null +++ b/doc/theme/material/.icons/material/size-xl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/size-xs.svg b/doc/theme/material/.icons/material/size-xs.svg new file mode 100644 index 00000000..19e5b5df --- /dev/null +++ b/doc/theme/material/.icons/material/size-xs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/size-xxl.svg b/doc/theme/material/.icons/material/size-xxl.svg new file mode 100644 index 00000000..68da4b0c --- /dev/null +++ b/doc/theme/material/.icons/material/size-xxl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/size-xxs.svg b/doc/theme/material/.icons/material/size-xxs.svg new file mode 100644 index 00000000..2210b6d7 --- /dev/null +++ b/doc/theme/material/.icons/material/size-xxs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/size-xxxl.svg b/doc/theme/material/.icons/material/size-xxxl.svg new file mode 100644 index 00000000..2e05745e --- /dev/null +++ b/doc/theme/material/.icons/material/size-xxxl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/skate.svg b/doc/theme/material/.icons/material/skate.svg new file mode 100644 index 00000000..b08f45b5 --- /dev/null +++ b/doc/theme/material/.icons/material/skate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/skew-less.svg b/doc/theme/material/.icons/material/skew-less.svg new file mode 100644 index 00000000..243cf598 --- /dev/null +++ b/doc/theme/material/.icons/material/skew-less.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/skew-more.svg b/doc/theme/material/.icons/material/skew-more.svg new file mode 100644 index 00000000..f59a90a1 --- /dev/null +++ b/doc/theme/material/.icons/material/skew-more.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ski-cross-country.svg b/doc/theme/material/.icons/material/ski-cross-country.svg new file mode 100644 index 00000000..406ca43d --- /dev/null +++ b/doc/theme/material/.icons/material/ski-cross-country.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ski-water.svg b/doc/theme/material/.icons/material/ski-water.svg new file mode 100644 index 00000000..ba627990 --- /dev/null +++ b/doc/theme/material/.icons/material/ski-water.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ski.svg b/doc/theme/material/.icons/material/ski.svg new file mode 100644 index 00000000..c2ab1a29 --- /dev/null +++ b/doc/theme/material/.icons/material/ski.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/skip-backward-outline.svg b/doc/theme/material/.icons/material/skip-backward-outline.svg new file mode 100644 index 00000000..8d9bb15d --- /dev/null +++ b/doc/theme/material/.icons/material/skip-backward-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/skip-backward.svg b/doc/theme/material/.icons/material/skip-backward.svg new file mode 100644 index 00000000..e537adad --- /dev/null +++ b/doc/theme/material/.icons/material/skip-backward.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/skip-forward-outline.svg b/doc/theme/material/.icons/material/skip-forward-outline.svg new file mode 100644 index 00000000..4fe69874 --- /dev/null +++ b/doc/theme/material/.icons/material/skip-forward-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/skip-forward.svg b/doc/theme/material/.icons/material/skip-forward.svg new file mode 100644 index 00000000..4a54a18d --- /dev/null +++ b/doc/theme/material/.icons/material/skip-forward.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/skip-next-circle-outline.svg b/doc/theme/material/.icons/material/skip-next-circle-outline.svg new file mode 100644 index 00000000..845662a9 --- /dev/null +++ b/doc/theme/material/.icons/material/skip-next-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/skip-next-circle.svg b/doc/theme/material/.icons/material/skip-next-circle.svg new file mode 100644 index 00000000..5ef819e8 --- /dev/null +++ b/doc/theme/material/.icons/material/skip-next-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/skip-next-outline.svg b/doc/theme/material/.icons/material/skip-next-outline.svg new file mode 100644 index 00000000..ada16c91 --- /dev/null +++ b/doc/theme/material/.icons/material/skip-next-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/skip-next.svg b/doc/theme/material/.icons/material/skip-next.svg new file mode 100644 index 00000000..d34b53c3 --- /dev/null +++ b/doc/theme/material/.icons/material/skip-next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/skip-previous-circle-outline.svg b/doc/theme/material/.icons/material/skip-previous-circle-outline.svg new file mode 100644 index 00000000..1570437e --- /dev/null +++ b/doc/theme/material/.icons/material/skip-previous-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/skip-previous-circle.svg b/doc/theme/material/.icons/material/skip-previous-circle.svg new file mode 100644 index 00000000..df61e8c0 --- /dev/null +++ b/doc/theme/material/.icons/material/skip-previous-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/skip-previous-outline.svg b/doc/theme/material/.icons/material/skip-previous-outline.svg new file mode 100644 index 00000000..07ab1a6d --- /dev/null +++ b/doc/theme/material/.icons/material/skip-previous-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/skip-previous.svg b/doc/theme/material/.icons/material/skip-previous.svg new file mode 100644 index 00000000..5d3f8e2c --- /dev/null +++ b/doc/theme/material/.icons/material/skip-previous.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/skull-crossbones-outline.svg b/doc/theme/material/.icons/material/skull-crossbones-outline.svg new file mode 100644 index 00000000..66fd23ce --- /dev/null +++ b/doc/theme/material/.icons/material/skull-crossbones-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/skull-crossbones.svg b/doc/theme/material/.icons/material/skull-crossbones.svg new file mode 100644 index 00000000..db4b9671 --- /dev/null +++ b/doc/theme/material/.icons/material/skull-crossbones.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/skull-outline.svg b/doc/theme/material/.icons/material/skull-outline.svg new file mode 100644 index 00000000..e923413d --- /dev/null +++ b/doc/theme/material/.icons/material/skull-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/skull.svg b/doc/theme/material/.icons/material/skull.svg new file mode 100644 index 00000000..2d89ceed --- /dev/null +++ b/doc/theme/material/.icons/material/skull.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/skype-business.svg b/doc/theme/material/.icons/material/skype-business.svg new file mode 100644 index 00000000..7af3c919 --- /dev/null +++ b/doc/theme/material/.icons/material/skype-business.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/skype.svg b/doc/theme/material/.icons/material/skype.svg new file mode 100644 index 00000000..efce472c --- /dev/null +++ b/doc/theme/material/.icons/material/skype.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/slack.svg b/doc/theme/material/.icons/material/slack.svg new file mode 100644 index 00000000..33c9e2ca --- /dev/null +++ b/doc/theme/material/.icons/material/slack.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/slash-forward-box.svg b/doc/theme/material/.icons/material/slash-forward-box.svg new file mode 100644 index 00000000..b615dfec --- /dev/null +++ b/doc/theme/material/.icons/material/slash-forward-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/slash-forward.svg b/doc/theme/material/.icons/material/slash-forward.svg new file mode 100644 index 00000000..89d74bfc --- /dev/null +++ b/doc/theme/material/.icons/material/slash-forward.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sleep-off.svg b/doc/theme/material/.icons/material/sleep-off.svg new file mode 100644 index 00000000..94457b56 --- /dev/null +++ b/doc/theme/material/.icons/material/sleep-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sleep.svg b/doc/theme/material/.icons/material/sleep.svg new file mode 100644 index 00000000..86c4ee55 --- /dev/null +++ b/doc/theme/material/.icons/material/sleep.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/slope-downhill.svg b/doc/theme/material/.icons/material/slope-downhill.svg new file mode 100644 index 00000000..89c3da13 --- /dev/null +++ b/doc/theme/material/.icons/material/slope-downhill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/slope-uphill.svg b/doc/theme/material/.icons/material/slope-uphill.svg new file mode 100644 index 00000000..1bd5527b --- /dev/null +++ b/doc/theme/material/.icons/material/slope-uphill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/slot-machine-outline.svg b/doc/theme/material/.icons/material/slot-machine-outline.svg new file mode 100644 index 00000000..773671d4 --- /dev/null +++ b/doc/theme/material/.icons/material/slot-machine-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/slot-machine.svg b/doc/theme/material/.icons/material/slot-machine.svg new file mode 100644 index 00000000..4634fb22 --- /dev/null +++ b/doc/theme/material/.icons/material/slot-machine.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/smart-card-outline.svg b/doc/theme/material/.icons/material/smart-card-outline.svg new file mode 100644 index 00000000..5a1de423 --- /dev/null +++ b/doc/theme/material/.icons/material/smart-card-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/smart-card-reader-outline.svg b/doc/theme/material/.icons/material/smart-card-reader-outline.svg new file mode 100644 index 00000000..3d0dab54 --- /dev/null +++ b/doc/theme/material/.icons/material/smart-card-reader-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/smart-card-reader.svg b/doc/theme/material/.icons/material/smart-card-reader.svg new file mode 100644 index 00000000..c4c577f5 --- /dev/null +++ b/doc/theme/material/.icons/material/smart-card-reader.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/smart-card.svg b/doc/theme/material/.icons/material/smart-card.svg new file mode 100644 index 00000000..5ac9dff9 --- /dev/null +++ b/doc/theme/material/.icons/material/smart-card.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/smog.svg b/doc/theme/material/.icons/material/smog.svg new file mode 100644 index 00000000..57bbb8a4 --- /dev/null +++ b/doc/theme/material/.icons/material/smog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/smoke-detector.svg b/doc/theme/material/.icons/material/smoke-detector.svg new file mode 100644 index 00000000..13883c9d --- /dev/null +++ b/doc/theme/material/.icons/material/smoke-detector.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/smoking-off.svg b/doc/theme/material/.icons/material/smoking-off.svg new file mode 100644 index 00000000..06ffe27a --- /dev/null +++ b/doc/theme/material/.icons/material/smoking-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/smoking-pipe.svg b/doc/theme/material/.icons/material/smoking-pipe.svg new file mode 100644 index 00000000..e1100101 --- /dev/null +++ b/doc/theme/material/.icons/material/smoking-pipe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/smoking.svg b/doc/theme/material/.icons/material/smoking.svg new file mode 100644 index 00000000..19069736 --- /dev/null +++ b/doc/theme/material/.icons/material/smoking.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/snapchat.svg b/doc/theme/material/.icons/material/snapchat.svg new file mode 100644 index 00000000..27fac2e2 --- /dev/null +++ b/doc/theme/material/.icons/material/snapchat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/snowboard.svg b/doc/theme/material/.icons/material/snowboard.svg new file mode 100644 index 00000000..74242c2c --- /dev/null +++ b/doc/theme/material/.icons/material/snowboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/snowflake-alert.svg b/doc/theme/material/.icons/material/snowflake-alert.svg new file mode 100644 index 00000000..b547fe06 --- /dev/null +++ b/doc/theme/material/.icons/material/snowflake-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/snowflake-melt.svg b/doc/theme/material/.icons/material/snowflake-melt.svg new file mode 100644 index 00000000..c3912829 --- /dev/null +++ b/doc/theme/material/.icons/material/snowflake-melt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/snowflake-variant.svg b/doc/theme/material/.icons/material/snowflake-variant.svg new file mode 100644 index 00000000..74f3b1c0 --- /dev/null +++ b/doc/theme/material/.icons/material/snowflake-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/snowflake.svg b/doc/theme/material/.icons/material/snowflake.svg new file mode 100644 index 00000000..9f710085 --- /dev/null +++ b/doc/theme/material/.icons/material/snowflake.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/snowman.svg b/doc/theme/material/.icons/material/snowman.svg new file mode 100644 index 00000000..108852be --- /dev/null +++ b/doc/theme/material/.icons/material/snowman.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/soccer-field.svg b/doc/theme/material/.icons/material/soccer-field.svg new file mode 100644 index 00000000..94cbb8fb --- /dev/null +++ b/doc/theme/material/.icons/material/soccer-field.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/soccer.svg b/doc/theme/material/.icons/material/soccer.svg new file mode 100644 index 00000000..350e57e0 --- /dev/null +++ b/doc/theme/material/.icons/material/soccer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sofa.svg b/doc/theme/material/.icons/material/sofa.svg new file mode 100644 index 00000000..1ef2fd1c --- /dev/null +++ b/doc/theme/material/.icons/material/sofa.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/solar-panel-large.svg b/doc/theme/material/.icons/material/solar-panel-large.svg new file mode 100644 index 00000000..4314a6a6 --- /dev/null +++ b/doc/theme/material/.icons/material/solar-panel-large.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/solar-panel.svg b/doc/theme/material/.icons/material/solar-panel.svg new file mode 100644 index 00000000..350e7abc --- /dev/null +++ b/doc/theme/material/.icons/material/solar-panel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/solar-power.svg b/doc/theme/material/.icons/material/solar-power.svg new file mode 100644 index 00000000..832341ed --- /dev/null +++ b/doc/theme/material/.icons/material/solar-power.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/soldering-iron.svg b/doc/theme/material/.icons/material/soldering-iron.svg new file mode 100644 index 00000000..f10ce9d1 --- /dev/null +++ b/doc/theme/material/.icons/material/soldering-iron.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/solid.svg b/doc/theme/material/.icons/material/solid.svg new file mode 100644 index 00000000..950c6c6c --- /dev/null +++ b/doc/theme/material/.icons/material/solid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sony-playstation.svg b/doc/theme/material/.icons/material/sony-playstation.svg new file mode 100644 index 00000000..f78d58a8 --- /dev/null +++ b/doc/theme/material/.icons/material/sony-playstation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sort-alphabetical-ascending-variant.svg b/doc/theme/material/.icons/material/sort-alphabetical-ascending-variant.svg new file mode 100644 index 00000000..3c09974a --- /dev/null +++ b/doc/theme/material/.icons/material/sort-alphabetical-ascending-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sort-alphabetical-ascending.svg b/doc/theme/material/.icons/material/sort-alphabetical-ascending.svg new file mode 100644 index 00000000..3c8bc985 --- /dev/null +++ b/doc/theme/material/.icons/material/sort-alphabetical-ascending.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sort-alphabetical-descending-variant.svg b/doc/theme/material/.icons/material/sort-alphabetical-descending-variant.svg new file mode 100644 index 00000000..4c4b8519 --- /dev/null +++ b/doc/theme/material/.icons/material/sort-alphabetical-descending-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sort-alphabetical-descending.svg b/doc/theme/material/.icons/material/sort-alphabetical-descending.svg new file mode 100644 index 00000000..1873c422 --- /dev/null +++ b/doc/theme/material/.icons/material/sort-alphabetical-descending.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sort-alphabetical-variant.svg b/doc/theme/material/.icons/material/sort-alphabetical-variant.svg new file mode 100644 index 00000000..9329254b --- /dev/null +++ b/doc/theme/material/.icons/material/sort-alphabetical-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sort-ascending.svg b/doc/theme/material/.icons/material/sort-ascending.svg new file mode 100644 index 00000000..190bec8b --- /dev/null +++ b/doc/theme/material/.icons/material/sort-ascending.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sort-bool-ascending-variant.svg b/doc/theme/material/.icons/material/sort-bool-ascending-variant.svg new file mode 100644 index 00000000..1dbcfa1f --- /dev/null +++ b/doc/theme/material/.icons/material/sort-bool-ascending-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sort-bool-ascending.svg b/doc/theme/material/.icons/material/sort-bool-ascending.svg new file mode 100644 index 00000000..e35f00a6 --- /dev/null +++ b/doc/theme/material/.icons/material/sort-bool-ascending.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sort-bool-descending-variant.svg b/doc/theme/material/.icons/material/sort-bool-descending-variant.svg new file mode 100644 index 00000000..32ff402a --- /dev/null +++ b/doc/theme/material/.icons/material/sort-bool-descending-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sort-bool-descending.svg b/doc/theme/material/.icons/material/sort-bool-descending.svg new file mode 100644 index 00000000..fbe94d63 --- /dev/null +++ b/doc/theme/material/.icons/material/sort-bool-descending.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sort-descending.svg b/doc/theme/material/.icons/material/sort-descending.svg new file mode 100644 index 00000000..c47f9c7e --- /dev/null +++ b/doc/theme/material/.icons/material/sort-descending.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sort-numeric-ascending-variant.svg b/doc/theme/material/.icons/material/sort-numeric-ascending-variant.svg new file mode 100644 index 00000000..502f97e0 --- /dev/null +++ b/doc/theme/material/.icons/material/sort-numeric-ascending-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sort-numeric-ascending.svg b/doc/theme/material/.icons/material/sort-numeric-ascending.svg new file mode 100644 index 00000000..10b4ddd9 --- /dev/null +++ b/doc/theme/material/.icons/material/sort-numeric-ascending.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sort-numeric-descending-variant.svg b/doc/theme/material/.icons/material/sort-numeric-descending-variant.svg new file mode 100644 index 00000000..1d44c2f0 --- /dev/null +++ b/doc/theme/material/.icons/material/sort-numeric-descending-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sort-numeric-descending.svg b/doc/theme/material/.icons/material/sort-numeric-descending.svg new file mode 100644 index 00000000..ba0cf411 --- /dev/null +++ b/doc/theme/material/.icons/material/sort-numeric-descending.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sort-numeric-variant.svg b/doc/theme/material/.icons/material/sort-numeric-variant.svg new file mode 100644 index 00000000..78c1f55e --- /dev/null +++ b/doc/theme/material/.icons/material/sort-numeric-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sort-reverse-variant.svg b/doc/theme/material/.icons/material/sort-reverse-variant.svg new file mode 100644 index 00000000..9b60d241 --- /dev/null +++ b/doc/theme/material/.icons/material/sort-reverse-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sort-variant-lock-open.svg b/doc/theme/material/.icons/material/sort-variant-lock-open.svg new file mode 100644 index 00000000..b2a3a297 --- /dev/null +++ b/doc/theme/material/.icons/material/sort-variant-lock-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sort-variant-lock.svg b/doc/theme/material/.icons/material/sort-variant-lock.svg new file mode 100644 index 00000000..c43f2dcd --- /dev/null +++ b/doc/theme/material/.icons/material/sort-variant-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sort-variant-remove.svg b/doc/theme/material/.icons/material/sort-variant-remove.svg new file mode 100644 index 00000000..91fb1980 --- /dev/null +++ b/doc/theme/material/.icons/material/sort-variant-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sort-variant.svg b/doc/theme/material/.icons/material/sort-variant.svg new file mode 100644 index 00000000..8370e297 --- /dev/null +++ b/doc/theme/material/.icons/material/sort-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sort.svg b/doc/theme/material/.icons/material/sort.svg new file mode 100644 index 00000000..bd5f7796 --- /dev/null +++ b/doc/theme/material/.icons/material/sort.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/soundcloud.svg b/doc/theme/material/.icons/material/soundcloud.svg new file mode 100644 index 00000000..094b496b --- /dev/null +++ b/doc/theme/material/.icons/material/soundcloud.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/source-branch.svg b/doc/theme/material/.icons/material/source-branch.svg new file mode 100644 index 00000000..6fdbedf2 --- /dev/null +++ b/doc/theme/material/.icons/material/source-branch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/source-commit-end-local.svg b/doc/theme/material/.icons/material/source-commit-end-local.svg new file mode 100644 index 00000000..c823550b --- /dev/null +++ b/doc/theme/material/.icons/material/source-commit-end-local.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/source-commit-end.svg b/doc/theme/material/.icons/material/source-commit-end.svg new file mode 100644 index 00000000..24df2c79 --- /dev/null +++ b/doc/theme/material/.icons/material/source-commit-end.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/source-commit-local.svg b/doc/theme/material/.icons/material/source-commit-local.svg new file mode 100644 index 00000000..28a2b70f --- /dev/null +++ b/doc/theme/material/.icons/material/source-commit-local.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/source-commit-next-local.svg b/doc/theme/material/.icons/material/source-commit-next-local.svg new file mode 100644 index 00000000..87c26449 --- /dev/null +++ b/doc/theme/material/.icons/material/source-commit-next-local.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/source-commit-start-next-local.svg b/doc/theme/material/.icons/material/source-commit-start-next-local.svg new file mode 100644 index 00000000..4e20664d --- /dev/null +++ b/doc/theme/material/.icons/material/source-commit-start-next-local.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/source-commit-start.svg b/doc/theme/material/.icons/material/source-commit-start.svg new file mode 100644 index 00000000..87a373ec --- /dev/null +++ b/doc/theme/material/.icons/material/source-commit-start.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/source-commit.svg b/doc/theme/material/.icons/material/source-commit.svg new file mode 100644 index 00000000..4c786c08 --- /dev/null +++ b/doc/theme/material/.icons/material/source-commit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/source-fork.svg b/doc/theme/material/.icons/material/source-fork.svg new file mode 100644 index 00000000..bc8ac6cd --- /dev/null +++ b/doc/theme/material/.icons/material/source-fork.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/source-merge.svg b/doc/theme/material/.icons/material/source-merge.svg new file mode 100644 index 00000000..4a661899 --- /dev/null +++ b/doc/theme/material/.icons/material/source-merge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/source-pull.svg b/doc/theme/material/.icons/material/source-pull.svg new file mode 100644 index 00000000..18e48d10 --- /dev/null +++ b/doc/theme/material/.icons/material/source-pull.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/source-repository-multiple.svg b/doc/theme/material/.icons/material/source-repository-multiple.svg new file mode 100644 index 00000000..8c1934a9 --- /dev/null +++ b/doc/theme/material/.icons/material/source-repository-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/source-repository.svg b/doc/theme/material/.icons/material/source-repository.svg new file mode 100644 index 00000000..fbb0d967 --- /dev/null +++ b/doc/theme/material/.icons/material/source-repository.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/soy-sauce-off.svg b/doc/theme/material/.icons/material/soy-sauce-off.svg new file mode 100644 index 00000000..52be7713 --- /dev/null +++ b/doc/theme/material/.icons/material/soy-sauce-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/soy-sauce.svg b/doc/theme/material/.icons/material/soy-sauce.svg new file mode 100644 index 00000000..03f56713 --- /dev/null +++ b/doc/theme/material/.icons/material/soy-sauce.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/spa-outline.svg b/doc/theme/material/.icons/material/spa-outline.svg new file mode 100644 index 00000000..101bc1b3 --- /dev/null +++ b/doc/theme/material/.icons/material/spa-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/spa.svg b/doc/theme/material/.icons/material/spa.svg new file mode 100644 index 00000000..bb384bb9 --- /dev/null +++ b/doc/theme/material/.icons/material/spa.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/space-invaders.svg b/doc/theme/material/.icons/material/space-invaders.svg new file mode 100644 index 00000000..e41eb4f0 --- /dev/null +++ b/doc/theme/material/.icons/material/space-invaders.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/space-station.svg b/doc/theme/material/.icons/material/space-station.svg new file mode 100644 index 00000000..d7f60b35 --- /dev/null +++ b/doc/theme/material/.icons/material/space-station.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/spade.svg b/doc/theme/material/.icons/material/spade.svg new file mode 100644 index 00000000..13cbca62 --- /dev/null +++ b/doc/theme/material/.icons/material/spade.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/speaker-bluetooth.svg b/doc/theme/material/.icons/material/speaker-bluetooth.svg new file mode 100644 index 00000000..5902574c --- /dev/null +++ b/doc/theme/material/.icons/material/speaker-bluetooth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/speaker-multiple.svg b/doc/theme/material/.icons/material/speaker-multiple.svg new file mode 100644 index 00000000..a212a759 --- /dev/null +++ b/doc/theme/material/.icons/material/speaker-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/speaker-off.svg b/doc/theme/material/.icons/material/speaker-off.svg new file mode 100644 index 00000000..665f1e12 --- /dev/null +++ b/doc/theme/material/.icons/material/speaker-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/speaker-wireless.svg b/doc/theme/material/.icons/material/speaker-wireless.svg new file mode 100644 index 00000000..0c415ec9 --- /dev/null +++ b/doc/theme/material/.icons/material/speaker-wireless.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/speaker.svg b/doc/theme/material/.icons/material/speaker.svg new file mode 100644 index 00000000..0ce24b10 --- /dev/null +++ b/doc/theme/material/.icons/material/speaker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/speedometer-medium.svg b/doc/theme/material/.icons/material/speedometer-medium.svg new file mode 100644 index 00000000..cdb982fb --- /dev/null +++ b/doc/theme/material/.icons/material/speedometer-medium.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/speedometer-slow.svg b/doc/theme/material/.icons/material/speedometer-slow.svg new file mode 100644 index 00000000..c1de5d71 --- /dev/null +++ b/doc/theme/material/.icons/material/speedometer-slow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/speedometer.svg b/doc/theme/material/.icons/material/speedometer.svg new file mode 100644 index 00000000..74eab3b5 --- /dev/null +++ b/doc/theme/material/.icons/material/speedometer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/spellcheck.svg b/doc/theme/material/.icons/material/spellcheck.svg new file mode 100644 index 00000000..80b949db --- /dev/null +++ b/doc/theme/material/.icons/material/spellcheck.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/spider-thread.svg b/doc/theme/material/.icons/material/spider-thread.svg new file mode 100644 index 00000000..573c0a6a --- /dev/null +++ b/doc/theme/material/.icons/material/spider-thread.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/spider-web.svg b/doc/theme/material/.icons/material/spider-web.svg new file mode 100644 index 00000000..d297e60e --- /dev/null +++ b/doc/theme/material/.icons/material/spider-web.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/spider.svg b/doc/theme/material/.icons/material/spider.svg new file mode 100644 index 00000000..d0c5e0a6 --- /dev/null +++ b/doc/theme/material/.icons/material/spider.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/spotify.svg b/doc/theme/material/.icons/material/spotify.svg new file mode 100644 index 00000000..3cf61dfc --- /dev/null +++ b/doc/theme/material/.icons/material/spotify.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/spotlight-beam.svg b/doc/theme/material/.icons/material/spotlight-beam.svg new file mode 100644 index 00000000..d1d7694d --- /dev/null +++ b/doc/theme/material/.icons/material/spotlight-beam.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/spotlight.svg b/doc/theme/material/.icons/material/spotlight.svg new file mode 100644 index 00000000..c3a314fd --- /dev/null +++ b/doc/theme/material/.icons/material/spotlight.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/spray-bottle.svg b/doc/theme/material/.icons/material/spray-bottle.svg new file mode 100644 index 00000000..1a1a7487 --- /dev/null +++ b/doc/theme/material/.icons/material/spray-bottle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/spray.svg b/doc/theme/material/.icons/material/spray.svg new file mode 100644 index 00000000..ac055062 --- /dev/null +++ b/doc/theme/material/.icons/material/spray.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sprinkler-variant.svg b/doc/theme/material/.icons/material/sprinkler-variant.svg new file mode 100644 index 00000000..06565b63 --- /dev/null +++ b/doc/theme/material/.icons/material/sprinkler-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sprinkler.svg b/doc/theme/material/.icons/material/sprinkler.svg new file mode 100644 index 00000000..4cc8aa98 --- /dev/null +++ b/doc/theme/material/.icons/material/sprinkler.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sprout-outline.svg b/doc/theme/material/.icons/material/sprout-outline.svg new file mode 100644 index 00000000..caec8f87 --- /dev/null +++ b/doc/theme/material/.icons/material/sprout-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sprout.svg b/doc/theme/material/.icons/material/sprout.svg new file mode 100644 index 00000000..a027cdf2 --- /dev/null +++ b/doc/theme/material/.icons/material/sprout.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/square-edit-outline.svg b/doc/theme/material/.icons/material/square-edit-outline.svg new file mode 100644 index 00000000..d54f9f36 --- /dev/null +++ b/doc/theme/material/.icons/material/square-edit-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/square-medium-outline.svg b/doc/theme/material/.icons/material/square-medium-outline.svg new file mode 100644 index 00000000..82a0b440 --- /dev/null +++ b/doc/theme/material/.icons/material/square-medium-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/square-medium.svg b/doc/theme/material/.icons/material/square-medium.svg new file mode 100644 index 00000000..cdde8b21 --- /dev/null +++ b/doc/theme/material/.icons/material/square-medium.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/square-off-outline.svg b/doc/theme/material/.icons/material/square-off-outline.svg new file mode 100644 index 00000000..891d15a6 --- /dev/null +++ b/doc/theme/material/.icons/material/square-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/square-off.svg b/doc/theme/material/.icons/material/square-off.svg new file mode 100644 index 00000000..7c869407 --- /dev/null +++ b/doc/theme/material/.icons/material/square-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/square-outline.svg b/doc/theme/material/.icons/material/square-outline.svg new file mode 100644 index 00000000..f9621bc7 --- /dev/null +++ b/doc/theme/material/.icons/material/square-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/square-root-box.svg b/doc/theme/material/.icons/material/square-root-box.svg new file mode 100644 index 00000000..f893622e --- /dev/null +++ b/doc/theme/material/.icons/material/square-root-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/square-root.svg b/doc/theme/material/.icons/material/square-root.svg new file mode 100644 index 00000000..75e9c76c --- /dev/null +++ b/doc/theme/material/.icons/material/square-root.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/square-small.svg b/doc/theme/material/.icons/material/square-small.svg new file mode 100644 index 00000000..a3663031 --- /dev/null +++ b/doc/theme/material/.icons/material/square-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/square.svg b/doc/theme/material/.icons/material/square.svg new file mode 100644 index 00000000..50e39f54 --- /dev/null +++ b/doc/theme/material/.icons/material/square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/squeegee.svg b/doc/theme/material/.icons/material/squeegee.svg new file mode 100644 index 00000000..7e274bc9 --- /dev/null +++ b/doc/theme/material/.icons/material/squeegee.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ssh.svg b/doc/theme/material/.icons/material/ssh.svg new file mode 100644 index 00000000..6a303d76 --- /dev/null +++ b/doc/theme/material/.icons/material/ssh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/stack-exchange.svg b/doc/theme/material/.icons/material/stack-exchange.svg new file mode 100644 index 00000000..17d50a55 --- /dev/null +++ b/doc/theme/material/.icons/material/stack-exchange.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/stack-overflow.svg b/doc/theme/material/.icons/material/stack-overflow.svg new file mode 100644 index 00000000..9c174b0a --- /dev/null +++ b/doc/theme/material/.icons/material/stack-overflow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/stackpath.svg b/doc/theme/material/.icons/material/stackpath.svg new file mode 100644 index 00000000..6f0fa2a6 --- /dev/null +++ b/doc/theme/material/.icons/material/stackpath.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/stadium-variant.svg b/doc/theme/material/.icons/material/stadium-variant.svg new file mode 100644 index 00000000..873cb226 --- /dev/null +++ b/doc/theme/material/.icons/material/stadium-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/stadium.svg b/doc/theme/material/.icons/material/stadium.svg new file mode 100644 index 00000000..64520a6a --- /dev/null +++ b/doc/theme/material/.icons/material/stadium.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/stairs-box.svg b/doc/theme/material/.icons/material/stairs-box.svg new file mode 100644 index 00000000..e90ac817 --- /dev/null +++ b/doc/theme/material/.icons/material/stairs-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/stairs-down.svg b/doc/theme/material/.icons/material/stairs-down.svg new file mode 100644 index 00000000..0f44861a --- /dev/null +++ b/doc/theme/material/.icons/material/stairs-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/stairs-up.svg b/doc/theme/material/.icons/material/stairs-up.svg new file mode 100644 index 00000000..50b9be6a --- /dev/null +++ b/doc/theme/material/.icons/material/stairs-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/stairs.svg b/doc/theme/material/.icons/material/stairs.svg new file mode 100644 index 00000000..798e2f5e --- /dev/null +++ b/doc/theme/material/.icons/material/stairs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/stamper.svg b/doc/theme/material/.icons/material/stamper.svg new file mode 100644 index 00000000..3caa539d --- /dev/null +++ b/doc/theme/material/.icons/material/stamper.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/standard-definition.svg b/doc/theme/material/.icons/material/standard-definition.svg new file mode 100644 index 00000000..d3eb8fea --- /dev/null +++ b/doc/theme/material/.icons/material/standard-definition.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/star-box-multiple-outline.svg b/doc/theme/material/.icons/material/star-box-multiple-outline.svg new file mode 100644 index 00000000..3b08cfac --- /dev/null +++ b/doc/theme/material/.icons/material/star-box-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/star-box-multiple.svg b/doc/theme/material/.icons/material/star-box-multiple.svg new file mode 100644 index 00000000..ec284739 --- /dev/null +++ b/doc/theme/material/.icons/material/star-box-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/star-box-outline.svg b/doc/theme/material/.icons/material/star-box-outline.svg new file mode 100644 index 00000000..c6aefa26 --- /dev/null +++ b/doc/theme/material/.icons/material/star-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/star-box.svg b/doc/theme/material/.icons/material/star-box.svg new file mode 100644 index 00000000..41993ee7 --- /dev/null +++ b/doc/theme/material/.icons/material/star-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/star-circle-outline.svg b/doc/theme/material/.icons/material/star-circle-outline.svg new file mode 100644 index 00000000..f5dbdd5c --- /dev/null +++ b/doc/theme/material/.icons/material/star-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/star-circle.svg b/doc/theme/material/.icons/material/star-circle.svg new file mode 100644 index 00000000..104b44b9 --- /dev/null +++ b/doc/theme/material/.icons/material/star-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/star-face.svg b/doc/theme/material/.icons/material/star-face.svg new file mode 100644 index 00000000..1d8a122e --- /dev/null +++ b/doc/theme/material/.icons/material/star-face.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/star-four-points-outline.svg b/doc/theme/material/.icons/material/star-four-points-outline.svg new file mode 100644 index 00000000..80d8d719 --- /dev/null +++ b/doc/theme/material/.icons/material/star-four-points-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/star-four-points.svg b/doc/theme/material/.icons/material/star-four-points.svg new file mode 100644 index 00000000..96ddca90 --- /dev/null +++ b/doc/theme/material/.icons/material/star-four-points.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/star-half-full.svg b/doc/theme/material/.icons/material/star-half-full.svg new file mode 100644 index 00000000..2ef46d17 --- /dev/null +++ b/doc/theme/material/.icons/material/star-half-full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/star-half.svg b/doc/theme/material/.icons/material/star-half.svg new file mode 100644 index 00000000..31e00970 --- /dev/null +++ b/doc/theme/material/.icons/material/star-half.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/star-off.svg b/doc/theme/material/.icons/material/star-off.svg new file mode 100644 index 00000000..ca9761a7 --- /dev/null +++ b/doc/theme/material/.icons/material/star-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/star-outline.svg b/doc/theme/material/.icons/material/star-outline.svg new file mode 100644 index 00000000..e94b2170 --- /dev/null +++ b/doc/theme/material/.icons/material/star-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/star-three-points-outline.svg b/doc/theme/material/.icons/material/star-three-points-outline.svg new file mode 100644 index 00000000..c13e49b2 --- /dev/null +++ b/doc/theme/material/.icons/material/star-three-points-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/star-three-points.svg b/doc/theme/material/.icons/material/star-three-points.svg new file mode 100644 index 00000000..dea4a8f2 --- /dev/null +++ b/doc/theme/material/.icons/material/star-three-points.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/star.svg b/doc/theme/material/.icons/material/star.svg new file mode 100644 index 00000000..dbf68570 --- /dev/null +++ b/doc/theme/material/.icons/material/star.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/state-machine.svg b/doc/theme/material/.icons/material/state-machine.svg new file mode 100644 index 00000000..2795fd8b --- /dev/null +++ b/doc/theme/material/.icons/material/state-machine.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/steam.svg b/doc/theme/material/.icons/material/steam.svg new file mode 100644 index 00000000..4ac1b8ac --- /dev/null +++ b/doc/theme/material/.icons/material/steam.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/steering-off.svg b/doc/theme/material/.icons/material/steering-off.svg new file mode 100644 index 00000000..111605c7 --- /dev/null +++ b/doc/theme/material/.icons/material/steering-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/steering.svg b/doc/theme/material/.icons/material/steering.svg new file mode 100644 index 00000000..d8db499a --- /dev/null +++ b/doc/theme/material/.icons/material/steering.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/step-backward-2.svg b/doc/theme/material/.icons/material/step-backward-2.svg new file mode 100644 index 00000000..bef45a49 --- /dev/null +++ b/doc/theme/material/.icons/material/step-backward-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/step-backward.svg b/doc/theme/material/.icons/material/step-backward.svg new file mode 100644 index 00000000..889f501e --- /dev/null +++ b/doc/theme/material/.icons/material/step-backward.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/step-forward-2.svg b/doc/theme/material/.icons/material/step-forward-2.svg new file mode 100644 index 00000000..c846b144 --- /dev/null +++ b/doc/theme/material/.icons/material/step-forward-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/step-forward.svg b/doc/theme/material/.icons/material/step-forward.svg new file mode 100644 index 00000000..d4a0c7ab --- /dev/null +++ b/doc/theme/material/.icons/material/step-forward.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/stethoscope.svg b/doc/theme/material/.icons/material/stethoscope.svg new file mode 100644 index 00000000..66a2bd99 --- /dev/null +++ b/doc/theme/material/.icons/material/stethoscope.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sticker-alert-outline.svg b/doc/theme/material/.icons/material/sticker-alert-outline.svg new file mode 100644 index 00000000..db27854b --- /dev/null +++ b/doc/theme/material/.icons/material/sticker-alert-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sticker-alert.svg b/doc/theme/material/.icons/material/sticker-alert.svg new file mode 100644 index 00000000..9a084e1e --- /dev/null +++ b/doc/theme/material/.icons/material/sticker-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sticker-check-outline.svg b/doc/theme/material/.icons/material/sticker-check-outline.svg new file mode 100644 index 00000000..bab313cc --- /dev/null +++ b/doc/theme/material/.icons/material/sticker-check-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sticker-check.svg b/doc/theme/material/.icons/material/sticker-check.svg new file mode 100644 index 00000000..83cab579 --- /dev/null +++ b/doc/theme/material/.icons/material/sticker-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sticker-circle-outline.svg b/doc/theme/material/.icons/material/sticker-circle-outline.svg new file mode 100644 index 00000000..ec7c9af6 --- /dev/null +++ b/doc/theme/material/.icons/material/sticker-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sticker-emoji.svg b/doc/theme/material/.icons/material/sticker-emoji.svg new file mode 100644 index 00000000..7caa9ab7 --- /dev/null +++ b/doc/theme/material/.icons/material/sticker-emoji.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sticker-minus-outline.svg b/doc/theme/material/.icons/material/sticker-minus-outline.svg new file mode 100644 index 00000000..a041d8ed --- /dev/null +++ b/doc/theme/material/.icons/material/sticker-minus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sticker-minus.svg b/doc/theme/material/.icons/material/sticker-minus.svg new file mode 100644 index 00000000..16030d99 --- /dev/null +++ b/doc/theme/material/.icons/material/sticker-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sticker-outline.svg b/doc/theme/material/.icons/material/sticker-outline.svg new file mode 100644 index 00000000..07e07cb7 --- /dev/null +++ b/doc/theme/material/.icons/material/sticker-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sticker-plus-outline.svg b/doc/theme/material/.icons/material/sticker-plus-outline.svg new file mode 100644 index 00000000..4161bfa4 --- /dev/null +++ b/doc/theme/material/.icons/material/sticker-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sticker-plus.svg b/doc/theme/material/.icons/material/sticker-plus.svg new file mode 100644 index 00000000..a62efd97 --- /dev/null +++ b/doc/theme/material/.icons/material/sticker-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sticker-remove-outline.svg b/doc/theme/material/.icons/material/sticker-remove-outline.svg new file mode 100644 index 00000000..9252d11e --- /dev/null +++ b/doc/theme/material/.icons/material/sticker-remove-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sticker-remove.svg b/doc/theme/material/.icons/material/sticker-remove.svg new file mode 100644 index 00000000..e7ae9c6e --- /dev/null +++ b/doc/theme/material/.icons/material/sticker-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sticker.svg b/doc/theme/material/.icons/material/sticker.svg new file mode 100644 index 00000000..3013f0af --- /dev/null +++ b/doc/theme/material/.icons/material/sticker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/stocking.svg b/doc/theme/material/.icons/material/stocking.svg new file mode 100644 index 00000000..444dd9fc --- /dev/null +++ b/doc/theme/material/.icons/material/stocking.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/stomach.svg b/doc/theme/material/.icons/material/stomach.svg new file mode 100644 index 00000000..3b9701ca --- /dev/null +++ b/doc/theme/material/.icons/material/stomach.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/stop-circle-outline.svg b/doc/theme/material/.icons/material/stop-circle-outline.svg new file mode 100644 index 00000000..e7997b71 --- /dev/null +++ b/doc/theme/material/.icons/material/stop-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/stop-circle.svg b/doc/theme/material/.icons/material/stop-circle.svg new file mode 100644 index 00000000..afd90d0a --- /dev/null +++ b/doc/theme/material/.icons/material/stop-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/stop.svg b/doc/theme/material/.icons/material/stop.svg new file mode 100644 index 00000000..e4b3e5e1 --- /dev/null +++ b/doc/theme/material/.icons/material/stop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/store-24-hour.svg b/doc/theme/material/.icons/material/store-24-hour.svg new file mode 100644 index 00000000..6a81ecd8 --- /dev/null +++ b/doc/theme/material/.icons/material/store-24-hour.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/store-outline.svg b/doc/theme/material/.icons/material/store-outline.svg new file mode 100644 index 00000000..117196c4 --- /dev/null +++ b/doc/theme/material/.icons/material/store-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/store.svg b/doc/theme/material/.icons/material/store.svg new file mode 100644 index 00000000..b5e287ba --- /dev/null +++ b/doc/theme/material/.icons/material/store.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/storefront-outline.svg b/doc/theme/material/.icons/material/storefront-outline.svg new file mode 100644 index 00000000..1e7ba6c9 --- /dev/null +++ b/doc/theme/material/.icons/material/storefront-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/storefront.svg b/doc/theme/material/.icons/material/storefront.svg new file mode 100644 index 00000000..39eeecc1 --- /dev/null +++ b/doc/theme/material/.icons/material/storefront.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/stove.svg b/doc/theme/material/.icons/material/stove.svg new file mode 100644 index 00000000..56328302 --- /dev/null +++ b/doc/theme/material/.icons/material/stove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/strategy.svg b/doc/theme/material/.icons/material/strategy.svg new file mode 100644 index 00000000..0db9f670 --- /dev/null +++ b/doc/theme/material/.icons/material/strategy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/stretch-to-page-outline.svg b/doc/theme/material/.icons/material/stretch-to-page-outline.svg new file mode 100644 index 00000000..a8ad64ee --- /dev/null +++ b/doc/theme/material/.icons/material/stretch-to-page-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/stretch-to-page.svg b/doc/theme/material/.icons/material/stretch-to-page.svg new file mode 100644 index 00000000..45dadd06 --- /dev/null +++ b/doc/theme/material/.icons/material/stretch-to-page.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/string-lights-off.svg b/doc/theme/material/.icons/material/string-lights-off.svg new file mode 100644 index 00000000..92f9f838 --- /dev/null +++ b/doc/theme/material/.icons/material/string-lights-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/string-lights.svg b/doc/theme/material/.icons/material/string-lights.svg new file mode 100644 index 00000000..39735fd8 --- /dev/null +++ b/doc/theme/material/.icons/material/string-lights.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/subdirectory-arrow-left.svg b/doc/theme/material/.icons/material/subdirectory-arrow-left.svg new file mode 100644 index 00000000..4a0ff900 --- /dev/null +++ b/doc/theme/material/.icons/material/subdirectory-arrow-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/subdirectory-arrow-right.svg b/doc/theme/material/.icons/material/subdirectory-arrow-right.svg new file mode 100644 index 00000000..75666271 --- /dev/null +++ b/doc/theme/material/.icons/material/subdirectory-arrow-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/subtitles-outline.svg b/doc/theme/material/.icons/material/subtitles-outline.svg new file mode 100644 index 00000000..4dfa7cfc --- /dev/null +++ b/doc/theme/material/.icons/material/subtitles-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/subtitles.svg b/doc/theme/material/.icons/material/subtitles.svg new file mode 100644 index 00000000..b164e42b --- /dev/null +++ b/doc/theme/material/.icons/material/subtitles.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/subway-alert-variant.svg b/doc/theme/material/.icons/material/subway-alert-variant.svg new file mode 100644 index 00000000..d7485855 --- /dev/null +++ b/doc/theme/material/.icons/material/subway-alert-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/subway-variant.svg b/doc/theme/material/.icons/material/subway-variant.svg new file mode 100644 index 00000000..89b42869 --- /dev/null +++ b/doc/theme/material/.icons/material/subway-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/subway.svg b/doc/theme/material/.icons/material/subway.svg new file mode 100644 index 00000000..d3849ae4 --- /dev/null +++ b/doc/theme/material/.icons/material/subway.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/summit.svg b/doc/theme/material/.icons/material/summit.svg new file mode 100644 index 00000000..6ca5e882 --- /dev/null +++ b/doc/theme/material/.icons/material/summit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sunglasses.svg b/doc/theme/material/.icons/material/sunglasses.svg new file mode 100644 index 00000000..614e9f4c --- /dev/null +++ b/doc/theme/material/.icons/material/sunglasses.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/surround-sound-2-0.svg b/doc/theme/material/.icons/material/surround-sound-2-0.svg new file mode 100644 index 00000000..b343c909 --- /dev/null +++ b/doc/theme/material/.icons/material/surround-sound-2-0.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/surround-sound-3-1.svg b/doc/theme/material/.icons/material/surround-sound-3-1.svg new file mode 100644 index 00000000..43b55784 --- /dev/null +++ b/doc/theme/material/.icons/material/surround-sound-3-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/surround-sound-5-1.svg b/doc/theme/material/.icons/material/surround-sound-5-1.svg new file mode 100644 index 00000000..82071a89 --- /dev/null +++ b/doc/theme/material/.icons/material/surround-sound-5-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/surround-sound-7-1.svg b/doc/theme/material/.icons/material/surround-sound-7-1.svg new file mode 100644 index 00000000..77605dfa --- /dev/null +++ b/doc/theme/material/.icons/material/surround-sound-7-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/surround-sound.svg b/doc/theme/material/.icons/material/surround-sound.svg new file mode 100644 index 00000000..4a34bfe2 --- /dev/null +++ b/doc/theme/material/.icons/material/surround-sound.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/svg.svg b/doc/theme/material/.icons/material/svg.svg new file mode 100644 index 00000000..21a9eb64 --- /dev/null +++ b/doc/theme/material/.icons/material/svg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/swap-horizontal-bold.svg b/doc/theme/material/.icons/material/swap-horizontal-bold.svg new file mode 100644 index 00000000..b2d87269 --- /dev/null +++ b/doc/theme/material/.icons/material/swap-horizontal-bold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/swap-horizontal-circle-outline.svg b/doc/theme/material/.icons/material/swap-horizontal-circle-outline.svg new file mode 100644 index 00000000..bc813567 --- /dev/null +++ b/doc/theme/material/.icons/material/swap-horizontal-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/swap-horizontal-circle.svg b/doc/theme/material/.icons/material/swap-horizontal-circle.svg new file mode 100644 index 00000000..23856d3d --- /dev/null +++ b/doc/theme/material/.icons/material/swap-horizontal-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/swap-horizontal-variant.svg b/doc/theme/material/.icons/material/swap-horizontal-variant.svg new file mode 100644 index 00000000..d17d759b --- /dev/null +++ b/doc/theme/material/.icons/material/swap-horizontal-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/swap-horizontal.svg b/doc/theme/material/.icons/material/swap-horizontal.svg new file mode 100644 index 00000000..89a23072 --- /dev/null +++ b/doc/theme/material/.icons/material/swap-horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/swap-vertical-bold.svg b/doc/theme/material/.icons/material/swap-vertical-bold.svg new file mode 100644 index 00000000..c011e0b6 --- /dev/null +++ b/doc/theme/material/.icons/material/swap-vertical-bold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/swap-vertical-circle-outline.svg b/doc/theme/material/.icons/material/swap-vertical-circle-outline.svg new file mode 100644 index 00000000..4d9067ca --- /dev/null +++ b/doc/theme/material/.icons/material/swap-vertical-circle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/swap-vertical-circle.svg b/doc/theme/material/.icons/material/swap-vertical-circle.svg new file mode 100644 index 00000000..08bc33fc --- /dev/null +++ b/doc/theme/material/.icons/material/swap-vertical-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/swap-vertical-variant.svg b/doc/theme/material/.icons/material/swap-vertical-variant.svg new file mode 100644 index 00000000..030d5fb1 --- /dev/null +++ b/doc/theme/material/.icons/material/swap-vertical-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/swap-vertical.svg b/doc/theme/material/.icons/material/swap-vertical.svg new file mode 100644 index 00000000..7a467d14 --- /dev/null +++ b/doc/theme/material/.icons/material/swap-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/swim.svg b/doc/theme/material/.icons/material/swim.svg new file mode 100644 index 00000000..99abd7b6 --- /dev/null +++ b/doc/theme/material/.icons/material/swim.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/switch.svg b/doc/theme/material/.icons/material/switch.svg new file mode 100644 index 00000000..327363ab --- /dev/null +++ b/doc/theme/material/.icons/material/switch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sword-cross.svg b/doc/theme/material/.icons/material/sword-cross.svg new file mode 100644 index 00000000..67d58393 --- /dev/null +++ b/doc/theme/material/.icons/material/sword-cross.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sword.svg b/doc/theme/material/.icons/material/sword.svg new file mode 100644 index 00000000..2100fddc --- /dev/null +++ b/doc/theme/material/.icons/material/sword.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/syllabary-hangul.svg b/doc/theme/material/.icons/material/syllabary-hangul.svg new file mode 100644 index 00000000..65620d03 --- /dev/null +++ b/doc/theme/material/.icons/material/syllabary-hangul.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/syllabary-hiragana.svg b/doc/theme/material/.icons/material/syllabary-hiragana.svg new file mode 100644 index 00000000..ac1a1191 --- /dev/null +++ b/doc/theme/material/.icons/material/syllabary-hiragana.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/syllabary-katakana-half-width.svg b/doc/theme/material/.icons/material/syllabary-katakana-half-width.svg new file mode 100644 index 00000000..3c547589 --- /dev/null +++ b/doc/theme/material/.icons/material/syllabary-katakana-half-width.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/syllabary-katakana.svg b/doc/theme/material/.icons/material/syllabary-katakana.svg new file mode 100644 index 00000000..0eeb0627 --- /dev/null +++ b/doc/theme/material/.icons/material/syllabary-katakana.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/symfony.svg b/doc/theme/material/.icons/material/symfony.svg new file mode 100644 index 00000000..2684d246 --- /dev/null +++ b/doc/theme/material/.icons/material/symfony.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sync-alert.svg b/doc/theme/material/.icons/material/sync-alert.svg new file mode 100644 index 00000000..d8c8a16d --- /dev/null +++ b/doc/theme/material/.icons/material/sync-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sync-circle.svg b/doc/theme/material/.icons/material/sync-circle.svg new file mode 100644 index 00000000..d8b0e684 --- /dev/null +++ b/doc/theme/material/.icons/material/sync-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sync-off.svg b/doc/theme/material/.icons/material/sync-off.svg new file mode 100644 index 00000000..08c5bfa6 --- /dev/null +++ b/doc/theme/material/.icons/material/sync-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/sync.svg b/doc/theme/material/.icons/material/sync.svg new file mode 100644 index 00000000..f51f0d90 --- /dev/null +++ b/doc/theme/material/.icons/material/sync.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tab-minus.svg b/doc/theme/material/.icons/material/tab-minus.svg new file mode 100644 index 00000000..3a374e01 --- /dev/null +++ b/doc/theme/material/.icons/material/tab-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tab-plus.svg b/doc/theme/material/.icons/material/tab-plus.svg new file mode 100644 index 00000000..f414692c --- /dev/null +++ b/doc/theme/material/.icons/material/tab-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tab-remove.svg b/doc/theme/material/.icons/material/tab-remove.svg new file mode 100644 index 00000000..d4786a6b --- /dev/null +++ b/doc/theme/material/.icons/material/tab-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tab-unselected.svg b/doc/theme/material/.icons/material/tab-unselected.svg new file mode 100644 index 00000000..3c8497fb --- /dev/null +++ b/doc/theme/material/.icons/material/tab-unselected.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tab.svg b/doc/theme/material/.icons/material/tab.svg new file mode 100644 index 00000000..64a7af40 --- /dev/null +++ b/doc/theme/material/.icons/material/tab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-account.svg b/doc/theme/material/.icons/material/table-account.svg new file mode 100644 index 00000000..dcd28c7b --- /dev/null +++ b/doc/theme/material/.icons/material/table-account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-alert.svg b/doc/theme/material/.icons/material/table-alert.svg new file mode 100644 index 00000000..f072cce0 --- /dev/null +++ b/doc/theme/material/.icons/material/table-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-arrow-down.svg b/doc/theme/material/.icons/material/table-arrow-down.svg new file mode 100644 index 00000000..cdfdedff --- /dev/null +++ b/doc/theme/material/.icons/material/table-arrow-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-arrow-left.svg b/doc/theme/material/.icons/material/table-arrow-left.svg new file mode 100644 index 00000000..7dd00b07 --- /dev/null +++ b/doc/theme/material/.icons/material/table-arrow-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-arrow-right.svg b/doc/theme/material/.icons/material/table-arrow-right.svg new file mode 100644 index 00000000..c69f7ee5 --- /dev/null +++ b/doc/theme/material/.icons/material/table-arrow-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-arrow-up.svg b/doc/theme/material/.icons/material/table-arrow-up.svg new file mode 100644 index 00000000..742fe07a --- /dev/null +++ b/doc/theme/material/.icons/material/table-arrow-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-border.svg b/doc/theme/material/.icons/material/table-border.svg new file mode 100644 index 00000000..039e1bc3 --- /dev/null +++ b/doc/theme/material/.icons/material/table-border.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-cancel.svg b/doc/theme/material/.icons/material/table-cancel.svg new file mode 100644 index 00000000..0a0b67c3 --- /dev/null +++ b/doc/theme/material/.icons/material/table-cancel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-chair.svg b/doc/theme/material/.icons/material/table-chair.svg new file mode 100644 index 00000000..24f17da0 --- /dev/null +++ b/doc/theme/material/.icons/material/table-chair.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-check.svg b/doc/theme/material/.icons/material/table-check.svg new file mode 100644 index 00000000..3d2333aa --- /dev/null +++ b/doc/theme/material/.icons/material/table-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-clock.svg b/doc/theme/material/.icons/material/table-clock.svg new file mode 100644 index 00000000..060f73b4 --- /dev/null +++ b/doc/theme/material/.icons/material/table-clock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-cog.svg b/doc/theme/material/.icons/material/table-cog.svg new file mode 100644 index 00000000..f1151386 --- /dev/null +++ b/doc/theme/material/.icons/material/table-cog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-column-plus-after.svg b/doc/theme/material/.icons/material/table-column-plus-after.svg new file mode 100644 index 00000000..1bc532f8 --- /dev/null +++ b/doc/theme/material/.icons/material/table-column-plus-after.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-column-plus-before.svg b/doc/theme/material/.icons/material/table-column-plus-before.svg new file mode 100644 index 00000000..ada8f734 --- /dev/null +++ b/doc/theme/material/.icons/material/table-column-plus-before.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-column-remove.svg b/doc/theme/material/.icons/material/table-column-remove.svg new file mode 100644 index 00000000..7e9144e8 --- /dev/null +++ b/doc/theme/material/.icons/material/table-column-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-column-width.svg b/doc/theme/material/.icons/material/table-column-width.svg new file mode 100644 index 00000000..2dec98f5 --- /dev/null +++ b/doc/theme/material/.icons/material/table-column-width.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-column.svg b/doc/theme/material/.icons/material/table-column.svg new file mode 100644 index 00000000..0023fc17 --- /dev/null +++ b/doc/theme/material/.icons/material/table-column.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-edit.svg b/doc/theme/material/.icons/material/table-edit.svg new file mode 100644 index 00000000..b30b29c5 --- /dev/null +++ b/doc/theme/material/.icons/material/table-edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-eye-off.svg b/doc/theme/material/.icons/material/table-eye-off.svg new file mode 100644 index 00000000..9b08ac1c --- /dev/null +++ b/doc/theme/material/.icons/material/table-eye-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-eye.svg b/doc/theme/material/.icons/material/table-eye.svg new file mode 100644 index 00000000..d882a55f --- /dev/null +++ b/doc/theme/material/.icons/material/table-eye.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-furniture.svg b/doc/theme/material/.icons/material/table-furniture.svg new file mode 100644 index 00000000..9c20e78b --- /dev/null +++ b/doc/theme/material/.icons/material/table-furniture.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-headers-eye-off.svg b/doc/theme/material/.icons/material/table-headers-eye-off.svg new file mode 100644 index 00000000..369375bc --- /dev/null +++ b/doc/theme/material/.icons/material/table-headers-eye-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-headers-eye.svg b/doc/theme/material/.icons/material/table-headers-eye.svg new file mode 100644 index 00000000..1a407939 --- /dev/null +++ b/doc/theme/material/.icons/material/table-headers-eye.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-heart.svg b/doc/theme/material/.icons/material/table-heart.svg new file mode 100644 index 00000000..48b8d1f6 --- /dev/null +++ b/doc/theme/material/.icons/material/table-heart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-key.svg b/doc/theme/material/.icons/material/table-key.svg new file mode 100644 index 00000000..15c63ddd --- /dev/null +++ b/doc/theme/material/.icons/material/table-key.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-large-plus.svg b/doc/theme/material/.icons/material/table-large-plus.svg new file mode 100644 index 00000000..e4b06758 --- /dev/null +++ b/doc/theme/material/.icons/material/table-large-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-large-remove.svg b/doc/theme/material/.icons/material/table-large-remove.svg new file mode 100644 index 00000000..5273f71b --- /dev/null +++ b/doc/theme/material/.icons/material/table-large-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-large.svg b/doc/theme/material/.icons/material/table-large.svg new file mode 100644 index 00000000..0af62d84 --- /dev/null +++ b/doc/theme/material/.icons/material/table-large.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-lock.svg b/doc/theme/material/.icons/material/table-lock.svg new file mode 100644 index 00000000..4084f944 --- /dev/null +++ b/doc/theme/material/.icons/material/table-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-merge-cells.svg b/doc/theme/material/.icons/material/table-merge-cells.svg new file mode 100644 index 00000000..19d20214 --- /dev/null +++ b/doc/theme/material/.icons/material/table-merge-cells.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-minus.svg b/doc/theme/material/.icons/material/table-minus.svg new file mode 100644 index 00000000..932bdd28 --- /dev/null +++ b/doc/theme/material/.icons/material/table-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-multiple.svg b/doc/theme/material/.icons/material/table-multiple.svg new file mode 100644 index 00000000..d09c2a34 --- /dev/null +++ b/doc/theme/material/.icons/material/table-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-network.svg b/doc/theme/material/.icons/material/table-network.svg new file mode 100644 index 00000000..8a195d4f --- /dev/null +++ b/doc/theme/material/.icons/material/table-network.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-of-contents.svg b/doc/theme/material/.icons/material/table-of-contents.svg new file mode 100644 index 00000000..0a4d0c96 --- /dev/null +++ b/doc/theme/material/.icons/material/table-of-contents.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-off.svg b/doc/theme/material/.icons/material/table-off.svg new file mode 100644 index 00000000..2be4b8a4 --- /dev/null +++ b/doc/theme/material/.icons/material/table-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-plus.svg b/doc/theme/material/.icons/material/table-plus.svg new file mode 100644 index 00000000..ab8b8e55 --- /dev/null +++ b/doc/theme/material/.icons/material/table-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-refresh.svg b/doc/theme/material/.icons/material/table-refresh.svg new file mode 100644 index 00000000..a41201c1 --- /dev/null +++ b/doc/theme/material/.icons/material/table-refresh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-remove.svg b/doc/theme/material/.icons/material/table-remove.svg new file mode 100644 index 00000000..5d850293 --- /dev/null +++ b/doc/theme/material/.icons/material/table-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-row-height.svg b/doc/theme/material/.icons/material/table-row-height.svg new file mode 100644 index 00000000..bce9429f --- /dev/null +++ b/doc/theme/material/.icons/material/table-row-height.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-row-plus-after.svg b/doc/theme/material/.icons/material/table-row-plus-after.svg new file mode 100644 index 00000000..d778f72e --- /dev/null +++ b/doc/theme/material/.icons/material/table-row-plus-after.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-row-plus-before.svg b/doc/theme/material/.icons/material/table-row-plus-before.svg new file mode 100644 index 00000000..7390f3be --- /dev/null +++ b/doc/theme/material/.icons/material/table-row-plus-before.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-row-remove.svg b/doc/theme/material/.icons/material/table-row-remove.svg new file mode 100644 index 00000000..2f306193 --- /dev/null +++ b/doc/theme/material/.icons/material/table-row-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-row.svg b/doc/theme/material/.icons/material/table-row.svg new file mode 100644 index 00000000..1836d7c7 --- /dev/null +++ b/doc/theme/material/.icons/material/table-row.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-search.svg b/doc/theme/material/.icons/material/table-search.svg new file mode 100644 index 00000000..f5f207c8 --- /dev/null +++ b/doc/theme/material/.icons/material/table-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-settings.svg b/doc/theme/material/.icons/material/table-settings.svg new file mode 100644 index 00000000..a603fae6 --- /dev/null +++ b/doc/theme/material/.icons/material/table-settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-star.svg b/doc/theme/material/.icons/material/table-star.svg new file mode 100644 index 00000000..45c9ad18 --- /dev/null +++ b/doc/theme/material/.icons/material/table-star.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-sync.svg b/doc/theme/material/.icons/material/table-sync.svg new file mode 100644 index 00000000..0121d5e2 --- /dev/null +++ b/doc/theme/material/.icons/material/table-sync.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table-tennis.svg b/doc/theme/material/.icons/material/table-tennis.svg new file mode 100644 index 00000000..55786654 --- /dev/null +++ b/doc/theme/material/.icons/material/table-tennis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/table.svg b/doc/theme/material/.icons/material/table.svg new file mode 100644 index 00000000..782a5fde --- /dev/null +++ b/doc/theme/material/.icons/material/table.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tablet-android.svg b/doc/theme/material/.icons/material/tablet-android.svg new file mode 100644 index 00000000..1a751ed8 --- /dev/null +++ b/doc/theme/material/.icons/material/tablet-android.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tablet-cellphone.svg b/doc/theme/material/.icons/material/tablet-cellphone.svg new file mode 100644 index 00000000..7cad33a7 --- /dev/null +++ b/doc/theme/material/.icons/material/tablet-cellphone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tablet-dashboard.svg b/doc/theme/material/.icons/material/tablet-dashboard.svg new file mode 100644 index 00000000..dec6895c --- /dev/null +++ b/doc/theme/material/.icons/material/tablet-dashboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tablet-ipad.svg b/doc/theme/material/.icons/material/tablet-ipad.svg new file mode 100644 index 00000000..cf24c96f --- /dev/null +++ b/doc/theme/material/.icons/material/tablet-ipad.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tablet.svg b/doc/theme/material/.icons/material/tablet.svg new file mode 100644 index 00000000..8cf1e2f3 --- /dev/null +++ b/doc/theme/material/.icons/material/tablet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/taco.svg b/doc/theme/material/.icons/material/taco.svg new file mode 100644 index 00000000..7a503903 --- /dev/null +++ b/doc/theme/material/.icons/material/taco.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tag-faces.svg b/doc/theme/material/.icons/material/tag-faces.svg new file mode 100644 index 00000000..508fc26f --- /dev/null +++ b/doc/theme/material/.icons/material/tag-faces.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tag-heart-outline.svg b/doc/theme/material/.icons/material/tag-heart-outline.svg new file mode 100644 index 00000000..ddadb744 --- /dev/null +++ b/doc/theme/material/.icons/material/tag-heart-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tag-heart.svg b/doc/theme/material/.icons/material/tag-heart.svg new file mode 100644 index 00000000..dba024f4 --- /dev/null +++ b/doc/theme/material/.icons/material/tag-heart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tag-minus-outline.svg b/doc/theme/material/.icons/material/tag-minus-outline.svg new file mode 100644 index 00000000..a57c0c63 --- /dev/null +++ b/doc/theme/material/.icons/material/tag-minus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tag-minus.svg b/doc/theme/material/.icons/material/tag-minus.svg new file mode 100644 index 00000000..9ae8dbdb --- /dev/null +++ b/doc/theme/material/.icons/material/tag-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tag-multiple-outline.svg b/doc/theme/material/.icons/material/tag-multiple-outline.svg new file mode 100644 index 00000000..deb7eeb7 --- /dev/null +++ b/doc/theme/material/.icons/material/tag-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tag-multiple.svg b/doc/theme/material/.icons/material/tag-multiple.svg new file mode 100644 index 00000000..77205425 --- /dev/null +++ b/doc/theme/material/.icons/material/tag-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tag-off-outline.svg b/doc/theme/material/.icons/material/tag-off-outline.svg new file mode 100644 index 00000000..7dedd306 --- /dev/null +++ b/doc/theme/material/.icons/material/tag-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tag-off.svg b/doc/theme/material/.icons/material/tag-off.svg new file mode 100644 index 00000000..479508b6 --- /dev/null +++ b/doc/theme/material/.icons/material/tag-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tag-outline.svg b/doc/theme/material/.icons/material/tag-outline.svg new file mode 100644 index 00000000..4e07ad58 --- /dev/null +++ b/doc/theme/material/.icons/material/tag-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tag-plus-outline.svg b/doc/theme/material/.icons/material/tag-plus-outline.svg new file mode 100644 index 00000000..8b6c0187 --- /dev/null +++ b/doc/theme/material/.icons/material/tag-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tag-plus.svg b/doc/theme/material/.icons/material/tag-plus.svg new file mode 100644 index 00000000..abac70e5 --- /dev/null +++ b/doc/theme/material/.icons/material/tag-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tag-remove-outline.svg b/doc/theme/material/.icons/material/tag-remove-outline.svg new file mode 100644 index 00000000..a6a1e051 --- /dev/null +++ b/doc/theme/material/.icons/material/tag-remove-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tag-remove.svg b/doc/theme/material/.icons/material/tag-remove.svg new file mode 100644 index 00000000..7439aa7e --- /dev/null +++ b/doc/theme/material/.icons/material/tag-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tag-text-outline.svg b/doc/theme/material/.icons/material/tag-text-outline.svg new file mode 100644 index 00000000..d795ed88 --- /dev/null +++ b/doc/theme/material/.icons/material/tag-text-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tag-text.svg b/doc/theme/material/.icons/material/tag-text.svg new file mode 100644 index 00000000..bf88a7a4 --- /dev/null +++ b/doc/theme/material/.icons/material/tag-text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tag.svg b/doc/theme/material/.icons/material/tag.svg new file mode 100644 index 00000000..301c817d --- /dev/null +++ b/doc/theme/material/.icons/material/tag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tailwind.svg b/doc/theme/material/.icons/material/tailwind.svg new file mode 100644 index 00000000..d8fb3efd --- /dev/null +++ b/doc/theme/material/.icons/material/tailwind.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tank.svg b/doc/theme/material/.icons/material/tank.svg new file mode 100644 index 00000000..0758d12e --- /dev/null +++ b/doc/theme/material/.icons/material/tank.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tanker-truck.svg b/doc/theme/material/.icons/material/tanker-truck.svg new file mode 100644 index 00000000..ae851eb6 --- /dev/null +++ b/doc/theme/material/.icons/material/tanker-truck.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tape-measure.svg b/doc/theme/material/.icons/material/tape-measure.svg new file mode 100644 index 00000000..1269a758 --- /dev/null +++ b/doc/theme/material/.icons/material/tape-measure.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/target-account.svg b/doc/theme/material/.icons/material/target-account.svg new file mode 100644 index 00000000..b75b67f0 --- /dev/null +++ b/doc/theme/material/.icons/material/target-account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/target-variant.svg b/doc/theme/material/.icons/material/target-variant.svg new file mode 100644 index 00000000..1f754c2d --- /dev/null +++ b/doc/theme/material/.icons/material/target-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/target.svg b/doc/theme/material/.icons/material/target.svg new file mode 100644 index 00000000..d272c261 --- /dev/null +++ b/doc/theme/material/.icons/material/target.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/taxi.svg b/doc/theme/material/.icons/material/taxi.svg new file mode 100644 index 00000000..d9810e9b --- /dev/null +++ b/doc/theme/material/.icons/material/taxi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tea-outline.svg b/doc/theme/material/.icons/material/tea-outline.svg new file mode 100644 index 00000000..6c056ece --- /dev/null +++ b/doc/theme/material/.icons/material/tea-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tea.svg b/doc/theme/material/.icons/material/tea.svg new file mode 100644 index 00000000..7bb5eeb8 --- /dev/null +++ b/doc/theme/material/.icons/material/tea.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/teach.svg b/doc/theme/material/.icons/material/teach.svg new file mode 100644 index 00000000..69e3ec3b --- /dev/null +++ b/doc/theme/material/.icons/material/teach.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/teamviewer.svg b/doc/theme/material/.icons/material/teamviewer.svg new file mode 100644 index 00000000..2c41be6d --- /dev/null +++ b/doc/theme/material/.icons/material/teamviewer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/telegram.svg b/doc/theme/material/.icons/material/telegram.svg new file mode 100644 index 00000000..983eb9a0 --- /dev/null +++ b/doc/theme/material/.icons/material/telegram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/telescope.svg b/doc/theme/material/.icons/material/telescope.svg new file mode 100644 index 00000000..140dd31a --- /dev/null +++ b/doc/theme/material/.icons/material/telescope.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/television-ambient-light.svg b/doc/theme/material/.icons/material/television-ambient-light.svg new file mode 100644 index 00000000..be24f189 --- /dev/null +++ b/doc/theme/material/.icons/material/television-ambient-light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/television-box.svg b/doc/theme/material/.icons/material/television-box.svg new file mode 100644 index 00000000..4c74e2a6 --- /dev/null +++ b/doc/theme/material/.icons/material/television-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/television-classic-off.svg b/doc/theme/material/.icons/material/television-classic-off.svg new file mode 100644 index 00000000..4cf47beb --- /dev/null +++ b/doc/theme/material/.icons/material/television-classic-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/television-classic.svg b/doc/theme/material/.icons/material/television-classic.svg new file mode 100644 index 00000000..067a985a --- /dev/null +++ b/doc/theme/material/.icons/material/television-classic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/television-clean.svg b/doc/theme/material/.icons/material/television-clean.svg new file mode 100644 index 00000000..338db6fc --- /dev/null +++ b/doc/theme/material/.icons/material/television-clean.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/television-guide.svg b/doc/theme/material/.icons/material/television-guide.svg new file mode 100644 index 00000000..2f930c55 --- /dev/null +++ b/doc/theme/material/.icons/material/television-guide.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/television-off.svg b/doc/theme/material/.icons/material/television-off.svg new file mode 100644 index 00000000..3eec040b --- /dev/null +++ b/doc/theme/material/.icons/material/television-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/television-pause.svg b/doc/theme/material/.icons/material/television-pause.svg new file mode 100644 index 00000000..f8fcb8d0 --- /dev/null +++ b/doc/theme/material/.icons/material/television-pause.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/television-play.svg b/doc/theme/material/.icons/material/television-play.svg new file mode 100644 index 00000000..2347fa93 --- /dev/null +++ b/doc/theme/material/.icons/material/television-play.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/television-stop.svg b/doc/theme/material/.icons/material/television-stop.svg new file mode 100644 index 00000000..7c9faafd --- /dev/null +++ b/doc/theme/material/.icons/material/television-stop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/television.svg b/doc/theme/material/.icons/material/television.svg new file mode 100644 index 00000000..4423d484 --- /dev/null +++ b/doc/theme/material/.icons/material/television.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/temperature-celsius.svg b/doc/theme/material/.icons/material/temperature-celsius.svg new file mode 100644 index 00000000..49b54e54 --- /dev/null +++ b/doc/theme/material/.icons/material/temperature-celsius.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/temperature-fahrenheit.svg b/doc/theme/material/.icons/material/temperature-fahrenheit.svg new file mode 100644 index 00000000..db671623 --- /dev/null +++ b/doc/theme/material/.icons/material/temperature-fahrenheit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/temperature-kelvin.svg b/doc/theme/material/.icons/material/temperature-kelvin.svg new file mode 100644 index 00000000..8e99bbfc --- /dev/null +++ b/doc/theme/material/.icons/material/temperature-kelvin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tennis-ball.svg b/doc/theme/material/.icons/material/tennis-ball.svg new file mode 100644 index 00000000..7e6e3527 --- /dev/null +++ b/doc/theme/material/.icons/material/tennis-ball.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tennis.svg b/doc/theme/material/.icons/material/tennis.svg new file mode 100644 index 00000000..62f96afd --- /dev/null +++ b/doc/theme/material/.icons/material/tennis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tent.svg b/doc/theme/material/.icons/material/tent.svg new file mode 100644 index 00000000..732701a9 --- /dev/null +++ b/doc/theme/material/.icons/material/tent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/terraform.svg b/doc/theme/material/.icons/material/terraform.svg new file mode 100644 index 00000000..5028cb86 --- /dev/null +++ b/doc/theme/material/.icons/material/terraform.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/terrain.svg b/doc/theme/material/.icons/material/terrain.svg new file mode 100644 index 00000000..d5a500d8 --- /dev/null +++ b/doc/theme/material/.icons/material/terrain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/test-tube-empty.svg b/doc/theme/material/.icons/material/test-tube-empty.svg new file mode 100644 index 00000000..1ecf679c --- /dev/null +++ b/doc/theme/material/.icons/material/test-tube-empty.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/test-tube-off.svg b/doc/theme/material/.icons/material/test-tube-off.svg new file mode 100644 index 00000000..23d2550f --- /dev/null +++ b/doc/theme/material/.icons/material/test-tube-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/test-tube.svg b/doc/theme/material/.icons/material/test-tube.svg new file mode 100644 index 00000000..2256e2ac --- /dev/null +++ b/doc/theme/material/.icons/material/test-tube.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/text-box-check-outline.svg b/doc/theme/material/.icons/material/text-box-check-outline.svg new file mode 100644 index 00000000..0bedd041 --- /dev/null +++ b/doc/theme/material/.icons/material/text-box-check-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/text-box-check.svg b/doc/theme/material/.icons/material/text-box-check.svg new file mode 100644 index 00000000..19a8770b --- /dev/null +++ b/doc/theme/material/.icons/material/text-box-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/text-box-minus-outline.svg b/doc/theme/material/.icons/material/text-box-minus-outline.svg new file mode 100644 index 00000000..b892e7a0 --- /dev/null +++ b/doc/theme/material/.icons/material/text-box-minus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/text-box-minus.svg b/doc/theme/material/.icons/material/text-box-minus.svg new file mode 100644 index 00000000..59d2bf06 --- /dev/null +++ b/doc/theme/material/.icons/material/text-box-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/text-box-multiple-outline.svg b/doc/theme/material/.icons/material/text-box-multiple-outline.svg new file mode 100644 index 00000000..476fd554 --- /dev/null +++ b/doc/theme/material/.icons/material/text-box-multiple-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/text-box-multiple.svg b/doc/theme/material/.icons/material/text-box-multiple.svg new file mode 100644 index 00000000..241d2974 --- /dev/null +++ b/doc/theme/material/.icons/material/text-box-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/text-box-outline.svg b/doc/theme/material/.icons/material/text-box-outline.svg new file mode 100644 index 00000000..2fafb512 --- /dev/null +++ b/doc/theme/material/.icons/material/text-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/text-box-plus-outline.svg b/doc/theme/material/.icons/material/text-box-plus-outline.svg new file mode 100644 index 00000000..11819bf9 --- /dev/null +++ b/doc/theme/material/.icons/material/text-box-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/text-box-plus.svg b/doc/theme/material/.icons/material/text-box-plus.svg new file mode 100644 index 00000000..36572b89 --- /dev/null +++ b/doc/theme/material/.icons/material/text-box-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/text-box-remove-outline.svg b/doc/theme/material/.icons/material/text-box-remove-outline.svg new file mode 100644 index 00000000..4f2651b7 --- /dev/null +++ b/doc/theme/material/.icons/material/text-box-remove-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/text-box-remove.svg b/doc/theme/material/.icons/material/text-box-remove.svg new file mode 100644 index 00000000..0110c826 --- /dev/null +++ b/doc/theme/material/.icons/material/text-box-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/text-box-search-outline.svg b/doc/theme/material/.icons/material/text-box-search-outline.svg new file mode 100644 index 00000000..17433022 --- /dev/null +++ b/doc/theme/material/.icons/material/text-box-search-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/text-box-search.svg b/doc/theme/material/.icons/material/text-box-search.svg new file mode 100644 index 00000000..780c725e --- /dev/null +++ b/doc/theme/material/.icons/material/text-box-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/text-box.svg b/doc/theme/material/.icons/material/text-box.svg new file mode 100644 index 00000000..b0c688b0 --- /dev/null +++ b/doc/theme/material/.icons/material/text-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/text-recognition.svg b/doc/theme/material/.icons/material/text-recognition.svg new file mode 100644 index 00000000..b2ee6a03 --- /dev/null +++ b/doc/theme/material/.icons/material/text-recognition.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/text-search.svg b/doc/theme/material/.icons/material/text-search.svg new file mode 100644 index 00000000..12f1d35e --- /dev/null +++ b/doc/theme/material/.icons/material/text-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/text-shadow.svg b/doc/theme/material/.icons/material/text-shadow.svg new file mode 100644 index 00000000..8d13398d --- /dev/null +++ b/doc/theme/material/.icons/material/text-shadow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/text-short.svg b/doc/theme/material/.icons/material/text-short.svg new file mode 100644 index 00000000..45410439 --- /dev/null +++ b/doc/theme/material/.icons/material/text-short.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/text-subject.svg b/doc/theme/material/.icons/material/text-subject.svg new file mode 100644 index 00000000..58d13045 --- /dev/null +++ b/doc/theme/material/.icons/material/text-subject.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/text-to-speech-off.svg b/doc/theme/material/.icons/material/text-to-speech-off.svg new file mode 100644 index 00000000..3004072e --- /dev/null +++ b/doc/theme/material/.icons/material/text-to-speech-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/text-to-speech.svg b/doc/theme/material/.icons/material/text-to-speech.svg new file mode 100644 index 00000000..7659bd95 --- /dev/null +++ b/doc/theme/material/.icons/material/text-to-speech.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/text.svg b/doc/theme/material/.icons/material/text.svg new file mode 100644 index 00000000..e5f966ab --- /dev/null +++ b/doc/theme/material/.icons/material/text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/texture-box.svg b/doc/theme/material/.icons/material/texture-box.svg new file mode 100644 index 00000000..543b0cb6 --- /dev/null +++ b/doc/theme/material/.icons/material/texture-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/texture.svg b/doc/theme/material/.icons/material/texture.svg new file mode 100644 index 00000000..29ab3f2a --- /dev/null +++ b/doc/theme/material/.icons/material/texture.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/theater.svg b/doc/theme/material/.icons/material/theater.svg new file mode 100644 index 00000000..f18bf69c --- /dev/null +++ b/doc/theme/material/.icons/material/theater.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/theme-light-dark.svg b/doc/theme/material/.icons/material/theme-light-dark.svg new file mode 100644 index 00000000..2008df85 --- /dev/null +++ b/doc/theme/material/.icons/material/theme-light-dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/thermometer-alert.svg b/doc/theme/material/.icons/material/thermometer-alert.svg new file mode 100644 index 00000000..b17fdd54 --- /dev/null +++ b/doc/theme/material/.icons/material/thermometer-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/thermometer-chevron-down.svg b/doc/theme/material/.icons/material/thermometer-chevron-down.svg new file mode 100644 index 00000000..e24ef7bc --- /dev/null +++ b/doc/theme/material/.icons/material/thermometer-chevron-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/thermometer-chevron-up.svg b/doc/theme/material/.icons/material/thermometer-chevron-up.svg new file mode 100644 index 00000000..95bc0135 --- /dev/null +++ b/doc/theme/material/.icons/material/thermometer-chevron-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/thermometer-high.svg b/doc/theme/material/.icons/material/thermometer-high.svg new file mode 100644 index 00000000..fa0da5c0 --- /dev/null +++ b/doc/theme/material/.icons/material/thermometer-high.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/thermometer-lines.svg b/doc/theme/material/.icons/material/thermometer-lines.svg new file mode 100644 index 00000000..12f5c990 --- /dev/null +++ b/doc/theme/material/.icons/material/thermometer-lines.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/thermometer-low.svg b/doc/theme/material/.icons/material/thermometer-low.svg new file mode 100644 index 00000000..f75b5522 --- /dev/null +++ b/doc/theme/material/.icons/material/thermometer-low.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/thermometer-minus.svg b/doc/theme/material/.icons/material/thermometer-minus.svg new file mode 100644 index 00000000..c0f99e8c --- /dev/null +++ b/doc/theme/material/.icons/material/thermometer-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/thermometer-plus.svg b/doc/theme/material/.icons/material/thermometer-plus.svg new file mode 100644 index 00000000..725df000 --- /dev/null +++ b/doc/theme/material/.icons/material/thermometer-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/thermometer.svg b/doc/theme/material/.icons/material/thermometer.svg new file mode 100644 index 00000000..10dbb20e --- /dev/null +++ b/doc/theme/material/.icons/material/thermometer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/thermostat-box.svg b/doc/theme/material/.icons/material/thermostat-box.svg new file mode 100644 index 00000000..129f10cb --- /dev/null +++ b/doc/theme/material/.icons/material/thermostat-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/thermostat.svg b/doc/theme/material/.icons/material/thermostat.svg new file mode 100644 index 00000000..eb662f7e --- /dev/null +++ b/doc/theme/material/.icons/material/thermostat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/thought-bubble-outline.svg b/doc/theme/material/.icons/material/thought-bubble-outline.svg new file mode 100644 index 00000000..534d73a7 --- /dev/null +++ b/doc/theme/material/.icons/material/thought-bubble-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/thought-bubble.svg b/doc/theme/material/.icons/material/thought-bubble.svg new file mode 100644 index 00000000..6dbb26e4 --- /dev/null +++ b/doc/theme/material/.icons/material/thought-bubble.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/thumb-down-outline.svg b/doc/theme/material/.icons/material/thumb-down-outline.svg new file mode 100644 index 00000000..97cf0258 --- /dev/null +++ b/doc/theme/material/.icons/material/thumb-down-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/thumb-down.svg b/doc/theme/material/.icons/material/thumb-down.svg new file mode 100644 index 00000000..0811b95b --- /dev/null +++ b/doc/theme/material/.icons/material/thumb-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/thumb-up-outline.svg b/doc/theme/material/.icons/material/thumb-up-outline.svg new file mode 100644 index 00000000..351ad27c --- /dev/null +++ b/doc/theme/material/.icons/material/thumb-up-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/thumb-up.svg b/doc/theme/material/.icons/material/thumb-up.svg new file mode 100644 index 00000000..7b0745fd --- /dev/null +++ b/doc/theme/material/.icons/material/thumb-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/thumbs-up-down.svg b/doc/theme/material/.icons/material/thumbs-up-down.svg new file mode 100644 index 00000000..d8451684 --- /dev/null +++ b/doc/theme/material/.icons/material/thumbs-up-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ticket-account.svg b/doc/theme/material/.icons/material/ticket-account.svg new file mode 100644 index 00000000..886eb552 --- /dev/null +++ b/doc/theme/material/.icons/material/ticket-account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ticket-confirmation-outline.svg b/doc/theme/material/.icons/material/ticket-confirmation-outline.svg new file mode 100644 index 00000000..020d1cd0 --- /dev/null +++ b/doc/theme/material/.icons/material/ticket-confirmation-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ticket-confirmation.svg b/doc/theme/material/.icons/material/ticket-confirmation.svg new file mode 100644 index 00000000..47d38714 --- /dev/null +++ b/doc/theme/material/.icons/material/ticket-confirmation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ticket-outline.svg b/doc/theme/material/.icons/material/ticket-outline.svg new file mode 100644 index 00000000..f7dfb666 --- /dev/null +++ b/doc/theme/material/.icons/material/ticket-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ticket-percent.svg b/doc/theme/material/.icons/material/ticket-percent.svg new file mode 100644 index 00000000..7cb481ee --- /dev/null +++ b/doc/theme/material/.icons/material/ticket-percent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ticket.svg b/doc/theme/material/.icons/material/ticket.svg new file mode 100644 index 00000000..071ab85d --- /dev/null +++ b/doc/theme/material/.icons/material/ticket.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tie.svg b/doc/theme/material/.icons/material/tie.svg new file mode 100644 index 00000000..7b0e040e --- /dev/null +++ b/doc/theme/material/.icons/material/tie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tilde.svg b/doc/theme/material/.icons/material/tilde.svg new file mode 100644 index 00000000..22a0e5a5 --- /dev/null +++ b/doc/theme/material/.icons/material/tilde.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/timelapse.svg b/doc/theme/material/.icons/material/timelapse.svg new file mode 100644 index 00000000..acfcb2de --- /dev/null +++ b/doc/theme/material/.icons/material/timelapse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/timeline-alert-outline.svg b/doc/theme/material/.icons/material/timeline-alert-outline.svg new file mode 100644 index 00000000..921ae6ea --- /dev/null +++ b/doc/theme/material/.icons/material/timeline-alert-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/timeline-alert.svg b/doc/theme/material/.icons/material/timeline-alert.svg new file mode 100644 index 00000000..26137f11 --- /dev/null +++ b/doc/theme/material/.icons/material/timeline-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/timeline-clock-outline.svg b/doc/theme/material/.icons/material/timeline-clock-outline.svg new file mode 100644 index 00000000..aba7f042 --- /dev/null +++ b/doc/theme/material/.icons/material/timeline-clock-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/timeline-clock.svg b/doc/theme/material/.icons/material/timeline-clock.svg new file mode 100644 index 00000000..5996bb4d --- /dev/null +++ b/doc/theme/material/.icons/material/timeline-clock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/timeline-help-outline.svg b/doc/theme/material/.icons/material/timeline-help-outline.svg new file mode 100644 index 00000000..3cb706ce --- /dev/null +++ b/doc/theme/material/.icons/material/timeline-help-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/timeline-help.svg b/doc/theme/material/.icons/material/timeline-help.svg new file mode 100644 index 00000000..68399818 --- /dev/null +++ b/doc/theme/material/.icons/material/timeline-help.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/timeline-outline.svg b/doc/theme/material/.icons/material/timeline-outline.svg new file mode 100644 index 00000000..46bb36bb --- /dev/null +++ b/doc/theme/material/.icons/material/timeline-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/timeline-plus-outline.svg b/doc/theme/material/.icons/material/timeline-plus-outline.svg new file mode 100644 index 00000000..a8945478 --- /dev/null +++ b/doc/theme/material/.icons/material/timeline-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/timeline-plus.svg b/doc/theme/material/.icons/material/timeline-plus.svg new file mode 100644 index 00000000..9b712806 --- /dev/null +++ b/doc/theme/material/.icons/material/timeline-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/timeline-text-outline.svg b/doc/theme/material/.icons/material/timeline-text-outline.svg new file mode 100644 index 00000000..970cc516 --- /dev/null +++ b/doc/theme/material/.icons/material/timeline-text-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/timeline-text.svg b/doc/theme/material/.icons/material/timeline-text.svg new file mode 100644 index 00000000..48a77167 --- /dev/null +++ b/doc/theme/material/.icons/material/timeline-text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/timeline.svg b/doc/theme/material/.icons/material/timeline.svg new file mode 100644 index 00000000..9e9b30c8 --- /dev/null +++ b/doc/theme/material/.icons/material/timeline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/timer-10.svg b/doc/theme/material/.icons/material/timer-10.svg new file mode 100644 index 00000000..e628c092 --- /dev/null +++ b/doc/theme/material/.icons/material/timer-10.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/timer-3.svg b/doc/theme/material/.icons/material/timer-3.svg new file mode 100644 index 00000000..93b975b6 --- /dev/null +++ b/doc/theme/material/.icons/material/timer-3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/timer-off-outline.svg b/doc/theme/material/.icons/material/timer-off-outline.svg new file mode 100644 index 00000000..53a4512a --- /dev/null +++ b/doc/theme/material/.icons/material/timer-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/timer-off.svg b/doc/theme/material/.icons/material/timer-off.svg new file mode 100644 index 00000000..c592adf0 --- /dev/null +++ b/doc/theme/material/.icons/material/timer-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/timer-outline.svg b/doc/theme/material/.icons/material/timer-outline.svg new file mode 100644 index 00000000..7eb2dddb --- /dev/null +++ b/doc/theme/material/.icons/material/timer-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/timer-sand-empty.svg b/doc/theme/material/.icons/material/timer-sand-empty.svg new file mode 100644 index 00000000..c2e9dd78 --- /dev/null +++ b/doc/theme/material/.icons/material/timer-sand-empty.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/timer-sand-full.svg b/doc/theme/material/.icons/material/timer-sand-full.svg new file mode 100644 index 00000000..17400dcd --- /dev/null +++ b/doc/theme/material/.icons/material/timer-sand-full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/timer-sand.svg b/doc/theme/material/.icons/material/timer-sand.svg new file mode 100644 index 00000000..462e8d12 --- /dev/null +++ b/doc/theme/material/.icons/material/timer-sand.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/timer.svg b/doc/theme/material/.icons/material/timer.svg new file mode 100644 index 00000000..e352f316 --- /dev/null +++ b/doc/theme/material/.icons/material/timer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/timetable.svg b/doc/theme/material/.icons/material/timetable.svg new file mode 100644 index 00000000..e8bbacfb --- /dev/null +++ b/doc/theme/material/.icons/material/timetable.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/toaster-off.svg b/doc/theme/material/.icons/material/toaster-off.svg new file mode 100644 index 00000000..8707f490 --- /dev/null +++ b/doc/theme/material/.icons/material/toaster-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/toaster-oven.svg b/doc/theme/material/.icons/material/toaster-oven.svg new file mode 100644 index 00000000..ce41571b --- /dev/null +++ b/doc/theme/material/.icons/material/toaster-oven.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/toaster.svg b/doc/theme/material/.icons/material/toaster.svg new file mode 100644 index 00000000..728059f6 --- /dev/null +++ b/doc/theme/material/.icons/material/toaster.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/toggle-switch-off-outline.svg b/doc/theme/material/.icons/material/toggle-switch-off-outline.svg new file mode 100644 index 00000000..4485ed23 --- /dev/null +++ b/doc/theme/material/.icons/material/toggle-switch-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/toggle-switch-off.svg b/doc/theme/material/.icons/material/toggle-switch-off.svg new file mode 100644 index 00000000..2ac0e865 --- /dev/null +++ b/doc/theme/material/.icons/material/toggle-switch-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/toggle-switch-outline.svg b/doc/theme/material/.icons/material/toggle-switch-outline.svg new file mode 100644 index 00000000..9f218648 --- /dev/null +++ b/doc/theme/material/.icons/material/toggle-switch-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/toggle-switch.svg b/doc/theme/material/.icons/material/toggle-switch.svg new file mode 100644 index 00000000..5cb7e88c --- /dev/null +++ b/doc/theme/material/.icons/material/toggle-switch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/toilet.svg b/doc/theme/material/.icons/material/toilet.svg new file mode 100644 index 00000000..c83f4839 --- /dev/null +++ b/doc/theme/material/.icons/material/toilet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/toolbox-outline.svg b/doc/theme/material/.icons/material/toolbox-outline.svg new file mode 100644 index 00000000..c8861506 --- /dev/null +++ b/doc/theme/material/.icons/material/toolbox-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/toolbox.svg b/doc/theme/material/.icons/material/toolbox.svg new file mode 100644 index 00000000..7f64fb72 --- /dev/null +++ b/doc/theme/material/.icons/material/toolbox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tools.svg b/doc/theme/material/.icons/material/tools.svg new file mode 100644 index 00000000..e48453da --- /dev/null +++ b/doc/theme/material/.icons/material/tools.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tooltip-account.svg b/doc/theme/material/.icons/material/tooltip-account.svg new file mode 100644 index 00000000..327bffc2 --- /dev/null +++ b/doc/theme/material/.icons/material/tooltip-account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tooltip-edit-outline.svg b/doc/theme/material/.icons/material/tooltip-edit-outline.svg new file mode 100644 index 00000000..8ee5b448 --- /dev/null +++ b/doc/theme/material/.icons/material/tooltip-edit-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tooltip-edit.svg b/doc/theme/material/.icons/material/tooltip-edit.svg new file mode 100644 index 00000000..e8ae71d0 --- /dev/null +++ b/doc/theme/material/.icons/material/tooltip-edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tooltip-image-outline.svg b/doc/theme/material/.icons/material/tooltip-image-outline.svg new file mode 100644 index 00000000..63b0d684 --- /dev/null +++ b/doc/theme/material/.icons/material/tooltip-image-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tooltip-image.svg b/doc/theme/material/.icons/material/tooltip-image.svg new file mode 100644 index 00000000..aa5c647f --- /dev/null +++ b/doc/theme/material/.icons/material/tooltip-image.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tooltip-outline.svg b/doc/theme/material/.icons/material/tooltip-outline.svg new file mode 100644 index 00000000..06841830 --- /dev/null +++ b/doc/theme/material/.icons/material/tooltip-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tooltip-plus-outline.svg b/doc/theme/material/.icons/material/tooltip-plus-outline.svg new file mode 100644 index 00000000..4052e95f --- /dev/null +++ b/doc/theme/material/.icons/material/tooltip-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tooltip-plus.svg b/doc/theme/material/.icons/material/tooltip-plus.svg new file mode 100644 index 00000000..7c72f53b --- /dev/null +++ b/doc/theme/material/.icons/material/tooltip-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tooltip-text-outline.svg b/doc/theme/material/.icons/material/tooltip-text-outline.svg new file mode 100644 index 00000000..833e842d --- /dev/null +++ b/doc/theme/material/.icons/material/tooltip-text-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tooltip-text.svg b/doc/theme/material/.icons/material/tooltip-text.svg new file mode 100644 index 00000000..3cf2d141 --- /dev/null +++ b/doc/theme/material/.icons/material/tooltip-text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tooltip.svg b/doc/theme/material/.icons/material/tooltip.svg new file mode 100644 index 00000000..3ea36ff3 --- /dev/null +++ b/doc/theme/material/.icons/material/tooltip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tooth-outline.svg b/doc/theme/material/.icons/material/tooth-outline.svg new file mode 100644 index 00000000..a933a1a0 --- /dev/null +++ b/doc/theme/material/.icons/material/tooth-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tooth.svg b/doc/theme/material/.icons/material/tooth.svg new file mode 100644 index 00000000..e44fdc5f --- /dev/null +++ b/doc/theme/material/.icons/material/tooth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/toothbrush-electric.svg b/doc/theme/material/.icons/material/toothbrush-electric.svg new file mode 100644 index 00000000..c5caeb2c --- /dev/null +++ b/doc/theme/material/.icons/material/toothbrush-electric.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/toothbrush-paste.svg b/doc/theme/material/.icons/material/toothbrush-paste.svg new file mode 100644 index 00000000..6b0b3724 --- /dev/null +++ b/doc/theme/material/.icons/material/toothbrush-paste.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/toothbrush.svg b/doc/theme/material/.icons/material/toothbrush.svg new file mode 100644 index 00000000..4611894d --- /dev/null +++ b/doc/theme/material/.icons/material/toothbrush.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tortoise.svg b/doc/theme/material/.icons/material/tortoise.svg new file mode 100644 index 00000000..d56bc727 --- /dev/null +++ b/doc/theme/material/.icons/material/tortoise.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/toslink.svg b/doc/theme/material/.icons/material/toslink.svg new file mode 100644 index 00000000..11958af7 --- /dev/null +++ b/doc/theme/material/.icons/material/toslink.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tournament.svg b/doc/theme/material/.icons/material/tournament.svg new file mode 100644 index 00000000..16a141f7 --- /dev/null +++ b/doc/theme/material/.icons/material/tournament.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tow-truck.svg b/doc/theme/material/.icons/material/tow-truck.svg new file mode 100644 index 00000000..41dc5676 --- /dev/null +++ b/doc/theme/material/.icons/material/tow-truck.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tower-beach.svg b/doc/theme/material/.icons/material/tower-beach.svg new file mode 100644 index 00000000..217bdddb --- /dev/null +++ b/doc/theme/material/.icons/material/tower-beach.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tower-fire.svg b/doc/theme/material/.icons/material/tower-fire.svg new file mode 100644 index 00000000..30760322 --- /dev/null +++ b/doc/theme/material/.icons/material/tower-fire.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/toy-brick-marker-outline.svg b/doc/theme/material/.icons/material/toy-brick-marker-outline.svg new file mode 100644 index 00000000..1064edc1 --- /dev/null +++ b/doc/theme/material/.icons/material/toy-brick-marker-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/toy-brick-marker.svg b/doc/theme/material/.icons/material/toy-brick-marker.svg new file mode 100644 index 00000000..a4ba943c --- /dev/null +++ b/doc/theme/material/.icons/material/toy-brick-marker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/toy-brick-minus-outline.svg b/doc/theme/material/.icons/material/toy-brick-minus-outline.svg new file mode 100644 index 00000000..91ee3bce --- /dev/null +++ b/doc/theme/material/.icons/material/toy-brick-minus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/toy-brick-minus.svg b/doc/theme/material/.icons/material/toy-brick-minus.svg new file mode 100644 index 00000000..78b512f9 --- /dev/null +++ b/doc/theme/material/.icons/material/toy-brick-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/toy-brick-outline.svg b/doc/theme/material/.icons/material/toy-brick-outline.svg new file mode 100644 index 00000000..511d0765 --- /dev/null +++ b/doc/theme/material/.icons/material/toy-brick-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/toy-brick-plus-outline.svg b/doc/theme/material/.icons/material/toy-brick-plus-outline.svg new file mode 100644 index 00000000..f10482ec --- /dev/null +++ b/doc/theme/material/.icons/material/toy-brick-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/toy-brick-plus.svg b/doc/theme/material/.icons/material/toy-brick-plus.svg new file mode 100644 index 00000000..b2a2a76f --- /dev/null +++ b/doc/theme/material/.icons/material/toy-brick-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/toy-brick-remove-outline.svg b/doc/theme/material/.icons/material/toy-brick-remove-outline.svg new file mode 100644 index 00000000..f10482ec --- /dev/null +++ b/doc/theme/material/.icons/material/toy-brick-remove-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/toy-brick-remove.svg b/doc/theme/material/.icons/material/toy-brick-remove.svg new file mode 100644 index 00000000..2ffc2784 --- /dev/null +++ b/doc/theme/material/.icons/material/toy-brick-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/toy-brick-search-outline.svg b/doc/theme/material/.icons/material/toy-brick-search-outline.svg new file mode 100644 index 00000000..437bb15b --- /dev/null +++ b/doc/theme/material/.icons/material/toy-brick-search-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/toy-brick-search.svg b/doc/theme/material/.icons/material/toy-brick-search.svg new file mode 100644 index 00000000..ffce63e0 --- /dev/null +++ b/doc/theme/material/.icons/material/toy-brick-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/toy-brick.svg b/doc/theme/material/.icons/material/toy-brick.svg new file mode 100644 index 00000000..1681c6c3 --- /dev/null +++ b/doc/theme/material/.icons/material/toy-brick.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/track-light.svg b/doc/theme/material/.icons/material/track-light.svg new file mode 100644 index 00000000..6bda9ab5 --- /dev/null +++ b/doc/theme/material/.icons/material/track-light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/trackpad-lock.svg b/doc/theme/material/.icons/material/trackpad-lock.svg new file mode 100644 index 00000000..00ae30da --- /dev/null +++ b/doc/theme/material/.icons/material/trackpad-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/trackpad.svg b/doc/theme/material/.icons/material/trackpad.svg new file mode 100644 index 00000000..a7ae2b7c --- /dev/null +++ b/doc/theme/material/.icons/material/trackpad.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tractor.svg b/doc/theme/material/.icons/material/tractor.svg new file mode 100644 index 00000000..038791f6 --- /dev/null +++ b/doc/theme/material/.icons/material/tractor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/trademark.svg b/doc/theme/material/.icons/material/trademark.svg new file mode 100644 index 00000000..5fad41ae --- /dev/null +++ b/doc/theme/material/.icons/material/trademark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/traffic-cone.svg b/doc/theme/material/.icons/material/traffic-cone.svg new file mode 100644 index 00000000..c00870a7 --- /dev/null +++ b/doc/theme/material/.icons/material/traffic-cone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/traffic-light.svg b/doc/theme/material/.icons/material/traffic-light.svg new file mode 100644 index 00000000..196202ec --- /dev/null +++ b/doc/theme/material/.icons/material/traffic-light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/train-car.svg b/doc/theme/material/.icons/material/train-car.svg new file mode 100644 index 00000000..c2f29310 --- /dev/null +++ b/doc/theme/material/.icons/material/train-car.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/train-variant.svg b/doc/theme/material/.icons/material/train-variant.svg new file mode 100644 index 00000000..f68f47d0 --- /dev/null +++ b/doc/theme/material/.icons/material/train-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/train.svg b/doc/theme/material/.icons/material/train.svg new file mode 100644 index 00000000..b7ef247d --- /dev/null +++ b/doc/theme/material/.icons/material/train.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tram-side.svg b/doc/theme/material/.icons/material/tram-side.svg new file mode 100644 index 00000000..14e19205 --- /dev/null +++ b/doc/theme/material/.icons/material/tram-side.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tram.svg b/doc/theme/material/.icons/material/tram.svg new file mode 100644 index 00000000..28e123d1 --- /dev/null +++ b/doc/theme/material/.icons/material/tram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/transcribe-close.svg b/doc/theme/material/.icons/material/transcribe-close.svg new file mode 100644 index 00000000..32f8dfb0 --- /dev/null +++ b/doc/theme/material/.icons/material/transcribe-close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/transcribe.svg b/doc/theme/material/.icons/material/transcribe.svg new file mode 100644 index 00000000..59ae88c8 --- /dev/null +++ b/doc/theme/material/.icons/material/transcribe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/transfer-down.svg b/doc/theme/material/.icons/material/transfer-down.svg new file mode 100644 index 00000000..f510a761 --- /dev/null +++ b/doc/theme/material/.icons/material/transfer-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/transfer-left.svg b/doc/theme/material/.icons/material/transfer-left.svg new file mode 100644 index 00000000..d82467d3 --- /dev/null +++ b/doc/theme/material/.icons/material/transfer-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/transfer-right.svg b/doc/theme/material/.icons/material/transfer-right.svg new file mode 100644 index 00000000..0379f206 --- /dev/null +++ b/doc/theme/material/.icons/material/transfer-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/transfer-up.svg b/doc/theme/material/.icons/material/transfer-up.svg new file mode 100644 index 00000000..674c1ef3 --- /dev/null +++ b/doc/theme/material/.icons/material/transfer-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/transfer.svg b/doc/theme/material/.icons/material/transfer.svg new file mode 100644 index 00000000..fb4ce542 --- /dev/null +++ b/doc/theme/material/.icons/material/transfer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/transit-connection-variant.svg b/doc/theme/material/.icons/material/transit-connection-variant.svg new file mode 100644 index 00000000..87cef9e4 --- /dev/null +++ b/doc/theme/material/.icons/material/transit-connection-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/transit-connection.svg b/doc/theme/material/.icons/material/transit-connection.svg new file mode 100644 index 00000000..d3ece6c5 --- /dev/null +++ b/doc/theme/material/.icons/material/transit-connection.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/transit-detour.svg b/doc/theme/material/.icons/material/transit-detour.svg new file mode 100644 index 00000000..b455b9e1 --- /dev/null +++ b/doc/theme/material/.icons/material/transit-detour.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/transit-transfer.svg b/doc/theme/material/.icons/material/transit-transfer.svg new file mode 100644 index 00000000..f006b3a5 --- /dev/null +++ b/doc/theme/material/.icons/material/transit-transfer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/transition-masked.svg b/doc/theme/material/.icons/material/transition-masked.svg new file mode 100644 index 00000000..64cd7bf7 --- /dev/null +++ b/doc/theme/material/.icons/material/transition-masked.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/transition.svg b/doc/theme/material/.icons/material/transition.svg new file mode 100644 index 00000000..ef8b7296 --- /dev/null +++ b/doc/theme/material/.icons/material/transition.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/translate-off.svg b/doc/theme/material/.icons/material/translate-off.svg new file mode 100644 index 00000000..5c06efd7 --- /dev/null +++ b/doc/theme/material/.icons/material/translate-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/translate.svg b/doc/theme/material/.icons/material/translate.svg new file mode 100644 index 00000000..bac1efd1 --- /dev/null +++ b/doc/theme/material/.icons/material/translate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/transmission-tower.svg b/doc/theme/material/.icons/material/transmission-tower.svg new file mode 100644 index 00000000..fbc12331 --- /dev/null +++ b/doc/theme/material/.icons/material/transmission-tower.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/trash-can-outline.svg b/doc/theme/material/.icons/material/trash-can-outline.svg new file mode 100644 index 00000000..7fe04240 --- /dev/null +++ b/doc/theme/material/.icons/material/trash-can-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/trash-can.svg b/doc/theme/material/.icons/material/trash-can.svg new file mode 100644 index 00000000..31f6b08d --- /dev/null +++ b/doc/theme/material/.icons/material/trash-can.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tray-alert.svg b/doc/theme/material/.icons/material/tray-alert.svg new file mode 100644 index 00000000..568b2df1 --- /dev/null +++ b/doc/theme/material/.icons/material/tray-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tray-full.svg b/doc/theme/material/.icons/material/tray-full.svg new file mode 100644 index 00000000..342126b6 --- /dev/null +++ b/doc/theme/material/.icons/material/tray-full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tray-minus.svg b/doc/theme/material/.icons/material/tray-minus.svg new file mode 100644 index 00000000..a5963de5 --- /dev/null +++ b/doc/theme/material/.icons/material/tray-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tray-plus.svg b/doc/theme/material/.icons/material/tray-plus.svg new file mode 100644 index 00000000..71bcc868 --- /dev/null +++ b/doc/theme/material/.icons/material/tray-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tray-remove.svg b/doc/theme/material/.icons/material/tray-remove.svg new file mode 100644 index 00000000..c4adac21 --- /dev/null +++ b/doc/theme/material/.icons/material/tray-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tray.svg b/doc/theme/material/.icons/material/tray.svg new file mode 100644 index 00000000..5ee5f8e8 --- /dev/null +++ b/doc/theme/material/.icons/material/tray.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/treasure-chest.svg b/doc/theme/material/.icons/material/treasure-chest.svg new file mode 100644 index 00000000..0f762772 --- /dev/null +++ b/doc/theme/material/.icons/material/treasure-chest.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tree-outline.svg b/doc/theme/material/.icons/material/tree-outline.svg new file mode 100644 index 00000000..48d2b990 --- /dev/null +++ b/doc/theme/material/.icons/material/tree-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tree.svg b/doc/theme/material/.icons/material/tree.svg new file mode 100644 index 00000000..b8e86d5e --- /dev/null +++ b/doc/theme/material/.icons/material/tree.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/trello.svg b/doc/theme/material/.icons/material/trello.svg new file mode 100644 index 00000000..da327e1d --- /dev/null +++ b/doc/theme/material/.icons/material/trello.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/trending-down.svg b/doc/theme/material/.icons/material/trending-down.svg new file mode 100644 index 00000000..0636afdf --- /dev/null +++ b/doc/theme/material/.icons/material/trending-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/trending-neutral.svg b/doc/theme/material/.icons/material/trending-neutral.svg new file mode 100644 index 00000000..79935029 --- /dev/null +++ b/doc/theme/material/.icons/material/trending-neutral.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/trending-up.svg b/doc/theme/material/.icons/material/trending-up.svg new file mode 100644 index 00000000..8ca76a04 --- /dev/null +++ b/doc/theme/material/.icons/material/trending-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/triangle-outline.svg b/doc/theme/material/.icons/material/triangle-outline.svg new file mode 100644 index 00000000..2d01d2bf --- /dev/null +++ b/doc/theme/material/.icons/material/triangle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/triangle.svg b/doc/theme/material/.icons/material/triangle.svg new file mode 100644 index 00000000..6de1d39f --- /dev/null +++ b/doc/theme/material/.icons/material/triangle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/triforce.svg b/doc/theme/material/.icons/material/triforce.svg new file mode 100644 index 00000000..6bee7b96 --- /dev/null +++ b/doc/theme/material/.icons/material/triforce.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/trophy-award.svg b/doc/theme/material/.icons/material/trophy-award.svg new file mode 100644 index 00000000..3c91d556 --- /dev/null +++ b/doc/theme/material/.icons/material/trophy-award.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/trophy-broken.svg b/doc/theme/material/.icons/material/trophy-broken.svg new file mode 100644 index 00000000..97a39046 --- /dev/null +++ b/doc/theme/material/.icons/material/trophy-broken.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/trophy-outline.svg b/doc/theme/material/.icons/material/trophy-outline.svg new file mode 100644 index 00000000..bf312d15 --- /dev/null +++ b/doc/theme/material/.icons/material/trophy-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/trophy-variant-outline.svg b/doc/theme/material/.icons/material/trophy-variant-outline.svg new file mode 100644 index 00000000..ab3d06f5 --- /dev/null +++ b/doc/theme/material/.icons/material/trophy-variant-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/trophy-variant.svg b/doc/theme/material/.icons/material/trophy-variant.svg new file mode 100644 index 00000000..bb4141e4 --- /dev/null +++ b/doc/theme/material/.icons/material/trophy-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/trophy.svg b/doc/theme/material/.icons/material/trophy.svg new file mode 100644 index 00000000..9a4f3949 --- /dev/null +++ b/doc/theme/material/.icons/material/trophy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/truck-check-outline.svg b/doc/theme/material/.icons/material/truck-check-outline.svg new file mode 100644 index 00000000..b32ce0f1 --- /dev/null +++ b/doc/theme/material/.icons/material/truck-check-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/truck-check.svg b/doc/theme/material/.icons/material/truck-check.svg new file mode 100644 index 00000000..d8e629ed --- /dev/null +++ b/doc/theme/material/.icons/material/truck-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/truck-delivery-outline.svg b/doc/theme/material/.icons/material/truck-delivery-outline.svg new file mode 100644 index 00000000..f2d686a2 --- /dev/null +++ b/doc/theme/material/.icons/material/truck-delivery-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/truck-delivery.svg b/doc/theme/material/.icons/material/truck-delivery.svg new file mode 100644 index 00000000..8cfdafed --- /dev/null +++ b/doc/theme/material/.icons/material/truck-delivery.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/truck-fast-outline.svg b/doc/theme/material/.icons/material/truck-fast-outline.svg new file mode 100644 index 00000000..ec1fd30a --- /dev/null +++ b/doc/theme/material/.icons/material/truck-fast-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/truck-fast.svg b/doc/theme/material/.icons/material/truck-fast.svg new file mode 100644 index 00000000..fb605682 --- /dev/null +++ b/doc/theme/material/.icons/material/truck-fast.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/truck-outline.svg b/doc/theme/material/.icons/material/truck-outline.svg new file mode 100644 index 00000000..fc619d13 --- /dev/null +++ b/doc/theme/material/.icons/material/truck-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/truck-trailer.svg b/doc/theme/material/.icons/material/truck-trailer.svg new file mode 100644 index 00000000..ef6e4194 --- /dev/null +++ b/doc/theme/material/.icons/material/truck-trailer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/truck.svg b/doc/theme/material/.icons/material/truck.svg new file mode 100644 index 00000000..0d44ab23 --- /dev/null +++ b/doc/theme/material/.icons/material/truck.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/trumpet.svg b/doc/theme/material/.icons/material/trumpet.svg new file mode 100644 index 00000000..05395ff2 --- /dev/null +++ b/doc/theme/material/.icons/material/trumpet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tshirt-crew-outline.svg b/doc/theme/material/.icons/material/tshirt-crew-outline.svg new file mode 100644 index 00000000..4ba5e99d --- /dev/null +++ b/doc/theme/material/.icons/material/tshirt-crew-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tshirt-crew.svg b/doc/theme/material/.icons/material/tshirt-crew.svg new file mode 100644 index 00000000..fa010f7f --- /dev/null +++ b/doc/theme/material/.icons/material/tshirt-crew.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tshirt-v-outline.svg b/doc/theme/material/.icons/material/tshirt-v-outline.svg new file mode 100644 index 00000000..83780560 --- /dev/null +++ b/doc/theme/material/.icons/material/tshirt-v-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tshirt-v.svg b/doc/theme/material/.icons/material/tshirt-v.svg new file mode 100644 index 00000000..ee182e48 --- /dev/null +++ b/doc/theme/material/.icons/material/tshirt-v.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tumble-dryer-alert.svg b/doc/theme/material/.icons/material/tumble-dryer-alert.svg new file mode 100644 index 00000000..ede00144 --- /dev/null +++ b/doc/theme/material/.icons/material/tumble-dryer-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tumble-dryer-off.svg b/doc/theme/material/.icons/material/tumble-dryer-off.svg new file mode 100644 index 00000000..ba65cd58 --- /dev/null +++ b/doc/theme/material/.icons/material/tumble-dryer-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tumble-dryer.svg b/doc/theme/material/.icons/material/tumble-dryer.svg new file mode 100644 index 00000000..a18db566 --- /dev/null +++ b/doc/theme/material/.icons/material/tumble-dryer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tune-vertical.svg b/doc/theme/material/.icons/material/tune-vertical.svg new file mode 100644 index 00000000..39f4288f --- /dev/null +++ b/doc/theme/material/.icons/material/tune-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/tune.svg b/doc/theme/material/.icons/material/tune.svg new file mode 100644 index 00000000..041f1dbb --- /dev/null +++ b/doc/theme/material/.icons/material/tune.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/turnstile-outline.svg b/doc/theme/material/.icons/material/turnstile-outline.svg new file mode 100644 index 00000000..e7f11b2d --- /dev/null +++ b/doc/theme/material/.icons/material/turnstile-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/turnstile.svg b/doc/theme/material/.icons/material/turnstile.svg new file mode 100644 index 00000000..e089c4c0 --- /dev/null +++ b/doc/theme/material/.icons/material/turnstile.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/turtle.svg b/doc/theme/material/.icons/material/turtle.svg new file mode 100644 index 00000000..4a704654 --- /dev/null +++ b/doc/theme/material/.icons/material/turtle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/twitch.svg b/doc/theme/material/.icons/material/twitch.svg new file mode 100644 index 00000000..294d2b4f --- /dev/null +++ b/doc/theme/material/.icons/material/twitch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/twitter-retweet.svg b/doc/theme/material/.icons/material/twitter-retweet.svg new file mode 100644 index 00000000..b3feb38a --- /dev/null +++ b/doc/theme/material/.icons/material/twitter-retweet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/twitter.svg b/doc/theme/material/.icons/material/twitter.svg new file mode 100644 index 00000000..c6f67968 --- /dev/null +++ b/doc/theme/material/.icons/material/twitter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/two-factor-authentication.svg b/doc/theme/material/.icons/material/two-factor-authentication.svg new file mode 100644 index 00000000..91337903 --- /dev/null +++ b/doc/theme/material/.icons/material/two-factor-authentication.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/typewriter.svg b/doc/theme/material/.icons/material/typewriter.svg new file mode 100644 index 00000000..93f015eb --- /dev/null +++ b/doc/theme/material/.icons/material/typewriter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ubisoft.svg b/doc/theme/material/.icons/material/ubisoft.svg new file mode 100644 index 00000000..f84d736f --- /dev/null +++ b/doc/theme/material/.icons/material/ubisoft.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ubuntu.svg b/doc/theme/material/.icons/material/ubuntu.svg new file mode 100644 index 00000000..7362008c --- /dev/null +++ b/doc/theme/material/.icons/material/ubuntu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ufo-outline.svg b/doc/theme/material/.icons/material/ufo-outline.svg new file mode 100644 index 00000000..19d00bac --- /dev/null +++ b/doc/theme/material/.icons/material/ufo-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ufo.svg b/doc/theme/material/.icons/material/ufo.svg new file mode 100644 index 00000000..b4d93262 --- /dev/null +++ b/doc/theme/material/.icons/material/ufo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ultra-high-definition.svg b/doc/theme/material/.icons/material/ultra-high-definition.svg new file mode 100644 index 00000000..71b2d60f --- /dev/null +++ b/doc/theme/material/.icons/material/ultra-high-definition.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/umbraco.svg b/doc/theme/material/.icons/material/umbraco.svg new file mode 100644 index 00000000..560157e5 --- /dev/null +++ b/doc/theme/material/.icons/material/umbraco.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/umbrella-closed-outline.svg b/doc/theme/material/.icons/material/umbrella-closed-outline.svg new file mode 100644 index 00000000..39fc0838 --- /dev/null +++ b/doc/theme/material/.icons/material/umbrella-closed-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/umbrella-closed-variant.svg b/doc/theme/material/.icons/material/umbrella-closed-variant.svg new file mode 100644 index 00000000..b48d5101 --- /dev/null +++ b/doc/theme/material/.icons/material/umbrella-closed-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/umbrella-closed.svg b/doc/theme/material/.icons/material/umbrella-closed.svg new file mode 100644 index 00000000..f11f942c --- /dev/null +++ b/doc/theme/material/.icons/material/umbrella-closed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/umbrella-outline.svg b/doc/theme/material/.icons/material/umbrella-outline.svg new file mode 100644 index 00000000..bf41ccf8 --- /dev/null +++ b/doc/theme/material/.icons/material/umbrella-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/umbrella.svg b/doc/theme/material/.icons/material/umbrella.svg new file mode 100644 index 00000000..90e82fa6 --- /dev/null +++ b/doc/theme/material/.icons/material/umbrella.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/undo-variant.svg b/doc/theme/material/.icons/material/undo-variant.svg new file mode 100644 index 00000000..481ef757 --- /dev/null +++ b/doc/theme/material/.icons/material/undo-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/undo.svg b/doc/theme/material/.icons/material/undo.svg new file mode 100644 index 00000000..0e1558a2 --- /dev/null +++ b/doc/theme/material/.icons/material/undo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/unfold-less-horizontal.svg b/doc/theme/material/.icons/material/unfold-less-horizontal.svg new file mode 100644 index 00000000..889e7b3d --- /dev/null +++ b/doc/theme/material/.icons/material/unfold-less-horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/unfold-less-vertical.svg b/doc/theme/material/.icons/material/unfold-less-vertical.svg new file mode 100644 index 00000000..94cbe530 --- /dev/null +++ b/doc/theme/material/.icons/material/unfold-less-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/unfold-more-horizontal.svg b/doc/theme/material/.icons/material/unfold-more-horizontal.svg new file mode 100644 index 00000000..38b87a80 --- /dev/null +++ b/doc/theme/material/.icons/material/unfold-more-horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/unfold-more-vertical.svg b/doc/theme/material/.icons/material/unfold-more-vertical.svg new file mode 100644 index 00000000..0798b362 --- /dev/null +++ b/doc/theme/material/.icons/material/unfold-more-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/ungroup.svg b/doc/theme/material/.icons/material/ungroup.svg new file mode 100644 index 00000000..77dc5bf8 --- /dev/null +++ b/doc/theme/material/.icons/material/ungroup.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/unicode.svg b/doc/theme/material/.icons/material/unicode.svg new file mode 100644 index 00000000..0b75c445 --- /dev/null +++ b/doc/theme/material/.icons/material/unicode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/unity.svg b/doc/theme/material/.icons/material/unity.svg new file mode 100644 index 00000000..cbe48204 --- /dev/null +++ b/doc/theme/material/.icons/material/unity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/unreal.svg b/doc/theme/material/.icons/material/unreal.svg new file mode 100644 index 00000000..40f3de57 --- /dev/null +++ b/doc/theme/material/.icons/material/unreal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/untappd.svg b/doc/theme/material/.icons/material/untappd.svg new file mode 100644 index 00000000..13917fca --- /dev/null +++ b/doc/theme/material/.icons/material/untappd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/update.svg b/doc/theme/material/.icons/material/update.svg new file mode 100644 index 00000000..4e45fa7b --- /dev/null +++ b/doc/theme/material/.icons/material/update.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/upload-lock-outline.svg b/doc/theme/material/.icons/material/upload-lock-outline.svg new file mode 100644 index 00000000..03838392 --- /dev/null +++ b/doc/theme/material/.icons/material/upload-lock-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/upload-lock.svg b/doc/theme/material/.icons/material/upload-lock.svg new file mode 100644 index 00000000..48022788 --- /dev/null +++ b/doc/theme/material/.icons/material/upload-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/upload-multiple.svg b/doc/theme/material/.icons/material/upload-multiple.svg new file mode 100644 index 00000000..5189863a --- /dev/null +++ b/doc/theme/material/.icons/material/upload-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/upload-network-outline.svg b/doc/theme/material/.icons/material/upload-network-outline.svg new file mode 100644 index 00000000..0014a379 --- /dev/null +++ b/doc/theme/material/.icons/material/upload-network-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/upload-network.svg b/doc/theme/material/.icons/material/upload-network.svg new file mode 100644 index 00000000..999dbc7d --- /dev/null +++ b/doc/theme/material/.icons/material/upload-network.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/upload-off-outline.svg b/doc/theme/material/.icons/material/upload-off-outline.svg new file mode 100644 index 00000000..49c283a0 --- /dev/null +++ b/doc/theme/material/.icons/material/upload-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/upload-off.svg b/doc/theme/material/.icons/material/upload-off.svg new file mode 100644 index 00000000..098c143c --- /dev/null +++ b/doc/theme/material/.icons/material/upload-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/upload-outline.svg b/doc/theme/material/.icons/material/upload-outline.svg new file mode 100644 index 00000000..903d8621 --- /dev/null +++ b/doc/theme/material/.icons/material/upload-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/upload.svg b/doc/theme/material/.icons/material/upload.svg new file mode 100644 index 00000000..60406fbc --- /dev/null +++ b/doc/theme/material/.icons/material/upload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/usb-flash-drive-outline.svg b/doc/theme/material/.icons/material/usb-flash-drive-outline.svg new file mode 100644 index 00000000..31677cdc --- /dev/null +++ b/doc/theme/material/.icons/material/usb-flash-drive-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/usb-flash-drive.svg b/doc/theme/material/.icons/material/usb-flash-drive.svg new file mode 100644 index 00000000..60e74e90 --- /dev/null +++ b/doc/theme/material/.icons/material/usb-flash-drive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/usb-port.svg b/doc/theme/material/.icons/material/usb-port.svg new file mode 100644 index 00000000..d81e34ea --- /dev/null +++ b/doc/theme/material/.icons/material/usb-port.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/usb.svg b/doc/theme/material/.icons/material/usb.svg new file mode 100644 index 00000000..b55ae67f --- /dev/null +++ b/doc/theme/material/.icons/material/usb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/valve-closed.svg b/doc/theme/material/.icons/material/valve-closed.svg new file mode 100644 index 00000000..df4b8f7e --- /dev/null +++ b/doc/theme/material/.icons/material/valve-closed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/valve-open.svg b/doc/theme/material/.icons/material/valve-open.svg new file mode 100644 index 00000000..6e73acbf --- /dev/null +++ b/doc/theme/material/.icons/material/valve-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/valve.svg b/doc/theme/material/.icons/material/valve.svg new file mode 100644 index 00000000..03b2651b --- /dev/null +++ b/doc/theme/material/.icons/material/valve.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/van-passenger.svg b/doc/theme/material/.icons/material/van-passenger.svg new file mode 100644 index 00000000..0cafa221 --- /dev/null +++ b/doc/theme/material/.icons/material/van-passenger.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/van-utility.svg b/doc/theme/material/.icons/material/van-utility.svg new file mode 100644 index 00000000..b6734e53 --- /dev/null +++ b/doc/theme/material/.icons/material/van-utility.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vanish.svg b/doc/theme/material/.icons/material/vanish.svg new file mode 100644 index 00000000..919045ab --- /dev/null +++ b/doc/theme/material/.icons/material/vanish.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vanity-light.svg b/doc/theme/material/.icons/material/vanity-light.svg new file mode 100644 index 00000000..eae22830 --- /dev/null +++ b/doc/theme/material/.icons/material/vanity-light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/variable-box.svg b/doc/theme/material/.icons/material/variable-box.svg new file mode 100644 index 00000000..79f9cf5b --- /dev/null +++ b/doc/theme/material/.icons/material/variable-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/variable.svg b/doc/theme/material/.icons/material/variable.svg new file mode 100644 index 00000000..c4c981a6 --- /dev/null +++ b/doc/theme/material/.icons/material/variable.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vector-arrange-above.svg b/doc/theme/material/.icons/material/vector-arrange-above.svg new file mode 100644 index 00000000..14de4206 --- /dev/null +++ b/doc/theme/material/.icons/material/vector-arrange-above.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vector-arrange-below.svg b/doc/theme/material/.icons/material/vector-arrange-below.svg new file mode 100644 index 00000000..6cdc0b0b --- /dev/null +++ b/doc/theme/material/.icons/material/vector-arrange-below.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vector-bezier.svg b/doc/theme/material/.icons/material/vector-bezier.svg new file mode 100644 index 00000000..4506c7ff --- /dev/null +++ b/doc/theme/material/.icons/material/vector-bezier.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vector-circle-variant.svg b/doc/theme/material/.icons/material/vector-circle-variant.svg new file mode 100644 index 00000000..5204113d --- /dev/null +++ b/doc/theme/material/.icons/material/vector-circle-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vector-circle.svg b/doc/theme/material/.icons/material/vector-circle.svg new file mode 100644 index 00000000..fe4bd65a --- /dev/null +++ b/doc/theme/material/.icons/material/vector-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vector-combine.svg b/doc/theme/material/.icons/material/vector-combine.svg new file mode 100644 index 00000000..c6119cb6 --- /dev/null +++ b/doc/theme/material/.icons/material/vector-combine.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vector-curve.svg b/doc/theme/material/.icons/material/vector-curve.svg new file mode 100644 index 00000000..48dd94a0 --- /dev/null +++ b/doc/theme/material/.icons/material/vector-curve.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vector-difference-ab.svg b/doc/theme/material/.icons/material/vector-difference-ab.svg new file mode 100644 index 00000000..69d3a6b4 --- /dev/null +++ b/doc/theme/material/.icons/material/vector-difference-ab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vector-difference-ba.svg b/doc/theme/material/.icons/material/vector-difference-ba.svg new file mode 100644 index 00000000..89368bdf --- /dev/null +++ b/doc/theme/material/.icons/material/vector-difference-ba.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vector-difference.svg b/doc/theme/material/.icons/material/vector-difference.svg new file mode 100644 index 00000000..20625a05 --- /dev/null +++ b/doc/theme/material/.icons/material/vector-difference.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vector-ellipse.svg b/doc/theme/material/.icons/material/vector-ellipse.svg new file mode 100644 index 00000000..459a8585 --- /dev/null +++ b/doc/theme/material/.icons/material/vector-ellipse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vector-intersection.svg b/doc/theme/material/.icons/material/vector-intersection.svg new file mode 100644 index 00000000..10acd3a8 --- /dev/null +++ b/doc/theme/material/.icons/material/vector-intersection.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vector-line.svg b/doc/theme/material/.icons/material/vector-line.svg new file mode 100644 index 00000000..8c8dce7e --- /dev/null +++ b/doc/theme/material/.icons/material/vector-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vector-link.svg b/doc/theme/material/.icons/material/vector-link.svg new file mode 100644 index 00000000..d487656b --- /dev/null +++ b/doc/theme/material/.icons/material/vector-link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vector-point.svg b/doc/theme/material/.icons/material/vector-point.svg new file mode 100644 index 00000000..bf59e41d --- /dev/null +++ b/doc/theme/material/.icons/material/vector-point.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vector-polygon.svg b/doc/theme/material/.icons/material/vector-polygon.svg new file mode 100644 index 00000000..6efb05cf --- /dev/null +++ b/doc/theme/material/.icons/material/vector-polygon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vector-polyline-edit.svg b/doc/theme/material/.icons/material/vector-polyline-edit.svg new file mode 100644 index 00000000..c3e8b351 --- /dev/null +++ b/doc/theme/material/.icons/material/vector-polyline-edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vector-polyline-minus.svg b/doc/theme/material/.icons/material/vector-polyline-minus.svg new file mode 100644 index 00000000..c45cc429 --- /dev/null +++ b/doc/theme/material/.icons/material/vector-polyline-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vector-polyline-plus.svg b/doc/theme/material/.icons/material/vector-polyline-plus.svg new file mode 100644 index 00000000..8820cbd2 --- /dev/null +++ b/doc/theme/material/.icons/material/vector-polyline-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vector-polyline-remove.svg b/doc/theme/material/.icons/material/vector-polyline-remove.svg new file mode 100644 index 00000000..6d8cf06a --- /dev/null +++ b/doc/theme/material/.icons/material/vector-polyline-remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vector-polyline.svg b/doc/theme/material/.icons/material/vector-polyline.svg new file mode 100644 index 00000000..b8af7899 --- /dev/null +++ b/doc/theme/material/.icons/material/vector-polyline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vector-radius.svg b/doc/theme/material/.icons/material/vector-radius.svg new file mode 100644 index 00000000..1ea1d62f --- /dev/null +++ b/doc/theme/material/.icons/material/vector-radius.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vector-rectangle.svg b/doc/theme/material/.icons/material/vector-rectangle.svg new file mode 100644 index 00000000..195355fc --- /dev/null +++ b/doc/theme/material/.icons/material/vector-rectangle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vector-selection.svg b/doc/theme/material/.icons/material/vector-selection.svg new file mode 100644 index 00000000..ef00f7a4 --- /dev/null +++ b/doc/theme/material/.icons/material/vector-selection.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vector-square.svg b/doc/theme/material/.icons/material/vector-square.svg new file mode 100644 index 00000000..ebeb0bd9 --- /dev/null +++ b/doc/theme/material/.icons/material/vector-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vector-triangle.svg b/doc/theme/material/.icons/material/vector-triangle.svg new file mode 100644 index 00000000..77e3e3d3 --- /dev/null +++ b/doc/theme/material/.icons/material/vector-triangle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vector-union.svg b/doc/theme/material/.icons/material/vector-union.svg new file mode 100644 index 00000000..5d3e681f --- /dev/null +++ b/doc/theme/material/.icons/material/vector-union.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vhs.svg b/doc/theme/material/.icons/material/vhs.svg new file mode 100644 index 00000000..3e8eb54e --- /dev/null +++ b/doc/theme/material/.icons/material/vhs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vibrate-off.svg b/doc/theme/material/.icons/material/vibrate-off.svg new file mode 100644 index 00000000..ce3f5973 --- /dev/null +++ b/doc/theme/material/.icons/material/vibrate-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vibrate.svg b/doc/theme/material/.icons/material/vibrate.svg new file mode 100644 index 00000000..0aa61430 --- /dev/null +++ b/doc/theme/material/.icons/material/vibrate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video-3d-off.svg b/doc/theme/material/.icons/material/video-3d-off.svg new file mode 100644 index 00000000..ef1e37a4 --- /dev/null +++ b/doc/theme/material/.icons/material/video-3d-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video-3d-variant.svg b/doc/theme/material/.icons/material/video-3d-variant.svg new file mode 100644 index 00000000..dfb8ca7c --- /dev/null +++ b/doc/theme/material/.icons/material/video-3d-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video-3d.svg b/doc/theme/material/.icons/material/video-3d.svg new file mode 100644 index 00000000..8d8e1c82 --- /dev/null +++ b/doc/theme/material/.icons/material/video-3d.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video-4k-box.svg b/doc/theme/material/.icons/material/video-4k-box.svg new file mode 100644 index 00000000..e3835d46 --- /dev/null +++ b/doc/theme/material/.icons/material/video-4k-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video-account.svg b/doc/theme/material/.icons/material/video-account.svg new file mode 100644 index 00000000..4d229c2b --- /dev/null +++ b/doc/theme/material/.icons/material/video-account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video-box-off.svg b/doc/theme/material/.icons/material/video-box-off.svg new file mode 100644 index 00000000..9bcfc9fd --- /dev/null +++ b/doc/theme/material/.icons/material/video-box-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video-box.svg b/doc/theme/material/.icons/material/video-box.svg new file mode 100644 index 00000000..5bf12ee5 --- /dev/null +++ b/doc/theme/material/.icons/material/video-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video-check-outline.svg b/doc/theme/material/.icons/material/video-check-outline.svg new file mode 100644 index 00000000..e45d3e06 --- /dev/null +++ b/doc/theme/material/.icons/material/video-check-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video-check.svg b/doc/theme/material/.icons/material/video-check.svg new file mode 100644 index 00000000..7430bb37 --- /dev/null +++ b/doc/theme/material/.icons/material/video-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video-image.svg b/doc/theme/material/.icons/material/video-image.svg new file mode 100644 index 00000000..8d4229a7 --- /dev/null +++ b/doc/theme/material/.icons/material/video-image.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video-input-antenna.svg b/doc/theme/material/.icons/material/video-input-antenna.svg new file mode 100644 index 00000000..b4c9d174 --- /dev/null +++ b/doc/theme/material/.icons/material/video-input-antenna.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video-input-component.svg b/doc/theme/material/.icons/material/video-input-component.svg new file mode 100644 index 00000000..aa155b53 --- /dev/null +++ b/doc/theme/material/.icons/material/video-input-component.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video-input-hdmi.svg b/doc/theme/material/.icons/material/video-input-hdmi.svg new file mode 100644 index 00000000..f5b4c39b --- /dev/null +++ b/doc/theme/material/.icons/material/video-input-hdmi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video-input-scart.svg b/doc/theme/material/.icons/material/video-input-scart.svg new file mode 100644 index 00000000..63860e15 --- /dev/null +++ b/doc/theme/material/.icons/material/video-input-scart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video-input-svideo.svg b/doc/theme/material/.icons/material/video-input-svideo.svg new file mode 100644 index 00000000..9c715e99 --- /dev/null +++ b/doc/theme/material/.icons/material/video-input-svideo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video-minus-outline.svg b/doc/theme/material/.icons/material/video-minus-outline.svg new file mode 100644 index 00000000..c4911fa9 --- /dev/null +++ b/doc/theme/material/.icons/material/video-minus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video-minus.svg b/doc/theme/material/.icons/material/video-minus.svg new file mode 100644 index 00000000..170841e1 --- /dev/null +++ b/doc/theme/material/.icons/material/video-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video-off-outline.svg b/doc/theme/material/.icons/material/video-off-outline.svg new file mode 100644 index 00000000..350968c6 --- /dev/null +++ b/doc/theme/material/.icons/material/video-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video-off.svg b/doc/theme/material/.icons/material/video-off.svg new file mode 100644 index 00000000..7e4276ac --- /dev/null +++ b/doc/theme/material/.icons/material/video-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video-outline.svg b/doc/theme/material/.icons/material/video-outline.svg new file mode 100644 index 00000000..07b57b8b --- /dev/null +++ b/doc/theme/material/.icons/material/video-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video-plus-outline.svg b/doc/theme/material/.icons/material/video-plus-outline.svg new file mode 100644 index 00000000..25a2a3f3 --- /dev/null +++ b/doc/theme/material/.icons/material/video-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video-plus.svg b/doc/theme/material/.icons/material/video-plus.svg new file mode 100644 index 00000000..ac72cd98 --- /dev/null +++ b/doc/theme/material/.icons/material/video-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video-stabilization.svg b/doc/theme/material/.icons/material/video-stabilization.svg new file mode 100644 index 00000000..191ae59d --- /dev/null +++ b/doc/theme/material/.icons/material/video-stabilization.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video-switch-outline.svg b/doc/theme/material/.icons/material/video-switch-outline.svg new file mode 100644 index 00000000..0e0145e5 --- /dev/null +++ b/doc/theme/material/.icons/material/video-switch-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video-switch.svg b/doc/theme/material/.icons/material/video-switch.svg new file mode 100644 index 00000000..8b4b2296 --- /dev/null +++ b/doc/theme/material/.icons/material/video-switch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video-vintage.svg b/doc/theme/material/.icons/material/video-vintage.svg new file mode 100644 index 00000000..3381f18e --- /dev/null +++ b/doc/theme/material/.icons/material/video-vintage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video-wireless-outline.svg b/doc/theme/material/.icons/material/video-wireless-outline.svg new file mode 100644 index 00000000..d051e74f --- /dev/null +++ b/doc/theme/material/.icons/material/video-wireless-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video-wireless.svg b/doc/theme/material/.icons/material/video-wireless.svg new file mode 100644 index 00000000..02e8ab26 --- /dev/null +++ b/doc/theme/material/.icons/material/video-wireless.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/video.svg b/doc/theme/material/.icons/material/video.svg new file mode 100644 index 00000000..491f73f0 --- /dev/null +++ b/doc/theme/material/.icons/material/video.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/view-agenda-outline.svg b/doc/theme/material/.icons/material/view-agenda-outline.svg new file mode 100644 index 00000000..697cac45 --- /dev/null +++ b/doc/theme/material/.icons/material/view-agenda-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/view-agenda.svg b/doc/theme/material/.icons/material/view-agenda.svg new file mode 100644 index 00000000..5ae3ad97 --- /dev/null +++ b/doc/theme/material/.icons/material/view-agenda.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/view-array.svg b/doc/theme/material/.icons/material/view-array.svg new file mode 100644 index 00000000..f126273d --- /dev/null +++ b/doc/theme/material/.icons/material/view-array.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/view-carousel.svg b/doc/theme/material/.icons/material/view-carousel.svg new file mode 100644 index 00000000..9defcc9d --- /dev/null +++ b/doc/theme/material/.icons/material/view-carousel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/view-column.svg b/doc/theme/material/.icons/material/view-column.svg new file mode 100644 index 00000000..71f4a5f7 --- /dev/null +++ b/doc/theme/material/.icons/material/view-column.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/view-comfy.svg b/doc/theme/material/.icons/material/view-comfy.svg new file mode 100644 index 00000000..c1196c86 --- /dev/null +++ b/doc/theme/material/.icons/material/view-comfy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/view-compact-outline.svg b/doc/theme/material/.icons/material/view-compact-outline.svg new file mode 100644 index 00000000..ed872be3 --- /dev/null +++ b/doc/theme/material/.icons/material/view-compact-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/view-compact.svg b/doc/theme/material/.icons/material/view-compact.svg new file mode 100644 index 00000000..7f2304d4 --- /dev/null +++ b/doc/theme/material/.icons/material/view-compact.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/view-dashboard-outline.svg b/doc/theme/material/.icons/material/view-dashboard-outline.svg new file mode 100644 index 00000000..193aefba --- /dev/null +++ b/doc/theme/material/.icons/material/view-dashboard-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/view-dashboard-variant.svg b/doc/theme/material/.icons/material/view-dashboard-variant.svg new file mode 100644 index 00000000..2216760a --- /dev/null +++ b/doc/theme/material/.icons/material/view-dashboard-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/view-dashboard.svg b/doc/theme/material/.icons/material/view-dashboard.svg new file mode 100644 index 00000000..8314ea62 --- /dev/null +++ b/doc/theme/material/.icons/material/view-dashboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/view-day.svg b/doc/theme/material/.icons/material/view-day.svg new file mode 100644 index 00000000..e271cd8d --- /dev/null +++ b/doc/theme/material/.icons/material/view-day.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/view-grid-outline.svg b/doc/theme/material/.icons/material/view-grid-outline.svg new file mode 100644 index 00000000..8498cd15 --- /dev/null +++ b/doc/theme/material/.icons/material/view-grid-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/view-grid-plus-outline.svg b/doc/theme/material/.icons/material/view-grid-plus-outline.svg new file mode 100644 index 00000000..e1149edf --- /dev/null +++ b/doc/theme/material/.icons/material/view-grid-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/view-grid-plus.svg b/doc/theme/material/.icons/material/view-grid-plus.svg new file mode 100644 index 00000000..95d71038 --- /dev/null +++ b/doc/theme/material/.icons/material/view-grid-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/view-grid.svg b/doc/theme/material/.icons/material/view-grid.svg new file mode 100644 index 00000000..fa6bca11 --- /dev/null +++ b/doc/theme/material/.icons/material/view-grid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/view-headline.svg b/doc/theme/material/.icons/material/view-headline.svg new file mode 100644 index 00000000..9c10539c --- /dev/null +++ b/doc/theme/material/.icons/material/view-headline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/view-list.svg b/doc/theme/material/.icons/material/view-list.svg new file mode 100644 index 00000000..45101600 --- /dev/null +++ b/doc/theme/material/.icons/material/view-list.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/view-module.svg b/doc/theme/material/.icons/material/view-module.svg new file mode 100644 index 00000000..3612de26 --- /dev/null +++ b/doc/theme/material/.icons/material/view-module.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/view-parallel.svg b/doc/theme/material/.icons/material/view-parallel.svg new file mode 100644 index 00000000..0e2a875f --- /dev/null +++ b/doc/theme/material/.icons/material/view-parallel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/view-quilt.svg b/doc/theme/material/.icons/material/view-quilt.svg new file mode 100644 index 00000000..e017b22a --- /dev/null +++ b/doc/theme/material/.icons/material/view-quilt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/view-sequential.svg b/doc/theme/material/.icons/material/view-sequential.svg new file mode 100644 index 00000000..85635643 --- /dev/null +++ b/doc/theme/material/.icons/material/view-sequential.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/view-split-horizontal.svg b/doc/theme/material/.icons/material/view-split-horizontal.svg new file mode 100644 index 00000000..e404da19 --- /dev/null +++ b/doc/theme/material/.icons/material/view-split-horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/view-split-vertical.svg b/doc/theme/material/.icons/material/view-split-vertical.svg new file mode 100644 index 00000000..8cd2fc9e --- /dev/null +++ b/doc/theme/material/.icons/material/view-split-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/view-stream.svg b/doc/theme/material/.icons/material/view-stream.svg new file mode 100644 index 00000000..9301e273 --- /dev/null +++ b/doc/theme/material/.icons/material/view-stream.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/view-week.svg b/doc/theme/material/.icons/material/view-week.svg new file mode 100644 index 00000000..11d06592 --- /dev/null +++ b/doc/theme/material/.icons/material/view-week.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vimeo.svg b/doc/theme/material/.icons/material/vimeo.svg new file mode 100644 index 00000000..e4618659 --- /dev/null +++ b/doc/theme/material/.icons/material/vimeo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/violin.svg b/doc/theme/material/.icons/material/violin.svg new file mode 100644 index 00000000..57676635 --- /dev/null +++ b/doc/theme/material/.icons/material/violin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/virtual-reality.svg b/doc/theme/material/.icons/material/virtual-reality.svg new file mode 100644 index 00000000..fad92f60 --- /dev/null +++ b/doc/theme/material/.icons/material/virtual-reality.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/virus-outline.svg b/doc/theme/material/.icons/material/virus-outline.svg new file mode 100644 index 00000000..1ec69c23 --- /dev/null +++ b/doc/theme/material/.icons/material/virus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/virus.svg b/doc/theme/material/.icons/material/virus.svg new file mode 100644 index 00000000..a7a28532 --- /dev/null +++ b/doc/theme/material/.icons/material/virus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vk.svg b/doc/theme/material/.icons/material/vk.svg new file mode 100644 index 00000000..6734c39a --- /dev/null +++ b/doc/theme/material/.icons/material/vk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vlc.svg b/doc/theme/material/.icons/material/vlc.svg new file mode 100644 index 00000000..7faaee53 --- /dev/null +++ b/doc/theme/material/.icons/material/vlc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/voice-off.svg b/doc/theme/material/.icons/material/voice-off.svg new file mode 100644 index 00000000..99dcb417 --- /dev/null +++ b/doc/theme/material/.icons/material/voice-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/voicemail.svg b/doc/theme/material/.icons/material/voicemail.svg new file mode 100644 index 00000000..1c586d18 --- /dev/null +++ b/doc/theme/material/.icons/material/voicemail.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/volleyball.svg b/doc/theme/material/.icons/material/volleyball.svg new file mode 100644 index 00000000..9711638e --- /dev/null +++ b/doc/theme/material/.icons/material/volleyball.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/volume-high.svg b/doc/theme/material/.icons/material/volume-high.svg new file mode 100644 index 00000000..1611f029 --- /dev/null +++ b/doc/theme/material/.icons/material/volume-high.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/volume-low.svg b/doc/theme/material/.icons/material/volume-low.svg new file mode 100644 index 00000000..21216850 --- /dev/null +++ b/doc/theme/material/.icons/material/volume-low.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/volume-medium.svg b/doc/theme/material/.icons/material/volume-medium.svg new file mode 100644 index 00000000..4156fc16 --- /dev/null +++ b/doc/theme/material/.icons/material/volume-medium.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/volume-minus.svg b/doc/theme/material/.icons/material/volume-minus.svg new file mode 100644 index 00000000..d8576640 --- /dev/null +++ b/doc/theme/material/.icons/material/volume-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/volume-mute.svg b/doc/theme/material/.icons/material/volume-mute.svg new file mode 100644 index 00000000..0ad42408 --- /dev/null +++ b/doc/theme/material/.icons/material/volume-mute.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/volume-off.svg b/doc/theme/material/.icons/material/volume-off.svg new file mode 100644 index 00000000..7fb8844e --- /dev/null +++ b/doc/theme/material/.icons/material/volume-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/volume-plus.svg b/doc/theme/material/.icons/material/volume-plus.svg new file mode 100644 index 00000000..fb6aa0cd --- /dev/null +++ b/doc/theme/material/.icons/material/volume-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/volume-source.svg b/doc/theme/material/.icons/material/volume-source.svg new file mode 100644 index 00000000..8d953a75 --- /dev/null +++ b/doc/theme/material/.icons/material/volume-source.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/volume-variant-off.svg b/doc/theme/material/.icons/material/volume-variant-off.svg new file mode 100644 index 00000000..0dc02e56 --- /dev/null +++ b/doc/theme/material/.icons/material/volume-variant-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/volume-vibrate.svg b/doc/theme/material/.icons/material/volume-vibrate.svg new file mode 100644 index 00000000..2040b7d1 --- /dev/null +++ b/doc/theme/material/.icons/material/volume-vibrate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vote-outline.svg b/doc/theme/material/.icons/material/vote-outline.svg new file mode 100644 index 00000000..dd6121e3 --- /dev/null +++ b/doc/theme/material/.icons/material/vote-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vote.svg b/doc/theme/material/.icons/material/vote.svg new file mode 100644 index 00000000..8f8b6245 --- /dev/null +++ b/doc/theme/material/.icons/material/vote.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vpn.svg b/doc/theme/material/.icons/material/vpn.svg new file mode 100644 index 00000000..6fe911dc --- /dev/null +++ b/doc/theme/material/.icons/material/vpn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vuejs.svg b/doc/theme/material/.icons/material/vuejs.svg new file mode 100644 index 00000000..b4ad81d7 --- /dev/null +++ b/doc/theme/material/.icons/material/vuejs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/vuetify.svg b/doc/theme/material/.icons/material/vuetify.svg new file mode 100644 index 00000000..892729e6 --- /dev/null +++ b/doc/theme/material/.icons/material/vuetify.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/walk.svg b/doc/theme/material/.icons/material/walk.svg new file mode 100644 index 00000000..c101d080 --- /dev/null +++ b/doc/theme/material/.icons/material/walk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wall-sconce-flat-variant.svg b/doc/theme/material/.icons/material/wall-sconce-flat-variant.svg new file mode 100644 index 00000000..952a50d8 --- /dev/null +++ b/doc/theme/material/.icons/material/wall-sconce-flat-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wall-sconce-flat.svg b/doc/theme/material/.icons/material/wall-sconce-flat.svg new file mode 100644 index 00000000..3413214d --- /dev/null +++ b/doc/theme/material/.icons/material/wall-sconce-flat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wall-sconce-round-variant.svg b/doc/theme/material/.icons/material/wall-sconce-round-variant.svg new file mode 100644 index 00000000..7b3a6074 --- /dev/null +++ b/doc/theme/material/.icons/material/wall-sconce-round-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wall-sconce-round.svg b/doc/theme/material/.icons/material/wall-sconce-round.svg new file mode 100644 index 00000000..334e2e40 --- /dev/null +++ b/doc/theme/material/.icons/material/wall-sconce-round.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wall-sconce.svg b/doc/theme/material/.icons/material/wall-sconce.svg new file mode 100644 index 00000000..072b1f24 --- /dev/null +++ b/doc/theme/material/.icons/material/wall-sconce.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wall.svg b/doc/theme/material/.icons/material/wall.svg new file mode 100644 index 00000000..b12b8bca --- /dev/null +++ b/doc/theme/material/.icons/material/wall.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wallet-giftcard.svg b/doc/theme/material/.icons/material/wallet-giftcard.svg new file mode 100644 index 00000000..ee180835 --- /dev/null +++ b/doc/theme/material/.icons/material/wallet-giftcard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wallet-membership.svg b/doc/theme/material/.icons/material/wallet-membership.svg new file mode 100644 index 00000000..9d94017d --- /dev/null +++ b/doc/theme/material/.icons/material/wallet-membership.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wallet-outline.svg b/doc/theme/material/.icons/material/wallet-outline.svg new file mode 100644 index 00000000..4fb83ae4 --- /dev/null +++ b/doc/theme/material/.icons/material/wallet-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wallet-plus-outline.svg b/doc/theme/material/.icons/material/wallet-plus-outline.svg new file mode 100644 index 00000000..bd116a8b --- /dev/null +++ b/doc/theme/material/.icons/material/wallet-plus-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wallet-plus.svg b/doc/theme/material/.icons/material/wallet-plus.svg new file mode 100644 index 00000000..d3a0f6de --- /dev/null +++ b/doc/theme/material/.icons/material/wallet-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wallet-travel.svg b/doc/theme/material/.icons/material/wallet-travel.svg new file mode 100644 index 00000000..7ce15c08 --- /dev/null +++ b/doc/theme/material/.icons/material/wallet-travel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wallet.svg b/doc/theme/material/.icons/material/wallet.svg new file mode 100644 index 00000000..e7bb62a7 --- /dev/null +++ b/doc/theme/material/.icons/material/wallet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wallpaper.svg b/doc/theme/material/.icons/material/wallpaper.svg new file mode 100644 index 00000000..e9f16beb --- /dev/null +++ b/doc/theme/material/.icons/material/wallpaper.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wan.svg b/doc/theme/material/.icons/material/wan.svg new file mode 100644 index 00000000..20875b15 --- /dev/null +++ b/doc/theme/material/.icons/material/wan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wardrobe-outline.svg b/doc/theme/material/.icons/material/wardrobe-outline.svg new file mode 100644 index 00000000..52d0f393 --- /dev/null +++ b/doc/theme/material/.icons/material/wardrobe-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wardrobe.svg b/doc/theme/material/.icons/material/wardrobe.svg new file mode 100644 index 00000000..f2e17260 --- /dev/null +++ b/doc/theme/material/.icons/material/wardrobe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/warehouse.svg b/doc/theme/material/.icons/material/warehouse.svg new file mode 100644 index 00000000..4c3ab721 --- /dev/null +++ b/doc/theme/material/.icons/material/warehouse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/washing-machine-alert.svg b/doc/theme/material/.icons/material/washing-machine-alert.svg new file mode 100644 index 00000000..3e2bfb16 --- /dev/null +++ b/doc/theme/material/.icons/material/washing-machine-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/washing-machine-off.svg b/doc/theme/material/.icons/material/washing-machine-off.svg new file mode 100644 index 00000000..5b403534 --- /dev/null +++ b/doc/theme/material/.icons/material/washing-machine-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/washing-machine.svg b/doc/theme/material/.icons/material/washing-machine.svg new file mode 100644 index 00000000..940c492c --- /dev/null +++ b/doc/theme/material/.icons/material/washing-machine.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/watch-export-variant.svg b/doc/theme/material/.icons/material/watch-export-variant.svg new file mode 100644 index 00000000..de733add --- /dev/null +++ b/doc/theme/material/.icons/material/watch-export-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/watch-export.svg b/doc/theme/material/.icons/material/watch-export.svg new file mode 100644 index 00000000..abd91aac --- /dev/null +++ b/doc/theme/material/.icons/material/watch-export.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/watch-import-variant.svg b/doc/theme/material/.icons/material/watch-import-variant.svg new file mode 100644 index 00000000..b9fdc134 --- /dev/null +++ b/doc/theme/material/.icons/material/watch-import-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/watch-import.svg b/doc/theme/material/.icons/material/watch-import.svg new file mode 100644 index 00000000..f7ac3fe2 --- /dev/null +++ b/doc/theme/material/.icons/material/watch-import.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/watch-variant.svg b/doc/theme/material/.icons/material/watch-variant.svg new file mode 100644 index 00000000..ead03361 --- /dev/null +++ b/doc/theme/material/.icons/material/watch-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/watch-vibrate-off.svg b/doc/theme/material/.icons/material/watch-vibrate-off.svg new file mode 100644 index 00000000..dbf007d1 --- /dev/null +++ b/doc/theme/material/.icons/material/watch-vibrate-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/watch-vibrate.svg b/doc/theme/material/.icons/material/watch-vibrate.svg new file mode 100644 index 00000000..ba736572 --- /dev/null +++ b/doc/theme/material/.icons/material/watch-vibrate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/watch.svg b/doc/theme/material/.icons/material/watch.svg new file mode 100644 index 00000000..d100489d --- /dev/null +++ b/doc/theme/material/.icons/material/watch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/water-boiler-alert.svg b/doc/theme/material/.icons/material/water-boiler-alert.svg new file mode 100644 index 00000000..5d36e414 --- /dev/null +++ b/doc/theme/material/.icons/material/water-boiler-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/water-boiler-off.svg b/doc/theme/material/.icons/material/water-boiler-off.svg new file mode 100644 index 00000000..d060c65c --- /dev/null +++ b/doc/theme/material/.icons/material/water-boiler-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/water-boiler.svg b/doc/theme/material/.icons/material/water-boiler.svg new file mode 100644 index 00000000..9e1898db --- /dev/null +++ b/doc/theme/material/.icons/material/water-boiler.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/water-off.svg b/doc/theme/material/.icons/material/water-off.svg new file mode 100644 index 00000000..2f330650 --- /dev/null +++ b/doc/theme/material/.icons/material/water-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/water-outline.svg b/doc/theme/material/.icons/material/water-outline.svg new file mode 100644 index 00000000..cec02233 --- /dev/null +++ b/doc/theme/material/.icons/material/water-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/water-percent.svg b/doc/theme/material/.icons/material/water-percent.svg new file mode 100644 index 00000000..05da9167 --- /dev/null +++ b/doc/theme/material/.icons/material/water-percent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/water-polo.svg b/doc/theme/material/.icons/material/water-polo.svg new file mode 100644 index 00000000..c90878d3 --- /dev/null +++ b/doc/theme/material/.icons/material/water-polo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/water-pump-off.svg b/doc/theme/material/.icons/material/water-pump-off.svg new file mode 100644 index 00000000..723ff391 --- /dev/null +++ b/doc/theme/material/.icons/material/water-pump-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/water-pump.svg b/doc/theme/material/.icons/material/water-pump.svg new file mode 100644 index 00000000..61a5d992 --- /dev/null +++ b/doc/theme/material/.icons/material/water-pump.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/water-well-outline.svg b/doc/theme/material/.icons/material/water-well-outline.svg new file mode 100644 index 00000000..3f5d88aa --- /dev/null +++ b/doc/theme/material/.icons/material/water-well-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/water-well.svg b/doc/theme/material/.icons/material/water-well.svg new file mode 100644 index 00000000..22edbc05 --- /dev/null +++ b/doc/theme/material/.icons/material/water-well.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/water.svg b/doc/theme/material/.icons/material/water.svg new file mode 100644 index 00000000..5721faad --- /dev/null +++ b/doc/theme/material/.icons/material/water.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/watermark.svg b/doc/theme/material/.icons/material/watermark.svg new file mode 100644 index 00000000..3d45014b --- /dev/null +++ b/doc/theme/material/.icons/material/watermark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wave.svg b/doc/theme/material/.icons/material/wave.svg new file mode 100644 index 00000000..611dd615 --- /dev/null +++ b/doc/theme/material/.icons/material/wave.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/waves.svg b/doc/theme/material/.icons/material/waves.svg new file mode 100644 index 00000000..246bcc84 --- /dev/null +++ b/doc/theme/material/.icons/material/waves.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/waze.svg b/doc/theme/material/.icons/material/waze.svg new file mode 100644 index 00000000..70b31286 --- /dev/null +++ b/doc/theme/material/.icons/material/waze.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-cloudy-alert.svg b/doc/theme/material/.icons/material/weather-cloudy-alert.svg new file mode 100644 index 00000000..019fd769 --- /dev/null +++ b/doc/theme/material/.icons/material/weather-cloudy-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-cloudy-arrow-right.svg b/doc/theme/material/.icons/material/weather-cloudy-arrow-right.svg new file mode 100644 index 00000000..688c1642 --- /dev/null +++ b/doc/theme/material/.icons/material/weather-cloudy-arrow-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-cloudy.svg b/doc/theme/material/.icons/material/weather-cloudy.svg new file mode 100644 index 00000000..5f837aef --- /dev/null +++ b/doc/theme/material/.icons/material/weather-cloudy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-fog.svg b/doc/theme/material/.icons/material/weather-fog.svg new file mode 100644 index 00000000..52114827 --- /dev/null +++ b/doc/theme/material/.icons/material/weather-fog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-hail.svg b/doc/theme/material/.icons/material/weather-hail.svg new file mode 100644 index 00000000..6c74b925 --- /dev/null +++ b/doc/theme/material/.icons/material/weather-hail.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-hazy.svg b/doc/theme/material/.icons/material/weather-hazy.svg new file mode 100644 index 00000000..cb237e62 --- /dev/null +++ b/doc/theme/material/.icons/material/weather-hazy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-hurricane.svg b/doc/theme/material/.icons/material/weather-hurricane.svg new file mode 100644 index 00000000..7d65ffc0 --- /dev/null +++ b/doc/theme/material/.icons/material/weather-hurricane.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-lightning-rainy.svg b/doc/theme/material/.icons/material/weather-lightning-rainy.svg new file mode 100644 index 00000000..8148610d --- /dev/null +++ b/doc/theme/material/.icons/material/weather-lightning-rainy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-lightning.svg b/doc/theme/material/.icons/material/weather-lightning.svg new file mode 100644 index 00000000..cd709ec7 --- /dev/null +++ b/doc/theme/material/.icons/material/weather-lightning.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-night-partly-cloudy.svg b/doc/theme/material/.icons/material/weather-night-partly-cloudy.svg new file mode 100644 index 00000000..6acb4ec5 --- /dev/null +++ b/doc/theme/material/.icons/material/weather-night-partly-cloudy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-night.svg b/doc/theme/material/.icons/material/weather-night.svg new file mode 100644 index 00000000..643783b1 --- /dev/null +++ b/doc/theme/material/.icons/material/weather-night.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-partly-cloudy.svg b/doc/theme/material/.icons/material/weather-partly-cloudy.svg new file mode 100644 index 00000000..9eb06661 --- /dev/null +++ b/doc/theme/material/.icons/material/weather-partly-cloudy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-partly-lightning.svg b/doc/theme/material/.icons/material/weather-partly-lightning.svg new file mode 100644 index 00000000..e0c4beff --- /dev/null +++ b/doc/theme/material/.icons/material/weather-partly-lightning.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-partly-rainy.svg b/doc/theme/material/.icons/material/weather-partly-rainy.svg new file mode 100644 index 00000000..5026d4a1 --- /dev/null +++ b/doc/theme/material/.icons/material/weather-partly-rainy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-partly-snowy-rainy.svg b/doc/theme/material/.icons/material/weather-partly-snowy-rainy.svg new file mode 100644 index 00000000..5eb8c1c0 --- /dev/null +++ b/doc/theme/material/.icons/material/weather-partly-snowy-rainy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-partly-snowy.svg b/doc/theme/material/.icons/material/weather-partly-snowy.svg new file mode 100644 index 00000000..60f7045d --- /dev/null +++ b/doc/theme/material/.icons/material/weather-partly-snowy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-pouring.svg b/doc/theme/material/.icons/material/weather-pouring.svg new file mode 100644 index 00000000..7633ea8f --- /dev/null +++ b/doc/theme/material/.icons/material/weather-pouring.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-rainy.svg b/doc/theme/material/.icons/material/weather-rainy.svg new file mode 100644 index 00000000..c3711e70 --- /dev/null +++ b/doc/theme/material/.icons/material/weather-rainy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-snowy-heavy.svg b/doc/theme/material/.icons/material/weather-snowy-heavy.svg new file mode 100644 index 00000000..f5a5130f --- /dev/null +++ b/doc/theme/material/.icons/material/weather-snowy-heavy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-snowy-rainy.svg b/doc/theme/material/.icons/material/weather-snowy-rainy.svg new file mode 100644 index 00000000..48dab025 --- /dev/null +++ b/doc/theme/material/.icons/material/weather-snowy-rainy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-snowy.svg b/doc/theme/material/.icons/material/weather-snowy.svg new file mode 100644 index 00000000..e5166c70 --- /dev/null +++ b/doc/theme/material/.icons/material/weather-snowy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-sunny-alert.svg b/doc/theme/material/.icons/material/weather-sunny-alert.svg new file mode 100644 index 00000000..f1351e7e --- /dev/null +++ b/doc/theme/material/.icons/material/weather-sunny-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-sunny.svg b/doc/theme/material/.icons/material/weather-sunny.svg new file mode 100644 index 00000000..9094555f --- /dev/null +++ b/doc/theme/material/.icons/material/weather-sunny.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-sunset-down.svg b/doc/theme/material/.icons/material/weather-sunset-down.svg new file mode 100644 index 00000000..84346f08 --- /dev/null +++ b/doc/theme/material/.icons/material/weather-sunset-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-sunset-up.svg b/doc/theme/material/.icons/material/weather-sunset-up.svg new file mode 100644 index 00000000..5dca2562 --- /dev/null +++ b/doc/theme/material/.icons/material/weather-sunset-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-sunset.svg b/doc/theme/material/.icons/material/weather-sunset.svg new file mode 100644 index 00000000..64b051ed --- /dev/null +++ b/doc/theme/material/.icons/material/weather-sunset.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-tornado.svg b/doc/theme/material/.icons/material/weather-tornado.svg new file mode 100644 index 00000000..53546eb4 --- /dev/null +++ b/doc/theme/material/.icons/material/weather-tornado.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-windy-variant.svg b/doc/theme/material/.icons/material/weather-windy-variant.svg new file mode 100644 index 00000000..712bd895 --- /dev/null +++ b/doc/theme/material/.icons/material/weather-windy-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weather-windy.svg b/doc/theme/material/.icons/material/weather-windy.svg new file mode 100644 index 00000000..a3f09ea6 --- /dev/null +++ b/doc/theme/material/.icons/material/weather-windy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/web-box.svg b/doc/theme/material/.icons/material/web-box.svg new file mode 100644 index 00000000..36e40ce0 --- /dev/null +++ b/doc/theme/material/.icons/material/web-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/web-clock.svg b/doc/theme/material/.icons/material/web-clock.svg new file mode 100644 index 00000000..5b29586b --- /dev/null +++ b/doc/theme/material/.icons/material/web-clock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/web.svg b/doc/theme/material/.icons/material/web.svg new file mode 100644 index 00000000..3d8c89e6 --- /dev/null +++ b/doc/theme/material/.icons/material/web.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/webcam.svg b/doc/theme/material/.icons/material/webcam.svg new file mode 100644 index 00000000..8cb68322 --- /dev/null +++ b/doc/theme/material/.icons/material/webcam.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/webhook.svg b/doc/theme/material/.icons/material/webhook.svg new file mode 100644 index 00000000..ab90db4b --- /dev/null +++ b/doc/theme/material/.icons/material/webhook.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/webpack.svg b/doc/theme/material/.icons/material/webpack.svg new file mode 100644 index 00000000..be720c29 --- /dev/null +++ b/doc/theme/material/.icons/material/webpack.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/webrtc.svg b/doc/theme/material/.icons/material/webrtc.svg new file mode 100644 index 00000000..a2374c15 --- /dev/null +++ b/doc/theme/material/.icons/material/webrtc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wechat.svg b/doc/theme/material/.icons/material/wechat.svg new file mode 100644 index 00000000..88b0c496 --- /dev/null +++ b/doc/theme/material/.icons/material/wechat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weight-gram.svg b/doc/theme/material/.icons/material/weight-gram.svg new file mode 100644 index 00000000..83833d55 --- /dev/null +++ b/doc/theme/material/.icons/material/weight-gram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weight-kilogram.svg b/doc/theme/material/.icons/material/weight-kilogram.svg new file mode 100644 index 00000000..e47e857d --- /dev/null +++ b/doc/theme/material/.icons/material/weight-kilogram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weight-lifter.svg b/doc/theme/material/.icons/material/weight-lifter.svg new file mode 100644 index 00000000..d28700cc --- /dev/null +++ b/doc/theme/material/.icons/material/weight-lifter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weight-pound.svg b/doc/theme/material/.icons/material/weight-pound.svg new file mode 100644 index 00000000..2989982c --- /dev/null +++ b/doc/theme/material/.icons/material/weight-pound.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/weight.svg b/doc/theme/material/.icons/material/weight.svg new file mode 100644 index 00000000..479390e7 --- /dev/null +++ b/doc/theme/material/.icons/material/weight.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/whatsapp.svg b/doc/theme/material/.icons/material/whatsapp.svg new file mode 100644 index 00000000..0fb25972 --- /dev/null +++ b/doc/theme/material/.icons/material/whatsapp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wheelchair-accessibility.svg b/doc/theme/material/.icons/material/wheelchair-accessibility.svg new file mode 100644 index 00000000..c7390978 --- /dev/null +++ b/doc/theme/material/.icons/material/wheelchair-accessibility.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/whistle-outline.svg b/doc/theme/material/.icons/material/whistle-outline.svg new file mode 100644 index 00000000..12565d0f --- /dev/null +++ b/doc/theme/material/.icons/material/whistle-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/whistle.svg b/doc/theme/material/.icons/material/whistle.svg new file mode 100644 index 00000000..fe965b7b --- /dev/null +++ b/doc/theme/material/.icons/material/whistle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/white-balance-auto.svg b/doc/theme/material/.icons/material/white-balance-auto.svg new file mode 100644 index 00000000..1b03526d --- /dev/null +++ b/doc/theme/material/.icons/material/white-balance-auto.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/white-balance-incandescent.svg b/doc/theme/material/.icons/material/white-balance-incandescent.svg new file mode 100644 index 00000000..ea2ca96e --- /dev/null +++ b/doc/theme/material/.icons/material/white-balance-incandescent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/white-balance-iridescent.svg b/doc/theme/material/.icons/material/white-balance-iridescent.svg new file mode 100644 index 00000000..5e980be6 --- /dev/null +++ b/doc/theme/material/.icons/material/white-balance-iridescent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/white-balance-sunny.svg b/doc/theme/material/.icons/material/white-balance-sunny.svg new file mode 100644 index 00000000..a8a8d54e --- /dev/null +++ b/doc/theme/material/.icons/material/white-balance-sunny.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/widgets-outline.svg b/doc/theme/material/.icons/material/widgets-outline.svg new file mode 100644 index 00000000..83397626 --- /dev/null +++ b/doc/theme/material/.icons/material/widgets-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/widgets.svg b/doc/theme/material/.icons/material/widgets.svg new file mode 100644 index 00000000..a14820fd --- /dev/null +++ b/doc/theme/material/.icons/material/widgets.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wifi-off.svg b/doc/theme/material/.icons/material/wifi-off.svg new file mode 100644 index 00000000..99c7911e --- /dev/null +++ b/doc/theme/material/.icons/material/wifi-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wifi-star.svg b/doc/theme/material/.icons/material/wifi-star.svg new file mode 100644 index 00000000..603c9180 --- /dev/null +++ b/doc/theme/material/.icons/material/wifi-star.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wifi-strength-1-alert.svg b/doc/theme/material/.icons/material/wifi-strength-1-alert.svg new file mode 100644 index 00000000..9ef44c74 --- /dev/null +++ b/doc/theme/material/.icons/material/wifi-strength-1-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wifi-strength-1-lock.svg b/doc/theme/material/.icons/material/wifi-strength-1-lock.svg new file mode 100644 index 00000000..ad02e713 --- /dev/null +++ b/doc/theme/material/.icons/material/wifi-strength-1-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wifi-strength-1.svg b/doc/theme/material/.icons/material/wifi-strength-1.svg new file mode 100644 index 00000000..82fe09c2 --- /dev/null +++ b/doc/theme/material/.icons/material/wifi-strength-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wifi-strength-2-alert.svg b/doc/theme/material/.icons/material/wifi-strength-2-alert.svg new file mode 100644 index 00000000..3c3e2e66 --- /dev/null +++ b/doc/theme/material/.icons/material/wifi-strength-2-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wifi-strength-2-lock.svg b/doc/theme/material/.icons/material/wifi-strength-2-lock.svg new file mode 100644 index 00000000..c40d9de1 --- /dev/null +++ b/doc/theme/material/.icons/material/wifi-strength-2-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wifi-strength-2.svg b/doc/theme/material/.icons/material/wifi-strength-2.svg new file mode 100644 index 00000000..8df5afb3 --- /dev/null +++ b/doc/theme/material/.icons/material/wifi-strength-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wifi-strength-3-alert.svg b/doc/theme/material/.icons/material/wifi-strength-3-alert.svg new file mode 100644 index 00000000..628118c4 --- /dev/null +++ b/doc/theme/material/.icons/material/wifi-strength-3-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wifi-strength-3-lock.svg b/doc/theme/material/.icons/material/wifi-strength-3-lock.svg new file mode 100644 index 00000000..22720d23 --- /dev/null +++ b/doc/theme/material/.icons/material/wifi-strength-3-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wifi-strength-3.svg b/doc/theme/material/.icons/material/wifi-strength-3.svg new file mode 100644 index 00000000..4f99322b --- /dev/null +++ b/doc/theme/material/.icons/material/wifi-strength-3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wifi-strength-4-alert.svg b/doc/theme/material/.icons/material/wifi-strength-4-alert.svg new file mode 100644 index 00000000..a231d90f --- /dev/null +++ b/doc/theme/material/.icons/material/wifi-strength-4-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wifi-strength-4-lock.svg b/doc/theme/material/.icons/material/wifi-strength-4-lock.svg new file mode 100644 index 00000000..be045523 --- /dev/null +++ b/doc/theme/material/.icons/material/wifi-strength-4-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wifi-strength-4.svg b/doc/theme/material/.icons/material/wifi-strength-4.svg new file mode 100644 index 00000000..4c4b1b27 --- /dev/null +++ b/doc/theme/material/.icons/material/wifi-strength-4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wifi-strength-alert-outline.svg b/doc/theme/material/.icons/material/wifi-strength-alert-outline.svg new file mode 100644 index 00000000..51826b79 --- /dev/null +++ b/doc/theme/material/.icons/material/wifi-strength-alert-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wifi-strength-lock-outline.svg b/doc/theme/material/.icons/material/wifi-strength-lock-outline.svg new file mode 100644 index 00000000..a687843a --- /dev/null +++ b/doc/theme/material/.icons/material/wifi-strength-lock-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wifi-strength-off-outline.svg b/doc/theme/material/.icons/material/wifi-strength-off-outline.svg new file mode 100644 index 00000000..950a372d --- /dev/null +++ b/doc/theme/material/.icons/material/wifi-strength-off-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wifi-strength-off.svg b/doc/theme/material/.icons/material/wifi-strength-off.svg new file mode 100644 index 00000000..934deed4 --- /dev/null +++ b/doc/theme/material/.icons/material/wifi-strength-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wifi-strength-outline.svg b/doc/theme/material/.icons/material/wifi-strength-outline.svg new file mode 100644 index 00000000..47b65de6 --- /dev/null +++ b/doc/theme/material/.icons/material/wifi-strength-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wifi.svg b/doc/theme/material/.icons/material/wifi.svg new file mode 100644 index 00000000..2b02faf9 --- /dev/null +++ b/doc/theme/material/.icons/material/wifi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wikipedia.svg b/doc/theme/material/.icons/material/wikipedia.svg new file mode 100644 index 00000000..e4b0f9db --- /dev/null +++ b/doc/theme/material/.icons/material/wikipedia.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wind-turbine.svg b/doc/theme/material/.icons/material/wind-turbine.svg new file mode 100644 index 00000000..245d4527 --- /dev/null +++ b/doc/theme/material/.icons/material/wind-turbine.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/window-close.svg b/doc/theme/material/.icons/material/window-close.svg new file mode 100644 index 00000000..05a8792d --- /dev/null +++ b/doc/theme/material/.icons/material/window-close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/window-closed-variant.svg b/doc/theme/material/.icons/material/window-closed-variant.svg new file mode 100644 index 00000000..ee946013 --- /dev/null +++ b/doc/theme/material/.icons/material/window-closed-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/window-closed.svg b/doc/theme/material/.icons/material/window-closed.svg new file mode 100644 index 00000000..b4b6f1b7 --- /dev/null +++ b/doc/theme/material/.icons/material/window-closed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/window-maximize.svg b/doc/theme/material/.icons/material/window-maximize.svg new file mode 100644 index 00000000..87ae176c --- /dev/null +++ b/doc/theme/material/.icons/material/window-maximize.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/window-minimize.svg b/doc/theme/material/.icons/material/window-minimize.svg new file mode 100644 index 00000000..2d541e96 --- /dev/null +++ b/doc/theme/material/.icons/material/window-minimize.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/window-open-variant.svg b/doc/theme/material/.icons/material/window-open-variant.svg new file mode 100644 index 00000000..355ece26 --- /dev/null +++ b/doc/theme/material/.icons/material/window-open-variant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/window-open.svg b/doc/theme/material/.icons/material/window-open.svg new file mode 100644 index 00000000..49d86e1d --- /dev/null +++ b/doc/theme/material/.icons/material/window-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/window-restore.svg b/doc/theme/material/.icons/material/window-restore.svg new file mode 100644 index 00000000..b2aa2153 --- /dev/null +++ b/doc/theme/material/.icons/material/window-restore.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/window-shutter-alert.svg b/doc/theme/material/.icons/material/window-shutter-alert.svg new file mode 100644 index 00000000..2b2900a7 --- /dev/null +++ b/doc/theme/material/.icons/material/window-shutter-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/window-shutter-open.svg b/doc/theme/material/.icons/material/window-shutter-open.svg new file mode 100644 index 00000000..cda238f8 --- /dev/null +++ b/doc/theme/material/.icons/material/window-shutter-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/window-shutter.svg b/doc/theme/material/.icons/material/window-shutter.svg new file mode 100644 index 00000000..e858cec2 --- /dev/null +++ b/doc/theme/material/.icons/material/window-shutter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wiper-wash.svg b/doc/theme/material/.icons/material/wiper-wash.svg new file mode 100644 index 00000000..012c5ea3 --- /dev/null +++ b/doc/theme/material/.icons/material/wiper-wash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wiper.svg b/doc/theme/material/.icons/material/wiper.svg new file mode 100644 index 00000000..4044ce7b --- /dev/null +++ b/doc/theme/material/.icons/material/wiper.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wordpress.svg b/doc/theme/material/.icons/material/wordpress.svg new file mode 100644 index 00000000..9c01cc86 --- /dev/null +++ b/doc/theme/material/.icons/material/wordpress.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wrap-disabled.svg b/doc/theme/material/.icons/material/wrap-disabled.svg new file mode 100644 index 00000000..b0053e29 --- /dev/null +++ b/doc/theme/material/.icons/material/wrap-disabled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wrap.svg b/doc/theme/material/.icons/material/wrap.svg new file mode 100644 index 00000000..0fb38c83 --- /dev/null +++ b/doc/theme/material/.icons/material/wrap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wrench-outline.svg b/doc/theme/material/.icons/material/wrench-outline.svg new file mode 100644 index 00000000..09aab491 --- /dev/null +++ b/doc/theme/material/.icons/material/wrench-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/wrench.svg b/doc/theme/material/.icons/material/wrench.svg new file mode 100644 index 00000000..2e737bf5 --- /dev/null +++ b/doc/theme/material/.icons/material/wrench.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/xamarin-outline.svg b/doc/theme/material/.icons/material/xamarin-outline.svg new file mode 100644 index 00000000..45b06ccc --- /dev/null +++ b/doc/theme/material/.icons/material/xamarin-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/xamarin.svg b/doc/theme/material/.icons/material/xamarin.svg new file mode 100644 index 00000000..9fb6ea34 --- /dev/null +++ b/doc/theme/material/.icons/material/xamarin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/xing.svg b/doc/theme/material/.icons/material/xing.svg new file mode 100644 index 00000000..e1723275 --- /dev/null +++ b/doc/theme/material/.icons/material/xing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/xml.svg b/doc/theme/material/.icons/material/xml.svg new file mode 100644 index 00000000..eb6ed0aa --- /dev/null +++ b/doc/theme/material/.icons/material/xml.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/xmpp.svg b/doc/theme/material/.icons/material/xmpp.svg new file mode 100644 index 00000000..18b89429 --- /dev/null +++ b/doc/theme/material/.icons/material/xmpp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/y-combinator.svg b/doc/theme/material/.icons/material/y-combinator.svg new file mode 100644 index 00000000..427cd227 --- /dev/null +++ b/doc/theme/material/.icons/material/y-combinator.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/yahoo.svg b/doc/theme/material/.icons/material/yahoo.svg new file mode 100644 index 00000000..64fd7fe9 --- /dev/null +++ b/doc/theme/material/.icons/material/yahoo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/yeast.svg b/doc/theme/material/.icons/material/yeast.svg new file mode 100644 index 00000000..ed31889f --- /dev/null +++ b/doc/theme/material/.icons/material/yeast.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/yin-yang.svg b/doc/theme/material/.icons/material/yin-yang.svg new file mode 100644 index 00000000..53f6da5b --- /dev/null +++ b/doc/theme/material/.icons/material/yin-yang.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/yoga.svg b/doc/theme/material/.icons/material/yoga.svg new file mode 100644 index 00000000..1df16341 --- /dev/null +++ b/doc/theme/material/.icons/material/yoga.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/youtube-gaming.svg b/doc/theme/material/.icons/material/youtube-gaming.svg new file mode 100644 index 00000000..2ee13233 --- /dev/null +++ b/doc/theme/material/.icons/material/youtube-gaming.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/youtube-studio.svg b/doc/theme/material/.icons/material/youtube-studio.svg new file mode 100644 index 00000000..8389a6a1 --- /dev/null +++ b/doc/theme/material/.icons/material/youtube-studio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/youtube-subscription.svg b/doc/theme/material/.icons/material/youtube-subscription.svg new file mode 100644 index 00000000..69d55c5f --- /dev/null +++ b/doc/theme/material/.icons/material/youtube-subscription.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/youtube-tv.svg b/doc/theme/material/.icons/material/youtube-tv.svg new file mode 100644 index 00000000..f2413b9d --- /dev/null +++ b/doc/theme/material/.icons/material/youtube-tv.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/youtube.svg b/doc/theme/material/.icons/material/youtube.svg new file mode 100644 index 00000000..bf60cf12 --- /dev/null +++ b/doc/theme/material/.icons/material/youtube.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/z-wave.svg b/doc/theme/material/.icons/material/z-wave.svg new file mode 100644 index 00000000..b1ec35a9 --- /dev/null +++ b/doc/theme/material/.icons/material/z-wave.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/zend.svg b/doc/theme/material/.icons/material/zend.svg new file mode 100644 index 00000000..120c5c3f --- /dev/null +++ b/doc/theme/material/.icons/material/zend.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/zigbee.svg b/doc/theme/material/.icons/material/zigbee.svg new file mode 100644 index 00000000..ff1afabd --- /dev/null +++ b/doc/theme/material/.icons/material/zigbee.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/zip-box-outline.svg b/doc/theme/material/.icons/material/zip-box-outline.svg new file mode 100644 index 00000000..ba44915b --- /dev/null +++ b/doc/theme/material/.icons/material/zip-box-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/zip-box.svg b/doc/theme/material/.icons/material/zip-box.svg new file mode 100644 index 00000000..bc660a16 --- /dev/null +++ b/doc/theme/material/.icons/material/zip-box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/zip-disk.svg b/doc/theme/material/.icons/material/zip-disk.svg new file mode 100644 index 00000000..c40c00f3 --- /dev/null +++ b/doc/theme/material/.icons/material/zip-disk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/zodiac-aquarius.svg b/doc/theme/material/.icons/material/zodiac-aquarius.svg new file mode 100644 index 00000000..ba137cde --- /dev/null +++ b/doc/theme/material/.icons/material/zodiac-aquarius.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/zodiac-aries.svg b/doc/theme/material/.icons/material/zodiac-aries.svg new file mode 100644 index 00000000..af8ef940 --- /dev/null +++ b/doc/theme/material/.icons/material/zodiac-aries.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/zodiac-cancer.svg b/doc/theme/material/.icons/material/zodiac-cancer.svg new file mode 100644 index 00000000..41fb8e38 --- /dev/null +++ b/doc/theme/material/.icons/material/zodiac-cancer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/zodiac-capricorn.svg b/doc/theme/material/.icons/material/zodiac-capricorn.svg new file mode 100644 index 00000000..4f08db60 --- /dev/null +++ b/doc/theme/material/.icons/material/zodiac-capricorn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/zodiac-gemini.svg b/doc/theme/material/.icons/material/zodiac-gemini.svg new file mode 100644 index 00000000..de61cd8f --- /dev/null +++ b/doc/theme/material/.icons/material/zodiac-gemini.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/zodiac-leo.svg b/doc/theme/material/.icons/material/zodiac-leo.svg new file mode 100644 index 00000000..e2de3a36 --- /dev/null +++ b/doc/theme/material/.icons/material/zodiac-leo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/zodiac-libra.svg b/doc/theme/material/.icons/material/zodiac-libra.svg new file mode 100644 index 00000000..4ad040be --- /dev/null +++ b/doc/theme/material/.icons/material/zodiac-libra.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/zodiac-pisces.svg b/doc/theme/material/.icons/material/zodiac-pisces.svg new file mode 100644 index 00000000..bbc32d42 --- /dev/null +++ b/doc/theme/material/.icons/material/zodiac-pisces.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/zodiac-sagittarius.svg b/doc/theme/material/.icons/material/zodiac-sagittarius.svg new file mode 100644 index 00000000..09b6f19c --- /dev/null +++ b/doc/theme/material/.icons/material/zodiac-sagittarius.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/zodiac-scorpio.svg b/doc/theme/material/.icons/material/zodiac-scorpio.svg new file mode 100644 index 00000000..5bd2912d --- /dev/null +++ b/doc/theme/material/.icons/material/zodiac-scorpio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/zodiac-taurus.svg b/doc/theme/material/.icons/material/zodiac-taurus.svg new file mode 100644 index 00000000..8ad0ac43 --- /dev/null +++ b/doc/theme/material/.icons/material/zodiac-taurus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/material/zodiac-virgo.svg b/doc/theme/material/.icons/material/zodiac-virgo.svg new file mode 100644 index 00000000..75522f07 --- /dev/null +++ b/doc/theme/material/.icons/material/zodiac-virgo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/LICENSE b/doc/theme/material/.icons/octicons/LICENSE new file mode 100644 index 00000000..84c26c26 --- /dev/null +++ b/doc/theme/material/.icons/octicons/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 GitHub Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/doc/theme/material/.icons/octicons/alert.svg b/doc/theme/material/.icons/octicons/alert.svg new file mode 100644 index 00000000..4f9a21c8 --- /dev/null +++ b/doc/theme/material/.icons/octicons/alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/archive.svg b/doc/theme/material/.icons/octicons/archive.svg new file mode 100644 index 00000000..945da286 --- /dev/null +++ b/doc/theme/material/.icons/octicons/archive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/arrow-both.svg b/doc/theme/material/.icons/octicons/arrow-both.svg new file mode 100644 index 00000000..0a2cea78 --- /dev/null +++ b/doc/theme/material/.icons/octicons/arrow-both.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/arrow-down.svg b/doc/theme/material/.icons/octicons/arrow-down.svg new file mode 100644 index 00000000..bab3ae9e --- /dev/null +++ b/doc/theme/material/.icons/octicons/arrow-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/arrow-left.svg b/doc/theme/material/.icons/octicons/arrow-left.svg new file mode 100644 index 00000000..e8b4e780 --- /dev/null +++ b/doc/theme/material/.icons/octicons/arrow-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/arrow-right.svg b/doc/theme/material/.icons/octicons/arrow-right.svg new file mode 100644 index 00000000..fb40756d --- /dev/null +++ b/doc/theme/material/.icons/octicons/arrow-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/arrow-small-down.svg b/doc/theme/material/.icons/octicons/arrow-small-down.svg new file mode 100644 index 00000000..e74f2aec --- /dev/null +++ b/doc/theme/material/.icons/octicons/arrow-small-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/arrow-small-left.svg b/doc/theme/material/.icons/octicons/arrow-small-left.svg new file mode 100644 index 00000000..06a19b5d --- /dev/null +++ b/doc/theme/material/.icons/octicons/arrow-small-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/arrow-small-right.svg b/doc/theme/material/.icons/octicons/arrow-small-right.svg new file mode 100644 index 00000000..6cf9797c --- /dev/null +++ b/doc/theme/material/.icons/octicons/arrow-small-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/arrow-small-up.svg b/doc/theme/material/.icons/octicons/arrow-small-up.svg new file mode 100644 index 00000000..2335e2ec --- /dev/null +++ b/doc/theme/material/.icons/octicons/arrow-small-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/arrow-up.svg b/doc/theme/material/.icons/octicons/arrow-up.svg new file mode 100644 index 00000000..0d43aa41 --- /dev/null +++ b/doc/theme/material/.icons/octicons/arrow-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/beaker.svg b/doc/theme/material/.icons/octicons/beaker.svg new file mode 100644 index 00000000..13caa8e6 --- /dev/null +++ b/doc/theme/material/.icons/octicons/beaker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/bell.svg b/doc/theme/material/.icons/octicons/bell.svg new file mode 100644 index 00000000..6b3a2f48 --- /dev/null +++ b/doc/theme/material/.icons/octicons/bell.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/bold.svg b/doc/theme/material/.icons/octicons/bold.svg new file mode 100644 index 00000000..d7c7a7fd --- /dev/null +++ b/doc/theme/material/.icons/octicons/bold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/book.svg b/doc/theme/material/.icons/octicons/book.svg new file mode 100644 index 00000000..c004409b --- /dev/null +++ b/doc/theme/material/.icons/octicons/book.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/bookmark.svg b/doc/theme/material/.icons/octicons/bookmark.svg new file mode 100644 index 00000000..391e5fa3 --- /dev/null +++ b/doc/theme/material/.icons/octicons/bookmark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/briefcase.svg b/doc/theme/material/.icons/octicons/briefcase.svg new file mode 100644 index 00000000..2a564c64 --- /dev/null +++ b/doc/theme/material/.icons/octicons/briefcase.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/broadcast.svg b/doc/theme/material/.icons/octicons/broadcast.svg new file mode 100644 index 00000000..8ce5673f --- /dev/null +++ b/doc/theme/material/.icons/octicons/broadcast.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/browser.svg b/doc/theme/material/.icons/octicons/browser.svg new file mode 100644 index 00000000..c2be8e02 --- /dev/null +++ b/doc/theme/material/.icons/octicons/browser.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/bug.svg b/doc/theme/material/.icons/octicons/bug.svg new file mode 100644 index 00000000..dde0340c --- /dev/null +++ b/doc/theme/material/.icons/octicons/bug.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/calendar.svg b/doc/theme/material/.icons/octicons/calendar.svg new file mode 100644 index 00000000..adf4f242 --- /dev/null +++ b/doc/theme/material/.icons/octicons/calendar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/check.svg b/doc/theme/material/.icons/octicons/check.svg new file mode 100644 index 00000000..fbbb8841 --- /dev/null +++ b/doc/theme/material/.icons/octicons/check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/checklist.svg b/doc/theme/material/.icons/octicons/checklist.svg new file mode 100644 index 00000000..0e97a897 --- /dev/null +++ b/doc/theme/material/.icons/octicons/checklist.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/chevron-down.svg b/doc/theme/material/.icons/octicons/chevron-down.svg new file mode 100644 index 00000000..f1ad33c9 --- /dev/null +++ b/doc/theme/material/.icons/octicons/chevron-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/chevron-left.svg b/doc/theme/material/.icons/octicons/chevron-left.svg new file mode 100644 index 00000000..55dbc738 --- /dev/null +++ b/doc/theme/material/.icons/octicons/chevron-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/chevron-right.svg b/doc/theme/material/.icons/octicons/chevron-right.svg new file mode 100644 index 00000000..b0e4966b --- /dev/null +++ b/doc/theme/material/.icons/octicons/chevron-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/chevron-up.svg b/doc/theme/material/.icons/octicons/chevron-up.svg new file mode 100644 index 00000000..bbe48fdd --- /dev/null +++ b/doc/theme/material/.icons/octicons/chevron-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/circle-slash.svg b/doc/theme/material/.icons/octicons/circle-slash.svg new file mode 100644 index 00000000..4b4f71ce --- /dev/null +++ b/doc/theme/material/.icons/octicons/circle-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/circuit-board.svg b/doc/theme/material/.icons/octicons/circuit-board.svg new file mode 100644 index 00000000..01445007 --- /dev/null +++ b/doc/theme/material/.icons/octicons/circuit-board.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/clippy.svg b/doc/theme/material/.icons/octicons/clippy.svg new file mode 100644 index 00000000..04f1f10c --- /dev/null +++ b/doc/theme/material/.icons/octicons/clippy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/clock.svg b/doc/theme/material/.icons/octicons/clock.svg new file mode 100644 index 00000000..001be04a --- /dev/null +++ b/doc/theme/material/.icons/octicons/clock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/cloud-download.svg b/doc/theme/material/.icons/octicons/cloud-download.svg new file mode 100644 index 00000000..4476aa1e --- /dev/null +++ b/doc/theme/material/.icons/octicons/cloud-download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/cloud-upload.svg b/doc/theme/material/.icons/octicons/cloud-upload.svg new file mode 100644 index 00000000..004b73db --- /dev/null +++ b/doc/theme/material/.icons/octicons/cloud-upload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/code.svg b/doc/theme/material/.icons/octicons/code.svg new file mode 100644 index 00000000..ce970a2f --- /dev/null +++ b/doc/theme/material/.icons/octicons/code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/comment-discussion.svg b/doc/theme/material/.icons/octicons/comment-discussion.svg new file mode 100644 index 00000000..b09abd64 --- /dev/null +++ b/doc/theme/material/.icons/octicons/comment-discussion.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/comment.svg b/doc/theme/material/.icons/octicons/comment.svg new file mode 100644 index 00000000..d3953609 --- /dev/null +++ b/doc/theme/material/.icons/octicons/comment.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/credit-card.svg b/doc/theme/material/.icons/octicons/credit-card.svg new file mode 100644 index 00000000..98cdd081 --- /dev/null +++ b/doc/theme/material/.icons/octicons/credit-card.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/dash.svg b/doc/theme/material/.icons/octicons/dash.svg new file mode 100644 index 00000000..c3433eee --- /dev/null +++ b/doc/theme/material/.icons/octicons/dash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/dashboard.svg b/doc/theme/material/.icons/octicons/dashboard.svg new file mode 100644 index 00000000..b8619d95 --- /dev/null +++ b/doc/theme/material/.icons/octicons/dashboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/database.svg b/doc/theme/material/.icons/octicons/database.svg new file mode 100644 index 00000000..9fa8e645 --- /dev/null +++ b/doc/theme/material/.icons/octicons/database.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/dependent.svg b/doc/theme/material/.icons/octicons/dependent.svg new file mode 100644 index 00000000..17a1c945 --- /dev/null +++ b/doc/theme/material/.icons/octicons/dependent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/desktop-download.svg b/doc/theme/material/.icons/octicons/desktop-download.svg new file mode 100644 index 00000000..45a03955 --- /dev/null +++ b/doc/theme/material/.icons/octicons/desktop-download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/device-camera-video.svg b/doc/theme/material/.icons/octicons/device-camera-video.svg new file mode 100644 index 00000000..c2c3a044 --- /dev/null +++ b/doc/theme/material/.icons/octicons/device-camera-video.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/device-camera.svg b/doc/theme/material/.icons/octicons/device-camera.svg new file mode 100644 index 00000000..f19a9091 --- /dev/null +++ b/doc/theme/material/.icons/octicons/device-camera.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/device-desktop.svg b/doc/theme/material/.icons/octicons/device-desktop.svg new file mode 100644 index 00000000..a740b10e --- /dev/null +++ b/doc/theme/material/.icons/octicons/device-desktop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/device-mobile.svg b/doc/theme/material/.icons/octicons/device-mobile.svg new file mode 100644 index 00000000..0c0e7027 --- /dev/null +++ b/doc/theme/material/.icons/octicons/device-mobile.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/diff-added.svg b/doc/theme/material/.icons/octicons/diff-added.svg new file mode 100644 index 00000000..611ec7a3 --- /dev/null +++ b/doc/theme/material/.icons/octicons/diff-added.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/diff-ignored.svg b/doc/theme/material/.icons/octicons/diff-ignored.svg new file mode 100644 index 00000000..ac1944a4 --- /dev/null +++ b/doc/theme/material/.icons/octicons/diff-ignored.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/diff-modified.svg b/doc/theme/material/.icons/octicons/diff-modified.svg new file mode 100644 index 00000000..cf9e5dcb --- /dev/null +++ b/doc/theme/material/.icons/octicons/diff-modified.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/diff-removed.svg b/doc/theme/material/.icons/octicons/diff-removed.svg new file mode 100644 index 00000000..bd7ad310 --- /dev/null +++ b/doc/theme/material/.icons/octicons/diff-removed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/diff-renamed.svg b/doc/theme/material/.icons/octicons/diff-renamed.svg new file mode 100644 index 00000000..b413252f --- /dev/null +++ b/doc/theme/material/.icons/octicons/diff-renamed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/diff.svg b/doc/theme/material/.icons/octicons/diff.svg new file mode 100644 index 00000000..933ce14f --- /dev/null +++ b/doc/theme/material/.icons/octicons/diff.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/ellipsis.svg b/doc/theme/material/.icons/octicons/ellipsis.svg new file mode 100644 index 00000000..a2b66ecd --- /dev/null +++ b/doc/theme/material/.icons/octicons/ellipsis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/eye-closed.svg b/doc/theme/material/.icons/octicons/eye-closed.svg new file mode 100644 index 00000000..0ce5d17c --- /dev/null +++ b/doc/theme/material/.icons/octicons/eye-closed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/eye.svg b/doc/theme/material/.icons/octicons/eye.svg new file mode 100644 index 00000000..efeb6c19 --- /dev/null +++ b/doc/theme/material/.icons/octicons/eye.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/file-binary.svg b/doc/theme/material/.icons/octicons/file-binary.svg new file mode 100644 index 00000000..73e0d637 --- /dev/null +++ b/doc/theme/material/.icons/octicons/file-binary.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/file-code.svg b/doc/theme/material/.icons/octicons/file-code.svg new file mode 100644 index 00000000..22794987 --- /dev/null +++ b/doc/theme/material/.icons/octicons/file-code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/file-directory.svg b/doc/theme/material/.icons/octicons/file-directory.svg new file mode 100644 index 00000000..66216269 --- /dev/null +++ b/doc/theme/material/.icons/octicons/file-directory.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/file-media.svg b/doc/theme/material/.icons/octicons/file-media.svg new file mode 100644 index 00000000..0d96fefe --- /dev/null +++ b/doc/theme/material/.icons/octicons/file-media.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/file-pdf.svg b/doc/theme/material/.icons/octicons/file-pdf.svg new file mode 100644 index 00000000..361236c8 --- /dev/null +++ b/doc/theme/material/.icons/octicons/file-pdf.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/file-submodule.svg b/doc/theme/material/.icons/octicons/file-submodule.svg new file mode 100644 index 00000000..cfbd106f --- /dev/null +++ b/doc/theme/material/.icons/octicons/file-submodule.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/file-symlink-directory.svg b/doc/theme/material/.icons/octicons/file-symlink-directory.svg new file mode 100644 index 00000000..3799d2ed --- /dev/null +++ b/doc/theme/material/.icons/octicons/file-symlink-directory.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/file-symlink-file.svg b/doc/theme/material/.icons/octicons/file-symlink-file.svg new file mode 100644 index 00000000..9dd7a6f3 --- /dev/null +++ b/doc/theme/material/.icons/octicons/file-symlink-file.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/file-zip.svg b/doc/theme/material/.icons/octicons/file-zip.svg new file mode 100644 index 00000000..6cae81da --- /dev/null +++ b/doc/theme/material/.icons/octicons/file-zip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/file.svg b/doc/theme/material/.icons/octicons/file.svg new file mode 100644 index 00000000..53ff0212 --- /dev/null +++ b/doc/theme/material/.icons/octicons/file.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/flame.svg b/doc/theme/material/.icons/octicons/flame.svg new file mode 100644 index 00000000..346ca4c5 --- /dev/null +++ b/doc/theme/material/.icons/octicons/flame.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/fold-down.svg b/doc/theme/material/.icons/octicons/fold-down.svg new file mode 100644 index 00000000..2caa2586 --- /dev/null +++ b/doc/theme/material/.icons/octicons/fold-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/fold-up.svg b/doc/theme/material/.icons/octicons/fold-up.svg new file mode 100644 index 00000000..4b37c140 --- /dev/null +++ b/doc/theme/material/.icons/octicons/fold-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/fold.svg b/doc/theme/material/.icons/octicons/fold.svg new file mode 100644 index 00000000..f91e128c --- /dev/null +++ b/doc/theme/material/.icons/octicons/fold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/gear.svg b/doc/theme/material/.icons/octicons/gear.svg new file mode 100644 index 00000000..0d8b9c61 --- /dev/null +++ b/doc/theme/material/.icons/octicons/gear.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/gift.svg b/doc/theme/material/.icons/octicons/gift.svg new file mode 100644 index 00000000..76a61ce9 --- /dev/null +++ b/doc/theme/material/.icons/octicons/gift.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/gist-secret.svg b/doc/theme/material/.icons/octicons/gist-secret.svg new file mode 100644 index 00000000..d55a2a67 --- /dev/null +++ b/doc/theme/material/.icons/octicons/gist-secret.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/gist.svg b/doc/theme/material/.icons/octicons/gist.svg new file mode 100644 index 00000000..8062837d --- /dev/null +++ b/doc/theme/material/.icons/octicons/gist.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/git-branch.svg b/doc/theme/material/.icons/octicons/git-branch.svg new file mode 100644 index 00000000..268ad12e --- /dev/null +++ b/doc/theme/material/.icons/octicons/git-branch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/git-commit.svg b/doc/theme/material/.icons/octicons/git-commit.svg new file mode 100644 index 00000000..22808dbc --- /dev/null +++ b/doc/theme/material/.icons/octicons/git-commit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/git-compare.svg b/doc/theme/material/.icons/octicons/git-compare.svg new file mode 100644 index 00000000..f9b488d8 --- /dev/null +++ b/doc/theme/material/.icons/octicons/git-compare.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/git-merge.svg b/doc/theme/material/.icons/octicons/git-merge.svg new file mode 100644 index 00000000..87b6854c --- /dev/null +++ b/doc/theme/material/.icons/octicons/git-merge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/git-pull-request.svg b/doc/theme/material/.icons/octicons/git-pull-request.svg new file mode 100644 index 00000000..a4494b36 --- /dev/null +++ b/doc/theme/material/.icons/octicons/git-pull-request.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/github-action.svg b/doc/theme/material/.icons/octicons/github-action.svg new file mode 100644 index 00000000..e77b8d9f --- /dev/null +++ b/doc/theme/material/.icons/octicons/github-action.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/globe.svg b/doc/theme/material/.icons/octicons/globe.svg new file mode 100644 index 00000000..ceea48bf --- /dev/null +++ b/doc/theme/material/.icons/octicons/globe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/grabber.svg b/doc/theme/material/.icons/octicons/grabber.svg new file mode 100644 index 00000000..3270c817 --- /dev/null +++ b/doc/theme/material/.icons/octicons/grabber.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/graph.svg b/doc/theme/material/.icons/octicons/graph.svg new file mode 100644 index 00000000..b11f5b3f --- /dev/null +++ b/doc/theme/material/.icons/octicons/graph.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/heart-outline.svg b/doc/theme/material/.icons/octicons/heart-outline.svg new file mode 100644 index 00000000..e85b6153 --- /dev/null +++ b/doc/theme/material/.icons/octicons/heart-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/heart.svg b/doc/theme/material/.icons/octicons/heart.svg new file mode 100644 index 00000000..30f501f6 --- /dev/null +++ b/doc/theme/material/.icons/octicons/heart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/history.svg b/doc/theme/material/.icons/octicons/history.svg new file mode 100644 index 00000000..81d59bf1 --- /dev/null +++ b/doc/theme/material/.icons/octicons/history.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/home.svg b/doc/theme/material/.icons/octicons/home.svg new file mode 100644 index 00000000..7707b2e9 --- /dev/null +++ b/doc/theme/material/.icons/octicons/home.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/horizontal-rule.svg b/doc/theme/material/.icons/octicons/horizontal-rule.svg new file mode 100644 index 00000000..7d892312 --- /dev/null +++ b/doc/theme/material/.icons/octicons/horizontal-rule.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/hubot.svg b/doc/theme/material/.icons/octicons/hubot.svg new file mode 100644 index 00000000..90b52b03 --- /dev/null +++ b/doc/theme/material/.icons/octicons/hubot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/inbox.svg b/doc/theme/material/.icons/octicons/inbox.svg new file mode 100644 index 00000000..2c683abb --- /dev/null +++ b/doc/theme/material/.icons/octicons/inbox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/infinity.svg b/doc/theme/material/.icons/octicons/infinity.svg new file mode 100644 index 00000000..2bf43bbb --- /dev/null +++ b/doc/theme/material/.icons/octicons/infinity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/info.svg b/doc/theme/material/.icons/octicons/info.svg new file mode 100644 index 00000000..683406ee --- /dev/null +++ b/doc/theme/material/.icons/octicons/info.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/internal-repo.svg b/doc/theme/material/.icons/octicons/internal-repo.svg new file mode 100644 index 00000000..ec41500e --- /dev/null +++ b/doc/theme/material/.icons/octicons/internal-repo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/issue-closed.svg b/doc/theme/material/.icons/octicons/issue-closed.svg new file mode 100644 index 00000000..d9cf90ed --- /dev/null +++ b/doc/theme/material/.icons/octicons/issue-closed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/issue-opened.svg b/doc/theme/material/.icons/octicons/issue-opened.svg new file mode 100644 index 00000000..65490b9b --- /dev/null +++ b/doc/theme/material/.icons/octicons/issue-opened.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/issue-reopened.svg b/doc/theme/material/.icons/octicons/issue-reopened.svg new file mode 100644 index 00000000..d1787a77 --- /dev/null +++ b/doc/theme/material/.icons/octicons/issue-reopened.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/italic.svg b/doc/theme/material/.icons/octicons/italic.svg new file mode 100644 index 00000000..1a93b206 --- /dev/null +++ b/doc/theme/material/.icons/octicons/italic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/jersey.svg b/doc/theme/material/.icons/octicons/jersey.svg new file mode 100644 index 00000000..7f5492d6 --- /dev/null +++ b/doc/theme/material/.icons/octicons/jersey.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/kebab-horizontal.svg b/doc/theme/material/.icons/octicons/kebab-horizontal.svg new file mode 100644 index 00000000..685d87eb --- /dev/null +++ b/doc/theme/material/.icons/octicons/kebab-horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/kebab-vertical.svg b/doc/theme/material/.icons/octicons/kebab-vertical.svg new file mode 100644 index 00000000..307b9db5 --- /dev/null +++ b/doc/theme/material/.icons/octicons/kebab-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/key.svg b/doc/theme/material/.icons/octicons/key.svg new file mode 100644 index 00000000..433fd724 --- /dev/null +++ b/doc/theme/material/.icons/octicons/key.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/keyboard.svg b/doc/theme/material/.icons/octicons/keyboard.svg new file mode 100644 index 00000000..128ee9d5 --- /dev/null +++ b/doc/theme/material/.icons/octicons/keyboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/law.svg b/doc/theme/material/.icons/octicons/law.svg new file mode 100644 index 00000000..884e43ab --- /dev/null +++ b/doc/theme/material/.icons/octicons/law.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/light-bulb.svg b/doc/theme/material/.icons/octicons/light-bulb.svg new file mode 100644 index 00000000..dcdf411e --- /dev/null +++ b/doc/theme/material/.icons/octicons/light-bulb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/line-arrow-down.svg b/doc/theme/material/.icons/octicons/line-arrow-down.svg new file mode 100644 index 00000000..12c2982b --- /dev/null +++ b/doc/theme/material/.icons/octicons/line-arrow-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/line-arrow-left.svg b/doc/theme/material/.icons/octicons/line-arrow-left.svg new file mode 100644 index 00000000..878c5940 --- /dev/null +++ b/doc/theme/material/.icons/octicons/line-arrow-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/line-arrow-right.svg b/doc/theme/material/.icons/octicons/line-arrow-right.svg new file mode 100644 index 00000000..f25b64a4 --- /dev/null +++ b/doc/theme/material/.icons/octicons/line-arrow-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/line-arrow-up.svg b/doc/theme/material/.icons/octicons/line-arrow-up.svg new file mode 100644 index 00000000..ca13412f --- /dev/null +++ b/doc/theme/material/.icons/octicons/line-arrow-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/link-external.svg b/doc/theme/material/.icons/octicons/link-external.svg new file mode 100644 index 00000000..536e3e86 --- /dev/null +++ b/doc/theme/material/.icons/octicons/link-external.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/link.svg b/doc/theme/material/.icons/octicons/link.svg new file mode 100644 index 00000000..0b638f9b --- /dev/null +++ b/doc/theme/material/.icons/octicons/link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/list-ordered.svg b/doc/theme/material/.icons/octicons/list-ordered.svg new file mode 100644 index 00000000..f94502a1 --- /dev/null +++ b/doc/theme/material/.icons/octicons/list-ordered.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/list-unordered.svg b/doc/theme/material/.icons/octicons/list-unordered.svg new file mode 100644 index 00000000..c81a4b3d --- /dev/null +++ b/doc/theme/material/.icons/octicons/list-unordered.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/location.svg b/doc/theme/material/.icons/octicons/location.svg new file mode 100644 index 00000000..0f70cff3 --- /dev/null +++ b/doc/theme/material/.icons/octicons/location.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/lock.svg b/doc/theme/material/.icons/octicons/lock.svg new file mode 100644 index 00000000..fbfd423a --- /dev/null +++ b/doc/theme/material/.icons/octicons/lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/logo-gist.svg b/doc/theme/material/.icons/octicons/logo-gist.svg new file mode 100644 index 00000000..4aeea9bd --- /dev/null +++ b/doc/theme/material/.icons/octicons/logo-gist.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/logo-github.svg b/doc/theme/material/.icons/octicons/logo-github.svg new file mode 100644 index 00000000..e84e4b8d --- /dev/null +++ b/doc/theme/material/.icons/octicons/logo-github.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/mail-read.svg b/doc/theme/material/.icons/octicons/mail-read.svg new file mode 100644 index 00000000..df980670 --- /dev/null +++ b/doc/theme/material/.icons/octicons/mail-read.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/mail.svg b/doc/theme/material/.icons/octicons/mail.svg new file mode 100644 index 00000000..2b1336d6 --- /dev/null +++ b/doc/theme/material/.icons/octicons/mail.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/mark-github.svg b/doc/theme/material/.icons/octicons/mark-github.svg new file mode 100644 index 00000000..66b2a7ba --- /dev/null +++ b/doc/theme/material/.icons/octicons/mark-github.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/markdown.svg b/doc/theme/material/.icons/octicons/markdown.svg new file mode 100644 index 00000000..5955d758 --- /dev/null +++ b/doc/theme/material/.icons/octicons/markdown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/megaphone.svg b/doc/theme/material/.icons/octicons/megaphone.svg new file mode 100644 index 00000000..cdc7a717 --- /dev/null +++ b/doc/theme/material/.icons/octicons/megaphone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/mention.svg b/doc/theme/material/.icons/octicons/mention.svg new file mode 100644 index 00000000..831efc42 --- /dev/null +++ b/doc/theme/material/.icons/octicons/mention.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/milestone.svg b/doc/theme/material/.icons/octicons/milestone.svg new file mode 100644 index 00000000..e339be3a --- /dev/null +++ b/doc/theme/material/.icons/octicons/milestone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/mirror.svg b/doc/theme/material/.icons/octicons/mirror.svg new file mode 100644 index 00000000..518d71f7 --- /dev/null +++ b/doc/theme/material/.icons/octicons/mirror.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/mortar-board.svg b/doc/theme/material/.icons/octicons/mortar-board.svg new file mode 100644 index 00000000..e6e0abcb --- /dev/null +++ b/doc/theme/material/.icons/octicons/mortar-board.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/mute.svg b/doc/theme/material/.icons/octicons/mute.svg new file mode 100644 index 00000000..d562592c --- /dev/null +++ b/doc/theme/material/.icons/octicons/mute.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/no-newline.svg b/doc/theme/material/.icons/octicons/no-newline.svg new file mode 100644 index 00000000..7271795f --- /dev/null +++ b/doc/theme/material/.icons/octicons/no-newline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/north-star.svg b/doc/theme/material/.icons/octicons/north-star.svg new file mode 100644 index 00000000..1288163a --- /dev/null +++ b/doc/theme/material/.icons/octicons/north-star.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/note.svg b/doc/theme/material/.icons/octicons/note.svg new file mode 100644 index 00000000..e711b79d --- /dev/null +++ b/doc/theme/material/.icons/octicons/note.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/octoface.svg b/doc/theme/material/.icons/octicons/octoface.svg new file mode 100644 index 00000000..2f7989a5 --- /dev/null +++ b/doc/theme/material/.icons/octicons/octoface.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/organization.svg b/doc/theme/material/.icons/octicons/organization.svg new file mode 100644 index 00000000..d1f3c5c7 --- /dev/null +++ b/doc/theme/material/.icons/octicons/organization.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/package.svg b/doc/theme/material/.icons/octicons/package.svg new file mode 100644 index 00000000..4a9c689e --- /dev/null +++ b/doc/theme/material/.icons/octicons/package.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/paintcan.svg b/doc/theme/material/.icons/octicons/paintcan.svg new file mode 100644 index 00000000..30151c1c --- /dev/null +++ b/doc/theme/material/.icons/octicons/paintcan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/pencil.svg b/doc/theme/material/.icons/octicons/pencil.svg new file mode 100644 index 00000000..f43ed5b5 --- /dev/null +++ b/doc/theme/material/.icons/octicons/pencil.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/person.svg b/doc/theme/material/.icons/octicons/person.svg new file mode 100644 index 00000000..8c900dd1 --- /dev/null +++ b/doc/theme/material/.icons/octicons/person.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/pin.svg b/doc/theme/material/.icons/octicons/pin.svg new file mode 100644 index 00000000..9046e3b4 --- /dev/null +++ b/doc/theme/material/.icons/octicons/pin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/play.svg b/doc/theme/material/.icons/octicons/play.svg new file mode 100644 index 00000000..cc055923 --- /dev/null +++ b/doc/theme/material/.icons/octicons/play.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/plug.svg b/doc/theme/material/.icons/octicons/plug.svg new file mode 100644 index 00000000..812e9bd2 --- /dev/null +++ b/doc/theme/material/.icons/octicons/plug.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/plus-small.svg b/doc/theme/material/.icons/octicons/plus-small.svg new file mode 100644 index 00000000..a98d3e43 --- /dev/null +++ b/doc/theme/material/.icons/octicons/plus-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/plus.svg b/doc/theme/material/.icons/octicons/plus.svg new file mode 100644 index 00000000..bce6564a --- /dev/null +++ b/doc/theme/material/.icons/octicons/plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/primitive-dot-stroke.svg b/doc/theme/material/.icons/octicons/primitive-dot-stroke.svg new file mode 100644 index 00000000..f8080822 --- /dev/null +++ b/doc/theme/material/.icons/octicons/primitive-dot-stroke.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/primitive-dot.svg b/doc/theme/material/.icons/octicons/primitive-dot.svg new file mode 100644 index 00000000..26f4e412 --- /dev/null +++ b/doc/theme/material/.icons/octicons/primitive-dot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/primitive-square.svg b/doc/theme/material/.icons/octicons/primitive-square.svg new file mode 100644 index 00000000..27b68176 --- /dev/null +++ b/doc/theme/material/.icons/octicons/primitive-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/project.svg b/doc/theme/material/.icons/octicons/project.svg new file mode 100644 index 00000000..42651a13 --- /dev/null +++ b/doc/theme/material/.icons/octicons/project.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/pulse.svg b/doc/theme/material/.icons/octicons/pulse.svg new file mode 100644 index 00000000..3ee010c7 --- /dev/null +++ b/doc/theme/material/.icons/octicons/pulse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/question.svg b/doc/theme/material/.icons/octicons/question.svg new file mode 100644 index 00000000..9e326ba3 --- /dev/null +++ b/doc/theme/material/.icons/octicons/question.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/quote.svg b/doc/theme/material/.icons/octicons/quote.svg new file mode 100644 index 00000000..acd1a04d --- /dev/null +++ b/doc/theme/material/.icons/octicons/quote.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/radio-tower.svg b/doc/theme/material/.icons/octicons/radio-tower.svg new file mode 100644 index 00000000..27783ca8 --- /dev/null +++ b/doc/theme/material/.icons/octicons/radio-tower.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/reply.svg b/doc/theme/material/.icons/octicons/reply.svg new file mode 100644 index 00000000..7aa1b4d0 --- /dev/null +++ b/doc/theme/material/.icons/octicons/reply.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/repo-clone.svg b/doc/theme/material/.icons/octicons/repo-clone.svg new file mode 100644 index 00000000..ff4fc558 --- /dev/null +++ b/doc/theme/material/.icons/octicons/repo-clone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/repo-force-push.svg b/doc/theme/material/.icons/octicons/repo-force-push.svg new file mode 100644 index 00000000..c33d213b --- /dev/null +++ b/doc/theme/material/.icons/octicons/repo-force-push.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/repo-forked.svg b/doc/theme/material/.icons/octicons/repo-forked.svg new file mode 100644 index 00000000..660914a2 --- /dev/null +++ b/doc/theme/material/.icons/octicons/repo-forked.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/repo-pull.svg b/doc/theme/material/.icons/octicons/repo-pull.svg new file mode 100644 index 00000000..7b01be27 --- /dev/null +++ b/doc/theme/material/.icons/octicons/repo-pull.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/repo-push.svg b/doc/theme/material/.icons/octicons/repo-push.svg new file mode 100644 index 00000000..df04818e --- /dev/null +++ b/doc/theme/material/.icons/octicons/repo-push.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/repo-template-private.svg b/doc/theme/material/.icons/octicons/repo-template-private.svg new file mode 100644 index 00000000..658894b0 --- /dev/null +++ b/doc/theme/material/.icons/octicons/repo-template-private.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/repo-template.svg b/doc/theme/material/.icons/octicons/repo-template.svg new file mode 100644 index 00000000..c0299796 --- /dev/null +++ b/doc/theme/material/.icons/octicons/repo-template.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/repo.svg b/doc/theme/material/.icons/octicons/repo.svg new file mode 100644 index 00000000..ff8ed363 --- /dev/null +++ b/doc/theme/material/.icons/octicons/repo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/report.svg b/doc/theme/material/.icons/octicons/report.svg new file mode 100644 index 00000000..5d859d65 --- /dev/null +++ b/doc/theme/material/.icons/octicons/report.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/request-changes.svg b/doc/theme/material/.icons/octicons/request-changes.svg new file mode 100644 index 00000000..9fe66bff --- /dev/null +++ b/doc/theme/material/.icons/octicons/request-changes.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/rocket.svg b/doc/theme/material/.icons/octicons/rocket.svg new file mode 100644 index 00000000..fba4c980 --- /dev/null +++ b/doc/theme/material/.icons/octicons/rocket.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/rss.svg b/doc/theme/material/.icons/octicons/rss.svg new file mode 100644 index 00000000..8e342d3e --- /dev/null +++ b/doc/theme/material/.icons/octicons/rss.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/ruby.svg b/doc/theme/material/.icons/octicons/ruby.svg new file mode 100644 index 00000000..415e07b4 --- /dev/null +++ b/doc/theme/material/.icons/octicons/ruby.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/saved.svg b/doc/theme/material/.icons/octicons/saved.svg new file mode 100644 index 00000000..22c77d1d --- /dev/null +++ b/doc/theme/material/.icons/octicons/saved.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/screen-full.svg b/doc/theme/material/.icons/octicons/screen-full.svg new file mode 100644 index 00000000..6bca8555 --- /dev/null +++ b/doc/theme/material/.icons/octicons/screen-full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/screen-normal.svg b/doc/theme/material/.icons/octicons/screen-normal.svg new file mode 100644 index 00000000..8f8146cc --- /dev/null +++ b/doc/theme/material/.icons/octicons/screen-normal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/search.svg b/doc/theme/material/.icons/octicons/search.svg new file mode 100644 index 00000000..d41a5398 --- /dev/null +++ b/doc/theme/material/.icons/octicons/search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/server.svg b/doc/theme/material/.icons/octicons/server.svg new file mode 100644 index 00000000..5e57945a --- /dev/null +++ b/doc/theme/material/.icons/octicons/server.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/settings.svg b/doc/theme/material/.icons/octicons/settings.svg new file mode 100644 index 00000000..2075c002 --- /dev/null +++ b/doc/theme/material/.icons/octicons/settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/shield-check.svg b/doc/theme/material/.icons/octicons/shield-check.svg new file mode 100644 index 00000000..b7bc80c8 --- /dev/null +++ b/doc/theme/material/.icons/octicons/shield-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/shield-lock.svg b/doc/theme/material/.icons/octicons/shield-lock.svg new file mode 100644 index 00000000..07e81931 --- /dev/null +++ b/doc/theme/material/.icons/octicons/shield-lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/shield-x.svg b/doc/theme/material/.icons/octicons/shield-x.svg new file mode 100644 index 00000000..b79f5120 --- /dev/null +++ b/doc/theme/material/.icons/octicons/shield-x.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/shield.svg b/doc/theme/material/.icons/octicons/shield.svg new file mode 100644 index 00000000..23244bd1 --- /dev/null +++ b/doc/theme/material/.icons/octicons/shield.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/sign-in.svg b/doc/theme/material/.icons/octicons/sign-in.svg new file mode 100644 index 00000000..d5806af6 --- /dev/null +++ b/doc/theme/material/.icons/octicons/sign-in.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/sign-out.svg b/doc/theme/material/.icons/octicons/sign-out.svg new file mode 100644 index 00000000..5851eeb5 --- /dev/null +++ b/doc/theme/material/.icons/octicons/sign-out.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/skip.svg b/doc/theme/material/.icons/octicons/skip.svg new file mode 100644 index 00000000..f94142e2 --- /dev/null +++ b/doc/theme/material/.icons/octicons/skip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/smiley.svg b/doc/theme/material/.icons/octicons/smiley.svg new file mode 100644 index 00000000..fe8c2391 --- /dev/null +++ b/doc/theme/material/.icons/octicons/smiley.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/squirrel.svg b/doc/theme/material/.icons/octicons/squirrel.svg new file mode 100644 index 00000000..68750520 --- /dev/null +++ b/doc/theme/material/.icons/octicons/squirrel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/star.svg b/doc/theme/material/.icons/octicons/star.svg new file mode 100644 index 00000000..f03585c7 --- /dev/null +++ b/doc/theme/material/.icons/octicons/star.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/stop.svg b/doc/theme/material/.icons/octicons/stop.svg new file mode 100644 index 00000000..58ad20d9 --- /dev/null +++ b/doc/theme/material/.icons/octicons/stop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/sync.svg b/doc/theme/material/.icons/octicons/sync.svg new file mode 100644 index 00000000..e4d070dc --- /dev/null +++ b/doc/theme/material/.icons/octicons/sync.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/tag.svg b/doc/theme/material/.icons/octicons/tag.svg new file mode 100644 index 00000000..7ed03baa --- /dev/null +++ b/doc/theme/material/.icons/octicons/tag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/tasklist.svg b/doc/theme/material/.icons/octicons/tasklist.svg new file mode 100644 index 00000000..5bd21a76 --- /dev/null +++ b/doc/theme/material/.icons/octicons/tasklist.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/telescope.svg b/doc/theme/material/.icons/octicons/telescope.svg new file mode 100644 index 00000000..37ef2182 --- /dev/null +++ b/doc/theme/material/.icons/octicons/telescope.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/terminal.svg b/doc/theme/material/.icons/octicons/terminal.svg new file mode 100644 index 00000000..33277e4c --- /dev/null +++ b/doc/theme/material/.icons/octicons/terminal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/text-size.svg b/doc/theme/material/.icons/octicons/text-size.svg new file mode 100644 index 00000000..7d196fdd --- /dev/null +++ b/doc/theme/material/.icons/octicons/text-size.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/three-bars.svg b/doc/theme/material/.icons/octicons/three-bars.svg new file mode 100644 index 00000000..c3fc3f08 --- /dev/null +++ b/doc/theme/material/.icons/octicons/three-bars.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/thumbsdown.svg b/doc/theme/material/.icons/octicons/thumbsdown.svg new file mode 100644 index 00000000..11b131f4 --- /dev/null +++ b/doc/theme/material/.icons/octicons/thumbsdown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/thumbsup.svg b/doc/theme/material/.icons/octicons/thumbsup.svg new file mode 100644 index 00000000..a949df39 --- /dev/null +++ b/doc/theme/material/.icons/octicons/thumbsup.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/tools.svg b/doc/theme/material/.icons/octicons/tools.svg new file mode 100644 index 00000000..a1e7d72c --- /dev/null +++ b/doc/theme/material/.icons/octicons/tools.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/trashcan.svg b/doc/theme/material/.icons/octicons/trashcan.svg new file mode 100644 index 00000000..d15c6255 --- /dev/null +++ b/doc/theme/material/.icons/octicons/trashcan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/triangle-down.svg b/doc/theme/material/.icons/octicons/triangle-down.svg new file mode 100644 index 00000000..fabf6400 --- /dev/null +++ b/doc/theme/material/.icons/octicons/triangle-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/triangle-left.svg b/doc/theme/material/.icons/octicons/triangle-left.svg new file mode 100644 index 00000000..908a5197 --- /dev/null +++ b/doc/theme/material/.icons/octicons/triangle-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/triangle-right.svg b/doc/theme/material/.icons/octicons/triangle-right.svg new file mode 100644 index 00000000..7d8211f0 --- /dev/null +++ b/doc/theme/material/.icons/octicons/triangle-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/triangle-up.svg b/doc/theme/material/.icons/octicons/triangle-up.svg new file mode 100644 index 00000000..4b3eb006 --- /dev/null +++ b/doc/theme/material/.icons/octicons/triangle-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/unfold.svg b/doc/theme/material/.icons/octicons/unfold.svg new file mode 100644 index 00000000..ddf1cf3a --- /dev/null +++ b/doc/theme/material/.icons/octicons/unfold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/unmute.svg b/doc/theme/material/.icons/octicons/unmute.svg new file mode 100644 index 00000000..112db0b9 --- /dev/null +++ b/doc/theme/material/.icons/octicons/unmute.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/unsaved.svg b/doc/theme/material/.icons/octicons/unsaved.svg new file mode 100644 index 00000000..7edbdf61 --- /dev/null +++ b/doc/theme/material/.icons/octicons/unsaved.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/unverified.svg b/doc/theme/material/.icons/octicons/unverified.svg new file mode 100644 index 00000000..513b6b83 --- /dev/null +++ b/doc/theme/material/.icons/octicons/unverified.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/verified.svg b/doc/theme/material/.icons/octicons/verified.svg new file mode 100644 index 00000000..bed5b196 --- /dev/null +++ b/doc/theme/material/.icons/octicons/verified.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/versions.svg b/doc/theme/material/.icons/octicons/versions.svg new file mode 100644 index 00000000..23817850 --- /dev/null +++ b/doc/theme/material/.icons/octicons/versions.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/watch.svg b/doc/theme/material/.icons/octicons/watch.svg new file mode 100644 index 00000000..d1a60fe2 --- /dev/null +++ b/doc/theme/material/.icons/octicons/watch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/workflow-all.svg b/doc/theme/material/.icons/octicons/workflow-all.svg new file mode 100644 index 00000000..a755b742 --- /dev/null +++ b/doc/theme/material/.icons/octicons/workflow-all.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/workflow.svg b/doc/theme/material/.icons/octicons/workflow.svg new file mode 100644 index 00000000..26e4db1c --- /dev/null +++ b/doc/theme/material/.icons/octicons/workflow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/x.svg b/doc/theme/material/.icons/octicons/x.svg new file mode 100644 index 00000000..202437db --- /dev/null +++ b/doc/theme/material/.icons/octicons/x.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/.icons/octicons/zap.svg b/doc/theme/material/.icons/octicons/zap.svg new file mode 100644 index 00000000..e7747f13 --- /dev/null +++ b/doc/theme/material/.icons/octicons/zap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/404.html b/doc/theme/material/404.html new file mode 100644 index 00000000..49c7d164 --- /dev/null +++ b/doc/theme/material/404.html @@ -0,0 +1,7 @@ +{#- + This file was automatically generated - do not edit +-#} +{% extends "base.html" %} +{% block content %} +

404 - Not found

+{% endblock %} diff --git a/doc/theme/material/assets/images/2.jpg b/doc/theme/material/assets/images/2.jpg new file mode 100644 index 00000000..ebd8c7bd Binary files /dev/null and b/doc/theme/material/assets/images/2.jpg differ diff --git a/doc/theme/material/assets/images/donation.jpg b/doc/theme/material/assets/images/donation.jpg new file mode 100644 index 00000000..ebec3bb6 Binary files /dev/null and b/doc/theme/material/assets/images/donation.jpg differ diff --git a/doc/theme/material/assets/images/favicon.png b/doc/theme/material/assets/images/favicon.png new file mode 100644 index 00000000..1cf13b9f Binary files /dev/null and b/doc/theme/material/assets/images/favicon.png differ diff --git a/doc/theme/material/assets/javascripts/bundle.193efd2f.min.js b/doc/theme/material/assets/javascripts/bundle.193efd2f.min.js new file mode 100644 index 00000000..3cb87086 --- /dev/null +++ b/doc/theme/material/assets/javascripts/bundle.193efd2f.min.js @@ -0,0 +1,2 @@ +!function(t,e){for(var n in e)t[n]=e[n]}(window,function(t){function e(e){for(var r,i,o=e[0],u=e[1],b=e[2],s=0,O=[];s0}function H(){return new _.a(new URL(location.href))}var R=n(109);function P(t,e){return e.location$.pipe(Object(R.a)(1),Object(l.a)((function(e){var n=e.href;return new URL(t,n).toString().replace(/\/$/,"")})),Object(p.a)(1))}function U(){return location.hash.substring(1)}function q(t){var e=s("a");e.href=t,e.addEventListener("click",(function(t){return t.stopPropagation()})),e.click()}function N(){return Object(c.a)(window,"hashchange").pipe(Object(l.a)(U),Object(d.a)(U()),Object(S.a)((function(t){return t.length>0})),Object(C.a)())}function I(t){var e=matchMedia(t);return Object(x.a)((function(t){return e.addListener((function(){return t(e.matches)}))})).pipe(Object(d.a)(e.matches),Object(p.a)(1))}var z={drawer:u("[data-md-toggle=drawer]"),search:u("[data-md-toggle=search]")};function V(t){return z[t].checked}function D(t,e){z[t].checked!==e&&z[t].click()}function B(t){var e=z[t];return Object(c.a)(e,"change").pipe(Object(l.a)((function(){return e.checked})),Object(d.a)(e.checked))}var Y=n(59),J=n(87);function K(){return{x:Math.max(0,pageXOffset),y:Math.max(0,pageYOffset)}}function Q(t){var e=t.x,n=t.y;window.scrollTo(e||0,n||0)}function F(){return{width:innerWidth,height:innerHeight}}function W(){return Object(Y.a)([Object(j.a)(Object(c.a)(window,"scroll",{passive:!0}),Object(c.a)(window,"resize",{passive:!0})).pipe(Object(l.a)(K),Object(d.a)(K())),Object(c.a)(window,"resize",{passive:!0}).pipe(Object(l.a)(F),Object(d.a)(F()))]).pipe(Object(l.a)((function(t){var e=Object(w.h)(t,2);return{offset:e[0],size:e[1]}})),Object(p.a)(1))}function X(t,e){var n=e.header$,r=e.viewport$,c=r.pipe(Object(J.a)("size")),a=Object(Y.a)([c,n]).pipe(Object(l.a)((function(){return{x:t.offsetLeft,y:t.offsetTop}})));return Object(Y.a)([n,r,a]).pipe(Object(l.a)((function(t){var e=Object(w.h)(t,3),n=e[0].height,r=e[1],c=r.offset,a=r.size,i=e[2],o=i.x,u=i.y;return{offset:{x:c.x-o,y:c.y-u+n},size:a}})),Object(p.a)(1))}var Z=n(98),G=n(99),tt=n(79),et=n(100);function nt(t,e){var n=e.tx$,r=Object(x.a)((function(e){return t.addEventListener("message",e)})).pipe(Object(Z.a)("data"));return n.pipe(Object(G.a)((function(){return r}),{leading:!0,trailing:!0}),Object(tt.a)((function(e){return t.postMessage(e)})),Object(et.a)(r),Object(C.a)())}},,,function(t,e,n){"use strict";function r(t){return"object"==typeof t&&"string"==typeof t.base&&"object"==typeof t.features&&"object"==typeof t.search}n.d(e,"d",(function(){return r})),n.d(e,"b",(function(){return b})),n.d(e,"a",(function(){return O})),n.d(e,"f",(function(){return d})),n.d(e,"g",(function(){return p})),n.d(e,"e",(function(){return h})),n.d(e,"c",(function(){return v}));var c=n(0),a=n(78);function i(t){switch(t){case"svg":case"path":return document.createElementNS("http://www.w3.org/2000/svg",t);default:return document.createElement(t)}}function o(t,e,n){switch(e){case"xmlns":break;case"viewBox":case"d":"boolean"!=typeof n?t.setAttributeNS(null,e,n):n&&t.setAttributeNS(null,e,"");break;default:"boolean"!=typeof n?t.setAttribute(e,n):n&&t.setAttribute(e,"")}}function u(t,e){var n,r;if("string"==typeof e||"number"==typeof e)t.innerHTML+=e.toString();else if(e instanceof Node)t.appendChild(e);else if(Array.isArray(e))try{for(var a=Object(c.k)(e),i=a.next();!i.done;i=a.next()){u(t,i.value)}}catch(t){n={error:t}}finally{try{i&&!i.done&&(r=a.return)&&r.call(a)}finally{if(n)throw n.error}}}function b(t,e){for(var n,r,b,f,s=[],O=2;On){for(;" "!==t[n]&&--n>0;);return t.substring(0,n)+"..."}return t}function h(t){return t>999?((t+1e-6)/1e3).toFixed(+((t-950)%1e3>99))+"k":t.toString()}function v(t){for(var e=0,n=0,r=t.length;n code").forEach((function(t,e){var n=t.parentElement;n.id="__code_"+e,n.insertBefore(Object(f.a)(n.id),t)}))}));var O=Object(a.a)((function(t){new r(".md-clipboard").on("success",t)})).pipe(Object(i.a)());return O.pipe(Object(o.a)((function(t){return t.clearSelection()})),Object(u.a)(Object(s.f)("clipboard.copied"))).subscribe(n),O}var j=n(26),l=n(39),d=n(82),p=n(33),h=n(9),v=n(56),m=n(111);function y(t){var e=(void 0===t?{}:t).duration,n=new j.a,r=Object(b.a)("div");return r.classList.add("md-dialog","md-typeset"),n.pipe(Object(p.a)((function(t){return Object(l.a)(document.body).pipe(Object(h.a)((function(t){return t.appendChild(r)})),Object(v.b)(d.a),Object(m.a)(1),Object(o.a)((function(e){e.innerHTML=t,e.setAttribute("data-md-state","open")})),Object(m.a)(e||2e3),Object(o.a)((function(t){return t.removeAttribute("data-md-state")})),Object(m.a)(400),Object(o.a)((function(t){t.innerHTML="",t.remove()})))}))).subscribe(),n}var g=n(0),w=n(92),$=n(94),x=n(112),k=n(96),S=n(46),C=n(98),T=n(87),A=n(103),_=n(104),E=n(101),L=n(88),M=n(105),H=n(89);function R(t){var e=t.document$,n=t.viewport$,r=t.location$;"scrollRestoration"in history&&(history.scrollRestoration="manual"),Object(w.a)(window,"beforeunload").subscribe((function(){history.scrollRestoration="auto"}));var a=Object(b.c)('link[rel="shortcut icon"]');void 0!==a&&(a.href=a.href);var o=Object(w.a)(document.body,"click").pipe(Object(k.a)((function(t){return!(t.metaKey||t.ctrlKey)})),Object(p.a)((function(t){if(t.target instanceof HTMLElement){var e=t.target.closest("a");if(e&&!e.target&&Object(b.h)(e))return Object(b.g)(e)||t.preventDefault(),Object(l.a)(e)}return c.a})),Object(h.a)((function(t){return{url:new URL(t.href)}})),Object(i.a)());o.subscribe((function(){Object(b.o)("search",!1)}));var u=o.pipe(Object(k.a)((function(t){var e=t.url;return!Object(b.g)(e)})),Object(i.a)()),f=Object(w.a)(window,"popstate").pipe(Object(k.a)((function(t){return null!==t.state})),Object(h.a)((function(t){return{url:new URL(location.href),offset:t.state}})),Object(i.a)());Object($.a)(u,f).pipe(Object(S.a)((function(t,e){return t.url.href===e.url.href})),Object(C.a)("url")).subscribe(r);var s=r.pipe(Object(T.a)("pathname"),Object(A.a)(1),Object(p.a)((function(t){return Object(x.a)({url:t.href,responseType:"text",withCredentials:!0}).pipe(Object(_.a)((function(){return Object(b.m)(t),c.a})))})));u.pipe(Object(E.a)(s)).subscribe((function(t){var e=t.url;history.pushState({},"",e.toString())}));var O=new DOMParser;s.pipe(Object(h.a)((function(t){var e=t.response;return O.parseFromString(e,"text/html")}))).subscribe(e);var j=Object($.a)(u,f).pipe(Object(E.a)(e));j.subscribe((function(t){var e=t.url,n=t.offset;e.hash&&!n?Object(b.n)(e.hash):Object(b.p)(n||{y:0})})),j.pipe(Object(L.a)(e)).subscribe((function(t){var e,n,r=Object(g.h)(t,2)[1],c=r.title,a=r.head;document.dispatchEvent(new CustomEvent("DOMContentSwitch")),document.title=c;try{for(var i=Object(g.k)(['link[rel="canonical"]','meta[name="author"]','meta[name="description"]']),o=i.next();!o.done;o=i.next()){var u=o.value,f=Object(b.c)(u,a),s=Object(b.c)(u,document.head);void 0!==f&&void 0!==s&&Object(b.j)(s,f)}}catch(t){e={error:t}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(e)throw e.error}}})),n.pipe(Object(M.a)(250),Object(T.a)("offset")).subscribe((function(t){var e=t.offset;history.replaceState(e,"")})),Object($.a)(o,f).pipe(Object(H.a)(2,1),Object(k.a)((function(t){var e=Object(g.h)(t,2),n=e[0],r=e[1];return n.url.pathname===r.url.pathname&&!Object(b.g)(r.url)})),Object(h.a)((function(t){return Object(g.h)(t,2)[1]}))).subscribe((function(t){var e=t.offset;Object(b.p)(e||{y:0})}))}var P=n(7);function U(){var t=Object(b.u)().pipe(Object(h.a)((function(t){return Object(g.a)({mode:Object(b.f)("search")?"search":"global"},t)})),Object(k.a)((function(t){if("global"===t.mode){var e=Object(b.b)();if(void 0!==e)return!Object(b.i)(e)}return!0})),Object(i.a)());return t.pipe(Object(k.a)((function(t){return"search"===t.mode})),Object(L.a)(Object(P.useComponent)("search-query"),Object(P.useComponent)("search-result"))).subscribe((function(t){var e=Object(g.h)(t,3),n=e[0],r=e[1],c=e[2],a=Object(b.b)();switch(n.type){case"Enter":a===r&&n.claim();break;case"Escape":case"Tab":Object(b.o)("search",!1),Object(b.k)(r,!1);break;case"ArrowUp":case"ArrowDown":if(void 0===a)Object(b.k)(r);else{var i=Object(g.i)([r],Object(b.e)("[href]",c)),o=Math.max(0,(Math.max(0,i.indexOf(a))+i.length+("ArrowUp"===n.type?-1:1))%i.length);Object(b.k)(i[o])}n.claim();break;default:r!==Object(b.b)()&&Object(b.k)(r)}})),t.pipe(Object(k.a)((function(t){return"global"===t.mode})),Object(L.a)(Object(P.useComponent)("search-query"))).subscribe((function(t){var e=Object(g.h)(t,2),n=e[0],r=e[1];switch(n.type){case"f":case"s":case"/":Object(b.k)(r),Object(b.l)(r),n.claim();break;case"p":case",":var c=Object(b.c)("[href][rel=prev]");void 0!==c&&c.click();break;case"n":case".":var a=Object(b.c)("[href][rel=next]");void 0!==a&&a.click()}})),t}var q=n(44)},,,,,,function(t,e,n){"use strict";n.d(e,"a",(function(){return j})),n.d(e,"b",(function(){return l}));var r,c=n(0),a=n(39),i=n(18),o=n(9),u=n(80),b=n(86),f=n(33),s=n(46),O=n(1);function j(t,e){var n=e.document$;r=n.pipe(Object(o.a)((function(e){return t.reduce((function(t,n){var r,a=Object(O.c)("[data-md-component="+n+"]",e);return Object(c.a)(Object(c.a)({},t),void 0!==a?((r={})[n]=a,r):{})}),{})})),Object(u.a)((function(e,n){var r,a;try{for(var i=Object(c.k)(t),o=i.next();!o.done;o=i.next()){var u=o.value;switch(u){case"announce":case"header-title":case"container":case"skip":u in e&&void 0!==e[u]&&(Object(O.j)(e[u],n[u]),e[u]=n[u]);break;default:void 0!==n[u]?e[u]=Object(O.c)("[data-md-component="+u+"]"):delete e[u]}}}catch(t){r={error:t}}finally{try{o&&!o.done&&(a=i.return)&&a.call(i)}finally{if(r)throw r.error}}return e})),Object(b.a)(1))}function l(t){return r.pipe(Object(f.a)((function(e){return void 0!==e[t]?Object(a.a)(e[t]):i.a})),Object(s.a)())}},,,function(t,e,n){"use strict";function r(t,e){t.setAttribute("data-md-state",e?"blur":"")}function c(t){t.removeAttribute("data-md-state")}function a(t,e){t.classList.toggle("md-nav__link--active",e)}function i(t){t.classList.remove("md-nav__link--active")}n.d(e,"d",(function(){return r})),n.d(e,"b",(function(){return c})),n.d(e,"c",(function(){return a})),n.d(e,"a",(function(){return i}))},,,,,,function(t,e,n){"use strict";var r=n(61);n.o(r,"applySidebar")&&n.d(e,"applySidebar",(function(){return r.applySidebar})),n.o(r,"mountTableOfContents")&&n.d(e,"mountTableOfContents",(function(){return r.mountTableOfContents})),n.o(r,"mountTabs")&&n.d(e,"mountTabs",(function(){return r.mountTabs})),n.o(r,"watchSidebar")&&n.d(e,"watchSidebar",(function(){return r.watchSidebar}))},function(t,e,n){"use strict";n.d(e,"a",(function(){return a})),n.d(e,"b",(function(){return j})),n.d(e,"c",(function(){return p})),n.d(e,"d",(function(){return m}));var r=n(4),c="md-clipboard md-icon";function a(t){return Object(r.b)("button",{class:c,title:Object(r.f)("clipboard.copy"),"data-clipboard-target":"#"+t+" > code"},Object(r.b)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(r.b)("path",{d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})))}var i=n(0),o="md-search-result__item",u="md-search-result__link",b="md-search-result__article md-search-result__article--document",f="md-search-result__article",s="md-search-result__title",O="md-search-result__teaser";function j(t){var e=t.article,n=t.sections,c=Object(r.b)("div",{class:"md-search-result__icon md-icon"},Object(r.b)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(r.b)("path",{d:"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H13C12.59,21.75 12.2,21.44 11.86,21.1C11.53,20.77 11.25,20.4 11,20H6V4H13V9H18V10.18C18.71,10.34 19.39,10.61 20,11V8L14,2M20.31,18.9C21.64,16.79 21,14 18.91,12.68C16.8,11.35 14,12 12.69,14.08C11.35,16.19 12,18.97 14.09,20.3C15.55,21.23 17.41,21.23 18.88,20.32L22,23.39L23.39,22L20.31,18.9M16.5,19A2.5,2.5 0 0,1 14,16.5A2.5,2.5 0 0,1 16.5,14A2.5,2.5 0 0,1 19,16.5A2.5,2.5 0 0,1 16.5,19Z"}))),a=Object(i.i)([e],n).map((function(t){var e=t.location,n=t.title,a=t.text;return Object(r.b)("a",{href:e,class:u,tabIndex:-1},Object(r.b)("article",{class:"parent"in t?f:b},!("parent"in t)&&c,Object(r.b)("h1",{class:s},n),a.length>0&&Object(r.b)("p",{class:O},Object(r.g)(a,320))))}));return Object(r.b)("li",{class:o},a)}var l="md-source__facts",d="md-source__fact";function p(t){var e=t.map((function(t){return Object(r.b)("li",{class:d},t)}));return Object(r.b)("ul",{class:l},e)}var h="md-typeset__scrollwrap",v="md-typeset__table";function m(t){return Object(r.b)("div",{class:h},Object(r.b)("div",{class:v},t))}},function(t,e,n){"use strict";function r(t,e){t.style.top=e+"px"}function c(t){t.style.top=""}function a(t,e){t.style.height=e+"px"}function i(t){t.style.height=""}n.d(e,"d",(function(){return r})),n.d(e,"b",(function(){return c})),n.d(e,"c",(function(){return a})),n.d(e,"a",(function(){return i}))},,,,,,,,,,,,function(t,e,n){"use strict";var r=n(66);n.o(r,"applyAnchorList")&&n.d(e,"applyAnchorList",(function(){return r.applyAnchorList})),n.o(r,"watchAnchorList")&&n.d(e,"watchAnchorList",(function(){return r.watchAnchorList}));var c=n(67);n.d(e,"applyAnchorList",(function(){return c.a})),n.d(e,"watchAnchorList",(function(){return c.b}));n(23)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a})),n.d(e,"f",(function(){return y})),n.d(e,"a",(function(){return i})),n.d(e,"d",(function(){return p})),n.d(e,"c",(function(){return h})),n.d(e,"e",(function(){return v}));var r=n(0),c=n(75);!function(){function t(t){var e=t.config,n=t.docs,a=t.pipeline,i=t.index;this.documents=function(t){var e,n,a=new Map;try{for(var i=Object(r.k)(t),o=i.next();!o.done;o=i.next()){var u=o.value,b=Object(r.h)(u.location.split("#"),2),f=b[0],s=b[1],O=u.location,j=u.title,l=c(u.text).replace(/\s+(?=[,.:;!?])/g,"").replace(/\s+/g," ");if(s){var d=a.get(f);d.linked?a.set(O,{location:O,title:j,text:l,parent:d}):(d.title=u.title,d.text=l,d.linked=!0)}else a.set(O,{location:O,title:j,text:l,linked:!1})}}catch(t){e={error:t}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(e)throw e.error}}return a}(n),this.highlight=function(t){var e=new RegExp(t.separator,"img"),n=function(t,e,n){return e+""+n+""};return function(c){c=c.replace(/[\s*+-:~^]+/g," ").trim();var a=new RegExp("(^|"+t.separator+")("+c.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(e,"|")+")","img");return function(t){return Object(r.a)(Object(r.a)({},t),{title:t.title.replace(a,n),text:t.text.replace(a,n)})}}}(e),this.index=void 0===i?lunr((function(){var t,c,i,o,u;a=a||["trimmer","stopWordFilter"],this.pipeline.reset();try{for(var b=Object(r.k)(a),f=b.next();!f.done;f=b.next()){var s=f.value;this.pipeline.add(lunr[s])}}catch(e){t={error:e}}finally{try{f&&!f.done&&(c=b.return)&&c.call(b)}finally{if(t)throw t.error}}1===e.lang.length&&"en"!==e.lang[0]?this.use(lunr[e.lang[0]]):e.lang.length>1&&this.use((i=lunr).multiLanguage.apply(i,Object(r.i)(e.lang))),this.field("title",{boost:1e3}),this.field("text"),this.ref("location");try{for(var O=Object(r.k)(n),j=O.next();!j.done;j=O.next()){var l=j.value;this.add(l)}}catch(t){o={error:t}}finally{try{j&&!j.done&&(u=O.return)&&u.call(O)}finally{if(o)throw o.error}}})):lunr.Index.load("string"==typeof i?JSON.parse(i):i)}t.prototype.query=function(t){var e=this;if(t)try{var n=this.index.search(t).reduce((function(t,n){var c=e.documents.get(n.ref);if(void 0!==c)if("parent"in c){var a=c.parent.location;t.set(a,Object(r.i)(t.get(a)||[],[n]))}else{a=c.location;t.set(a,t.get(a)||[])}return t}),new Map),c=this.highlight(t);return Object(r.i)(n).map((function(t){var n=Object(r.h)(t,2),a=n[0],i=n[1];return{article:c(e.documents.get(a)),sections:i.map((function(t){return c(e.documents.get(t.ref))}))}}))}catch(e){console.warn("Invalid query: "+t+" – see https://bit.ly/2s3ChXG")}return[]}}();function a(t){return t.replace(/(?:^|\s+)[*+-:^~]+(?=\s+|$)/g,"").trim().replace(/\s+|\b$/g,"* ")}var i,o=n(110),u=n(26),b=n(53),f=n(88),s=n(9),O=n(86),j=n(56),l=n(1),d=n(4);function p(t){return t.type===i.READY}function h(t){return t.type===i.QUERY}function v(t){return t.type===i.RESULT}function m(t){var e=t.config,n=t.docs,r=t.index;return 1===e.lang.length&&"en"===e.lang[0]&&(e.lang=[Object(d.f)("search.config.lang")]),"[s-]+"===e.separator&&(e.separator=Object(d.f)("search.config.separator")),{config:e,docs:n,index:r,pipeline:Object(d.f)("search.config.pipeline").split(/\s*,\s*/).filter(o.a)}}function y(t,e){var n=e.index$,c=e.base$,a=new Worker(t),o=new u.a,d=Object(l.C)(a,{tx$:o}).pipe(Object(f.a)(c),Object(s.a)((function(t){var e,n,c,a,i=Object(r.h)(t,2),o=i[0],u=i[1];if(v(o))try{for(var b=Object(r.k)(o.data),f=b.next();!f.done;f=b.next()){var s=f.value,O=s.article,j=s.sections;O.location=u+"/"+O.location;try{for(var l=(c=void 0,Object(r.k)(j)),d=l.next();!d.done;d=l.next()){var p=d.value;p.location=u+"/"+p.location}}catch(t){c={error:t}}finally{try{d&&!d.done&&(a=l.return)&&a.call(l)}finally{if(c)throw c.error}}}}catch(t){e={error:t}}finally{try{f&&!f.done&&(n=b.return)&&n.call(b)}finally{if(e)throw e.error}}return o})),Object(O.a)(1));return n.pipe(Object(s.a)((function(t){return{type:i.SETUP,data:m(t)}})),Object(j.b)(b.a)).subscribe(o.next.bind(o)),{tx$:o,rx$:d}}!function(t){t[t.SETUP=0]="SETUP",t[t.READY=1]="READY",t[t.QUERY=2]="QUERY",t[t.RESULT=3]="RESULT"}(i||(i={}))},,,,,,,,,,,,,,,,,function(t,e,n){"use strict";var r=n(62);n.o(r,"applySidebar")&&n.d(e,"applySidebar",(function(){return r.applySidebar})),n.o(r,"mountTableOfContents")&&n.d(e,"mountTableOfContents",(function(){return r.mountTableOfContents})),n.o(r,"mountTabs")&&n.d(e,"mountTabs",(function(){return r.mountTabs})),n.o(r,"watchSidebar")&&n.d(e,"watchSidebar",(function(){return r.watchSidebar}));var c=n(63);n.d(e,"applySidebar",(function(){return c.a})),n.d(e,"watchSidebar",(function(){return c.b}));n(31)},function(t,e){},function(t,e,n){"use strict";n.d(e,"b",(function(){return l})),n.d(e,"a",(function(){return d}));var r=n(0),c=n(59),a=n(45),i=n(82),o=n(9),u=n(46),b=n(56),f=n(88),s=n(79),O=n(81),j=n(31);function l(t,e){var n=e.main$,a=e.viewport$,i=t.parentElement.offsetTop-t.parentElement.parentElement.offsetTop;return Object(c.a)([n,a]).pipe(Object(o.a)((function(t){var e=Object(r.h)(t,2),n=e[0],c=n.offset,a=n.height,o=e[1].offset.y;return{height:a=a+Math.min(i,Math.max(0,o-c))-i,lock:o>=c+i}})),Object(u.a)((function(t,e){return t.height===e.height&&t.lock===e.lock})))}function d(t,e){var n=e.header$;return Object(a.a)(Object(b.b)(i.a),Object(f.a)(n),Object(s.a)((function(e){var n=Object(r.h)(e,2),c=n[0],a=c.height,i=c.lock,o=n[1].height;Object(j.c)(t,a),i?Object(j.d)(t,o):Object(j.b)(t)})),Object(o.a)((function(t){return Object(r.h)(t,1)[0]})),Object(O.a)((function(){Object(j.b)(t),Object(j.a)(t)})))}},function(t,e,n){"use strict";var r=n(65);n.d(e,"mountTableOfContents",(function(){return r.a}));n(43)},function(t,e,n){"use strict";n.d(e,"a",(function(){return O}));var r=n(0),c=n(45),a=n(59),i=n(39),o=n(33),u=n(9),b=n(1),f=n(29),s=n(43);function O(t){var e=t.header$,n=t.main$,O=t.viewport$,j=t.tablet$;return Object(c.a)(Object(o.a)((function(t){return j.pipe(Object(o.a)((function(c){if(c){var o=Object(b.e)(".md-nav__link",t),j=Object(f.watchSidebar)(t,{main$:n,viewport$:O}).pipe(Object(f.applySidebar)(t,{header$:e})),l=Object(s.watchAnchorList)(o,{header$:e,viewport$:O}).pipe(Object(s.applyAnchorList)(o));return Object(a.a)([j,l]).pipe(Object(u.a)((function(t){var e=Object(r.h)(t,2);return{sidebar:e[0],anchors:e[1]}})))}return Object(i.a)({})})))})))}},function(t,e){},function(t,e,n){"use strict";n.d(e,"b",(function(){return y})),n.d(e,"a",(function(){return g}));var r=n(0),c=n(91),a=n(59),i=n(45),o=n(82),u=n(9),b=n(87),f=n(33),s=n(80),O=n(46),j=n(90),l=n(89),d=n(56),p=n(79),h=n(81),v=n(1),m=n(23);function y(t,e){var n,i,o=e.header$,d=e.viewport$,p=new Map;try{for(var h=Object(r.k)(t),m=h.next();!m.done;m=h.next()){var y=m.value,g=decodeURIComponent(y.hash.substring(1)),w=Object(v.c)('[id="'+g+'"]');void 0!==w&&p.set(y,w)}}catch(t){n={error:t}}finally{try{m&&!m.done&&(i=h.return)&&i.call(h)}finally{if(n)throw n.error}}var $=o.pipe(Object(u.a)((function(t){return 18+t.height})));return Object(v.t)(document.body).pipe(Object(b.a)("height"),Object(u.a)((function(){var t=[];return Object(r.i)(p).reduce((function(e,n){for(var a=Object(r.h)(n,2),i=a[0],o=a[1];t.length;){if(!(p.get(t[t.length-1]).tagName>=o.tagName))break;t.pop()}for(var u=o.offsetTop;!u&&o.parentElement;)u=(o=o.parentElement).offsetTop;return e.set(Object(c.a)(t=Object(r.i)(t,[i])),u)}),new Map)})),Object(f.a)((function(t){return Object(a.a)([$,d]).pipe(Object(s.a)((function(t,e){for(var n=Object(r.h)(t,2),c=n[0],a=n[1],i=Object(r.h)(e,2),o=i[0],u=i[1].offset.y;a.length;){if(!(Object(r.h)(a[0],2)[1]-o=u))break;a=Object(r.i)([c.pop()],a)}return[c,a]}),[[],Object(r.i)(t)]),Object(O.a)((function(t,e){return t[0]===e[0]&&t[1]===e[1]})))}))).pipe(Object(u.a)((function(t){var e=Object(r.h)(t,2),n=e[0],c=e[1];return{prev:n.map((function(t){return Object(r.h)(t,1)[0]})),next:c.map((function(t){return Object(r.h)(t,1)[0]}))}})),Object(j.a)({prev:[],next:[]}),Object(l.a)(2,1),Object(u.a)((function(t){var e=Object(r.h)(t,2),n=e[0],c=e[1];return n.prev.length16)););return n}),0),Object(u.a)(e),Object(M.a)((function(){!function(t){t.innerHTML=""}(b)})))})))}function q(t,e){var n=t.rx$,r=e.query$;return Object(c.a)(Object(i.a)((function(t){var e=t.parentElement,c=n.pipe(Object(o.a)(h.c),Object(u.a)(!0)),a=Object(p.s)(e).pipe(Object(O.a)((function(t){return t.y>=e.scrollHeight-e.offsetHeight-16})),Object(g.a)(),Object(o.a)(C.a));return n.pipe(Object(o.a)(h.d),Object(T.a)("data"),U(t,{query$:r,ready$:c,fetch$:a}),Object(b.a)([]))})))}},function(t,e,n){"use strict";n.d(e,"a",(function(){return y}));var r=n(0),c=n(45),a=n(59),i=n(33),o=n(9),u=n(96),b=n(88),f=n(46),s=n(90),O=n(86),j=n(1),l=n(20),d=n(39),p=n(82),h=n(56),v=n(79),m=n(81);function y(t){var e=t.document$,n=t.viewport$;return Object(c.a)(Object(i.a)((function(t){var y=function(t,e){return e.document$.pipe(Object(o.a)((function(){var e=getComputedStyle(t);return["sticky","-webkit-sticky"].includes(e.position)})),Object(f.a)(),Object(i.a)((function(e){return e?Object(j.t)(t).pipe(Object(o.a)((function(t){return{sticky:!0,height:t.height}}))):Object(d.a)({sticky:!1,height:0})})),Object(O.a)(1))}(t,{document$:e}),g=Object(l.b)("main").pipe(Object(o.a)((function(t){return Object(j.c)("h1, h2, h3, h4, h5, h6",t)})),Object(u.a)((function(t){return void 0!==t})),Object(b.a)(Object(l.b)("header-title")),Object(i.a)((function(t){var e=Object(r.h)(t,2),a=e[0],i=e[1];return Object(j.B)(a,{header$:y,viewport$:n}).pipe(Object(o.a)((function(t){return t.offset.y>=a.offsetHeight?"page":"site"})),Object(f.a)(),function(t){return Object(c.a)(Object(h.b)(p.a),Object(v.a)((function(e){!function(t,e){t.setAttribute("data-md-state",e?"active":"")}(t,"page"===e)})),Object(m.a)((function(){!function(t){t.removeAttribute("data-md-state")}(t)})))}(i))})),Object(s.a)("site"));return Object(a.a)([y,g]).pipe(Object(o.a)((function(t){var e=Object(r.h)(t,2),n=e[0],c=e[1];return Object(r.a)({type:c},n)})),Object(O.a)(1))})))}},function(t,e,n){"use strict";n.d(e,"a",(function(){return O}));var r=n(45),c=n(33),a=n(9),i=n(87),o=n(1),u=n(82),b=n(56),f=n(79),s=n(81);function O(t){var e=t.header$,n=t.viewport$;return Object(r.a)(Object(c.a)((function(t){return Object(o.B)(t,{header$:e,viewport$:n}).pipe(Object(a.a)((function(t){return{hidden:t.offset.y>=20}})),Object(i.a)("hidden"),function(t){return Object(r.a)(Object(b.b)(u.a),Object(f.a)((function(e){var n=e.hidden;!function(t,e){t.setAttribute("data-md-state",e?"hidden":"")}(t,n)})),Object(s.a)((function(){!function(t){t.removeAttribute("data-md-state")}(t)})))}(t))})))}},function(t,e,n){"use strict";n.d(e,"a",(function(){return m}));var r=n(26),c=n(45),a=n(33),i=n(87),o=n(79),u=n(20),b=n(0),f=n(59),s=n(82),O=n(98),j=n(46),l=n(86),d=n(9),p=n(56),h=n(81),v=n(1);function m(t){var e=t.header$,n=t.viewport$,m=new r.a;return Object(u.b)("header").pipe(Object(a.a)((function(t){return m.pipe(Object(i.a)("active"),(e=t,Object(c.a)(Object(p.b)(s.a),Object(o.a)((function(t){var n=t.active;!function(t,e){t.setAttribute("data-md-state",e?"shadow":"")}(e,n)})),Object(h.a)((function(){!function(t){t.removeAttribute("data-md-state")}(e)})))));var e}))).subscribe(),Object(c.a)(Object(a.a)((function(t){return function(t,e){var n=e.header$,r=e.viewport$,c=n.pipe(Object(O.a)("height"),Object(j.a)(),Object(l.a)(1)),o=c.pipe(Object(a.a)((function(){return Object(v.t)(t).pipe(Object(d.a)((function(e){var n=e.height;return{top:t.offsetTop,bottom:t.offsetTop+n}})))})),Object(i.a)("bottom"),Object(l.a)(1));return Object(f.a)([c,o,r]).pipe(Object(d.a)((function(t){var e=Object(b.h)(t,3),n=e[0],r=e[1],c=r.top,a=r.bottom,i=e[2],o=i.offset.y,u=i.size.height;return{offset:c-n,height:u=Math.max(0,u-Math.max(0,c-o,n)-Math.max(0,u+o-a)),active:c-n<=o}})),Object(j.a)((function(t,e){return t.offset===e.offset&&t.height===e.height&&t.active===e.active})))}(t,{header$:e,viewport$:n})})),Object(o.a)((function(t){return m.next(t)})))}},function(t,e,n){"use strict";n.d(e,"a",(function(){return j}));var r=n(45),c=n(39),a=n(33),i=n(9),o=n(87),u=n(1),b=n(82),f=n(56),s=n(79),O=n(81);function j(t){var e=t.header$,n=t.viewport$,j=t.screen$;return Object(r.a)(Object(a.a)((function(t){return j.pipe(Object(a.a)((function(a){return a?Object(u.B)(t,{header$:e,viewport$:n}).pipe(Object(i.a)((function(t){return{hidden:t.offset.y>=10}})),Object(o.a)("hidden"),function(t){return Object(r.a)(Object(f.b)(b.a),Object(s.a)((function(e){var n=e.hidden;!function(t,e){t.setAttribute("data-md-state",e?"hidden":"")}(t,n)})),Object(O.a)((function(){!function(t){t.removeAttribute("data-md-state")}(t)})))}(t)):Object(c.a)({hidden:!0})})))})))}},function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var r=n(45),c=n(39),a=n(33),i=n(9),o=n(29);function u(t){var e=t.header$,n=t.main$,u=t.viewport$,b=t.screen$;return Object(r.a)(Object(a.a)((function(t){return b.pipe(Object(a.a)((function(r){return r?Object(o.watchSidebar)(t,{main$:n,viewport$:u}).pipe(Object(o.applySidebar)(t,{header$:e}),Object(i.a)((function(t){return{sidebar:t}}))):Object(c.a)({})})))})))}},,,,,,,,,,,,function(t,e,n){"use strict";n.r(e),n.d(e,"setScrollLock",(function(){return U})),n.d(e,"resetScrollLock",(function(){return q})),n.d(e,"initialize",(function(){return N}));var r=n(0),c=n(107),a=n(76),i=n(36),o=n(39),u=n(102),b=n(59),f=n(82),s=n(92),O=n(94),j=n(112),l=n(86),d=n(33),p=n(98),h=n(104),v=n(79),m=n(111),y=n(88),g=n(56),w=n(96),$=n(109),x=n(1),k=n(7),S=n(14),C=n(110),T=n(9),A=n(100);var _=n(103);var E=n(106),L=n(93);function M(){return/(iPad|iPhone|iPod)/.test(navigator.userAgent)}var H=n(30),R=n(4);function P(t){switch(Object(r.h)(t.match(/(git(?:hub|lab))/i)||[],1)[0].toLowerCase()){case"github":var e=Object(r.h)(t.match(/^.+github\.com\/([^\/]+)\/?([^\/]+)/i),3);return function(t,e){return Object(j.a)({url:void 0!==e?"https://api.github.com/repos/"+t+"/"+e:"https://api.github.com/users/"+t,responseType:"json"}).pipe(Object(w.a)((function(t){return 200===t.status})),Object(p.a)("response"),Object(d.a)((function(t){if(void 0!==e){var n=t.stargazers_count,r=t.forks_count;return Object(o.a)([Object(R.e)(n||0)+" Stars",Object(R.e)(r||0)+" Forks"])}var c=t.public_repos;return Object(o.a)([Object(R.e)(c||0)+" Repositories"])})))}(e[1],e[2]);case"gitlab":var n=Object(r.h)(t.match(/^.+?([^\/]*gitlab[^\/]+)\/(.+?)\/?$/i),3);return function(t,e){return Object(j.a)({url:"https://"+t+"/api/v4/projects/"+encodeURIComponent(e),responseType:"json"}).pipe(Object(w.a)((function(t){return 200===t.status})),Object(p.a)("response"),Object(T.a)((function(t){var e=t.star_count,n=t.forks_count;return[Object(R.e)(e)+" Stars",Object(R.e)(n)+" Forks"]})))}(n[1],n[2]);default:return u.a}}function U(t,e){t.setAttribute("data-md-state","lock"),t.style.top="-"+e+"px"}function q(t){var e=-1*parseInt(t.style.top,10);t.removeAttribute("data-md-state"),t.style.top="",e&&window.scrollTo(0,e)}function N(t){if(!Object(R.d)(t))throw new SyntaxError("Invalid configuration: "+JSON.stringify(t));var e=Object(x.q)(),n=Object(x.v)(),N=Object(x.w)(t.base,{location$:n}),I=Object(x.x)(),z=Object(x.A)(),V=Object(x.y)("(min-width: 960px)"),D=Object(x.y)("(min-width: 1220px)");Object(k.setupComponents)(["announce","container","header","header-title","hero","main","navigation","search","search-query","search-reset","search-result","skip","tabs","toc"],{document$:e});var B=Object(S.h)();!function(t){var e=t.document$,n=t.hash$,c=e.pipe(Object(T.a)((function(){return Object(x.e)("details")})));Object(O.a)(Object(x.y)("print").pipe(Object(w.a)(C.a)),Object(s.a)(window,"beforeprint")).pipe(Object(A.a)(c)).subscribe((function(t){var e,n;try{for(var c=Object(r.k)(t),a=c.next();!a.done;a=c.next()){a.value.setAttribute("open","")}}catch(t){e={error:t}}finally{try{a&&!a.done&&(n=c.return)&&n.call(c)}finally{if(e)throw e.error}}})),n.pipe(Object(T.a)((function(t){return Object(x.c)('[id="'+t+'"]')})),Object(w.a)((function(t){return void 0!==t})),Object(v.a)((function(t){var e=t.closest("details");e&&!e.open&&e.setAttribute("open","")}))).subscribe((function(t){return t.scrollIntoView()}))}({document$:e,hash$:I}),{document$:e}.document$.pipe(Object(_.a)(1),Object(y.a)(Object(k.useComponent)("container")),Object(T.a)((function(t){var e=Object(r.h)(t,2)[1];return Object(x.e)("script",e)}))).subscribe((function(t){var e,n;try{for(var c=Object(r.k)(t),a=c.next();!a.done;a=c.next()){var i=a.value;if(i.src||/(^|\/javascript)$/i.test(i.type)){var o=Object(x.a)("script"),u=i.src?"src":"textContent";o[u]=i[u],Object(x.j)(i,o)}}}catch(t){e={error:t}}finally{try{a&&!a.done&&(n=c.return)&&n.call(c)}finally{if(e)throw e.error}}})),function(t){t.document$.pipe(Object(T.a)((function(){return Object(x.d)(".md-source[href]")})),Object(d.a)((function(t){var e=t.href;return Object(R.a)(""+Object(R.c)(e),(function(){return P(e)}))})),Object(h.a)((function(){return u.a}))).subscribe((function(t){var e,n;try{for(var c=Object(r.k)(Object(x.e)(".md-source__repository")),a=c.next();!a.done;a=c.next()){var i=a.value;i.hasAttribute("data-md-state")||(i.setAttribute("data-md-state","done"),i.appendChild(Object(H.c)(t)))}}catch(t){e={error:t}}finally{try{a&&!a.done&&(n=c.return)&&n.call(c)}finally{if(e)throw e.error}}}))}({document$:e}),function(t){var e=t.document$,n=Object(x.a)("table");e.pipe(Object(T.a)((function(){return Object(x.e)("table:not([class])")}))).subscribe((function(t){var e,c;try{for(var a=Object(r.k)(t),i=a.next();!i.done;i=a.next()){var o=i.value;Object(x.j)(o,n),Object(x.j)(n,Object(H.d)(o))}}catch(t){e={error:t}}finally{try{i&&!i.done&&(c=a.return)&&c.call(a)}finally{if(e)throw e.error}}}))}({document$:e}),function(t){var e=t.document$.pipe(Object(T.a)((function(){return Object(x.e)("[data-md-scrollfix]")})),Object(l.a)(1));e.subscribe((function(t){var e,n;try{for(var c=Object(r.k)(t),a=c.next();!a.done;a=c.next()){a.value.removeAttribute("data-md-scrollfix")}}catch(t){e={error:t}}finally{try{a&&!a.done&&(n=c.return)&&n.call(c)}finally{if(e)throw e.error}}})),Object(E.a)(M,e,u.a).pipe(Object(d.a)((function(t){return O.a.apply(void 0,Object(r.i)(t.map((function(t){return Object(s.a)(t,"touchstart",{passive:!0}).pipe(Object(L.a)(t))}))))}))).subscribe((function(t){var e=t.scrollTop;0===e?t.scrollTop=1:e+t.offsetHeight===t.scrollHeight&&(t.scrollTop=e-1)}))}({document$:e});var Y=Object(S.f)(),J=Object(S.e)({document$:e,dialog$:Y}),K=Object(k.useComponent)("header").pipe(Object(k.mountHeader)({document$:e,viewport$:z}),Object(l.a)(1)),Q=Object(k.useComponent)("main").pipe(Object(k.mountMain)({header$:K,viewport$:z}),Object(l.a)(1)),F=Object(k.useComponent)("navigation").pipe(Object(k.mountNavigation)({header$:K,main$:Q,viewport$:z,screen$:D}),Object(l.a)(1)),W=Object(k.useComponent)("toc").pipe(Object(k.mountTableOfContents)({header$:K,main$:Q,viewport$:z,tablet$:V}),Object(l.a)(1)),X=Object(k.useComponent)("tabs").pipe(Object(k.mountTabs)({header$:K,viewport$:z,screen$:D}),Object(l.a)(1)),Z=Object(k.useComponent)("hero").pipe(Object(k.mountHero)({header$:K,viewport$:z}),Object(l.a)(1)),G=Object(a.a)((function(){var e=t.search&&t.search.index?t.search.index:void 0,n=void 0!==e?Object(i.a)(e):N.pipe(Object(d.a)((function(t){return Object(j.a)({url:t+"/search/search_index.json",responseType:"json",withCredentials:!0}).pipe(Object(p.a)("response"))})));return Object(o.a)(Object(S.i)(t.search.worker,{base$:N,index$:n}))})).pipe(Object(d.a)((function(e){var n=Object(k.useComponent)("search-query").pipe(Object(k.mountSearchQuery)(e,{transform:t.search.transform}),Object(l.a)(1)),r=Object(k.useComponent)("search-reset").pipe(Object(k.mountSearchReset)(),Object(l.a)(1)),c=Object(k.useComponent)("search-result").pipe(Object(k.mountSearchResult)(e,{query$:n}),Object(l.a)(1));return Object(k.useComponent)("search").pipe(Object(k.mountSearch)(e,{query$:n,reset$:r,result$:c}),Object(l.a)(1))})),Object(h.a)((function(){return Object(k.useComponent)("search").subscribe((function(t){return t.hidden=!0})),u.a})));I.pipe(Object(v.a)((function(){return Object(x.o)("search",!1)})),Object(m.a)(125)).subscribe((function(t){return Object(x.n)("#"+t)})),Object(b.a)([Object(x.z)("search"),V]).pipe(Object(y.a)(z),Object(d.a)((function(t){var n=Object(r.h)(t,2),c=Object(r.h)(n[0],2),a=c[0],i=c[1],o=n[1].offset.y,u=a&&!i;return e.pipe(Object(m.a)(u?400:100),Object(g.b)(f.a),Object(v.a)((function(t){var e=t.body;return u?U(e,o):q(e)})))}))).subscribe(),Object(s.a)(document.body,"click").pipe(Object(w.a)((function(t){return!(t.metaKey||t.ctrlKey)})),Object(w.a)((function(t){if(t.target instanceof HTMLElement){var e=t.target.closest("a");if(e&&Object(x.h)(e))return!0}return!1}))).subscribe((function(){Object(x.o)("drawer",!1)})),t.features.includes("instant")&&"file:"!==location.protocol&&Object(S.g)({document$:e,location$:n,viewport$:z}),B.pipe(Object(w.a)((function(t){return"global"===t.mode&&"Tab"===t.type})),Object($.a)(1)).subscribe((function(){var t,e;try{for(var n=Object(r.k)(Object(x.e)(".headerlink")),c=n.next();!c.done;c=n.next()){c.value.style.visibility="visible"}}catch(e){t={error:e}}finally{try{c&&!c.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}}));var tt={document$:e,location$:n,viewport$:z,header$:K,hero$:Z,main$:Q,navigation$:F,search$:G,tabs$:X,toc$:W,clipboard$:J,keyboard$:B,dialog$:Y};return O.a.apply(void 0,Object(r.i)(Object(c.a)(tt))).subscribe(),tt}document.documentElement.classList.remove("no-js"),document.documentElement.classList.add("js"),navigator.userAgent.match(/(iPad|iPhone|iPod)/g)&&document.documentElement.classList.add("ios")}])); +//# sourceMappingURL=bundle.193efd2f.min.js.map \ No newline at end of file diff --git a/doc/theme/material/assets/javascripts/bundle.193efd2f.min.js.map b/doc/theme/material/assets/javascripts/bundle.193efd2f.min.js.map new file mode 100644 index 00000000..a59b5ca4 --- /dev/null +++ b/doc/theme/material/assets/javascripts/bundle.193efd2f.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/javascripts/browser/document/index.ts","webpack:///./src/assets/javascripts/browser/element/_/index.ts","webpack:///./src/assets/javascripts/browser/element/focus/index.ts","webpack:///./src/assets/javascripts/browser/element/offset/index.ts","webpack:///./src/assets/javascripts/browser/element/select/index.ts","webpack:///./src/assets/javascripts/browser/element/size/index.ts","webpack:///./src/assets/javascripts/browser/keyboard/index.ts","webpack:///./src/assets/javascripts/browser/location/_/index.ts","webpack:///./src/assets/javascripts/browser/location/base/index.ts","webpack:///./src/assets/javascripts/browser/location/hash/index.ts","webpack:///./src/assets/javascripts/browser/media/index.ts","webpack:///./src/assets/javascripts/browser/toggle/index.ts","webpack:///./src/assets/javascripts/browser/viewport/offset/index.ts","webpack:///./src/assets/javascripts/browser/viewport/size/index.ts","webpack:///./src/assets/javascripts/browser/viewport/_/index.ts","webpack:///./src/assets/javascripts/browser/worker/index.ts","webpack:///./src/assets/javascripts/utilities/config/index.ts","webpack:///./src/assets/javascripts/utilities/jsx/index.ts","webpack:///./src/assets/javascripts/utilities/rxjs/index.ts","webpack:///./src/assets/javascripts/utilities/string/index.ts","webpack:///./src/assets/javascripts/components/index.ts","webpack:///./src/assets/javascripts/integrations/clipboard/index.ts","webpack:///./src/assets/javascripts/integrations/dialog/index.ts","webpack:///./src/assets/javascripts/integrations/instant/index.ts","webpack:///./src/assets/javascripts/integrations/keyboard/index.ts","webpack:///./src/assets/javascripts/components/_/index.ts","webpack:///./src/assets/javascripts/components/toc/anchor/set/index.ts","webpack:///./src/assets/javascripts/components/shared/index.ts","webpack:///./src/assets/javascripts/templates/clipboard/index.tsx","webpack:///./src/assets/javascripts/templates/search/index.tsx","webpack:///./src/assets/javascripts/templates/source/index.tsx","webpack:///./src/assets/javascripts/templates/table/index.tsx","webpack:///./src/assets/javascripts/components/shared/sidebar/set/index.ts","webpack:///./src/assets/javascripts/components/toc/anchor/index.ts","webpack:///./src/assets/javascripts/integrations/search/_/index.ts","webpack:///./src/assets/javascripts/integrations/search/document/index.ts","webpack:///./src/assets/javascripts/integrations/search/highlighter/index.ts","webpack:///./src/assets/javascripts/integrations/search/transform/index.ts","webpack:///./src/assets/javascripts/integrations/search/worker/message/index.ts","webpack:///./src/assets/javascripts/integrations/search/worker/_/index.ts","webpack:///./src/assets/javascripts/components/shared/sidebar/index.ts","webpack:///./src/assets/javascripts/components/shared/sidebar/react/index.ts","webpack:///./src/assets/javascripts/components/toc/index.ts","webpack:///./src/assets/javascripts/components/toc/_/index.ts","webpack:///./src/assets/javascripts/components/toc/anchor/react/index.ts","webpack:///./src/assets/javascripts/components/search/_/index.ts","webpack:///./src/assets/javascripts/components/search/query/_/index.ts","webpack:///./src/assets/javascripts/components/search/query/react/index.ts","webpack:///./src/assets/javascripts/components/search/reset/_/index.ts","webpack:///./src/assets/javascripts/components/search/reset/react/index.ts","webpack:///./src/assets/javascripts/components/search/result/set/index.ts","webpack:///./src/assets/javascripts/components/search/result/react/index.ts","webpack:///./src/assets/javascripts/components/search/result/_/index.ts","webpack:///./src/assets/javascripts/components/header/_/index.ts","webpack:///./src/assets/javascripts/components/header/react/index.ts","webpack:///./src/assets/javascripts/components/header/set/index.ts","webpack:///./src/assets/javascripts/components/hero/_/index.ts","webpack:///./src/assets/javascripts/components/hero/react/index.ts","webpack:///./src/assets/javascripts/components/hero/set/index.ts","webpack:///./src/assets/javascripts/components/main/_/index.ts","webpack:///./src/assets/javascripts/components/main/react/index.ts","webpack:///./src/assets/javascripts/components/main/set/index.ts","webpack:///./src/assets/javascripts/components/tabs/_/index.ts","webpack:///./src/assets/javascripts/components/tabs/react/index.ts","webpack:///./src/assets/javascripts/components/tabs/set/index.ts","webpack:///./src/assets/javascripts/components/navigation/_/index.ts","webpack:///./src/assets/javascripts/patches/scrollfix/index.ts","webpack:///./src/assets/javascripts/patches/source/index.ts","webpack:///./src/assets/javascripts/patches/source/github/index.ts","webpack:///./src/assets/javascripts/patches/source/gitlab/index.ts","webpack:///./src/assets/javascripts/index.ts","webpack:///./src/assets/javascripts/patches/details/index.ts","webpack:///./src/assets/javascripts/patches/script/index.ts","webpack:///./src/assets/javascripts/patches/table/index.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","0","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","watchDocument","document$","ReplaySubject","fromEvent","document","pipe","mapTo","subscribe","getElement","selector","node","querySelector","undefined","getElementOrThrow","el","ReferenceError","getActiveElement","activeElement","HTMLElement","getElements","Array","from","querySelectorAll","createElement","tagName","replaceElement","source","target","replaceWith","setElementFocus","focus","blur","watchElementFocus","merge","map","type","startWith","shareReplay","getElementOffset","x","scrollLeft","y","scrollTop","watchElementOffset","setElementSelection","HTMLInputElement","Error","select","watchElementSize","fromEventPattern","next","contentRect","width","Math","round","height","observe","offsetWidth","offsetHeight","getElementSize","isSusceptibleToKeyboard","isContentEditable","watchKeyboard","filter","ev","metaKey","ctrlKey","claim","preventDefault","stopPropagation","share","setLocation","url","location","href","isLocalLocation","ref","host","test","pathname","isAnchorLocation","hash","watchLocation","BehaviorSubject","URL","watchLocationBase","base","location$","take","toString","replace","getLocationHash","substring","setLocationHash","addEventListener","click","watchLocationHash","watchMedia","query","media","matchMedia","addListener","matches","toggles","drawer","search","getToggle","checked","setToggle","watchToggle","getViewportOffset","max","pageXOffset","pageYOffset","setViewportOffset","scrollTo","getViewportSize","innerWidth","innerHeight","watchViewport","combineLatest","passive","offset","size","watchViewportAt","header$","viewport$","size$","distinctUntilKeyChanged","offset$","offsetLeft","offsetTop","watchWorker","worker","tx$","rx$","pluck","throttle","leading","trailing","tap","message","postMessage","switchMapTo","isConfig","config","features","createElementNS","setAttribute","setAttributeNS","appendChild","child","innerHTML","Node","isArray","h","attributes","keys","attr","children","cache","factory","defer","sessionStorage","getItem","of","JSON","parse","value$","setItem","stringify","err","lang","translate","textContent","truncate","toFixed","len","charCodeAt","setupClipboard","dialog$","forEach","block","index","parent","parentElement","id","insertBefore","clipboard$","on","clearSelection","setupDialog","duration","Subject","dialog","classList","add","switchMap","text","body","container","observeOn","animationFrame","delay","removeAttribute","remove","setupInstantLoading","history","scrollRestoration","favicon","state$","closest","push$","pop$","state","distinctUntilChanged","prev","ajax$","skip","ajax","responseType","withCredentials","catchError","sample","pushState","dom","DOMParser","response","parseFromString","instant$","withLatestFrom","title","head","dispatchEvent","CustomEvent","debounceTime","replaceState","bufferCount","setupKeyboard","keyboard$","active","els","indexOf","components$","setupComponents","names","reduce","components","useComponent","setAnchorBlur","resetAnchorBlur","setAnchorActive","toggle","resetAnchorActive","css","renderClipboardButton","class","xmlns","viewBox","renderSearchResult","article","sections","icon","tabIndex","renderSource","facts","fact","renderTable","table","setSidebarOffset","style","top","resetSidebarOffset","setSidebarHeight","resetSidebarHeight","docs","pipeline","this","documents","Map","doc","path","linked","set","setupSearchDocumentMap","highlight","separator","RegExp","_","term","trim","match","setupSearchHighlighter","lunr","reset","fn","use","multiLanguage","field","boost","Index","load","groups","results","section","console","warn","defaultTransform","SearchMessageType","isSearchReadyMessage","READY","isSearchQueryMessage","QUERY","isSearchResultMessage","RESULT","setupSearchIndex","split","identity","setupSearchWorker","index$","base$","Worker","SETUP","watchSidebar","main$","adjust","min","lock","a","b","applySidebar","mountTableOfContents","tablet$","tablet","sidebar$","anchors$","sidebar","anchors","watchAnchorList","decodeURIComponent","adjust$","header","anchor","pop","applyAnchorList","mountSearch","query$","reset$","result$","status$","status","mountSearchQuery","options","transform","focus$","watchSearchQuery","mountSearchReset","watchSearchReset","addToSearchResultList","applySearchResult","ready$","fetch$","list","meta","setSearchResultMeta","resetSearchResultMeta","scan","scrollHeight","finalize","resetSearchResultList","mountSearchResult","mountHeader","styles","getComputedStyle","includes","position","sticky","watchHeader","type$","main","hx","setHeaderTitleActive","resetHeaderTitleActive","applyHeaderType","mountHero","hidden","setHeroHidden","resetHeroHidden","applyHero","mountMain","setHeaderShadow","resetHeaderShadow","border$","bottom","watchMain","mountTabs","screen$","screen","setTabsHidden","resetTabsHidden","applyTabs","mountNavigation","isAppleDevice","navigator","userAgent","fetchSourceFacts","toLowerCase","user","repo","stargazers_count","forks_count","public_repos","fetchSourceFactsFromGitHub","project","encodeURIComponent","star_count","fetchSourceFactsFromGitLab","setScrollLock","resetScrollLock","parseInt","initialize","SyntaxError","hash$","els$","details","open","scrollIntoView","patchDetails","src","script","hasAttribute","patchSource","sentinel","patchTables","iif","patchScrollfix","navigation$","toc$","tabs$","hero$","search$","protocol","visibility","values","documentElement"],"mappings":"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","file":"assets/javascripts/bundle.193efd2f.min.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([85,1]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { ReplaySubject, Subject, fromEvent } from \"rxjs\"\nimport { mapTo } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch document\n *\n * Documents must be implemented as subjects, so all downstream observables are\n * automatically updated when a new document is emitted. This enabled features\n * like instant loading.\n *\n * @return Document subject\n */\nexport function watchDocument(): Subject {\n const document$ = new ReplaySubject()\n fromEvent(document, \"DOMContentLoaded\")\n .pipe(\n mapTo(document)\n )\n .subscribe(document$)\n\n /* Return document */\n return document$\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve an element matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @return Element or nothing\n */\nexport function getElement(\n selector: string, node: ParentNode = document\n): T | undefined {\n return node.querySelector(selector) || undefined\n}\n\n/**\n * Retrieve an element matching a query selector or throw a reference error\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @return Element\n */\nexport function getElementOrThrow(\n selector: string, node: ParentNode = document\n): T {\n const el = getElement(selector, node)\n if (typeof el === \"undefined\")\n throw new ReferenceError(\n `Missing element: expected \"${selector}\" to be present`\n )\n return el\n}\n\n/**\n * Retrieve the currently active element\n *\n * @return Element or nothing\n */\nexport function getActiveElement(): HTMLElement | undefined {\n return document.activeElement instanceof HTMLElement\n ? document.activeElement\n : undefined\n}\n\n/**\n * Retrieve all elements matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @return Elements\n */\nexport function getElements(\n selector: string, node: ParentNode = document\n): T[] {\n return Array.from(node.querySelectorAll(selector))\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Create an element\n *\n * @template T - Tag name type\n *\n * @param tagName - Tag name\n *\n * @return Element\n */\nexport function createElement<\n T extends keyof HTMLElementTagNameMap\n>(tagName: T): HTMLElementTagNameMap[T] {\n return document.createElement(tagName)\n}\n\n/**\n * Replace an element with another element\n *\n * @param source - Source element\n * @param target - Target element\n */\nexport function replaceElement(\n source: HTMLElement, target: Node\n): void {\n source.replaceWith(target)\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent, merge } from \"rxjs\"\nimport { map, shareReplay, startWith } from \"rxjs/operators\"\n\nimport { getActiveElement } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set element focus\n *\n * @param el - Element\n * @param value - Whether the element should be focused\n */\nexport function setElementFocus(\nel: HTMLElement, value: boolean = true\n): void {\n if (value)\n el.focus()\n else\n el.blur()\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element focus\n *\n * @param el - Element\n *\n * @return Element focus observable\n */\nexport function watchElementFocus(\n el: HTMLElement\n): Observable {\n return merge(\n fromEvent(el, \"focus\"),\n fromEvent(el, \"blur\")\n )\n .pipe(\n map(({ type }) => type === \"focus\"),\n startWith(el === getActiveElement()),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent, merge } from \"rxjs\"\nimport { map, shareReplay, startWith } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Element offset\n */\nexport interface ElementOffset {\n x: number /* Horizontal offset */\n y: number /* Vertical offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve element offset\n *\n * @param el - Element\n *\n * @return Element offset\n */\nexport function getElementOffset(el: HTMLElement): ElementOffset {\n return {\n x: el.scrollLeft,\n y: el.scrollTop\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element offset\n *\n * @param el - Element\n *\n * @return Element offset observable\n */\nexport function watchElementOffset(\n el: HTMLElement\n): Observable {\n return merge(\n fromEvent(el, \"scroll\"),\n fromEvent(window, \"resize\")\n )\n .pipe(\n map(() => getElementOffset(el)),\n startWith(getElementOffset(el)),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set element text selection\n *\n * @param el - Element\n */\nexport function setElementSelection(\n el: HTMLElement\n): void {\n if (el instanceof HTMLInputElement)\n el.select()\n else\n throw new Error(\"Not implemented\")\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport ResizeObserver from \"resize-observer-polyfill\"\nimport { Observable, fromEventPattern } from \"rxjs\"\nimport { shareReplay, startWith } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Element offset\n */\nexport interface ElementSize {\n width: number /* Element width */\n height: number /* Element height */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve element size\n *\n * @param el - Element\n *\n * @return Element size\n */\nexport function getElementSize(el: HTMLElement): ElementSize {\n return {\n width: el.offsetWidth,\n height: el.offsetHeight\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element size\n *\n * @param el - Element\n *\n * @return Element size observable\n */\nexport function watchElementSize(\n el: HTMLElement\n): Observable {\n return fromEventPattern(next => {\n new ResizeObserver(([{ contentRect }]) => next({\n width: Math.round(contentRect.width),\n height: Math.round(contentRect.height)\n }))\n .observe(el)\n })\n .pipe(\n startWith(getElementSize(el)),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent } from \"rxjs\"\nimport { filter, map, share } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Key\n */\nexport interface Key {\n type: string /* Key type */\n claim(): void /* Key claim */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Check whether an element may receive keyboard input\n *\n * @param el - Element\n *\n * @return Test result\n */\nexport function isSusceptibleToKeyboard(el: HTMLElement): boolean {\n switch (el.tagName) {\n\n /* Form elements */\n case \"INPUT\":\n case \"SELECT\":\n case \"TEXTAREA\":\n return true\n\n /* Everything else */\n default:\n return el.isContentEditable\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch keyboard\n *\n * @return Keyboard observable\n */\nexport function watchKeyboard(): Observable {\n return fromEvent(window, \"keydown\")\n .pipe(\n filter(ev => !(ev.metaKey || ev.ctrlKey)),\n map(ev => ({\n type: ev.key,\n claim() {\n ev.preventDefault()\n ev.stopPropagation()\n }\n })),\n share()\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { BehaviorSubject, Subject } from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve location\n *\n * This function will return a `URL` object (and not `Location`) in order to\n * normalize typings across the application. Furthermore, locations need to be\n * tracked without setting them and `Location` is a singleton which represents\n * the current location.\n *\n * @return URL\n */\nexport function getLocation(): URL {\n return new URL(location.href)\n}\n\n/**\n * Set location\n *\n * @param url - URL to change to\n */\nexport function setLocation(url: URL): void {\n location.href = url.href\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Check whether a URL is a local link or a file (except `.html`)\n *\n * @param url - URL or HTML anchor element\n * @param ref - Reference URL\n *\n * @return Test result\n */\nexport function isLocalLocation(\n url: URL | HTMLAnchorElement,\n ref: URL | Location = location\n): boolean {\n return url.host === ref.host\n && /^(?:\\/[\\w-]+)*(?:\\/?|\\.html)$/i.test(url.pathname)\n}\n\n/**\n * Check whether a URL is an anchor link on the current page\n *\n * @param url - URL or HTML anchor element\n * @param ref - Reference URL\n *\n * @return Test result\n */\nexport function isAnchorLocation(\n url: URL | HTMLAnchorElement,\n ref: URL | Location = location\n): boolean {\n return url.pathname === ref.pathname\n && url.hash.length > 0\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch location\n *\n * @return Location subject\n */\nexport function watchLocation(): Subject {\n return new BehaviorSubject(getLocation())\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable } from \"rxjs\"\nimport { map, shareReplay, take } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n location$: Observable /* Location observable */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch location base\n *\n * @return Location base observable\n */\nexport function watchLocationBase(\n base: string, { location$ }: WatchOptions\n): Observable {\n return location$\n .pipe(\n take(1),\n map(({ href }) => new URL(base, href)\n .toString()\n .replace(/\\/$/, \"\")\n ),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent } from \"rxjs\"\nimport { filter, map, share, startWith } from \"rxjs/operators\"\n\nimport { createElement } from \"browser\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve location hash\n *\n * @return Location hash\n */\nexport function getLocationHash(): string {\n return location.hash.substring(1)\n}\n\n/**\n * Set location hash\n *\n * Setting a new fragment identifier via `location.hash` will have no effect\n * if the value doesn't change. When a new fragment identifier is set, we want\n * the browser to target the respective element at all times, which is why we\n * use this dirty little trick.\n *\n * @param hash - Location hash\n */\nexport function setLocationHash(hash: string): void {\n const el = createElement(\"a\")\n el.href = hash\n el.addEventListener(\"click\", ev => ev.stopPropagation())\n el.click()\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch location hash\n *\n * @return Location hash observable\n */\nexport function watchLocationHash(): Observable {\n return fromEvent(window, \"hashchange\")\n .pipe(\n map(getLocationHash),\n startWith(getLocationHash()),\n filter(hash => hash.length > 0),\n share()\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEventPattern } from \"rxjs\"\nimport { shareReplay, startWith } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch media query\n *\n * @param query - Media query\n *\n * @return Media observable\n */\nexport function watchMedia(query: string): Observable {\n const media = matchMedia(query)\n return fromEventPattern(next =>\n media.addListener(() => next(media.matches))\n )\n .pipe(\n startWith(media.matches),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent } from \"rxjs\"\nimport { map, startWith } from \"rxjs/operators\"\n\nimport { getElementOrThrow } from \"../element\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Toggle\n */\nexport type Toggle =\n | \"drawer\" /* Toggle for drawer */\n | \"search\" /* Toggle for search */\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Toggle map\n */\nconst toggles: Record = {\n drawer: getElementOrThrow(`[data-md-toggle=drawer]`),\n search: getElementOrThrow(`[data-md-toggle=search]`)\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve the value of a toggle\n *\n * @param name - Toggle\n *\n * @return Toggle value\n */\nexport function getToggle(name: Toggle): boolean {\n return toggles[name].checked\n}\n\n/**\n * Set toggle\n *\n * Simulating a click event seems to be the most cross-browser compatible way\n * of changing the value while also emitting a `change` event. Before, Material\n * used `CustomEvent` to programmatically change the value of a toggle, but this\n * is a much simpler and cleaner solution which doesn't require a polyfill.\n *\n * @param name - Toggle\n * @param value - Toggle value\n */\nexport function setToggle(name: Toggle, value: boolean): void {\n if (toggles[name].checked !== value)\n toggles[name].click()\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch toggle\n *\n * @param name - Toggle\n *\n * @return Toggle value observable\n */\nexport function watchToggle(name: Toggle): Observable {\n const el = toggles[name]\n return fromEvent(el, \"change\")\n .pipe(\n map(() => el.checked),\n startWith(el.checked)\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent, merge } from \"rxjs\"\nimport { map, startWith } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Viewport offset\n */\nexport interface ViewportOffset {\n x: number /* Horizontal offset */\n y: number /* Vertical offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve viewport offset\n *\n * On iOS Safari, viewport offset can be negative due to overflow scrolling.\n * As this may induce strange behaviors downstream, we'll just limit it to 0.\n *\n * @return Viewport offset\n */\nexport function getViewportOffset(): ViewportOffset {\n return {\n x: Math.max(0, pageXOffset),\n y: Math.max(0, pageYOffset)\n }\n}\n\n/**\n * Set viewport offset\n *\n * @param offset - Viewport offset\n */\nexport function setViewportOffset(\n { x, y }: Partial\n): void {\n window.scrollTo(x || 0, y || 0)\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport offset\n *\n * @return Viewport offset observable\n */\nexport function watchViewportOffset(): Observable {\n return merge(\n fromEvent(window, \"scroll\", { passive: true }),\n fromEvent(window, \"resize\", { passive: true })\n )\n .pipe(\n map(getViewportOffset),\n startWith(getViewportOffset())\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent } from \"rxjs\"\nimport { map, startWith } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Viewport size\n */\nexport interface ViewportSize {\n width: number /* Viewport width */\n height: number /* Viewport height */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve viewport size\n *\n * @return Viewport size\n */\nexport function getViewportSize(): ViewportSize {\n return {\n width: innerWidth,\n height: innerHeight\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport size\n *\n * @return Viewport size observable\n */\nexport function watchViewportSize(): Observable {\n return fromEvent(window, \"resize\", { passive: true })\n .pipe(\n map(getViewportSize),\n startWith(getViewportSize())\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, combineLatest } from \"rxjs\"\nimport {\n distinctUntilKeyChanged,\n map,\n shareReplay\n} from \"rxjs/operators\"\n\nimport { Header } from \"components\"\n\nimport {\n ViewportOffset,\n watchViewportOffset\n} from \"../offset\"\nimport {\n ViewportSize,\n watchViewportSize\n} from \"../size\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Viewport\n */\nexport interface Viewport {\n offset: ViewportOffset /* Viewport offset */\n size: ViewportSize /* Viewport size */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch at options\n */\ninterface WatchAtOptions {\n header$: Observable
/* Header observable */\n viewport$: Observable /* Viewport observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport\n *\n * @return Viewport observable\n */\nexport function watchViewport(): Observable {\n return combineLatest([\n watchViewportOffset(),\n watchViewportSize()\n ])\n .pipe(\n map(([offset, size]) => ({ offset, size })),\n shareReplay(1)\n )\n}\n\n/**\n * Watch viewport relative to element\n *\n * @param el - Element\n * @param options - Options\n *\n * @return Viewport observable\n */\nexport function watchViewportAt(\n el: HTMLElement, { header$, viewport$ }: WatchAtOptions\n): Observable {\n const size$ = viewport$\n .pipe(\n distinctUntilKeyChanged(\"size\")\n )\n\n /* Compute element offset */\n const offset$ = combineLatest([size$, header$])\n .pipe(\n map((): ViewportOffset => ({\n x: el.offsetLeft,\n y: el.offsetTop\n }))\n )\n\n /* Compute relative viewport, return hot observable */\n return combineLatest([header$, viewport$, offset$])\n .pipe(\n map(([{ height }, { offset, size }, { x, y }]) => ({\n offset: {\n x: offset.x - x,\n y: offset.y - y + height\n },\n size\n })),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, Subject, fromEventPattern } from \"rxjs\"\nimport {\n pluck,\n share,\n switchMapTo,\n tap,\n throttle\n} from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Worker message\n */\nexport interface WorkerMessage {\n type: unknown /* Message type */\n data?: unknown /* Message data */\n}\n\n/**\n * Worker handler\n *\n * @template T - Message type\n */\nexport interface WorkerHandler<\n T extends WorkerMessage\n> {\n tx$: Subject /* Message transmission subject */\n rx$: Observable /* Message receive observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n *\n * @template T - Worker message type\n */\ninterface WatchOptions {\n tx$: Observable /* Message transmission observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch a web worker\n *\n * This function returns an observable that will send all values emitted by the\n * message observable to the web worker. Web worker communication is expected\n * to be bidirectional (request-response) and synchronous. Messages that are\n * emitted during a pending request are throttled, the last one is emitted.\n *\n * @param worker - Web worker\n * @param options - Options\n *\n * @return Worker message observable\n */\nexport function watchWorker(\n worker: Worker, { tx$ }: WatchOptions\n): Observable {\n\n /* Intercept messages from worker-like objects */\n const rx$ = fromEventPattern(next =>\n worker.addEventListener(\"message\", next)\n )\n .pipe(\n pluck(\"data\")\n )\n\n /* Send and receive messages, return hot observable */\n return tx$\n .pipe(\n throttle(() => rx$, { leading: true, trailing: true }),\n tap(message => worker.postMessage(message)),\n switchMapTo(rx$),\n share()\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SearchIndex, SearchTransformFn } from \"integrations\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Feature flags\n */\nexport type Feature =\n | \"tabs\" /* Tabs navigation */\n | \"instant\" /* Instant loading\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Configuration\n */\nexport interface Config {\n base: string /* Base URL */\n features: Feature[] /* Feature flags */\n search: {\n worker: string /* Worker URL */\n index?: Promise /* Promise resolving with index */\n transform?: SearchTransformFn /* Transformation function */\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Ensure that the given value is a valid configuration\n *\n * We could use `jsonschema` or any other schema validation framework, but that\n * would just add more bloat to the bundle, so we'll keep it plain and simple.\n *\n * @param config - Configuration\n *\n * @return Test result\n */\nexport function isConfig(config: any): config is Config {\n return typeof config === \"object\"\n && typeof config.base === \"string\"\n && typeof config.features === \"object\"\n && typeof config.search === \"object\"\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n// tslint:disable no-null-keyword\n\nimport { JSX as JSXInternal } from \"preact\"\nimport { keys } from \"ramda\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * HTML and SVG attributes\n */\ntype Attributes =\n & JSXInternal.HTMLAttributes\n & JSXInternal.SVGAttributes\n & Record\n\n/**\n * Child element\n */\ntype Child =\n | HTMLElement\n | SVGElement\n | Text\n | string\n | number\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create an element\n *\n * @param tagName - HTML or SVG tag\n *\n * @return Element\n */\nfunction createElement(tagName: string): HTMLElement | SVGElement {\n switch (tagName) {\n\n /* SVG elements */\n case \"svg\":\n case \"path\":\n return document.createElementNS(\"http://www.w3.org/2000/svg\", tagName)\n\n /* HTML elements */\n default:\n return document.createElement(tagName)\n }\n}\n\n/**\n * Set an attribute\n *\n * @param el - Element\n * @param name - Attribute name\n * @param value - Attribute value\n */\nfunction setAttribute(\n el: HTMLElement | SVGElement, name: string, value: string) {\n switch (name) {\n\n /* Attributes to be ignored */\n case \"xmlns\":\n break\n\n /* Attributes of SVG elements */\n case \"viewBox\":\n case \"d\":\n if (typeof value !== \"boolean\")\n el.setAttributeNS(null, name, value)\n else if (value)\n el.setAttributeNS(null, name, \"\")\n break\n\n /* Attributes of HTML elements */\n default:\n if (typeof value !== \"boolean\")\n el.setAttribute(name, value)\n else if (value)\n el.setAttribute(name, \"\")\n }\n}\n\n/**\n * Append a child node to an element\n *\n * @param el - Element\n * @param child - Child node(s)\n */\nfunction appendChild(\n el: HTMLElement | SVGElement, child: Child | Child[]\n): void {\n\n /* Handle primitive types (including raw HTML) */\n if (typeof child === \"string\" || typeof child === \"number\") {\n el.innerHTML += child.toString()\n\n /* Handle nodes */\n } else if (child instanceof Node) {\n el.appendChild(child)\n\n /* Handle nested children */\n } else if (Array.isArray(child)) {\n for (const node of child)\n appendChild(el, node)\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * JSX factory\n *\n * @param tagName - HTML or SVG tag\n * @param attributes - HTML attributes\n * @param children - Child elements\n *\n * @return Element\n */\nexport function h(\n tagName: string, attributes: Attributes | null, ...children: Child[]\n): HTMLElement | SVGElement {\n const el = createElement(tagName)\n\n /* Set attributes, if any */\n if (attributes)\n for (const attr of keys(attributes))\n setAttribute(el, attr, attributes[attr])\n\n /* Append child nodes */\n for (const child of children)\n appendChild(el, child)\n\n /* Return element */\n return el\n}\n\n/* ----------------------------------------------------------------------------\n * Namespace\n * ------------------------------------------------------------------------- */\n\nexport declare namespace h {\n namespace JSX {\n type Element = HTMLElement | SVGElement\n type IntrinsicElements = JSXInternal.IntrinsicElements\n }\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, defer, of } from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Cache the last value emitted by an observable in session storage\n *\n * If the key is not found in session storage, the factory is executed and the\n * latest value emitted will automatically be persisted to sessions storage.\n * Note that the values emitted by the returned observable must be serializable\n * as `JSON`, or data will be lost.\n *\n * @template T - Value type\n *\n * @param key - Cache key\n * @param factory - Observable factory\n *\n * @return Value observable\n */\nexport function cache(\n key: string, factory: () => Observable\n): Observable {\n return defer(() => {\n const data = sessionStorage.getItem(key)\n if (data) {\n return of(JSON.parse(data) as T)\n\n /* Retrieve value from observable factory and write to storage */\n } else {\n const value$ = factory()\n value$.subscribe(value => {\n try {\n sessionStorage.setItem(key, JSON.stringify(value))\n } catch (err) {\n /* Uncritical, just swallow */\n }\n })\n\n /* Return value */\n return value$\n }\n })\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { getElementOrThrow } from \"browser\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Translation keys\n */\ntype TranslateKey =\n | \"clipboard.copy\" /* Copy to clipboard */\n | \"clipboard.copied\" /* Copied to clipboard */\n | \"search.config.lang\" /* Search language */\n | \"search.config.pipeline\" /* Search pipeline */\n | \"search.config.separator\" /* Search separator */\n | \"search.result.placeholder\" /* Type to start searching */\n | \"search.result.none\" /* No matching documents */\n | \"search.result.one\" /* 1 matching document */\n | \"search.result.other\" /* # matching documents */\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Translations\n */\nlet lang: Record\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Translate the given key\n *\n * @param key - Key to be translated\n * @param value - Value to be replaced\n *\n * @return Translation\n */\nexport function translate(key: TranslateKey, value?: string): string {\n if (typeof lang === \"undefined\") {\n const el = getElementOrThrow(\"#__lang\")\n lang = JSON.parse(el.textContent!)\n }\n if (typeof lang[key] === \"undefined\") {\n throw new ReferenceError(`Invalid translation: ${key}`)\n }\n return typeof value !== \"undefined\"\n ? lang[key].replace(\"#\", value)\n : lang[key]\n}\n\n/**\n * Truncate a string after the given number of characters\n *\n * This is not a very reasonable approach, since the summaries kind of suck.\n * It would be better to create something more intelligent, highlighting the\n * search occurrences and making a better summary out of it, but this note was\n * written three years ago, so who knows if we'll ever fix it.\n *\n * @param value - Value to be truncated\n * @param n - Number of characters\n *\n * @return Truncated value\n */\nexport function truncate(value: string, n: number): string {\n let i = n\n if (value.length > i) {\n while (value[i] !== \" \" && --i > 0); // tslint:disable-line\n return `${value.substring(0, i)}...`\n }\n return value\n}\n\n/**\n * Round a number for display with source facts\n *\n * This is a reverse engineered version of GitHub's weird rounding algorithm\n * for stars, forks and all other numbers. While all numbers below `1,000` are\n * returned as-is, bigger numbers are converted to fixed numbers:\n *\n * - `1,049` => `1k`\n * - `1,050` => `1.1k`\n * - `1,949` => `1.9k`\n * - `1,950` => `2k`\n *\n * @param value - Original value\n *\n * @return Rounded value\n */\nexport function round(value: number): string {\n if (value > 999) {\n const digits = +((value - 950) % 1000 > 99)\n return `${((value + 0.000001) / 1000).toFixed(digits)}k`\n } else {\n return value.toString()\n }\n}\n\n/**\n * Simple hash function\n *\n * @see https://bit.ly/2wsVjJ4 - Original source\n *\n * @param value - Value to be hashed\n *\n * @return Hash as 32bit integer\n */\nexport function hash(value: string): number {\n let h = 0\n for (let i = 0, len = value.length; i < len; i++) {\n h = ((h << 5) - h) + value.charCodeAt(i)\n h |= 0 // Convert to 32bit integer\n }\n return h\n }\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nexport * from \"./_\"\nexport * from \"./header\"\nexport * from \"./hero\"\nexport * from \"./main\"\nexport * from \"./navigation\"\nexport * from \"./search\"\nexport * from \"./shared\"\nexport * from \"./tabs\"\nexport * from \"./toc\"\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport * as ClipboardJS from \"clipboard\"\nimport { NEVER, Observable, Subject, fromEventPattern } from \"rxjs\"\nimport { mapTo, share, tap } from \"rxjs/operators\"\n\nimport { getElements } from \"browser\"\nimport { renderClipboardButton } from \"templates\"\nimport { translate } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Setup options\n */\ninterface SetupOptions {\n document$: Observable /* Document observable */\n dialog$: Subject /* Dialog subject */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up clipboard\n *\n * This function implements the Clipboard.js integration and injects a button\n * into all code blocks when the document changes.\n *\n * @param options - Options\n *\n * @return Clipboard observable\n */\nexport function setupClipboard(\n { document$, dialog$ }: SetupOptions\n): Observable {\n if (!ClipboardJS.isSupported())\n return NEVER\n\n /* Inject 'copy-to-clipboard' buttons */\n document$.subscribe(() => {\n const blocks = getElements(\"pre > code\")\n blocks.forEach((block, index) => {\n const parent = block.parentElement!\n parent.id = `__code_${index}`\n parent.insertBefore(renderClipboardButton(parent.id), block)\n })\n })\n\n /* Initialize clipboard */\n const clipboard$ = fromEventPattern(next => {\n new ClipboardJS(\".md-clipboard\").on(\"success\", next)\n })\n .pipe(\n share()\n )\n\n /* Display notification for clipboard event */\n clipboard$\n .pipe(\n tap(ev => ev.clearSelection()),\n mapTo(translate(\"clipboard.copied\"))\n )\n .subscribe(dialog$)\n\n /* Return clipboard */\n return clipboard$\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Subject, animationFrameScheduler, of } from \"rxjs\"\nimport {\n delay,\n map,\n observeOn,\n switchMap,\n tap\n} from \"rxjs/operators\"\n\nimport { createElement } from \"browser\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Setup options\n */\ninterface SetupOptions {\n duration?: number /* Display duration (default: 2s) */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up dialog\n *\n * @param options - Options\n *\n * @return Dialog observable\n */\nexport function setupDialog(\n { duration }: SetupOptions = {}\n): Subject {\n const dialog$ = new Subject()\n\n /* Create dialog */\n const dialog = createElement(\"div\") // TODO: improve scoping\n dialog.classList.add(\"md-dialog\", \"md-typeset\")\n\n /* Display dialog */\n dialog$\n .pipe(\n switchMap(text => of(document.body) // useComponent(\"container\")\n .pipe(\n map(container => container.appendChild(dialog)),\n observeOn(animationFrameScheduler),\n delay(1), // Strangley it doesnt work when we push things to the new animation frame...\n tap(el => {\n el.innerHTML = text\n el.setAttribute(\"data-md-state\", \"open\")\n }),\n delay(duration || 2000),\n tap(el => el.removeAttribute(\"data-md-state\")),\n delay(400),\n tap(el => {\n el.innerHTML = \"\"\n el.remove()\n })\n )\n )\n )\n .subscribe()\n\n /* Return dialog */\n return dialog$\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { NEVER, Observable, Subject, fromEvent, merge, of } from \"rxjs\"\nimport { ajax } from \"rxjs//ajax\"\nimport {\n bufferCount,\n catchError,\n debounceTime,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n filter,\n map,\n pluck,\n sample,\n share,\n skip,\n switchMap,\n withLatestFrom\n} from \"rxjs/operators\"\n\nimport {\n Viewport,\n ViewportOffset,\n getElement,\n isAnchorLocation,\n isLocalLocation,\n replaceElement,\n setLocation,\n setLocationHash,\n setToggle,\n setViewportOffset\n} from \"browser\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * History state\n */\ninterface State {\n url: URL /* State URL */\n offset?: ViewportOffset /* State viewport offset */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Setup options\n */\ninterface SetupOptions {\n document$: Subject /* Document subject */\n location$: Subject /* Location subject */\n viewport$: Observable /* Viewport observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up instant loading\n *\n * When fetching, theoretically, we could use `responseType: \"document\"`, but\n * since all MkDocs links are relative, we need to make sure that the current\n * location matches the document we just loaded. Otherwise any relative links\n * in the document could use the old location.\n *\n * This is the reason why we need to synchronize history events and the process\n * of fetching the document for navigation changes (except `popstate` events):\n *\n * 1. Fetch document via `XMLHTTPRequest`\n * 2. Set new location via `history.pushState`\n * 3. Parse and emit fetched document\n *\n * For `popstate` events, we must not use `history.pushState`, or the forward\n * history will be irreversibly overwritten. In case the request fails, the\n * location change is dispatched regularly.\n *\n * @param options - Options\n */\nexport function setupInstantLoading(\n { document$, viewport$, location$ }: SetupOptions\n): void {\n\n /* Disable automatic scroll restoration */\n if (\"scrollRestoration\" in history)\n history.scrollRestoration = \"manual\"\n\n /* Hack: ensure that reloads restore viewport offset */\n fromEvent(window, \"beforeunload\")\n .subscribe(() => {\n history.scrollRestoration = \"auto\"\n })\n\n /* Hack: ensure absolute favicon link to omit 404s on document switch */\n const favicon = getElement(`link[rel=\"shortcut icon\"]`)\n if (typeof favicon !== \"undefined\")\n favicon.href = favicon.href // tslint:disable-line no-self-assignment\n\n /* Intercept link clicks and convert to state change */\n const state$ = fromEvent(document.body, \"click\")\n .pipe(\n filter(ev => !(ev.metaKey || ev.ctrlKey)),\n switchMap(ev => {\n if (ev.target instanceof HTMLElement) {\n const el = ev.target.closest(\"a\")\n if (el && !el.target && isLocalLocation(el)) {\n if (!isAnchorLocation(el))\n ev.preventDefault()\n return of(el)\n }\n }\n return NEVER\n }),\n map(el => ({ url: new URL(el.href) })),\n share()\n )\n\n /* Always close search on link click */\n state$.subscribe(() => {\n setToggle(\"search\", false)\n })\n\n /* Filter state changes to dispatch */\n const push$ = state$\n .pipe(\n filter(({ url }) => !isAnchorLocation(url)),\n share()\n )\n\n /* Intercept popstate events (history back and forward) */\n const pop$ = fromEvent(window, \"popstate\")\n .pipe(\n filter(ev => ev.state !== null),\n map(ev => ({\n url: new URL(location.href),\n offset: ev.state\n })),\n share()\n )\n\n /* Emit location change */\n merge(push$, pop$)\n .pipe(\n distinctUntilChanged((prev, next) => prev.url.href === next.url.href),\n pluck(\"url\")\n )\n .subscribe(location$)\n\n /* Fetch document on location change */\n const ajax$ = location$\n .pipe(\n distinctUntilKeyChanged(\"pathname\"),\n skip(1),\n switchMap(url => ajax({\n url: url.href,\n responseType: \"text\",\n withCredentials: true\n })\n .pipe(\n catchError(() => {\n setLocation(url)\n return NEVER\n })\n )\n )\n )\n\n /* Set new location as soon as the document was fetched */\n push$\n .pipe(\n sample(ajax$)\n )\n .subscribe(({ url }) => {\n history.pushState({}, \"\", url.toString())\n })\n\n /* Parse and emit document */\n const dom = new DOMParser()\n ajax$\n .pipe(\n map(({ response }) => dom.parseFromString(response, \"text/html\"))\n )\n .subscribe(document$)\n\n /* Intercept instant loading */\n const instant$ = merge(push$, pop$)\n .pipe(\n sample(document$)\n )\n\n // TODO: this must be combined with search scroll restoration on mobile\n instant$.subscribe(({ url, offset }) => {\n if (url.hash && !offset) {\n setLocationHash(url.hash)\n } else {\n setViewportOffset(offset || { y: 0 })\n }\n })\n\n /* Replace document metadata */\n instant$\n .pipe(\n withLatestFrom(document$)\n )\n .subscribe(([, { title, head }]) => {\n document.dispatchEvent(new CustomEvent(\"DOMContentSwitch\"))\n document.title = title\n\n /* Replace meta tags */\n for (const selector of [\n `link[rel=\"canonical\"]`,\n `meta[name=\"author\"]`,\n `meta[name=\"description\"]`\n ]) {\n const next = getElement(selector, head)\n const prev = getElement(selector, document.head)\n if (\n typeof next !== \"undefined\" &&\n typeof prev !== \"undefined\"\n ) {\n replaceElement(prev, next)\n }\n }\n })\n\n /* Debounce update of viewport offset */\n viewport$\n .pipe(\n debounceTime(250),\n distinctUntilKeyChanged(\"offset\")\n )\n .subscribe(({ offset }) => {\n history.replaceState(offset, \"\")\n })\n\n /* Set viewport offset from history */\n merge(state$, pop$)\n .pipe(\n bufferCount(2, 1),\n filter(([prev, next]) => {\n return prev.url.pathname === next.url.pathname\n && !isAnchorLocation(next.url)\n }),\n map(([, state]) => state)\n )\n .subscribe(({ offset }) => {\n setViewportOffset(offset || { y: 0 })\n })\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable } from \"rxjs\"\nimport {\n filter,\n map,\n share,\n withLatestFrom\n} from \"rxjs/operators\"\n\nimport {\n Key,\n getActiveElement,\n getElement,\n getElements,\n getToggle,\n isSusceptibleToKeyboard,\n setElementFocus,\n setElementSelection,\n setToggle,\n watchKeyboard\n} from \"browser\"\nimport { useComponent } from \"components\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Keyboard mode\n */\nexport type KeyboardMode =\n | \"global\" /* Global */\n | \"search\" /* Search is open */\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Keyboard\n */\nexport interface Keyboard extends Key {\n mode: KeyboardMode /* Keyboard mode */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up keyboard\n *\n * This function will set up the keyboard handlers and ensure that keys are\n * correctly propagated. Currently there are two modes:\n *\n * - `global`: This mode is active when the search is closed. It is intended\n * to assign hotkeys to specific functions of the site. Currently the search,\n * previous and next page can be triggered.\n *\n * - `search`: This mode is active when the search is open. It maps certain\n * navigational keys to offer search results that can be entirely navigated\n * through keyboard input.\n *\n * The keyboard observable is returned and can be used to monitor the keyboard\n * in order toassign further hotkeys to custom functions.\n *\n * @return Keyboard observable\n */\nexport function setupKeyboard(): Observable {\n const keyboard$ = watchKeyboard()\n .pipe(\n map(key => ({\n mode: getToggle(\"search\") ? \"search\" : \"global\",\n ...key\n })),\n filter(({ mode }) => {\n if (mode === \"global\") {\n const active = getActiveElement()\n if (typeof active !== \"undefined\")\n return !isSusceptibleToKeyboard(active)\n }\n return true\n }),\n share()\n )\n\n /* Set up search keyboard handlers */\n keyboard$\n .pipe(\n filter(({ mode }) => mode === \"search\"),\n withLatestFrom(\n useComponent(\"search-query\"),\n useComponent(\"search-result\")\n )\n )\n .subscribe(([key, query, result]) => {\n const active = getActiveElement()\n switch (key.type) {\n\n /* Enter: prevent form submission */\n case \"Enter\":\n if (active === query)\n key.claim()\n break\n\n /* Escape or Tab: close search */\n case \"Escape\":\n case \"Tab\":\n setToggle(\"search\", false)\n setElementFocus(query, false)\n break\n\n /* Vertical arrows: select previous or next search result */\n case \"ArrowUp\":\n case \"ArrowDown\":\n if (typeof active === \"undefined\") {\n setElementFocus(query)\n } else {\n const els = [query, ...getElements(\"[href]\", result)]\n const i = Math.max(0, (\n Math.max(0, els.indexOf(active)) + els.length + (\n key.type === \"ArrowUp\" ? -1 : +1\n )\n ) % els.length)\n setElementFocus(els[i])\n }\n\n /* Prevent scrolling of page */\n key.claim()\n break\n\n /* All other keys: hand to search query */\n default:\n if (query !== getActiveElement())\n setElementFocus(query)\n }\n })\n\n /* Set up global keyboard handlers */\n keyboard$\n .pipe(\n filter(({ mode }) => mode === \"global\"),\n withLatestFrom(useComponent(\"search-query\"))\n )\n .subscribe(([key, query]) => {\n switch (key.type) {\n\n /* Open search and select query */\n case \"f\":\n case \"s\":\n case \"/\":\n setElementFocus(query)\n setElementSelection(query)\n key.claim()\n break\n\n /* Go to previous page */\n case \"p\":\n case \",\":\n const prev = getElement(\"[href][rel=prev]\")\n if (typeof prev !== \"undefined\")\n prev.click()\n break\n\n /* Go to next page */\n case \"n\":\n case \".\":\n const next = getElement(\"[href][rel=next]\")\n if (typeof next !== \"undefined\")\n next.click()\n break\n }\n })\n\n /* Return keyboard */\n return keyboard$\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { EMPTY, Observable, of } from \"rxjs\"\nimport {\n distinctUntilChanged,\n map,\n scan,\n shareReplay,\n switchMap\n} from \"rxjs/operators\"\n\nimport { getElement, replaceElement } from \"browser\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Component\n */\nexport type Component =\n | \"announce\" /* Announcement bar */\n | \"container\" /* Container */\n | \"header\" /* Header */\n | \"header-title\" /* Header title */\n | \"hero\" /* Hero */\n | \"main\" /* Main area */\n | \"navigation\" /* Navigation */\n | \"search\" /* Search */\n | \"search-query\" /* Search input */\n | \"search-reset\" /* Search reset */\n | \"search-result\" /* Search results */\n | \"skip\" /* Skip link */\n | \"tabs\" /* Tabs */\n | \"toc\" /* Table of contents */\n\n/**\n * Component map\n */\nexport type ComponentMap = {\n [P in Component]?: HTMLElement\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n document$: Observable /* Document observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Component map observable\n */\nlet components$: Observable\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up bindings to components with given names\n *\n * This function will maintain bindings to the elements identified by the given\n * names in-between document switches and update the elements in-place.\n *\n * @param names - Component names\n * @param options - Options\n */\nexport function setupComponents(\n names: Component[], { document$ }: WatchOptions\n): void {\n components$ = document$\n .pipe(\n\n /* Build component map */\n map(document => names.reduce((components, name) => {\n const el = getElement(`[data-md-component=${name}]`, document)\n return {\n ...components,\n ...typeof el !== \"undefined\" ? { [name]: el } : {}\n }\n }, {})),\n\n /* Re-compute component map on document switch */\n scan((prev, next) => {\n for (const name of names) {\n switch (name) {\n\n /* Top-level components: update */\n case \"announce\":\n case \"header-title\":\n case \"container\":\n case \"skip\":\n if (name in prev && typeof prev[name] !== \"undefined\") {\n replaceElement(prev[name]!, next[name]!)\n prev[name] = next[name]\n }\n break\n\n /* All other components: rebind */\n default:\n if (typeof next[name] !== \"undefined\")\n prev[name] = getElement(`[data-md-component=${name}]`)\n else\n delete prev[name]\n }\n }\n return prev\n }),\n\n /* Convert to hot observable */\n shareReplay(1)\n )\n}\n\n/**\n * Retrieve a component\n *\n * The returned observable will only re-emit if the element changed, i.e. if\n * it was replaced from a document which was switched to.\n *\n * @template T - Element type\n *\n * @param name - Component name\n *\n * @return Component observable\n */\nexport function useComponent(\n name: \"search-query\"\n): Observable\nexport function useComponent(\n name: Component\n): Observable\nexport function useComponent(\n name: Component\n): Observable {\n return components$\n .pipe(\n switchMap(components => (\n typeof components[name] !== \"undefined\"\n ? of(components[name] as T)\n : EMPTY\n )),\n distinctUntilChanged()\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set anchor blur\n *\n * @param el - Anchor element\n * @param value - Whether the anchor is blurred\n */\nexport function setAnchorBlur(\n el: HTMLElement, value: boolean\n): void {\n el.setAttribute(\"data-md-state\", value ? \"blur\" : \"\")\n}\n\n/**\n * Reset anchor blur\n *\n * @param el - Anchor element\n */\nexport function resetAnchorBlur(\n el: HTMLElement\n): void {\n el.removeAttribute(\"data-md-state\")\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Set anchor active\n *\n * @param el - Anchor element\n * @param value - Whether the anchor is active\n */\nexport function setAnchorActive(\n el: HTMLElement, value: boolean\n): void {\n el.classList.toggle(\"md-nav__link--active\", value)\n}\n\n/**\n * Reset anchor active\n *\n * @param el - Anchor element\n */\nexport function resetAnchorActive(\n el: HTMLElement\n): void {\n el.classList.remove(\"md-nav__link--active\")\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nexport * from \"./sidebar\"\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h, translate } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * CSS classes\n */\nconst css = {\n container: \"md-clipboard md-icon\"\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Path of `file-search-outline` icon\n */\nconst path =\n \"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 \" +\n \"21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a 'copy-to-clipboard' button\n *\n * @param id - Unique identifier\n *\n * @return Element\n */\nexport function renderClipboardButton(\n id: string\n) {\n return (\n code`}\n >\n \n \n \n \n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SearchResult } from \"integrations/search\"\nimport { h, truncate } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * CSS classes\n */\nconst css = {\n item: \"md-search-result__item\",\n link: \"md-search-result__link\",\n article: \"md-search-result__article md-search-result__article--document\",\n section: \"md-search-result__article\",\n title: \"md-search-result__title\",\n teaser: \"md-search-result__teaser\"\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Path of `content-copy` icon\n */\nconst path =\n \"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H13C12.59,21.75 12.2,21.44 \" +\n \"11.86,21.1C11.53,20.77 11.25,20.4 11,20H6V4H13V9H18V10.18C18.71,10.34 \" +\n \"19.39,10.61 20,11V8L14,2M20.31,18.9C21.64,16.79 21,14 \" +\n \"18.91,12.68C16.8,11.35 14,12 12.69,14.08C11.35,16.19 12,18.97 \" +\n \"14.09,20.3C15.55,21.23 17.41,21.23 \" +\n \"18.88,20.32L22,23.39L23.39,22L20.31,18.9M16.5,19A2.5,2.5 0 0,1 \" +\n \"14,16.5A2.5,2.5 0 0,1 16.5,14A2.5,2.5 0 0,1 19,16.5A2.5,2.5 0 0,1 16.5,19Z\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a search result\n *\n * @param result - Search result\n *\n * @return Element\n */\nexport function renderSearchResult(\n { article, sections }: SearchResult\n) {\n\n /* Render icon */\n const icon = (\n
\n \n \n \n
\n )\n\n /* Render article and sections */\n const children = [article, ...sections].map(document => {\n const { location, title, text } = document\n return (\n \n
\n {!(\"parent\" in document) && icon}\n

{title}

\n {text.length > 0 &&

{truncate(text, 320)}

}\n
\n
\n )\n })\n\n /* Render search result */\n return (\n
  • \n {children}\n
  • \n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SourceFacts } from \"patches/source\"\nimport { h } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * CSS classes\n */\nconst css = {\n facts: \"md-source__facts\",\n fact: \"md-source__fact\"\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render source facts\n *\n * @param facts - Source facts\n *\n * @return Element\n */\nexport function renderSource(\n facts: SourceFacts\n) {\n const children = facts.map(fact => (\n
  • {fact}
  • \n ))\n return (\n
      \n {children}\n
    \n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * CSS classes\n */\nconst css = {\n wrapper: \"md-typeset__scrollwrap\",\n table: \"md-typeset__table\"\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a table inside a wrapper to improve scrolling on mobile\n *\n * @param table - Table element\n *\n * @return Element\n */\nexport function renderTable(\n table: HTMLTableElement\n) {\n return (\n
    \n
    \n {table}\n
    \n
    \n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set sidebar offset\n *\n * @param el - Sidebar element\n * @param value - Sidebar offset\n */\nexport function setSidebarOffset(\n el: HTMLElement, value: number\n): void {\n el.style.top = `${value}px`\n}\n\n/**\n * Reset sidebar offset\n *\n * @param el - Sidebar element\n */\nexport function resetSidebarOffset(\n el: HTMLElement\n): void {\n el.style.top = \"\"\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Set sidebar height\n *\n * @param el - Sidebar element\n * @param value - Sidebar height\n */\nexport function setSidebarHeight(\n el: HTMLElement, value: number\n): void {\n el.style.height = `${value}px`\n}\n\n/**\n * Reset sidebar height\n *\n * @param el - Sidebar element\n */\nexport function resetSidebarHeight(\n el: HTMLElement\n): void {\n el.style.height = \"\"\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nexport * from \"./_\"\nexport * from \"./react\"\nexport * from \"./set\"\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n ArticleDocument,\n SearchDocumentMap,\n SectionDocument,\n setupSearchDocumentMap\n} from \"../document\"\nimport {\n SearchHighlightFactoryFn,\n setupSearchHighlighter\n} from \"../highlighter\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search index configuration\n */\nexport interface SearchIndexConfig {\n lang: string[] /* Search languages */\n separator: string /* Search separator */\n}\n\n/**\n * Search index document\n */\nexport interface SearchIndexDocument {\n location: string /* Document location */\n title: string /* Document title */\n text: string /* Document text */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search index pipeline function\n */\nexport type SearchIndexPipelineFn =\n | \"stemmer\" /* Stemmer */\n | \"stopWordFilter\" /* Stop word filter */\n | \"trimmer\" /* Trimmer */\n\n/**\n * Search index pipeline\n */\nexport type SearchIndexPipeline = SearchIndexPipelineFn[]\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search index\n *\n * This interfaces describes the format of the `search_index.json` file which\n * is automatically built by the MkDocs search plugin.\n */\nexport interface SearchIndex {\n config: SearchIndexConfig /* Search index configuration */\n docs: SearchIndexDocument[] /* Search index documents */\n index?: object | string /* Prebuilt or serialized index */\n pipeline?: SearchIndexPipeline /* Search index pipeline */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search result\n */\nexport interface SearchResult {\n article: ArticleDocument /* Article document */\n sections: SectionDocument[] /* Section documents */\n}\n\n/* ----------------------------------------------------------------------------\n * Class\n * ------------------------------------------------------------------------- */\n\n/**\n * Search\n *\n * Note that `lunr` is injected via Webpack, as it will otherwise also be\n * bundled in the application bundle.\n */\nexport class Search {\n\n /**\n * Search document mapping\n *\n * A mapping of URLs (including hash fragments) to the actual articles and\n * sections of the documentation. The search document mapping must be created\n * regardless of whether the index was prebuilt or not, as `lunr` itself will\n * only store the actual index.\n */\n protected documents: SearchDocumentMap\n\n /**\n * Search highlight factory function\n */\n protected highlight: SearchHighlightFactoryFn\n\n /**\n * The `lunr` search index\n */\n protected index: lunr.Index\n\n /**\n * Create the search integration\n *\n * @param data - Search index\n */\n public constructor({ config, docs, pipeline, index }: SearchIndex) {\n this.documents = setupSearchDocumentMap(docs)\n this.highlight = setupSearchHighlighter(config)\n\n /* If no index was given, create it */\n if (typeof index === \"undefined\") {\n this.index = lunr(function() {\n pipeline = pipeline || [\"trimmer\", \"stopWordFilter\"]\n\n /* Set up pipeline according to configuration */\n this.pipeline.reset()\n for (const fn of pipeline)\n this.pipeline.add(lunr[fn])\n\n /* Set up alternate search languages */\n if (config.lang.length === 1 && config.lang[0] !== \"en\") {\n this.use((lunr as any)[config.lang[0]])\n } else if (config.lang.length > 1) {\n this.use((lunr as any).multiLanguage(...config.lang))\n }\n\n /* Set up fields and reference */\n this.field(\"title\", { boost: 1000 })\n this.field(\"text\")\n this.ref(\"location\")\n\n /* Index documents */\n for (const doc of docs)\n this.add(doc)\n })\n\n /* Prebuilt or serialized index */\n } else {\n this.index = lunr.Index.load(\n typeof index === \"string\"\n ? JSON.parse(index)\n : index\n )\n }\n }\n\n /**\n * Search for matching documents\n *\n * The search index which MkDocs provides is divided up into articles, which\n * contain the whole content of the individual pages, and sections, which only\n * contain the contents of the subsections obtained by breaking the individual\n * pages up at `h1` ... `h6`. As there may be many sections on different pages\n * with identical titles (for example within this very project, e.g. \"Usage\"\n * or \"Installation\"), they need to be put into the context of the containing\n * page. For this reason, section results are grouped within their respective\n * articles which are the top-level results that are returned.\n *\n * @param value - Query value\n *\n * @return Search results\n */\n public query(value: string): SearchResult[] {\n if (value) {\n try {\n\n /* Group sections by containing article */\n const groups = this.index.search(value)\n .reduce((results, result) => {\n const document = this.documents.get(result.ref)\n if (typeof document !== \"undefined\") {\n if (\"parent\" in document) {\n const ref = document.parent.location\n results.set(ref, [...results.get(ref) || [], result])\n } else {\n const ref = document.location\n results.set(ref, results.get(ref) || [])\n }\n }\n return results\n }, new Map())\n\n /* Create highlighter for query */\n const fn = this.highlight(value)\n\n /* Map groups to search documents */\n return [...groups].map(([ref, sections]) => ({\n article: fn(this.documents.get(ref) as ArticleDocument),\n sections: sections.map(section => {\n return fn(this.documents.get(section.ref) as SectionDocument)\n })\n }))\n\n /* Log errors to console (for now) */\n } catch (err) {\n // tslint:disable-next-line no-console\n console.warn(`Invalid query: ${value} – see https://bit.ly/2s3ChXG`)\n }\n }\n\n /* Return nothing in case of error or empty query */\n return []\n }\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport * as escapeHTML from \"escape-html\"\n\nimport { SearchIndexDocument } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * A top-level article\n */\nexport interface ArticleDocument extends SearchIndexDocument {\n linked: boolean /* Whether the section was linked */\n}\n\n/**\n * A section of an article\n */\nexport interface SectionDocument extends SearchIndexDocument {\n parent: ArticleDocument /* Parent article */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search document\n */\nexport type SearchDocument =\n | ArticleDocument\n | SectionDocument\n\n/**\n * Search document mapping\n */\nexport type SearchDocumentMap = Map\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search document mapping\n *\n * @param docs - Search index documents\n *\n * @return Search document map\n */\nexport function setupSearchDocumentMap(\n docs: SearchIndexDocument[]\n): SearchDocumentMap {\n const documents = new Map()\n for (const doc of docs) {\n const [path, hash] = doc.location.split(\"#\")\n\n /* Extract location and title */\n const location = doc.location\n const title = doc.title\n\n /* Escape and cleanup text */\n const text = escapeHTML(doc.text)\n .replace(/\\s+(?=[,.:;!?])/g, \"\")\n .replace(/\\s+/g, \" \")\n\n /* Handle section */\n if (hash) {\n const parent = documents.get(path) as ArticleDocument\n\n /* Ignore first section, override article */\n if (!parent.linked) {\n parent.title = doc.title\n parent.text = text\n parent.linked = true\n\n /* Add subsequent section */\n } else {\n documents.set(location, {\n location,\n title,\n text,\n parent\n })\n }\n\n /* Add article */\n } else {\n documents.set(location, {\n location,\n title,\n text,\n linked: false\n })\n }\n }\n return documents\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SearchIndexConfig } from \"../_\"\nimport { SearchDocument } from \"../document\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search highlight function\n *\n * @template T - Search document type\n *\n * @param document - Search document\n *\n * @return Highlighted document\n */\nexport type SearchHighlightFn = <\n T extends SearchDocument\n>(document: Readonly) => T\n\n/**\n * Search highlight factory function\n *\n * @param value - Query value\n *\n * @return Search highlight function\n */\nexport type SearchHighlightFactoryFn = (value: string) => SearchHighlightFn\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search highlighter\n *\n * @param config - Search index configuration\n *\n * @return Search highlight factory function\n */\nexport function setupSearchHighlighter(\n config: SearchIndexConfig\n): SearchHighlightFactoryFn {\n const separator = new RegExp(config.separator, \"img\")\n const highlight = (_: unknown, data: string, term: string) => {\n return `${data}${term}`\n }\n\n /* Return factory function */\n return (value: string) => {\n value = value\n .replace(/[\\s*+-:~^]+/g, \" \")\n .trim()\n\n /* Create search term match expression */\n const match = new RegExp(`(^|${config.separator})(${\n value\n .replace(/[|\\\\{}()[\\]^$+*?.-]/g, \"\\\\$&\")\n .replace(separator, \"|\")\n })`, \"img\")\n\n /* Highlight document */\n return document => ({\n ...document,\n title: document.title.replace(match, highlight),\n text: document.text.replace(match, highlight)\n })\n }\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search transformation function\n *\n * @param value - Query value\n *\n * @return Transformed query value\n */\nexport type SearchTransformFn = (value: string) => string\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Default transformation function\n *\n * Rogue control characters are filtered before handing the query to the\n * search index, as `lunr` will throw otherwise.\n *\n * @param value - Query value\n *\n * @return Transformed query value\n */\nexport function defaultTransform(value: string): string {\n return value\n .replace(/(?:^|\\s+)[*+-:^~]+(?=\\s+|$)/g, \"\")\n .trim()\n .replace(/\\s+|\\b$/g, \"* \")\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SearchIndex, SearchResult } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search message type\n */\nexport const enum SearchMessageType {\n SETUP, /* Search index setup */\n READY, /* Search index ready */\n QUERY, /* Search query */\n RESULT /* Search results */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * A message containing the data necessary to setup the search index\n */\nexport interface SearchSetupMessage {\n type: SearchMessageType.SETUP /* Message type */\n data: SearchIndex /* Message data */\n}\n\n/**\n * A message indicating the search index is ready\n */\nexport interface SearchReadyMessage {\n type: SearchMessageType.READY /* Message type */\n}\n\n/**\n * A message containing a search query\n */\nexport interface SearchQueryMessage {\n type: SearchMessageType.QUERY /* Message type */\n data: string /* Message data */\n}\n\n/**\n * A message containing results for a search query\n */\nexport interface SearchResultMessage {\n type: SearchMessageType.RESULT /* Message type */\n data: SearchResult[] /* Message data */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * A message exchanged with the search worker\n */\nexport type SearchMessage =\n | SearchSetupMessage\n | SearchReadyMessage\n | SearchQueryMessage\n | SearchResultMessage\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Type guard for search setup messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchSetupMessage(\n message: SearchMessage\n): message is SearchSetupMessage {\n return message.type === SearchMessageType.SETUP\n}\n\n/**\n * Type guard for search ready messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchReadyMessage(\n message: SearchMessage\n): message is SearchReadyMessage {\n return message.type === SearchMessageType.READY\n}\n\n/**\n * Type guard for search query messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchQueryMessage(\n message: SearchMessage\n): message is SearchQueryMessage {\n return message.type === SearchMessageType.QUERY\n}\n\n/**\n * Type guard for search result messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchResultMessage(\n message: SearchMessage\n): message is SearchResultMessage {\n return message.type === SearchMessageType.RESULT\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { identity } from \"ramda\"\nimport { Observable, Subject, asyncScheduler } from \"rxjs\"\nimport {\n map,\n observeOn,\n shareReplay,\n withLatestFrom\n} from \"rxjs/operators\"\n\nimport { WorkerHandler, watchWorker } from \"browser\"\nimport { translate } from \"utilities\"\n\nimport { SearchIndex, SearchIndexPipeline } from \"../../_\"\nimport {\n SearchMessage,\n SearchMessageType,\n SearchSetupMessage,\n isSearchResultMessage\n} from \"../message\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Setup options\n */\ninterface SetupOptions {\n index$: Observable /* Search index observable */\n base$: Observable /* Location base observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up search index\n *\n * @param data - Search index\n *\n * @return Search index\n */\nfunction setupSearchIndex(\n { config, docs, index }: SearchIndex\n): SearchIndex {\n\n /* Override default language with value from translation */\n if (config.lang.length === 1 && config.lang[0] === \"en\")\n config.lang = [translate(\"search.config.lang\")]\n\n /* Override default separator with value from translation */\n if (config.separator === \"[\\s\\-]+\")\n config.separator = translate(\"search.config.separator\")\n\n /* Set pipeline from translation */\n const pipeline = translate(\"search.config.pipeline\")\n .split(/\\s*,\\s*/)\n .filter(identity) as SearchIndexPipeline\n\n /* Return search index after defaulting */\n return { config, docs, index, pipeline }\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up search web worker\n *\n * This function will create a web worker to set up and query the search index\n * which is done using `lunr`. The index must be passed as an observable to\n * enable hacks like _localsearch_ via search index embedding as JSON.\n *\n * @param url - Worker URL\n * @param options - Options\n *\n * @return Worker handler\n */\nexport function setupSearchWorker(\n url: string, { index$, base$ }: SetupOptions\n): WorkerHandler {\n const worker = new Worker(url)\n\n /* Create communication channels and resolve relative links */\n const tx$ = new Subject()\n const rx$ = watchWorker(worker, { tx$ })\n .pipe(\n withLatestFrom(base$),\n map(([message, base]) => {\n if (isSearchResultMessage(message)) {\n for (const { article, sections } of message.data) {\n article.location = `${base}/${article.location}`\n for (const section of sections)\n section.location = `${base}/${section.location}`\n }\n }\n return message\n }),\n shareReplay(1)\n )\n\n /* Set up search index */\n index$\n .pipe(\n map(index => ({\n type: SearchMessageType.SETUP,\n data: setupSearchIndex(index)\n })),\n observeOn(asyncScheduler)\n )\n .subscribe(tx$.next.bind(tx$))\n\n /* Return worker handler */\n return { tx$, rx$ }\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nexport * from \"./_\"\nexport * from \"./react\"\nexport * from \"./set\"\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n MonoTypeOperatorFunction,\n Observable,\n animationFrameScheduler,\n combineLatest,\n pipe\n} from \"rxjs\"\nimport {\n distinctUntilChanged,\n finalize,\n map,\n observeOn,\n tap,\n withLatestFrom\n} from \"rxjs/operators\"\n\nimport { Viewport } from \"browser\"\n\nimport { Header } from \"../../../header\"\nimport { Main } from \"../../../main\"\nimport { Sidebar } from \"../_\"\nimport {\n resetSidebarHeight,\n resetSidebarOffset,\n setSidebarHeight,\n setSidebarOffset\n} from \"../set\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n main$: Observable
    /* Main area observable */\n viewport$: Observable /* Viewport observable */\n}\n\n/**\n * Apply options\n */\ninterface ApplyOptions {\n header$: Observable
    /* Header observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch sidebar\n *\n * This function returns an observable that computes the visual parameters of\n * the sidebar which depends on the vertical viewport offset, as well as the\n * height of the main area. When the page is scrolled beyond the header, the\n * sidebar is locked and fills the remaining space.\n *\n * @param el - Sidebar element\n * @param options - Options\n *\n * @return Sidebar observable\n */\nexport function watchSidebar(\n el: HTMLElement, { main$, viewport$ }: WatchOptions\n): Observable {\n const adjust = el.parentElement!.offsetTop\n - el.parentElement!.parentElement!.offsetTop\n\n /* Compute the sidebar's available height and if it should be locked */\n return combineLatest([main$, viewport$])\n .pipe(\n map(([{ offset, height }, { offset: { y } }]) => {\n height = height\n + Math.min(adjust, Math.max(0, y - offset))\n - adjust\n return {\n height,\n lock: y >= offset + adjust\n }\n }),\n distinctUntilChanged((a, b) => {\n return a.height === b.height\n && a.lock === b.lock\n })\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Apply sidebar\n *\n * @param el - Sidebar element\n * @param options - Options\n *\n * @return Operator function\n */\nexport function applySidebar(\n el: HTMLElement, { header$ }: ApplyOptions\n): MonoTypeOperatorFunction {\n return pipe(\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n withLatestFrom(header$),\n tap(([{ height, lock }, { height: offset }]) => {\n setSidebarHeight(el, height)\n\n /* Set offset in locked state depending on header height */\n if (lock)\n setSidebarOffset(el, offset)\n else\n resetSidebarOffset(el)\n }),\n\n /* Re-map to sidebar */\n map(([sidebar]) => sidebar),\n\n /* Reset on complete or error */\n finalize(() => {\n resetSidebarOffset(el)\n resetSidebarHeight(el)\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nexport * from \"./_\"\nexport * from \"./anchor\"\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n OperatorFunction,\n combineLatest,\n of,\n pipe\n} from \"rxjs\"\nimport { map, switchMap } from \"rxjs/operators\"\n\nimport { Viewport, getElements } from \"browser\"\n\nimport { Header } from \"../../header\"\nimport { Main } from \"../../main\"\nimport {\n Sidebar,\n applySidebar,\n watchSidebar\n} from \"../../shared\"\nimport {\n AnchorList,\n applyAnchorList,\n watchAnchorList\n} from \"../anchor\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Table of contents for [tablet -]\n */\ninterface TableOfContentsBelowTablet {} // tslint:disable-line\n\n/**\n * Table of contents for [tablet +]\n */\ninterface TableOfContentsAboveTablet {\n sidebar: Sidebar /* Sidebar */\n anchors: AnchorList /* Anchor list */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Table of contents\n */\nexport type TableOfContents =\n | TableOfContentsBelowTablet\n | TableOfContentsAboveTablet\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n header$: Observable
    /* Header observable */\n main$: Observable
    /* Main area observable */\n viewport$: Observable /* Viewport observable */\n tablet$: Observable /* Tablet media observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount table of contents from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountTableOfContents(\n { header$, main$, viewport$, tablet$ }: MountOptions\n): OperatorFunction {\n return pipe(\n switchMap(el => tablet$\n .pipe(\n switchMap(tablet => {\n\n /* [tablet +]: Mount table of contents in sidebar */\n if (tablet) {\n const els = getElements(\".md-nav__link\", el)\n\n /* Watch and apply sidebar */\n const sidebar$ = watchSidebar(el, { main$, viewport$ })\n .pipe(\n applySidebar(el, { header$ })\n )\n\n /* Watch and apply anchor list (scroll spy) */\n const anchors$ = watchAnchorList(els, { header$, viewport$ })\n .pipe(\n applyAnchorList(els)\n )\n\n /* Combine into single hot observable */\n return combineLatest([sidebar$, anchors$])\n .pipe(\n map(([sidebar, anchors]) => ({ sidebar, anchors }))\n )\n\n /* [tablet -]: Unmount table of contents */\n } else {\n return of({})\n }\n })\n )\n )\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { reverse } from \"ramda\"\nimport {\n MonoTypeOperatorFunction,\n Observable,\n animationFrameScheduler,\n combineLatest,\n pipe\n} from \"rxjs\"\nimport {\n bufferCount,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n finalize,\n map,\n observeOn,\n scan,\n startWith,\n switchMap,\n tap\n} from \"rxjs/operators\"\n\nimport { Viewport, getElement, watchElementSize } from \"browser\"\n\nimport { Header } from \"../../../header\"\nimport { AnchorList } from \"../_\"\nimport {\n resetAnchorActive,\n resetAnchorBlur,\n setAnchorActive,\n setAnchorBlur\n} from \"../set\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n header$: Observable
    /* Header observable */\n viewport$: Observable /* Viewport observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch anchor list\n *\n * This is effectively a scroll-spy implementation which will account for the\n * fixed header and automatically re-calculate anchor offsets when the viewport\n * is resized. The returned observable will only emit if the anchor list needs\n * to be repainted.\n *\n * This implementation tracks an anchor element's entire path starting from its\n * level up to the top-most anchor element, e.g. `[h3, h2, h1]`. Although the\n * Material theme currently doesn't make use of this information, it enables\n * the styling of the entire hierarchy through customization.\n *\n * Note that the current anchor is the last item of the `prev` anchor list.\n *\n * @param els - Anchor elements\n * @param options - Options\n *\n * @return Anchor list observable\n */\nexport function watchAnchorList(\n els: HTMLAnchorElement[], { header$, viewport$ }: WatchOptions\n): Observable {\n const table = new Map()\n for (const el of els) {\n const id = decodeURIComponent(el.hash.substring(1))\n const target = getElement(`[id=\"${id}\"]`)\n if (typeof target !== \"undefined\")\n table.set(el, target)\n }\n\n /* Compute necessary adjustment for header */\n const adjust$ = header$\n .pipe(\n map(header => 18 + header.height)\n )\n\n /* Compute partition of previous and next anchors */\n const partition$ = watchElementSize(document.body)\n .pipe(\n distinctUntilKeyChanged(\"height\"),\n\n /* Build index to map anchor paths to vertical offsets */\n map(() => {\n let path: HTMLAnchorElement[] = []\n return [...table].reduce((index, [anchor, target]) => {\n while (path.length) {\n const last = table.get(path[path.length - 1])!\n if (last.tagName >= target.tagName) {\n path.pop()\n } else {\n break\n }\n }\n\n /* If the current anchor is hidden, continue with its parent */\n let offset = target.offsetTop\n while (!offset && target.parentElement) {\n target = target.parentElement\n offset = target.offsetTop\n }\n\n /* Map reversed anchor path to vertical offset */\n return index.set(\n reverse(path = [...path, anchor]),\n offset\n )\n }, new Map())\n }),\n\n /* Re-compute partition when viewport offset changes */\n switchMap(index => combineLatest([adjust$, viewport$])\n .pipe(\n scan(([prev, next], [adjust, { offset: { y } }]) => {\n\n /* Look forward */\n while (next.length) {\n const [, offset] = next[0]\n if (offset - adjust < y) {\n prev = [...prev, next.shift()!]\n } else {\n break\n }\n }\n\n /* Look backward */\n while (prev.length) {\n const [, offset] = prev[prev.length - 1]\n if (offset - adjust >= y) {\n next = [prev.pop()!, ...next]\n } else {\n break\n }\n }\n\n /* Return partition */\n return [prev, next]\n }, [[], [...index]]),\n distinctUntilChanged((a, b) => {\n return a[0] === b[0]\n && a[1] === b[1]\n })\n )\n )\n )\n\n /* Compute and return anchor list migrations */\n return partition$\n .pipe(\n map(([prev, next]) => ({\n prev: prev.map(([path]) => path),\n next: next.map(([path]) => path)\n })),\n\n /* Extract anchor list migrations */\n startWith({ prev: [], next: [] }),\n bufferCount(2, 1),\n map(([a, b]) => {\n\n /* Moving down */\n if (a.prev.length < b.prev.length) {\n return {\n prev: b.prev.slice(Math.max(0, a.prev.length - 1), b.prev.length),\n next: []\n }\n\n /* Moving up */\n } else {\n return {\n prev: b.prev.slice(-1),\n next: b.next.slice(0, b.next.length - a.next.length)\n }\n }\n })\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Apply anchor list\n *\n * @param els - Anchor elements\n *\n * @return Operator function\n */\nexport function applyAnchorList(\n els: HTMLAnchorElement[]\n): MonoTypeOperatorFunction {\n return pipe(\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n tap(({ prev, next }) => {\n\n /* Look forward */\n for (const [el] of next) {\n resetAnchorActive(el)\n resetAnchorBlur(el)\n }\n\n /* Look backward */\n prev.forEach(([el], index) => {\n setAnchorActive(el, index === prev.length - 1)\n setAnchorBlur(el, true)\n })\n }),\n\n /* Reset on complete or error */\n finalize(() => {\n for (const el of els) {\n resetAnchorActive(el)\n resetAnchorBlur(el)\n }\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, OperatorFunction, combineLatest, pipe } from \"rxjs\"\nimport {\n filter,\n map,\n mapTo,\n sample,\n startWith,\n switchMap,\n take\n} from \"rxjs/operators\"\n\nimport { WorkerHandler } from \"browser\"\nimport {\n SearchMessage,\n SearchResult,\n isSearchQueryMessage,\n isSearchReadyMessage\n} from \"integrations/search\"\n\nimport { SearchQuery } from \"../query\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search status\n */\nexport type SearchStatus =\n | \"waiting\" /* Search waiting for initialization */\n | \"ready\" /* Search ready */\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search\n */\nexport interface Search {\n status: SearchStatus /* Search status */\n query: SearchQuery /* Search query */\n result: SearchResult[] /* Search result list */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n query$: Observable /* Search query observable */\n reset$: Observable /* Search reset observable */\n result$: Observable /* Search result observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search from source observable\n *\n * @param handler - Worker handler\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountSearch(\n { rx$, tx$ }: WorkerHandler,\n { query$, reset$, result$ }: MountOptions\n): OperatorFunction {\n return pipe(\n switchMap(() => {\n\n /* Compute search status */\n const status$ = rx$\n .pipe(\n filter(isSearchReadyMessage),\n mapTo(\"ready\"),\n startWith(\"waiting\")\n ) as Observable\n\n /* Re-emit the latest query when search is ready */\n tx$\n .pipe(\n filter(isSearchQueryMessage),\n sample(status$),\n take(1)\n )\n .subscribe(tx$.next.bind(tx$))\n\n /* Combine into single observable */\n return combineLatest([status$, query$, result$, reset$])\n .pipe(\n map(([status, query, result]) => ({\n status,\n query,\n result\n }))\n )\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { OperatorFunction, pipe } from \"rxjs\"\nimport {\n distinctUntilKeyChanged,\n map,\n switchMap\n} from \"rxjs/operators\"\n\nimport { WorkerHandler, setToggle } from \"browser\"\nimport {\n SearchMessage,\n SearchMessageType,\n SearchQueryMessage,\n SearchTransformFn\n} from \"integrations\"\n\nimport { watchSearchQuery } from \"../react\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search query\n */\nexport interface SearchQuery {\n value: string /* Query value */\n focus: boolean /* Query focus */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n transform?: SearchTransformFn /* Transformation function */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search query from source observable\n *\n * @param handler - Worker handler\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountSearchQuery(\n { tx$ }: WorkerHandler, options: MountOptions = {}\n): OperatorFunction {\n return pipe(\n switchMap(el => {\n const query$ = watchSearchQuery(el, options)\n\n /* Subscribe worker to search query */\n query$\n .pipe(\n distinctUntilKeyChanged(\"value\"),\n map(({ value }): SearchQueryMessage => ({\n type: SearchMessageType.QUERY,\n data: value\n }))\n )\n .subscribe(tx$.next.bind(tx$))\n\n /* Toggle search on focus */\n query$\n .pipe(\n distinctUntilKeyChanged(\"focus\")\n )\n .subscribe(({ focus }) => {\n if (focus)\n setToggle(\"search\", focus)\n })\n\n /* Return search query */\n return query$\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, combineLatest, fromEvent, merge } from \"rxjs\"\nimport {\n delay,\n distinctUntilChanged,\n map,\n startWith\n} from \"rxjs/operators\"\n\nimport { watchElementFocus } from \"browser\"\nimport { SearchTransformFn, defaultTransform } from \"integrations\"\n\nimport { SearchQuery } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n transform?: SearchTransformFn /* Transformation function */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch search query\n *\n * Note that the focus event which triggers re-reading the current query value\n * is delayed by `1ms` so the input's empty state is allowed to propagate.\n *\n * @param el - Search query element\n * @param options - Options\n *\n * @return Search query observable\n */\nexport function watchSearchQuery(\n el: HTMLInputElement, { transform }: WatchOptions = {}\n): Observable {\n const fn = transform || defaultTransform\n\n /* Intercept keyboard events */\n const value$ = merge(\n fromEvent(el, \"keyup\"),\n fromEvent(el, \"focus\").pipe(delay(1))\n )\n .pipe(\n map(() => fn(el.value)),\n startWith(fn(el.value)),\n distinctUntilChanged()\n )\n\n /* Intercept focus events */\n const focus$ = watchElementFocus(el)\n\n /* Combine into single observable */\n return combineLatest([value$, focus$])\n .pipe(\n map(([value, focus]) => ({ value, focus }))\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { OperatorFunction, pipe } from \"rxjs\"\nimport {\n mapTo,\n startWith,\n switchMap,\n switchMapTo,\n tap\n} from \"rxjs/operators\"\n\nimport { setElementFocus } from \"browser\"\n\nimport { useComponent } from \"../../../_\"\nimport { watchSearchReset } from \"../react\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search reset from source observable\n *\n * @return Operator function\n */\nexport function mountSearchReset(): OperatorFunction {\n return pipe(\n switchMap(el => watchSearchReset(el)\n .pipe(\n switchMapTo(useComponent(\"search-query\")),\n tap(setElementFocus),\n mapTo(undefined)\n )\n ),\n startWith(undefined)\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent } from \"rxjs\"\nimport { mapTo } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch search reset\n *\n * @param el - Search reset element\n *\n * @return Search reset observable\n */\nexport function watchSearchReset(\n el: HTMLElement\n): Observable {\n return fromEvent(el, \"click\")\n .pipe(\n mapTo(undefined)\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { translate } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set number of search results\n *\n * @param el - Search result metadata element\n * @param value - Number of results\n */\nexport function setSearchResultMeta(\n el: HTMLElement, value: number\n): void {\n switch (value) {\n\n /* No results */\n case 0:\n el.textContent = translate(\"search.result.none\")\n break\n\n /* One result */\n case 1:\n el.textContent = translate(\"search.result.one\")\n break\n\n /* Multiple result */\n default:\n el.textContent = translate(\"search.result.other\", value.toString())\n }\n}\n\n/**\n * Reset number of search results\n *\n * @param el - Search result metadata element\n */\nexport function resetSearchResultMeta(\n el: HTMLElement\n): void {\n el.textContent = translate(\"search.result.placeholder\")\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Add an element to the search result list\n *\n * @param el - Search result list element\n * @param child - Search result element\n */\nexport function addToSearchResultList(\n el: HTMLElement, child: Element\n): void {\n el.appendChild(child)\n}\n\n/**\n * Reset search result list\n *\n * @param el - Search result list element\n */\nexport function resetSearchResultList(\n el: HTMLElement\n): void {\n el.innerHTML = \"\"\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n MonoTypeOperatorFunction,\n Observable,\n animationFrameScheduler,\n pipe\n} from \"rxjs\"\nimport {\n finalize,\n map,\n mapTo,\n observeOn,\n scan,\n switchMap,\n withLatestFrom\n} from \"rxjs/operators\"\n\nimport { getElementOrThrow } from \"browser\"\nimport { SearchResult } from \"integrations/search\"\nimport { renderSearchResult } from \"templates\"\n\nimport { SearchQuery } from \"../../query\"\nimport {\n addToSearchResultList,\n resetSearchResultList,\n resetSearchResultMeta,\n setSearchResultMeta\n} from \"../set\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Apply options\n */\ninterface ApplyOptions {\n query$: Observable /* Search query observable */\n ready$: Observable /* Search ready observable */\n fetch$: Observable /* Result fetch observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Apply search results\n *\n * This function will perform a lazy rendering of the search results, depending\n * on the vertical offset of the search result container. When the scroll offset\n * reaches the bottom of the element, more results are fetched and rendered.\n *\n * @param el - Search result element\n * @param options - Options\n *\n * @return Operator function\n */\nexport function applySearchResult(\n el: HTMLElement, { query$, ready$, fetch$ }: ApplyOptions\n): MonoTypeOperatorFunction {\n const list = getElementOrThrow(\".md-search-result__list\", el)\n const meta = getElementOrThrow(\".md-search-result__meta\", el)\n return pipe(\n\n /* Apply search result metadata */\n withLatestFrom(query$, ready$),\n map(([result, query]) => {\n if (query.value) {\n setSearchResultMeta(meta, result.length)\n } else {\n resetSearchResultMeta(meta)\n }\n return result\n }),\n\n /* Apply search result list */\n switchMap(result => fetch$\n .pipe(\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n scan(index => {\n const container = el.parentElement!\n while (index < result.length) {\n addToSearchResultList(list, renderSearchResult(result[index++]))\n if (container.scrollHeight - container.offsetHeight > 16)\n break\n }\n return index\n }, 0),\n\n /* Re-map to search result */\n mapTo(result),\n\n /* Reset on complete or error */\n finalize(() => {\n resetSearchResultList(list)\n })\n )\n )\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { identity } from \"ramda\"\nimport { Observable, OperatorFunction, pipe } from \"rxjs\"\nimport {\n distinctUntilChanged,\n filter,\n map,\n mapTo,\n pluck,\n startWith,\n switchMap\n} from \"rxjs/operators\"\n\nimport { WorkerHandler, watchElementOffset } from \"browser\"\nimport {\n SearchMessage,\n SearchResult,\n isSearchReadyMessage,\n isSearchResultMessage\n} from \"integrations\"\n\nimport { SearchQuery } from \"../../query\"\nimport { applySearchResult } from \"../react\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n query$: Observable /* Search query observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search result from source observable\n *\n * @param handler - Worker handler\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountSearchResult(\n { rx$ }: WorkerHandler, { query$ }: MountOptions\n): OperatorFunction {\n return pipe(\n switchMap(el => {\n const container = el.parentElement!\n\n /* Compute if search is ready */\n const ready$ = rx$\n .pipe(\n filter(isSearchReadyMessage),\n mapTo(true)\n )\n\n /* Compute whether there are more search results to fetch */\n const fetch$ = watchElementOffset(container)\n .pipe(\n map(({ y }) => {\n return y >= container.scrollHeight - container.offsetHeight - 16\n }),\n distinctUntilChanged(),\n filter(identity)\n )\n\n /* Apply search results */\n return rx$\n .pipe(\n filter(isSearchResultMessage),\n pluck(\"data\"),\n applySearchResult(el, { query$, ready$, fetch$ }),\n startWith([])\n )\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, OperatorFunction, combineLatest, pipe } from \"rxjs\"\nimport {\n distinctUntilChanged,\n filter,\n map,\n shareReplay,\n startWith,\n switchMap,\n withLatestFrom\n} from \"rxjs/operators\"\n\nimport {\n Viewport,\n getElement,\n watchViewportAt\n} from \"browser\"\n\nimport { useComponent } from \"../../_\"\nimport {\n applyHeaderType,\n watchHeader\n} from \"../react\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Header type\n */\nexport type HeaderType =\n | \"site\" /* Header shows site title */\n | \"page\" /* Header shows page title */\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Header\n */\nexport interface Header {\n type: HeaderType /* Header type */\n sticky: boolean /* Header stickyness */\n height: number /* Header visible height */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n document$: Observable /* Document observable */\n viewport$: Observable /* Viewport observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount header from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountHeader(\n { document$, viewport$ }: MountOptions\n): OperatorFunction {\n return pipe(\n switchMap(el => {\n const header$ = watchHeader(el, { document$ })\n\n /* Compute whether the header should switch to page header */\n const type$ = useComponent(\"main\")\n .pipe(\n map(main => getElement(\"h1, h2, h3, h4, h5, h6\", main)!),\n filter(hx => typeof hx !== \"undefined\"),\n withLatestFrom(useComponent(\"header-title\")),\n switchMap(([hx, title]) => watchViewportAt(hx, { header$, viewport$ })\n .pipe(\n map(({ offset: { y } }) => {\n return y >= hx.offsetHeight ? \"page\" : \"site\"\n }),\n distinctUntilChanged(),\n applyHeaderType(title)\n )\n ),\n startWith(\"site\")\n )\n\n /* Combine into single observable */\n return combineLatest([header$, type$])\n .pipe(\n map(([header, type]): Header => ({ type, ...header })),\n shareReplay(1)\n )\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n MonoTypeOperatorFunction,\n Observable,\n animationFrameScheduler,\n of,\n pipe\n} from \"rxjs\"\nimport {\n distinctUntilChanged,\n finalize,\n map,\n observeOn,\n shareReplay,\n switchMap,\n tap\n} from \"rxjs/operators\"\n\nimport { watchElementSize } from \"browser\"\n\nimport { Header, HeaderType } from \"../_\"\nimport {\n resetHeaderTitleActive,\n setHeaderTitleActive\n} from \"../set\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n document$: Observable /* Document observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch header\n *\n * @param el - Header element\n *\n * @return Header observable\n */\nexport function watchHeader(\n el: HTMLElement, { document$ }: WatchOptions\n): Observable> {\n return document$\n .pipe(\n map(() => {\n const styles = getComputedStyle(el)\n return [\n \"sticky\", /* Modern browsers */\n \"-webkit-sticky\" /* Safari */\n ].includes(styles.position)\n }),\n distinctUntilChanged(),\n switchMap(sticky => {\n if (sticky) {\n return watchElementSize(el)\n .pipe(\n map(({ height }) => ({\n sticky: true,\n height\n }))\n )\n } else {\n return of({\n sticky: false,\n height: 0\n })\n }\n }),\n shareReplay(1)\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Apply header title type\n *\n * @param el - Header title element\n *\n * @return Operator function\n */\nexport function applyHeaderType(\n el: HTMLElement\n): MonoTypeOperatorFunction {\n return pipe(\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n tap(type => {\n setHeaderTitleActive(el, type === \"page\")\n }),\n\n /* Reset on complete or error */\n finalize(() => {\n resetHeaderTitleActive(el)\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set header title active\n *\n * @param el - Header title element\n * @param value - Whether the title is shown\n */\nexport function setHeaderTitleActive(\n el: HTMLElement, value: boolean\n): void {\n el.setAttribute(\"data-md-state\", value ? \"active\" : \"\")\n}\n\n/**\n * Reset header title active\n *\n * @param el - Header title element\n */\nexport function resetHeaderTitleActive(\n el: HTMLElement\n): void {\n el.removeAttribute(\"data-md-state\")\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, OperatorFunction, pipe } from \"rxjs\"\nimport {\n distinctUntilKeyChanged,\n map,\n switchMap\n} from \"rxjs/operators\"\n\nimport { Viewport, watchViewportAt } from \"browser\"\n\nimport { Header } from \"../../header\"\nimport { applyHero } from \"../react\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Hero\n */\nexport interface Hero {\n hidden: boolean /* Whether the hero is hidden */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n header$: Observable
    /* Header observable */\n viewport$: Observable /* Viewport observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount hero from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountHero(\n { header$, viewport$ }: MountOptions\n): OperatorFunction {\n return pipe(\n switchMap(el => watchViewportAt(el, { header$, viewport$ })\n .pipe(\n map(({ offset: { y } }) => ({ hidden: y >= 20 })),\n distinctUntilKeyChanged(\"hidden\"),\n applyHero(el)\n )\n )\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n MonoTypeOperatorFunction,\n animationFrameScheduler,\n pipe\n} from \"rxjs\"\nimport { finalize, observeOn, tap } from \"rxjs/operators\"\n\nimport { Hero } from \"../_\"\nimport {\n resetHeroHidden,\n setHeroHidden\n} from \"../set\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Apply hero\n *\n * @param el - Hero element\n *\n * @return Operator function\n */\nexport function applyHero(\n el: HTMLElement\n): MonoTypeOperatorFunction {\n return pipe(\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n tap(({ hidden }) => {\n setHeroHidden(el, hidden)\n }),\n\n /* Reset on complete or error */\n finalize(() => {\n resetHeroHidden(el)\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set hero hidden\n *\n * @param el - Hero element\n * @param value - Whether the element is hidden\n */\nexport function setHeroHidden(\n el: HTMLElement, value: boolean\n): void {\n el.setAttribute(\"data-md-state\", value ? \"hidden\" : \"\")\n}\n\n/**\n * Reset hero hidden\n *\n * @param el - Hero element\n */\nexport function resetHeroHidden(\n el: HTMLElement\n): void {\n el.removeAttribute(\"data-md-state\")\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, OperatorFunction, Subject, pipe } from \"rxjs\"\nimport { distinctUntilKeyChanged, switchMap, tap } from \"rxjs/operators\"\n\nimport { Viewport } from \"browser\"\n\nimport { useComponent } from \"../../_\"\nimport { Header } from \"../../header\"\nimport {\n applyHeaderShadow,\n watchMain\n} from \"../react\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Main area\n */\nexport interface Main {\n offset: number /* Main area top offset */\n height: number /* Main area visible height */\n active: boolean /* Scrolled past top offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n header$: Observable
    /* Header observable */\n viewport$: Observable /* Viewport observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount main area from source observable\n *\n * The header must be connected to the main area observable outside of the\n * operator function, as the header will persist in-between document switches\n * while the main area is replaced. However, the header observable must be\n * passed to this function, so we connect both via a long-living subject.\n *\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountMain(\n { header$, viewport$ }: MountOptions\n): OperatorFunction {\n const main$ = new Subject
    ()\n\n /* Connect to main area observable via long-living subject */\n useComponent(\"header\")\n .pipe(\n switchMap(header => main$\n .pipe(\n distinctUntilKeyChanged(\"active\"),\n applyHeaderShadow(header)\n )\n )\n )\n .subscribe()\n\n /* Return operator */\n return pipe(\n switchMap(el => watchMain(el, { header$, viewport$ })),\n tap(main => main$.next(main))\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n MonoTypeOperatorFunction,\n Observable,\n animationFrameScheduler,\n combineLatest,\n pipe\n} from \"rxjs\"\nimport {\n distinctUntilChanged,\n distinctUntilKeyChanged,\n finalize,\n map,\n observeOn,\n pluck,\n shareReplay,\n switchMap,\n tap\n} from \"rxjs/operators\"\n\nimport { Viewport, watchElementSize } from \"browser\"\n\nimport { Header } from \"../../header\"\nimport { Main } from \"../_\"\nimport {\n resetHeaderShadow,\n setHeaderShadow\n} from \"../set\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n header$: Observable
    /* Header observable */\n viewport$: Observable /* Viewport observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch main area\n *\n * This function returns an observable that computes the visual parameters of\n * the main area which depends on the viewport vertical offset and height, as\n * well as the height of the header element, if the header is fixed.\n *\n * @param el - Main area element\n * @param options - Options\n *\n * @return Main area observable\n */\nexport function watchMain(\n el: HTMLElement, { header$, viewport$ }: WatchOptions\n): Observable
    {\n\n /* Compute necessary adjustment for header */\n const adjust$ = header$\n .pipe(\n pluck(\"height\"),\n distinctUntilChanged(),\n shareReplay(1)\n )\n\n /* Compute the main area's top and bottom borders */\n const border$ = adjust$\n .pipe(\n switchMap(() => watchElementSize(el)\n .pipe(\n map(({ height }) => ({\n top: el.offsetTop,\n bottom: el.offsetTop + height\n }))\n )\n ),\n distinctUntilKeyChanged(\"bottom\"),\n shareReplay(1)\n )\n\n /* Compute the main area's offset, visible height and if we scrolled past */\n return combineLatest([adjust$, border$, viewport$])\n .pipe(\n map(([header, { top, bottom }, { offset: { y }, size: { height } }]) => {\n height = Math.max(0, height\n - Math.max(0, top - y, header)\n - Math.max(0, height + y - bottom)\n )\n return {\n offset: top - header,\n height,\n active: top - header <= y\n }\n }),\n distinctUntilChanged
    ((a, b) => {\n return a.offset === b.offset\n && a.height === b.height\n && a.active === b.active\n })\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Apply header shadow\n *\n * @param el - Header element\n *\n * @return Operator function\n */\nexport function applyHeaderShadow(\n el: HTMLElement\n): MonoTypeOperatorFunction
    {\n return pipe(\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n tap(({ active }) => {\n setHeaderShadow(el, active)\n }),\n\n /* Reset on complete or error */\n finalize(() => {\n resetHeaderShadow(el)\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set header shadow\n *\n * @param el - Header element\n * @param value - Whether the shadow is shown\n */\nexport function setHeaderShadow(\n el: HTMLElement, value: boolean\n): void {\n el.setAttribute(\"data-md-state\", value ? \"shadow\" : \"\")\n}\n\n/**\n * Reset header shadow\n *\n * @param el - Header element\n */\nexport function resetHeaderShadow(\n el: HTMLElement\n): void {\n el.removeAttribute(\"data-md-state\")\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, OperatorFunction, of, pipe } from \"rxjs\"\nimport {\n distinctUntilKeyChanged,\n map,\n switchMap\n} from \"rxjs/operators\"\n\nimport { Viewport, watchViewportAt } from \"browser\"\n\nimport { Header } from \"../../header\"\nimport { applyTabs } from \"../react\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Tabs\n */\nexport interface Tabs {\n hidden: boolean /* Whether the tabs are hidden */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n header$: Observable
    /* Header observable */\n viewport$: Observable /* Viewport observable */\n screen$: Observable /* Media screen observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount tabs from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountTabs(\n { header$, viewport$, screen$ }: MountOptions\n): OperatorFunction {\n return pipe(\n switchMap(el => screen$\n .pipe(\n switchMap(screen => {\n\n /* [screen +]: Mount tabs above screen breakpoint */\n if (screen) {\n return watchViewportAt(el, { header$, viewport$ })\n .pipe(\n map(({ offset: { y } }) => ({ hidden: y >= 10 })),\n distinctUntilKeyChanged(\"hidden\"),\n applyTabs(el)\n )\n\n /* [screen -]: Unmount tabs below screen breakpoint */\n } else {\n return of({ hidden: true })\n }\n })\n )\n )\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n MonoTypeOperatorFunction,\n animationFrameScheduler,\n pipe\n} from \"rxjs\"\nimport { finalize, observeOn, tap } from \"rxjs/operators\"\n\nimport { Tabs } from \"../_\"\nimport {\n resetTabsHidden,\n setTabsHidden\n} from \"../set\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Apply tabs\n *\n * @param el - Tabs element\n *\n * @return Operator function\n */\nexport function applyTabs(\n el: HTMLElement\n): MonoTypeOperatorFunction {\n return pipe(\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n tap(({ hidden }) => {\n setTabsHidden(el, hidden)\n }),\n\n /* Reset on complete or error */\n finalize(() => {\n resetTabsHidden(el)\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set tabs hidden\n *\n * @param el - Tabs element\n * @param value - Whether the element is hidden\n */\nexport function setTabsHidden(\n el: HTMLElement, value: boolean\n): void {\n el.setAttribute(\"data-md-state\", value ? \"hidden\" : \"\")\n}\n\n/**\n * Reset tabs hidden\n *\n * @param el - Tabs element\n */\nexport function resetTabsHidden(\n el: HTMLElement\n): void {\n el.removeAttribute(\"data-md-state\")\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, OperatorFunction, of, pipe } from \"rxjs\"\nimport { map, switchMap } from \"rxjs/operators\"\n\nimport { Viewport } from \"browser\"\n\nimport { Header } from \"../../header\"\nimport { Main } from \"../../main\"\nimport {\n Sidebar,\n applySidebar,\n watchSidebar\n} from \"../../shared\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Navigation for [screen -]\n */\ninterface NavigationBelowScreen {} // tslint:disable-line\n\n/**\n * Navigation for [screen +]\n */\ninterface NavigationAboveScreen {\n sidebar: Sidebar /* Sidebar */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Navigation\n */\nexport type Navigation =\n | NavigationBelowScreen\n | NavigationAboveScreen\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n header$: Observable
    /* Header observable */\n main$: Observable
    /* Main area observable */\n viewport$: Observable /* Viewport observable */\n screen$: Observable /* Screen media observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount navigation from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountNavigation(\n { header$, main$, viewport$, screen$ }: MountOptions\n): OperatorFunction {\n return pipe(\n switchMap(el => screen$\n .pipe(\n switchMap(screen => {\n\n /* [screen +]: Mount navigation in sidebar */\n if (screen) {\n return watchSidebar(el, { main$, viewport$ })\n .pipe(\n applySidebar(el, { header$ }),\n map(sidebar => ({ sidebar }))\n )\n\n /* [screen -]: Mount navigation in drawer */\n } else {\n return of({})\n }\n })\n )\n )\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { NEVER, Observable, fromEvent, iif, merge } from \"rxjs\"\nimport { map, mapTo, shareReplay, switchMap } from \"rxjs/operators\"\n\nimport { getElements } from \"browser\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch options\n */\ninterface PatchOptions {\n document$: Observable /* Document observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Check whether the given device is an Apple device\n *\n * @return Test result\n */\nfunction isAppleDevice(): boolean {\n return /(iPad|iPhone|iPod)/.test(navigator.userAgent)\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch all elements with `data-md-scrollfix` attributes\n *\n * This is a year-old patch which ensures that overflow scrolling works at the\n * top and bottom of containers on iOS by ensuring a `1px` scroll offset upon\n * the start of a touch event.\n *\n * @see https://bit.ly/2SCtAOO - Original source\n *\n * @param options - Options\n */\nexport function patchScrollfix(\n { document$ }: PatchOptions\n): void {\n const els$ = document$\n .pipe(\n map(() => getElements(\"[data-md-scrollfix]\")),\n shareReplay(1)\n )\n\n /* Remove marker attribute, so we'll only add the fix once */\n els$.subscribe(els => {\n for (const el of els)\n el.removeAttribute(\"data-md-scrollfix\")\n })\n\n /* Patch overflow scrolling on touch start */\n iif(isAppleDevice, els$, NEVER)\n .pipe(\n switchMap(els => merge(...els.map(el => (\n fromEvent(el, \"touchstart\", { passive: true })\n .pipe(\n mapTo(el)\n )\n ))))\n )\n .subscribe(el => {\n const top = el.scrollTop\n\n /* We're at the top of the container */\n if (top === 0) {\n el.scrollTop = 1\n\n /* We're at the bottom of the container */\n } else if (top + el.offsetHeight === el.scrollHeight) {\n el.scrollTop = top - 1\n }\n })\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { NEVER, Observable } from \"rxjs\"\nimport { catchError, map, switchMap } from \"rxjs/operators\"\n\nimport { getElementOrThrow, getElements } from \"browser\"\nimport { renderSource } from \"templates\"\nimport { cache, hash } from \"utilities\"\n\nimport { fetchSourceFactsFromGitHub } from \"./github\"\nimport { fetchSourceFactsFromGitLab } from \"./gitlab\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Source facts\n */\nexport type SourceFacts = string[]\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch options\n */\ninterface PatchOptions {\n document$: Observable /* Document observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch source facts\n *\n * @param url - Source repository URL\n *\n * @return Source facts observable\n */\nfunction fetchSourceFacts(\n url: string\n): Observable {\n const [type] = url.match(/(git(?:hub|lab))/i) || []\n switch (type.toLowerCase()) {\n\n /* GitHub repository */\n case \"github\":\n const [, user, repo] = url.match(/^.+github\\.com\\/([^\\/]+)\\/?([^\\/]+)/i)\n return fetchSourceFactsFromGitHub(user, repo)\n\n /* GitLab repository */\n case \"gitlab\":\n const [, base, slug] = url.match(/^.+?([^\\/]*gitlab[^\\/]+)\\/(.+?)\\/?$/i)\n return fetchSourceFactsFromGitLab(base, slug)\n\n /* Everything else */\n default:\n return NEVER\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch elements containing repository information\n *\n * This function will retrieve the URL from the repository link and try to\n * query data from integrated source code platforms like GitHub or GitLab.\n *\n * @param options - Options\n */\nexport function patchSource(\n { document$ }: PatchOptions\n): void {\n document$\n .pipe(\n map(() => getElementOrThrow(\".md-source[href]\")),\n switchMap(({ href }) => (\n cache(`${hash(href)}`, () => fetchSourceFacts(href))\n )),\n catchError(() => NEVER)\n )\n .subscribe(facts => {\n for (const el of getElements(\".md-source__repository\")) {\n if (!el.hasAttribute(\"data-md-state\")) {\n el.setAttribute(\"data-md-state\", \"done\")\n el.appendChild(renderSource(facts))\n }\n }\n })\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Repo, User } from \"github-types\"\nimport { Observable, of } from \"rxjs\"\nimport { ajax } from \"rxjs/ajax\"\nimport { filter, pluck, switchMap } from \"rxjs/operators\"\n\nimport { round } from \"utilities\"\n\nimport { SourceFacts } from \"..\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch GitHub source facts\n *\n * @param user - GitHub user\n * @param repo - GitHub repository\n *\n * @return Source facts observable\n */\nexport function fetchSourceFactsFromGitHub(\n user: string, repo?: string\n): Observable {\n return ajax({\n url: typeof repo !== \"undefined\"\n ? `https://api.github.com/repos/${user}/${repo}`\n : `https://api.github.com/users/${user}`,\n responseType: \"json\"\n })\n .pipe(\n filter(({ status }) => status === 200),\n pluck(\"response\"),\n switchMap(data => {\n\n /* GitHub repository */\n if (typeof repo !== \"undefined\") {\n const { stargazers_count, forks_count }: Repo = data\n return of([\n `${round(stargazers_count || 0)} Stars`,\n `${round(forks_count || 0)} Forks`\n ])\n\n /* GitHub user/organization */\n } else {\n const { public_repos }: User = data\n return of([\n `${round(public_repos || 0)} Repositories`\n ])\n }\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { ProjectSchema } from \"gitlab\"\nimport { Observable } from \"rxjs\"\nimport { ajax } from \"rxjs/ajax\"\nimport { filter, map, pluck } from \"rxjs/operators\"\n\nimport { round } from \"utilities\"\n\nimport { SourceFacts } from \"..\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch GitLab source facts\n *\n * @param base - GitLab base\n * @param project - GitLab project\n *\n * @return Source facts observable\n */\nexport function fetchSourceFactsFromGitLab(\n base: string, project: string\n): Observable {\n return ajax({\n url: `https://${base}/api/v4/projects/${encodeURIComponent(project)}`,\n responseType: \"json\"\n })\n .pipe(\n filter(({ status }) => status === 200),\n pluck(\"response\"),\n map(({ star_count, forks_count }: ProjectSchema) => ([\n `${round(star_count)} Stars`,\n `${round(forks_count)} Forks`\n ]))\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n// DISCLAIMER: this file is still WIP. There're some refactoring opportunities\n// which must be tackled after we gathered some feedback on v5.\n// tslint:disable\n\nimport { values } from \"ramda\"\nimport {\n merge,\n combineLatest,\n animationFrameScheduler,\n fromEvent,\n from,\n defer,\n of,\n NEVER\n} from \"rxjs\"\nimport { ajax } from \"rxjs/ajax\"\nimport {\n delay,\n switchMap,\n tap,\n filter,\n withLatestFrom,\n observeOn,\n take,\n shareReplay,\n pluck,\n catchError\n} from \"rxjs/operators\"\n\nimport {\n watchToggle,\n setToggle,\n getElements,\n watchMedia,\n watchDocument,\n watchLocation,\n watchLocationHash,\n watchViewport,\n isLocalLocation,\n setLocationHash,\n watchLocationBase\n} from \"browser\"\nimport {\n mountHeader,\n mountHero,\n mountMain,\n mountNavigation,\n mountSearch,\n mountTableOfContents,\n mountTabs,\n useComponent,\n setupComponents,\n mountSearchQuery,\n mountSearchReset,\n mountSearchResult\n} from \"components\"\nimport {\n setupClipboard,\n setupDialog,\n setupKeyboard,\n setupInstantLoading,\n setupSearchWorker,\n SearchIndex\n} from \"integrations\"\nimport {\n patchTables,\n patchDetails,\n patchScrollfix,\n patchSource,\n patchScripts\n} from \"patches\"\nimport { isConfig } from \"utilities\"\n\n/* ------------------------------------------------------------------------- */\n\n/* Denote that JavaScript is available */\ndocument.documentElement.classList.remove(\"no-js\")\ndocument.documentElement.classList.add(\"js\")\n\n/* Test for iOS */\nif (navigator.userAgent.match(/(iPad|iPhone|iPod)/g))\n document.documentElement.classList.add(\"ios\")\n\n/**\n * Set scroll lock\n *\n * @param el - Scrollable element\n * @param value - Vertical offset\n */\nexport function setScrollLock(\n el: HTMLElement, value: number\n): void {\n el.setAttribute(\"data-md-state\", \"lock\")\n el.style.top = `-${value}px`\n}\n\n/**\n * Reset scroll lock\n *\n * @param el - Scrollable element\n */\nexport function resetScrollLock(\n el: HTMLElement\n): void {\n const value = -1 * parseInt(el.style.top, 10)\n el.removeAttribute(\"data-md-state\")\n el.style.top = \"\"\n if (value)\n window.scrollTo(0, value)\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Initialize Material for MkDocs\n *\n * @param config - Configuration\n */\nexport function initialize(config: unknown) {\n if (!isConfig(config))\n throw new SyntaxError(`Invalid configuration: ${JSON.stringify(config)}`)\n\n /* Set up subjects */\n const document$ = watchDocument()\n const location$ = watchLocation()\n\n /* Set up user interface observables */\n const base$ = watchLocationBase(config.base, { location$ })\n const hash$ = watchLocationHash()\n const viewport$ = watchViewport()\n const tablet$ = watchMedia(\"(min-width: 960px)\")\n const screen$ = watchMedia(\"(min-width: 1220px)\")\n\n /* ----------------------------------------------------------------------- */\n\n /* Set up component bindings */\n setupComponents([\n \"announce\", /* Announcement bar */\n \"container\", /* Container */\n \"header\", /* Header */\n \"header-title\", /* Header title */\n \"hero\", /* Hero */\n \"main\", /* Main area */\n \"navigation\", /* Navigation */\n \"search\", /* Search */\n \"search-query\", /* Search input */\n \"search-reset\", /* Search reset */\n \"search-result\", /* Search results */\n \"skip\", /* Skip link */\n \"tabs\", /* Tabs */\n \"toc\" /* Table of contents */\n ], { document$ })\n\n const keyboard$ = setupKeyboard()\n\n patchDetails({ document$, hash$ })\n patchScripts({ document$ })\n patchSource({ document$ })\n patchTables({ document$ })\n\n /* Force 1px scroll offset to trigger overflow scrolling */\n patchScrollfix({ document$ })\n\n /* Set up clipboard and dialog */\n const dialog$ = setupDialog()\n const clipboard$ = setupClipboard({ document$, dialog$ })\n\n /* ----------------------------------------------------------------------- */\n\n /* Create header observable */\n const header$ = useComponent(\"header\")\n .pipe(\n mountHeader({ document$, viewport$ }),\n shareReplay(1)\n )\n\n const main$ = useComponent(\"main\")\n .pipe(\n mountMain({ header$, viewport$ }),\n shareReplay(1)\n )\n\n /* ----------------------------------------------------------------------- */\n\n const navigation$ = useComponent(\"navigation\")\n .pipe(\n mountNavigation({ header$, main$, viewport$, screen$ }),\n shareReplay(1) // shareReplay because there might be late subscribers\n )\n\n const toc$ = useComponent(\"toc\")\n .pipe(\n mountTableOfContents({ header$, main$, viewport$, tablet$ }),\n shareReplay(1)\n )\n\n const tabs$ = useComponent(\"tabs\")\n .pipe(\n mountTabs({ header$, viewport$, screen$ }),\n shareReplay(1)\n )\n\n const hero$ = useComponent(\"hero\")\n .pipe(\n mountHero({ header$, viewport$ }),\n shareReplay(1)\n )\n\n /* ----------------------------------------------------------------------- */\n\n /* Search worker */\n const worker$ = defer(() => {\n const index = config.search && config.search.index\n ? config.search.index\n : undefined\n\n /* Fetch index if it wasn't passed explicitly */\n const index$ = typeof index !== \"undefined\"\n ? from(index)\n : base$\n .pipe(\n switchMap(base => ajax({\n url: `${base}/search/search_index.json`,\n responseType: \"json\",\n withCredentials: true\n })\n .pipe(\n pluck(\"response\")\n )\n )\n )\n\n return of(setupSearchWorker(config.search.worker, {\n base$, index$\n }))\n })\n\n /* ----------------------------------------------------------------------- */\n\n /* Mount search query */\n const search$ = worker$\n .pipe(\n switchMap(worker => {\n\n const query$ = useComponent(\"search-query\")\n .pipe(\n mountSearchQuery(worker, { transform: config.search.transform }),\n shareReplay(1)\n )\n\n /* Mount search reset */\n const reset$ = useComponent(\"search-reset\")\n .pipe(\n mountSearchReset(),\n shareReplay(1)\n )\n\n /* Mount search result */\n const result$ = useComponent(\"search-result\")\n .pipe(\n mountSearchResult(worker, { query$ }),\n shareReplay(1)\n )\n\n return useComponent(\"search\")\n .pipe(\n mountSearch(worker, { query$, reset$, result$ }),\n shareReplay(1)\n )\n }),\n catchError(() => {\n useComponent(\"search\")\n .subscribe(el => el.hidden = true) // TODO: Hack\n return NEVER\n })\n )\n\n /* ----------------------------------------------------------------------- */\n\n // // put into search...\n hash$\n .pipe(\n tap(() => setToggle(\"search\", false)),\n delay(125), // ensure that it runs after the body scroll reset...\n )\n .subscribe(hash => setLocationHash(`#${hash}`))\n\n // TODO: scroll restoration must be centralized\n combineLatest([\n watchToggle(\"search\"),\n tablet$,\n ])\n .pipe(\n withLatestFrom(viewport$),\n switchMap(([[toggle, tablet], { offset: { y }}]) => {\n const active = toggle && !tablet\n return document$\n .pipe(\n delay(active ? 400 : 100),\n observeOn(animationFrameScheduler),\n tap(({ body }) => active\n ? setScrollLock(body, y)\n : resetScrollLock(body)\n )\n )\n })\n )\n .subscribe()\n\n /* ----------------------------------------------------------------------- */\n\n /* Always close drawer on click */\n fromEvent(document.body, \"click\")\n .pipe(\n filter(ev => !(ev.metaKey || ev.ctrlKey)),\n filter(ev => {\n if (ev.target instanceof HTMLElement) {\n const el = ev.target.closest(\"a\") // TODO: abstract as link click?\n if (el && isLocalLocation(el)) {\n return true\n }\n }\n return false\n })\n )\n .subscribe(() => {\n setToggle(\"drawer\", false)\n })\n\n /* Enable instant loading, if not on file:// protocol */\n if (config.features.includes(\"instant\") && location.protocol !== \"file:\")\n setupInstantLoading({ document$, location$, viewport$ })\n\n /* ----------------------------------------------------------------------- */\n\n /* Unhide permalinks on first tab */\n keyboard$\n .pipe(\n filter(key => key.mode === \"global\" && key.type === \"Tab\"),\n take(1)\n )\n .subscribe(() => {\n for (const link of getElements(\".headerlink\"))\n link.style.visibility = \"visible\"\n })\n\n /* ----------------------------------------------------------------------- */\n\n const state = {\n\n /* Browser observables */\n document$,\n location$,\n viewport$,\n\n /* Component observables */\n header$,\n hero$,\n main$,\n navigation$,\n search$,\n tabs$,\n toc$,\n\n /* Integration observables */\n clipboard$,\n keyboard$,\n dialog$\n }\n\n /* Subscribe to all observables */\n merge(...values(state))\n .subscribe()\n return state\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { identity } from \"ramda\"\nimport { Observable, fromEvent, merge } from \"rxjs\"\nimport {\n filter,\n map,\n switchMapTo,\n tap\n} from \"rxjs/operators\"\n\nimport {\n getElement,\n getElements,\n watchMedia\n} from \"browser\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch options\n */\ninterface PatchOptions {\n document$: Observable /* Document observable */\n hash$: Observable /* Location hash observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch all `details` elements\n *\n * This function will ensure that all `details` tags are opened prior to\n * printing, so the whole content of the page is included, and on anchor jumps.\n *\n * @param options - Options\n */\nexport function patchDetails(\n { document$, hash$ }: PatchOptions\n): void {\n const els$ = document$\n .pipe(\n map(() => getElements(\"details\"))\n )\n\n /* Open all details before printing */\n merge(\n watchMedia(\"print\").pipe(filter(identity)), /* Webkit */\n fromEvent(window, \"beforeprint\") /* IE, FF */\n )\n .pipe(\n switchMapTo(els$)\n )\n .subscribe(els => {\n for (const el of els)\n el.setAttribute(\"open\", \"\")\n })\n\n /* Open parent details and fix anchor jump */\n hash$\n .pipe(\n map(id => getElement(`[id=\"${id}\"]`)!),\n filter(el => typeof el !== \"undefined\"),\n tap(el => {\n const details = el.closest(\"details\")\n if (details && !details.open)\n details.setAttribute(\"open\", \"\")\n })\n )\n .subscribe(el => el.scrollIntoView())\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable } from \"rxjs\"\nimport { map, skip, withLatestFrom } from \"rxjs/operators\"\n\nimport {\n createElement,\n getElements,\n replaceElement\n} from \"browser\"\nimport { useComponent } from \"components\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch options\n */\ninterface PatchOptions {\n document$: Observable /* Document observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch all `script` elements\n *\n * This function must be run after a document switch, which means the first\n * emission must be ignored.\n *\n * @param options - Options\n */\nexport function patchScripts(\n { document$ }: PatchOptions\n): void {\n const els$ = document$\n .pipe(\n skip(1),\n withLatestFrom(useComponent(\"container\")),\n map(([, el]) => getElements(\"script\", el))\n )\n\n /* Evaluate all scripts via replacement */\n els$.subscribe(els => {\n for (const el of els) {\n if (el.src || /(^|\\/javascript)$/i.test(el.type)) {\n const script = createElement(\"script\")\n const key = el.src ? \"src\" : \"textContent\"\n script[key] = el[key]!\n replaceElement(el, script)\n }\n }\n })\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable } from \"rxjs\"\nimport { map } from \"rxjs/operators\"\n\nimport {\n createElement,\n getElements,\n replaceElement\n} from \"browser\"\nimport { renderTable } from \"templates\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n document$: Observable /* Document observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch all `table` elements\n *\n * This function will re-render all tables by wrapping them to improve overflow\n * scrolling on smaller screen sizes.\n *\n * @param options - Options\n */\nexport function patchTables(\n { document$ }: MountOptions\n): void {\n const sentinel = createElement(\"table\")\n document$\n .pipe(\n map(() => getElements(\"table:not([class])\"))\n )\n .subscribe(els => {\n for (const el of els) {\n replaceElement(el, sentinel)\n replaceElement(sentinel, renderTable(el))\n }\n })\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/doc/theme/material/assets/javascripts/bundle.js b/doc/theme/material/assets/javascripts/bundle.js new file mode 100644 index 00000000..10ae0710 --- /dev/null +++ b/doc/theme/material/assets/javascripts/bundle.js @@ -0,0 +1,1296 @@ +(function(e, a) { for(var i in a) e[i] = a[i]; }(window, /******/ (function(modules) { // webpackBootstrap +/******/ // install a JSONP callback for chunk loading +/******/ function webpackJsonpCallback(data) { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var executeModules = data[2]; +/******/ +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0, resolves = []; +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ resolves.push(installedChunks[chunkId][0]); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ for(moduleId in moreModules) { +/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) { +/******/ modules[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(parentJsonpFunction) parentJsonpFunction(data); +/******/ +/******/ while(resolves.length) { +/******/ resolves.shift()(); +/******/ } +/******/ +/******/ // add entry modules from loaded chunk to deferred list +/******/ deferredModules.push.apply(deferredModules, executeModules || []); +/******/ +/******/ // run deferred modules when all chunks ready +/******/ return checkDeferredModules(); +/******/ }; +/******/ function checkDeferredModules() { +/******/ var result; +/******/ for(var i = 0; i < deferredModules.length; i++) { +/******/ var deferredModule = deferredModules[i]; +/******/ var fulfilled = true; +/******/ for(var j = 1; j < deferredModule.length; j++) { +/******/ var depId = deferredModule[j]; +/******/ if(installedChunks[depId] !== 0) fulfilled = false; +/******/ } +/******/ if(fulfilled) { +/******/ deferredModules.splice(i--, 1); +/******/ result = __webpack_require__(__webpack_require__.s = deferredModule[0]); +/******/ } +/******/ } +/******/ +/******/ return result; +/******/ } +/******/ +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // Promise = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "assets/javascripts/bundle": 0 +/******/ }; +/******/ +/******/ var deferredModules = []; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ var jsonpArray = window["webpackJsonp"] = window["webpackJsonp"] || []; +/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray); +/******/ jsonpArray.push = webpackJsonpCallback; +/******/ jsonpArray = jsonpArray.slice(); +/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]); +/******/ var parentJsonpFunction = oldJsonpFunction; +/******/ +/******/ +/******/ // add entry module to deferred list +/******/ deferredModules.push(["./src/assets/javascripts/index.ts","assets/javascripts/vendor"]); +/******/ // run deferred modules when ready +/******/ return checkDeferredModules(); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./src/assets/javascripts/browser/document/index.ts": +/*!**********************************************************!*\ + !*** ./src/assets/javascripts/browser/document/index.ts ***! + \**********************************************************/ +/*! exports provided: watchDocument */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchDocument\", function() { return watchDocument; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch document\n *\n * Documents must be implemented as subjects, so all downstream observables are\n * automatically updated when a new document is emitted. This enabled features\n * like instant loading.\n *\n * @return Document subject\n */\nfunction watchDocument() {\n var document$ = new rxjs__WEBPACK_IMPORTED_MODULE_0__[\"ReplaySubject\"]();\n Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(document, \"DOMContentLoaded\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"mapTo\"])(document))\n .subscribe(document$);\n /* Return document */\n return document$;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/document/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/element/_/index.ts": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/browser/element/_/index.ts ***! + \***********************************************************/ +/*! exports provided: getElement, getElementOrThrow, getActiveElement, getElements, createElement, replaceElement */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getElement\", function() { return getElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getElementOrThrow\", function() { return getElementOrThrow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getActiveElement\", function() { return getActiveElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getElements\", function() { return getElements; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createElement\", function() { return createElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"replaceElement\", function() { return replaceElement; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Retrieve an element matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @return Element or nothing\n */\nfunction getElement(selector, node) {\n if (node === void 0) { node = document; }\n return node.querySelector(selector) || undefined;\n}\n/**\n * Retrieve an element matching a query selector or throw a reference error\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @return Element\n */\nfunction getElementOrThrow(selector, node) {\n if (node === void 0) { node = document; }\n var el = getElement(selector, node);\n if (typeof el === \"undefined\")\n throw new ReferenceError(\"Missing element: expected \\\"\" + selector + \"\\\" to be present\");\n return el;\n}\n/**\n * Retrieve the currently active element\n *\n * @return Element or nothing\n */\nfunction getActiveElement() {\n return document.activeElement instanceof HTMLElement\n ? document.activeElement\n : undefined;\n}\n/**\n * Retrieve all elements matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @return Elements\n */\nfunction getElements(selector, node) {\n if (node === void 0) { node = document; }\n return Array.from(node.querySelectorAll(selector));\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Create an element\n *\n * @template T - Tag name type\n *\n * @param tagName - Tag name\n *\n * @return Element\n */\nfunction createElement(tagName) {\n return document.createElement(tagName);\n}\n/**\n * Replace an element with another element\n *\n * @param source - Source element\n * @param target - Target element\n */\nfunction replaceElement(source, target) {\n source.replaceWith(target);\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/element/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/element/focus/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/browser/element/focus/index.ts ***! + \***************************************************************/ +/*! exports provided: setElementFocus, watchElementFocus */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setElementFocus\", function() { return setElementFocus; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchElementFocus\", function() { return watchElementFocus; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_ */ \"./src/assets/javascripts/browser/element/_/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set element focus\n *\n * @param el - Element\n * @param value - Whether the element should be focused\n */\nfunction setElementFocus(el, value) {\n if (value === void 0) { value = true; }\n if (value)\n el.focus();\n else\n el.blur();\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Watch element focus\n *\n * @param el - Element\n *\n * @return Element focus observable\n */\nfunction watchElementFocus(el) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"merge\"])(Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(el, \"focus\"), Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(el, \"blur\"))\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (_a) {\n var type = _a.type;\n return type === \"focus\";\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"startWith\"])(el === Object(___WEBPACK_IMPORTED_MODULE_2__[\"getActiveElement\"])()), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"shareReplay\"])(1));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/element/focus/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/element/index.ts": +/*!*********************************************************!*\ + !*** ./src/assets/javascripts/browser/element/index.ts ***! + \*********************************************************/ +/*! exports provided: getElement, getElementOrThrow, getActiveElement, getElements, createElement, replaceElement, setElementFocus, watchElementFocus, getElementOffset, watchElementOffset, setElementSelection, getElementSize, watchElementSize */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/browser/element/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElement\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"getElement\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElementOrThrow\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"getElementOrThrow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getActiveElement\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"getActiveElement\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElements\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"getElements\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createElement\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"createElement\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"replaceElement\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"replaceElement\"]; });\n\n/* harmony import */ var _focus__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./focus */ \"./src/assets/javascripts/browser/element/focus/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setElementFocus\", function() { return _focus__WEBPACK_IMPORTED_MODULE_1__[\"setElementFocus\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchElementFocus\", function() { return _focus__WEBPACK_IMPORTED_MODULE_1__[\"watchElementFocus\"]; });\n\n/* harmony import */ var _offset__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./offset */ \"./src/assets/javascripts/browser/element/offset/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElementOffset\", function() { return _offset__WEBPACK_IMPORTED_MODULE_2__[\"getElementOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchElementOffset\", function() { return _offset__WEBPACK_IMPORTED_MODULE_2__[\"watchElementOffset\"]; });\n\n/* harmony import */ var _select__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./select */ \"./src/assets/javascripts/browser/element/select/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setElementSelection\", function() { return _select__WEBPACK_IMPORTED_MODULE_3__[\"setElementSelection\"]; });\n\n/* harmony import */ var _size__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./size */ \"./src/assets/javascripts/browser/element/size/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElementSize\", function() { return _size__WEBPACK_IMPORTED_MODULE_4__[\"getElementSize\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchElementSize\", function() { return _size__WEBPACK_IMPORTED_MODULE_4__[\"watchElementSize\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/element/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/element/offset/index.ts": +/*!****************************************************************!*\ + !*** ./src/assets/javascripts/browser/element/offset/index.ts ***! + \****************************************************************/ +/*! exports provided: getElementOffset, watchElementOffset */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getElementOffset\", function() { return getElementOffset; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchElementOffset\", function() { return watchElementOffset; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Retrieve element offset\n *\n * @param el - Element\n *\n * @return Element offset\n */\nfunction getElementOffset(el) {\n return {\n x: el.scrollLeft,\n y: el.scrollTop\n };\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Watch element offset\n *\n * @param el - Element\n *\n * @return Element offset observable\n */\nfunction watchElementOffset(el) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"merge\"])(Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(el, \"scroll\"), Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(window, \"resize\"))\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function () { return getElementOffset(el); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"startWith\"])(getElementOffset(el)), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"shareReplay\"])(1));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/element/offset/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/element/select/index.ts": +/*!****************************************************************!*\ + !*** ./src/assets/javascripts/browser/element/select/index.ts ***! + \****************************************************************/ +/*! exports provided: setElementSelection */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setElementSelection\", function() { return setElementSelection; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set element text selection\n *\n * @param el - Element\n */\nfunction setElementSelection(el) {\n if (el instanceof HTMLInputElement)\n el.select();\n else\n throw new Error(\"Not implemented\");\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/element/select/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/element/size/index.ts": +/*!**************************************************************!*\ + !*** ./src/assets/javascripts/browser/element/size/index.ts ***! + \**************************************************************/ +/*! exports provided: getElementSize, watchElementSize */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getElementSize\", function() { return getElementSize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchElementSize\", function() { return watchElementSize; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var resize_observer_polyfill__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! resize-observer-polyfill */ \"./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Retrieve element size\n *\n * @param el - Element\n *\n * @return Element size\n */\nfunction getElementSize(el) {\n return {\n width: el.offsetWidth,\n height: el.offsetHeight\n };\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Watch element size\n *\n * @param el - Element\n *\n * @return Element size observable\n */\nfunction watchElementSize(el) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"fromEventPattern\"])(function (next) {\n new resize_observer_polyfill__WEBPACK_IMPORTED_MODULE_1__[\"default\"](function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 1), contentRect = _b[0].contentRect;\n return next({\n width: Math.round(contentRect.width),\n height: Math.round(contentRect.height)\n });\n })\n .observe(el);\n })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"startWith\"])(getElementSize(el)), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"shareReplay\"])(1));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/element/size/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/index.ts": +/*!*************************************************!*\ + !*** ./src/assets/javascripts/browser/index.ts ***! + \*************************************************/ +/*! exports provided: watchDocument, getElement, getElementOrThrow, getActiveElement, getElements, createElement, replaceElement, setElementFocus, watchElementFocus, getElementOffset, watchElementOffset, setElementSelection, getElementSize, watchElementSize, isSusceptibleToKeyboard, watchKeyboard, getLocation, setLocation, isLocalLocation, isAnchorLocation, watchLocation, watchLocationBase, getLocationHash, setLocationHash, watchLocationHash, watchMedia, getToggle, setToggle, watchToggle, watchViewport, watchViewportAt, getViewportOffset, setViewportOffset, watchViewportOffset, getViewportSize, watchViewportSize, watchWorker */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _document__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./document */ \"./src/assets/javascripts/browser/document/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchDocument\", function() { return _document__WEBPACK_IMPORTED_MODULE_0__[\"watchDocument\"]; });\n\n/* harmony import */ var _element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./element */ \"./src/assets/javascripts/browser/element/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElement\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"getElement\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElementOrThrow\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"getElementOrThrow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getActiveElement\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"getActiveElement\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElements\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"getElements\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createElement\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"createElement\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"replaceElement\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"replaceElement\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setElementFocus\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"setElementFocus\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchElementFocus\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"watchElementFocus\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElementOffset\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"getElementOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchElementOffset\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"watchElementOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setElementSelection\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"setElementSelection\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElementSize\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"getElementSize\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchElementSize\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"watchElementSize\"]; });\n\n/* harmony import */ var _keyboard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./keyboard */ \"./src/assets/javascripts/browser/keyboard/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSusceptibleToKeyboard\", function() { return _keyboard__WEBPACK_IMPORTED_MODULE_2__[\"isSusceptibleToKeyboard\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchKeyboard\", function() { return _keyboard__WEBPACK_IMPORTED_MODULE_2__[\"watchKeyboard\"]; });\n\n/* harmony import */ var _location__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./location */ \"./src/assets/javascripts/browser/location/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getLocation\", function() { return _location__WEBPACK_IMPORTED_MODULE_3__[\"getLocation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setLocation\", function() { return _location__WEBPACK_IMPORTED_MODULE_3__[\"setLocation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isLocalLocation\", function() { return _location__WEBPACK_IMPORTED_MODULE_3__[\"isLocalLocation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isAnchorLocation\", function() { return _location__WEBPACK_IMPORTED_MODULE_3__[\"isAnchorLocation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchLocation\", function() { return _location__WEBPACK_IMPORTED_MODULE_3__[\"watchLocation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchLocationBase\", function() { return _location__WEBPACK_IMPORTED_MODULE_3__[\"watchLocationBase\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getLocationHash\", function() { return _location__WEBPACK_IMPORTED_MODULE_3__[\"getLocationHash\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setLocationHash\", function() { return _location__WEBPACK_IMPORTED_MODULE_3__[\"setLocationHash\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchLocationHash\", function() { return _location__WEBPACK_IMPORTED_MODULE_3__[\"watchLocationHash\"]; });\n\n/* harmony import */ var _media__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./media */ \"./src/assets/javascripts/browser/media/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchMedia\", function() { return _media__WEBPACK_IMPORTED_MODULE_4__[\"watchMedia\"]; });\n\n/* harmony import */ var _toggle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./toggle */ \"./src/assets/javascripts/browser/toggle/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getToggle\", function() { return _toggle__WEBPACK_IMPORTED_MODULE_5__[\"getToggle\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setToggle\", function() { return _toggle__WEBPACK_IMPORTED_MODULE_5__[\"setToggle\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchToggle\", function() { return _toggle__WEBPACK_IMPORTED_MODULE_5__[\"watchToggle\"]; });\n\n/* harmony import */ var _viewport__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./viewport */ \"./src/assets/javascripts/browser/viewport/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchViewport\", function() { return _viewport__WEBPACK_IMPORTED_MODULE_6__[\"watchViewport\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchViewportAt\", function() { return _viewport__WEBPACK_IMPORTED_MODULE_6__[\"watchViewportAt\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getViewportOffset\", function() { return _viewport__WEBPACK_IMPORTED_MODULE_6__[\"getViewportOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setViewportOffset\", function() { return _viewport__WEBPACK_IMPORTED_MODULE_6__[\"setViewportOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchViewportOffset\", function() { return _viewport__WEBPACK_IMPORTED_MODULE_6__[\"watchViewportOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getViewportSize\", function() { return _viewport__WEBPACK_IMPORTED_MODULE_6__[\"getViewportSize\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchViewportSize\", function() { return _viewport__WEBPACK_IMPORTED_MODULE_6__[\"watchViewportSize\"]; });\n\n/* harmony import */ var _worker__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./worker */ \"./src/assets/javascripts/browser/worker/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchWorker\", function() { return _worker__WEBPACK_IMPORTED_MODULE_7__[\"watchWorker\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/keyboard/index.ts": +/*!**********************************************************!*\ + !*** ./src/assets/javascripts/browser/keyboard/index.ts ***! + \**********************************************************/ +/*! exports provided: isSusceptibleToKeyboard, watchKeyboard */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSusceptibleToKeyboard\", function() { return isSusceptibleToKeyboard; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchKeyboard\", function() { return watchKeyboard; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Check whether an element may receive keyboard input\n *\n * @param el - Element\n *\n * @return Test result\n */\nfunction isSusceptibleToKeyboard(el) {\n switch (el.tagName) {\n /* Form elements */\n case \"INPUT\":\n case \"SELECT\":\n case \"TEXTAREA\":\n return true;\n /* Everything else */\n default:\n return el.isContentEditable;\n }\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Watch keyboard\n *\n * @return Keyboard observable\n */\nfunction watchKeyboard() {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(window, \"keydown\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(function (ev) { return !(ev.metaKey || ev.ctrlKey); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (ev) { return ({\n type: ev.key,\n claim: function () {\n ev.preventDefault();\n ev.stopPropagation();\n }\n }); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"share\"])());\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/keyboard/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/location/_/index.ts": +/*!************************************************************!*\ + !*** ./src/assets/javascripts/browser/location/_/index.ts ***! + \************************************************************/ +/*! exports provided: getLocation, setLocation, isLocalLocation, isAnchorLocation, watchLocation */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getLocation\", function() { return getLocation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setLocation\", function() { return setLocation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isLocalLocation\", function() { return isLocalLocation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAnchorLocation\", function() { return isAnchorLocation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchLocation\", function() { return watchLocation; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Retrieve location\n *\n * This function will return a `URL` object (and not `Location`) in order to\n * normalize typings across the application. Furthermore, locations need to be\n * tracked without setting them and `Location` is a singleton which represents\n * the current location.\n *\n * @return URL\n */\nfunction getLocation() {\n return new URL(location.href);\n}\n/**\n * Set location\n *\n * @param url - URL to change to\n */\nfunction setLocation(url) {\n location.href = url.href;\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Check whether a URL is a local link or a file (except `.html`)\n *\n * @param url - URL or HTML anchor element\n * @param ref - Reference URL\n *\n * @return Test result\n */\nfunction isLocalLocation(url, ref) {\n if (ref === void 0) { ref = location; }\n return url.host === ref.host\n && /^(?:\\/[\\w-]+)*(?:\\/?|\\.html)$/i.test(url.pathname);\n}\n/**\n * Check whether a URL is an anchor link on the current page\n *\n * @param url - URL or HTML anchor element\n * @param ref - Reference URL\n *\n * @return Test result\n */\nfunction isAnchorLocation(url, ref) {\n if (ref === void 0) { ref = location; }\n return url.pathname === ref.pathname\n && url.hash.length > 0;\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Watch location\n *\n * @return Location subject\n */\nfunction watchLocation() {\n return new rxjs__WEBPACK_IMPORTED_MODULE_0__[\"BehaviorSubject\"](getLocation());\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/location/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/location/base/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/browser/location/base/index.ts ***! + \***************************************************************/ +/*! exports provided: watchLocationBase */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchLocationBase\", function() { return watchLocationBase; });\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ------------------------------------------------------------------------- */\n/**\n * Watch location base\n *\n * @return Location base observable\n */\nfunction watchLocationBase(base, _a) {\n var location$ = _a.location$;\n return location$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_0__[\"take\"])(1), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_0__[\"map\"])(function (_a) {\n var href = _a.href;\n return new URL(base, href)\n .toString()\n .replace(/\\/$/, \"\");\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_0__[\"shareReplay\"])(1));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/location/base/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/location/hash/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/browser/location/hash/index.ts ***! + \***************************************************************/ +/*! exports provided: getLocationHash, setLocationHash, watchLocationHash */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getLocationHash\", function() { return getLocationHash; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setLocationHash\", function() { return setLocationHash; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchLocationHash\", function() { return watchLocationHash; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Retrieve location hash\n *\n * @return Location hash\n */\nfunction getLocationHash() {\n return location.hash.substring(1);\n}\n/**\n * Set location hash\n *\n * Setting a new fragment identifier via `location.hash` will have no effect\n * if the value doesn't change. When a new fragment identifier is set, we want\n * the browser to target the respective element at all times, which is why we\n * use this dirty little trick.\n *\n * @param hash - Location hash\n */\nfunction setLocationHash(hash) {\n var el = Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"])(\"a\");\n el.href = hash;\n el.addEventListener(\"click\", function (ev) { return ev.stopPropagation(); });\n el.click();\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Watch location hash\n *\n * @return Location hash observable\n */\nfunction watchLocationHash() {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(window, \"hashchange\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(getLocationHash), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"startWith\"])(getLocationHash()), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(function (hash) { return hash.length > 0; }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"share\"])());\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/location/hash/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/location/index.ts": +/*!**********************************************************!*\ + !*** ./src/assets/javascripts/browser/location/index.ts ***! + \**********************************************************/ +/*! exports provided: getLocation, setLocation, isLocalLocation, isAnchorLocation, watchLocation, watchLocationBase, getLocationHash, setLocationHash, watchLocationHash */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/browser/location/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getLocation\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"getLocation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setLocation\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"setLocation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isLocalLocation\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"isLocalLocation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isAnchorLocation\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"isAnchorLocation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchLocation\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"watchLocation\"]; });\n\n/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./base */ \"./src/assets/javascripts/browser/location/base/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchLocationBase\", function() { return _base__WEBPACK_IMPORTED_MODULE_1__[\"watchLocationBase\"]; });\n\n/* harmony import */ var _hash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./hash */ \"./src/assets/javascripts/browser/location/hash/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getLocationHash\", function() { return _hash__WEBPACK_IMPORTED_MODULE_2__[\"getLocationHash\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setLocationHash\", function() { return _hash__WEBPACK_IMPORTED_MODULE_2__[\"setLocationHash\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchLocationHash\", function() { return _hash__WEBPACK_IMPORTED_MODULE_2__[\"watchLocationHash\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/location/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/media/index.ts": +/*!*******************************************************!*\ + !*** ./src/assets/javascripts/browser/media/index.ts ***! + \*******************************************************/ +/*! exports provided: watchMedia */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchMedia\", function() { return watchMedia; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch media query\n *\n * @param query - Media query\n *\n * @return Media observable\n */\nfunction watchMedia(query) {\n var media = matchMedia(query);\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEventPattern\"])(function (next) {\n return media.addListener(function () { return next(media.matches); });\n })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"startWith\"])(media.matches), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"shareReplay\"])(1));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/media/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/toggle/index.ts": +/*!********************************************************!*\ + !*** ./src/assets/javascripts/browser/toggle/index.ts ***! + \********************************************************/ +/*! exports provided: getToggle, setToggle, watchToggle */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getToggle\", function() { return getToggle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setToggle\", function() { return setToggle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchToggle\", function() { return watchToggle; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var _element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../element */ \"./src/assets/javascripts/browser/element/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n/**\n * Toggle map\n */\nvar toggles = {\n drawer: Object(_element__WEBPACK_IMPORTED_MODULE_2__[\"getElementOrThrow\"])(\"[data-md-toggle=drawer]\"),\n search: Object(_element__WEBPACK_IMPORTED_MODULE_2__[\"getElementOrThrow\"])(\"[data-md-toggle=search]\")\n};\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Retrieve the value of a toggle\n *\n * @param name - Toggle\n *\n * @return Toggle value\n */\nfunction getToggle(name) {\n return toggles[name].checked;\n}\n/**\n * Set toggle\n *\n * Simulating a click event seems to be the most cross-browser compatible way\n * of changing the value while also emitting a `change` event. Before, Material\n * used `CustomEvent` to programmatically change the value of a toggle, but this\n * is a much simpler and cleaner solution which doesn't require a polyfill.\n *\n * @param name - Toggle\n * @param value - Toggle value\n */\nfunction setToggle(name, value) {\n if (toggles[name].checked !== value)\n toggles[name].click();\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Watch toggle\n *\n * @param name - Toggle\n *\n * @return Toggle value observable\n */\nfunction watchToggle(name) {\n var el = toggles[name];\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(el, \"change\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function () { return el.checked; }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"startWith\"])(el.checked));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/toggle/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/viewport/_/index.ts": +/*!************************************************************!*\ + !*** ./src/assets/javascripts/browser/viewport/_/index.ts ***! + \************************************************************/ +/*! exports provided: watchViewport, watchViewportAt */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchViewport\", function() { return watchViewport; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchViewportAt\", function() { return watchViewportAt; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var _offset__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../offset */ \"./src/assets/javascripts/browser/viewport/offset/index.ts\");\n/* harmony import */ var _size__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../size */ \"./src/assets/javascripts/browser/viewport/size/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch viewport\n *\n * @return Viewport observable\n */\nfunction watchViewport() {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"combineLatest\"])([\n Object(_offset__WEBPACK_IMPORTED_MODULE_3__[\"watchViewportOffset\"])(),\n Object(_size__WEBPACK_IMPORTED_MODULE_4__[\"watchViewportSize\"])()\n ])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), offset = _b[0], size = _b[1];\n return ({ offset: offset, size: size });\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"shareReplay\"])(1));\n}\n/**\n * Watch viewport relative to element\n *\n * @param el - Element\n * @param options - Options\n *\n * @return Viewport observable\n */\nfunction watchViewportAt(el, _a) {\n var header$ = _a.header$, viewport$ = _a.viewport$;\n var size$ = viewport$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"distinctUntilKeyChanged\"])(\"size\"));\n /* Compute element offset */\n var offset$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"combineLatest\"])([size$, header$])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function () { return ({\n x: el.offsetLeft,\n y: el.offsetTop\n }); }));\n /* Compute relative viewport, return hot observable */\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"combineLatest\"])([header$, viewport$, offset$])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 3), height = _b[0].height, _c = _b[1], offset = _c.offset, size = _c.size, _d = _b[2], x = _d.x, y = _d.y;\n return ({\n offset: {\n x: offset.x - x,\n y: offset.y - y + height\n },\n size: size\n });\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"shareReplay\"])(1));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/viewport/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/viewport/index.ts": +/*!**********************************************************!*\ + !*** ./src/assets/javascripts/browser/viewport/index.ts ***! + \**********************************************************/ +/*! exports provided: watchViewport, watchViewportAt, getViewportOffset, setViewportOffset, watchViewportOffset, getViewportSize, watchViewportSize */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/browser/viewport/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchViewport\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"watchViewport\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchViewportAt\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"watchViewportAt\"]; });\n\n/* harmony import */ var _offset__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./offset */ \"./src/assets/javascripts/browser/viewport/offset/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getViewportOffset\", function() { return _offset__WEBPACK_IMPORTED_MODULE_1__[\"getViewportOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setViewportOffset\", function() { return _offset__WEBPACK_IMPORTED_MODULE_1__[\"setViewportOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchViewportOffset\", function() { return _offset__WEBPACK_IMPORTED_MODULE_1__[\"watchViewportOffset\"]; });\n\n/* harmony import */ var _size__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./size */ \"./src/assets/javascripts/browser/viewport/size/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getViewportSize\", function() { return _size__WEBPACK_IMPORTED_MODULE_2__[\"getViewportSize\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchViewportSize\", function() { return _size__WEBPACK_IMPORTED_MODULE_2__[\"watchViewportSize\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/viewport/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/viewport/offset/index.ts": +/*!*****************************************************************!*\ + !*** ./src/assets/javascripts/browser/viewport/offset/index.ts ***! + \*****************************************************************/ +/*! exports provided: getViewportOffset, setViewportOffset, watchViewportOffset */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getViewportOffset\", function() { return getViewportOffset; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setViewportOffset\", function() { return setViewportOffset; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchViewportOffset\", function() { return watchViewportOffset; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Retrieve viewport offset\n *\n * On iOS Safari, viewport offset can be negative due to overflow scrolling.\n * As this may induce strange behaviors downstream, we'll just limit it to 0.\n *\n * @return Viewport offset\n */\nfunction getViewportOffset() {\n return {\n x: Math.max(0, pageXOffset),\n y: Math.max(0, pageYOffset)\n };\n}\n/**\n * Set viewport offset\n *\n * @param offset - Viewport offset\n */\nfunction setViewportOffset(_a) {\n var x = _a.x, y = _a.y;\n window.scrollTo(x || 0, y || 0);\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Watch viewport offset\n *\n * @return Viewport offset observable\n */\nfunction watchViewportOffset() {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"merge\"])(Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(window, \"scroll\", { passive: true }), Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(window, \"resize\", { passive: true }))\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(getViewportOffset), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"startWith\"])(getViewportOffset()));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/viewport/offset/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/viewport/size/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/browser/viewport/size/index.ts ***! + \***************************************************************/ +/*! exports provided: getViewportSize, watchViewportSize */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getViewportSize\", function() { return getViewportSize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchViewportSize\", function() { return watchViewportSize; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Retrieve viewport size\n *\n * @return Viewport size\n */\nfunction getViewportSize() {\n return {\n width: innerWidth,\n height: innerHeight\n };\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Watch viewport size\n *\n * @return Viewport size observable\n */\nfunction watchViewportSize() {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(window, \"resize\", { passive: true })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(getViewportSize), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"startWith\"])(getViewportSize()));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/viewport/size/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/worker/index.ts": +/*!********************************************************!*\ + !*** ./src/assets/javascripts/browser/worker/index.ts ***! + \********************************************************/ +/*! exports provided: watchWorker */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchWorker\", function() { return watchWorker; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch a web worker\n *\n * This function returns an observable that will send all values emitted by the\n * message observable to the web worker. Web worker communication is expected\n * to be bidirectional (request-response) and synchronous. Messages that are\n * emitted during a pending request are throttled, the last one is emitted.\n *\n * @param worker - Web worker\n * @param options - Options\n *\n * @return Worker message observable\n */\nfunction watchWorker(worker, _a) {\n var tx$ = _a.tx$;\n /* Intercept messages from worker-like objects */\n var rx$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEventPattern\"])(function (next) {\n return worker.addEventListener(\"message\", next);\n })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"pluck\"])(\"data\"));\n /* Send and receive messages, return hot observable */\n return tx$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"throttle\"])(function () { return rx$; }, { leading: true, trailing: true }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"tap\"])(function (message) { return worker.postMessage(message); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMapTo\"])(rx$), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"share\"])());\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/worker/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/_/index.ts": +/*!******************************************************!*\ + !*** ./src/assets/javascripts/components/_/index.ts ***! + \******************************************************/ +/*! exports provided: setupComponents, useComponent */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupComponents\", function() { return setupComponents; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"useComponent\", function() { return useComponent; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n/**\n * Component map observable\n */\nvar components$;\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set up bindings to components with given names\n *\n * This function will maintain bindings to the elements identified by the given\n * names in-between document switches and update the elements in-place.\n *\n * @param names - Component names\n * @param options - Options\n */\nfunction setupComponents(names, _a) {\n var document$ = _a.document$;\n components$ = document$\n .pipe(\n /* Build component map */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (document) { return names.reduce(function (components, name) {\n var _a;\n var el = Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElement\"])(\"[data-md-component=\" + name + \"]\", document);\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({}, components), typeof el !== \"undefined\" ? (_a = {}, _a[name] = el, _a) : {});\n }, {}); }), \n /* Re-compute component map on document switch */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"scan\"])(function (prev, next) {\n var e_1, _a;\n try {\n for (var names_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(names), names_1_1 = names_1.next(); !names_1_1.done; names_1_1 = names_1.next()) {\n var name = names_1_1.value;\n switch (name) {\n /* Top-level components: update */\n case \"announce\":\n case \"header-title\":\n case \"container\":\n case \"skip\":\n if (name in prev && typeof prev[name] !== \"undefined\") {\n Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"replaceElement\"])(prev[name], next[name]);\n prev[name] = next[name];\n }\n break;\n /* All other components: rebind */\n default:\n if (typeof next[name] !== \"undefined\")\n prev[name] = Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElement\"])(\"[data-md-component=\" + name + \"]\");\n else\n delete prev[name];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (names_1_1 && !names_1_1.done && (_a = names_1.return)) _a.call(names_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return prev;\n }), \n /* Convert to hot observable */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"shareReplay\"])(1));\n}\nfunction useComponent(name) {\n return components$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (components) { return (typeof components[name] !== \"undefined\"\n ? Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"of\"])(components[name])\n : rxjs__WEBPACK_IMPORTED_MODULE_1__[\"EMPTY\"]); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"distinctUntilChanged\"])());\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/header/_/index.ts": +/*!*************************************************************!*\ + !*** ./src/assets/javascripts/components/header/_/index.ts ***! + \*************************************************************/ +/*! exports provided: mountHeader */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountHeader\", function() { return mountHeader; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../_ */ \"./src/assets/javascripts/components/_/index.ts\");\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../react */ \"./src/assets/javascripts/components/header/react/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount header from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nfunction mountHeader(_a) {\n var document$ = _a.document$, viewport$ = _a.viewport$;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (el) {\n var header$ = Object(_react__WEBPACK_IMPORTED_MODULE_5__[\"watchHeader\"])(el, { document$: document$ });\n /* Compute whether the header should switch to page header */\n var type$ = Object(___WEBPACK_IMPORTED_MODULE_4__[\"useComponent\"])(\"main\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (main) { return Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElement\"])(\"h1, h2, h3, h4, h5, h6\", main); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"filter\"])(function (hx) { return typeof hx !== \"undefined\"; }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"withLatestFrom\"])(Object(___WEBPACK_IMPORTED_MODULE_4__[\"useComponent\"])(\"header-title\")), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), hx = _b[0], title = _b[1];\n return Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"watchViewportAt\"])(hx, { header$: header$, viewport$: viewport$ })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var y = _a.offset.y;\n return y >= hx.offsetHeight ? \"page\" : \"site\";\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"distinctUntilChanged\"])(), Object(_react__WEBPACK_IMPORTED_MODULE_5__[\"applyHeaderType\"])(title));\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"startWith\"])(\"site\"));\n /* Combine into single observable */\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"combineLatest\"])([header$, type$])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), header = _b[0], type = _b[1];\n return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({ type: type }, header));\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"shareReplay\"])(1));\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/header/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/header/index.ts": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/components/header/index.ts ***! + \***********************************************************/ +/*! exports provided: mountHeader, watchHeader, applyHeaderType, setHeaderTitleActive, resetHeaderTitleActive */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/header/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountHeader\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountHeader\"]; });\n\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ \"./src/assets/javascripts/components/header/react/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchHeader\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"watchHeader\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyHeaderType\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"applyHeaderType\"]; });\n\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./set */ \"./src/assets/javascripts/components/header/set/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setHeaderTitleActive\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"setHeaderTitleActive\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetHeaderTitleActive\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetHeaderTitleActive\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/header/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/header/react/index.ts": +/*!*****************************************************************!*\ + !*** ./src/assets/javascripts/components/header/react/index.ts ***! + \*****************************************************************/ +/*! exports provided: watchHeader, applyHeaderType */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchHeader\", function() { return watchHeader; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"applyHeaderType\", function() { return applyHeaderType; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../set */ \"./src/assets/javascripts/components/header/set/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch header\n *\n * @param el - Header element\n *\n * @return Header observable\n */\nfunction watchHeader(el, _a) {\n var document$ = _a.document$;\n return document$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function () {\n var styles = getComputedStyle(el);\n return [\n \"sticky\",\n \"-webkit-sticky\" /* Safari */\n ].includes(styles.position);\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"distinctUntilChanged\"])(), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (sticky) {\n if (sticky) {\n return Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"watchElementSize\"])(el)\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (_a) {\n var height = _a.height;\n return ({\n sticky: true,\n height: height\n });\n }));\n }\n else {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"of\"])({\n sticky: false,\n height: 0\n });\n }\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"shareReplay\"])(1));\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Apply header title type\n *\n * @param el - Header title element\n *\n * @return Operator function\n */\nfunction applyHeaderType(el) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"pipe\"])(\n /* Defer repaint to next animation frame */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"animationFrameScheduler\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"tap\"])(function (type) {\n Object(_set__WEBPACK_IMPORTED_MODULE_3__[\"setHeaderTitleActive\"])(el, type === \"page\");\n }), \n /* Reset on complete or error */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"finalize\"])(function () {\n Object(_set__WEBPACK_IMPORTED_MODULE_3__[\"resetHeaderTitleActive\"])(el);\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/header/react/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/header/set/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/components/header/set/index.ts ***! + \***************************************************************/ +/*! exports provided: setHeaderTitleActive, resetHeaderTitleActive */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setHeaderTitleActive\", function() { return setHeaderTitleActive; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetHeaderTitleActive\", function() { return resetHeaderTitleActive; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set header title active\n *\n * @param el - Header title element\n * @param value - Whether the title is shown\n */\nfunction setHeaderTitleActive(el, value) {\n el.setAttribute(\"data-md-state\", value ? \"active\" : \"\");\n}\n/**\n * Reset header title active\n *\n * @param el - Header title element\n */\nfunction resetHeaderTitleActive(el) {\n el.removeAttribute(\"data-md-state\");\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/header/set/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/hero/_/index.ts": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/components/hero/_/index.ts ***! + \***********************************************************/ +/*! exports provided: mountHero */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountHero\", function() { return mountHero; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../react */ \"./src/assets/javascripts/components/hero/react/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount hero from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nfunction mountHero(_a) {\n var header$ = _a.header$, viewport$ = _a.viewport$;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (el) { return Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"watchViewportAt\"])(el, { header$: header$, viewport$: viewport$ })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (_a) {\n var y = _a.offset.y;\n return ({ hidden: y >= 20 });\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"distinctUntilKeyChanged\"])(\"hidden\"), Object(_react__WEBPACK_IMPORTED_MODULE_3__[\"applyHero\"])(el)); }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/hero/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/hero/index.ts": +/*!*********************************************************!*\ + !*** ./src/assets/javascripts/components/hero/index.ts ***! + \*********************************************************/ +/*! exports provided: mountHero, applyHero, setHeroHidden, resetHeroHidden */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/hero/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountHero\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountHero\"]; });\n\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ \"./src/assets/javascripts/components/hero/react/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyHero\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"applyHero\"]; });\n\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./set */ \"./src/assets/javascripts/components/hero/set/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setHeroHidden\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"setHeroHidden\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetHeroHidden\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetHeroHidden\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/hero/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/hero/react/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/components/hero/react/index.ts ***! + \***************************************************************/ +/*! exports provided: applyHero */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"applyHero\", function() { return applyHero; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../set */ \"./src/assets/javascripts/components/hero/set/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Apply hero\n *\n * @param el - Hero element\n *\n * @return Operator function\n */\nfunction applyHero(el) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"pipe\"])(\n /* Defer repaint to next animation frame */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"animationFrameScheduler\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"tap\"])(function (_a) {\n var hidden = _a.hidden;\n Object(_set__WEBPACK_IMPORTED_MODULE_2__[\"setHeroHidden\"])(el, hidden);\n }), \n /* Reset on complete or error */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"finalize\"])(function () {\n Object(_set__WEBPACK_IMPORTED_MODULE_2__[\"resetHeroHidden\"])(el);\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/hero/react/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/hero/set/index.ts": +/*!*************************************************************!*\ + !*** ./src/assets/javascripts/components/hero/set/index.ts ***! + \*************************************************************/ +/*! exports provided: setHeroHidden, resetHeroHidden */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setHeroHidden\", function() { return setHeroHidden; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetHeroHidden\", function() { return resetHeroHidden; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set hero hidden\n *\n * @param el - Hero element\n * @param value - Whether the element is hidden\n */\nfunction setHeroHidden(el, value) {\n el.setAttribute(\"data-md-state\", value ? \"hidden\" : \"\");\n}\n/**\n * Reset hero hidden\n *\n * @param el - Hero element\n */\nfunction resetHeroHidden(el) {\n el.removeAttribute(\"data-md-state\");\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/hero/set/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/index.ts": +/*!****************************************************!*\ + !*** ./src/assets/javascripts/components/index.ts ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupComponents\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"setupComponents\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useComponent\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"useComponent\"]; });\n\n/* harmony import */ var _header__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./header */ \"./src/assets/javascripts/components/header/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountHeader\", function() { return _header__WEBPACK_IMPORTED_MODULE_1__[\"mountHeader\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchHeader\", function() { return _header__WEBPACK_IMPORTED_MODULE_1__[\"watchHeader\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyHeaderType\", function() { return _header__WEBPACK_IMPORTED_MODULE_1__[\"applyHeaderType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setHeaderTitleActive\", function() { return _header__WEBPACK_IMPORTED_MODULE_1__[\"setHeaderTitleActive\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetHeaderTitleActive\", function() { return _header__WEBPACK_IMPORTED_MODULE_1__[\"resetHeaderTitleActive\"]; });\n\n/* harmony import */ var _hero__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./hero */ \"./src/assets/javascripts/components/hero/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountHero\", function() { return _hero__WEBPACK_IMPORTED_MODULE_2__[\"mountHero\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyHero\", function() { return _hero__WEBPACK_IMPORTED_MODULE_2__[\"applyHero\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setHeroHidden\", function() { return _hero__WEBPACK_IMPORTED_MODULE_2__[\"setHeroHidden\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetHeroHidden\", function() { return _hero__WEBPACK_IMPORTED_MODULE_2__[\"resetHeroHidden\"]; });\n\n/* harmony import */ var _main__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./main */ \"./src/assets/javascripts/components/main/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountMain\", function() { return _main__WEBPACK_IMPORTED_MODULE_3__[\"mountMain\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchMain\", function() { return _main__WEBPACK_IMPORTED_MODULE_3__[\"watchMain\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyHeaderShadow\", function() { return _main__WEBPACK_IMPORTED_MODULE_3__[\"applyHeaderShadow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setHeaderShadow\", function() { return _main__WEBPACK_IMPORTED_MODULE_3__[\"setHeaderShadow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetHeaderShadow\", function() { return _main__WEBPACK_IMPORTED_MODULE_3__[\"resetHeaderShadow\"]; });\n\n/* harmony import */ var _navigation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./navigation */ \"./src/assets/javascripts/components/navigation/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountNavigation\", function() { return _navigation__WEBPACK_IMPORTED_MODULE_4__[\"mountNavigation\"]; });\n\n/* harmony import */ var _search__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./search */ \"./src/assets/javascripts/components/search/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearch\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"mountSearch\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearchQuery\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"mountSearchQuery\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchSearchQuery\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"watchSearchQuery\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearchReset\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"mountSearchReset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchSearchReset\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"watchSearchReset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearchResult\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"mountSearchResult\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applySearchResult\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"applySearchResult\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setSearchResultMeta\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"setSearchResultMeta\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetSearchResultMeta\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"resetSearchResultMeta\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"addToSearchResultList\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"addToSearchResultList\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetSearchResultList\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"resetSearchResultList\"]; });\n\n/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./shared */ \"./src/assets/javascripts/components/shared/index.ts\");\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _shared__WEBPACK_IMPORTED_MODULE_6__) if([\"setupComponents\",\"useComponent\",\"mountHeader\",\"watchHeader\",\"applyHeaderType\",\"setHeaderTitleActive\",\"resetHeaderTitleActive\",\"mountHero\",\"applyHero\",\"setHeroHidden\",\"resetHeroHidden\",\"mountMain\",\"watchMain\",\"applyHeaderShadow\",\"setHeaderShadow\",\"resetHeaderShadow\",\"mountNavigation\",\"mountSearch\",\"mountSearchQuery\",\"watchSearchQuery\",\"mountSearchReset\",\"watchSearchReset\",\"mountSearchResult\",\"applySearchResult\",\"setSearchResultMeta\",\"resetSearchResultMeta\",\"addToSearchResultList\",\"resetSearchResultList\",\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _shared__WEBPACK_IMPORTED_MODULE_6__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _tabs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./tabs */ \"./src/assets/javascripts/components/tabs/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountTabs\", function() { return _tabs__WEBPACK_IMPORTED_MODULE_7__[\"mountTabs\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyTabs\", function() { return _tabs__WEBPACK_IMPORTED_MODULE_7__[\"applyTabs\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setTabsHidden\", function() { return _tabs__WEBPACK_IMPORTED_MODULE_7__[\"setTabsHidden\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetTabsHidden\", function() { return _tabs__WEBPACK_IMPORTED_MODULE_7__[\"resetTabsHidden\"]; });\n\n/* harmony import */ var _toc__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./toc */ \"./src/assets/javascripts/components/toc/index.ts\");\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _toc__WEBPACK_IMPORTED_MODULE_8__) if([\"setupComponents\",\"useComponent\",\"mountHeader\",\"watchHeader\",\"applyHeaderType\",\"setHeaderTitleActive\",\"resetHeaderTitleActive\",\"mountHero\",\"applyHero\",\"setHeroHidden\",\"resetHeroHidden\",\"mountMain\",\"watchMain\",\"applyHeaderShadow\",\"setHeaderShadow\",\"resetHeaderShadow\",\"mountNavigation\",\"mountSearch\",\"mountSearchQuery\",\"watchSearchQuery\",\"mountSearchReset\",\"watchSearchReset\",\"mountSearchResult\",\"applySearchResult\",\"setSearchResultMeta\",\"resetSearchResultMeta\",\"addToSearchResultList\",\"resetSearchResultList\",\"mountTabs\",\"applyTabs\",\"setTabsHidden\",\"resetTabsHidden\",\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _toc__WEBPACK_IMPORTED_MODULE_8__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/main/_/index.ts": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/components/main/_/index.ts ***! + \***********************************************************/ +/*! exports provided: mountMain */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountMain\", function() { return mountMain; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_ */ \"./src/assets/javascripts/components/_/index.ts\");\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../react */ \"./src/assets/javascripts/components/main/react/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount main area from source observable\n *\n * The header must be connected to the main area observable outside of the\n * operator function, as the header will persist in-between document switches\n * while the main area is replaced. However, the header observable must be\n * passed to this function, so we connect both via a long-living subject.\n *\n * @param options - Options\n *\n * @return Operator function\n */\nfunction mountMain(_a) {\n var header$ = _a.header$, viewport$ = _a.viewport$;\n var main$ = new rxjs__WEBPACK_IMPORTED_MODULE_0__[\"Subject\"]();\n /* Connect to main area observable via long-living subject */\n Object(___WEBPACK_IMPORTED_MODULE_2__[\"useComponent\"])(\"header\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (header) { return main$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"distinctUntilKeyChanged\"])(\"active\"), Object(_react__WEBPACK_IMPORTED_MODULE_3__[\"applyHeaderShadow\"])(header)); }))\n .subscribe();\n /* Return operator */\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (el) { return Object(_react__WEBPACK_IMPORTED_MODULE_3__[\"watchMain\"])(el, { header$: header$, viewport$: viewport$ }); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"tap\"])(function (main) { return main$.next(main); }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/main/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/main/index.ts": +/*!*********************************************************!*\ + !*** ./src/assets/javascripts/components/main/index.ts ***! + \*********************************************************/ +/*! exports provided: mountMain, watchMain, applyHeaderShadow, setHeaderShadow, resetHeaderShadow */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/main/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountMain\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountMain\"]; });\n\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ \"./src/assets/javascripts/components/main/react/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchMain\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"watchMain\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyHeaderShadow\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"applyHeaderShadow\"]; });\n\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./set */ \"./src/assets/javascripts/components/main/set/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setHeaderShadow\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"setHeaderShadow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetHeaderShadow\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetHeaderShadow\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/main/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/main/react/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/components/main/react/index.ts ***! + \***************************************************************/ +/*! exports provided: watchMain, applyHeaderShadow */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchMain\", function() { return watchMain; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"applyHeaderShadow\", function() { return applyHeaderShadow; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../set */ \"./src/assets/javascripts/components/main/set/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch main area\n *\n * This function returns an observable that computes the visual parameters of\n * the main area which depends on the viewport vertical offset and height, as\n * well as the height of the header element, if the header is fixed.\n *\n * @param el - Main area element\n * @param options - Options\n *\n * @return Main area observable\n */\nfunction watchMain(el, _a) {\n var header$ = _a.header$, viewport$ = _a.viewport$;\n /* Compute necessary adjustment for header */\n var adjust$ = header$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"pluck\"])(\"height\"), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"distinctUntilChanged\"])(), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"shareReplay\"])(1));\n /* Compute the main area's top and bottom borders */\n var border$ = adjust$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function () { return Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"watchElementSize\"])(el)\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var height = _a.height;\n return ({\n top: el.offsetTop,\n bottom: el.offsetTop + height\n });\n })); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"distinctUntilKeyChanged\"])(\"bottom\"), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"shareReplay\"])(1));\n /* Compute the main area's offset, visible height and if we scrolled past */\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"combineLatest\"])([adjust$, border$, viewport$])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 3), header = _b[0], _c = _b[1], top = _c.top, bottom = _c.bottom, _d = _b[2], y = _d.offset.y, height = _d.size.height;\n height = Math.max(0, height\n - Math.max(0, top - y, header)\n - Math.max(0, height + y - bottom));\n return {\n offset: top - header,\n height: height,\n active: top - header <= y\n };\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"distinctUntilChanged\"])(function (a, b) {\n return a.offset === b.offset\n && a.height === b.height\n && a.active === b.active;\n }));\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Apply header shadow\n *\n * @param el - Header element\n *\n * @return Operator function\n */\nfunction applyHeaderShadow(el) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"pipe\"])(\n /* Defer repaint to next animation frame */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"animationFrameScheduler\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"tap\"])(function (_a) {\n var active = _a.active;\n Object(_set__WEBPACK_IMPORTED_MODULE_4__[\"setHeaderShadow\"])(el, active);\n }), \n /* Reset on complete or error */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"finalize\"])(function () {\n Object(_set__WEBPACK_IMPORTED_MODULE_4__[\"resetHeaderShadow\"])(el);\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/main/react/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/main/set/index.ts": +/*!*************************************************************!*\ + !*** ./src/assets/javascripts/components/main/set/index.ts ***! + \*************************************************************/ +/*! exports provided: setHeaderShadow, resetHeaderShadow */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setHeaderShadow\", function() { return setHeaderShadow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetHeaderShadow\", function() { return resetHeaderShadow; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set header shadow\n *\n * @param el - Header element\n * @param value - Whether the shadow is shown\n */\nfunction setHeaderShadow(el, value) {\n el.setAttribute(\"data-md-state\", value ? \"shadow\" : \"\");\n}\n/**\n * Reset header shadow\n *\n * @param el - Header element\n */\nfunction resetHeaderShadow(el) {\n el.removeAttribute(\"data-md-state\");\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/main/set/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/navigation/_/index.ts": +/*!*****************************************************************!*\ + !*** ./src/assets/javascripts/components/navigation/_/index.ts ***! + \*****************************************************************/ +/*! exports provided: mountNavigation */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountNavigation\", function() { return mountNavigation; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared */ \"./src/assets/javascripts/components/shared/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount navigation from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nfunction mountNavigation(_a) {\n var header$ = _a.header$, main$ = _a.main$, viewport$ = _a.viewport$, screen$ = _a.screen$;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (el) { return screen$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (screen) {\n /* [screen +]: Mount navigation in sidebar */\n if (screen) {\n return Object(_shared__WEBPACK_IMPORTED_MODULE_2__[\"watchSidebar\"])(el, { main$: main$, viewport$: viewport$ })\n .pipe(Object(_shared__WEBPACK_IMPORTED_MODULE_2__[\"applySidebar\"])(el, { header$: header$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (sidebar) { return ({ sidebar: sidebar }); }));\n /* [screen -]: Mount navigation in drawer */\n }\n else {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"of\"])({});\n }\n })); }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/navigation/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/navigation/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/components/navigation/index.ts ***! + \***************************************************************/ +/*! exports provided: mountNavigation */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/navigation/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountNavigation\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountNavigation\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/navigation/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/_/index.ts": +/*!*************************************************************!*\ + !*** ./src/assets/javascripts/components/search/_/index.ts ***! + \*************************************************************/ +/*! exports provided: mountSearch */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountSearch\", function() { return mountSearch; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var integrations_search__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! integrations/search */ \"./src/assets/javascripts/integrations/search/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount search from source observable\n *\n * @param handler - Worker handler\n * @param options - Options\n *\n * @return Operator function\n */\nfunction mountSearch(_a, _b) {\n var rx$ = _a.rx$, tx$ = _a.tx$;\n var query$ = _b.query$, reset$ = _b.reset$, result$ = _b.result$;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function () {\n /* Compute search status */\n var status$ = rx$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"filter\"])(integrations_search__WEBPACK_IMPORTED_MODULE_3__[\"isSearchReadyMessage\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"mapTo\"])(\"ready\"), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"startWith\"])(\"waiting\"));\n /* Re-emit the latest query when search is ready */\n tx$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"filter\"])(integrations_search__WEBPACK_IMPORTED_MODULE_3__[\"isSearchQueryMessage\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"sample\"])(status$), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"take\"])(1))\n .subscribe(tx$.next.bind(tx$));\n /* Combine into single observable */\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"combineLatest\"])([status$, query$, result$, reset$])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 3), status = _b[0], query = _b[1], result = _b[2];\n return ({\n status: status,\n query: query,\n result: result\n });\n }));\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/index.ts": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/components/search/index.ts ***! + \***********************************************************/ +/*! exports provided: mountSearch, mountSearchQuery, watchSearchQuery, mountSearchReset, watchSearchReset, mountSearchResult, applySearchResult, setSearchResultMeta, resetSearchResultMeta, addToSearchResultList, resetSearchResultList */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/search/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearch\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountSearch\"]; });\n\n/* harmony import */ var _query__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query */ \"./src/assets/javascripts/components/search/query/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearchQuery\", function() { return _query__WEBPACK_IMPORTED_MODULE_1__[\"mountSearchQuery\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchSearchQuery\", function() { return _query__WEBPACK_IMPORTED_MODULE_1__[\"watchSearchQuery\"]; });\n\n/* harmony import */ var _reset__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reset */ \"./src/assets/javascripts/components/search/reset/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearchReset\", function() { return _reset__WEBPACK_IMPORTED_MODULE_2__[\"mountSearchReset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchSearchReset\", function() { return _reset__WEBPACK_IMPORTED_MODULE_2__[\"watchSearchReset\"]; });\n\n/* harmony import */ var _result__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./result */ \"./src/assets/javascripts/components/search/result/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearchResult\", function() { return _result__WEBPACK_IMPORTED_MODULE_3__[\"mountSearchResult\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applySearchResult\", function() { return _result__WEBPACK_IMPORTED_MODULE_3__[\"applySearchResult\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setSearchResultMeta\", function() { return _result__WEBPACK_IMPORTED_MODULE_3__[\"setSearchResultMeta\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetSearchResultMeta\", function() { return _result__WEBPACK_IMPORTED_MODULE_3__[\"resetSearchResultMeta\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"addToSearchResultList\", function() { return _result__WEBPACK_IMPORTED_MODULE_3__[\"addToSearchResultList\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetSearchResultList\", function() { return _result__WEBPACK_IMPORTED_MODULE_3__[\"resetSearchResultList\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/query/_/index.ts": +/*!*******************************************************************!*\ + !*** ./src/assets/javascripts/components/search/query/_/index.ts ***! + \*******************************************************************/ +/*! exports provided: mountSearchQuery */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountSearchQuery\", function() { return mountSearchQuery; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var integrations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! integrations */ \"./src/assets/javascripts/integrations/index.ts\");\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../react */ \"./src/assets/javascripts/components/search/query/react/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount search query from source observable\n *\n * @param handler - Worker handler\n * @param options - Options\n *\n * @return Operator function\n */\nfunction mountSearchQuery(_a, options) {\n var tx$ = _a.tx$;\n if (options === void 0) { options = {}; }\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (el) {\n var query$ = Object(_react__WEBPACK_IMPORTED_MODULE_4__[\"watchSearchQuery\"])(el, options);\n /* Subscribe worker to search query */\n query$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"distinctUntilKeyChanged\"])(\"value\"), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (_a) {\n var value = _a.value;\n return ({\n type: integrations__WEBPACK_IMPORTED_MODULE_3__[\"SearchMessageType\"].QUERY,\n data: value\n });\n }))\n .subscribe(tx$.next.bind(tx$));\n /* Toggle search on focus */\n query$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"distinctUntilKeyChanged\"])(\"focus\"))\n .subscribe(function (_a) {\n var focus = _a.focus;\n if (focus)\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"setToggle\"])(\"search\", focus);\n });\n /* Return search query */\n return query$;\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/query/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/query/index.ts": +/*!*****************************************************************!*\ + !*** ./src/assets/javascripts/components/search/query/index.ts ***! + \*****************************************************************/ +/*! exports provided: mountSearchQuery, watchSearchQuery */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/search/query/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearchQuery\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountSearchQuery\"]; });\n\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ \"./src/assets/javascripts/components/search/query/react/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchSearchQuery\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"watchSearchQuery\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/query/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/query/react/index.ts": +/*!***********************************************************************!*\ + !*** ./src/assets/javascripts/components/search/query/react/index.ts ***! + \***********************************************************************/ +/*! exports provided: watchSearchQuery */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchSearchQuery\", function() { return watchSearchQuery; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var integrations__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! integrations */ \"./src/assets/javascripts/integrations/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch search query\n *\n * Note that the focus event which triggers re-reading the current query value\n * is delayed by `1ms` so the input's empty state is allowed to propagate.\n *\n * @param el - Search query element\n * @param options - Options\n *\n * @return Search query observable\n */\nfunction watchSearchQuery(el, _a) {\n var transform = (_a === void 0 ? {} : _a).transform;\n var fn = transform || integrations__WEBPACK_IMPORTED_MODULE_4__[\"defaultTransform\"];\n /* Intercept keyboard events */\n var value$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"merge\"])(Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"fromEvent\"])(el, \"keyup\"), Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"fromEvent\"])(el, \"focus\").pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"delay\"])(1)))\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function () { return fn(el.value); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"startWith\"])(fn(el.value)), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"distinctUntilChanged\"])());\n /* Intercept focus events */\n var focus$ = Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"watchElementFocus\"])(el);\n /* Combine into single observable */\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"combineLatest\"])([value$, focus$])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), value = _b[0], focus = _b[1];\n return ({ value: value, focus: focus });\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/query/react/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/reset/_/index.ts": +/*!*******************************************************************!*\ + !*** ./src/assets/javascripts/components/search/reset/_/index.ts ***! + \*******************************************************************/ +/*! exports provided: mountSearchReset */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountSearchReset\", function() { return mountSearchReset; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_ */ \"./src/assets/javascripts/components/_/index.ts\");\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../react */ \"./src/assets/javascripts/components/search/reset/react/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount search reset from source observable\n *\n * @return Operator function\n */\nfunction mountSearchReset() {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (el) { return Object(_react__WEBPACK_IMPORTED_MODULE_4__[\"watchSearchReset\"])(el)\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMapTo\"])(Object(___WEBPACK_IMPORTED_MODULE_3__[\"useComponent\"])(\"search-query\")), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"tap\"])(browser__WEBPACK_IMPORTED_MODULE_2__[\"setElementFocus\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"mapTo\"])(undefined)); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"startWith\"])(undefined));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/reset/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/reset/index.ts": +/*!*****************************************************************!*\ + !*** ./src/assets/javascripts/components/search/reset/index.ts ***! + \*****************************************************************/ +/*! exports provided: mountSearchReset, watchSearchReset */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/search/reset/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearchReset\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountSearchReset\"]; });\n\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ \"./src/assets/javascripts/components/search/reset/react/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchSearchReset\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"watchSearchReset\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/reset/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/reset/react/index.ts": +/*!***********************************************************************!*\ + !*** ./src/assets/javascripts/components/search/reset/react/index.ts ***! + \***********************************************************************/ +/*! exports provided: watchSearchReset */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchSearchReset\", function() { return watchSearchReset; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch search reset\n *\n * @param el - Search reset element\n *\n * @return Search reset observable\n */\nfunction watchSearchReset(el) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(el, \"click\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"mapTo\"])(undefined));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/reset/react/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/result/_/index.ts": +/*!********************************************************************!*\ + !*** ./src/assets/javascripts/components/search/result/_/index.ts ***! + \********************************************************************/ +/*! exports provided: mountSearchResult */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountSearchResult\", function() { return mountSearchResult; });\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/index.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var integrations__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! integrations */ \"./src/assets/javascripts/integrations/index.ts\");\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../react */ \"./src/assets/javascripts/components/search/result/react/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount search result from source observable\n *\n * @param handler - Worker handler\n * @param options - Options\n *\n * @return Operator function\n */\nfunction mountSearchResult(_a, _b) {\n var rx$ = _a.rx$;\n var query$ = _b.query$;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (el) {\n var container = el.parentElement;\n /* Compute if search is ready */\n var ready$ = rx$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"filter\"])(integrations__WEBPACK_IMPORTED_MODULE_4__[\"isSearchReadyMessage\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"mapTo\"])(true));\n /* Compute whether there are more search results to fetch */\n var fetch$ = Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"watchElementOffset\"])(container)\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var y = _a.y;\n return y >= container.scrollHeight - container.offsetHeight - 16;\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"distinctUntilChanged\"])(), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"filter\"])(ramda__WEBPACK_IMPORTED_MODULE_0__[\"identity\"]));\n /* Apply search results */\n return rx$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"filter\"])(integrations__WEBPACK_IMPORTED_MODULE_4__[\"isSearchResultMessage\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"pluck\"])(\"data\"), Object(_react__WEBPACK_IMPORTED_MODULE_5__[\"applySearchResult\"])(el, { query$: query$, ready$: ready$, fetch$: fetch$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"startWith\"])([]));\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/result/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/result/index.ts": +/*!******************************************************************!*\ + !*** ./src/assets/javascripts/components/search/result/index.ts ***! + \******************************************************************/ +/*! exports provided: mountSearchResult, applySearchResult, setSearchResultMeta, resetSearchResultMeta, addToSearchResultList, resetSearchResultList */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/search/result/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearchResult\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountSearchResult\"]; });\n\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ \"./src/assets/javascripts/components/search/result/react/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applySearchResult\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"applySearchResult\"]; });\n\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./set */ \"./src/assets/javascripts/components/search/result/set/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setSearchResultMeta\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"setSearchResultMeta\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetSearchResultMeta\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetSearchResultMeta\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"addToSearchResultList\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"addToSearchResultList\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetSearchResultList\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetSearchResultList\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/result/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/result/react/index.ts": +/*!************************************************************************!*\ + !*** ./src/assets/javascripts/components/search/result/react/index.ts ***! + \************************************************************************/ +/*! exports provided: applySearchResult */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"applySearchResult\", function() { return applySearchResult; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var templates__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! templates */ \"./src/assets/javascripts/templates/index.ts\");\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../set */ \"./src/assets/javascripts/components/search/result/set/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Apply search results\n *\n * This function will perform a lazy rendering of the search results, depending\n * on the vertical offset of the search result container. When the scroll offset\n * reaches the bottom of the element, more results are fetched and rendered.\n *\n * @param el - Search result element\n * @param options - Options\n *\n * @return Operator function\n */\nfunction applySearchResult(el, _a) {\n var query$ = _a.query$, ready$ = _a.ready$, fetch$ = _a.fetch$;\n var list = Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElementOrThrow\"])(\".md-search-result__list\", el);\n var meta = Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElementOrThrow\"])(\".md-search-result__meta\", el);\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"pipe\"])(\n /* Apply search result metadata */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"withLatestFrom\"])(query$, ready$), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), result = _b[0], query = _b[1];\n if (query.value) {\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"setSearchResultMeta\"])(meta, result.length);\n }\n else {\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"resetSearchResultMeta\"])(meta);\n }\n return result;\n }), \n /* Apply search result list */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (result) { return fetch$\n .pipe(\n /* Defer repaint to next animation frame */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"animationFrameScheduler\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"scan\"])(function (index) {\n var container = el.parentElement;\n while (index < result.length) {\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"addToSearchResultList\"])(list, Object(templates__WEBPACK_IMPORTED_MODULE_4__[\"renderSearchResult\"])(result[index++]));\n if (container.scrollHeight - container.offsetHeight > 16)\n break;\n }\n return index;\n }, 0), \n /* Re-map to search result */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"mapTo\"])(result), \n /* Reset on complete or error */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"finalize\"])(function () {\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"resetSearchResultList\"])(list);\n })); }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/result/react/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/result/set/index.ts": +/*!**********************************************************************!*\ + !*** ./src/assets/javascripts/components/search/result/set/index.ts ***! + \**********************************************************************/ +/*! exports provided: setSearchResultMeta, resetSearchResultMeta, addToSearchResultList, resetSearchResultList */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setSearchResultMeta\", function() { return setSearchResultMeta; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetSearchResultMeta\", function() { return resetSearchResultMeta; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addToSearchResultList\", function() { return addToSearchResultList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetSearchResultList\", function() { return resetSearchResultList; });\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set number of search results\n *\n * @param el - Search result metadata element\n * @param value - Number of results\n */\nfunction setSearchResultMeta(el, value) {\n switch (value) {\n /* No results */\n case 0:\n el.textContent = Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"translate\"])(\"search.result.none\");\n break;\n /* One result */\n case 1:\n el.textContent = Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"translate\"])(\"search.result.one\");\n break;\n /* Multiple result */\n default:\n el.textContent = Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"translate\"])(\"search.result.other\", value.toString());\n }\n}\n/**\n * Reset number of search results\n *\n * @param el - Search result metadata element\n */\nfunction resetSearchResultMeta(el) {\n el.textContent = Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"translate\"])(\"search.result.placeholder\");\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Add an element to the search result list\n *\n * @param el - Search result list element\n * @param child - Search result element\n */\nfunction addToSearchResultList(el, child) {\n el.appendChild(child);\n}\n/**\n * Reset search result list\n *\n * @param el - Search result list element\n */\nfunction resetSearchResultList(el) {\n el.innerHTML = \"\";\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/result/set/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/shared/index.ts": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/components/shared/index.ts ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _sidebar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sidebar */ \"./src/assets/javascripts/components/shared/sidebar/index.ts\");\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _sidebar__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _sidebar__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/shared/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/shared/sidebar/_/index.ts": +/*!*********************************************************************!*\ + !*** ./src/assets/javascripts/components/shared/sidebar/_/index.ts ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/shared/sidebar/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/shared/sidebar/index.ts": +/*!*******************************************************************!*\ + !*** ./src/assets/javascripts/components/shared/sidebar/index.ts ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/shared/sidebar/_/index.ts\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in ___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return ___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ \"./src/assets/javascripts/components/shared/sidebar/react/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchSidebar\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"watchSidebar\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applySidebar\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"applySidebar\"]; });\n\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./set */ \"./src/assets/javascripts/components/shared/sidebar/set/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setSidebarOffset\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"setSidebarOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetSidebarOffset\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetSidebarOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setSidebarHeight\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"setSidebarHeight\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetSidebarHeight\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetSidebarHeight\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/shared/sidebar/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/shared/sidebar/react/index.ts": +/*!*************************************************************************!*\ + !*** ./src/assets/javascripts/components/shared/sidebar/react/index.ts ***! + \*************************************************************************/ +/*! exports provided: watchSidebar, applySidebar */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchSidebar\", function() { return watchSidebar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"applySidebar\", function() { return applySidebar; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../set */ \"./src/assets/javascripts/components/shared/sidebar/set/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch sidebar\n *\n * This function returns an observable that computes the visual parameters of\n * the sidebar which depends on the vertical viewport offset, as well as the\n * height of the main area. When the page is scrolled beyond the header, the\n * sidebar is locked and fills the remaining space.\n *\n * @param el - Sidebar element\n * @param options - Options\n *\n * @return Sidebar observable\n */\nfunction watchSidebar(el, _a) {\n var main$ = _a.main$, viewport$ = _a.viewport$;\n var adjust = el.parentElement.offsetTop\n - el.parentElement.parentElement.offsetTop;\n /* Compute the sidebar's available height and if it should be locked */\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"combineLatest\"])([main$, viewport$])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), _c = _b[0], offset = _c.offset, height = _c.height, y = _b[1].offset.y;\n height = height\n + Math.min(adjust, Math.max(0, y - offset))\n - adjust;\n return {\n height: height,\n lock: y >= offset + adjust\n };\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"distinctUntilChanged\"])(function (a, b) {\n return a.height === b.height\n && a.lock === b.lock;\n }));\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Apply sidebar\n *\n * @param el - Sidebar element\n * @param options - Options\n *\n * @return Operator function\n */\nfunction applySidebar(el, _a) {\n var header$ = _a.header$;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"pipe\"])(\n /* Defer repaint to next animation frame */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"animationFrameScheduler\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"withLatestFrom\"])(header$), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"tap\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), _c = _b[0], height = _c.height, lock = _c.lock, offset = _b[1].height;\n Object(_set__WEBPACK_IMPORTED_MODULE_3__[\"setSidebarHeight\"])(el, height);\n /* Set offset in locked state depending on header height */\n if (lock)\n Object(_set__WEBPACK_IMPORTED_MODULE_3__[\"setSidebarOffset\"])(el, offset);\n else\n Object(_set__WEBPACK_IMPORTED_MODULE_3__[\"resetSidebarOffset\"])(el);\n }), \n /* Re-map to sidebar */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 1), sidebar = _b[0];\n return sidebar;\n }), \n /* Reset on complete or error */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"finalize\"])(function () {\n Object(_set__WEBPACK_IMPORTED_MODULE_3__[\"resetSidebarOffset\"])(el);\n Object(_set__WEBPACK_IMPORTED_MODULE_3__[\"resetSidebarHeight\"])(el);\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/shared/sidebar/react/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/shared/sidebar/set/index.ts": +/*!***********************************************************************!*\ + !*** ./src/assets/javascripts/components/shared/sidebar/set/index.ts ***! + \***********************************************************************/ +/*! exports provided: setSidebarOffset, resetSidebarOffset, setSidebarHeight, resetSidebarHeight */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setSidebarOffset\", function() { return setSidebarOffset; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetSidebarOffset\", function() { return resetSidebarOffset; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setSidebarHeight\", function() { return setSidebarHeight; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetSidebarHeight\", function() { return resetSidebarHeight; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set sidebar offset\n *\n * @param el - Sidebar element\n * @param value - Sidebar offset\n */\nfunction setSidebarOffset(el, value) {\n el.style.top = value + \"px\";\n}\n/**\n * Reset sidebar offset\n *\n * @param el - Sidebar element\n */\nfunction resetSidebarOffset(el) {\n el.style.top = \"\";\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Set sidebar height\n *\n * @param el - Sidebar element\n * @param value - Sidebar height\n */\nfunction setSidebarHeight(el, value) {\n el.style.height = value + \"px\";\n}\n/**\n * Reset sidebar height\n *\n * @param el - Sidebar element\n */\nfunction resetSidebarHeight(el) {\n el.style.height = \"\";\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/shared/sidebar/set/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/tabs/_/index.ts": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/components/tabs/_/index.ts ***! + \***********************************************************/ +/*! exports provided: mountTabs */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountTabs\", function() { return mountTabs; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../react */ \"./src/assets/javascripts/components/tabs/react/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount tabs from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nfunction mountTabs(_a) {\n var header$ = _a.header$, viewport$ = _a.viewport$, screen$ = _a.screen$;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (el) { return screen$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (screen) {\n /* [screen +]: Mount tabs above screen breakpoint */\n if (screen) {\n return Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"watchViewportAt\"])(el, { header$: header$, viewport$: viewport$ })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (_a) {\n var y = _a.offset.y;\n return ({ hidden: y >= 10 });\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"distinctUntilKeyChanged\"])(\"hidden\"), Object(_react__WEBPACK_IMPORTED_MODULE_3__[\"applyTabs\"])(el));\n /* [screen -]: Unmount tabs below screen breakpoint */\n }\n else {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"of\"])({ hidden: true });\n }\n })); }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/tabs/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/tabs/index.ts": +/*!*********************************************************!*\ + !*** ./src/assets/javascripts/components/tabs/index.ts ***! + \*********************************************************/ +/*! exports provided: mountTabs, applyTabs, setTabsHidden, resetTabsHidden */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/tabs/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountTabs\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountTabs\"]; });\n\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ \"./src/assets/javascripts/components/tabs/react/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyTabs\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"applyTabs\"]; });\n\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./set */ \"./src/assets/javascripts/components/tabs/set/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setTabsHidden\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"setTabsHidden\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetTabsHidden\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetTabsHidden\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/tabs/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/tabs/react/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/components/tabs/react/index.ts ***! + \***************************************************************/ +/*! exports provided: applyTabs */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"applyTabs\", function() { return applyTabs; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../set */ \"./src/assets/javascripts/components/tabs/set/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Apply tabs\n *\n * @param el - Tabs element\n *\n * @return Operator function\n */\nfunction applyTabs(el) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"pipe\"])(\n /* Defer repaint to next animation frame */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"animationFrameScheduler\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"tap\"])(function (_a) {\n var hidden = _a.hidden;\n Object(_set__WEBPACK_IMPORTED_MODULE_2__[\"setTabsHidden\"])(el, hidden);\n }), \n /* Reset on complete or error */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"finalize\"])(function () {\n Object(_set__WEBPACK_IMPORTED_MODULE_2__[\"resetTabsHidden\"])(el);\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/tabs/react/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/tabs/set/index.ts": +/*!*************************************************************!*\ + !*** ./src/assets/javascripts/components/tabs/set/index.ts ***! + \*************************************************************/ +/*! exports provided: setTabsHidden, resetTabsHidden */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setTabsHidden\", function() { return setTabsHidden; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetTabsHidden\", function() { return resetTabsHidden; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set tabs hidden\n *\n * @param el - Tabs element\n * @param value - Whether the element is hidden\n */\nfunction setTabsHidden(el, value) {\n el.setAttribute(\"data-md-state\", value ? \"hidden\" : \"\");\n}\n/**\n * Reset tabs hidden\n *\n * @param el - Tabs element\n */\nfunction resetTabsHidden(el) {\n el.removeAttribute(\"data-md-state\");\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/tabs/set/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/toc/_/index.ts": +/*!**********************************************************!*\ + !*** ./src/assets/javascripts/components/toc/_/index.ts ***! + \**********************************************************/ +/*! exports provided: mountTableOfContents */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountTableOfContents\", function() { return mountTableOfContents; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../shared */ \"./src/assets/javascripts/components/shared/index.ts\");\n/* harmony import */ var _anchor__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../anchor */ \"./src/assets/javascripts/components/toc/anchor/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount table of contents from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nfunction mountTableOfContents(_a) {\n var header$ = _a.header$, main$ = _a.main$, viewport$ = _a.viewport$, tablet$ = _a.tablet$;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (el) { return tablet$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (tablet) {\n /* [tablet +]: Mount table of contents in sidebar */\n if (tablet) {\n var els = Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElements\"])(\".md-nav__link\", el);\n /* Watch and apply sidebar */\n var sidebar$ = Object(_shared__WEBPACK_IMPORTED_MODULE_4__[\"watchSidebar\"])(el, { main$: main$, viewport$: viewport$ })\n .pipe(Object(_shared__WEBPACK_IMPORTED_MODULE_4__[\"applySidebar\"])(el, { header$: header$ }));\n /* Watch and apply anchor list (scroll spy) */\n var anchors$ = Object(_anchor__WEBPACK_IMPORTED_MODULE_5__[\"watchAnchorList\"])(els, { header$: header$, viewport$: viewport$ })\n .pipe(Object(_anchor__WEBPACK_IMPORTED_MODULE_5__[\"applyAnchorList\"])(els));\n /* Combine into single hot observable */\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"combineLatest\"])([sidebar$, anchors$])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), sidebar = _b[0], anchors = _b[1];\n return ({ sidebar: sidebar, anchors: anchors });\n }));\n /* [tablet -]: Unmount table of contents */\n }\n else {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"of\"])({});\n }\n })); }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/toc/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/toc/anchor/_/index.ts": +/*!*****************************************************************!*\ + !*** ./src/assets/javascripts/components/toc/anchor/_/index.ts ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/toc/anchor/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/toc/anchor/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/components/toc/anchor/index.ts ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/toc/anchor/_/index.ts\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in ___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return ___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ \"./src/assets/javascripts/components/toc/anchor/react/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchAnchorList\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"watchAnchorList\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyAnchorList\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"applyAnchorList\"]; });\n\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./set */ \"./src/assets/javascripts/components/toc/anchor/set/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setAnchorBlur\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"setAnchorBlur\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetAnchorBlur\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetAnchorBlur\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setAnchorActive\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"setAnchorActive\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetAnchorActive\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetAnchorActive\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/toc/anchor/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/toc/anchor/react/index.ts": +/*!*********************************************************************!*\ + !*** ./src/assets/javascripts/components/toc/anchor/react/index.ts ***! + \*********************************************************************/ +/*! exports provided: watchAnchorList, applyAnchorList */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchAnchorList\", function() { return watchAnchorList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"applyAnchorList\", function() { return applyAnchorList; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/index.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../set */ \"./src/assets/javascripts/components/toc/anchor/set/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch anchor list\n *\n * This is effectively a scroll-spy implementation which will account for the\n * fixed header and automatically re-calculate anchor offsets when the viewport\n * is resized. The returned observable will only emit if the anchor list needs\n * to be repainted.\n *\n * This implementation tracks an anchor element's entire path starting from its\n * level up to the top-most anchor element, e.g. `[h3, h2, h1]`. Although the\n * Material theme currently doesn't make use of this information, it enables\n * the styling of the entire hierarchy through customization.\n *\n * Note that the current anchor is the last item of the `prev` anchor list.\n *\n * @param els - Anchor elements\n * @param options - Options\n *\n * @return Anchor list observable\n */\nfunction watchAnchorList(els, _a) {\n var e_1, _b;\n var header$ = _a.header$, viewport$ = _a.viewport$;\n var table = new Map();\n try {\n for (var els_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(els), els_1_1 = els_1.next(); !els_1_1.done; els_1_1 = els_1.next()) {\n var el = els_1_1.value;\n var id = decodeURIComponent(el.hash.substring(1));\n var target = Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"getElement\"])(\"[id=\\\"\" + id + \"\\\"]\");\n if (typeof target !== \"undefined\")\n table.set(el, target);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (els_1_1 && !els_1_1.done && (_b = els_1.return)) _b.call(els_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n /* Compute necessary adjustment for header */\n var adjust$ = header$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (header) { return 18 + header.height; }));\n /* Compute partition of previous and next anchors */\n var partition$ = Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"watchElementSize\"])(document.body)\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"distinctUntilKeyChanged\"])(\"height\"), \n /* Build index to map anchor paths to vertical offsets */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function () {\n var path = [];\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(table).reduce(function (index, _a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), anchor = _b[0], target = _b[1];\n while (path.length) {\n var last = table.get(path[path.length - 1]);\n if (last.tagName >= target.tagName) {\n path.pop();\n }\n else {\n break;\n }\n }\n /* If the current anchor is hidden, continue with its parent */\n var offset = target.offsetTop;\n while (!offset && target.parentElement) {\n target = target.parentElement;\n offset = target.offsetTop;\n }\n /* Map reversed anchor path to vertical offset */\n return index.set(Object(ramda__WEBPACK_IMPORTED_MODULE_1__[\"reverse\"])(path = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(path, [anchor])), offset);\n }, new Map());\n }), \n /* Re-compute partition when viewport offset changes */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"switchMap\"])(function (index) { return Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"combineLatest\"])([adjust$, viewport$])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"scan\"])(function (_a, _b) {\n var _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), prev = _c[0], next = _c[1];\n var _d = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_b, 2), adjust = _d[0], y = _d[1].offset.y;\n /* Look forward */\n while (next.length) {\n var _e = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(next[0], 2), offset = _e[1];\n if (offset - adjust < y) {\n prev = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(prev, [next.shift()]);\n }\n else {\n break;\n }\n }\n /* Look backward */\n while (prev.length) {\n var _f = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(prev[prev.length - 1], 2), offset = _f[1];\n if (offset - adjust >= y) {\n next = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])([prev.pop()], next);\n }\n else {\n break;\n }\n }\n /* Return partition */\n return [prev, next];\n }, [[], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(index)]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"distinctUntilChanged\"])(function (a, b) {\n return a[0] === b[0]\n && a[1] === b[1];\n })); }));\n /* Compute and return anchor list migrations */\n return partition$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), prev = _b[0], next = _b[1];\n return ({\n prev: prev.map(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 1), path = _b[0];\n return path;\n }),\n next: next.map(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 1), path = _b[0];\n return path;\n })\n });\n }), \n /* Extract anchor list migrations */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"startWith\"])({ prev: [], next: [] }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"bufferCount\"])(2, 1), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), a = _b[0], b = _b[1];\n /* Moving down */\n if (a.prev.length < b.prev.length) {\n return {\n prev: b.prev.slice(Math.max(0, a.prev.length - 1), b.prev.length),\n next: []\n };\n /* Moving up */\n }\n else {\n return {\n prev: b.prev.slice(-1),\n next: b.next.slice(0, b.next.length - a.next.length)\n };\n }\n }));\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Apply anchor list\n *\n * @param els - Anchor elements\n *\n * @return Operator function\n */\nfunction applyAnchorList(els) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"pipe\"])(\n /* Defer repaint to next animation frame */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"animationFrameScheduler\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"tap\"])(function (_a) {\n var e_2, _b;\n var prev = _a.prev, next = _a.next;\n try {\n /* Look forward */\n for (var next_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(next), next_1_1 = next_1.next(); !next_1_1.done; next_1_1 = next_1.next()) {\n var _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(next_1_1.value, 1), el = _c[0];\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"resetAnchorActive\"])(el);\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"resetAnchorBlur\"])(el);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (next_1_1 && !next_1_1.done && (_b = next_1.return)) _b.call(next_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n /* Look backward */\n prev.forEach(function (_a, index) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 1), el = _b[0];\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"setAnchorActive\"])(el, index === prev.length - 1);\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"setAnchorBlur\"])(el, true);\n });\n }), \n /* Reset on complete or error */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"finalize\"])(function () {\n var e_3, _a;\n try {\n for (var els_2 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(els), els_2_1 = els_2.next(); !els_2_1.done; els_2_1 = els_2.next()) {\n var el = els_2_1.value;\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"resetAnchorActive\"])(el);\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"resetAnchorBlur\"])(el);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (els_2_1 && !els_2_1.done && (_a = els_2.return)) _a.call(els_2);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/toc/anchor/react/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/toc/anchor/set/index.ts": +/*!*******************************************************************!*\ + !*** ./src/assets/javascripts/components/toc/anchor/set/index.ts ***! + \*******************************************************************/ +/*! exports provided: setAnchorBlur, resetAnchorBlur, setAnchorActive, resetAnchorActive */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setAnchorBlur\", function() { return setAnchorBlur; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetAnchorBlur\", function() { return resetAnchorBlur; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setAnchorActive\", function() { return setAnchorActive; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetAnchorActive\", function() { return resetAnchorActive; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set anchor blur\n *\n * @param el - Anchor element\n * @param value - Whether the anchor is blurred\n */\nfunction setAnchorBlur(el, value) {\n el.setAttribute(\"data-md-state\", value ? \"blur\" : \"\");\n}\n/**\n * Reset anchor blur\n *\n * @param el - Anchor element\n */\nfunction resetAnchorBlur(el) {\n el.removeAttribute(\"data-md-state\");\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Set anchor active\n *\n * @param el - Anchor element\n * @param value - Whether the anchor is active\n */\nfunction setAnchorActive(el, value) {\n el.classList.toggle(\"md-nav__link--active\", value);\n}\n/**\n * Reset anchor active\n *\n * @param el - Anchor element\n */\nfunction resetAnchorActive(el) {\n el.classList.remove(\"md-nav__link--active\");\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/toc/anchor/set/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/toc/index.ts": +/*!********************************************************!*\ + !*** ./src/assets/javascripts/components/toc/index.ts ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/toc/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountTableOfContents\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountTableOfContents\"]; });\n\n/* harmony import */ var _anchor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./anchor */ \"./src/assets/javascripts/components/toc/anchor/index.ts\");\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _anchor__WEBPACK_IMPORTED_MODULE_1__) if([\"mountTableOfContents\",\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _anchor__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/toc/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/index.ts": +/*!*****************************************!*\ + !*** ./src/assets/javascripts/index.ts ***! + \*****************************************/ +/*! exports provided: setScrollLock, resetScrollLock, initialize */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setScrollLock\", function() { return setScrollLock; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetScrollLock\", function() { return resetScrollLock; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"initialize\", function() { return initialize; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/index.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_ajax__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/ajax */ \"./node_modules/rxjs/dist/esm5/ajax/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var components__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! components */ \"./src/assets/javascripts/components/index.ts\");\n/* harmony import */ var integrations__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! integrations */ \"./src/assets/javascripts/integrations/index.ts\");\n/* harmony import */ var patches__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! patches */ \"./src/assets/javascripts/patches/index.ts\");\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n// DISCLAIMER: this file is still WIP. There're some refactoring opportunities\n// which must be tackled after we gathered some feedback on v5.\n// tslint:disable\n\n\n\n\n\n\n\n\n\n/* ------------------------------------------------------------------------- */\n/* Denote that JavaScript is available */\ndocument.documentElement.classList.remove(\"no-js\");\ndocument.documentElement.classList.add(\"js\");\n/* Test for iOS */\nif (navigator.userAgent.match(/(iPad|iPhone|iPod)/g))\n document.documentElement.classList.add(\"ios\");\n/**\n * Set scroll lock\n *\n * @param el - Scrollable element\n * @param value - Vertical offset\n */\nfunction setScrollLock(el, value) {\n el.setAttribute(\"data-md-state\", \"lock\");\n el.style.top = \"-\" + value + \"px\";\n}\n/**\n * Reset scroll lock\n *\n * @param el - Scrollable element\n */\nfunction resetScrollLock(el) {\n var value = -1 * parseInt(el.style.top, 10);\n el.removeAttribute(\"data-md-state\");\n el.style.top = \"\";\n if (value)\n window.scrollTo(0, value);\n}\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Initialize Material for MkDocs\n *\n * @param config - Configuration\n */\nfunction initialize(config) {\n if (!Object(utilities__WEBPACK_IMPORTED_MODULE_9__[\"isConfig\"])(config))\n throw new SyntaxError(\"Invalid configuration: \" + JSON.stringify(config));\n /* Set up subjects */\n var document$ = Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"watchDocument\"])();\n var location$ = Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"watchLocation\"])();\n /* Set up user interface observables */\n var base$ = Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"watchLocationBase\"])(config.base, { location$: location$ });\n var hash$ = Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"watchLocationHash\"])();\n var viewport$ = Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"watchViewport\"])();\n var tablet$ = Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"watchMedia\"])(\"(min-width: 960px)\");\n var screen$ = Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"watchMedia\"])(\"(min-width: 1220px)\");\n /* ----------------------------------------------------------------------- */\n /* Set up component bindings */\n Object(components__WEBPACK_IMPORTED_MODULE_6__[\"setupComponents\"])([\n \"announce\",\n \"container\",\n \"header\",\n \"header-title\",\n \"hero\",\n \"main\",\n \"navigation\",\n \"search\",\n \"search-query\",\n \"search-reset\",\n \"search-result\",\n \"skip\",\n \"tabs\",\n \"toc\" /* Table of contents */\n ], { document$: document$ });\n var keyboard$ = Object(integrations__WEBPACK_IMPORTED_MODULE_7__[\"setupKeyboard\"])();\n Object(patches__WEBPACK_IMPORTED_MODULE_8__[\"patchDetails\"])({ document$: document$, hash$: hash$ });\n Object(patches__WEBPACK_IMPORTED_MODULE_8__[\"patchScripts\"])({ document$: document$ });\n Object(patches__WEBPACK_IMPORTED_MODULE_8__[\"patchSource\"])({ document$: document$ });\n Object(patches__WEBPACK_IMPORTED_MODULE_8__[\"patchTables\"])({ document$: document$ });\n /* Force 1px scroll offset to trigger overflow scrolling */\n Object(patches__WEBPACK_IMPORTED_MODULE_8__[\"patchScrollfix\"])({ document$: document$ });\n /* Set up clipboard and dialog */\n var dialog$ = Object(integrations__WEBPACK_IMPORTED_MODULE_7__[\"setupDialog\"])();\n var clipboard$ = Object(integrations__WEBPACK_IMPORTED_MODULE_7__[\"setupClipboard\"])({ document$: document$, dialog$: dialog$ });\n /* ----------------------------------------------------------------------- */\n /* Create header observable */\n var header$ = Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"header\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountHeader\"])({ document$: document$, viewport$: viewport$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1));\n var main$ = Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"main\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountMain\"])({ header$: header$, viewport$: viewport$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1));\n /* ----------------------------------------------------------------------- */\n var navigation$ = Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"navigation\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountNavigation\"])({ header$: header$, main$: main$, viewport$: viewport$, screen$: screen$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1) // shareReplay because there might be late subscribers\n );\n var toc$ = Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"toc\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountTableOfContents\"])({ header$: header$, main$: main$, viewport$: viewport$, tablet$: tablet$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1));\n var tabs$ = Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"tabs\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountTabs\"])({ header$: header$, viewport$: viewport$, screen$: screen$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1));\n var hero$ = Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"hero\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountHero\"])({ header$: header$, viewport$: viewport$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1));\n /* ----------------------------------------------------------------------- */\n /* Search worker */\n var worker$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"defer\"])(function () {\n var index = config.search && config.search.index\n ? config.search.index\n : undefined;\n /* Fetch index if it wasn't passed explicitly */\n var index$ = typeof index !== \"undefined\"\n ? Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"from\"])(index)\n : base$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"switchMap\"])(function (base) { return Object(rxjs_ajax__WEBPACK_IMPORTED_MODULE_3__[\"ajax\"])({\n url: base + \"/search/search_index.json\",\n responseType: \"json\",\n withCredentials: true\n })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"pluck\"])(\"response\")); }));\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"of\"])(Object(integrations__WEBPACK_IMPORTED_MODULE_7__[\"setupSearchWorker\"])(config.search.worker, {\n base$: base$, index$: index$\n }));\n });\n /* ----------------------------------------------------------------------- */\n /* Mount search query */\n var search$ = worker$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"switchMap\"])(function (worker) {\n var query$ = Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"search-query\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountSearchQuery\"])(worker, { transform: config.search.transform }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1));\n /* Mount search reset */\n var reset$ = Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"search-reset\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountSearchReset\"])(), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1));\n /* Mount search result */\n var result$ = Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"search-result\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountSearchResult\"])(worker, { query$: query$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1));\n return Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"search\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountSearch\"])(worker, { query$: query$, reset$: reset$, result$: result$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1));\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"catchError\"])(function () {\n Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"search\")\n .subscribe(function (el) { return el.hidden = true; }); // TODO: Hack\n return rxjs__WEBPACK_IMPORTED_MODULE_2__[\"NEVER\"];\n }));\n /* ----------------------------------------------------------------------- */\n // // put into search...\n hash$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"tap\"])(function () { return Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"setToggle\"])(\"search\", false); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"delay\"])(125))\n .subscribe(function (hash) { return Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"setLocationHash\"])(\"#\" + hash); });\n // TODO: scroll restoration must be centralized\n Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"combineLatest\"])([\n Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"watchToggle\"])(\"search\"),\n tablet$,\n ])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"withLatestFrom\"])(viewport$), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"switchMap\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_b[0], 2), toggle = _c[0], tablet = _c[1], y = _b[1].offset.y;\n var active = toggle && !tablet;\n return document$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"delay\"])(active ? 400 : 100), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"animationFrameScheduler\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"tap\"])(function (_a) {\n var body = _a.body;\n return active\n ? setScrollLock(body, y)\n : resetScrollLock(body);\n }));\n }))\n .subscribe();\n /* ----------------------------------------------------------------------- */\n /* Always close drawer on click */\n Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"fromEvent\"])(document.body, \"click\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"filter\"])(function (ev) { return !(ev.metaKey || ev.ctrlKey); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"filter\"])(function (ev) {\n if (ev.target instanceof HTMLElement) {\n var el = ev.target.closest(\"a\"); // TODO: abstract as link click?\n if (el && Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"isLocalLocation\"])(el)) {\n return true;\n }\n }\n return false;\n }))\n .subscribe(function () {\n Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"setToggle\"])(\"drawer\", false);\n });\n /* Enable instant loading, if not on file:// protocol */\n if (config.features.includes(\"instant\") && location.protocol !== \"file:\")\n Object(integrations__WEBPACK_IMPORTED_MODULE_7__[\"setupInstantLoading\"])({ document$: document$, location$: location$, viewport$: viewport$ });\n /* ----------------------------------------------------------------------- */\n /* Unhide permalinks on first tab */\n keyboard$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"filter\"])(function (key) { return key.mode === \"global\" && key.type === \"Tab\"; }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"take\"])(1))\n .subscribe(function () {\n var e_1, _a;\n try {\n for (var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"getElements\"])(\".headerlink\")), _c = _b.next(); !_c.done; _c = _b.next()) {\n var link = _c.value;\n link.style.visibility = \"visible\";\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n });\n /* ----------------------------------------------------------------------- */\n var state = {\n /* Browser observables */\n document$: document$,\n location$: location$,\n viewport$: viewport$,\n /* Component observables */\n header$: header$,\n hero$: hero$,\n main$: main$,\n navigation$: navigation$,\n search$: search$,\n tabs$: tabs$,\n toc$: toc$,\n /* Integration observables */\n clipboard$: clipboard$,\n keyboard$: keyboard$,\n dialog$: dialog$\n };\n /* Subscribe to all observables */\n rxjs__WEBPACK_IMPORTED_MODULE_2__[\"merge\"].apply(void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(Object(ramda__WEBPACK_IMPORTED_MODULE_1__[\"values\"])(state))).subscribe();\n return state;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/clipboard/index.ts": +/*!****************************************************************!*\ + !*** ./src/assets/javascripts/integrations/clipboard/index.ts ***! + \****************************************************************/ +/*! exports provided: setupClipboard */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupClipboard\", function() { return setupClipboard; });\n/* harmony import */ var clipboard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! clipboard */ \"./node_modules/clipboard/dist/clipboard.js\");\n/* harmony import */ var clipboard__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(clipboard__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var templates__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! templates */ \"./src/assets/javascripts/templates/index.ts\");\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set up clipboard\n *\n * This function implements the Clipboard.js integration and injects a button\n * into all code blocks when the document changes.\n *\n * @param options - Options\n *\n * @return Clipboard observable\n */\nfunction setupClipboard(_a) {\n var document$ = _a.document$, dialog$ = _a.dialog$;\n if (!clipboard__WEBPACK_IMPORTED_MODULE_0__[\"isSupported\"]())\n return rxjs__WEBPACK_IMPORTED_MODULE_1__[\"NEVER\"];\n /* Inject 'copy-to-clipboard' buttons */\n document$.subscribe(function () {\n var blocks = Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElements\"])(\"pre > code\");\n blocks.forEach(function (block, index) {\n var parent = block.parentElement;\n parent.id = \"__code_\" + index;\n parent.insertBefore(Object(templates__WEBPACK_IMPORTED_MODULE_4__[\"renderClipboardButton\"])(parent.id), block);\n });\n });\n /* Initialize clipboard */\n var clipboard$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"fromEventPattern\"])(function (next) {\n new clipboard__WEBPACK_IMPORTED_MODULE_0__(\".md-clipboard\").on(\"success\", next);\n })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"share\"])());\n /* Display notification for clipboard event */\n clipboard$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"tap\"])(function (ev) { return ev.clearSelection(); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"mapTo\"])(Object(utilities__WEBPACK_IMPORTED_MODULE_5__[\"translate\"])(\"clipboard.copied\")))\n .subscribe(dialog$);\n /* Return clipboard */\n return clipboard$;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/clipboard/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/dialog/index.ts": +/*!*************************************************************!*\ + !*** ./src/assets/javascripts/integrations/dialog/index.ts ***! + \*************************************************************/ +/*! exports provided: setupDialog */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupDialog\", function() { return setupDialog; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set up dialog\n *\n * @param options - Options\n *\n * @return Dialog observable\n */\nfunction setupDialog(_a) {\n var duration = (_a === void 0 ? {} : _a).duration;\n var dialog$ = new rxjs__WEBPACK_IMPORTED_MODULE_0__[\"Subject\"]();\n /* Create dialog */\n var dialog = Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"])(\"div\"); // TODO: improve scoping\n dialog.classList.add(\"md-dialog\", \"md-typeset\");\n /* Display dialog */\n dialog$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (text) { return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"of\"])(document.body) // useComponent(\"container\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (container) { return container.appendChild(dialog); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"animationFrameScheduler\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"delay\"])(1), // Strangley it doesnt work when we push things to the new animation frame...\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"tap\"])(function (el) {\n el.innerHTML = text;\n el.setAttribute(\"data-md-state\", \"open\");\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"delay\"])(duration || 2000), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"tap\"])(function (el) { return el.removeAttribute(\"data-md-state\"); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"delay\"])(400), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"tap\"])(function (el) {\n el.innerHTML = \"\";\n el.remove();\n })); }))\n .subscribe();\n /* Return dialog */\n return dialog$;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/dialog/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/index.ts": +/*!******************************************************!*\ + !*** ./src/assets/javascripts/integrations/index.ts ***! + \******************************************************/ +/*! exports provided: setupClipboard, setupDialog, setupInstantLoading, setupKeyboard, Search, setupSearchDocumentMap, setupSearchHighlighter, defaultTransform, setupSearchWorker, SearchMessageType, isSearchSetupMessage, isSearchReadyMessage, isSearchQueryMessage, isSearchResultMessage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _clipboard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./clipboard */ \"./src/assets/javascripts/integrations/clipboard/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupClipboard\", function() { return _clipboard__WEBPACK_IMPORTED_MODULE_0__[\"setupClipboard\"]; });\n\n/* harmony import */ var _dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dialog */ \"./src/assets/javascripts/integrations/dialog/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupDialog\", function() { return _dialog__WEBPACK_IMPORTED_MODULE_1__[\"setupDialog\"]; });\n\n/* harmony import */ var _instant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./instant */ \"./src/assets/javascripts/integrations/instant/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupInstantLoading\", function() { return _instant__WEBPACK_IMPORTED_MODULE_2__[\"setupInstantLoading\"]; });\n\n/* harmony import */ var _keyboard__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./keyboard */ \"./src/assets/javascripts/integrations/keyboard/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupKeyboard\", function() { return _keyboard__WEBPACK_IMPORTED_MODULE_3__[\"setupKeyboard\"]; });\n\n/* harmony import */ var _search__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./search */ \"./src/assets/javascripts/integrations/search/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Search\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"Search\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupSearchDocumentMap\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"setupSearchDocumentMap\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupSearchHighlighter\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"setupSearchHighlighter\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"defaultTransform\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"defaultTransform\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupSearchWorker\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"setupSearchWorker\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SearchMessageType\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"SearchMessageType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchSetupMessage\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"isSearchSetupMessage\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchReadyMessage\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"isSearchReadyMessage\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchQueryMessage\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"isSearchQueryMessage\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchResultMessage\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"isSearchResultMessage\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/instant/index.ts": +/*!**************************************************************!*\ + !*** ./src/assets/javascripts/integrations/instant/index.ts ***! + \**************************************************************/ +/*! exports provided: setupInstantLoading */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupInstantLoading\", function() { return setupInstantLoading; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_ajax__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs//ajax */ \"./node_modules/rxjs/dist/esm5/ajax/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set up instant loading\n *\n * When fetching, theoretically, we could use `responseType: \"document\"`, but\n * since all MkDocs links are relative, we need to make sure that the current\n * location matches the document we just loaded. Otherwise any relative links\n * in the document could use the old location.\n *\n * This is the reason why we need to synchronize history events and the process\n * of fetching the document for navigation changes (except `popstate` events):\n *\n * 1. Fetch document via `XMLHTTPRequest`\n * 2. Set new location via `history.pushState`\n * 3. Parse and emit fetched document\n *\n * For `popstate` events, we must not use `history.pushState`, or the forward\n * history will be irreversibly overwritten. In case the request fails, the\n * location change is dispatched regularly.\n *\n * @param options - Options\n */\nfunction setupInstantLoading(_a) {\n var document$ = _a.document$, viewport$ = _a.viewport$, location$ = _a.location$;\n /* Disable automatic scroll restoration */\n if (\"scrollRestoration\" in history)\n history.scrollRestoration = \"manual\";\n /* Hack: ensure that reloads restore viewport offset */\n Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"fromEvent\"])(window, \"beforeunload\")\n .subscribe(function () {\n history.scrollRestoration = \"auto\";\n });\n /* Hack: ensure absolute favicon link to omit 404s on document switch */\n var favicon = Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"getElement\"])(\"link[rel=\\\"shortcut icon\\\"]\");\n if (typeof favicon !== \"undefined\")\n favicon.href = favicon.href; // tslint:disable-line no-self-assignment\n /* Intercept link clicks and convert to state change */\n var state$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"fromEvent\"])(document.body, \"click\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"filter\"])(function (ev) { return !(ev.metaKey || ev.ctrlKey); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"switchMap\"])(function (ev) {\n if (ev.target instanceof HTMLElement) {\n var el = ev.target.closest(\"a\");\n if (el && !el.target && Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"isLocalLocation\"])(el)) {\n if (!Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"isAnchorLocation\"])(el))\n ev.preventDefault();\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"of\"])(el);\n }\n }\n return rxjs__WEBPACK_IMPORTED_MODULE_1__[\"NEVER\"];\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (el) { return ({ url: new URL(el.href) }); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"share\"])());\n /* Always close search on link click */\n state$.subscribe(function () {\n Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"setToggle\"])(\"search\", false);\n });\n /* Filter state changes to dispatch */\n var push$ = state$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"filter\"])(function (_a) {\n var url = _a.url;\n return !Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"isAnchorLocation\"])(url);\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"share\"])());\n /* Intercept popstate events (history back and forward) */\n var pop$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"fromEvent\"])(window, \"popstate\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"filter\"])(function (ev) { return ev.state !== null; }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (ev) { return ({\n url: new URL(location.href),\n offset: ev.state\n }); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"share\"])());\n /* Emit location change */\n Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"merge\"])(push$, pop$)\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"distinctUntilChanged\"])(function (prev, next) { return prev.url.href === next.url.href; }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"pluck\"])(\"url\"))\n .subscribe(location$);\n /* Fetch document on location change */\n var ajax$ = location$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"distinctUntilKeyChanged\"])(\"pathname\"), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"skip\"])(1), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"switchMap\"])(function (url) { return Object(rxjs_ajax__WEBPACK_IMPORTED_MODULE_2__[\"ajax\"])({\n url: url.href,\n responseType: \"text\",\n withCredentials: true\n })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"catchError\"])(function () {\n Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"setLocation\"])(url);\n return rxjs__WEBPACK_IMPORTED_MODULE_1__[\"NEVER\"];\n })); }));\n /* Set new location as soon as the document was fetched */\n push$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"sample\"])(ajax$))\n .subscribe(function (_a) {\n var url = _a.url;\n history.pushState({}, \"\", url.toString());\n });\n /* Parse and emit document */\n var dom = new DOMParser();\n ajax$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (_a) {\n var response = _a.response;\n return dom.parseFromString(response, \"text/html\");\n }))\n .subscribe(document$);\n /* Intercept instant loading */\n var instant$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"merge\"])(push$, pop$)\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"sample\"])(document$));\n // TODO: this must be combined with search scroll restoration on mobile\n instant$.subscribe(function (_a) {\n var url = _a.url, offset = _a.offset;\n if (url.hash && !offset) {\n Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"setLocationHash\"])(url.hash);\n }\n else {\n Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"setViewportOffset\"])(offset || { y: 0 });\n }\n });\n /* Replace document metadata */\n instant$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"withLatestFrom\"])(document$))\n .subscribe(function (_a) {\n var e_1, _b;\n var _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), _d = _c[1], title = _d.title, head = _d.head;\n document.dispatchEvent(new CustomEvent(\"DOMContentSwitch\"));\n document.title = title;\n try {\n /* Replace meta tags */\n for (var _e = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])([\n \"link[rel=\\\"canonical\\\"]\",\n \"meta[name=\\\"author\\\"]\",\n \"meta[name=\\\"description\\\"]\"\n ]), _f = _e.next(); !_f.done; _f = _e.next()) {\n var selector = _f.value;\n var next = Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"getElement\"])(selector, head);\n var prev = Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"getElement\"])(selector, document.head);\n if (typeof next !== \"undefined\" &&\n typeof prev !== \"undefined\") {\n Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"replaceElement\"])(prev, next);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_1) throw e_1.error; }\n }\n });\n /* Debounce update of viewport offset */\n viewport$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"debounceTime\"])(250), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"distinctUntilKeyChanged\"])(\"offset\"))\n .subscribe(function (_a) {\n var offset = _a.offset;\n history.replaceState(offset, \"\");\n });\n /* Set viewport offset from history */\n Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"merge\"])(state$, pop$)\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"bufferCount\"])(2, 1), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"filter\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), prev = _b[0], next = _b[1];\n return prev.url.pathname === next.url.pathname\n && !Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"isAnchorLocation\"])(next.url);\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), state = _b[1];\n return state;\n }))\n .subscribe(function (_a) {\n var offset = _a.offset;\n Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"setViewportOffset\"])(offset || { y: 0 });\n });\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/instant/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/keyboard/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/integrations/keyboard/index.ts ***! + \***************************************************************/ +/*! exports provided: setupKeyboard */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupKeyboard\", function() { return setupKeyboard; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! components */ \"./src/assets/javascripts/components/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set up keyboard\n *\n * This function will set up the keyboard handlers and ensure that keys are\n * correctly propagated. Currently there are two modes:\n *\n * - `global`: This mode is active when the search is closed. It is intended\n * to assign hotkeys to specific functions of the site. Currently the search,\n * previous and next page can be triggered.\n *\n * - `search`: This mode is active when the search is open. It maps certain\n * navigational keys to offer search results that can be entirely navigated\n * through keyboard input.\n *\n * The keyboard observable is returned and can be used to monitor the keyboard\n * in order toassign further hotkeys to custom functions.\n *\n * @return Keyboard observable\n */\nfunction setupKeyboard() {\n var keyboard$ = Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"watchKeyboard\"])()\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (key) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({ mode: Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"getToggle\"])(\"search\") ? \"search\" : \"global\" }, key)); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(function (_a) {\n var mode = _a.mode;\n if (mode === \"global\") {\n var active = Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"getActiveElement\"])();\n if (typeof active !== \"undefined\")\n return !Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"isSusceptibleToKeyboard\"])(active);\n }\n return true;\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"share\"])());\n /* Set up search keyboard handlers */\n keyboard$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(function (_a) {\n var mode = _a.mode;\n return mode === \"search\";\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"withLatestFrom\"])(Object(components__WEBPACK_IMPORTED_MODULE_3__[\"useComponent\"])(\"search-query\"), Object(components__WEBPACK_IMPORTED_MODULE_3__[\"useComponent\"])(\"search-result\")))\n .subscribe(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 3), key = _b[0], query = _b[1], result = _b[2];\n var active = Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"getActiveElement\"])();\n switch (key.type) {\n /* Enter: prevent form submission */\n case \"Enter\":\n if (active === query)\n key.claim();\n break;\n /* Escape or Tab: close search */\n case \"Escape\":\n case \"Tab\":\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"setToggle\"])(\"search\", false);\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"setElementFocus\"])(query, false);\n break;\n /* Vertical arrows: select previous or next search result */\n case \"ArrowUp\":\n case \"ArrowDown\":\n if (typeof active === \"undefined\") {\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"setElementFocus\"])(query);\n }\n else {\n var els = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])([query], Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"getElements\"])(\"[href]\", result));\n var i = Math.max(0, (Math.max(0, els.indexOf(active)) + els.length + (key.type === \"ArrowUp\" ? -1 : +1)) % els.length);\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"setElementFocus\"])(els[i]);\n }\n /* Prevent scrolling of page */\n key.claim();\n break;\n /* All other keys: hand to search query */\n default:\n if (query !== Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"getActiveElement\"])())\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"setElementFocus\"])(query);\n }\n });\n /* Set up global keyboard handlers */\n keyboard$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(function (_a) {\n var mode = _a.mode;\n return mode === \"global\";\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"withLatestFrom\"])(Object(components__WEBPACK_IMPORTED_MODULE_3__[\"useComponent\"])(\"search-query\")))\n .subscribe(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), key = _b[0], query = _b[1];\n switch (key.type) {\n /* Open search and select query */\n case \"f\":\n case \"s\":\n case \"/\":\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"setElementFocus\"])(query);\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"setElementSelection\"])(query);\n key.claim();\n break;\n /* Go to previous page */\n case \"p\":\n case \",\":\n var prev = Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"getElement\"])(\"[href][rel=prev]\");\n if (typeof prev !== \"undefined\")\n prev.click();\n break;\n /* Go to next page */\n case \"n\":\n case \".\":\n var next = Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"getElement\"])(\"[href][rel=next]\");\n if (typeof next !== \"undefined\")\n next.click();\n break;\n }\n });\n /* Return keyboard */\n return keyboard$;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/keyboard/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/_/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/_/index.ts ***! + \***************************************************************/ +/*! exports provided: Search */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Search\", function() { return Search; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _document__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../document */ \"./src/assets/javascripts/integrations/search/document/index.ts\");\n/* harmony import */ var _highlighter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../highlighter */ \"./src/assets/javascripts/integrations/search/highlighter/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Class\n * ------------------------------------------------------------------------- */\n/**\n * Search\n *\n * Note that `lunr` is injected via Webpack, as it will otherwise also be\n * bundled in the application bundle.\n */\nvar Search = /** @class */ (function () {\n /**\n * Create the search integration\n *\n * @param data - Search index\n */\n function Search(_a) {\n var config = _a.config, docs = _a.docs, pipeline = _a.pipeline, index = _a.index;\n this.documents = Object(_document__WEBPACK_IMPORTED_MODULE_1__[\"setupSearchDocumentMap\"])(docs);\n this.highlight = Object(_highlighter__WEBPACK_IMPORTED_MODULE_2__[\"setupSearchHighlighter\"])(config);\n /* If no index was given, create it */\n if (typeof index === \"undefined\") {\n this.index = lunr(function () {\n var e_1, _a, _b, e_2, _c;\n pipeline = pipeline || [\"trimmer\", \"stopWordFilter\"];\n /* Set up pipeline according to configuration */\n this.pipeline.reset();\n try {\n for (var pipeline_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(pipeline), pipeline_1_1 = pipeline_1.next(); !pipeline_1_1.done; pipeline_1_1 = pipeline_1.next()) {\n var fn = pipeline_1_1.value;\n this.pipeline.add(lunr[fn]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (pipeline_1_1 && !pipeline_1_1.done && (_a = pipeline_1.return)) _a.call(pipeline_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n /* Set up alternate search languages */\n if (config.lang.length === 1 && config.lang[0] !== \"en\") {\n this.use(lunr[config.lang[0]]);\n }\n else if (config.lang.length > 1) {\n this.use((_b = lunr).multiLanguage.apply(_b, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(config.lang)));\n }\n /* Set up fields and reference */\n this.field(\"title\", { boost: 1000 });\n this.field(\"text\");\n this.ref(\"location\");\n try {\n /* Index documents */\n for (var docs_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(docs), docs_1_1 = docs_1.next(); !docs_1_1.done; docs_1_1 = docs_1.next()) {\n var doc = docs_1_1.value;\n this.add(doc);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (docs_1_1 && !docs_1_1.done && (_c = docs_1.return)) _c.call(docs_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n });\n /* Prebuilt or serialized index */\n }\n else {\n this.index = lunr.Index.load(typeof index === \"string\"\n ? JSON.parse(index)\n : index);\n }\n }\n /**\n * Search for matching documents\n *\n * The search index which MkDocs provides is divided up into articles, which\n * contain the whole content of the individual pages, and sections, which only\n * contain the contents of the subsections obtained by breaking the individual\n * pages up at `h1` ... `h6`. As there may be many sections on different pages\n * with identical titles (for example within this very project, e.g. \"Usage\"\n * or \"Installation\"), they need to be put into the context of the containing\n * page. For this reason, section results are grouped within their respective\n * articles which are the top-level results that are returned.\n *\n * @param value - Query value\n *\n * @return Search results\n */\n Search.prototype.query = function (value) {\n var _this = this;\n if (value) {\n try {\n /* Group sections by containing article */\n var groups = this.index.search(value)\n .reduce(function (results, result) {\n var document = _this.documents.get(result.ref);\n if (typeof document !== \"undefined\") {\n if (\"parent\" in document) {\n var ref = document.parent.location;\n results.set(ref, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(results.get(ref) || [], [result]));\n }\n else {\n var ref = document.location;\n results.set(ref, results.get(ref) || []);\n }\n }\n return results;\n }, new Map());\n /* Create highlighter for query */\n var fn_1 = this.highlight(value);\n /* Map groups to search documents */\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(groups).map(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), ref = _b[0], sections = _b[1];\n return ({\n article: fn_1(_this.documents.get(ref)),\n sections: sections.map(function (section) {\n return fn_1(_this.documents.get(section.ref));\n })\n });\n });\n /* Log errors to console (for now) */\n }\n catch (err) {\n // tslint:disable-next-line no-console\n console.warn(\"Invalid query: \" + value + \" \\u2013 see https://bit.ly/2s3ChXG\");\n }\n }\n /* Return nothing in case of error or empty query */\n return [];\n };\n return Search;\n}());\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/document/index.ts": +/*!**********************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/document/index.ts ***! + \**********************************************************************/ +/*! exports provided: setupSearchDocumentMap */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupSearchDocumentMap\", function() { return setupSearchDocumentMap; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var escape_html__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! escape-html */ \"./node_modules/escape-html/index.js\");\n/* harmony import */ var escape_html__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(escape_html__WEBPACK_IMPORTED_MODULE_1__);\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Create a search document mapping\n *\n * @param docs - Search index documents\n *\n * @return Search document map\n */\nfunction setupSearchDocumentMap(docs) {\n var e_1, _a;\n var documents = new Map();\n try {\n for (var docs_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(docs), docs_1_1 = docs_1.next(); !docs_1_1.done; docs_1_1 = docs_1.next()) {\n var doc = docs_1_1.value;\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(doc.location.split(\"#\"), 2), path = _b[0], hash = _b[1];\n /* Extract location and title */\n var location = doc.location;\n var title = doc.title;\n /* Escape and cleanup text */\n var text = escape_html__WEBPACK_IMPORTED_MODULE_1__(doc.text)\n .replace(/\\s+(?=[,.:;!?])/g, \"\")\n .replace(/\\s+/g, \" \");\n /* Handle section */\n if (hash) {\n var parent = documents.get(path);\n /* Ignore first section, override article */\n if (!parent.linked) {\n parent.title = doc.title;\n parent.text = text;\n parent.linked = true;\n /* Add subsequent section */\n }\n else {\n documents.set(location, {\n location: location,\n title: title,\n text: text,\n parent: parent\n });\n }\n /* Add article */\n }\n else {\n documents.set(location, {\n location: location,\n title: title,\n text: text,\n linked: false\n });\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (docs_1_1 && !docs_1_1.done && (_a = docs_1.return)) _a.call(docs_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return documents;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/document/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/highlighter/index.ts": +/*!*************************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/highlighter/index.ts ***! + \*************************************************************************/ +/*! exports provided: setupSearchHighlighter */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupSearchHighlighter\", function() { return setupSearchHighlighter; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Create a search highlighter\n *\n * @param config - Search index configuration\n *\n * @return Search highlight factory function\n */\nfunction setupSearchHighlighter(config) {\n var separator = new RegExp(config.separator, \"img\");\n var highlight = function (_, data, term) {\n return data + \"\" + term + \"\";\n };\n /* Return factory function */\n return function (value) {\n value = value\n .replace(/[\\s*+-:~^]+/g, \" \")\n .trim();\n /* Create search term match expression */\n var match = new RegExp(\"(^|\" + config.separator + \")(\" + value\n .replace(/[|\\\\{}()[\\]^$+*?.-]/g, \"\\\\$&\")\n .replace(separator, \"|\") + \")\", \"img\");\n /* Highlight document */\n return function (document) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({}, document), { title: document.title.replace(match, highlight), text: document.text.replace(match, highlight) })); };\n };\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/highlighter/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/index.ts": +/*!*************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/index.ts ***! + \*************************************************************/ +/*! exports provided: Search, setupSearchDocumentMap, setupSearchHighlighter, defaultTransform, setupSearchWorker, SearchMessageType, isSearchSetupMessage, isSearchReadyMessage, isSearchQueryMessage, isSearchResultMessage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/integrations/search/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Search\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"Search\"]; });\n\n/* harmony import */ var _document__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./document */ \"./src/assets/javascripts/integrations/search/document/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupSearchDocumentMap\", function() { return _document__WEBPACK_IMPORTED_MODULE_1__[\"setupSearchDocumentMap\"]; });\n\n/* harmony import */ var _highlighter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./highlighter */ \"./src/assets/javascripts/integrations/search/highlighter/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupSearchHighlighter\", function() { return _highlighter__WEBPACK_IMPORTED_MODULE_2__[\"setupSearchHighlighter\"]; });\n\n/* harmony import */ var _transform__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./transform */ \"./src/assets/javascripts/integrations/search/transform/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"defaultTransform\", function() { return _transform__WEBPACK_IMPORTED_MODULE_3__[\"defaultTransform\"]; });\n\n/* harmony import */ var _worker__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./worker */ \"./src/assets/javascripts/integrations/search/worker/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupSearchWorker\", function() { return _worker__WEBPACK_IMPORTED_MODULE_4__[\"setupSearchWorker\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SearchMessageType\", function() { return _worker__WEBPACK_IMPORTED_MODULE_4__[\"SearchMessageType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchSetupMessage\", function() { return _worker__WEBPACK_IMPORTED_MODULE_4__[\"isSearchSetupMessage\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchReadyMessage\", function() { return _worker__WEBPACK_IMPORTED_MODULE_4__[\"isSearchReadyMessage\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchQueryMessage\", function() { return _worker__WEBPACK_IMPORTED_MODULE_4__[\"isSearchQueryMessage\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchResultMessage\", function() { return _worker__WEBPACK_IMPORTED_MODULE_4__[\"isSearchResultMessage\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/transform/index.ts": +/*!***********************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/transform/index.ts ***! + \***********************************************************************/ +/*! exports provided: defaultTransform */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultTransform\", function() { return defaultTransform; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Default transformation function\n *\n * Rogue control characters are filtered before handing the query to the\n * search index, as `lunr` will throw otherwise.\n *\n * @param value - Query value\n *\n * @return Transformed query value\n */\nfunction defaultTransform(value) {\n return value\n .replace(/(?:^|\\s+)[*+-:^~]+(?=\\s+|$)/g, \"\")\n .trim()\n .replace(/\\s+|\\b$/g, \"* \");\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/transform/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/worker/_/index.ts": +/*!**********************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/worker/_/index.ts ***! + \**********************************************************************/ +/*! exports provided: setupSearchWorker */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupSearchWorker\", function() { return setupSearchWorker; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/index.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/* harmony import */ var _message__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../message */ \"./src/assets/javascripts/integrations/search/worker/message/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n/**\n * Set up search index\n *\n * @param data - Search index\n *\n * @return Search index\n */\nfunction setupSearchIndex(_a) {\n var config = _a.config, docs = _a.docs, index = _a.index;\n /* Override default language with value from translation */\n if (config.lang.length === 1 && config.lang[0] === \"en\")\n config.lang = [Object(utilities__WEBPACK_IMPORTED_MODULE_5__[\"translate\"])(\"search.config.lang\")];\n /* Override default separator with value from translation */\n if (config.separator === \"[\\s\\-]+\")\n config.separator = Object(utilities__WEBPACK_IMPORTED_MODULE_5__[\"translate\"])(\"search.config.separator\");\n /* Set pipeline from translation */\n var pipeline = Object(utilities__WEBPACK_IMPORTED_MODULE_5__[\"translate\"])(\"search.config.pipeline\")\n .split(/\\s*,\\s*/)\n .filter(ramda__WEBPACK_IMPORTED_MODULE_1__[\"identity\"]);\n /* Return search index after defaulting */\n return { config: config, docs: docs, index: index, pipeline: pipeline };\n}\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set up search web worker\n *\n * This function will create a web worker to set up and query the search index\n * which is done using `lunr`. The index must be passed as an observable to\n * enable hacks like _localsearch_ via search index embedding as JSON.\n *\n * @param url - Worker URL\n * @param options - Options\n *\n * @return Worker handler\n */\nfunction setupSearchWorker(url, _a) {\n var index$ = _a.index$, base$ = _a.base$;\n var worker = new Worker(url);\n /* Create communication channels and resolve relative links */\n var tx$ = new rxjs__WEBPACK_IMPORTED_MODULE_2__[\"Subject\"]();\n var rx$ = Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"watchWorker\"])(worker, { tx$: tx$ })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"withLatestFrom\"])(base$), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (_a) {\n var e_1, _b, e_2, _c;\n var _d = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), message = _d[0], base = _d[1];\n if (Object(_message__WEBPACK_IMPORTED_MODULE_6__[\"isSearchResultMessage\"])(message)) {\n try {\n for (var _e = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(message.data), _f = _e.next(); !_f.done; _f = _e.next()) {\n var _g = _f.value, article = _g.article, sections = _g.sections;\n article.location = base + \"/\" + article.location;\n try {\n for (var sections_1 = (e_2 = void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(sections)), sections_1_1 = sections_1.next(); !sections_1_1.done; sections_1_1 = sections_1.next()) {\n var section = sections_1_1.value;\n section.location = base + \"/\" + section.location;\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (sections_1_1 && !sections_1_1.done && (_c = sections_1.return)) _c.call(sections_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n return message;\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"shareReplay\"])(1));\n /* Set up search index */\n index$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (index) { return ({\n type: _message__WEBPACK_IMPORTED_MODULE_6__[\"SearchMessageType\"].SETUP,\n data: setupSearchIndex(index)\n }); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"asyncScheduler\"]))\n .subscribe(tx$.next.bind(tx$));\n /* Return worker handler */\n return { tx$: tx$, rx$: rx$ };\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/worker/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/worker/index.ts": +/*!********************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/worker/index.ts ***! + \********************************************************************/ +/*! exports provided: setupSearchWorker, SearchMessageType, isSearchSetupMessage, isSearchReadyMessage, isSearchQueryMessage, isSearchResultMessage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/integrations/search/worker/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupSearchWorker\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"setupSearchWorker\"]; });\n\n/* harmony import */ var _message__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./message */ \"./src/assets/javascripts/integrations/search/worker/message/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SearchMessageType\", function() { return _message__WEBPACK_IMPORTED_MODULE_1__[\"SearchMessageType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchSetupMessage\", function() { return _message__WEBPACK_IMPORTED_MODULE_1__[\"isSearchSetupMessage\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchReadyMessage\", function() { return _message__WEBPACK_IMPORTED_MODULE_1__[\"isSearchReadyMessage\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchQueryMessage\", function() { return _message__WEBPACK_IMPORTED_MODULE_1__[\"isSearchQueryMessage\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchResultMessage\", function() { return _message__WEBPACK_IMPORTED_MODULE_1__[\"isSearchResultMessage\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/worker/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/worker/message/index.ts": +/*!****************************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/worker/message/index.ts ***! + \****************************************************************************/ +/*! exports provided: SearchMessageType, isSearchSetupMessage, isSearchReadyMessage, isSearchQueryMessage, isSearchResultMessage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SearchMessageType\", function() { return SearchMessageType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSearchSetupMessage\", function() { return isSearchSetupMessage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSearchReadyMessage\", function() { return isSearchReadyMessage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSearchQueryMessage\", function() { return isSearchQueryMessage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSearchResultMessage\", function() { return isSearchResultMessage; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n/**\n * Search message type\n */\nvar SearchMessageType;\n(function (SearchMessageType) {\n SearchMessageType[SearchMessageType[\"SETUP\"] = 0] = \"SETUP\";\n SearchMessageType[SearchMessageType[\"READY\"] = 1] = \"READY\";\n SearchMessageType[SearchMessageType[\"QUERY\"] = 2] = \"QUERY\";\n SearchMessageType[SearchMessageType[\"RESULT\"] = 3] = \"RESULT\"; /* Search results */\n})(SearchMessageType || (SearchMessageType = {}));\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Type guard for search setup messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nfunction isSearchSetupMessage(message) {\n return message.type === SearchMessageType.SETUP;\n}\n/**\n * Type guard for search ready messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nfunction isSearchReadyMessage(message) {\n return message.type === SearchMessageType.READY;\n}\n/**\n * Type guard for search query messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nfunction isSearchQueryMessage(message) {\n return message.type === SearchMessageType.QUERY;\n}\n/**\n * Type guard for search result messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nfunction isSearchResultMessage(message) {\n return message.type === SearchMessageType.RESULT;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/worker/message/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/patches/details/index.ts": +/*!*********************************************************!*\ + !*** ./src/assets/javascripts/patches/details/index.ts ***! + \*********************************************************/ +/*! exports provided: patchDetails */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"patchDetails\", function() { return patchDetails; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/index.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Patch all `details` elements\n *\n * This function will ensure that all `details` tags are opened prior to\n * printing, so the whole content of the page is included, and on anchor jumps.\n *\n * @param options - Options\n */\nfunction patchDetails(_a) {\n var document$ = _a.document$, hash$ = _a.hash$;\n var els$ = document$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function () { return Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"getElements\"])(\"details\"); }));\n /* Open all details before printing */\n Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"merge\"])(Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"watchMedia\"])(\"print\").pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"filter\"])(ramda__WEBPACK_IMPORTED_MODULE_1__[\"identity\"])), /* Webkit */ Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"fromEvent\"])(window, \"beforeprint\") /* IE, FF */)\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"switchMapTo\"])(els$))\n .subscribe(function (els) {\n var e_1, _a;\n try {\n for (var els_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(els), els_1_1 = els_1.next(); !els_1_1.done; els_1_1 = els_1.next()) {\n var el = els_1_1.value;\n el.setAttribute(\"open\", \"\");\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (els_1_1 && !els_1_1.done && (_a = els_1.return)) _a.call(els_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n });\n /* Open parent details and fix anchor jump */\n hash$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (id) { return Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"getElement\"])(\"[id=\\\"\" + id + \"\\\"]\"); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"filter\"])(function (el) { return typeof el !== \"undefined\"; }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"tap\"])(function (el) {\n var details = el.closest(\"details\");\n if (details && !details.open)\n details.setAttribute(\"open\", \"\");\n }))\n .subscribe(function (el) { return el.scrollIntoView(); });\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/patches/details/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/patches/index.ts": +/*!*************************************************!*\ + !*** ./src/assets/javascripts/patches/index.ts ***! + \*************************************************/ +/*! exports provided: patchDetails, patchScripts, patchScrollfix, patchSource, patchTables */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _details__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./details */ \"./src/assets/javascripts/patches/details/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"patchDetails\", function() { return _details__WEBPACK_IMPORTED_MODULE_0__[\"patchDetails\"]; });\n\n/* harmony import */ var _script__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./script */ \"./src/assets/javascripts/patches/script/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"patchScripts\", function() { return _script__WEBPACK_IMPORTED_MODULE_1__[\"patchScripts\"]; });\n\n/* harmony import */ var _scrollfix__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./scrollfix */ \"./src/assets/javascripts/patches/scrollfix/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"patchScrollfix\", function() { return _scrollfix__WEBPACK_IMPORTED_MODULE_2__[\"patchScrollfix\"]; });\n\n/* harmony import */ var _source__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./source */ \"./src/assets/javascripts/patches/source/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"patchSource\", function() { return _source__WEBPACK_IMPORTED_MODULE_3__[\"patchSource\"]; });\n\n/* harmony import */ var _table__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./table */ \"./src/assets/javascripts/patches/table/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"patchTables\", function() { return _table__WEBPACK_IMPORTED_MODULE_4__[\"patchTables\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/patches/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/patches/script/index.ts": +/*!********************************************************!*\ + !*** ./src/assets/javascripts/patches/script/index.ts ***! + \********************************************************/ +/*! exports provided: patchScripts */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"patchScripts\", function() { return patchScripts; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! components */ \"./src/assets/javascripts/components/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Patch all `script` elements\n *\n * This function must be run after a document switch, which means the first\n * emission must be ignored.\n *\n * @param options - Options\n */\nfunction patchScripts(_a) {\n var document$ = _a.document$;\n var els$ = document$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"skip\"])(1), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"withLatestFrom\"])(Object(components__WEBPACK_IMPORTED_MODULE_3__[\"useComponent\"])(\"container\")), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), el = _b[1];\n return Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"getElements\"])(\"script\", el);\n }));\n /* Evaluate all scripts via replacement */\n els$.subscribe(function (els) {\n var e_1, _a;\n try {\n for (var els_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(els), els_1_1 = els_1.next(); !els_1_1.done; els_1_1 = els_1.next()) {\n var el = els_1_1.value;\n if (el.src || /(^|\\/javascript)$/i.test(el.type)) {\n var script = Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"])(\"script\");\n var key = el.src ? \"src\" : \"textContent\";\n script[key] = el[key];\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"replaceElement\"])(el, script);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (els_1_1 && !els_1_1.done && (_a = els_1.return)) _a.call(els_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n });\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/patches/script/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/patches/scrollfix/index.ts": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/patches/scrollfix/index.ts ***! + \***********************************************************/ +/*! exports provided: patchScrollfix */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"patchScrollfix\", function() { return patchScrollfix; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n/**\n * Check whether the given device is an Apple device\n *\n * @return Test result\n */\nfunction isAppleDevice() {\n return /(iPad|iPhone|iPod)/.test(navigator.userAgent);\n}\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Patch all elements with `data-md-scrollfix` attributes\n *\n * This is a year-old patch which ensures that overflow scrolling works at the\n * top and bottom of containers on iOS by ensuring a `1px` scroll offset upon\n * the start of a touch event.\n *\n * @see https://bit.ly/2SCtAOO - Original source\n *\n * @param options - Options\n */\nfunction patchScrollfix(_a) {\n var document$ = _a.document$;\n var els$ = document$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function () { return Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElements\"])(\"[data-md-scrollfix]\"); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"shareReplay\"])(1));\n /* Remove marker attribute, so we'll only add the fix once */\n els$.subscribe(function (els) {\n var e_1, _a;\n try {\n for (var els_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(els), els_1_1 = els_1.next(); !els_1_1.done; els_1_1 = els_1.next()) {\n var el = els_1_1.value;\n el.removeAttribute(\"data-md-scrollfix\");\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (els_1_1 && !els_1_1.done && (_a = els_1.return)) _a.call(els_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n });\n /* Patch overflow scrolling on touch start */\n Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"iif\"])(isAppleDevice, els$, rxjs__WEBPACK_IMPORTED_MODULE_1__[\"NEVER\"])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (els) { return rxjs__WEBPACK_IMPORTED_MODULE_1__[\"merge\"].apply(void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(els.map(function (el) { return (Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"fromEvent\"])(el, \"touchstart\", { passive: true })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"mapTo\"])(el))); }))); }))\n .subscribe(function (el) {\n var top = el.scrollTop;\n /* We're at the top of the container */\n if (top === 0) {\n el.scrollTop = 1;\n /* We're at the bottom of the container */\n }\n else if (top + el.offsetHeight === el.scrollHeight) {\n el.scrollTop = top - 1;\n }\n });\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/patches/scrollfix/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/patches/source/github/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/patches/source/github/index.ts ***! + \***************************************************************/ +/*! exports provided: fetchSourceFactsFromGitHub */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fetchSourceFactsFromGitHub\", function() { return fetchSourceFactsFromGitHub; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_ajax__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/ajax */ \"./node_modules/rxjs/dist/esm5/ajax/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Fetch GitHub source facts\n *\n * @param user - GitHub user\n * @param repo - GitHub repository\n *\n * @return Source facts observable\n */\nfunction fetchSourceFactsFromGitHub(user, repo) {\n return Object(rxjs_ajax__WEBPACK_IMPORTED_MODULE_1__[\"ajax\"])({\n url: typeof repo !== \"undefined\"\n ? \"https://api.github.com/repos/\" + user + \"/\" + repo\n : \"https://api.github.com/users/\" + user,\n responseType: \"json\"\n })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"filter\"])(function (_a) {\n var status = _a.status;\n return status === 200;\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"pluck\"])(\"response\"), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (data) {\n /* GitHub repository */\n if (typeof repo !== \"undefined\") {\n var stargazers_count = data.stargazers_count, forks_count = data.forks_count;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"of\"])([\n Object(utilities__WEBPACK_IMPORTED_MODULE_3__[\"round\"])(stargazers_count || 0) + \" Stars\",\n Object(utilities__WEBPACK_IMPORTED_MODULE_3__[\"round\"])(forks_count || 0) + \" Forks\"\n ]);\n /* GitHub user/organization */\n }\n else {\n var public_repos = data.public_repos;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"of\"])([\n Object(utilities__WEBPACK_IMPORTED_MODULE_3__[\"round\"])(public_repos || 0) + \" Repositories\"\n ]);\n }\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/patches/source/github/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/patches/source/gitlab/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/patches/source/gitlab/index.ts ***! + \***************************************************************/ +/*! exports provided: fetchSourceFactsFromGitLab */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fetchSourceFactsFromGitLab\", function() { return fetchSourceFactsFromGitLab; });\n/* harmony import */ var rxjs_ajax__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs/ajax */ \"./node_modules/rxjs/dist/esm5/ajax/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Fetch GitLab source facts\n *\n * @param base - GitLab base\n * @param project - GitLab project\n *\n * @return Source facts observable\n */\nfunction fetchSourceFactsFromGitLab(base, project) {\n return Object(rxjs_ajax__WEBPACK_IMPORTED_MODULE_0__[\"ajax\"])({\n url: \"https://\" + base + \"/api/v4/projects/\" + encodeURIComponent(project),\n responseType: \"json\"\n })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(function (_a) {\n var status = _a.status;\n return status === 200;\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"pluck\"])(\"response\"), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (_a) {\n var star_count = _a.star_count, forks_count = _a.forks_count;\n return ([\n Object(utilities__WEBPACK_IMPORTED_MODULE_2__[\"round\"])(star_count) + \" Stars\",\n Object(utilities__WEBPACK_IMPORTED_MODULE_2__[\"round\"])(forks_count) + \" Forks\"\n ]);\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/patches/source/gitlab/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/patches/source/index.ts": +/*!********************************************************!*\ + !*** ./src/assets/javascripts/patches/source/index.ts ***! + \********************************************************/ +/*! exports provided: patchSource */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"patchSource\", function() { return patchSource; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var templates__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! templates */ \"./src/assets/javascripts/templates/index.ts\");\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/* harmony import */ var _github__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./github */ \"./src/assets/javascripts/patches/source/github/index.ts\");\n/* harmony import */ var _gitlab__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./gitlab */ \"./src/assets/javascripts/patches/source/gitlab/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n/**\n * Fetch source facts\n *\n * @param url - Source repository URL\n *\n * @return Source facts observable\n */\nfunction fetchSourceFacts(url) {\n var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(url.match(/(git(?:hub|lab))/i) || [], 1), type = _a[0];\n switch (type.toLowerCase()) {\n /* GitHub repository */\n case \"github\":\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(url.match(/^.+github\\.com\\/([^\\/]+)\\/?([^\\/]+)/i), 3), user = _b[1], repo = _b[2];\n return Object(_github__WEBPACK_IMPORTED_MODULE_6__[\"fetchSourceFactsFromGitHub\"])(user, repo);\n /* GitLab repository */\n case \"gitlab\":\n var _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(url.match(/^.+?([^\\/]*gitlab[^\\/]+)\\/(.+?)\\/?$/i), 3), base = _c[1], slug = _c[2];\n return Object(_gitlab__WEBPACK_IMPORTED_MODULE_7__[\"fetchSourceFactsFromGitLab\"])(base, slug);\n /* Everything else */\n default:\n return rxjs__WEBPACK_IMPORTED_MODULE_1__[\"NEVER\"];\n }\n}\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Patch elements containing repository information\n *\n * This function will retrieve the URL from the repository link and try to\n * query data from integrated source code platforms like GitHub or GitLab.\n *\n * @param options - Options\n */\nfunction patchSource(_a) {\n var document$ = _a.document$;\n document$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function () { return Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElementOrThrow\"])(\".md-source[href]\"); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (_a) {\n var href = _a.href;\n return (Object(utilities__WEBPACK_IMPORTED_MODULE_5__[\"cache\"])(\"\" + Object(utilities__WEBPACK_IMPORTED_MODULE_5__[\"hash\"])(href), function () { return fetchSourceFacts(href); }));\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"catchError\"])(function () { return rxjs__WEBPACK_IMPORTED_MODULE_1__[\"NEVER\"]; }))\n .subscribe(function (facts) {\n var e_1, _a;\n try {\n for (var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElements\"])(\".md-source__repository\")), _c = _b.next(); !_c.done; _c = _b.next()) {\n var el = _c.value;\n if (!el.hasAttribute(\"data-md-state\")) {\n el.setAttribute(\"data-md-state\", \"done\");\n el.appendChild(Object(templates__WEBPACK_IMPORTED_MODULE_4__[\"renderSource\"])(facts));\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n });\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/patches/source/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/patches/table/index.ts": +/*!*******************************************************!*\ + !*** ./src/assets/javascripts/patches/table/index.ts ***! + \*******************************************************/ +/*! exports provided: patchTables */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"patchTables\", function() { return patchTables; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var templates__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! templates */ \"./src/assets/javascripts/templates/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Patch all `table` elements\n *\n * This function will re-render all tables by wrapping them to improve overflow\n * scrolling on smaller screen sizes.\n *\n * @param options - Options\n */\nfunction patchTables(_a) {\n var document$ = _a.document$;\n var sentinel = Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"])(\"table\");\n document$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function () { return Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"getElements\"])(\"table:not([class])\"); }))\n .subscribe(function (els) {\n var e_1, _a;\n try {\n for (var els_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(els), els_1_1 = els_1.next(); !els_1_1.done; els_1_1 = els_1.next()) {\n var el = els_1_1.value;\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"replaceElement\"])(el, sentinel);\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"replaceElement\"])(sentinel, Object(templates__WEBPACK_IMPORTED_MODULE_3__[\"renderTable\"])(el));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (els_1_1 && !els_1_1.done && (_a = els_1.return)) _a.call(els_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n });\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/patches/table/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/templates/clipboard/index.tsx": +/*!**************************************************************!*\ + !*** ./src/assets/javascripts/templates/clipboard/index.tsx ***! + \**************************************************************/ +/*! exports provided: renderClipboardButton */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"renderClipboardButton\", function() { return renderClipboardButton; });\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n/**\n * CSS classes\n */\nvar css = {\n container: \"md-clipboard md-icon\"\n};\n/* ------------------------------------------------------------------------- */\n/**\n * Path of `file-search-outline` icon\n */\nvar path = \"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 \" +\n \"21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\";\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Render a 'copy-to-clipboard' button\n *\n * @param id - Unique identifier\n *\n * @return Element\n */\nfunction renderClipboardButton(id) {\n return (Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"h\"])(\"button\", { class: css.container, title: Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"translate\"])(\"clipboard.copy\"), \"data-clipboard-target\": \"#\" + id + \" > code\" },\n Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"h\"])(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 24 24\" },\n Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"h\"])(\"path\", { d: path }))));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/templates/clipboard/index.tsx?"); + +/***/ }), + +/***/ "./src/assets/javascripts/templates/index.ts": +/*!***************************************************!*\ + !*** ./src/assets/javascripts/templates/index.ts ***! + \***************************************************/ +/*! exports provided: renderClipboardButton, renderSearchResult, renderSource, renderTable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _clipboard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./clipboard */ \"./src/assets/javascripts/templates/clipboard/index.tsx\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"renderClipboardButton\", function() { return _clipboard__WEBPACK_IMPORTED_MODULE_0__[\"renderClipboardButton\"]; });\n\n/* harmony import */ var _search__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./search */ \"./src/assets/javascripts/templates/search/index.tsx\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"renderSearchResult\", function() { return _search__WEBPACK_IMPORTED_MODULE_1__[\"renderSearchResult\"]; });\n\n/* harmony import */ var _source__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./source */ \"./src/assets/javascripts/templates/source/index.tsx\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"renderSource\", function() { return _source__WEBPACK_IMPORTED_MODULE_2__[\"renderSource\"]; });\n\n/* harmony import */ var _table__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./table */ \"./src/assets/javascripts/templates/table/index.tsx\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"renderTable\", function() { return _table__WEBPACK_IMPORTED_MODULE_3__[\"renderTable\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/templates/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/templates/search/index.tsx": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/templates/search/index.tsx ***! + \***********************************************************/ +/*! exports provided: renderSearchResult */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"renderSearchResult\", function() { return renderSearchResult; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n/**\n * CSS classes\n */\nvar css = {\n item: \"md-search-result__item\",\n link: \"md-search-result__link\",\n article: \"md-search-result__article md-search-result__article--document\",\n section: \"md-search-result__article\",\n title: \"md-search-result__title\",\n teaser: \"md-search-result__teaser\"\n};\n/* ------------------------------------------------------------------------- */\n/**\n * Path of `content-copy` icon\n */\nvar path = \"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H13C12.59,21.75 12.2,21.44 \" +\n \"11.86,21.1C11.53,20.77 11.25,20.4 11,20H6V4H13V9H18V10.18C18.71,10.34 \" +\n \"19.39,10.61 20,11V8L14,2M20.31,18.9C21.64,16.79 21,14 \" +\n \"18.91,12.68C16.8,11.35 14,12 12.69,14.08C11.35,16.19 12,18.97 \" +\n \"14.09,20.3C15.55,21.23 17.41,21.23 \" +\n \"18.88,20.32L22,23.39L23.39,22L20.31,18.9M16.5,19A2.5,2.5 0 0,1 \" +\n \"14,16.5A2.5,2.5 0 0,1 16.5,14A2.5,2.5 0 0,1 19,16.5A2.5,2.5 0 0,1 16.5,19Z\";\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Render a search result\n *\n * @param result - Search result\n *\n * @return Element\n */\nfunction renderSearchResult(_a) {\n var article = _a.article, sections = _a.sections;\n /* Render icon */\n var icon = (Object(utilities__WEBPACK_IMPORTED_MODULE_1__[\"h\"])(\"div\", { class: \"md-search-result__icon md-icon\" },\n Object(utilities__WEBPACK_IMPORTED_MODULE_1__[\"h\"])(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 24 24\" },\n Object(utilities__WEBPACK_IMPORTED_MODULE_1__[\"h\"])(\"path\", { d: path }))));\n /* Render article and sections */\n var children = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])([article], sections).map(function (document) {\n var location = document.location, title = document.title, text = document.text;\n return (Object(utilities__WEBPACK_IMPORTED_MODULE_1__[\"h\"])(\"a\", { href: location, class: css.link, tabIndex: -1 },\n Object(utilities__WEBPACK_IMPORTED_MODULE_1__[\"h\"])(\"article\", { class: \"parent\" in document ? css.section : css.article },\n !(\"parent\" in document) && icon,\n Object(utilities__WEBPACK_IMPORTED_MODULE_1__[\"h\"])(\"h1\", { class: css.title }, title),\n text.length > 0 && Object(utilities__WEBPACK_IMPORTED_MODULE_1__[\"h\"])(\"p\", { class: css.teaser }, Object(utilities__WEBPACK_IMPORTED_MODULE_1__[\"truncate\"])(text, 320)))));\n });\n /* Render search result */\n return (Object(utilities__WEBPACK_IMPORTED_MODULE_1__[\"h\"])(\"li\", { class: css.item }, children));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/templates/search/index.tsx?"); + +/***/ }), + +/***/ "./src/assets/javascripts/templates/source/index.tsx": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/templates/source/index.tsx ***! + \***********************************************************/ +/*! exports provided: renderSource */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"renderSource\", function() { return renderSource; });\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n/**\n * CSS classes\n */\nvar css = {\n facts: \"md-source__facts\",\n fact: \"md-source__fact\"\n};\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Render source facts\n *\n * @param facts - Source facts\n *\n * @return Element\n */\nfunction renderSource(facts) {\n var children = facts.map(function (fact) { return (Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"h\"])(\"li\", { class: css.fact }, fact)); });\n return (Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"h\"])(\"ul\", { class: css.facts }, children));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/templates/source/index.tsx?"); + +/***/ }), + +/***/ "./src/assets/javascripts/templates/table/index.tsx": +/*!**********************************************************!*\ + !*** ./src/assets/javascripts/templates/table/index.tsx ***! + \**********************************************************/ +/*! exports provided: renderTable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"renderTable\", function() { return renderTable; });\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n/**\n * CSS classes\n */\nvar css = {\n wrapper: \"md-typeset__scrollwrap\",\n table: \"md-typeset__table\"\n};\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Render a table inside a wrapper to improve scrolling on mobile\n *\n * @param table - Table element\n *\n * @return Element\n */\nfunction renderTable(table) {\n return (Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"h\"])(\"div\", { class: css.wrapper },\n Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"h\"])(\"div\", { class: css.table }, table)));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/templates/table/index.tsx?"); + +/***/ }), + +/***/ "./src/assets/javascripts/utilities/config/index.ts": +/*!**********************************************************!*\ + !*** ./src/assets/javascripts/utilities/config/index.ts ***! + \**********************************************************/ +/*! exports provided: isConfig */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isConfig\", function() { return isConfig; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Ensure that the given value is a valid configuration\n *\n * We could use `jsonschema` or any other schema validation framework, but that\n * would just add more bloat to the bundle, so we'll keep it plain and simple.\n *\n * @param config - Configuration\n *\n * @return Test result\n */\nfunction isConfig(config) {\n return typeof config === \"object\"\n && typeof config.base === \"string\"\n && typeof config.features === \"object\"\n && typeof config.search === \"object\";\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/utilities/config/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/utilities/index.ts": +/*!***************************************************!*\ + !*** ./src/assets/javascripts/utilities/index.ts ***! + \***************************************************/ +/*! exports provided: isConfig, h, cache, translate, truncate, round, hash */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./config */ \"./src/assets/javascripts/utilities/config/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isConfig\", function() { return _config__WEBPACK_IMPORTED_MODULE_0__[\"isConfig\"]; });\n\n/* harmony import */ var _jsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./jsx */ \"./src/assets/javascripts/utilities/jsx/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return _jsx__WEBPACK_IMPORTED_MODULE_1__[\"h\"]; });\n\n/* harmony import */ var _rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./rxjs */ \"./src/assets/javascripts/utilities/rxjs/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cache\", function() { return _rxjs__WEBPACK_IMPORTED_MODULE_2__[\"cache\"]; });\n\n/* harmony import */ var _string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./string */ \"./src/assets/javascripts/utilities/string/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"translate\", function() { return _string__WEBPACK_IMPORTED_MODULE_3__[\"translate\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"truncate\", function() { return _string__WEBPACK_IMPORTED_MODULE_3__[\"truncate\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"round\", function() { return _string__WEBPACK_IMPORTED_MODULE_3__[\"round\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hash\", function() { return _string__WEBPACK_IMPORTED_MODULE_3__[\"hash\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/utilities/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/utilities/jsx/index.ts": +/*!*******************************************************!*\ + !*** ./src/assets/javascripts/utilities/jsx/index.ts ***! + \*******************************************************/ +/*! exports provided: h */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return h; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n/**\n * Create an element\n *\n * @param tagName - HTML or SVG tag\n *\n * @return Element\n */\nfunction createElement(tagName) {\n switch (tagName) {\n /* SVG elements */\n case \"svg\":\n case \"path\":\n return document.createElementNS(\"http://www.w3.org/2000/svg\", tagName);\n /* HTML elements */\n default:\n return document.createElement(tagName);\n }\n}\n/**\n * Set an attribute\n *\n * @param el - Element\n * @param name - Attribute name\n * @param value - Attribute value\n */\nfunction setAttribute(el, name, value) {\n switch (name) {\n /* Attributes to be ignored */\n case \"xmlns\":\n break;\n /* Attributes of SVG elements */\n case \"viewBox\":\n case \"d\":\n if (typeof value !== \"boolean\")\n el.setAttributeNS(null, name, value);\n else if (value)\n el.setAttributeNS(null, name, \"\");\n break;\n /* Attributes of HTML elements */\n default:\n if (typeof value !== \"boolean\")\n el.setAttribute(name, value);\n else if (value)\n el.setAttribute(name, \"\");\n }\n}\n/**\n * Append a child node to an element\n *\n * @param el - Element\n * @param child - Child node(s)\n */\nfunction appendChild(el, child) {\n var e_1, _a;\n /* Handle primitive types (including raw HTML) */\n if (typeof child === \"string\" || typeof child === \"number\") {\n el.innerHTML += child.toString();\n /* Handle nodes */\n }\n else if (child instanceof Node) {\n el.appendChild(child);\n /* Handle nested children */\n }\n else if (Array.isArray(child)) {\n try {\n for (var child_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(child), child_1_1 = child_1.next(); !child_1_1.done; child_1_1 = child_1.next()) {\n var node = child_1_1.value;\n appendChild(el, node);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (child_1_1 && !child_1_1.done && (_a = child_1.return)) _a.call(child_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n}\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * JSX factory\n *\n * @param tagName - HTML or SVG tag\n * @param attributes - HTML attributes\n * @param children - Child elements\n *\n * @return Element\n */\nfunction h(tagName, attributes) {\n var e_2, _a, e_3, _b;\n var children = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n children[_i - 2] = arguments[_i];\n }\n var el = createElement(tagName);\n /* Set attributes, if any */\n if (attributes)\n try {\n for (var _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(Object(ramda__WEBPACK_IMPORTED_MODULE_1__[\"keys\"])(attributes)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var attr = _d.value;\n setAttribute(el, attr, attributes[attr]);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_2) throw e_2.error; }\n }\n try {\n /* Append child nodes */\n for (var children_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(children), children_1_1 = children_1.next(); !children_1_1.done; children_1_1 = children_1.next()) {\n var child = children_1_1.value;\n appendChild(el, child);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (children_1_1 && !children_1_1.done && (_b = children_1.return)) _b.call(children_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n /* Return element */\n return el;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/utilities/jsx/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/utilities/rxjs/index.ts": +/*!********************************************************!*\ + !*** ./src/assets/javascripts/utilities/rxjs/index.ts ***! + \********************************************************/ +/*! exports provided: cache */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cache\", function() { return cache; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Cache the last value emitted by an observable in session storage\n *\n * If the key is not found in session storage, the factory is executed and the\n * latest value emitted will automatically be persisted to sessions storage.\n * Note that the values emitted by the returned observable must be serializable\n * as `JSON`, or data will be lost.\n *\n * @template T - Value type\n *\n * @param key - Cache key\n * @param factory - Observable factory\n *\n * @return Value observable\n */\nfunction cache(key, factory) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"defer\"])(function () {\n var data = sessionStorage.getItem(key);\n if (data) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"of\"])(JSON.parse(data));\n /* Retrieve value from observable factory and write to storage */\n }\n else {\n var value$ = factory();\n value$.subscribe(function (value) {\n try {\n sessionStorage.setItem(key, JSON.stringify(value));\n }\n catch (err) {\n /* Uncritical, just swallow */\n }\n });\n /* Return value */\n return value$;\n }\n });\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/utilities/rxjs/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/utilities/string/index.ts": +/*!**********************************************************!*\ + !*** ./src/assets/javascripts/utilities/string/index.ts ***! + \**********************************************************/ +/*! exports provided: translate, truncate, round, hash */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"translate\", function() { return translate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"truncate\", function() { return truncate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"round\", function() { return round; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hash\", function() { return hash; });\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n/**\n * Translations\n */\nvar lang;\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Translate the given key\n *\n * @param key - Key to be translated\n * @param value - Value to be replaced\n *\n * @return Translation\n */\nfunction translate(key, value) {\n if (typeof lang === \"undefined\") {\n var el = Object(browser__WEBPACK_IMPORTED_MODULE_0__[\"getElementOrThrow\"])(\"#__lang\");\n lang = JSON.parse(el.textContent);\n }\n if (typeof lang[key] === \"undefined\") {\n throw new ReferenceError(\"Invalid translation: \" + key);\n }\n return typeof value !== \"undefined\"\n ? lang[key].replace(\"#\", value)\n : lang[key];\n}\n/**\n * Truncate a string after the given number of characters\n *\n * This is not a very reasonable approach, since the summaries kind of suck.\n * It would be better to create something more intelligent, highlighting the\n * search occurrences and making a better summary out of it, but this note was\n * written three years ago, so who knows if we'll ever fix it.\n *\n * @param value - Value to be truncated\n * @param n - Number of characters\n *\n * @return Truncated value\n */\nfunction truncate(value, n) {\n var i = n;\n if (value.length > i) {\n while (value[i] !== \" \" && --i > 0)\n ; // tslint:disable-line\n return value.substring(0, i) + \"...\";\n }\n return value;\n}\n/**\n * Round a number for display with source facts\n *\n * This is a reverse engineered version of GitHub's weird rounding algorithm\n * for stars, forks and all other numbers. While all numbers below `1,000` are\n * returned as-is, bigger numbers are converted to fixed numbers:\n *\n * - `1,049` => `1k`\n * - `1,050` => `1.1k`\n * - `1,949` => `1.9k`\n * - `1,950` => `2k`\n *\n * @param value - Original value\n *\n * @return Rounded value\n */\nfunction round(value) {\n if (value > 999) {\n var digits = +((value - 950) % 1000 > 99);\n return ((value + 0.000001) / 1000).toFixed(digits) + \"k\";\n }\n else {\n return value.toString();\n }\n}\n/**\n * Simple hash function\n *\n * @see https://bit.ly/2wsVjJ4 - Original source\n *\n * @param value - Value to be hashed\n *\n * @return Hash as 32bit integer\n */\nfunction hash(value) {\n var h = 0;\n for (var i = 0, len = value.length; i < len; i++) {\n h = ((h << 5) - h) + value.charCodeAt(i);\n h |= 0; // Convert to 32bit integer\n }\n return h;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/utilities/string/index.ts?"); + +/***/ }) + +/******/ }))); \ No newline at end of file diff --git a/doc/theme/material/assets/javascripts/lunr/min/lunr.ar.min.js b/doc/theme/material/assets/javascripts/lunr/min/lunr.ar.min.js new file mode 100644 index 00000000..248ddc5d --- /dev/null +++ b/doc/theme/material/assets/javascripts/lunr/min/lunr.ar.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ar=function(){this.pipeline.reset(),this.pipeline.add(e.ar.trimmer,e.ar.stopWordFilter,e.ar.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ar.stemmer))},e.ar.wordCharacters="ء-ٛٱـ",e.ar.trimmer=e.trimmerSupport.generateTrimmer(e.ar.wordCharacters),e.Pipeline.registerFunction(e.ar.trimmer,"trimmer-ar"),e.ar.stemmer=function(){var e=this;return e.result=!1,e.preRemoved=!1,e.sufRemoved=!1,e.pre={pre1:"ف ك ب و س ل ن ا ي ت",pre2:"ال لل",pre3:"بال وال فال تال كال ولل",pre4:"فبال كبال وبال وكال"},e.suf={suf1:"ه ك ت ن ا ي",suf2:"نك نه ها وك يا اه ون ين تن تم نا وا ان كم كن ني نن ما هم هن تك ته ات يه",suf3:"تين كهم نيه نهم ونه وها يهم ونا ونك وني وهم تكم تنا تها تني تهم كما كها ناه نكم هنا تان يها",suf4:"كموه ناها ونني ونهم تكما تموه تكاه كماه ناكم ناهم نيها وننا"},e.patterns=JSON.parse('{"pt43":[{"pt":[{"c":"ا","l":1}]},{"pt":[{"c":"ا,ت,ن,ي","l":0}],"mPt":[{"c":"ف","l":0,"m":1},{"c":"ع","l":1,"m":2},{"c":"ل","l":2,"m":3}]},{"pt":[{"c":"و","l":2}],"mPt":[{"c":"ف","l":0,"m":0},{"c":"ع","l":1,"m":1},{"c":"ل","l":2,"m":3}]},{"pt":[{"c":"ا","l":2}]},{"pt":[{"c":"ي","l":2}],"mPt":[{"c":"ف","l":0,"m":0},{"c":"ع","l":1,"m":1},{"c":"ا","l":2},{"c":"ل","l":3,"m":3}]},{"pt":[{"c":"م","l":0}]}],"pt53":[{"pt":[{"c":"ت","l":0},{"c":"ا","l":2}]},{"pt":[{"c":"ا,ن,ت,ي","l":0},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ت","l":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":0},{"c":"ا","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ع","l":2,"m":3},{"c":"ل","l":3,"m":4},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":0},{"c":"ا","l":3}],"mPt":[{"c":"ف","l":0,"m":1},{"c":"ع","l":1,"m":2},{"c":"ل","l":2,"m":4}]},{"pt":[{"c":"ا","l":3},{"c":"ن","l":4}]},{"pt":[{"c":"ت","l":0},{"c":"ي","l":3}]},{"pt":[{"c":"م","l":0},{"c":"و","l":3}]},{"pt":[{"c":"ا","l":1},{"c":"و","l":3}]},{"pt":[{"c":"و","l":1},{"c":"ا","l":2}]},{"pt":[{"c":"م","l":0},{"c":"ا","l":3}]},{"pt":[{"c":"م","l":0},{"c":"ي","l":3}]},{"pt":[{"c":"ا","l":2},{"c":"ن","l":3}]},{"pt":[{"c":"م","l":0},{"c":"ن","l":1}],"mPt":[{"c":"ا","l":0},{"c":"ن","l":1},{"c":"ف","l":2,"m":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"م","l":0},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ت","l":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"م","l":0},{"c":"ا","l":2}]},{"pt":[{"c":"م","l":1},{"c":"ا","l":3}]},{"pt":[{"c":"ي,ت,ا,ن","l":0},{"c":"ت","l":1}],"mPt":[{"c":"ف","l":0,"m":2},{"c":"ع","l":1,"m":3},{"c":"ا","l":2},{"c":"ل","l":3,"m":4}]},{"pt":[{"c":"ت,ي,ا,ن","l":0},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ت","l":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":2},{"c":"ي","l":3}]},{"pt":[{"c":"ا,ي,ت,ن","l":0},{"c":"ن","l":1}],"mPt":[{"c":"ا","l":0},{"c":"ن","l":1},{"c":"ف","l":2,"m":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":3},{"c":"ء","l":4}]}],"pt63":[{"pt":[{"c":"ا","l":0},{"c":"ت","l":2},{"c":"ا","l":4}]},{"pt":[{"c":"ا,ت,ن,ي","l":0},{"c":"س","l":1},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"س","l":1},{"c":"ت","l":2},{"c":"ف","l":3,"m":3},{"c":"ع","l":4,"m":4},{"c":"ا","l":5},{"c":"ل","l":6,"m":5}]},{"pt":[{"c":"ا,ن,ت,ي","l":0},{"c":"و","l":3}]},{"pt":[{"c":"م","l":0},{"c":"س","l":1},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"س","l":1},{"c":"ت","l":2},{"c":"ف","l":3,"m":3},{"c":"ع","l":4,"m":4},{"c":"ا","l":5},{"c":"ل","l":6,"m":5}]},{"pt":[{"c":"ي","l":1},{"c":"ي","l":3},{"c":"ا","l":4},{"c":"ء","l":5}]},{"pt":[{"c":"ا","l":0},{"c":"ن","l":1},{"c":"ا","l":4}]}],"pt54":[{"pt":[{"c":"ت","l":0}]},{"pt":[{"c":"ا,ي,ت,ن","l":0}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ع","l":2,"m":2},{"c":"ل","l":3,"m":3},{"c":"ر","l":4,"m":4},{"c":"ا","l":5},{"c":"ر","l":6,"m":4}]},{"pt":[{"c":"م","l":0}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ع","l":2,"m":2},{"c":"ل","l":3,"m":3},{"c":"ر","l":4,"m":4},{"c":"ا","l":5},{"c":"ر","l":6,"m":4}]},{"pt":[{"c":"ا","l":2}]},{"pt":[{"c":"ا","l":0},{"c":"ن","l":2}]}],"pt64":[{"pt":[{"c":"ا","l":0},{"c":"ا","l":4}]},{"pt":[{"c":"م","l":0},{"c":"ت","l":1}]}],"pt73":[{"pt":[{"c":"ا","l":0},{"c":"س","l":1},{"c":"ت","l":2},{"c":"ا","l":5}]}],"pt75":[{"pt":[{"c":"ا","l":0},{"c":"ا","l":5}]}]}'),e.execArray=["cleanWord","removeDiacritics","cleanAlef","removeStopWords","normalizeHamzaAndAlef","removeStartWaw","removePre432","removeEndTaa","wordCheck"],e.stem=function(){var r=0;for(e.result=!1,e.preRemoved=!1,e.sufRemoved=!1;r=0)return!0},e.normalizeHamzaAndAlef=function(){return e.word=e.word.replace("ؤ","ء"),e.word=e.word.replace("ئ","ء"),e.word=e.word.replace(/([\u0627])\1+/gi,"ا"),!1},e.removeEndTaa=function(){return!(e.word.length>2)||(e.word=e.word.replace(/[\u0627]$/,""),e.word=e.word.replace("ة",""),!1)},e.removeStartWaw=function(){return e.word.length>3&&"و"==e.word[0]&&"و"==e.word[1]&&(e.word=e.word.slice(1)),!1},e.removePre432=function(){var r=e.word;if(e.word.length>=7){var t=new RegExp("^("+e.pre.pre4.split(" ").join("|")+")");e.word=e.word.replace(t,"")}if(e.word==r&&e.word.length>=6){var c=new RegExp("^("+e.pre.pre3.split(" ").join("|")+")");e.word=e.word.replace(c,"")}if(e.word==r&&e.word.length>=5){var l=new RegExp("^("+e.pre.pre2.split(" ").join("|")+")");e.word=e.word.replace(l,"")}return r!=e.word&&(e.preRemoved=!0),!1},e.patternCheck=function(r){for(var t=0;t3){var t=new RegExp("^("+e.pre.pre1.split(" ").join("|")+")");e.word=e.word.replace(t,"")}return r!=e.word&&(e.preRemoved=!0),!1},e.removeSuf1=function(){var r=e.word;if(0==e.sufRemoved&&e.word.length>3){var t=new RegExp("("+e.suf.suf1.split(" ").join("|")+")$");e.word=e.word.replace(t,"")}return r!=e.word&&(e.sufRemoved=!0),!1},e.removeSuf432=function(){var r=e.word;if(e.word.length>=6){var t=new RegExp("("+e.suf.suf4.split(" ").join("|")+")$");e.word=e.word.replace(t,"")}if(e.word==r&&e.word.length>=5){var c=new RegExp("("+e.suf.suf3.split(" ").join("|")+")$");e.word=e.word.replace(c,"")}if(e.word==r&&e.word.length>=4){var l=new RegExp("("+e.suf.suf2.split(" ").join("|")+")$");e.word=e.word.replace(l,"")}return r!=e.word&&(e.sufRemoved=!0),!1},e.wordCheck=function(){for(var r=(e.word,[e.removeSuf432,e.removeSuf1,e.removePre1]),t=0,c=!1;e.word.length>=7&&!e.result&&t=f.limit)return;f.cursor++}for(;!f.out_grouping(w,97,248);){if(f.cursor>=f.limit)return;f.cursor++}d=f.cursor,d=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(c,32),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del();break;case 2:f.in_grouping_b(p,97,229)&&f.slice_del()}}function t(){var e,r=f.limit-f.cursor;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.find_among_b(l,4)?(f.bra=f.cursor,f.limit_backward=e,f.cursor=f.limit-r,f.cursor>f.limit_backward&&(f.cursor--,f.bra=f.cursor,f.slice_del())):f.limit_backward=e)}function s(){var e,r,i,n=f.limit-f.cursor;if(f.ket=f.cursor,f.eq_s_b(2,"st")&&(f.bra=f.cursor,f.eq_s_b(2,"ig")&&f.slice_del()),f.cursor=f.limit-n,f.cursor>=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(m,5),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del(),i=f.limit-f.cursor,t(),f.cursor=f.limit-i;break;case 2:f.slice_from("løs")}}function o(){var e;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.out_grouping_b(w,97,248)?(f.bra=f.cursor,u=f.slice_to(u),f.limit_backward=e,f.eq_v_b(u)&&f.slice_del()):f.limit_backward=e)}var a,d,u,c=[new r("hed",-1,1),new r("ethed",0,1),new r("ered",-1,1),new r("e",-1,1),new r("erede",3,1),new r("ende",3,1),new r("erende",5,1),new r("ene",3,1),new r("erne",3,1),new r("ere",3,1),new r("en",-1,1),new r("heden",10,1),new r("eren",10,1),new r("er",-1,1),new r("heder",13,1),new r("erer",13,1),new r("s",-1,2),new r("heds",16,1),new r("es",16,1),new r("endes",18,1),new r("erendes",19,1),new r("enes",18,1),new r("ernes",18,1),new r("eres",18,1),new r("ens",16,1),new r("hedens",24,1),new r("erens",24,1),new r("ers",16,1),new r("ets",16,1),new r("erets",28,1),new r("et",-1,1),new r("eret",30,1)],l=[new r("gd",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("elig",1,1),new r("els",-1,1),new r("løst",-1,2)],w=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],p=[239,254,42,3,0,0,0,0,0,0,0,0,0,0,0,0,16],f=new i;this.setCurrent=function(e){f.setCurrent(e)},this.getCurrent=function(){return f.getCurrent()},this.stem=function(){var r=f.cursor;return e(),f.limit_backward=r,f.cursor=f.limit,n(),f.cursor=f.limit,t(),f.cursor=f.limit,s(),f.cursor=f.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.da.stemmer,"stemmer-da"),e.da.stopWordFilter=e.generateStopWordFilter("ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været".split(" ")),e.Pipeline.registerFunction(e.da.stopWordFilter,"stopWordFilter-da")}}); \ No newline at end of file diff --git a/doc/theme/material/assets/javascripts/lunr/min/lunr.de.min.js b/doc/theme/material/assets/javascripts/lunr/min/lunr.de.min.js new file mode 100644 index 00000000..f3b5c108 --- /dev/null +++ b/doc/theme/material/assets/javascripts/lunr/min/lunr.de.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `German` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.de=function(){this.pipeline.reset(),this.pipeline.add(e.de.trimmer,e.de.stopWordFilter,e.de.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.de.stemmer))},e.de.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.de.trimmer=e.trimmerSupport.generateTrimmer(e.de.wordCharacters),e.Pipeline.registerFunction(e.de.trimmer,"trimmer-de"),e.de.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(e,r,n){return!(!v.eq_s(1,e)||(v.ket=v.cursor,!v.in_grouping(p,97,252)))&&(v.slice_from(r),v.cursor=n,!0)}function i(){for(var r,n,i,s,t=v.cursor;;)if(r=v.cursor,v.bra=r,v.eq_s(1,"ß"))v.ket=v.cursor,v.slice_from("ss");else{if(r>=v.limit)break;v.cursor=r+1}for(v.cursor=t;;)for(n=v.cursor;;){if(i=v.cursor,v.in_grouping(p,97,252)){if(s=v.cursor,v.bra=s,e("u","U",i))break;if(v.cursor=s,e("y","Y",i))break}if(i>=v.limit)return void(v.cursor=n);v.cursor=i+1}}function s(){for(;!v.in_grouping(p,97,252);){if(v.cursor>=v.limit)return!0;v.cursor++}for(;!v.out_grouping(p,97,252);){if(v.cursor>=v.limit)return!0;v.cursor++}return!1}function t(){m=v.limit,l=m;var e=v.cursor+3;0<=e&&e<=v.limit&&(d=e,s()||(m=v.cursor,m=v.limit)return;v.cursor++}}}function c(){return m<=v.cursor}function u(){return l<=v.cursor}function a(){var e,r,n,i,s=v.limit-v.cursor;if(v.ket=v.cursor,(e=v.find_among_b(w,7))&&(v.bra=v.cursor,c()))switch(e){case 1:v.slice_del();break;case 2:v.slice_del(),v.ket=v.cursor,v.eq_s_b(1,"s")&&(v.bra=v.cursor,v.eq_s_b(3,"nis")&&v.slice_del());break;case 3:v.in_grouping_b(g,98,116)&&v.slice_del()}if(v.cursor=v.limit-s,v.ket=v.cursor,(e=v.find_among_b(f,4))&&(v.bra=v.cursor,c()))switch(e){case 1:v.slice_del();break;case 2:if(v.in_grouping_b(k,98,116)){var t=v.cursor-3;v.limit_backward<=t&&t<=v.limit&&(v.cursor=t,v.slice_del())}}if(v.cursor=v.limit-s,v.ket=v.cursor,(e=v.find_among_b(_,8))&&(v.bra=v.cursor,u()))switch(e){case 1:v.slice_del(),v.ket=v.cursor,v.eq_s_b(2,"ig")&&(v.bra=v.cursor,r=v.limit-v.cursor,v.eq_s_b(1,"e")||(v.cursor=v.limit-r,u()&&v.slice_del()));break;case 2:n=v.limit-v.cursor,v.eq_s_b(1,"e")||(v.cursor=v.limit-n,v.slice_del());break;case 3:if(v.slice_del(),v.ket=v.cursor,i=v.limit-v.cursor,!v.eq_s_b(2,"er")&&(v.cursor=v.limit-i,!v.eq_s_b(2,"en")))break;v.bra=v.cursor,c()&&v.slice_del();break;case 4:v.slice_del(),v.ket=v.cursor,e=v.find_among_b(b,2),e&&(v.bra=v.cursor,u()&&1==e&&v.slice_del())}}var d,l,m,h=[new r("",-1,6),new r("U",0,2),new r("Y",0,1),new r("ä",0,3),new r("ö",0,4),new r("ü",0,5)],w=[new r("e",-1,2),new r("em",-1,1),new r("en",-1,2),new r("ern",-1,1),new r("er",-1,1),new r("s",-1,3),new r("es",5,2)],f=[new r("en",-1,1),new r("er",-1,1),new r("st",-1,2),new r("est",2,1)],b=[new r("ig",-1,1),new r("lich",-1,1)],_=[new r("end",-1,1),new r("ig",-1,2),new r("ung",-1,1),new r("lich",-1,3),new r("isch",-1,2),new r("ik",-1,2),new r("heit",-1,3),new r("keit",-1,4)],p=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32,8],g=[117,30,5],k=[117,30,4],v=new n;this.setCurrent=function(e){v.setCurrent(e)},this.getCurrent=function(){return v.getCurrent()},this.stem=function(){var e=v.cursor;return i(),v.cursor=e,t(),v.limit_backward=e,v.cursor=v.limit,a(),v.cursor=v.limit_backward,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.de.stemmer,"stemmer-de"),e.de.stopWordFilter=e.generateStopWordFilter("aber alle allem allen aller alles als also am an ander andere anderem anderen anderer anderes anderm andern anderr anders auch auf aus bei bin bis bist da damit dann das dasselbe dazu daß dein deine deinem deinen deiner deines dem demselben den denn denselben der derer derselbe derselben des desselben dessen dich die dies diese dieselbe dieselben diesem diesen dieser dieses dir doch dort du durch ein eine einem einen einer eines einig einige einigem einigen einiger einiges einmal er es etwas euch euer eure eurem euren eurer eures für gegen gewesen hab habe haben hat hatte hatten hier hin hinter ich ihm ihn ihnen ihr ihre ihrem ihren ihrer ihres im in indem ins ist jede jedem jeden jeder jedes jene jenem jenen jener jenes jetzt kann kein keine keinem keinen keiner keines können könnte machen man manche manchem manchen mancher manches mein meine meinem meinen meiner meines mich mir mit muss musste nach nicht nichts noch nun nur ob oder ohne sehr sein seine seinem seinen seiner seines selbst sich sie sind so solche solchem solchen solcher solches soll sollte sondern sonst um und uns unse unsem unsen unser unses unter viel vom von vor war waren warst was weg weil weiter welche welchem welchen welcher welches wenn werde werden wie wieder will wir wird wirst wo wollen wollte während würde würden zu zum zur zwar zwischen über".split(" ")),e.Pipeline.registerFunction(e.de.stopWordFilter,"stopWordFilter-de")}}); \ No newline at end of file diff --git a/doc/theme/material/assets/javascripts/lunr/min/lunr.du.min.js b/doc/theme/material/assets/javascripts/lunr/min/lunr.du.min.js new file mode 100644 index 00000000..49a0f3f0 --- /dev/null +++ b/doc/theme/material/assets/javascripts/lunr/min/lunr.du.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Dutch` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");console.warn('[Lunr Languages] Please use the "nl" instead of the "du". The "nl" code is the standard code for Dutch language, and "du" will be removed in the next major versions.'),e.du=function(){this.pipeline.reset(),this.pipeline.add(e.du.trimmer,e.du.stopWordFilter,e.du.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.du.stemmer))},e.du.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.du.trimmer=e.trimmerSupport.generateTrimmer(e.du.wordCharacters),e.Pipeline.registerFunction(e.du.trimmer,"trimmer-du"),e.du.stemmer=function(){var r=e.stemmerSupport.Among,i=e.stemmerSupport.SnowballProgram,n=new function(){function e(){for(var e,r,i,o=C.cursor;;){if(C.bra=C.cursor,e=C.find_among(b,11))switch(C.ket=C.cursor,e){case 1:C.slice_from("a");continue;case 2:C.slice_from("e");continue;case 3:C.slice_from("i");continue;case 4:C.slice_from("o");continue;case 5:C.slice_from("u");continue;case 6:if(C.cursor>=C.limit)break;C.cursor++;continue}break}for(C.cursor=o,C.bra=o,C.eq_s(1,"y")?(C.ket=C.cursor,C.slice_from("Y")):C.cursor=o;;)if(r=C.cursor,C.in_grouping(q,97,232)){if(i=C.cursor,C.bra=i,C.eq_s(1,"i"))C.ket=C.cursor,C.in_grouping(q,97,232)&&(C.slice_from("I"),C.cursor=r);else if(C.cursor=i,C.eq_s(1,"y"))C.ket=C.cursor,C.slice_from("Y"),C.cursor=r;else if(n(r))break}else if(n(r))break}function n(e){return C.cursor=e,e>=C.limit||(C.cursor++,!1)}function o(){_=C.limit,f=_,t()||(_=C.cursor,_<3&&(_=3),t()||(f=C.cursor))}function t(){for(;!C.in_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}for(;!C.out_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}return!1}function s(){for(var e;;)if(C.bra=C.cursor,e=C.find_among(p,3))switch(C.ket=C.cursor,e){case 1:C.slice_from("y");break;case 2:C.slice_from("i");break;case 3:if(C.cursor>=C.limit)return;C.cursor++}}function u(){return _<=C.cursor}function c(){return f<=C.cursor}function a(){var e=C.limit-C.cursor;C.find_among_b(g,3)&&(C.cursor=C.limit-e,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del()))}function l(){var e;w=!1,C.ket=C.cursor,C.eq_s_b(1,"e")&&(C.bra=C.cursor,u()&&(e=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-e,C.slice_del(),w=!0,a())))}function m(){var e;u()&&(e=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-e,C.eq_s_b(3,"gem")||(C.cursor=C.limit-e,C.slice_del(),a())))}function d(){var e,r,i,n,o,t,s=C.limit-C.cursor;if(C.ket=C.cursor,e=C.find_among_b(h,5))switch(C.bra=C.cursor,e){case 1:u()&&C.slice_from("heid");break;case 2:m();break;case 3:u()&&C.out_grouping_b(z,97,232)&&C.slice_del()}if(C.cursor=C.limit-s,l(),C.cursor=C.limit-s,C.ket=C.cursor,C.eq_s_b(4,"heid")&&(C.bra=C.cursor,c()&&(r=C.limit-C.cursor,C.eq_s_b(1,"c")||(C.cursor=C.limit-r,C.slice_del(),C.ket=C.cursor,C.eq_s_b(2,"en")&&(C.bra=C.cursor,m())))),C.cursor=C.limit-s,C.ket=C.cursor,e=C.find_among_b(k,6))switch(C.bra=C.cursor,e){case 1:if(c()){if(C.slice_del(),i=C.limit-C.cursor,C.ket=C.cursor,C.eq_s_b(2,"ig")&&(C.bra=C.cursor,c()&&(n=C.limit-C.cursor,!C.eq_s_b(1,"e")))){C.cursor=C.limit-n,C.slice_del();break}C.cursor=C.limit-i,a()}break;case 2:c()&&(o=C.limit-C.cursor,C.eq_s_b(1,"e")||(C.cursor=C.limit-o,C.slice_del()));break;case 3:c()&&(C.slice_del(),l());break;case 4:c()&&C.slice_del();break;case 5:c()&&w&&C.slice_del()}C.cursor=C.limit-s,C.out_grouping_b(j,73,232)&&(t=C.limit-C.cursor,C.find_among_b(v,4)&&C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-t,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del())))}var f,_,w,b=[new r("",-1,6),new r("á",0,1),new r("ä",0,1),new r("é",0,2),new r("ë",0,2),new r("í",0,3),new r("ï",0,3),new r("ó",0,4),new r("ö",0,4),new r("ú",0,5),new r("ü",0,5)],p=[new r("",-1,3),new r("I",0,2),new r("Y",0,1)],g=[new r("dd",-1,-1),new r("kk",-1,-1),new r("tt",-1,-1)],h=[new r("ene",-1,2),new r("se",-1,3),new r("en",-1,2),new r("heden",2,1),new r("s",-1,3)],k=[new r("end",-1,1),new r("ig",-1,2),new r("ing",-1,1),new r("lijk",-1,3),new r("baar",-1,4),new r("bar",-1,5)],v=[new r("aa",-1,-1),new r("ee",-1,-1),new r("oo",-1,-1),new r("uu",-1,-1)],q=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],j=[1,0,0,17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],z=[17,67,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],C=new i;this.setCurrent=function(e){C.setCurrent(e)},this.getCurrent=function(){return C.getCurrent()},this.stem=function(){var r=C.cursor;return e(),C.cursor=r,o(),C.limit_backward=r,C.cursor=C.limit,d(),C.cursor=C.limit_backward,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.du.stemmer,"stemmer-du"),e.du.stopWordFilter=e.generateStopWordFilter(" aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou".split(" ")),e.Pipeline.registerFunction(e.du.stopWordFilter,"stopWordFilter-du")}}); \ No newline at end of file diff --git a/doc/theme/material/assets/javascripts/lunr/min/lunr.es.min.js b/doc/theme/material/assets/javascripts/lunr/min/lunr.es.min.js new file mode 100644 index 00000000..2989d342 --- /dev/null +++ b/doc/theme/material/assets/javascripts/lunr/min/lunr.es.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Spanish` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,s){"function"==typeof define&&define.amd?define(s):"object"==typeof exports?module.exports=s():s()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.es=function(){this.pipeline.reset(),this.pipeline.add(e.es.trimmer,e.es.stopWordFilter,e.es.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.es.stemmer))},e.es.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.es.trimmer=e.trimmerSupport.generateTrimmer(e.es.wordCharacters),e.Pipeline.registerFunction(e.es.trimmer,"trimmer-es"),e.es.stemmer=function(){var s=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,n=new function(){function e(){if(A.out_grouping(x,97,252)){for(;!A.in_grouping(x,97,252);){if(A.cursor>=A.limit)return!0;A.cursor++}return!1}return!0}function n(){if(A.in_grouping(x,97,252)){var s=A.cursor;if(e()){if(A.cursor=s,!A.in_grouping(x,97,252))return!0;for(;!A.out_grouping(x,97,252);){if(A.cursor>=A.limit)return!0;A.cursor++}}return!1}return!0}function i(){var s,r=A.cursor;if(n()){if(A.cursor=r,!A.out_grouping(x,97,252))return;if(s=A.cursor,e()){if(A.cursor=s,!A.in_grouping(x,97,252)||A.cursor>=A.limit)return;A.cursor++}}g=A.cursor}function a(){for(;!A.in_grouping(x,97,252);){if(A.cursor>=A.limit)return!1;A.cursor++}for(;!A.out_grouping(x,97,252);){if(A.cursor>=A.limit)return!1;A.cursor++}return!0}function t(){var e=A.cursor;g=A.limit,p=g,v=g,i(),A.cursor=e,a()&&(p=A.cursor,a()&&(v=A.cursor))}function o(){for(var e;;){if(A.bra=A.cursor,e=A.find_among(k,6))switch(A.ket=A.cursor,e){case 1:A.slice_from("a");continue;case 2:A.slice_from("e");continue;case 3:A.slice_from("i");continue;case 4:A.slice_from("o");continue;case 5:A.slice_from("u");continue;case 6:if(A.cursor>=A.limit)break;A.cursor++;continue}break}}function u(){return g<=A.cursor}function w(){return p<=A.cursor}function c(){return v<=A.cursor}function m(){var e;if(A.ket=A.cursor,A.find_among_b(y,13)&&(A.bra=A.cursor,(e=A.find_among_b(q,11))&&u()))switch(e){case 1:A.bra=A.cursor,A.slice_from("iendo");break;case 2:A.bra=A.cursor,A.slice_from("ando");break;case 3:A.bra=A.cursor,A.slice_from("ar");break;case 4:A.bra=A.cursor,A.slice_from("er");break;case 5:A.bra=A.cursor,A.slice_from("ir");break;case 6:A.slice_del();break;case 7:A.eq_s_b(1,"u")&&A.slice_del()}}function l(e,s){if(!c())return!0;A.slice_del(),A.ket=A.cursor;var r=A.find_among_b(e,s);return r&&(A.bra=A.cursor,1==r&&c()&&A.slice_del()),!1}function d(e){return!c()||(A.slice_del(),A.ket=A.cursor,A.eq_s_b(2,e)&&(A.bra=A.cursor,c()&&A.slice_del()),!1)}function b(){var e;if(A.ket=A.cursor,e=A.find_among_b(S,46)){switch(A.bra=A.cursor,e){case 1:if(!c())return!1;A.slice_del();break;case 2:if(d("ic"))return!1;break;case 3:if(!c())return!1;A.slice_from("log");break;case 4:if(!c())return!1;A.slice_from("u");break;case 5:if(!c())return!1;A.slice_from("ente");break;case 6:if(!w())return!1;A.slice_del(),A.ket=A.cursor,e=A.find_among_b(C,4),e&&(A.bra=A.cursor,c()&&(A.slice_del(),1==e&&(A.ket=A.cursor,A.eq_s_b(2,"at")&&(A.bra=A.cursor,c()&&A.slice_del()))));break;case 7:if(l(P,3))return!1;break;case 8:if(l(F,3))return!1;break;case 9:if(d("at"))return!1}return!0}return!1}function f(){var e,s;if(A.cursor>=g&&(s=A.limit_backward,A.limit_backward=g,A.ket=A.cursor,e=A.find_among_b(W,12),A.limit_backward=s,e)){if(A.bra=A.cursor,1==e){if(!A.eq_s_b(1,"u"))return!1;A.slice_del()}return!0}return!1}function _(){var e,s,r,n;if(A.cursor>=g&&(s=A.limit_backward,A.limit_backward=g,A.ket=A.cursor,e=A.find_among_b(L,96),A.limit_backward=s,e))switch(A.bra=A.cursor,e){case 1:r=A.limit-A.cursor,A.eq_s_b(1,"u")?(n=A.limit-A.cursor,A.eq_s_b(1,"g")?A.cursor=A.limit-n:A.cursor=A.limit-r):A.cursor=A.limit-r,A.bra=A.cursor;case 2:A.slice_del()}}function h(){var e,s;if(A.ket=A.cursor,e=A.find_among_b(z,8))switch(A.bra=A.cursor,e){case 1:u()&&A.slice_del();break;case 2:u()&&(A.slice_del(),A.ket=A.cursor,A.eq_s_b(1,"u")&&(A.bra=A.cursor,s=A.limit-A.cursor,A.eq_s_b(1,"g")&&(A.cursor=A.limit-s,u()&&A.slice_del())))}}var v,p,g,k=[new s("",-1,6),new s("á",0,1),new s("é",0,2),new s("í",0,3),new s("ó",0,4),new s("ú",0,5)],y=[new s("la",-1,-1),new s("sela",0,-1),new s("le",-1,-1),new s("me",-1,-1),new s("se",-1,-1),new s("lo",-1,-1),new s("selo",5,-1),new s("las",-1,-1),new s("selas",7,-1),new s("les",-1,-1),new s("los",-1,-1),new s("selos",10,-1),new s("nos",-1,-1)],q=[new s("ando",-1,6),new s("iendo",-1,6),new s("yendo",-1,7),new s("ándo",-1,2),new s("iéndo",-1,1),new s("ar",-1,6),new s("er",-1,6),new s("ir",-1,6),new s("ár",-1,3),new s("ér",-1,4),new s("ír",-1,5)],C=[new s("ic",-1,-1),new s("ad",-1,-1),new s("os",-1,-1),new s("iv",-1,1)],P=[new s("able",-1,1),new s("ible",-1,1),new s("ante",-1,1)],F=[new s("ic",-1,1),new s("abil",-1,1),new s("iv",-1,1)],S=[new s("ica",-1,1),new s("ancia",-1,2),new s("encia",-1,5),new s("adora",-1,2),new s("osa",-1,1),new s("ista",-1,1),new s("iva",-1,9),new s("anza",-1,1),new s("logía",-1,3),new s("idad",-1,8),new s("able",-1,1),new s("ible",-1,1),new s("ante",-1,2),new s("mente",-1,7),new s("amente",13,6),new s("ación",-1,2),new s("ución",-1,4),new s("ico",-1,1),new s("ismo",-1,1),new s("oso",-1,1),new s("amiento",-1,1),new s("imiento",-1,1),new s("ivo",-1,9),new s("ador",-1,2),new s("icas",-1,1),new s("ancias",-1,2),new s("encias",-1,5),new s("adoras",-1,2),new s("osas",-1,1),new s("istas",-1,1),new s("ivas",-1,9),new s("anzas",-1,1),new s("logías",-1,3),new s("idades",-1,8),new s("ables",-1,1),new s("ibles",-1,1),new s("aciones",-1,2),new s("uciones",-1,4),new s("adores",-1,2),new s("antes",-1,2),new s("icos",-1,1),new s("ismos",-1,1),new s("osos",-1,1),new s("amientos",-1,1),new s("imientos",-1,1),new s("ivos",-1,9)],W=[new s("ya",-1,1),new s("ye",-1,1),new s("yan",-1,1),new s("yen",-1,1),new s("yeron",-1,1),new s("yendo",-1,1),new s("yo",-1,1),new s("yas",-1,1),new s("yes",-1,1),new s("yais",-1,1),new s("yamos",-1,1),new s("yó",-1,1)],L=[new s("aba",-1,2),new s("ada",-1,2),new s("ida",-1,2),new s("ara",-1,2),new s("iera",-1,2),new s("ía",-1,2),new s("aría",5,2),new s("ería",5,2),new s("iría",5,2),new s("ad",-1,2),new s("ed",-1,2),new s("id",-1,2),new s("ase",-1,2),new s("iese",-1,2),new s("aste",-1,2),new s("iste",-1,2),new s("an",-1,2),new s("aban",16,2),new s("aran",16,2),new s("ieran",16,2),new s("ían",16,2),new s("arían",20,2),new s("erían",20,2),new s("irían",20,2),new s("en",-1,1),new s("asen",24,2),new s("iesen",24,2),new s("aron",-1,2),new s("ieron",-1,2),new s("arán",-1,2),new s("erán",-1,2),new s("irán",-1,2),new s("ado",-1,2),new s("ido",-1,2),new s("ando",-1,2),new s("iendo",-1,2),new s("ar",-1,2),new s("er",-1,2),new s("ir",-1,2),new s("as",-1,2),new s("abas",39,2),new s("adas",39,2),new s("idas",39,2),new s("aras",39,2),new s("ieras",39,2),new s("ías",39,2),new s("arías",45,2),new s("erías",45,2),new s("irías",45,2),new s("es",-1,1),new s("ases",49,2),new s("ieses",49,2),new s("abais",-1,2),new s("arais",-1,2),new s("ierais",-1,2),new s("íais",-1,2),new s("aríais",55,2),new s("eríais",55,2),new s("iríais",55,2),new s("aseis",-1,2),new s("ieseis",-1,2),new s("asteis",-1,2),new s("isteis",-1,2),new s("áis",-1,2),new s("éis",-1,1),new s("aréis",64,2),new s("eréis",64,2),new s("iréis",64,2),new s("ados",-1,2),new s("idos",-1,2),new s("amos",-1,2),new s("ábamos",70,2),new s("áramos",70,2),new s("iéramos",70,2),new s("íamos",70,2),new s("aríamos",74,2),new s("eríamos",74,2),new s("iríamos",74,2),new s("emos",-1,1),new s("aremos",78,2),new s("eremos",78,2),new s("iremos",78,2),new s("ásemos",78,2),new s("iésemos",78,2),new s("imos",-1,2),new s("arás",-1,2),new s("erás",-1,2),new s("irás",-1,2),new s("ís",-1,2),new s("ará",-1,2),new s("erá",-1,2),new s("irá",-1,2),new s("aré",-1,2),new s("eré",-1,2),new s("iré",-1,2),new s("ió",-1,2)],z=[new s("a",-1,1),new s("e",-1,2),new s("o",-1,1),new s("os",-1,1),new s("á",-1,1),new s("é",-1,2),new s("í",-1,1),new s("ó",-1,1)],x=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,17,4,10],A=new r;this.setCurrent=function(e){A.setCurrent(e)},this.getCurrent=function(){return A.getCurrent()},this.stem=function(){var e=A.cursor;return t(),A.limit_backward=e,A.cursor=A.limit,m(),A.cursor=A.limit,b()||(A.cursor=A.limit,f()||(A.cursor=A.limit,_())),A.cursor=A.limit,h(),A.cursor=A.limit_backward,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.es.stemmer,"stemmer-es"),e.es.stopWordFilter=e.generateStopWordFilter("a al algo algunas algunos ante antes como con contra cual cuando de del desde donde durante e el ella ellas ellos en entre era erais eran eras eres es esa esas ese eso esos esta estaba estabais estaban estabas estad estada estadas estado estados estamos estando estar estaremos estará estarán estarás estaré estaréis estaría estaríais estaríamos estarían estarías estas este estemos esto estos estoy estuve estuviera estuvierais estuvieran estuvieras estuvieron estuviese estuvieseis estuviesen estuvieses estuvimos estuviste estuvisteis estuviéramos estuviésemos estuvo está estábamos estáis están estás esté estéis estén estés fue fuera fuerais fueran fueras fueron fuese fueseis fuesen fueses fui fuimos fuiste fuisteis fuéramos fuésemos ha habida habidas habido habidos habiendo habremos habrá habrán habrás habré habréis habría habríais habríamos habrían habrías habéis había habíais habíamos habían habías han has hasta hay haya hayamos hayan hayas hayáis he hemos hube hubiera hubierais hubieran hubieras hubieron hubiese hubieseis hubiesen hubieses hubimos hubiste hubisteis hubiéramos hubiésemos hubo la las le les lo los me mi mis mucho muchos muy más mí mía mías mío míos nada ni no nos nosotras nosotros nuestra nuestras nuestro nuestros o os otra otras otro otros para pero poco por porque que quien quienes qué se sea seamos sean seas seremos será serán serás seré seréis sería seríais seríamos serían serías seáis sido siendo sin sobre sois somos son soy su sus suya suyas suyo suyos sí también tanto te tendremos tendrá tendrán tendrás tendré tendréis tendría tendríais tendríamos tendrían tendrías tened tenemos tenga tengamos tengan tengas tengo tengáis tenida tenidas tenido tenidos teniendo tenéis tenía teníais teníamos tenían tenías ti tiene tienen tienes todo todos tu tus tuve tuviera tuvierais tuvieran tuvieras tuvieron tuviese tuvieseis tuviesen tuvieses tuvimos tuviste tuvisteis tuviéramos tuviésemos tuvo tuya tuyas tuyo tuyos tú un una uno unos vosotras vosotros vuestra vuestras vuestro vuestros y ya yo él éramos".split(" ")),e.Pipeline.registerFunction(e.es.stopWordFilter,"stopWordFilter-es")}}); \ No newline at end of file diff --git a/doc/theme/material/assets/javascripts/lunr/min/lunr.fi.min.js b/doc/theme/material/assets/javascripts/lunr/min/lunr.fi.min.js new file mode 100644 index 00000000..29f5dfce --- /dev/null +++ b/doc/theme/material/assets/javascripts/lunr/min/lunr.fi.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Finnish` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(i,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():e()(i.lunr)}(this,function(){return function(i){if(void 0===i)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===i.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");i.fi=function(){this.pipeline.reset(),this.pipeline.add(i.fi.trimmer,i.fi.stopWordFilter,i.fi.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(i.fi.stemmer))},i.fi.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",i.fi.trimmer=i.trimmerSupport.generateTrimmer(i.fi.wordCharacters),i.Pipeline.registerFunction(i.fi.trimmer,"trimmer-fi"),i.fi.stemmer=function(){var e=i.stemmerSupport.Among,r=i.stemmerSupport.SnowballProgram,n=new function(){function i(){f=A.limit,d=f,n()||(f=A.cursor,n()||(d=A.cursor))}function n(){for(var i;;){if(i=A.cursor,A.in_grouping(W,97,246))break;if(A.cursor=i,i>=A.limit)return!0;A.cursor++}for(A.cursor=i;!A.out_grouping(W,97,246);){if(A.cursor>=A.limit)return!0;A.cursor++}return!1}function t(){return d<=A.cursor}function s(){var i,e;if(A.cursor>=f)if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,i=A.find_among_b(h,10)){switch(A.bra=A.cursor,A.limit_backward=e,i){case 1:if(!A.in_grouping_b(x,97,246))return;break;case 2:if(!t())return}A.slice_del()}else A.limit_backward=e}function o(){var i,e,r;if(A.cursor>=f)if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,i=A.find_among_b(v,9))switch(A.bra=A.cursor,A.limit_backward=e,i){case 1:r=A.limit-A.cursor,A.eq_s_b(1,"k")||(A.cursor=A.limit-r,A.slice_del());break;case 2:A.slice_del(),A.ket=A.cursor,A.eq_s_b(3,"kse")&&(A.bra=A.cursor,A.slice_from("ksi"));break;case 3:A.slice_del();break;case 4:A.find_among_b(p,6)&&A.slice_del();break;case 5:A.find_among_b(g,6)&&A.slice_del();break;case 6:A.find_among_b(j,2)&&A.slice_del()}else A.limit_backward=e}function l(){return A.find_among_b(q,7)}function a(){return A.eq_s_b(1,"i")&&A.in_grouping_b(L,97,246)}function u(){var i,e,r;if(A.cursor>=f)if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,i=A.find_among_b(C,30)){switch(A.bra=A.cursor,A.limit_backward=e,i){case 1:if(!A.eq_s_b(1,"a"))return;break;case 2:case 9:if(!A.eq_s_b(1,"e"))return;break;case 3:if(!A.eq_s_b(1,"i"))return;break;case 4:if(!A.eq_s_b(1,"o"))return;break;case 5:if(!A.eq_s_b(1,"ä"))return;break;case 6:if(!A.eq_s_b(1,"ö"))return;break;case 7:if(r=A.limit-A.cursor,!l()&&(A.cursor=A.limit-r,!A.eq_s_b(2,"ie"))){A.cursor=A.limit-r;break}if(A.cursor=A.limit-r,A.cursor<=A.limit_backward){A.cursor=A.limit-r;break}A.cursor--,A.bra=A.cursor;break;case 8:if(!A.in_grouping_b(W,97,246)||!A.out_grouping_b(W,97,246))return}A.slice_del(),k=!0}else A.limit_backward=e}function c(){var i,e,r;if(A.cursor>=d)if(e=A.limit_backward,A.limit_backward=d,A.ket=A.cursor,i=A.find_among_b(P,14)){if(A.bra=A.cursor,A.limit_backward=e,1==i){if(r=A.limit-A.cursor,A.eq_s_b(2,"po"))return;A.cursor=A.limit-r}A.slice_del()}else A.limit_backward=e}function m(){var i;A.cursor>=f&&(i=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,A.find_among_b(F,2)?(A.bra=A.cursor,A.limit_backward=i,A.slice_del()):A.limit_backward=i)}function w(){var i,e,r,n,t,s;if(A.cursor>=f){if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,A.eq_s_b(1,"t")&&(A.bra=A.cursor,r=A.limit-A.cursor,A.in_grouping_b(W,97,246)&&(A.cursor=A.limit-r,A.slice_del(),A.limit_backward=e,n=A.limit-A.cursor,A.cursor>=d&&(A.cursor=d,t=A.limit_backward,A.limit_backward=A.cursor,A.cursor=A.limit-n,A.ket=A.cursor,i=A.find_among_b(S,2))))){if(A.bra=A.cursor,A.limit_backward=t,1==i){if(s=A.limit-A.cursor,A.eq_s_b(2,"po"))return;A.cursor=A.limit-s}return void A.slice_del()}A.limit_backward=e}}function _(){var i,e,r,n;if(A.cursor>=f){for(i=A.limit_backward,A.limit_backward=f,e=A.limit-A.cursor,l()&&(A.cursor=A.limit-e,A.ket=A.cursor,A.cursor>A.limit_backward&&(A.cursor--,A.bra=A.cursor,A.slice_del())),A.cursor=A.limit-e,A.ket=A.cursor,A.in_grouping_b(y,97,228)&&(A.bra=A.cursor,A.out_grouping_b(W,97,246)&&A.slice_del()),A.cursor=A.limit-e,A.ket=A.cursor,A.eq_s_b(1,"j")&&(A.bra=A.cursor,r=A.limit-A.cursor,A.eq_s_b(1,"o")?A.slice_del():(A.cursor=A.limit-r,A.eq_s_b(1,"u")&&A.slice_del())),A.cursor=A.limit-e,A.ket=A.cursor,A.eq_s_b(1,"o")&&(A.bra=A.cursor,A.eq_s_b(1,"j")&&A.slice_del()),A.cursor=A.limit-e,A.limit_backward=i;;){if(n=A.limit-A.cursor,A.out_grouping_b(W,97,246)){A.cursor=A.limit-n;break}if(A.cursor=A.limit-n,A.cursor<=A.limit_backward)return;A.cursor--}A.ket=A.cursor,A.cursor>A.limit_backward&&(A.cursor--,A.bra=A.cursor,b=A.slice_to(),A.eq_v_b(b)&&A.slice_del())}}var k,b,d,f,h=[new e("pa",-1,1),new e("sti",-1,2),new e("kaan",-1,1),new e("han",-1,1),new e("kin",-1,1),new e("hän",-1,1),new e("kään",-1,1),new e("ko",-1,1),new e("pä",-1,1),new e("kö",-1,1)],p=[new e("lla",-1,-1),new e("na",-1,-1),new e("ssa",-1,-1),new e("ta",-1,-1),new e("lta",3,-1),new e("sta",3,-1)],g=[new e("llä",-1,-1),new e("nä",-1,-1),new e("ssä",-1,-1),new e("tä",-1,-1),new e("ltä",3,-1),new e("stä",3,-1)],j=[new e("lle",-1,-1),new e("ine",-1,-1)],v=[new e("nsa",-1,3),new e("mme",-1,3),new e("nne",-1,3),new e("ni",-1,2),new e("si",-1,1),new e("an",-1,4),new e("en",-1,6),new e("än",-1,5),new e("nsä",-1,3)],q=[new e("aa",-1,-1),new e("ee",-1,-1),new e("ii",-1,-1),new e("oo",-1,-1),new e("uu",-1,-1),new e("ää",-1,-1),new e("öö",-1,-1)],C=[new e("a",-1,8),new e("lla",0,-1),new e("na",0,-1),new e("ssa",0,-1),new e("ta",0,-1),new e("lta",4,-1),new e("sta",4,-1),new e("tta",4,9),new e("lle",-1,-1),new e("ine",-1,-1),new e("ksi",-1,-1),new e("n",-1,7),new e("han",11,1),new e("den",11,-1,a),new e("seen",11,-1,l),new e("hen",11,2),new e("tten",11,-1,a),new e("hin",11,3),new e("siin",11,-1,a),new e("hon",11,4),new e("hän",11,5),new e("hön",11,6),new e("ä",-1,8),new e("llä",22,-1),new e("nä",22,-1),new e("ssä",22,-1),new e("tä",22,-1),new e("ltä",26,-1),new e("stä",26,-1),new e("ttä",26,9)],P=[new e("eja",-1,-1),new e("mma",-1,1),new e("imma",1,-1),new e("mpa",-1,1),new e("impa",3,-1),new e("mmi",-1,1),new e("immi",5,-1),new e("mpi",-1,1),new e("impi",7,-1),new e("ejä",-1,-1),new e("mmä",-1,1),new e("immä",10,-1),new e("mpä",-1,1),new e("impä",12,-1)],F=[new e("i",-1,-1),new e("j",-1,-1)],S=[new e("mma",-1,1),new e("imma",0,-1)],y=[17,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8],W=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],L=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],x=[17,97,24,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],A=new r;this.setCurrent=function(i){A.setCurrent(i)},this.getCurrent=function(){return A.getCurrent()},this.stem=function(){var e=A.cursor;return i(),k=!1,A.limit_backward=e,A.cursor=A.limit,s(),A.cursor=A.limit,o(),A.cursor=A.limit,u(),A.cursor=A.limit,c(),A.cursor=A.limit,k?(m(),A.cursor=A.limit):(A.cursor=A.limit,w(),A.cursor=A.limit),_(),!0}};return function(i){return"function"==typeof i.update?i.update(function(i){return n.setCurrent(i),n.stem(),n.getCurrent()}):(n.setCurrent(i),n.stem(),n.getCurrent())}}(),i.Pipeline.registerFunction(i.fi.stemmer,"stemmer-fi"),i.fi.stopWordFilter=i.generateStopWordFilter("ei eivät emme en et ette että he heidän heidät heihin heille heillä heiltä heissä heistä heitä hän häneen hänelle hänellä häneltä hänen hänessä hänestä hänet häntä itse ja johon joiden joihin joiksi joilla joille joilta joina joissa joista joita joka joksi jolla jolle jolta jona jonka jos jossa josta jota jotka kanssa keiden keihin keiksi keille keillä keiltä keinä keissä keistä keitä keneen keneksi kenelle kenellä keneltä kenen kenenä kenessä kenestä kenet ketkä ketkä ketä koska kuin kuka kun me meidän meidät meihin meille meillä meiltä meissä meistä meitä mihin miksi mikä mille millä miltä minkä minkä minua minulla minulle minulta minun minussa minusta minut minuun minä minä missä mistä mitkä mitä mukaan mutta ne niiden niihin niiksi niille niillä niiltä niin niin niinä niissä niistä niitä noiden noihin noiksi noilla noille noilta noin noina noissa noista noita nuo nyt näiden näihin näiksi näille näillä näiltä näinä näissä näistä näitä nämä ole olemme olen olet olette oli olimme olin olisi olisimme olisin olisit olisitte olisivat olit olitte olivat olla olleet ollut on ovat poikki se sekä sen siihen siinä siitä siksi sille sillä sillä siltä sinua sinulla sinulle sinulta sinun sinussa sinusta sinut sinuun sinä sinä sitä tai te teidän teidät teihin teille teillä teiltä teissä teistä teitä tuo tuohon tuoksi tuolla tuolle tuolta tuon tuona tuossa tuosta tuota tähän täksi tälle tällä tältä tämä tämän tänä tässä tästä tätä vaan vai vaikka yli".split(" ")),i.Pipeline.registerFunction(i.fi.stopWordFilter,"stopWordFilter-fi")}}); \ No newline at end of file diff --git a/doc/theme/material/assets/javascripts/lunr/min/lunr.fr.min.js b/doc/theme/material/assets/javascripts/lunr/min/lunr.fr.min.js new file mode 100644 index 00000000..68cd0094 --- /dev/null +++ b/doc/theme/material/assets/javascripts/lunr/min/lunr.fr.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `French` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.fr=function(){this.pipeline.reset(),this.pipeline.add(e.fr.trimmer,e.fr.stopWordFilter,e.fr.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.fr.stemmer))},e.fr.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.fr.trimmer=e.trimmerSupport.generateTrimmer(e.fr.wordCharacters),e.Pipeline.registerFunction(e.fr.trimmer,"trimmer-fr"),e.fr.stemmer=function(){var r=e.stemmerSupport.Among,s=e.stemmerSupport.SnowballProgram,i=new function(){function e(e,r,s){return!(!W.eq_s(1,e)||(W.ket=W.cursor,!W.in_grouping(F,97,251)))&&(W.slice_from(r),W.cursor=s,!0)}function i(e,r,s){return!!W.eq_s(1,e)&&(W.ket=W.cursor,W.slice_from(r),W.cursor=s,!0)}function n(){for(var r,s;;){if(r=W.cursor,W.in_grouping(F,97,251)){if(W.bra=W.cursor,s=W.cursor,e("u","U",r))continue;if(W.cursor=s,e("i","I",r))continue;if(W.cursor=s,i("y","Y",r))continue}if(W.cursor=r,W.bra=r,!e("y","Y",r)){if(W.cursor=r,W.eq_s(1,"q")&&(W.bra=W.cursor,i("u","U",r)))continue;if(W.cursor=r,r>=W.limit)return;W.cursor++}}}function t(){for(;!W.in_grouping(F,97,251);){if(W.cursor>=W.limit)return!0;W.cursor++}for(;!W.out_grouping(F,97,251);){if(W.cursor>=W.limit)return!0;W.cursor++}return!1}function u(){var e=W.cursor;if(q=W.limit,g=q,p=q,W.in_grouping(F,97,251)&&W.in_grouping(F,97,251)&&W.cursor=W.limit){W.cursor=q;break}W.cursor++}while(!W.in_grouping(F,97,251))}q=W.cursor,W.cursor=e,t()||(g=W.cursor,t()||(p=W.cursor))}function o(){for(var e,r;;){if(r=W.cursor,W.bra=r,!(e=W.find_among(h,4)))break;switch(W.ket=W.cursor,e){case 1:W.slice_from("i");break;case 2:W.slice_from("u");break;case 3:W.slice_from("y");break;case 4:if(W.cursor>=W.limit)return;W.cursor++}}}function c(){return q<=W.cursor}function a(){return g<=W.cursor}function l(){return p<=W.cursor}function w(){var e,r;if(W.ket=W.cursor,e=W.find_among_b(C,43)){switch(W.bra=W.cursor,e){case 1:if(!l())return!1;W.slice_del();break;case 2:if(!l())return!1;W.slice_del(),W.ket=W.cursor,W.eq_s_b(2,"ic")&&(W.bra=W.cursor,l()?W.slice_del():W.slice_from("iqU"));break;case 3:if(!l())return!1;W.slice_from("log");break;case 4:if(!l())return!1;W.slice_from("u");break;case 5:if(!l())return!1;W.slice_from("ent");break;case 6:if(!c())return!1;if(W.slice_del(),W.ket=W.cursor,e=W.find_among_b(z,6))switch(W.bra=W.cursor,e){case 1:l()&&(W.slice_del(),W.ket=W.cursor,W.eq_s_b(2,"at")&&(W.bra=W.cursor,l()&&W.slice_del()));break;case 2:l()?W.slice_del():a()&&W.slice_from("eux");break;case 3:l()&&W.slice_del();break;case 4:c()&&W.slice_from("i")}break;case 7:if(!l())return!1;if(W.slice_del(),W.ket=W.cursor,e=W.find_among_b(y,3))switch(W.bra=W.cursor,e){case 1:l()?W.slice_del():W.slice_from("abl");break;case 2:l()?W.slice_del():W.slice_from("iqU");break;case 3:l()&&W.slice_del()}break;case 8:if(!l())return!1;if(W.slice_del(),W.ket=W.cursor,W.eq_s_b(2,"at")&&(W.bra=W.cursor,l()&&(W.slice_del(),W.ket=W.cursor,W.eq_s_b(2,"ic")))){W.bra=W.cursor,l()?W.slice_del():W.slice_from("iqU");break}break;case 9:W.slice_from("eau");break;case 10:if(!a())return!1;W.slice_from("al");break;case 11:if(l())W.slice_del();else{if(!a())return!1;W.slice_from("eux")}break;case 12:if(!a()||!W.out_grouping_b(F,97,251))return!1;W.slice_del();break;case 13:return c()&&W.slice_from("ant"),!1;case 14:return c()&&W.slice_from("ent"),!1;case 15:return r=W.limit-W.cursor,W.in_grouping_b(F,97,251)&&c()&&(W.cursor=W.limit-r,W.slice_del()),!1}return!0}return!1}function f(){var e,r;if(W.cursor=q){if(s=W.limit_backward,W.limit_backward=q,W.ket=W.cursor,e=W.find_among_b(P,7))switch(W.bra=W.cursor,e){case 1:if(l()){if(i=W.limit-W.cursor,!W.eq_s_b(1,"s")&&(W.cursor=W.limit-i,!W.eq_s_b(1,"t")))break;W.slice_del()}break;case 2:W.slice_from("i");break;case 3:W.slice_del();break;case 4:W.eq_s_b(2,"gu")&&W.slice_del()}W.limit_backward=s}}function b(){var e=W.limit-W.cursor;W.find_among_b(U,5)&&(W.cursor=W.limit-e,W.ket=W.cursor,W.cursor>W.limit_backward&&(W.cursor--,W.bra=W.cursor,W.slice_del()))}function d(){for(var e,r=1;W.out_grouping_b(F,97,251);)r--;if(r<=0){if(W.ket=W.cursor,e=W.limit-W.cursor,!W.eq_s_b(1,"é")&&(W.cursor=W.limit-e,!W.eq_s_b(1,"è")))return;W.bra=W.cursor,W.slice_from("e")}}function k(){if(!w()&&(W.cursor=W.limit,!f()&&(W.cursor=W.limit,!m())))return W.cursor=W.limit,void _();W.cursor=W.limit,W.ket=W.cursor,W.eq_s_b(1,"Y")?(W.bra=W.cursor,W.slice_from("i")):(W.cursor=W.limit,W.eq_s_b(1,"ç")&&(W.bra=W.cursor,W.slice_from("c")))}var p,g,q,v=[new r("col",-1,-1),new r("par",-1,-1),new r("tap",-1,-1)],h=[new r("",-1,4),new r("I",0,1),new r("U",0,2),new r("Y",0,3)],z=[new r("iqU",-1,3),new r("abl",-1,3),new r("Ièr",-1,4),new r("ièr",-1,4),new r("eus",-1,2),new r("iv",-1,1)],y=[new r("ic",-1,2),new r("abil",-1,1),new r("iv",-1,3)],C=[new r("iqUe",-1,1),new r("atrice",-1,2),new r("ance",-1,1),new r("ence",-1,5),new r("logie",-1,3),new r("able",-1,1),new r("isme",-1,1),new r("euse",-1,11),new r("iste",-1,1),new r("ive",-1,8),new r("if",-1,8),new r("usion",-1,4),new r("ation",-1,2),new r("ution",-1,4),new r("ateur",-1,2),new r("iqUes",-1,1),new r("atrices",-1,2),new r("ances",-1,1),new r("ences",-1,5),new r("logies",-1,3),new r("ables",-1,1),new r("ismes",-1,1),new r("euses",-1,11),new r("istes",-1,1),new r("ives",-1,8),new r("ifs",-1,8),new r("usions",-1,4),new r("ations",-1,2),new r("utions",-1,4),new r("ateurs",-1,2),new r("ments",-1,15),new r("ements",30,6),new r("issements",31,12),new r("ités",-1,7),new r("ment",-1,15),new r("ement",34,6),new r("issement",35,12),new r("amment",34,13),new r("emment",34,14),new r("aux",-1,10),new r("eaux",39,9),new r("eux",-1,1),new r("ité",-1,7)],x=[new r("ira",-1,1),new r("ie",-1,1),new r("isse",-1,1),new r("issante",-1,1),new r("i",-1,1),new r("irai",4,1),new r("ir",-1,1),new r("iras",-1,1),new r("ies",-1,1),new r("îmes",-1,1),new r("isses",-1,1),new r("issantes",-1,1),new r("îtes",-1,1),new r("is",-1,1),new r("irais",13,1),new r("issais",13,1),new r("irions",-1,1),new r("issions",-1,1),new r("irons",-1,1),new r("issons",-1,1),new r("issants",-1,1),new r("it",-1,1),new r("irait",21,1),new r("issait",21,1),new r("issant",-1,1),new r("iraIent",-1,1),new r("issaIent",-1,1),new r("irent",-1,1),new r("issent",-1,1),new r("iront",-1,1),new r("ît",-1,1),new r("iriez",-1,1),new r("issiez",-1,1),new r("irez",-1,1),new r("issez",-1,1)],I=[new r("a",-1,3),new r("era",0,2),new r("asse",-1,3),new r("ante",-1,3),new r("ée",-1,2),new r("ai",-1,3),new r("erai",5,2),new r("er",-1,2),new r("as",-1,3),new r("eras",8,2),new r("âmes",-1,3),new r("asses",-1,3),new r("antes",-1,3),new r("âtes",-1,3),new r("ées",-1,2),new r("ais",-1,3),new r("erais",15,2),new r("ions",-1,1),new r("erions",17,2),new r("assions",17,3),new r("erons",-1,2),new r("ants",-1,3),new r("és",-1,2),new r("ait",-1,3),new r("erait",23,2),new r("ant",-1,3),new r("aIent",-1,3),new r("eraIent",26,2),new r("èrent",-1,2),new r("assent",-1,3),new r("eront",-1,2),new r("ât",-1,3),new r("ez",-1,2),new r("iez",32,2),new r("eriez",33,2),new r("assiez",33,3),new r("erez",32,2),new r("é",-1,2)],P=[new r("e",-1,3),new r("Ière",0,2),new r("ière",0,2),new r("ion",-1,1),new r("Ier",-1,2),new r("ier",-1,2),new r("ë",-1,4)],U=[new r("ell",-1,-1),new r("eill",-1,-1),new r("enn",-1,-1),new r("onn",-1,-1),new r("ett",-1,-1)],F=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,128,130,103,8,5],S=[1,65,20,0,0,0,0,0,0,0,0,0,0,0,0,0,128],W=new s;this.setCurrent=function(e){W.setCurrent(e)},this.getCurrent=function(){return W.getCurrent()},this.stem=function(){var e=W.cursor;return n(),W.cursor=e,u(),W.limit_backward=e,W.cursor=W.limit,k(),W.cursor=W.limit,b(),W.cursor=W.limit,d(),W.cursor=W.limit_backward,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.fr.stemmer,"stemmer-fr"),e.fr.stopWordFilter=e.generateStopWordFilter("ai aie aient aies ait as au aura aurai auraient aurais aurait auras aurez auriez aurions aurons auront aux avaient avais avait avec avez aviez avions avons ayant ayez ayons c ce ceci celà ces cet cette d dans de des du elle en es est et eu eue eues eurent eus eusse eussent eusses eussiez eussions eut eux eûmes eût eûtes furent fus fusse fussent fusses fussiez fussions fut fûmes fût fûtes ici il ils j je l la le les leur leurs lui m ma mais me mes moi mon même n ne nos notre nous on ont ou par pas pour qu que quel quelle quelles quels qui s sa sans se sera serai seraient serais serait seras serez seriez serions serons seront ses soi soient sois soit sommes son sont soyez soyons suis sur t ta te tes toi ton tu un une vos votre vous y à étaient étais était étant étiez étions été étée étées étés êtes".split(" ")),e.Pipeline.registerFunction(e.fr.stopWordFilter,"stopWordFilter-fr")}}); \ No newline at end of file diff --git a/doc/theme/material/assets/javascripts/lunr/min/lunr.hu.min.js b/doc/theme/material/assets/javascripts/lunr/min/lunr.hu.min.js new file mode 100644 index 00000000..ed9d909f --- /dev/null +++ b/doc/theme/material/assets/javascripts/lunr/min/lunr.hu.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Hungarian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hu=function(){this.pipeline.reset(),this.pipeline.add(e.hu.trimmer,e.hu.stopWordFilter,e.hu.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.hu.stemmer))},e.hu.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.hu.trimmer=e.trimmerSupport.generateTrimmer(e.hu.wordCharacters),e.Pipeline.registerFunction(e.hu.trimmer,"trimmer-hu"),e.hu.stemmer=function(){var n=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,i=new function(){function e(){var e,n=L.cursor;if(d=L.limit,L.in_grouping(W,97,252))for(;;){if(e=L.cursor,L.out_grouping(W,97,252))return L.cursor=e,L.find_among(g,8)||(L.cursor=e,e=L.limit)return void(d=e);L.cursor++}if(L.cursor=n,L.out_grouping(W,97,252)){for(;!L.in_grouping(W,97,252);){if(L.cursor>=L.limit)return;L.cursor++}d=L.cursor}}function i(){return d<=L.cursor}function a(){var e;if(L.ket=L.cursor,(e=L.find_among_b(h,2))&&(L.bra=L.cursor,i()))switch(e){case 1:L.slice_from("a");break;case 2:L.slice_from("e")}}function t(){var e=L.limit-L.cursor;return!!L.find_among_b(p,23)&&(L.cursor=L.limit-e,!0)}function s(){if(L.cursor>L.limit_backward){L.cursor--,L.ket=L.cursor;var e=L.cursor-1;L.limit_backward<=e&&e<=L.limit&&(L.cursor=e,L.bra=e,L.slice_del())}}function c(){var e;if(L.ket=L.cursor,(e=L.find_among_b(_,2))&&(L.bra=L.cursor,i())){if((1==e||2==e)&&!t())return;L.slice_del(),s()}}function o(){L.ket=L.cursor,L.find_among_b(v,44)&&(L.bra=L.cursor,i()&&(L.slice_del(),a()))}function w(){var e;if(L.ket=L.cursor,(e=L.find_among_b(z,3))&&(L.bra=L.cursor,i()))switch(e){case 1:L.slice_from("e");break;case 2:case 3:L.slice_from("a")}}function l(){var e;if(L.ket=L.cursor,(e=L.find_among_b(y,6))&&(L.bra=L.cursor,i()))switch(e){case 1:case 2:L.slice_del();break;case 3:L.slice_from("a");break;case 4:L.slice_from("e")}}function u(){var e;if(L.ket=L.cursor,(e=L.find_among_b(j,2))&&(L.bra=L.cursor,i())){if((1==e||2==e)&&!t())return;L.slice_del(),s()}}function m(){var e;if(L.ket=L.cursor,(e=L.find_among_b(C,7))&&(L.bra=L.cursor,i()))switch(e){case 1:L.slice_from("a");break;case 2:L.slice_from("e");break;case 3:case 4:case 5:case 6:case 7:L.slice_del()}}function k(){var e;if(L.ket=L.cursor,(e=L.find_among_b(P,12))&&(L.bra=L.cursor,i()))switch(e){case 1:case 4:case 7:case 9:L.slice_del();break;case 2:case 5:case 8:L.slice_from("e");break;case 3:case 6:L.slice_from("a")}}function f(){var e;if(L.ket=L.cursor,(e=L.find_among_b(F,31))&&(L.bra=L.cursor,i()))switch(e){case 1:case 4:case 7:case 8:case 9:case 12:case 13:case 16:case 17:case 18:L.slice_del();break;case 2:case 5:case 10:case 14:case 19:L.slice_from("a");break;case 3:case 6:case 11:case 15:case 20:L.slice_from("e")}}function b(){var e;if(L.ket=L.cursor,(e=L.find_among_b(S,42))&&(L.bra=L.cursor,i()))switch(e){case 1:case 4:case 5:case 6:case 9:case 10:case 11:case 14:case 15:case 16:case 17:case 20:case 21:case 24:case 25:case 26:case 29:L.slice_del();break;case 2:case 7:case 12:case 18:case 22:case 27:L.slice_from("a");break;case 3:case 8:case 13:case 19:case 23:case 28:L.slice_from("e")}}var d,g=[new n("cs",-1,-1),new n("dzs",-1,-1),new n("gy",-1,-1),new n("ly",-1,-1),new n("ny",-1,-1),new n("sz",-1,-1),new n("ty",-1,-1),new n("zs",-1,-1)],h=[new n("á",-1,1),new n("é",-1,2)],p=[new n("bb",-1,-1),new n("cc",-1,-1),new n("dd",-1,-1),new n("ff",-1,-1),new n("gg",-1,-1),new n("jj",-1,-1),new n("kk",-1,-1),new n("ll",-1,-1),new n("mm",-1,-1),new n("nn",-1,-1),new n("pp",-1,-1),new n("rr",-1,-1),new n("ccs",-1,-1),new n("ss",-1,-1),new n("zzs",-1,-1),new n("tt",-1,-1),new n("vv",-1,-1),new n("ggy",-1,-1),new n("lly",-1,-1),new n("nny",-1,-1),new n("tty",-1,-1),new n("ssz",-1,-1),new n("zz",-1,-1)],_=[new n("al",-1,1),new n("el",-1,2)],v=[new n("ba",-1,-1),new n("ra",-1,-1),new n("be",-1,-1),new n("re",-1,-1),new n("ig",-1,-1),new n("nak",-1,-1),new n("nek",-1,-1),new n("val",-1,-1),new n("vel",-1,-1),new n("ul",-1,-1),new n("nál",-1,-1),new n("nél",-1,-1),new n("ból",-1,-1),new n("ról",-1,-1),new n("tól",-1,-1),new n("bõl",-1,-1),new n("rõl",-1,-1),new n("tõl",-1,-1),new n("ül",-1,-1),new n("n",-1,-1),new n("an",19,-1),new n("ban",20,-1),new n("en",19,-1),new n("ben",22,-1),new n("képpen",22,-1),new n("on",19,-1),new n("ön",19,-1),new n("képp",-1,-1),new n("kor",-1,-1),new n("t",-1,-1),new n("at",29,-1),new n("et",29,-1),new n("ként",29,-1),new n("anként",32,-1),new n("enként",32,-1),new n("onként",32,-1),new n("ot",29,-1),new n("ért",29,-1),new n("öt",29,-1),new n("hez",-1,-1),new n("hoz",-1,-1),new n("höz",-1,-1),new n("vá",-1,-1),new n("vé",-1,-1)],z=[new n("án",-1,2),new n("én",-1,1),new n("ánként",-1,3)],y=[new n("stul",-1,2),new n("astul",0,1),new n("ástul",0,3),new n("stül",-1,2),new n("estül",3,1),new n("éstül",3,4)],j=[new n("á",-1,1),new n("é",-1,2)],C=[new n("k",-1,7),new n("ak",0,4),new n("ek",0,6),new n("ok",0,5),new n("ák",0,1),new n("ék",0,2),new n("ök",0,3)],P=[new n("éi",-1,7),new n("áéi",0,6),new n("ééi",0,5),new n("é",-1,9),new n("ké",3,4),new n("aké",4,1),new n("eké",4,1),new n("oké",4,1),new n("áké",4,3),new n("éké",4,2),new n("öké",4,1),new n("éé",3,8)],F=[new n("a",-1,18),new n("ja",0,17),new n("d",-1,16),new n("ad",2,13),new n("ed",2,13),new n("od",2,13),new n("ád",2,14),new n("éd",2,15),new n("öd",2,13),new n("e",-1,18),new n("je",9,17),new n("nk",-1,4),new n("unk",11,1),new n("ánk",11,2),new n("énk",11,3),new n("ünk",11,1),new n("uk",-1,8),new n("juk",16,7),new n("ájuk",17,5),new n("ük",-1,8),new n("jük",19,7),new n("éjük",20,6),new n("m",-1,12),new n("am",22,9),new n("em",22,9),new n("om",22,9),new n("ám",22,10),new n("ém",22,11),new n("o",-1,18),new n("á",-1,19),new n("é",-1,20)],S=[new n("id",-1,10),new n("aid",0,9),new n("jaid",1,6),new n("eid",0,9),new n("jeid",3,6),new n("áid",0,7),new n("éid",0,8),new n("i",-1,15),new n("ai",7,14),new n("jai",8,11),new n("ei",7,14),new n("jei",10,11),new n("ái",7,12),new n("éi",7,13),new n("itek",-1,24),new n("eitek",14,21),new n("jeitek",15,20),new n("éitek",14,23),new n("ik",-1,29),new n("aik",18,26),new n("jaik",19,25),new n("eik",18,26),new n("jeik",21,25),new n("áik",18,27),new n("éik",18,28),new n("ink",-1,20),new n("aink",25,17),new n("jaink",26,16),new n("eink",25,17),new n("jeink",28,16),new n("áink",25,18),new n("éink",25,19),new n("aitok",-1,21),new n("jaitok",32,20),new n("áitok",-1,22),new n("im",-1,5),new n("aim",35,4),new n("jaim",36,1),new n("eim",35,4),new n("jeim",38,1),new n("áim",35,2),new n("éim",35,3)],W=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,17,52,14],L=new r;this.setCurrent=function(e){L.setCurrent(e)},this.getCurrent=function(){return L.getCurrent()},this.stem=function(){var n=L.cursor;return e(),L.limit_backward=n,L.cursor=L.limit,c(),L.cursor=L.limit,o(),L.cursor=L.limit,w(),L.cursor=L.limit,l(),L.cursor=L.limit,u(),L.cursor=L.limit,k(),L.cursor=L.limit,f(),L.cursor=L.limit,b(),L.cursor=L.limit,m(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.hu.stemmer,"stemmer-hu"),e.hu.stopWordFilter=e.generateStopWordFilter("a abban ahhoz ahogy ahol aki akik akkor alatt amely amelyek amelyekben amelyeket amelyet amelynek ami amikor amit amolyan amíg annak arra arról az azok azon azonban azt aztán azután azzal azért be belül benne bár cikk cikkek cikkeket csak de e ebben eddig egy egyes egyetlen egyik egyre egyéb egész ehhez ekkor el ellen elsõ elég elõ elõször elõtt emilyen ennek erre ez ezek ezen ezt ezzel ezért fel felé hanem hiszen hogy hogyan igen ill ill. illetve ilyen ilyenkor ismét ison itt jobban jó jól kell kellett keressünk keresztül ki kívül között közül legalább legyen lehet lehetett lenne lenni lesz lett maga magát majd majd meg mellett mely melyek mert mi mikor milyen minden mindenki mindent mindig mint mintha mit mivel miért most már más másik még míg nagy nagyobb nagyon ne nekem neki nem nincs néha néhány nélkül olyan ott pedig persze rá s saját sem semmi sok sokat sokkal szemben szerint szinte számára talán tehát teljes tovább továbbá több ugyanis utolsó után utána vagy vagyis vagyok valaki valami valamint való van vannak vele vissza viszont volna volt voltak voltam voltunk által általában át én éppen és így õ õk õket össze úgy új újabb újra".split(" ")),e.Pipeline.registerFunction(e.hu.stopWordFilter,"stopWordFilter-hu")}}); \ No newline at end of file diff --git a/doc/theme/material/assets/javascripts/lunr/min/lunr.it.min.js b/doc/theme/material/assets/javascripts/lunr/min/lunr.it.min.js new file mode 100644 index 00000000..344b6a3c --- /dev/null +++ b/doc/theme/material/assets/javascripts/lunr/min/lunr.it.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Italian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.it=function(){this.pipeline.reset(),this.pipeline.add(e.it.trimmer,e.it.stopWordFilter,e.it.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.it.stemmer))},e.it.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.it.trimmer=e.trimmerSupport.generateTrimmer(e.it.wordCharacters),e.Pipeline.registerFunction(e.it.trimmer,"trimmer-it"),e.it.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(e,r,n){return!(!x.eq_s(1,e)||(x.ket=x.cursor,!x.in_grouping(L,97,249)))&&(x.slice_from(r),x.cursor=n,!0)}function i(){for(var r,n,i,o,t=x.cursor;;){if(x.bra=x.cursor,r=x.find_among(h,7))switch(x.ket=x.cursor,r){case 1:x.slice_from("à");continue;case 2:x.slice_from("è");continue;case 3:x.slice_from("ì");continue;case 4:x.slice_from("ò");continue;case 5:x.slice_from("ù");continue;case 6:x.slice_from("qU");continue;case 7:if(x.cursor>=x.limit)break;x.cursor++;continue}break}for(x.cursor=t;;)for(n=x.cursor;;){if(i=x.cursor,x.in_grouping(L,97,249)){if(x.bra=x.cursor,o=x.cursor,e("u","U",i))break;if(x.cursor=o,e("i","I",i))break}if(x.cursor=i,x.cursor>=x.limit)return void(x.cursor=n);x.cursor++}}function o(e){if(x.cursor=e,!x.in_grouping(L,97,249))return!1;for(;!x.out_grouping(L,97,249);){if(x.cursor>=x.limit)return!1;x.cursor++}return!0}function t(){if(x.in_grouping(L,97,249)){var e=x.cursor;if(x.out_grouping(L,97,249)){for(;!x.in_grouping(L,97,249);){if(x.cursor>=x.limit)return o(e);x.cursor++}return!0}return o(e)}return!1}function s(){var e,r=x.cursor;if(!t()){if(x.cursor=r,!x.out_grouping(L,97,249))return;if(e=x.cursor,x.out_grouping(L,97,249)){for(;!x.in_grouping(L,97,249);){if(x.cursor>=x.limit)return x.cursor=e,void(x.in_grouping(L,97,249)&&x.cursor=x.limit)return;x.cursor++}k=x.cursor}function a(){for(;!x.in_grouping(L,97,249);){if(x.cursor>=x.limit)return!1;x.cursor++}for(;!x.out_grouping(L,97,249);){if(x.cursor>=x.limit)return!1;x.cursor++}return!0}function u(){var e=x.cursor;k=x.limit,p=k,g=k,s(),x.cursor=e,a()&&(p=x.cursor,a()&&(g=x.cursor))}function c(){for(var e;;){if(x.bra=x.cursor,!(e=x.find_among(q,3)))break;switch(x.ket=x.cursor,e){case 1:x.slice_from("i");break;case 2:x.slice_from("u");break;case 3:if(x.cursor>=x.limit)return;x.cursor++}}}function w(){return k<=x.cursor}function l(){return p<=x.cursor}function m(){return g<=x.cursor}function f(){var e;if(x.ket=x.cursor,x.find_among_b(C,37)&&(x.bra=x.cursor,(e=x.find_among_b(z,5))&&w()))switch(e){case 1:x.slice_del();break;case 2:x.slice_from("e")}}function v(){var e;if(x.ket=x.cursor,!(e=x.find_among_b(S,51)))return!1;switch(x.bra=x.cursor,e){case 1:if(!m())return!1;x.slice_del();break;case 2:if(!m())return!1;x.slice_del(),x.ket=x.cursor,x.eq_s_b(2,"ic")&&(x.bra=x.cursor,m()&&x.slice_del());break;case 3:if(!m())return!1;x.slice_from("log");break;case 4:if(!m())return!1;x.slice_from("u");break;case 5:if(!m())return!1;x.slice_from("ente");break;case 6:if(!w())return!1;x.slice_del();break;case 7:if(!l())return!1;x.slice_del(),x.ket=x.cursor,e=x.find_among_b(P,4),e&&(x.bra=x.cursor,m()&&(x.slice_del(),1==e&&(x.ket=x.cursor,x.eq_s_b(2,"at")&&(x.bra=x.cursor,m()&&x.slice_del()))));break;case 8:if(!m())return!1;x.slice_del(),x.ket=x.cursor,e=x.find_among_b(F,3),e&&(x.bra=x.cursor,1==e&&m()&&x.slice_del());break;case 9:if(!m())return!1;x.slice_del(),x.ket=x.cursor,x.eq_s_b(2,"at")&&(x.bra=x.cursor,m()&&(x.slice_del(),x.ket=x.cursor,x.eq_s_b(2,"ic")&&(x.bra=x.cursor,m()&&x.slice_del())))}return!0}function b(){var e,r;x.cursor>=k&&(r=x.limit_backward,x.limit_backward=k,x.ket=x.cursor,e=x.find_among_b(W,87),e&&(x.bra=x.cursor,1==e&&x.slice_del()),x.limit_backward=r)}function d(){var e=x.limit-x.cursor;if(x.ket=x.cursor,x.in_grouping_b(y,97,242)&&(x.bra=x.cursor,w()&&(x.slice_del(),x.ket=x.cursor,x.eq_s_b(1,"i")&&(x.bra=x.cursor,w()))))return void x.slice_del();x.cursor=x.limit-e}function _(){d(),x.ket=x.cursor,x.eq_s_b(1,"h")&&(x.bra=x.cursor,x.in_grouping_b(U,99,103)&&w()&&x.slice_del())}var g,p,k,h=[new r("",-1,7),new r("qu",0,6),new r("á",0,1),new r("é",0,2),new r("í",0,3),new r("ó",0,4),new r("ú",0,5)],q=[new r("",-1,3),new r("I",0,1),new r("U",0,2)],C=[new r("la",-1,-1),new r("cela",0,-1),new r("gliela",0,-1),new r("mela",0,-1),new r("tela",0,-1),new r("vela",0,-1),new r("le",-1,-1),new r("cele",6,-1),new r("gliele",6,-1),new r("mele",6,-1),new r("tele",6,-1),new r("vele",6,-1),new r("ne",-1,-1),new r("cene",12,-1),new r("gliene",12,-1),new r("mene",12,-1),new r("sene",12,-1),new r("tene",12,-1),new r("vene",12,-1),new r("ci",-1,-1),new r("li",-1,-1),new r("celi",20,-1),new r("glieli",20,-1),new r("meli",20,-1),new r("teli",20,-1),new r("veli",20,-1),new r("gli",20,-1),new r("mi",-1,-1),new r("si",-1,-1),new r("ti",-1,-1),new r("vi",-1,-1),new r("lo",-1,-1),new r("celo",31,-1),new r("glielo",31,-1),new r("melo",31,-1),new r("telo",31,-1),new r("velo",31,-1)],z=[new r("ando",-1,1),new r("endo",-1,1),new r("ar",-1,2),new r("er",-1,2),new r("ir",-1,2)],P=[new r("ic",-1,-1),new r("abil",-1,-1),new r("os",-1,-1),new r("iv",-1,1)],F=[new r("ic",-1,1),new r("abil",-1,1),new r("iv",-1,1)],S=[new r("ica",-1,1),new r("logia",-1,3),new r("osa",-1,1),new r("ista",-1,1),new r("iva",-1,9),new r("anza",-1,1),new r("enza",-1,5),new r("ice",-1,1),new r("atrice",7,1),new r("iche",-1,1),new r("logie",-1,3),new r("abile",-1,1),new r("ibile",-1,1),new r("usione",-1,4),new r("azione",-1,2),new r("uzione",-1,4),new r("atore",-1,2),new r("ose",-1,1),new r("ante",-1,1),new r("mente",-1,1),new r("amente",19,7),new r("iste",-1,1),new r("ive",-1,9),new r("anze",-1,1),new r("enze",-1,5),new r("ici",-1,1),new r("atrici",25,1),new r("ichi",-1,1),new r("abili",-1,1),new r("ibili",-1,1),new r("ismi",-1,1),new r("usioni",-1,4),new r("azioni",-1,2),new r("uzioni",-1,4),new r("atori",-1,2),new r("osi",-1,1),new r("anti",-1,1),new r("amenti",-1,6),new r("imenti",-1,6),new r("isti",-1,1),new r("ivi",-1,9),new r("ico",-1,1),new r("ismo",-1,1),new r("oso",-1,1),new r("amento",-1,6),new r("imento",-1,6),new r("ivo",-1,9),new r("ità",-1,8),new r("istà",-1,1),new r("istè",-1,1),new r("istì",-1,1)],W=[new r("isca",-1,1),new r("enda",-1,1),new r("ata",-1,1),new r("ita",-1,1),new r("uta",-1,1),new r("ava",-1,1),new r("eva",-1,1),new r("iva",-1,1),new r("erebbe",-1,1),new r("irebbe",-1,1),new r("isce",-1,1),new r("ende",-1,1),new r("are",-1,1),new r("ere",-1,1),new r("ire",-1,1),new r("asse",-1,1),new r("ate",-1,1),new r("avate",16,1),new r("evate",16,1),new r("ivate",16,1),new r("ete",-1,1),new r("erete",20,1),new r("irete",20,1),new r("ite",-1,1),new r("ereste",-1,1),new r("ireste",-1,1),new r("ute",-1,1),new r("erai",-1,1),new r("irai",-1,1),new r("isci",-1,1),new r("endi",-1,1),new r("erei",-1,1),new r("irei",-1,1),new r("assi",-1,1),new r("ati",-1,1),new r("iti",-1,1),new r("eresti",-1,1),new r("iresti",-1,1),new r("uti",-1,1),new r("avi",-1,1),new r("evi",-1,1),new r("ivi",-1,1),new r("isco",-1,1),new r("ando",-1,1),new r("endo",-1,1),new r("Yamo",-1,1),new r("iamo",-1,1),new r("avamo",-1,1),new r("evamo",-1,1),new r("ivamo",-1,1),new r("eremo",-1,1),new r("iremo",-1,1),new r("assimo",-1,1),new r("ammo",-1,1),new r("emmo",-1,1),new r("eremmo",54,1),new r("iremmo",54,1),new r("immo",-1,1),new r("ano",-1,1),new r("iscano",58,1),new r("avano",58,1),new r("evano",58,1),new r("ivano",58,1),new r("eranno",-1,1),new r("iranno",-1,1),new r("ono",-1,1),new r("iscono",65,1),new r("arono",65,1),new r("erono",65,1),new r("irono",65,1),new r("erebbero",-1,1),new r("irebbero",-1,1),new r("assero",-1,1),new r("essero",-1,1),new r("issero",-1,1),new r("ato",-1,1),new r("ito",-1,1),new r("uto",-1,1),new r("avo",-1,1),new r("evo",-1,1),new r("ivo",-1,1),new r("ar",-1,1),new r("ir",-1,1),new r("erà",-1,1),new r("irà",-1,1),new r("erò",-1,1),new r("irò",-1,1)],L=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2,1],y=[17,65,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2],U=[17],x=new n;this.setCurrent=function(e){x.setCurrent(e)},this.getCurrent=function(){return x.getCurrent()},this.stem=function(){var e=x.cursor;return i(),x.cursor=e,u(),x.limit_backward=e,x.cursor=x.limit,f(),x.cursor=x.limit,v()||(x.cursor=x.limit,b()),x.cursor=x.limit,_(),x.cursor=x.limit_backward,c(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.it.stemmer,"stemmer-it"),e.it.stopWordFilter=e.generateStopWordFilter("a abbia abbiamo abbiano abbiate ad agl agli ai al all alla alle allo anche avemmo avendo avesse avessero avessi avessimo aveste avesti avete aveva avevamo avevano avevate avevi avevo avrai avranno avrebbe avrebbero avrei avremmo avremo avreste avresti avrete avrà avrò avuta avute avuti avuto c che chi ci coi col come con contro cui da dagl dagli dai dal dall dalla dalle dallo degl degli dei del dell della delle dello di dov dove e ebbe ebbero ebbi ed era erano eravamo eravate eri ero essendo faccia facciamo facciano facciate faccio facemmo facendo facesse facessero facessi facessimo faceste facesti faceva facevamo facevano facevate facevi facevo fai fanno farai faranno farebbe farebbero farei faremmo faremo fareste faresti farete farà farò fece fecero feci fosse fossero fossi fossimo foste fosti fu fui fummo furono gli ha hai hanno ho i il in io l la le lei li lo loro lui ma mi mia mie miei mio ne negl negli nei nel nell nella nelle nello noi non nostra nostre nostri nostro o per perché più quale quanta quante quanti quanto quella quelle quelli quello questa queste questi questo sarai saranno sarebbe sarebbero sarei saremmo saremo sareste saresti sarete sarà sarò se sei si sia siamo siano siate siete sono sta stai stando stanno starai staranno starebbe starebbero starei staremmo staremo stareste staresti starete starà starò stava stavamo stavano stavate stavi stavo stemmo stesse stessero stessi stessimo steste stesti stette stettero stetti stia stiamo stiano stiate sto su sua sue sugl sugli sui sul sull sulla sulle sullo suo suoi ti tra tu tua tue tuo tuoi tutti tutto un una uno vi voi vostra vostre vostri vostro è".split(" ")),e.Pipeline.registerFunction(e.it.stopWordFilter,"stopWordFilter-it")}}); \ No newline at end of file diff --git a/doc/theme/material/assets/javascripts/lunr/min/lunr.ja.min.js b/doc/theme/material/assets/javascripts/lunr/min/lunr.ja.min.js new file mode 100644 index 00000000..5f254ebe --- /dev/null +++ b/doc/theme/material/assets/javascripts/lunr/min/lunr.ja.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.ja=function(){this.pipeline.reset(),this.pipeline.add(e.ja.trimmer,e.ja.stopWordFilter,e.ja.stemmer),r?this.tokenizer=e.ja.tokenizer:(e.tokenizer&&(e.tokenizer=e.ja.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.ja.tokenizer))};var t=new e.TinySegmenter;e.ja.tokenizer=function(i){var n,o,s,p,a,u,m,l,c,f;if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t.toLowerCase()):t.toLowerCase()});for(o=i.toString().toLowerCase().replace(/^\s+/,""),n=o.length-1;n>=0;n--)if(/\S/.test(o.charAt(n))){o=o.substring(0,n+1);break}for(a=[],s=o.length,c=0,l=0;c<=s;c++)if(u=o.charAt(c),m=c-l,u.match(/\s/)||c==s){if(m>0)for(p=t.segment(o.slice(l,c)).filter(function(e){return!!e}),f=l,n=0;n=C.limit)break;C.cursor++;continue}break}for(C.cursor=o,C.bra=o,C.eq_s(1,"y")?(C.ket=C.cursor,C.slice_from("Y")):C.cursor=o;;)if(e=C.cursor,C.in_grouping(q,97,232)){if(i=C.cursor,C.bra=i,C.eq_s(1,"i"))C.ket=C.cursor,C.in_grouping(q,97,232)&&(C.slice_from("I"),C.cursor=e);else if(C.cursor=i,C.eq_s(1,"y"))C.ket=C.cursor,C.slice_from("Y"),C.cursor=e;else if(n(e))break}else if(n(e))break}function n(r){return C.cursor=r,r>=C.limit||(C.cursor++,!1)}function o(){_=C.limit,d=_,t()||(_=C.cursor,_<3&&(_=3),t()||(d=C.cursor))}function t(){for(;!C.in_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}for(;!C.out_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}return!1}function s(){for(var r;;)if(C.bra=C.cursor,r=C.find_among(p,3))switch(C.ket=C.cursor,r){case 1:C.slice_from("y");break;case 2:C.slice_from("i");break;case 3:if(C.cursor>=C.limit)return;C.cursor++}}function u(){return _<=C.cursor}function c(){return d<=C.cursor}function a(){var r=C.limit-C.cursor;C.find_among_b(g,3)&&(C.cursor=C.limit-r,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del()))}function l(){var r;w=!1,C.ket=C.cursor,C.eq_s_b(1,"e")&&(C.bra=C.cursor,u()&&(r=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-r,C.slice_del(),w=!0,a())))}function m(){var r;u()&&(r=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-r,C.eq_s_b(3,"gem")||(C.cursor=C.limit-r,C.slice_del(),a())))}function f(){var r,e,i,n,o,t,s=C.limit-C.cursor;if(C.ket=C.cursor,r=C.find_among_b(h,5))switch(C.bra=C.cursor,r){case 1:u()&&C.slice_from("heid");break;case 2:m();break;case 3:u()&&C.out_grouping_b(j,97,232)&&C.slice_del()}if(C.cursor=C.limit-s,l(),C.cursor=C.limit-s,C.ket=C.cursor,C.eq_s_b(4,"heid")&&(C.bra=C.cursor,c()&&(e=C.limit-C.cursor,C.eq_s_b(1,"c")||(C.cursor=C.limit-e,C.slice_del(),C.ket=C.cursor,C.eq_s_b(2,"en")&&(C.bra=C.cursor,m())))),C.cursor=C.limit-s,C.ket=C.cursor,r=C.find_among_b(k,6))switch(C.bra=C.cursor,r){case 1:if(c()){if(C.slice_del(),i=C.limit-C.cursor,C.ket=C.cursor,C.eq_s_b(2,"ig")&&(C.bra=C.cursor,c()&&(n=C.limit-C.cursor,!C.eq_s_b(1,"e")))){C.cursor=C.limit-n,C.slice_del();break}C.cursor=C.limit-i,a()}break;case 2:c()&&(o=C.limit-C.cursor,C.eq_s_b(1,"e")||(C.cursor=C.limit-o,C.slice_del()));break;case 3:c()&&(C.slice_del(),l());break;case 4:c()&&C.slice_del();break;case 5:c()&&w&&C.slice_del()}C.cursor=C.limit-s,C.out_grouping_b(z,73,232)&&(t=C.limit-C.cursor,C.find_among_b(v,4)&&C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-t,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del())))}var d,_,w,b=[new e("",-1,6),new e("á",0,1),new e("ä",0,1),new e("é",0,2),new e("ë",0,2),new e("í",0,3),new e("ï",0,3),new e("ó",0,4),new e("ö",0,4),new e("ú",0,5),new e("ü",0,5)],p=[new e("",-1,3),new e("I",0,2),new e("Y",0,1)],g=[new e("dd",-1,-1),new e("kk",-1,-1),new e("tt",-1,-1)],h=[new e("ene",-1,2),new e("se",-1,3),new e("en",-1,2),new e("heden",2,1),new e("s",-1,3)],k=[new e("end",-1,1),new e("ig",-1,2),new e("ing",-1,1),new e("lijk",-1,3),new e("baar",-1,4),new e("bar",-1,5)],v=[new e("aa",-1,-1),new e("ee",-1,-1),new e("oo",-1,-1),new e("uu",-1,-1)],q=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],z=[1,0,0,17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],j=[17,67,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],C=new i;this.setCurrent=function(r){C.setCurrent(r)},this.getCurrent=function(){return C.getCurrent()},this.stem=function(){var e=C.cursor;return r(),C.cursor=e,o(),C.limit_backward=e,C.cursor=C.limit,f(),C.cursor=C.limit_backward,s(),!0}};return function(r){return"function"==typeof r.update?r.update(function(r){return n.setCurrent(r),n.stem(),n.getCurrent()}):(n.setCurrent(r),n.stem(),n.getCurrent())}}(),r.Pipeline.registerFunction(r.nl.stemmer,"stemmer-nl"),r.nl.stopWordFilter=r.generateStopWordFilter(" aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou".split(" ")),r.Pipeline.registerFunction(r.nl.stopWordFilter,"stopWordFilter-nl")}}); \ No newline at end of file diff --git a/doc/theme/material/assets/javascripts/lunr/min/lunr.no.min.js b/doc/theme/material/assets/javascripts/lunr/min/lunr.no.min.js new file mode 100644 index 00000000..92bc7e4e --- /dev/null +++ b/doc/theme/material/assets/javascripts/lunr/min/lunr.no.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Norwegian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.no=function(){this.pipeline.reset(),this.pipeline.add(e.no.trimmer,e.no.stopWordFilter,e.no.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.no.stemmer))},e.no.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.no.trimmer=e.trimmerSupport.generateTrimmer(e.no.wordCharacters),e.Pipeline.registerFunction(e.no.trimmer,"trimmer-no"),e.no.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(){var e,r=w.cursor+3;if(a=w.limit,0<=r||r<=w.limit){for(s=r;;){if(e=w.cursor,w.in_grouping(d,97,248)){w.cursor=e;break}if(e>=w.limit)return;w.cursor=e+1}for(;!w.out_grouping(d,97,248);){if(w.cursor>=w.limit)return;w.cursor++}a=w.cursor,a=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(m,29),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:n=w.limit-w.cursor,w.in_grouping_b(c,98,122)?w.slice_del():(w.cursor=w.limit-n,w.eq_s_b(1,"k")&&w.out_grouping_b(d,97,248)&&w.slice_del());break;case 3:w.slice_from("er")}}function t(){var e,r=w.limit-w.cursor;w.cursor>=a&&(e=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,w.find_among_b(u,2)?(w.bra=w.cursor,w.limit_backward=e,w.cursor=w.limit-r,w.cursor>w.limit_backward&&(w.cursor--,w.bra=w.cursor,w.slice_del())):w.limit_backward=e)}function o(){var e,r;w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(l,11),e?(w.bra=w.cursor,w.limit_backward=r,1==e&&w.slice_del()):w.limit_backward=r)}var s,a,m=[new r("a",-1,1),new r("e",-1,1),new r("ede",1,1),new r("ande",1,1),new r("ende",1,1),new r("ane",1,1),new r("ene",1,1),new r("hetene",6,1),new r("erte",1,3),new r("en",-1,1),new r("heten",9,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",12,1),new r("s",-1,2),new r("as",14,1),new r("es",14,1),new r("edes",16,1),new r("endes",16,1),new r("enes",16,1),new r("hetenes",19,1),new r("ens",14,1),new r("hetens",21,1),new r("ers",14,1),new r("ets",14,1),new r("et",-1,1),new r("het",25,1),new r("ert",-1,3),new r("ast",-1,1)],u=[new r("dt",-1,-1),new r("vt",-1,-1)],l=[new r("leg",-1,1),new r("eleg",0,1),new r("ig",-1,1),new r("eig",2,1),new r("lig",2,1),new r("elig",4,1),new r("els",-1,1),new r("lov",-1,1),new r("elov",7,1),new r("slov",7,1),new r("hetslov",9,1)],d=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],c=[119,125,149,1],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,i(),w.cursor=w.limit,t(),w.cursor=w.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.no.stemmer,"stemmer-no"),e.no.stopWordFilter=e.generateStopWordFilter("alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å".split(" ")),e.Pipeline.registerFunction(e.no.stopWordFilter,"stopWordFilter-no")}}); \ No newline at end of file diff --git a/doc/theme/material/assets/javascripts/lunr/min/lunr.pt.min.js b/doc/theme/material/assets/javascripts/lunr/min/lunr.pt.min.js new file mode 100644 index 00000000..6c16996d --- /dev/null +++ b/doc/theme/material/assets/javascripts/lunr/min/lunr.pt.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Portuguese` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.pt=function(){this.pipeline.reset(),this.pipeline.add(e.pt.trimmer,e.pt.stopWordFilter,e.pt.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.pt.stemmer))},e.pt.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.pt.trimmer=e.trimmerSupport.generateTrimmer(e.pt.wordCharacters),e.Pipeline.registerFunction(e.pt.trimmer,"trimmer-pt"),e.pt.stemmer=function(){var r=e.stemmerSupport.Among,s=e.stemmerSupport.SnowballProgram,n=new function(){function e(){for(var e;;){if(z.bra=z.cursor,e=z.find_among(k,3))switch(z.ket=z.cursor,e){case 1:z.slice_from("a~");continue;case 2:z.slice_from("o~");continue;case 3:if(z.cursor>=z.limit)break;z.cursor++;continue}break}}function n(){if(z.out_grouping(y,97,250)){for(;!z.in_grouping(y,97,250);){if(z.cursor>=z.limit)return!0;z.cursor++}return!1}return!0}function i(){if(z.in_grouping(y,97,250))for(;!z.out_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}return g=z.cursor,!0}function o(){var e,r,s=z.cursor;if(z.in_grouping(y,97,250))if(e=z.cursor,n()){if(z.cursor=e,i())return}else g=z.cursor;if(z.cursor=s,z.out_grouping(y,97,250)){if(r=z.cursor,n()){if(z.cursor=r,!z.in_grouping(y,97,250)||z.cursor>=z.limit)return;z.cursor++}g=z.cursor}}function t(){for(;!z.in_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}for(;!z.out_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}return!0}function a(){var e=z.cursor;g=z.limit,b=g,h=g,o(),z.cursor=e,t()&&(b=z.cursor,t()&&(h=z.cursor))}function u(){for(var e;;){if(z.bra=z.cursor,e=z.find_among(q,3))switch(z.ket=z.cursor,e){case 1:z.slice_from("ã");continue;case 2:z.slice_from("õ");continue;case 3:if(z.cursor>=z.limit)break;z.cursor++;continue}break}}function w(){return g<=z.cursor}function m(){return b<=z.cursor}function c(){return h<=z.cursor}function l(){var e;if(z.ket=z.cursor,!(e=z.find_among_b(F,45)))return!1;switch(z.bra=z.cursor,e){case 1:if(!c())return!1;z.slice_del();break;case 2:if(!c())return!1;z.slice_from("log");break;case 3:if(!c())return!1;z.slice_from("u");break;case 4:if(!c())return!1;z.slice_from("ente");break;case 5:if(!m())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(j,4),e&&(z.bra=z.cursor,c()&&(z.slice_del(),1==e&&(z.ket=z.cursor,z.eq_s_b(2,"at")&&(z.bra=z.cursor,c()&&z.slice_del()))));break;case 6:if(!c())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(C,3),e&&(z.bra=z.cursor,1==e&&c()&&z.slice_del());break;case 7:if(!c())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(P,3),e&&(z.bra=z.cursor,1==e&&c()&&z.slice_del());break;case 8:if(!c())return!1;z.slice_del(),z.ket=z.cursor,z.eq_s_b(2,"at")&&(z.bra=z.cursor,c()&&z.slice_del());break;case 9:if(!w()||!z.eq_s_b(1,"e"))return!1;z.slice_from("ir")}return!0}function f(){var e,r;if(z.cursor>=g){if(r=z.limit_backward,z.limit_backward=g,z.ket=z.cursor,e=z.find_among_b(S,120))return z.bra=z.cursor,1==e&&z.slice_del(),z.limit_backward=r,!0;z.limit_backward=r}return!1}function d(){var e;z.ket=z.cursor,(e=z.find_among_b(W,7))&&(z.bra=z.cursor,1==e&&w()&&z.slice_del())}function v(e,r){if(z.eq_s_b(1,e)){z.bra=z.cursor;var s=z.limit-z.cursor;if(z.eq_s_b(1,r))return z.cursor=z.limit-s,w()&&z.slice_del(),!1}return!0}function p(){var e;if(z.ket=z.cursor,e=z.find_among_b(L,4))switch(z.bra=z.cursor,e){case 1:w()&&(z.slice_del(),z.ket=z.cursor,z.limit-z.cursor,v("u","g")&&v("i","c"));break;case 2:z.slice_from("c")}}function _(){if(!l()&&(z.cursor=z.limit,!f()))return z.cursor=z.limit,void d();z.cursor=z.limit,z.ket=z.cursor,z.eq_s_b(1,"i")&&(z.bra=z.cursor,z.eq_s_b(1,"c")&&(z.cursor=z.limit,w()&&z.slice_del()))}var h,b,g,k=[new r("",-1,3),new r("ã",0,1),new r("õ",0,2)],q=[new r("",-1,3),new r("a~",0,1),new r("o~",0,2)],j=[new r("ic",-1,-1),new r("ad",-1,-1),new r("os",-1,-1),new r("iv",-1,1)],C=[new r("ante",-1,1),new r("avel",-1,1),new r("ível",-1,1)],P=[new r("ic",-1,1),new r("abil",-1,1),new r("iv",-1,1)],F=[new r("ica",-1,1),new r("ância",-1,1),new r("ência",-1,4),new r("ira",-1,9),new r("adora",-1,1),new r("osa",-1,1),new r("ista",-1,1),new r("iva",-1,8),new r("eza",-1,1),new r("logía",-1,2),new r("idade",-1,7),new r("ante",-1,1),new r("mente",-1,6),new r("amente",12,5),new r("ável",-1,1),new r("ível",-1,1),new r("ución",-1,3),new r("ico",-1,1),new r("ismo",-1,1),new r("oso",-1,1),new r("amento",-1,1),new r("imento",-1,1),new r("ivo",-1,8),new r("aça~o",-1,1),new r("ador",-1,1),new r("icas",-1,1),new r("ências",-1,4),new r("iras",-1,9),new r("adoras",-1,1),new r("osas",-1,1),new r("istas",-1,1),new r("ivas",-1,8),new r("ezas",-1,1),new r("logías",-1,2),new r("idades",-1,7),new r("uciones",-1,3),new r("adores",-1,1),new r("antes",-1,1),new r("aço~es",-1,1),new r("icos",-1,1),new r("ismos",-1,1),new r("osos",-1,1),new r("amentos",-1,1),new r("imentos",-1,1),new r("ivos",-1,8)],S=[new r("ada",-1,1),new r("ida",-1,1),new r("ia",-1,1),new r("aria",2,1),new r("eria",2,1),new r("iria",2,1),new r("ara",-1,1),new r("era",-1,1),new r("ira",-1,1),new r("ava",-1,1),new r("asse",-1,1),new r("esse",-1,1),new r("isse",-1,1),new r("aste",-1,1),new r("este",-1,1),new r("iste",-1,1),new r("ei",-1,1),new r("arei",16,1),new r("erei",16,1),new r("irei",16,1),new r("am",-1,1),new r("iam",20,1),new r("ariam",21,1),new r("eriam",21,1),new r("iriam",21,1),new r("aram",20,1),new r("eram",20,1),new r("iram",20,1),new r("avam",20,1),new r("em",-1,1),new r("arem",29,1),new r("erem",29,1),new r("irem",29,1),new r("assem",29,1),new r("essem",29,1),new r("issem",29,1),new r("ado",-1,1),new r("ido",-1,1),new r("ando",-1,1),new r("endo",-1,1),new r("indo",-1,1),new r("ara~o",-1,1),new r("era~o",-1,1),new r("ira~o",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("ir",-1,1),new r("as",-1,1),new r("adas",47,1),new r("idas",47,1),new r("ias",47,1),new r("arias",50,1),new r("erias",50,1),new r("irias",50,1),new r("aras",47,1),new r("eras",47,1),new r("iras",47,1),new r("avas",47,1),new r("es",-1,1),new r("ardes",58,1),new r("erdes",58,1),new r("irdes",58,1),new r("ares",58,1),new r("eres",58,1),new r("ires",58,1),new r("asses",58,1),new r("esses",58,1),new r("isses",58,1),new r("astes",58,1),new r("estes",58,1),new r("istes",58,1),new r("is",-1,1),new r("ais",71,1),new r("eis",71,1),new r("areis",73,1),new r("ereis",73,1),new r("ireis",73,1),new r("áreis",73,1),new r("éreis",73,1),new r("íreis",73,1),new r("ásseis",73,1),new r("ésseis",73,1),new r("ísseis",73,1),new r("áveis",73,1),new r("íeis",73,1),new r("aríeis",84,1),new r("eríeis",84,1),new r("iríeis",84,1),new r("ados",-1,1),new r("idos",-1,1),new r("amos",-1,1),new r("áramos",90,1),new r("éramos",90,1),new r("íramos",90,1),new r("ávamos",90,1),new r("íamos",90,1),new r("aríamos",95,1),new r("eríamos",95,1),new r("iríamos",95,1),new r("emos",-1,1),new r("aremos",99,1),new r("eremos",99,1),new r("iremos",99,1),new r("ássemos",99,1),new r("êssemos",99,1),new r("íssemos",99,1),new r("imos",-1,1),new r("armos",-1,1),new r("ermos",-1,1),new r("irmos",-1,1),new r("ámos",-1,1),new r("arás",-1,1),new r("erás",-1,1),new r("irás",-1,1),new r("eu",-1,1),new r("iu",-1,1),new r("ou",-1,1),new r("ará",-1,1),new r("erá",-1,1),new r("irá",-1,1)],W=[new r("a",-1,1),new r("i",-1,1),new r("o",-1,1),new r("os",-1,1),new r("á",-1,1),new r("í",-1,1),new r("ó",-1,1)],L=[new r("e",-1,1),new r("ç",-1,2),new r("é",-1,1),new r("ê",-1,1)],y=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,3,19,12,2],z=new s;this.setCurrent=function(e){z.setCurrent(e)},this.getCurrent=function(){return z.getCurrent()},this.stem=function(){var r=z.cursor;return e(),z.cursor=r,a(),z.limit_backward=r,z.cursor=z.limit,_(),z.cursor=z.limit,p(),z.cursor=z.limit_backward,u(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.pt.stemmer,"stemmer-pt"),e.pt.stopWordFilter=e.generateStopWordFilter("a ao aos aquela aquelas aquele aqueles aquilo as até com como da das de dela delas dele deles depois do dos e ela elas ele eles em entre era eram essa essas esse esses esta estamos estas estava estavam este esteja estejam estejamos estes esteve estive estivemos estiver estivera estiveram estiverem estivermos estivesse estivessem estivéramos estivéssemos estou está estávamos estão eu foi fomos for fora foram forem formos fosse fossem fui fôramos fôssemos haja hajam hajamos havemos hei houve houvemos houver houvera houveram houverei houverem houveremos houveria houveriam houvermos houverá houverão houveríamos houvesse houvessem houvéramos houvéssemos há hão isso isto já lhe lhes mais mas me mesmo meu meus minha minhas muito na nas nem no nos nossa nossas nosso nossos num numa não nós o os ou para pela pelas pelo pelos por qual quando que quem se seja sejam sejamos sem serei seremos seria seriam será serão seríamos seu seus somos sou sua suas são só também te tem temos tenha tenham tenhamos tenho terei teremos teria teriam terá terão teríamos teu teus teve tinha tinham tive tivemos tiver tivera tiveram tiverem tivermos tivesse tivessem tivéramos tivéssemos tu tua tuas tém tínhamos um uma você vocês vos à às éramos".split(" ")),e.Pipeline.registerFunction(e.pt.stopWordFilter,"stopWordFilter-pt")}}); \ No newline at end of file diff --git a/doc/theme/material/assets/javascripts/lunr/min/lunr.ro.min.js b/doc/theme/material/assets/javascripts/lunr/min/lunr.ro.min.js new file mode 100644 index 00000000..72771401 --- /dev/null +++ b/doc/theme/material/assets/javascripts/lunr/min/lunr.ro.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Romanian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ro=function(){this.pipeline.reset(),this.pipeline.add(e.ro.trimmer,e.ro.stopWordFilter,e.ro.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ro.stemmer))},e.ro.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.ro.trimmer=e.trimmerSupport.generateTrimmer(e.ro.wordCharacters),e.Pipeline.registerFunction(e.ro.trimmer,"trimmer-ro"),e.ro.stemmer=function(){var i=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,n=new function(){function e(e,i){L.eq_s(1,e)&&(L.ket=L.cursor,L.in_grouping(W,97,259)&&L.slice_from(i))}function n(){for(var i,r;;){if(i=L.cursor,L.in_grouping(W,97,259)&&(r=L.cursor,L.bra=r,e("u","U"),L.cursor=r,e("i","I")),L.cursor=i,L.cursor>=L.limit)break;L.cursor++}}function t(){if(L.out_grouping(W,97,259)){for(;!L.in_grouping(W,97,259);){if(L.cursor>=L.limit)return!0;L.cursor++}return!1}return!0}function a(){if(L.in_grouping(W,97,259))for(;!L.out_grouping(W,97,259);){if(L.cursor>=L.limit)return!0;L.cursor++}return!1}function o(){var e,i,r=L.cursor;if(L.in_grouping(W,97,259)){if(e=L.cursor,!t())return void(h=L.cursor);if(L.cursor=e,!a())return void(h=L.cursor)}L.cursor=r,L.out_grouping(W,97,259)&&(i=L.cursor,t()&&(L.cursor=i,L.in_grouping(W,97,259)&&L.cursor=L.limit)return!1;L.cursor++}for(;!L.out_grouping(W,97,259);){if(L.cursor>=L.limit)return!1;L.cursor++}return!0}function c(){var e=L.cursor;h=L.limit,k=h,g=h,o(),L.cursor=e,u()&&(k=L.cursor,u()&&(g=L.cursor))}function s(){for(var e;;){if(L.bra=L.cursor,e=L.find_among(z,3))switch(L.ket=L.cursor,e){case 1:L.slice_from("i");continue;case 2:L.slice_from("u");continue;case 3:if(L.cursor>=L.limit)break;L.cursor++;continue}break}}function w(){return h<=L.cursor}function m(){return k<=L.cursor}function l(){return g<=L.cursor}function f(){var e,i;if(L.ket=L.cursor,(e=L.find_among_b(C,16))&&(L.bra=L.cursor,m()))switch(e){case 1:L.slice_del();break;case 2:L.slice_from("a");break;case 3:L.slice_from("e");break;case 4:L.slice_from("i");break;case 5:i=L.limit-L.cursor,L.eq_s_b(2,"ab")||(L.cursor=L.limit-i,L.slice_from("i"));break;case 6:L.slice_from("at");break;case 7:L.slice_from("aţi")}}function p(){var e,i=L.limit-L.cursor;if(L.ket=L.cursor,(e=L.find_among_b(P,46))&&(L.bra=L.cursor,m())){switch(e){case 1:L.slice_from("abil");break;case 2:L.slice_from("ibil");break;case 3:L.slice_from("iv");break;case 4:L.slice_from("ic");break;case 5:L.slice_from("at");break;case 6:L.slice_from("it")}return _=!0,L.cursor=L.limit-i,!0}return!1}function d(){var e,i;for(_=!1;;)if(i=L.limit-L.cursor,!p()){L.cursor=L.limit-i;break}if(L.ket=L.cursor,(e=L.find_among_b(F,62))&&(L.bra=L.cursor,l())){switch(e){case 1:L.slice_del();break;case 2:L.eq_s_b(1,"ţ")&&(L.bra=L.cursor,L.slice_from("t"));break;case 3:L.slice_from("ist")}_=!0}}function b(){var e,i,r;if(L.cursor>=h){if(i=L.limit_backward,L.limit_backward=h,L.ket=L.cursor,e=L.find_among_b(q,94))switch(L.bra=L.cursor,e){case 1:if(r=L.limit-L.cursor,!L.out_grouping_b(W,97,259)&&(L.cursor=L.limit-r,!L.eq_s_b(1,"u")))break;case 2:L.slice_del()}L.limit_backward=i}}function v(){var e;L.ket=L.cursor,(e=L.find_among_b(S,5))&&(L.bra=L.cursor,w()&&1==e&&L.slice_del())}var _,g,k,h,z=[new i("",-1,3),new i("I",0,1),new i("U",0,2)],C=[new i("ea",-1,3),new i("aţia",-1,7),new i("aua",-1,2),new i("iua",-1,4),new i("aţie",-1,7),new i("ele",-1,3),new i("ile",-1,5),new i("iile",6,4),new i("iei",-1,4),new i("atei",-1,6),new i("ii",-1,4),new i("ului",-1,1),new i("ul",-1,1),new i("elor",-1,3),new i("ilor",-1,4),new i("iilor",14,4)],P=[new i("icala",-1,4),new i("iciva",-1,4),new i("ativa",-1,5),new i("itiva",-1,6),new i("icale",-1,4),new i("aţiune",-1,5),new i("iţiune",-1,6),new i("atoare",-1,5),new i("itoare",-1,6),new i("ătoare",-1,5),new i("icitate",-1,4),new i("abilitate",-1,1),new i("ibilitate",-1,2),new i("ivitate",-1,3),new i("icive",-1,4),new i("ative",-1,5),new i("itive",-1,6),new i("icali",-1,4),new i("atori",-1,5),new i("icatori",18,4),new i("itori",-1,6),new i("ători",-1,5),new i("icitati",-1,4),new i("abilitati",-1,1),new i("ivitati",-1,3),new i("icivi",-1,4),new i("ativi",-1,5),new i("itivi",-1,6),new i("icităi",-1,4),new i("abilităi",-1,1),new i("ivităi",-1,3),new i("icităţi",-1,4),new i("abilităţi",-1,1),new i("ivităţi",-1,3),new i("ical",-1,4),new i("ator",-1,5),new i("icator",35,4),new i("itor",-1,6),new i("ător",-1,5),new i("iciv",-1,4),new i("ativ",-1,5),new i("itiv",-1,6),new i("icală",-1,4),new i("icivă",-1,4),new i("ativă",-1,5),new i("itivă",-1,6)],F=[new i("ica",-1,1),new i("abila",-1,1),new i("ibila",-1,1),new i("oasa",-1,1),new i("ata",-1,1),new i("ita",-1,1),new i("anta",-1,1),new i("ista",-1,3),new i("uta",-1,1),new i("iva",-1,1),new i("ic",-1,1),new i("ice",-1,1),new i("abile",-1,1),new i("ibile",-1,1),new i("isme",-1,3),new i("iune",-1,2),new i("oase",-1,1),new i("ate",-1,1),new i("itate",17,1),new i("ite",-1,1),new i("ante",-1,1),new i("iste",-1,3),new i("ute",-1,1),new i("ive",-1,1),new i("ici",-1,1),new i("abili",-1,1),new i("ibili",-1,1),new i("iuni",-1,2),new i("atori",-1,1),new i("osi",-1,1),new i("ati",-1,1),new i("itati",30,1),new i("iti",-1,1),new i("anti",-1,1),new i("isti",-1,3),new i("uti",-1,1),new i("işti",-1,3),new i("ivi",-1,1),new i("ităi",-1,1),new i("oşi",-1,1),new i("ităţi",-1,1),new i("abil",-1,1),new i("ibil",-1,1),new i("ism",-1,3),new i("ator",-1,1),new i("os",-1,1),new i("at",-1,1),new i("it",-1,1),new i("ant",-1,1),new i("ist",-1,3),new i("ut",-1,1),new i("iv",-1,1),new i("ică",-1,1),new i("abilă",-1,1),new i("ibilă",-1,1),new i("oasă",-1,1),new i("ată",-1,1),new i("ită",-1,1),new i("antă",-1,1),new i("istă",-1,3),new i("ută",-1,1),new i("ivă",-1,1)],q=[new i("ea",-1,1),new i("ia",-1,1),new i("esc",-1,1),new i("ăsc",-1,1),new i("ind",-1,1),new i("ând",-1,1),new i("are",-1,1),new i("ere",-1,1),new i("ire",-1,1),new i("âre",-1,1),new i("se",-1,2),new i("ase",10,1),new i("sese",10,2),new i("ise",10,1),new i("use",10,1),new i("âse",10,1),new i("eşte",-1,1),new i("ăşte",-1,1),new i("eze",-1,1),new i("ai",-1,1),new i("eai",19,1),new i("iai",19,1),new i("sei",-1,2),new i("eşti",-1,1),new i("ăşti",-1,1),new i("ui",-1,1),new i("ezi",-1,1),new i("âi",-1,1),new i("aşi",-1,1),new i("seşi",-1,2),new i("aseşi",29,1),new i("seseşi",29,2),new i("iseşi",29,1),new i("useşi",29,1),new i("âseşi",29,1),new i("işi",-1,1),new i("uşi",-1,1),new i("âşi",-1,1),new i("aţi",-1,2),new i("eaţi",38,1),new i("iaţi",38,1),new i("eţi",-1,2),new i("iţi",-1,2),new i("âţi",-1,2),new i("arăţi",-1,1),new i("serăţi",-1,2),new i("aserăţi",45,1),new i("seserăţi",45,2),new i("iserăţi",45,1),new i("userăţi",45,1),new i("âserăţi",45,1),new i("irăţi",-1,1),new i("urăţi",-1,1),new i("ârăţi",-1,1),new i("am",-1,1),new i("eam",54,1),new i("iam",54,1),new i("em",-1,2),new i("asem",57,1),new i("sesem",57,2),new i("isem",57,1),new i("usem",57,1),new i("âsem",57,1),new i("im",-1,2),new i("âm",-1,2),new i("ăm",-1,2),new i("arăm",65,1),new i("serăm",65,2),new i("aserăm",67,1),new i("seserăm",67,2),new i("iserăm",67,1),new i("userăm",67,1),new i("âserăm",67,1),new i("irăm",65,1),new i("urăm",65,1),new i("ârăm",65,1),new i("au",-1,1),new i("eau",76,1),new i("iau",76,1),new i("indu",-1,1),new i("ându",-1,1),new i("ez",-1,1),new i("ească",-1,1),new i("ară",-1,1),new i("seră",-1,2),new i("aseră",84,1),new i("seseră",84,2),new i("iseră",84,1),new i("useră",84,1),new i("âseră",84,1),new i("iră",-1,1),new i("ură",-1,1),new i("âră",-1,1),new i("ează",-1,1)],S=[new i("a",-1,1),new i("e",-1,1),new i("ie",1,1),new i("i",-1,1),new i("ă",-1,1)],W=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,2,32,0,0,4],L=new r;this.setCurrent=function(e){L.setCurrent(e)},this.getCurrent=function(){return L.getCurrent()},this.stem=function(){var e=L.cursor;return n(),L.cursor=e,c(),L.limit_backward=e,L.cursor=L.limit,f(),L.cursor=L.limit,d(),L.cursor=L.limit,_||(L.cursor=L.limit,b(),L.cursor=L.limit),v(),L.cursor=L.limit_backward,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.ro.stemmer,"stemmer-ro"),e.ro.stopWordFilter=e.generateStopWordFilter("acea aceasta această aceea acei aceia acel acela acele acelea acest acesta aceste acestea aceşti aceştia acolo acord acum ai aia aibă aici al ale alea altceva altcineva am ar are asemenea asta astea astăzi asupra au avea avem aveţi azi aş aşadar aţi bine bucur bună ca care caut ce cel ceva chiar cinci cine cineva contra cu cum cumva curând curînd când cât câte câtva câţi cînd cît cîte cîtva cîţi că căci cărei căror cărui către da dacă dar datorită dată dau de deci deja deoarece departe deşi din dinaintea dintr- dintre doi doilea două drept după dă ea ei el ele eram este eu eşti face fata fi fie fiecare fii fim fiu fiţi frumos fără graţie halbă iar ieri la le li lor lui lângă lîngă mai mea mei mele mereu meu mi mie mine mult multă mulţi mulţumesc mâine mîine mă ne nevoie nici nicăieri nimeni nimeri nimic nişte noastre noastră noi noroc nostru nouă noştri nu opt ori oricare orice oricine oricum oricând oricât oricînd oricît oriunde patra patru patrulea pe pentru peste pic poate pot prea prima primul prin puţin puţina puţină până pînă rog sa sale sau se spate spre sub sunt suntem sunteţi sută sînt sîntem sînteţi să săi său ta tale te timp tine toate toată tot totuşi toţi trei treia treilea tu tăi tău un una unde undeva unei uneia unele uneori unii unor unora unu unui unuia unul vi voastre voastră voi vostru vouă voştri vreme vreo vreun vă zece zero zi zice îi îl îmi împotriva în înainte înaintea încotro încât încît între întrucât întrucît îţi ăla ălea ăsta ăstea ăştia şapte şase şi ştiu ţi ţie".split(" ")),e.Pipeline.registerFunction(e.ro.stopWordFilter,"stopWordFilter-ro")}}); \ No newline at end of file diff --git a/doc/theme/material/assets/javascripts/lunr/min/lunr.ru.min.js b/doc/theme/material/assets/javascripts/lunr/min/lunr.ru.min.js new file mode 100644 index 00000000..186cc485 --- /dev/null +++ b/doc/theme/material/assets/javascripts/lunr/min/lunr.ru.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Russian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ru=function(){this.pipeline.reset(),this.pipeline.add(e.ru.trimmer,e.ru.stopWordFilter,e.ru.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ru.stemmer))},e.ru.wordCharacters="Ѐ-҄҇-ԯᴫᵸⷠ-ⷿꙀ-ꚟ︮︯",e.ru.trimmer=e.trimmerSupport.generateTrimmer(e.ru.wordCharacters),e.Pipeline.registerFunction(e.ru.trimmer,"trimmer-ru"),e.ru.stemmer=function(){var n=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,t=new function(){function e(){for(;!W.in_grouping(S,1072,1103);){if(W.cursor>=W.limit)return!1;W.cursor++}return!0}function t(){for(;!W.out_grouping(S,1072,1103);){if(W.cursor>=W.limit)return!1;W.cursor++}return!0}function w(){b=W.limit,_=b,e()&&(b=W.cursor,t()&&e()&&t()&&(_=W.cursor))}function i(){return _<=W.cursor}function u(e,n){var r,t;if(W.ket=W.cursor,r=W.find_among_b(e,n)){switch(W.bra=W.cursor,r){case 1:if(t=W.limit-W.cursor,!W.eq_s_b(1,"а")&&(W.cursor=W.limit-t,!W.eq_s_b(1,"я")))return!1;case 2:W.slice_del()}return!0}return!1}function o(){return u(h,9)}function s(e,n){var r;return W.ket=W.cursor,!!(r=W.find_among_b(e,n))&&(W.bra=W.cursor,1==r&&W.slice_del(),!0)}function c(){return s(g,26)}function m(){return!!c()&&(u(C,8),!0)}function f(){return s(k,2)}function l(){return u(P,46)}function a(){s(v,36)}function p(){var e;W.ket=W.cursor,(e=W.find_among_b(F,2))&&(W.bra=W.cursor,i()&&1==e&&W.slice_del())}function d(){var e;if(W.ket=W.cursor,e=W.find_among_b(q,4))switch(W.bra=W.cursor,e){case 1:if(W.slice_del(),W.ket=W.cursor,!W.eq_s_b(1,"н"))break;W.bra=W.cursor;case 2:if(!W.eq_s_b(1,"н"))break;case 3:W.slice_del()}}var _,b,h=[new n("в",-1,1),new n("ив",0,2),new n("ыв",0,2),new n("вши",-1,1),new n("ивши",3,2),new n("ывши",3,2),new n("вшись",-1,1),new n("ившись",6,2),new n("ывшись",6,2)],g=[new n("ее",-1,1),new n("ие",-1,1),new n("ое",-1,1),new n("ые",-1,1),new n("ими",-1,1),new n("ыми",-1,1),new n("ей",-1,1),new n("ий",-1,1),new n("ой",-1,1),new n("ый",-1,1),new n("ем",-1,1),new n("им",-1,1),new n("ом",-1,1),new n("ым",-1,1),new n("его",-1,1),new n("ого",-1,1),new n("ему",-1,1),new n("ому",-1,1),new n("их",-1,1),new n("ых",-1,1),new n("ею",-1,1),new n("ою",-1,1),new n("ую",-1,1),new n("юю",-1,1),new n("ая",-1,1),new n("яя",-1,1)],C=[new n("ем",-1,1),new n("нн",-1,1),new n("вш",-1,1),new n("ивш",2,2),new n("ывш",2,2),new n("щ",-1,1),new n("ющ",5,1),new n("ующ",6,2)],k=[new n("сь",-1,1),new n("ся",-1,1)],P=[new n("ла",-1,1),new n("ила",0,2),new n("ыла",0,2),new n("на",-1,1),new n("ена",3,2),new n("ете",-1,1),new n("ите",-1,2),new n("йте",-1,1),new n("ейте",7,2),new n("уйте",7,2),new n("ли",-1,1),new n("или",10,2),new n("ыли",10,2),new n("й",-1,1),new n("ей",13,2),new n("уй",13,2),new n("л",-1,1),new n("ил",16,2),new n("ыл",16,2),new n("ем",-1,1),new n("им",-1,2),new n("ым",-1,2),new n("н",-1,1),new n("ен",22,2),new n("ло",-1,1),new n("ило",24,2),new n("ыло",24,2),new n("но",-1,1),new n("ено",27,2),new n("нно",27,1),new n("ет",-1,1),new n("ует",30,2),new n("ит",-1,2),new n("ыт",-1,2),new n("ют",-1,1),new n("уют",34,2),new n("ят",-1,2),new n("ны",-1,1),new n("ены",37,2),new n("ть",-1,1),new n("ить",39,2),new n("ыть",39,2),new n("ешь",-1,1),new n("ишь",-1,2),new n("ю",-1,2),new n("ую",44,2)],v=[new n("а",-1,1),new n("ев",-1,1),new n("ов",-1,1),new n("е",-1,1),new n("ие",3,1),new n("ье",3,1),new n("и",-1,1),new n("еи",6,1),new n("ии",6,1),new n("ами",6,1),new n("ями",6,1),new n("иями",10,1),new n("й",-1,1),new n("ей",12,1),new n("ией",13,1),new n("ий",12,1),new n("ой",12,1),new n("ам",-1,1),new n("ем",-1,1),new n("ием",18,1),new n("ом",-1,1),new n("ям",-1,1),new n("иям",21,1),new n("о",-1,1),new n("у",-1,1),new n("ах",-1,1),new n("ях",-1,1),new n("иях",26,1),new n("ы",-1,1),new n("ь",-1,1),new n("ю",-1,1),new n("ию",30,1),new n("ью",30,1),new n("я",-1,1),new n("ия",33,1),new n("ья",33,1)],F=[new n("ост",-1,1),new n("ость",-1,1)],q=[new n("ейше",-1,1),new n("н",-1,2),new n("ейш",-1,1),new n("ь",-1,3)],S=[33,65,8,232],W=new r;this.setCurrent=function(e){W.setCurrent(e)},this.getCurrent=function(){return W.getCurrent()},this.stem=function(){return w(),W.cursor=W.limit,!(W.cursor=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},in_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},out_grouping:function(t,i,s){if(this.cursors||e>3]&1<<(7&e)))return this.cursor++,!0}return!1},out_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e>s||e>3]&1<<(7&e)))return this.cursor--,!0}return!1},eq_s:function(t,i){if(this.limit-this.cursor>1),f=0,l=o0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n+_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n+_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},find_among_b:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit_backward,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o=0;m--){if(n-l==u){f=-1;break}if(f=r.charCodeAt(n-1-l)-_.s[m])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n-_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n-_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},replace_s:function(t,i,s){var e=s.length-(i-t),n=r.substring(0,t),u=r.substring(i);return r=n+s+u,this.limit+=e,this.cursor>=i?this.cursor+=e:this.cursor>t&&(this.cursor=t),e},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>r.length)throw"faulty slice operation"},slice_from:function(r){this.slice_check(),this.replace_s(this.bra,this.ket,r)},slice_del:function(){this.slice_from("")},insert:function(r,t,i){var s=this.replace_s(r,t,i);r<=this.bra&&(this.bra+=s),r<=this.ket&&(this.ket+=s)},slice_to:function(){return this.slice_check(),r.substring(this.bra,this.ket)},eq_v_b:function(r){return this.eq_s_b(r.length,r)}}}},r.trimmerSupport={generateTrimmer:function(r){var t=new RegExp("^[^"+r+"]+"),i=new RegExp("[^"+r+"]+$");return function(r){return"function"==typeof r.update?r.update(function(r){return r.replace(t,"").replace(i,"")}):r.replace(t,"").replace(i,"")}}}}}); \ No newline at end of file diff --git a/doc/theme/material/assets/javascripts/lunr/min/lunr.sv.min.js b/doc/theme/material/assets/javascripts/lunr/min/lunr.sv.min.js new file mode 100644 index 00000000..3e5eb640 --- /dev/null +++ b/doc/theme/material/assets/javascripts/lunr/min/lunr.sv.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Swedish` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.sv=function(){this.pipeline.reset(),this.pipeline.add(e.sv.trimmer,e.sv.stopWordFilter,e.sv.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.sv.stemmer))},e.sv.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.sv.trimmer=e.trimmerSupport.generateTrimmer(e.sv.wordCharacters),e.Pipeline.registerFunction(e.sv.trimmer,"trimmer-sv"),e.sv.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,t=new function(){function e(){var e,r=w.cursor+3;if(o=w.limit,0<=r||r<=w.limit){for(a=r;;){if(e=w.cursor,w.in_grouping(l,97,246)){w.cursor=e;break}if(w.cursor=e,w.cursor>=w.limit)return;w.cursor++}for(;!w.out_grouping(l,97,246);){if(w.cursor>=w.limit)return;w.cursor++}o=w.cursor,o=o&&(w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(u,37),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.in_grouping_b(d,98,121)&&w.slice_del()}}function i(){var e=w.limit_backward;w.cursor>=o&&(w.limit_backward=o,w.cursor=w.limit,w.find_among_b(c,7)&&(w.cursor=w.limit,w.ket=w.cursor,w.cursor>w.limit_backward&&(w.bra=--w.cursor,w.slice_del())),w.limit_backward=e)}function s(){var e,r;if(w.cursor>=o){if(r=w.limit_backward,w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(m,5))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.slice_from("lös");break;case 3:w.slice_from("full")}w.limit_backward=r}}var a,o,u=[new r("a",-1,1),new r("arna",0,1),new r("erna",0,1),new r("heterna",2,1),new r("orna",0,1),new r("ad",-1,1),new r("e",-1,1),new r("ade",6,1),new r("ande",6,1),new r("arne",6,1),new r("are",6,1),new r("aste",6,1),new r("en",-1,1),new r("anden",12,1),new r("aren",12,1),new r("heten",12,1),new r("ern",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",18,1),new r("or",-1,1),new r("s",-1,2),new r("as",21,1),new r("arnas",22,1),new r("ernas",22,1),new r("ornas",22,1),new r("es",21,1),new r("ades",26,1),new r("andes",26,1),new r("ens",21,1),new r("arens",29,1),new r("hetens",29,1),new r("erns",21,1),new r("at",-1,1),new r("andet",-1,1),new r("het",-1,1),new r("ast",-1,1)],c=[new r("dd",-1,-1),new r("gd",-1,-1),new r("nn",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1),new r("tt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("els",-1,1),new r("fullt",-1,3),new r("löst",-1,2)],l=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,24,0,32],d=[119,127,149],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,t(),w.cursor=w.limit,i(),w.cursor=w.limit,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return t.setCurrent(e),t.stem(),t.getCurrent()}):(t.setCurrent(e),t.stem(),t.getCurrent())}}(),e.Pipeline.registerFunction(e.sv.stemmer,"stemmer-sv"),e.sv.stopWordFilter=e.generateStopWordFilter("alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över".split(" ")),e.Pipeline.registerFunction(e.sv.stopWordFilter,"stopWordFilter-sv")}}); \ No newline at end of file diff --git a/doc/theme/material/assets/javascripts/lunr/min/lunr.tr.min.js b/doc/theme/material/assets/javascripts/lunr/min/lunr.tr.min.js new file mode 100644 index 00000000..563f6ec1 --- /dev/null +++ b/doc/theme/material/assets/javascripts/lunr/min/lunr.tr.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Turkish` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(r,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(r.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");r.tr=function(){this.pipeline.reset(),this.pipeline.add(r.tr.trimmer,r.tr.stopWordFilter,r.tr.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(r.tr.stemmer))},r.tr.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.tr.trimmer=r.trimmerSupport.generateTrimmer(r.tr.wordCharacters),r.Pipeline.registerFunction(r.tr.trimmer,"trimmer-tr"),r.tr.stemmer=function(){var i=r.stemmerSupport.Among,e=r.stemmerSupport.SnowballProgram,n=new function(){function r(r,i,e){for(;;){var n=Dr.limit-Dr.cursor;if(Dr.in_grouping_b(r,i,e)){Dr.cursor=Dr.limit-n;break}if(Dr.cursor=Dr.limit-n,Dr.cursor<=Dr.limit_backward)return!1;Dr.cursor--}return!0}function n(){var i,e;i=Dr.limit-Dr.cursor,r(Wr,97,305);for(var n=0;nDr.limit_backward&&(Dr.cursor--,e=Dr.limit-Dr.cursor,i()))?(Dr.cursor=Dr.limit-e,!0):(Dr.cursor=Dr.limit-n,r()?(Dr.cursor=Dr.limit-n,!1):(Dr.cursor=Dr.limit-n,!(Dr.cursor<=Dr.limit_backward)&&(Dr.cursor--,!!i()&&(Dr.cursor=Dr.limit-n,!0))))}function u(r){return t(r,function(){return Dr.in_grouping_b(Wr,97,305)})}function o(){return u(function(){return Dr.eq_s_b(1,"n")})}function s(){return u(function(){return Dr.eq_s_b(1,"s")})}function c(){return u(function(){return Dr.eq_s_b(1,"y")})}function l(){return t(function(){return Dr.in_grouping_b(Lr,105,305)},function(){return Dr.out_grouping_b(Wr,97,305)})}function a(){return Dr.find_among_b(ur,10)&&l()}function m(){return n()&&Dr.in_grouping_b(Lr,105,305)&&s()}function d(){return Dr.find_among_b(or,2)}function f(){return n()&&Dr.in_grouping_b(Lr,105,305)&&c()}function b(){return n()&&Dr.find_among_b(sr,4)}function w(){return n()&&Dr.find_among_b(cr,4)&&o()}function _(){return n()&&Dr.find_among_b(lr,2)&&c()}function k(){return n()&&Dr.find_among_b(ar,2)}function p(){return n()&&Dr.find_among_b(mr,4)}function g(){return n()&&Dr.find_among_b(dr,2)}function y(){return n()&&Dr.find_among_b(fr,4)}function z(){return n()&&Dr.find_among_b(br,2)}function v(){return n()&&Dr.find_among_b(wr,2)&&c()}function h(){return Dr.eq_s_b(2,"ki")}function q(){return n()&&Dr.find_among_b(_r,2)&&o()}function C(){return n()&&Dr.find_among_b(kr,4)&&c()}function P(){return n()&&Dr.find_among_b(pr,4)}function F(){return n()&&Dr.find_among_b(gr,4)&&c()}function S(){return Dr.find_among_b(yr,4)}function W(){return n()&&Dr.find_among_b(zr,2)}function L(){return n()&&Dr.find_among_b(vr,4)}function x(){return n()&&Dr.find_among_b(hr,8)}function A(){return Dr.find_among_b(qr,2)}function E(){return n()&&Dr.find_among_b(Cr,32)&&c()}function j(){return Dr.find_among_b(Pr,8)&&c()}function T(){return n()&&Dr.find_among_b(Fr,4)&&c()}function Z(){return Dr.eq_s_b(3,"ken")&&c()}function B(){var r=Dr.limit-Dr.cursor;return!(T()||(Dr.cursor=Dr.limit-r,E()||(Dr.cursor=Dr.limit-r,j()||(Dr.cursor=Dr.limit-r,Z()))))}function D(){if(A()){var r=Dr.limit-Dr.cursor;if(S()||(Dr.cursor=Dr.limit-r,W()||(Dr.cursor=Dr.limit-r,C()||(Dr.cursor=Dr.limit-r,P()||(Dr.cursor=Dr.limit-r,F()||(Dr.cursor=Dr.limit-r))))),T())return!1}return!0}function G(){if(W()){Dr.bra=Dr.cursor,Dr.slice_del();var r=Dr.limit-Dr.cursor;return Dr.ket=Dr.cursor,x()||(Dr.cursor=Dr.limit-r,E()||(Dr.cursor=Dr.limit-r,j()||(Dr.cursor=Dr.limit-r,T()||(Dr.cursor=Dr.limit-r)))),nr=!1,!1}return!0}function H(){if(!L())return!0;var r=Dr.limit-Dr.cursor;return!E()&&(Dr.cursor=Dr.limit-r,!j())}function I(){var r,i=Dr.limit-Dr.cursor;return!(S()||(Dr.cursor=Dr.limit-i,F()||(Dr.cursor=Dr.limit-i,P()||(Dr.cursor=Dr.limit-i,C()))))||(Dr.bra=Dr.cursor,Dr.slice_del(),r=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,T()||(Dr.cursor=Dr.limit-r),!1)}function J(){var r,i=Dr.limit-Dr.cursor;if(Dr.ket=Dr.cursor,nr=!0,B()&&(Dr.cursor=Dr.limit-i,D()&&(Dr.cursor=Dr.limit-i,G()&&(Dr.cursor=Dr.limit-i,H()&&(Dr.cursor=Dr.limit-i,I()))))){if(Dr.cursor=Dr.limit-i,!x())return;Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,r=Dr.limit-Dr.cursor,S()||(Dr.cursor=Dr.limit-r,W()||(Dr.cursor=Dr.limit-r,C()||(Dr.cursor=Dr.limit-r,P()||(Dr.cursor=Dr.limit-r,F()||(Dr.cursor=Dr.limit-r))))),T()||(Dr.cursor=Dr.limit-r)}Dr.bra=Dr.cursor,Dr.slice_del()}function K(){var r,i,e,n;if(Dr.ket=Dr.cursor,h()){if(r=Dr.limit-Dr.cursor,p())return Dr.bra=Dr.cursor,Dr.slice_del(),i=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,W()?(Dr.bra=Dr.cursor,Dr.slice_del(),K()):(Dr.cursor=Dr.limit-i,a()&&(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K()))),!0;if(Dr.cursor=Dr.limit-r,w()){if(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,e=Dr.limit-Dr.cursor,d())Dr.bra=Dr.cursor,Dr.slice_del();else{if(Dr.cursor=Dr.limit-e,Dr.ket=Dr.cursor,!a()&&(Dr.cursor=Dr.limit-e,!m()&&(Dr.cursor=Dr.limit-e,!K())))return!0;Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K())}return!0}if(Dr.cursor=Dr.limit-r,g()){if(n=Dr.limit-Dr.cursor,d())Dr.bra=Dr.cursor,Dr.slice_del();else if(Dr.cursor=Dr.limit-n,m())Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K());else if(Dr.cursor=Dr.limit-n,!K())return!1;return!0}}return!1}function M(r){if(Dr.ket=Dr.cursor,!g()&&(Dr.cursor=Dr.limit-r,!k()))return!1;var i=Dr.limit-Dr.cursor;if(d())Dr.bra=Dr.cursor,Dr.slice_del();else if(Dr.cursor=Dr.limit-i,m())Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K());else if(Dr.cursor=Dr.limit-i,!K())return!1;return!0}function N(r){if(Dr.ket=Dr.cursor,!z()&&(Dr.cursor=Dr.limit-r,!b()))return!1;var i=Dr.limit-Dr.cursor;return!(!m()&&(Dr.cursor=Dr.limit-i,!d()))&&(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K()),!0)}function O(){var r,i=Dr.limit-Dr.cursor;return Dr.ket=Dr.cursor,!(!w()&&(Dr.cursor=Dr.limit-i,!v()))&&(Dr.bra=Dr.cursor,Dr.slice_del(),r=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,!(!W()||(Dr.bra=Dr.cursor,Dr.slice_del(),!K()))||(Dr.cursor=Dr.limit-r,Dr.ket=Dr.cursor,!(a()||(Dr.cursor=Dr.limit-r,m()||(Dr.cursor=Dr.limit-r,K())))||(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K()),!0)))}function Q(){var r,i,e=Dr.limit-Dr.cursor;if(Dr.ket=Dr.cursor,!p()&&(Dr.cursor=Dr.limit-e,!f()&&(Dr.cursor=Dr.limit-e,!_())))return!1;if(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,r=Dr.limit-Dr.cursor,a())Dr.bra=Dr.cursor,Dr.slice_del(),i=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,W()||(Dr.cursor=Dr.limit-i);else if(Dr.cursor=Dr.limit-r,!W())return!0;return Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,K(),!0}function R(){var r,i,e=Dr.limit-Dr.cursor;if(Dr.ket=Dr.cursor,W())return Dr.bra=Dr.cursor,Dr.slice_del(),void K();if(Dr.cursor=Dr.limit-e,Dr.ket=Dr.cursor,q())if(Dr.bra=Dr.cursor,Dr.slice_del(),r=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,d())Dr.bra=Dr.cursor,Dr.slice_del();else{if(Dr.cursor=Dr.limit-r,Dr.ket=Dr.cursor,!a()&&(Dr.cursor=Dr.limit-r,!m())){if(Dr.cursor=Dr.limit-r,Dr.ket=Dr.cursor,!W())return;if(Dr.bra=Dr.cursor,Dr.slice_del(),!K())return}Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K())}else if(Dr.cursor=Dr.limit-e,!M(e)&&(Dr.cursor=Dr.limit-e,!N(e))){if(Dr.cursor=Dr.limit-e,Dr.ket=Dr.cursor,y())return Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,i=Dr.limit-Dr.cursor,void(a()?(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K())):(Dr.cursor=Dr.limit-i,W()?(Dr.bra=Dr.cursor,Dr.slice_del(),K()):(Dr.cursor=Dr.limit-i,K())));if(Dr.cursor=Dr.limit-e,!O()){if(Dr.cursor=Dr.limit-e,d())return Dr.bra=Dr.cursor,void Dr.slice_del();Dr.cursor=Dr.limit-e,K()||(Dr.cursor=Dr.limit-e,Q()||(Dr.cursor=Dr.limit-e,Dr.ket=Dr.cursor,(a()||(Dr.cursor=Dr.limit-e,m()))&&(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K()))))}}}function U(){var r;if(Dr.ket=Dr.cursor,r=Dr.find_among_b(Sr,4))switch(Dr.bra=Dr.cursor,r){case 1:Dr.slice_from("p");break;case 2:Dr.slice_from("ç");break;case 3:Dr.slice_from("t");break;case 4:Dr.slice_from("k")}}function V(){for(;;){var r=Dr.limit-Dr.cursor;if(Dr.in_grouping_b(Wr,97,305)){Dr.cursor=Dr.limit-r;break}if(Dr.cursor=Dr.limit-r,Dr.cursor<=Dr.limit_backward)return!1;Dr.cursor--}return!0}function X(r,i,e){if(Dr.cursor=Dr.limit-r,V()){var n=Dr.limit-Dr.cursor;if(!Dr.eq_s_b(1,i)&&(Dr.cursor=Dr.limit-n,!Dr.eq_s_b(1,e)))return!0;Dr.cursor=Dr.limit-r;var t=Dr.cursor;return Dr.insert(Dr.cursor,Dr.cursor,e),Dr.cursor=t,!1}return!0}function Y(){var r=Dr.limit-Dr.cursor;(Dr.eq_s_b(1,"d")||(Dr.cursor=Dr.limit-r,Dr.eq_s_b(1,"g")))&&X(r,"a","ı")&&X(r,"e","i")&&X(r,"o","u")&&X(r,"ö","ü")}function $(){for(var r,i=Dr.cursor,e=2;;){for(r=Dr.cursor;!Dr.in_grouping(Wr,97,305);){if(Dr.cursor>=Dr.limit)return Dr.cursor=r,!(e>0)&&(Dr.cursor=i,!0);Dr.cursor++}e--}}function rr(r,i,e){for(;!Dr.eq_s(i,e);){if(Dr.cursor>=Dr.limit)return!0;Dr.cursor++}return(tr=i)!=Dr.limit||(Dr.cursor=r,!1)}function ir(){var r=Dr.cursor;return!rr(r,2,"ad")||(Dr.cursor=r,!rr(r,5,"soyad"))}function er(){var r=Dr.cursor;return!ir()&&(Dr.limit_backward=r,Dr.cursor=Dr.limit,Y(),Dr.cursor=Dr.limit,U(),!0)}var nr,tr,ur=[new i("m",-1,-1),new i("n",-1,-1),new i("miz",-1,-1),new i("niz",-1,-1),new i("muz",-1,-1),new i("nuz",-1,-1),new i("müz",-1,-1),new i("nüz",-1,-1),new i("mız",-1,-1),new i("nız",-1,-1)],or=[new i("leri",-1,-1),new i("ları",-1,-1)],sr=[new i("ni",-1,-1),new i("nu",-1,-1),new i("nü",-1,-1),new i("nı",-1,-1)],cr=[new i("in",-1,-1),new i("un",-1,-1),new i("ün",-1,-1),new i("ın",-1,-1)],lr=[new i("a",-1,-1),new i("e",-1,-1)],ar=[new i("na",-1,-1),new i("ne",-1,-1)],mr=[new i("da",-1,-1),new i("ta",-1,-1),new i("de",-1,-1),new i("te",-1,-1)],dr=[new i("nda",-1,-1),new i("nde",-1,-1)],fr=[new i("dan",-1,-1),new i("tan",-1,-1),new i("den",-1,-1),new i("ten",-1,-1)],br=[new i("ndan",-1,-1),new i("nden",-1,-1)],wr=[new i("la",-1,-1),new i("le",-1,-1)],_r=[new i("ca",-1,-1),new i("ce",-1,-1)],kr=[new i("im",-1,-1),new i("um",-1,-1),new i("üm",-1,-1),new i("ım",-1,-1)],pr=[new i("sin",-1,-1),new i("sun",-1,-1),new i("sün",-1,-1),new i("sın",-1,-1)],gr=[new i("iz",-1,-1),new i("uz",-1,-1),new i("üz",-1,-1),new i("ız",-1,-1)],yr=[new i("siniz",-1,-1),new i("sunuz",-1,-1),new i("sünüz",-1,-1),new i("sınız",-1,-1)],zr=[new i("lar",-1,-1),new i("ler",-1,-1)],vr=[new i("niz",-1,-1),new i("nuz",-1,-1),new i("nüz",-1,-1),new i("nız",-1,-1)],hr=[new i("dir",-1,-1),new i("tir",-1,-1),new i("dur",-1,-1),new i("tur",-1,-1),new i("dür",-1,-1),new i("tür",-1,-1),new i("dır",-1,-1),new i("tır",-1,-1)],qr=[new i("casına",-1,-1),new i("cesine",-1,-1)],Cr=[new i("di",-1,-1),new i("ti",-1,-1),new i("dik",-1,-1),new i("tik",-1,-1),new i("duk",-1,-1),new i("tuk",-1,-1),new i("dük",-1,-1),new i("tük",-1,-1),new i("dık",-1,-1),new i("tık",-1,-1),new i("dim",-1,-1),new i("tim",-1,-1),new i("dum",-1,-1),new i("tum",-1,-1),new i("düm",-1,-1),new i("tüm",-1,-1),new i("dım",-1,-1),new i("tım",-1,-1),new i("din",-1,-1),new i("tin",-1,-1),new i("dun",-1,-1),new i("tun",-1,-1),new i("dün",-1,-1),new i("tün",-1,-1),new i("dın",-1,-1),new i("tın",-1,-1),new i("du",-1,-1),new i("tu",-1,-1),new i("dü",-1,-1),new i("tü",-1,-1),new i("dı",-1,-1),new i("tı",-1,-1)],Pr=[new i("sa",-1,-1),new i("se",-1,-1),new i("sak",-1,-1),new i("sek",-1,-1),new i("sam",-1,-1),new i("sem",-1,-1),new i("san",-1,-1),new i("sen",-1,-1)],Fr=[new i("miş",-1,-1),new i("muş",-1,-1),new i("müş",-1,-1),new i("mış",-1,-1)],Sr=[new i("b",-1,1),new i("c",-1,2),new i("d",-1,3),new i("ğ",-1,4)],Wr=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,0,0,0,0,0,0,1],Lr=[1,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,1],xr=[1,64,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],Ar=[17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,130],Er=[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],jr=[17],Tr=[65],Zr=[65],Br=[["a",xr,97,305],["e",Ar,101,252],["ı",Er,97,305],["i",jr,101,105],["o",Tr,111,117],["ö",Zr,246,252],["u",Tr,111,117]],Dr=new e;this.setCurrent=function(r){Dr.setCurrent(r)},this.getCurrent=function(){return Dr.getCurrent()},this.stem=function(){return!!($()&&(Dr.limit_backward=Dr.cursor,Dr.cursor=Dr.limit,J(),Dr.cursor=Dr.limit,nr&&(R(),Dr.cursor=Dr.limit_backward,er())))}};return function(r){return"function"==typeof r.update?r.update(function(r){return n.setCurrent(r),n.stem(),n.getCurrent()}):(n.setCurrent(r),n.stem(),n.getCurrent())}}(),r.Pipeline.registerFunction(r.tr.stemmer,"stemmer-tr"),r.tr.stopWordFilter=r.generateStopWordFilter("acaba altmış altı ama ancak arada aslında ayrıca bana bazı belki ben benden beni benim beri beş bile bin bir biri birkaç birkez birçok birşey birşeyi biz bizden bize bizi bizim bu buna bunda bundan bunlar bunları bunların bunu bunun burada böyle böylece da daha dahi de defa değil diye diğer doksan dokuz dolayı dolayısıyla dört edecek eden ederek edilecek ediliyor edilmesi ediyor elli en etmesi etti ettiği ettiğini eğer gibi göre halen hangi hatta hem henüz hep hepsi her herhangi herkesin hiç hiçbir iki ile ilgili ise itibaren itibariyle için işte kadar karşın katrilyon kendi kendilerine kendini kendisi kendisine kendisini kez ki kim kimden kime kimi kimse kırk milyar milyon mu mü mı nasıl ne neden nedenle nerde nerede nereye niye niçin o olan olarak oldu olduklarını olduğu olduğunu olmadı olmadığı olmak olması olmayan olmaz olsa olsun olup olur olursa oluyor on ona ondan onlar onlardan onları onların onu onun otuz oysa pek rağmen sadece sanki sekiz seksen sen senden seni senin siz sizden sizi sizin tarafından trilyon tüm var vardı ve veya ya yani yapacak yapmak yaptı yaptıkları yaptığı yaptığını yapılan yapılması yapıyor yedi yerine yetmiş yine yirmi yoksa yüz zaten çok çünkü öyle üzere üç şey şeyden şeyi şeyler şu şuna şunda şundan şunları şunu şöyle".split(" ")),r.Pipeline.registerFunction(r.tr.stopWordFilter,"stopWordFilter-tr")}}); \ No newline at end of file diff --git a/doc/theme/material/assets/javascripts/lunr/min/lunr.vi.min.js b/doc/theme/material/assets/javascripts/lunr/min/lunr.vi.min.js new file mode 100644 index 00000000..22aed28c --- /dev/null +++ b/doc/theme/material/assets/javascripts/lunr/min/lunr.vi.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.vi=function(){this.pipeline.reset(),this.pipeline.add(e.vi.stopWordFilter,e.vi.trimmer)},e.vi.wordCharacters="[A-Za-ẓ̀͐́͑̉̃̓ÂâÊêÔôĂ-ăĐ-đƠ-ơƯ-ư]",e.vi.trimmer=e.trimmerSupport.generateTrimmer(e.vi.wordCharacters),e.Pipeline.registerFunction(e.vi.trimmer,"trimmer-vi"),e.vi.stopWordFilter=e.generateStopWordFilter("là cái nhưng mà".split(" "))}}); \ No newline at end of file diff --git a/doc/theme/material/assets/javascripts/lunr/tinyseg.min.js b/doc/theme/material/assets/javascripts/lunr/tinyseg.min.js new file mode 100644 index 00000000..02c61e9c --- /dev/null +++ b/doc/theme/material/assets/javascripts/lunr/tinyseg.min.js @@ -0,0 +1 @@ +!function(_,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(_.lunr)}(this,(function(){return function(_){function t(){var _={"[一二三四五六七八九十百千万億兆]":"M","[一-龠々〆ヵヶ]":"H","[ぁ-ん]":"I","[ァ-ヴーア-ン゙ー]":"K","[a-zA-Za-zA-Z]":"A","[0-90-9]":"N"};for(var t in this.chartype_=[],_){var H=new RegExp(t);this.chartype_.push([H,_[t]])}return this.BIAS__=-332,this.BC1__={HH:6,II:2461,KH:406,OH:-1378},this.BC2__={AA:-3267,AI:2744,AN:-878,HH:-4070,HM:-1711,HN:4012,HO:3761,IA:1327,IH:-1184,II:-1332,IK:1721,IO:5492,KI:3831,KK:-8741,MH:-3132,MK:3334,OO:-2920},this.BC3__={HH:996,HI:626,HK:-721,HN:-1307,HO:-836,IH:-301,KK:2762,MK:1079,MM:4034,OA:-1652,OH:266},this.BP1__={BB:295,OB:304,OO:-125,UB:352},this.BP2__={BO:60,OO:-1762},this.BQ1__={BHH:1150,BHM:1521,BII:-1158,BIM:886,BMH:1208,BNH:449,BOH:-91,BOO:-2597,OHI:451,OIH:-296,OKA:1851,OKH:-1020,OKK:904,OOO:2965},this.BQ2__={BHH:118,BHI:-1159,BHM:466,BIH:-919,BKK:-1720,BKO:864,OHH:-1139,OHM:-181,OIH:153,UHI:-1146},this.BQ3__={BHH:-792,BHI:2664,BII:-299,BKI:419,BMH:937,BMM:8335,BNN:998,BOH:775,OHH:2174,OHM:439,OII:280,OKH:1798,OKI:-793,OKO:-2242,OMH:-2402,OOO:11699},this.BQ4__={BHH:-3895,BIH:3761,BII:-4654,BIK:1348,BKK:-1806,BMI:-3385,BOO:-12396,OAH:926,OHH:266,OHK:-2036,ONN:-973},this.BW1__={",と":660,",同":727,B1あ:1404,B1同:542,"、と":660,"、同":727,"」と":1682,あっ:1505,いう:1743,いっ:-2055,いる:672,うし:-4817,うん:665,から:3472,がら:600,こう:-790,こと:2083,こん:-1262,さら:-4143,さん:4573,した:2641,して:1104,すで:-3399,そこ:1977,それ:-871,たち:1122,ため:601,った:3463,つい:-802,てい:805,てき:1249,でき:1127,です:3445,では:844,とい:-4915,とみ:1922,どこ:3887,ない:5713,なっ:3015,など:7379,なん:-1113,にし:2468,には:1498,にも:1671,に対:-912,の一:-501,の中:741,ませ:2448,まで:1711,まま:2600,まる:-2155,やむ:-1947,よっ:-2565,れた:2369,れで:-913,をし:1860,を見:731,亡く:-1886,京都:2558,取り:-2784,大き:-2604,大阪:1497,平方:-2314,引き:-1336,日本:-195,本当:-2423,毎日:-2113,目指:-724,B1あ:1404,B1同:542,"」と":1682},this.BW2__={"..":-11822,11:-669,"――":-5730,"−−":-13175,いう:-1609,うか:2490,かし:-1350,かも:-602,から:-7194,かれ:4612,がい:853,がら:-3198,きた:1941,くな:-1597,こと:-8392,この:-4193,させ:4533,され:13168,さん:-3977,しい:-1819,しか:-545,した:5078,して:972,しな:939,その:-3744,たい:-1253,たた:-662,ただ:-3857,たち:-786,たと:1224,たは:-939,った:4589,って:1647,っと:-2094,てい:6144,てき:3640,てく:2551,ては:-3110,ても:-3065,でい:2666,でき:-1528,でし:-3828,です:-4761,でも:-4203,とい:1890,とこ:-1746,とと:-2279,との:720,とみ:5168,とも:-3941,ない:-2488,なが:-1313,など:-6509,なの:2614,なん:3099,にお:-1615,にし:2748,にな:2454,によ:-7236,に対:-14943,に従:-4688,に関:-11388,のか:2093,ので:-7059,のに:-6041,のの:-6125,はい:1073,はが:-1033,はず:-2532,ばれ:1813,まし:-1316,まで:-6621,まれ:5409,めて:-3153,もい:2230,もの:-10713,らか:-944,らし:-1611,らに:-1897,りし:651,りま:1620,れた:4270,れて:849,れば:4114,ろう:6067,われ:7901,を通:-11877,んだ:728,んな:-4115,一人:602,一方:-1375,一日:970,一部:-1051,上が:-4479,会社:-1116,出て:2163,分の:-7758,同党:970,同日:-913,大阪:-2471,委員:-1250,少な:-1050,年度:-8669,年間:-1626,府県:-2363,手権:-1982,新聞:-4066,日新:-722,日本:-7068,日米:3372,曜日:-601,朝鮮:-2355,本人:-2697,東京:-1543,然と:-1384,社会:-1276,立て:-990,第に:-1612,米国:-4268,"11":-669},this.BW3__={あた:-2194,あり:719,ある:3846,"い.":-1185,"い。":-1185,いい:5308,いえ:2079,いく:3029,いた:2056,いっ:1883,いる:5600,いわ:1527,うち:1117,うと:4798,えと:1454,"か.":2857,"か。":2857,かけ:-743,かっ:-4098,かに:-669,から:6520,かり:-2670,"が,":1816,"が、":1816,がき:-4855,がけ:-1127,がっ:-913,がら:-4977,がり:-2064,きた:1645,けど:1374,こと:7397,この:1542,ころ:-2757,さい:-714,さを:976,"し,":1557,"し、":1557,しい:-3714,した:3562,して:1449,しな:2608,しま:1200,"す.":-1310,"す。":-1310,する:6521,"ず,":3426,"ず、":3426,ずに:841,そう:428,"た.":8875,"た。":8875,たい:-594,たの:812,たり:-1183,たる:-853,"だ.":4098,"だ。":4098,だっ:1004,った:-4748,って:300,てい:6240,てお:855,ても:302,です:1437,でに:-1482,では:2295,とう:-1387,とし:2266,との:541,とも:-3543,どう:4664,ない:1796,なく:-903,など:2135,"に,":-1021,"に、":-1021,にし:1771,にな:1906,には:2644,"の,":-724,"の、":-724,の子:-1e3,"は,":1337,"は、":1337,べき:2181,まし:1113,ます:6943,まっ:-1549,まで:6154,まれ:-793,らし:1479,られ:6820,るる:3818,"れ,":854,"れ、":854,れた:1850,れて:1375,れば:-3246,れる:1091,われ:-605,んだ:606,んで:798,カ月:990,会議:860,入り:1232,大会:2217,始め:1681,市:965,新聞:-5055,"日,":974,"日、":974,社会:2024,カ月:990},this.TC1__={AAA:1093,HHH:1029,HHM:580,HII:998,HOH:-390,HOM:-331,IHI:1169,IOH:-142,IOI:-1015,IOM:467,MMH:187,OOI:-1832},this.TC2__={HHO:2088,HII:-1023,HMM:-1154,IHI:-1965,KKH:703,OII:-2649},this.TC3__={AAA:-294,HHH:346,HHI:-341,HII:-1088,HIK:731,HOH:-1486,IHH:128,IHI:-3041,IHO:-1935,IIH:-825,IIM:-1035,IOI:-542,KHH:-1216,KKA:491,KKH:-1217,KOK:-1009,MHH:-2694,MHM:-457,MHO:123,MMH:-471,NNH:-1689,NNO:662,OHO:-3393},this.TC4__={HHH:-203,HHI:1344,HHK:365,HHM:-122,HHN:182,HHO:669,HIH:804,HII:679,HOH:446,IHH:695,IHO:-2324,IIH:321,III:1497,IIO:656,IOO:54,KAK:4845,KKA:3386,KKK:3065,MHH:-405,MHI:201,MMH:-241,MMM:661,MOM:841},this.TQ1__={BHHH:-227,BHHI:316,BHIH:-132,BIHH:60,BIII:1595,BNHH:-744,BOHH:225,BOOO:-908,OAKK:482,OHHH:281,OHIH:249,OIHI:200,OIIH:-68},this.TQ2__={BIHH:-1401,BIII:-1033,BKAK:-543,BOOO:-5591},this.TQ3__={BHHH:478,BHHM:-1073,BHIH:222,BHII:-504,BIIH:-116,BIII:-105,BMHI:-863,BMHM:-464,BOMH:620,OHHH:346,OHHI:1729,OHII:997,OHMH:481,OIHH:623,OIIH:1344,OKAK:2792,OKHH:587,OKKA:679,OOHH:110,OOII:-685},this.TQ4__={BHHH:-721,BHHM:-3604,BHII:-966,BIIH:-607,BIII:-2181,OAAA:-2763,OAKK:180,OHHH:-294,OHHI:2446,OHHO:480,OHIH:-1573,OIHH:1935,OIHI:-493,OIIH:626,OIII:-4007,OKAK:-8156},this.TW1__={につい:-4681,東京都:2026},this.TW2__={ある程:-2049,いった:-1256,ころが:-2434,しょう:3873,その後:-4430,だって:-1049,ていた:1833,として:-4657,ともに:-4517,もので:1882,一気に:-792,初めて:-1512,同時に:-8097,大きな:-1255,対して:-2721,社会党:-3216},this.TW3__={いただ:-1734,してい:1314,として:-4314,につい:-5483,にとっ:-5989,に当た:-6247,"ので,":-727,"ので、":-727,のもの:-600,れから:-3752,十二月:-2287},this.TW4__={"いう.":8576,"いう。":8576,からな:-2348,してい:2958,"たが,":1516,"たが、":1516,ている:1538,という:1349,ました:5543,ません:1097,ようと:-4258,よると:5865},this.UC1__={A:484,K:93,M:645,O:-505},this.UC2__={A:819,H:1059,I:409,M:3987,N:5775,O:646},this.UC3__={A:-1370,I:2311},this.UC4__={A:-2643,H:1809,I:-1032,K:-3450,M:3565,N:3876,O:6646},this.UC5__={H:313,I:-1238,K:-799,M:539,O:-831},this.UC6__={H:-506,I:-253,K:87,M:247,O:-387},this.UP1__={O:-214},this.UP2__={B:69,O:935},this.UP3__={B:189},this.UQ1__={BH:21,BI:-12,BK:-99,BN:142,BO:-56,OH:-95,OI:477,OK:410,OO:-2422},this.UQ2__={BH:216,BI:113,OK:1759},this.UQ3__={BA:-479,BH:42,BI:1913,BK:-7198,BM:3160,BN:6427,BO:14761,OI:-827,ON:-3212},this.UW1__={",":156,"、":156,"「":-463,あ:-941,う:-127,が:-553,き:121,こ:505,で:-201,と:-547,ど:-123,に:-789,の:-185,は:-847,も:-466,や:-470,よ:182,ら:-292,り:208,れ:169,を:-446,ん:-137,"・":-135,主:-402,京:-268,区:-912,午:871,国:-460,大:561,委:729,市:-411,日:-141,理:361,生:-408,県:-386,都:-718,"「":-463,"・":-135},this.UW2__={",":-829,"、":-829,〇:892,"「":-645,"」":3145,あ:-538,い:505,う:134,お:-502,か:1454,が:-856,く:-412,こ:1141,さ:878,ざ:540,し:1529,す:-675,せ:300,そ:-1011,た:188,だ:1837,つ:-949,て:-291,で:-268,と:-981,ど:1273,な:1063,に:-1764,の:130,は:-409,ひ:-1273,べ:1261,ま:600,も:-1263,や:-402,よ:1639,り:-579,る:-694,れ:571,を:-2516,ん:2095,ア:-587,カ:306,キ:568,ッ:831,三:-758,不:-2150,世:-302,中:-968,主:-861,事:492,人:-123,会:978,保:362,入:548,初:-3025,副:-1566,北:-3414,区:-422,大:-1769,天:-865,太:-483,子:-1519,学:760,実:1023,小:-2009,市:-813,年:-1060,強:1067,手:-1519,揺:-1033,政:1522,文:-1355,新:-1682,日:-1815,明:-1462,最:-630,朝:-1843,本:-1650,東:-931,果:-665,次:-2378,民:-180,気:-1740,理:752,発:529,目:-1584,相:-242,県:-1165,立:-763,第:810,米:509,自:-1353,行:838,西:-744,見:-3874,調:1010,議:1198,込:3041,開:1758,間:-1257,"「":-645,"」":3145,ッ:831,ア:-587,カ:306,キ:568},this.UW3__={",":4889,1:-800,"−":-1723,"、":4889,々:-2311,〇:5827,"」":2670,"〓":-3573,あ:-2696,い:1006,う:2342,え:1983,お:-4864,か:-1163,が:3271,く:1004,け:388,げ:401,こ:-3552,ご:-3116,さ:-1058,し:-395,す:584,せ:3685,そ:-5228,た:842,ち:-521,っ:-1444,つ:-1081,て:6167,で:2318,と:1691,ど:-899,な:-2788,に:2745,の:4056,は:4555,ひ:-2171,ふ:-1798,へ:1199,ほ:-5516,ま:-4384,み:-120,め:1205,も:2323,や:-788,よ:-202,ら:727,り:649,る:5905,れ:2773,わ:-1207,を:6620,ん:-518,ア:551,グ:1319,ス:874,ッ:-1350,ト:521,ム:1109,ル:1591,ロ:2201,ン:278,"・":-3794,一:-1619,下:-1759,世:-2087,両:3815,中:653,主:-758,予:-1193,二:974,人:2742,今:792,他:1889,以:-1368,低:811,何:4265,作:-361,保:-2439,元:4858,党:3593,全:1574,公:-3030,六:755,共:-1880,円:5807,再:3095,分:457,初:2475,別:1129,前:2286,副:4437,力:365,動:-949,務:-1872,化:1327,北:-1038,区:4646,千:-2309,午:-783,協:-1006,口:483,右:1233,各:3588,合:-241,同:3906,和:-837,員:4513,国:642,型:1389,場:1219,外:-241,妻:2016,学:-1356,安:-423,実:-1008,家:1078,小:-513,少:-3102,州:1155,市:3197,平:-1804,年:2416,広:-1030,府:1605,度:1452,建:-2352,当:-3885,得:1905,思:-1291,性:1822,戸:-488,指:-3973,政:-2013,教:-1479,数:3222,文:-1489,新:1764,日:2099,旧:5792,昨:-661,時:-1248,曜:-951,最:-937,月:4125,期:360,李:3094,村:364,東:-805,核:5156,森:2438,業:484,氏:2613,民:-1694,決:-1073,法:1868,海:-495,無:979,物:461,特:-3850,生:-273,用:914,町:1215,的:7313,直:-1835,省:792,県:6293,知:-1528,私:4231,税:401,立:-960,第:1201,米:7767,系:3066,約:3663,級:1384,統:-4229,総:1163,線:1255,者:6457,能:725,自:-2869,英:785,見:1044,調:-562,財:-733,費:1777,車:1835,軍:1375,込:-1504,通:-1136,選:-681,郎:1026,郡:4404,部:1200,金:2163,長:421,開:-1432,間:1302,関:-1282,雨:2009,電:-1045,非:2066,駅:1620,"1":-800,"」":2670,"・":-3794,ッ:-1350,ア:551,グ:1319,ス:874,ト:521,ム:1109,ル:1591,ロ:2201,ン:278},this.UW4__={",":3930,".":3508,"―":-4841,"、":3930,"。":3508,〇:4999,"「":1895,"」":3798,"〓":-5156,あ:4752,い:-3435,う:-640,え:-2514,お:2405,か:530,が:6006,き:-4482,ぎ:-3821,く:-3788,け:-4376,げ:-4734,こ:2255,ご:1979,さ:2864,し:-843,じ:-2506,す:-731,ず:1251,せ:181,そ:4091,た:5034,だ:5408,ち:-3654,っ:-5882,つ:-1659,て:3994,で:7410,と:4547,な:5433,に:6499,ぬ:1853,ね:1413,の:7396,は:8578,ば:1940,ひ:4249,び:-4134,ふ:1345,へ:6665,べ:-744,ほ:1464,ま:1051,み:-2082,む:-882,め:-5046,も:4169,ゃ:-2666,や:2795,ょ:-1544,よ:3351,ら:-2922,り:-9726,る:-14896,れ:-2613,ろ:-4570,わ:-1783,を:13150,ん:-2352,カ:2145,コ:1789,セ:1287,ッ:-724,ト:-403,メ:-1635,ラ:-881,リ:-541,ル:-856,ン:-3637,"・":-4371,ー:-11870,一:-2069,中:2210,予:782,事:-190,井:-1768,人:1036,以:544,会:950,体:-1286,作:530,側:4292,先:601,党:-2006,共:-1212,内:584,円:788,初:1347,前:1623,副:3879,力:-302,動:-740,務:-2715,化:776,区:4517,協:1013,参:1555,合:-1834,和:-681,員:-910,器:-851,回:1500,国:-619,園:-1200,地:866,場:-1410,塁:-2094,士:-1413,多:1067,大:571,子:-4802,学:-1397,定:-1057,寺:-809,小:1910,屋:-1328,山:-1500,島:-2056,川:-2667,市:2771,年:374,庁:-4556,後:456,性:553,感:916,所:-1566,支:856,改:787,政:2182,教:704,文:522,方:-856,日:1798,時:1829,最:845,月:-9066,木:-485,来:-442,校:-360,業:-1043,氏:5388,民:-2716,気:-910,沢:-939,済:-543,物:-735,率:672,球:-1267,生:-1286,産:-1101,田:-2900,町:1826,的:2586,目:922,省:-3485,県:2997,空:-867,立:-2112,第:788,米:2937,系:786,約:2171,経:1146,統:-1169,総:940,線:-994,署:749,者:2145,能:-730,般:-852,行:-792,規:792,警:-1184,議:-244,谷:-1e3,賞:730,車:-1481,軍:1158,輪:-1433,込:-3370,近:929,道:-1291,選:2596,郎:-4866,都:1192,野:-1100,銀:-2213,長:357,間:-2344,院:-2297,際:-2604,電:-878,領:-1659,題:-792,館:-1984,首:1749,高:2120,"「":1895,"」":3798,"・":-4371,ッ:-724,ー:-11870,カ:2145,コ:1789,セ:1287,ト:-403,メ:-1635,ラ:-881,リ:-541,ル:-856,ン:-3637},this.UW5__={",":465,".":-299,1:-514,E2:-32768,"]":-2762,"、":465,"。":-299,"「":363,あ:1655,い:331,う:-503,え:1199,お:527,か:647,が:-421,き:1624,ぎ:1971,く:312,げ:-983,さ:-1537,し:-1371,す:-852,だ:-1186,ち:1093,っ:52,つ:921,て:-18,で:-850,と:-127,ど:1682,な:-787,に:-1224,の:-635,は:-578,べ:1001,み:502,め:865,ゃ:3350,ょ:854,り:-208,る:429,れ:504,わ:419,を:-1264,ん:327,イ:241,ル:451,ン:-343,中:-871,京:722,会:-1153,党:-654,務:3519,区:-901,告:848,員:2104,大:-1296,学:-548,定:1785,嵐:-1304,市:-2991,席:921,年:1763,思:872,所:-814,挙:1618,新:-1682,日:218,月:-4353,査:932,格:1356,機:-1508,氏:-1347,田:240,町:-3912,的:-3149,相:1319,省:-1052,県:-4003,研:-997,社:-278,空:-813,統:1955,者:-2233,表:663,語:-1073,議:1219,選:-1018,郎:-368,長:786,間:1191,題:2368,館:-689,"1":-514,E2:-32768,"「":363,イ:241,ル:451,ン:-343},this.UW6__={",":227,".":808,1:-270,E1:306,"、":227,"。":808,あ:-307,う:189,か:241,が:-73,く:-121,こ:-200,じ:1782,す:383,た:-428,っ:573,て:-1014,で:101,と:-105,な:-253,に:-149,の:-417,は:-236,も:-206,り:187,る:-135,を:195,ル:-673,ン:-496,一:-277,中:201,件:-800,会:624,前:302,区:1792,員:-1212,委:798,学:-960,市:887,広:-695,後:535,業:-697,相:753,社:-507,福:974,空:-822,者:1811,連:463,郎:1082,"1":-270,E1:306,ル:-673,ン:-496},this}t.prototype.ctype_=function(_){for(var t in this.chartype_)if(_.match(this.chartype_[t][0]))return this.chartype_[t][1];return"O"},t.prototype.ts_=function(_){return _||0},t.prototype.segment=function(_){if(null==_||null==_||""==_)return[];var t=[],H=["B3","B2","B1"],s=["O","O","O"],h=_.split("");for(K=0;K0&&(t.push(i),i="",N="B"),I=O,O=B,B=N,i+=H[K]}return t.push(i),t},_.TinySegmenter=t}})); \ No newline at end of file diff --git a/doc/theme/material/assets/javascripts/vendor.8caa27b7.min.js b/doc/theme/material/assets/javascripts/vendor.8caa27b7.min.js new file mode 100644 index 00000000..56d11de4 --- /dev/null +++ b/doc/theme/material/assets/javascripts/vendor.8caa27b7.min.js @@ -0,0 +1,31 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[1],[function(t,e,n){"use strict";n.d(e,"f",(function(){return i})),n.d(e,"a",(function(){return o})),n.d(e,"e",(function(){return s})),n.d(e,"g",(function(){return u})),n.d(e,"k",(function(){return c})),n.d(e,"h",(function(){return a})),n.d(e,"i",(function(){return f})),n.d(e,"j",(function(){return h})),n.d(e,"d",(function(){return l})),n.d(e,"b",(function(){return p})),n.d(e,"c",(function(){return d})); +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */ +var r=function(t,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function i(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var o=function(){return(o=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function a(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var r,i,o=n.call(t),s=[];try{for(;(void 0===e||e-- >0)&&!(r=o.next()).done;)s.push(r.value)}catch(t){i={error:t}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return s}function f(){for(var t=[],e=0;e1||u(t,e)}))})}function u(t,e){try{(n=i[t](e)).value instanceof l?Promise.resolve(n.value.v).then(c,a):f(o[0][2],n)}catch(t){f(o[0][3],t)}var n}function c(t){u("next",t)}function a(t){u("throw",t)}function f(t,e){t(e),o.shift(),o.length&&u(o[0][0],o[0][1])}}function d(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,n=t[Symbol.asyncIterator];return n?n.call(t):(t=c(t),e={},r("next"),r("throw"),r("return"),e[Symbol.asyncIterator]=function(){return this},e);function r(n){e[n]=t[n]&&function(e){return new Promise((function(r,i){(function(t,e,n,r){Promise.resolve(r).then((function(e){t({value:e,done:n})}),e)})(r,i,(e=t[n](e)).done,e.value)}))}}}},,,function(t,e,n){"use strict";n.d(e,"a",(function(){return f}));var r=n(0),i=n(15),o=n(40),s=n(8),u=n(32),c=n(12),a=n(22),f=function(t){function e(n,r,i){var s=t.call(this)||this;switch(s.syncErrorValue=null,s.syncErrorThrown=!1,s.syncErrorThrowable=!1,s.isStopped=!1,arguments.length){case 0:s.destination=o.a;break;case 1:if(!n){s.destination=o.a;break}if("object"==typeof n){n instanceof e?(s.syncErrorThrowable=n.syncErrorThrowable,s.destination=n,n.add(s)):(s.syncErrorThrowable=!0,s.destination=new h(s,n));break}default:s.syncErrorThrowable=!0,s.destination=new h(s,n,r,i)}return s}return Object(r.f)(e,t),e.prototype[u.a]=function(){return this},e.create=function(t,n,r){var i=new e(t,n,r);return i.syncErrorThrowable=!1,i},e.prototype.next=function(t){this.isStopped||this._next(t)},e.prototype.error=function(t){this.isStopped||(this.isStopped=!0,this._error(t))},e.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},e.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,t.prototype.unsubscribe.call(this))},e.prototype._next=function(t){this.destination.next(t)},e.prototype._error=function(t){this.destination.error(t),this.unsubscribe()},e.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},e.prototype._unsubscribeAndRecycle=function(){var t=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=t,this},e}(s.a),h=function(t){function e(e,n,r,s){var u,c=t.call(this)||this;c._parentSubscriber=e;var a=c;return Object(i.a)(n)?u=n:n&&(u=n.next,r=n.error,s=n.complete,n!==o.a&&(a=Object.create(n),Object(i.a)(a.unsubscribe)&&c.add(a.unsubscribe.bind(a)),a.unsubscribe=c.unsubscribe.bind(c))),c._context=a,c._next=u,c._error=r,c._complete=s,c}return Object(r.f)(e,t),e.prototype.next=function(t){if(!this.isStopped&&this._next){var e=this._parentSubscriber;c.a.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?this.__tryOrSetError(e,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}},e.prototype.error=function(t){if(!this.isStopped){var e=this._parentSubscriber,n=c.a.useDeprecatedSynchronousErrorHandling;if(this._error)n&&e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else if(e.syncErrorThrowable)n?(e.syncErrorValue=t,e.syncErrorThrown=!0):Object(a.a)(t),this.unsubscribe();else{if(this.unsubscribe(),n)throw t;Object(a.a)(t)}}},e.prototype.complete=function(){var t=this;if(!this.isStopped){var e=this._parentSubscriber;if(this._complete){var n=function(){return t._complete.call(t._context)};c.a.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}},e.prototype.__tryOrUnsub=function(t,e){try{t.call(this._context,e)}catch(t){if(this.unsubscribe(),c.a.useDeprecatedSynchronousErrorHandling)throw t;Object(a.a)(t)}},e.prototype.__tryOrSetError=function(t,e,n){if(!c.a.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{e.call(this._context,n)}catch(e){return c.a.useDeprecatedSynchronousErrorHandling?(t.syncErrorValue=e,t.syncErrorThrown=!0,!0):(Object(a.a)(e),!0)}return!1},e.prototype._unsubscribe=function(){var t=this._parentSubscriber;this._context=null,this._parentSubscriber=null,t.unsubscribe()},e}(f)},,,function(t,e,n){"use strict";n.d(e,"a",(function(){return l}));var r=n(3);var i=n(32),o=n(40);var s=n(17),u=n(45),c=n(12),a=n(0),f=function(){var t=this;this.resolve=null,this.reject=null,this.promise=new Promise((function(e,n){t.resolve=e,t.reject=n}))};function h(t){return function(t){return Object(a.b)(this,arguments,(function(){var e,n,r,i,o,s,u,c;return Object(a.g)(this,(function(h){switch(h.label){case 0:e=[],n=[],r=!1,i=null,o=!1,s=t.subscribe({next:function(t){e.length>0?e.shift().resolve({value:t,done:!1}):n.push(t)},error:function(t){for(r=!0,i=t;e.length>0;)e.shift().reject(t)},complete:function(){for(o=!0;e.length>0;)e.shift().resolve({value:void 0,done:!0})}}),h.label=1;case 1:h.trys.push([1,16,17,18]),h.label=2;case 2:return n.length>0?[4,Object(a.d)(n.shift())]:[3,5];case 3:return[4,h.sent()];case 4:return h.sent(),[3,14];case 5:return o?[4,Object(a.d)(void 0)]:[3,7];case 6:return[2,h.sent()];case 7:if(!r)return[3,8];throw i;case 8:return u=new f,e.push(u),[4,Object(a.d)(u.promise)];case 9:return(c=h.sent()).done?[4,Object(a.d)(void 0)]:[3,11];case 10:return[2,h.sent()];case 11:return[4,Object(a.d)(c.value)];case 12:return[4,h.sent()];case 13:h.sent(),h.label=14;case 14:return[3,2];case 15:return[3,18];case 16:throw h.sent();case 17:return s.unsubscribe(),[7];case 18:return[2]}}))}))}(t)}var l=function(){function t(t){this._isScalar=!1,t&&(this._subscribe=t)}return t.prototype.lift=function(e){var n=new t;return n.source=this,n.operator=e,n},t.prototype.subscribe=function(t,e,n){var s=this.operator,u=function(t,e,n){if(t){if(t instanceof r.a)return t;if(t[i.a])return t[i.a]()}return t||e||n?new r.a(t,e,n):new r.a(o.a)}(t,e,n);if(s?u.add(s.call(u,this.source)):u.add(this.source||c.a.useDeprecatedSynchronousErrorHandling&&!u.syncErrorThrowable?this._subscribe(u):this._trySubscribe(u)),c.a.useDeprecatedSynchronousErrorHandling&&u.syncErrorThrowable&&(u.syncErrorThrowable=!1,u.syncErrorThrown))throw u.syncErrorValue;return u},t.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(e){c.a.useDeprecatedSynchronousErrorHandling&&(t.syncErrorThrown=!0,t.syncErrorValue=e),!function(t){for(;t;){var e=t,n=e.closed,i=e.destination,o=e.isStopped;if(n||o)return!1;t=i&&i instanceof r.a?i:null}return!0}(t)?console.warn(e):t.error(e)}},t.prototype.forEach=function(t,e){var n=this;return new(e=p(e))((function(e,r){var i;i=n.subscribe((function(e){try{t(e)}catch(t){r(t),i&&i.unsubscribe()}}),r,e)}))},t.prototype._subscribe=function(t){var e=this.source;return e&&e.subscribe(t)},t.prototype[s.a]=function(){return this},t.prototype.pipe=function(){for(var t=[],e=0;e0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},e}(o.a),h=n(49);function l(t){return void 0===t&&(t=Number.POSITIVE_INFINITY),function t(e,n,r){return void 0===r&&(r=Number.POSITIVE_INFINITY),"function"==typeof n?function(i){return i.pipe(t((function(t,r){return Object(c.a)(e(t,r)).pipe(Object(u.a)((function(e,i){return n(t,e,r,i)})))}),r))}:("number"==typeof n&&(r=n),function(t){return t.lift(new a(e,r))})}(h.a,t)}},function(t,e,n){"use strict";n.d(e,"b",(function(){return s})),n.d(e,"a",(function(){return c}));var r=n(0),i=n(3),o=n(41);function s(t,e){return void 0===e&&(e=0),function(n){return n.lift(new u(t,e))}}var u=function(){function t(t,e){void 0===e&&(e=0),this.scheduler=t,this.delay=e}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.scheduler,this.delay))},t}(),c=function(t){function e(e,n,r){void 0===r&&(r=0);var i=t.call(this,e)||this;return i.scheduler=n,i.delay=r,i}return Object(r.f)(e,t),e.dispatch=function(t){var e=t.notification,n=t.destination;e.observe(n),this.unsubscribe()},e.prototype.scheduleMessage=function(t){this.destination.add(this.scheduler.schedule(e.dispatch,this.delay,new a(t,this.destination)))},e.prototype._next=function(t){this.scheduleMessage(o.a.createNext(t))},e.prototype._error=function(t){this.scheduleMessage(o.a.createError(t)),this.unsubscribe()},e.prototype._complete=function(){this.scheduleMessage(o.a.createComplete()),this.unsubscribe()},e}(i.a),a=function(t,e){this.notification=t,this.destination=e}},,function(t,e,n){ +/*! + * clipboard.js v2.0.6 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */ +var r;r=function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=6)}([function(t,e){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var r=window.getSelection(),i=document.createRange();i.selectNodeContents(t),r.removeAllRanges(),r.addRange(i),e=r.toString()}return e}},function(t,e){function n(){}n.prototype={on:function(t,e,n){var r=this.e||(this.e={});return(r[t]||(r[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var r=this;function i(){r.off(t,i),e.apply(n,arguments)}return i._=e,this.on(t,i,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),r=0,i=n.length;r0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=i()(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=i()(this.target),this.copyText()}},{key:"copyText",value:function(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),document.activeElement.blur(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":o(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),t}(),c=n(1),a=n.n(c),f=n(2),h=n.n(f),l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},p=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===l(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=h()(t,"click",(function(t){return e.onClick(t)}))}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new u({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return b("action",t)}},{key:"defaultTarget",value:function(t){var e=b("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return b("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach((function(t){n=n&&!!document.queryCommandSupported(t)})),n}}]),e}(a.a);function b(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}e.default=d}]).default},t.exports=r()},function(t,e,n){"use strict";n.d(e,"a",(function(){return f}));var r=n(0),i=n(25),o=n(24),s=n(11),u=n(10),c=n(35),a={};function f(){for(var t=[],e=0;e0},t.prototype.connect_=function(){r&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),u?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},t.prototype.disconnect_=function(){r&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},t.prototype.onTransitionEnd_=function(t){var e=t.propertyName,n=void 0===e?"":e;s.some((function(t){return!!~n.indexOf(t)}))&&this.refresh()},t.getInstance=function(){return this.instance_||(this.instance_=new t),this.instance_},t.instance_=null,t}(),a=function(t,e){for(var n=0,r=Object.keys(e);n0},t}(),g="undefined"!=typeof WeakMap?new WeakMap:new n,O=function t(e){if(!(this instanceof t))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=c.getInstance(),r=new _(e,n,this);g.set(this,r)};["observe","unobserve","disconnect"].forEach((function(t){O.prototype[t]=function(){var e;return(e=g.get(this))[t].apply(e,arguments)}}));var x=void 0!==i.ResizeObserver?i.ResizeObserver:O;e.a=x}).call(this,n(60))},function(t,e,n){"use strict"; +/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var r=/["'&<>]/;t.exports=function(t){var e,n=""+t,i=r.exec(n);if(!i)return n;var o="",s=0,u=0;for(s=i.index;s0?t.prototype.schedule.call(this,e,n):(this.delay=n,this.state=e,this.scheduler.flush(this),this)},e.prototype.execute=function(e,n){return n>0||this.closed?t.prototype.execute.call(this,e,n):this._execute(e,n)},e.prototype.requestAsyncId=function(e,n,r){return void 0===r&&(r=0),null!==r&&r>0||null===r&&this.delay>0?t.prototype.requestAsyncId.call(this,e,n,r):e.flush(this)},e}(n(38).a),s=new(function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(r.f)(e,t),e}(n(37).a))(o),u=n(8),c=n(56),a=n(19),f=n(48),h=function(t){function e(e,n,r){void 0===e&&(e=Number.POSITIVE_INFINITY),void 0===n&&(n=Number.POSITIVE_INFINITY);var i=t.call(this)||this;return i.scheduler=r,i._events=[],i._infiniteTimeWindow=!1,i._bufferSize=e<1?1:e,i._windowTime=n<1?1:n,n===Number.POSITIVE_INFINITY?(i._infiniteTimeWindow=!0,i.next=i.nextInfiniteTimeWindow):i.next=i.nextTimeWindow,i}return Object(r.f)(e,t),e.prototype.nextInfiniteTimeWindow=function(e){var n=this._events;n.push(e),n.length>this._bufferSize&&n.shift(),t.prototype.next.call(this,e)},e.prototype.nextTimeWindow=function(e){this._events.push(new l(this._getNow(),e)),this._trimBufferThenGetEvents(),t.prototype.next.call(this,e)},e.prototype._subscribe=function(t){var e,n=this._infiniteTimeWindow,r=n?this._events:this._trimBufferThenGetEvents(),i=this.scheduler,o=r.length;if(this.closed)throw new a.a;if(this.isStopped||this.hasError?e=u.a.EMPTY:(this.observers.push(t),e=new f.a(this,t)),i&&t.add(t=new c.a(t,i)),n)for(var s=0;se&&(o=Math.max(o,i-e)),o>0&&r.splice(0,o),r},e}(i.a),l=function(t,e){this.time=t,this.value=e}},function(t,e,n){"use strict";var r=n(21);function i(t,e){return Object.prototype.hasOwnProperty.call(e,t)}var o=Object.prototype.toString,s=function(){return"[object Arguments]"===o.call(arguments)?function(t){return"[object Arguments]"===o.call(t)}:function(t){return i("callee",t)}}(),u=!{toString:null}.propertyIsEnumerable("toString"),c=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],a=function(){return arguments.propertyIsEnumerable("length")}(),f=function(t,e){for(var n=0;n=0;)i(e=c[n],t)&&!f(r,e)&&(r[r.length]=e),n-=1;return r})):Object(r.a)((function(t){return Object(t)!==t?[]:Object.keys(t)}));e.a=h},function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var r=n(0),i=n(3),o=n(16),s=n(15);function u(t,e,n){return function(r){return r.lift(new c(t,e,n))}}var c=function(){function t(t,e,n){this.nextOrObserver=t,this.error=e,this.complete=n}return t.prototype.call=function(t,e){return e.subscribe(new a(t,this.nextOrObserver,this.error,this.complete))},t}(),a=function(t){function e(e,n,r,i){var u=t.call(this,e)||this;return u._tapNext=o.a,u._tapError=o.a,u._tapComplete=o.a,u._tapError=r||o.a,u._tapComplete=i||o.a,Object(s.a)(n)?(u._context=u,u._tapNext=n):n&&(u._context=n,u._tapNext=n.next||o.a,u._tapError=n.error||o.a,u._tapComplete=n.complete||o.a),u}return Object(r.f)(e,t),e.prototype._next=function(t){try{this._tapNext.call(this._context,t)}catch(t){return void this.destination.error(t)}this.destination.next(t)},e.prototype._error=function(t){try{this._tapError.call(this._context,t)}catch(t){return void this.destination.error(t)}this.destination.error(t)},e.prototype._complete=function(){try{this._tapComplete.call(this._context)}catch(t){return void this.destination.error(t)}return this.destination.complete()},e}(i.a)},function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var r=n(0),i=n(3);function o(t,e){var n=!1;return arguments.length>=2&&(n=!0),function(r){return r.lift(new s(t,e,n))}}var s=function(){function t(t,e,n){void 0===n&&(n=!1),this.accumulator=t,this.seed=e,this.hasSeed=n}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.accumulator,this.seed,this.hasSeed))},t}(),u=function(t){function e(e,n,r,i){var o=t.call(this,e)||this;return o.accumulator=n,o._state=r,o._hasState=i,o.index=0,o}return Object(r.f)(e,t),e.prototype._next=function(t){var e=this.destination;if(this._hasState){var n=this.index++,r=void 0;try{r=this.accumulator(this._state,t,n)}catch(t){return void e.error(t)}this._state=r,e.next(r)}else this._state=t,this._hasState=!0,e.next(t)},e}(i.a)},function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var r=n(0),i=n(3),o=n(8);function s(t){return function(e){return e.lift(new u(t))}}var u=function(){function t(t){this.callback=t}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.callback))},t}(),c=function(t){function e(e,n){var r=t.call(this,e)||this;return r.add(new o.a(n)),r}return Object(r.f)(e,t),e}(i.a)},function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var r=n(0),i=function(t){function e(e,n){var r=t.call(this,e,n)||this;return r.scheduler=e,r.work=n,r}return Object(r.f)(e,t),e.prototype.requestAsyncId=function(e,n,r){return void 0===r&&(r=0),null!==r&&r>0?t.prototype.requestAsyncId.call(this,e,n,r):(e.actions.push(this),e.scheduled||(e.scheduled=requestAnimationFrame((function(){return e.flush(void 0)}))))},e.prototype.recycleAsyncId=function(e,n,r){if(void 0===r&&(r=0),null!==r&&r>0||null===r&&this.delay>0)return t.prototype.recycleAsyncId.call(this,e,n,r);0===e.actions.length&&(cancelAnimationFrame(n),e.scheduled=void 0)},e}(n(38).a),o=new(function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(r.f)(e,t),e.prototype.flush=function(t){this.active=!0,this.scheduled=void 0;var e,n=this.actions,r=-1,i=n.length;t=t||n.shift();do{if(e=t.execute(t.state,t.delay))break}while(++r0){var s=o.indexOf(n);-1!==s&&o.splice(s,1)}},e.prototype.notifyComplete=function(){},e.prototype._next=function(t){if(0===this.toRespond.length){var e=Object(r.j)([t],this.values);this.project?this._tryProject(e):this.destination.next(e)}},e.prototype._tryProject=function(t){var e;try{e=this.project.apply(this,t)}catch(t){return void this.destination.error(t)}this.destination.next(e)},e}(i.a)},function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var r=n(0),i=n(3);function o(t,e){return void 0===e&&(e=null),function(n){return n.lift(new s(t,e))}}var s=function(){function t(t,e){this.bufferSize=t,this.startBufferEvery=e,this.subscriberClass=e&&t!==e?c:u}return t.prototype.call=function(t,e){return e.subscribe(new this.subscriberClass(t,this.bufferSize,this.startBufferEvery))},t}(),u=function(t){function e(e,n){var r=t.call(this,e)||this;return r.bufferSize=n,r.buffer=[],r}return Object(r.f)(e,t),e.prototype._next=function(t){var e=this.buffer;e.push(t),e.length==this.bufferSize&&(this.destination.next(e),this.buffer=[])},e.prototype._complete=function(){var e=this.buffer;e.length>0&&this.destination.next(e),t.prototype._complete.call(this)},e}(i.a),c=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.bufferSize=n,i.startBufferEvery=r,i.buffers=[],i.count=0,i}return Object(r.f)(e,t),e.prototype._next=function(t){var e=this.bufferSize,n=this.startBufferEvery,r=this.buffers,i=this.count;this.count++,i%n==0&&r.push([]);for(var o=r.length;o--;){var s=r[o];s.push(t),s.length===e&&(r.splice(o,1),this.destination.next(s))}},e.prototype._complete=function(){for(var e=this.buffers,n=this.destination;e.length>0;){var r=e.shift();r.length>0&&n.next(r)}t.prototype._complete.call(this)},e}(i.a)},function(t,e,n){"use strict";n.d(e,"a",(function(){return c}));var r=n(39),i=n(55);function o(){return Object(i.a)(1)}function s(){for(var t=[],e=0;e1?r.next(Array.prototype.slice.call(arguments)):r.next(t)}),r,n)}))}},function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var r=n(0),i=n(3);function o(t){return function(e){return e.lift(new s(t))}}var s=function(){function t(t){this.value=t}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.value))},t}(),u=function(t){function e(e,n){var r=t.call(this,e)||this;return r.value=n,r}return Object(r.f)(e,t),e.prototype._next=function(t){this.destination.next(this.value)},e}(i.a)},function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var r=n(6),i=n(25),o=n(55),s=n(35);function u(){for(var t=[],e=0;e1&&"number"==typeof t[t.length-1]&&(n=t.pop())):"number"==typeof c&&(n=t.pop()),!u&&1===t.length&&t[0]instanceof r.a?t[0]:Object(o.a)(n)(Object(s.a)(t,u))}},function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var r=n(6),i=n(24),o=n(15),s=n(9);function u(t,e,n){return n?u(t,e).pipe(Object(s.a)((function(t){return Object(i.a)(t)?n.apply(void 0,t):n(t)}))):new r.a((function(n){var r,i=function(){for(var t=[],e=0;ethis.total&&this.destination.next(t)},e}(i.a)},function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var r=n(0),i=n(11),o=n(28),s=n(10);function u(t){return function(e){var n=new c(t),r=e.lift(n);return n.caught=r}}var c=function(){function t(t){this.selector=t}return t.prototype.call=function(t,e){return e.subscribe(new a(t,this.selector,this.caught))},t}(),a=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.selector=n,i.caught=r,i}return Object(r.f)(e,t),e.prototype.error=function(e){if(!this.isStopped){var n=void 0;try{n=this.selector(e,this.caught)}catch(e){return void t.prototype.error.call(this,e)}this._unsubscribeAndRecycle();var r=new o.a(this,void 0,void 0);this.add(r);var i=Object(s.a)(this,n,void 0,void 0,r);i!==r&&this.add(i)}},e}(i.a)},function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var r=n(0),i=n(3),o=n(53);function s(t,e){return void 0===e&&(e=o.a),function(n){return n.lift(new u(t,e))}}var u=function(){function t(t,e){this.dueTime=t,this.scheduler=e}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.dueTime,this.scheduler))},t}(),c=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.dueTime=n,i.scheduler=r,i.debouncedSubscription=null,i.lastValue=null,i.hasValue=!1,i}return Object(r.f)(e,t),e.prototype._next=function(t){this.clearDebounce(),this.lastValue=t,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(a,this.dueTime,this))},e.prototype._complete=function(){this.debouncedNext(),this.destination.complete()},e.prototype.debouncedNext=function(){if(this.clearDebounce(),this.hasValue){var t=this.lastValue;this.lastValue=null,this.hasValue=!1,this.destination.next(t)}},e.prototype.clearDebounce=function(){var t=this.debouncedSubscription;null!==t&&(this.remove(t),t.unsubscribe(),this.debouncedSubscription=null)},e}(i.a);function a(t){t.debouncedNext()}},function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var r=n(76),i=n(18);function o(t,e,n){return void 0===e&&(e=i.a),void 0===n&&(n=i.a),Object(r.a)((function(){return t()?e:n}))}},function(t,e,n){"use strict";var r=n(21),i=n(78),o=Object(r.a)((function(t){for(var e=Object(i.a)(t),n=e.length,r=[],o=0;o1)this.connection=null;else{var n=this.connection,r=t._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null},e}(s.a),l=function(t){function e(e,n){var r=t.call(this)||this;return r.source=e,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return Object(r.f)(e,t),e.prototype._subscribe=function(t){return this.getSubject().subscribe(t)},e.prototype.getSubject=function(){var t=this._subject;return t&&!t.isStopped||(this._subject=this.subjectFactory()),this._subject},e.prototype.connect=function(){var t=this._connection;return t||(this._isComplete=!1,(t=this._connection=new u.a).add(this.source.subscribe(new d(this.getSubject(),this))),t.closed&&(this._connection=null,t=u.a.EMPTY)),t},e.prototype.refCount=function(){return c()(this)},e}(o.a),p={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:(a=l.prototype)._subscribe},_isComplete:{value:a._isComplete,writable:!0},getSubject:{value:a.getSubject},connect:{value:a.connect},refCount:{value:a.refCount}},d=function(t){function e(e,n){var r=t.call(this,e)||this;return r.connectable=n,r}return Object(r.f)(e,t),e.prototype._error=function(e){this._unsubscribe(),t.prototype._error.call(this,e)},e.prototype._complete=function(){this.connectable._isComplete=!0,this._unsubscribe(),t.prototype._complete.call(this)},e.prototype._unsubscribe=function(){var t=this.connectable;if(t){this.connectable=null;var e=t._connection;t._refCount=0,t._subject=null,t._connection=null,e&&e.unsubscribe()}},e}(i.b),b=(function(){function t(t){this.connectable=t}t.prototype.call=function(t,e){var n=this.connectable;n._refCount++;var r=new b(t,n),i=e.subscribe(r);return r.closed||(r.connection=n.connect()),i}}(),function(t){function e(e,n){var r=t.call(this,e)||this;return r.connectable=n,r}return Object(r.f)(e,t),e.prototype._unsubscribe=function(){var t=this.connectable;if(t){this.connectable=null;var e=t._refCount;if(e<=0)this.connection=null;else if(t._refCount=e-1,e>1)this.connection=null;else{var n=this.connection,r=t._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null},e}(s.a));var v=function(){function t(t,e){this.subjectFactory=t,this.selector=e}return t.prototype.call=function(t,e){var n=this.selector,r=this.subjectFactory(),i=n(r).subscribe(t);return i.add(e.subscribe(r)),i},t}();function y(){return new i.a}function m(){return function(t){return c()((e=y,function(t){var r;if(r="function"==typeof e?e:function(){return e},"function"==typeof n)return t.lift(new v(r,n));var i=Object.create(t,p);return i.source=t,i.subjectFactory=r,i})(t));var e,n}}},function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var r=n(0),i=n(3),o=function(){function t(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}return t.prototype=Object.create(Error.prototype),t}(),s=n(18);function u(t){return function(e){return 0===t?s.a:e.lift(new c(t))}}var c=function(){function t(t){if(this.total=t,this.total<0)throw new o}return t.prototype.call=function(t,e){return e.subscribe(new a(t,this.total))},t}(),a=function(t){function e(e,n){var r=t.call(this,e)||this;return r.total=n,r.count=0,r}return Object(r.f)(e,t),e.prototype._next=function(t){var e=this.total,n=++this.count;n<=e&&(this.destination.next(t),n===e&&(this.destination.complete(),this.unsubscribe()))},e}(i.a)},function(t,e,n){"use strict";var r=n(21);function i(t){return t}var o=Object(r.a)(i);e.a=o},function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var r=n(0),i=n(53);var o=n(3),s=n(41);function u(t,e){void 0===e&&(e=i.a);var n,r=(n=t)instanceof Date&&!isNaN(+n)?+t-e.now():Math.abs(t);return function(t){return t.lift(new c(r,e))}}var c=function(){function t(t,e){this.delay=t,this.scheduler=e}return t.prototype.call=function(t,e){return e.subscribe(new a(t,this.delay,this.scheduler))},t}(),a=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.delay=n,i.scheduler=r,i.queue=[],i.active=!1,i.errored=!1,i}return Object(r.f)(e,t),e.dispatch=function(t){for(var e=t.source,n=e.queue,r=t.scheduler,i=t.destination;n.length>0&&n[0].time-r.now()<=0;)n.shift().notification.observe(i);if(n.length>0){var o=Math.max(0,n[0].time-r.now());this.schedule(t,o)}else e.isStopped?(e.destination.complete(),e.active=!1):(this.unsubscribe(),e.active=!1)},e.prototype._schedule=function(t){this.active=!0,this.destination.add(t.schedule(e.dispatch,this.delay,{source:this,destination:this.destination,scheduler:t}))},e.prototype.scheduleNotification=function(t){if(!0!==this.errored){var e=this.scheduler,n=new f(e.now()+this.delay,t);this.queue.push(n),!1===this.active&&this._schedule(e)}},e.prototype._next=function(t){this.scheduleNotification(s.a.createNext(t))},e.prototype._error=function(t){this.errored=!0,this.queue=[],this.destination.error(t),this.unsubscribe()},e.prototype._complete=function(){0===this.queue.length&&this.destination.complete(),this.unsubscribe()},e}(o.a),f=function(t,e){this.time=t,this.notification=e}},function(t,e,n){"use strict";n.d(e,"a",(function(){return g}));var r=n(0),i=n(13),o=n(6),s=n(3),u=n(9);function c(t,e){return new b({method:"GET",url:t,headers:e})}function a(t,e,n){return new b({method:"POST",url:t,body:e,headers:n})}function f(t,e){return new b({method:"DELETE",url:t,headers:e})}function h(t,e,n){return new b({method:"PUT",url:t,body:e,headers:n})}function l(t,e,n){return new b({method:"PATCH",url:t,body:e,headers:n})}var p=Object(u.a)((function(t,e){return t.response}));function d(t,e){return p(new b({method:"GET",url:t,responseType:"json",headers:e}))}var b=function(t){function e(e){var n=t.call(this)||this,r={async:!0,createXHR:function(){return this.crossDomain?function(){if(i.a.XMLHttpRequest)return new i.a.XMLHttpRequest;if(i.a.XDomainRequest)return new i.a.XDomainRequest;throw new Error("CORS is not supported by your browser")}():function(){if(i.a.XMLHttpRequest)return new i.a.XMLHttpRequest;var t=void 0;try{for(var e=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],n=0;n<3;n++)try{if(t=e[n],new i.a.ActiveXObject(t))break}catch(t){}return new i.a.ActiveXObject(t)}catch(t){throw new Error("XMLHttpRequest is not supported by your browser")}}()},crossDomain:!0,withCredentials:!1,headers:{},method:"GET",responseType:"json",timeout:0};if("string"==typeof e)r.url=e;else for(var o in e)e.hasOwnProperty(o)&&(r[o]=e[o]);return n.request=r,n}var n;return Object(r.f)(e,t),e.prototype._subscribe=function(t){return new v(t,this.request)},e.create=((n=function(t){return new e(t)}).get=c,n.post=a,n.delete=f,n.put=h,n.patch=l,n.getJSON=d,n),e}(o.a),v=function(t){function e(e,n){var r=t.call(this,e)||this;r.request=n,r.done=!1;var o=n.headers=n.headers||{};return n.crossDomain||r.getHeader(o,"X-Requested-With")||(o["X-Requested-With"]="XMLHttpRequest"),r.getHeader(o,"Content-Type")||i.a.FormData&&n.body instanceof i.a.FormData||void 0===n.body||(o["Content-Type"]="application/x-www-form-urlencoded; charset=UTF-8"),n.body=r.serializeBody(n.body,r.getHeader(n.headers,"Content-Type")),r.send(),r}return Object(r.f)(e,t),e.prototype.next=function(t){this.done=!0;var e,n=this.xhr,r=this.request,i=this.destination;try{e=new y(t,n,r)}catch(t){return i.error(t)}i.next(e)},e.prototype.send=function(){var t=this.request,e=this.request,n=e.user,r=e.method,i=e.url,o=e.async,s=e.password,u=e.headers,c=e.body;try{var a=this.xhr=t.createXHR();this.setupEvents(a,t),n?a.open(r,i,o,n,s):a.open(r,i,o),o&&(a.timeout=t.timeout,a.responseType=t.responseType),"withCredentials"in a&&(a.withCredentials=!!t.withCredentials),this.setHeaders(a,u),c?a.send(c):a.send()}catch(t){this.error(t)}},e.prototype.serializeBody=function(t,e){if(!t||"string"==typeof t)return t;if(i.a.FormData&&t instanceof i.a.FormData)return t;if(e){var n=e.indexOf(";");-1!==n&&(e=e.substring(0,n))}switch(e){case"application/x-www-form-urlencoded":return Object.keys(t).map((function(e){return encodeURIComponent(e)+"="+encodeURIComponent(t[e])})).join("&");case"application/json":return JSON.stringify(t);default:return t}},e.prototype.setHeaders=function(t,e){for(var n in e)e.hasOwnProperty(n)&&t.setRequestHeader(n,e[n])},e.prototype.getHeader=function(t,e){for(var n in t)if(n.toLowerCase()===e.toLowerCase())return t[n]},e.prototype.setupEvents=function(t,e){var n=e.progressSubscriber;function r(t){var e,n=r,i=n.subscriber,o=n.progressSubscriber,s=n.request;o&&o.error(t);try{e=new _(this,s)}catch(t){e=t}i.error(e)}if(t.ontimeout=r,r.request=e,r.subscriber=this,r.progressSubscriber=n,t.upload&&"withCredentials"in t){var o,s;if(n)o=function(t){o.progressSubscriber.next(t)},i.a.XDomainRequest?t.onprogress=o:t.upload.onprogress=o,o.progressSubscriber=n;s=function(t){var e,n=s,r=n.progressSubscriber,i=n.subscriber,o=n.request;r&&r.error(t);try{e=new m("ajax error",this,o)}catch(t){e=t}i.error(e)},t.onerror=s,s.request=e,s.subscriber=this,s.progressSubscriber=n}function u(t){}function c(t){var e=c,n=e.subscriber,r=e.progressSubscriber,i=e.request;if(4===this.readyState){var o=1223===this.status?204:this.status,s="text"===this.responseType?this.response||this.responseText:this.response;if(0===o&&(o=s?200:0),o<400)r&&r.complete(),n.next(t),n.complete();else{r&&r.error(t);var u=void 0;try{u=new m("ajax error "+o,this,i)}catch(t){u=t}n.error(u)}}}t.onreadystatechange=u,u.subscriber=this,u.progressSubscriber=n,u.request=e,t.onload=c,c.subscriber=this,c.progressSubscriber=n,c.request=e},e.prototype.unsubscribe=function(){var e=this.done,n=this.xhr;!e&&n&&4!==n.readyState&&"function"==typeof n.abort&&n.abort(),t.prototype.unsubscribe.call(this)},e}(s.a),y=function(t,e,n){this.originalEvent=t,this.xhr=e,this.request=n,this.status=e.status,this.responseType=e.responseType||n.responseType,this.response=w(this.responseType,e)},m=function(){function t(t,e,n){return Error.call(this),this.message=t,this.name="AjaxError",this.xhr=e,this.request=n,this.status=e.status,this.responseType=e.responseType||n.responseType,this.response=w(this.responseType,e),this}return t.prototype=Object.create(Error.prototype),t}();function w(t,e){switch(t){case"json":return function(t){return"response"in t?t.responseType?t.response:JSON.parse(t.response||t.responseText||"null"):JSON.parse(t.responseText||"null")}(e);case"xml":return e.responseXML;case"text":default:return"response"in e?e.response:e.responseText}}var _=function(){function t(t,e){return m.call(this,"ajax timeout",t,e),this.name="AjaxTimeoutError",this}return t.prototype=Object.create(m.prototype),t}(),g=b.create}]]); +//# sourceMappingURL=vendor.8caa27b7.min.js.map \ No newline at end of file diff --git a/doc/theme/material/assets/javascripts/vendor.8caa27b7.min.js.map b/doc/theme/material/assets/javascripts/vendor.8caa27b7.min.js.map new file mode 100644 index 00000000..c3816018 --- /dev/null +++ b/doc/theme/material/assets/javascripts/vendor.8caa27b7.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./node_modules/rxjs/dist/esm5/internal/Subscriber.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/deferred.js","webpack:///./node_modules/rxjs/dist/esm5/internal/asyncIteratorFrom.js","webpack:///./node_modules/rxjs/dist/esm5/internal/Observable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/toSubscriber.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/canReportError.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js","webpack:///./node_modules/rxjs/dist/esm5/internal/Subscription.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/map.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js","webpack:///./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js","webpack:///./node_modules/rxjs/dist/esm5/internal/config.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/root.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isFunction.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/noop.js","webpack:///./node_modules/rxjs/dist/esm5/internal/symbol/observable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/empty.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js","webpack:///./node_modules/ramda/es/internal/_isPlaceholder.js","webpack:///./node_modules/ramda/es/internal/_curry1.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/hostReportError.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isArray.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js","webpack:///./node_modules/rxjs/dist/esm5/internal/Subject.js","webpack:///./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js","webpack:///./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js","webpack:///./node_modules/rxjs/dist/esm5/internal/symbol/rxSubscriber.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/fromArray.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isIterable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/from.js","webpack:///./node_modules/rxjs/dist/esm5/internal/Scheduler.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/Action.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/of.js","webpack:///./node_modules/rxjs/dist/esm5/internal/Observer.js","webpack:///./node_modules/rxjs/dist/esm5/internal/Notification.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/throwError.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/pipe.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isObject.js","webpack:///./node_modules/rxjs/dist/esm5/internal/SubjectSubscription.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/identity.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToArray.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isPromise.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/async.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToAsyncIterable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeTo.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToObservable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToPromise.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToIterable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/observeOn.js","webpack:///./node_modules/clipboard/dist/clipboard.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack:///./node_modules/escape-html/index.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/defer.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/QueueAction.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/queue.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/QueueScheduler.js","webpack:///./node_modules/rxjs/dist/esm5/internal/ReplaySubject.js","webpack:///./node_modules/ramda/es/internal/_has.js","webpack:///./node_modules/ramda/es/internal/_isArguments.js","webpack:///./node_modules/ramda/es/keys.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/tap.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/scan.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/finalize.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameAction.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/animationFrame.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameScheduler.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/shareReplay.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilKeyChanged.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/bufferCount.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/concatAll.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/concat.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/startWith.js","webpack:///./node_modules/ramda/es/reverse.js","webpack:///./node_modules/ramda/es/internal/_isString.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mapTo.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/merge.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/fromEventPattern.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/filter.js","webpack:///./node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/pluck.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/throttle.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/switchMapTo.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/sample.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/never.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/skip.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/catchError.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/iif.js","webpack:///./node_modules/ramda/es/values.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/refCount.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/ConnectableObservable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/multicast.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/share.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/take.js","webpack:///./node_modules/ramda/es/internal/_identity.js","webpack:///./node_modules/ramda/es/identity.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/delay.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isDate.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/dom/AjaxObservable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/dom/ajax.js"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","TypeError","pop","push","__values","o","m","__read","r","ar","error","__spread","concat","__spreadArrays","il","k","a","j","jl","__await","__asyncGenerator","asyncIterator","q","resume","fulfill","settle","shift","__asyncValues","Subscriber","_super","destinationOrNext","complete","_this","syncErrorValue","syncErrorThrown","syncErrorThrowable","isStopped","destination","add","SafeSubscriber","subscriber","_next","err","_error","_complete","unsubscribe","closed","_unsubscribeAndRecycle","_parentOrParents","_parentSubscriber","observerOrNext","context","bind","_context","useDeprecatedSynchronousErrorHandling","__tryOrSetError","__tryOrUnsub","wrappedComplete","fn","parent","Error","_unsubscribe","Deferred","promise","asyncIteratorFrom","source","deferreds","values","hasError","completed","subs","_a","subscribe","undefined","coroutine","Observable","_isScalar","_subscribe","lift","operator","observable","sink","nextOrObserver","rxSubscriber","toSubscriber","config","_trySubscribe","observer","closed_1","canReportError","console","warn","forEach","promiseCtor","getPromiseCtor","subscription","pipe","operations","_i","toPromise","x","UnsubscriptionError","UnsubscriptionErrorImpl","errors","message","map","toString","join","name","Subscription","_subscriptions","empty","remove","index","isFunction","flattenUnsubscriptionErrors","isArray","len","sub","isObject","teardown","EMPTY","tmp","indexOf","subscriptions","subscriptionIndex","splice","reduce","errs","project","MapOperator","MapSubscriber","count","subscribeToResult","outerSubscriber","outerValue","outerIndex","innerSubscriber","OuterSubscriber","notifyNext","innerValue","innerIndex","innerSub","notifyError","notifyComplete","_enable_super_gross_mode_that_will_cause_bad_things","stack","log","__window","window","__self","self","WorkerGlobalScope","_root","global","noop","ObjectUnsubscribedError","ObjectUnsubscribedErrorImpl","_isPlaceholder","_curry1","f1","hostReportError","setTimeout","isScheduler","schedule","SubjectSubscriber","Subject","observers","thrownError","subject","AnonymousSubject","copy","slice","asObservable","InnerSubscriber","Math","random","switchMap","resultSelector","ii","SwitchMapOperator","SwitchMapSubscriber","_innerSub","innerSubscription","scheduleArray","input","scheduler","fromArray","scheduled","isInteropObservable","scheduleObservable","isPromise","schedulePromise","isArrayLike","isIterable","return","scheduleIterable","scheduleAsyncIterable","from","subscribeTo","Scheduler","SchedulerAction","now","work","delay","state","Date","AsyncScheduler","delegate","actions","active","flush","action","execute","AsyncAction","pending","id","recycleAsyncId","requestAsyncId","setInterval","clearInterval","_execute","errored","errorValue","Action","of","args","NotificationKind","dispatch","Notification","kind","hasValue","observe","do","accept","toObservable","createNext","undefinedValueNotification","createError","createComplete","completeNotification","fns","pipeFromArray","prev","distinctUntilChanged","compare","keySelector","DistinctUntilChangedOperator","DistinctUntilChangedSubscriber","hasKey","key","SubjectSubscription","subscriberIndex","identity","subscribeToArray","array","async","subscribeToAsyncIterable","asyncIterable","asyncIterable_1","asyncIterable_1_1","e_1","e_1_1","_b","process","catch","obj","obs","iterable","item","MergeMapOperator","concurrent","Number","POSITIVE_INFINITY","MergeMapSubscriber","hasCompleted","buffer","_tryNext","ish","mergeAll","mergeMap","observeOn","ObserveOnOperator","ObserveOnSubscriber","arg","notification","scheduleMessage","ObserveOnMessage","factory","modules","installedModules","__webpack_require__","moduleId","exports","module","l","c","getter","defineProperty","enumerable","get","toStringTag","mode","__esModule","ns","object","property","element","selectedText","nodeName","focus","isReadOnly","hasAttribute","setAttribute","select","setSelectionRange","removeAttribute","selection","getSelection","range","document","createRange","selectNodeContents","removeAllRanges","addRange","E","on","callback","ctx","once","listener","off","emit","data","evtArr","evts","liveEvents","TinyEmitter","is","target","type","string","node","addEventListener","destroy","removeEventListener","listenNode","nodeList","listenNodeList","selector","listenSelector","HTMLElement","nodeType","String","closest","_delegate","useCapture","listenerFn","delegateTarget","elements","querySelectorAll","Element","matches","proto","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","parentNode","__webpack_exports__","src_select","select_default","_typeof","_createClass","defineProperties","props","descriptor","configurable","writable","Constructor","protoProps","staticProps","clipboard_action","ClipboardAction","options","instance","_classCallCheck","resolveOptions","initSelection","container","emitter","text","trigger","selectFake","selectTarget","isRTL","documentElement","getAttribute","removeFake","fakeHandlerCallback","fakeHandler","fakeElem","createElement","style","fontSize","border","padding","margin","position","yPosition","pageYOffset","scrollTop","top","appendChild","copyText","removeChild","succeeded","execCommand","handleResult","clearSelection","activeElement","blur","set","_action","_target","tiny_emitter","tiny_emitter_default","listen","listen_default","clipboard_typeof","clipboard_createClass","clipboard_Clipboard","_Emitter","Clipboard","clipboard_classCallCheck","ReferenceError","_possibleConstructorReturn","getPrototypeOf","listenClick","subClass","superClass","_inherits","defaultAction","defaultTarget","defaultText","_this2","onClick","currentTarget","clipboardAction","getAttributeValue","querySelector","support","queryCommandSupported","suffix","attribute","NONE","combineLatest","observables","CombineLatestOperator","CombineLatestSubscriber","toRespond","unused","oldVal","_tryResultSelector","Function","MapShim","Map","getIndex","arr","some","entry","class_1","__entries__","delete","entries","has","clear","isBrowser","global$1","requestAnimationFrame$1","requestAnimationFrame","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","leadingCall","trailingCall","lastCallTime","resolvePending","proxy","timeoutCallback","timeStamp","throttle","addObserver","connect_","removeObserver","disconnect_","updateObservers_","activeObservers","filter","gatherActive","hasActive","broadcastActive","attributes","childList","characterData","subtree","disconnect","propertyName","getInstance","instance_","defineConfigurable","keys","getWindowOf","ownerDocument","defaultView","emptyRect","createRectInit","toFloat","parseFloat","getBordersSize","styles","positions","size","getHTMLElementContentRect","clientWidth","clientHeight","getComputedStyle","paddings","positions_1","getPaddings","horizPad","left","right","vertPad","bottom","width","height","boxSizing","round","isDocumentElement","vertScrollbar","horizScrollbar","abs","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","rect","broadcastRect","ResizeObserverEntry","rectInit","Constr","contentRect","DOMRectReadOnly","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","unobserve","clearActive","observation","WeakMap","ResizeObserver","method","matchHtmlRegExp","escape","str","match","exec","html","lastIndex","charCodeAt","substring","defer","observableFactory","QueueAction","queue","QueueScheduler","ReplaySubject","bufferSize","windowTime","_events","_infiniteTimeWindow","_bufferSize","_windowTime","nextInfiniteTimeWindow","nextTimeWindow","ReplayEvent","_getNow","_trimBufferThenGetEvents","eventsCount","spliceCount","time","max","_has","prop","hasEnumBug","propertyIsEnumerable","nonEnumerableProps","hasArgsEnumBug","contains","list","idx","nIdx","ks","checkArgsLength","tap","DoOperator","TapSubscriber","_tapNext","_tapError","_tapComplete","scan","accumulator","seed","hasSeed","ScanOperator","ScanSubscriber","_state","_hasState","finalize","FinallyOperator","FinallySubscriber","AnimationFrameAction","cancelAnimationFrame","animationFrame","AnimationFrameScheduler","shareReplay","configOrBufferSize","refCount","_c","useRefCount","isComplete","shareReplayOperator","distinctUntilKeyChanged","withLatestFrom","WithLatestFromOperator","WithLatestFromSubscriber","found","_tryProject","bufferCount","startBufferEvery","BufferCountOperator","subscriberClass","BufferSkipCountSubscriber","BufferCountSubscriber","buffers","concatAll","startWith","split","reverse","fromEvent","eventName","setupSubscription","sourceObj","handler","isEventTarget","source_1","isJQueryStyleEventEmitter","source_2","addListener","removeListener","isNodeStyleEventEmitter","source_3","mapTo","MapToOperator","MapToSubscriber","merge","last","fromEventPattern","addHandler","removeHandler","retValue","predicate","FilterOperator","FilterSubscriber","BehaviorSubject","_value","getValue","pluck","properties","currentProp","defaultThrottleConfig","leading","trailing","durationSelector","ThrottleOperator","ThrottleSubscriber","_leading","_trailing","_sendValue","_hasValue","_throttled","send","duration","tryDurationSelector","throttlingDone","switchMapTo","innerObservable","sample","notifier","SampleOperator","sampleSubscriber","SampleSubscriber","emitValue","NEVER","skip","SkipOperator","total","SkipSubscriber","catchError","CatchOperator","caught","CatchSubscriber","err2","debounceTime","dueTime","DebounceTimeOperator","DebounceTimeSubscriber","debouncedSubscription","lastValue","clearDebounce","dispatchNext","debouncedNext","iif","condition","trueResult","falseResult","vals","RefCountOperator","connectableProto","connectable","_refCount","refCounter","connection","connect","RefCountSubscriber","sharedConnection","_connection","ConnectableObservable","subjectFactory","_isComplete","getSubject","_subject","connectableObservableDescriptor","ConnectableSubscriber","MulticastOperator","shareSubjectFactory","share","subjectOrSubjectFactory","ArgumentOutOfRangeError","ArgumentOutOfRangeErrorImpl","take","TakeOperator","TakeSubscriber","_identity","delayFor","isNaN","DelayOperator","DelaySubscriber","delay_1","_schedule","scheduleNotification","DelayMessage","ajaxGet","url","headers","ajaxPost","ajaxDelete","ajaxPut","ajaxPatch","mapResponse","response","ajaxGetJSON","responseType","AjaxObservable","urlOrRequest","request","createXHR","crossDomain","root","XMLHttpRequest","XDomainRequest","getCORSRequest","progId","progIds","ActiveXObject","getXMLHttpRequest","withCredentials","timeout","post","put","patch","getJSON","AjaxSubscriber","getHeader","FormData","serializeBody","xhr","AjaxResponse","user","password","setupEvents","open","setHeaders","contentType","splitIndex","encodeURIComponent","JSON","stringify","setRequestHeader","headerName","toLowerCase","progressSubscriber","xhrTimeout","AjaxTimeoutError","ontimeout","upload","xhrProgress_1","xhrError_1","onprogress","AjaxError","onerror","xhrReadyStateChange","xhrLoad","readyState","status_1","status","responseText","onreadystatechange","onload","abort","originalEvent","parseXhrResponse","AjaxErrorImpl","parse","parseJson","responseXML","AjaxTimeoutErrorImpl","ajax"],"mappings":"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","file":"assets/javascripts/vendor.8caa27b7.min.js","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __extends } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destinationOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this.syncErrorValue = null;\n _this.syncErrorThrown = false;\n _this.syncErrorThrowable = false;\n _this.isStopped = false;\n switch (arguments.length) {\n case 0:\n _this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n _this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n _this.destination = destinationOrNext;\n destinationOrNext.add(_this);\n }\n else {\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext);\n }\n break;\n }\n default:\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);\n break;\n }\n return _this;\n }\n Subscriber.prototype[rxSubscriberSymbol] = function () { return this; };\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _parentOrParents = this._parentOrParents;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this._parentSubscriber = _parentSubscriber;\n var next;\n var context = _this;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n _this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = _this.unsubscribe.bind(_this);\n }\n }\n _this._context = context;\n _this._next = next;\n _this._error = error;\n _this._complete = complete;\n return _this;\n }\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n var useDeprecatedSynchronousErrorHandling = config.useDeprecatedSynchronousErrorHandling;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._complete) {\n var wrappedComplete = function () { return _this._complete.call(_this._context); };\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n }\n };\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n };\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n };\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\n//# sourceMappingURL=Subscriber.js.map","var Deferred = (function () {\n function Deferred() {\n var _this = this;\n this.resolve = null;\n this.reject = null;\n this.promise = new Promise(function (a, b) {\n _this.resolve = a;\n _this.reject = b;\n });\n }\n return Deferred;\n}());\nexport { Deferred };\n//# sourceMappingURL=deferred.js.map","import { __asyncGenerator, __await, __generator } from \"tslib\";\nimport { Deferred } from './util/deferred';\nexport function asyncIteratorFrom(source) {\n return coroutine(source);\n}\nfunction coroutine(source) {\n return __asyncGenerator(this, arguments, function coroutine_1() {\n var deferreds, values, hasError, error, completed, subs, d, result, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n deferreds = [];\n values = [];\n hasError = false;\n error = null;\n completed = false;\n subs = source.subscribe({\n next: function (value) {\n if (deferreds.length > 0) {\n deferreds.shift().resolve({ value: value, done: false });\n }\n else {\n values.push(value);\n }\n },\n error: function (err) {\n hasError = true;\n error = err;\n while (deferreds.length > 0) {\n deferreds.shift().reject(err);\n }\n },\n complete: function () {\n completed = true;\n while (deferreds.length > 0) {\n deferreds.shift().resolve({ value: undefined, done: true });\n }\n },\n });\n _a.label = 1;\n case 1:\n _a.trys.push([1, 16, 17, 18]);\n _a.label = 2;\n case 2:\n if (!true) return [3, 15];\n if (!(values.length > 0)) return [3, 5];\n return [4, __await(values.shift())];\n case 3: return [4, _a.sent()];\n case 4:\n _a.sent();\n return [3, 14];\n case 5:\n if (!completed) return [3, 7];\n return [4, __await(void 0)];\n case 6: return [2, _a.sent()];\n case 7:\n if (!hasError) return [3, 8];\n throw error;\n case 8:\n d = new Deferred();\n deferreds.push(d);\n return [4, __await(d.promise)];\n case 9:\n result = _a.sent();\n if (!result.done) return [3, 11];\n return [4, __await(void 0)];\n case 10: return [2, _a.sent()];\n case 11: return [4, __await(result.value)];\n case 12: return [4, _a.sent()];\n case 13:\n _a.sent();\n _a.label = 14;\n case 14: return [3, 2];\n case 15: return [3, 18];\n case 16:\n err_1 = _a.sent();\n throw err_1;\n case 17:\n subs.unsubscribe();\n return [7];\n case 18: return [2];\n }\n });\n });\n}\n//# sourceMappingURL=asyncIteratorFrom.js.map","import { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { asyncIteratorFrom } from './asyncIteratorFrom';\nvar Observable = (function () {\n function Observable(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var operator = this.operator;\n var sink = toSubscriber(observerOrNext, error, complete);\n if (operator) {\n sink.add(operator.call(sink, this.source));\n }\n else {\n sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError(sink)) {\n sink.error(err);\n }\n else {\n console.warn(err);\n }\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscription;\n subscription = _this.subscribe(function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var source = this.source;\n return source && source.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n if (operations.length === 0) {\n return this;\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n(function () {\n if (Symbol && Symbol.asyncIterator) {\n Observable.prototype[Symbol.asyncIterator] = function () {\n return asyncIteratorFrom(this);\n };\n }\n})();\n//# sourceMappingURL=Observable.js.map","import { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nexport function toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n return new Subscriber(nextOrObserver, error, complete);\n}\n//# sourceMappingURL=toSubscriber.js.map","import { Subscriber } from '../Subscriber';\nexport function canReportError(observer) {\n while (observer) {\n var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped;\n if (closed_1 || isStopped) {\n return false;\n }\n else if (destination && destination instanceof Subscriber) {\n observer = destination;\n }\n else {\n observer = null;\n }\n }\n return true;\n}\n//# sourceMappingURL=canReportError.js.map","var UnsubscriptionErrorImpl = (function () {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ') : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n})();\nexport var UnsubscriptionError = UnsubscriptionErrorImpl;\n//# sourceMappingURL=UnsubscriptionError.js.map","import { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nvar Subscription = (function () {\n function Subscription(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._unsubscribe = unsubscribe;\n }\n }\n Subscription.prototype.unsubscribe = function () {\n var errors;\n if (this.closed) {\n return;\n }\n var _a = this, _parentOrParents = _a._parentOrParents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (var index = 0; index < _parentOrParents.length; ++index) {\n var parent_1 = _parentOrParents[index];\n parent_1.remove(this);\n }\n }\n if (isFunction(_unsubscribe)) {\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (isArray(_subscriptions)) {\n var index = -1;\n var len = _subscriptions.length;\n while (++index < len) {\n var sub = _subscriptions[index];\n if (isObject(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n };\n Subscription.prototype.add = function (teardown) {\n var subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n var tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n var _parentOrParents = subscription._parentOrParents;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n var subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n };\n Subscription.prototype.remove = function (subscription) {\n var subscriptions = this._subscriptions;\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n Subscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n return Subscription;\n}());\nexport { Subscription };\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError) ? err.errors : err); }, []);\n}\n//# sourceMappingURL=Subscription.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nvar MapOperator = (function () {\n function MapOperator(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n MapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n };\n return MapOperator;\n}());\nexport { MapOperator };\nvar MapSubscriber = (function (_super) {\n __extends(MapSubscriber, _super);\n function MapSubscriber(destination, project, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.count = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n MapSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return MapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=map.js.map","import { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeTo } from './subscribeTo';\nimport { Observable } from '../Observable';\nexport function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, innerSubscriber) {\n if (innerSubscriber === void 0) { innerSubscriber = new InnerSubscriber(outerSubscriber, outerValue, outerIndex); }\n if (innerSubscriber.closed) {\n return undefined;\n }\n if (result instanceof Observable) {\n return result.subscribe(innerSubscriber);\n }\n return subscribeTo(result)(innerSubscriber);\n}\n//# sourceMappingURL=subscribeToResult.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from './Subscriber';\nvar OuterSubscriber = (function (_super) {\n __extends(OuterSubscriber, _super);\n function OuterSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n OuterSubscriber.prototype.notifyError = function (error, innerSub) {\n this.destination.error(error);\n };\n OuterSubscriber.prototype.notifyComplete = function (innerSub) {\n this.destination.complete();\n };\n return OuterSubscriber;\n}(Subscriber));\nexport { OuterSubscriber };\n//# sourceMappingURL=OuterSubscriber.js.map","var _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport var config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n var error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n//# sourceMappingURL=config.js.map","var __window = typeof window !== 'undefined' && window;\nvar __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self;\nvar __global = typeof global !== 'undefined' && global;\nvar _root = __window || __global || __self;\n(function () {\n if (!_root) {\n throw new Error('RxJS could not find any global context (window, self, global)');\n }\n})();\nexport { _root as root };\n//# sourceMappingURL=root.js.map","export function isFunction(x) {\n return typeof x === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","export var observable = (function () { return typeof Symbol === 'function' && Symbol.observable || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","import { Observable } from '../Observable';\nexport var EMPTY = new Observable(function (subscriber) { return subscriber.complete(); });\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.js.map","var ObjectUnsubscribedErrorImpl = (function () {\n function ObjectUnsubscribedErrorImpl() {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n }\n ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\n return ObjectUnsubscribedErrorImpl;\n})();\nexport var ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","export function hostReportError(err) {\n setTimeout(function () { throw err; }, 0);\n}\n//# sourceMappingURL=hostReportError.js.map","export var isArray = (function () { return Array.isArray || (function (x) { return x && typeof x.length === 'number'; }); })();\n//# sourceMappingURL=isArray.js.map","export function isScheduler(value) {\n return value && typeof value.schedule === 'function';\n}\n//# sourceMappingURL=isScheduler.js.map","import { __extends } from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nvar SubjectSubscriber = (function (_super) {\n __extends(SubjectSubscriber, _super);\n function SubjectSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n return _this;\n }\n return SubjectSubscriber;\n}(Subscriber));\nexport { SubjectSubscriber };\nvar Subject = (function (_super) {\n __extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.observers = [];\n _this.closed = false;\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype[rxSubscriberSymbol] = function () {\n return new SubjectSubscriber(this);\n };\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype.next = function (value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n };\n Subject.prototype.error = function (err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n };\n Subject.prototype.complete = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n };\n Subject.prototype._trySubscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return _super.prototype._trySubscribe.call(this, subscriber);\n }\n };\n Subject.prototype._subscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = (function (_super) {\n __extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var destination = this.destination;\n if (destination && destination.next) {\n destination.next(value);\n }\n };\n AnonymousSubject.prototype.error = function (err) {\n var destination = this.destination;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n };\n AnonymousSubject.prototype.complete = function () {\n var destination = this.destination;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var source = this.source;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription.EMPTY;\n }\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = getSymbolIterator();\nexport var $$iterator = iterator;\n//# sourceMappingURL=iterator.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from './Subscriber';\nvar InnerSubscriber = (function (_super) {\n __extends(InnerSubscriber, _super);\n function InnerSubscriber(parent, outerValue, outerIndex) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.outerValue = outerValue;\n _this.outerIndex = outerIndex;\n _this.index = 0;\n return _this;\n }\n InnerSubscriber.prototype._next = function (value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n };\n InnerSubscriber.prototype._error = function (error) {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n };\n InnerSubscriber.prototype._complete = function () {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n };\n return InnerSubscriber;\n}(Subscriber));\nexport { InnerSubscriber };\n//# sourceMappingURL=InnerSubscriber.js.map","export var rxSubscriber = (function () {\n return typeof Symbol === 'function'\n ? Symbol('rxSubscriber')\n : '@@rxSubscriber_' + Math.random();\n})();\nexport var $$rxSubscriber = rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map","import { __extends } from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function switchMap(project, resultSelector) {\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(switchMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };\n }\n return function (source) { return source.lift(new SwitchMapOperator(project)); };\n}\nvar SwitchMapOperator = (function () {\n function SwitchMapOperator(project) {\n this.project = project;\n }\n SwitchMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));\n };\n return SwitchMapOperator;\n}());\nvar SwitchMapSubscriber = (function (_super) {\n __extends(SwitchMapSubscriber, _super);\n function SwitchMapSubscriber(destination, project) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.index = 0;\n return _this;\n }\n SwitchMapSubscriber.prototype._next = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (error) {\n this.destination.error(error);\n return;\n }\n this._innerSub(result, value, index);\n };\n SwitchMapSubscriber.prototype._innerSub = function (result, value, index) {\n var innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n var innerSubscriber = new InnerSubscriber(this, value, index);\n var destination = this.destination;\n destination.add(innerSubscriber);\n this.innerSubscription = subscribeToResult(this, result, undefined, undefined, innerSubscriber);\n if (this.innerSubscription !== innerSubscriber) {\n destination.add(this.innerSubscription);\n }\n };\n SwitchMapSubscriber.prototype._complete = function () {\n var innerSubscription = this.innerSubscription;\n if (!innerSubscription || innerSubscription.closed) {\n _super.prototype._complete.call(this);\n }\n this.unsubscribe();\n };\n SwitchMapSubscriber.prototype._unsubscribe = function () {\n this.innerSubscription = null;\n };\n SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var destination = this.destination;\n destination.remove(innerSub);\n this.innerSubscription = null;\n if (this.isStopped) {\n _super.prototype._complete.call(this);\n }\n };\n SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n return SwitchMapSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=switchMap.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function scheduleArray(input, scheduler) {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n var i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleArray.js.map","import { Observable } from '../Observable';\nimport { subscribeToArray } from '../util/subscribeToArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function fromArray(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToArray(input));\n }\n else {\n return scheduleArray(input, scheduler);\n }\n}\n//# sourceMappingURL=fromArray.js.map","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n else if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n else if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n else if (isIterable(input) || typeof input === 'string') {\n return scheduleIterable(input, scheduler);\n }\n else if (Symbol && Symbol.asyncIterator && typeof input[Symbol.asyncIterator] === 'function') {\n return scheduleAsyncIterable(input, scheduler);\n }\n }\n throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n//# sourceMappingURL=scheduled.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nexport function isInteropObservable(input) {\n return input && typeof input[Symbol_observable] === 'function';\n}\n//# sourceMappingURL=isInteropObservable.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function scheduleObservable(input, scheduler) {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n sub.add(scheduler.schedule(function () {\n var observable = input[Symbol_observable]();\n sub.add(observable.subscribe({\n next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); },\n error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); },\n complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); },\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleObservable.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function schedulePromise(input, scheduler) {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n sub.add(scheduler.schedule(function () { return input.then(function (value) {\n sub.add(scheduler.schedule(function () {\n subscriber.next(value);\n sub.add(scheduler.schedule(function () { return subscriber.complete(); }));\n }));\n }, function (err) {\n sub.add(scheduler.schedule(function () { return subscriber.error(err); }));\n }); }));\n return sub;\n });\n}\n//# sourceMappingURL=schedulePromise.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function isIterable(input) {\n return input && typeof input[Symbol_iterator] === 'function';\n}\n//# sourceMappingURL=isIterable.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function scheduleIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n var iterator;\n sub.add(function () {\n if (iterator && typeof iterator.return === 'function') {\n iterator.return();\n }\n });\n sub.add(scheduler.schedule(function () {\n iterator = input[Symbol_iterator]();\n sub.add(scheduler.schedule(function () {\n if (subscriber.closed) {\n return;\n }\n var value;\n var done;\n try {\n var result = iterator.next();\n value = result.value;\n done = result.done;\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n this.schedule();\n }\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleIterable.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function scheduleAsyncIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n sub.add(scheduler.schedule(function () {\n var iterator = input[Symbol.asyncIterator]();\n sub.add(scheduler.schedule(function () {\n var _this = this;\n iterator.next().then(function (result) {\n if (result.done) {\n subscriber.complete();\n }\n else {\n subscriber.next(result.value);\n _this.schedule();\n }\n });\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleAsyncIterable.js.map","import { Observable } from '../Observable';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { scheduled } from '../scheduled/scheduled';\nexport function from(input, scheduler) {\n if (!scheduler) {\n if (input instanceof Observable) {\n return input;\n }\n return new Observable(subscribeTo(input));\n }\n else {\n return scheduled(input, scheduler);\n }\n}\n//# sourceMappingURL=from.js.map","var Scheduler = (function () {\n function Scheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n this.SchedulerAction = SchedulerAction;\n this.now = now;\n }\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n return new this.SchedulerAction(this, work).schedule(state, delay);\n };\n Scheduler.now = function () { return Date.now(); };\n return Scheduler;\n}());\nexport { Scheduler };\n//# sourceMappingURL=Scheduler.js.map","import { __extends } from \"tslib\";\nimport { Scheduler } from '../Scheduler';\nvar AsyncScheduler = (function (_super) {\n __extends(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n var _this = _super.call(this, SchedulerAction, function () {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) {\n return AsyncScheduler.delegate.now();\n }\n else {\n return now();\n }\n }) || this;\n _this.actions = [];\n _this.active = false;\n _this.scheduled = undefined;\n return _this;\n }\n AsyncScheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.schedule(work, delay, state);\n }\n else {\n return _super.prototype.schedule.call(this, work, delay, state);\n }\n };\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this.active) {\n actions.push(action);\n return;\n }\n var error;\n this.active = true;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift());\n this.active = false;\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(Scheduler));\nexport { AsyncScheduler };\n//# sourceMappingURL=AsyncScheduler.js.map","import { __extends } from \"tslib\";\nimport { Action } from './Action';\nvar AsyncAction = (function (_super) {\n __extends(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (this.closed) {\n return this;\n }\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n return setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && this.delay === delay && this.pending === false) {\n return id;\n }\n clearInterval(id);\n return undefined;\n };\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, delay) {\n var errored = false;\n var errorValue = undefined;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = !!e && e || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype._unsubscribe = function () {\n var id = this.id;\n var scheduler = this.scheduler;\n var actions = scheduler.actions;\n var index = actions.indexOf(this);\n this.work = null;\n this.state = null;\n this.pending = false;\n this.scheduler = null;\n if (index !== -1) {\n actions.splice(index, 1);\n }\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n };\n return AsyncAction;\n}(Action));\nexport { AsyncAction };\n//# sourceMappingURL=AsyncAction.js.map","import { __extends } from \"tslib\";\nimport { Subscription } from '../Subscription';\nvar Action = (function (_super) {\n __extends(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n return this;\n };\n return Action;\n}(Subscription));\nexport { Action };\n//# sourceMappingURL=Action.js.map","import { isScheduler } from '../util/isScheduler';\nimport { fromArray } from './fromArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function of() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = args[args.length - 1];\n if (isScheduler(scheduler)) {\n args.pop();\n return scheduleArray(args, scheduler);\n }\n else {\n return fromArray(args);\n }\n}\n//# sourceMappingURL=of.js.map","import { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport var empty = {\n closed: true,\n next: function (value) { },\n error: function (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n },\n complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map","import { EMPTY } from './observable/empty';\nimport { of } from './observable/of';\nimport { throwError } from './observable/throwError';\nexport var NotificationKind;\n(function (NotificationKind) {\n NotificationKind[\"NEXT\"] = \"N\";\n NotificationKind[\"ERROR\"] = \"E\";\n NotificationKind[\"COMPLETE\"] = \"C\";\n})(NotificationKind || (NotificationKind = {}));\nvar Notification = (function () {\n function Notification(kind, value, error) {\n this.kind = kind;\n this.value = value;\n this.error = error;\n this.hasValue = kind === 'N';\n }\n Notification.prototype.observe = function (observer) {\n switch (this.kind) {\n case 'N':\n return observer.next && observer.next(this.value);\n case 'E':\n return observer.error && observer.error(this.error);\n case 'C':\n return observer.complete && observer.complete();\n }\n };\n Notification.prototype.do = function (next, error, complete) {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return next && next(this.value);\n case 'E':\n return error && error(this.error);\n case 'C':\n return complete && complete();\n }\n };\n Notification.prototype.accept = function (nextOrObserver, error, complete) {\n if (nextOrObserver && typeof nextOrObserver.next === 'function') {\n return this.observe(nextOrObserver);\n }\n else {\n return this.do(nextOrObserver, error, complete);\n }\n };\n Notification.prototype.toObservable = function () {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return of(this.value);\n case 'E':\n return throwError(this.error);\n case 'C':\n return EMPTY;\n }\n throw new Error('unexpected notification kind value');\n };\n Notification.createNext = function (value) {\n if (typeof value !== 'undefined') {\n return new Notification('N', value);\n }\n return Notification.undefinedValueNotification;\n };\n Notification.createError = function (err) {\n return new Notification('E', undefined, err);\n };\n Notification.createComplete = function () {\n return Notification.completeNotification;\n };\n Notification.completeNotification = new Notification('C');\n Notification.undefinedValueNotification = new Notification('N', undefined);\n return Notification;\n}());\nexport { Notification };\n//# sourceMappingURL=Notification.js.map","import { Observable } from '../Observable';\nexport function throwError(error, scheduler) {\n if (!scheduler) {\n return new Observable(function (subscriber) { return subscriber.error(error); });\n }\n else {\n return new Observable(function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); });\n }\n}\nfunction dispatch(_a) {\n var error = _a.error, subscriber = _a.subscriber;\n subscriber.error(error);\n}\n//# sourceMappingURL=throwError.js.map","import { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function distinctUntilChanged(compare, keySelector) {\n return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); };\n}\nvar DistinctUntilChangedOperator = (function () {\n function DistinctUntilChangedOperator(compare, keySelector) {\n this.compare = compare;\n this.keySelector = keySelector;\n }\n DistinctUntilChangedOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));\n };\n return DistinctUntilChangedOperator;\n}());\nvar DistinctUntilChangedSubscriber = (function (_super) {\n __extends(DistinctUntilChangedSubscriber, _super);\n function DistinctUntilChangedSubscriber(destination, compare, keySelector) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.hasKey = false;\n if (typeof compare === 'function') {\n _this.compare = compare;\n }\n return _this;\n }\n DistinctUntilChangedSubscriber.prototype.compare = function (x, y) {\n return x === y;\n };\n DistinctUntilChangedSubscriber.prototype._next = function (value) {\n var key;\n try {\n var keySelector = this.keySelector;\n key = keySelector ? keySelector(value) : value;\n }\n catch (err) {\n return this.destination.error(err);\n }\n var result = false;\n if (this.hasKey) {\n try {\n var compare = this.compare;\n result = compare(this.key, key);\n }\n catch (err) {\n return this.destination.error(err);\n }\n }\n else {\n this.hasKey = true;\n }\n if (!result) {\n this.key = key;\n this.destination.next(value);\n }\n };\n return DistinctUntilChangedSubscriber;\n}(Subscriber));\n//# sourceMappingURL=distinctUntilChanged.js.map","export function isObject(x) {\n return x !== null && typeof x === 'object';\n}\n//# sourceMappingURL=isObject.js.map","import { __extends } from \"tslib\";\nimport { Subscription } from './Subscription';\nvar SubjectSubscription = (function (_super) {\n __extends(SubjectSubscription, _super);\n function SubjectSubscription(subject, subscriber) {\n var _this = _super.call(this) || this;\n _this.subject = subject;\n _this.subscriber = subscriber;\n _this.closed = false;\n return _this;\n }\n SubjectSubscription.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.closed = true;\n var subject = this.subject;\n var observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n var subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n };\n return SubjectSubscription;\n}(Subscription));\nexport { SubjectSubscription };\n//# sourceMappingURL=SubjectSubscription.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","export var subscribeToArray = function (array) { return function (subscriber) {\n for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n}; };\n//# sourceMappingURL=subscribeToArray.js.map","export var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map","export function isPromise(value) {\n return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n//# sourceMappingURL=isPromise.js.map","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport var async = new AsyncScheduler(AsyncAction);\n//# sourceMappingURL=async.js.map","import { __asyncValues, __awaiter, __generator } from \"tslib\";\nexport function subscribeToAsyncIterable(asyncIterable) {\n return function (subscriber) {\n process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); });\n };\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_1, _a;\n return __awaiter(this, void 0, void 0, function () {\n var value, e_1_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 11]);\n asyncIterable_1 = __asyncValues(asyncIterable);\n _b.label = 1;\n case 1: return [4, asyncIterable_1.next()];\n case 2:\n if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4];\n value = asyncIterable_1_1.value;\n subscriber.next(value);\n _b.label = 3;\n case 3: return [3, 1];\n case 4: return [3, 11];\n case 5:\n e_1_1 = _b.sent();\n e_1 = { error: e_1_1 };\n return [3, 11];\n case 6:\n _b.trys.push([6, , 9, 10]);\n if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8];\n return [4, _a.call(asyncIterable_1)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [3, 10];\n case 9:\n if (e_1) throw e_1.error;\n return [7];\n case 10: return [7];\n case 11:\n subscriber.complete();\n return [2];\n }\n });\n });\n}\n//# sourceMappingURL=subscribeToAsyncIterable.js.map","import { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { subscribeToAsyncIterable } from './subscribeToAsyncIterable';\nexport var subscribeTo = function (result) {\n if (!!result && typeof result[Symbol_observable] === 'function') {\n return subscribeToObservable(result);\n }\n else if (isArrayLike(result)) {\n return subscribeToArray(result);\n }\n else if (isPromise(result)) {\n return subscribeToPromise(result);\n }\n else if (!!result && typeof result[Symbol_iterator] === 'function') {\n return subscribeToIterable(result);\n }\n else if (Symbol && Symbol.asyncIterator &&\n !!result && typeof result[Symbol.asyncIterator] === 'function') {\n return subscribeToAsyncIterable(result);\n }\n else {\n var value = isObject(result) ? 'an invalid object' : \"'\" + result + \"'\";\n var msg = \"You provided \" + value + \" where a stream was expected.\"\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n//# sourceMappingURL=subscribeTo.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeToObservable = function (obj) { return function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (typeof obs.subscribe !== 'function') {\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n }\n else {\n return obs.subscribe(subscriber);\n }\n}; };\n//# sourceMappingURL=subscribeToObservable.js.map","import { hostReportError } from './hostReportError';\nexport var subscribeToPromise = function (promise) { return function (subscriber) {\n promise.then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, hostReportError);\n return subscriber;\n}; };\n//# sourceMappingURL=subscribeToPromise.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport var subscribeToIterable = function (iterable) { return function (subscriber) {\n var iterator = iterable[Symbol_iterator]();\n do {\n var item = iterator.next();\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n if (typeof iterator.return === 'function') {\n subscriber.add(function () {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n return subscriber;\n}; };\n//# sourceMappingURL=subscribeToIterable.js.map","import { __extends } from \"tslib\";\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function mergeMap(project, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(mergeMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); };\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); };\n}\nvar MergeMapOperator = (function () {\n function MergeMapOperator(project, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n this.project = project;\n this.concurrent = concurrent;\n }\n MergeMapOperator.prototype.call = function (observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n };\n return MergeMapOperator;\n}());\nexport { MergeMapOperator };\nvar MergeMapSubscriber = (function (_super) {\n __extends(MergeMapSubscriber, _super);\n function MergeMapSubscriber(destination, project, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.concurrent = concurrent;\n _this.hasCompleted = false;\n _this.buffer = [];\n _this.active = 0;\n _this.index = 0;\n return _this;\n }\n MergeMapSubscriber.prototype._next = function (value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n }\n else {\n this.buffer.push(value);\n }\n };\n MergeMapSubscriber.prototype._tryNext = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result, value, index);\n };\n MergeMapSubscriber.prototype._innerSub = function (ish, value, index) {\n var innerSubscriber = new InnerSubscriber(this, value, index);\n var destination = this.destination;\n destination.add(innerSubscriber);\n var innerSubscription = subscribeToResult(this, ish, undefined, undefined, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n };\n MergeMapSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n MergeMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var buffer = this.buffer;\n this.remove(innerSub);\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n };\n return MergeMapSubscriber;\n}(OuterSubscriber));\nexport { MergeMapSubscriber };\n//# sourceMappingURL=mergeMap.js.map","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function observeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return function observeOnOperatorFunction(source) {\n return source.lift(new ObserveOnOperator(scheduler, delay));\n };\n}\nvar ObserveOnOperator = (function () {\n function ObserveOnOperator(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n this.scheduler = scheduler;\n this.delay = delay;\n }\n ObserveOnOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n };\n return ObserveOnOperator;\n}());\nexport { ObserveOnOperator };\nvar ObserveOnSubscriber = (function (_super) {\n __extends(ObserveOnSubscriber, _super);\n function ObserveOnSubscriber(destination, scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n var _this = _super.call(this, destination) || this;\n _this.scheduler = scheduler;\n _this.delay = delay;\n return _this;\n }\n ObserveOnSubscriber.dispatch = function (arg) {\n var notification = arg.notification, destination = arg.destination;\n notification.observe(destination);\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype.scheduleMessage = function (notification) {\n var destination = this.destination;\n destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));\n };\n ObserveOnSubscriber.prototype._next = function (value) {\n this.scheduleMessage(Notification.createNext(value));\n };\n ObserveOnSubscriber.prototype._error = function (err) {\n this.scheduleMessage(Notification.createError(err));\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype._complete = function () {\n this.scheduleMessage(Notification.createComplete());\n this.unsubscribe();\n };\n return ObserveOnSubscriber;\n}(Subscriber));\nexport { ObserveOnSubscriber };\nvar ObserveOnMessage = (function () {\n function ObserveOnMessage(notification, destination) {\n this.notification = notification;\n this.destination = destination;\n }\n return ObserveOnMessage;\n}());\nexport { ObserveOnMessage };\n//# sourceMappingURL=observeOn.js.map","/*!\n * clipboard.js v2.0.6\n * https://clipboardjs.com/\n * \n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 6);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar is = __webpack_require__(3);\nvar delegate = __webpack_require__(4);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar closest = __webpack_require__(5);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(0);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n\n// CONCATENATED MODULE: ./src/clipboard-action.js\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\n/**\n * Inner class which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n */\n\nvar clipboard_action_ClipboardAction = function () {\n /**\n * @param {Object} options\n */\n function ClipboardAction(options) {\n _classCallCheck(this, ClipboardAction);\n\n this.resolveOptions(options);\n this.initSelection();\n }\n\n /**\n * Defines base properties passed from constructor.\n * @param {Object} options\n */\n\n\n _createClass(ClipboardAction, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = options.action;\n this.container = options.container;\n this.emitter = options.emitter;\n this.target = options.target;\n this.text = options.text;\n this.trigger = options.trigger;\n\n this.selectedText = '';\n }\n\n /**\n * Decides which selection strategy is going to be applied based\n * on the existence of `text` and `target` properties.\n */\n\n }, {\n key: 'initSelection',\n value: function initSelection() {\n if (this.text) {\n this.selectFake();\n } else if (this.target) {\n this.selectTarget();\n }\n }\n\n /**\n * Creates a fake textarea element, sets its value from `text` property,\n * and makes a selection on it.\n */\n\n }, {\n key: 'selectFake',\n value: function selectFake() {\n var _this = this;\n\n var isRTL = document.documentElement.getAttribute('dir') == 'rtl';\n\n this.removeFake();\n\n this.fakeHandlerCallback = function () {\n return _this.removeFake();\n };\n this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;\n\n this.fakeElem = document.createElement('textarea');\n // Prevent zooming on iOS\n this.fakeElem.style.fontSize = '12pt';\n // Reset box model\n this.fakeElem.style.border = '0';\n this.fakeElem.style.padding = '0';\n this.fakeElem.style.margin = '0';\n // Move element out of screen horizontally\n this.fakeElem.style.position = 'absolute';\n this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';\n // Move element to the same position vertically\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n this.fakeElem.style.top = yPosition + 'px';\n\n this.fakeElem.setAttribute('readonly', '');\n this.fakeElem.value = this.text;\n\n this.container.appendChild(this.fakeElem);\n\n this.selectedText = select_default()(this.fakeElem);\n this.copyText();\n }\n\n /**\n * Only removes the fake element after another click event, that way\n * a user can hit `Ctrl+C` to copy because selection still exists.\n */\n\n }, {\n key: 'removeFake',\n value: function removeFake() {\n if (this.fakeHandler) {\n this.container.removeEventListener('click', this.fakeHandlerCallback);\n this.fakeHandler = null;\n this.fakeHandlerCallback = null;\n }\n\n if (this.fakeElem) {\n this.container.removeChild(this.fakeElem);\n this.fakeElem = null;\n }\n }\n\n /**\n * Selects the content from element passed on `target` property.\n */\n\n }, {\n key: 'selectTarget',\n value: function selectTarget() {\n this.selectedText = select_default()(this.target);\n this.copyText();\n }\n\n /**\n * Executes the copy operation based on the current selection.\n */\n\n }, {\n key: 'copyText',\n value: function copyText() {\n var succeeded = void 0;\n\n try {\n succeeded = document.execCommand(this.action);\n } catch (err) {\n succeeded = false;\n }\n\n this.handleResult(succeeded);\n }\n\n /**\n * Fires an event based on the copy operation result.\n * @param {Boolean} succeeded\n */\n\n }, {\n key: 'handleResult',\n value: function handleResult(succeeded) {\n this.emitter.emit(succeeded ? 'success' : 'error', {\n action: this.action,\n text: this.selectedText,\n trigger: this.trigger,\n clearSelection: this.clearSelection.bind(this)\n });\n }\n\n /**\n * Moves focus away from `target` and back to the trigger, removes current selection.\n */\n\n }, {\n key: 'clearSelection',\n value: function clearSelection() {\n if (this.trigger) {\n this.trigger.focus();\n }\n document.activeElement.blur();\n window.getSelection().removeAllRanges();\n }\n\n /**\n * Sets the `action` to be performed which can be either 'copy' or 'cut'.\n * @param {String} action\n */\n\n }, {\n key: 'destroy',\n\n\n /**\n * Destroy lifecycle.\n */\n value: function destroy() {\n this.removeFake();\n }\n }, {\n key: 'action',\n set: function set() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';\n\n this._action = action;\n\n if (this._action !== 'copy' && this._action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n }\n }\n\n /**\n * Gets the `action` property.\n * @return {String}\n */\n ,\n get: function get() {\n return this._action;\n }\n\n /**\n * Sets the `target` property using an element\n * that will be have its content copied.\n * @param {Element} target\n */\n\n }, {\n key: 'target',\n set: function set(target) {\n if (target !== undefined) {\n if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {\n if (this.action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n\n this._target = target;\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n }\n }\n\n /**\n * Gets the `target` property.\n * @return {String|HTMLElement}\n */\n ,\n get: function get() {\n return this._target;\n }\n }]);\n\n return ClipboardAction;\n}();\n\n/* harmony default export */ var clipboard_action = (clipboard_action_ClipboardAction);\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(1);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(2);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n\n// CONCATENATED MODULE: ./src/clipboard.js\nvar clipboard_typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar clipboard_createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction clipboard_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\nvar clipboard_Clipboard = function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n clipboard_classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));\n\n _this.resolveOptions(options);\n _this.listenClick(trigger);\n return _this;\n }\n\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n clipboard_createClass(Clipboard, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: 'listenClick',\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: 'onClick',\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n\n if (this.clipboardAction) {\n this.clipboardAction = null;\n }\n\n this.clipboardAction = new clipboard_action({\n action: this.action(trigger),\n target: this.target(trigger),\n text: this.text(trigger),\n container: this.container,\n trigger: trigger,\n emitter: this\n });\n }\n\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: 'defaultAction',\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: 'defaultTarget',\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: 'defaultText',\n\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: 'destroy',\n value: function destroy() {\n this.listener.destroy();\n\n if (this.clipboardAction) {\n this.clipboardAction.destroy();\n this.clipboardAction = null;\n }\n }\n }], [{\n key: 'isSupported',\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n\n return support;\n }\n }]);\n\n return Clipboard;\n}(tiny_emitter_default.a);\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\n\nfunction getAttributeValue(suffix, element) {\n var attribute = 'data-clipboard-' + suffix;\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n\n/* harmony default export */ var clipboard = __webpack_exports__[\"default\"] = (clipboard_Clipboard);\n\n/***/ })\n/******/ ])[\"default\"];\n});","import { __extends } from \"tslib\";\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { fromArray } from './fromArray';\nvar NONE = {};\nexport function combineLatest() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var resultSelector = undefined;\n var scheduler = undefined;\n if (isScheduler(observables[observables.length - 1])) {\n scheduler = observables.pop();\n }\n if (typeof observables[observables.length - 1] === 'function') {\n resultSelector = observables.pop();\n }\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0];\n }\n return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector));\n}\nvar CombineLatestOperator = (function () {\n function CombineLatestOperator(resultSelector) {\n this.resultSelector = resultSelector;\n }\n CombineLatestOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));\n };\n return CombineLatestOperator;\n}());\nexport { CombineLatestOperator };\nvar CombineLatestSubscriber = (function (_super) {\n __extends(CombineLatestSubscriber, _super);\n function CombineLatestSubscriber(destination, resultSelector) {\n var _this = _super.call(this, destination) || this;\n _this.resultSelector = resultSelector;\n _this.active = 0;\n _this.values = [];\n _this.observables = [];\n return _this;\n }\n CombineLatestSubscriber.prototype._next = function (observable) {\n this.values.push(NONE);\n this.observables.push(observable);\n };\n CombineLatestSubscriber.prototype._complete = function () {\n var observables = this.observables;\n var len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n this.active = len;\n this.toRespond = len;\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n this.add(subscribeToResult(this, observable, observable, i));\n }\n }\n };\n CombineLatestSubscriber.prototype.notifyComplete = function (unused) {\n if ((this.active -= 1) === 0) {\n this.destination.complete();\n }\n };\n CombineLatestSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var values = this.values;\n var oldVal = values[outerIndex];\n var toRespond = !this.toRespond\n ? 0\n : oldVal === NONE ? --this.toRespond : this.toRespond;\n values[outerIndex] = innerValue;\n if (toRespond === 0) {\n if (this.resultSelector) {\n this._tryResultSelector(values);\n }\n else {\n this.destination.next(values.slice());\n }\n }\n };\n CombineLatestSubscriber.prototype._tryResultSelector = function (values) {\n var result;\n try {\n result = this.resultSelector.apply(this, values);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return CombineLatestSubscriber;\n}(OuterSubscriber));\nexport { CombineLatestSubscriber };\n//# sourceMappingURL=combineLatest.js.map","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n","import { Observable } from '../Observable';\nimport { from } from './from';\nimport { EMPTY } from './empty';\nexport function defer(observableFactory) {\n return new Observable(function (subscriber) {\n var input;\n try {\n input = observableFactory();\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var source = input ? from(input) : EMPTY;\n return source.subscribe(subscriber);\n });\n}\n//# sourceMappingURL=defer.js.map","import { __extends } from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar QueueAction = (function (_super) {\n __extends(QueueAction, _super);\n function QueueAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n QueueAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay > 0) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n };\n QueueAction.prototype.execute = function (state, delay) {\n return (delay > 0 || this.closed) ?\n _super.prototype.execute.call(this, state, delay) :\n this._execute(state, delay);\n };\n QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n return scheduler.flush(this);\n };\n return QueueAction;\n}(AsyncAction));\nexport { QueueAction };\n//# sourceMappingURL=QueueAction.js.map","import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\nexport var queue = new QueueScheduler(QueueAction);\n//# sourceMappingURL=queue.js.map","import { __extends } from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar QueueScheduler = (function (_super) {\n __extends(QueueScheduler, _super);\n function QueueScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return QueueScheduler;\n}(AsyncScheduler));\nexport { QueueScheduler };\n//# sourceMappingURL=QueueScheduler.js.map","import { __extends } from \"tslib\";\nimport { Subject } from './Subject';\nimport { queue } from './scheduler/queue';\nimport { Subscription } from './Subscription';\nimport { ObserveOnSubscriber } from './operators/observeOn';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nvar ReplaySubject = (function (_super) {\n __extends(ReplaySubject, _super);\n function ReplaySubject(bufferSize, windowTime, scheduler) {\n if (bufferSize === void 0) { bufferSize = Number.POSITIVE_INFINITY; }\n if (windowTime === void 0) { windowTime = Number.POSITIVE_INFINITY; }\n var _this = _super.call(this) || this;\n _this.scheduler = scheduler;\n _this._events = [];\n _this._infiniteTimeWindow = false;\n _this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n _this._windowTime = windowTime < 1 ? 1 : windowTime;\n if (windowTime === Number.POSITIVE_INFINITY) {\n _this._infiniteTimeWindow = true;\n _this.next = _this.nextInfiniteTimeWindow;\n }\n else {\n _this.next = _this.nextTimeWindow;\n }\n return _this;\n }\n ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) {\n var _events = this._events;\n _events.push(value);\n if (_events.length > this._bufferSize) {\n _events.shift();\n }\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype.nextTimeWindow = function (value) {\n this._events.push(new ReplayEvent(this._getNow(), value));\n this._trimBufferThenGetEvents();\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype._subscribe = function (subscriber) {\n var _infiniteTimeWindow = this._infiniteTimeWindow;\n var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();\n var scheduler = this.scheduler;\n var len = _events.length;\n var subscription;\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.isStopped || this.hasError) {\n subscription = Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n subscription = new SubjectSubscription(this, subscriber);\n }\n if (scheduler) {\n subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler));\n }\n if (_infiniteTimeWindow) {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i]);\n }\n }\n else {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i].value);\n }\n }\n if (this.hasError) {\n subscriber.error(this.thrownError);\n }\n else if (this.isStopped) {\n subscriber.complete();\n }\n return subscription;\n };\n ReplaySubject.prototype._getNow = function () {\n return (this.scheduler || queue).now();\n };\n ReplaySubject.prototype._trimBufferThenGetEvents = function () {\n var now = this._getNow();\n var _bufferSize = this._bufferSize;\n var _windowTime = this._windowTime;\n var _events = this._events;\n var eventsCount = _events.length;\n var spliceCount = 0;\n while (spliceCount < eventsCount) {\n if ((now - _events[spliceCount].time) < _windowTime) {\n break;\n }\n spliceCount++;\n }\n if (eventsCount > _bufferSize) {\n spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n }\n if (spliceCount > 0) {\n _events.splice(0, spliceCount);\n }\n return _events;\n };\n return ReplaySubject;\n}(Subject));\nexport { ReplaySubject };\nvar ReplayEvent = (function () {\n function ReplayEvent(time, value) {\n this.time = time;\n this.value = value;\n }\n return ReplayEvent;\n}());\n//# sourceMappingURL=ReplaySubject.js.map","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import _has from \"./_has.js\";\nvar toString = Object.prototype.toString;\n\nvar _isArguments =\n/*#__PURE__*/\nfunction () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\n\nexport default _isArguments;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\nimport _isArguments from \"./internal/_isArguments.js\"; // cover IE < 9 keys issues\n\nvar hasEnumBug = !\n/*#__PURE__*/\n{\n toString: null\n}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; // Safari bug\n\nvar hasArgsEnumBug =\n/*#__PURE__*/\nfunction () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n};\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\n\n\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ?\n/*#__PURE__*/\n_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) :\n/*#__PURE__*/\n_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n\n var prop, nIdx;\n var ks = [];\n\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n\n nIdx -= 1;\n }\n }\n\n return ks;\n});\nexport default keys;","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { noop } from '../util/noop';\nimport { isFunction } from '../util/isFunction';\nexport function tap(nextOrObserver, error, complete) {\n return function tapOperatorFunction(source) {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\nvar DoOperator = (function () {\n function DoOperator(nextOrObserver, error, complete) {\n this.nextOrObserver = nextOrObserver;\n this.error = error;\n this.complete = complete;\n }\n DoOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n };\n return DoOperator;\n}());\nvar TapSubscriber = (function (_super) {\n __extends(TapSubscriber, _super);\n function TapSubscriber(destination, observerOrNext, error, complete) {\n var _this = _super.call(this, destination) || this;\n _this._tapNext = noop;\n _this._tapError = noop;\n _this._tapComplete = noop;\n _this._tapError = error || noop;\n _this._tapComplete = complete || noop;\n if (isFunction(observerOrNext)) {\n _this._context = _this;\n _this._tapNext = observerOrNext;\n }\n else if (observerOrNext) {\n _this._context = observerOrNext;\n _this._tapNext = observerOrNext.next || noop;\n _this._tapError = observerOrNext.error || noop;\n _this._tapComplete = observerOrNext.complete || noop;\n }\n return _this;\n }\n TapSubscriber.prototype._next = function (value) {\n try {\n this._tapNext.call(this._context, value);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(value);\n };\n TapSubscriber.prototype._error = function (err) {\n try {\n this._tapError.call(this._context, err);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.error(err);\n };\n TapSubscriber.prototype._complete = function () {\n try {\n this._tapComplete.call(this._context);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n return this.destination.complete();\n };\n return TapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=tap.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function scan(accumulator, seed) {\n var hasSeed = false;\n if (arguments.length >= 2) {\n hasSeed = true;\n }\n return function scanOperatorFunction(source) {\n return source.lift(new ScanOperator(accumulator, seed, hasSeed));\n };\n}\nvar ScanOperator = (function () {\n function ScanOperator(accumulator, seed, hasSeed) {\n if (hasSeed === void 0) { hasSeed = false; }\n this.accumulator = accumulator;\n this.seed = seed;\n this.hasSeed = hasSeed;\n }\n ScanOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));\n };\n return ScanOperator;\n}());\nvar ScanSubscriber = (function (_super) {\n __extends(ScanSubscriber, _super);\n function ScanSubscriber(destination, accumulator, _state, _hasState) {\n var _this = _super.call(this, destination) || this;\n _this.accumulator = accumulator;\n _this._state = _state;\n _this._hasState = _hasState;\n _this.index = 0;\n return _this;\n }\n ScanSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n if (!this._hasState) {\n this._state = value;\n this._hasState = true;\n destination.next(value);\n }\n else {\n var index = this.index++;\n var result = void 0;\n try {\n result = this.accumulator(this._state, value, index);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this._state = result;\n destination.next(result);\n }\n };\n return ScanSubscriber;\n}(Subscriber));\n//# sourceMappingURL=scan.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nexport function finalize(callback) {\n return function (source) { return source.lift(new FinallyOperator(callback)); };\n}\nvar FinallyOperator = (function () {\n function FinallyOperator(callback) {\n this.callback = callback;\n }\n FinallyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FinallySubscriber(subscriber, this.callback));\n };\n return FinallyOperator;\n}());\nvar FinallySubscriber = (function (_super) {\n __extends(FinallySubscriber, _super);\n function FinallySubscriber(destination, callback) {\n var _this = _super.call(this, destination) || this;\n _this.add(new Subscription(callback));\n return _this;\n }\n return FinallySubscriber;\n}(Subscriber));\n//# sourceMappingURL=finalize.js.map","import { __extends } from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar AnimationFrameAction = (function (_super) {\n __extends(AnimationFrameAction, _super);\n function AnimationFrameAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () { return scheduler.flush(undefined); }));\n };\n AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n cancelAnimationFrame(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n };\n return AnimationFrameAction;\n}(AsyncAction));\nexport { AnimationFrameAction };\n//# sourceMappingURL=AnimationFrameAction.js.map","import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nexport var animationFrame = new AnimationFrameScheduler(AnimationFrameAction);\n//# sourceMappingURL=animationFrame.js.map","import { __extends } from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AnimationFrameScheduler = (function (_super) {\n __extends(AnimationFrameScheduler, _super);\n function AnimationFrameScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AnimationFrameScheduler.prototype.flush = function (action) {\n this.active = true;\n this.scheduled = undefined;\n var actions = this.actions;\n var error;\n var index = -1;\n var count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AnimationFrameScheduler;\n}(AsyncScheduler));\nexport { AnimationFrameScheduler };\n//# sourceMappingURL=AnimationFrameScheduler.js.map","import { ReplaySubject } from '../ReplaySubject';\nexport function shareReplay(configOrBufferSize, windowTime, scheduler) {\n var config;\n if (configOrBufferSize && typeof configOrBufferSize === 'object') {\n config = configOrBufferSize;\n }\n else {\n config = {\n bufferSize: configOrBufferSize,\n windowTime: windowTime,\n refCount: false,\n scheduler: scheduler\n };\n }\n return function (source) { return source.lift(shareReplayOperator(config)); };\n}\nfunction shareReplayOperator(_a) {\n var _b = _a.bufferSize, bufferSize = _b === void 0 ? Number.POSITIVE_INFINITY : _b, _c = _a.windowTime, windowTime = _c === void 0 ? Number.POSITIVE_INFINITY : _c, useRefCount = _a.refCount, scheduler = _a.scheduler;\n var subject;\n var refCount = 0;\n var subscription;\n var hasError = false;\n var isComplete = false;\n return function shareReplayOperation(source) {\n refCount++;\n if (!subject || hasError) {\n hasError = false;\n subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n subscription = source.subscribe({\n next: function (value) { subject.next(value); },\n error: function (err) {\n hasError = true;\n subject.error(err);\n },\n complete: function () {\n isComplete = true;\n subscription = undefined;\n subject.complete();\n },\n });\n }\n var innerSub = subject.subscribe(this);\n this.add(function () {\n refCount--;\n innerSub.unsubscribe();\n if (subscription && !isComplete && useRefCount && refCount === 0) {\n subscription.unsubscribe();\n subscription = undefined;\n subject = undefined;\n }\n });\n };\n}\n//# sourceMappingURL=shareReplay.js.map","import { distinctUntilChanged } from './distinctUntilChanged';\nexport function distinctUntilKeyChanged(key, compare) {\n return distinctUntilChanged(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; });\n}\n//# sourceMappingURL=distinctUntilKeyChanged.js.map","import { __extends, __spreadArrays } from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function withLatestFrom() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return function (source) {\n var project;\n if (typeof args[args.length - 1] === 'function') {\n project = args.pop();\n }\n var observables = args;\n return source.lift(new WithLatestFromOperator(observables, project));\n };\n}\nvar WithLatestFromOperator = (function () {\n function WithLatestFromOperator(observables, project) {\n this.observables = observables;\n this.project = project;\n }\n WithLatestFromOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));\n };\n return WithLatestFromOperator;\n}());\nvar WithLatestFromSubscriber = (function (_super) {\n __extends(WithLatestFromSubscriber, _super);\n function WithLatestFromSubscriber(destination, observables, project) {\n var _this = _super.call(this, destination) || this;\n _this.observables = observables;\n _this.project = project;\n _this.toRespond = [];\n var len = observables.length;\n _this.values = new Array(len);\n for (var i = 0; i < len; i++) {\n _this.toRespond.push(i);\n }\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n _this.add(subscribeToResult(_this, observable, observable, i));\n }\n return _this;\n }\n WithLatestFromSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.values[outerIndex] = innerValue;\n var toRespond = this.toRespond;\n if (toRespond.length > 0) {\n var found = toRespond.indexOf(outerIndex);\n if (found !== -1) {\n toRespond.splice(found, 1);\n }\n }\n };\n WithLatestFromSubscriber.prototype.notifyComplete = function () {\n };\n WithLatestFromSubscriber.prototype._next = function (value) {\n if (this.toRespond.length === 0) {\n var args = __spreadArrays([value], this.values);\n if (this.project) {\n this._tryProject(args);\n }\n else {\n this.destination.next(args);\n }\n }\n };\n WithLatestFromSubscriber.prototype._tryProject = function (args) {\n var result;\n try {\n result = this.project.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return WithLatestFromSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=withLatestFrom.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function bufferCount(bufferSize, startBufferEvery) {\n if (startBufferEvery === void 0) { startBufferEvery = null; }\n return function bufferCountOperatorFunction(source) {\n return source.lift(new BufferCountOperator(bufferSize, startBufferEvery));\n };\n}\nvar BufferCountOperator = (function () {\n function BufferCountOperator(bufferSize, startBufferEvery) {\n this.bufferSize = bufferSize;\n this.startBufferEvery = startBufferEvery;\n if (!startBufferEvery || bufferSize === startBufferEvery) {\n this.subscriberClass = BufferCountSubscriber;\n }\n else {\n this.subscriberClass = BufferSkipCountSubscriber;\n }\n }\n BufferCountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery));\n };\n return BufferCountOperator;\n}());\nvar BufferCountSubscriber = (function (_super) {\n __extends(BufferCountSubscriber, _super);\n function BufferCountSubscriber(destination, bufferSize) {\n var _this = _super.call(this, destination) || this;\n _this.bufferSize = bufferSize;\n _this.buffer = [];\n return _this;\n }\n BufferCountSubscriber.prototype._next = function (value) {\n var buffer = this.buffer;\n buffer.push(value);\n if (buffer.length == this.bufferSize) {\n this.destination.next(buffer);\n this.buffer = [];\n }\n };\n BufferCountSubscriber.prototype._complete = function () {\n var buffer = this.buffer;\n if (buffer.length > 0) {\n this.destination.next(buffer);\n }\n _super.prototype._complete.call(this);\n };\n return BufferCountSubscriber;\n}(Subscriber));\nvar BufferSkipCountSubscriber = (function (_super) {\n __extends(BufferSkipCountSubscriber, _super);\n function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) {\n var _this = _super.call(this, destination) || this;\n _this.bufferSize = bufferSize;\n _this.startBufferEvery = startBufferEvery;\n _this.buffers = [];\n _this.count = 0;\n return _this;\n }\n BufferSkipCountSubscriber.prototype._next = function (value) {\n var _a = this, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers, count = _a.count;\n this.count++;\n if (count % startBufferEvery === 0) {\n buffers.push([]);\n }\n for (var i = buffers.length; i--;) {\n var buffer = buffers[i];\n buffer.push(value);\n if (buffer.length === bufferSize) {\n buffers.splice(i, 1);\n this.destination.next(buffer);\n }\n }\n };\n BufferSkipCountSubscriber.prototype._complete = function () {\n var _a = this, buffers = _a.buffers, destination = _a.destination;\n while (buffers.length > 0) {\n var buffer = buffers.shift();\n if (buffer.length > 0) {\n destination.next(buffer);\n }\n }\n _super.prototype._complete.call(this);\n };\n return BufferSkipCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=bufferCount.js.map","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n//# sourceMappingURL=concatAll.js.map","import { of } from './of';\nimport { concatAll } from '../operators/concatAll';\nexport function concat() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return concatAll()(of.apply(void 0, observables));\n}\n//# sourceMappingURL=concat.js.map","import { concat } from '../observable/concat';\nimport { isScheduler } from '../util/isScheduler';\nexport function startWith() {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n var scheduler = values[values.length - 1];\n if (isScheduler(scheduler)) {\n values.pop();\n return function (source) { return concat(values, source, scheduler); };\n }\n else {\n return function (source) { return concat(values, source); };\n }\n}\n//# sourceMappingURL=startWith.js.map","import _curry1 from \"./internal/_curry1.js\";\nimport _isString from \"./internal/_isString.js\";\n/**\n * Returns a new list or string with the elements or characters in reverse\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {Array|String} list\n * @return {Array|String}\n * @example\n *\n * R.reverse([1, 2, 3]); //=> [3, 2, 1]\n * R.reverse([1, 2]); //=> [2, 1]\n * R.reverse([1]); //=> [1]\n * R.reverse([]); //=> []\n *\n * R.reverse('abc'); //=> 'cba'\n * R.reverse('ab'); //=> 'ba'\n * R.reverse('a'); //=> 'a'\n * R.reverse(''); //=> ''\n */\n\nvar reverse =\n/*#__PURE__*/\n_curry1(function reverse(list) {\n return _isString(list) ? list.split('').reverse().join('') : Array.prototype.slice.call(list, 0).reverse();\n});\n\nexport default reverse;","export default function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new Observable(function (subscriber) {\n function handler(e) {\n if (arguments.length > 1) {\n subscriber.next(Array.prototype.slice.call(arguments));\n }\n else {\n subscriber.next(e);\n }\n }\n setupSubscription(target, eventName, handler, subscriber, options);\n });\n}\nfunction setupSubscription(sourceObj, eventName, handler, subscriber, options) {\n var unsubscribe;\n if (isEventTarget(sourceObj)) {\n var source_1 = sourceObj;\n sourceObj.addEventListener(eventName, handler, options);\n unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); };\n }\n else if (isJQueryStyleEventEmitter(sourceObj)) {\n var source_2 = sourceObj;\n sourceObj.on(eventName, handler);\n unsubscribe = function () { return source_2.off(eventName, handler); };\n }\n else if (isNodeStyleEventEmitter(sourceObj)) {\n var source_3 = sourceObj;\n sourceObj.addListener(eventName, handler);\n unsubscribe = function () { return source_3.removeListener(eventName, handler); };\n }\n else if (sourceObj && sourceObj.length) {\n for (var i = 0, len = sourceObj.length; i < len; i++) {\n setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n }\n }\n else {\n throw new TypeError('Invalid event target');\n }\n subscriber.add(unsubscribe);\n}\nfunction isNodeStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\nfunction isJQueryStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\nfunction isEventTarget(sourceObj) {\n return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n//# sourceMappingURL=fromEvent.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function mapTo(value) {\n return function (source) { return source.lift(new MapToOperator(value)); };\n}\nvar MapToOperator = (function () {\n function MapToOperator(value) {\n this.value = value;\n }\n MapToOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapToSubscriber(subscriber, this.value));\n };\n return MapToOperator;\n}());\nvar MapToSubscriber = (function (_super) {\n __extends(MapToSubscriber, _super);\n function MapToSubscriber(destination, value) {\n var _this = _super.call(this, destination) || this;\n _this.value = value;\n return _this;\n }\n MapToSubscriber.prototype._next = function (x) {\n this.destination.next(this.value);\n };\n return MapToSubscriber;\n}(Subscriber));\n//# sourceMappingURL=mapTo.js.map","import { Observable } from '../Observable';\nimport { isScheduler } from '../util/isScheduler';\nimport { mergeAll } from '../operators/mergeAll';\nimport { fromArray } from './fromArray';\nexport function merge() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var concurrent = Number.POSITIVE_INFINITY;\n var scheduler = undefined;\n var last = observables[observables.length - 1];\n if (isScheduler(last)) {\n scheduler = observables.pop();\n if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n concurrent = observables.pop();\n }\n }\n else if (typeof last === 'number') {\n concurrent = observables.pop();\n }\n if (!scheduler && observables.length === 1 && observables[0] instanceof Observable) {\n return observables[0];\n }\n return mergeAll(concurrent)(fromArray(observables, scheduler));\n}\n//# sourceMappingURL=merge.js.map","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nexport function fromEventPattern(addHandler, removeHandler, resultSelector) {\n if (resultSelector) {\n return fromEventPattern(addHandler, removeHandler).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new Observable(function (subscriber) {\n var handler = function () {\n var e = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n e[_i] = arguments[_i];\n }\n return subscriber.next(e.length === 1 ? e[0] : e);\n };\n var retValue;\n try {\n retValue = addHandler(handler);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!isFunction(removeHandler)) {\n return undefined;\n }\n return function () { return removeHandler(handler, retValue); };\n });\n}\n//# sourceMappingURL=fromEventPattern.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\nvar FilterOperator = (function () {\n function FilterOperator(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n FilterOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n };\n return FilterOperator;\n}());\nvar FilterSubscriber = (function (_super) {\n __extends(FilterSubscriber, _super);\n function FilterSubscriber(destination, predicate, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.thisArg = thisArg;\n _this.count = 0;\n return _this;\n }\n FilterSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n };\n return FilterSubscriber;\n}(Subscriber));\n//# sourceMappingURL=filter.js.map","import { __extends } from \"tslib\";\nimport { Subject } from './Subject';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nvar BehaviorSubject = (function (_super) {\n __extends(BehaviorSubject, _super);\n function BehaviorSubject(_value) {\n var _this = _super.call(this) || this;\n _this._value = _value;\n return _this;\n }\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: true,\n configurable: true\n });\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n if (subscription && !subscription.closed) {\n subscriber.next(this._value);\n }\n return subscription;\n };\n BehaviorSubject.prototype.getValue = function () {\n if (this.hasError) {\n throw this.thrownError;\n }\n else if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return this._value;\n }\n };\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, this._value = value);\n };\n return BehaviorSubject;\n}(Subject));\nexport { BehaviorSubject };\n//# sourceMappingURL=BehaviorSubject.js.map","import { map } from './map';\nexport function pluck() {\n var properties = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n properties[_i] = arguments[_i];\n }\n var length = properties.length;\n if (length === 0) {\n throw new Error('list of properties cannot be empty.');\n }\n return map(function (x) {\n var currentProp = x;\n for (var i = 0; i < length; i++) {\n var p = currentProp[properties[i]];\n if (typeof p !== 'undefined') {\n currentProp = p;\n }\n else {\n return undefined;\n }\n }\n return currentProp;\n });\n}\n//# sourceMappingURL=pluck.js.map","import { __extends } from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport var defaultThrottleConfig = {\n leading: true,\n trailing: false\n};\nexport function throttle(durationSelector, config) {\n if (config === void 0) { config = defaultThrottleConfig; }\n return function (source) { return source.lift(new ThrottleOperator(durationSelector, !!config.leading, !!config.trailing)); };\n}\nvar ThrottleOperator = (function () {\n function ThrottleOperator(durationSelector, leading, trailing) {\n this.durationSelector = durationSelector;\n this.leading = leading;\n this.trailing = trailing;\n }\n ThrottleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing));\n };\n return ThrottleOperator;\n}());\nvar ThrottleSubscriber = (function (_super) {\n __extends(ThrottleSubscriber, _super);\n function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.durationSelector = durationSelector;\n _this._leading = _leading;\n _this._trailing = _trailing;\n _this._sendValue = null;\n _this._hasValue = false;\n return _this;\n }\n ThrottleSubscriber.prototype._next = function (value) {\n this._hasValue = true;\n this._sendValue = value;\n if (!this._throttled) {\n if (this._leading) {\n this.send();\n }\n else {\n this.throttle(value);\n }\n }\n };\n ThrottleSubscriber.prototype.send = function () {\n var _a = this, _hasValue = _a._hasValue, _sendValue = _a._sendValue;\n if (_hasValue) {\n this.destination.next(_sendValue);\n this.throttle(_sendValue);\n }\n this._hasValue = false;\n this._sendValue = null;\n };\n ThrottleSubscriber.prototype.throttle = function (value) {\n var duration = this.tryDurationSelector(value);\n if (!!duration) {\n this.add(this._throttled = subscribeToResult(this, duration));\n }\n };\n ThrottleSubscriber.prototype.tryDurationSelector = function (value) {\n try {\n return this.durationSelector(value);\n }\n catch (err) {\n this.destination.error(err);\n return null;\n }\n };\n ThrottleSubscriber.prototype.throttlingDone = function () {\n var _a = this, _throttled = _a._throttled, _trailing = _a._trailing;\n if (_throttled) {\n _throttled.unsubscribe();\n }\n this._throttled = null;\n if (_trailing) {\n this.send();\n }\n };\n ThrottleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.throttlingDone();\n };\n ThrottleSubscriber.prototype.notifyComplete = function () {\n this.throttlingDone();\n };\n return ThrottleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=throttle.js.map","import { switchMap } from './switchMap';\nexport function switchMapTo(innerObservable, resultSelector) {\n return resultSelector ? switchMap(function () { return innerObservable; }, resultSelector) : switchMap(function () { return innerObservable; });\n}\n//# sourceMappingURL=switchMapTo.js.map","import { __extends } from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function sample(notifier) {\n return function (source) { return source.lift(new SampleOperator(notifier)); };\n}\nvar SampleOperator = (function () {\n function SampleOperator(notifier) {\n this.notifier = notifier;\n }\n SampleOperator.prototype.call = function (subscriber, source) {\n var sampleSubscriber = new SampleSubscriber(subscriber);\n var subscription = source.subscribe(sampleSubscriber);\n subscription.add(subscribeToResult(sampleSubscriber, this.notifier));\n return subscription;\n };\n return SampleOperator;\n}());\nvar SampleSubscriber = (function (_super) {\n __extends(SampleSubscriber, _super);\n function SampleSubscriber() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.hasValue = false;\n return _this;\n }\n SampleSubscriber.prototype._next = function (value) {\n this.value = value;\n this.hasValue = true;\n };\n SampleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.emitValue();\n };\n SampleSubscriber.prototype.notifyComplete = function () {\n this.emitValue();\n };\n SampleSubscriber.prototype.emitValue = function () {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.value);\n }\n };\n return SampleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=sample.js.map","import { Observable } from '../Observable';\nimport { noop } from '../util/noop';\nexport var NEVER = new Observable(noop);\nexport function never() {\n return NEVER;\n}\n//# sourceMappingURL=never.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function skip(count) {\n return function (source) { return source.lift(new SkipOperator(count)); };\n}\nvar SkipOperator = (function () {\n function SkipOperator(total) {\n this.total = total;\n }\n SkipOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SkipSubscriber(subscriber, this.total));\n };\n return SkipOperator;\n}());\nvar SkipSubscriber = (function (_super) {\n __extends(SkipSubscriber, _super);\n function SkipSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n SkipSubscriber.prototype._next = function (x) {\n if (++this.count > this.total) {\n this.destination.next(x);\n }\n };\n return SkipSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skip.js.map","import { __extends } from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function catchError(selector) {\n return function catchErrorOperatorFunction(source) {\n var operator = new CatchOperator(selector);\n var caught = source.lift(operator);\n return (operator.caught = caught);\n };\n}\nvar CatchOperator = (function () {\n function CatchOperator(selector) {\n this.selector = selector;\n }\n CatchOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));\n };\n return CatchOperator;\n}());\nvar CatchSubscriber = (function (_super) {\n __extends(CatchSubscriber, _super);\n function CatchSubscriber(destination, selector, caught) {\n var _this = _super.call(this, destination) || this;\n _this.selector = selector;\n _this.caught = caught;\n return _this;\n }\n CatchSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var result = void 0;\n try {\n result = this.selector(err, this.caught);\n }\n catch (err2) {\n _super.prototype.error.call(this, err2);\n return;\n }\n this._unsubscribeAndRecycle();\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n this.add(innerSubscriber);\n var innerSubscription = subscribeToResult(this, result, undefined, undefined, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n this.add(innerSubscription);\n }\n }\n };\n return CatchSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=catchError.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nexport function debounceTime(dueTime, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return function (source) { return source.lift(new DebounceTimeOperator(dueTime, scheduler)); };\n}\nvar DebounceTimeOperator = (function () {\n function DebounceTimeOperator(dueTime, scheduler) {\n this.dueTime = dueTime;\n this.scheduler = scheduler;\n }\n DebounceTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler));\n };\n return DebounceTimeOperator;\n}());\nvar DebounceTimeSubscriber = (function (_super) {\n __extends(DebounceTimeSubscriber, _super);\n function DebounceTimeSubscriber(destination, dueTime, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.dueTime = dueTime;\n _this.scheduler = scheduler;\n _this.debouncedSubscription = null;\n _this.lastValue = null;\n _this.hasValue = false;\n return _this;\n }\n DebounceTimeSubscriber.prototype._next = function (value) {\n this.clearDebounce();\n this.lastValue = value;\n this.hasValue = true;\n this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this));\n };\n DebounceTimeSubscriber.prototype._complete = function () {\n this.debouncedNext();\n this.destination.complete();\n };\n DebounceTimeSubscriber.prototype.debouncedNext = function () {\n this.clearDebounce();\n if (this.hasValue) {\n var lastValue = this.lastValue;\n this.lastValue = null;\n this.hasValue = false;\n this.destination.next(lastValue);\n }\n };\n DebounceTimeSubscriber.prototype.clearDebounce = function () {\n var debouncedSubscription = this.debouncedSubscription;\n if (debouncedSubscription !== null) {\n this.remove(debouncedSubscription);\n debouncedSubscription.unsubscribe();\n this.debouncedSubscription = null;\n }\n };\n return DebounceTimeSubscriber;\n}(Subscriber));\nfunction dispatchNext(subscriber) {\n subscriber.debouncedNext();\n}\n//# sourceMappingURL=debounceTime.js.map","import { defer } from './defer';\nimport { EMPTY } from './empty';\nexport function iif(condition, trueResult, falseResult) {\n if (trueResult === void 0) { trueResult = EMPTY; }\n if (falseResult === void 0) { falseResult = EMPTY; }\n return defer(function () { return condition() ? trueResult : falseResult; });\n}\n//# sourceMappingURL=iif.js.map","import _curry1 from \"./internal/_curry1.js\";\nimport keys from \"./keys.js\";\n/**\n * Returns a list of all the enumerable own properties of the supplied object.\n * Note that the order of the output array is not guaranteed across different\n * JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own properties.\n * @see R.valuesIn, R.keys\n * @example\n *\n * R.values({a: 1, b: 2, c: 3}); //=> [1, 2, 3]\n */\n\nvar values =\n/*#__PURE__*/\n_curry1(function values(obj) {\n var props = keys(obj);\n var len = props.length;\n var vals = [];\n var idx = 0;\n\n while (idx < len) {\n vals[idx] = obj[props[idx]];\n idx += 1;\n }\n\n return vals;\n});\n\nexport default values;","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function refCount() {\n return function refCountOperatorFunction(source) {\n return source.lift(new RefCountOperator(source));\n };\n}\nvar RefCountOperator = (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n __extends(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n _this.connection = null;\n return _this;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=refCount.js.map","import { __extends } from \"tslib\";\nimport { SubjectSubscriber } from '../Subject';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nvar ConnectableObservable = (function (_super) {\n __extends(ConnectableObservable, _super);\n function ConnectableObservable(source, subjectFactory) {\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.subjectFactory = subjectFactory;\n _this._refCount = 0;\n _this._isComplete = false;\n return _this;\n }\n ConnectableObservable.prototype._subscribe = function (subscriber) {\n return this.getSubject().subscribe(subscriber);\n };\n ConnectableObservable.prototype.getSubject = function () {\n var subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n };\n ConnectableObservable.prototype.connect = function () {\n var connection = this._connection;\n if (!connection) {\n this._isComplete = false;\n connection = this._connection = new Subscription();\n connection.add(this.source\n .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n }\n return connection;\n };\n ConnectableObservable.prototype.refCount = function () {\n return higherOrderRefCount()(this);\n };\n return ConnectableObservable;\n}(Observable));\nexport { ConnectableObservable };\nexport var connectableObservableDescriptor = (function () {\n var connectableProto = ConnectableObservable.prototype;\n return {\n operator: { value: null },\n _refCount: { value: 0, writable: true },\n _subject: { value: null, writable: true },\n _connection: { value: null, writable: true },\n _subscribe: { value: connectableProto._subscribe },\n _isComplete: { value: connectableProto._isComplete, writable: true },\n getSubject: { value: connectableProto.getSubject },\n connect: { value: connectableProto.connect },\n refCount: { value: connectableProto.refCount }\n };\n})();\nvar ConnectableSubscriber = (function (_super) {\n __extends(ConnectableSubscriber, _super);\n function ConnectableSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n ConnectableSubscriber.prototype._error = function (err) {\n this._unsubscribe();\n _super.prototype._error.call(this, err);\n };\n ConnectableSubscriber.prototype._complete = function () {\n this.connectable._isComplete = true;\n this._unsubscribe();\n _super.prototype._complete.call(this);\n };\n ConnectableSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (connectable) {\n this.connectable = null;\n var connection = connectable._connection;\n connectable._refCount = 0;\n connectable._subject = null;\n connectable._connection = null;\n if (connection) {\n connection.unsubscribe();\n }\n }\n };\n return ConnectableSubscriber;\n}(SubjectSubscriber));\nvar RefCountOperator = (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n __extends(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=ConnectableObservable.js.map","import { connectableObservableDescriptor } from '../observable/ConnectableObservable';\nexport function multicast(subjectOrSubjectFactory, selector) {\n return function multicastOperatorFunction(source) {\n var subjectFactory;\n if (typeof subjectOrSubjectFactory === 'function') {\n subjectFactory = subjectOrSubjectFactory;\n }\n else {\n subjectFactory = function subjectFactory() {\n return subjectOrSubjectFactory;\n };\n }\n if (typeof selector === 'function') {\n return source.lift(new MulticastOperator(subjectFactory, selector));\n }\n var connectable = Object.create(source, connectableObservableDescriptor);\n connectable.source = source;\n connectable.subjectFactory = subjectFactory;\n return connectable;\n };\n}\nvar MulticastOperator = (function () {\n function MulticastOperator(subjectFactory, selector) {\n this.subjectFactory = subjectFactory;\n this.selector = selector;\n }\n MulticastOperator.prototype.call = function (subscriber, source) {\n var selector = this.selector;\n var subject = this.subjectFactory();\n var subscription = selector(subject).subscribe(subscriber);\n subscription.add(source.subscribe(subject));\n return subscription;\n };\n return MulticastOperator;\n}());\nexport { MulticastOperator };\n//# sourceMappingURL=multicast.js.map","import { multicast } from './multicast';\nimport { refCount } from './refCount';\nimport { Subject } from '../Subject';\nfunction shareSubjectFactory() {\n return new Subject();\n}\nexport function share() {\n return function (source) { return refCount()(multicast(shareSubjectFactory)(source)); };\n}\n//# sourceMappingURL=share.js.map","var ArgumentOutOfRangeErrorImpl = (function () {\n function ArgumentOutOfRangeErrorImpl() {\n Error.call(this);\n this.message = 'argument out of range';\n this.name = 'ArgumentOutOfRangeError';\n return this;\n }\n ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);\n return ArgumentOutOfRangeErrorImpl;\n})();\nexport var ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;\n//# sourceMappingURL=ArgumentOutOfRangeError.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { EMPTY } from '../observable/empty';\nexport function take(count) {\n return function (source) {\n if (count === 0) {\n return EMPTY;\n }\n else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\nvar TakeOperator = (function () {\n function TakeOperator(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n TakeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n };\n return TakeOperator;\n}());\nvar TakeSubscriber = (function (_super) {\n __extends(TakeSubscriber, _super);\n function TakeSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n TakeSubscriber.prototype._next = function (value) {\n var total = this.total;\n var count = ++this.count;\n if (count <= total) {\n this.destination.next(value);\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n };\n return TakeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=take.js.map","export default function _identity(x) {\n return x;\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _identity from \"./internal/_identity.js\";\n/**\n * A function that does nothing but return the parameter supplied to it. Good\n * as a default or placeholder function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> a\n * @param {*} x The value to return.\n * @return {*} The input value, `x`.\n * @example\n *\n * R.identity(1); //=> 1\n *\n * const obj = {};\n * R.identity(obj) === obj; //=> true\n * @symb R.identity(a) = a\n */\n\nvar identity =\n/*#__PURE__*/\n_curry1(_identity);\n\nexport default identity;","import { __extends } from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function delay(delay, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n var absoluteDelay = isDate(delay);\n var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);\n return function (source) { return source.lift(new DelayOperator(delayFor, scheduler)); };\n}\nvar DelayOperator = (function () {\n function DelayOperator(delay, scheduler) {\n this.delay = delay;\n this.scheduler = scheduler;\n }\n DelayOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));\n };\n return DelayOperator;\n}());\nvar DelaySubscriber = (function (_super) {\n __extends(DelaySubscriber, _super);\n function DelaySubscriber(destination, delay, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.delay = delay;\n _this.scheduler = scheduler;\n _this.queue = [];\n _this.active = false;\n _this.errored = false;\n return _this;\n }\n DelaySubscriber.dispatch = function (state) {\n var source = state.source;\n var queue = source.queue;\n var scheduler = state.scheduler;\n var destination = state.destination;\n while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {\n queue.shift().notification.observe(destination);\n }\n if (queue.length > 0) {\n var delay_1 = Math.max(0, queue[0].time - scheduler.now());\n this.schedule(state, delay_1);\n }\n else if (source.isStopped) {\n source.destination.complete();\n source.active = false;\n }\n else {\n this.unsubscribe();\n source.active = false;\n }\n };\n DelaySubscriber.prototype._schedule = function (scheduler) {\n this.active = true;\n var destination = this.destination;\n destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {\n source: this, destination: this.destination, scheduler: scheduler\n }));\n };\n DelaySubscriber.prototype.scheduleNotification = function (notification) {\n if (this.errored === true) {\n return;\n }\n var scheduler = this.scheduler;\n var message = new DelayMessage(scheduler.now() + this.delay, notification);\n this.queue.push(message);\n if (this.active === false) {\n this._schedule(scheduler);\n }\n };\n DelaySubscriber.prototype._next = function (value) {\n this.scheduleNotification(Notification.createNext(value));\n };\n DelaySubscriber.prototype._error = function (err) {\n this.errored = true;\n this.queue = [];\n this.destination.error(err);\n this.unsubscribe();\n };\n DelaySubscriber.prototype._complete = function () {\n if (this.queue.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n return DelaySubscriber;\n}(Subscriber));\nvar DelayMessage = (function () {\n function DelayMessage(time, notification) {\n this.time = time;\n this.notification = notification;\n }\n return DelayMessage;\n}());\n//# sourceMappingURL=delay.js.map","export function isDate(value) {\n return value instanceof Date && !isNaN(+value);\n}\n//# sourceMappingURL=isDate.js.map","import { __extends } from \"tslib\";\nimport { root } from '../../util/root';\nimport { Observable } from '../../Observable';\nimport { Subscriber } from '../../Subscriber';\nimport { map } from '../../operators/map';\nfunction getCORSRequest() {\n if (root.XMLHttpRequest) {\n return new root.XMLHttpRequest();\n }\n else if (!!root.XDomainRequest) {\n return new root.XDomainRequest();\n }\n else {\n throw new Error('CORS is not supported by your browser');\n }\n}\nfunction getXMLHttpRequest() {\n if (root.XMLHttpRequest) {\n return new root.XMLHttpRequest();\n }\n else {\n var progId = void 0;\n try {\n var progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];\n for (var i = 0; i < 3; i++) {\n try {\n progId = progIds[i];\n if (new root.ActiveXObject(progId)) {\n break;\n }\n }\n catch (e) {\n }\n }\n return new root.ActiveXObject(progId);\n }\n catch (e) {\n throw new Error('XMLHttpRequest is not supported by your browser');\n }\n }\n}\nexport function ajaxGet(url, headers) {\n return new AjaxObservable({ method: 'GET', url: url, headers: headers });\n}\nexport function ajaxPost(url, body, headers) {\n return new AjaxObservable({ method: 'POST', url: url, body: body, headers: headers });\n}\nexport function ajaxDelete(url, headers) {\n return new AjaxObservable({ method: 'DELETE', url: url, headers: headers });\n}\nexport function ajaxPut(url, body, headers) {\n return new AjaxObservable({ method: 'PUT', url: url, body: body, headers: headers });\n}\nexport function ajaxPatch(url, body, headers) {\n return new AjaxObservable({ method: 'PATCH', url: url, body: body, headers: headers });\n}\nvar mapResponse = map(function (x, index) { return x.response; });\nexport function ajaxGetJSON(url, headers) {\n return mapResponse(new AjaxObservable({\n method: 'GET',\n url: url,\n responseType: 'json',\n headers: headers\n }));\n}\nvar AjaxObservable = (function (_super) {\n __extends(AjaxObservable, _super);\n function AjaxObservable(urlOrRequest) {\n var _this = _super.call(this) || this;\n var request = {\n async: true,\n createXHR: function () {\n return this.crossDomain ? getCORSRequest() : getXMLHttpRequest();\n },\n crossDomain: true,\n withCredentials: false,\n headers: {},\n method: 'GET',\n responseType: 'json',\n timeout: 0\n };\n if (typeof urlOrRequest === 'string') {\n request.url = urlOrRequest;\n }\n else {\n for (var prop in urlOrRequest) {\n if (urlOrRequest.hasOwnProperty(prop)) {\n request[prop] = urlOrRequest[prop];\n }\n }\n }\n _this.request = request;\n return _this;\n }\n AjaxObservable.prototype._subscribe = function (subscriber) {\n return new AjaxSubscriber(subscriber, this.request);\n };\n AjaxObservable.create = (function () {\n var create = function (urlOrRequest) {\n return new AjaxObservable(urlOrRequest);\n };\n create.get = ajaxGet;\n create.post = ajaxPost;\n create.delete = ajaxDelete;\n create.put = ajaxPut;\n create.patch = ajaxPatch;\n create.getJSON = ajaxGetJSON;\n return create;\n })();\n return AjaxObservable;\n}(Observable));\nexport { AjaxObservable };\nvar AjaxSubscriber = (function (_super) {\n __extends(AjaxSubscriber, _super);\n function AjaxSubscriber(destination, request) {\n var _this = _super.call(this, destination) || this;\n _this.request = request;\n _this.done = false;\n var headers = request.headers = request.headers || {};\n if (!request.crossDomain && !_this.getHeader(headers, 'X-Requested-With')) {\n headers['X-Requested-With'] = 'XMLHttpRequest';\n }\n var contentTypeHeader = _this.getHeader(headers, 'Content-Type');\n if (!contentTypeHeader && !(root.FormData && request.body instanceof root.FormData) && typeof request.body !== 'undefined') {\n headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';\n }\n request.body = _this.serializeBody(request.body, _this.getHeader(request.headers, 'Content-Type'));\n _this.send();\n return _this;\n }\n AjaxSubscriber.prototype.next = function (e) {\n this.done = true;\n var _a = this, xhr = _a.xhr, request = _a.request, destination = _a.destination;\n var result;\n try {\n result = new AjaxResponse(e, xhr, request);\n }\n catch (err) {\n return destination.error(err);\n }\n destination.next(result);\n };\n AjaxSubscriber.prototype.send = function () {\n var _a = this, request = _a.request, _b = _a.request, user = _b.user, method = _b.method, url = _b.url, async = _b.async, password = _b.password, headers = _b.headers, body = _b.body;\n try {\n var xhr = this.xhr = request.createXHR();\n this.setupEvents(xhr, request);\n if (user) {\n xhr.open(method, url, async, user, password);\n }\n else {\n xhr.open(method, url, async);\n }\n if (async) {\n xhr.timeout = request.timeout;\n xhr.responseType = request.responseType;\n }\n if ('withCredentials' in xhr) {\n xhr.withCredentials = !!request.withCredentials;\n }\n this.setHeaders(xhr, headers);\n if (body) {\n xhr.send(body);\n }\n else {\n xhr.send();\n }\n }\n catch (err) {\n this.error(err);\n }\n };\n AjaxSubscriber.prototype.serializeBody = function (body, contentType) {\n if (!body || typeof body === 'string') {\n return body;\n }\n else if (root.FormData && body instanceof root.FormData) {\n return body;\n }\n if (contentType) {\n var splitIndex = contentType.indexOf(';');\n if (splitIndex !== -1) {\n contentType = contentType.substring(0, splitIndex);\n }\n }\n switch (contentType) {\n case 'application/x-www-form-urlencoded':\n return Object.keys(body).map(function (key) { return encodeURIComponent(key) + \"=\" + encodeURIComponent(body[key]); }).join('&');\n case 'application/json':\n return JSON.stringify(body);\n default:\n return body;\n }\n };\n AjaxSubscriber.prototype.setHeaders = function (xhr, headers) {\n for (var key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n };\n AjaxSubscriber.prototype.getHeader = function (headers, headerName) {\n for (var key in headers) {\n if (key.toLowerCase() === headerName.toLowerCase()) {\n return headers[key];\n }\n }\n return undefined;\n };\n AjaxSubscriber.prototype.setupEvents = function (xhr, request) {\n var progressSubscriber = request.progressSubscriber;\n function xhrTimeout(e) {\n var _a = xhrTimeout, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var error;\n try {\n error = new AjaxTimeoutError(this, request);\n }\n catch (err) {\n error = err;\n }\n subscriber.error(error);\n }\n xhr.ontimeout = xhrTimeout;\n xhrTimeout.request = request;\n xhrTimeout.subscriber = this;\n xhrTimeout.progressSubscriber = progressSubscriber;\n if (xhr.upload && 'withCredentials' in xhr) {\n if (progressSubscriber) {\n var xhrProgress_1;\n xhrProgress_1 = function (e) {\n var progressSubscriber = xhrProgress_1.progressSubscriber;\n progressSubscriber.next(e);\n };\n if (root.XDomainRequest) {\n xhr.onprogress = xhrProgress_1;\n }\n else {\n xhr.upload.onprogress = xhrProgress_1;\n }\n xhrProgress_1.progressSubscriber = progressSubscriber;\n }\n var xhrError_1;\n xhrError_1 = function (e) {\n var _a = xhrError_1, progressSubscriber = _a.progressSubscriber, subscriber = _a.subscriber, request = _a.request;\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var error;\n try {\n error = new AjaxError('ajax error', this, request);\n }\n catch (err) {\n error = err;\n }\n subscriber.error(error);\n };\n xhr.onerror = xhrError_1;\n xhrError_1.request = request;\n xhrError_1.subscriber = this;\n xhrError_1.progressSubscriber = progressSubscriber;\n }\n function xhrReadyStateChange(e) {\n return;\n }\n xhr.onreadystatechange = xhrReadyStateChange;\n xhrReadyStateChange.subscriber = this;\n xhrReadyStateChange.progressSubscriber = progressSubscriber;\n xhrReadyStateChange.request = request;\n function xhrLoad(e) {\n var _a = xhrLoad, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n if (this.readyState === 4) {\n var status_1 = this.status === 1223 ? 204 : this.status;\n var response = (this.responseType === 'text' ? (this.response || this.responseText) : this.response);\n if (status_1 === 0) {\n status_1 = response ? 200 : 0;\n }\n if (status_1 < 400) {\n if (progressSubscriber) {\n progressSubscriber.complete();\n }\n subscriber.next(e);\n subscriber.complete();\n }\n else {\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var error = void 0;\n try {\n error = new AjaxError('ajax error ' + status_1, this, request);\n }\n catch (err) {\n error = err;\n }\n subscriber.error(error);\n }\n }\n }\n xhr.onload = xhrLoad;\n xhrLoad.subscriber = this;\n xhrLoad.progressSubscriber = progressSubscriber;\n xhrLoad.request = request;\n };\n AjaxSubscriber.prototype.unsubscribe = function () {\n var _a = this, done = _a.done, xhr = _a.xhr;\n if (!done && xhr && xhr.readyState !== 4 && typeof xhr.abort === 'function') {\n xhr.abort();\n }\n _super.prototype.unsubscribe.call(this);\n };\n return AjaxSubscriber;\n}(Subscriber));\nexport { AjaxSubscriber };\nvar AjaxResponse = (function () {\n function AjaxResponse(originalEvent, xhr, request) {\n this.originalEvent = originalEvent;\n this.xhr = xhr;\n this.request = request;\n this.status = xhr.status;\n this.responseType = xhr.responseType || request.responseType;\n this.response = parseXhrResponse(this.responseType, xhr);\n }\n return AjaxResponse;\n}());\nexport { AjaxResponse };\nvar AjaxErrorImpl = (function () {\n function AjaxErrorImpl(message, xhr, request) {\n Error.call(this);\n this.message = message;\n this.name = 'AjaxError';\n this.xhr = xhr;\n this.request = request;\n this.status = xhr.status;\n this.responseType = xhr.responseType || request.responseType;\n this.response = parseXhrResponse(this.responseType, xhr);\n return this;\n }\n AjaxErrorImpl.prototype = Object.create(Error.prototype);\n return AjaxErrorImpl;\n})();\nexport var AjaxError = AjaxErrorImpl;\nfunction parseJson(xhr) {\n if ('response' in xhr) {\n return xhr.responseType ? xhr.response : JSON.parse(xhr.response || xhr.responseText || 'null');\n }\n else {\n return JSON.parse(xhr.responseText || 'null');\n }\n}\nfunction parseXhrResponse(responseType, xhr) {\n switch (responseType) {\n case 'json':\n return parseJson(xhr);\n case 'xml':\n return xhr.responseXML;\n case 'text':\n default:\n return ('response' in xhr) ? xhr.response : xhr.responseText;\n }\n}\nvar AjaxTimeoutErrorImpl = (function () {\n function AjaxTimeoutErrorImpl(xhr, request) {\n AjaxError.call(this, 'ajax timeout', xhr, request);\n this.name = 'AjaxTimeoutError';\n return this;\n }\n AjaxTimeoutErrorImpl.prototype = Object.create(AjaxError.prototype);\n return AjaxTimeoutErrorImpl;\n})();\nexport var AjaxTimeoutError = AjaxTimeoutErrorImpl;\n//# sourceMappingURL=AjaxObservable.js.map","import { AjaxObservable } from './AjaxObservable';\nexport var ajax = (function () { return AjaxObservable.create; })();\n//# sourceMappingURL=ajax.js.map"],"sourceRoot":""} \ No newline at end of file diff --git a/doc/theme/material/assets/javascripts/vendor.js b/doc/theme/material/assets/javascripts/vendor.js new file mode 100644 index 00000000..3a57da57 --- /dev/null +++ b/doc/theme/material/assets/javascripts/vendor.js @@ -0,0 +1,6565 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["assets/javascripts/vendor"],{ + +/***/ "./node_modules/clipboard/dist/clipboard.js": +/*!**************************************************!*\ + !*** ./node_modules/clipboard/dist/clipboard.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("/*!\n * clipboard.js v2.0.6\n * https://clipboardjs.com/\n * \n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory();\n\telse {}\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 6);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar is = __webpack_require__(3);\nvar delegate = __webpack_require__(4);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar closest = __webpack_require__(5);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(0);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n\n// CONCATENATED MODULE: ./src/clipboard-action.js\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\n/**\n * Inner class which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n */\n\nvar clipboard_action_ClipboardAction = function () {\n /**\n * @param {Object} options\n */\n function ClipboardAction(options) {\n _classCallCheck(this, ClipboardAction);\n\n this.resolveOptions(options);\n this.initSelection();\n }\n\n /**\n * Defines base properties passed from constructor.\n * @param {Object} options\n */\n\n\n _createClass(ClipboardAction, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = options.action;\n this.container = options.container;\n this.emitter = options.emitter;\n this.target = options.target;\n this.text = options.text;\n this.trigger = options.trigger;\n\n this.selectedText = '';\n }\n\n /**\n * Decides which selection strategy is going to be applied based\n * on the existence of `text` and `target` properties.\n */\n\n }, {\n key: 'initSelection',\n value: function initSelection() {\n if (this.text) {\n this.selectFake();\n } else if (this.target) {\n this.selectTarget();\n }\n }\n\n /**\n * Creates a fake textarea element, sets its value from `text` property,\n * and makes a selection on it.\n */\n\n }, {\n key: 'selectFake',\n value: function selectFake() {\n var _this = this;\n\n var isRTL = document.documentElement.getAttribute('dir') == 'rtl';\n\n this.removeFake();\n\n this.fakeHandlerCallback = function () {\n return _this.removeFake();\n };\n this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;\n\n this.fakeElem = document.createElement('textarea');\n // Prevent zooming on iOS\n this.fakeElem.style.fontSize = '12pt';\n // Reset box model\n this.fakeElem.style.border = '0';\n this.fakeElem.style.padding = '0';\n this.fakeElem.style.margin = '0';\n // Move element out of screen horizontally\n this.fakeElem.style.position = 'absolute';\n this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';\n // Move element to the same position vertically\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n this.fakeElem.style.top = yPosition + 'px';\n\n this.fakeElem.setAttribute('readonly', '');\n this.fakeElem.value = this.text;\n\n this.container.appendChild(this.fakeElem);\n\n this.selectedText = select_default()(this.fakeElem);\n this.copyText();\n }\n\n /**\n * Only removes the fake element after another click event, that way\n * a user can hit `Ctrl+C` to copy because selection still exists.\n */\n\n }, {\n key: 'removeFake',\n value: function removeFake() {\n if (this.fakeHandler) {\n this.container.removeEventListener('click', this.fakeHandlerCallback);\n this.fakeHandler = null;\n this.fakeHandlerCallback = null;\n }\n\n if (this.fakeElem) {\n this.container.removeChild(this.fakeElem);\n this.fakeElem = null;\n }\n }\n\n /**\n * Selects the content from element passed on `target` property.\n */\n\n }, {\n key: 'selectTarget',\n value: function selectTarget() {\n this.selectedText = select_default()(this.target);\n this.copyText();\n }\n\n /**\n * Executes the copy operation based on the current selection.\n */\n\n }, {\n key: 'copyText',\n value: function copyText() {\n var succeeded = void 0;\n\n try {\n succeeded = document.execCommand(this.action);\n } catch (err) {\n succeeded = false;\n }\n\n this.handleResult(succeeded);\n }\n\n /**\n * Fires an event based on the copy operation result.\n * @param {Boolean} succeeded\n */\n\n }, {\n key: 'handleResult',\n value: function handleResult(succeeded) {\n this.emitter.emit(succeeded ? 'success' : 'error', {\n action: this.action,\n text: this.selectedText,\n trigger: this.trigger,\n clearSelection: this.clearSelection.bind(this)\n });\n }\n\n /**\n * Moves focus away from `target` and back to the trigger, removes current selection.\n */\n\n }, {\n key: 'clearSelection',\n value: function clearSelection() {\n if (this.trigger) {\n this.trigger.focus();\n }\n document.activeElement.blur();\n window.getSelection().removeAllRanges();\n }\n\n /**\n * Sets the `action` to be performed which can be either 'copy' or 'cut'.\n * @param {String} action\n */\n\n }, {\n key: 'destroy',\n\n\n /**\n * Destroy lifecycle.\n */\n value: function destroy() {\n this.removeFake();\n }\n }, {\n key: 'action',\n set: function set() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';\n\n this._action = action;\n\n if (this._action !== 'copy' && this._action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n }\n }\n\n /**\n * Gets the `action` property.\n * @return {String}\n */\n ,\n get: function get() {\n return this._action;\n }\n\n /**\n * Sets the `target` property using an element\n * that will be have its content copied.\n * @param {Element} target\n */\n\n }, {\n key: 'target',\n set: function set(target) {\n if (target !== undefined) {\n if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {\n if (this.action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n\n this._target = target;\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n }\n }\n\n /**\n * Gets the `target` property.\n * @return {String|HTMLElement}\n */\n ,\n get: function get() {\n return this._target;\n }\n }]);\n\n return ClipboardAction;\n}();\n\n/* harmony default export */ var clipboard_action = (clipboard_action_ClipboardAction);\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(1);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(2);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n\n// CONCATENATED MODULE: ./src/clipboard.js\nvar clipboard_typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar clipboard_createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction clipboard_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\nvar clipboard_Clipboard = function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n clipboard_classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));\n\n _this.resolveOptions(options);\n _this.listenClick(trigger);\n return _this;\n }\n\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n clipboard_createClass(Clipboard, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: 'listenClick',\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: 'onClick',\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n\n if (this.clipboardAction) {\n this.clipboardAction = null;\n }\n\n this.clipboardAction = new clipboard_action({\n action: this.action(trigger),\n target: this.target(trigger),\n text: this.text(trigger),\n container: this.container,\n trigger: trigger,\n emitter: this\n });\n }\n\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: 'defaultAction',\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: 'defaultTarget',\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: 'defaultText',\n\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: 'destroy',\n value: function destroy() {\n this.listener.destroy();\n\n if (this.clipboardAction) {\n this.clipboardAction.destroy();\n this.clipboardAction = null;\n }\n }\n }], [{\n key: 'isSupported',\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n\n return support;\n }\n }]);\n\n return Clipboard;\n}(tiny_emitter_default.a);\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\n\nfunction getAttributeValue(suffix, element) {\n var attribute = 'data-clipboard-' + suffix;\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n\n/* harmony default export */ var clipboard = __webpack_exports__[\"default\"] = (clipboard_Clipboard);\n\n/***/ })\n/******/ ])[\"default\"];\n});\n\n//# sourceURL=webpack:///./node_modules/clipboard/dist/clipboard.js?"); + +/***/ }), + +/***/ "./node_modules/escape-html/index.js": +/*!*******************************************!*\ + !*** ./node_modules/escape-html/index.js ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n\n\n//# sourceURL=webpack:///./node_modules/escape-html/index.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/F.js": +/*!************************************!*\ + !*** ./node_modules/ramda/es/F.js ***! + \************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * A function that always returns `false`. Any passed in parameters are ignored.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig * -> Boolean\n * @param {*}\n * @return {Boolean}\n * @see R.T\n * @example\n *\n * R.F(); //=> false\n */\nvar F = function () {\n return false;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (F);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/F.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/T.js": +/*!************************************!*\ + !*** ./node_modules/ramda/es/T.js ***! + \************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * A function that always returns `true`. Any passed in parameters are ignored.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig * -> Boolean\n * @param {*}\n * @return {Boolean}\n * @see R.F\n * @example\n *\n * R.T(); //=> true\n */\nvar T = function () {\n return true;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (T);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/T.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/__.js": +/*!*************************************!*\ + !*** ./node_modules/ramda/es/__.js ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * A special placeholder value used to specify \"gaps\" within curried functions,\n * allowing partial application of any combination of arguments, regardless of\n * their positions.\n *\n * If `g` is a curried ternary function and `_` is `R.__`, the following are\n * equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2, _)(1, 3)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @name __\n * @constant\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @example\n *\n * const greet = R.replace('{name}', R.__, 'Hello, {name}!');\n * greet('Alice'); //=> 'Hello, Alice!'\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n '@@functional/placeholder': true\n});\n\n//# sourceURL=webpack:///./node_modules/ramda/es/__.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/add.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/add.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Adds two values.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a\n * @param {Number} b\n * @return {Number}\n * @see R.subtract\n * @example\n *\n * R.add(2, 3); //=> 5\n * R.add(7)(10); //=> 17\n */\n\nvar add =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function add(a, b) {\n return Number(a) + Number(b);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (add);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/add.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/addIndex.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/addIndex.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n\n\n\n/**\n * Creates a new list iteration function from an existing one by adding two new\n * parameters to its callback function: the current index, and the entire list.\n *\n * This would turn, for instance, [`R.map`](#map) function into one that\n * more closely resembles `Array.prototype.map`. Note that this will only work\n * for functions in which the iteration callback function is the first\n * parameter, and where the list is the last parameter. (This latter might be\n * unimportant if the list parameter is not used.)\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Function\n * @category List\n * @sig ((a ... -> b) ... -> [a] -> *) -> ((a ..., Int, [a] -> b) ... -> [a] -> *)\n * @param {Function} fn A list iteration function that does not pass index or list to its callback\n * @return {Function} An altered list iteration function that passes (item, index, list) to its callback\n * @example\n *\n * const mapIndexed = R.addIndex(R.map);\n * mapIndexed((val, idx) => idx + '-' + val, ['f', 'o', 'o', 'b', 'a', 'r']);\n * //=> ['0-f', '1-o', '2-o', '3-b', '4-a', '5-r']\n */\n\nvar addIndex =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function addIndex(fn) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(fn.length, function () {\n var idx = 0;\n var origFn = arguments[0];\n var list = arguments[arguments.length - 1];\n var args = Array.prototype.slice.call(arguments, 0);\n\n args[0] = function () {\n var result = origFn.apply(this, Object(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arguments, [idx, list]));\n idx += 1;\n return result;\n };\n\n return fn.apply(this, args);\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (addIndex);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/addIndex.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/adjust.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/adjust.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n\n/**\n * Applies a function to the value at the given index of an array, returning a\n * new copy of the array with the element at the given index replaced with the\n * result of the function application.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig Number -> (a -> a) -> [a] -> [a]\n * @param {Number} idx The index.\n * @param {Function} fn The function to apply.\n * @param {Array|Arguments} list An array-like object whose value\n * at the supplied index will be replaced.\n * @return {Array} A copy of the supplied array-like object with\n * the element at index `idx` replaced with the value\n * returned by applying `fn` to the existing element.\n * @see R.update\n * @example\n *\n * R.adjust(1, R.toUpper, ['a', 'b', 'c', 'd']); //=> ['a', 'B', 'c', 'd']\n * R.adjust(-1, R.toUpper, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c', 'D']\n * @symb R.adjust(-1, f, [a, b]) = [a, f(b)]\n * @symb R.adjust(0, f, [a, b]) = [f(a), b]\n */\n\nvar adjust =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function adjust(idx, fn, list) {\n if (idx >= list.length || idx < -list.length) {\n return list;\n }\n\n var start = idx < 0 ? list.length : 0;\n\n var _idx = start + idx;\n\n var _list = Object(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(list);\n\n _list[_idx] = fn(list[_idx]);\n return _list;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (adjust);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/adjust.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/all.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/all.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xall_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xall.js */ \"./node_modules/ramda/es/internal/_xall.js\");\n\n\n\n/**\n * Returns `true` if all elements of the list match the predicate, `false` if\n * there are any that don't.\n *\n * Dispatches to the `all` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is satisfied by every element, `false`\n * otherwise.\n * @see R.any, R.none, R.transduce\n * @example\n *\n * const equals3 = R.equals(3);\n * R.all(equals3)([3, 3, 3, 3]); //=> true\n * R.all(equals3)([3, 3, 1, 3]); //=> false\n */\n\nvar all =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['all'], _internal_xall_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function all(fn, list) {\n var idx = 0;\n\n while (idx < list.length) {\n if (!fn(list[idx])) {\n return false;\n }\n\n idx += 1;\n }\n\n return true;\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (all);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/all.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/allPass.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/allPass.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./max.js */ \"./node_modules/ramda/es/max.js\");\n/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pluck.js */ \"./node_modules/ramda/es/pluck.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n\n\n\n\n\n/**\n * Takes a list of predicates and returns a predicate that returns true for a\n * given list of arguments if every one of the provided predicates is satisfied\n * by those arguments.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Logic\n * @sig [(*... -> Boolean)] -> (*... -> Boolean)\n * @param {Array} predicates An array of predicates to check\n * @return {Function} The combined predicate\n * @see R.anyPass\n * @example\n *\n * const isQueen = R.propEq('rank', 'Q');\n * const isSpade = R.propEq('suit', '♠︎');\n * const isQueenOfSpades = R.allPass([isQueen, isSpade]);\n *\n * isQueenOfSpades({rank: 'Q', suit: '♣︎'}); //=> false\n * isQueenOfSpades({rank: 'Q', suit: '♠︎'}); //=> true\n */\n\nvar allPass =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function allPass(preds) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_reduce_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(_max_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], 0, Object(_pluck_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])('length', preds)), function () {\n var idx = 0;\n var len = preds.length;\n\n while (idx < len) {\n if (!preds[idx].apply(this, arguments)) {\n return false;\n }\n\n idx += 1;\n }\n\n return true;\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (allPass);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/allPass.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/always.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/always.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Returns a function that always returns the given value. Note that for\n * non-primitives the value returned is a reference to the original value.\n *\n * This function is known as `const`, `constant`, or `K` (for K combinator) in\n * other languages and libraries.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> (* -> a)\n * @param {*} val The value to wrap in a function\n * @return {Function} A Function :: * -> val.\n * @example\n *\n * const t = R.always('Tee');\n * t(); //=> 'Tee'\n */\n\nvar always =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function always(val) {\n return function () {\n return val;\n };\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (always);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/always.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/and.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/and.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns `true` if both arguments are `true`; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {Any} a\n * @param {Any} b\n * @return {Any} the first argument if it is falsy, otherwise the second argument.\n * @see R.both, R.xor\n * @example\n *\n * R.and(true, true); //=> true\n * R.and(true, false); //=> false\n * R.and(false, true); //=> false\n * R.and(false, false); //=> false\n */\n\nvar and =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function and(a, b) {\n return a && b;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (and);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/and.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/andThen.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/andThen.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_assertPromise_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_assertPromise.js */ \"./node_modules/ramda/es/internal/_assertPromise.js\");\n\n\n/**\n * Returns the result of applying the onSuccess function to the value inside\n * a successfully resolved promise. This is useful for working with promises\n * inside function compositions.\n *\n * @func\n * @memberOf R\n * @since v0.27.0\n * @category Function\n * @sig (a -> b) -> (Promise e a) -> (Promise e b)\n * @sig (a -> (Promise e b)) -> (Promise e a) -> (Promise e b)\n * @param {Function} onSuccess The function to apply. Can return a value or a promise of a value.\n * @param {Promise} p\n * @return {Promise} The result of calling `p.then(onSuccess)`\n * @see R.otherwise\n * @example\n *\n * var makeQuery = (email) => ({ query: { email }});\n *\n * //getMemberName :: String -> Promise ({firstName, lastName})\n * var getMemberName = R.pipe(\n * makeQuery,\n * fetchMember,\n * R.andThen(R.pick(['firstName', 'lastName']))\n * );\n */\n\nvar andThen =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function andThen(f, p) {\n Object(_internal_assertPromise_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])('andThen', p);\n\n return p.then(f);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (andThen);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/andThen.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/any.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/any.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xany_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xany.js */ \"./node_modules/ramda/es/internal/_xany.js\");\n\n\n\n/**\n * Returns `true` if at least one of the elements of the list match the predicate,\n * `false` otherwise.\n *\n * Dispatches to the `any` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is satisfied by at least one element, `false`\n * otherwise.\n * @see R.all, R.none, R.transduce\n * @example\n *\n * const lessThan0 = R.flip(R.lt)(0);\n * const lessThan2 = R.flip(R.lt)(2);\n * R.any(lessThan0)([1, 2]); //=> false\n * R.any(lessThan2)([1, 2]); //=> true\n */\n\nvar any =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['any'], _internal_xany_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function any(fn, list) {\n var idx = 0;\n\n while (idx < list.length) {\n if (fn(list[idx])) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (any);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/any.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/anyPass.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/anyPass.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./max.js */ \"./node_modules/ramda/es/max.js\");\n/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pluck.js */ \"./node_modules/ramda/es/pluck.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n\n\n\n\n\n/**\n * Takes a list of predicates and returns a predicate that returns true for a\n * given list of arguments if at least one of the provided predicates is\n * satisfied by those arguments.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Logic\n * @sig [(*... -> Boolean)] -> (*... -> Boolean)\n * @param {Array} predicates An array of predicates to check\n * @return {Function} The combined predicate\n * @see R.allPass\n * @example\n *\n * const isClub = R.propEq('suit', '♣');\n * const isSpade = R.propEq('suit', '♠');\n * const isBlackCard = R.anyPass([isClub, isSpade]);\n *\n * isBlackCard({rank: '10', suit: '♣'}); //=> true\n * isBlackCard({rank: 'Q', suit: '♠'}); //=> true\n * isBlackCard({rank: 'Q', suit: '♦'}); //=> false\n */\n\nvar anyPass =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function anyPass(preds) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_reduce_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(_max_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], 0, Object(_pluck_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])('length', preds)), function () {\n var idx = 0;\n var len = preds.length;\n\n while (idx < len) {\n if (preds[idx].apply(this, arguments)) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (anyPass);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/anyPass.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/ap.js": +/*!*************************************!*\ + !*** ./node_modules/ramda/es/ap.js ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n\n\n\n\n/**\n * ap applies a list of functions to a list of values.\n *\n * Dispatches to the `ap` method of the second argument, if present. Also\n * treats curried functions as applicatives.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig [a -> b] -> [a] -> [b]\n * @sig Apply f => f (a -> b) -> f a -> f b\n * @sig (r -> a -> b) -> (r -> a) -> (r -> b)\n * @param {*} applyF\n * @param {*} applyX\n * @return {*}\n * @example\n *\n * R.ap([R.multiply(2), R.add(3)], [1,2,3]); //=> [2, 4, 6, 4, 5, 6]\n * R.ap([R.concat('tasty '), R.toUpper], ['pizza', 'salad']); //=> [\"tasty pizza\", \"tasty salad\", \"PIZZA\", \"SALAD\"]\n *\n * // R.ap can also be used as S combinator\n * // when only two functions are passed\n * R.ap(R.concat, R.toUpper)('Ramda') //=> 'RamdaRAMDA'\n * @symb R.ap([f, g], [a, b]) = [f(a), f(b), g(a), g(b)]\n */\n\nvar ap =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function ap(applyF, applyX) {\n return typeof applyX['fantasy-land/ap'] === 'function' ? applyX['fantasy-land/ap'](applyF) : typeof applyF.ap === 'function' ? applyF.ap(applyX) : typeof applyF === 'function' ? function (x) {\n return applyF(x)(applyX(x));\n } : Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(function (acc, f) {\n return Object(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(acc, Object(_map_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(f, applyX));\n }, [], applyF);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ap);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/ap.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/aperture.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/aperture.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_aperture_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_aperture.js */ \"./node_modules/ramda/es/internal/_aperture.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xaperture_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_xaperture.js */ \"./node_modules/ramda/es/internal/_xaperture.js\");\n\n\n\n\n/**\n * Returns a new list, composed of n-tuples of consecutive elements. If `n` is\n * greater than the length of the list, an empty list is returned.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig Number -> [a] -> [[a]]\n * @param {Number} n The size of the tuples to create\n * @param {Array} list The list to split into `n`-length tuples\n * @return {Array} The resulting list of `n`-length tuples\n * @see R.transduce\n * @example\n *\n * R.aperture(2, [1, 2, 3, 4, 5]); //=> [[1, 2], [2, 3], [3, 4], [4, 5]]\n * R.aperture(3, [1, 2, 3, 4, 5]); //=> [[1, 2, 3], [2, 3, 4], [3, 4, 5]]\n * R.aperture(7, [1, 2, 3, 4, 5]); //=> []\n */\n\nvar aperture =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])([], _internal_xaperture_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], _internal_aperture_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (aperture);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/aperture.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/append.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/append.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Returns a new list containing the contents of the given list, followed by\n * the given element.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} el The element to add to the end of the new list.\n * @param {Array} list The list of elements to add a new item to.\n * list.\n * @return {Array} A new list containing the elements of the old list followed by `el`.\n * @see R.prepend\n * @example\n *\n * R.append('tests', ['write', 'more']); //=> ['write', 'more', 'tests']\n * R.append('tests', []); //=> ['tests']\n * R.append(['tests'], ['write', 'more']); //=> ['write', 'more', ['tests']]\n */\n\nvar append =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function append(el, list) {\n return Object(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(list, [el]);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (append);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/append.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/apply.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/apply.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Applies function `fn` to the argument list `args`. This is useful for\n * creating a fixed-arity function from a variadic function. `fn` should be a\n * bound function if context is significant.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig (*... -> a) -> [*] -> a\n * @param {Function} fn The function which will be called with `args`\n * @param {Array} args The arguments to call `fn` with\n * @return {*} result The result, equivalent to `fn(...args)`\n * @see R.call, R.unapply\n * @example\n *\n * const nums = [1, 2, 3, -99, 42, 6, 7];\n * R.apply(Math.max, nums); //=> 42\n * @symb R.apply(f, [a, b, c]) = f(a, b, c)\n */\n\nvar apply =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function apply(fn, args) {\n return fn.apply(this, args);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (apply);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/apply.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/applySpec.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/applySpec.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _apply_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./apply.js */ \"./node_modules/ramda/es/apply.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./max.js */ \"./node_modules/ramda/es/max.js\");\n/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pluck.js */ \"./node_modules/ramda/es/pluck.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/ramda/es/keys.js\");\n/* harmony import */ var _values_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./values.js */ \"./node_modules/ramda/es/values.js\");\n\n\n\n\n\n\n\n // Use custom mapValues function to avoid issues with specs that include a \"map\" key and R.map\n// delegating calls to .map\n\nfunction mapValues(fn, obj) {\n return Object(_keys_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(obj).reduce(function (acc, key) {\n acc[key] = fn(obj[key]);\n return acc;\n }, {});\n}\n/**\n * Given a spec object recursively mapping properties to functions, creates a\n * function producing an object of the same structure, by mapping each property\n * to the result of calling its associated function with the supplied arguments.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Function\n * @sig {k: ((a, b, ..., m) -> v)} -> ((a, b, ..., m) -> {k: v})\n * @param {Object} spec an object recursively mapping properties to functions for\n * producing the values for these properties.\n * @return {Function} A function that returns an object of the same structure\n * as `spec', with each property set to the value returned by calling its\n * associated function with the supplied arguments.\n * @see R.converge, R.juxt\n * @example\n *\n * const getMetrics = R.applySpec({\n * sum: R.add,\n * nested: { mul: R.multiply }\n * });\n * getMetrics(2, 4); // => { sum: 6, nested: { mul: 8 } }\n * @symb R.applySpec({ x: f, y: { z: g } })(a, b) = { x: f(a, b), y: { z: g(a, b) } }\n */\n\n\nvar applySpec =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function applySpec(spec) {\n spec = mapValues(function (v) {\n return typeof v == 'function' ? v : applySpec(v);\n }, spec);\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Object(_reduce_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(_max_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], 0, Object(_pluck_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])('length', Object(_values_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(spec))), function () {\n var args = arguments;\n return mapValues(function (f) {\n return Object(_apply_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(f, args);\n }, spec);\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (applySpec);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/applySpec.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/applyTo.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/applyTo.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Takes a value and applies a function to it.\n *\n * This function is also known as the `thrush` combinator.\n *\n * @func\n * @memberOf R\n * @since v0.25.0\n * @category Function\n * @sig a -> (a -> b) -> b\n * @param {*} x The value\n * @param {Function} f The function to apply\n * @return {*} The result of applying `f` to `x`\n * @example\n *\n * const t42 = R.applyTo(42);\n * t42(R.identity); //=> 42\n * t42(R.add(1)); //=> 43\n */\n\nvar applyTo =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function applyTo(x, f) {\n return f(x);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (applyTo);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/applyTo.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/ascend.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/ascend.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Makes an ascending comparator function out of a function that returns a value\n * that can be compared with `<` and `>`.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Function\n * @sig Ord b => (a -> b) -> a -> a -> Number\n * @param {Function} fn A function of arity one that returns a value that can be compared\n * @param {*} a The first item to be compared.\n * @param {*} b The second item to be compared.\n * @return {Number} `-1` if fn(a) < fn(b), `1` if fn(b) < fn(a), otherwise `0`\n * @see R.descend\n * @example\n *\n * const byAge = R.ascend(R.prop('age'));\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByYoungestFirst = R.sort(byAge, people);\n * //=> [{ name: 'Mikhail', age: 62 },{ name: 'Emma', age: 70 }, { name: 'Peter', age: 78 }]\n */\n\nvar ascend =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function ascend(fn, a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ascend);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/ascend.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/assoc.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/assoc.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Makes a shallow clone of an object, setting or overriding the specified\n * property with the given value. Note that this copies and flattens prototype\n * properties onto the new object as well. All non-primitive properties are\n * copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @sig String -> a -> {k: v} -> {k: v}\n * @param {String} prop The property name to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except for the changed property.\n * @see R.dissoc, R.pick\n * @example\n *\n * R.assoc('c', 3, {a: 1, b: 2}); //=> {a: 1, b: 2, c: 3}\n */\n\nvar assoc =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function assoc(prop, val, obj) {\n var result = {};\n\n for (var p in obj) {\n result[p] = obj[p];\n }\n\n result[prop] = val;\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (assoc);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/assoc.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/assocPath.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/assocPath.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n/* harmony import */ var _internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isArray.js */ \"./node_modules/ramda/es/internal/_isArray.js\");\n/* harmony import */ var _internal_isInteger_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_isInteger.js */ \"./node_modules/ramda/es/internal/_isInteger.js\");\n/* harmony import */ var _assoc_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./assoc.js */ \"./node_modules/ramda/es/assoc.js\");\n/* harmony import */ var _isNil_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./isNil.js */ \"./node_modules/ramda/es/isNil.js\");\n\n\n\n\n\n\n/**\n * Makes a shallow clone of an object, setting or overriding the nodes required\n * to create the given path, and placing the specific value at the tail end of\n * that path. Note that this copies and flattens prototype properties onto the\n * new object as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> a -> {a} -> {a}\n * @param {Array} path the path to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except along the specified path.\n * @see R.dissocPath\n * @example\n *\n * R.assocPath(['a', 'b', 'c'], 42, {a: {b: {c: 0}}}); //=> {a: {b: {c: 42}}}\n *\n * // Any missing or non-object keys in path will be overridden\n * R.assocPath(['a', 'b', 'c'], 42, {a: 5}); //=> {a: {b: {c: 42}}}\n */\n\nvar assocPath =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function assocPath(path, val, obj) {\n if (path.length === 0) {\n return val;\n }\n\n var idx = path[0];\n\n if (path.length > 1) {\n var nextObj = !Object(_isNil_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(obj) && Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(idx, obj) ? obj[idx] : Object(_internal_isInteger_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(path[1]) ? [] : {};\n val = assocPath(Array.prototype.slice.call(path, 1), val, nextObj);\n }\n\n if (Object(_internal_isInteger_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(idx) && Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(obj)) {\n var arr = [].concat(obj);\n arr[idx] = val;\n return arr;\n } else {\n return Object(_assoc_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(idx, val, obj);\n }\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (assocPath);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/assocPath.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/binary.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/binary.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _nAry_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./nAry.js */ \"./node_modules/ramda/es/nAry.js\");\n\n\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly 2 parameters. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Function\n * @sig (* -> c) -> (a, b -> c)\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity 2.\n * @see R.nAry, R.unary\n * @example\n *\n * const takesThreeArgs = function(a, b, c) {\n * return [a, b, c];\n * };\n * takesThreeArgs.length; //=> 3\n * takesThreeArgs(1, 2, 3); //=> [1, 2, 3]\n *\n * const takesTwoArgs = R.binary(takesThreeArgs);\n * takesTwoArgs.length; //=> 2\n * // Only 2 arguments are passed to the wrapped function\n * takesTwoArgs(1, 2, 3); //=> [1, 2, undefined]\n * @symb R.binary(f)(a, b, c) = f(a, b)\n */\n\nvar binary =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function binary(fn) {\n return Object(_nAry_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(2, fn);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (binary);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/binary.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/bind.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/bind.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Creates a function that is bound to a context.\n * Note: `R.bind` does not provide the additional argument-binding capabilities of\n * [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @category Object\n * @sig (* -> *) -> {*} -> (* -> *)\n * @param {Function} fn The function to bind to context\n * @param {Object} thisObj The context to bind `fn` to\n * @return {Function} A function that will execute in the context of `thisObj`.\n * @see R.partial\n * @example\n *\n * const log = R.bind(console.log, console);\n * R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}\n * // logs {a: 2}\n * @symb R.bind(f, o)(a, b) = f.call(o, a, b)\n */\n\nvar bind =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function bind(fn, thisObj) {\n return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (bind);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/bind.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/both.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/both.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isFunction.js */ \"./node_modules/ramda/es/internal/_isFunction.js\");\n/* harmony import */ var _and_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./and.js */ \"./node_modules/ramda/es/and.js\");\n/* harmony import */ var _lift_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lift.js */ \"./node_modules/ramda/es/lift.js\");\n\n\n\n\n/**\n * A function which calls the two provided functions and returns the `&&`\n * of the results.\n * It returns the result of the first function if it is false-y and the result\n * of the second function otherwise. Note that this is short-circuited,\n * meaning that the second function will not be invoked if the first returns a\n * false-y value.\n *\n * In addition to functions, `R.both` also accepts any fantasy-land compatible\n * applicative functor.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> Boolean) -> (*... -> Boolean)\n * @param {Function} f A predicate\n * @param {Function} g Another predicate\n * @return {Function} a function that applies its arguments to `f` and `g` and `&&`s their outputs together.\n * @see R.and\n * @example\n *\n * const gt10 = R.gt(R.__, 10)\n * const lt20 = R.lt(R.__, 20)\n * const f = R.both(gt10, lt20);\n * f(15); //=> true\n * f(30); //=> false\n *\n * R.both(Maybe.Just(false), Maybe.Just(55)); // => Maybe.Just(false)\n * R.both([false, false, 'a'], [11]); //=> [false, false, 11]\n */\n\nvar both =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function both(f, g) {\n return Object(_internal_isFunction_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(f) ? function _both() {\n return f.apply(this, arguments) && g.apply(this, arguments);\n } : Object(_lift_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_and_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(f, g);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (both);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/both.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/call.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/call.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./curry.js */ \"./node_modules/ramda/es/curry.js\");\n\n/**\n * Returns the result of calling its first argument with the remaining\n * arguments. This is occasionally useful as a converging function for\n * [`R.converge`](#converge): the first branch can produce a function while the\n * remaining branches produce values to be passed to that function as its\n * arguments.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig (*... -> a),*... -> a\n * @param {Function} fn The function to apply to the remaining arguments.\n * @param {...*} args Any number of positional arguments.\n * @return {*}\n * @see R.apply\n * @example\n *\n * R.call(R.add, 1, 2); //=> 3\n *\n * const indentN = R.pipe(R.repeat(' '),\n * R.join(''),\n * R.replace(/^(?!$)/gm));\n *\n * const format = R.converge(R.call, [\n * R.pipe(R.prop('indent'), indentN),\n * R.prop('value')\n * ]);\n *\n * format({indent: 2, value: 'foo\\nbar\\nbaz\\n'}); //=> ' foo\\n bar\\n baz\\n'\n * @symb R.call(f, a, b) = f(a, b)\n */\n\nvar call =\n/*#__PURE__*/\nObject(_curry_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function call(fn) {\n return fn.apply(this, Array.prototype.slice.call(arguments, 1));\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (call);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/call.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/chain.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/chain.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_makeFlat_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_makeFlat.js */ \"./node_modules/ramda/es/internal/_makeFlat.js\");\n/* harmony import */ var _internal_xchain_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_xchain.js */ \"./node_modules/ramda/es/internal/_xchain.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n\n\n\n\n\n/**\n * `chain` maps a function over a list and concatenates the results. `chain`\n * is also known as `flatMap` in some libraries.\n *\n * Dispatches to the `chain` method of the second argument, if present,\n * according to the [FantasyLand Chain spec](https://github.com/fantasyland/fantasy-land#chain).\n *\n * If second argument is a function, `chain(f, g)(x)` is equivalent to `f(g(x), x)`.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig Chain m => (a -> m b) -> m a -> m b\n * @param {Function} fn The function to map with\n * @param {Array} list The list to map over\n * @return {Array} The result of flat-mapping `list` with `fn`\n * @example\n *\n * const duplicate = n => [n, n];\n * R.chain(duplicate, [1, 2, 3]); //=> [1, 1, 2, 2, 3, 3]\n *\n * R.chain(R.append, R.head)([1, 2, 3]); //=> [1, 2, 3, 1]\n */\n\nvar chain =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['fantasy-land/chain', 'chain'], _internal_xchain_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], function chain(fn, monad) {\n if (typeof monad === 'function') {\n return function (x) {\n return fn(monad(x))(x);\n };\n }\n\n return Object(_internal_makeFlat_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(false)(Object(_map_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(fn, monad));\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (chain);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/chain.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/clamp.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/clamp.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Restricts a number to be within a range.\n *\n * Also works for other ordered types such as Strings and Dates.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Relation\n * @sig Ord a => a -> a -> a -> a\n * @param {Number} minimum The lower limit of the clamp (inclusive)\n * @param {Number} maximum The upper limit of the clamp (inclusive)\n * @param {Number} value Value to be clamped\n * @return {Number} Returns `minimum` when `val < minimum`, `maximum` when `val > maximum`, returns `val` otherwise\n * @example\n *\n * R.clamp(1, 10, -5) // => 1\n * R.clamp(1, 10, 15) // => 10\n * R.clamp(1, 10, 4) // => 4\n */\n\nvar clamp =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function clamp(min, max, value) {\n if (min > max) {\n throw new Error('min must not be greater than max in clamp(min, max, value)');\n }\n\n return value < min ? min : value > max ? max : value;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (clamp);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/clamp.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/clone.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/clone.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_clone_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_clone.js */ \"./node_modules/ramda/es/internal/_clone.js\");\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n\n/**\n * Creates a deep copy of the value which may contain (nested) `Array`s and\n * `Object`s, `Number`s, `String`s, `Boolean`s and `Date`s. `Function`s are\n * assigned by reference rather than copied\n *\n * Dispatches to a `clone` method if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {*} -> {*}\n * @param {*} value The object or array to clone\n * @return {*} A deeply cloned copy of `val`\n * @example\n *\n * const objects = [{}, {}, {}];\n * const objectsClone = R.clone(objects);\n * objects === objectsClone; //=> false\n * objects[0] === objectsClone[0]; //=> false\n */\n\nvar clone =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function clone(value) {\n return value != null && typeof value.clone === 'function' ? value.clone() : Object(_internal_clone_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value, [], [], true);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (clone);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/clone.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/comparator.js": +/*!*********************************************!*\ + !*** ./node_modules/ramda/es/comparator.js ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Makes a comparator function out of a function that reports whether the first\n * element is less than the second.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((a, b) -> Boolean) -> ((a, b) -> Number)\n * @param {Function} pred A predicate function of arity two which will return `true` if the first argument\n * is less than the second, `false` otherwise\n * @return {Function} A Function :: a -> b -> Int that returns `-1` if a < b, `1` if b < a, otherwise `0`\n * @example\n *\n * const byAge = R.comparator((a, b) => a.age < b.age);\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByIncreasingAge = R.sort(byAge, people);\n * //=> [{ name: 'Mikhail', age: 62 },{ name: 'Emma', age: 70 }, { name: 'Peter', age: 78 }]\n */\n\nvar comparator =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function comparator(pred) {\n return function (a, b) {\n return pred(a, b) ? -1 : pred(b, a) ? 1 : 0;\n };\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (comparator);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/comparator.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/complement.js": +/*!*********************************************!*\ + !*** ./node_modules/ramda/es/complement.js ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _lift_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lift.js */ \"./node_modules/ramda/es/lift.js\");\n/* harmony import */ var _not_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./not.js */ \"./node_modules/ramda/es/not.js\");\n\n\n/**\n * Takes a function `f` and returns a function `g` such that if called with the same arguments\n * when `f` returns a \"truthy\" value, `g` returns `false` and when `f` returns a \"falsy\" value `g` returns `true`.\n *\n * `R.complement` may be applied to any functor\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> *) -> (*... -> Boolean)\n * @param {Function} f\n * @return {Function}\n * @see R.not\n * @example\n *\n * const isNotNil = R.complement(R.isNil);\n * isNil(null); //=> true\n * isNotNil(null); //=> false\n * isNil(7); //=> false\n * isNotNil(7); //=> true\n */\n\nvar complement =\n/*#__PURE__*/\nObject(_lift_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_not_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (complement);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/complement.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/compose.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/compose.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return compose; });\n/* harmony import */ var _pipe_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pipe.js */ \"./node_modules/ramda/es/pipe.js\");\n/* harmony import */ var _reverse_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reverse.js */ \"./node_modules/ramda/es/reverse.js\");\n\n\n/**\n * Performs right-to-left function composition. The last argument may have\n * any arity; the remaining arguments must be unary.\n *\n * **Note:** The result of compose is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((y -> z), (x -> y), ..., (o -> p), ((a, b, ..., n) -> o)) -> ((a, b, ..., n) -> z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.pipe\n * @example\n *\n * const classyGreeting = (firstName, lastName) => \"The name's \" + lastName + \", \" + firstName + \" \" + lastName\n * const yellGreeting = R.compose(R.toUpper, classyGreeting);\n * yellGreeting('James', 'Bond'); //=> \"THE NAME'S BOND, JAMES BOND\"\n *\n * R.compose(Math.abs, R.add(1), R.multiply(2))(-4) //=> 7\n *\n * @symb R.compose(f, g, h)(a, b) = f(g(h(a, b)))\n */\n\nfunction compose() {\n if (arguments.length === 0) {\n throw new Error('compose requires at least one argument');\n }\n\n return _pipe_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].apply(this, Object(_reverse_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(arguments));\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/compose.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/composeK.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/composeK.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return composeK; });\n/* harmony import */ var _chain_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./chain.js */ \"./node_modules/ramda/es/chain.js\");\n/* harmony import */ var _compose_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./compose.js */ \"./node_modules/ramda/es/compose.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n\n\n\n/**\n * Returns the right-to-left Kleisli composition of the provided functions,\n * each of which must return a value of a type supported by [`chain`](#chain).\n *\n * `R.composeK(h, g, f)` is equivalent to `R.compose(R.chain(h), R.chain(g), f)`.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Function\n * @sig Chain m => ((y -> m z), (x -> m y), ..., (a -> m b)) -> (a -> m z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.pipeK\n * @deprecated since v0.26.0\n * @example\n *\n * // get :: String -> Object -> Maybe *\n * const get = R.curry((propName, obj) => Maybe(obj[propName]))\n *\n * // getStateCode :: Maybe String -> Maybe String\n * const getStateCode = R.composeK(\n * R.compose(Maybe.of, R.toUpper),\n * get('state'),\n * get('address'),\n * get('user'),\n * );\n * getStateCode({\"user\":{\"address\":{\"state\":\"ny\"}}}); //=> Maybe.Just(\"NY\")\n * getStateCode({}); //=> Maybe.Nothing()\n * @symb R.composeK(f, g, h)(a) = R.chain(f, R.chain(g, h(a)))\n */\n\nfunction composeK() {\n if (arguments.length === 0) {\n throw new Error('composeK requires at least one argument');\n }\n\n var init = Array.prototype.slice.call(arguments);\n var last = init.pop();\n return Object(_compose_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_compose_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].apply(this, Object(_map_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_chain_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], init)), last);\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/composeK.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/composeP.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/composeP.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return composeP; });\n/* harmony import */ var _pipeP_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pipeP.js */ \"./node_modules/ramda/es/pipeP.js\");\n/* harmony import */ var _reverse_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reverse.js */ \"./node_modules/ramda/es/reverse.js\");\n\n\n/**\n * Performs right-to-left composition of one or more Promise-returning\n * functions. The last arguments may have any arity; the remaining\n * arguments must be unary.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((y -> Promise z), (x -> Promise y), ..., (a -> Promise b)) -> (a -> Promise z)\n * @param {...Function} functions The functions to compose\n * @return {Function}\n * @see R.pipeP\n * @deprecated since v0.26.0\n * @example\n *\n * const db = {\n * users: {\n * JOE: {\n * name: 'Joe',\n * followers: ['STEVE', 'SUZY']\n * }\n * }\n * }\n *\n * // We'll pretend to do a db lookup which returns a promise\n * const lookupUser = (userId) => Promise.resolve(db.users[userId])\n * const lookupFollowers = (user) => Promise.resolve(user.followers)\n * lookupUser('JOE').then(lookupFollowers)\n *\n * // followersForUser :: String -> Promise [UserId]\n * const followersForUser = R.composeP(lookupFollowers, lookupUser);\n * followersForUser('JOE').then(followers => console.log('Followers:', followers))\n * // Followers: [\"STEVE\",\"SUZY\"]\n */\n\nfunction composeP() {\n if (arguments.length === 0) {\n throw new Error('composeP requires at least one argument');\n }\n\n return _pipeP_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].apply(this, Object(_reverse_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(arguments));\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/composeP.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/composeWith.js": +/*!**********************************************!*\ + !*** ./node_modules/ramda/es/composeWith.js ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _pipeWith_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pipeWith.js */ \"./node_modules/ramda/es/pipeWith.js\");\n/* harmony import */ var _reverse_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reverse.js */ \"./node_modules/ramda/es/reverse.js\");\n\n\n\n/**\n * Performs right-to-left function composition using transforming function. The last argument may have\n * any arity; the remaining arguments must be unary.\n *\n * **Note:** The result of compose is not automatically curried. Transforming function is not used on the\n * last argument.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig ((* -> *), [(y -> z), (x -> y), ..., (o -> p), ((a, b, ..., n) -> o)]) -> ((a, b, ..., n) -> z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.compose, R.pipeWith\n * @example\n *\n * const composeWhileNotNil = R.composeWith((f, res) => R.isNil(res) ? res : f(res));\n *\n * composeWhileNotNil([R.inc, R.prop('age')])({age: 1}) //=> 2\n * composeWhileNotNil([R.inc, R.prop('age')])({}) //=> undefined\n *\n * @symb R.composeWith(f)([g, h, i])(...args) = f(g, f(h, i(...args)))\n */\n\nvar composeWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function composeWith(xf, list) {\n return _pipeWith_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].apply(this, [xf, Object(_reverse_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(list)]);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (composeWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/composeWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/concat.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/concat.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isArray.js */ \"./node_modules/ramda/es/internal/_isArray.js\");\n/* harmony import */ var _internal_isFunction_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isFunction.js */ \"./node_modules/ramda/es/internal/_isFunction.js\");\n/* harmony import */ var _internal_isString_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_isString.js */ \"./node_modules/ramda/es/internal/_isString.js\");\n/* harmony import */ var _toString_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./toString.js */ \"./node_modules/ramda/es/toString.js\");\n\n\n\n\n\n/**\n * Returns the result of concatenating the given lists or strings.\n *\n * Note: `R.concat` expects both arguments to be of the same type,\n * unlike the native `Array.prototype.concat` method. It will throw\n * an error if you `concat` an Array with a non-Array value.\n *\n * Dispatches to the `concat` method of the first argument, if present.\n * Can also concatenate two members of a [fantasy-land\n * compatible semigroup](https://github.com/fantasyland/fantasy-land#semigroup).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a] -> [a]\n * @sig String -> String -> String\n * @param {Array|String} firstList The first list\n * @param {Array|String} secondList The second list\n * @return {Array|String} A list consisting of the elements of `firstList` followed by the elements of\n * `secondList`.\n *\n * @example\n *\n * R.concat('ABC', 'DEF'); // 'ABCDEF'\n * R.concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n * R.concat([], []); //=> []\n */\n\nvar concat =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function concat(a, b) {\n if (Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(a)) {\n if (Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(b)) {\n return a.concat(b);\n }\n\n throw new TypeError(Object(_toString_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(b) + ' is not an array');\n }\n\n if (Object(_internal_isString_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(a)) {\n if (Object(_internal_isString_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(b)) {\n return a + b;\n }\n\n throw new TypeError(Object(_toString_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(b) + ' is not a string');\n }\n\n if (a != null && Object(_internal_isFunction_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a['fantasy-land/concat'])) {\n return a['fantasy-land/concat'](b);\n }\n\n if (a != null && Object(_internal_isFunction_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a.concat)) {\n return a.concat(b);\n }\n\n throw new TypeError(Object(_toString_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(a) + ' does not have a method named \"concat\" or \"fantasy-land/concat\"');\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (concat);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/concat.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/cond.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/cond.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./max.js */ \"./node_modules/ramda/es/max.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n\n\n\n\n\n/**\n * Returns a function, `fn`, which encapsulates `if/else, if/else, ...` logic.\n * `R.cond` takes a list of [predicate, transformer] pairs. All of the arguments\n * to `fn` are applied to each of the predicates in turn until one returns a\n * \"truthy\" value, at which point `fn` returns the result of applying its\n * arguments to the corresponding transformer. If none of the predicates\n * matches, `fn` returns undefined.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Logic\n * @sig [[(*... -> Boolean),(*... -> *)]] -> (*... -> *)\n * @param {Array} pairs A list of [predicate, transformer]\n * @return {Function}\n * @see R.ifElse, R.unless, R.when\n * @example\n *\n * const fn = R.cond([\n * [R.equals(0), R.always('water freezes at 0°C')],\n * [R.equals(100), R.always('water boils at 100°C')],\n * [R.T, temp => 'nothing special happens at ' + temp + '°C']\n * ]);\n * fn(0); //=> 'water freezes at 0°C'\n * fn(50); //=> 'nothing special happens at 50°C'\n * fn(100); //=> 'water boils at 100°C'\n */\n\nvar cond =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function cond(pairs) {\n var arity = Object(_reduce_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(_max_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], 0, Object(_map_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(function (pair) {\n return pair[0].length;\n }, pairs));\n return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arity, function () {\n var idx = 0;\n\n while (idx < pairs.length) {\n if (pairs[idx][0].apply(this, arguments)) {\n return pairs[idx][1].apply(this, arguments);\n }\n\n idx += 1;\n }\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cond);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/cond.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/construct.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/construct.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _constructN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constructN.js */ \"./node_modules/ramda/es/constructN.js\");\n\n\n/**\n * Wraps a constructor function inside a curried function that can be called\n * with the same arguments and returns the same type.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (* -> {*}) -> (* -> {*})\n * @param {Function} fn The constructor function to wrap.\n * @return {Function} A wrapped, curried constructor function.\n * @see R.invoker\n * @example\n *\n * // Constructor function\n * function Animal(kind) {\n * this.kind = kind;\n * };\n * Animal.prototype.sighting = function() {\n * return \"It's a \" + this.kind + \"!\";\n * }\n *\n * const AnimalConstructor = R.construct(Animal)\n *\n * // Notice we no longer need the 'new' keyword:\n * AnimalConstructor('Pig'); //=> {\"kind\": \"Pig\", \"sighting\": function (){...}};\n *\n * const animalTypes = [\"Lion\", \"Tiger\", \"Bear\"];\n * const animalSighting = R.invoker(0, 'sighting');\n * const sightNewAnimal = R.compose(animalSighting, AnimalConstructor);\n * R.map(sightNewAnimal, animalTypes); //=> [\"It's a Lion!\", \"It's a Tiger!\", \"It's a Bear!\"]\n */\n\nvar construct =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function construct(Fn) {\n return Object(_constructN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Fn.length, Fn);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (construct);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/construct.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/constructN.js": +/*!*********************************************!*\ + !*** ./node_modules/ramda/es/constructN.js ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _curry_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curry.js */ \"./node_modules/ramda/es/curry.js\");\n/* harmony import */ var _nAry_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nAry.js */ \"./node_modules/ramda/es/nAry.js\");\n\n\n\n/**\n * Wraps a constructor function inside a curried function that can be called\n * with the same arguments and returns the same type. The arity of the function\n * returned is specified to allow using variadic constructor functions.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Function\n * @sig Number -> (* -> {*}) -> (* -> {*})\n * @param {Number} n The arity of the constructor function.\n * @param {Function} Fn The constructor function to wrap.\n * @return {Function} A wrapped, curried constructor function.\n * @example\n *\n * // Variadic Constructor function\n * function Salad() {\n * this.ingredients = arguments;\n * }\n *\n * Salad.prototype.recipe = function() {\n * const instructions = R.map(ingredient => 'Add a dollop of ' + ingredient, this.ingredients);\n * return R.join('\\n', instructions);\n * };\n *\n * const ThreeLayerSalad = R.constructN(3, Salad);\n *\n * // Notice we no longer need the 'new' keyword, and the constructor is curried for 3 arguments.\n * const salad = ThreeLayerSalad('Mayonnaise')('Potato Chips')('Ketchup');\n *\n * console.log(salad.recipe());\n * // Add a dollop of Mayonnaise\n * // Add a dollop of Potato Chips\n * // Add a dollop of Ketchup\n */\n\nvar constructN =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function constructN(n, Fn) {\n if (n > 10) {\n throw new Error('Constructor with greater than ten arguments');\n }\n\n if (n === 0) {\n return function () {\n return new Fn();\n };\n }\n\n return Object(_curry_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_nAry_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(n, function ($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {\n switch (arguments.length) {\n case 1:\n return new Fn($0);\n\n case 2:\n return new Fn($0, $1);\n\n case 3:\n return new Fn($0, $1, $2);\n\n case 4:\n return new Fn($0, $1, $2, $3);\n\n case 5:\n return new Fn($0, $1, $2, $3, $4);\n\n case 6:\n return new Fn($0, $1, $2, $3, $4, $5);\n\n case 7:\n return new Fn($0, $1, $2, $3, $4, $5, $6);\n\n case 8:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7);\n\n case 9:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7, $8);\n\n case 10:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7, $8, $9);\n }\n }));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (constructN);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/constructN.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/contains.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/contains.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_includes.js */ \"./node_modules/ramda/es/internal/_includes.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Returns `true` if the specified value is equal, in [`R.equals`](#equals)\n * terms, to at least one element of the given list; `false` otherwise.\n * Works also with strings.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Boolean\n * @param {Object} a The item to compare against.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if an equivalent item is in the list, `false` otherwise.\n * @see R.includes\n * @deprecated since v0.26.0\n * @example\n *\n * R.contains(3, [1, 2, 3]); //=> true\n * R.contains(4, [1, 2, 3]); //=> false\n * R.contains({ name: 'Fred' }, [{ name: 'Fred' }]); //=> true\n * R.contains([42], [[42]]); //=> true\n * R.contains('ba', 'banana'); //=>true\n */\n\nvar contains =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_internal_includes_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (contains);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/contains.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/converge.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/converge.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_map.js */ \"./node_modules/ramda/es/internal/_map.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./max.js */ \"./node_modules/ramda/es/max.js\");\n/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pluck.js */ \"./node_modules/ramda/es/pluck.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n\n\n\n\n\n\n/**\n * Accepts a converging function and a list of branching functions and returns\n * a new function. The arity of the new function is the same as the arity of\n * the longest branching function. When invoked, this new function is applied\n * to some arguments, and each branching function is applied to those same\n * arguments. The results of each branching function are passed as arguments\n * to the converging function to produce the return value.\n *\n * @func\n * @memberOf R\n * @since v0.4.2\n * @category Function\n * @sig ((x1, x2, ...) -> z) -> [((a, b, ...) -> x1), ((a, b, ...) -> x2), ...] -> (a -> b -> ... -> z)\n * @param {Function} after A function. `after` will be invoked with the return values of\n * `fn1` and `fn2` as its arguments.\n * @param {Array} functions A list of functions.\n * @return {Function} A new function.\n * @see R.useWith\n * @example\n *\n * const average = R.converge(R.divide, [R.sum, R.length])\n * average([1, 2, 3, 4, 5, 6, 7]) //=> 4\n *\n * const strangeConcat = R.converge(R.concat, [R.toUpper, R.toLower])\n * strangeConcat(\"Yodel\") //=> \"YODELyodel\"\n *\n * @symb R.converge(f, [g, h])(a, b) = f(g(a, b), h(a, b))\n */\n\nvar converge =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function converge(after, fns) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Object(_reduce_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(_max_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], 0, Object(_pluck_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])('length', fns)), function () {\n var args = arguments;\n var context = this;\n return after.apply(context, Object(_internal_map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (fn) {\n return fn.apply(context, args);\n }, fns));\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (converge);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/converge.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/countBy.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/countBy.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _reduceBy_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reduceBy.js */ \"./node_modules/ramda/es/reduceBy.js\");\n\n/**\n * Counts the elements of a list according to how many match each value of a\n * key generated by the supplied function. Returns an object mapping the keys\n * produced by `fn` to the number of occurrences in the list. Note that all\n * keys are coerced to strings because of how JavaScript objects work.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig (a -> String) -> [a] -> {*}\n * @param {Function} fn The function used to map values to keys.\n * @param {Array} list The list to count elements from.\n * @return {Object} An object mapping keys to number of occurrences in the list.\n * @example\n *\n * const numbers = [1.0, 1.1, 1.2, 2.0, 3.0, 2.2];\n * R.countBy(Math.floor)(numbers); //=> {'1': 3, '2': 2, '3': 1}\n *\n * const letters = ['a', 'b', 'A', 'a', 'B', 'c'];\n * R.countBy(R.toLower)(letters); //=> {'a': 3, 'b': 2, 'c': 1}\n */\n\nvar countBy =\n/*#__PURE__*/\nObject(_reduceBy_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (acc, elem) {\n return acc + 1;\n}, 0);\n/* harmony default export */ __webpack_exports__[\"default\"] = (countBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/countBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/curry.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/curry.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n\n\n/**\n * Returns a curried equivalent of the provided function. The curried function\n * has two unusual capabilities. First, its arguments needn't be provided one\n * at a time. If `f` is a ternary function and `g` is `R.curry(f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (* -> a) -> (* -> a)\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curryN, R.partial\n * @example\n *\n * const addFourNumbers = (a, b, c, d) => a + b + c + d;\n *\n * const curriedAddFourNumbers = R.curry(addFourNumbers);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\n\nvar curry =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function curry(fn) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(fn.length, fn);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (curry);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/curry.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/curryN.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/curryN.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_curryN_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_curryN.js */ \"./node_modules/ramda/es/internal/_curryN.js\");\n\n\n\n\n/**\n * Returns a curried equivalent of the provided function, with the specified\n * arity. The curried function has two unusual capabilities. First, its\n * arguments needn't be provided one at a time. If `g` is `R.curryN(3, f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.5.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curry\n * @example\n *\n * const sumArgs = (...args) => R.sum(args);\n *\n * const curriedAddFourNumbers = R.curryN(4, sumArgs);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\n\nvar curryN =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(function curryN(length, fn) {\n if (length === 1) {\n return Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(fn);\n }\n\n return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(length, Object(_internal_curryN_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(length, [], fn));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (curryN);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/curryN.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/dec.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/dec.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _add_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./add.js */ \"./node_modules/ramda/es/add.js\");\n\n/**\n * Decrements its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number} n - 1\n * @see R.inc\n * @example\n *\n * R.dec(42); //=> 41\n */\n\nvar dec =\n/*#__PURE__*/\nObject(_add_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(-1);\n/* harmony default export */ __webpack_exports__[\"default\"] = (dec);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/dec.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/defaultTo.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/defaultTo.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns the second argument if it is not `null`, `undefined` or `NaN`;\n * otherwise the first argument is returned.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {a} default The default value.\n * @param {b} val `val` will be returned instead of `default` unless `val` is `null`, `undefined` or `NaN`.\n * @return {*} The second value if it is not `null`, `undefined` or `NaN`, otherwise the default value\n * @example\n *\n * const defaultTo42 = R.defaultTo(42);\n *\n * defaultTo42(null); //=> 42\n * defaultTo42(undefined); //=> 42\n * defaultTo42(false); //=> false\n * defaultTo42('Ramda'); //=> 'Ramda'\n * // parseInt('string') results in NaN\n * defaultTo42(parseInt('string')); //=> 42\n */\n\nvar defaultTo =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function defaultTo(d, v) {\n return v == null || v !== v ? d : v;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (defaultTo);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/defaultTo.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/descend.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/descend.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Makes a descending comparator function out of a function that returns a value\n * that can be compared with `<` and `>`.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Function\n * @sig Ord b => (a -> b) -> a -> a -> Number\n * @param {Function} fn A function of arity one that returns a value that can be compared\n * @param {*} a The first item to be compared.\n * @param {*} b The second item to be compared.\n * @return {Number} `-1` if fn(a) > fn(b), `1` if fn(b) > fn(a), otherwise `0`\n * @see R.ascend\n * @example\n *\n * const byAge = R.descend(R.prop('age'));\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByOldestFirst = R.sort(byAge, people);\n * //=> [{ name: 'Peter', age: 78 }, { name: 'Emma', age: 70 }, { name: 'Mikhail', age: 62 }]\n */\n\nvar descend =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function descend(fn, a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa > bb ? -1 : aa < bb ? 1 : 0;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (descend);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/descend.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/difference.js": +/*!*********************************************!*\ + !*** ./node_modules/ramda/es/difference.js ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_Set_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_Set.js */ \"./node_modules/ramda/es/internal/_Set.js\");\n\n\n/**\n * Finds the set (i.e. no duplicates) of all elements in the first list not\n * contained in the second list. Objects and Arrays are compared in terms of\n * value equality, not reference equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` that are not in `list2`.\n * @see R.differenceWith, R.symmetricDifference, R.symmetricDifferenceWith, R.without\n * @example\n *\n * R.difference([1,2,3,4], [7,6,5,4,3]); //=> [1,2]\n * R.difference([7,6,5,4,3], [1,2,3,4]); //=> [7,6,5]\n * R.difference([{a: 1}, {b: 2}], [{a: 1}, {c: 3}]) //=> [{b: 2}]\n */\n\nvar difference =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function difference(first, second) {\n var out = [];\n var idx = 0;\n var firstLen = first.length;\n var secondLen = second.length;\n var toFilterOut = new _internal_Set_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]();\n\n for (var i = 0; i < secondLen; i += 1) {\n toFilterOut.add(second[i]);\n }\n\n while (idx < firstLen) {\n if (toFilterOut.add(first[idx])) {\n out[out.length] = first[idx];\n }\n\n idx += 1;\n }\n\n return out;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (difference);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/difference.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/differenceWith.js": +/*!*************************************************!*\ + !*** ./node_modules/ramda/es/differenceWith.js ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_includesWith_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_includesWith.js */ \"./node_modules/ramda/es/internal/_includesWith.js\");\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n\n/**\n * Finds the set (i.e. no duplicates) of all elements in the first list not\n * contained in the second list. Duplication is determined according to the\n * value returned by applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [a] -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` that are not in `list2`.\n * @see R.difference, R.symmetricDifference, R.symmetricDifferenceWith\n * @example\n *\n * const cmp = (x, y) => x.a === y.a;\n * const l1 = [{a: 1}, {a: 2}, {a: 3}];\n * const l2 = [{a: 3}, {a: 4}];\n * R.differenceWith(cmp, l1, l2); //=> [{a: 1}, {a: 2}]\n */\n\nvar differenceWith =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function differenceWith(pred, first, second) {\n var out = [];\n var idx = 0;\n var firstLen = first.length;\n\n while (idx < firstLen) {\n if (!Object(_internal_includesWith_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(pred, first[idx], second) && !Object(_internal_includesWith_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(pred, first[idx], out)) {\n out.push(first[idx]);\n }\n\n idx += 1;\n }\n\n return out;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (differenceWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/differenceWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/dissoc.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/dissoc.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns a new object that does not contain a `prop` property.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Object\n * @sig String -> {k: v} -> {k: v}\n * @param {String} prop The name of the property to dissociate\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original but without the specified property\n * @see R.assoc, R.omit\n * @example\n *\n * R.dissoc('b', {a: 1, b: 2, c: 3}); //=> {a: 1, c: 3}\n */\n\nvar dissoc =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function dissoc(prop, obj) {\n var result = {};\n\n for (var p in obj) {\n result[p] = obj[p];\n }\n\n delete result[prop];\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (dissoc);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/dissoc.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/dissocPath.js": +/*!*********************************************!*\ + !*** ./node_modules/ramda/es/dissocPath.js ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isInteger.js */ \"./node_modules/ramda/es/internal/_isInteger.js\");\n/* harmony import */ var _internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isArray.js */ \"./node_modules/ramda/es/internal/_isArray.js\");\n/* harmony import */ var _assoc_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./assoc.js */ \"./node_modules/ramda/es/assoc.js\");\n/* harmony import */ var _dissoc_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dissoc.js */ \"./node_modules/ramda/es/dissoc.js\");\n/* harmony import */ var _remove_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./remove.js */ \"./node_modules/ramda/es/remove.js\");\n/* harmony import */ var _update_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./update.js */ \"./node_modules/ramda/es/update.js\");\n\n\n\n\n\n\n\n/**\n * Makes a shallow clone of an object, omitting the property at the given path.\n * Note that this copies and flattens prototype properties onto the new object\n * as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.11.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {k: v} -> {k: v}\n * @param {Array} path The path to the value to omit\n * @param {Object} obj The object to clone\n * @return {Object} A new object without the property at path\n * @see R.assocPath\n * @example\n *\n * R.dissocPath(['a', 'b', 'c'], {a: {b: {c: 42}}}); //=> {a: {b: {}}}\n */\n\nvar dissocPath =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function dissocPath(path, obj) {\n switch (path.length) {\n case 0:\n return obj;\n\n case 1:\n return Object(_internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(path[0]) && Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(obj) ? Object(_remove_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(path[0], 1, obj) : Object(_dissoc_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(path[0], obj);\n\n default:\n var head = path[0];\n var tail = Array.prototype.slice.call(path, 1);\n\n if (obj[head] == null) {\n return obj;\n } else if (Object(_internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(head) && Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(obj)) {\n return Object(_update_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(head, dissocPath(tail, obj[head]), obj);\n } else {\n return Object(_assoc_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(head, dissocPath(tail, obj[head]), obj);\n }\n\n }\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (dissocPath);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/dissocPath.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/divide.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/divide.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Divides two numbers. Equivalent to `a / b`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a / b`.\n * @see R.multiply\n * @example\n *\n * R.divide(71, 100); //=> 0.71\n *\n * const half = R.divide(R.__, 2);\n * half(42); //=> 21\n *\n * const reciprocal = R.divide(1);\n * reciprocal(4); //=> 0.25\n */\n\nvar divide =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function divide(a, b) {\n return a / b;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (divide);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/divide.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/drop.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/drop.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xdrop_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xdrop.js */ \"./node_modules/ramda/es/internal/_xdrop.js\");\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n\n\n\n\n/**\n * Returns all but the first `n` elements of the given list, string, or\n * transducer/transformer (or object with a `drop` method).\n *\n * Dispatches to the `drop` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n\n * @param {*} list\n * @return {*} A copy of list without the first `n` elements\n * @see R.take, R.transduce, R.dropLast, R.dropWhile\n * @example\n *\n * R.drop(1, ['foo', 'bar', 'baz']); //=> ['bar', 'baz']\n * R.drop(2, ['foo', 'bar', 'baz']); //=> ['baz']\n * R.drop(3, ['foo', 'bar', 'baz']); //=> []\n * R.drop(4, ['foo', 'bar', 'baz']); //=> []\n * R.drop(3, 'ramda'); //=> 'da'\n */\n\nvar drop =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['drop'], _internal_xdrop_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function drop(n, xs) {\n return Object(_slice_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(Math.max(0, n), Infinity, xs);\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (drop);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/drop.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/dropLast.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/dropLast.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_dropLast_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_dropLast.js */ \"./node_modules/ramda/es/internal/_dropLast.js\");\n/* harmony import */ var _internal_xdropLast_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_xdropLast.js */ \"./node_modules/ramda/es/internal/_xdropLast.js\");\n\n\n\n\n/**\n * Returns a list containing all but the last `n` elements of the given `list`.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n The number of elements of `list` to skip.\n * @param {Array} list The list of elements to consider.\n * @return {Array} A copy of the list with only the first `list.length - n` elements\n * @see R.takeLast, R.drop, R.dropWhile, R.dropLastWhile\n * @example\n *\n * R.dropLast(1, ['foo', 'bar', 'baz']); //=> ['foo', 'bar']\n * R.dropLast(2, ['foo', 'bar', 'baz']); //=> ['foo']\n * R.dropLast(3, ['foo', 'bar', 'baz']); //=> []\n * R.dropLast(4, ['foo', 'bar', 'baz']); //=> []\n * R.dropLast(3, 'ramda'); //=> 'ra'\n */\n\nvar dropLast =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([], _internal_xdropLast_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], _internal_dropLast_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (dropLast);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/dropLast.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/dropLastWhile.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/dropLastWhile.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_dropLastWhile_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_dropLastWhile.js */ \"./node_modules/ramda/es/internal/_dropLastWhile.js\");\n/* harmony import */ var _internal_xdropLastWhile_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_xdropLastWhile.js */ \"./node_modules/ramda/es/internal/_xdropLastWhile.js\");\n\n\n\n\n/**\n * Returns a new list excluding all the tailing elements of a given list which\n * satisfy the supplied predicate function. It passes each value from the right\n * to the supplied predicate function, skipping elements until the predicate\n * function returns a `falsy` value. The predicate function is applied to one argument:\n * *(value)*.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} predicate The function to be called on each element\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array without any trailing elements that return `falsy` values from the `predicate`.\n * @see R.takeLastWhile, R.addIndex, R.drop, R.dropWhile\n * @example\n *\n * const lteThree = x => x <= 3;\n *\n * R.dropLastWhile(lteThree, [1, 2, 3, 4, 3, 2, 1]); //=> [1, 2, 3, 4]\n *\n * R.dropLastWhile(x => x !== 'd' , 'Ramda'); //=> 'Ramd'\n */\n\nvar dropLastWhile =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([], _internal_xdropLastWhile_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], _internal_dropLastWhile_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (dropLastWhile);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/dropLastWhile.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/dropRepeats.js": +/*!**********************************************!*\ + !*** ./node_modules/ramda/es/dropRepeats.js ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xdropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xdropRepeatsWith.js */ \"./node_modules/ramda/es/internal/_xdropRepeatsWith.js\");\n/* harmony import */ var _dropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dropRepeatsWith.js */ \"./node_modules/ramda/es/dropRepeatsWith.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n\n\n\n\n\n/**\n * Returns a new list without any consecutively repeating elements.\n * [`R.equals`](#equals) is used to determine equality.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig [a] -> [a]\n * @param {Array} list The array to consider.\n * @return {Array} `list` without repeating elements.\n * @see R.transduce\n * @example\n *\n * R.dropRepeats([1, 1, 1, 2, 3, 4, 4, 2, 2]); //=> [1, 2, 3, 4, 2]\n */\n\nvar dropRepeats =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([],\n/*#__PURE__*/\nObject(_internal_xdropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_equals_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n/*#__PURE__*/\nObject(_dropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_equals_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (dropRepeats);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/dropRepeats.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/dropRepeatsWith.js": +/*!**************************************************!*\ + !*** ./node_modules/ramda/es/dropRepeatsWith.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xdropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xdropRepeatsWith.js */ \"./node_modules/ramda/es/internal/_xdropRepeatsWith.js\");\n/* harmony import */ var _last_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./last.js */ \"./node_modules/ramda/es/last.js\");\n\n\n\n\n/**\n * Returns a new list without any consecutively repeating elements. Equality is\n * determined by applying the supplied predicate to each pair of consecutive elements. The\n * first element in a series of equal elements will be preserved.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig ((a, a) -> Boolean) -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list The array to consider.\n * @return {Array} `list` without repeating elements.\n * @see R.transduce\n * @example\n *\n * const l = [1, -1, 1, 3, 4, -4, -4, -5, 5, 3, 3];\n * R.dropRepeatsWith(R.eqBy(Math.abs), l); //=> [1, 3, 4, -5, 3]\n */\n\nvar dropRepeatsWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([], _internal_xdropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function dropRepeatsWith(pred, list) {\n var result = [];\n var idx = 1;\n var len = list.length;\n\n if (len !== 0) {\n result[0] = list[0];\n\n while (idx < len) {\n if (!pred(Object(_last_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(result), list[idx])) {\n result[result.length] = list[idx];\n }\n\n idx += 1;\n }\n }\n\n return result;\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (dropRepeatsWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/dropRepeatsWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/dropWhile.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/dropWhile.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xdropWhile_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xdropWhile.js */ \"./node_modules/ramda/es/internal/_xdropWhile.js\");\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n\n\n\n\n/**\n * Returns a new list excluding the leading elements of a given list which\n * satisfy the supplied predicate function. It passes each value to the supplied\n * predicate function, skipping elements while the predicate function returns\n * `true`. The predicate function is applied to one argument: *(value)*.\n *\n * Dispatches to the `dropWhile` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} fn The function called per iteration.\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array.\n * @see R.takeWhile, R.transduce, R.addIndex\n * @example\n *\n * const lteTwo = x => x <= 2;\n *\n * R.dropWhile(lteTwo, [1, 2, 3, 4, 3, 2, 1]); //=> [3, 4, 3, 2, 1]\n *\n * R.dropWhile(x => x !== 'd' , 'Ramda'); //=> 'da'\n */\n\nvar dropWhile =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['dropWhile'], _internal_xdropWhile_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function dropWhile(pred, xs) {\n var idx = 0;\n var len = xs.length;\n\n while (idx < len && pred(xs[idx])) {\n idx += 1;\n }\n\n return Object(_slice_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(idx, Infinity, xs);\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (dropWhile);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/dropWhile.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/either.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/either.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isFunction.js */ \"./node_modules/ramda/es/internal/_isFunction.js\");\n/* harmony import */ var _lift_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lift.js */ \"./node_modules/ramda/es/lift.js\");\n/* harmony import */ var _or_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./or.js */ \"./node_modules/ramda/es/or.js\");\n\n\n\n\n/**\n * A function wrapping calls to the two functions in an `||` operation,\n * returning the result of the first function if it is truth-y and the result\n * of the second function otherwise. Note that this is short-circuited,\n * meaning that the second function will not be invoked if the first returns a\n * truth-y value.\n *\n * In addition to functions, `R.either` also accepts any fantasy-land compatible\n * applicative functor.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> Boolean) -> (*... -> Boolean)\n * @param {Function} f a predicate\n * @param {Function} g another predicate\n * @return {Function} a function that applies its arguments to `f` and `g` and `||`s their outputs together.\n * @see R.or\n * @example\n *\n * const gt10 = x => x > 10;\n * const even = x => x % 2 === 0;\n * const f = R.either(gt10, even);\n * f(101); //=> true\n * f(8); //=> true\n *\n * R.either(Maybe.Just(false), Maybe.Just(55)); // => Maybe.Just(55)\n * R.either([false, false, 'a'], [11]) // => [11, 11, \"a\"]\n */\n\nvar either =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function either(f, g) {\n return Object(_internal_isFunction_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(f) ? function _either() {\n return f.apply(this, arguments) || g.apply(this, arguments);\n } : Object(_lift_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_or_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(f, g);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (either);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/either.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/empty.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/empty.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_isArguments_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isArguments.js */ \"./node_modules/ramda/es/internal/_isArguments.js\");\n/* harmony import */ var _internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isArray.js */ \"./node_modules/ramda/es/internal/_isArray.js\");\n/* harmony import */ var _internal_isObject_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_isObject.js */ \"./node_modules/ramda/es/internal/_isObject.js\");\n/* harmony import */ var _internal_isString_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./internal/_isString.js */ \"./node_modules/ramda/es/internal/_isString.js\");\n\n\n\n\n\n/**\n * Returns the empty value of its argument's type. Ramda defines the empty\n * value of Array (`[]`), Object (`{}`), String (`''`), and Arguments. Other\n * types are supported if they define `.empty`,\n * `.prototype.empty` or implement the\n * [FantasyLand Monoid spec](https://github.com/fantasyland/fantasy-land#monoid).\n *\n * Dispatches to the `empty` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> a\n * @param {*} x\n * @return {*}\n * @example\n *\n * R.empty(Just(42)); //=> Nothing()\n * R.empty([1, 2, 3]); //=> []\n * R.empty('unicorns'); //=> ''\n * R.empty({x: 1, y: 2}); //=> {}\n */\n\nvar empty =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function empty(x) {\n return x != null && typeof x['fantasy-land/empty'] === 'function' ? x['fantasy-land/empty']() : x != null && x.constructor != null && typeof x.constructor['fantasy-land/empty'] === 'function' ? x.constructor['fantasy-land/empty']() : x != null && typeof x.empty === 'function' ? x.empty() : x != null && x.constructor != null && typeof x.constructor.empty === 'function' ? x.constructor.empty() : Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(x) ? [] : Object(_internal_isString_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(x) ? '' : Object(_internal_isObject_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(x) ? {} : Object(_internal_isArguments_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(x) ? function () {\n return arguments;\n }() : void 0 // else\n ;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (empty);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/empty.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/endsWith.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/endsWith.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n/* harmony import */ var _takeLast_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./takeLast.js */ \"./node_modules/ramda/es/takeLast.js\");\n\n\n\n/**\n * Checks if a list ends with the provided sublist.\n *\n * Similarly, checks if a string ends with the provided substring.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category List\n * @sig [a] -> [a] -> Boolean\n * @sig String -> String -> Boolean\n * @param {*} suffix\n * @param {*} list\n * @return {Boolean}\n * @see R.startsWith\n * @example\n *\n * R.endsWith('c', 'abc') //=> true\n * R.endsWith('b', 'abc') //=> false\n * R.endsWith(['c'], ['a', 'b', 'c']) //=> true\n * R.endsWith(['b'], ['a', 'b', 'c']) //=> false\n */\n\nvar endsWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (suffix, list) {\n return Object(_equals_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_takeLast_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(suffix.length, list), suffix);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (endsWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/endsWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/eqBy.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/eqBy.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n\n\n/**\n * Takes a function and two values in its domain and returns `true` if the\n * values map to the same value in the codomain; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Relation\n * @sig (a -> b) -> a -> a -> Boolean\n * @param {Function} f\n * @param {*} x\n * @param {*} y\n * @return {Boolean}\n * @example\n *\n * R.eqBy(Math.abs, 5, -5); //=> true\n */\n\nvar eqBy =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function eqBy(f, x, y) {\n return Object(_equals_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(f(x), f(y));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (eqBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/eqBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/eqProps.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/eqProps.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n\n\n/**\n * Reports whether two objects have the same value, in [`R.equals`](#equals)\n * terms, for the specified property. Useful as a curried predicate.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig k -> {k: v} -> {k: v} -> Boolean\n * @param {String} prop The name of the property to compare\n * @param {Object} obj1\n * @param {Object} obj2\n * @return {Boolean}\n *\n * @example\n *\n * const o1 = { a: 1, b: 2, c: 3, d: 4 };\n * const o2 = { a: 10, b: 20, c: 3, d: 40 };\n * R.eqProps('a', o1, o2); //=> false\n * R.eqProps('c', o1, o2); //=> true\n */\n\nvar eqProps =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function eqProps(prop, obj1, obj2) {\n return Object(_equals_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(obj1[prop], obj2[prop]);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (eqProps);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/eqProps.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/equals.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/equals.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_equals.js */ \"./node_modules/ramda/es/internal/_equals.js\");\n\n\n/**\n * Returns `true` if its arguments are equivalent, `false` otherwise. Handles\n * cyclical data structures.\n *\n * Dispatches symmetrically to the `equals` methods of both arguments, if\n * present.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> b -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * R.equals(1, 1); //=> true\n * R.equals(1, '1'); //=> false\n * R.equals([1, 2, 3], [1, 2, 3]); //=> true\n *\n * const a = {}; a.v = a;\n * const b = {}; b.v = b;\n * R.equals(a, b); //=> true\n */\n\nvar equals =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function equals(a, b) {\n return Object(_internal_equals_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(a, b, [], []);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (equals);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/equals.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/evolve.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/evolve.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Creates a new object by recursively evolving a shallow copy of `object`,\n * according to the `transformation` functions. All non-primitive properties\n * are copied by reference.\n *\n * A `transformation` function will not be invoked if its corresponding key\n * does not exist in the evolved object.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {k: (v -> v)} -> {k: v} -> {k: v}\n * @param {Object} transformations The object specifying transformation functions to apply\n * to the object.\n * @param {Object} object The object to be transformed.\n * @return {Object} The transformed object.\n * @example\n *\n * const tomato = {firstName: ' Tomato ', data: {elapsed: 100, remaining: 1400}, id:123};\n * const transformations = {\n * firstName: R.trim,\n * lastName: R.trim, // Will not get invoked.\n * data: {elapsed: R.add(1), remaining: R.add(-1)}\n * };\n * R.evolve(transformations, tomato); //=> {firstName: 'Tomato', data: {elapsed: 101, remaining: 1399}, id:123}\n */\n\nvar evolve =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function evolve(transformations, object) {\n var result = object instanceof Array ? [] : {};\n var transformation, key, type;\n\n for (key in object) {\n transformation = transformations[key];\n type = typeof transformation;\n result[key] = type === 'function' ? transformation(object[key]) : transformation && type === 'object' ? evolve(transformation, object[key]) : object[key];\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (evolve);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/evolve.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/filter.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/filter.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_filter.js */ \"./node_modules/ramda/es/internal/_filter.js\");\n/* harmony import */ var _internal_isObject_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_isObject.js */ \"./node_modules/ramda/es/internal/_isObject.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _internal_xfilter_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./internal/_xfilter.js */ \"./node_modules/ramda/es/internal/_xfilter.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/ramda/es/keys.js\");\n\n\n\n\n\n\n\n/**\n * Takes a predicate and a `Filterable`, and returns a new filterable of the\n * same type containing the members of the given filterable which satisfy the\n * given predicate. Filterable objects include plain objects or any object\n * that has a filter method such as `Array`.\n *\n * Dispatches to the `filter` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array} Filterable\n * @see R.reject, R.transduce, R.addIndex\n * @example\n *\n * const isEven = n => n % 2 === 0;\n *\n * R.filter(isEven, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.filter(isEven, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\n\nvar filter =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['filter'], _internal_xfilter_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"], function (pred, filterable) {\n return Object(_internal_isObject_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(filterable) ? Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(function (acc, key) {\n if (pred(filterable[key])) {\n acc[key] = filterable[key];\n }\n\n return acc;\n }, {}, Object(_keys_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(filterable)) : // else\n Object(_internal_filter_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(pred, filterable);\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (filter);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/filter.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/find.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/find.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xfind_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xfind.js */ \"./node_modules/ramda/es/internal/_xfind.js\");\n\n\n\n/**\n * Returns the first element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Dispatches to the `find` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.find(R.propEq('a', 2))(xs); //=> {a: 2}\n * R.find(R.propEq('a', 4))(xs); //=> undefined\n */\n\nvar find =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['find'], _internal_xfind_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function find(fn, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (fn(list[idx])) {\n return list[idx];\n }\n\n idx += 1;\n }\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (find);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/find.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/findIndex.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/findIndex.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xfindIndex_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xfindIndex.js */ \"./node_modules/ramda/es/internal/_xfindIndex.js\");\n\n\n\n/**\n * Returns the index of the first element of the list which matches the\n * predicate, or `-1` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> Number\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Number} The index of the element found, or `-1`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.findIndex(R.propEq('a', 2))(xs); //=> 1\n * R.findIndex(R.propEq('a', 4))(xs); //=> -1\n */\n\nvar findIndex =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([], _internal_xfindIndex_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function findIndex(fn, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (fn(list[idx])) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (findIndex);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/findIndex.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/findLast.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/findLast.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xfindLast_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xfindLast.js */ \"./node_modules/ramda/es/internal/_xfindLast.js\");\n\n\n\n/**\n * Returns the last element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1, b: 0}, {a:1, b: 1}];\n * R.findLast(R.propEq('a', 1))(xs); //=> {a: 1, b: 1}\n * R.findLast(R.propEq('a', 4))(xs); //=> undefined\n */\n\nvar findLast =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([], _internal_xfindLast_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function findLast(fn, list) {\n var idx = list.length - 1;\n\n while (idx >= 0) {\n if (fn(list[idx])) {\n return list[idx];\n }\n\n idx -= 1;\n }\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (findLast);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/findLast.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/findLastIndex.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/findLastIndex.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xfindLastIndex_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xfindLastIndex.js */ \"./node_modules/ramda/es/internal/_xfindLastIndex.js\");\n\n\n\n/**\n * Returns the index of the last element of the list which matches the\n * predicate, or `-1` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> Number\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Number} The index of the element found, or `-1`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1, b: 0}, {a:1, b: 1}];\n * R.findLastIndex(R.propEq('a', 1))(xs); //=> 1\n * R.findLastIndex(R.propEq('a', 4))(xs); //=> -1\n */\n\nvar findLastIndex =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([], _internal_xfindLastIndex_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function findLastIndex(fn, list) {\n var idx = list.length - 1;\n\n while (idx >= 0) {\n if (fn(list[idx])) {\n return idx;\n }\n\n idx -= 1;\n }\n\n return -1;\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (findLastIndex);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/findLastIndex.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/flatten.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/flatten.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_makeFlat_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_makeFlat.js */ \"./node_modules/ramda/es/internal/_makeFlat.js\");\n\n\n/**\n * Returns a new list by pulling every item out of it (and all its sub-arrays)\n * and putting them in a new array, depth-first.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b]\n * @param {Array} list The array to consider.\n * @return {Array} The flattened list.\n * @see R.unnest\n * @example\n *\n * R.flatten([1, 2, [3, 4], 5, [6, [7, 8, [9, [10, 11], 12]]]]);\n * //=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]\n */\n\nvar flatten =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_makeFlat_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(true));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (flatten);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/flatten.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/flip.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/flip.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n\n\n/**\n * Returns a new function much like the supplied one, except that the first two\n * arguments' order is reversed.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((a, b, c, ...) -> z) -> (b -> a -> c -> ... -> z)\n * @param {Function} fn The function to invoke with its first two parameters reversed.\n * @return {*} The result of invoking `fn` with its first two parameters' order reversed.\n * @example\n *\n * const mergeThree = (a, b, c) => [].concat(a, b, c);\n *\n * mergeThree(1, 2, 3); //=> [1, 2, 3]\n *\n * R.flip(mergeThree)(1, 2, 3); //=> [2, 1, 3]\n * @symb R.flip(f)(a, b, c) = f(b, a, c)\n */\n\nvar flip =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function flip(fn) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(fn.length, function (a, b) {\n var args = Array.prototype.slice.call(arguments, 0);\n args[0] = b;\n args[1] = a;\n return fn.apply(this, args);\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (flip);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/flip.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/forEach.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/forEach.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_checkForMethod.js */ \"./node_modules/ramda/es/internal/_checkForMethod.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Iterate over an input `list`, calling a provided function `fn` for each\n * element in the list.\n *\n * `fn` receives one argument: *(value)*.\n *\n * Note: `R.forEach` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.forEach` method. For more\n * details on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach#Description\n *\n * Also note that, unlike `Array.prototype.forEach`, Ramda's `forEach` returns\n * the original array. In some libraries this function is named `each`.\n *\n * Dispatches to the `forEach` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> *) -> [a] -> [a]\n * @param {Function} fn The function to invoke. Receives one argument, `value`.\n * @param {Array} list The list to iterate over.\n * @return {Array} The original list.\n * @see R.addIndex\n * @example\n *\n * const printXPlusFive = x => console.log(x + 5);\n * R.forEach(printXPlusFive, [1, 2, 3]); //=> [1, 2, 3]\n * // logs 6\n * // logs 7\n * // logs 8\n * @symb R.forEach(f, [a, b, c]) = [a, b, c]\n */\n\nvar forEach =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('forEach', function forEach(fn, list) {\n var len = list.length;\n var idx = 0;\n\n while (idx < len) {\n fn(list[idx]);\n idx += 1;\n }\n\n return list;\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (forEach);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/forEach.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/forEachObjIndexed.js": +/*!****************************************************!*\ + !*** ./node_modules/ramda/es/forEachObjIndexed.js ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/ramda/es/keys.js\");\n\n\n/**\n * Iterate over an input `object`, calling a provided function `fn` for each\n * key and value in the object.\n *\n * `fn` receives three argument: *(value, key, obj)*.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Object\n * @sig ((a, String, StrMap a) -> Any) -> StrMap a -> StrMap a\n * @param {Function} fn The function to invoke. Receives three argument, `value`, `key`, `obj`.\n * @param {Object} obj The object to iterate over.\n * @return {Object} The original object.\n * @example\n *\n * const printKeyConcatValue = (value, key) => console.log(key + ':' + value);\n * R.forEachObjIndexed(printKeyConcatValue, {x: 1, y: 2}); //=> {x: 1, y: 2}\n * // logs x:1\n * // logs y:2\n * @symb R.forEachObjIndexed(f, {x: a, y: b}) = {x: a, y: b}\n */\n\nvar forEachObjIndexed =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function forEachObjIndexed(fn, obj) {\n var keyList = Object(_keys_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(obj);\n var idx = 0;\n\n while (idx < keyList.length) {\n var key = keyList[idx];\n fn(obj[key], key, obj);\n idx += 1;\n }\n\n return obj;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (forEachObjIndexed);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/forEachObjIndexed.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/fromPairs.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/fromPairs.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Creates a new object from a list key-value pairs. If a key appears in\n * multiple pairs, the rightmost pair is included in the object.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [[k,v]] -> {k: v}\n * @param {Array} pairs An array of two-element arrays that will be the keys and values of the output object.\n * @return {Object} The object made by pairing up `keys` and `values`.\n * @see R.toPairs, R.pair\n * @example\n *\n * R.fromPairs([['a', 1], ['b', 2], ['c', 3]]); //=> {a: 1, b: 2, c: 3}\n */\n\nvar fromPairs =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function fromPairs(pairs) {\n var result = {};\n var idx = 0;\n\n while (idx < pairs.length) {\n result[pairs[idx][0]] = pairs[idx][1];\n idx += 1;\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (fromPairs);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/fromPairs.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/groupBy.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/groupBy.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_checkForMethod.js */ \"./node_modules/ramda/es/internal/_checkForMethod.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _reduceBy_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reduceBy.js */ \"./node_modules/ramda/es/reduceBy.js\");\n\n\n\n/**\n * Splits a list into sub-lists stored in an object, based on the result of\n * calling a String-returning function on each element, and grouping the\n * results according to values returned.\n *\n * Dispatches to the `groupBy` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> String) -> [a] -> {String: [a]}\n * @param {Function} fn Function :: a -> String\n * @param {Array} list The array to group\n * @return {Object} An object with the output of `fn` for keys, mapped to arrays of elements\n * that produced that key when passed to `fn`.\n * @see R.reduceBy, R.transduce\n * @example\n *\n * const byGrade = R.groupBy(function(student) {\n * const score = student.score;\n * return score < 65 ? 'F' :\n * score < 70 ? 'D' :\n * score < 80 ? 'C' :\n * score < 90 ? 'B' : 'A';\n * });\n * const students = [{name: 'Abby', score: 84},\n * {name: 'Eddy', score: 58},\n * // ...\n * {name: 'Jack', score: 69}];\n * byGrade(students);\n * // {\n * // 'A': [{name: 'Dianne', score: 99}],\n * // 'B': [{name: 'Abby', score: 84}]\n * // // ...,\n * // 'F': [{name: 'Eddy', score: 58}]\n * // }\n */\n\nvar groupBy =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('groupBy',\n/*#__PURE__*/\nObject(_reduceBy_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(function (acc, item) {\n if (acc == null) {\n acc = [];\n }\n\n acc.push(item);\n return acc;\n}, null)));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (groupBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/groupBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/groupWith.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/groupWith.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Takes a list and returns a list of lists where each sublist's elements are\n * all satisfied pairwise comparison according to the provided function.\n * Only adjacent elements are passed to the comparison function.\n *\n * @func\n * @memberOf R\n * @since v0.21.0\n * @category List\n * @sig ((a, a) → Boolean) → [a] → [[a]]\n * @param {Function} fn Function for determining whether two given (adjacent)\n * elements should be in the same group\n * @param {Array} list The array to group. Also accepts a string, which will be\n * treated as a list of characters.\n * @return {List} A list that contains sublists of elements,\n * whose concatenations are equal to the original list.\n * @example\n *\n * R.groupWith(R.equals, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0], [1, 1], [2], [3], [5], [8], [13], [21]]\n *\n * R.groupWith((a, b) => a + 1 === b, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0, 1], [1, 2, 3], [5], [8], [13], [21]]\n *\n * R.groupWith((a, b) => a % 2 === b % 2, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0], [1, 1], [2], [3, 5], [8], [13, 21]]\n *\n * R.groupWith(R.eqBy(isVowel), 'aestiou')\n * //=> ['ae', 'st', 'iou']\n */\n\nvar groupWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (fn, list) {\n var res = [];\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n var nextidx = idx + 1;\n\n while (nextidx < len && fn(list[nextidx - 1], list[nextidx])) {\n nextidx += 1;\n }\n\n res.push(list.slice(idx, nextidx));\n idx = nextidx;\n }\n\n return res;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (groupWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/groupWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/gt.js": +/*!*************************************!*\ + !*** ./node_modules/ramda/es/gt.js ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns `true` if the first argument is greater than the second; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @see R.lt\n * @example\n *\n * R.gt(2, 1); //=> true\n * R.gt(2, 2); //=> false\n * R.gt(2, 3); //=> false\n * R.gt('a', 'z'); //=> false\n * R.gt('z', 'a'); //=> true\n */\n\nvar gt =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function gt(a, b) {\n return a > b;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (gt);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/gt.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/gte.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/gte.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns `true` if the first argument is greater than or equal to the second;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {Number} a\n * @param {Number} b\n * @return {Boolean}\n * @see R.lte\n * @example\n *\n * R.gte(2, 1); //=> true\n * R.gte(2, 2); //=> true\n * R.gte(2, 3); //=> false\n * R.gte('a', 'z'); //=> false\n * R.gte('z', 'a'); //=> true\n */\n\nvar gte =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function gte(a, b) {\n return a >= b;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (gte);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/gte.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/has.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/has.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _hasPath_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hasPath.js */ \"./node_modules/ramda/es/hasPath.js\");\n\n\n/**\n * Returns whether or not an object has an own property with the specified name\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Object\n * @sig s -> {s: x} -> Boolean\n * @param {String} prop The name of the property to check for.\n * @param {Object} obj The object to query.\n * @return {Boolean} Whether the property exists.\n * @example\n *\n * const hasName = R.has('name');\n * hasName({name: 'alice'}); //=> true\n * hasName({name: 'bob'}); //=> true\n * hasName({}); //=> false\n *\n * const point = {x: 0, y: 0};\n * const pointHas = R.has(R.__, point);\n * pointHas('x'); //=> true\n * pointHas('y'); //=> true\n * pointHas('z'); //=> false\n */\n\nvar has =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function has(prop, obj) {\n return Object(_hasPath_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([prop], obj);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (has);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/has.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/hasIn.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/hasIn.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns whether or not an object or its prototype chain has a property with\n * the specified name\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Object\n * @sig s -> {s: x} -> Boolean\n * @param {String} prop The name of the property to check for.\n * @param {Object} obj The object to query.\n * @return {Boolean} Whether the property exists.\n * @example\n *\n * function Rectangle(width, height) {\n * this.width = width;\n * this.height = height;\n * }\n * Rectangle.prototype.area = function() {\n * return this.width * this.height;\n * };\n *\n * const square = new Rectangle(2, 2);\n * R.hasIn('width', square); //=> true\n * R.hasIn('area', square); //=> true\n */\n\nvar hasIn =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function hasIn(prop, obj) {\n return prop in obj;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (hasIn);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/hasIn.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/hasPath.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/hasPath.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n/* harmony import */ var _isNil_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isNil.js */ \"./node_modules/ramda/es/isNil.js\");\n\n\n\n/**\n * Returns whether or not a path exists in an object. Only the object's\n * own properties are checked.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {a} -> Boolean\n * @param {Array} path The path to use.\n * @param {Object} obj The object to check the path in.\n * @return {Boolean} Whether the path exists.\n * @see R.has\n * @example\n *\n * R.hasPath(['a', 'b'], {a: {b: 2}}); // => true\n * R.hasPath(['a', 'b'], {a: {b: undefined}}); // => true\n * R.hasPath(['a', 'b'], {a: {c: 2}}); // => false\n * R.hasPath(['a', 'b'], {}); // => false\n */\n\nvar hasPath =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function hasPath(_path, obj) {\n if (_path.length === 0 || Object(_isNil_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(obj)) {\n return false;\n }\n\n var val = obj;\n var idx = 0;\n\n while (idx < _path.length) {\n if (!Object(_isNil_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(val) && Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_path[idx], val)) {\n val = val[_path[idx]];\n idx += 1;\n } else {\n return false;\n }\n }\n\n return true;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (hasPath);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/hasPath.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/head.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/head.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nth_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./nth.js */ \"./node_modules/ramda/es/nth.js\");\n\n/**\n * Returns the first element of the given list or string. In some libraries\n * this function is named `first`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {Array|String} list\n * @return {*}\n * @see R.tail, R.init, R.last\n * @example\n *\n * R.head(['fi', 'fo', 'fum']); //=> 'fi'\n * R.head([]); //=> undefined\n *\n * R.head('abc'); //=> 'a'\n * R.head(''); //=> ''\n */\n\nvar head =\n/*#__PURE__*/\nObject(_nth_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(0);\n/* harmony default export */ __webpack_exports__[\"default\"] = (head);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/head.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/identical.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/identical.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_objectIs_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_objectIs.js */ \"./node_modules/ramda/es/internal/_objectIs.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Returns true if its arguments are identical, false otherwise. Values are\n * identical if they reference the same memory. `NaN` is identical to `NaN`;\n * `0` and `-0` are not identical.\n *\n * Note this is merely a curried version of ES6 `Object.is`.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * const o = {};\n * R.identical(o, o); //=> true\n * R.identical(1, 1); //=> true\n * R.identical(1, '1'); //=> false\n * R.identical([], []); //=> false\n * R.identical(0, -0); //=> false\n * R.identical(NaN, NaN); //=> true\n */\n\nvar identical =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_internal_objectIs_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (identical);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/identical.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/identity.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/identity.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_identity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_identity.js */ \"./node_modules/ramda/es/internal/_identity.js\");\n\n\n/**\n * A function that does nothing but return the parameter supplied to it. Good\n * as a default or placeholder function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> a\n * @param {*} x The value to return.\n * @return {*} The input value, `x`.\n * @example\n *\n * R.identity(1); //=> 1\n *\n * const obj = {};\n * R.identity(obj) === obj; //=> true\n * @symb R.identity(a) = a\n */\n\nvar identity =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_internal_identity_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (identity);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/identity.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/ifElse.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/ifElse.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n\n\n/**\n * Creates a function that will process either the `onTrue` or the `onFalse`\n * function depending upon the result of the `condition` predicate.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> *) -> (*... -> *) -> (*... -> *)\n * @param {Function} condition A predicate function\n * @param {Function} onTrue A function to invoke when the `condition` evaluates to a truthy value.\n * @param {Function} onFalse A function to invoke when the `condition` evaluates to a falsy value.\n * @return {Function} A new function that will process either the `onTrue` or the `onFalse`\n * function depending upon the result of the `condition` predicate.\n * @see R.unless, R.when, R.cond\n * @example\n *\n * const incCount = R.ifElse(\n * R.has('count'),\n * R.over(R.lensProp('count'), R.inc),\n * R.assoc('count', 1)\n * );\n * incCount({}); //=> { count: 1 }\n * incCount({ count: 1 }); //=> { count: 2 }\n */\n\nvar ifElse =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function ifElse(condition, onTrue, onFalse) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Math.max(condition.length, onTrue.length, onFalse.length), function _ifElse() {\n return condition.apply(this, arguments) ? onTrue.apply(this, arguments) : onFalse.apply(this, arguments);\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ifElse);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/ifElse.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/inc.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/inc.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _add_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./add.js */ \"./node_modules/ramda/es/add.js\");\n\n/**\n * Increments its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number} n + 1\n * @see R.dec\n * @example\n *\n * R.inc(42); //=> 43\n */\n\nvar inc =\n/*#__PURE__*/\nObject(_add_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(1);\n/* harmony default export */ __webpack_exports__[\"default\"] = (inc);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/inc.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/includes.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/includes.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_includes.js */ \"./node_modules/ramda/es/internal/_includes.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Returns `true` if the specified value is equal, in [`R.equals`](#equals)\n * terms, to at least one element of the given list; `false` otherwise.\n * Works also with strings.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category List\n * @sig a -> [a] -> Boolean\n * @param {Object} a The item to compare against.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if an equivalent item is in the list, `false` otherwise.\n * @see R.any\n * @example\n *\n * R.includes(3, [1, 2, 3]); //=> true\n * R.includes(4, [1, 2, 3]); //=> false\n * R.includes({ name: 'Fred' }, [{ name: 'Fred' }]); //=> true\n * R.includes([42], [[42]]); //=> true\n * R.includes('ba', 'banana'); //=>true\n */\n\nvar includes =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_internal_includes_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (includes);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/includes.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/index.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/index.js ***! + \****************************************/ +/*! exports provided: F, T, __, add, addIndex, adjust, all, allPass, always, and, any, anyPass, ap, aperture, append, apply, applySpec, applyTo, ascend, assoc, assocPath, binary, bind, both, call, chain, clamp, clone, comparator, complement, compose, composeK, composeP, composeWith, concat, cond, construct, constructN, contains, converge, countBy, curry, curryN, dec, defaultTo, descend, difference, differenceWith, dissoc, dissocPath, divide, drop, dropLast, dropLastWhile, dropRepeats, dropRepeatsWith, dropWhile, either, empty, endsWith, eqBy, eqProps, equals, evolve, filter, find, findIndex, findLast, findLastIndex, flatten, flip, forEach, forEachObjIndexed, fromPairs, groupBy, groupWith, gt, gte, has, hasIn, hasPath, head, identical, identity, ifElse, inc, includes, indexBy, indexOf, init, innerJoin, insert, insertAll, intersection, intersperse, into, invert, invertObj, invoker, is, isEmpty, isNil, join, juxt, keys, keysIn, last, lastIndexOf, length, lens, lensIndex, lensPath, lensProp, lift, liftN, lt, lte, map, mapAccum, mapAccumRight, mapObjIndexed, match, mathMod, max, maxBy, mean, median, memoizeWith, merge, mergeAll, mergeDeepLeft, mergeDeepRight, mergeDeepWith, mergeDeepWithKey, mergeLeft, mergeRight, mergeWith, mergeWithKey, min, minBy, modulo, move, multiply, nAry, negate, none, not, nth, nthArg, o, objOf, of, omit, once, or, otherwise, over, pair, partial, partialRight, partition, path, paths, pathEq, pathOr, pathSatisfies, pick, pickAll, pickBy, pipe, pipeK, pipeP, pipeWith, pluck, prepend, product, project, prop, propEq, propIs, propOr, propSatisfies, props, range, reduce, reduceBy, reduceRight, reduceWhile, reduced, reject, remove, repeat, replace, reverse, scan, sequence, set, slice, sort, sortBy, sortWith, split, splitAt, splitEvery, splitWhen, startsWith, subtract, sum, symmetricDifference, symmetricDifferenceWith, tail, take, takeLast, takeLastWhile, takeWhile, tap, test, andThen, times, toLower, toPairs, toPairsIn, toString, toUpper, transduce, transpose, traverse, trim, tryCatch, type, unapply, unary, uncurryN, unfold, union, unionWith, uniq, uniqBy, uniqWith, unless, unnest, until, update, useWith, values, valuesIn, view, when, where, whereEq, without, xor, xprod, zip, zipObj, zipWith, thunkify */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _F_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./F.js */ \"./node_modules/ramda/es/F.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"F\", function() { return _F_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _T_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./T.js */ \"./node_modules/ramda/es/T.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"T\", function() { return _T_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./__.js */ \"./node_modules/ramda/es/__.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"__\", function() { return _js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _add_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./add.js */ \"./node_modules/ramda/es/add.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"add\", function() { return _add_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _addIndex_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./addIndex.js */ \"./node_modules/ramda/es/addIndex.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"addIndex\", function() { return _addIndex_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _adjust_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./adjust.js */ \"./node_modules/ramda/es/adjust.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"adjust\", function() { return _adjust_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _all_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./all.js */ \"./node_modules/ramda/es/all.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"all\", function() { return _all_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony import */ var _allPass_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./allPass.js */ \"./node_modules/ramda/es/allPass.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"allPass\", function() { return _allPass_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n/* harmony import */ var _always_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./always.js */ \"./node_modules/ramda/es/always.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"always\", function() { return _always_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* harmony import */ var _and_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./and.js */ \"./node_modules/ramda/es/and.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"and\", function() { return _and_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/* harmony import */ var _any_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./any.js */ \"./node_modules/ramda/es/any.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"any\", function() { return _any_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n\n/* harmony import */ var _anyPass_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./anyPass.js */ \"./node_modules/ramda/es/anyPass.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"anyPass\", function() { return _anyPass_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; });\n\n/* harmony import */ var _ap_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./ap.js */ \"./node_modules/ramda/es/ap.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ap\", function() { return _ap_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"]; });\n\n/* harmony import */ var _aperture_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./aperture.js */ \"./node_modules/ramda/es/aperture.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"aperture\", function() { return _aperture_js__WEBPACK_IMPORTED_MODULE_13__[\"default\"]; });\n\n/* harmony import */ var _append_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./append.js */ \"./node_modules/ramda/es/append.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"append\", function() { return _append_js__WEBPACK_IMPORTED_MODULE_14__[\"default\"]; });\n\n/* harmony import */ var _apply_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./apply.js */ \"./node_modules/ramda/es/apply.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"apply\", function() { return _apply_js__WEBPACK_IMPORTED_MODULE_15__[\"default\"]; });\n\n/* harmony import */ var _applySpec_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./applySpec.js */ \"./node_modules/ramda/es/applySpec.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applySpec\", function() { return _applySpec_js__WEBPACK_IMPORTED_MODULE_16__[\"default\"]; });\n\n/* harmony import */ var _applyTo_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./applyTo.js */ \"./node_modules/ramda/es/applyTo.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyTo\", function() { return _applyTo_js__WEBPACK_IMPORTED_MODULE_17__[\"default\"]; });\n\n/* harmony import */ var _ascend_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./ascend.js */ \"./node_modules/ramda/es/ascend.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ascend\", function() { return _ascend_js__WEBPACK_IMPORTED_MODULE_18__[\"default\"]; });\n\n/* harmony import */ var _assoc_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./assoc.js */ \"./node_modules/ramda/es/assoc.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"assoc\", function() { return _assoc_js__WEBPACK_IMPORTED_MODULE_19__[\"default\"]; });\n\n/* harmony import */ var _assocPath_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./assocPath.js */ \"./node_modules/ramda/es/assocPath.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"assocPath\", function() { return _assocPath_js__WEBPACK_IMPORTED_MODULE_20__[\"default\"]; });\n\n/* harmony import */ var _binary_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./binary.js */ \"./node_modules/ramda/es/binary.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"binary\", function() { return _binary_js__WEBPACK_IMPORTED_MODULE_21__[\"default\"]; });\n\n/* harmony import */ var _bind_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./bind.js */ \"./node_modules/ramda/es/bind.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bind\", function() { return _bind_js__WEBPACK_IMPORTED_MODULE_22__[\"default\"]; });\n\n/* harmony import */ var _both_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./both.js */ \"./node_modules/ramda/es/both.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"both\", function() { return _both_js__WEBPACK_IMPORTED_MODULE_23__[\"default\"]; });\n\n/* harmony import */ var _call_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./call.js */ \"./node_modules/ramda/es/call.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"call\", function() { return _call_js__WEBPACK_IMPORTED_MODULE_24__[\"default\"]; });\n\n/* harmony import */ var _chain_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./chain.js */ \"./node_modules/ramda/es/chain.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"chain\", function() { return _chain_js__WEBPACK_IMPORTED_MODULE_25__[\"default\"]; });\n\n/* harmony import */ var _clamp_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./clamp.js */ \"./node_modules/ramda/es/clamp.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"clamp\", function() { return _clamp_js__WEBPACK_IMPORTED_MODULE_26__[\"default\"]; });\n\n/* harmony import */ var _clone_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./clone.js */ \"./node_modules/ramda/es/clone.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"clone\", function() { return _clone_js__WEBPACK_IMPORTED_MODULE_27__[\"default\"]; });\n\n/* harmony import */ var _comparator_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./comparator.js */ \"./node_modules/ramda/es/comparator.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"comparator\", function() { return _comparator_js__WEBPACK_IMPORTED_MODULE_28__[\"default\"]; });\n\n/* harmony import */ var _complement_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./complement.js */ \"./node_modules/ramda/es/complement.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"complement\", function() { return _complement_js__WEBPACK_IMPORTED_MODULE_29__[\"default\"]; });\n\n/* harmony import */ var _compose_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./compose.js */ \"./node_modules/ramda/es/compose.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"compose\", function() { return _compose_js__WEBPACK_IMPORTED_MODULE_30__[\"default\"]; });\n\n/* harmony import */ var _composeK_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./composeK.js */ \"./node_modules/ramda/es/composeK.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"composeK\", function() { return _composeK_js__WEBPACK_IMPORTED_MODULE_31__[\"default\"]; });\n\n/* harmony import */ var _composeP_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./composeP.js */ \"./node_modules/ramda/es/composeP.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"composeP\", function() { return _composeP_js__WEBPACK_IMPORTED_MODULE_32__[\"default\"]; });\n\n/* harmony import */ var _composeWith_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./composeWith.js */ \"./node_modules/ramda/es/composeWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"composeWith\", function() { return _composeWith_js__WEBPACK_IMPORTED_MODULE_33__[\"default\"]; });\n\n/* harmony import */ var _concat_js__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./concat.js */ \"./node_modules/ramda/es/concat.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"concat\", function() { return _concat_js__WEBPACK_IMPORTED_MODULE_34__[\"default\"]; });\n\n/* harmony import */ var _cond_js__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./cond.js */ \"./node_modules/ramda/es/cond.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cond\", function() { return _cond_js__WEBPACK_IMPORTED_MODULE_35__[\"default\"]; });\n\n/* harmony import */ var _construct_js__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./construct.js */ \"./node_modules/ramda/es/construct.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"construct\", function() { return _construct_js__WEBPACK_IMPORTED_MODULE_36__[\"default\"]; });\n\n/* harmony import */ var _constructN_js__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./constructN.js */ \"./node_modules/ramda/es/constructN.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"constructN\", function() { return _constructN_js__WEBPACK_IMPORTED_MODULE_37__[\"default\"]; });\n\n/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./contains.js */ \"./node_modules/ramda/es/contains.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"contains\", function() { return _contains_js__WEBPACK_IMPORTED_MODULE_38__[\"default\"]; });\n\n/* harmony import */ var _converge_js__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./converge.js */ \"./node_modules/ramda/es/converge.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"converge\", function() { return _converge_js__WEBPACK_IMPORTED_MODULE_39__[\"default\"]; });\n\n/* harmony import */ var _countBy_js__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./countBy.js */ \"./node_modules/ramda/es/countBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"countBy\", function() { return _countBy_js__WEBPACK_IMPORTED_MODULE_40__[\"default\"]; });\n\n/* harmony import */ var _curry_js__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./curry.js */ \"./node_modules/ramda/es/curry.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"curry\", function() { return _curry_js__WEBPACK_IMPORTED_MODULE_41__[\"default\"]; });\n\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"curryN\", function() { return _curryN_js__WEBPACK_IMPORTED_MODULE_42__[\"default\"]; });\n\n/* harmony import */ var _dec_js__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./dec.js */ \"./node_modules/ramda/es/dec.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dec\", function() { return _dec_js__WEBPACK_IMPORTED_MODULE_43__[\"default\"]; });\n\n/* harmony import */ var _defaultTo_js__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./defaultTo.js */ \"./node_modules/ramda/es/defaultTo.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"defaultTo\", function() { return _defaultTo_js__WEBPACK_IMPORTED_MODULE_44__[\"default\"]; });\n\n/* harmony import */ var _descend_js__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./descend.js */ \"./node_modules/ramda/es/descend.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"descend\", function() { return _descend_js__WEBPACK_IMPORTED_MODULE_45__[\"default\"]; });\n\n/* harmony import */ var _difference_js__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./difference.js */ \"./node_modules/ramda/es/difference.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"difference\", function() { return _difference_js__WEBPACK_IMPORTED_MODULE_46__[\"default\"]; });\n\n/* harmony import */ var _differenceWith_js__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./differenceWith.js */ \"./node_modules/ramda/es/differenceWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"differenceWith\", function() { return _differenceWith_js__WEBPACK_IMPORTED_MODULE_47__[\"default\"]; });\n\n/* harmony import */ var _dissoc_js__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./dissoc.js */ \"./node_modules/ramda/es/dissoc.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dissoc\", function() { return _dissoc_js__WEBPACK_IMPORTED_MODULE_48__[\"default\"]; });\n\n/* harmony import */ var _dissocPath_js__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./dissocPath.js */ \"./node_modules/ramda/es/dissocPath.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dissocPath\", function() { return _dissocPath_js__WEBPACK_IMPORTED_MODULE_49__[\"default\"]; });\n\n/* harmony import */ var _divide_js__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./divide.js */ \"./node_modules/ramda/es/divide.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"divide\", function() { return _divide_js__WEBPACK_IMPORTED_MODULE_50__[\"default\"]; });\n\n/* harmony import */ var _drop_js__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./drop.js */ \"./node_modules/ramda/es/drop.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"drop\", function() { return _drop_js__WEBPACK_IMPORTED_MODULE_51__[\"default\"]; });\n\n/* harmony import */ var _dropLast_js__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./dropLast.js */ \"./node_modules/ramda/es/dropLast.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dropLast\", function() { return _dropLast_js__WEBPACK_IMPORTED_MODULE_52__[\"default\"]; });\n\n/* harmony import */ var _dropLastWhile_js__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./dropLastWhile.js */ \"./node_modules/ramda/es/dropLastWhile.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dropLastWhile\", function() { return _dropLastWhile_js__WEBPACK_IMPORTED_MODULE_53__[\"default\"]; });\n\n/* harmony import */ var _dropRepeats_js__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./dropRepeats.js */ \"./node_modules/ramda/es/dropRepeats.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dropRepeats\", function() { return _dropRepeats_js__WEBPACK_IMPORTED_MODULE_54__[\"default\"]; });\n\n/* harmony import */ var _dropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./dropRepeatsWith.js */ \"./node_modules/ramda/es/dropRepeatsWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dropRepeatsWith\", function() { return _dropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_55__[\"default\"]; });\n\n/* harmony import */ var _dropWhile_js__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./dropWhile.js */ \"./node_modules/ramda/es/dropWhile.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dropWhile\", function() { return _dropWhile_js__WEBPACK_IMPORTED_MODULE_56__[\"default\"]; });\n\n/* harmony import */ var _either_js__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./either.js */ \"./node_modules/ramda/es/either.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"either\", function() { return _either_js__WEBPACK_IMPORTED_MODULE_57__[\"default\"]; });\n\n/* harmony import */ var _empty_js__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./empty.js */ \"./node_modules/ramda/es/empty.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"empty\", function() { return _empty_js__WEBPACK_IMPORTED_MODULE_58__[\"default\"]; });\n\n/* harmony import */ var _endsWith_js__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./endsWith.js */ \"./node_modules/ramda/es/endsWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"endsWith\", function() { return _endsWith_js__WEBPACK_IMPORTED_MODULE_59__[\"default\"]; });\n\n/* harmony import */ var _eqBy_js__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./eqBy.js */ \"./node_modules/ramda/es/eqBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"eqBy\", function() { return _eqBy_js__WEBPACK_IMPORTED_MODULE_60__[\"default\"]; });\n\n/* harmony import */ var _eqProps_js__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ./eqProps.js */ \"./node_modules/ramda/es/eqProps.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"eqProps\", function() { return _eqProps_js__WEBPACK_IMPORTED_MODULE_61__[\"default\"]; });\n\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"equals\", function() { return _equals_js__WEBPACK_IMPORTED_MODULE_62__[\"default\"]; });\n\n/* harmony import */ var _evolve_js__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ./evolve.js */ \"./node_modules/ramda/es/evolve.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"evolve\", function() { return _evolve_js__WEBPACK_IMPORTED_MODULE_63__[\"default\"]; });\n\n/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./filter.js */ \"./node_modules/ramda/es/filter.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"filter\", function() { return _filter_js__WEBPACK_IMPORTED_MODULE_64__[\"default\"]; });\n\n/* harmony import */ var _find_js__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./find.js */ \"./node_modules/ramda/es/find.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"find\", function() { return _find_js__WEBPACK_IMPORTED_MODULE_65__[\"default\"]; });\n\n/* harmony import */ var _findIndex_js__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./findIndex.js */ \"./node_modules/ramda/es/findIndex.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"findIndex\", function() { return _findIndex_js__WEBPACK_IMPORTED_MODULE_66__[\"default\"]; });\n\n/* harmony import */ var _findLast_js__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./findLast.js */ \"./node_modules/ramda/es/findLast.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"findLast\", function() { return _findLast_js__WEBPACK_IMPORTED_MODULE_67__[\"default\"]; });\n\n/* harmony import */ var _findLastIndex_js__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./findLastIndex.js */ \"./node_modules/ramda/es/findLastIndex.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"findLastIndex\", function() { return _findLastIndex_js__WEBPACK_IMPORTED_MODULE_68__[\"default\"]; });\n\n/* harmony import */ var _flatten_js__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./flatten.js */ \"./node_modules/ramda/es/flatten.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"flatten\", function() { return _flatten_js__WEBPACK_IMPORTED_MODULE_69__[\"default\"]; });\n\n/* harmony import */ var _flip_js__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./flip.js */ \"./node_modules/ramda/es/flip.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"flip\", function() { return _flip_js__WEBPACK_IMPORTED_MODULE_70__[\"default\"]; });\n\n/* harmony import */ var _forEach_js__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./forEach.js */ \"./node_modules/ramda/es/forEach.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"forEach\", function() { return _forEach_js__WEBPACK_IMPORTED_MODULE_71__[\"default\"]; });\n\n/* harmony import */ var _forEachObjIndexed_js__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ./forEachObjIndexed.js */ \"./node_modules/ramda/es/forEachObjIndexed.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"forEachObjIndexed\", function() { return _forEachObjIndexed_js__WEBPACK_IMPORTED_MODULE_72__[\"default\"]; });\n\n/* harmony import */ var _fromPairs_js__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ./fromPairs.js */ \"./node_modules/ramda/es/fromPairs.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"fromPairs\", function() { return _fromPairs_js__WEBPACK_IMPORTED_MODULE_73__[\"default\"]; });\n\n/* harmony import */ var _groupBy_js__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ./groupBy.js */ \"./node_modules/ramda/es/groupBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"groupBy\", function() { return _groupBy_js__WEBPACK_IMPORTED_MODULE_74__[\"default\"]; });\n\n/* harmony import */ var _groupWith_js__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ./groupWith.js */ \"./node_modules/ramda/es/groupWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"groupWith\", function() { return _groupWith_js__WEBPACK_IMPORTED_MODULE_75__[\"default\"]; });\n\n/* harmony import */ var _gt_js__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ./gt.js */ \"./node_modules/ramda/es/gt.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"gt\", function() { return _gt_js__WEBPACK_IMPORTED_MODULE_76__[\"default\"]; });\n\n/* harmony import */ var _gte_js__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ./gte.js */ \"./node_modules/ramda/es/gte.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"gte\", function() { return _gte_js__WEBPACK_IMPORTED_MODULE_77__[\"default\"]; });\n\n/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ./has.js */ \"./node_modules/ramda/es/has.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"has\", function() { return _has_js__WEBPACK_IMPORTED_MODULE_78__[\"default\"]; });\n\n/* harmony import */ var _hasIn_js__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ./hasIn.js */ \"./node_modules/ramda/es/hasIn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasIn\", function() { return _hasIn_js__WEBPACK_IMPORTED_MODULE_79__[\"default\"]; });\n\n/* harmony import */ var _hasPath_js__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ./hasPath.js */ \"./node_modules/ramda/es/hasPath.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasPath\", function() { return _hasPath_js__WEBPACK_IMPORTED_MODULE_80__[\"default\"]; });\n\n/* harmony import */ var _head_js__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ./head.js */ \"./node_modules/ramda/es/head.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"head\", function() { return _head_js__WEBPACK_IMPORTED_MODULE_81__[\"default\"]; });\n\n/* harmony import */ var _identical_js__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ./identical.js */ \"./node_modules/ramda/es/identical.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"identical\", function() { return _identical_js__WEBPACK_IMPORTED_MODULE_82__[\"default\"]; });\n\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ./identity.js */ \"./node_modules/ramda/es/identity.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"identity\", function() { return _identity_js__WEBPACK_IMPORTED_MODULE_83__[\"default\"]; });\n\n/* harmony import */ var _ifElse_js__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ./ifElse.js */ \"./node_modules/ramda/es/ifElse.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ifElse\", function() { return _ifElse_js__WEBPACK_IMPORTED_MODULE_84__[\"default\"]; });\n\n/* harmony import */ var _inc_js__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ./inc.js */ \"./node_modules/ramda/es/inc.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"inc\", function() { return _inc_js__WEBPACK_IMPORTED_MODULE_85__[\"default\"]; });\n\n/* harmony import */ var _includes_js__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ./includes.js */ \"./node_modules/ramda/es/includes.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"includes\", function() { return _includes_js__WEBPACK_IMPORTED_MODULE_86__[\"default\"]; });\n\n/* harmony import */ var _indexBy_js__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ./indexBy.js */ \"./node_modules/ramda/es/indexBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"indexBy\", function() { return _indexBy_js__WEBPACK_IMPORTED_MODULE_87__[\"default\"]; });\n\n/* harmony import */ var _indexOf_js__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ./indexOf.js */ \"./node_modules/ramda/es/indexOf.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"indexOf\", function() { return _indexOf_js__WEBPACK_IMPORTED_MODULE_88__[\"default\"]; });\n\n/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ./init.js */ \"./node_modules/ramda/es/init.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"init\", function() { return _init_js__WEBPACK_IMPORTED_MODULE_89__[\"default\"]; });\n\n/* harmony import */ var _innerJoin_js__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ./innerJoin.js */ \"./node_modules/ramda/es/innerJoin.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"innerJoin\", function() { return _innerJoin_js__WEBPACK_IMPORTED_MODULE_90__[\"default\"]; });\n\n/* harmony import */ var _insert_js__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ./insert.js */ \"./node_modules/ramda/es/insert.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"insert\", function() { return _insert_js__WEBPACK_IMPORTED_MODULE_91__[\"default\"]; });\n\n/* harmony import */ var _insertAll_js__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ./insertAll.js */ \"./node_modules/ramda/es/insertAll.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"insertAll\", function() { return _insertAll_js__WEBPACK_IMPORTED_MODULE_92__[\"default\"]; });\n\n/* harmony import */ var _intersection_js__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ./intersection.js */ \"./node_modules/ramda/es/intersection.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"intersection\", function() { return _intersection_js__WEBPACK_IMPORTED_MODULE_93__[\"default\"]; });\n\n/* harmony import */ var _intersperse_js__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ./intersperse.js */ \"./node_modules/ramda/es/intersperse.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"intersperse\", function() { return _intersperse_js__WEBPACK_IMPORTED_MODULE_94__[\"default\"]; });\n\n/* harmony import */ var _into_js__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ./into.js */ \"./node_modules/ramda/es/into.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"into\", function() { return _into_js__WEBPACK_IMPORTED_MODULE_95__[\"default\"]; });\n\n/* harmony import */ var _invert_js__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ./invert.js */ \"./node_modules/ramda/es/invert.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"invert\", function() { return _invert_js__WEBPACK_IMPORTED_MODULE_96__[\"default\"]; });\n\n/* harmony import */ var _invertObj_js__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(/*! ./invertObj.js */ \"./node_modules/ramda/es/invertObj.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"invertObj\", function() { return _invertObj_js__WEBPACK_IMPORTED_MODULE_97__[\"default\"]; });\n\n/* harmony import */ var _invoker_js__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(/*! ./invoker.js */ \"./node_modules/ramda/es/invoker.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"invoker\", function() { return _invoker_js__WEBPACK_IMPORTED_MODULE_98__[\"default\"]; });\n\n/* harmony import */ var _is_js__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(/*! ./is.js */ \"./node_modules/ramda/es/is.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"is\", function() { return _is_js__WEBPACK_IMPORTED_MODULE_99__[\"default\"]; });\n\n/* harmony import */ var _isEmpty_js__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(/*! ./isEmpty.js */ \"./node_modules/ramda/es/isEmpty.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isEmpty\", function() { return _isEmpty_js__WEBPACK_IMPORTED_MODULE_100__[\"default\"]; });\n\n/* harmony import */ var _isNil_js__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(/*! ./isNil.js */ \"./node_modules/ramda/es/isNil.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isNil\", function() { return _isNil_js__WEBPACK_IMPORTED_MODULE_101__[\"default\"]; });\n\n/* harmony import */ var _join_js__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(/*! ./join.js */ \"./node_modules/ramda/es/join.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"join\", function() { return _join_js__WEBPACK_IMPORTED_MODULE_102__[\"default\"]; });\n\n/* harmony import */ var _juxt_js__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(/*! ./juxt.js */ \"./node_modules/ramda/es/juxt.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"juxt\", function() { return _juxt_js__WEBPACK_IMPORTED_MODULE_103__[\"default\"]; });\n\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/ramda/es/keys.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"keys\", function() { return _keys_js__WEBPACK_IMPORTED_MODULE_104__[\"default\"]; });\n\n/* harmony import */ var _keysIn_js__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(/*! ./keysIn.js */ \"./node_modules/ramda/es/keysIn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"keysIn\", function() { return _keysIn_js__WEBPACK_IMPORTED_MODULE_105__[\"default\"]; });\n\n/* harmony import */ var _last_js__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(/*! ./last.js */ \"./node_modules/ramda/es/last.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"last\", function() { return _last_js__WEBPACK_IMPORTED_MODULE_106__[\"default\"]; });\n\n/* harmony import */ var _lastIndexOf_js__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(/*! ./lastIndexOf.js */ \"./node_modules/ramda/es/lastIndexOf.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lastIndexOf\", function() { return _lastIndexOf_js__WEBPACK_IMPORTED_MODULE_107__[\"default\"]; });\n\n/* harmony import */ var _length_js__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(/*! ./length.js */ \"./node_modules/ramda/es/length.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"length\", function() { return _length_js__WEBPACK_IMPORTED_MODULE_108__[\"default\"]; });\n\n/* harmony import */ var _lens_js__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(/*! ./lens.js */ \"./node_modules/ramda/es/lens.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lens\", function() { return _lens_js__WEBPACK_IMPORTED_MODULE_109__[\"default\"]; });\n\n/* harmony import */ var _lensIndex_js__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(/*! ./lensIndex.js */ \"./node_modules/ramda/es/lensIndex.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lensIndex\", function() { return _lensIndex_js__WEBPACK_IMPORTED_MODULE_110__[\"default\"]; });\n\n/* harmony import */ var _lensPath_js__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(/*! ./lensPath.js */ \"./node_modules/ramda/es/lensPath.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lensPath\", function() { return _lensPath_js__WEBPACK_IMPORTED_MODULE_111__[\"default\"]; });\n\n/* harmony import */ var _lensProp_js__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(/*! ./lensProp.js */ \"./node_modules/ramda/es/lensProp.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lensProp\", function() { return _lensProp_js__WEBPACK_IMPORTED_MODULE_112__[\"default\"]; });\n\n/* harmony import */ var _lift_js__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(/*! ./lift.js */ \"./node_modules/ramda/es/lift.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lift\", function() { return _lift_js__WEBPACK_IMPORTED_MODULE_113__[\"default\"]; });\n\n/* harmony import */ var _liftN_js__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(/*! ./liftN.js */ \"./node_modules/ramda/es/liftN.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"liftN\", function() { return _liftN_js__WEBPACK_IMPORTED_MODULE_114__[\"default\"]; });\n\n/* harmony import */ var _lt_js__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(/*! ./lt.js */ \"./node_modules/ramda/es/lt.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lt\", function() { return _lt_js__WEBPACK_IMPORTED_MODULE_115__[\"default\"]; });\n\n/* harmony import */ var _lte_js__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(/*! ./lte.js */ \"./node_modules/ramda/es/lte.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lte\", function() { return _lte_js__WEBPACK_IMPORTED_MODULE_116__[\"default\"]; });\n\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"map\", function() { return _map_js__WEBPACK_IMPORTED_MODULE_117__[\"default\"]; });\n\n/* harmony import */ var _mapAccum_js__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(/*! ./mapAccum.js */ \"./node_modules/ramda/es/mapAccum.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mapAccum\", function() { return _mapAccum_js__WEBPACK_IMPORTED_MODULE_118__[\"default\"]; });\n\n/* harmony import */ var _mapAccumRight_js__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(/*! ./mapAccumRight.js */ \"./node_modules/ramda/es/mapAccumRight.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mapAccumRight\", function() { return _mapAccumRight_js__WEBPACK_IMPORTED_MODULE_119__[\"default\"]; });\n\n/* harmony import */ var _mapObjIndexed_js__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(/*! ./mapObjIndexed.js */ \"./node_modules/ramda/es/mapObjIndexed.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mapObjIndexed\", function() { return _mapObjIndexed_js__WEBPACK_IMPORTED_MODULE_120__[\"default\"]; });\n\n/* harmony import */ var _match_js__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ./match.js */ \"./node_modules/ramda/es/match.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"match\", function() { return _match_js__WEBPACK_IMPORTED_MODULE_121__[\"default\"]; });\n\n/* harmony import */ var _mathMod_js__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(/*! ./mathMod.js */ \"./node_modules/ramda/es/mathMod.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mathMod\", function() { return _mathMod_js__WEBPACK_IMPORTED_MODULE_122__[\"default\"]; });\n\n/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(/*! ./max.js */ \"./node_modules/ramda/es/max.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"max\", function() { return _max_js__WEBPACK_IMPORTED_MODULE_123__[\"default\"]; });\n\n/* harmony import */ var _maxBy_js__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(/*! ./maxBy.js */ \"./node_modules/ramda/es/maxBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"maxBy\", function() { return _maxBy_js__WEBPACK_IMPORTED_MODULE_124__[\"default\"]; });\n\n/* harmony import */ var _mean_js__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(/*! ./mean.js */ \"./node_modules/ramda/es/mean.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mean\", function() { return _mean_js__WEBPACK_IMPORTED_MODULE_125__[\"default\"]; });\n\n/* harmony import */ var _median_js__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(/*! ./median.js */ \"./node_modules/ramda/es/median.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"median\", function() { return _median_js__WEBPACK_IMPORTED_MODULE_126__[\"default\"]; });\n\n/* harmony import */ var _memoizeWith_js__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(/*! ./memoizeWith.js */ \"./node_modules/ramda/es/memoizeWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"memoizeWith\", function() { return _memoizeWith_js__WEBPACK_IMPORTED_MODULE_127__[\"default\"]; });\n\n/* harmony import */ var _merge_js__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(/*! ./merge.js */ \"./node_modules/ramda/es/merge.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"merge\", function() { return _merge_js__WEBPACK_IMPORTED_MODULE_128__[\"default\"]; });\n\n/* harmony import */ var _mergeAll_js__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(/*! ./mergeAll.js */ \"./node_modules/ramda/es/mergeAll.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeAll\", function() { return _mergeAll_js__WEBPACK_IMPORTED_MODULE_129__[\"default\"]; });\n\n/* harmony import */ var _mergeDeepLeft_js__WEBPACK_IMPORTED_MODULE_130__ = __webpack_require__(/*! ./mergeDeepLeft.js */ \"./node_modules/ramda/es/mergeDeepLeft.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeDeepLeft\", function() { return _mergeDeepLeft_js__WEBPACK_IMPORTED_MODULE_130__[\"default\"]; });\n\n/* harmony import */ var _mergeDeepRight_js__WEBPACK_IMPORTED_MODULE_131__ = __webpack_require__(/*! ./mergeDeepRight.js */ \"./node_modules/ramda/es/mergeDeepRight.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeDeepRight\", function() { return _mergeDeepRight_js__WEBPACK_IMPORTED_MODULE_131__[\"default\"]; });\n\n/* harmony import */ var _mergeDeepWith_js__WEBPACK_IMPORTED_MODULE_132__ = __webpack_require__(/*! ./mergeDeepWith.js */ \"./node_modules/ramda/es/mergeDeepWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeDeepWith\", function() { return _mergeDeepWith_js__WEBPACK_IMPORTED_MODULE_132__[\"default\"]; });\n\n/* harmony import */ var _mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_133__ = __webpack_require__(/*! ./mergeDeepWithKey.js */ \"./node_modules/ramda/es/mergeDeepWithKey.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeDeepWithKey\", function() { return _mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_133__[\"default\"]; });\n\n/* harmony import */ var _mergeLeft_js__WEBPACK_IMPORTED_MODULE_134__ = __webpack_require__(/*! ./mergeLeft.js */ \"./node_modules/ramda/es/mergeLeft.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeLeft\", function() { return _mergeLeft_js__WEBPACK_IMPORTED_MODULE_134__[\"default\"]; });\n\n/* harmony import */ var _mergeRight_js__WEBPACK_IMPORTED_MODULE_135__ = __webpack_require__(/*! ./mergeRight.js */ \"./node_modules/ramda/es/mergeRight.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeRight\", function() { return _mergeRight_js__WEBPACK_IMPORTED_MODULE_135__[\"default\"]; });\n\n/* harmony import */ var _mergeWith_js__WEBPACK_IMPORTED_MODULE_136__ = __webpack_require__(/*! ./mergeWith.js */ \"./node_modules/ramda/es/mergeWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeWith\", function() { return _mergeWith_js__WEBPACK_IMPORTED_MODULE_136__[\"default\"]; });\n\n/* harmony import */ var _mergeWithKey_js__WEBPACK_IMPORTED_MODULE_137__ = __webpack_require__(/*! ./mergeWithKey.js */ \"./node_modules/ramda/es/mergeWithKey.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeWithKey\", function() { return _mergeWithKey_js__WEBPACK_IMPORTED_MODULE_137__[\"default\"]; });\n\n/* harmony import */ var _min_js__WEBPACK_IMPORTED_MODULE_138__ = __webpack_require__(/*! ./min.js */ \"./node_modules/ramda/es/min.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"min\", function() { return _min_js__WEBPACK_IMPORTED_MODULE_138__[\"default\"]; });\n\n/* harmony import */ var _minBy_js__WEBPACK_IMPORTED_MODULE_139__ = __webpack_require__(/*! ./minBy.js */ \"./node_modules/ramda/es/minBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"minBy\", function() { return _minBy_js__WEBPACK_IMPORTED_MODULE_139__[\"default\"]; });\n\n/* harmony import */ var _modulo_js__WEBPACK_IMPORTED_MODULE_140__ = __webpack_require__(/*! ./modulo.js */ \"./node_modules/ramda/es/modulo.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"modulo\", function() { return _modulo_js__WEBPACK_IMPORTED_MODULE_140__[\"default\"]; });\n\n/* harmony import */ var _move_js__WEBPACK_IMPORTED_MODULE_141__ = __webpack_require__(/*! ./move.js */ \"./node_modules/ramda/es/move.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"move\", function() { return _move_js__WEBPACK_IMPORTED_MODULE_141__[\"default\"]; });\n\n/* harmony import */ var _multiply_js__WEBPACK_IMPORTED_MODULE_142__ = __webpack_require__(/*! ./multiply.js */ \"./node_modules/ramda/es/multiply.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"multiply\", function() { return _multiply_js__WEBPACK_IMPORTED_MODULE_142__[\"default\"]; });\n\n/* harmony import */ var _nAry_js__WEBPACK_IMPORTED_MODULE_143__ = __webpack_require__(/*! ./nAry.js */ \"./node_modules/ramda/es/nAry.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"nAry\", function() { return _nAry_js__WEBPACK_IMPORTED_MODULE_143__[\"default\"]; });\n\n/* harmony import */ var _negate_js__WEBPACK_IMPORTED_MODULE_144__ = __webpack_require__(/*! ./negate.js */ \"./node_modules/ramda/es/negate.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"negate\", function() { return _negate_js__WEBPACK_IMPORTED_MODULE_144__[\"default\"]; });\n\n/* harmony import */ var _none_js__WEBPACK_IMPORTED_MODULE_145__ = __webpack_require__(/*! ./none.js */ \"./node_modules/ramda/es/none.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"none\", function() { return _none_js__WEBPACK_IMPORTED_MODULE_145__[\"default\"]; });\n\n/* harmony import */ var _not_js__WEBPACK_IMPORTED_MODULE_146__ = __webpack_require__(/*! ./not.js */ \"./node_modules/ramda/es/not.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"not\", function() { return _not_js__WEBPACK_IMPORTED_MODULE_146__[\"default\"]; });\n\n/* harmony import */ var _nth_js__WEBPACK_IMPORTED_MODULE_147__ = __webpack_require__(/*! ./nth.js */ \"./node_modules/ramda/es/nth.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"nth\", function() { return _nth_js__WEBPACK_IMPORTED_MODULE_147__[\"default\"]; });\n\n/* harmony import */ var _nthArg_js__WEBPACK_IMPORTED_MODULE_148__ = __webpack_require__(/*! ./nthArg.js */ \"./node_modules/ramda/es/nthArg.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"nthArg\", function() { return _nthArg_js__WEBPACK_IMPORTED_MODULE_148__[\"default\"]; });\n\n/* harmony import */ var _o_js__WEBPACK_IMPORTED_MODULE_149__ = __webpack_require__(/*! ./o.js */ \"./node_modules/ramda/es/o.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"o\", function() { return _o_js__WEBPACK_IMPORTED_MODULE_149__[\"default\"]; });\n\n/* harmony import */ var _objOf_js__WEBPACK_IMPORTED_MODULE_150__ = __webpack_require__(/*! ./objOf.js */ \"./node_modules/ramda/es/objOf.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"objOf\", function() { return _objOf_js__WEBPACK_IMPORTED_MODULE_150__[\"default\"]; });\n\n/* harmony import */ var _of_js__WEBPACK_IMPORTED_MODULE_151__ = __webpack_require__(/*! ./of.js */ \"./node_modules/ramda/es/of.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"of\", function() { return _of_js__WEBPACK_IMPORTED_MODULE_151__[\"default\"]; });\n\n/* harmony import */ var _omit_js__WEBPACK_IMPORTED_MODULE_152__ = __webpack_require__(/*! ./omit.js */ \"./node_modules/ramda/es/omit.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"omit\", function() { return _omit_js__WEBPACK_IMPORTED_MODULE_152__[\"default\"]; });\n\n/* harmony import */ var _once_js__WEBPACK_IMPORTED_MODULE_153__ = __webpack_require__(/*! ./once.js */ \"./node_modules/ramda/es/once.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"once\", function() { return _once_js__WEBPACK_IMPORTED_MODULE_153__[\"default\"]; });\n\n/* harmony import */ var _or_js__WEBPACK_IMPORTED_MODULE_154__ = __webpack_require__(/*! ./or.js */ \"./node_modules/ramda/es/or.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"or\", function() { return _or_js__WEBPACK_IMPORTED_MODULE_154__[\"default\"]; });\n\n/* harmony import */ var _otherwise_js__WEBPACK_IMPORTED_MODULE_155__ = __webpack_require__(/*! ./otherwise.js */ \"./node_modules/ramda/es/otherwise.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"otherwise\", function() { return _otherwise_js__WEBPACK_IMPORTED_MODULE_155__[\"default\"]; });\n\n/* harmony import */ var _over_js__WEBPACK_IMPORTED_MODULE_156__ = __webpack_require__(/*! ./over.js */ \"./node_modules/ramda/es/over.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"over\", function() { return _over_js__WEBPACK_IMPORTED_MODULE_156__[\"default\"]; });\n\n/* harmony import */ var _pair_js__WEBPACK_IMPORTED_MODULE_157__ = __webpack_require__(/*! ./pair.js */ \"./node_modules/ramda/es/pair.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pair\", function() { return _pair_js__WEBPACK_IMPORTED_MODULE_157__[\"default\"]; });\n\n/* harmony import */ var _partial_js__WEBPACK_IMPORTED_MODULE_158__ = __webpack_require__(/*! ./partial.js */ \"./node_modules/ramda/es/partial.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"partial\", function() { return _partial_js__WEBPACK_IMPORTED_MODULE_158__[\"default\"]; });\n\n/* harmony import */ var _partialRight_js__WEBPACK_IMPORTED_MODULE_159__ = __webpack_require__(/*! ./partialRight.js */ \"./node_modules/ramda/es/partialRight.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"partialRight\", function() { return _partialRight_js__WEBPACK_IMPORTED_MODULE_159__[\"default\"]; });\n\n/* harmony import */ var _partition_js__WEBPACK_IMPORTED_MODULE_160__ = __webpack_require__(/*! ./partition.js */ \"./node_modules/ramda/es/partition.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"partition\", function() { return _partition_js__WEBPACK_IMPORTED_MODULE_160__[\"default\"]; });\n\n/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_161__ = __webpack_require__(/*! ./path.js */ \"./node_modules/ramda/es/path.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"path\", function() { return _path_js__WEBPACK_IMPORTED_MODULE_161__[\"default\"]; });\n\n/* harmony import */ var _paths_js__WEBPACK_IMPORTED_MODULE_162__ = __webpack_require__(/*! ./paths.js */ \"./node_modules/ramda/es/paths.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"paths\", function() { return _paths_js__WEBPACK_IMPORTED_MODULE_162__[\"default\"]; });\n\n/* harmony import */ var _pathEq_js__WEBPACK_IMPORTED_MODULE_163__ = __webpack_require__(/*! ./pathEq.js */ \"./node_modules/ramda/es/pathEq.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pathEq\", function() { return _pathEq_js__WEBPACK_IMPORTED_MODULE_163__[\"default\"]; });\n\n/* harmony import */ var _pathOr_js__WEBPACK_IMPORTED_MODULE_164__ = __webpack_require__(/*! ./pathOr.js */ \"./node_modules/ramda/es/pathOr.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pathOr\", function() { return _pathOr_js__WEBPACK_IMPORTED_MODULE_164__[\"default\"]; });\n\n/* harmony import */ var _pathSatisfies_js__WEBPACK_IMPORTED_MODULE_165__ = __webpack_require__(/*! ./pathSatisfies.js */ \"./node_modules/ramda/es/pathSatisfies.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pathSatisfies\", function() { return _pathSatisfies_js__WEBPACK_IMPORTED_MODULE_165__[\"default\"]; });\n\n/* harmony import */ var _pick_js__WEBPACK_IMPORTED_MODULE_166__ = __webpack_require__(/*! ./pick.js */ \"./node_modules/ramda/es/pick.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pick\", function() { return _pick_js__WEBPACK_IMPORTED_MODULE_166__[\"default\"]; });\n\n/* harmony import */ var _pickAll_js__WEBPACK_IMPORTED_MODULE_167__ = __webpack_require__(/*! ./pickAll.js */ \"./node_modules/ramda/es/pickAll.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pickAll\", function() { return _pickAll_js__WEBPACK_IMPORTED_MODULE_167__[\"default\"]; });\n\n/* harmony import */ var _pickBy_js__WEBPACK_IMPORTED_MODULE_168__ = __webpack_require__(/*! ./pickBy.js */ \"./node_modules/ramda/es/pickBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pickBy\", function() { return _pickBy_js__WEBPACK_IMPORTED_MODULE_168__[\"default\"]; });\n\n/* harmony import */ var _pipe_js__WEBPACK_IMPORTED_MODULE_169__ = __webpack_require__(/*! ./pipe.js */ \"./node_modules/ramda/es/pipe.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pipe\", function() { return _pipe_js__WEBPACK_IMPORTED_MODULE_169__[\"default\"]; });\n\n/* harmony import */ var _pipeK_js__WEBPACK_IMPORTED_MODULE_170__ = __webpack_require__(/*! ./pipeK.js */ \"./node_modules/ramda/es/pipeK.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pipeK\", function() { return _pipeK_js__WEBPACK_IMPORTED_MODULE_170__[\"default\"]; });\n\n/* harmony import */ var _pipeP_js__WEBPACK_IMPORTED_MODULE_171__ = __webpack_require__(/*! ./pipeP.js */ \"./node_modules/ramda/es/pipeP.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pipeP\", function() { return _pipeP_js__WEBPACK_IMPORTED_MODULE_171__[\"default\"]; });\n\n/* harmony import */ var _pipeWith_js__WEBPACK_IMPORTED_MODULE_172__ = __webpack_require__(/*! ./pipeWith.js */ \"./node_modules/ramda/es/pipeWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pipeWith\", function() { return _pipeWith_js__WEBPACK_IMPORTED_MODULE_172__[\"default\"]; });\n\n/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_173__ = __webpack_require__(/*! ./pluck.js */ \"./node_modules/ramda/es/pluck.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pluck\", function() { return _pluck_js__WEBPACK_IMPORTED_MODULE_173__[\"default\"]; });\n\n/* harmony import */ var _prepend_js__WEBPACK_IMPORTED_MODULE_174__ = __webpack_require__(/*! ./prepend.js */ \"./node_modules/ramda/es/prepend.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"prepend\", function() { return _prepend_js__WEBPACK_IMPORTED_MODULE_174__[\"default\"]; });\n\n/* harmony import */ var _product_js__WEBPACK_IMPORTED_MODULE_175__ = __webpack_require__(/*! ./product.js */ \"./node_modules/ramda/es/product.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"product\", function() { return _product_js__WEBPACK_IMPORTED_MODULE_175__[\"default\"]; });\n\n/* harmony import */ var _project_js__WEBPACK_IMPORTED_MODULE_176__ = __webpack_require__(/*! ./project.js */ \"./node_modules/ramda/es/project.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"project\", function() { return _project_js__WEBPACK_IMPORTED_MODULE_176__[\"default\"]; });\n\n/* harmony import */ var _prop_js__WEBPACK_IMPORTED_MODULE_177__ = __webpack_require__(/*! ./prop.js */ \"./node_modules/ramda/es/prop.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"prop\", function() { return _prop_js__WEBPACK_IMPORTED_MODULE_177__[\"default\"]; });\n\n/* harmony import */ var _propEq_js__WEBPACK_IMPORTED_MODULE_178__ = __webpack_require__(/*! ./propEq.js */ \"./node_modules/ramda/es/propEq.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"propEq\", function() { return _propEq_js__WEBPACK_IMPORTED_MODULE_178__[\"default\"]; });\n\n/* harmony import */ var _propIs_js__WEBPACK_IMPORTED_MODULE_179__ = __webpack_require__(/*! ./propIs.js */ \"./node_modules/ramda/es/propIs.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"propIs\", function() { return _propIs_js__WEBPACK_IMPORTED_MODULE_179__[\"default\"]; });\n\n/* harmony import */ var _propOr_js__WEBPACK_IMPORTED_MODULE_180__ = __webpack_require__(/*! ./propOr.js */ \"./node_modules/ramda/es/propOr.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"propOr\", function() { return _propOr_js__WEBPACK_IMPORTED_MODULE_180__[\"default\"]; });\n\n/* harmony import */ var _propSatisfies_js__WEBPACK_IMPORTED_MODULE_181__ = __webpack_require__(/*! ./propSatisfies.js */ \"./node_modules/ramda/es/propSatisfies.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"propSatisfies\", function() { return _propSatisfies_js__WEBPACK_IMPORTED_MODULE_181__[\"default\"]; });\n\n/* harmony import */ var _props_js__WEBPACK_IMPORTED_MODULE_182__ = __webpack_require__(/*! ./props.js */ \"./node_modules/ramda/es/props.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"props\", function() { return _props_js__WEBPACK_IMPORTED_MODULE_182__[\"default\"]; });\n\n/* harmony import */ var _range_js__WEBPACK_IMPORTED_MODULE_183__ = __webpack_require__(/*! ./range.js */ \"./node_modules/ramda/es/range.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"range\", function() { return _range_js__WEBPACK_IMPORTED_MODULE_183__[\"default\"]; });\n\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_184__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reduce\", function() { return _reduce_js__WEBPACK_IMPORTED_MODULE_184__[\"default\"]; });\n\n/* harmony import */ var _reduceBy_js__WEBPACK_IMPORTED_MODULE_185__ = __webpack_require__(/*! ./reduceBy.js */ \"./node_modules/ramda/es/reduceBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reduceBy\", function() { return _reduceBy_js__WEBPACK_IMPORTED_MODULE_185__[\"default\"]; });\n\n/* harmony import */ var _reduceRight_js__WEBPACK_IMPORTED_MODULE_186__ = __webpack_require__(/*! ./reduceRight.js */ \"./node_modules/ramda/es/reduceRight.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reduceRight\", function() { return _reduceRight_js__WEBPACK_IMPORTED_MODULE_186__[\"default\"]; });\n\n/* harmony import */ var _reduceWhile_js__WEBPACK_IMPORTED_MODULE_187__ = __webpack_require__(/*! ./reduceWhile.js */ \"./node_modules/ramda/es/reduceWhile.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reduceWhile\", function() { return _reduceWhile_js__WEBPACK_IMPORTED_MODULE_187__[\"default\"]; });\n\n/* harmony import */ var _reduced_js__WEBPACK_IMPORTED_MODULE_188__ = __webpack_require__(/*! ./reduced.js */ \"./node_modules/ramda/es/reduced.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reduced\", function() { return _reduced_js__WEBPACK_IMPORTED_MODULE_188__[\"default\"]; });\n\n/* harmony import */ var _reject_js__WEBPACK_IMPORTED_MODULE_189__ = __webpack_require__(/*! ./reject.js */ \"./node_modules/ramda/es/reject.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reject\", function() { return _reject_js__WEBPACK_IMPORTED_MODULE_189__[\"default\"]; });\n\n/* harmony import */ var _remove_js__WEBPACK_IMPORTED_MODULE_190__ = __webpack_require__(/*! ./remove.js */ \"./node_modules/ramda/es/remove.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"remove\", function() { return _remove_js__WEBPACK_IMPORTED_MODULE_190__[\"default\"]; });\n\n/* harmony import */ var _repeat_js__WEBPACK_IMPORTED_MODULE_191__ = __webpack_require__(/*! ./repeat.js */ \"./node_modules/ramda/es/repeat.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"repeat\", function() { return _repeat_js__WEBPACK_IMPORTED_MODULE_191__[\"default\"]; });\n\n/* harmony import */ var _replace_js__WEBPACK_IMPORTED_MODULE_192__ = __webpack_require__(/*! ./replace.js */ \"./node_modules/ramda/es/replace.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"replace\", function() { return _replace_js__WEBPACK_IMPORTED_MODULE_192__[\"default\"]; });\n\n/* harmony import */ var _reverse_js__WEBPACK_IMPORTED_MODULE_193__ = __webpack_require__(/*! ./reverse.js */ \"./node_modules/ramda/es/reverse.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reverse\", function() { return _reverse_js__WEBPACK_IMPORTED_MODULE_193__[\"default\"]; });\n\n/* harmony import */ var _scan_js__WEBPACK_IMPORTED_MODULE_194__ = __webpack_require__(/*! ./scan.js */ \"./node_modules/ramda/es/scan.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scan\", function() { return _scan_js__WEBPACK_IMPORTED_MODULE_194__[\"default\"]; });\n\n/* harmony import */ var _sequence_js__WEBPACK_IMPORTED_MODULE_195__ = __webpack_require__(/*! ./sequence.js */ \"./node_modules/ramda/es/sequence.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sequence\", function() { return _sequence_js__WEBPACK_IMPORTED_MODULE_195__[\"default\"]; });\n\n/* harmony import */ var _set_js__WEBPACK_IMPORTED_MODULE_196__ = __webpack_require__(/*! ./set.js */ \"./node_modules/ramda/es/set.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"set\", function() { return _set_js__WEBPACK_IMPORTED_MODULE_196__[\"default\"]; });\n\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_197__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"slice\", function() { return _slice_js__WEBPACK_IMPORTED_MODULE_197__[\"default\"]; });\n\n/* harmony import */ var _sort_js__WEBPACK_IMPORTED_MODULE_198__ = __webpack_require__(/*! ./sort.js */ \"./node_modules/ramda/es/sort.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sort\", function() { return _sort_js__WEBPACK_IMPORTED_MODULE_198__[\"default\"]; });\n\n/* harmony import */ var _sortBy_js__WEBPACK_IMPORTED_MODULE_199__ = __webpack_require__(/*! ./sortBy.js */ \"./node_modules/ramda/es/sortBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sortBy\", function() { return _sortBy_js__WEBPACK_IMPORTED_MODULE_199__[\"default\"]; });\n\n/* harmony import */ var _sortWith_js__WEBPACK_IMPORTED_MODULE_200__ = __webpack_require__(/*! ./sortWith.js */ \"./node_modules/ramda/es/sortWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sortWith\", function() { return _sortWith_js__WEBPACK_IMPORTED_MODULE_200__[\"default\"]; });\n\n/* harmony import */ var _split_js__WEBPACK_IMPORTED_MODULE_201__ = __webpack_require__(/*! ./split.js */ \"./node_modules/ramda/es/split.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"split\", function() { return _split_js__WEBPACK_IMPORTED_MODULE_201__[\"default\"]; });\n\n/* harmony import */ var _splitAt_js__WEBPACK_IMPORTED_MODULE_202__ = __webpack_require__(/*! ./splitAt.js */ \"./node_modules/ramda/es/splitAt.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"splitAt\", function() { return _splitAt_js__WEBPACK_IMPORTED_MODULE_202__[\"default\"]; });\n\n/* harmony import */ var _splitEvery_js__WEBPACK_IMPORTED_MODULE_203__ = __webpack_require__(/*! ./splitEvery.js */ \"./node_modules/ramda/es/splitEvery.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"splitEvery\", function() { return _splitEvery_js__WEBPACK_IMPORTED_MODULE_203__[\"default\"]; });\n\n/* harmony import */ var _splitWhen_js__WEBPACK_IMPORTED_MODULE_204__ = __webpack_require__(/*! ./splitWhen.js */ \"./node_modules/ramda/es/splitWhen.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"splitWhen\", function() { return _splitWhen_js__WEBPACK_IMPORTED_MODULE_204__[\"default\"]; });\n\n/* harmony import */ var _startsWith_js__WEBPACK_IMPORTED_MODULE_205__ = __webpack_require__(/*! ./startsWith.js */ \"./node_modules/ramda/es/startsWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"startsWith\", function() { return _startsWith_js__WEBPACK_IMPORTED_MODULE_205__[\"default\"]; });\n\n/* harmony import */ var _subtract_js__WEBPACK_IMPORTED_MODULE_206__ = __webpack_require__(/*! ./subtract.js */ \"./node_modules/ramda/es/subtract.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"subtract\", function() { return _subtract_js__WEBPACK_IMPORTED_MODULE_206__[\"default\"]; });\n\n/* harmony import */ var _sum_js__WEBPACK_IMPORTED_MODULE_207__ = __webpack_require__(/*! ./sum.js */ \"./node_modules/ramda/es/sum.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sum\", function() { return _sum_js__WEBPACK_IMPORTED_MODULE_207__[\"default\"]; });\n\n/* harmony import */ var _symmetricDifference_js__WEBPACK_IMPORTED_MODULE_208__ = __webpack_require__(/*! ./symmetricDifference.js */ \"./node_modules/ramda/es/symmetricDifference.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"symmetricDifference\", function() { return _symmetricDifference_js__WEBPACK_IMPORTED_MODULE_208__[\"default\"]; });\n\n/* harmony import */ var _symmetricDifferenceWith_js__WEBPACK_IMPORTED_MODULE_209__ = __webpack_require__(/*! ./symmetricDifferenceWith.js */ \"./node_modules/ramda/es/symmetricDifferenceWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"symmetricDifferenceWith\", function() { return _symmetricDifferenceWith_js__WEBPACK_IMPORTED_MODULE_209__[\"default\"]; });\n\n/* harmony import */ var _tail_js__WEBPACK_IMPORTED_MODULE_210__ = __webpack_require__(/*! ./tail.js */ \"./node_modules/ramda/es/tail.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tail\", function() { return _tail_js__WEBPACK_IMPORTED_MODULE_210__[\"default\"]; });\n\n/* harmony import */ var _take_js__WEBPACK_IMPORTED_MODULE_211__ = __webpack_require__(/*! ./take.js */ \"./node_modules/ramda/es/take.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"take\", function() { return _take_js__WEBPACK_IMPORTED_MODULE_211__[\"default\"]; });\n\n/* harmony import */ var _takeLast_js__WEBPACK_IMPORTED_MODULE_212__ = __webpack_require__(/*! ./takeLast.js */ \"./node_modules/ramda/es/takeLast.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"takeLast\", function() { return _takeLast_js__WEBPACK_IMPORTED_MODULE_212__[\"default\"]; });\n\n/* harmony import */ var _takeLastWhile_js__WEBPACK_IMPORTED_MODULE_213__ = __webpack_require__(/*! ./takeLastWhile.js */ \"./node_modules/ramda/es/takeLastWhile.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"takeLastWhile\", function() { return _takeLastWhile_js__WEBPACK_IMPORTED_MODULE_213__[\"default\"]; });\n\n/* harmony import */ var _takeWhile_js__WEBPACK_IMPORTED_MODULE_214__ = __webpack_require__(/*! ./takeWhile.js */ \"./node_modules/ramda/es/takeWhile.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"takeWhile\", function() { return _takeWhile_js__WEBPACK_IMPORTED_MODULE_214__[\"default\"]; });\n\n/* harmony import */ var _tap_js__WEBPACK_IMPORTED_MODULE_215__ = __webpack_require__(/*! ./tap.js */ \"./node_modules/ramda/es/tap.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tap\", function() { return _tap_js__WEBPACK_IMPORTED_MODULE_215__[\"default\"]; });\n\n/* harmony import */ var _test_js__WEBPACK_IMPORTED_MODULE_216__ = __webpack_require__(/*! ./test.js */ \"./node_modules/ramda/es/test.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"test\", function() { return _test_js__WEBPACK_IMPORTED_MODULE_216__[\"default\"]; });\n\n/* harmony import */ var _andThen_js__WEBPACK_IMPORTED_MODULE_217__ = __webpack_require__(/*! ./andThen.js */ \"./node_modules/ramda/es/andThen.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"andThen\", function() { return _andThen_js__WEBPACK_IMPORTED_MODULE_217__[\"default\"]; });\n\n/* harmony import */ var _times_js__WEBPACK_IMPORTED_MODULE_218__ = __webpack_require__(/*! ./times.js */ \"./node_modules/ramda/es/times.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"times\", function() { return _times_js__WEBPACK_IMPORTED_MODULE_218__[\"default\"]; });\n\n/* harmony import */ var _toLower_js__WEBPACK_IMPORTED_MODULE_219__ = __webpack_require__(/*! ./toLower.js */ \"./node_modules/ramda/es/toLower.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toLower\", function() { return _toLower_js__WEBPACK_IMPORTED_MODULE_219__[\"default\"]; });\n\n/* harmony import */ var _toPairs_js__WEBPACK_IMPORTED_MODULE_220__ = __webpack_require__(/*! ./toPairs.js */ \"./node_modules/ramda/es/toPairs.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toPairs\", function() { return _toPairs_js__WEBPACK_IMPORTED_MODULE_220__[\"default\"]; });\n\n/* harmony import */ var _toPairsIn_js__WEBPACK_IMPORTED_MODULE_221__ = __webpack_require__(/*! ./toPairsIn.js */ \"./node_modules/ramda/es/toPairsIn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toPairsIn\", function() { return _toPairsIn_js__WEBPACK_IMPORTED_MODULE_221__[\"default\"]; });\n\n/* harmony import */ var _toString_js__WEBPACK_IMPORTED_MODULE_222__ = __webpack_require__(/*! ./toString.js */ \"./node_modules/ramda/es/toString.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toString\", function() { return _toString_js__WEBPACK_IMPORTED_MODULE_222__[\"default\"]; });\n\n/* harmony import */ var _toUpper_js__WEBPACK_IMPORTED_MODULE_223__ = __webpack_require__(/*! ./toUpper.js */ \"./node_modules/ramda/es/toUpper.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toUpper\", function() { return _toUpper_js__WEBPACK_IMPORTED_MODULE_223__[\"default\"]; });\n\n/* harmony import */ var _transduce_js__WEBPACK_IMPORTED_MODULE_224__ = __webpack_require__(/*! ./transduce.js */ \"./node_modules/ramda/es/transduce.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"transduce\", function() { return _transduce_js__WEBPACK_IMPORTED_MODULE_224__[\"default\"]; });\n\n/* harmony import */ var _transpose_js__WEBPACK_IMPORTED_MODULE_225__ = __webpack_require__(/*! ./transpose.js */ \"./node_modules/ramda/es/transpose.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"transpose\", function() { return _transpose_js__WEBPACK_IMPORTED_MODULE_225__[\"default\"]; });\n\n/* harmony import */ var _traverse_js__WEBPACK_IMPORTED_MODULE_226__ = __webpack_require__(/*! ./traverse.js */ \"./node_modules/ramda/es/traverse.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"traverse\", function() { return _traverse_js__WEBPACK_IMPORTED_MODULE_226__[\"default\"]; });\n\n/* harmony import */ var _trim_js__WEBPACK_IMPORTED_MODULE_227__ = __webpack_require__(/*! ./trim.js */ \"./node_modules/ramda/es/trim.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"trim\", function() { return _trim_js__WEBPACK_IMPORTED_MODULE_227__[\"default\"]; });\n\n/* harmony import */ var _tryCatch_js__WEBPACK_IMPORTED_MODULE_228__ = __webpack_require__(/*! ./tryCatch.js */ \"./node_modules/ramda/es/tryCatch.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tryCatch\", function() { return _tryCatch_js__WEBPACK_IMPORTED_MODULE_228__[\"default\"]; });\n\n/* harmony import */ var _type_js__WEBPACK_IMPORTED_MODULE_229__ = __webpack_require__(/*! ./type.js */ \"./node_modules/ramda/es/type.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"type\", function() { return _type_js__WEBPACK_IMPORTED_MODULE_229__[\"default\"]; });\n\n/* harmony import */ var _unapply_js__WEBPACK_IMPORTED_MODULE_230__ = __webpack_require__(/*! ./unapply.js */ \"./node_modules/ramda/es/unapply.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unapply\", function() { return _unapply_js__WEBPACK_IMPORTED_MODULE_230__[\"default\"]; });\n\n/* harmony import */ var _unary_js__WEBPACK_IMPORTED_MODULE_231__ = __webpack_require__(/*! ./unary.js */ \"./node_modules/ramda/es/unary.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unary\", function() { return _unary_js__WEBPACK_IMPORTED_MODULE_231__[\"default\"]; });\n\n/* harmony import */ var _uncurryN_js__WEBPACK_IMPORTED_MODULE_232__ = __webpack_require__(/*! ./uncurryN.js */ \"./node_modules/ramda/es/uncurryN.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"uncurryN\", function() { return _uncurryN_js__WEBPACK_IMPORTED_MODULE_232__[\"default\"]; });\n\n/* harmony import */ var _unfold_js__WEBPACK_IMPORTED_MODULE_233__ = __webpack_require__(/*! ./unfold.js */ \"./node_modules/ramda/es/unfold.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unfold\", function() { return _unfold_js__WEBPACK_IMPORTED_MODULE_233__[\"default\"]; });\n\n/* harmony import */ var _union_js__WEBPACK_IMPORTED_MODULE_234__ = __webpack_require__(/*! ./union.js */ \"./node_modules/ramda/es/union.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"union\", function() { return _union_js__WEBPACK_IMPORTED_MODULE_234__[\"default\"]; });\n\n/* harmony import */ var _unionWith_js__WEBPACK_IMPORTED_MODULE_235__ = __webpack_require__(/*! ./unionWith.js */ \"./node_modules/ramda/es/unionWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unionWith\", function() { return _unionWith_js__WEBPACK_IMPORTED_MODULE_235__[\"default\"]; });\n\n/* harmony import */ var _uniq_js__WEBPACK_IMPORTED_MODULE_236__ = __webpack_require__(/*! ./uniq.js */ \"./node_modules/ramda/es/uniq.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"uniq\", function() { return _uniq_js__WEBPACK_IMPORTED_MODULE_236__[\"default\"]; });\n\n/* harmony import */ var _uniqBy_js__WEBPACK_IMPORTED_MODULE_237__ = __webpack_require__(/*! ./uniqBy.js */ \"./node_modules/ramda/es/uniqBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"uniqBy\", function() { return _uniqBy_js__WEBPACK_IMPORTED_MODULE_237__[\"default\"]; });\n\n/* harmony import */ var _uniqWith_js__WEBPACK_IMPORTED_MODULE_238__ = __webpack_require__(/*! ./uniqWith.js */ \"./node_modules/ramda/es/uniqWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"uniqWith\", function() { return _uniqWith_js__WEBPACK_IMPORTED_MODULE_238__[\"default\"]; });\n\n/* harmony import */ var _unless_js__WEBPACK_IMPORTED_MODULE_239__ = __webpack_require__(/*! ./unless.js */ \"./node_modules/ramda/es/unless.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unless\", function() { return _unless_js__WEBPACK_IMPORTED_MODULE_239__[\"default\"]; });\n\n/* harmony import */ var _unnest_js__WEBPACK_IMPORTED_MODULE_240__ = __webpack_require__(/*! ./unnest.js */ \"./node_modules/ramda/es/unnest.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unnest\", function() { return _unnest_js__WEBPACK_IMPORTED_MODULE_240__[\"default\"]; });\n\n/* harmony import */ var _until_js__WEBPACK_IMPORTED_MODULE_241__ = __webpack_require__(/*! ./until.js */ \"./node_modules/ramda/es/until.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"until\", function() { return _until_js__WEBPACK_IMPORTED_MODULE_241__[\"default\"]; });\n\n/* harmony import */ var _update_js__WEBPACK_IMPORTED_MODULE_242__ = __webpack_require__(/*! ./update.js */ \"./node_modules/ramda/es/update.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"update\", function() { return _update_js__WEBPACK_IMPORTED_MODULE_242__[\"default\"]; });\n\n/* harmony import */ var _useWith_js__WEBPACK_IMPORTED_MODULE_243__ = __webpack_require__(/*! ./useWith.js */ \"./node_modules/ramda/es/useWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useWith\", function() { return _useWith_js__WEBPACK_IMPORTED_MODULE_243__[\"default\"]; });\n\n/* harmony import */ var _values_js__WEBPACK_IMPORTED_MODULE_244__ = __webpack_require__(/*! ./values.js */ \"./node_modules/ramda/es/values.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"values\", function() { return _values_js__WEBPACK_IMPORTED_MODULE_244__[\"default\"]; });\n\n/* harmony import */ var _valuesIn_js__WEBPACK_IMPORTED_MODULE_245__ = __webpack_require__(/*! ./valuesIn.js */ \"./node_modules/ramda/es/valuesIn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"valuesIn\", function() { return _valuesIn_js__WEBPACK_IMPORTED_MODULE_245__[\"default\"]; });\n\n/* harmony import */ var _view_js__WEBPACK_IMPORTED_MODULE_246__ = __webpack_require__(/*! ./view.js */ \"./node_modules/ramda/es/view.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"view\", function() { return _view_js__WEBPACK_IMPORTED_MODULE_246__[\"default\"]; });\n\n/* harmony import */ var _when_js__WEBPACK_IMPORTED_MODULE_247__ = __webpack_require__(/*! ./when.js */ \"./node_modules/ramda/es/when.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"when\", function() { return _when_js__WEBPACK_IMPORTED_MODULE_247__[\"default\"]; });\n\n/* harmony import */ var _where_js__WEBPACK_IMPORTED_MODULE_248__ = __webpack_require__(/*! ./where.js */ \"./node_modules/ramda/es/where.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"where\", function() { return _where_js__WEBPACK_IMPORTED_MODULE_248__[\"default\"]; });\n\n/* harmony import */ var _whereEq_js__WEBPACK_IMPORTED_MODULE_249__ = __webpack_require__(/*! ./whereEq.js */ \"./node_modules/ramda/es/whereEq.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"whereEq\", function() { return _whereEq_js__WEBPACK_IMPORTED_MODULE_249__[\"default\"]; });\n\n/* harmony import */ var _without_js__WEBPACK_IMPORTED_MODULE_250__ = __webpack_require__(/*! ./without.js */ \"./node_modules/ramda/es/without.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"without\", function() { return _without_js__WEBPACK_IMPORTED_MODULE_250__[\"default\"]; });\n\n/* harmony import */ var _xor_js__WEBPACK_IMPORTED_MODULE_251__ = __webpack_require__(/*! ./xor.js */ \"./node_modules/ramda/es/xor.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"xor\", function() { return _xor_js__WEBPACK_IMPORTED_MODULE_251__[\"default\"]; });\n\n/* harmony import */ var _xprod_js__WEBPACK_IMPORTED_MODULE_252__ = __webpack_require__(/*! ./xprod.js */ \"./node_modules/ramda/es/xprod.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"xprod\", function() { return _xprod_js__WEBPACK_IMPORTED_MODULE_252__[\"default\"]; });\n\n/* harmony import */ var _zip_js__WEBPACK_IMPORTED_MODULE_253__ = __webpack_require__(/*! ./zip.js */ \"./node_modules/ramda/es/zip.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zip\", function() { return _zip_js__WEBPACK_IMPORTED_MODULE_253__[\"default\"]; });\n\n/* harmony import */ var _zipObj_js__WEBPACK_IMPORTED_MODULE_254__ = __webpack_require__(/*! ./zipObj.js */ \"./node_modules/ramda/es/zipObj.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zipObj\", function() { return _zipObj_js__WEBPACK_IMPORTED_MODULE_254__[\"default\"]; });\n\n/* harmony import */ var _zipWith_js__WEBPACK_IMPORTED_MODULE_255__ = __webpack_require__(/*! ./zipWith.js */ \"./node_modules/ramda/es/zipWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zipWith\", function() { return _zipWith_js__WEBPACK_IMPORTED_MODULE_255__[\"default\"]; });\n\n/* harmony import */ var _thunkify_js__WEBPACK_IMPORTED_MODULE_256__ = __webpack_require__(/*! ./thunkify.js */ \"./node_modules/ramda/es/thunkify.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"thunkify\", function() { return _thunkify_js__WEBPACK_IMPORTED_MODULE_256__[\"default\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./node_modules/ramda/es/index.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/indexBy.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/indexBy.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _reduceBy_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reduceBy.js */ \"./node_modules/ramda/es/reduceBy.js\");\n\n/**\n * Given a function that generates a key, turns a list of objects into an\n * object indexing the objects by the given key. Note that if multiple\n * objects generate the same value for the indexing key only the last value\n * will be included in the generated object.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (a -> String) -> [{k: v}] -> {k: {k: v}}\n * @param {Function} fn Function :: a -> String\n * @param {Array} array The array of objects to index\n * @return {Object} An object indexing each array element by the given property.\n * @example\n *\n * const list = [{id: 'xyz', title: 'A'}, {id: 'abc', title: 'B'}];\n * R.indexBy(R.prop('id'), list);\n * //=> {abc: {id: 'abc', title: 'B'}, xyz: {id: 'xyz', title: 'A'}}\n */\n\nvar indexBy =\n/*#__PURE__*/\nObject(_reduceBy_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (acc, elem) {\n return elem;\n}, null);\n/* harmony default export */ __webpack_exports__[\"default\"] = (indexBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/indexBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/indexOf.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/indexOf.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_indexOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_indexOf.js */ \"./node_modules/ramda/es/internal/_indexOf.js\");\n/* harmony import */ var _internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isArray.js */ \"./node_modules/ramda/es/internal/_isArray.js\");\n\n\n\n/**\n * Returns the position of the first occurrence of an item in an array, or -1\n * if the item is not included in the array. [`R.equals`](#equals) is used to\n * determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Number\n * @param {*} target The item to find.\n * @param {Array} xs The array to search in.\n * @return {Number} the index of the target, or -1 if the target is not found.\n * @see R.lastIndexOf\n * @example\n *\n * R.indexOf(3, [1,2,3,4]); //=> 2\n * R.indexOf(10, [1,2,3,4]); //=> -1\n */\n\nvar indexOf =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function indexOf(target, xs) {\n return typeof xs.indexOf === 'function' && !Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(xs) ? xs.indexOf(target) : Object(_internal_indexOf_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(xs, target, 0);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (indexOf);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/indexOf.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/init.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/init.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n\n/**\n * Returns all but the last element of the given list or string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.last, R.head, R.tail\n * @example\n *\n * R.init([1, 2, 3]); //=> [1, 2]\n * R.init([1, 2]); //=> [1]\n * R.init([1]); //=> []\n * R.init([]); //=> []\n *\n * R.init('abc'); //=> 'ab'\n * R.init('ab'); //=> 'a'\n * R.init('a'); //=> ''\n * R.init(''); //=> ''\n */\n\nvar init =\n/*#__PURE__*/\nObject(_slice_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(0, -1);\n/* harmony default export */ __webpack_exports__[\"default\"] = (init);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/init.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/innerJoin.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/innerJoin.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_includesWith_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_includesWith.js */ \"./node_modules/ramda/es/internal/_includesWith.js\");\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _internal_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_filter.js */ \"./node_modules/ramda/es/internal/_filter.js\");\n\n\n\n/**\n * Takes a predicate `pred`, a list `xs`, and a list `ys`, and returns a list\n * `xs'` comprising each of the elements of `xs` which is equal to one or more\n * elements of `ys` according to `pred`.\n *\n * `pred` must be a binary function expecting an element from each list.\n *\n * `xs`, `ys`, and `xs'` are treated as sets, semantically, so ordering should\n * not be significant, but since `xs'` is ordered the implementation guarantees\n * that its values are in the same order as they appear in `xs`. Duplicates are\n * not removed, so `xs'` may contain duplicates if `xs` contains duplicates.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Relation\n * @sig ((a, b) -> Boolean) -> [a] -> [b] -> [a]\n * @param {Function} pred\n * @param {Array} xs\n * @param {Array} ys\n * @return {Array}\n * @see R.intersection\n * @example\n *\n * R.innerJoin(\n * (record, id) => record.id === id,\n * [{id: 824, name: 'Richie Furay'},\n * {id: 956, name: 'Dewey Martin'},\n * {id: 313, name: 'Bruce Palmer'},\n * {id: 456, name: 'Stephen Stills'},\n * {id: 177, name: 'Neil Young'}],\n * [177, 456, 999]\n * );\n * //=> [{id: 456, name: 'Stephen Stills'}, {id: 177, name: 'Neil Young'}]\n */\n\nvar innerJoin =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function innerJoin(pred, xs, ys) {\n return Object(_internal_filter_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(function (x) {\n return Object(_internal_includesWith_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(pred, x, ys);\n }, xs);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (innerJoin);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/innerJoin.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/insert.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/insert.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Inserts the supplied element into the list, at the specified `index`. _Note that\n\n * this is not destructive_: it returns a copy of the list with the changes.\n * No lists have been harmed in the application of this function.\n *\n * @func\n * @memberOf R\n * @since v0.2.2\n * @category List\n * @sig Number -> a -> [a] -> [a]\n * @param {Number} index The position to insert the element\n * @param {*} elt The element to insert into the Array\n * @param {Array} list The list to insert into\n * @return {Array} A new Array with `elt` inserted at `index`.\n * @example\n *\n * R.insert(2, 'x', [1,2,3,4]); //=> [1,2,'x',3,4]\n */\n\nvar insert =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function insert(idx, elt, list) {\n idx = idx < list.length && idx >= 0 ? idx : list.length;\n var result = Array.prototype.slice.call(list, 0);\n result.splice(idx, 0, elt);\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (insert);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/insert.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/insertAll.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/insertAll.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Inserts the sub-list into the list, at the specified `index`. _Note that this is not\n * destructive_: it returns a copy of the list with the changes.\n * No lists have been harmed in the application of this function.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig Number -> [a] -> [a] -> [a]\n * @param {Number} index The position to insert the sub-list\n * @param {Array} elts The sub-list to insert into the Array\n * @param {Array} list The list to insert the sub-list into\n * @return {Array} A new Array with `elts` inserted starting at `index`.\n * @example\n *\n * R.insertAll(2, ['x','y','z'], [1,2,3,4]); //=> [1,2,'x','y','z',3,4]\n */\n\nvar insertAll =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function insertAll(idx, elts, list) {\n idx = idx < list.length && idx >= 0 ? idx : list.length;\n return [].concat(Array.prototype.slice.call(list, 0, idx), elts, Array.prototype.slice.call(list, idx));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (insertAll);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/insertAll.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_Set.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/internal/_Set.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_includes.js */ \"./node_modules/ramda/es/internal/_includes.js\");\n\n\nvar _Set =\n/*#__PURE__*/\nfunction () {\n function _Set() {\n /* globals Set */\n this._nativeSet = typeof Set === 'function' ? new Set() : null;\n this._items = {};\n }\n\n // until we figure out why jsdoc chokes on this\n // @param item The item to add to the Set\n // @returns {boolean} true if the item did not exist prior, otherwise false\n //\n _Set.prototype.add = function (item) {\n return !hasOrAdd(item, true, this);\n }; //\n // @param item The item to check for existence in the Set\n // @returns {boolean} true if the item exists in the Set, otherwise false\n //\n\n\n _Set.prototype.has = function (item) {\n return hasOrAdd(item, false, this);\n }; //\n // Combines the logic for checking whether an item is a member of the set and\n // for adding a new item to the set.\n //\n // @param item The item to check or add to the Set instance.\n // @param shouldAdd If true, the item will be added to the set if it doesn't\n // already exist.\n // @param set The set instance to check or add to.\n // @return {boolean} true if the item already existed, otherwise false.\n //\n\n\n return _Set;\n}();\n\nfunction hasOrAdd(item, shouldAdd, set) {\n var type = typeof item;\n var prevSize, newSize;\n\n switch (type) {\n case 'string':\n case 'number':\n // distinguish between +0 and -0\n if (item === 0 && 1 / item === -Infinity) {\n if (set._items['-0']) {\n return true;\n } else {\n if (shouldAdd) {\n set._items['-0'] = true;\n }\n\n return false;\n }\n } // these types can all utilise the native Set\n\n\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n\n set._nativeSet.add(item);\n\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = {};\n set._items[type][item] = true;\n }\n\n return false;\n } else if (item in set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][item] = true;\n }\n\n return false;\n }\n }\n\n case 'boolean':\n // set._items['boolean'] holds a two element array\n // representing [ falseExists, trueExists ]\n if (type in set._items) {\n var bIdx = item ? 1 : 0;\n\n if (set._items[type][bIdx]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][bIdx] = true;\n }\n\n return false;\n }\n } else {\n if (shouldAdd) {\n set._items[type] = item ? [false, true] : [true, false];\n }\n\n return false;\n }\n\n case 'function':\n // compare functions for reference equality\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n\n set._nativeSet.add(item);\n\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n\n return false;\n }\n\n if (!Object(_includes_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n\n return false;\n }\n\n return true;\n }\n\n case 'undefined':\n if (set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type] = true;\n }\n\n return false;\n }\n\n case 'object':\n if (item === null) {\n if (!set._items['null']) {\n if (shouldAdd) {\n set._items['null'] = true;\n }\n\n return false;\n }\n\n return true;\n }\n\n /* falls through */\n\n default:\n // reduce the search size of heterogeneous sets by creating buckets\n // for each type.\n type = Object.prototype.toString.call(item);\n\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n\n return false;\n } // scan through all previously applied items\n\n\n if (!Object(_includes_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n\n return false;\n }\n\n return true;\n }\n} // A simple Set type that honours R.equals semantics\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_Set);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_Set.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_aperture.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_aperture.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _aperture; });\nfunction _aperture(n, list) {\n var idx = 0;\n var limit = list.length - (n - 1);\n var acc = new Array(limit >= 0 ? limit : 0);\n\n while (idx < limit) {\n acc[idx] = Array.prototype.slice.call(list, idx, idx + n);\n idx += 1;\n }\n\n return acc;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_aperture.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_arity.js": +/*!**************************************************!*\ + !*** ./node_modules/ramda/es/internal/_arity.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _arity; });\nfunction _arity(n, fn) {\n /* eslint-disable no-unused-vars */\n switch (n) {\n case 0:\n return function () {\n return fn.apply(this, arguments);\n };\n\n case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\n };\n\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.apply(this, arguments);\n };\n\n default:\n throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\n }\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_arity.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_arrayFromIterator.js": +/*!**************************************************************!*\ + !*** ./node_modules/ramda/es/internal/_arrayFromIterator.js ***! + \**************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _arrayFromIterator; });\nfunction _arrayFromIterator(iter) {\n var list = [];\n var next;\n\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n\n return list;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_arrayFromIterator.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_assertPromise.js": +/*!**********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_assertPromise.js ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _assertPromise; });\n/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isFunction.js */ \"./node_modules/ramda/es/internal/_isFunction.js\");\n/* harmony import */ var _toString_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_toString.js */ \"./node_modules/ramda/es/internal/_toString.js\");\n\n\nfunction _assertPromise(name, p) {\n if (p == null || !Object(_isFunction_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(p.then)) {\n throw new TypeError('`' + name + '` expected a Promise, received ' + Object(_toString_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(p, []));\n }\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_assertPromise.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_checkForMethod.js": +/*!***********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_checkForMethod.js ***! + \***********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _checkForMethod; });\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArray.js */ \"./node_modules/ramda/es/internal/_isArray.js\");\n\n/**\n * This checks whether a function has a [methodname] function. If it isn't an\n * array it will execute that function otherwise it will default to the ramda\n * implementation.\n *\n * @private\n * @param {Function} fn ramda implemtation\n * @param {String} methodname property to check for a custom implementation\n * @return {Object} Whatever the return value of the method is.\n */\n\nfunction _checkForMethod(methodname, fn) {\n return function () {\n var length = arguments.length;\n\n if (length === 0) {\n return fn();\n }\n\n var obj = arguments[length - 1];\n return Object(_isArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(obj) || typeof obj[methodname] !== 'function' ? fn.apply(this, arguments) : obj[methodname].apply(obj, Array.prototype.slice.call(arguments, 0, length - 1));\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_checkForMethod.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_clone.js": +/*!**************************************************!*\ + !*** ./node_modules/ramda/es/internal/_clone.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _clone; });\n/* harmony import */ var _cloneRegExp_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cloneRegExp.js */ \"./node_modules/ramda/es/internal/_cloneRegExp.js\");\n/* harmony import */ var _type_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../type.js */ \"./node_modules/ramda/es/type.js\");\n\n\n/**\n * Copies an object.\n *\n * @private\n * @param {*} value The value to be copied\n * @param {Array} refFrom Array containing the source references\n * @param {Array} refTo Array containing the copied source references\n * @param {Boolean} deep Whether or not to perform deep cloning.\n * @return {*} The copied value.\n */\n\nfunction _clone(value, refFrom, refTo, deep) {\n var copy = function copy(copiedValue) {\n var len = refFrom.length;\n var idx = 0;\n\n while (idx < len) {\n if (value === refFrom[idx]) {\n return refTo[idx];\n }\n\n idx += 1;\n }\n\n refFrom[idx + 1] = value;\n refTo[idx + 1] = copiedValue;\n\n for (var key in value) {\n copiedValue[key] = deep ? _clone(value[key], refFrom, refTo, true) : value[key];\n }\n\n return copiedValue;\n };\n\n switch (Object(_type_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value)) {\n case 'Object':\n return copy({});\n\n case 'Array':\n return copy([]);\n\n case 'Date':\n return new Date(value.valueOf());\n\n case 'RegExp':\n return Object(_cloneRegExp_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value);\n\n default:\n return value;\n }\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_clone.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_cloneRegExp.js": +/*!********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_cloneRegExp.js ***! + \********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _cloneRegExp; });\nfunction _cloneRegExp(pattern) {\n return new RegExp(pattern.source, (pattern.global ? 'g' : '') + (pattern.ignoreCase ? 'i' : '') + (pattern.multiline ? 'm' : '') + (pattern.sticky ? 'y' : '') + (pattern.unicode ? 'u' : ''));\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_cloneRegExp.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_complement.js": +/*!*******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_complement.js ***! + \*******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _complement; });\nfunction _complement(f) {\n return function () {\n return !f.apply(this, arguments);\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_complement.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_concat.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_concat.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _concat; });\n/**\n * Private `concat` function to merge two array-like objects.\n *\n * @private\n * @param {Array|Arguments} [set1=[]] An array-like object.\n * @param {Array|Arguments} [set2=[]] An array-like object.\n * @return {Array} A new, merged array.\n * @example\n *\n * _concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n */\nfunction _concat(set1, set2) {\n set1 = set1 || [];\n set2 = set2 || [];\n var idx;\n var len1 = set1.length;\n var len2 = set2.length;\n var result = [];\n idx = 0;\n\n while (idx < len1) {\n result[result.length] = set1[idx];\n idx += 1;\n }\n\n idx = 0;\n\n while (idx < len2) {\n result[result.length] = set2[idx];\n idx += 1;\n }\n\n return result;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_concat.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_createPartialApplicator.js": +/*!********************************************************************!*\ + !*** ./node_modules/ramda/es/internal/_createPartialApplicator.js ***! + \********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _createPartialApplicator; });\n/* harmony import */ var _arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\nfunction _createPartialApplicator(concat) {\n return Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (fn, args) {\n return Object(_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Math.max(0, fn.length - args.length), function () {\n return fn.apply(this, concat(args, arguments));\n });\n });\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_createPartialApplicator.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_curry1.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_curry1.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _curry1; });\n/* harmony import */ var _isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isPlaceholder.js */ \"./node_modules/ramda/es/internal/_isPlaceholder.js\");\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nfunction _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_curry1.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_curry2.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_curry2.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _curry2; });\n/* harmony import */ var _curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isPlaceholder.js */ \"./node_modules/ramda/es/internal/_isPlaceholder.js\");\n\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nfunction _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n\n case 1:\n return Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(a) ? f2 : Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (_b) {\n return fn(a, _b);\n });\n\n default:\n return Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(a) && Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(b) ? f2 : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(a) ? Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (_a) {\n return fn(_a, b);\n }) : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(b) ? Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_curry2.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_curry3.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_curry3.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _curry3; });\n/* harmony import */ var _curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_isPlaceholder.js */ \"./node_modules/ramda/es/internal/_isPlaceholder.js\");\n\n\n\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nfunction _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n\n case 1:\n return Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a) ? f3 : Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (_b, _c) {\n return fn(a, _b, _c);\n });\n\n case 2:\n return Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a) && Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(b) ? f3 : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a) ? Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (_a, _c) {\n return fn(_a, b, _c);\n }) : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(b) ? Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (_b, _c) {\n return fn(a, _b, _c);\n }) : Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (_c) {\n return fn(a, b, _c);\n });\n\n default:\n return Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a) && Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(b) && Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(c) ? f3 : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a) && Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(b) ? Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (_a, _b) {\n return fn(_a, _b, c);\n }) : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a) && Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(c) ? Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (_a, _c) {\n return fn(_a, b, _c);\n }) : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(b) && Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(c) ? Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (_b, _c) {\n return fn(a, _b, _c);\n }) : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a) ? Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (_a) {\n return fn(_a, b, c);\n }) : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(b) ? Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (_b) {\n return fn(a, _b, c);\n }) : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(c) ? Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_curry3.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_curryN.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_curryN.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _curryN; });\n/* harmony import */ var _arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isPlaceholder.js */ \"./node_modules/ramda/es/internal/_isPlaceholder.js\");\n\n\n/**\n * Internal curryN function.\n *\n * @private\n * @category Function\n * @param {Number} length The arity of the curried function.\n * @param {Array} received An array of arguments received thus far.\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nfunction _curryN(length, received, fn) {\n return function () {\n var combined = [];\n var argsIdx = 0;\n var left = length;\n var combinedIdx = 0;\n\n while (combinedIdx < received.length || argsIdx < arguments.length) {\n var result;\n\n if (combinedIdx < received.length && (!Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(received[combinedIdx]) || argsIdx >= arguments.length)) {\n result = received[combinedIdx];\n } else {\n result = arguments[argsIdx];\n argsIdx += 1;\n }\n\n combined[combinedIdx] = result;\n\n if (!Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(result)) {\n left -= 1;\n }\n\n combinedIdx += 1;\n }\n\n return left <= 0 ? fn.apply(this, combined) : Object(_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(left, _curryN(length, combined, fn));\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_curryN.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_dispatchable.js": +/*!*********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_dispatchable.js ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _dispatchable; });\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArray.js */ \"./node_modules/ramda/es/internal/_isArray.js\");\n/* harmony import */ var _isTransformer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isTransformer.js */ \"./node_modules/ramda/es/internal/_isTransformer.js\");\n\n\n/**\n * Returns a function that dispatches with different strategies based on the\n * object in list position (last argument). If it is an array, executes [fn].\n * Otherwise, if it has a function with one of the given method names, it will\n * execute that function (functor case). Otherwise, if it is a transformer,\n * uses transducer [xf] to return a new transformer (transducer case).\n * Otherwise, it will default to executing [fn].\n *\n * @private\n * @param {Array} methodNames properties to check for a custom implementation\n * @param {Function} xf transducer to initialize if object is transformer\n * @param {Function} fn default ramda implementation\n * @return {Function} A function that dispatches on object in list position\n */\n\nfunction _dispatchable(methodNames, xf, fn) {\n return function () {\n if (arguments.length === 0) {\n return fn();\n }\n\n var args = Array.prototype.slice.call(arguments, 0);\n var obj = args.pop();\n\n if (!Object(_isArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(obj)) {\n var idx = 0;\n\n while (idx < methodNames.length) {\n if (typeof obj[methodNames[idx]] === 'function') {\n return obj[methodNames[idx]].apply(obj, args);\n }\n\n idx += 1;\n }\n\n if (Object(_isTransformer_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(obj)) {\n var transducer = xf.apply(null, args);\n return transducer(obj);\n }\n }\n\n return fn.apply(this, arguments);\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_dispatchable.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_dropLast.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_dropLast.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return dropLast; });\n/* harmony import */ var _take_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../take.js */ \"./node_modules/ramda/es/take.js\");\n\nfunction dropLast(n, xs) {\n return Object(_take_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(n < xs.length ? xs.length - n : 0, xs);\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_dropLast.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_dropLastWhile.js": +/*!**********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_dropLastWhile.js ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return dropLastWhile; });\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../slice.js */ \"./node_modules/ramda/es/slice.js\");\n\nfunction dropLastWhile(pred, xs) {\n var idx = xs.length - 1;\n\n while (idx >= 0 && pred(xs[idx])) {\n idx -= 1;\n }\n\n return Object(_slice_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(0, idx + 1, xs);\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_dropLastWhile.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_equals.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_equals.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _equals; });\n/* harmony import */ var _arrayFromIterator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_arrayFromIterator.js */ \"./node_modules/ramda/es/internal/_arrayFromIterator.js\");\n/* harmony import */ var _includesWith_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_includesWith.js */ \"./node_modules/ramda/es/internal/_includesWith.js\");\n/* harmony import */ var _functionName_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_functionName.js */ \"./node_modules/ramda/es/internal/_functionName.js\");\n/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n/* harmony import */ var _objectIs_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_objectIs.js */ \"./node_modules/ramda/es/internal/_objectIs.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../keys.js */ \"./node_modules/ramda/es/keys.js\");\n/* harmony import */ var _type_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../type.js */ \"./node_modules/ramda/es/type.js\");\n\n\n\n\n\n\n\n/**\n * private _uniqContentEquals function.\n * That function is checking equality of 2 iterator contents with 2 assumptions\n * - iterators lengths are the same\n * - iterators values are unique\n *\n * false-positive result will be returned for comparision of, e.g.\n * - [1,2,3] and [1,2,3,4]\n * - [1,1,1] and [1,2,3]\n * */\n\nfunction _uniqContentEquals(aIterator, bIterator, stackA, stackB) {\n var a = Object(_arrayFromIterator_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(aIterator);\n\n var b = Object(_arrayFromIterator_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(bIterator);\n\n function eq(_a, _b) {\n return _equals(_a, _b, stackA.slice(), stackB.slice());\n } // if *a* array contains any element that is not included in *b*\n\n\n return !Object(_includesWith_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (b, aItem) {\n return !Object(_includesWith_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(eq, aItem, b);\n }, b, a);\n}\n\nfunction _equals(a, b, stackA, stackB) {\n if (Object(_objectIs_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(a, b)) {\n return true;\n }\n\n var typeA = Object(_type_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(a);\n\n if (typeA !== Object(_type_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(b)) {\n return false;\n }\n\n if (a == null || b == null) {\n return false;\n }\n\n if (typeof a['fantasy-land/equals'] === 'function' || typeof b['fantasy-land/equals'] === 'function') {\n return typeof a['fantasy-land/equals'] === 'function' && a['fantasy-land/equals'](b) && typeof b['fantasy-land/equals'] === 'function' && b['fantasy-land/equals'](a);\n }\n\n if (typeof a.equals === 'function' || typeof b.equals === 'function') {\n return typeof a.equals === 'function' && a.equals(b) && typeof b.equals === 'function' && b.equals(a);\n }\n\n switch (typeA) {\n case 'Arguments':\n case 'Array':\n case 'Object':\n if (typeof a.constructor === 'function' && Object(_functionName_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a.constructor) === 'Promise') {\n return a === b;\n }\n\n break;\n\n case 'Boolean':\n case 'Number':\n case 'String':\n if (!(typeof a === typeof b && Object(_objectIs_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(a.valueOf(), b.valueOf()))) {\n return false;\n }\n\n break;\n\n case 'Date':\n if (!Object(_objectIs_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(a.valueOf(), b.valueOf())) {\n return false;\n }\n\n break;\n\n case 'Error':\n return a.name === b.name && a.message === b.message;\n\n case 'RegExp':\n if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) {\n return false;\n }\n\n break;\n }\n\n var idx = stackA.length - 1;\n\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n\n idx -= 1;\n }\n\n switch (typeA) {\n case 'Map':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));\n\n case 'Set':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));\n\n case 'Arguments':\n case 'Array':\n case 'Object':\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'Error':\n case 'RegExp':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'ArrayBuffer':\n break;\n\n default:\n // Values of other types are only equal if identical.\n return false;\n }\n\n var keysA = Object(_keys_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(a);\n\n if (keysA.length !== Object(_keys_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(b).length) {\n return false;\n }\n\n var extendedStackA = stackA.concat([a]);\n var extendedStackB = stackB.concat([b]);\n idx = keysA.length - 1;\n\n while (idx >= 0) {\n var key = keysA[idx];\n\n if (!(Object(_has_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n\n idx -= 1;\n }\n\n return true;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_equals.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_filter.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_filter.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _filter; });\nfunction _filter(fn, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n\n while (idx < len) {\n if (fn(list[idx])) {\n result[result.length] = list[idx];\n }\n\n idx += 1;\n }\n\n return result;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_filter.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_flatCat.js": +/*!****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_flatCat.js ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _forceReduced_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_forceReduced.js */ \"./node_modules/ramda/es/internal/_forceReduced.js\");\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isArrayLike.js */ \"./node_modules/ramda/es/internal/_isArrayLike.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\n\nvar preservingReduced = function (xf) {\n return {\n '@@transducer/init': _xfBase_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].init,\n '@@transducer/result': function (result) {\n return xf['@@transducer/result'](result);\n },\n '@@transducer/step': function (result, input) {\n var ret = xf['@@transducer/step'](result, input);\n return ret['@@transducer/reduced'] ? Object(_forceReduced_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(ret) : ret;\n }\n };\n};\n\nvar _flatCat = function _xcat(xf) {\n var rxf = preservingReduced(xf);\n return {\n '@@transducer/init': _xfBase_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].init,\n '@@transducer/result': function (result) {\n return rxf['@@transducer/result'](result);\n },\n '@@transducer/step': function (result, input) {\n return !Object(_isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(input) ? Object(_reduce_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(rxf, result, [input]) : Object(_reduce_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(rxf, result, input);\n }\n };\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_flatCat);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_flatCat.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_forceReduced.js": +/*!*********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_forceReduced.js ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _forceReduced; });\nfunction _forceReduced(x) {\n return {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_forceReduced.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_functionName.js": +/*!*********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_functionName.js ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _functionName; });\nfunction _functionName(f) {\n // String(x => x) evaluates to \"x => x\", so the pattern may not match.\n var match = String(f).match(/^function (\\w*)/);\n return match == null ? '' : match[1];\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_functionName.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_has.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/internal/_has.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _has; });\nfunction _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_has.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_identity.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_identity.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _identity; });\nfunction _identity(x) {\n return x;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_identity.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_includes.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_includes.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _includes; });\n/* harmony import */ var _indexOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_indexOf.js */ \"./node_modules/ramda/es/internal/_indexOf.js\");\n\nfunction _includes(a, list) {\n return Object(_indexOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(list, a, 0) >= 0;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_includes.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_includesWith.js": +/*!*********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_includesWith.js ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _includesWith; });\nfunction _includesWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_includesWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_indexOf.js": +/*!****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_indexOf.js ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _indexOf; });\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../equals.js */ \"./node_modules/ramda/es/equals.js\");\n\nfunction _indexOf(list, a, idx) {\n var inf, item; // Array.prototype.indexOf doesn't exist below IE9\n\n if (typeof list.indexOf === 'function') {\n switch (typeof a) {\n case 'number':\n if (a === 0) {\n // manually crawl the list to distinguish between +0 and -0\n inf = 1 / a;\n\n while (idx < list.length) {\n item = list[idx];\n\n if (item === 0 && 1 / item === inf) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n } else if (a !== a) {\n // NaN\n while (idx < list.length) {\n item = list[idx];\n\n if (typeof item === 'number' && item !== item) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n } // non-zero numbers can utilise Set\n\n\n return list.indexOf(a, idx);\n // all these types can utilise Set\n\n case 'string':\n case 'boolean':\n case 'function':\n case 'undefined':\n return list.indexOf(a, idx);\n\n case 'object':\n if (a === null) {\n // null can utilise Set\n return list.indexOf(a, idx);\n }\n\n }\n } // anything else not covered above, defer to R.equals\n\n\n while (idx < list.length) {\n if (Object(_equals_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(list[idx], a)) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_indexOf.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isArguments.js": +/*!********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isArguments.js ***! + \********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n\nvar toString = Object.prototype.toString;\n\nvar _isArguments =\n/*#__PURE__*/\nfunction () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return Object(_has_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('callee', x);\n };\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_isArguments);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isArguments.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isArray.js": +/*!****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isArray.js ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = (Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n});\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isArray.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isArrayLike.js": +/*!********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isArrayLike.js ***! + \********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isArray.js */ \"./node_modules/ramda/es/internal/_isArray.js\");\n/* harmony import */ var _isString_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_isString.js */ \"./node_modules/ramda/es/internal/_isString.js\");\n\n\n\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @private\n * @category Type\n * @category List\n * @sig * -> Boolean\n * @param {*} x The object to test.\n * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise.\n * @example\n *\n * _isArrayLike([]); //=> true\n * _isArrayLike(true); //=> false\n * _isArrayLike({}); //=> false\n * _isArrayLike({length: 10}); //=> false\n * _isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n */\n\nvar _isArrayLike =\n/*#__PURE__*/\nObject(_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function isArrayLike(x) {\n if (Object(_isArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(x)) {\n return true;\n }\n\n if (!x) {\n return false;\n }\n\n if (typeof x !== 'object') {\n return false;\n }\n\n if (Object(_isString_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(x)) {\n return false;\n }\n\n if (x.nodeType === 1) {\n return !!x.length;\n }\n\n if (x.length === 0) {\n return true;\n }\n\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n\n return false;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_isArrayLike);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isArrayLike.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isFunction.js": +/*!*******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isFunction.js ***! + \*******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _isFunction; });\nfunction _isFunction(x) {\n var type = Object.prototype.toString.call(x);\n return type === '[object Function]' || type === '[object AsyncFunction]' || type === '[object GeneratorFunction]' || type === '[object AsyncGeneratorFunction]';\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isFunction.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isInteger.js": +/*!******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isInteger.js ***! + \******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = (Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n});\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isInteger.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isNumber.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isNumber.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _isNumber; });\nfunction _isNumber(x) {\n return Object.prototype.toString.call(x) === '[object Number]';\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isNumber.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isObject.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isObject.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _isObject; });\nfunction _isObject(x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isObject.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isPlaceholder.js": +/*!**********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isPlaceholder.js ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _isPlaceholder; });\nfunction _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isPlaceholder.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isRegExp.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isRegExp.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _isRegExp; });\nfunction _isRegExp(x) {\n return Object.prototype.toString.call(x) === '[object RegExp]';\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isRegExp.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isString.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isString.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _isString; });\nfunction _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isString.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isTransformer.js": +/*!**********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isTransformer.js ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _isTransformer; });\nfunction _isTransformer(obj) {\n return obj != null && typeof obj['@@transducer/step'] === 'function';\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isTransformer.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_makeFlat.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_makeFlat.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _makeFlat; });\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArrayLike.js */ \"./node_modules/ramda/es/internal/_isArrayLike.js\");\n\n/**\n * `_makeFlat` is a helper function that returns a one-level or fully recursive\n * function based on the flag passed in.\n *\n * @private\n */\n\nfunction _makeFlat(recursive) {\n return function flatt(list) {\n var value, jlen, j;\n var result = [];\n var idx = 0;\n var ilen = list.length;\n\n while (idx < ilen) {\n if (Object(_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(list[idx])) {\n value = recursive ? flatt(list[idx]) : list[idx];\n j = 0;\n jlen = value.length;\n\n while (j < jlen) {\n result[result.length] = value[j];\n j += 1;\n }\n } else {\n result[result.length] = list[idx];\n }\n\n idx += 1;\n }\n\n return result;\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_makeFlat.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_map.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/internal/_map.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _map; });\nfunction _map(fn, functor) {\n var idx = 0;\n var len = functor.length;\n var result = Array(len);\n\n while (idx < len) {\n result[idx] = fn(functor[idx]);\n idx += 1;\n }\n\n return result;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_map.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_objectAssign.js": +/*!*********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_objectAssign.js ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n // Based on https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n\nfunction _objectAssign(target) {\n if (target == null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n var idx = 1;\n var length = arguments.length;\n\n while (idx < length) {\n var source = arguments[idx];\n\n if (source != null) {\n for (var nextKey in source) {\n if (Object(_has_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(nextKey, source)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n\n idx += 1;\n }\n\n return output;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (typeof Object.assign === 'function' ? Object.assign : _objectAssign);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_objectAssign.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_objectIs.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_objectIs.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction _objectIs(a, b) {\n // SameValue algorithm\n if (a === b) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return a !== 0 || 1 / a === 1 / b;\n } else {\n // Step 6.a: NaN == NaN\n return a !== a && b !== b;\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (typeof Object.is === 'function' ? Object.is : _objectIs);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_objectIs.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_of.js": +/*!***********************************************!*\ + !*** ./node_modules/ramda/es/internal/_of.js ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _of; });\nfunction _of(x) {\n return [x];\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_of.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_pipe.js": +/*!*************************************************!*\ + !*** ./node_modules/ramda/es/internal/_pipe.js ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _pipe; });\nfunction _pipe(f, g) {\n return function () {\n return g.call(this, f.apply(this, arguments));\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_pipe.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_pipeP.js": +/*!**************************************************!*\ + !*** ./node_modules/ramda/es/internal/_pipeP.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _pipeP; });\nfunction _pipeP(f, g) {\n return function () {\n var ctx = this;\n return f.apply(ctx, arguments).then(function (x) {\n return g.call(ctx, x);\n });\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_pipeP.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_quote.js": +/*!**************************************************!*\ + !*** ./node_modules/ramda/es/internal/_quote.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _quote; });\nfunction _quote(s) {\n var escaped = s.replace(/\\\\/g, '\\\\\\\\').replace(/[\\b]/g, '\\\\b') // \\b matches word boundary; [\\b] matches backspace\n .replace(/\\f/g, '\\\\f').replace(/\\n/g, '\\\\n').replace(/\\r/g, '\\\\r').replace(/\\t/g, '\\\\t').replace(/\\v/g, '\\\\v').replace(/\\0/g, '\\\\0');\n return '\"' + escaped.replace(/\"/g, '\\\\\"') + '\"';\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_quote.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_reduce.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_reduce.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _reduce; });\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArrayLike.js */ \"./node_modules/ramda/es/internal/_isArrayLike.js\");\n/* harmony import */ var _xwrap_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xwrap.js */ \"./node_modules/ramda/es/internal/_xwrap.js\");\n/* harmony import */ var _bind_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../bind.js */ \"./node_modules/ramda/es/bind.js\");\n\n\n\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n idx += 1;\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n step = iter.next();\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](Object(_bind_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\nfunction _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = Object(_xwrap_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(fn);\n }\n\n if (Object(_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(list)) {\n return _arrayReduce(fn, acc, list);\n }\n\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_reduce.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_reduced.js": +/*!****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_reduced.js ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _reduced; });\nfunction _reduced(x) {\n return x && x['@@transducer/reduced'] ? x : {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_reduced.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_stepCat.js": +/*!****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_stepCat.js ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _stepCat; });\n/* harmony import */ var _objectAssign_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_objectAssign.js */ \"./node_modules/ramda/es/internal/_objectAssign.js\");\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_identity.js */ \"./node_modules/ramda/es/internal/_identity.js\");\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_isArrayLike.js */ \"./node_modules/ramda/es/internal/_isArrayLike.js\");\n/* harmony import */ var _isTransformer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_isTransformer.js */ \"./node_modules/ramda/es/internal/_isTransformer.js\");\n/* harmony import */ var _objOf_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../objOf.js */ \"./node_modules/ramda/es/objOf.js\");\n\n\n\n\n\nvar _stepCatArray = {\n '@@transducer/init': Array,\n '@@transducer/step': function (xs, x) {\n xs.push(x);\n return xs;\n },\n '@@transducer/result': _identity_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n};\nvar _stepCatString = {\n '@@transducer/init': String,\n '@@transducer/step': function (a, b) {\n return a + b;\n },\n '@@transducer/result': _identity_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n};\nvar _stepCatObject = {\n '@@transducer/init': Object,\n '@@transducer/step': function (result, input) {\n return Object(_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(result, Object(_isArrayLike_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(input) ? Object(_objOf_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(input[0], input[1]) : input);\n },\n '@@transducer/result': _identity_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n};\nfunction _stepCat(obj) {\n if (Object(_isTransformer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(obj)) {\n return obj;\n }\n\n if (Object(_isArrayLike_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(obj)) {\n return _stepCatArray;\n }\n\n if (typeof obj === 'string') {\n return _stepCatString;\n }\n\n if (typeof obj === 'object') {\n return _stepCatObject;\n }\n\n throw new Error('Cannot create transformer for ' + obj);\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_stepCat.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_toISOString.js": +/*!********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_toISOString.js ***! + \********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Polyfill from .\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\n\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_toISOString);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_toISOString.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_toString.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_toString.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _toString; });\n/* harmony import */ var _includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_includes.js */ \"./node_modules/ramda/es/internal/_includes.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_map.js */ \"./node_modules/ramda/es/internal/_map.js\");\n/* harmony import */ var _quote_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_quote.js */ \"./node_modules/ramda/es/internal/_quote.js\");\n/* harmony import */ var _toISOString_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_toISOString.js */ \"./node_modules/ramda/es/internal/_toISOString.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../keys.js */ \"./node_modules/ramda/es/keys.js\");\n/* harmony import */ var _reject_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../reject.js */ \"./node_modules/ramda/es/reject.js\");\n\n\n\n\n\n\nfunction _toString(x, seen) {\n var recur = function recur(y) {\n var xs = seen.concat([x]);\n return Object(_includes_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(y, xs) ? '' : _toString(y, xs);\n }; // mapPairs :: (Object, [String]) -> [String]\n\n\n var mapPairs = function (obj, keys) {\n return Object(_map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (k) {\n return Object(_quote_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(k) + ': ' + recur(obj[k]);\n }, keys.slice().sort());\n };\n\n switch (Object.prototype.toString.call(x)) {\n case '[object Arguments]':\n return '(function() { return arguments; }(' + Object(_map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(recur, x).join(', ') + '))';\n\n case '[object Array]':\n return '[' + Object(_map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(recur, x).concat(mapPairs(x, Object(_reject_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(function (k) {\n return /^\\d+$/.test(k);\n }, Object(_keys_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(x)))).join(', ') + ']';\n\n case '[object Boolean]':\n return typeof x === 'object' ? 'new Boolean(' + recur(x.valueOf()) + ')' : x.toString();\n\n case '[object Date]':\n return 'new Date(' + (isNaN(x.valueOf()) ? recur(NaN) : Object(_quote_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Object(_toISOString_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(x))) + ')';\n\n case '[object Null]':\n return 'null';\n\n case '[object Number]':\n return typeof x === 'object' ? 'new Number(' + recur(x.valueOf()) + ')' : 1 / x === -Infinity ? '-0' : x.toString(10);\n\n case '[object String]':\n return typeof x === 'object' ? 'new String(' + recur(x.valueOf()) + ')' : Object(_quote_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(x);\n\n case '[object Undefined]':\n return 'undefined';\n\n default:\n if (typeof x.toString === 'function') {\n var repr = x.toString();\n\n if (repr !== '[object Object]') {\n return repr;\n }\n }\n\n return '{' + mapPairs(x, Object(_keys_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(x)).join(', ') + '}';\n }\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_toString.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xall.js": +/*!*************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xall.js ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _reduced_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_reduced.js */ \"./node_modules/ramda/es/internal/_reduced.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\nvar XAll =\n/*#__PURE__*/\nfunction () {\n function XAll(f, xf) {\n this.xf = xf;\n this.f = f;\n this.all = true;\n }\n\n XAll.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init;\n\n XAll.prototype['@@transducer/result'] = function (result) {\n if (this.all) {\n result = this.xf['@@transducer/step'](result, true);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XAll.prototype['@@transducer/step'] = function (result, input) {\n if (!this.f(input)) {\n this.all = false;\n result = Object(_reduced_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this.xf['@@transducer/step'](result, false));\n }\n\n return result;\n };\n\n return XAll;\n}();\n\nvar _xall =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xall(f, xf) {\n return new XAll(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xall);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xall.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xany.js": +/*!*************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xany.js ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _reduced_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_reduced.js */ \"./node_modules/ramda/es/internal/_reduced.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\nvar XAny =\n/*#__PURE__*/\nfunction () {\n function XAny(f, xf) {\n this.xf = xf;\n this.f = f;\n this.any = false;\n }\n\n XAny.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init;\n\n XAny.prototype['@@transducer/result'] = function (result) {\n if (!this.any) {\n result = this.xf['@@transducer/step'](result, false);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XAny.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.any = true;\n result = Object(_reduced_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this.xf['@@transducer/step'](result, true));\n }\n\n return result;\n };\n\n return XAny;\n}();\n\nvar _xany =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xany(f, xf) {\n return new XAny(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xany);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xany.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xaperture.js": +/*!******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xaperture.js ***! + \******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\nvar XAperture =\n/*#__PURE__*/\nfunction () {\n function XAperture(n, xf) {\n this.xf = xf;\n this.pos = 0;\n this.full = false;\n this.acc = new Array(n);\n }\n\n XAperture.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init;\n\n XAperture.prototype['@@transducer/result'] = function (result) {\n this.acc = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XAperture.prototype['@@transducer/step'] = function (result, input) {\n this.store(input);\n return this.full ? this.xf['@@transducer/step'](result, this.getCopy()) : result;\n };\n\n XAperture.prototype.store = function (input) {\n this.acc[this.pos] = input;\n this.pos += 1;\n\n if (this.pos === this.acc.length) {\n this.pos = 0;\n this.full = true;\n }\n };\n\n XAperture.prototype.getCopy = function () {\n return Object(_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Array.prototype.slice.call(this.acc, this.pos), Array.prototype.slice.call(this.acc, 0, this.pos));\n };\n\n return XAperture;\n}();\n\nvar _xaperture =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function _xaperture(n, xf) {\n return new XAperture(n, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xaperture);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xaperture.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xchain.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xchain.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _flatCat_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_flatCat.js */ \"./node_modules/ramda/es/internal/_flatCat.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../map.js */ \"./node_modules/ramda/es/map.js\");\n\n\n\n\nvar _xchain =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xchain(f, xf) {\n return Object(_map_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(f, Object(_flatCat_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(xf));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xchain);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xchain.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xdrop.js": +/*!**************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xdrop.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\nvar XDrop =\n/*#__PURE__*/\nfunction () {\n function XDrop(n, xf) {\n this.xf = xf;\n this.n = n;\n }\n\n XDrop.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n XDrop.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].result;\n\n XDrop.prototype['@@transducer/step'] = function (result, input) {\n if (this.n > 0) {\n this.n -= 1;\n return result;\n }\n\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XDrop;\n}();\n\nvar _xdrop =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xdrop(n, xf) {\n return new XDrop(n, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xdrop);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xdrop.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xdropLast.js": +/*!******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xdropLast.js ***! + \******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\nvar XDropLast =\n/*#__PURE__*/\nfunction () {\n function XDropLast(n, xf) {\n this.xf = xf;\n this.pos = 0;\n this.full = false;\n this.acc = new Array(n);\n }\n\n XDropLast.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n\n XDropLast.prototype['@@transducer/result'] = function (result) {\n this.acc = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XDropLast.prototype['@@transducer/step'] = function (result, input) {\n if (this.full) {\n result = this.xf['@@transducer/step'](result, this.acc[this.pos]);\n }\n\n this.store(input);\n return result;\n };\n\n XDropLast.prototype.store = function (input) {\n this.acc[this.pos] = input;\n this.pos += 1;\n\n if (this.pos === this.acc.length) {\n this.pos = 0;\n this.full = true;\n }\n };\n\n return XDropLast;\n}();\n\nvar _xdropLast =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xdropLast(n, xf) {\n return new XDropLast(n, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xdropLast);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xdropLast.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xdropLastWhile.js": +/*!***********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xdropLastWhile.js ***! + \***********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\nvar XDropLastWhile =\n/*#__PURE__*/\nfunction () {\n function XDropLastWhile(fn, xf) {\n this.f = fn;\n this.retained = [];\n this.xf = xf;\n }\n\n XDropLastWhile.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init;\n\n XDropLastWhile.prototype['@@transducer/result'] = function (result) {\n this.retained = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XDropLastWhile.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.retain(result, input) : this.flush(result, input);\n };\n\n XDropLastWhile.prototype.flush = function (result, input) {\n result = Object(_reduce_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this.xf['@@transducer/step'], result, this.retained);\n this.retained = [];\n return this.xf['@@transducer/step'](result, input);\n };\n\n XDropLastWhile.prototype.retain = function (result, input) {\n this.retained.push(input);\n return result;\n };\n\n return XDropLastWhile;\n}();\n\nvar _xdropLastWhile =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xdropLastWhile(fn, xf) {\n return new XDropLastWhile(fn, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xdropLastWhile);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xdropLastWhile.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xdropRepeatsWith.js": +/*!*************************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xdropRepeatsWith.js ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\nvar XDropRepeatsWith =\n/*#__PURE__*/\nfunction () {\n function XDropRepeatsWith(pred, xf) {\n this.xf = xf;\n this.pred = pred;\n this.lastValue = undefined;\n this.seenFirstValue = false;\n }\n\n XDropRepeatsWith.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n XDropRepeatsWith.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].result;\n\n XDropRepeatsWith.prototype['@@transducer/step'] = function (result, input) {\n var sameAsLast = false;\n\n if (!this.seenFirstValue) {\n this.seenFirstValue = true;\n } else if (this.pred(this.lastValue, input)) {\n sameAsLast = true;\n }\n\n this.lastValue = input;\n return sameAsLast ? result : this.xf['@@transducer/step'](result, input);\n };\n\n return XDropRepeatsWith;\n}();\n\nvar _xdropRepeatsWith =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xdropRepeatsWith(pred, xf) {\n return new XDropRepeatsWith(pred, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xdropRepeatsWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xdropRepeatsWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xdropWhile.js": +/*!*******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xdropWhile.js ***! + \*******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\nvar XDropWhile =\n/*#__PURE__*/\nfunction () {\n function XDropWhile(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XDropWhile.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n XDropWhile.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].result;\n\n XDropWhile.prototype['@@transducer/step'] = function (result, input) {\n if (this.f) {\n if (this.f(input)) {\n return result;\n }\n\n this.f = null;\n }\n\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XDropWhile;\n}();\n\nvar _xdropWhile =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xdropWhile(f, xf) {\n return new XDropWhile(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xdropWhile);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xdropWhile.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xfBase.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xfBase.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n init: function () {\n return this.xf['@@transducer/init']();\n },\n result: function (result) {\n return this.xf['@@transducer/result'](result);\n }\n});\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xfBase.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xfilter.js": +/*!****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xfilter.js ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\nvar XFilter =\n/*#__PURE__*/\nfunction () {\n function XFilter(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XFilter.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n XFilter.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].result;\n\n XFilter.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : result;\n };\n\n return XFilter;\n}();\n\nvar _xfilter =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xfilter(f, xf) {\n return new XFilter(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xfilter);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xfilter.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xfind.js": +/*!**************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xfind.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _reduced_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_reduced.js */ \"./node_modules/ramda/es/internal/_reduced.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\nvar XFind =\n/*#__PURE__*/\nfunction () {\n function XFind(f, xf) {\n this.xf = xf;\n this.f = f;\n this.found = false;\n }\n\n XFind.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init;\n\n XFind.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, void 0);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XFind.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.found = true;\n result = Object(_reduced_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this.xf['@@transducer/step'](result, input));\n }\n\n return result;\n };\n\n return XFind;\n}();\n\nvar _xfind =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xfind(f, xf) {\n return new XFind(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xfind);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xfind.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xfindIndex.js": +/*!*******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xfindIndex.js ***! + \*******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _reduced_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_reduced.js */ \"./node_modules/ramda/es/internal/_reduced.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\nvar XFindIndex =\n/*#__PURE__*/\nfunction () {\n function XFindIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.found = false;\n }\n\n XFindIndex.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init;\n\n XFindIndex.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, -1);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XFindIndex.prototype['@@transducer/step'] = function (result, input) {\n this.idx += 1;\n\n if (this.f(input)) {\n this.found = true;\n result = Object(_reduced_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this.xf['@@transducer/step'](result, this.idx));\n }\n\n return result;\n };\n\n return XFindIndex;\n}();\n\nvar _xfindIndex =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xfindIndex(f, xf) {\n return new XFindIndex(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xfindIndex);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xfindIndex.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xfindLast.js": +/*!******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xfindLast.js ***! + \******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\nvar XFindLast =\n/*#__PURE__*/\nfunction () {\n function XFindLast(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XFindLast.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n\n XFindLast.prototype['@@transducer/result'] = function (result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.last));\n };\n\n XFindLast.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.last = input;\n }\n\n return result;\n };\n\n return XFindLast;\n}();\n\nvar _xfindLast =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xfindLast(f, xf) {\n return new XFindLast(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xfindLast);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xfindLast.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xfindLastIndex.js": +/*!***********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xfindLastIndex.js ***! + \***********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\nvar XFindLastIndex =\n/*#__PURE__*/\nfunction () {\n function XFindLastIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.lastIdx = -1;\n }\n\n XFindLastIndex.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n\n XFindLastIndex.prototype['@@transducer/result'] = function (result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.lastIdx));\n };\n\n XFindLastIndex.prototype['@@transducer/step'] = function (result, input) {\n this.idx += 1;\n\n if (this.f(input)) {\n this.lastIdx = this.idx;\n }\n\n return result;\n };\n\n return XFindLastIndex;\n}();\n\nvar _xfindLastIndex =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xfindLastIndex(f, xf) {\n return new XFindLastIndex(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xfindLastIndex);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xfindLastIndex.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xmap.js": +/*!*************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xmap.js ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\nvar XMap =\n/*#__PURE__*/\nfunction () {\n function XMap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XMap.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n XMap.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].result;\n\n XMap.prototype['@@transducer/step'] = function (result, input) {\n return this.xf['@@transducer/step'](result, this.f(input));\n };\n\n return XMap;\n}();\n\nvar _xmap =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xmap(f, xf) {\n return new XMap(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xmap);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xmap.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xreduceBy.js": +/*!******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xreduceBy.js ***! + \******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curryN.js */ \"./node_modules/ramda/es/internal/_curryN.js\");\n/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\nvar XReduceBy =\n/*#__PURE__*/\nfunction () {\n function XReduceBy(valueFn, valueAcc, keyFn, xf) {\n this.valueFn = valueFn;\n this.valueAcc = valueAcc;\n this.keyFn = keyFn;\n this.xf = xf;\n this.inputs = {};\n }\n\n XReduceBy.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init;\n\n XReduceBy.prototype['@@transducer/result'] = function (result) {\n var key;\n\n for (key in this.inputs) {\n if (Object(_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(key, this.inputs)) {\n result = this.xf['@@transducer/step'](result, this.inputs[key]);\n\n if (result['@@transducer/reduced']) {\n result = result['@@transducer/value'];\n break;\n }\n }\n }\n\n this.inputs = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XReduceBy.prototype['@@transducer/step'] = function (result, input) {\n var key = this.keyFn(input);\n this.inputs[key] = this.inputs[key] || [key, this.valueAcc];\n this.inputs[key][1] = this.valueFn(this.inputs[key][1], input);\n return result;\n };\n\n return XReduceBy;\n}();\n\nvar _xreduceBy =\n/*#__PURE__*/\nObject(_curryN_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(4, [], function _xreduceBy(valueFn, valueAcc, keyFn, xf) {\n return new XReduceBy(valueFn, valueAcc, keyFn, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xreduceBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xreduceBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xtake.js": +/*!**************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xtake.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _reduced_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_reduced.js */ \"./node_modules/ramda/es/internal/_reduced.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\nvar XTake =\n/*#__PURE__*/\nfunction () {\n function XTake(n, xf) {\n this.xf = xf;\n this.n = n;\n this.i = 0;\n }\n\n XTake.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init;\n XTake.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].result;\n\n XTake.prototype['@@transducer/step'] = function (result, input) {\n this.i += 1;\n var ret = this.n === 0 ? result : this.xf['@@transducer/step'](result, input);\n return this.n >= 0 && this.i >= this.n ? Object(_reduced_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(ret) : ret;\n };\n\n return XTake;\n}();\n\nvar _xtake =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xtake(n, xf) {\n return new XTake(n, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xtake);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xtake.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xtakeWhile.js": +/*!*******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xtakeWhile.js ***! + \*******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _reduced_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_reduced.js */ \"./node_modules/ramda/es/internal/_reduced.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\nvar XTakeWhile =\n/*#__PURE__*/\nfunction () {\n function XTakeWhile(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XTakeWhile.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init;\n XTakeWhile.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].result;\n\n XTakeWhile.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : Object(_reduced_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(result);\n };\n\n return XTakeWhile;\n}();\n\nvar _xtakeWhile =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xtakeWhile(f, xf) {\n return new XTakeWhile(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xtakeWhile);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xtakeWhile.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xtap.js": +/*!*************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xtap.js ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\nvar XTap =\n/*#__PURE__*/\nfunction () {\n function XTap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XTap.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n XTap.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].result;\n\n XTap.prototype['@@transducer/step'] = function (result, input) {\n this.f(input);\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XTap;\n}();\n\nvar _xtap =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xtap(f, xf) {\n return new XTap(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xtap);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xtap.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xwrap.js": +/*!**************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xwrap.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _xwrap; });\nvar XWrap =\n/*#__PURE__*/\nfunction () {\n function XWrap(fn) {\n this.f = fn;\n }\n\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n\n return XWrap;\n}();\n\nfunction _xwrap(fn) {\n return new XWrap(fn);\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xwrap.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/intersection.js": +/*!***********************************************!*\ + !*** ./node_modules/ramda/es/intersection.js ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_includes.js */ \"./node_modules/ramda/es/internal/_includes.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_filter.js */ \"./node_modules/ramda/es/internal/_filter.js\");\n/* harmony import */ var _flip_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./flip.js */ \"./node_modules/ramda/es/flip.js\");\n/* harmony import */ var _uniq_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./uniq.js */ \"./node_modules/ramda/es/uniq.js\");\n\n\n\n\n\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of those\n * elements common to both lists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The list of elements found in both `list1` and `list2`.\n * @see R.innerJoin\n * @example\n *\n * R.intersection([1,2,3,4], [7,6,5,4,3]); //=> [4, 3]\n */\n\nvar intersection =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function intersection(list1, list2) {\n var lookupList, filteredList;\n\n if (list1.length > list2.length) {\n lookupList = list1;\n filteredList = list2;\n } else {\n lookupList = list2;\n filteredList = list1;\n }\n\n return Object(_uniq_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(Object(_internal_filter_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Object(_flip_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_internal_includes_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(lookupList), filteredList));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (intersection);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/intersection.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/intersperse.js": +/*!**********************************************!*\ + !*** ./node_modules/ramda/es/intersperse.js ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_checkForMethod.js */ \"./node_modules/ramda/es/internal/_checkForMethod.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Creates a new list with the separator interposed between elements.\n *\n * Dispatches to the `intersperse` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} separator The element to add to the list.\n * @param {Array} list The list to be interposed.\n * @return {Array} The new list.\n * @example\n *\n * R.intersperse('a', ['b', 'n', 'n', 's']); //=> ['b', 'a', 'n', 'a', 'n', 'a', 's']\n */\n\nvar intersperse =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('intersperse', function intersperse(separator, list) {\n var out = [];\n var idx = 0;\n var length = list.length;\n\n while (idx < length) {\n if (idx === length - 1) {\n out.push(list[idx]);\n } else {\n out.push(list[idx], separator);\n }\n\n idx += 1;\n }\n\n return out;\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (intersperse);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/intersperse.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/into.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/into.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_clone_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_clone.js */ \"./node_modules/ramda/es/internal/_clone.js\");\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _internal_isTransformer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isTransformer.js */ \"./node_modules/ramda/es/internal/_isTransformer.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _internal_stepCat_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./internal/_stepCat.js */ \"./node_modules/ramda/es/internal/_stepCat.js\");\n\n\n\n\n\n/**\n * Transforms the items of the list with the transducer and appends the\n * transformed items to the accumulator using an appropriate iterator function\n * based on the accumulator type.\n *\n * The accumulator can be an array, string, object or a transformer. Iterated\n * items will be appended to arrays and concatenated to strings. Objects will\n * be merged directly or 2-item arrays will be merged as key, value pairs.\n *\n * The accumulator can also be a transformer object that provides a 2-arity\n * reducing iterator function, step, 0-arity initial value function, init, and\n * 1-arity result extraction function result. The step function is used as the\n * iterator function in reduce. The result function is used to convert the\n * final accumulator into the return type and in most cases is R.identity. The\n * init function is used to provide the initial accumulator.\n *\n * The iteration is performed with [`R.reduce`](#reduce) after initializing the\n * transducer.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig a -> (b -> b) -> [c] -> a\n * @param {*} acc The initial accumulator value.\n * @param {Function} xf The transducer function. Receives a transformer and returns a transformer.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.transduce\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const transducer = R.compose(R.map(R.add(1)), R.take(2));\n *\n * R.into([], transducer, numbers); //=> [2, 3]\n *\n * const intoArray = R.into([]);\n * intoArray(transducer, numbers); //=> [2, 3]\n */\n\nvar into =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function into(acc, xf, list) {\n return Object(_internal_isTransformer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(acc) ? Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(xf(acc), acc['@@transducer/init'](), list) : Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(xf(Object(_internal_stepCat_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(acc)), Object(_internal_clone_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(acc, [], [], false), list);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (into);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/into.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/invert.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/invert.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/ramda/es/keys.js\");\n\n\n\n/**\n * Same as [`R.invertObj`](#invertObj), however this accounts for objects with\n * duplicate values by putting the values into an array.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {s: x} -> {x: [ s, ... ]}\n * @param {Object} obj The object or array to invert\n * @return {Object} out A new object with keys in an array.\n * @see R.invertObj\n * @example\n *\n * const raceResultsByFirstName = {\n * first: 'alice',\n * second: 'jake',\n * third: 'alice',\n * };\n * R.invert(raceResultsByFirstName);\n * //=> { 'alice': ['first', 'third'], 'jake':['second'] }\n */\n\nvar invert =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function invert(obj) {\n var props = Object(_keys_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(obj);\n var len = props.length;\n var idx = 0;\n var out = {};\n\n while (idx < len) {\n var key = props[idx];\n var val = obj[key];\n var list = Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(val, out) ? out[val] : out[val] = [];\n list[list.length] = key;\n idx += 1;\n }\n\n return out;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (invert);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/invert.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/invertObj.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/invertObj.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/ramda/es/keys.js\");\n\n\n/**\n * Returns a new object with the keys of the given object as values, and the\n * values of the given object, which are coerced to strings, as keys. Note\n * that the last key found is preferred when handling the same value.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {s: x} -> {x: s}\n * @param {Object} obj The object or array to invert\n * @return {Object} out A new object\n * @see R.invert\n * @example\n *\n * const raceResults = {\n * first: 'alice',\n * second: 'jake'\n * };\n * R.invertObj(raceResults);\n * //=> { 'alice': 'first', 'jake':'second' }\n *\n * // Alternatively:\n * const raceResults = ['alice', 'jake'];\n * R.invertObj(raceResults);\n * //=> { 'alice': '0', 'jake':'1' }\n */\n\nvar invertObj =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function invertObj(obj) {\n var props = Object(_keys_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(obj);\n var len = props.length;\n var idx = 0;\n var out = {};\n\n while (idx < len) {\n var key = props[idx];\n out[obj[key]] = key;\n idx += 1;\n }\n\n return out;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (invertObj);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/invertObj.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/invoker.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/invoker.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isFunction.js */ \"./node_modules/ramda/es/internal/_isFunction.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony import */ var _toString_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./toString.js */ \"./node_modules/ramda/es/toString.js\");\n\n\n\n\n/**\n * Turns a named method with a specified arity into a function that can be\n * called directly supplied with arguments and a target object.\n *\n * The returned function is curried and accepts `arity + 1` parameters where\n * the final parameter is the target object.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig Number -> String -> (a -> b -> ... -> n -> Object -> *)\n * @param {Number} arity Number of arguments the returned function should take\n * before the target object.\n * @param {String} method Name of any of the target object's methods to call.\n * @return {Function} A new curried function.\n * @see R.construct\n * @example\n *\n * const sliceFrom = R.invoker(1, 'slice');\n * sliceFrom(6, 'abcdefghijklm'); //=> 'ghijklm'\n * const sliceFrom6 = R.invoker(2, 'slice')(6);\n * sliceFrom6(8, 'abcdefghijklm'); //=> 'gh'\n *\n * const dog = {\n * speak: async () => 'Woof!'\n * };\n * const speak = R.invoker(0, 'speak');\n * speak(dog).then(console.log) //~> 'Woof!'\n *\n * @symb R.invoker(0, 'method')(o) = o['method']()\n * @symb R.invoker(1, 'method')(a, o) = o['method'](a)\n * @symb R.invoker(2, 'method')(a, b, o) = o['method'](a, b)\n */\n\nvar invoker =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function invoker(arity, method) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(arity + 1, function () {\n var target = arguments[arity];\n\n if (target != null && Object(_internal_isFunction_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(target[method])) {\n return target[method].apply(target, Array.prototype.slice.call(arguments, 0, arity));\n }\n\n throw new TypeError(Object(_toString_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(target) + ' does not have a method named \"' + method + '\"');\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (invoker);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/invoker.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/is.js": +/*!*************************************!*\ + !*** ./node_modules/ramda/es/is.js ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * See if an object (`val`) is an instance of the supplied constructor. This\n * function will check up the inheritance chain, if any.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Type\n * @sig (* -> {*}) -> a -> Boolean\n * @param {Object} ctor A constructor\n * @param {*} val The value to test\n * @return {Boolean}\n * @example\n *\n * R.is(Object, {}); //=> true\n * R.is(Number, 1); //=> true\n * R.is(Object, 1); //=> false\n * R.is(String, 's'); //=> true\n * R.is(String, new String('')); //=> true\n * R.is(Object, new String('')); //=> true\n * R.is(Object, 's'); //=> false\n * R.is(Number, {}); //=> false\n */\n\nvar is =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function is(Ctor, val) {\n return val != null && val.constructor === Ctor || val instanceof Ctor;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (is);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/is.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/isEmpty.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/isEmpty.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _empty_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./empty.js */ \"./node_modules/ramda/es/empty.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n\n\n\n/**\n * Returns `true` if the given value is its type's empty value; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> Boolean\n * @param {*} x\n * @return {Boolean}\n * @see R.empty\n * @example\n *\n * R.isEmpty([1, 2, 3]); //=> false\n * R.isEmpty([]); //=> true\n * R.isEmpty(''); //=> true\n * R.isEmpty(null); //=> false\n * R.isEmpty({}); //=> true\n * R.isEmpty({length: 0}); //=> false\n */\n\nvar isEmpty =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function isEmpty(x) {\n return x != null && Object(_equals_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(x, Object(_empty_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(x));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isEmpty);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/isEmpty.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/isNil.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/isNil.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Checks if the input value is `null` or `undefined`.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Type\n * @sig * -> Boolean\n * @param {*} x The value to test.\n * @return {Boolean} `true` if `x` is `undefined` or `null`, otherwise `false`.\n * @example\n *\n * R.isNil(null); //=> true\n * R.isNil(undefined); //=> true\n * R.isNil(0); //=> false\n * R.isNil([]); //=> false\n */\n\nvar isNil =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function isNil(x) {\n return x == null;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isNil);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/isNil.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/join.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/join.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _invoker_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./invoker.js */ \"./node_modules/ramda/es/invoker.js\");\n\n/**\n * Returns a string made by inserting the `separator` between each element and\n * concatenating all the elements into a single string.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig String -> [a] -> String\n * @param {Number|String} separator The string used to separate the elements.\n * @param {Array} xs The elements to join into a string.\n * @return {String} str The string made by concatenating `xs` with `separator`.\n * @see R.split\n * @example\n *\n * const spacer = R.join(' ');\n * spacer(['a', 2, 3.4]); //=> 'a 2 3.4'\n * R.join('|', [1, 2, 3]); //=> '1|2|3'\n */\n\nvar join =\n/*#__PURE__*/\nObject(_invoker_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(1, 'join');\n/* harmony default export */ __webpack_exports__[\"default\"] = (join);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/join.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/juxt.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/juxt.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _converge_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./converge.js */ \"./node_modules/ramda/es/converge.js\");\n\n\n/**\n * juxt applies a list of functions to a list of values.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Function\n * @sig [(a, b, ..., m) -> n] -> ((a, b, ..., m) -> [n])\n * @param {Array} fns An array of functions\n * @return {Function} A function that returns a list of values after applying each of the original `fns` to its parameters.\n * @see R.applySpec\n * @example\n *\n * const getRange = R.juxt([Math.min, Math.max]);\n * getRange(3, 4, 9, -3); //=> [-3, 9]\n * @symb R.juxt([f, g, h])(a, b) = [f(a, b), g(a, b), h(a, b)]\n */\n\nvar juxt =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function juxt(fns) {\n return Object(_converge_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function () {\n return Array.prototype.slice.call(arguments, 0);\n }, fns);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (juxt);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/juxt.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/keys.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/keys.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n/* harmony import */ var _internal_isArguments_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isArguments.js */ \"./node_modules/ramda/es/internal/_isArguments.js\");\n\n\n // cover IE < 9 keys issues\n\nvar hasEnumBug = !\n/*#__PURE__*/\n{\n toString: null\n}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; // Safari bug\n\nvar hasArgsEnumBug =\n/*#__PURE__*/\nfunction () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n};\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\n\n\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ?\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) :\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n\n var prop, nIdx;\n var ks = [];\n\n var checkArgsLength = hasArgsEnumBug && Object(_internal_isArguments_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(obj);\n\n for (prop in obj) {\n if (Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n\n if (Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n\n nIdx -= 1;\n }\n }\n\n return ks;\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (keys);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/keys.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/keysIn.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/keysIn.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Returns a list containing the names of all the properties of the supplied\n * object, including prototype properties.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own and prototype properties.\n * @see R.keys, R.valuesIn\n * @example\n *\n * const F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * const f = new F();\n * R.keysIn(f); //=> ['x', 'y']\n */\n\nvar keysIn =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function keysIn(obj) {\n var prop;\n var ks = [];\n\n for (prop in obj) {\n ks[ks.length] = prop;\n }\n\n return ks;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (keysIn);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/keysIn.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/last.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/last.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nth_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./nth.js */ \"./node_modules/ramda/es/nth.js\");\n\n/**\n * Returns the last element of the given list or string.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.init, R.head, R.tail\n * @example\n *\n * R.last(['fi', 'fo', 'fum']); //=> 'fum'\n * R.last([]); //=> undefined\n *\n * R.last('abc'); //=> 'c'\n * R.last(''); //=> ''\n */\n\nvar last =\n/*#__PURE__*/\nObject(_nth_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(-1);\n/* harmony default export */ __webpack_exports__[\"default\"] = (last);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/last.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/lastIndexOf.js": +/*!**********************************************!*\ + !*** ./node_modules/ramda/es/lastIndexOf.js ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isArray.js */ \"./node_modules/ramda/es/internal/_isArray.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n\n\n\n/**\n * Returns the position of the last occurrence of an item in an array, or -1 if\n * the item is not included in the array. [`R.equals`](#equals) is used to\n * determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Number\n * @param {*} target The item to find.\n * @param {Array} xs The array to search in.\n * @return {Number} the index of the target, or -1 if the target is not found.\n * @see R.indexOf\n * @example\n *\n * R.lastIndexOf(3, [-1,3,3,0,1,2,3,4]); //=> 6\n * R.lastIndexOf(10, [1,2,3,4]); //=> -1\n */\n\nvar lastIndexOf =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function lastIndexOf(target, xs) {\n if (typeof xs.lastIndexOf === 'function' && !Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(xs)) {\n return xs.lastIndexOf(target);\n } else {\n var idx = xs.length - 1;\n\n while (idx >= 0) {\n if (Object(_equals_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(xs[idx], target)) {\n return idx;\n }\n\n idx -= 1;\n }\n\n return -1;\n }\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (lastIndexOf);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/lastIndexOf.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/length.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/length.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_isNumber_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isNumber.js */ \"./node_modules/ramda/es/internal/_isNumber.js\");\n\n\n/**\n * Returns the number of elements in the array by returning `list.length`.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [a] -> Number\n * @param {Array} list The array to inspect.\n * @return {Number} The length of the array.\n * @example\n *\n * R.length([]); //=> 0\n * R.length([1, 2, 3]); //=> 3\n */\n\nvar length =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function length(list) {\n return list != null && Object(_internal_isNumber_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(list.length) ? list.length : NaN;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (length);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/length.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/lens.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/lens.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n\n\n/**\n * Returns a lens for the given getter and setter functions. The getter \"gets\"\n * the value of the focus; the setter \"sets\" the value of the focus. The setter\n * should not mutate the data structure.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig (s -> a) -> ((a, s) -> s) -> Lens s a\n * @param {Function} getter\n * @param {Function} setter\n * @return {Lens}\n * @see R.view, R.set, R.over, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lens(R.prop('x'), R.assoc('x'));\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.over(xLens, R.negate, {x: 1, y: 2}); //=> {x: -1, y: 2}\n */\n\nvar lens =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function lens(getter, setter) {\n return function (toFunctorFn) {\n return function (target) {\n return Object(_map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (focus) {\n return setter(focus, target);\n }, toFunctorFn(getter(target)));\n };\n };\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (lens);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/lens.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/lensIndex.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/lensIndex.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _lens_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lens.js */ \"./node_modules/ramda/es/lens.js\");\n/* harmony import */ var _nth_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nth.js */ \"./node_modules/ramda/es/nth.js\");\n/* harmony import */ var _update_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./update.js */ \"./node_modules/ramda/es/update.js\");\n\n\n\n\n/**\n * Returns a lens whose focus is the specified index.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Number -> Lens s a\n * @param {Number} n\n * @return {Lens}\n * @see R.view, R.set, R.over, R.nth\n * @example\n *\n * const headLens = R.lensIndex(0);\n *\n * R.view(headLens, ['a', 'b', 'c']); //=> 'a'\n * R.set(headLens, 'x', ['a', 'b', 'c']); //=> ['x', 'b', 'c']\n * R.over(headLens, R.toUpper, ['a', 'b', 'c']); //=> ['A', 'b', 'c']\n */\n\nvar lensIndex =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function lensIndex(n) {\n return Object(_lens_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_nth_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(n), Object(_update_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(n));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (lensIndex);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/lensIndex.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/lensPath.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/lensPath.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _assocPath_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assocPath.js */ \"./node_modules/ramda/es/assocPath.js\");\n/* harmony import */ var _lens_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lens.js */ \"./node_modules/ramda/es/lens.js\");\n/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./path.js */ \"./node_modules/ramda/es/path.js\");\n\n\n\n\n/**\n * Returns a lens whose focus is the specified path.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @typedefn Idx = String | Int\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig [Idx] -> Lens s a\n * @param {Array} path The path to use.\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * const xHeadYLens = R.lensPath(['x', 0, 'y']);\n *\n * R.view(xHeadYLens, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> 2\n * R.set(xHeadYLens, 1, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> {x: [{y: 1, z: 3}, {y: 4, z: 5}]}\n * R.over(xHeadYLens, R.negate, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> {x: [{y: -2, z: 3}, {y: 4, z: 5}]}\n */\n\nvar lensPath =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function lensPath(p) {\n return Object(_lens_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Object(_path_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(p), Object(_assocPath_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(p));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (lensPath);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/lensPath.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/lensProp.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/lensProp.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _assoc_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assoc.js */ \"./node_modules/ramda/es/assoc.js\");\n/* harmony import */ var _lens_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lens.js */ \"./node_modules/ramda/es/lens.js\");\n/* harmony import */ var _prop_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./prop.js */ \"./node_modules/ramda/es/prop.js\");\n\n\n\n\n/**\n * Returns a lens whose focus is the specified property.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig String -> Lens s a\n * @param {String} k\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.over(xLens, R.negate, {x: 1, y: 2}); //=> {x: -1, y: 2}\n */\n\nvar lensProp =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function lensProp(k) {\n return Object(_lens_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Object(_prop_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(k), Object(_assoc_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(k));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (lensProp);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/lensProp.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/lift.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/lift.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _liftN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./liftN.js */ \"./node_modules/ramda/es/liftN.js\");\n\n\n/**\n * \"lifts\" a function of arity > 1 so that it may \"map over\" a list, Function or other\n * object that satisfies the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.liftN\n * @example\n *\n * const madd3 = R.lift((a, b, c) => a + b + c);\n *\n * madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]\n *\n * const madd5 = R.lift((a, b, c, d, e) => a + b + c + d + e);\n *\n * madd5([1,2], [3], [4, 5], [6], [7, 8]); //=> [21, 22, 22, 23, 22, 23, 23, 24]\n */\n\nvar lift =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function lift(fn) {\n return Object(_liftN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(fn.length, fn);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (lift);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/lift.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/liftN.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/liftN.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _ap_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ap.js */ \"./node_modules/ramda/es/ap.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n\n\n\n\n\n/**\n * \"lifts\" a function to be the specified arity, so that it may \"map over\" that\n * many lists, Functions or other objects that satisfy the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig Number -> (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.lift, R.ap\n * @example\n *\n * const madd3 = R.liftN(3, (...args) => R.sum(args));\n * madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]\n */\n\nvar liftN =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function liftN(arity, fn) {\n var lifted = Object(_curryN_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(arity, fn);\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(arity, function () {\n return Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_ap_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], Object(_map_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(lifted, arguments[0]), Array.prototype.slice.call(arguments, 1));\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (liftN);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/liftN.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/lt.js": +/*!*************************************!*\ + !*** ./node_modules/ramda/es/lt.js ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns `true` if the first argument is less than the second; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @see R.gt\n * @example\n *\n * R.lt(2, 1); //=> false\n * R.lt(2, 2); //=> false\n * R.lt(2, 3); //=> true\n * R.lt('a', 'z'); //=> true\n * R.lt('z', 'a'); //=> false\n */\n\nvar lt =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function lt(a, b) {\n return a < b;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (lt);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/lt.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/lte.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/lte.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns `true` if the first argument is less than or equal to the second;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {Number} a\n * @param {Number} b\n * @return {Boolean}\n * @see R.gte\n * @example\n *\n * R.lte(2, 1); //=> false\n * R.lte(2, 2); //=> true\n * R.lte(2, 3); //=> true\n * R.lte('a', 'z'); //=> true\n * R.lte('z', 'a'); //=> false\n */\n\nvar lte =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function lte(a, b) {\n return a <= b;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (lte);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/lte.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/map.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/map.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_map.js */ \"./node_modules/ramda/es/internal/_map.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _internal_xmap_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./internal/_xmap.js */ \"./node_modules/ramda/es/internal/_xmap.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/ramda/es/keys.js\");\n\n\n\n\n\n\n\n/**\n * Takes a function and\n * a [functor](https://github.com/fantasyland/fantasy-land#functor),\n * applies the function to each of the functor's values, and returns\n * a functor of the same shape.\n *\n * Ramda provides suitable `map` implementations for `Array` and `Object`,\n * so this function may be applied to `[1, 2, 3]` or `{x: 1, y: 2, z: 3}`.\n *\n * Dispatches to the `map` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * Also treats functions as functors and will compose them together.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => (a -> b) -> f a -> f b\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {Array} list The list to be iterated over.\n * @return {Array} The new list.\n * @see R.transduce, R.addIndex\n * @example\n *\n * const double = x => x * 2;\n *\n * R.map(double, [1, 2, 3]); //=> [2, 4, 6]\n *\n * R.map(double, {x: 1, y: 2, z: 3}); //=> {x: 2, y: 4, z: 6}\n * @symb R.map(f, [a, b]) = [f(a), f(b)]\n * @symb R.map(f, { x: a, y: b }) = { x: f(a), y: f(b) }\n * @symb R.map(f, functor_o) = functor_o.map(f)\n */\n\nvar map =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['fantasy-land/map', 'map'], _internal_xmap_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"], function map(fn, functor) {\n switch (Object.prototype.toString.call(functor)) {\n case '[object Function]':\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(functor.length, function () {\n return fn.call(this, functor.apply(this, arguments));\n });\n\n case '[object Object]':\n return Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(function (acc, key) {\n acc[key] = fn(functor[key]);\n return acc;\n }, {}, Object(_keys_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(functor));\n\n default:\n return Object(_internal_map_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(fn, functor);\n }\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (map);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/map.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mapAccum.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/mapAccum.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * The `mapAccum` function behaves like a combination of map and reduce; it\n * applies a function to each element of a list, passing an accumulating\n * parameter from left to right, and returning a final value of this\n * accumulator together with the new list.\n *\n * The iterator function receives two arguments, *acc* and *value*, and should\n * return a tuple *[acc, value]*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig ((acc, x) -> (acc, y)) -> acc -> [x] -> (acc, [y])\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.scan, R.addIndex, R.mapAccumRight\n * @example\n *\n * const digits = ['1', '2', '3', '4'];\n * const appender = (a, b) => [a + b, a + b];\n *\n * R.mapAccum(appender, 0, digits); //=> ['01234', ['01', '012', '0123', '01234']]\n * @symb R.mapAccum(f, a, [b, c, d]) = [\n * f(f(f(a, b)[0], c)[0], d)[0],\n * [\n * f(a, b)[1],\n * f(f(a, b)[0], c)[1],\n * f(f(f(a, b)[0], c)[0], d)[1]\n * ]\n * ]\n */\n\nvar mapAccum =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mapAccum(fn, acc, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n var tuple = [acc];\n\n while (idx < len) {\n tuple = fn(tuple[0], list[idx]);\n result[idx] = tuple[1];\n idx += 1;\n }\n\n return [tuple[0], result];\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mapAccum);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mapAccum.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mapAccumRight.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/mapAccumRight.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * The `mapAccumRight` function behaves like a combination of map and reduce; it\n * applies a function to each element of a list, passing an accumulating\n * parameter from right to left, and returning a final value of this\n * accumulator together with the new list.\n *\n * Similar to [`mapAccum`](#mapAccum), except moves through the input list from\n * the right to the left.\n *\n * The iterator function receives two arguments, *acc* and *value*, and should\n * return a tuple *[acc, value]*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig ((acc, x) -> (acc, y)) -> acc -> [x] -> (acc, [y])\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.addIndex, R.mapAccum\n * @example\n *\n * const digits = ['1', '2', '3', '4'];\n * const appender = (a, b) => [b + a, b + a];\n *\n * R.mapAccumRight(appender, 5, digits); //=> ['12345', ['12345', '2345', '345', '45']]\n * @symb R.mapAccumRight(f, a, [b, c, d]) = [\n * f(f(f(a, d)[0], c)[0], b)[0],\n * [\n * f(a, d)[1],\n * f(f(a, d)[0], c)[1],\n * f(f(f(a, d)[0], c)[0], b)[1]\n * ]\n * ]\n */\n\nvar mapAccumRight =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mapAccumRight(fn, acc, list) {\n var idx = list.length - 1;\n var result = [];\n var tuple = [acc];\n\n while (idx >= 0) {\n tuple = fn(tuple[0], list[idx]);\n result[idx] = tuple[1];\n idx -= 1;\n }\n\n return [tuple[0], result];\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mapAccumRight);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mapAccumRight.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mapObjIndexed.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/mapObjIndexed.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/ramda/es/keys.js\");\n\n\n\n/**\n * An Object-specific version of [`map`](#map). The function is applied to three\n * arguments: *(value, key, obj)*. If only the value is significant, use\n * [`map`](#map) instead.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig ((*, String, Object) -> *) -> Object -> Object\n * @param {Function} fn\n * @param {Object} obj\n * @return {Object}\n * @see R.map\n * @example\n *\n * const xyz = { x: 1, y: 2, z: 3 };\n * const prependKeyAndDouble = (num, key, obj) => key + (num * 2);\n *\n * R.mapObjIndexed(prependKeyAndDouble, xyz); //=> { x: 'x2', y: 'y4', z: 'z6' }\n */\n\nvar mapObjIndexed =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mapObjIndexed(fn, obj) {\n return Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (acc, key) {\n acc[key] = fn(obj[key], key, obj);\n return acc;\n }, {}, Object(_keys_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(obj));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mapObjIndexed);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mapObjIndexed.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/match.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/match.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Tests a regular expression against a String. Note that this function will\n * return an empty array when there are no matches. This differs from\n * [`String.prototype.match`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match)\n * which returns `null` when there are no matches.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category String\n * @sig RegExp -> String -> [String | Undefined]\n * @param {RegExp} rx A regular expression.\n * @param {String} str The string to match against\n * @return {Array} The list of matches or empty array.\n * @see R.test\n * @example\n *\n * R.match(/([a-z]a)/g, 'bananas'); //=> ['ba', 'na', 'na']\n * R.match(/a/, 'b'); //=> []\n * R.match(/a/, null); //=> TypeError: null does not have a method named \"match\"\n */\n\nvar match =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function match(rx, str) {\n return str.match(rx) || [];\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (match);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/match.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mathMod.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/mathMod.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isInteger.js */ \"./node_modules/ramda/es/internal/_isInteger.js\");\n\n\n/**\n * `mathMod` behaves like the modulo operator should mathematically, unlike the\n * `%` operator (and by extension, [`R.modulo`](#modulo)). So while\n * `-17 % 5` is `-2`, `mathMod(-17, 5)` is `3`. `mathMod` requires Integer\n * arguments, and returns NaN when the modulus is zero or negative.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} m The dividend.\n * @param {Number} p the modulus.\n * @return {Number} The result of `b mod a`.\n * @see R.modulo\n * @example\n *\n * R.mathMod(-17, 5); //=> 3\n * R.mathMod(17, 5); //=> 2\n * R.mathMod(17, -5); //=> NaN\n * R.mathMod(17, 0); //=> NaN\n * R.mathMod(17.2, 5); //=> NaN\n * R.mathMod(17, 5.3); //=> NaN\n *\n * const clock = R.mathMod(R.__, 12);\n * clock(15); //=> 3\n * clock(24); //=> 0\n *\n * const seventeenMod = R.mathMod(17);\n * seventeenMod(3); //=> 2\n * seventeenMod(4); //=> 1\n * seventeenMod(10); //=> 7\n */\n\nvar mathMod =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mathMod(m, p) {\n if (!Object(_internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(m)) {\n return NaN;\n }\n\n if (!Object(_internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(p) || p < 1) {\n return NaN;\n }\n\n return (m % p + p) % p;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mathMod);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mathMod.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/max.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/max.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns the larger of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.maxBy, R.min\n * @example\n *\n * R.max(789, 123); //=> 789\n * R.max('a', 'b'); //=> 'b'\n */\n\nvar max =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function max(a, b) {\n return b > a ? b : a;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (max);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/max.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/maxBy.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/maxBy.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Takes a function and two values, and returns whichever value produces the\n * larger result when passed to the provided function.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Relation\n * @sig Ord b => (a -> b) -> a -> a -> a\n * @param {Function} f\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.max, R.minBy\n * @example\n *\n * // square :: Number -> Number\n * const square = n => n * n;\n *\n * R.maxBy(square, -3, 2); //=> -3\n *\n * R.reduce(R.maxBy(square), 0, [3, -5, 4, 1, -2]); //=> -5\n * R.reduce(R.maxBy(square), 0, []); //=> 0\n */\n\nvar maxBy =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function maxBy(f, a, b) {\n return f(b) > f(a) ? b : a;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (maxBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/maxBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mean.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/mean.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _sum_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sum.js */ \"./node_modules/ramda/es/sum.js\");\n\n\n/**\n * Returns the mean of the given list of numbers.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list\n * @return {Number}\n * @see R.median\n * @example\n *\n * R.mean([2, 7, 9]); //=> 6\n * R.mean([]); //=> NaN\n */\n\nvar mean =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mean(list) {\n return Object(_sum_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(list) / list.length;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mean);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mean.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/median.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/median.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _mean_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mean.js */ \"./node_modules/ramda/es/mean.js\");\n\n\n/**\n * Returns the median of the given list of numbers.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list\n * @return {Number}\n * @see R.mean\n * @example\n *\n * R.median([2, 9, 7]); //=> 7\n * R.median([7, 2, 10, 9]); //=> 8\n * R.median([]); //=> NaN\n */\n\nvar median =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function median(list) {\n var len = list.length;\n\n if (len === 0) {\n return NaN;\n }\n\n var width = 2 - len % 2;\n var idx = (len - width) / 2;\n return Object(_mean_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Array.prototype.slice.call(list, 0).sort(function (a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n }).slice(idx, idx + width));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (median);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/median.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/memoizeWith.js": +/*!**********************************************!*\ + !*** ./node_modules/ramda/es/memoizeWith.js ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n\n\n\n/**\n * Creates a new function that, when invoked, caches the result of calling `fn`\n * for a given argument set and returns the result. Subsequent calls to the\n * memoized `fn` with the same argument set will not result in an additional\n * call to `fn`; instead, the cached result for that set of arguments will be\n * returned.\n *\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Function\n * @sig (*... -> String) -> (*... -> a) -> (*... -> a)\n * @param {Function} fn The function to generate the cache key.\n * @param {Function} fn The function to memoize.\n * @return {Function} Memoized version of `fn`.\n * @example\n *\n * let count = 0;\n * const factorial = R.memoizeWith(R.identity, n => {\n * count += 1;\n * return R.product(R.range(1, n + 1));\n * });\n * factorial(5); //=> 120\n * factorial(5); //=> 120\n * factorial(5); //=> 120\n * count; //=> 1\n */\n\nvar memoizeWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function memoizeWith(mFn, fn) {\n var cache = {};\n return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(fn.length, function () {\n var key = mFn.apply(this, arguments);\n\n if (!Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(key, cache)) {\n cache[key] = fn.apply(this, arguments);\n }\n\n return cache[key];\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (memoizeWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/memoizeWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/merge.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/merge.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_objectAssign.js */ \"./node_modules/ramda/es/internal/_objectAssign.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeRight, R.mergeDeepRight, R.mergeWith, R.mergeWithKey\n * @deprecated since v0.26.0\n * @example\n *\n * R.merge({ 'name': 'fred', 'age': 10 }, { 'age': 40 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const withDefaults = R.merge({x: 0, y: 0});\n * withDefaults({y: 2}); //=> {x: 0, y: 2}\n * @symb R.merge(a, b) = {...a, ...b}\n */\n\nvar merge =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function merge(l, r) {\n return Object(_internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, l, r);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (merge);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/merge.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mergeAll.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/mergeAll.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_objectAssign.js */ \"./node_modules/ramda/es/internal/_objectAssign.js\");\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n\n/**\n * Merges a list of objects together into one object.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig [{k: v}] -> {k: v}\n * @param {Array} list An array of objects\n * @return {Object} A merged object.\n * @see R.reduce\n * @example\n *\n * R.mergeAll([{foo:1},{bar:2},{baz:3}]); //=> {foo:1,bar:2,baz:3}\n * R.mergeAll([{foo:1},{foo:2},{bar:2}]); //=> {foo:2,bar:2}\n * @symb R.mergeAll([{ x: 1 }, { y: 2 }, { z: 3 }]) = { x: 1, y: 2, z: 3 }\n */\n\nvar mergeAll =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function mergeAll(list) {\n return _internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].apply(null, [{}].concat(list));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mergeAll);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mergeAll.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mergeDeepLeft.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/mergeDeepLeft.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mergeDeepWithKey.js */ \"./node_modules/ramda/es/mergeDeepWithKey.js\");\n\n\n/**\n * Creates a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects:\n * - and both values are objects, the two values will be recursively merged\n * - otherwise the value from the first object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig {a} -> {a} -> {a}\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.merge, R.mergeDeepRight, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepLeft({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 10, contact: { email: 'moo@example.com' }}\n */\n\nvar mergeDeepLeft =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mergeDeepLeft(lObj, rObj) {\n return Object(_mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (k, lVal, rVal) {\n return lVal;\n }, lObj, rObj);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mergeDeepLeft);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mergeDeepLeft.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mergeDeepRight.js": +/*!*************************************************!*\ + !*** ./node_modules/ramda/es/mergeDeepRight.js ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mergeDeepWithKey.js */ \"./node_modules/ramda/es/mergeDeepWithKey.js\");\n\n\n/**\n * Creates a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects:\n * - and both values are objects, the two values will be recursively merged\n * - otherwise the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig {a} -> {a} -> {a}\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.merge, R.mergeDeepLeft, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepRight({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 40, contact: { email: 'baa@example.com' }}\n */\n\nvar mergeDeepRight =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mergeDeepRight(lObj, rObj) {\n return Object(_mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (k, lVal, rVal) {\n return rVal;\n }, lObj, rObj);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mergeDeepRight);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mergeDeepRight.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mergeDeepWith.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/mergeDeepWith.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mergeDeepWithKey.js */ \"./node_modules/ramda/es/mergeDeepWithKey.js\");\n\n\n/**\n * Creates a new object with the own properties of the two provided objects.\n * If a key exists in both objects:\n * - and both associated values are also objects then the values will be\n * recursively merged.\n * - otherwise the provided function is applied to associated values using the\n * resulting value as the new value associated with the key.\n * If a key only exists in one object, the value will be associated with the key\n * of the resulting object.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig ((a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.mergeWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepWith(R.concat,\n * { a: true, c: { values: [10, 20] }},\n * { b: true, c: { values: [15, 35] }});\n * //=> { a: true, b: true, c: { values: [10, 20, 15, 35] }}\n */\n\nvar mergeDeepWith =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mergeDeepWith(fn, lObj, rObj) {\n return Object(_mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (k, lVal, rVal) {\n return fn(lVal, rVal);\n }, lObj, rObj);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mergeDeepWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mergeDeepWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mergeDeepWithKey.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/mergeDeepWithKey.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _internal_isObject_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isObject.js */ \"./node_modules/ramda/es/internal/_isObject.js\");\n/* harmony import */ var _mergeWithKey_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mergeWithKey.js */ \"./node_modules/ramda/es/mergeWithKey.js\");\n\n\n\n/**\n * Creates a new object with the own properties of the two provided objects.\n * If a key exists in both objects:\n * - and both associated values are also objects then the values will be\n * recursively merged.\n * - otherwise the provided function is applied to the key and associated values\n * using the resulting value as the new value associated with the key.\n * If a key only exists in one object, the value will be associated with the key\n * of the resulting object.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.mergeWithKey, R.mergeDeepWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeDeepWithKey(concatValues,\n * { a: true, c: { thing: 'foo', values: [10, 20] }},\n * { b: true, c: { thing: 'bar', values: [15, 35] }});\n * //=> { a: true, b: true, c: { thing: 'bar', values: [10, 20, 15, 35] }}\n */\n\nvar mergeDeepWithKey =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mergeDeepWithKey(fn, lObj, rObj) {\n return Object(_mergeWithKey_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(function (k, lVal, rVal) {\n if (Object(_internal_isObject_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(lVal) && Object(_internal_isObject_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(rVal)) {\n return mergeDeepWithKey(fn, lVal, rVal);\n } else {\n return fn(k, lVal, rVal);\n }\n }, lObj, rObj);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mergeDeepWithKey);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mergeDeepWithKey.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mergeLeft.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/mergeLeft.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_objectAssign.js */ \"./node_modules/ramda/es/internal/_objectAssign.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the first object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeRight, R.mergeDeepLeft, R.mergeWith, R.mergeWithKey\n * @example\n *\n * R.mergeLeft({ 'age': 40 }, { 'name': 'fred', 'age': 10 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const resetToDefault = R.mergeLeft({x: 0});\n * resetToDefault({x: 5, y: 2}); //=> {x: 0, y: 2}\n * @symb R.mergeLeft(a, b) = {...b, ...a}\n */\n\nvar mergeLeft =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function mergeLeft(l, r) {\n return Object(_internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, r, l);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mergeLeft);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mergeLeft.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mergeRight.js": +/*!*********************************************!*\ + !*** ./node_modules/ramda/es/mergeRight.js ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_objectAssign.js */ \"./node_modules/ramda/es/internal/_objectAssign.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeLeft, R.mergeDeepRight, R.mergeWith, R.mergeWithKey\n * @example\n *\n * R.mergeRight({ 'name': 'fred', 'age': 10 }, { 'age': 40 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const withDefaults = R.mergeRight({x: 0, y: 0});\n * withDefaults({y: 2}); //=> {x: 0, y: 2}\n * @symb R.mergeRight(a, b) = {...a, ...b}\n */\n\nvar mergeRight =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function mergeRight(l, r) {\n return Object(_internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, l, r);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mergeRight);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mergeRight.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mergeWith.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/mergeWith.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _mergeWithKey_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mergeWithKey.js */ \"./node_modules/ramda/es/mergeWithKey.js\");\n\n\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the values\n * associated with the key in each object, with the result being used as the\n * value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWith, R.merge, R.mergeWithKey\n * @example\n *\n * R.mergeWith(R.concat,\n * { a: true, values: [10, 20] },\n * { b: true, values: [15, 35] });\n * //=> { a: true, b: true, values: [10, 20, 15, 35] }\n */\n\nvar mergeWith =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mergeWith(fn, l, r) {\n return Object(_mergeWithKey_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (_, _l, _r) {\n return fn(_l, _r);\n }, l, r);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mergeWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mergeWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mergeWithKey.js": +/*!***********************************************!*\ + !*** ./node_modules/ramda/es/mergeWithKey.js ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n\n\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the key\n * and the values associated with the key in each object, with the result being\n * used as the value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWithKey, R.merge, R.mergeWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeWithKey(concatValues,\n * { a: true, thing: 'foo', values: [10, 20] },\n * { b: true, thing: 'bar', values: [15, 35] });\n * //=> { a: true, b: true, thing: 'bar', values: [10, 20, 15, 35] }\n * @symb R.mergeWithKey(f, { x: 1, y: 2 }, { y: 5, z: 3 }) = { x: 1, y: f('y', 2, 5), z: 3 }\n */\n\nvar mergeWithKey =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mergeWithKey(fn, l, r) {\n var result = {};\n var k;\n\n for (k in l) {\n if (Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(k, l)) {\n result[k] = Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(k, r) ? fn(k, l[k], r[k]) : l[k];\n }\n }\n\n for (k in r) {\n if (Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(k, r) && !Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(k, result)) {\n result[k] = r[k];\n }\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mergeWithKey);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mergeWithKey.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/min.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/min.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns the smaller of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.minBy, R.max\n * @example\n *\n * R.min(789, 123); //=> 123\n * R.min('a', 'b'); //=> 'a'\n */\n\nvar min =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function min(a, b) {\n return b < a ? b : a;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (min);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/min.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/minBy.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/minBy.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Takes a function and two values, and returns whichever value produces the\n * smaller result when passed to the provided function.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Relation\n * @sig Ord b => (a -> b) -> a -> a -> a\n * @param {Function} f\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.min, R.maxBy\n * @example\n *\n * // square :: Number -> Number\n * const square = n => n * n;\n *\n * R.minBy(square, -3, 2); //=> 2\n *\n * R.reduce(R.minBy(square), Infinity, [3, -5, 4, 1, -2]); //=> 1\n * R.reduce(R.minBy(square), Infinity, []); //=> Infinity\n */\n\nvar minBy =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function minBy(f, a, b) {\n return f(b) < f(a) ? b : a;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (minBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/minBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/modulo.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/modulo.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Divides the first parameter by the second and returns the remainder. Note\n * that this function preserves the JavaScript-style behavior for modulo. For\n * mathematical modulo see [`mathMod`](#mathMod).\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The value to the divide.\n * @param {Number} b The pseudo-modulus\n * @return {Number} The result of `b % a`.\n * @see R.mathMod\n * @example\n *\n * R.modulo(17, 3); //=> 2\n * // JS behavior:\n * R.modulo(-17, 3); //=> -2\n * R.modulo(17, -3); //=> 2\n *\n * const isOdd = R.modulo(R.__, 2);\n * isOdd(42); //=> 0\n * isOdd(21); //=> 1\n */\n\nvar modulo =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function modulo(a, b) {\n return a % b;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (modulo);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/modulo.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/move.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/move.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Move an item, at index `from`, to index `to`, in a list of elements.\n * A new list will be created containing the new elements order.\n *\n * @func\n * @memberOf R\n * @since v0.27.0\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @param {Number} from The source index\n * @param {Number} to The destination index\n * @param {Array} list The list which will serve to realise the move\n * @return {Array} The new list reordered\n * @example\n *\n * R.move(0, 2, ['a', 'b', 'c', 'd', 'e', 'f']); //=> ['b', 'c', 'a', 'd', 'e', 'f']\n * R.move(-1, 0, ['a', 'b', 'c', 'd', 'e', 'f']); //=> ['f', 'a', 'b', 'c', 'd', 'e'] list rotation\n */\n\nvar move =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (from, to, list) {\n var length = list.length;\n var result = list.slice();\n var positiveFrom = from < 0 ? length + from : from;\n var positiveTo = to < 0 ? length + to : to;\n var item = result.splice(positiveFrom, 1);\n return positiveFrom < 0 || positiveFrom >= list.length || positiveTo < 0 || positiveTo >= list.length ? list : [].concat(result.slice(0, positiveTo)).concat(item).concat(result.slice(positiveTo, list.length));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (move);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/move.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/multiply.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/multiply.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Multiplies two numbers. Equivalent to `a * b` but curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a * b`.\n * @see R.divide\n * @example\n *\n * const double = R.multiply(2);\n * const triple = R.multiply(3);\n * double(3); //=> 6\n * triple(4); //=> 12\n * R.multiply(2, 5); //=> 10\n */\n\nvar multiply =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function multiply(a, b) {\n return a * b;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (multiply);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/multiply.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/nAry.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/nAry.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly `n` parameters. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} n The desired arity of the new function.\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity `n`.\n * @see R.binary, R.unary\n * @example\n *\n * const takesTwoArgs = (a, b) => [a, b];\n *\n * takesTwoArgs.length; //=> 2\n * takesTwoArgs(1, 2); //=> [1, 2]\n *\n * const takesOneArg = R.nAry(1, takesTwoArgs);\n * takesOneArg.length; //=> 1\n * // Only `n` arguments are passed to the wrapped function\n * takesOneArg(1, 2); //=> [1, undefined]\n * @symb R.nAry(0, f)(a, b) = f()\n * @symb R.nAry(1, f)(a, b) = f(a)\n * @symb R.nAry(2, f)(a, b) = f(a, b)\n */\n\nvar nAry =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function nAry(n, fn) {\n switch (n) {\n case 0:\n return function () {\n return fn.call(this);\n };\n\n case 1:\n return function (a0) {\n return fn.call(this, a0);\n };\n\n case 2:\n return function (a0, a1) {\n return fn.call(this, a0, a1);\n };\n\n case 3:\n return function (a0, a1, a2) {\n return fn.call(this, a0, a1, a2);\n };\n\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.call(this, a0, a1, a2, a3);\n };\n\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.call(this, a0, a1, a2, a3, a4);\n };\n\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.call(this, a0, a1, a2, a3, a4, a5);\n };\n\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6);\n };\n\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7);\n };\n\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7, a8);\n };\n\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);\n };\n\n default:\n throw new Error('First argument to nAry must be a non-negative integer no greater than ten');\n }\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (nAry);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/nAry.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/negate.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/negate.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Negates its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number}\n * @example\n *\n * R.negate(42); //=> -42\n */\n\nvar negate =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function negate(n) {\n return -n;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (negate);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/negate.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/none.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/none.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_complement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_complement.js */ \"./node_modules/ramda/es/internal/_complement.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _all_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./all.js */ \"./node_modules/ramda/es/all.js\");\n\n\n\n/**\n * Returns `true` if no elements of the list match the predicate, `false`\n * otherwise.\n *\n * Dispatches to the `all` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is not satisfied by every element, `false` otherwise.\n * @see R.all, R.any\n * @example\n *\n * const isEven = n => n % 2 === 0;\n * const isOdd = n => n % 2 === 1;\n *\n * R.none(isEven, [1, 3, 5, 7, 9, 11]); //=> true\n * R.none(isOdd, [1, 3, 5, 7, 8, 11]); //=> false\n */\n\nvar none =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function none(fn, input) {\n return Object(_all_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Object(_internal_complement_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(fn), input);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (none);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/none.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/not.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/not.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * A function that returns the `!` of its argument. It will return `true` when\n * passed false-y value, and `false` when passed a truth-y one.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig * -> Boolean\n * @param {*} a any value\n * @return {Boolean} the logical inverse of passed argument.\n * @see R.complement\n * @example\n *\n * R.not(true); //=> false\n * R.not(false); //=> true\n * R.not(0); //=> true\n * R.not(1); //=> false\n */\n\nvar not =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function not(a) {\n return !a;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (not);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/not.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/nth.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/nth.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isString_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isString.js */ \"./node_modules/ramda/es/internal/_isString.js\");\n\n\n/**\n * Returns the nth element of the given list or string. If n is negative the\n * element at index length + n is returned.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> a | Undefined\n * @sig Number -> String -> String\n * @param {Number} offset\n * @param {*} list\n * @return {*}\n * @example\n *\n * const list = ['foo', 'bar', 'baz', 'quux'];\n * R.nth(1, list); //=> 'bar'\n * R.nth(-1, list); //=> 'quux'\n * R.nth(-99, list); //=> undefined\n *\n * R.nth(2, 'abc'); //=> 'c'\n * R.nth(3, 'abc'); //=> ''\n * @symb R.nth(-1, [a, b, c]) = c\n * @symb R.nth(0, [a, b, c]) = a\n * @symb R.nth(1, [a, b, c]) = b\n */\n\nvar nth =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function nth(offset, list) {\n var idx = offset < 0 ? list.length + offset : offset;\n return Object(_internal_isString_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(list) ? list.charAt(idx) : list[idx];\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (nth);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/nth.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/nthArg.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/nthArg.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony import */ var _nth_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nth.js */ \"./node_modules/ramda/es/nth.js\");\n\n\n\n/**\n * Returns a function which returns its nth argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig Number -> *... -> *\n * @param {Number} n\n * @return {Function}\n * @example\n *\n * R.nthArg(1)('a', 'b', 'c'); //=> 'b'\n * R.nthArg(-1)('a', 'b', 'c'); //=> 'c'\n * @symb R.nthArg(-1)(a, b, c) = c\n * @symb R.nthArg(0)(a, b, c) = a\n * @symb R.nthArg(1)(a, b, c) = b\n */\n\nvar nthArg =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function nthArg(n) {\n var arity = n < 0 ? 1 : n + 1;\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(arity, function () {\n return Object(_nth_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(n, arguments);\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (nthArg);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/nthArg.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/o.js": +/*!************************************!*\ + !*** ./node_modules/ramda/es/o.js ***! + \************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * `o` is a curried composition function that returns a unary function.\n * Like [`compose`](#compose), `o` performs right-to-left function composition.\n * Unlike [`compose`](#compose), the rightmost function passed to `o` will be\n * invoked with only one argument. Also, unlike [`compose`](#compose), `o` is\n * limited to accepting only 2 unary functions. The name o was chosen because\n * of its similarity to the mathematical composition operator ∘.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Function\n * @sig (b -> c) -> (a -> b) -> a -> c\n * @param {Function} f\n * @param {Function} g\n * @return {Function}\n * @see R.compose, R.pipe\n * @example\n *\n * const classyGreeting = name => \"The name's \" + name.last + \", \" + name.first + \" \" + name.last\n * const yellGreeting = R.o(R.toUpper, classyGreeting);\n * yellGreeting({first: 'James', last: 'Bond'}); //=> \"THE NAME'S BOND, JAMES BOND\"\n *\n * R.o(R.multiply(10), R.add(10))(-4) //=> 60\n *\n * @symb R.o(f, g, x) = f(g(x))\n */\n\nvar o =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function o(f, g, x) {\n return f(g(x));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (o);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/o.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/objOf.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/objOf.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Creates an object containing a single key:value pair.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Object\n * @sig String -> a -> {String:a}\n * @param {String} key\n * @param {*} val\n * @return {Object}\n * @see R.pair\n * @example\n *\n * const matchPhrases = R.compose(\n * R.objOf('must'),\n * R.map(R.objOf('match_phrase'))\n * );\n * matchPhrases(['foo', 'bar', 'baz']); //=> {must: [{match_phrase: 'foo'}, {match_phrase: 'bar'}, {match_phrase: 'baz'}]}\n */\n\nvar objOf =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function objOf(key, val) {\n var obj = {};\n obj[key] = val;\n return obj;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (objOf);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/objOf.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/of.js": +/*!*************************************!*\ + !*** ./node_modules/ramda/es/of.js ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_of_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_of.js */ \"./node_modules/ramda/es/internal/_of.js\");\n\n\n/**\n * Returns a singleton array containing the value provided.\n *\n * Note this `of` is different from the ES6 `of`; See\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> [a]\n * @param {*} x any value\n * @return {Array} An array wrapping `x`.\n * @example\n *\n * R.of(null); //=> [null]\n * R.of([42]); //=> [[42]]\n */\n\nvar of =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_internal_of_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (of);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/of.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/omit.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/omit.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns a partial copy of an object omitting the keys specified.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [String] -> {String: *} -> {String: *}\n * @param {Array} names an array of String property names to omit from the new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with properties from `names` not on it.\n * @see R.pick\n * @example\n *\n * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}\n */\n\nvar omit =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function omit(names, obj) {\n var result = {};\n var index = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n index[names[idx]] = 1;\n idx += 1;\n }\n\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (omit);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/omit.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/once.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/once.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n\n/**\n * Accepts a function `fn` and returns a function that guards invocation of\n * `fn` such that `fn` can only ever be called once, no matter how many times\n * the returned function is invoked. The first value calculated is returned in\n * subsequent invocations.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (a... -> b) -> (a... -> b)\n * @param {Function} fn The function to wrap in a call-only-once wrapper.\n * @return {Function} The wrapped function.\n * @example\n *\n * const addOneOnce = R.once(x => x + 1);\n * addOneOnce(10); //=> 11\n * addOneOnce(addOneOnce(50)); //=> 11\n */\n\nvar once =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function once(fn) {\n var called = false;\n var result;\n return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(fn.length, function () {\n if (called) {\n return result;\n }\n\n called = true;\n result = fn.apply(this, arguments);\n return result;\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (once);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/once.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/or.js": +/*!*************************************!*\ + !*** ./node_modules/ramda/es/or.js ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns `true` if one or both of its arguments are `true`. Returns `false`\n * if both arguments are `false`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {Any} a\n * @param {Any} b\n * @return {Any} the first argument if truthy, otherwise the second argument.\n * @see R.either, R.xor\n * @example\n *\n * R.or(true, true); //=> true\n * R.or(true, false); //=> true\n * R.or(false, true); //=> true\n * R.or(false, false); //=> false\n */\n\nvar or =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function or(a, b) {\n return a || b;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (or);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/or.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/otherwise.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/otherwise.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_assertPromise_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_assertPromise.js */ \"./node_modules/ramda/es/internal/_assertPromise.js\");\n\n\n/**\n * Returns the result of applying the onFailure function to the value inside\n * a failed promise. This is useful for handling rejected promises\n * inside function compositions.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig (e -> b) -> (Promise e a) -> (Promise e b)\n * @sig (e -> (Promise f b)) -> (Promise e a) -> (Promise f b)\n * @param {Function} onFailure The function to apply. Can return a value or a promise of a value.\n * @param {Promise} p\n * @return {Promise} The result of calling `p.then(null, onFailure)`\n * @see R.then\n * @example\n *\n * var failedFetch = (id) => Promise.reject('bad ID');\n * var useDefault = () => ({ firstName: 'Bob', lastName: 'Loblaw' })\n *\n * //recoverFromFailure :: String -> Promise ({firstName, lastName})\n * var recoverFromFailure = R.pipe(\n * failedFetch,\n * R.otherwise(useDefault),\n * R.then(R.pick(['firstName', 'lastName'])),\n * );\n * recoverFromFailure(12345).then(console.log)\n */\n\nvar otherwise =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function otherwise(f, p) {\n Object(_internal_assertPromise_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])('otherwise', p);\n\n return p.then(null, f);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (otherwise);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/otherwise.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/over.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/over.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n // `Identity` is a functor that holds a single value, where `map` simply\n// transforms the held value with the provided function.\n\nvar Identity = function (x) {\n return {\n value: x,\n map: function (f) {\n return Identity(f(x));\n }\n };\n};\n/**\n * Returns the result of \"setting\" the portion of the given data structure\n * focused by the given lens to the result of applying the given function to\n * the focused value.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> (a -> a) -> s -> s\n * @param {Lens} lens\n * @param {*} v\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const headLens = R.lensIndex(0);\n *\n * R.over(headLens, R.toUpper, ['foo', 'bar', 'baz']); //=> ['FOO', 'bar', 'baz']\n */\n\n\nvar over =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function over(lens, f, x) {\n // The value returned by the getter function is first transformed with `f`,\n // then set as the value of an `Identity`. This is then mapped over with the\n // setter function of the lens.\n return lens(function (y) {\n return Identity(f(y));\n })(x).value;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (over);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/over.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pair.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/pair.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Takes two arguments, `fst` and `snd`, and returns `[fst, snd]`.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category List\n * @sig a -> b -> (a,b)\n * @param {*} fst\n * @param {*} snd\n * @return {Array}\n * @see R.objOf, R.of\n * @example\n *\n * R.pair('foo', 'bar'); //=> ['foo', 'bar']\n */\n\nvar pair =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function pair(fst, snd) {\n return [fst, snd];\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pair);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pair.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/partial.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/partial.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_createPartialApplicator_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_createPartialApplicator.js */ \"./node_modules/ramda/es/internal/_createPartialApplicator.js\");\n\n\n/**\n * Takes a function `f` and a list of arguments, and returns a function `g`.\n * When applied, `g` returns the result of applying `f` to the arguments\n * provided initially followed by the arguments provided to `g`.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a, b, c, ..., n) -> x) -> [a, b, c, ...] -> ((d, e, f, ..., n) -> x)\n * @param {Function} f\n * @param {Array} args\n * @return {Function}\n * @see R.partialRight, R.curry\n * @example\n *\n * const multiply2 = (a, b) => a * b;\n * const double = R.partial(multiply2, [2]);\n * double(2); //=> 4\n *\n * const greet = (salutation, title, firstName, lastName) =>\n * salutation + ', ' + title + ' ' + firstName + ' ' + lastName + '!';\n *\n * const sayHello = R.partial(greet, ['Hello']);\n * const sayHelloToMs = R.partial(sayHello, ['Ms.']);\n * sayHelloToMs('Jane', 'Jones'); //=> 'Hello, Ms. Jane Jones!'\n * @symb R.partial(f, [a, b])(c, d) = f(a, b, c, d)\n */\n\nvar partial =\n/*#__PURE__*/\nObject(_internal_createPartialApplicator_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (partial);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/partial.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/partialRight.js": +/*!***********************************************!*\ + !*** ./node_modules/ramda/es/partialRight.js ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_createPartialApplicator_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_createPartialApplicator.js */ \"./node_modules/ramda/es/internal/_createPartialApplicator.js\");\n/* harmony import */ var _flip_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./flip.js */ \"./node_modules/ramda/es/flip.js\");\n\n\n\n/**\n * Takes a function `f` and a list of arguments, and returns a function `g`.\n * When applied, `g` returns the result of applying `f` to the arguments\n * provided to `g` followed by the arguments provided initially.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a, b, c, ..., n) -> x) -> [d, e, f, ..., n] -> ((a, b, c, ...) -> x)\n * @param {Function} f\n * @param {Array} args\n * @return {Function}\n * @see R.partial\n * @example\n *\n * const greet = (salutation, title, firstName, lastName) =>\n * salutation + ', ' + title + ' ' + firstName + ' ' + lastName + '!';\n *\n * const greetMsJaneJones = R.partialRight(greet, ['Ms.', 'Jane', 'Jones']);\n *\n * greetMsJaneJones('Hello'); //=> 'Hello, Ms. Jane Jones!'\n * @symb R.partialRight(f, [a, b])(c, d) = f(c, d, a, b)\n */\n\nvar partialRight =\n/*#__PURE__*/\nObject(_internal_createPartialApplicator_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n/*#__PURE__*/\nObject(_flip_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (partialRight);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/partialRight.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/partition.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/partition.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./filter.js */ \"./node_modules/ramda/es/filter.js\");\n/* harmony import */ var _juxt_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./juxt.js */ \"./node_modules/ramda/es/juxt.js\");\n/* harmony import */ var _reject_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reject.js */ \"./node_modules/ramda/es/reject.js\");\n\n\n\n/**\n * Takes a predicate and a list or other `Filterable` object and returns the\n * pair of filterable objects of the same type of elements which do and do not\n * satisfy, the predicate, respectively. Filterable objects include plain objects or any object\n * that has a filter method such as `Array`.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> [f a, f a]\n * @param {Function} pred A predicate to determine which side the element belongs to.\n * @param {Array} filterable the list (or other filterable) to partition.\n * @return {Array} An array, containing first the subset of elements that satisfy the\n * predicate, and second the subset of elements that do not satisfy.\n * @see R.filter, R.reject\n * @example\n *\n * R.partition(R.includes('s'), ['sss', 'ttt', 'foo', 'bars']);\n * // => [ [ 'sss', 'bars' ], [ 'ttt', 'foo' ] ]\n *\n * R.partition(R.includes('s'), { a: 'sss', b: 'ttt', foo: 'bars' });\n * // => [ { a: 'sss', foo: 'bars' }, { b: 'ttt' } ]\n */\n\nvar partition =\n/*#__PURE__*/\nObject(_juxt_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([_filter_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], _reject_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (partition);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/partition.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/path.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/path.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _paths_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./paths.js */ \"./node_modules/ramda/es/paths.js\");\n\n\n/**\n * Retrieve the value at a given path.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {a} -> a | Undefined\n * @param {Array} path The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path`.\n * @see R.prop, R.nth\n * @example\n *\n * R.path(['a', 'b'], {a: {b: 2}}); //=> 2\n * R.path(['a', 'b'], {c: {b: 2}}); //=> undefined\n * R.path(['a', 'b', 0], {a: {b: [1, 2, 3]}}); //=> 1\n * R.path(['a', 'b', -2], {a: {b: [1, 2, 3]}}); //=> 2\n */\n\nvar path =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function path(pathAr, obj) {\n return Object(_paths_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([pathAr], obj)[0];\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (path);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/path.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pathEq.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/pathEq.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./path.js */ \"./node_modules/ramda/es/path.js\");\n\n\n\n/**\n * Determines whether a nested path on an object has a specific value, in\n * [`R.equals`](#equals) terms. Most likely used to filter a list.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Relation\n * @typedefn Idx = String | Int\n * @sig [Idx] -> a -> {a} -> Boolean\n * @param {Array} path The path of the nested property to use\n * @param {*} val The value to compare the nested property with\n * @param {Object} obj The object to check the nested property in\n * @return {Boolean} `true` if the value equals the nested object property,\n * `false` otherwise.\n * @example\n *\n * const user1 = { address: { zipCode: 90210 } };\n * const user2 = { address: { zipCode: 55555 } };\n * const user3 = { name: 'Bob' };\n * const users = [ user1, user2, user3 ];\n * const isFamous = R.pathEq(['address', 'zipCode'], 90210);\n * R.filter(isFamous, users); //=> [ user1 ]\n */\n\nvar pathEq =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function pathEq(_path, val, obj) {\n return Object(_equals_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_path_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_path, obj), val);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pathEq);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pathEq.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pathOr.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/pathOr.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _defaultTo_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultTo.js */ \"./node_modules/ramda/es/defaultTo.js\");\n/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./path.js */ \"./node_modules/ramda/es/path.js\");\n\n\n\n/**\n * If the given, non-null object has a value at the given path, returns the\n * value at that path. Otherwise returns the provided default value.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig a -> [Idx] -> {a} -> a\n * @param {*} d The default value.\n * @param {Array} p The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path` of the supplied object or the default value.\n * @example\n *\n * R.pathOr('N/A', ['a', 'b'], {a: {b: 2}}); //=> 2\n * R.pathOr('N/A', ['a', 'b'], {c: {b: 2}}); //=> \"N/A\"\n */\n\nvar pathOr =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function pathOr(d, p, obj) {\n return Object(_defaultTo_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(d, Object(_path_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(p, obj));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pathOr);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pathOr.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pathSatisfies.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/pathSatisfies.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./path.js */ \"./node_modules/ramda/es/path.js\");\n\n\n/**\n * Returns `true` if the specified object property at given path satisfies the\n * given predicate; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Logic\n * @typedefn Idx = String | Int\n * @sig (a -> Boolean) -> [Idx] -> {a} -> Boolean\n * @param {Function} pred\n * @param {Array} propPath\n * @param {*} obj\n * @return {Boolean}\n * @see R.propSatisfies, R.path\n * @example\n *\n * R.pathSatisfies(y => y > 0, ['x', 'y'], {x: {y: 2}}); //=> true\n * R.pathSatisfies(R.is(Object), [], {x: {y: 2}}); //=> true\n */\n\nvar pathSatisfies =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function pathSatisfies(pred, propPath, obj) {\n return pred(Object(_path_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(propPath, obj));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pathSatisfies);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pathSatisfies.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/paths.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/paths.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isInteger.js */ \"./node_modules/ramda/es/internal/_isInteger.js\");\n/* harmony import */ var _nth_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nth.js */ \"./node_modules/ramda/es/nth.js\");\n\n\n\n/**\n * Retrieves the values at given paths of an object.\n *\n * @func\n * @memberOf R\n * @since v0.27.0\n * @category Object\n * @typedefn Idx = [String | Int]\n * @sig [Idx] -> {a} -> [a | Undefined]\n * @param {Array} pathsArray The array of paths to be fetched.\n * @param {Object} obj The object to retrieve the nested properties from.\n * @return {Array} A list consisting of values at paths specified by \"pathsArray\".\n * @see R.path\n * @example\n *\n * R.paths([['a', 'b'], ['p', 0, 'q']], {a: {b: 2}, p: [{q: 3}]}); //=> [2, 3]\n * R.paths([['a', 'b'], ['p', 'r']], {a: {b: 2}, p: [{q: 3}]}); //=> [2, undefined]\n */\n\nvar paths =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function paths(pathsArray, obj) {\n return pathsArray.map(function (paths) {\n var val = obj;\n var idx = 0;\n var p;\n\n while (idx < paths.length) {\n if (val == null) {\n return;\n }\n\n p = paths[idx];\n val = Object(_internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(p) ? Object(_nth_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(p, val) : val[p];\n idx += 1;\n }\n\n return val;\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (paths);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/paths.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pick.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/pick.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns a partial copy of an object containing only the keys specified. If\n * the key does not exist, the property is ignored.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> {k: v}\n * @param {Array} names an array of String property names to copy onto a new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties from `names` on it.\n * @see R.omit, R.props\n * @example\n *\n * R.pick(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}\n * R.pick(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1}\n */\n\nvar pick =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function pick(names, obj) {\n var result = {};\n var idx = 0;\n\n while (idx < names.length) {\n if (names[idx] in obj) {\n result[names[idx]] = obj[names[idx]];\n }\n\n idx += 1;\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pick);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pick.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pickAll.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/pickAll.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Similar to `pick` except that this one includes a `key: undefined` pair for\n * properties that don't exist.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> {k: v}\n * @param {Array} names an array of String property names to copy onto a new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties from `names` on it.\n * @see R.pick\n * @example\n *\n * R.pickAll(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}\n * R.pickAll(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, e: undefined, f: undefined}\n */\n\nvar pickAll =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function pickAll(names, obj) {\n var result = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n var name = names[idx];\n result[name] = obj[name];\n idx += 1;\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pickAll);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pickAll.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pickBy.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/pickBy.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns a partial copy of an object containing only the keys that satisfy\n * the supplied predicate.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @sig ((v, k) -> Boolean) -> {k: v} -> {k: v}\n * @param {Function} pred A predicate to determine whether or not a key\n * should be included on the output object.\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties that satisfy `pred`\n * on it.\n * @see R.pick, R.filter\n * @example\n *\n * const isUpperCase = (val, key) => key.toUpperCase() === key;\n * R.pickBy(isUpperCase, {a: 1, b: 2, A: 3, B: 4}); //=> {A: 3, B: 4}\n */\n\nvar pickBy =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function pickBy(test, obj) {\n var result = {};\n\n for (var prop in obj) {\n if (test(obj[prop], prop, obj)) {\n result[prop] = obj[prop];\n }\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pickBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pickBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pipe.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/pipe.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return pipe; });\n/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _internal_pipe_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_pipe.js */ \"./node_modules/ramda/es/internal/_pipe.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n/* harmony import */ var _tail_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./tail.js */ \"./node_modules/ramda/es/tail.js\");\n\n\n\n\n/**\n * Performs left-to-right function composition. The first argument may have\n * any arity; the remaining arguments must be unary.\n *\n * In some libraries this function is named `sequence`.\n *\n * **Note:** The result of pipe is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)) -> ((a, b, ..., n) -> z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.compose\n * @example\n *\n * const f = R.pipe(Math.pow, R.negate, R.inc);\n *\n * f(3, 4); // -(3^4) + 1\n * @symb R.pipe(f, g, h)(a, b) = h(g(f(a, b)))\n */\n\nfunction pipe() {\n if (arguments.length === 0) {\n throw new Error('pipe requires at least one argument');\n }\n\n return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arguments[0].length, Object(_reduce_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_internal_pipe_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], arguments[0], Object(_tail_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(arguments)));\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pipe.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pipeK.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/pipeK.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return pipeK; });\n/* harmony import */ var _composeK_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./composeK.js */ \"./node_modules/ramda/es/composeK.js\");\n/* harmony import */ var _reverse_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reverse.js */ \"./node_modules/ramda/es/reverse.js\");\n\n\n/**\n * Returns the left-to-right Kleisli composition of the provided functions,\n * each of which must return a value of a type supported by [`chain`](#chain).\n *\n * `R.pipeK(f, g, h)` is equivalent to `R.pipe(f, R.chain(g), R.chain(h))`.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Function\n * @sig Chain m => ((a -> m b), (b -> m c), ..., (y -> m z)) -> (a -> m z)\n * @param {...Function}\n * @return {Function}\n * @see R.composeK\n * @deprecated since v0.26.0\n * @example\n *\n * // parseJson :: String -> Maybe *\n * // get :: String -> Object -> Maybe *\n *\n * // getStateCode :: Maybe String -> Maybe String\n * const getStateCode = R.pipeK(\n * parseJson,\n * get('user'),\n * get('address'),\n * get('state'),\n * R.compose(Maybe.of, R.toUpper)\n * );\n *\n * getStateCode('{\"user\":{\"address\":{\"state\":\"ny\"}}}');\n * //=> Just('NY')\n * getStateCode('[Invalid JSON]');\n * //=> Nothing()\n * @symb R.pipeK(f, g, h)(a) = R.chain(h, R.chain(g, f(a)))\n */\n\nfunction pipeK() {\n if (arguments.length === 0) {\n throw new Error('pipeK requires at least one argument');\n }\n\n return _composeK_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].apply(this, Object(_reverse_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(arguments));\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pipeK.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pipeP.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/pipeP.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return pipeP; });\n/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _internal_pipeP_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_pipeP.js */ \"./node_modules/ramda/es/internal/_pipeP.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n/* harmony import */ var _tail_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./tail.js */ \"./node_modules/ramda/es/tail.js\");\n\n\n\n\n/**\n * Performs left-to-right composition of one or more Promise-returning\n * functions. The first argument may have any arity; the remaining arguments\n * must be unary.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a -> Promise b), (b -> Promise c), ..., (y -> Promise z)) -> (a -> Promise z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.composeP\n * @deprecated since v0.26.0\n * @example\n *\n * // followersForUser :: String -> Promise [User]\n * const followersForUser = R.pipeP(db.getUserById, db.getFollowers);\n */\n\nfunction pipeP() {\n if (arguments.length === 0) {\n throw new Error('pipeP requires at least one argument');\n }\n\n return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arguments[0].length, Object(_reduce_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_internal_pipeP_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], arguments[0], Object(_tail_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(arguments)));\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pipeP.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pipeWith.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/pipeWith.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _head_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./head.js */ \"./node_modules/ramda/es/head.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _tail_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./tail.js */ \"./node_modules/ramda/es/tail.js\");\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./identity.js */ \"./node_modules/ramda/es/identity.js\");\n\n\n\n\n\n\n/**\n * Performs left-to-right function composition using transforming function. The first argument may have\n * any arity; the remaining arguments must be unary.\n *\n * **Note:** The result of pipeWith is not automatically curried. Transforming function is not used on the\n * first argument.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig ((* -> *), [((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)]) -> ((a, b, ..., n) -> z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.composeWith, R.pipe\n * @example\n *\n * const pipeWhileNotNil = R.pipeWith((f, res) => R.isNil(res) ? res : f(res));\n * const f = pipeWhileNotNil([Math.pow, R.negate, R.inc])\n *\n * f(3, 4); // -(3^4) + 1\n * @symb R.pipeWith(f)([g, h, i])(...args) = f(i, f(h, g(...args)))\n */\n\nvar pipeWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function pipeWith(xf, list) {\n if (list.length <= 0) {\n return _identity_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"];\n }\n\n var headList = Object(_head_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(list);\n var tailList = Object(_tail_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(list);\n return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(headList.length, function () {\n return Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(function (result, f) {\n return xf.call(this, f, result);\n }, headList.apply(this, arguments), tailList);\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pipeWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pipeWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pluck.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/pluck.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n/* harmony import */ var _prop_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./prop.js */ \"./node_modules/ramda/es/prop.js\");\n\n\n\n/**\n * Returns a new list by plucking the same named property off all objects in\n * the list supplied.\n *\n * `pluck` will work on\n * any [functor](https://github.com/fantasyland/fantasy-land#functor) in\n * addition to arrays, as it is equivalent to `R.map(R.prop(k), f)`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => k -> f {k: v} -> f v\n * @param {Number|String} key The key name to pluck off of each object.\n * @param {Array} f The array or functor to consider.\n * @return {Array} The list of values for the given key.\n * @see R.props\n * @example\n *\n * var getAges = R.pluck('age');\n * getAges([{name: 'fred', age: 29}, {name: 'wilma', age: 27}]); //=> [29, 27]\n *\n * R.pluck(0, [[1, 2], [3, 4]]); //=> [1, 3]\n * R.pluck('val', {a: {val: 3}, b: {val: 5}}); //=> {a: 3, b: 5}\n * @symb R.pluck('x', [{x: 1, y: 2}, {x: 3, y: 4}, {x: 5, y: 6}]) = [1, 3, 5]\n * @symb R.pluck(0, [[1, 2], [3, 4], [5, 6]]) = [1, 3, 5]\n */\n\nvar pluck =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function pluck(p, list) {\n return Object(_map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_prop_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(p), list);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pluck);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pluck.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/prepend.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/prepend.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Returns a new list with the given element at the front, followed by the\n * contents of the list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} el The item to add to the head of the output list.\n * @param {Array} list The array to add to the tail of the output list.\n * @return {Array} A new array.\n * @see R.append\n * @example\n *\n * R.prepend('fee', ['fi', 'fo', 'fum']); //=> ['fee', 'fi', 'fo', 'fum']\n */\n\nvar prepend =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function prepend(el, list) {\n return Object(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])([el], list);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (prepend);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/prepend.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/product.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/product.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _multiply_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./multiply.js */ \"./node_modules/ramda/es/multiply.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n\n\n/**\n * Multiplies together all the elements of a list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list An array of numbers\n * @return {Number} The product of all the numbers in the list.\n * @see R.reduce\n * @example\n *\n * R.product([2,4,6,8,100,1]); //=> 38400\n */\n\nvar product =\n/*#__PURE__*/\nObject(_reduce_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_multiply_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], 1);\n/* harmony default export */ __webpack_exports__[\"default\"] = (product);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/product.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/project.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/project.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_map_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_map.js */ \"./node_modules/ramda/es/internal/_map.js\");\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./identity.js */ \"./node_modules/ramda/es/identity.js\");\n/* harmony import */ var _pickAll_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pickAll.js */ \"./node_modules/ramda/es/pickAll.js\");\n/* harmony import */ var _useWith_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./useWith.js */ \"./node_modules/ramda/es/useWith.js\");\n\n\n\n\n/**\n * Reasonable analog to SQL `select` statement.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @category Relation\n * @sig [k] -> [{k: v}] -> [{k: v}]\n * @param {Array} props The property names to project\n * @param {Array} objs The objects to query\n * @return {Array} An array of objects with just the `props` properties.\n * @example\n *\n * const abby = {name: 'Abby', age: 7, hair: 'blond', grade: 2};\n * const fred = {name: 'Fred', age: 12, hair: 'brown', grade: 7};\n * const kids = [abby, fred];\n * R.project(['name', 'grade'], kids); //=> [{name: 'Abby', grade: 2}, {name: 'Fred', grade: 7}]\n */\n\nvar project =\n/*#__PURE__*/\nObject(_useWith_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_internal_map_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], [_pickAll_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], _identity_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]]); // passing `identity` gives correct arity\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (project);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/project.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/prop.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/prop.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./path.js */ \"./node_modules/ramda/es/path.js\");\n\n\n/**\n * Returns a function that when supplied an object returns the indicated\n * property of that object, if it exists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig Idx -> {s: a} -> a | Undefined\n * @param {String|Number} p The property name or array index\n * @param {Object} obj The object to query\n * @return {*} The value at `obj.p`.\n * @see R.path, R.nth\n * @example\n *\n * R.prop('x', {x: 100}); //=> 100\n * R.prop('x', {}); //=> undefined\n * R.prop(0, [100]); //=> 100\n * R.compose(R.inc, R.prop('x'))({ x: 3 }) //=> 4\n */\n\nvar prop =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function prop(p, obj) {\n return Object(_path_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([p], obj);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (prop);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/prop.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/propEq.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/propEq.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n\n\n/**\n * Returns `true` if the specified object property is equal, in\n * [`R.equals`](#equals) terms, to the given value; `false` otherwise.\n * You can test multiple properties with [`R.whereEq`](#whereEq).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig String -> a -> Object -> Boolean\n * @param {String} name\n * @param {*} val\n * @param {*} obj\n * @return {Boolean}\n * @see R.whereEq, R.propSatisfies, R.equals\n * @example\n *\n * const abby = {name: 'Abby', age: 7, hair: 'blond'};\n * const fred = {name: 'Fred', age: 12, hair: 'brown'};\n * const rusty = {name: 'Rusty', age: 10, hair: 'brown'};\n * const alois = {name: 'Alois', age: 15, disposition: 'surly'};\n * const kids = [abby, fred, rusty, alois];\n * const hasBrownHair = R.propEq('hair', 'brown');\n * R.filter(hasBrownHair, kids); //=> [fred, rusty]\n */\n\nvar propEq =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function propEq(name, val, obj) {\n return Object(_equals_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(val, obj[name]);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (propEq);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/propEq.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/propIs.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/propIs.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _is_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./is.js */ \"./node_modules/ramda/es/is.js\");\n\n\n/**\n * Returns `true` if the specified object property is of the given type;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Type\n * @sig Type -> String -> Object -> Boolean\n * @param {Function} type\n * @param {String} name\n * @param {*} obj\n * @return {Boolean}\n * @see R.is, R.propSatisfies\n * @example\n *\n * R.propIs(Number, 'x', {x: 1, y: 2}); //=> true\n * R.propIs(Number, 'x', {x: 'foo'}); //=> false\n * R.propIs(Number, 'x', {}); //=> false\n */\n\nvar propIs =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function propIs(type, name, obj) {\n return Object(_is_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(type, obj[name]);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (propIs);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/propIs.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/propOr.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/propOr.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _pathOr_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pathOr.js */ \"./node_modules/ramda/es/pathOr.js\");\n\n\n/**\n * If the given, non-null object has an own property with the specified name,\n * returns the value of that property. Otherwise returns the provided default\n * value.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Object\n * @sig a -> String -> Object -> a\n * @param {*} val The default value.\n * @param {String} p The name of the property to return.\n * @param {Object} obj The object to query.\n * @return {*} The value of given property of the supplied object or the default value.\n * @example\n *\n * const alice = {\n * name: 'ALICE',\n * age: 101\n * };\n * const favorite = R.prop('favoriteLibrary');\n * const favoriteWithDefault = R.propOr('Ramda', 'favoriteLibrary');\n *\n * favorite(alice); //=> undefined\n * favoriteWithDefault(alice); //=> 'Ramda'\n */\n\nvar propOr =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function propOr(val, p, obj) {\n return Object(_pathOr_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(val, [p], obj);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (propOr);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/propOr.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/propSatisfies.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/propSatisfies.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Returns `true` if the specified object property satisfies the given\n * predicate; `false` otherwise. You can test multiple properties with\n * [`R.where`](#where).\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Logic\n * @sig (a -> Boolean) -> String -> {String: a} -> Boolean\n * @param {Function} pred\n * @param {String} name\n * @param {*} obj\n * @return {Boolean}\n * @see R.where, R.propEq, R.propIs\n * @example\n *\n * R.propSatisfies(x => x > 0, 'x', {x: 1, y: 2}); //=> true\n */\n\nvar propSatisfies =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function propSatisfies(pred, name, obj) {\n return pred(obj[name]);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (propSatisfies);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/propSatisfies.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/props.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/props.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./path.js */ \"./node_modules/ramda/es/path.js\");\n\n\n/**\n * Acts as multiple `prop`: array of keys in, array of values out. Preserves\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> [v]\n * @param {Array} ps The property names to fetch\n * @param {Object} obj The object to query\n * @return {Array} The corresponding values or partially applied function.\n * @example\n *\n * R.props(['x', 'y'], {x: 1, y: 2}); //=> [1, 2]\n * R.props(['c', 'a', 'b'], {b: 2, a: 1}); //=> [undefined, 1, 2]\n *\n * const fullName = R.compose(R.join(' '), R.props(['first', 'last']));\n * fullName({last: 'Bullet-Tooth', age: 33, first: 'Tony'}); //=> 'Tony Bullet-Tooth'\n */\n\nvar props =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function props(ps, obj) {\n return ps.map(function (p) {\n return Object(_path_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([p], obj);\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (props);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/props.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/range.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/range.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isNumber_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isNumber.js */ \"./node_modules/ramda/es/internal/_isNumber.js\");\n\n\n/**\n * Returns a list of numbers from `from` (inclusive) to `to` (exclusive).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> Number -> [Number]\n * @param {Number} from The first number in the list.\n * @param {Number} to One more than the last number in the list.\n * @return {Array} The list of numbers in the set `[a, b)`.\n * @example\n *\n * R.range(1, 5); //=> [1, 2, 3, 4]\n * R.range(50, 53); //=> [50, 51, 52]\n */\n\nvar range =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function range(from, to) {\n if (!(Object(_internal_isNumber_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(from) && Object(_internal_isNumber_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(to))) {\n throw new TypeError('Both arguments to range must be numbers');\n }\n\n var result = [];\n var n = from;\n\n while (n < to) {\n result.push(n);\n n += 1;\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (range);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/range.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/reduce.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/reduce.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n\n\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It may use\n * [`R.reduced`](#reduced) to shortcut the iteration.\n *\n * The arguments' order of [`reduceRight`](#reduceRight)'s iterator function\n * is *(value, acc)*.\n *\n * Note: `R.reduce` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduce` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Description\n *\n * Dispatches to the `reduce` method of the third argument, if present. When\n * doing so, it is up to the user to handle the [`R.reduced`](#reduced)\n * shortcuting, as this is not implemented by `reduce`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduced, R.addIndex, R.reduceRight\n * @example\n *\n * R.reduce(R.subtract, 0, [1, 2, 3, 4]) // => ((((0 - 1) - 2) - 3) - 4) = -10\n * // - -10\n * // / \\ / \\\n * // - 4 -6 4\n * // / \\ / \\\n * // - 3 ==> -3 3\n * // / \\ / \\\n * // - 2 -1 2\n * // / \\ / \\\n * // 0 1 0 1\n *\n * @symb R.reduce(f, a, [b, c, d]) = f(f(f(a, b), c), d)\n */\n\nvar reduce =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (reduce);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/reduce.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/reduceBy.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/reduceBy.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_clone_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_clone.js */ \"./node_modules/ramda/es/internal/_clone.js\");\n/* harmony import */ var _internal_curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curryN.js */ \"./node_modules/ramda/es/internal/_curryN.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _internal_xreduceBy_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./internal/_xreduceBy.js */ \"./node_modules/ramda/es/internal/_xreduceBy.js\");\n\n\n\n\n\n\n/**\n * Groups the elements of the list according to the result of calling\n * the String-returning function `keyFn` on each element and reduces the elements\n * of each group to a single value via the reducer function `valueFn`.\n *\n * This function is basically a more general [`groupBy`](#groupBy) function.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category List\n * @sig ((a, b) -> a) -> a -> (b -> String) -> [b] -> {String: a}\n * @param {Function} valueFn The function that reduces the elements of each group to a single\n * value. Receives two values, accumulator for a particular group and the current element.\n * @param {*} acc The (initial) accumulator value for each group.\n * @param {Function} keyFn The function that maps the list's element into a key.\n * @param {Array} list The array to group.\n * @return {Object} An object with the output of `keyFn` for keys, mapped to the output of\n * `valueFn` for elements which produced that key when passed to `keyFn`.\n * @see R.groupBy, R.reduce\n * @example\n *\n * const groupNames = (acc, {name}) => acc.concat(name)\n * const toGrade = ({score}) =>\n * score < 65 ? 'F' :\n * score < 70 ? 'D' :\n * score < 80 ? 'C' :\n * score < 90 ? 'B' : 'A'\n *\n * var students = [\n * {name: 'Abby', score: 83},\n * {name: 'Bart', score: 62},\n * {name: 'Curt', score: 88},\n * {name: 'Dora', score: 92},\n * ]\n *\n * reduceBy(groupNames, [], toGrade, students)\n * //=> {\"A\": [\"Dora\"], \"B\": [\"Abby\", \"Curt\"], \"F\": [\"Bart\"]}\n */\n\nvar reduceBy =\n/*#__PURE__*/\nObject(_internal_curryN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(4, [],\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])([], _internal_xreduceBy_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"], function reduceBy(valueFn, valueAcc, keyFn, list) {\n return Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(function (acc, elt) {\n var key = keyFn(elt);\n acc[key] = valueFn(Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(key, acc) ? acc[key] : Object(_internal_clone_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(valueAcc, [], [], false), elt);\n return acc;\n }, {}, list);\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (reduceBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/reduceBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/reduceRight.js": +/*!**********************************************!*\ + !*** ./node_modules/ramda/es/reduceRight.js ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * Similar to [`reduce`](#reduce), except moves through the input list from the\n * right to the left.\n *\n * The iterator function receives two values: *(value, acc)*, while the arguments'\n * order of `reduce`'s iterator function is *(acc, value)*.\n *\n * Note: `R.reduceRight` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduceRight` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduceRight#Description\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> b) -> b -> [a] -> b\n * @param {Function} fn The iterator function. Receives two values, the current element from the array\n * and the accumulator.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.addIndex\n * @example\n *\n * R.reduceRight(R.subtract, 0, [1, 2, 3, 4]) // => (1 - (2 - (3 - (4 - 0)))) = -2\n * // - -2\n * // / \\ / \\\n * // 1 - 1 3\n * // / \\ / \\\n * // 2 - ==> 2 -1\n * // / \\ / \\\n * // 3 - 3 4\n * // / \\ / \\\n * // 4 0 4 0\n *\n * @symb R.reduceRight(f, a, [b, c, d]) = f(b, f(c, f(d, a)))\n */\n\nvar reduceRight =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function reduceRight(fn, acc, list) {\n var idx = list.length - 1;\n\n while (idx >= 0) {\n acc = fn(list[idx], acc);\n idx -= 1;\n }\n\n return acc;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (reduceRight);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/reduceRight.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/reduceWhile.js": +/*!**********************************************!*\ + !*** ./node_modules/ramda/es/reduceWhile.js ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curryN_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curryN.js */ \"./node_modules/ramda/es/internal/_curryN.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _internal_reduced_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_reduced.js */ \"./node_modules/ramda/es/internal/_reduced.js\");\n\n\n\n/**\n * Like [`reduce`](#reduce), `reduceWhile` returns a single item by iterating\n * through the list, successively calling the iterator function. `reduceWhile`\n * also takes a predicate that is evaluated before each step. If the predicate\n * returns `false`, it \"short-circuits\" the iteration and returns the current\n * value of the accumulator.\n *\n * @func\n * @memberOf R\n * @since v0.22.0\n * @category List\n * @sig ((a, b) -> Boolean) -> ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} pred The predicate. It is passed the accumulator and the\n * current element.\n * @param {Function} fn The iterator function. Receives two values, the\n * accumulator and the current element.\n * @param {*} a The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.reduced\n * @example\n *\n * const isOdd = (acc, x) => x % 2 === 1;\n * const xs = [1, 3, 5, 60, 777, 800];\n * R.reduceWhile(isOdd, R.add, 0, xs); //=> 9\n *\n * const ys = [2, 4, 6]\n * R.reduceWhile(isOdd, R.add, 111, ys); //=> 111\n */\n\nvar reduceWhile =\n/*#__PURE__*/\nObject(_internal_curryN_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(4, [], function _reduceWhile(pred, fn, a, list) {\n return Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (acc, x) {\n return pred(acc, x) ? fn(acc, x) : Object(_internal_reduced_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(acc);\n }, a, list);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (reduceWhile);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/reduceWhile.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/reduced.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/reduced.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_reduced_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_reduced.js */ \"./node_modules/ramda/es/internal/_reduced.js\");\n\n\n/**\n * Returns a value wrapped to indicate that it is the final value of the reduce\n * and transduce functions. The returned value should be considered a black\n * box: the internal structure is not guaranteed to be stable.\n *\n * Note: this optimization is only available to the below functions:\n * - [`reduce`](#reduce)\n * - [`reduceWhile`](#reduceWhile)\n * - [`transduce`](#transduce)\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category List\n * @sig a -> *\n * @param {*} x The final value of the reduce.\n * @return {*} The wrapped value.\n * @see R.reduce, R.reduceWhile, R.transduce\n * @example\n *\n * R.reduce(\n * (acc, item) => item > 3 ? R.reduced(acc) : acc.concat(item),\n * [],\n * [1, 2, 3, 4, 5]) // [1, 2, 3]\n */\n\nvar reduced =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_internal_reduced_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (reduced);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/reduced.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/reject.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/reject.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_complement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_complement.js */ \"./node_modules/ramda/es/internal/_complement.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./filter.js */ \"./node_modules/ramda/es/filter.js\");\n\n\n\n/**\n * The complement of [`filter`](#filter).\n *\n * Acts as a transducer if a transformer is given in list position. Filterable\n * objects include plain objects or any object that has a filter method such\n * as `Array`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array}\n * @see R.filter, R.transduce, R.addIndex\n * @example\n *\n * const isOdd = (n) => n % 2 === 1;\n *\n * R.reject(isOdd, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.reject(isOdd, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\n\nvar reject =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function reject(pred, filterable) {\n return Object(_filter_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Object(_internal_complement_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(pred), filterable);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (reject);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/reject.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/remove.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/remove.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Removes the sub-list of `list` starting at index `start` and containing\n * `count` elements. _Note that this is not destructive_: it returns a copy of\n * the list with the changes.\n * No lists have been harmed in the application of this function.\n *\n * @func\n * @memberOf R\n * @since v0.2.2\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @param {Number} start The position to start removing elements\n * @param {Number} count The number of elements to remove\n * @param {Array} list The list to remove from\n * @return {Array} A new Array with `count` elements from `start` removed.\n * @see R.without\n * @example\n *\n * R.remove(2, 3, [1,2,3,4,5,6,7,8]); //=> [1,2,6,7,8]\n */\n\nvar remove =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function remove(start, count, list) {\n var result = Array.prototype.slice.call(list, 0);\n result.splice(start, count);\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (remove);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/remove.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/repeat.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/repeat.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _always_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./always.js */ \"./node_modules/ramda/es/always.js\");\n/* harmony import */ var _times_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./times.js */ \"./node_modules/ramda/es/times.js\");\n\n\n\n/**\n * Returns a fixed list of size `n` containing a specified identical value.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig a -> n -> [a]\n * @param {*} value The value to repeat.\n * @param {Number} n The desired size of the output list.\n * @return {Array} A new array containing `n` `value`s.\n * @see R.times\n * @example\n *\n * R.repeat('hi', 5); //=> ['hi', 'hi', 'hi', 'hi', 'hi']\n *\n * const obj = {};\n * const repeatedObjs = R.repeat(obj, 5); //=> [{}, {}, {}, {}, {}]\n * repeatedObjs[0] === repeatedObjs[1]; //=> true\n * @symb R.repeat(a, 0) = []\n * @symb R.repeat(a, 1) = [a]\n * @symb R.repeat(a, 2) = [a, a]\n */\n\nvar repeat =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function repeat(value, n) {\n return Object(_times_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Object(_always_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value), n);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (repeat);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/repeat.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/replace.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/replace.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Replace a substring or regex match in a string with a replacement.\n *\n * The first two parameters correspond to the parameters of the\n * `String.prototype.replace()` function, so the second parameter can also be a\n * function.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category String\n * @sig RegExp|String -> String -> String -> String\n * @param {RegExp|String} pattern A regular expression or a substring to match.\n * @param {String} replacement The string to replace the matches with.\n * @param {String} str The String to do the search and replacement in.\n * @return {String} The result.\n * @example\n *\n * R.replace('foo', 'bar', 'foo foo foo'); //=> 'bar foo foo'\n * R.replace(/foo/, 'bar', 'foo foo foo'); //=> 'bar foo foo'\n *\n * // Use the \"g\" (global) flag to replace all occurrences:\n * R.replace(/foo/g, 'bar', 'foo foo foo'); //=> 'bar bar bar'\n */\n\nvar replace =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function replace(regex, replacement, str) {\n return str.replace(regex, replacement);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (replace);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/replace.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/reverse.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/reverse.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_isString_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isString.js */ \"./node_modules/ramda/es/internal/_isString.js\");\n\n\n/**\n * Returns a new list or string with the elements or characters in reverse\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {Array|String} list\n * @return {Array|String}\n * @example\n *\n * R.reverse([1, 2, 3]); //=> [3, 2, 1]\n * R.reverse([1, 2]); //=> [2, 1]\n * R.reverse([1]); //=> [1]\n * R.reverse([]); //=> []\n *\n * R.reverse('abc'); //=> 'cba'\n * R.reverse('ab'); //=> 'ba'\n * R.reverse('a'); //=> 'a'\n * R.reverse(''); //=> ''\n */\n\nvar reverse =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function reverse(list) {\n return Object(_internal_isString_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(list) ? list.split('').reverse().join('') : Array.prototype.slice.call(list, 0).reverse();\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (reverse);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/reverse.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/scan.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/scan.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Scan is similar to [`reduce`](#reduce), but returns a list of successively\n * reduced values from the left\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> [a]\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {Array} A list of all intermediately reduced values.\n * @see R.reduce, R.mapAccum\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const factorials = R.scan(R.multiply, 1, numbers); //=> [1, 1, 2, 6, 24]\n * @symb R.scan(f, a, [b, c]) = [a, f(a, b), f(f(a, b), c)]\n */\n\nvar scan =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function scan(fn, acc, list) {\n var idx = 0;\n var len = list.length;\n var result = [acc];\n\n while (idx < len) {\n acc = fn(acc, list[idx]);\n result[idx + 1] = acc;\n idx += 1;\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (scan);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/scan.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/sequence.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/sequence.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _ap_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ap.js */ \"./node_modules/ramda/es/ap.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n/* harmony import */ var _prepend_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./prepend.js */ \"./node_modules/ramda/es/prepend.js\");\n/* harmony import */ var _reduceRight_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./reduceRight.js */ \"./node_modules/ramda/es/reduceRight.js\");\n\n\n\n\n\n/**\n * Transforms a [Traversable](https://github.com/fantasyland/fantasy-land#traversable)\n * of [Applicative](https://github.com/fantasyland/fantasy-land#applicative) into an\n * Applicative of Traversable.\n *\n * Dispatches to the `sequence` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (Applicative f, Traversable t) => (a -> f a) -> t (f a) -> f (t a)\n * @param {Function} of\n * @param {*} traversable\n * @return {*}\n * @see R.traverse\n * @example\n *\n * R.sequence(Maybe.of, [Just(1), Just(2), Just(3)]); //=> Just([1, 2, 3])\n * R.sequence(Maybe.of, [Just(1), Just(2), Nothing()]); //=> Nothing()\n *\n * R.sequence(R.of, Just([1, 2, 3])); //=> [Just(1), Just(2), Just(3)]\n * R.sequence(R.of, Nothing()); //=> [Nothing()]\n */\n\nvar sequence =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function sequence(of, traversable) {\n return typeof traversable.sequence === 'function' ? traversable.sequence(of) : Object(_reduceRight_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(function (x, acc) {\n return Object(_ap_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_map_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_prepend_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], x), acc);\n }, of([]), traversable);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (sequence);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/sequence.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/set.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/set.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _always_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./always.js */ \"./node_modules/ramda/es/always.js\");\n/* harmony import */ var _over_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./over.js */ \"./node_modules/ramda/es/over.js\");\n\n\n\n/**\n * Returns the result of \"setting\" the portion of the given data structure\n * focused by the given lens to the given value.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> a -> s -> s\n * @param {Lens} lens\n * @param {*} v\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.set(xLens, 8, {x: 1, y: 2}); //=> {x: 8, y: 2}\n */\n\nvar set =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function set(lens, v, x) {\n return Object(_over_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(lens, Object(_always_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(v), x);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (set);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/set.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/slice.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/slice.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_checkForMethod.js */ \"./node_modules/ramda/es/internal/_checkForMethod.js\");\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n\n/**\n * Returns the elements of the given list or string (or object with a `slice`\n * method) from `fromIndex` (inclusive) to `toIndex` (exclusive).\n *\n * Dispatches to the `slice` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @sig Number -> Number -> String -> String\n * @param {Number} fromIndex The start index (inclusive).\n * @param {Number} toIndex The end index (exclusive).\n * @param {*} list\n * @return {*}\n * @example\n *\n * R.slice(1, 3, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(1, Infinity, ['a', 'b', 'c', 'd']); //=> ['b', 'c', 'd']\n * R.slice(0, -1, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c']\n * R.slice(-3, -1, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(0, 3, 'ramda'); //=> 'ram'\n */\n\nvar slice =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('slice', function slice(fromIndex, toIndex, list) {\n return Array.prototype.slice.call(list, fromIndex, toIndex);\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (slice);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/slice.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/sort.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/sort.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns a copy of the list, sorted according to the comparator function,\n * which should accept two values at a time and return a negative number if the\n * first value is smaller, a positive number if it's larger, and zero if they\n * are equal. Please note that this is a **copy** of the list. It does not\n * modify the original.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, a) -> Number) -> [a] -> [a]\n * @param {Function} comparator A sorting function :: a -> b -> Int\n * @param {Array} list The list to sort\n * @return {Array} a new array with its elements sorted by the comparator function.\n * @example\n *\n * const diff = function(a, b) { return a - b; };\n * R.sort(diff, [4,2,7,5]); //=> [2, 4, 5, 7]\n */\n\nvar sort =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function sort(comparator, list) {\n return Array.prototype.slice.call(list, 0).sort(comparator);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (sort);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/sort.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/sortBy.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/sortBy.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Sorts the list according to the supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord b => (a -> b) -> [a] -> [a]\n * @param {Function} fn\n * @param {Array} list The list to sort.\n * @return {Array} A new list sorted by the keys generated by `fn`.\n * @example\n *\n * const sortByFirstItem = R.sortBy(R.prop(0));\n * const pairs = [[-1, 1], [-2, 2], [-3, 3]];\n * sortByFirstItem(pairs); //=> [[-3, 3], [-2, 2], [-1, 1]]\n *\n * const sortByNameCaseInsensitive = R.sortBy(R.compose(R.toLower, R.prop('name')));\n * const alice = {\n * name: 'ALICE',\n * age: 101\n * };\n * const bob = {\n * name: 'Bob',\n * age: -10\n * };\n * const clara = {\n * name: 'clara',\n * age: 314.159\n * };\n * const people = [clara, bob, alice];\n * sortByNameCaseInsensitive(people); //=> [alice, bob, clara]\n */\n\nvar sortBy =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function sortBy(fn, list) {\n return Array.prototype.slice.call(list, 0).sort(function (a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (sortBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/sortBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/sortWith.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/sortWith.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Sorts a list according to a list of comparators.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Relation\n * @sig [(a, a) -> Number] -> [a] -> [a]\n * @param {Array} functions A list of comparator functions.\n * @param {Array} list The list to sort.\n * @return {Array} A new list sorted according to the comarator functions.\n * @example\n *\n * const alice = {\n * name: 'alice',\n * age: 40\n * };\n * const bob = {\n * name: 'bob',\n * age: 30\n * };\n * const clara = {\n * name: 'clara',\n * age: 40\n * };\n * const people = [clara, bob, alice];\n * const ageNameSort = R.sortWith([\n * R.descend(R.prop('age')),\n * R.ascend(R.prop('name'))\n * ]);\n * ageNameSort(people); //=> [alice, clara, bob]\n */\n\nvar sortWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function sortWith(fns, list) {\n return Array.prototype.slice.call(list, 0).sort(function (a, b) {\n var result = 0;\n var i = 0;\n\n while (result === 0 && i < fns.length) {\n result = fns[i](a, b);\n i += 1;\n }\n\n return result;\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (sortWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/sortWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/split.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/split.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _invoker_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./invoker.js */ \"./node_modules/ramda/es/invoker.js\");\n\n/**\n * Splits a string into an array of strings based on the given\n * separator.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category String\n * @sig (String | RegExp) -> String -> [String]\n * @param {String|RegExp} sep The pattern.\n * @param {String} str The string to separate into an array.\n * @return {Array} The array of strings from `str` separated by `sep`.\n * @see R.join\n * @example\n *\n * const pathComponents = R.split('/');\n * R.tail(pathComponents('/usr/local/bin/node')); //=> ['usr', 'local', 'bin', 'node']\n *\n * R.split('.', 'a.b.c.xyz.d'); //=> ['a', 'b', 'c', 'xyz', 'd']\n */\n\nvar split =\n/*#__PURE__*/\nObject(_invoker_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(1, 'split');\n/* harmony default export */ __webpack_exports__[\"default\"] = (split);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/split.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/splitAt.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/splitAt.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _length_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./length.js */ \"./node_modules/ramda/es/length.js\");\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n\n\n\n/**\n * Splits a given list or string at a given index.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig Number -> [a] -> [[a], [a]]\n * @sig Number -> String -> [String, String]\n * @param {Number} index The index where the array/string is split.\n * @param {Array|String} array The array/string to be split.\n * @return {Array}\n * @example\n *\n * R.splitAt(1, [1, 2, 3]); //=> [[1], [2, 3]]\n * R.splitAt(5, 'hello world'); //=> ['hello', ' world']\n * R.splitAt(-1, 'foobar'); //=> ['fooba', 'r']\n */\n\nvar splitAt =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function splitAt(index, array) {\n return [Object(_slice_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(0, index, array), Object(_slice_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(index, Object(_length_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(array), array)];\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (splitAt);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/splitAt.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/splitEvery.js": +/*!*********************************************!*\ + !*** ./node_modules/ramda/es/splitEvery.js ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n\n\n/**\n * Splits a collection into slices of the specified length.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [[a]]\n * @sig Number -> String -> [String]\n * @param {Number} n\n * @param {Array} list\n * @return {Array}\n * @example\n *\n * R.splitEvery(3, [1, 2, 3, 4, 5, 6, 7]); //=> [[1, 2, 3], [4, 5, 6], [7]]\n * R.splitEvery(3, 'foobarbaz'); //=> ['foo', 'bar', 'baz']\n */\n\nvar splitEvery =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function splitEvery(n, list) {\n if (n <= 0) {\n throw new Error('First argument to splitEvery must be a positive integer');\n }\n\n var result = [];\n var idx = 0;\n\n while (idx < list.length) {\n result.push(Object(_slice_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(idx, idx += n, list));\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (splitEvery);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/splitEvery.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/splitWhen.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/splitWhen.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Takes a list and a predicate and returns a pair of lists with the following properties:\n *\n * - the result of concatenating the two output lists is equivalent to the input list;\n * - none of the elements of the first output list satisfies the predicate; and\n * - if the second output list is non-empty, its first element satisfies the predicate.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [[a], [a]]\n * @param {Function} pred The predicate that determines where the array is split.\n * @param {Array} list The array to be split.\n * @return {Array}\n * @example\n *\n * R.splitWhen(R.equals(2), [1, 2, 3, 1, 2, 3]); //=> [[1], [2, 3, 1, 2, 3]]\n */\n\nvar splitWhen =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function splitWhen(pred, list) {\n var idx = 0;\n var len = list.length;\n var prefix = [];\n\n while (idx < len && !pred(list[idx])) {\n prefix.push(list[idx]);\n idx += 1;\n }\n\n return [prefix, Array.prototype.slice.call(list, idx)];\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (splitWhen);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/splitWhen.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/startsWith.js": +/*!*********************************************!*\ + !*** ./node_modules/ramda/es/startsWith.js ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n/* harmony import */ var _take_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./take.js */ \"./node_modules/ramda/es/take.js\");\n\n\n\n/**\n * Checks if a list starts with the provided sublist.\n *\n * Similarly, checks if a string starts with the provided substring.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category List\n * @sig [a] -> [a] -> Boolean\n * @sig String -> String -> Boolean\n * @param {*} prefix\n * @param {*} list\n * @return {Boolean}\n * @see R.endsWith\n * @example\n *\n * R.startsWith('a', 'abc') //=> true\n * R.startsWith('b', 'abc') //=> false\n * R.startsWith(['a'], ['a', 'b', 'c']) //=> true\n * R.startsWith(['b'], ['a', 'b', 'c']) //=> false\n */\n\nvar startsWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (prefix, list) {\n return Object(_equals_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_take_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(prefix.length, list), prefix);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (startsWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/startsWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/subtract.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/subtract.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Subtracts its second argument from its first argument.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a - b`.\n * @see R.add\n * @example\n *\n * R.subtract(10, 8); //=> 2\n *\n * const minus5 = R.subtract(R.__, 5);\n * minus5(17); //=> 12\n *\n * const complementaryAngle = R.subtract(90);\n * complementaryAngle(30); //=> 60\n * complementaryAngle(72); //=> 18\n */\n\nvar subtract =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function subtract(a, b) {\n return Number(a) - Number(b);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (subtract);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/subtract.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/sum.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/sum.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _add_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./add.js */ \"./node_modules/ramda/es/add.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n\n\n/**\n * Adds together all the elements of a list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list An array of numbers\n * @return {Number} The sum of all the numbers in the list.\n * @see R.reduce\n * @example\n *\n * R.sum([2,4,6,8,100,1]); //=> 121\n */\n\nvar sum =\n/*#__PURE__*/\nObject(_reduce_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_add_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], 0);\n/* harmony default export */ __webpack_exports__[\"default\"] = (sum);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/sum.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/symmetricDifference.js": +/*!******************************************************!*\ + !*** ./node_modules/ramda/es/symmetricDifference.js ***! + \******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _concat_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./concat.js */ \"./node_modules/ramda/es/concat.js\");\n/* harmony import */ var _difference_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./difference.js */ \"./node_modules/ramda/es/difference.js\");\n\n\n\n/**\n * Finds the set (i.e. no duplicates) of all elements contained in the first or\n * second list, but not both.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` or `list2`, but not both.\n * @see R.symmetricDifferenceWith, R.difference, R.differenceWith\n * @example\n *\n * R.symmetricDifference([1,2,3,4], [7,6,5,4,3]); //=> [1,2,7,6,5]\n * R.symmetricDifference([7,6,5,4,3], [1,2,3,4]); //=> [7,6,5,1,2]\n */\n\nvar symmetricDifference =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function symmetricDifference(list1, list2) {\n return Object(_concat_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_difference_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(list1, list2), Object(_difference_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(list2, list1));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (symmetricDifference);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/symmetricDifference.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/symmetricDifferenceWith.js": +/*!**********************************************************!*\ + !*** ./node_modules/ramda/es/symmetricDifferenceWith.js ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _concat_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./concat.js */ \"./node_modules/ramda/es/concat.js\");\n/* harmony import */ var _differenceWith_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./differenceWith.js */ \"./node_modules/ramda/es/differenceWith.js\");\n\n\n\n/**\n * Finds the set (i.e. no duplicates) of all elements contained in the first or\n * second list, but not both. Duplication is determined according to the value\n * returned by applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [a] -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` or `list2`, but not both.\n * @see R.symmetricDifference, R.difference, R.differenceWith\n * @example\n *\n * const eqA = R.eqBy(R.prop('a'));\n * const l1 = [{a: 1}, {a: 2}, {a: 3}, {a: 4}];\n * const l2 = [{a: 3}, {a: 4}, {a: 5}, {a: 6}];\n * R.symmetricDifferenceWith(eqA, l1, l2); //=> [{a: 1}, {a: 2}, {a: 5}, {a: 6}]\n */\n\nvar symmetricDifferenceWith =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function symmetricDifferenceWith(pred, list1, list2) {\n return Object(_concat_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_differenceWith_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(pred, list1, list2), Object(_differenceWith_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(pred, list2, list1));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (symmetricDifferenceWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/symmetricDifferenceWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/tail.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/tail.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_checkForMethod.js */ \"./node_modules/ramda/es/internal/_checkForMethod.js\");\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n\n\n\n/**\n * Returns all but the first element of the given list or string (or object\n * with a `tail` method).\n *\n * Dispatches to the `slice` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.head, R.init, R.last\n * @example\n *\n * R.tail([1, 2, 3]); //=> [2, 3]\n * R.tail([1, 2]); //=> [2]\n * R.tail([1]); //=> []\n * R.tail([]); //=> []\n *\n * R.tail('abc'); //=> 'bc'\n * R.tail('ab'); //=> 'b'\n * R.tail('a'); //=> ''\n * R.tail(''); //=> ''\n */\n\nvar tail =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('tail',\n/*#__PURE__*/\nObject(_slice_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(1, Infinity)));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (tail);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/tail.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/take.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/take.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xtake_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xtake.js */ \"./node_modules/ramda/es/internal/_xtake.js\");\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n\n\n\n\n/**\n * Returns the first `n` elements of the given list, string, or\n * transducer/transformer (or object with a `take` method).\n *\n * Dispatches to the `take` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n\n * @param {*} list\n * @return {*}\n * @see R.drop\n * @example\n *\n * R.take(1, ['foo', 'bar', 'baz']); //=> ['foo']\n * R.take(2, ['foo', 'bar', 'baz']); //=> ['foo', 'bar']\n * R.take(3, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.take(4, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.take(3, 'ramda'); //=> 'ram'\n *\n * const personnel = [\n * 'Dave Brubeck',\n * 'Paul Desmond',\n * 'Eugene Wright',\n * 'Joe Morello',\n * 'Gerry Mulligan',\n * 'Bob Bates',\n * 'Joe Dodge',\n * 'Ron Crotty'\n * ];\n *\n * const takeFive = R.take(5);\n * takeFive(personnel);\n * //=> ['Dave Brubeck', 'Paul Desmond', 'Eugene Wright', 'Joe Morello', 'Gerry Mulligan']\n * @symb R.take(-1, [a, b]) = [a, b]\n * @symb R.take(0, [a, b]) = []\n * @symb R.take(1, [a, b]) = [a]\n * @symb R.take(2, [a, b]) = [a, b]\n */\n\nvar take =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['take'], _internal_xtake_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function take(n, xs) {\n return Object(_slice_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(0, n < 0 ? Infinity : n, xs);\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (take);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/take.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/takeLast.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/takeLast.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _drop_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./drop.js */ \"./node_modules/ramda/es/drop.js\");\n\n\n/**\n * Returns a new list containing the last `n` elements of the given list.\n * If `n > list.length`, returns a list of `list.length` elements.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n The number of elements to return.\n * @param {Array} xs The collection to consider.\n * @return {Array}\n * @see R.dropLast\n * @example\n *\n * R.takeLast(1, ['foo', 'bar', 'baz']); //=> ['baz']\n * R.takeLast(2, ['foo', 'bar', 'baz']); //=> ['bar', 'baz']\n * R.takeLast(3, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.takeLast(4, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.takeLast(3, 'ramda'); //=> 'mda'\n */\n\nvar takeLast =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function takeLast(n, xs) {\n return Object(_drop_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(n >= 0 ? xs.length - n : 0, xs);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (takeLast);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/takeLast.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/takeLastWhile.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/takeLastWhile.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n\n\n/**\n * Returns a new list containing the last `n` elements of a given list, passing\n * each value to the supplied predicate function, and terminating when the\n * predicate function returns `false`. Excludes the element that caused the\n * predicate function to fail. The predicate function is passed one argument:\n * *(value)*.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} fn The function called per iteration.\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array.\n * @see R.dropLastWhile, R.addIndex\n * @example\n *\n * const isNotOne = x => x !== 1;\n *\n * R.takeLastWhile(isNotOne, [1, 2, 3, 4]); //=> [2, 3, 4]\n *\n * R.takeLastWhile(x => x !== 'R' , 'Ramda'); //=> 'amda'\n */\n\nvar takeLastWhile =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function takeLastWhile(fn, xs) {\n var idx = xs.length - 1;\n\n while (idx >= 0 && fn(xs[idx])) {\n idx -= 1;\n }\n\n return Object(_slice_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(idx + 1, Infinity, xs);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (takeLastWhile);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/takeLastWhile.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/takeWhile.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/takeWhile.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xtakeWhile_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xtakeWhile.js */ \"./node_modules/ramda/es/internal/_xtakeWhile.js\");\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n\n\n\n\n/**\n * Returns a new list containing the first `n` elements of a given list,\n * passing each value to the supplied predicate function, and terminating when\n * the predicate function returns `false`. Excludes the element that caused the\n * predicate function to fail. The predicate function is passed one argument:\n * *(value)*.\n *\n * Dispatches to the `takeWhile` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} fn The function called per iteration.\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array.\n * @see R.dropWhile, R.transduce, R.addIndex\n * @example\n *\n * const isNotFour = x => x !== 4;\n *\n * R.takeWhile(isNotFour, [1, 2, 3, 4, 3, 2, 1]); //=> [1, 2, 3]\n *\n * R.takeWhile(x => x !== 'd' , 'Ramda'); //=> 'Ram'\n */\n\nvar takeWhile =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['takeWhile'], _internal_xtakeWhile_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function takeWhile(fn, xs) {\n var idx = 0;\n var len = xs.length;\n\n while (idx < len && fn(xs[idx])) {\n idx += 1;\n }\n\n return Object(_slice_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(0, idx, xs);\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (takeWhile);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/takeWhile.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/tap.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/tap.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xtap_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xtap.js */ \"./node_modules/ramda/es/internal/_xtap.js\");\n\n\n\n/**\n * Runs the given function with the supplied object, then returns the object.\n *\n * Acts as a transducer if a transformer is given as second parameter.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (a -> *) -> a -> a\n * @param {Function} fn The function to call with `x`. The return value of `fn` will be thrown away.\n * @param {*} x\n * @return {*} `x`.\n * @example\n *\n * const sayX = x => console.log('x is ' + x);\n * R.tap(sayX, 100); //=> 100\n * // logs 'x is 100'\n * @symb R.tap(f, a) = a\n */\n\nvar tap =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([], _internal_xtap_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function tap(fn, x) {\n fn(x);\n return x;\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (tap);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/tap.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/test.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/test.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_cloneRegExp_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_cloneRegExp.js */ \"./node_modules/ramda/es/internal/_cloneRegExp.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isRegExp_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isRegExp.js */ \"./node_modules/ramda/es/internal/_isRegExp.js\");\n/* harmony import */ var _toString_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./toString.js */ \"./node_modules/ramda/es/toString.js\");\n\n\n\n\n/**\n * Determines whether a given string matches a given regular expression.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category String\n * @sig RegExp -> String -> Boolean\n * @param {RegExp} pattern\n * @param {String} str\n * @return {Boolean}\n * @see R.match\n * @example\n *\n * R.test(/^x/, 'xyz'); //=> true\n * R.test(/^y/, 'xyz'); //=> false\n */\n\nvar test =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function test(pattern, str) {\n if (!Object(_internal_isRegExp_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(pattern)) {\n throw new TypeError('‘test’ requires a value of type RegExp as its first argument; received ' + Object(_toString_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(pattern));\n }\n\n return Object(_internal_cloneRegExp_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(pattern).test(str);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (test);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/test.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/thunkify.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/thunkify.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n\n/**\n * Creates a thunk out of a function. A thunk delays a calculation until\n * its result is needed, providing lazy evaluation of arguments.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig ((a, b, ..., j) -> k) -> (a, b, ..., j) -> (() -> k)\n * @param {Function} fn A function to wrap in a thunk\n * @return {Function} Expects arguments for `fn` and returns a new function\n * that, when called, applies those arguments to `fn`.\n * @see R.partial, R.partialRight\n * @example\n *\n * R.thunkify(R.identity)(42)(); //=> 42\n * R.thunkify((a, b) => a + b)(25, 17)(); //=> 42\n */\n\nvar thunkify =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function thunkify(fn) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(fn.length, function createThunk() {\n var fnArgs = arguments;\n return function invokeThunk() {\n return fn.apply(this, fnArgs);\n };\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (thunkify);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/thunkify.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/times.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/times.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Calls an input function `n` times, returning an array containing the results\n * of those function calls.\n *\n * `fn` is passed one argument: The current value of `n`, which begins at `0`\n * and is gradually incremented to `n - 1`.\n *\n * @func\n * @memberOf R\n * @since v0.2.3\n * @category List\n * @sig (Number -> a) -> Number -> [a]\n * @param {Function} fn The function to invoke. Passed one argument, the current value of `n`.\n * @param {Number} n A value between `0` and `n - 1`. Increments after each function call.\n * @return {Array} An array containing the return values of all calls to `fn`.\n * @see R.repeat\n * @example\n *\n * R.times(R.identity, 5); //=> [0, 1, 2, 3, 4]\n * @symb R.times(f, 0) = []\n * @symb R.times(f, 1) = [f(0)]\n * @symb R.times(f, 2) = [f(0), f(1)]\n */\n\nvar times =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function times(fn, n) {\n var len = Number(n);\n var idx = 0;\n var list;\n\n if (len < 0 || isNaN(len)) {\n throw new RangeError('n must be a non-negative number');\n }\n\n list = new Array(len);\n\n while (idx < len) {\n list[idx] = fn(idx);\n idx += 1;\n }\n\n return list;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (times);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/times.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/toLower.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/toLower.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _invoker_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./invoker.js */ \"./node_modules/ramda/es/invoker.js\");\n\n/**\n * The lower case version of a string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to lower case.\n * @return {String} The lower case version of `str`.\n * @see R.toUpper\n * @example\n *\n * R.toLower('XYZ'); //=> 'xyz'\n */\n\nvar toLower =\n/*#__PURE__*/\nObject(_invoker_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(0, 'toLowerCase');\n/* harmony default export */ __webpack_exports__[\"default\"] = (toLower);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/toLower.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/toPairs.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/toPairs.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n\n\n/**\n * Converts an object into an array of key, value arrays. Only the object's\n * own properties are used.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Object\n * @sig {String: *} -> [[String,*]]\n * @param {Object} obj The object to extract from\n * @return {Array} An array of key, value arrays from the object's own properties.\n * @see R.fromPairs\n * @example\n *\n * R.toPairs({a: 1, b: 2, c: 3}); //=> [['a', 1], ['b', 2], ['c', 3]]\n */\n\nvar toPairs =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function toPairs(obj) {\n var pairs = [];\n\n for (var prop in obj) {\n if (Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(prop, obj)) {\n pairs[pairs.length] = [prop, obj[prop]];\n }\n }\n\n return pairs;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (toPairs);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/toPairs.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/toPairsIn.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/toPairsIn.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Converts an object into an array of key, value arrays. The object's own\n * properties and prototype properties are used. Note that the order of the\n * output array is not guaranteed to be consistent across different JS\n * platforms.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Object\n * @sig {String: *} -> [[String,*]]\n * @param {Object} obj The object to extract from\n * @return {Array} An array of key, value arrays from the object's own\n * and prototype properties.\n * @example\n *\n * const F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * const f = new F();\n * R.toPairsIn(f); //=> [['x','X'], ['y','Y']]\n */\n\nvar toPairsIn =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function toPairsIn(obj) {\n var pairs = [];\n\n for (var prop in obj) {\n pairs[pairs.length] = [prop, obj[prop]];\n }\n\n return pairs;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (toPairsIn);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/toPairsIn.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/toString.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/toString.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_toString_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_toString.js */ \"./node_modules/ramda/es/internal/_toString.js\");\n\n\n/**\n * Returns the string representation of the given value. `eval`'ing the output\n * should result in a value equivalent to the input value. Many of the built-in\n * `toString` methods do not satisfy this requirement.\n *\n * If the given value is an `[object Object]` with a `toString` method other\n * than `Object.prototype.toString`, this method is invoked with no arguments\n * to produce the return value. This means user-defined constructor functions\n * can provide a suitable `toString` method. For example:\n *\n * function Point(x, y) {\n * this.x = x;\n * this.y = y;\n * }\n *\n * Point.prototype.toString = function() {\n * return 'new Point(' + this.x + ', ' + this.y + ')';\n * };\n *\n * R.toString(new Point(1, 2)); //=> 'new Point(1, 2)'\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category String\n * @sig * -> String\n * @param {*} val\n * @return {String}\n * @example\n *\n * R.toString(42); //=> '42'\n * R.toString('abc'); //=> '\"abc\"'\n * R.toString([1, 2, 3]); //=> '[1, 2, 3]'\n * R.toString({foo: 1, bar: 2, baz: 3}); //=> '{\"bar\": 2, \"baz\": 3, \"foo\": 1}'\n * R.toString(new Date('2001-02-03T04:05:06Z')); //=> 'new Date(\"2001-02-03T04:05:06.000Z\")'\n */\n\nvar toString =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function toString(val) {\n return Object(_internal_toString_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(val, []);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (toString);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/toString.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/toUpper.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/toUpper.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _invoker_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./invoker.js */ \"./node_modules/ramda/es/invoker.js\");\n\n/**\n * The upper case version of a string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to upper case.\n * @return {String} The upper case version of `str`.\n * @see R.toLower\n * @example\n *\n * R.toUpper('abc'); //=> 'ABC'\n */\n\nvar toUpper =\n/*#__PURE__*/\nObject(_invoker_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(0, 'toUpperCase');\n/* harmony default export */ __webpack_exports__[\"default\"] = (toUpper);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/toUpper.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/transduce.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/transduce.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _internal_xwrap_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_xwrap.js */ \"./node_modules/ramda/es/internal/_xwrap.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n\n\n\n/**\n * Initializes a transducer using supplied iterator function. Returns a single\n * item by iterating through the list, successively calling the transformed\n * iterator function and passing it an accumulator value and the current value\n * from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It will be\n * wrapped as a transformer to initialize the transducer. A transformer can be\n * passed directly in place of an iterator function. In both cases, iteration\n * may be stopped early with the [`R.reduced`](#reduced) function.\n *\n * A transducer is a function that accepts a transformer and returns a\n * transformer and can be composed directly.\n *\n * A transformer is an an object that provides a 2-arity reducing iterator\n * function, step, 0-arity initial value function, init, and 1-arity result\n * extraction function, result. The step function is used as the iterator\n * function in reduce. The result function is used to convert the final\n * accumulator into the return type and in most cases is\n * [`R.identity`](#identity). The init function can be used to provide an\n * initial accumulator, but is ignored by transduce.\n *\n * The iteration is performed with [`R.reduce`](#reduce) after initializing the transducer.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig (c -> c) -> ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} xf The transducer function. Receives a transformer and returns a transformer.\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array. Wrapped as transformer, if necessary, and used to\n * initialize the transducer\n * @param {*} acc The initial accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.reduced, R.into\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const transducer = R.compose(R.map(R.add(1)), R.take(2));\n * R.transduce(transducer, R.flip(R.append), [], numbers); //=> [2, 3]\n *\n * const isOdd = (x) => x % 2 === 1;\n * const firstOddTransducer = R.compose(R.filter(isOdd), R.take(1));\n * R.transduce(firstOddTransducer, R.flip(R.append), [], R.range(0, 100)); //=> [1]\n */\n\nvar transduce =\n/*#__PURE__*/\nObject(_curryN_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(4, function transduce(xf, fn, acc, list) {\n return Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(xf(typeof fn === 'function' ? Object(_internal_xwrap_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(fn) : fn), acc, list);\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (transduce);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/transduce.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/transpose.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/transpose.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Transposes the rows and columns of a 2D list.\n * When passed a list of `n` lists of length `x`,\n * returns a list of `x` lists of length `n`.\n *\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig [[a]] -> [[a]]\n * @param {Array} list A 2D list\n * @return {Array} A 2D list\n * @example\n *\n * R.transpose([[1, 'a'], [2, 'b'], [3, 'c']]) //=> [[1, 2, 3], ['a', 'b', 'c']]\n * R.transpose([[1, 2, 3], ['a', 'b', 'c']]) //=> [[1, 'a'], [2, 'b'], [3, 'c']]\n *\n * // If some of the rows are shorter than the following rows, their elements are skipped:\n * R.transpose([[10, 11], [20], [], [30, 31, 32]]) //=> [[10, 20, 30], [11, 31], [32]]\n * @symb R.transpose([[a], [b], [c]]) = [a, b, c]\n * @symb R.transpose([[a, b], [c, d]]) = [[a, c], [b, d]]\n * @symb R.transpose([[a, b], [c]]) = [[a, c], [b]]\n */\n\nvar transpose =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function transpose(outerlist) {\n var i = 0;\n var result = [];\n\n while (i < outerlist.length) {\n var innerlist = outerlist[i];\n var j = 0;\n\n while (j < innerlist.length) {\n if (typeof result[j] === 'undefined') {\n result[j] = [];\n }\n\n result[j].push(innerlist[j]);\n j += 1;\n }\n\n i += 1;\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (transpose);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/transpose.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/traverse.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/traverse.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n/* harmony import */ var _sequence_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./sequence.js */ \"./node_modules/ramda/es/sequence.js\");\n\n\n\n/**\n * Maps an [Applicative](https://github.com/fantasyland/fantasy-land#applicative)-returning\n * function over a [Traversable](https://github.com/fantasyland/fantasy-land#traversable),\n * then uses [`sequence`](#sequence) to transform the resulting Traversable of Applicative\n * into an Applicative of Traversable.\n *\n * Dispatches to the `traverse` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (Applicative f, Traversable t) => (a -> f a) -> (a -> f b) -> t a -> f (t b)\n * @param {Function} of\n * @param {Function} f\n * @param {*} traversable\n * @return {*}\n * @see R.sequence\n * @example\n *\n * // Returns `Maybe.Nothing` if the given divisor is `0`\n * const safeDiv = n => d => d === 0 ? Maybe.Nothing() : Maybe.Just(n / d)\n *\n * R.traverse(Maybe.of, safeDiv(10), [2, 4, 5]); //=> Maybe.Just([5, 2.5, 2])\n * R.traverse(Maybe.of, safeDiv(10), [2, 0, 5]); //=> Maybe.Nothing\n */\n\nvar traverse =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function traverse(of, f, traversable) {\n return typeof traversable['fantasy-land/traverse'] === 'function' ? traversable['fantasy-land/traverse'](f, of) : Object(_sequence_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(of, Object(_map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(f, traversable));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (traverse);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/traverse.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/trim.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/trim.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' + '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' + '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar hasProtoTrim = typeof String.prototype.trim === 'function';\n/**\n * Removes (strips) whitespace from both ends of the string.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to trim.\n * @return {String} Trimmed version of `str`.\n * @example\n *\n * R.trim(' xyz '); //=> 'xyz'\n * R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']\n */\n\nvar trim = !hasProtoTrim ||\n/*#__PURE__*/\nws.trim() || !\n/*#__PURE__*/\nzeroWidth.trim() ?\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n}) :\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function trim(str) {\n return str.trim();\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (trim);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/trim.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/tryCatch.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/tryCatch.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n\n/**\n * `tryCatch` takes two functions, a `tryer` and a `catcher`. The returned\n * function evaluates the `tryer`; if it does not throw, it simply returns the\n * result. If the `tryer` *does* throw, the returned function evaluates the\n * `catcher` function and returns its result. Note that for effective\n * composition with this function, both the `tryer` and `catcher` functions\n * must return the same type of results.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Function\n * @sig (...x -> a) -> ((e, ...x) -> a) -> (...x -> a)\n * @param {Function} tryer The function that may throw.\n * @param {Function} catcher The function that will be evaluated if `tryer` throws.\n * @return {Function} A new function that will catch exceptions and send then to the catcher.\n * @example\n *\n * R.tryCatch(R.prop('x'), R.F)({x: true}); //=> true\n * R.tryCatch(() => { throw 'foo'}, R.always('catched'))('bar') // => 'catched'\n * R.tryCatch(R.times(R.identity), R.always([]))('s') // => []\n * R.tryCatch(() => { throw 'this is not a valid value'}, (err, value)=>({error : err, value }))('bar') // => {'error': 'this is not a valid value', 'value': 'bar'}\n */\n\nvar tryCatch =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(function _tryCatch(tryer, catcher) {\n return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(tryer.length, function () {\n try {\n return tryer.apply(this, arguments);\n } catch (e) {\n return catcher.apply(this, Object(_internal_concat_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([e], arguments));\n }\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (tryCatch);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/tryCatch.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/type.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/type.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig (* -> {*}) -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n * R.type(() => {}); //=> \"Function\"\n * R.type(undefined); //=> \"Undefined\"\n */\n\nvar type =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (type);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/type.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/unapply.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/unapply.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Takes a function `fn`, which takes a single array argument, and returns a\n * function which:\n *\n * - takes any number of positional arguments;\n * - passes these arguments to `fn` as an array; and\n * - returns the result.\n *\n * In other words, `R.unapply` derives a variadic function from a function which\n * takes an array. `R.unapply` is the inverse of [`R.apply`](#apply).\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Function\n * @sig ([*...] -> a) -> (*... -> a)\n * @param {Function} fn\n * @return {Function}\n * @see R.apply\n * @example\n *\n * R.unapply(JSON.stringify)(1, 2, 3); //=> '[1,2,3]'\n * @symb R.unapply(f)(a, b) = f([a, b])\n */\n\nvar unapply =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function unapply(fn) {\n return function () {\n return fn(Array.prototype.slice.call(arguments, 0));\n };\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (unapply);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/unapply.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/unary.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/unary.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _nAry_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./nAry.js */ \"./node_modules/ramda/es/nAry.js\");\n\n\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly 1 parameter. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Function\n * @sig (* -> b) -> (a -> b)\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity 1.\n * @see R.binary, R.nAry\n * @example\n *\n * const takesTwoArgs = function(a, b) {\n * return [a, b];\n * };\n * takesTwoArgs.length; //=> 2\n * takesTwoArgs(1, 2); //=> [1, 2]\n *\n * const takesOneArg = R.unary(takesTwoArgs);\n * takesOneArg.length; //=> 1\n * // Only 1 argument is passed to the wrapped function\n * takesOneArg(1, 2); //=> [1, undefined]\n * @symb R.unary(f)(a, b, c) = f(a)\n */\n\nvar unary =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function unary(fn) {\n return Object(_nAry_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(1, fn);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (unary);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/unary.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/uncurryN.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/uncurryN.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n\n\n/**\n * Returns a function of arity `n` from a (manually) curried function.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Function\n * @sig Number -> (a -> b) -> (a -> c)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to uncurry.\n * @return {Function} A new function.\n * @see R.curry\n * @example\n *\n * const addFour = a => b => c => d => a + b + c + d;\n *\n * const uncurriedAddFour = R.uncurryN(4, addFour);\n * uncurriedAddFour(1, 2, 3, 4); //=> 10\n */\n\nvar uncurryN =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function uncurryN(depth, fn) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(depth, function () {\n var currentDepth = 1;\n var value = fn;\n var idx = 0;\n var endIdx;\n\n while (currentDepth <= depth && typeof value === 'function') {\n endIdx = currentDepth === depth ? arguments.length : idx + value.length;\n value = value.apply(this, Array.prototype.slice.call(arguments, idx, endIdx));\n currentDepth += 1;\n idx = endIdx;\n }\n\n return value;\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (uncurryN);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/uncurryN.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/unfold.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/unfold.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Builds a list from a seed value. Accepts an iterator function, which returns\n * either false to stop iteration or an array of length 2 containing the value\n * to add to the resulting list and the seed to be used in the next call to the\n * iterator function.\n *\n * The iterator function receives one argument: *(seed)*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig (a -> [b]) -> * -> [b]\n * @param {Function} fn The iterator function. receives one argument, `seed`, and returns\n * either false to quit iteration or an array of length two to proceed. The element\n * at index 0 of this array will be added to the resulting array, and the element\n * at index 1 will be passed to the next call to `fn`.\n * @param {*} seed The seed value.\n * @return {Array} The final list.\n * @example\n *\n * const f = n => n > 50 ? false : [-n, n + 10];\n * R.unfold(f, 10); //=> [-10, -20, -30, -40, -50]\n * @symb R.unfold(f, x) = [f(x)[0], f(f(x)[1])[0], f(f(f(x)[1])[1])[0], ...]\n */\n\nvar unfold =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function unfold(fn, seed) {\n var pair = fn(seed);\n var result = [];\n\n while (pair && pair.length) {\n result[result.length] = pair[0];\n pair = fn(pair[1]);\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (unfold);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/unfold.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/union.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/union.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _compose_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./compose.js */ \"./node_modules/ramda/es/compose.js\");\n/* harmony import */ var _uniq_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./uniq.js */ \"./node_modules/ramda/es/uniq.js\");\n\n\n\n\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of the elements\n * of each list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} as The first list.\n * @param {Array} bs The second list.\n * @return {Array} The first and second lists concatenated, with\n * duplicates removed.\n * @example\n *\n * R.union([1, 2, 3], [2, 3, 4]); //=> [1, 2, 3, 4]\n */\n\nvar union =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n/*#__PURE__*/\nObject(_compose_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_uniq_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (union);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/union.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/unionWith.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/unionWith.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _uniqWith_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./uniqWith.js */ \"./node_modules/ramda/es/uniqWith.js\");\n\n\n\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of the elements\n * of each list. Duplication is determined according to the value returned by\n * applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [*] -> [*] -> [*]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The first and second lists concatenated, with\n * duplicates removed.\n * @see R.union\n * @example\n *\n * const l1 = [{a: 1}, {a: 2}];\n * const l2 = [{a: 1}, {a: 4}];\n * R.unionWith(R.eqBy(R.prop('a')), l1, l2); //=> [{a: 1}, {a: 2}, {a: 4}]\n */\n\nvar unionWith =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function unionWith(pred, list1, list2) {\n return Object(_uniqWith_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(pred, Object(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(list1, list2));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (unionWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/unionWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/uniq.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/uniq.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./identity.js */ \"./node_modules/ramda/es/identity.js\");\n/* harmony import */ var _uniqBy_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uniqBy.js */ \"./node_modules/ramda/es/uniqBy.js\");\n\n\n/**\n * Returns a new list containing only one copy of each element in the original\n * list. [`R.equals`](#equals) is used to determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniq([1, 1, 2, 1]); //=> [1, 2]\n * R.uniq([1, '1']); //=> [1, '1']\n * R.uniq([[42], [42]]); //=> [[42]]\n */\n\nvar uniq =\n/*#__PURE__*/\nObject(_uniqBy_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_identity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (uniq);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/uniq.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/uniqBy.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/uniqBy.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_Set_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_Set.js */ \"./node_modules/ramda/es/internal/_Set.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Returns a new list containing only one copy of each element in the original\n * list, based upon the value returned by applying the supplied function to\n * each list element. Prefers the first item if the supplied function produces\n * the same value on two items. [`R.equals`](#equals) is used for comparison.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> b) -> [a] -> [a]\n * @param {Function} fn A function used to produce a value to use during comparisons.\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniqBy(Math.abs, [-1, -5, 2, 10, 1, 2]); //=> [-1, -5, 2, 10]\n */\n\nvar uniqBy =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function uniqBy(fn, list) {\n var set = new _internal_Set_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]();\n var result = [];\n var idx = 0;\n var appliedItem, item;\n\n while (idx < list.length) {\n item = list[idx];\n appliedItem = fn(item);\n\n if (set.add(appliedItem)) {\n result.push(item);\n }\n\n idx += 1;\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (uniqBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/uniqBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/uniqWith.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/uniqWith.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_includesWith_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_includesWith.js */ \"./node_modules/ramda/es/internal/_includesWith.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Returns a new list containing only one copy of each element in the original\n * list, based upon the value returned by applying the supplied predicate to\n * two list elements. Prefers the first item if two items compare equal based\n * on the predicate.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category List\n * @sig ((a, a) -> Boolean) -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * const strEq = R.eqBy(String);\n * R.uniqWith(strEq)([1, '1', 2, 1]); //=> [1, 2]\n * R.uniqWith(strEq)([{}, {}]); //=> [{}]\n * R.uniqWith(strEq)([1, '1', 1]); //=> [1]\n * R.uniqWith(strEq)(['1', 1, 1]); //=> ['1']\n */\n\nvar uniqWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function uniqWith(pred, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n var item;\n\n while (idx < len) {\n item = list[idx];\n\n if (!Object(_internal_includesWith_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(pred, item, result)) {\n result[result.length] = item;\n }\n\n idx += 1;\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (uniqWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/uniqWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/unless.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/unless.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Tests the final argument by passing it to the given predicate function. If\n * the predicate is not satisfied, the function will return the result of\n * calling the `whenFalseFn` function with the same argument. If the predicate\n * is satisfied, the argument is returned as is.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} whenFalseFn A function to invoke when the `pred` evaluates\n * to a falsy value.\n * @param {*} x An object to test with the `pred` function and\n * pass to `whenFalseFn` if necessary.\n * @return {*} Either `x` or the result of applying `x` to `whenFalseFn`.\n * @see R.ifElse, R.when, R.cond\n * @example\n *\n * let safeInc = R.unless(R.isNil, R.inc);\n * safeInc(null); //=> null\n * safeInc(1); //=> 2\n */\n\nvar unless =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function unless(pred, whenFalseFn, x) {\n return pred(x) ? x : whenFalseFn(x);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (unless);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/unless.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/unnest.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/unnest.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_identity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_identity.js */ \"./node_modules/ramda/es/internal/_identity.js\");\n/* harmony import */ var _chain_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./chain.js */ \"./node_modules/ramda/es/chain.js\");\n\n\n/**\n * Shorthand for `R.chain(R.identity)`, which removes one level of nesting from\n * any [Chain](https://github.com/fantasyland/fantasy-land#chain).\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig Chain c => c (c a) -> c a\n * @param {*} list\n * @return {*}\n * @see R.flatten, R.chain\n * @example\n *\n * R.unnest([1, [2], [[3]]]); //=> [1, 2, [3]]\n * R.unnest([[1, 2], [3, 4], [5, 6]]); //=> [1, 2, 3, 4, 5, 6]\n */\n\nvar unnest =\n/*#__PURE__*/\nObject(_chain_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_internal_identity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (unnest);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/unnest.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/until.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/until.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Takes a predicate, a transformation function, and an initial value,\n * and returns a value of the same type as the initial value.\n * It does so by applying the transformation until the predicate is satisfied,\n * at which point it returns the satisfactory value.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} fn The iterator function\n * @param {*} init Initial value\n * @return {*} Final value that satisfies predicate\n * @example\n *\n * R.until(R.gt(R.__, 100), R.multiply(2))(1) // => 128\n */\n\nvar until =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function until(pred, fn, init) {\n var val = init;\n\n while (!pred(val)) {\n val = fn(val);\n }\n\n return val;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (until);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/until.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/update.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/update.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _adjust_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./adjust.js */ \"./node_modules/ramda/es/adjust.js\");\n/* harmony import */ var _always_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./always.js */ \"./node_modules/ramda/es/always.js\");\n\n\n\n/**\n * Returns a new copy of the array with the element at the provided index\n * replaced with the given value.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig Number -> a -> [a] -> [a]\n * @param {Number} idx The index to update.\n * @param {*} x The value to exist at the given index of the returned array.\n * @param {Array|Arguments} list The source array-like object to be updated.\n * @return {Array} A copy of `list` with the value at index `idx` replaced with `x`.\n * @see R.adjust\n * @example\n *\n * R.update(1, '_', ['a', 'b', 'c']); //=> ['a', '_', 'c']\n * R.update(-1, '_', ['a', 'b', 'c']); //=> ['a', 'b', '_']\n * @symb R.update(-1, a, [b, c]) = [b, a]\n * @symb R.update(0, a, [b, c]) = [a, c]\n * @symb R.update(1, a, [b, c]) = [b, a]\n */\n\nvar update =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function update(idx, x, list) {\n return Object(_adjust_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(idx, Object(_always_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(x), list);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (update);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/update.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/useWith.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/useWith.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n\n\n/**\n * Accepts a function `fn` and a list of transformer functions and returns a\n * new curried function. When the new function is invoked, it calls the\n * function `fn` with parameters consisting of the result of calling each\n * supplied handler on successive arguments to the new function.\n *\n * If more arguments are passed to the returned function than transformer\n * functions, those arguments are passed directly to `fn` as additional\n * parameters. If you expect additional arguments that don't need to be\n * transformed, although you can ignore them, it's best to pass an identity\n * function so that the new function reports the correct arity.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((x1, x2, ...) -> z) -> [(a -> x1), (b -> x2), ...] -> (a -> b -> ... -> z)\n * @param {Function} fn The function to wrap.\n * @param {Array} transformers A list of transformer functions\n * @return {Function} The wrapped function.\n * @see R.converge\n * @example\n *\n * R.useWith(Math.pow, [R.identity, R.identity])(3, 4); //=> 81\n * R.useWith(Math.pow, [R.identity, R.identity])(3)(4); //=> 81\n * R.useWith(Math.pow, [R.dec, R.inc])(3, 4); //=> 32\n * R.useWith(Math.pow, [R.dec, R.inc])(3)(4); //=> 32\n * @symb R.useWith(f, [g, h])(a, b) = f(g(a), h(b))\n */\n\nvar useWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function useWith(fn, transformers) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(transformers.length, function () {\n var args = [];\n var idx = 0;\n\n while (idx < transformers.length) {\n args.push(transformers[idx].call(this, arguments[idx]));\n idx += 1;\n }\n\n return fn.apply(this, args.concat(Array.prototype.slice.call(arguments, transformers.length)));\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (useWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/useWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/values.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/values.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/ramda/es/keys.js\");\n\n\n/**\n * Returns a list of all the enumerable own properties of the supplied object.\n * Note that the order of the output array is not guaranteed across different\n * JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own properties.\n * @see R.valuesIn, R.keys\n * @example\n *\n * R.values({a: 1, b: 2, c: 3}); //=> [1, 2, 3]\n */\n\nvar values =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function values(obj) {\n var props = Object(_keys_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(obj);\n var len = props.length;\n var vals = [];\n var idx = 0;\n\n while (idx < len) {\n vals[idx] = obj[props[idx]];\n idx += 1;\n }\n\n return vals;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (values);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/values.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/valuesIn.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/valuesIn.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Returns a list of all the properties, including prototype properties, of the\n * supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own and prototype properties.\n * @see R.values, R.keysIn\n * @example\n *\n * const F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * const f = new F();\n * R.valuesIn(f); //=> ['X', 'Y']\n */\n\nvar valuesIn =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function valuesIn(obj) {\n var prop;\n var vs = [];\n\n for (prop in obj) {\n vs[vs.length] = obj[prop];\n }\n\n return vs;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (valuesIn);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/valuesIn.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/view.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/view.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n // `Const` is a functor that effectively ignores the function given to `map`.\n\nvar Const = function (x) {\n return {\n value: x,\n 'fantasy-land/map': function () {\n return this;\n }\n };\n};\n/**\n * Returns a \"view\" of the given data structure, determined by the given lens.\n * The lens's focus determines which portion of the data structure is visible.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> s -> a\n * @param {Lens} lens\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.view(xLens, {x: 4, y: 2}); //=> 4\n */\n\n\nvar view =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function view(lens, x) {\n // Using `Const` effectively ignores the setter function of the `lens`,\n // leaving the value returned by the getter function unmodified.\n return lens(Const)(x).value;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (view);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/view.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/when.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/when.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Tests the final argument by passing it to the given predicate function. If\n * the predicate is satisfied, the function will return the result of calling\n * the `whenTrueFn` function with the same argument. If the predicate is not\n * satisfied, the argument is returned as is.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} whenTrueFn A function to invoke when the `condition`\n * evaluates to a truthy value.\n * @param {*} x An object to test with the `pred` function and\n * pass to `whenTrueFn` if necessary.\n * @return {*} Either `x` or the result of applying `x` to `whenTrueFn`.\n * @see R.ifElse, R.unless, R.cond\n * @example\n *\n * // truncate :: String -> String\n * const truncate = R.when(\n * R.propSatisfies(R.gt(R.__, 10), 'length'),\n * R.pipe(R.take(10), R.append('…'), R.join(''))\n * );\n * truncate('12345'); //=> '12345'\n * truncate('0123456789ABC'); //=> '0123456789…'\n */\n\nvar when =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function when(pred, whenTrueFn, x) {\n return pred(x) ? whenTrueFn(x) : x;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (when);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/when.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/where.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/where.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n\n\n/**\n * Takes a spec object and a test object; returns true if the test satisfies\n * the spec. Each of the spec's own properties must be a predicate function.\n * Each predicate is applied to the value of the corresponding property of the\n * test object. `where` returns true if all the predicates return true, false\n * otherwise.\n *\n * `where` is well suited to declaratively expressing constraints for other\n * functions such as [`filter`](#filter) and [`find`](#find).\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category Object\n * @sig {String: (* -> Boolean)} -> {String: *} -> Boolean\n * @param {Object} spec\n * @param {Object} testObj\n * @return {Boolean}\n * @see R.propSatisfies, R.whereEq\n * @example\n *\n * // pred :: Object -> Boolean\n * const pred = R.where({\n * a: R.equals('foo'),\n * b: R.complement(R.equals('bar')),\n * x: R.gt(R.__, 10),\n * y: R.lt(R.__, 20)\n * });\n *\n * pred({a: 'foo', b: 'xxx', x: 11, y: 19}); //=> true\n * pred({a: 'xxx', b: 'xxx', x: 11, y: 19}); //=> false\n * pred({a: 'foo', b: 'bar', x: 11, y: 19}); //=> false\n * pred({a: 'foo', b: 'xxx', x: 10, y: 19}); //=> false\n * pred({a: 'foo', b: 'xxx', x: 11, y: 20}); //=> false\n */\n\nvar where =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function where(spec, testObj) {\n for (var prop in spec) {\n if (Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(prop, spec) && !spec[prop](testObj[prop])) {\n return false;\n }\n }\n\n return true;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (where);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/where.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/whereEq.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/whereEq.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n/* harmony import */ var _where_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./where.js */ \"./node_modules/ramda/es/where.js\");\n\n\n\n\n/**\n * Takes a spec object and a test object; returns true if the test satisfies\n * the spec, false otherwise. An object satisfies the spec if, for each of the\n * spec's own properties, accessing that property of the object gives the same\n * value (in [`R.equals`](#equals) terms) as accessing that property of the\n * spec.\n *\n * `whereEq` is a specialization of [`where`](#where).\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @sig {String: *} -> {String: *} -> Boolean\n * @param {Object} spec\n * @param {Object} testObj\n * @return {Boolean}\n * @see R.propEq, R.where\n * @example\n *\n * // pred :: Object -> Boolean\n * const pred = R.whereEq({a: 1, b: 2});\n *\n * pred({a: 1}); //=> false\n * pred({a: 1, b: 2}); //=> true\n * pred({a: 1, b: 2, c: 3}); //=> true\n * pred({a: 1, b: 1}); //=> false\n */\n\nvar whereEq =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function whereEq(spec, testObj) {\n return Object(_where_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(Object(_map_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_equals_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], spec), testObj);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (whereEq);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/whereEq.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/without.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/without.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_includes.js */ \"./node_modules/ramda/es/internal/_includes.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _flip_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./flip.js */ \"./node_modules/ramda/es/flip.js\");\n/* harmony import */ var _reject_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./reject.js */ \"./node_modules/ramda/es/reject.js\");\n\n\n\n\n/**\n * Returns a new list without values in the first argument.\n * [`R.equals`](#equals) is used to determine equality.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig [a] -> [a] -> [a]\n * @param {Array} list1 The values to be removed from `list2`.\n * @param {Array} list2 The array to remove values from.\n * @return {Array} The new array without values in `list1`.\n * @see R.transduce, R.difference, R.remove\n * @example\n *\n * R.without([1, 2], [1, 2, 1, 3, 4]); //=> [3, 4]\n */\n\nvar without =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (xs, list) {\n return Object(_reject_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(Object(_flip_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_internal_includes_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(xs), list);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (without);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/without.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/xor.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/xor.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Exclusive disjunction logical operation.\n * Returns `true` if one of the arguments is truthy and the other is falsy.\n * Otherwise, it returns `false`.\n *\n * @func\n * @memberOf R\n * @since v0.27.0\n * @category Logic\n * @sig a -> b -> Boolean\n * @param {Any} a\n * @param {Any} b\n * @return {Boolean} true if one of the arguments is truthy and the other is falsy\n * @see R.or, R.and\n * @example\n *\n * R.xor(true, true); //=> false\n * R.xor(true, false); //=> true\n * R.xor(false, true); //=> true\n * R.xor(false, false); //=> false\n */\n\nvar xor =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function xor(a, b) {\n return Boolean(!a ^ !b);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (xor);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/xor.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/xprod.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/xprod.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Creates a new list out of the two supplied by creating each possible pair\n * from the lists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b] -> [[a,b]]\n * @param {Array} as The first list.\n * @param {Array} bs The second list.\n * @return {Array} The list made by combining each possible pair from\n * `as` and `bs` into pairs (`[a, b]`).\n * @example\n *\n * R.xprod([1, 2], ['a', 'b']); //=> [[1, 'a'], [1, 'b'], [2, 'a'], [2, 'b']]\n * @symb R.xprod([a, b], [c, d]) = [[a, c], [a, d], [b, c], [b, d]]\n */\n\nvar xprod =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function xprod(a, b) {\n // = xprodWith(prepend); (takes about 3 times as long...)\n var idx = 0;\n var ilen = a.length;\n var j;\n var jlen = b.length;\n var result = [];\n\n while (idx < ilen) {\n j = 0;\n\n while (j < jlen) {\n result[result.length] = [a[idx], b[j]];\n j += 1;\n }\n\n idx += 1;\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (xprod);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/xprod.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/zip.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/zip.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Creates a new list out of the two supplied by pairing up equally-positioned\n * items from both lists. The returned list is truncated to the length of the\n * shorter of the two input lists.\n * Note: `zip` is equivalent to `zipWith(function(a, b) { return [a, b] })`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b] -> [[a,b]]\n * @param {Array} list1 The first array to consider.\n * @param {Array} list2 The second array to consider.\n * @return {Array} The list made by pairing up same-indexed elements of `list1` and `list2`.\n * @example\n *\n * R.zip([1, 2, 3], ['a', 'b', 'c']); //=> [[1, 'a'], [2, 'b'], [3, 'c']]\n * @symb R.zip([a, b, c], [d, e, f]) = [[a, d], [b, e], [c, f]]\n */\n\nvar zip =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function zip(a, b) {\n var rv = [];\n var idx = 0;\n var len = Math.min(a.length, b.length);\n\n while (idx < len) {\n rv[idx] = [a[idx], b[idx]];\n idx += 1;\n }\n\n return rv;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (zip);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/zip.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/zipObj.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/zipObj.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Creates a new object out of a list of keys and a list of values.\n * Key/value pairing is truncated to the length of the shorter of the two lists.\n * Note: `zipObj` is equivalent to `pipe(zip, fromPairs)`.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [String] -> [*] -> {String: *}\n * @param {Array} keys The array that will be properties on the output object.\n * @param {Array} values The list of values on the output object.\n * @return {Object} The object made by pairing up same-indexed elements of `keys` and `values`.\n * @example\n *\n * R.zipObj(['a', 'b', 'c'], [1, 2, 3]); //=> {a: 1, b: 2, c: 3}\n */\n\nvar zipObj =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function zipObj(keys, values) {\n var idx = 0;\n var len = Math.min(keys.length, values.length);\n var out = {};\n\n while (idx < len) {\n out[keys[idx]] = values[idx];\n idx += 1;\n }\n\n return out;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (zipObj);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/zipObj.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/zipWith.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/zipWith.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Creates a new list out of the two supplied by applying the function to each\n * equally-positioned pair in the lists. The returned list is truncated to the\n * length of the shorter of the two input lists.\n *\n * @function\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> c) -> [a] -> [b] -> [c]\n * @param {Function} fn The function used to combine the two elements into one value.\n * @param {Array} list1 The first array to consider.\n * @param {Array} list2 The second array to consider.\n * @return {Array} The list made by combining same-indexed elements of `list1` and `list2`\n * using `fn`.\n * @example\n *\n * const f = (x, y) => {\n * // ...\n * };\n * R.zipWith(f, [1, 2, 3], ['a', 'b', 'c']);\n * //=> [f(1, 'a'), f(2, 'b'), f(3, 'c')]\n * @symb R.zipWith(fn, [a, b, c], [d, e, f]) = [fn(a, d), fn(b, e), fn(c, f)]\n */\n\nvar zipWith =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function zipWith(fn, a, b) {\n var rv = [];\n var idx = 0;\n var len = Math.min(a.length, b.length);\n\n while (idx < len) {\n rv[idx] = fn(a[idx], b[idx]);\n idx += 1;\n }\n\n return rv;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (zipWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/zipWith.js?"); + +/***/ }), + +/***/ "./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js": +/*!*************************************************************************!*\ + !*** ./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js ***! + \*************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (index);\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/ajax/index.js": +/*!***************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/ajax/index.js ***! + \***************************************************/ +/*! exports provided: ajax, AjaxResponse, AjaxError, AjaxTimeoutError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_observable_dom_ajax__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../internal/observable/dom/ajax */ \"./node_modules/rxjs/dist/esm5/internal/observable/dom/ajax.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ajax\", function() { return _internal_observable_dom_ajax__WEBPACK_IMPORTED_MODULE_0__[\"ajax\"]; });\n\n/* harmony import */ var _internal_observable_dom_AjaxObservable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../internal/observable/dom/AjaxObservable */ \"./node_modules/rxjs/dist/esm5/internal/observable/dom/AjaxObservable.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AjaxResponse\", function() { return _internal_observable_dom_AjaxObservable__WEBPACK_IMPORTED_MODULE_1__[\"AjaxResponse\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AjaxError\", function() { return _internal_observable_dom_AjaxObservable__WEBPACK_IMPORTED_MODULE_1__[\"AjaxError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AjaxTimeoutError\", function() { return _internal_observable_dom_AjaxObservable__WEBPACK_IMPORTED_MODULE_1__[\"AjaxTimeoutError\"]; });\n\n\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/ajax/index.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/index.js": +/*!**********************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/index.js ***! + \**********************************************/ +/*! exports provided: Observable, ConnectableObservable, GroupedObservable, observable, animationFrames, Subject, BehaviorSubject, ReplaySubject, AsyncSubject, asapScheduler, asyncScheduler, queueScheduler, animationFrameScheduler, VirtualTimeScheduler, VirtualAction, Scheduler, Subscription, Subscriber, Notification, NotificationKind, pipe, noop, identity, isObservable, lastValueFrom, firstValueFrom, ArgumentOutOfRangeError, EmptyError, ObjectUnsubscribedError, UnsubscriptionError, TimeoutError, bindCallback, bindNodeCallback, combineLatest, concat, defer, empty, forkJoin, from, fromEvent, fromEventPattern, generate, iif, interval, merge, never, of, onErrorResumeNext, pairs, partition, race, range, throwError, timer, using, zip, scheduled, EMPTY, NEVER, config */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Observable\", function() { return _internal_Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"]; });\n\n/* harmony import */ var _internal_observable_ConnectableObservable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/observable/ConnectableObservable */ \"./node_modules/rxjs/dist/esm5/internal/observable/ConnectableObservable.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ConnectableObservable\", function() { return _internal_observable_ConnectableObservable__WEBPACK_IMPORTED_MODULE_1__[\"ConnectableObservable\"]; });\n\n/* harmony import */ var _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/operators/groupBy */ \"./node_modules/rxjs/dist/esm5/internal/operators/groupBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"GroupedObservable\", function() { return _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_2__[\"GroupedObservable\"]; });\n\n/* harmony import */ var _internal_symbol_observable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/symbol/observable */ \"./node_modules/rxjs/dist/esm5/internal/symbol/observable.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"observable\", function() { return _internal_symbol_observable__WEBPACK_IMPORTED_MODULE_3__[\"observable\"]; });\n\n/* harmony import */ var _internal_observable_dom_animationFrames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./internal/observable/dom/animationFrames */ \"./node_modules/rxjs/dist/esm5/internal/observable/dom/animationFrames.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"animationFrames\", function() { return _internal_observable_dom_animationFrames__WEBPACK_IMPORTED_MODULE_4__[\"animationFrames\"]; });\n\n/* harmony import */ var _internal_Subject__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./internal/Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Subject\", function() { return _internal_Subject__WEBPACK_IMPORTED_MODULE_5__[\"Subject\"]; });\n\n/* harmony import */ var _internal_BehaviorSubject__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./internal/BehaviorSubject */ \"./node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BehaviorSubject\", function() { return _internal_BehaviorSubject__WEBPACK_IMPORTED_MODULE_6__[\"BehaviorSubject\"]; });\n\n/* harmony import */ var _internal_ReplaySubject__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./internal/ReplaySubject */ \"./node_modules/rxjs/dist/esm5/internal/ReplaySubject.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ReplaySubject\", function() { return _internal_ReplaySubject__WEBPACK_IMPORTED_MODULE_7__[\"ReplaySubject\"]; });\n\n/* harmony import */ var _internal_AsyncSubject__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./internal/AsyncSubject */ \"./node_modules/rxjs/dist/esm5/internal/AsyncSubject.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AsyncSubject\", function() { return _internal_AsyncSubject__WEBPACK_IMPORTED_MODULE_8__[\"AsyncSubject\"]; });\n\n/* harmony import */ var _internal_scheduler_asap__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./internal/scheduler/asap */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/asap.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"asapScheduler\", function() { return _internal_scheduler_asap__WEBPACK_IMPORTED_MODULE_9__[\"asap\"]; });\n\n/* harmony import */ var _internal_scheduler_async__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./internal/scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"asyncScheduler\", function() { return _internal_scheduler_async__WEBPACK_IMPORTED_MODULE_10__[\"async\"]; });\n\n/* harmony import */ var _internal_scheduler_queue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./internal/scheduler/queue */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/queue.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"queueScheduler\", function() { return _internal_scheduler_queue__WEBPACK_IMPORTED_MODULE_11__[\"queue\"]; });\n\n/* harmony import */ var _internal_scheduler_animationFrame__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./internal/scheduler/animationFrame */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/animationFrame.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"animationFrameScheduler\", function() { return _internal_scheduler_animationFrame__WEBPACK_IMPORTED_MODULE_12__[\"animationFrame\"]; });\n\n/* harmony import */ var _internal_scheduler_VirtualTimeScheduler__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./internal/scheduler/VirtualTimeScheduler */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/VirtualTimeScheduler.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"VirtualTimeScheduler\", function() { return _internal_scheduler_VirtualTimeScheduler__WEBPACK_IMPORTED_MODULE_13__[\"VirtualTimeScheduler\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"VirtualAction\", function() { return _internal_scheduler_VirtualTimeScheduler__WEBPACK_IMPORTED_MODULE_13__[\"VirtualAction\"]; });\n\n/* harmony import */ var _internal_Scheduler__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./internal/Scheduler */ \"./node_modules/rxjs/dist/esm5/internal/Scheduler.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Scheduler\", function() { return _internal_Scheduler__WEBPACK_IMPORTED_MODULE_14__[\"Scheduler\"]; });\n\n/* harmony import */ var _internal_Subscription__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./internal/Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Subscription\", function() { return _internal_Subscription__WEBPACK_IMPORTED_MODULE_15__[\"Subscription\"]; });\n\n/* harmony import */ var _internal_Subscriber__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./internal/Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Subscriber\", function() { return _internal_Subscriber__WEBPACK_IMPORTED_MODULE_16__[\"Subscriber\"]; });\n\n/* harmony import */ var _internal_Notification__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./internal/Notification */ \"./node_modules/rxjs/dist/esm5/internal/Notification.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Notification\", function() { return _internal_Notification__WEBPACK_IMPORTED_MODULE_17__[\"Notification\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NotificationKind\", function() { return _internal_Notification__WEBPACK_IMPORTED_MODULE_17__[\"NotificationKind\"]; });\n\n/* harmony import */ var _internal_util_pipe__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./internal/util/pipe */ \"./node_modules/rxjs/dist/esm5/internal/util/pipe.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pipe\", function() { return _internal_util_pipe__WEBPACK_IMPORTED_MODULE_18__[\"pipe\"]; });\n\n/* harmony import */ var _internal_util_noop__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./internal/util/noop */ \"./node_modules/rxjs/dist/esm5/internal/util/noop.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"noop\", function() { return _internal_util_noop__WEBPACK_IMPORTED_MODULE_19__[\"noop\"]; });\n\n/* harmony import */ var _internal_util_identity__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./internal/util/identity */ \"./node_modules/rxjs/dist/esm5/internal/util/identity.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"identity\", function() { return _internal_util_identity__WEBPACK_IMPORTED_MODULE_20__[\"identity\"]; });\n\n/* harmony import */ var _internal_util_isObservable__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./internal/util/isObservable */ \"./node_modules/rxjs/dist/esm5/internal/util/isObservable.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isObservable\", function() { return _internal_util_isObservable__WEBPACK_IMPORTED_MODULE_21__[\"isObservable\"]; });\n\n/* harmony import */ var _internal_lastValueFrom__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./internal/lastValueFrom */ \"./node_modules/rxjs/dist/esm5/internal/lastValueFrom.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lastValueFrom\", function() { return _internal_lastValueFrom__WEBPACK_IMPORTED_MODULE_22__[\"lastValueFrom\"]; });\n\n/* harmony import */ var _internal_firstValueFrom__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./internal/firstValueFrom */ \"./node_modules/rxjs/dist/esm5/internal/firstValueFrom.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"firstValueFrom\", function() { return _internal_firstValueFrom__WEBPACK_IMPORTED_MODULE_23__[\"firstValueFrom\"]; });\n\n/* harmony import */ var _internal_util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./internal/util/ArgumentOutOfRangeError */ \"./node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ArgumentOutOfRangeError\", function() { return _internal_util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_24__[\"ArgumentOutOfRangeError\"]; });\n\n/* harmony import */ var _internal_util_EmptyError__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./internal/util/EmptyError */ \"./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EmptyError\", function() { return _internal_util_EmptyError__WEBPACK_IMPORTED_MODULE_25__[\"EmptyError\"]; });\n\n/* harmony import */ var _internal_util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./internal/util/ObjectUnsubscribedError */ \"./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ObjectUnsubscribedError\", function() { return _internal_util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_26__[\"ObjectUnsubscribedError\"]; });\n\n/* harmony import */ var _internal_util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./internal/util/UnsubscriptionError */ \"./node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"UnsubscriptionError\", function() { return _internal_util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_27__[\"UnsubscriptionError\"]; });\n\n/* harmony import */ var _internal_util_TimeoutError__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./internal/util/TimeoutError */ \"./node_modules/rxjs/dist/esm5/internal/util/TimeoutError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TimeoutError\", function() { return _internal_util_TimeoutError__WEBPACK_IMPORTED_MODULE_28__[\"TimeoutError\"]; });\n\n/* harmony import */ var _internal_observable_bindCallback__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./internal/observable/bindCallback */ \"./node_modules/rxjs/dist/esm5/internal/observable/bindCallback.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bindCallback\", function() { return _internal_observable_bindCallback__WEBPACK_IMPORTED_MODULE_29__[\"bindCallback\"]; });\n\n/* harmony import */ var _internal_observable_bindNodeCallback__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./internal/observable/bindNodeCallback */ \"./node_modules/rxjs/dist/esm5/internal/observable/bindNodeCallback.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bindNodeCallback\", function() { return _internal_observable_bindNodeCallback__WEBPACK_IMPORTED_MODULE_30__[\"bindNodeCallback\"]; });\n\n/* harmony import */ var _internal_observable_combineLatest__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./internal/observable/combineLatest */ \"./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"combineLatest\", function() { return _internal_observable_combineLatest__WEBPACK_IMPORTED_MODULE_31__[\"combineLatest\"]; });\n\n/* harmony import */ var _internal_observable_concat__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./internal/observable/concat */ \"./node_modules/rxjs/dist/esm5/internal/observable/concat.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"concat\", function() { return _internal_observable_concat__WEBPACK_IMPORTED_MODULE_32__[\"concat\"]; });\n\n/* harmony import */ var _internal_observable_defer__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./internal/observable/defer */ \"./node_modules/rxjs/dist/esm5/internal/observable/defer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"defer\", function() { return _internal_observable_defer__WEBPACK_IMPORTED_MODULE_33__[\"defer\"]; });\n\n/* harmony import */ var _internal_observable_empty__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./internal/observable/empty */ \"./node_modules/rxjs/dist/esm5/internal/observable/empty.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"empty\", function() { return _internal_observable_empty__WEBPACK_IMPORTED_MODULE_34__[\"empty\"]; });\n\n/* harmony import */ var _internal_observable_forkJoin__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./internal/observable/forkJoin */ \"./node_modules/rxjs/dist/esm5/internal/observable/forkJoin.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"forkJoin\", function() { return _internal_observable_forkJoin__WEBPACK_IMPORTED_MODULE_35__[\"forkJoin\"]; });\n\n/* harmony import */ var _internal_observable_from__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./internal/observable/from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"from\", function() { return _internal_observable_from__WEBPACK_IMPORTED_MODULE_36__[\"from\"]; });\n\n/* harmony import */ var _internal_observable_fromEvent__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./internal/observable/fromEvent */ \"./node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"fromEvent\", function() { return _internal_observable_fromEvent__WEBPACK_IMPORTED_MODULE_37__[\"fromEvent\"]; });\n\n/* harmony import */ var _internal_observable_fromEventPattern__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./internal/observable/fromEventPattern */ \"./node_modules/rxjs/dist/esm5/internal/observable/fromEventPattern.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"fromEventPattern\", function() { return _internal_observable_fromEventPattern__WEBPACK_IMPORTED_MODULE_38__[\"fromEventPattern\"]; });\n\n/* harmony import */ var _internal_observable_generate__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./internal/observable/generate */ \"./node_modules/rxjs/dist/esm5/internal/observable/generate.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"generate\", function() { return _internal_observable_generate__WEBPACK_IMPORTED_MODULE_39__[\"generate\"]; });\n\n/* harmony import */ var _internal_observable_iif__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./internal/observable/iif */ \"./node_modules/rxjs/dist/esm5/internal/observable/iif.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"iif\", function() { return _internal_observable_iif__WEBPACK_IMPORTED_MODULE_40__[\"iif\"]; });\n\n/* harmony import */ var _internal_observable_interval__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./internal/observable/interval */ \"./node_modules/rxjs/dist/esm5/internal/observable/interval.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interval\", function() { return _internal_observable_interval__WEBPACK_IMPORTED_MODULE_41__[\"interval\"]; });\n\n/* harmony import */ var _internal_observable_merge__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./internal/observable/merge */ \"./node_modules/rxjs/dist/esm5/internal/observable/merge.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"merge\", function() { return _internal_observable_merge__WEBPACK_IMPORTED_MODULE_42__[\"merge\"]; });\n\n/* harmony import */ var _internal_observable_never__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./internal/observable/never */ \"./node_modules/rxjs/dist/esm5/internal/observable/never.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"never\", function() { return _internal_observable_never__WEBPACK_IMPORTED_MODULE_43__[\"never\"]; });\n\n/* harmony import */ var _internal_observable_of__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./internal/observable/of */ \"./node_modules/rxjs/dist/esm5/internal/observable/of.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"of\", function() { return _internal_observable_of__WEBPACK_IMPORTED_MODULE_44__[\"of\"]; });\n\n/* harmony import */ var _internal_observable_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./internal/observable/onErrorResumeNext */ \"./node_modules/rxjs/dist/esm5/internal/observable/onErrorResumeNext.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"onErrorResumeNext\", function() { return _internal_observable_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_45__[\"onErrorResumeNext\"]; });\n\n/* harmony import */ var _internal_observable_pairs__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./internal/observable/pairs */ \"./node_modules/rxjs/dist/esm5/internal/observable/pairs.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pairs\", function() { return _internal_observable_pairs__WEBPACK_IMPORTED_MODULE_46__[\"pairs\"]; });\n\n/* harmony import */ var _internal_observable_partition__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./internal/observable/partition */ \"./node_modules/rxjs/dist/esm5/internal/observable/partition.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"partition\", function() { return _internal_observable_partition__WEBPACK_IMPORTED_MODULE_47__[\"partition\"]; });\n\n/* harmony import */ var _internal_observable_race__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./internal/observable/race */ \"./node_modules/rxjs/dist/esm5/internal/observable/race.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"race\", function() { return _internal_observable_race__WEBPACK_IMPORTED_MODULE_48__[\"race\"]; });\n\n/* harmony import */ var _internal_observable_range__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./internal/observable/range */ \"./node_modules/rxjs/dist/esm5/internal/observable/range.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"range\", function() { return _internal_observable_range__WEBPACK_IMPORTED_MODULE_49__[\"range\"]; });\n\n/* harmony import */ var _internal_observable_throwError__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./internal/observable/throwError */ \"./node_modules/rxjs/dist/esm5/internal/observable/throwError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"throwError\", function() { return _internal_observable_throwError__WEBPACK_IMPORTED_MODULE_50__[\"throwError\"]; });\n\n/* harmony import */ var _internal_observable_timer__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./internal/observable/timer */ \"./node_modules/rxjs/dist/esm5/internal/observable/timer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timer\", function() { return _internal_observable_timer__WEBPACK_IMPORTED_MODULE_51__[\"timer\"]; });\n\n/* harmony import */ var _internal_observable_using__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./internal/observable/using */ \"./node_modules/rxjs/dist/esm5/internal/observable/using.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"using\", function() { return _internal_observable_using__WEBPACK_IMPORTED_MODULE_52__[\"using\"]; });\n\n/* harmony import */ var _internal_observable_zip__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./internal/observable/zip */ \"./node_modules/rxjs/dist/esm5/internal/observable/zip.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zip\", function() { return _internal_observable_zip__WEBPACK_IMPORTED_MODULE_53__[\"zip\"]; });\n\n/* harmony import */ var _internal_scheduled_scheduled__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./internal/scheduled/scheduled */ \"./node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scheduled\", function() { return _internal_scheduled_scheduled__WEBPACK_IMPORTED_MODULE_54__[\"scheduled\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EMPTY\", function() { return _internal_observable_empty__WEBPACK_IMPORTED_MODULE_34__[\"EMPTY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NEVER\", function() { return _internal_observable_never__WEBPACK_IMPORTED_MODULE_43__[\"NEVER\"]; });\n\n/* harmony import */ var _internal_config__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./internal/config */ \"./node_modules/rxjs/dist/esm5/internal/config.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"config\", function() { return _internal_config__WEBPACK_IMPORTED_MODULE_55__[\"config\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/index.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/AsyncSubject.js": +/*!**************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/AsyncSubject.js ***! + \**************************************************************/ +/*! exports provided: AsyncSubject */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AsyncSubject\", function() { return AsyncSubject; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n\n\n\nvar AsyncSubject = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AsyncSubject, _super);\n function AsyncSubject() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.value = null;\n _this.hasNext = false;\n _this.hasCompleted = false;\n return _this;\n }\n AsyncSubject.prototype._subscribe = function (subscriber) {\n if (this.hasError) {\n subscriber.error(this.thrownError);\n return _Subscription__WEBPACK_IMPORTED_MODULE_2__[\"Subscription\"].EMPTY;\n }\n else if (this.hasCompleted && this.hasNext) {\n subscriber.next(this.value);\n subscriber.complete();\n return _Subscription__WEBPACK_IMPORTED_MODULE_2__[\"Subscription\"].EMPTY;\n }\n return _super.prototype._subscribe.call(this, subscriber);\n };\n AsyncSubject.prototype.next = function (value) {\n if (!this.hasCompleted) {\n this.value = value;\n this.hasNext = true;\n }\n };\n AsyncSubject.prototype.error = function (error) {\n if (!this.hasCompleted) {\n _super.prototype.error.call(this, error);\n }\n };\n AsyncSubject.prototype.complete = function () {\n this.hasCompleted = true;\n if (this.hasNext) {\n _super.prototype.next.call(this, this.value);\n }\n _super.prototype.complete.call(this);\n };\n return AsyncSubject;\n}(_Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]));\n\n//# sourceMappingURL=AsyncSubject.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/AsyncSubject.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js ***! + \*****************************************************************/ +/*! exports provided: BehaviorSubject */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BehaviorSubject\", function() { return BehaviorSubject; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/ObjectUnsubscribedError */ \"./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js\");\n\n\n\nvar BehaviorSubject = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(BehaviorSubject, _super);\n function BehaviorSubject(_value) {\n var _this = _super.call(this) || this;\n _this._value = _value;\n return _this;\n }\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: true,\n configurable: true\n });\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n if (subscription && !subscription.closed) {\n subscriber.next(this._value);\n }\n return subscription;\n };\n BehaviorSubject.prototype.getValue = function () {\n if (this.hasError) {\n throw this.thrownError;\n }\n else if (this.closed) {\n throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_2__[\"ObjectUnsubscribedError\"]();\n }\n else {\n return this._value;\n }\n };\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, this._value = value);\n };\n return BehaviorSubject;\n}(_Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]));\n\n//# sourceMappingURL=BehaviorSubject.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js ***! + \*****************************************************************/ +/*! exports provided: InnerSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"InnerSubscriber\", function() { return InnerSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nvar InnerSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(InnerSubscriber, _super);\n function InnerSubscriber(parent, outerValue, outerIndex) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.outerValue = outerValue;\n _this.outerIndex = outerIndex;\n _this.index = 0;\n return _this;\n }\n InnerSubscriber.prototype._next = function (value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n };\n InnerSubscriber.prototype._error = function (error) {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n };\n InnerSubscriber.prototype._complete = function () {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n };\n return InnerSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n\n//# sourceMappingURL=InnerSubscriber.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/Notification.js": +/*!**************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/Notification.js ***! + \**************************************************************/ +/*! exports provided: NotificationKind, Notification */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NotificationKind\", function() { return NotificationKind; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Notification\", function() { return Notification; });\n/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./observable/empty */ \"./node_modules/rxjs/dist/esm5/internal/observable/empty.js\");\n/* harmony import */ var _observable_of__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./observable/of */ \"./node_modules/rxjs/dist/esm5/internal/observable/of.js\");\n/* harmony import */ var _observable_throwError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./observable/throwError */ \"./node_modules/rxjs/dist/esm5/internal/observable/throwError.js\");\n\n\n\nvar NotificationKind;\n(function (NotificationKind) {\n NotificationKind[\"NEXT\"] = \"N\";\n NotificationKind[\"ERROR\"] = \"E\";\n NotificationKind[\"COMPLETE\"] = \"C\";\n})(NotificationKind || (NotificationKind = {}));\nvar Notification = (function () {\n function Notification(kind, value, error) {\n this.kind = kind;\n this.value = value;\n this.error = error;\n this.hasValue = kind === 'N';\n }\n Notification.prototype.observe = function (observer) {\n switch (this.kind) {\n case 'N':\n return observer.next && observer.next(this.value);\n case 'E':\n return observer.error && observer.error(this.error);\n case 'C':\n return observer.complete && observer.complete();\n }\n };\n Notification.prototype.do = function (next, error, complete) {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return next && next(this.value);\n case 'E':\n return error && error(this.error);\n case 'C':\n return complete && complete();\n }\n };\n Notification.prototype.accept = function (nextOrObserver, error, complete) {\n if (nextOrObserver && typeof nextOrObserver.next === 'function') {\n return this.observe(nextOrObserver);\n }\n else {\n return this.do(nextOrObserver, error, complete);\n }\n };\n Notification.prototype.toObservable = function () {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return Object(_observable_of__WEBPACK_IMPORTED_MODULE_1__[\"of\"])(this.value);\n case 'E':\n return Object(_observable_throwError__WEBPACK_IMPORTED_MODULE_2__[\"throwError\"])(this.error);\n case 'C':\n return _observable_empty__WEBPACK_IMPORTED_MODULE_0__[\"EMPTY\"];\n }\n throw new Error('unexpected notification kind value');\n };\n Notification.createNext = function (value) {\n if (typeof value !== 'undefined') {\n return new Notification('N', value);\n }\n return Notification.undefinedValueNotification;\n };\n Notification.createError = function (err) {\n return new Notification('E', undefined, err);\n };\n Notification.createComplete = function () {\n return Notification.completeNotification;\n };\n Notification.completeNotification = new Notification('C');\n Notification.undefinedValueNotification = new Notification('N', undefined);\n return Notification;\n}());\n\n//# sourceMappingURL=Notification.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/Notification.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/Observable.js": +/*!************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/Observable.js ***! + \************************************************************/ +/*! exports provided: Observable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Observable\", function() { return Observable; });\n/* harmony import */ var _util_canReportError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/canReportError */ \"./node_modules/rxjs/dist/esm5/internal/util/canReportError.js\");\n/* harmony import */ var _util_toSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/toSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/util/toSubscriber.js\");\n/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./symbol/observable */ \"./node_modules/rxjs/dist/esm5/internal/symbol/observable.js\");\n/* harmony import */ var _util_pipe__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util/pipe */ \"./node_modules/rxjs/dist/esm5/internal/util/pipe.js\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./config */ \"./node_modules/rxjs/dist/esm5/internal/config.js\");\n/* harmony import */ var _asyncIteratorFrom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./asyncIteratorFrom */ \"./node_modules/rxjs/dist/esm5/internal/asyncIteratorFrom.js\");\n\n\n\n\n\n\nvar Observable = (function () {\n function Observable(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var operator = this.operator;\n var sink = Object(_util_toSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"toSubscriber\"])(observerOrNext, error, complete);\n if (operator) {\n sink.add(operator.call(sink, this.source));\n }\n else {\n sink.add(this.source || (_config__WEBPACK_IMPORTED_MODULE_4__[\"config\"].useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (_config__WEBPACK_IMPORTED_MODULE_4__[\"config\"].useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (_config__WEBPACK_IMPORTED_MODULE_4__[\"config\"].useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (Object(_util_canReportError__WEBPACK_IMPORTED_MODULE_0__[\"canReportError\"])(sink)) {\n sink.error(err);\n }\n else {\n console.warn(err);\n }\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscription;\n subscription = _this.subscribe(function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var source = this.source;\n return source && source.subscribe(subscriber);\n };\n Observable.prototype[_symbol_observable__WEBPACK_IMPORTED_MODULE_2__[\"observable\"]] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n if (operations.length === 0) {\n return this;\n }\n return Object(_util_pipe__WEBPACK_IMPORTED_MODULE_3__[\"pipeFromArray\"])(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\n\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = _config__WEBPACK_IMPORTED_MODULE_4__[\"config\"].Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n(function () {\n if (Symbol && Symbol.asyncIterator) {\n Observable.prototype[Symbol.asyncIterator] = function () {\n return Object(_asyncIteratorFrom__WEBPACK_IMPORTED_MODULE_5__[\"asyncIteratorFrom\"])(this);\n };\n }\n})();\n//# sourceMappingURL=Observable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/Observable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/Observer.js": +/*!**********************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/Observer.js ***! + \**********************************************************/ +/*! exports provided: empty */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"empty\", function() { return empty; });\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./config */ \"./node_modules/rxjs/dist/esm5/internal/config.js\");\n/* harmony import */ var _util_hostReportError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/hostReportError */ \"./node_modules/rxjs/dist/esm5/internal/util/hostReportError.js\");\n\n\nvar empty = {\n closed: true,\n next: function (value) { },\n error: function (err) {\n if (_config__WEBPACK_IMPORTED_MODULE_0__[\"config\"].useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_1__[\"hostReportError\"])(err);\n }\n },\n complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/Observer.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js ***! + \*****************************************************************/ +/*! exports provided: OuterSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"OuterSubscriber\", function() { return OuterSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nvar OuterSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(OuterSubscriber, _super);\n function OuterSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n OuterSubscriber.prototype.notifyError = function (error, innerSub) {\n this.destination.error(error);\n };\n OuterSubscriber.prototype.notifyComplete = function (innerSub) {\n this.destination.complete();\n };\n return OuterSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n\n//# sourceMappingURL=OuterSubscriber.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/ReplaySubject.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/ReplaySubject.js ***! + \***************************************************************/ +/*! exports provided: ReplaySubject */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ReplaySubject\", function() { return ReplaySubject; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _scheduler_queue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./scheduler/queue */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/queue.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _operators_observeOn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./operators/observeOn */ \"./node_modules/rxjs/dist/esm5/internal/operators/observeOn.js\");\n/* harmony import */ var _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./util/ObjectUnsubscribedError */ \"./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js\");\n/* harmony import */ var _SubjectSubscription__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./SubjectSubscription */ \"./node_modules/rxjs/dist/esm5/internal/SubjectSubscription.js\");\n\n\n\n\n\n\n\nvar ReplaySubject = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ReplaySubject, _super);\n function ReplaySubject(bufferSize, windowTime, scheduler) {\n if (bufferSize === void 0) { bufferSize = Number.POSITIVE_INFINITY; }\n if (windowTime === void 0) { windowTime = Number.POSITIVE_INFINITY; }\n var _this = _super.call(this) || this;\n _this.scheduler = scheduler;\n _this._events = [];\n _this._infiniteTimeWindow = false;\n _this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n _this._windowTime = windowTime < 1 ? 1 : windowTime;\n if (windowTime === Number.POSITIVE_INFINITY) {\n _this._infiniteTimeWindow = true;\n _this.next = _this.nextInfiniteTimeWindow;\n }\n else {\n _this.next = _this.nextTimeWindow;\n }\n return _this;\n }\n ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) {\n var _events = this._events;\n _events.push(value);\n if (_events.length > this._bufferSize) {\n _events.shift();\n }\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype.nextTimeWindow = function (value) {\n this._events.push(new ReplayEvent(this._getNow(), value));\n this._trimBufferThenGetEvents();\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype._subscribe = function (subscriber) {\n var _infiniteTimeWindow = this._infiniteTimeWindow;\n var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();\n var scheduler = this.scheduler;\n var len = _events.length;\n var subscription;\n if (this.closed) {\n throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_5__[\"ObjectUnsubscribedError\"]();\n }\n else if (this.isStopped || this.hasError) {\n subscription = _Subscription__WEBPACK_IMPORTED_MODULE_3__[\"Subscription\"].EMPTY;\n }\n else {\n this.observers.push(subscriber);\n subscription = new _SubjectSubscription__WEBPACK_IMPORTED_MODULE_6__[\"SubjectSubscription\"](this, subscriber);\n }\n if (scheduler) {\n subscriber.add(subscriber = new _operators_observeOn__WEBPACK_IMPORTED_MODULE_4__[\"ObserveOnSubscriber\"](subscriber, scheduler));\n }\n if (_infiniteTimeWindow) {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i]);\n }\n }\n else {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i].value);\n }\n }\n if (this.hasError) {\n subscriber.error(this.thrownError);\n }\n else if (this.isStopped) {\n subscriber.complete();\n }\n return subscription;\n };\n ReplaySubject.prototype._getNow = function () {\n return (this.scheduler || _scheduler_queue__WEBPACK_IMPORTED_MODULE_2__[\"queue\"]).now();\n };\n ReplaySubject.prototype._trimBufferThenGetEvents = function () {\n var now = this._getNow();\n var _bufferSize = this._bufferSize;\n var _windowTime = this._windowTime;\n var _events = this._events;\n var eventsCount = _events.length;\n var spliceCount = 0;\n while (spliceCount < eventsCount) {\n if ((now - _events[spliceCount].time) < _windowTime) {\n break;\n }\n spliceCount++;\n }\n if (eventsCount > _bufferSize) {\n spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n }\n if (spliceCount > 0) {\n _events.splice(0, spliceCount);\n }\n return _events;\n };\n return ReplaySubject;\n}(_Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]));\n\nvar ReplayEvent = (function () {\n function ReplayEvent(time, value) {\n this.time = time;\n this.value = value;\n }\n return ReplayEvent;\n}());\n//# sourceMappingURL=ReplaySubject.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/ReplaySubject.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/Scheduler.js": +/*!***********************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/Scheduler.js ***! + \***********************************************************/ +/*! exports provided: Scheduler */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Scheduler\", function() { return Scheduler; });\nvar Scheduler = (function () {\n function Scheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n this.SchedulerAction = SchedulerAction;\n this.now = now;\n }\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n return new this.SchedulerAction(this, work).schedule(state, delay);\n };\n Scheduler.now = function () { return Date.now(); };\n return Scheduler;\n}());\n\n//# sourceMappingURL=Scheduler.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/Scheduler.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/Subject.js": +/*!*********************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/Subject.js ***! + \*********************************************************/ +/*! exports provided: SubjectSubscriber, Subject, AnonymousSubject */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SubjectSubscriber\", function() { return SubjectSubscriber; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Subject\", function() { return Subject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AnonymousSubject\", function() { return AnonymousSubject; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./util/ObjectUnsubscribedError */ \"./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js\");\n/* harmony import */ var _SubjectSubscription__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./SubjectSubscription */ \"./node_modules/rxjs/dist/esm5/internal/SubjectSubscription.js\");\n/* harmony import */ var _internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../internal/symbol/rxSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/symbol/rxSubscriber.js\");\n\n\n\n\n\n\n\nvar SubjectSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SubjectSubscriber, _super);\n function SubjectSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n return _this;\n }\n return SubjectSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_2__[\"Subscriber\"]));\n\nvar Subject = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.observers = [];\n _this.closed = false;\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype[_internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_6__[\"rxSubscriber\"]] = function () {\n return new SubjectSubscriber(this);\n };\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype.next = function (value) {\n if (this.closed) {\n throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__[\"ObjectUnsubscribedError\"]();\n }\n if (!this.isStopped) {\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n };\n Subject.prototype.error = function (err) {\n if (this.closed) {\n throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__[\"ObjectUnsubscribedError\"]();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n };\n Subject.prototype.complete = function () {\n if (this.closed) {\n throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__[\"ObjectUnsubscribedError\"]();\n }\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n };\n Subject.prototype._trySubscribe = function (subscriber) {\n if (this.closed) {\n throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__[\"ObjectUnsubscribedError\"]();\n }\n else {\n return _super.prototype._trySubscribe.call(this, subscriber);\n }\n };\n Subject.prototype._subscribe = function (subscriber) {\n if (this.closed) {\n throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__[\"ObjectUnsubscribedError\"]();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return _Subscription__WEBPACK_IMPORTED_MODULE_3__[\"Subscription\"].EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return _Subscription__WEBPACK_IMPORTED_MODULE_3__[\"Subscription\"].EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new _SubjectSubscription__WEBPACK_IMPORTED_MODULE_5__[\"SubjectSubscription\"](this, subscriber);\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new _Observable__WEBPACK_IMPORTED_MODULE_1__[\"Observable\"]();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(_Observable__WEBPACK_IMPORTED_MODULE_1__[\"Observable\"]));\n\nvar AnonymousSubject = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var destination = this.destination;\n if (destination && destination.next) {\n destination.next(value);\n }\n };\n AnonymousSubject.prototype.error = function (err) {\n var destination = this.destination;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n };\n AnonymousSubject.prototype.complete = function () {\n var destination = this.destination;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var source = this.source;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return _Subscription__WEBPACK_IMPORTED_MODULE_3__[\"Subscription\"].EMPTY;\n }\n };\n return AnonymousSubject;\n}(Subject));\n\n//# sourceMappingURL=Subject.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/Subject.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/SubjectSubscription.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/SubjectSubscription.js ***! + \*********************************************************************/ +/*! exports provided: SubjectSubscription */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SubjectSubscription\", function() { return SubjectSubscription; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n\n\nvar SubjectSubscription = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SubjectSubscription, _super);\n function SubjectSubscription(subject, subscriber) {\n var _this = _super.call(this) || this;\n _this.subject = subject;\n _this.subscriber = subscriber;\n _this.closed = false;\n return _this;\n }\n SubjectSubscription.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.closed = true;\n var subject = this.subject;\n var observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n var subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n };\n return SubjectSubscription;\n}(_Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]));\n\n//# sourceMappingURL=SubjectSubscription.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/SubjectSubscription.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/Subscriber.js": +/*!************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/Subscriber.js ***! + \************************************************************/ +/*! exports provided: Subscriber, SafeSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Subscriber\", function() { return Subscriber; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SafeSubscriber\", function() { return SafeSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/isFunction */ \"./node_modules/rxjs/dist/esm5/internal/util/isFunction.js\");\n/* harmony import */ var _Observer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Observer */ \"./node_modules/rxjs/dist/esm5/internal/Observer.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../internal/symbol/rxSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/symbol/rxSubscriber.js\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./config */ \"./node_modules/rxjs/dist/esm5/internal/config.js\");\n/* harmony import */ var _util_hostReportError__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./util/hostReportError */ \"./node_modules/rxjs/dist/esm5/internal/util/hostReportError.js\");\n\n\n\n\n\n\n\nvar Subscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(Subscriber, _super);\n function Subscriber(destinationOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this.syncErrorValue = null;\n _this.syncErrorThrown = false;\n _this.syncErrorThrowable = false;\n _this.isStopped = false;\n switch (arguments.length) {\n case 0:\n _this.destination = _Observer__WEBPACK_IMPORTED_MODULE_2__[\"empty\"];\n break;\n case 1:\n if (!destinationOrNext) {\n _this.destination = _Observer__WEBPACK_IMPORTED_MODULE_2__[\"empty\"];\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n _this.destination = destinationOrNext;\n destinationOrNext.add(_this);\n }\n else {\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext);\n }\n break;\n }\n default:\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);\n break;\n }\n return _this;\n }\n Subscriber.prototype[_internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_4__[\"rxSubscriber\"]] = function () { return this; };\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _parentOrParents = this._parentOrParents;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n };\n return Subscriber;\n}(_Subscription__WEBPACK_IMPORTED_MODULE_3__[\"Subscription\"]));\n\nvar SafeSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SafeSubscriber, _super);\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this._parentSubscriber = _parentSubscriber;\n var next;\n var context = _this;\n if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_1__[\"isFunction\"])(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== _Observer__WEBPACK_IMPORTED_MODULE_2__[\"empty\"]) {\n context = Object.create(observerOrNext);\n if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_1__[\"isFunction\"])(context.unsubscribe)) {\n _this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = _this.unsubscribe.bind(_this);\n }\n }\n _this._context = context;\n _this._next = next;\n _this._error = error;\n _this._complete = complete;\n return _this;\n }\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n if (!_config__WEBPACK_IMPORTED_MODULE_5__[\"config\"].useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n var useDeprecatedSynchronousErrorHandling = _config__WEBPACK_IMPORTED_MODULE_5__[\"config\"].useDeprecatedSynchronousErrorHandling;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_6__[\"hostReportError\"])(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_6__[\"hostReportError\"])(err);\n }\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._complete) {\n var wrappedComplete = function () { return _this._complete.call(_this._context); };\n if (!_config__WEBPACK_IMPORTED_MODULE_5__[\"config\"].useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (_config__WEBPACK_IMPORTED_MODULE_5__[\"config\"].useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_6__[\"hostReportError\"])(err);\n }\n }\n };\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n if (!_config__WEBPACK_IMPORTED_MODULE_5__[\"config\"].useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (_config__WEBPACK_IMPORTED_MODULE_5__[\"config\"].useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_6__[\"hostReportError\"])(err);\n return true;\n }\n }\n return false;\n };\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n };\n return SafeSubscriber;\n}(Subscriber));\n\n//# sourceMappingURL=Subscriber.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/Subscriber.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/Subscription.js": +/*!**************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/Subscription.js ***! + \**************************************************************/ +/*! exports provided: Subscription */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Subscription\", function() { return Subscription; });\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _util_isObject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/isObject */ \"./node_modules/rxjs/dist/esm5/internal/util/isObject.js\");\n/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/isFunction */ \"./node_modules/rxjs/dist/esm5/internal/util/isFunction.js\");\n/* harmony import */ var _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util/UnsubscriptionError */ \"./node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js\");\n\n\n\n\nvar Subscription = (function () {\n function Subscription(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._unsubscribe = unsubscribe;\n }\n }\n Subscription.prototype.unsubscribe = function () {\n var errors;\n if (this.closed) {\n return;\n }\n var _a = this, _parentOrParents = _a._parentOrParents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (var index = 0; index < _parentOrParents.length; ++index) {\n var parent_1 = _parentOrParents[index];\n parent_1.remove(this);\n }\n }\n if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_2__[\"isFunction\"])(_unsubscribe)) {\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_3__[\"UnsubscriptionError\"] ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (Object(_util_isArray__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(_subscriptions)) {\n var index = -1;\n var len = _subscriptions.length;\n while (++index < len) {\n var sub = _subscriptions[index];\n if (Object(_util_isObject__WEBPACK_IMPORTED_MODULE_1__[\"isObject\"])(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_3__[\"UnsubscriptionError\"]) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_3__[\"UnsubscriptionError\"](errors);\n }\n };\n Subscription.prototype.add = function (teardown) {\n var subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n var tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n var _parentOrParents = subscription._parentOrParents;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n var subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n };\n Subscription.prototype.remove = function (subscription) {\n var subscriptions = this._subscriptions;\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n Subscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n return Subscription;\n}());\n\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce(function (errs, err) { return errs.concat((err instanceof _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_3__[\"UnsubscriptionError\"]) ? err.errors : err); }, []);\n}\n//# sourceMappingURL=Subscription.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/Subscription.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/asyncIteratorFrom.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/asyncIteratorFrom.js ***! + \*******************************************************************/ +/*! exports provided: asyncIteratorFrom */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asyncIteratorFrom\", function() { return asyncIteratorFrom; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_deferred__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/deferred */ \"./node_modules/rxjs/dist/esm5/internal/util/deferred.js\");\n\n\nfunction asyncIteratorFrom(source) {\n return coroutine(source);\n}\nfunction coroutine(source) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__asyncGenerator\"])(this, arguments, function coroutine_1() {\n var deferreds, values, hasError, error, completed, subs, d, result, err_1;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n deferreds = [];\n values = [];\n hasError = false;\n error = null;\n completed = false;\n subs = source.subscribe({\n next: function (value) {\n if (deferreds.length > 0) {\n deferreds.shift().resolve({ value: value, done: false });\n }\n else {\n values.push(value);\n }\n },\n error: function (err) {\n hasError = true;\n error = err;\n while (deferreds.length > 0) {\n deferreds.shift().reject(err);\n }\n },\n complete: function () {\n completed = true;\n while (deferreds.length > 0) {\n deferreds.shift().resolve({ value: undefined, done: true });\n }\n },\n });\n _a.label = 1;\n case 1:\n _a.trys.push([1, 16, 17, 18]);\n _a.label = 2;\n case 2:\n if (false) {}\n if (!(values.length > 0)) return [3, 5];\n return [4, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__await\"])(values.shift())];\n case 3: return [4, _a.sent()];\n case 4:\n _a.sent();\n return [3, 14];\n case 5:\n if (!completed) return [3, 7];\n return [4, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__await\"])(void 0)];\n case 6: return [2, _a.sent()];\n case 7:\n if (!hasError) return [3, 8];\n throw error;\n case 8:\n d = new _util_deferred__WEBPACK_IMPORTED_MODULE_1__[\"Deferred\"]();\n deferreds.push(d);\n return [4, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__await\"])(d.promise)];\n case 9:\n result = _a.sent();\n if (!result.done) return [3, 11];\n return [4, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__await\"])(void 0)];\n case 10: return [2, _a.sent()];\n case 11: return [4, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__await\"])(result.value)];\n case 12: return [4, _a.sent()];\n case 13:\n _a.sent();\n _a.label = 14;\n case 14: return [3, 2];\n case 15: return [3, 18];\n case 16:\n err_1 = _a.sent();\n throw err_1;\n case 17:\n subs.unsubscribe();\n return [7];\n case 18: return [2];\n }\n });\n });\n}\n//# sourceMappingURL=asyncIteratorFrom.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/asyncIteratorFrom.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/config.js": +/*!********************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/config.js ***! + \********************************************************/ +/*! exports provided: config */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"config\", function() { return config; });\nvar _enable_super_gross_mode_that_will_cause_bad_things = false;\nvar config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n var error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n//# sourceMappingURL=config.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/config.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/firstValueFrom.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/firstValueFrom.js ***! + \****************************************************************/ +/*! exports provided: firstValueFrom */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"firstValueFrom\", function() { return firstValueFrom; });\n/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/EmptyError */ \"./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n\n\nfunction firstValueFrom(source$) {\n return new Promise(function (resolve, reject) {\n var subs = new _Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]();\n subs.add(source$.subscribe({\n next: function (value) {\n resolve(value);\n subs.unsubscribe();\n },\n error: reject,\n complete: function () {\n reject(new _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__[\"EmptyError\"]());\n },\n }));\n });\n}\n//# sourceMappingURL=firstValueFrom.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/firstValueFrom.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/lastValueFrom.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/lastValueFrom.js ***! + \***************************************************************/ +/*! exports provided: lastValueFrom */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"lastValueFrom\", function() { return lastValueFrom; });\n/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/EmptyError */ \"./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js\");\n\nfunction lastValueFrom(source) {\n return new Promise(function (resolve, reject) {\n var _hasValue = false;\n var _value;\n source.subscribe({\n next: function (value) {\n _value = value;\n _hasValue = true;\n },\n error: reject,\n complete: function () {\n if (_hasValue) {\n resolve(_value);\n }\n else {\n reject(new _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__[\"EmptyError\"]());\n }\n },\n });\n });\n}\n//# sourceMappingURL=lastValueFrom.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/lastValueFrom.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/ConnectableObservable.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/ConnectableObservable.js ***! + \**********************************************************************************/ +/*! exports provided: ConnectableObservable, connectableObservableDescriptor */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ConnectableObservable\", function() { return ConnectableObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"connectableObservableDescriptor\", function() { return connectableObservableDescriptor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _operators_refCount__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../operators/refCount */ \"./node_modules/rxjs/dist/esm5/internal/operators/refCount.js\");\n\n\n\n\n\n\nvar ConnectableObservable = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ConnectableObservable, _super);\n function ConnectableObservable(source, subjectFactory) {\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.subjectFactory = subjectFactory;\n _this._refCount = 0;\n _this._isComplete = false;\n return _this;\n }\n ConnectableObservable.prototype._subscribe = function (subscriber) {\n return this.getSubject().subscribe(subscriber);\n };\n ConnectableObservable.prototype.getSubject = function () {\n var subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n };\n ConnectableObservable.prototype.connect = function () {\n var connection = this._connection;\n if (!connection) {\n this._isComplete = false;\n connection = this._connection = new _Subscription__WEBPACK_IMPORTED_MODULE_4__[\"Subscription\"]();\n connection.add(this.source\n .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n if (connection.closed) {\n this._connection = null;\n connection = _Subscription__WEBPACK_IMPORTED_MODULE_4__[\"Subscription\"].EMPTY;\n }\n }\n return connection;\n };\n ConnectableObservable.prototype.refCount = function () {\n return Object(_operators_refCount__WEBPACK_IMPORTED_MODULE_5__[\"refCount\"])()(this);\n };\n return ConnectableObservable;\n}(_Observable__WEBPACK_IMPORTED_MODULE_2__[\"Observable\"]));\n\nvar connectableObservableDescriptor = (function () {\n var connectableProto = ConnectableObservable.prototype;\n return {\n operator: { value: null },\n _refCount: { value: 0, writable: true },\n _subject: { value: null, writable: true },\n _connection: { value: null, writable: true },\n _subscribe: { value: connectableProto._subscribe },\n _isComplete: { value: connectableProto._isComplete, writable: true },\n getSubject: { value: connectableProto.getSubject },\n connect: { value: connectableProto.connect },\n refCount: { value: connectableProto.refCount }\n };\n})();\nvar ConnectableSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ConnectableSubscriber, _super);\n function ConnectableSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n ConnectableSubscriber.prototype._error = function (err) {\n this._unsubscribe();\n _super.prototype._error.call(this, err);\n };\n ConnectableSubscriber.prototype._complete = function () {\n this.connectable._isComplete = true;\n this._unsubscribe();\n _super.prototype._complete.call(this);\n };\n ConnectableSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (connectable) {\n this.connectable = null;\n var connection = connectable._connection;\n connectable._refCount = 0;\n connectable._subject = null;\n connectable._connection = null;\n if (connection) {\n connection.unsubscribe();\n }\n }\n };\n return ConnectableSubscriber;\n}(_Subject__WEBPACK_IMPORTED_MODULE_1__[\"SubjectSubscriber\"]));\nvar RefCountOperator = (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__[\"Subscriber\"]));\n//# sourceMappingURL=ConnectableObservable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/ConnectableObservable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/SubscribeOnObservable.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/SubscribeOnObservable.js ***! + \**********************************************************************************/ +/*! exports provided: SubscribeOnObservable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SubscribeOnObservable\", function() { return SubscribeOnObservable; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _scheduler_asap__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduler/asap */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/asap.js\");\n/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/isNumeric */ \"./node_modules/rxjs/dist/esm5/internal/util/isNumeric.js\");\n\n\n\n\nvar SubscribeOnObservable = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SubscribeOnObservable, _super);\n function SubscribeOnObservable(source, delayTime, scheduler) {\n if (delayTime === void 0) { delayTime = 0; }\n if (scheduler === void 0) { scheduler = _scheduler_asap__WEBPACK_IMPORTED_MODULE_2__[\"asap\"]; }\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.delayTime = delayTime;\n _this.scheduler = scheduler;\n if (!Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_3__[\"isNumeric\"])(delayTime) || delayTime < 0) {\n _this.delayTime = 0;\n }\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n _this.scheduler = _scheduler_asap__WEBPACK_IMPORTED_MODULE_2__[\"asap\"];\n }\n return _this;\n }\n SubscribeOnObservable.create = function (source, delay, scheduler) {\n if (delay === void 0) { delay = 0; }\n if (scheduler === void 0) { scheduler = _scheduler_asap__WEBPACK_IMPORTED_MODULE_2__[\"asap\"]; }\n return new SubscribeOnObservable(source, delay, scheduler);\n };\n SubscribeOnObservable.dispatch = function (arg) {\n var source = arg.source, subscriber = arg.subscriber;\n return this.add(source.subscribe(subscriber));\n };\n SubscribeOnObservable.prototype._subscribe = function (subscriber) {\n var delay = this.delayTime;\n var source = this.source;\n var scheduler = this.scheduler;\n return scheduler.schedule(SubscribeOnObservable.dispatch, delay, {\n source: source, subscriber: subscriber\n });\n };\n return SubscribeOnObservable;\n}(_Observable__WEBPACK_IMPORTED_MODULE_1__[\"Observable\"]));\n\n//# sourceMappingURL=SubscribeOnObservable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/SubscribeOnObservable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/bindCallback.js": +/*!*************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/bindCallback.js ***! + \*************************************************************************/ +/*! exports provided: bindCallback */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bindCallback\", function() { return bindCallback; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _AsyncSubject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../AsyncSubject */ \"./node_modules/rxjs/dist/esm5/internal/AsyncSubject.js\");\n/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../operators/map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n/* harmony import */ var _util_canReportError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/canReportError */ \"./node_modules/rxjs/dist/esm5/internal/util/canReportError.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n\n\n\n\n\n\n\nfunction bindCallback(callbackFunc, resultSelector, scheduler) {\n if (resultSelector) {\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_6__[\"isScheduler\"])(resultSelector)) {\n scheduler = resultSelector;\n }\n else {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return bindCallback(callbackFunc, scheduler).apply(void 0, args).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_5__[\"isArray\"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n };\n }\n }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var context = this;\n var subject;\n var params = {\n context: context,\n subject: undefined,\n callbackFunc: callbackFunc,\n scheduler: scheduler,\n };\n return new _Observable__WEBPACK_IMPORTED_MODULE_1__[\"Observable\"](function (subscriber) {\n if (!scheduler) {\n if (!subject) {\n subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_2__[\"AsyncSubject\"]();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n subject.complete();\n };\n try {\n callbackFunc.apply(context, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])(args, [handler]));\n }\n catch (err) {\n if (Object(_util_canReportError__WEBPACK_IMPORTED_MODULE_4__[\"canReportError\"])(subject)) {\n subject.error(err);\n }\n else {\n console.warn(err);\n }\n }\n }\n return subject.subscribe(subscriber);\n }\n else {\n var state = {\n args: args, subscriber: subscriber, params: params,\n };\n return scheduler.schedule(dispatch, 0, state);\n }\n });\n };\n}\nfunction dispatch(state) {\n var _this = this;\n var self = this;\n var args = state.args, subscriber = state.subscriber, params = state.params;\n var callbackFunc = params.callbackFunc, context = params.context, scheduler = params.scheduler;\n var subject = params.subject;\n if (!subject) {\n subject = params.subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_2__[\"AsyncSubject\"]();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));\n };\n try {\n callbackFunc.apply(context, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])(args, [handler]));\n }\n catch (err) {\n subject.error(err);\n }\n }\n this.add(subject.subscribe(subscriber));\n}\nfunction dispatchNext(state) {\n var value = state.value, subject = state.subject;\n subject.next(value);\n subject.complete();\n}\nfunction dispatchError(state) {\n var err = state.err, subject = state.subject;\n subject.error(err);\n}\n//# sourceMappingURL=bindCallback.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/bindCallback.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/bindNodeCallback.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/bindNodeCallback.js ***! + \*****************************************************************************/ +/*! exports provided: bindNodeCallback */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bindNodeCallback\", function() { return bindNodeCallback; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _AsyncSubject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../AsyncSubject */ \"./node_modules/rxjs/dist/esm5/internal/AsyncSubject.js\");\n/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../operators/map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n/* harmony import */ var _util_canReportError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/canReportError */ \"./node_modules/rxjs/dist/esm5/internal/util/canReportError.js\");\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n\n\n\n\n\n\n\nfunction bindNodeCallback(callbackFunc, resultSelector, scheduler) {\n if (resultSelector) {\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_5__[\"isScheduler\"])(resultSelector)) {\n scheduler = resultSelector;\n }\n else {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return bindNodeCallback(callbackFunc, scheduler).apply(void 0, args).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_6__[\"isArray\"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n };\n }\n }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var params = {\n subject: undefined,\n args: args,\n callbackFunc: callbackFunc,\n scheduler: scheduler,\n context: this,\n };\n return new _Observable__WEBPACK_IMPORTED_MODULE_1__[\"Observable\"](function (subscriber) {\n var context = params.context;\n var subject = params.subject;\n if (!scheduler) {\n if (!subject) {\n subject = params.subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_2__[\"AsyncSubject\"]();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n var err = innerArgs.shift();\n if (err) {\n subject.error(err);\n return;\n }\n subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n subject.complete();\n };\n try {\n callbackFunc.apply(context, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])(args, [handler]));\n }\n catch (err) {\n if (Object(_util_canReportError__WEBPACK_IMPORTED_MODULE_4__[\"canReportError\"])(subject)) {\n subject.error(err);\n }\n else {\n console.warn(err);\n }\n }\n }\n return subject.subscribe(subscriber);\n }\n else {\n return scheduler.schedule(dispatch, 0, { params: params, subscriber: subscriber, context: context });\n }\n });\n };\n}\nfunction dispatch(state) {\n var _this = this;\n var params = state.params, subscriber = state.subscriber, context = state.context;\n var callbackFunc = params.callbackFunc, args = params.args, scheduler = params.scheduler;\n var subject = params.subject;\n if (!subject) {\n subject = params.subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_2__[\"AsyncSubject\"]();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n var err = innerArgs.shift();\n if (err) {\n _this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));\n }\n else {\n var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));\n }\n };\n try {\n callbackFunc.apply(context, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])(args, [handler]));\n }\n catch (err) {\n this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));\n }\n }\n this.add(subject.subscribe(subscriber));\n}\nfunction dispatchNext(arg) {\n var value = arg.value, subject = arg.subject;\n subject.next(value);\n subject.complete();\n}\nfunction dispatchError(arg) {\n var err = arg.err, subject = arg.subject;\n subject.error(err);\n}\n//# sourceMappingURL=bindNodeCallback.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/bindNodeCallback.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js ***! + \**************************************************************************/ +/*! exports provided: combineLatest, CombineLatestOperator, CombineLatestSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"combineLatest\", function() { return combineLatest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CombineLatestOperator\", function() { return CombineLatestOperator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CombineLatestSubscriber\", function() { return CombineLatestSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./fromArray */ \"./node_modules/rxjs/dist/esm5/internal/observable/fromArray.js\");\n\n\n\n\n\n\nvar NONE = {};\nfunction combineLatest() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var resultSelector = undefined;\n var scheduler = undefined;\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_1__[\"isScheduler\"])(observables[observables.length - 1])) {\n scheduler = observables.pop();\n }\n if (typeof observables[observables.length - 1] === 'function') {\n resultSelector = observables.pop();\n }\n if (observables.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__[\"isArray\"])(observables[0])) {\n observables = observables[0];\n }\n return Object(_fromArray__WEBPACK_IMPORTED_MODULE_5__[\"fromArray\"])(observables, scheduler).lift(new CombineLatestOperator(resultSelector));\n}\nvar CombineLatestOperator = (function () {\n function CombineLatestOperator(resultSelector) {\n this.resultSelector = resultSelector;\n }\n CombineLatestOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));\n };\n return CombineLatestOperator;\n}());\n\nvar CombineLatestSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(CombineLatestSubscriber, _super);\n function CombineLatestSubscriber(destination, resultSelector) {\n var _this = _super.call(this, destination) || this;\n _this.resultSelector = resultSelector;\n _this.active = 0;\n _this.values = [];\n _this.observables = [];\n return _this;\n }\n CombineLatestSubscriber.prototype._next = function (observable) {\n this.values.push(NONE);\n this.observables.push(observable);\n };\n CombineLatestSubscriber.prototype._complete = function () {\n var observables = this.observables;\n var len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n this.active = len;\n this.toRespond = len;\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__[\"subscribeToResult\"])(this, observable, observable, i));\n }\n }\n };\n CombineLatestSubscriber.prototype.notifyComplete = function (unused) {\n if ((this.active -= 1) === 0) {\n this.destination.complete();\n }\n };\n CombineLatestSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var values = this.values;\n var oldVal = values[outerIndex];\n var toRespond = !this.toRespond\n ? 0\n : oldVal === NONE ? --this.toRespond : this.toRespond;\n values[outerIndex] = innerValue;\n if (toRespond === 0) {\n if (this.resultSelector) {\n this._tryResultSelector(values);\n }\n else {\n this.destination.next(values.slice());\n }\n }\n };\n CombineLatestSubscriber.prototype._tryResultSelector = function (values) {\n var result;\n try {\n result = this.resultSelector.apply(this, values);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return CombineLatestSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__[\"OuterSubscriber\"]));\n\n//# sourceMappingURL=combineLatest.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/concat.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/concat.js ***! + \*******************************************************************/ +/*! exports provided: concat */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"concat\", function() { return concat; });\n/* harmony import */ var _of__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./of */ \"./node_modules/rxjs/dist/esm5/internal/observable/of.js\");\n/* harmony import */ var _operators_concatAll__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../operators/concatAll */ \"./node_modules/rxjs/dist/esm5/internal/operators/concatAll.js\");\n\n\nfunction concat() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return Object(_operators_concatAll__WEBPACK_IMPORTED_MODULE_1__[\"concatAll\"])()(_of__WEBPACK_IMPORTED_MODULE_0__[\"of\"].apply(void 0, observables));\n}\n//# sourceMappingURL=concat.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/concat.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/defer.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/defer.js ***! + \******************************************************************/ +/*! exports provided: defer */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defer\", function() { return defer; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./empty */ \"./node_modules/rxjs/dist/esm5/internal/observable/empty.js\");\n\n\n\nfunction defer(observableFactory) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var input;\n try {\n input = observableFactory();\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var source = input ? Object(_from__WEBPACK_IMPORTED_MODULE_1__[\"from\"])(input) : _empty__WEBPACK_IMPORTED_MODULE_2__[\"EMPTY\"];\n return source.subscribe(subscriber);\n });\n}\n//# sourceMappingURL=defer.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/defer.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/dom/AjaxObservable.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/dom/AjaxObservable.js ***! + \*******************************************************************************/ +/*! exports provided: ajaxGet, ajaxPost, ajaxDelete, ajaxPut, ajaxPatch, ajaxGetJSON, AjaxObservable, AjaxSubscriber, AjaxResponse, AjaxError, AjaxTimeoutError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ajaxGet\", function() { return ajaxGet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ajaxPost\", function() { return ajaxPost; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ajaxDelete\", function() { return ajaxDelete; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ajaxPut\", function() { return ajaxPut; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ajaxPatch\", function() { return ajaxPatch; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ajaxGetJSON\", function() { return ajaxGetJSON; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AjaxObservable\", function() { return AjaxObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AjaxSubscriber\", function() { return AjaxSubscriber; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AjaxResponse\", function() { return AjaxResponse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AjaxError\", function() { return AjaxError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AjaxTimeoutError\", function() { return AjaxTimeoutError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_root__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/root */ \"./node_modules/rxjs/dist/esm5/internal/util/root.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../operators/map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n\n\n\n\n\nfunction getCORSRequest() {\n if (_util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].XMLHttpRequest) {\n return new _util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].XMLHttpRequest();\n }\n else if (!!_util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].XDomainRequest) {\n return new _util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].XDomainRequest();\n }\n else {\n throw new Error('CORS is not supported by your browser');\n }\n}\nfunction getXMLHttpRequest() {\n if (_util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].XMLHttpRequest) {\n return new _util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].XMLHttpRequest();\n }\n else {\n var progId = void 0;\n try {\n var progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];\n for (var i = 0; i < 3; i++) {\n try {\n progId = progIds[i];\n if (new _util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].ActiveXObject(progId)) {\n break;\n }\n }\n catch (e) {\n }\n }\n return new _util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].ActiveXObject(progId);\n }\n catch (e) {\n throw new Error('XMLHttpRequest is not supported by your browser');\n }\n }\n}\nfunction ajaxGet(url, headers) {\n return new AjaxObservable({ method: 'GET', url: url, headers: headers });\n}\nfunction ajaxPost(url, body, headers) {\n return new AjaxObservable({ method: 'POST', url: url, body: body, headers: headers });\n}\nfunction ajaxDelete(url, headers) {\n return new AjaxObservable({ method: 'DELETE', url: url, headers: headers });\n}\nfunction ajaxPut(url, body, headers) {\n return new AjaxObservable({ method: 'PUT', url: url, body: body, headers: headers });\n}\nfunction ajaxPatch(url, body, headers) {\n return new AjaxObservable({ method: 'PATCH', url: url, body: body, headers: headers });\n}\nvar mapResponse = Object(_operators_map__WEBPACK_IMPORTED_MODULE_4__[\"map\"])(function (x, index) { return x.response; });\nfunction ajaxGetJSON(url, headers) {\n return mapResponse(new AjaxObservable({\n method: 'GET',\n url: url,\n responseType: 'json',\n headers: headers\n }));\n}\nvar AjaxObservable = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AjaxObservable, _super);\n function AjaxObservable(urlOrRequest) {\n var _this = _super.call(this) || this;\n var request = {\n async: true,\n createXHR: function () {\n return this.crossDomain ? getCORSRequest() : getXMLHttpRequest();\n },\n crossDomain: true,\n withCredentials: false,\n headers: {},\n method: 'GET',\n responseType: 'json',\n timeout: 0\n };\n if (typeof urlOrRequest === 'string') {\n request.url = urlOrRequest;\n }\n else {\n for (var prop in urlOrRequest) {\n if (urlOrRequest.hasOwnProperty(prop)) {\n request[prop] = urlOrRequest[prop];\n }\n }\n }\n _this.request = request;\n return _this;\n }\n AjaxObservable.prototype._subscribe = function (subscriber) {\n return new AjaxSubscriber(subscriber, this.request);\n };\n AjaxObservable.create = (function () {\n var create = function (urlOrRequest) {\n return new AjaxObservable(urlOrRequest);\n };\n create.get = ajaxGet;\n create.post = ajaxPost;\n create.delete = ajaxDelete;\n create.put = ajaxPut;\n create.patch = ajaxPatch;\n create.getJSON = ajaxGetJSON;\n return create;\n })();\n return AjaxObservable;\n}(_Observable__WEBPACK_IMPORTED_MODULE_2__[\"Observable\"]));\n\nvar AjaxSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AjaxSubscriber, _super);\n function AjaxSubscriber(destination, request) {\n var _this = _super.call(this, destination) || this;\n _this.request = request;\n _this.done = false;\n var headers = request.headers = request.headers || {};\n if (!request.crossDomain && !_this.getHeader(headers, 'X-Requested-With')) {\n headers['X-Requested-With'] = 'XMLHttpRequest';\n }\n var contentTypeHeader = _this.getHeader(headers, 'Content-Type');\n if (!contentTypeHeader && !(_util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].FormData && request.body instanceof _util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].FormData) && typeof request.body !== 'undefined') {\n headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';\n }\n request.body = _this.serializeBody(request.body, _this.getHeader(request.headers, 'Content-Type'));\n _this.send();\n return _this;\n }\n AjaxSubscriber.prototype.next = function (e) {\n this.done = true;\n var _a = this, xhr = _a.xhr, request = _a.request, destination = _a.destination;\n var result;\n try {\n result = new AjaxResponse(e, xhr, request);\n }\n catch (err) {\n return destination.error(err);\n }\n destination.next(result);\n };\n AjaxSubscriber.prototype.send = function () {\n var _a = this, request = _a.request, _b = _a.request, user = _b.user, method = _b.method, url = _b.url, async = _b.async, password = _b.password, headers = _b.headers, body = _b.body;\n try {\n var xhr = this.xhr = request.createXHR();\n this.setupEvents(xhr, request);\n if (user) {\n xhr.open(method, url, async, user, password);\n }\n else {\n xhr.open(method, url, async);\n }\n if (async) {\n xhr.timeout = request.timeout;\n xhr.responseType = request.responseType;\n }\n if ('withCredentials' in xhr) {\n xhr.withCredentials = !!request.withCredentials;\n }\n this.setHeaders(xhr, headers);\n if (body) {\n xhr.send(body);\n }\n else {\n xhr.send();\n }\n }\n catch (err) {\n this.error(err);\n }\n };\n AjaxSubscriber.prototype.serializeBody = function (body, contentType) {\n if (!body || typeof body === 'string') {\n return body;\n }\n else if (_util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].FormData && body instanceof _util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].FormData) {\n return body;\n }\n if (contentType) {\n var splitIndex = contentType.indexOf(';');\n if (splitIndex !== -1) {\n contentType = contentType.substring(0, splitIndex);\n }\n }\n switch (contentType) {\n case 'application/x-www-form-urlencoded':\n return Object.keys(body).map(function (key) { return encodeURIComponent(key) + \"=\" + encodeURIComponent(body[key]); }).join('&');\n case 'application/json':\n return JSON.stringify(body);\n default:\n return body;\n }\n };\n AjaxSubscriber.prototype.setHeaders = function (xhr, headers) {\n for (var key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n };\n AjaxSubscriber.prototype.getHeader = function (headers, headerName) {\n for (var key in headers) {\n if (key.toLowerCase() === headerName.toLowerCase()) {\n return headers[key];\n }\n }\n return undefined;\n };\n AjaxSubscriber.prototype.setupEvents = function (xhr, request) {\n var progressSubscriber = request.progressSubscriber;\n function xhrTimeout(e) {\n var _a = xhrTimeout, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var error;\n try {\n error = new AjaxTimeoutError(this, request);\n }\n catch (err) {\n error = err;\n }\n subscriber.error(error);\n }\n xhr.ontimeout = xhrTimeout;\n xhrTimeout.request = request;\n xhrTimeout.subscriber = this;\n xhrTimeout.progressSubscriber = progressSubscriber;\n if (xhr.upload && 'withCredentials' in xhr) {\n if (progressSubscriber) {\n var xhrProgress_1;\n xhrProgress_1 = function (e) {\n var progressSubscriber = xhrProgress_1.progressSubscriber;\n progressSubscriber.next(e);\n };\n if (_util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].XDomainRequest) {\n xhr.onprogress = xhrProgress_1;\n }\n else {\n xhr.upload.onprogress = xhrProgress_1;\n }\n xhrProgress_1.progressSubscriber = progressSubscriber;\n }\n var xhrError_1;\n xhrError_1 = function (e) {\n var _a = xhrError_1, progressSubscriber = _a.progressSubscriber, subscriber = _a.subscriber, request = _a.request;\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var error;\n try {\n error = new AjaxError('ajax error', this, request);\n }\n catch (err) {\n error = err;\n }\n subscriber.error(error);\n };\n xhr.onerror = xhrError_1;\n xhrError_1.request = request;\n xhrError_1.subscriber = this;\n xhrError_1.progressSubscriber = progressSubscriber;\n }\n function xhrReadyStateChange(e) {\n return;\n }\n xhr.onreadystatechange = xhrReadyStateChange;\n xhrReadyStateChange.subscriber = this;\n xhrReadyStateChange.progressSubscriber = progressSubscriber;\n xhrReadyStateChange.request = request;\n function xhrLoad(e) {\n var _a = xhrLoad, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n if (this.readyState === 4) {\n var status_1 = this.status === 1223 ? 204 : this.status;\n var response = (this.responseType === 'text' ? (this.response || this.responseText) : this.response);\n if (status_1 === 0) {\n status_1 = response ? 200 : 0;\n }\n if (status_1 < 400) {\n if (progressSubscriber) {\n progressSubscriber.complete();\n }\n subscriber.next(e);\n subscriber.complete();\n }\n else {\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var error = void 0;\n try {\n error = new AjaxError('ajax error ' + status_1, this, request);\n }\n catch (err) {\n error = err;\n }\n subscriber.error(error);\n }\n }\n }\n xhr.onload = xhrLoad;\n xhrLoad.subscriber = this;\n xhrLoad.progressSubscriber = progressSubscriber;\n xhrLoad.request = request;\n };\n AjaxSubscriber.prototype.unsubscribe = function () {\n var _a = this, done = _a.done, xhr = _a.xhr;\n if (!done && xhr && xhr.readyState !== 4 && typeof xhr.abort === 'function') {\n xhr.abort();\n }\n _super.prototype.unsubscribe.call(this);\n };\n return AjaxSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__[\"Subscriber\"]));\n\nvar AjaxResponse = (function () {\n function AjaxResponse(originalEvent, xhr, request) {\n this.originalEvent = originalEvent;\n this.xhr = xhr;\n this.request = request;\n this.status = xhr.status;\n this.responseType = xhr.responseType || request.responseType;\n this.response = parseXhrResponse(this.responseType, xhr);\n }\n return AjaxResponse;\n}());\n\nvar AjaxErrorImpl = (function () {\n function AjaxErrorImpl(message, xhr, request) {\n Error.call(this);\n this.message = message;\n this.name = 'AjaxError';\n this.xhr = xhr;\n this.request = request;\n this.status = xhr.status;\n this.responseType = xhr.responseType || request.responseType;\n this.response = parseXhrResponse(this.responseType, xhr);\n return this;\n }\n AjaxErrorImpl.prototype = Object.create(Error.prototype);\n return AjaxErrorImpl;\n})();\nvar AjaxError = AjaxErrorImpl;\nfunction parseJson(xhr) {\n if ('response' in xhr) {\n return xhr.responseType ? xhr.response : JSON.parse(xhr.response || xhr.responseText || 'null');\n }\n else {\n return JSON.parse(xhr.responseText || 'null');\n }\n}\nfunction parseXhrResponse(responseType, xhr) {\n switch (responseType) {\n case 'json':\n return parseJson(xhr);\n case 'xml':\n return xhr.responseXML;\n case 'text':\n default:\n return ('response' in xhr) ? xhr.response : xhr.responseText;\n }\n}\nvar AjaxTimeoutErrorImpl = (function () {\n function AjaxTimeoutErrorImpl(xhr, request) {\n AjaxError.call(this, 'ajax timeout', xhr, request);\n this.name = 'AjaxTimeoutError';\n return this;\n }\n AjaxTimeoutErrorImpl.prototype = Object.create(AjaxError.prototype);\n return AjaxTimeoutErrorImpl;\n})();\nvar AjaxTimeoutError = AjaxTimeoutErrorImpl;\n//# sourceMappingURL=AjaxObservable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/dom/AjaxObservable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/dom/ajax.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/dom/ajax.js ***! + \*********************************************************************/ +/*! exports provided: ajax */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ajax\", function() { return ajax; });\n/* harmony import */ var _AjaxObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AjaxObservable */ \"./node_modules/rxjs/dist/esm5/internal/observable/dom/AjaxObservable.js\");\n\nvar ajax = (function () { return _AjaxObservable__WEBPACK_IMPORTED_MODULE_0__[\"AjaxObservable\"].create; })();\n//# sourceMappingURL=ajax.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/dom/ajax.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/dom/animationFrames.js": +/*!********************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/dom/animationFrames.js ***! + \********************************************************************************/ +/*! exports provided: animationFrames */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"animationFrames\", function() { return animationFrames; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n\nfunction animationFrames(timestampProvider) {\n if (timestampProvider === void 0) { timestampProvider = Date; }\n return timestampProvider === Date ? DEFAULT_ANIMATION_FRAMES : animationFramesFactory(timestampProvider);\n}\nfunction animationFramesFactory(timestampProvider) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var id;\n var start = timestampProvider.now();\n var run = function () {\n subscriber.next(timestampProvider.now() - start);\n if (!subscriber.closed) {\n id = requestAnimationFrame(run);\n }\n };\n id = requestAnimationFrame(run);\n return function () { return cancelAnimationFrame(id); };\n });\n}\nvar DEFAULT_ANIMATION_FRAMES = animationFramesFactory(Date);\n//# sourceMappingURL=animationFrames.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/dom/animationFrames.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/empty.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/empty.js ***! + \******************************************************************/ +/*! exports provided: EMPTY, empty */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EMPTY\", function() { return EMPTY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"empty\", function() { return empty; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n\nvar EMPTY = new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) { return subscriber.complete(); });\nfunction empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/empty.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/forkJoin.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/forkJoin.js ***! + \*********************************************************************/ +/*! exports provided: forkJoin */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"forkJoin\", function() { return forkJoin; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../operators/map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n/* harmony import */ var _util_isObject__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/isObject */ \"./node_modules/rxjs/dist/esm5/internal/util/isObject.js\");\n/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n\n\n\n\n\nfunction forkJoin() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n if (sources.length === 1) {\n var first_1 = sources[0];\n if (Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__[\"isArray\"])(first_1)) {\n return forkJoinInternal(first_1, null);\n }\n if (Object(_util_isObject__WEBPACK_IMPORTED_MODULE_3__[\"isObject\"])(first_1) && Object.getPrototypeOf(first_1) === Object.prototype) {\n var keys = Object.keys(first_1);\n return forkJoinInternal(keys.map(function (key) { return first_1[key]; }), keys);\n }\n }\n if (typeof sources[sources.length - 1] === 'function') {\n var resultSelector_1 = sources.pop();\n sources = (sources.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__[\"isArray\"])(sources[0])) ? sources[0] : sources;\n return forkJoinInternal(sources, null).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (args) { return resultSelector_1.apply(void 0, args); }));\n }\n return forkJoinInternal(sources, null);\n}\nfunction forkJoinInternal(sources, keys) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var len = sources.length;\n if (len === 0) {\n subscriber.complete();\n return;\n }\n var values = new Array(len);\n var completed = 0;\n var emitted = 0;\n var _loop_1 = function (i) {\n var source = Object(_from__WEBPACK_IMPORTED_MODULE_4__[\"from\"])(sources[i]);\n var hasValue = false;\n subscriber.add(source.subscribe({\n next: function (value) {\n if (!hasValue) {\n hasValue = true;\n emitted++;\n }\n values[i] = value;\n },\n error: function (err) { return subscriber.error(err); },\n complete: function () {\n completed++;\n if (completed === len || !hasValue) {\n if (emitted === len) {\n subscriber.next(keys ?\n keys.reduce(function (result, key, i) { return (result[key] = values[i], result); }, {}) :\n values);\n }\n subscriber.complete();\n }\n }\n }));\n };\n for (var i = 0; i < len; i++) {\n _loop_1(i);\n }\n });\n}\n//# sourceMappingURL=forkJoin.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/forkJoin.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/from.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/from.js ***! + \*****************************************************************/ +/*! exports provided: from */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"from\", function() { return from; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _util_subscribeTo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/subscribeTo */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeTo.js\");\n/* harmony import */ var _scheduled_scheduled__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduled/scheduled */ \"./node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js\");\n\n\n\nfunction from(input, scheduler) {\n if (!scheduler) {\n if (input instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"]) {\n return input;\n }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](Object(_util_subscribeTo__WEBPACK_IMPORTED_MODULE_1__[\"subscribeTo\"])(input));\n }\n else {\n return Object(_scheduled_scheduled__WEBPACK_IMPORTED_MODULE_2__[\"scheduled\"])(input, scheduler);\n }\n}\n//# sourceMappingURL=from.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/from.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/fromArray.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/fromArray.js ***! + \**********************************************************************/ +/*! exports provided: fromArray */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fromArray\", function() { return fromArray; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _util_subscribeToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/subscribeToArray */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToArray.js\");\n/* harmony import */ var _scheduled_scheduleArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduled/scheduleArray */ \"./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js\");\n\n\n\nfunction fromArray(input, scheduler) {\n if (!scheduler) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](Object(_util_subscribeToArray__WEBPACK_IMPORTED_MODULE_1__[\"subscribeToArray\"])(input));\n }\n else {\n return Object(_scheduled_scheduleArray__WEBPACK_IMPORTED_MODULE_2__[\"scheduleArray\"])(input, scheduler);\n }\n}\n//# sourceMappingURL=fromArray.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/fromArray.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js ***! + \**********************************************************************/ +/*! exports provided: fromEvent */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fromEvent\", function() { return fromEvent; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isFunction */ \"./node_modules/rxjs/dist/esm5/internal/util/isFunction.js\");\n/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../operators/map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n\n\n\n\nfunction fromEvent(target, eventName, options, resultSelector) {\n if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_2__[\"isFunction\"])(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__[\"isArray\"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n function handler(e) {\n if (arguments.length > 1) {\n subscriber.next(Array.prototype.slice.call(arguments));\n }\n else {\n subscriber.next(e);\n }\n }\n setupSubscription(target, eventName, handler, subscriber, options);\n });\n}\nfunction setupSubscription(sourceObj, eventName, handler, subscriber, options) {\n var unsubscribe;\n if (isEventTarget(sourceObj)) {\n var source_1 = sourceObj;\n sourceObj.addEventListener(eventName, handler, options);\n unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); };\n }\n else if (isJQueryStyleEventEmitter(sourceObj)) {\n var source_2 = sourceObj;\n sourceObj.on(eventName, handler);\n unsubscribe = function () { return source_2.off(eventName, handler); };\n }\n else if (isNodeStyleEventEmitter(sourceObj)) {\n var source_3 = sourceObj;\n sourceObj.addListener(eventName, handler);\n unsubscribe = function () { return source_3.removeListener(eventName, handler); };\n }\n else if (sourceObj && sourceObj.length) {\n for (var i = 0, len = sourceObj.length; i < len; i++) {\n setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n }\n }\n else {\n throw new TypeError('Invalid event target');\n }\n subscriber.add(unsubscribe);\n}\nfunction isNodeStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\nfunction isJQueryStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\nfunction isEventTarget(sourceObj) {\n return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n//# sourceMappingURL=fromEvent.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/fromEventPattern.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/fromEventPattern.js ***! + \*****************************************************************************/ +/*! exports provided: fromEventPattern */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fromEventPattern\", function() { return fromEventPattern; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isFunction */ \"./node_modules/rxjs/dist/esm5/internal/util/isFunction.js\");\n/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../operators/map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n\n\n\n\nfunction fromEventPattern(addHandler, removeHandler, resultSelector) {\n if (resultSelector) {\n return fromEventPattern(addHandler, removeHandler).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__[\"isArray\"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var handler = function () {\n var e = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n e[_i] = arguments[_i];\n }\n return subscriber.next(e.length === 1 ? e[0] : e);\n };\n var retValue;\n try {\n retValue = addHandler(handler);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_2__[\"isFunction\"])(removeHandler)) {\n return undefined;\n }\n return function () { return removeHandler(handler, retValue); };\n });\n}\n//# sourceMappingURL=fromEventPattern.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/fromEventPattern.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/generate.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/generate.js ***! + \*********************************************************************/ +/*! exports provided: generate */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"generate\", function() { return generate; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/identity */ \"./node_modules/rxjs/dist/esm5/internal/util/identity.js\");\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n\n\n\nfunction generate(initialStateOrOptions, condition, iterate, resultSelectorOrScheduler, scheduler) {\n var resultSelector;\n var initialState;\n if (arguments.length == 1) {\n var options = initialStateOrOptions;\n initialState = options.initialState;\n condition = options.condition;\n iterate = options.iterate;\n resultSelector = options.resultSelector || _util_identity__WEBPACK_IMPORTED_MODULE_1__[\"identity\"];\n scheduler = options.scheduler;\n }\n else if (resultSelectorOrScheduler === undefined || Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_2__[\"isScheduler\"])(resultSelectorOrScheduler)) {\n initialState = initialStateOrOptions;\n resultSelector = _util_identity__WEBPACK_IMPORTED_MODULE_1__[\"identity\"];\n scheduler = resultSelectorOrScheduler;\n }\n else {\n initialState = initialStateOrOptions;\n resultSelector = resultSelectorOrScheduler;\n }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var state = initialState;\n if (scheduler) {\n return scheduler.schedule(dispatch, 0, {\n subscriber: subscriber,\n iterate: iterate,\n condition: condition,\n resultSelector: resultSelector,\n state: state\n });\n }\n do {\n if (condition) {\n var conditionResult = void 0;\n try {\n conditionResult = condition(state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!conditionResult) {\n subscriber.complete();\n break;\n }\n }\n var value = void 0;\n try {\n value = resultSelector(state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n subscriber.next(value);\n if (subscriber.closed) {\n break;\n }\n try {\n state = iterate(state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n } while (true);\n return undefined;\n });\n}\nfunction dispatch(state) {\n var subscriber = state.subscriber, condition = state.condition;\n if (subscriber.closed) {\n return undefined;\n }\n if (state.needIterate) {\n try {\n state.state = state.iterate(state.state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n }\n else {\n state.needIterate = true;\n }\n if (condition) {\n var conditionResult = void 0;\n try {\n conditionResult = condition(state.state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!conditionResult) {\n subscriber.complete();\n return undefined;\n }\n if (subscriber.closed) {\n return undefined;\n }\n }\n var value;\n try {\n value = state.resultSelector(state.state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (subscriber.closed) {\n return undefined;\n }\n subscriber.next(value);\n if (subscriber.closed) {\n return undefined;\n }\n return this.schedule(state);\n}\n//# sourceMappingURL=generate.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/generate.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/iif.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/iif.js ***! + \****************************************************************/ +/*! exports provided: iif */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"iif\", function() { return iif; });\n/* harmony import */ var _defer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defer */ \"./node_modules/rxjs/dist/esm5/internal/observable/defer.js\");\n/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./empty */ \"./node_modules/rxjs/dist/esm5/internal/observable/empty.js\");\n\n\nfunction iif(condition, trueResult, falseResult) {\n if (trueResult === void 0) { trueResult = _empty__WEBPACK_IMPORTED_MODULE_1__[\"EMPTY\"]; }\n if (falseResult === void 0) { falseResult = _empty__WEBPACK_IMPORTED_MODULE_1__[\"EMPTY\"]; }\n return Object(_defer__WEBPACK_IMPORTED_MODULE_0__[\"defer\"])(function () { return condition() ? trueResult : falseResult; });\n}\n//# sourceMappingURL=iif.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/iif.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/interval.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/interval.js ***! + \*********************************************************************/ +/*! exports provided: interval */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"interval\", function() { return interval; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isNumeric */ \"./node_modules/rxjs/dist/esm5/internal/util/isNumeric.js\");\n\n\n\nfunction interval(period, scheduler) {\n if (period === void 0) { period = 0; }\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__[\"async\"]; }\n if (!Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_2__[\"isNumeric\"])(period) || period < 0) {\n period = 0;\n }\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__[\"async\"];\n }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n subscriber.add(scheduler.schedule(dispatch, period, { subscriber: subscriber, counter: 0, period: period }));\n return subscriber;\n });\n}\nfunction dispatch(state) {\n var subscriber = state.subscriber, counter = state.counter, period = state.period;\n subscriber.next(counter);\n this.schedule({ subscriber: subscriber, counter: counter + 1, period: period }, period);\n}\n//# sourceMappingURL=interval.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/interval.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/merge.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/merge.js ***! + \******************************************************************/ +/*! exports provided: merge */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"merge\", function() { return merge; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n/* harmony import */ var _operators_mergeAll__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../operators/mergeAll */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js\");\n/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fromArray */ \"./node_modules/rxjs/dist/esm5/internal/observable/fromArray.js\");\n\n\n\n\nfunction merge() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var concurrent = Number.POSITIVE_INFINITY;\n var scheduler = undefined;\n var last = observables[observables.length - 1];\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_1__[\"isScheduler\"])(last)) {\n scheduler = observables.pop();\n if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n concurrent = observables.pop();\n }\n }\n else if (typeof last === 'number') {\n concurrent = observables.pop();\n }\n if (!scheduler && observables.length === 1 && observables[0] instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"]) {\n return observables[0];\n }\n return Object(_operators_mergeAll__WEBPACK_IMPORTED_MODULE_2__[\"mergeAll\"])(concurrent)(Object(_fromArray__WEBPACK_IMPORTED_MODULE_3__[\"fromArray\"])(observables, scheduler));\n}\n//# sourceMappingURL=merge.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/merge.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/never.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/never.js ***! + \******************************************************************/ +/*! exports provided: NEVER, never */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NEVER\", function() { return NEVER; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"never\", function() { return never; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _util_noop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/noop */ \"./node_modules/rxjs/dist/esm5/internal/util/noop.js\");\n\n\nvar NEVER = new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](_util_noop__WEBPACK_IMPORTED_MODULE_1__[\"noop\"]);\nfunction never() {\n return NEVER;\n}\n//# sourceMappingURL=never.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/never.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/of.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/of.js ***! + \***************************************************************/ +/*! exports provided: of */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"of\", function() { return of; });\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./fromArray */ \"./node_modules/rxjs/dist/esm5/internal/observable/fromArray.js\");\n/* harmony import */ var _scheduled_scheduleArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduled/scheduleArray */ \"./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js\");\n\n\n\nfunction of() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = args[args.length - 1];\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_0__[\"isScheduler\"])(scheduler)) {\n args.pop();\n return Object(_scheduled_scheduleArray__WEBPACK_IMPORTED_MODULE_2__[\"scheduleArray\"])(args, scheduler);\n }\n else {\n return Object(_fromArray__WEBPACK_IMPORTED_MODULE_1__[\"fromArray\"])(args);\n }\n}\n//# sourceMappingURL=of.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/of.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/onErrorResumeNext.js": +/*!******************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/onErrorResumeNext.js ***! + \******************************************************************************/ +/*! exports provided: onErrorResumeNext */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onErrorResumeNext\", function() { return onErrorResumeNext; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./empty */ \"./node_modules/rxjs/dist/esm5/internal/observable/empty.js\");\n\n\n\n\nfunction onErrorResumeNext() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n if (sources.length === 0) {\n return _empty__WEBPACK_IMPORTED_MODULE_3__[\"EMPTY\"];\n }\n var first = sources[0], remainder = sources.slice(1);\n if (sources.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__[\"isArray\"])(first)) {\n return onErrorResumeNext.apply(void 0, first);\n }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var subNext = function () { return subscriber.add(onErrorResumeNext.apply(void 0, remainder).subscribe(subscriber)); };\n return Object(_from__WEBPACK_IMPORTED_MODULE_1__[\"from\"])(first).subscribe({\n next: function (value) { subscriber.next(value); },\n error: subNext,\n complete: subNext,\n });\n });\n}\n//# sourceMappingURL=onErrorResumeNext.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/onErrorResumeNext.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/pairs.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/pairs.js ***! + \******************************************************************/ +/*! exports provided: pairs, dispatch */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pairs\", function() { return pairs; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dispatch\", function() { return dispatch; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n\n\nfunction pairs(obj, scheduler) {\n if (!scheduler) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length && !subscriber.closed; i++) {\n var key = keys[i];\n if (obj.hasOwnProperty(key)) {\n subscriber.next([key, obj[key]]);\n }\n }\n subscriber.complete();\n });\n }\n else {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var keys = Object.keys(obj);\n var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]();\n subscription.add(scheduler.schedule(dispatch, 0, { keys: keys, index: 0, subscriber: subscriber, subscription: subscription, obj: obj }));\n return subscription;\n });\n }\n}\nfunction dispatch(state) {\n var keys = state.keys, index = state.index, subscriber = state.subscriber, subscription = state.subscription, obj = state.obj;\n if (!subscriber.closed) {\n if (index < keys.length) {\n var key = keys[index];\n subscriber.next([key, obj[key]]);\n subscription.add(this.schedule({ keys: keys, index: index + 1, subscriber: subscriber, subscription: subscription, obj: obj }));\n }\n else {\n subscriber.complete();\n }\n }\n}\n//# sourceMappingURL=pairs.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/pairs.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/partition.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/partition.js ***! + \**********************************************************************/ +/*! exports provided: partition */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"partition\", function() { return partition; });\n/* harmony import */ var _util_not__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/not */ \"./node_modules/rxjs/dist/esm5/internal/util/not.js\");\n/* harmony import */ var _util_subscribeTo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/subscribeTo */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeTo.js\");\n/* harmony import */ var _operators_filter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../operators/filter */ \"./node_modules/rxjs/dist/esm5/internal/operators/filter.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n\n\n\n\nfunction partition(source, predicate, thisArg) {\n return [\n Object(_operators_filter__WEBPACK_IMPORTED_MODULE_2__[\"filter\"])(predicate, thisArg)(new _Observable__WEBPACK_IMPORTED_MODULE_3__[\"Observable\"](Object(_util_subscribeTo__WEBPACK_IMPORTED_MODULE_1__[\"subscribeTo\"])(source))),\n Object(_operators_filter__WEBPACK_IMPORTED_MODULE_2__[\"filter\"])(Object(_util_not__WEBPACK_IMPORTED_MODULE_0__[\"not\"])(predicate, thisArg))(new _Observable__WEBPACK_IMPORTED_MODULE_3__[\"Observable\"](Object(_util_subscribeTo__WEBPACK_IMPORTED_MODULE_1__[\"subscribeTo\"])(source)))\n ];\n}\n//# sourceMappingURL=partition.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/partition.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/race.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/race.js ***! + \*****************************************************************/ +/*! exports provided: race, RaceOperator, RaceSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"race\", function() { return race; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RaceOperator\", function() { return RaceOperator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RaceSubscriber\", function() { return RaceSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fromArray */ \"./node_modules/rxjs/dist/esm5/internal/observable/fromArray.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\n\n\nfunction race() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n if (observables.length === 1) {\n if (Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__[\"isArray\"])(observables[0])) {\n observables = observables[0];\n }\n else {\n return Object(_from__WEBPACK_IMPORTED_MODULE_2__[\"from\"])(observables[0]);\n }\n }\n return Object(_fromArray__WEBPACK_IMPORTED_MODULE_3__[\"fromArray\"])(observables, undefined).lift(new RaceOperator());\n}\nvar RaceOperator = (function () {\n function RaceOperator() {\n }\n RaceOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RaceSubscriber(subscriber));\n };\n return RaceOperator;\n}());\n\nvar RaceSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(RaceSubscriber, _super);\n function RaceSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.hasFirst = false;\n _this.observables = [];\n _this.subscriptions = [];\n return _this;\n }\n RaceSubscriber.prototype._next = function (observable) {\n this.observables.push(observable);\n };\n RaceSubscriber.prototype._complete = function () {\n var observables = this.observables;\n var len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n for (var i = 0; i < len && !this.hasFirst; i++) {\n var observable = observables[i];\n var subscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__[\"subscribeToResult\"])(this, observable, observable, i);\n if (this.subscriptions) {\n this.subscriptions.push(subscription);\n }\n this.add(subscription);\n }\n this.observables = null;\n }\n };\n RaceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n if (!this.hasFirst) {\n this.hasFirst = true;\n for (var i = 0; i < this.subscriptions.length; i++) {\n if (i !== outerIndex) {\n var subscription = this.subscriptions[i];\n subscription.unsubscribe();\n this.remove(subscription);\n }\n }\n this.subscriptions = null;\n }\n this.destination.next(innerValue);\n };\n RaceSubscriber.prototype.notifyComplete = function (innerSub) {\n this.hasFirst = true;\n _super.prototype.notifyComplete.call(this, innerSub);\n };\n RaceSubscriber.prototype.notifyError = function (error, innerSub) {\n this.hasFirst = true;\n _super.prototype.notifyError.call(this, error, innerSub);\n };\n return RaceSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__[\"OuterSubscriber\"]));\n\n//# sourceMappingURL=race.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/race.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/range.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/range.js ***! + \******************************************************************/ +/*! exports provided: range, dispatch */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"range\", function() { return range; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dispatch\", function() { return dispatch; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n\nfunction range(start, count, scheduler) {\n if (start === void 0) { start = 0; }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n if (count === undefined) {\n count = start;\n start = 0;\n }\n var index = 0;\n var current = start;\n if (scheduler) {\n return scheduler.schedule(dispatch, 0, {\n index: index, count: count, start: start, subscriber: subscriber\n });\n }\n else {\n do {\n if (index++ >= count) {\n subscriber.complete();\n break;\n }\n subscriber.next(current++);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n }\n return undefined;\n });\n}\nfunction dispatch(state) {\n var start = state.start, index = state.index, count = state.count, subscriber = state.subscriber;\n if (index >= count) {\n subscriber.complete();\n return;\n }\n subscriber.next(start);\n if (subscriber.closed) {\n return;\n }\n state.index = index + 1;\n state.start = start + 1;\n this.schedule(state);\n}\n//# sourceMappingURL=range.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/range.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/throwError.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/throwError.js ***! + \***********************************************************************/ +/*! exports provided: throwError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"throwError\", function() { return throwError; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n\nfunction throwError(error, scheduler) {\n if (!scheduler) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) { return subscriber.error(error); });\n }\n else {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); });\n }\n}\nfunction dispatch(_a) {\n var error = _a.error, subscriber = _a.subscriber;\n subscriber.error(error);\n}\n//# sourceMappingURL=throwError.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/throwError.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/timer.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/timer.js ***! + \******************************************************************/ +/*! exports provided: timer */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timer\", function() { return timer; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isNumeric */ \"./node_modules/rxjs/dist/esm5/internal/util/isNumeric.js\");\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n\n\n\n\nfunction timer(dueTime, periodOrScheduler, scheduler) {\n if (dueTime === void 0) { dueTime = 0; }\n var period = -1;\n if (Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_2__[\"isNumeric\"])(periodOrScheduler)) {\n period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler);\n }\n else if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_3__[\"isScheduler\"])(periodOrScheduler)) {\n scheduler = periodOrScheduler;\n }\n if (!Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_3__[\"isScheduler\"])(scheduler)) {\n scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__[\"async\"];\n }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var due = Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_2__[\"isNumeric\"])(dueTime)\n ? dueTime\n : (+dueTime - scheduler.now());\n return scheduler.schedule(dispatch, due, {\n index: 0, period: period, subscriber: subscriber\n });\n });\n}\nfunction dispatch(state) {\n var index = state.index, period = state.period, subscriber = state.subscriber;\n subscriber.next(index);\n if (subscriber.closed) {\n return;\n }\n else if (period === -1) {\n return subscriber.complete();\n }\n state.index = index + 1;\n this.schedule(state, period);\n}\n//# sourceMappingURL=timer.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/timer.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/using.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/using.js ***! + \******************************************************************/ +/*! exports provided: using */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"using\", function() { return using; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./empty */ \"./node_modules/rxjs/dist/esm5/internal/observable/empty.js\");\n\n\n\nfunction using(resourceFactory, observableFactory) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var resource;\n try {\n resource = resourceFactory();\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var result;\n try {\n result = observableFactory(resource);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var source = result ? Object(_from__WEBPACK_IMPORTED_MODULE_1__[\"from\"])(result) : _empty__WEBPACK_IMPORTED_MODULE_2__[\"EMPTY\"];\n var subscription = source.subscribe(subscriber);\n return function () {\n subscription.unsubscribe();\n if (resource) {\n resource.unsubscribe();\n }\n };\n });\n}\n//# sourceMappingURL=using.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/using.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/zip.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/zip.js ***! + \****************************************************************/ +/*! exports provided: zip, ZipOperator, ZipSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"zip\", function() { return zip; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ZipOperator\", function() { return ZipOperator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ZipSubscriber\", function() { return ZipSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./fromArray */ \"./node_modules/rxjs/dist/esm5/internal/observable/fromArray.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n/* harmony import */ var _internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../internal/symbol/iterator */ \"./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js\");\n\n\n\n\n\n\n\nfunction zip() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var last = observables[observables.length - 1];\n var resultSelector = undefined;\n if (typeof last === 'function') {\n resultSelector = observables.pop();\n }\n return Object(_fromArray__WEBPACK_IMPORTED_MODULE_1__[\"fromArray\"])(observables, undefined).lift(new ZipOperator(resultSelector));\n}\nvar ZipOperator = (function () {\n function ZipOperator(resultSelector) {\n this.resultSelector = resultSelector;\n }\n ZipOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector));\n };\n return ZipOperator;\n}());\n\nvar ZipSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ZipSubscriber, _super);\n function ZipSubscriber(destination, resultSelector, values) {\n if (values === void 0) { values = Object.create(null); }\n var _this = _super.call(this, destination) || this;\n _this.iterators = [];\n _this.active = 0;\n _this.resultSelector = resultSelector;\n _this.values = values;\n return _this;\n }\n ZipSubscriber.prototype._next = function (value) {\n var iterators = this.iterators;\n if (Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__[\"isArray\"])(value)) {\n iterators.push(new StaticArrayIterator(value));\n }\n else if (typeof value[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__[\"iterator\"]] === 'function') {\n iterators.push(new StaticIterator(value[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__[\"iterator\"]]()));\n }\n else {\n iterators.push(new ZipBufferIterator(this.destination, this, value));\n }\n };\n ZipSubscriber.prototype._complete = function () {\n var iterators = this.iterators;\n var len = iterators.length;\n this.unsubscribe();\n if (len === 0) {\n this.destination.complete();\n return;\n }\n this.active = len;\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n if (iterator.stillUnsubscribed) {\n var destination = this.destination;\n destination.add(iterator.subscribe(iterator, i));\n }\n else {\n this.active--;\n }\n }\n };\n ZipSubscriber.prototype.notifyInactive = function () {\n this.active--;\n if (this.active === 0) {\n this.destination.complete();\n }\n };\n ZipSubscriber.prototype.checkIterators = function () {\n var iterators = this.iterators;\n var len = iterators.length;\n var destination = this.destination;\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) {\n return;\n }\n }\n var shouldComplete = false;\n var args = [];\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n var result = iterator.next();\n if (iterator.hasCompleted()) {\n shouldComplete = true;\n }\n if (result.done) {\n destination.complete();\n return;\n }\n args.push(result.value);\n }\n if (this.resultSelector) {\n this._tryresultSelector(args);\n }\n else {\n destination.next(args);\n }\n if (shouldComplete) {\n destination.complete();\n }\n };\n ZipSubscriber.prototype._tryresultSelector = function (args) {\n var result;\n try {\n result = this.resultSelector.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return ZipSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__[\"Subscriber\"]));\n\nvar StaticIterator = (function () {\n function StaticIterator(iterator) {\n this.iterator = iterator;\n this.nextResult = iterator.next();\n }\n StaticIterator.prototype.hasValue = function () {\n return true;\n };\n StaticIterator.prototype.next = function () {\n var result = this.nextResult;\n this.nextResult = this.iterator.next();\n return result;\n };\n StaticIterator.prototype.hasCompleted = function () {\n var nextResult = this.nextResult;\n return nextResult && !!nextResult.done;\n };\n return StaticIterator;\n}());\nvar StaticArrayIterator = (function () {\n function StaticArrayIterator(array) {\n this.array = array;\n this.index = 0;\n this.length = 0;\n this.length = array.length;\n }\n StaticArrayIterator.prototype[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__[\"iterator\"]] = function () {\n return this;\n };\n StaticArrayIterator.prototype.next = function (value) {\n var i = this.index++;\n var array = this.array;\n return i < this.length ? { value: array[i], done: false } : { value: null, done: true };\n };\n StaticArrayIterator.prototype.hasValue = function () {\n return this.array.length > this.index;\n };\n StaticArrayIterator.prototype.hasCompleted = function () {\n return this.array.length === this.index;\n };\n return StaticArrayIterator;\n}());\nvar ZipBufferIterator = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ZipBufferIterator, _super);\n function ZipBufferIterator(destination, parent, observable) {\n var _this = _super.call(this, destination) || this;\n _this.parent = parent;\n _this.observable = observable;\n _this.stillUnsubscribed = true;\n _this.buffer = [];\n _this.isComplete = false;\n return _this;\n }\n ZipBufferIterator.prototype[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__[\"iterator\"]] = function () {\n return this;\n };\n ZipBufferIterator.prototype.next = function () {\n var buffer = this.buffer;\n if (buffer.length === 0 && this.isComplete) {\n return { value: null, done: true };\n }\n else {\n return { value: buffer.shift(), done: false };\n }\n };\n ZipBufferIterator.prototype.hasValue = function () {\n return this.buffer.length > 0;\n };\n ZipBufferIterator.prototype.hasCompleted = function () {\n return this.buffer.length === 0 && this.isComplete;\n };\n ZipBufferIterator.prototype.notifyComplete = function () {\n if (this.buffer.length > 0) {\n this.isComplete = true;\n this.parent.notifyInactive();\n }\n else {\n this.destination.complete();\n }\n };\n ZipBufferIterator.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.buffer.push(innerValue);\n this.parent.checkIterators();\n };\n ZipBufferIterator.prototype.subscribe = function (value, index) {\n return Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__[\"subscribeToResult\"])(this, this.observable, this, index);\n };\n return ZipBufferIterator;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__[\"OuterSubscriber\"]));\n//# sourceMappingURL=zip.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/zip.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/audit.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/audit.js ***! + \*****************************************************************/ +/*! exports provided: audit */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"audit\", function() { return audit; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nfunction audit(durationSelector) {\n return function auditOperatorFunction(source) {\n return source.lift(new AuditOperator(durationSelector));\n };\n}\nvar AuditOperator = (function () {\n function AuditOperator(durationSelector) {\n this.durationSelector = durationSelector;\n }\n AuditOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector));\n };\n return AuditOperator;\n}());\nvar AuditSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AuditSubscriber, _super);\n function AuditSubscriber(destination, durationSelector) {\n var _this = _super.call(this, destination) || this;\n _this.durationSelector = durationSelector;\n _this.value = null;\n _this.hasValue = false;\n _this.throttled = null;\n return _this;\n }\n AuditSubscriber.prototype._next = function (value) {\n this.value = value;\n this.hasValue = true;\n if (!this.throttled) {\n var duration = void 0;\n try {\n var durationSelector = this.durationSelector;\n duration = durationSelector(value);\n }\n catch (err) {\n return this.destination.error(err);\n }\n var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(this, duration);\n if (!innerSubscription || innerSubscription.closed) {\n this.clearThrottle();\n }\n else {\n this.add(this.throttled = innerSubscription);\n }\n }\n };\n AuditSubscriber.prototype.clearThrottle = function () {\n var _a = this, value = _a.value, hasValue = _a.hasValue, throttled = _a.throttled;\n if (throttled) {\n this.remove(throttled);\n this.throttled = null;\n throttled.unsubscribe();\n }\n if (hasValue) {\n this.value = null;\n this.hasValue = false;\n this.destination.next(value);\n }\n };\n AuditSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex) {\n this.clearThrottle();\n };\n AuditSubscriber.prototype.notifyComplete = function () {\n this.clearThrottle();\n };\n return AuditSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=audit.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/audit.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/auditTime.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/auditTime.js ***! + \*********************************************************************/ +/*! exports provided: auditTime */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"auditTime\", function() { return auditTime; });\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _audit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./audit */ \"./node_modules/rxjs/dist/esm5/internal/operators/audit.js\");\n/* harmony import */ var _observable_timer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../observable/timer */ \"./node_modules/rxjs/dist/esm5/internal/observable/timer.js\");\n\n\n\nfunction auditTime(duration, scheduler) {\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__[\"async\"]; }\n return Object(_audit__WEBPACK_IMPORTED_MODULE_1__[\"audit\"])(function () { return Object(_observable_timer__WEBPACK_IMPORTED_MODULE_2__[\"timer\"])(duration, scheduler); });\n}\n//# sourceMappingURL=auditTime.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/auditTime.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/buffer.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/buffer.js ***! + \******************************************************************/ +/*! exports provided: buffer */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"buffer\", function() { return buffer; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nfunction buffer(closingNotifier) {\n return function bufferOperatorFunction(source) {\n return source.lift(new BufferOperator(closingNotifier));\n };\n}\nvar BufferOperator = (function () {\n function BufferOperator(closingNotifier) {\n this.closingNotifier = closingNotifier;\n }\n BufferOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier));\n };\n return BufferOperator;\n}());\nvar BufferSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(BufferSubscriber, _super);\n function BufferSubscriber(destination, closingNotifier) {\n var _this = _super.call(this, destination) || this;\n _this.buffer = [];\n _this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(_this, closingNotifier));\n return _this;\n }\n BufferSubscriber.prototype._next = function (value) {\n this.buffer.push(value);\n };\n BufferSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var buffer = this.buffer;\n this.buffer = [];\n this.destination.next(buffer);\n };\n return BufferSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=buffer.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/buffer.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/bufferCount.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/bufferCount.js ***! + \***********************************************************************/ +/*! exports provided: bufferCount */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bufferCount\", function() { return bufferCount; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction bufferCount(bufferSize, startBufferEvery) {\n if (startBufferEvery === void 0) { startBufferEvery = null; }\n return function bufferCountOperatorFunction(source) {\n return source.lift(new BufferCountOperator(bufferSize, startBufferEvery));\n };\n}\nvar BufferCountOperator = (function () {\n function BufferCountOperator(bufferSize, startBufferEvery) {\n this.bufferSize = bufferSize;\n this.startBufferEvery = startBufferEvery;\n if (!startBufferEvery || bufferSize === startBufferEvery) {\n this.subscriberClass = BufferCountSubscriber;\n }\n else {\n this.subscriberClass = BufferSkipCountSubscriber;\n }\n }\n BufferCountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery));\n };\n return BufferCountOperator;\n}());\nvar BufferCountSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(BufferCountSubscriber, _super);\n function BufferCountSubscriber(destination, bufferSize) {\n var _this = _super.call(this, destination) || this;\n _this.bufferSize = bufferSize;\n _this.buffer = [];\n return _this;\n }\n BufferCountSubscriber.prototype._next = function (value) {\n var buffer = this.buffer;\n buffer.push(value);\n if (buffer.length == this.bufferSize) {\n this.destination.next(buffer);\n this.buffer = [];\n }\n };\n BufferCountSubscriber.prototype._complete = function () {\n var buffer = this.buffer;\n if (buffer.length > 0) {\n this.destination.next(buffer);\n }\n _super.prototype._complete.call(this);\n };\n return BufferCountSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\nvar BufferSkipCountSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(BufferSkipCountSubscriber, _super);\n function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) {\n var _this = _super.call(this, destination) || this;\n _this.bufferSize = bufferSize;\n _this.startBufferEvery = startBufferEvery;\n _this.buffers = [];\n _this.count = 0;\n return _this;\n }\n BufferSkipCountSubscriber.prototype._next = function (value) {\n var _a = this, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers, count = _a.count;\n this.count++;\n if (count % startBufferEvery === 0) {\n buffers.push([]);\n }\n for (var i = buffers.length; i--;) {\n var buffer = buffers[i];\n buffer.push(value);\n if (buffer.length === bufferSize) {\n buffers.splice(i, 1);\n this.destination.next(buffer);\n }\n }\n };\n BufferSkipCountSubscriber.prototype._complete = function () {\n var _a = this, buffers = _a.buffers, destination = _a.destination;\n while (buffers.length > 0) {\n var buffer = buffers.shift();\n if (buffer.length > 0) {\n destination.next(buffer);\n }\n }\n _super.prototype._complete.call(this);\n };\n return BufferSkipCountSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=bufferCount.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/bufferCount.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/bufferTime.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/bufferTime.js ***! + \**********************************************************************/ +/*! exports provided: bufferTime */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bufferTime\", function() { return bufferTime; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n\n\n\n\nfunction bufferTime(bufferTimeSpan) {\n var length = arguments.length;\n var scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__[\"async\"];\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_3__[\"isScheduler\"])(arguments[arguments.length - 1])) {\n scheduler = arguments[arguments.length - 1];\n length--;\n }\n var bufferCreationInterval = null;\n if (length >= 2) {\n bufferCreationInterval = arguments[1];\n }\n var maxBufferSize = Number.POSITIVE_INFINITY;\n if (length >= 3) {\n maxBufferSize = arguments[2];\n }\n return function bufferTimeOperatorFunction(source) {\n return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler));\n };\n}\nvar BufferTimeOperator = (function () {\n function BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n this.bufferTimeSpan = bufferTimeSpan;\n this.bufferCreationInterval = bufferCreationInterval;\n this.maxBufferSize = maxBufferSize;\n this.scheduler = scheduler;\n }\n BufferTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferTimeSubscriber(subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler));\n };\n return BufferTimeOperator;\n}());\nvar Context = (function () {\n function Context() {\n this.buffer = [];\n }\n return Context;\n}());\nvar BufferTimeSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(BufferTimeSubscriber, _super);\n function BufferTimeSubscriber(destination, bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.bufferTimeSpan = bufferTimeSpan;\n _this.bufferCreationInterval = bufferCreationInterval;\n _this.maxBufferSize = maxBufferSize;\n _this.scheduler = scheduler;\n _this.contexts = [];\n var context = _this.openContext();\n _this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0;\n if (_this.timespanOnly) {\n var timeSpanOnlyState = { subscriber: _this, context: context, bufferTimeSpan: bufferTimeSpan };\n _this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n }\n else {\n var closeState = { subscriber: _this, context: context };\n var creationState = { bufferTimeSpan: bufferTimeSpan, bufferCreationInterval: bufferCreationInterval, subscriber: _this, scheduler: scheduler };\n _this.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState));\n _this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState));\n }\n return _this;\n }\n BufferTimeSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n var len = contexts.length;\n var filledBufferContext;\n for (var i = 0; i < len; i++) {\n var context_1 = contexts[i];\n var buffer = context_1.buffer;\n buffer.push(value);\n if (buffer.length == this.maxBufferSize) {\n filledBufferContext = context_1;\n }\n }\n if (filledBufferContext) {\n this.onBufferFull(filledBufferContext);\n }\n };\n BufferTimeSubscriber.prototype._error = function (err) {\n this.contexts.length = 0;\n _super.prototype._error.call(this, err);\n };\n BufferTimeSubscriber.prototype._complete = function () {\n var _a = this, contexts = _a.contexts, destination = _a.destination;\n while (contexts.length > 0) {\n var context_2 = contexts.shift();\n destination.next(context_2.buffer);\n }\n _super.prototype._complete.call(this);\n };\n BufferTimeSubscriber.prototype._unsubscribe = function () {\n this.contexts = null;\n };\n BufferTimeSubscriber.prototype.onBufferFull = function (context) {\n this.closeContext(context);\n var closeAction = context.closeAction;\n closeAction.unsubscribe();\n this.remove(closeAction);\n if (!this.closed && this.timespanOnly) {\n context = this.openContext();\n var bufferTimeSpan = this.bufferTimeSpan;\n var timeSpanOnlyState = { subscriber: this, context: context, bufferTimeSpan: bufferTimeSpan };\n this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n }\n };\n BufferTimeSubscriber.prototype.openContext = function () {\n var context = new Context();\n this.contexts.push(context);\n return context;\n };\n BufferTimeSubscriber.prototype.closeContext = function (context) {\n this.destination.next(context.buffer);\n var contexts = this.contexts;\n var spliceIndex = contexts ? contexts.indexOf(context) : -1;\n if (spliceIndex >= 0) {\n contexts.splice(contexts.indexOf(context), 1);\n }\n };\n return BufferTimeSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_2__[\"Subscriber\"]));\nfunction dispatchBufferTimeSpanOnly(state) {\n var subscriber = state.subscriber;\n var prevContext = state.context;\n if (prevContext) {\n subscriber.closeContext(prevContext);\n }\n if (!subscriber.closed) {\n state.context = subscriber.openContext();\n state.context.closeAction = this.schedule(state, state.bufferTimeSpan);\n }\n}\nfunction dispatchBufferCreation(state) {\n var bufferCreationInterval = state.bufferCreationInterval, bufferTimeSpan = state.bufferTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler;\n var context = subscriber.openContext();\n var action = this;\n if (!subscriber.closed) {\n subscriber.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, { subscriber: subscriber, context: context }));\n action.schedule(state, bufferCreationInterval);\n }\n}\nfunction dispatchBufferClose(arg) {\n var subscriber = arg.subscriber, context = arg.context;\n subscriber.closeContext(context);\n}\n//# sourceMappingURL=bufferTime.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/bufferTime.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/bufferToggle.js": +/*!************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/bufferToggle.js ***! + \************************************************************************/ +/*! exports provided: bufferToggle */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bufferToggle\", function() { return bufferToggle; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n\n\n\n\nfunction bufferToggle(openings, closingSelector) {\n return function bufferToggleOperatorFunction(source) {\n return source.lift(new BufferToggleOperator(openings, closingSelector));\n };\n}\nvar BufferToggleOperator = (function () {\n function BufferToggleOperator(openings, closingSelector) {\n this.openings = openings;\n this.closingSelector = closingSelector;\n }\n BufferToggleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector));\n };\n return BufferToggleOperator;\n}());\nvar BufferToggleSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(BufferToggleSubscriber, _super);\n function BufferToggleSubscriber(destination, openings, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.openings = openings;\n _this.closingSelector = closingSelector;\n _this.contexts = [];\n _this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(_this, openings));\n return _this;\n }\n BufferToggleSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n var len = contexts.length;\n for (var i = 0; i < len; i++) {\n contexts[i].buffer.push(value);\n }\n };\n BufferToggleSubscriber.prototype._error = function (err) {\n var contexts = this.contexts;\n while (contexts.length > 0) {\n var context_1 = contexts.shift();\n context_1.subscription.unsubscribe();\n context_1.buffer = null;\n context_1.subscription = null;\n }\n this.contexts = null;\n _super.prototype._error.call(this, err);\n };\n BufferToggleSubscriber.prototype._complete = function () {\n var contexts = this.contexts;\n while (contexts.length > 0) {\n var context_2 = contexts.shift();\n this.destination.next(context_2.buffer);\n context_2.subscription.unsubscribe();\n context_2.buffer = null;\n context_2.subscription = null;\n }\n this.contexts = null;\n _super.prototype._complete.call(this);\n };\n BufferToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue);\n };\n BufferToggleSubscriber.prototype.notifyComplete = function (innerSub) {\n this.closeBuffer(innerSub.context);\n };\n BufferToggleSubscriber.prototype.openBuffer = function (value) {\n try {\n var closingSelector = this.closingSelector;\n var closingNotifier = closingSelector.call(this, value);\n if (closingNotifier) {\n this.trySubscribe(closingNotifier);\n }\n }\n catch (err) {\n this._error(err);\n }\n };\n BufferToggleSubscriber.prototype.closeBuffer = function (context) {\n var contexts = this.contexts;\n if (contexts && context) {\n var buffer = context.buffer, subscription = context.subscription;\n this.destination.next(buffer);\n contexts.splice(contexts.indexOf(context), 1);\n this.remove(subscription);\n subscription.unsubscribe();\n }\n };\n BufferToggleSubscriber.prototype.trySubscribe = function (closingNotifier) {\n var contexts = this.contexts;\n var buffer = [];\n var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]();\n var context = { buffer: buffer, subscription: subscription };\n contexts.push(context);\n var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(this, closingNotifier, context);\n if (!innerSubscription || innerSubscription.closed) {\n this.closeBuffer(context);\n }\n else {\n innerSubscription.context = context;\n this.add(innerSubscription);\n subscription.add(innerSubscription);\n }\n };\n return BufferToggleSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__[\"OuterSubscriber\"]));\n//# sourceMappingURL=bufferToggle.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/bufferToggle.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/bufferWhen.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/bufferWhen.js ***! + \**********************************************************************/ +/*! exports provided: bufferWhen */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bufferWhen\", function() { return bufferWhen; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\nfunction bufferWhen(closingSelector) {\n return function (source) {\n return source.lift(new BufferWhenOperator(closingSelector));\n };\n}\nvar BufferWhenOperator = (function () {\n function BufferWhenOperator(closingSelector) {\n this.closingSelector = closingSelector;\n }\n BufferWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector));\n };\n return BufferWhenOperator;\n}());\nvar BufferWhenSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(BufferWhenSubscriber, _super);\n function BufferWhenSubscriber(destination, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.closingSelector = closingSelector;\n _this.subscribing = false;\n _this.openBuffer();\n return _this;\n }\n BufferWhenSubscriber.prototype._next = function (value) {\n this.buffer.push(value);\n };\n BufferWhenSubscriber.prototype._complete = function () {\n var buffer = this.buffer;\n if (buffer) {\n this.destination.next(buffer);\n }\n _super.prototype._complete.call(this);\n };\n BufferWhenSubscriber.prototype._unsubscribe = function () {\n this.buffer = null;\n this.subscribing = false;\n };\n BufferWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.openBuffer();\n };\n BufferWhenSubscriber.prototype.notifyComplete = function () {\n if (this.subscribing) {\n this.complete();\n }\n else {\n this.openBuffer();\n }\n };\n BufferWhenSubscriber.prototype.openBuffer = function () {\n var closingSubscription = this.closingSubscription;\n if (closingSubscription) {\n this.remove(closingSubscription);\n closingSubscription.unsubscribe();\n }\n var buffer = this.buffer;\n if (this.buffer) {\n this.destination.next(buffer);\n }\n this.buffer = [];\n var closingNotifier;\n try {\n var closingSelector = this.closingSelector;\n closingNotifier = closingSelector();\n }\n catch (err) {\n return this.error(err);\n }\n closingSubscription = new _Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]();\n this.closingSubscription = closingSubscription;\n this.add(closingSubscription);\n this.subscribing = true;\n closingSubscription.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToResult\"])(this, closingNotifier));\n this.subscribing = false;\n };\n return BufferWhenSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"OuterSubscriber\"]));\n//# sourceMappingURL=bufferWhen.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/bufferWhen.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/catchError.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/catchError.js ***! + \**********************************************************************/ +/*! exports provided: catchError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"catchError\", function() { return catchError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../InnerSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\nfunction catchError(selector) {\n return function catchErrorOperatorFunction(source) {\n var operator = new CatchOperator(selector);\n var caught = source.lift(operator);\n return (operator.caught = caught);\n };\n}\nvar CatchOperator = (function () {\n function CatchOperator(selector) {\n this.selector = selector;\n }\n CatchOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));\n };\n return CatchOperator;\n}());\nvar CatchSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(CatchSubscriber, _super);\n function CatchSubscriber(destination, selector, caught) {\n var _this = _super.call(this, destination) || this;\n _this.selector = selector;\n _this.caught = caught;\n return _this;\n }\n CatchSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var result = void 0;\n try {\n result = this.selector(err, this.caught);\n }\n catch (err2) {\n _super.prototype.error.call(this, err2);\n return;\n }\n this._unsubscribeAndRecycle();\n var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"InnerSubscriber\"](this, undefined, undefined);\n this.add(innerSubscriber);\n var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToResult\"])(this, result, undefined, undefined, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n this.add(innerSubscription);\n }\n }\n };\n return CatchSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=catchError.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/catchError.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/combineAll.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/combineAll.js ***! + \**********************************************************************/ +/*! exports provided: combineAll */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"combineAll\", function() { return combineAll; });\n/* harmony import */ var _observable_combineLatest__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../observable/combineLatest */ \"./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js\");\n\nfunction combineAll(project) {\n return function (source) { return source.lift(new _observable_combineLatest__WEBPACK_IMPORTED_MODULE_0__[\"CombineLatestOperator\"](project)); };\n}\n//# sourceMappingURL=combineAll.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/combineAll.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/combineLatestWith.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/combineLatestWith.js ***! + \*****************************************************************************/ +/*! exports provided: combineLatest, combineLatestWith */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"combineLatest\", function() { return combineLatest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"combineLatestWith\", function() { return combineLatestWith; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _observable_combineLatest__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../observable/combineLatest */ \"./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js\");\n/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../observable/from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n\n\n\n\nfunction combineLatest() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var project = undefined;\n if (typeof observables[observables.length - 1] === 'function') {\n project = observables.pop();\n }\n if (observables.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__[\"isArray\"])(observables[0])) {\n observables = observables[0].slice();\n }\n return function (source) { return source.lift.call(Object(_observable_from__WEBPACK_IMPORTED_MODULE_3__[\"from\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])([source], observables)), new _observable_combineLatest__WEBPACK_IMPORTED_MODULE_2__[\"CombineLatestOperator\"](project)); };\n}\nfunction combineLatestWith() {\n var otherSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n otherSources[_i] = arguments[_i];\n }\n return combineLatest.apply(void 0, otherSources);\n}\n//# sourceMappingURL=combineLatestWith.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/combineLatestWith.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/concat.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/concat.js ***! + \******************************************************************/ +/*! exports provided: concat */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"concat\", function() { return concat; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _observable_concat__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../observable/concat */ \"./node_modules/rxjs/dist/esm5/internal/observable/concat.js\");\n\n\nfunction concat() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function (source) { return source.lift.call(_observable_concat__WEBPACK_IMPORTED_MODULE_1__[\"concat\"].apply(void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])([source], observables)), undefined); };\n}\n//# sourceMappingURL=concat.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/concat.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/concatAll.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/concatAll.js ***! + \*********************************************************************/ +/*! exports provided: concatAll */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"concatAll\", function() { return concatAll; });\n/* harmony import */ var _mergeAll__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mergeAll */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js\");\n\nfunction concatAll() {\n return Object(_mergeAll__WEBPACK_IMPORTED_MODULE_0__[\"mergeAll\"])(1);\n}\n//# sourceMappingURL=concatAll.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/concatAll.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/concatMap.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/concatMap.js ***! + \*********************************************************************/ +/*! exports provided: concatMap */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"concatMap\", function() { return concatMap; });\n/* harmony import */ var _mergeMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mergeMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js\");\n\nfunction concatMap(project, resultSelector) {\n if (typeof resultSelector === 'function') {\n return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__[\"mergeMap\"])(project, resultSelector, 1);\n }\n return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__[\"mergeMap\"])(project, 1);\n}\n//# sourceMappingURL=concatMap.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/concatMap.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/concatMapTo.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/concatMapTo.js ***! + \***********************************************************************/ +/*! exports provided: concatMapTo */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"concatMapTo\", function() { return concatMapTo; });\n/* harmony import */ var _concatMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./concatMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/concatMap.js\");\n\nfunction concatMapTo(innerObservable, resultSelector) {\n if (typeof resultSelector === 'function') {\n return Object(_concatMap__WEBPACK_IMPORTED_MODULE_0__[\"concatMap\"])(function () { return innerObservable; }, resultSelector);\n }\n return Object(_concatMap__WEBPACK_IMPORTED_MODULE_0__[\"concatMap\"])(function () { return innerObservable; });\n}\n//# sourceMappingURL=concatMapTo.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/concatMapTo.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/concatWith.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/concatWith.js ***! + \**********************************************************************/ +/*! exports provided: concatWith */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"concatWith\", function() { return concatWith; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _observable_concat__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../observable/concat */ \"./node_modules/rxjs/dist/esm5/internal/observable/concat.js\");\n\n\nfunction concatWith() {\n var otherSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n otherSources[_i] = arguments[_i];\n }\n return function (source) { return source.lift.call(_observable_concat__WEBPACK_IMPORTED_MODULE_1__[\"concat\"].apply(void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])([source], otherSources)), undefined); };\n}\n//# sourceMappingURL=concatWith.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/concatWith.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/count.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/count.js ***! + \*****************************************************************/ +/*! exports provided: count */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"count\", function() { return count; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction count(predicate) {\n return function (source) { return source.lift(new CountOperator(predicate, source)); };\n}\nvar CountOperator = (function () {\n function CountOperator(predicate, source) {\n this.predicate = predicate;\n this.source = source;\n }\n CountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source));\n };\n return CountOperator;\n}());\nvar CountSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(CountSubscriber, _super);\n function CountSubscriber(destination, predicate, source) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.source = source;\n _this.count = 0;\n _this.index = 0;\n return _this;\n }\n CountSubscriber.prototype._next = function (value) {\n if (this.predicate) {\n this._tryPredicate(value);\n }\n else {\n this.count++;\n }\n };\n CountSubscriber.prototype._tryPredicate = function (value) {\n var result;\n try {\n result = this.predicate(value, this.index++, this.source);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.count++;\n }\n };\n CountSubscriber.prototype._complete = function () {\n this.destination.next(this.count);\n this.destination.complete();\n };\n return CountSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=count.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/count.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/debounce.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/debounce.js ***! + \********************************************************************/ +/*! exports provided: debounce */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"debounce\", function() { return debounce; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nfunction debounce(durationSelector) {\n return function (source) { return source.lift(new DebounceOperator(durationSelector)); };\n}\nvar DebounceOperator = (function () {\n function DebounceOperator(durationSelector) {\n this.durationSelector = durationSelector;\n }\n DebounceOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector));\n };\n return DebounceOperator;\n}());\nvar DebounceSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(DebounceSubscriber, _super);\n function DebounceSubscriber(destination, durationSelector) {\n var _this = _super.call(this, destination) || this;\n _this.durationSelector = durationSelector;\n _this.value = null;\n _this.hasValue = false;\n _this.durationSubscription = null;\n return _this;\n }\n DebounceSubscriber.prototype._next = function (value) {\n try {\n var result = this.durationSelector.call(this, value);\n if (result) {\n this._tryNext(value, result);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n DebounceSubscriber.prototype._complete = function () {\n this.emitValue();\n this.destination.complete();\n };\n DebounceSubscriber.prototype._tryNext = function (value, duration) {\n var subscription = this.durationSubscription;\n this.value = value;\n this.hasValue = true;\n if (subscription) {\n subscription.unsubscribe();\n this.remove(subscription);\n }\n subscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(this, duration);\n if (subscription && !subscription.closed) {\n this.add(this.durationSubscription = subscription);\n }\n };\n DebounceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.emitValue();\n };\n DebounceSubscriber.prototype.notifyComplete = function () {\n this.emitValue();\n };\n DebounceSubscriber.prototype.emitValue = function () {\n if (this.hasValue) {\n var value = this.value;\n var subscription = this.durationSubscription;\n if (subscription) {\n this.durationSubscription = null;\n subscription.unsubscribe();\n this.remove(subscription);\n }\n this.value = null;\n this.hasValue = false;\n _super.prototype._next.call(this, value);\n }\n };\n return DebounceSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=debounce.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/debounce.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js": +/*!************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js ***! + \************************************************************************/ +/*! exports provided: debounceTime */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"debounceTime\", function() { return debounceTime; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n\n\n\nfunction debounceTime(dueTime, scheduler) {\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_2__[\"async\"]; }\n return function (source) { return source.lift(new DebounceTimeOperator(dueTime, scheduler)); };\n}\nvar DebounceTimeOperator = (function () {\n function DebounceTimeOperator(dueTime, scheduler) {\n this.dueTime = dueTime;\n this.scheduler = scheduler;\n }\n DebounceTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler));\n };\n return DebounceTimeOperator;\n}());\nvar DebounceTimeSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(DebounceTimeSubscriber, _super);\n function DebounceTimeSubscriber(destination, dueTime, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.dueTime = dueTime;\n _this.scheduler = scheduler;\n _this.debouncedSubscription = null;\n _this.lastValue = null;\n _this.hasValue = false;\n return _this;\n }\n DebounceTimeSubscriber.prototype._next = function (value) {\n this.clearDebounce();\n this.lastValue = value;\n this.hasValue = true;\n this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this));\n };\n DebounceTimeSubscriber.prototype._complete = function () {\n this.debouncedNext();\n this.destination.complete();\n };\n DebounceTimeSubscriber.prototype.debouncedNext = function () {\n this.clearDebounce();\n if (this.hasValue) {\n var lastValue = this.lastValue;\n this.lastValue = null;\n this.hasValue = false;\n this.destination.next(lastValue);\n }\n };\n DebounceTimeSubscriber.prototype.clearDebounce = function () {\n var debouncedSubscription = this.debouncedSubscription;\n if (debouncedSubscription !== null) {\n this.remove(debouncedSubscription);\n debouncedSubscription.unsubscribe();\n this.debouncedSubscription = null;\n }\n };\n return DebounceTimeSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\nfunction dispatchNext(subscriber) {\n subscriber.debouncedNext();\n}\n//# sourceMappingURL=debounceTime.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js ***! + \**************************************************************************/ +/*! exports provided: defaultIfEmpty */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultIfEmpty\", function() { return defaultIfEmpty; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction defaultIfEmpty(defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n return function (source) { return source.lift(new DefaultIfEmptyOperator(defaultValue)); };\n}\nvar DefaultIfEmptyOperator = (function () {\n function DefaultIfEmptyOperator(defaultValue) {\n this.defaultValue = defaultValue;\n }\n DefaultIfEmptyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));\n };\n return DefaultIfEmptyOperator;\n}());\nvar DefaultIfEmptySubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(DefaultIfEmptySubscriber, _super);\n function DefaultIfEmptySubscriber(destination, defaultValue) {\n var _this = _super.call(this, destination) || this;\n _this.defaultValue = defaultValue;\n _this.isEmpty = true;\n return _this;\n }\n DefaultIfEmptySubscriber.prototype._next = function (value) {\n this.isEmpty = false;\n this.destination.next(value);\n };\n DefaultIfEmptySubscriber.prototype._complete = function () {\n if (this.isEmpty) {\n this.destination.next(this.defaultValue);\n }\n this.destination.complete();\n };\n return DefaultIfEmptySubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=defaultIfEmpty.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/delay.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/delay.js ***! + \*****************************************************************/ +/*! exports provided: delay */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"delay\", function() { return delay; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _util_isDate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isDate */ \"./node_modules/rxjs/dist/esm5/internal/util/isDate.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _Notification__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Notification */ \"./node_modules/rxjs/dist/esm5/internal/Notification.js\");\n\n\n\n\n\nfunction delay(delay, scheduler) {\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__[\"async\"]; }\n var absoluteDelay = Object(_util_isDate__WEBPACK_IMPORTED_MODULE_2__[\"isDate\"])(delay);\n var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);\n return function (source) { return source.lift(new DelayOperator(delayFor, scheduler)); };\n}\nvar DelayOperator = (function () {\n function DelayOperator(delay, scheduler) {\n this.delay = delay;\n this.scheduler = scheduler;\n }\n DelayOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));\n };\n return DelayOperator;\n}());\nvar DelaySubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(DelaySubscriber, _super);\n function DelaySubscriber(destination, delay, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.delay = delay;\n _this.scheduler = scheduler;\n _this.queue = [];\n _this.active = false;\n _this.errored = false;\n return _this;\n }\n DelaySubscriber.dispatch = function (state) {\n var source = state.source;\n var queue = source.queue;\n var scheduler = state.scheduler;\n var destination = state.destination;\n while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {\n queue.shift().notification.observe(destination);\n }\n if (queue.length > 0) {\n var delay_1 = Math.max(0, queue[0].time - scheduler.now());\n this.schedule(state, delay_1);\n }\n else if (source.isStopped) {\n source.destination.complete();\n source.active = false;\n }\n else {\n this.unsubscribe();\n source.active = false;\n }\n };\n DelaySubscriber.prototype._schedule = function (scheduler) {\n this.active = true;\n var destination = this.destination;\n destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {\n source: this, destination: this.destination, scheduler: scheduler\n }));\n };\n DelaySubscriber.prototype.scheduleNotification = function (notification) {\n if (this.errored === true) {\n return;\n }\n var scheduler = this.scheduler;\n var message = new DelayMessage(scheduler.now() + this.delay, notification);\n this.queue.push(message);\n if (this.active === false) {\n this._schedule(scheduler);\n }\n };\n DelaySubscriber.prototype._next = function (value) {\n this.scheduleNotification(_Notification__WEBPACK_IMPORTED_MODULE_4__[\"Notification\"].createNext(value));\n };\n DelaySubscriber.prototype._error = function (err) {\n this.errored = true;\n this.queue = [];\n this.destination.error(err);\n this.unsubscribe();\n };\n DelaySubscriber.prototype._complete = function () {\n if (this.queue.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n return DelaySubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__[\"Subscriber\"]));\nvar DelayMessage = (function () {\n function DelayMessage(time, notification) {\n this.time = time;\n this.notification = notification;\n }\n return DelayMessage;\n}());\n//# sourceMappingURL=delay.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/delay.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/delayWhen.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/delayWhen.js ***! + \*********************************************************************/ +/*! exports provided: delayWhen */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"delayWhen\", function() { return delayWhen; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\n\nfunction delayWhen(delayDurationSelector, subscriptionDelay) {\n if (subscriptionDelay) {\n return function (source) {\n return new SubscriptionDelayObservable(source, subscriptionDelay)\n .lift(new DelayWhenOperator(delayDurationSelector));\n };\n }\n return function (source) { return source.lift(new DelayWhenOperator(delayDurationSelector)); };\n}\nvar DelayWhenOperator = (function () {\n function DelayWhenOperator(delayDurationSelector) {\n this.delayDurationSelector = delayDurationSelector;\n }\n DelayWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector));\n };\n return DelayWhenOperator;\n}());\nvar DelayWhenSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(DelayWhenSubscriber, _super);\n function DelayWhenSubscriber(destination, delayDurationSelector) {\n var _this = _super.call(this, destination) || this;\n _this.delayDurationSelector = delayDurationSelector;\n _this.completed = false;\n _this.delayNotifierSubscriptions = [];\n _this.index = 0;\n return _this;\n }\n DelayWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(outerValue);\n this.removeSubscription(innerSub);\n this.tryComplete();\n };\n DelayWhenSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n DelayWhenSubscriber.prototype.notifyComplete = function (innerSub) {\n var value = this.removeSubscription(innerSub);\n if (value) {\n this.destination.next(value);\n }\n this.tryComplete();\n };\n DelayWhenSubscriber.prototype._next = function (value) {\n var index = this.index++;\n try {\n var delayNotifier = this.delayDurationSelector(value, index);\n if (delayNotifier) {\n this.tryDelay(delayNotifier, value);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n DelayWhenSubscriber.prototype._complete = function () {\n this.completed = true;\n this.tryComplete();\n this.unsubscribe();\n };\n DelayWhenSubscriber.prototype.removeSubscription = function (subscription) {\n subscription.unsubscribe();\n var subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription);\n if (subscriptionIdx !== -1) {\n this.delayNotifierSubscriptions.splice(subscriptionIdx, 1);\n }\n return subscription.outerValue;\n };\n DelayWhenSubscriber.prototype.tryDelay = function (delayNotifier, value) {\n var notifierSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__[\"subscribeToResult\"])(this, delayNotifier, value);\n if (notifierSubscription && !notifierSubscription.closed) {\n var destination = this.destination;\n destination.add(notifierSubscription);\n this.delayNotifierSubscriptions.push(notifierSubscription);\n }\n };\n DelayWhenSubscriber.prototype.tryComplete = function () {\n if (this.completed && this.delayNotifierSubscriptions.length === 0) {\n this.destination.complete();\n }\n };\n return DelayWhenSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__[\"OuterSubscriber\"]));\nvar SubscriptionDelayObservable = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SubscriptionDelayObservable, _super);\n function SubscriptionDelayObservable(source, subscriptionDelay) {\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.subscriptionDelay = subscriptionDelay;\n return _this;\n }\n SubscriptionDelayObservable.prototype._subscribe = function (subscriber) {\n this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source));\n };\n return SubscriptionDelayObservable;\n}(_Observable__WEBPACK_IMPORTED_MODULE_2__[\"Observable\"]));\nvar SubscriptionDelaySubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SubscriptionDelaySubscriber, _super);\n function SubscriptionDelaySubscriber(parent, source) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.source = source;\n _this.sourceSubscribed = false;\n return _this;\n }\n SubscriptionDelaySubscriber.prototype._next = function (unused) {\n this.subscribeToSource();\n };\n SubscriptionDelaySubscriber.prototype._error = function (err) {\n this.unsubscribe();\n this.parent.error(err);\n };\n SubscriptionDelaySubscriber.prototype._complete = function () {\n this.unsubscribe();\n this.subscribeToSource();\n };\n SubscriptionDelaySubscriber.prototype.subscribeToSource = function () {\n if (!this.sourceSubscribed) {\n this.sourceSubscribed = true;\n this.unsubscribe();\n this.source.subscribe(this.parent);\n }\n };\n return SubscriptionDelaySubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=delayWhen.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/delayWhen.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/dematerialize.js": +/*!*************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/dematerialize.js ***! + \*************************************************************************/ +/*! exports provided: dematerialize */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dematerialize\", function() { return dematerialize; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction dematerialize() {\n return function dematerializeOperatorFunction(source) {\n return source.lift(new DeMaterializeOperator());\n };\n}\nvar DeMaterializeOperator = (function () {\n function DeMaterializeOperator() {\n }\n DeMaterializeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DeMaterializeSubscriber(subscriber));\n };\n return DeMaterializeOperator;\n}());\nvar DeMaterializeSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(DeMaterializeSubscriber, _super);\n function DeMaterializeSubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n DeMaterializeSubscriber.prototype._next = function (value) {\n value.observe(this.destination);\n };\n return DeMaterializeSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=dematerialize.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/dematerialize.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/distinct.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/distinct.js ***! + \********************************************************************/ +/*! exports provided: distinct, DistinctSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"distinct\", function() { return distinct; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DistinctSubscriber\", function() { return DistinctSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nfunction distinct(keySelector, flushes) {\n return function (source) { return source.lift(new DistinctOperator(keySelector, flushes)); };\n}\nvar DistinctOperator = (function () {\n function DistinctOperator(keySelector, flushes) {\n this.keySelector = keySelector;\n this.flushes = flushes;\n }\n DistinctOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes));\n };\n return DistinctOperator;\n}());\nvar DistinctSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(DistinctSubscriber, _super);\n function DistinctSubscriber(destination, keySelector, flushes) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.values = new Set();\n if (flushes) {\n _this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(_this, flushes));\n }\n return _this;\n }\n DistinctSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.values.clear();\n };\n DistinctSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n DistinctSubscriber.prototype._next = function (value) {\n if (this.keySelector) {\n this._useKeySelector(value);\n }\n else {\n this._finalizeNext(value, value);\n }\n };\n DistinctSubscriber.prototype._useKeySelector = function (value) {\n var key;\n var destination = this.destination;\n try {\n key = this.keySelector(value);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this._finalizeNext(key, value);\n };\n DistinctSubscriber.prototype._finalizeNext = function (key, value) {\n var values = this.values;\n if (!values.has(key)) {\n values.add(key);\n this.destination.next(value);\n }\n };\n return DistinctSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n\n//# sourceMappingURL=distinct.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/distinct.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js": +/*!********************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js ***! + \********************************************************************************/ +/*! exports provided: distinctUntilChanged */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"distinctUntilChanged\", function() { return distinctUntilChanged; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction distinctUntilChanged(compare, keySelector) {\n return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); };\n}\nvar DistinctUntilChangedOperator = (function () {\n function DistinctUntilChangedOperator(compare, keySelector) {\n this.compare = compare;\n this.keySelector = keySelector;\n }\n DistinctUntilChangedOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));\n };\n return DistinctUntilChangedOperator;\n}());\nvar DistinctUntilChangedSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(DistinctUntilChangedSubscriber, _super);\n function DistinctUntilChangedSubscriber(destination, compare, keySelector) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.hasKey = false;\n if (typeof compare === 'function') {\n _this.compare = compare;\n }\n return _this;\n }\n DistinctUntilChangedSubscriber.prototype.compare = function (x, y) {\n return x === y;\n };\n DistinctUntilChangedSubscriber.prototype._next = function (value) {\n var key;\n try {\n var keySelector = this.keySelector;\n key = keySelector ? keySelector(value) : value;\n }\n catch (err) {\n return this.destination.error(err);\n }\n var result = false;\n if (this.hasKey) {\n try {\n var compare = this.compare;\n result = compare(this.key, key);\n }\n catch (err) {\n return this.destination.error(err);\n }\n }\n else {\n this.hasKey = true;\n }\n if (!result) {\n this.key = key;\n this.destination.next(value);\n }\n };\n return DistinctUntilChangedSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=distinctUntilChanged.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilKeyChanged.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilKeyChanged.js ***! + \***********************************************************************************/ +/*! exports provided: distinctUntilKeyChanged */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"distinctUntilKeyChanged\", function() { return distinctUntilKeyChanged; });\n/* harmony import */ var _distinctUntilChanged__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./distinctUntilChanged */ \"./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js\");\n\nfunction distinctUntilKeyChanged(key, compare) {\n return Object(_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_0__[\"distinctUntilChanged\"])(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; });\n}\n//# sourceMappingURL=distinctUntilKeyChanged.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilKeyChanged.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/elementAt.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/elementAt.js ***! + \*********************************************************************/ +/*! exports provided: elementAt */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"elementAt\", function() { return elementAt; });\n/* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/ArgumentOutOfRangeError */ \"./node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js\");\n/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./filter */ \"./node_modules/rxjs/dist/esm5/internal/operators/filter.js\");\n/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./throwIfEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js\");\n/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./defaultIfEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js\");\n/* harmony import */ var _take__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./take */ \"./node_modules/rxjs/dist/esm5/internal/operators/take.js\");\n\n\n\n\n\nfunction elementAt(index, defaultValue) {\n if (index < 0) {\n throw new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_0__[\"ArgumentOutOfRangeError\"]();\n }\n var hasDefaultValue = arguments.length >= 2;\n return function (source) { return source.pipe(Object(_filter__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(function (v, i) { return i === index; }), Object(_take__WEBPACK_IMPORTED_MODULE_4__[\"take\"])(1), hasDefaultValue\n ? Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__[\"defaultIfEmpty\"])(defaultValue)\n : Object(_throwIfEmpty__WEBPACK_IMPORTED_MODULE_2__[\"throwIfEmpty\"])(function () { return new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_0__[\"ArgumentOutOfRangeError\"](); })); };\n}\n//# sourceMappingURL=elementAt.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/elementAt.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/endWith.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/endWith.js ***! + \*******************************************************************/ +/*! exports provided: endWith */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"endWith\", function() { return endWith; });\n/* harmony import */ var _observable_concat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../observable/concat */ \"./node_modules/rxjs/dist/esm5/internal/observable/concat.js\");\n/* harmony import */ var _observable_of__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../observable/of */ \"./node_modules/rxjs/dist/esm5/internal/observable/of.js\");\n\n\nfunction endWith() {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n return function (source) { return Object(_observable_concat__WEBPACK_IMPORTED_MODULE_0__[\"concat\"])(source, _observable_of__WEBPACK_IMPORTED_MODULE_1__[\"of\"].apply(void 0, values)); };\n}\n//# sourceMappingURL=endWith.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/endWith.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/every.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/every.js ***! + \*****************************************************************/ +/*! exports provided: every */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"every\", function() { return every; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction every(predicate, thisArg) {\n return function (source) { return source.lift(new EveryOperator(predicate, thisArg, source)); };\n}\nvar EveryOperator = (function () {\n function EveryOperator(predicate, thisArg, source) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n this.source = source;\n }\n EveryOperator.prototype.call = function (observer, source) {\n return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source));\n };\n return EveryOperator;\n}());\nvar EverySubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(EverySubscriber, _super);\n function EverySubscriber(destination, predicate, thisArg, source) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.thisArg = thisArg;\n _this.source = source;\n _this.index = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n EverySubscriber.prototype.notifyComplete = function (everyValueMatch) {\n this.destination.next(everyValueMatch);\n this.destination.complete();\n };\n EverySubscriber.prototype._next = function (value) {\n var result = false;\n try {\n result = this.predicate.call(this.thisArg, value, this.index++, this.source);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (!result) {\n this.notifyComplete(false);\n }\n };\n EverySubscriber.prototype._complete = function () {\n this.notifyComplete(true);\n };\n return EverySubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=every.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/every.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/exhaust.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/exhaust.js ***! + \*******************************************************************/ +/*! exports provided: exhaust */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"exhaust\", function() { return exhaust; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nfunction exhaust() {\n return function (source) { return source.lift(new SwitchFirstOperator()); };\n}\nvar SwitchFirstOperator = (function () {\n function SwitchFirstOperator() {\n }\n SwitchFirstOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchFirstSubscriber(subscriber));\n };\n return SwitchFirstOperator;\n}());\nvar SwitchFirstSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SwitchFirstSubscriber, _super);\n function SwitchFirstSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.hasCompleted = false;\n _this.hasSubscription = false;\n return _this;\n }\n SwitchFirstSubscriber.prototype._next = function (value) {\n if (!this.hasSubscription) {\n this.hasSubscription = true;\n this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(this, value));\n }\n };\n SwitchFirstSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (!this.hasSubscription) {\n this.destination.complete();\n }\n };\n SwitchFirstSubscriber.prototype.notifyComplete = function (innerSub) {\n this.remove(innerSub);\n this.hasSubscription = false;\n if (this.hasCompleted) {\n this.destination.complete();\n }\n };\n return SwitchFirstSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=exhaust.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/exhaust.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/exhaustMap.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/exhaustMap.js ***! + \**********************************************************************/ +/*! exports provided: exhaustMap */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"exhaustMap\", function() { return exhaustMap; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../InnerSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../observable/from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n\n\n\n\n\n\nfunction exhaustMap(project, resultSelector) {\n if (resultSelector) {\n return function (source) { return source.pipe(exhaustMap(function (a, i) { return Object(_observable_from__WEBPACK_IMPORTED_MODULE_5__[\"from\"])(project(a, i)).pipe(Object(_map__WEBPACK_IMPORTED_MODULE_4__[\"map\"])(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };\n }\n return function (source) {\n return source.lift(new ExhaustMapOperator(project));\n };\n}\nvar ExhaustMapOperator = (function () {\n function ExhaustMapOperator(project) {\n this.project = project;\n }\n ExhaustMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project));\n };\n return ExhaustMapOperator;\n}());\nvar ExhaustMapSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ExhaustMapSubscriber, _super);\n function ExhaustMapSubscriber(destination, project) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.hasSubscription = false;\n _this.hasCompleted = false;\n _this.index = 0;\n return _this;\n }\n ExhaustMapSubscriber.prototype._next = function (value) {\n if (!this.hasSubscription) {\n this.tryNext(value);\n }\n };\n ExhaustMapSubscriber.prototype.tryNext = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.hasSubscription = true;\n this._innerSub(result, value, index);\n };\n ExhaustMapSubscriber.prototype._innerSub = function (result, value, index) {\n var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"InnerSubscriber\"](this, value, index);\n var destination = this.destination;\n destination.add(innerSubscriber);\n var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToResult\"])(this, result, undefined, undefined, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n };\n ExhaustMapSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (!this.hasSubscription) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n ExhaustMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n ExhaustMapSubscriber.prototype.notifyError = function (err) {\n this.destination.error(err);\n };\n ExhaustMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var destination = this.destination;\n destination.remove(innerSub);\n this.hasSubscription = false;\n if (this.hasCompleted) {\n this.destination.complete();\n }\n };\n return ExhaustMapSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=exhaustMap.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/exhaustMap.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/expand.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/expand.js ***! + \******************************************************************/ +/*! exports provided: expand, ExpandOperator, ExpandSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"expand\", function() { return expand; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ExpandOperator\", function() { return ExpandOperator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ExpandSubscriber\", function() { return ExpandSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nfunction expand(project, concurrent, scheduler) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent;\n return function (source) { return source.lift(new ExpandOperator(project, concurrent, scheduler)); };\n}\nvar ExpandOperator = (function () {\n function ExpandOperator(project, concurrent, scheduler) {\n this.project = project;\n this.concurrent = concurrent;\n this.scheduler = scheduler;\n }\n ExpandOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler));\n };\n return ExpandOperator;\n}());\n\nvar ExpandSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ExpandSubscriber, _super);\n function ExpandSubscriber(destination, project, concurrent, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.concurrent = concurrent;\n _this.scheduler = scheduler;\n _this.index = 0;\n _this.active = 0;\n _this.hasCompleted = false;\n if (concurrent < Number.POSITIVE_INFINITY) {\n _this.buffer = [];\n }\n return _this;\n }\n ExpandSubscriber.dispatch = function (arg) {\n var subscriber = arg.subscriber, result = arg.result, value = arg.value, index = arg.index;\n subscriber.subscribeToProjection(result, value, index);\n };\n ExpandSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n if (destination.closed) {\n this._complete();\n return;\n }\n var index = this.index++;\n if (this.active < this.concurrent) {\n destination.next(value);\n try {\n var project = this.project;\n var result = project(value, index);\n if (!this.scheduler) {\n this.subscribeToProjection(result, value, index);\n }\n else {\n var state = { subscriber: this, result: result, value: value, index: index };\n var destination_1 = this.destination;\n destination_1.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state));\n }\n }\n catch (e) {\n destination.error(e);\n }\n }\n else {\n this.buffer.push(value);\n }\n };\n ExpandSubscriber.prototype.subscribeToProjection = function (result, value, index) {\n this.active++;\n var destination = this.destination;\n destination.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(this, result, value, index));\n };\n ExpandSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.hasCompleted && this.active === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n ExpandSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this._next(innerValue);\n };\n ExpandSubscriber.prototype.notifyComplete = function (innerSub) {\n var buffer = this.buffer;\n var destination = this.destination;\n destination.remove(innerSub);\n this.active--;\n if (buffer && buffer.length > 0) {\n this._next(buffer.shift());\n }\n if (this.hasCompleted && this.active === 0) {\n this.destination.complete();\n }\n };\n return ExpandSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n\n//# sourceMappingURL=expand.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/expand.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/filter.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/filter.js ***! + \******************************************************************/ +/*! exports provided: filter */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"filter\", function() { return filter; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\nvar FilterOperator = (function () {\n function FilterOperator(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n FilterOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n };\n return FilterOperator;\n}());\nvar FilterSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(FilterSubscriber, _super);\n function FilterSubscriber(destination, predicate, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.thisArg = thisArg;\n _this.count = 0;\n return _this;\n }\n FilterSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n };\n return FilterSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=filter.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/filter.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/finalize.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/finalize.js ***! + \********************************************************************/ +/*! exports provided: finalize */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"finalize\", function() { return finalize; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n\n\n\nfunction finalize(callback) {\n return function (source) { return source.lift(new FinallyOperator(callback)); };\n}\nvar FinallyOperator = (function () {\n function FinallyOperator(callback) {\n this.callback = callback;\n }\n FinallyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FinallySubscriber(subscriber, this.callback));\n };\n return FinallyOperator;\n}());\nvar FinallySubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(FinallySubscriber, _super);\n function FinallySubscriber(destination, callback) {\n var _this = _super.call(this, destination) || this;\n _this.add(new _Subscription__WEBPACK_IMPORTED_MODULE_2__[\"Subscription\"](callback));\n return _this;\n }\n return FinallySubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=finalize.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/finalize.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/find.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/find.js ***! + \****************************************************************/ +/*! exports provided: find, FindValueOperator, FindValueSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"find\", function() { return find; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FindValueOperator\", function() { return FindValueOperator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FindValueSubscriber\", function() { return FindValueSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction find(predicate, thisArg) {\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate is not a function');\n }\n return function (source) { return source.lift(new FindValueOperator(predicate, source, false, thisArg)); };\n}\nvar FindValueOperator = (function () {\n function FindValueOperator(predicate, source, yieldIndex, thisArg) {\n this.predicate = predicate;\n this.source = source;\n this.yieldIndex = yieldIndex;\n this.thisArg = thisArg;\n }\n FindValueOperator.prototype.call = function (observer, source) {\n return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg));\n };\n return FindValueOperator;\n}());\n\nvar FindValueSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(FindValueSubscriber, _super);\n function FindValueSubscriber(destination, predicate, source, yieldIndex, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.source = source;\n _this.yieldIndex = yieldIndex;\n _this.thisArg = thisArg;\n _this.index = 0;\n return _this;\n }\n FindValueSubscriber.prototype.notifyComplete = function (value) {\n var destination = this.destination;\n destination.next(value);\n destination.complete();\n this.unsubscribe();\n };\n FindValueSubscriber.prototype._next = function (value) {\n var _a = this, predicate = _a.predicate, thisArg = _a.thisArg;\n var index = this.index++;\n try {\n var result = predicate.call(thisArg || this, value, index, this.source);\n if (result) {\n this.notifyComplete(this.yieldIndex ? index : value);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n FindValueSubscriber.prototype._complete = function () {\n this.notifyComplete(this.yieldIndex ? -1 : undefined);\n };\n return FindValueSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n\n//# sourceMappingURL=find.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/find.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/findIndex.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/findIndex.js ***! + \*********************************************************************/ +/*! exports provided: findIndex */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"findIndex\", function() { return findIndex; });\n/* harmony import */ var _operators_find__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../operators/find */ \"./node_modules/rxjs/dist/esm5/internal/operators/find.js\");\n\nfunction findIndex(predicate, thisArg) {\n return function (source) { return source.lift(new _operators_find__WEBPACK_IMPORTED_MODULE_0__[\"FindValueOperator\"](predicate, source, true, thisArg)); };\n}\n//# sourceMappingURL=findIndex.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/findIndex.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/first.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/first.js ***! + \*****************************************************************/ +/*! exports provided: first */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"first\", function() { return first; });\n/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/EmptyError */ \"./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js\");\n/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./filter */ \"./node_modules/rxjs/dist/esm5/internal/operators/filter.js\");\n/* harmony import */ var _take__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./take */ \"./node_modules/rxjs/dist/esm5/internal/operators/take.js\");\n/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./defaultIfEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js\");\n/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./throwIfEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js\");\n/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/identity */ \"./node_modules/rxjs/dist/esm5/internal/util/identity.js\");\n\n\n\n\n\n\nfunction first(predicate, defaultValue) {\n var hasDefaultValue = arguments.length >= 2;\n return function (source) { return source.pipe(predicate ? Object(_filter__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(function (v, i) { return predicate(v, i, source); }) : _util_identity__WEBPACK_IMPORTED_MODULE_5__[\"identity\"], Object(_take__WEBPACK_IMPORTED_MODULE_2__[\"take\"])(1), hasDefaultValue ? Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__[\"defaultIfEmpty\"])(defaultValue) : Object(_throwIfEmpty__WEBPACK_IMPORTED_MODULE_4__[\"throwIfEmpty\"])(function () { return new _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__[\"EmptyError\"](); })); };\n}\n//# sourceMappingURL=first.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/first.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/groupBy.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/groupBy.js ***! + \*******************************************************************/ +/*! exports provided: groupBy, GroupedObservable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"groupBy\", function() { return groupBy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GroupedObservable\", function() { return GroupedObservable; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n\n\n\n\n\nfunction groupBy(keySelector, elementSelector, durationSelector, subjectSelector) {\n return function (source) {\n return source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector));\n };\n}\nvar GroupByOperator = (function () {\n function GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector) {\n this.keySelector = keySelector;\n this.elementSelector = elementSelector;\n this.durationSelector = durationSelector;\n this.subjectSelector = subjectSelector;\n }\n GroupByOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector));\n };\n return GroupByOperator;\n}());\nvar GroupBySubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(GroupBySubscriber, _super);\n function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.elementSelector = elementSelector;\n _this.durationSelector = durationSelector;\n _this.subjectSelector = subjectSelector;\n _this.groups = null;\n _this.attemptedToUnsubscribe = false;\n _this.count = 0;\n return _this;\n }\n GroupBySubscriber.prototype._next = function (value) {\n var key;\n try {\n key = this.keySelector(value);\n }\n catch (err) {\n this.error(err);\n return;\n }\n this._group(value, key);\n };\n GroupBySubscriber.prototype._group = function (value, key) {\n var groups = this.groups;\n if (!groups) {\n groups = this.groups = new Map();\n }\n var group = groups.get(key);\n var element;\n if (this.elementSelector) {\n try {\n element = this.elementSelector(value);\n }\n catch (err) {\n this.error(err);\n }\n }\n else {\n element = value;\n }\n if (!group) {\n group = (this.subjectSelector ? this.subjectSelector() : new _Subject__WEBPACK_IMPORTED_MODULE_4__[\"Subject\"]());\n groups.set(key, group);\n var groupedObservable = new GroupedObservable(key, group, this);\n this.destination.next(groupedObservable);\n if (this.durationSelector) {\n var duration = void 0;\n try {\n duration = this.durationSelector(new GroupedObservable(key, group));\n }\n catch (err) {\n this.error(err);\n return;\n }\n this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this)));\n }\n }\n if (!group.closed) {\n group.next(element);\n }\n };\n GroupBySubscriber.prototype._error = function (err) {\n var groups = this.groups;\n if (groups) {\n groups.forEach(function (group, key) {\n group.error(err);\n });\n groups.clear();\n }\n this.destination.error(err);\n };\n GroupBySubscriber.prototype._complete = function () {\n var groups = this.groups;\n if (groups) {\n groups.forEach(function (group, key) {\n group.complete();\n });\n groups.clear();\n }\n this.destination.complete();\n };\n GroupBySubscriber.prototype.removeGroup = function (key) {\n this.groups.delete(key);\n };\n GroupBySubscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.attemptedToUnsubscribe = true;\n if (this.count === 0) {\n _super.prototype.unsubscribe.call(this);\n }\n }\n };\n return GroupBySubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\nvar GroupDurationSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(GroupDurationSubscriber, _super);\n function GroupDurationSubscriber(key, group, parent) {\n var _this = _super.call(this, group) || this;\n _this.key = key;\n _this.group = group;\n _this.parent = parent;\n return _this;\n }\n GroupDurationSubscriber.prototype._next = function (value) {\n this.complete();\n };\n GroupDurationSubscriber.prototype._unsubscribe = function () {\n var _a = this, parent = _a.parent, key = _a.key;\n this.key = this.parent = null;\n if (parent) {\n parent.removeGroup(key);\n }\n };\n return GroupDurationSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\nvar GroupedObservable = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(GroupedObservable, _super);\n function GroupedObservable(key, groupSubject, refCountSubscription) {\n var _this = _super.call(this) || this;\n _this.key = key;\n _this.groupSubject = groupSubject;\n _this.refCountSubscription = refCountSubscription;\n return _this;\n }\n GroupedObservable.prototype._subscribe = function (subscriber) {\n var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_2__[\"Subscription\"]();\n var _a = this, refCountSubscription = _a.refCountSubscription, groupSubject = _a.groupSubject;\n if (refCountSubscription && !refCountSubscription.closed) {\n subscription.add(new InnerRefCountSubscription(refCountSubscription));\n }\n subscription.add(groupSubject.subscribe(subscriber));\n return subscription;\n };\n return GroupedObservable;\n}(_Observable__WEBPACK_IMPORTED_MODULE_3__[\"Observable\"]));\n\nvar InnerRefCountSubscription = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(InnerRefCountSubscription, _super);\n function InnerRefCountSubscription(parent) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n parent.count++;\n return _this;\n }\n InnerRefCountSubscription.prototype.unsubscribe = function () {\n var parent = this.parent;\n if (!parent.closed && !this.closed) {\n _super.prototype.unsubscribe.call(this);\n parent.count -= 1;\n if (parent.count === 0 && parent.attemptedToUnsubscribe) {\n parent.unsubscribe();\n }\n }\n };\n return InnerRefCountSubscription;\n}(_Subscription__WEBPACK_IMPORTED_MODULE_2__[\"Subscription\"]));\n//# sourceMappingURL=groupBy.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/groupBy.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/ignoreElements.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/ignoreElements.js ***! + \**************************************************************************/ +/*! exports provided: ignoreElements */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ignoreElements\", function() { return ignoreElements; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction ignoreElements() {\n return function ignoreElementsOperatorFunction(source) {\n return source.lift(new IgnoreElementsOperator());\n };\n}\nvar IgnoreElementsOperator = (function () {\n function IgnoreElementsOperator() {\n }\n IgnoreElementsOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new IgnoreElementsSubscriber(subscriber));\n };\n return IgnoreElementsOperator;\n}());\nvar IgnoreElementsSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(IgnoreElementsSubscriber, _super);\n function IgnoreElementsSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n IgnoreElementsSubscriber.prototype._next = function (unused) {\n };\n return IgnoreElementsSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=ignoreElements.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/ignoreElements.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/isEmpty.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/isEmpty.js ***! + \*******************************************************************/ +/*! exports provided: isEmpty */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isEmpty\", function() { return isEmpty; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction isEmpty() {\n return function (source) { return source.lift(new IsEmptyOperator()); };\n}\nvar IsEmptyOperator = (function () {\n function IsEmptyOperator() {\n }\n IsEmptyOperator.prototype.call = function (observer, source) {\n return source.subscribe(new IsEmptySubscriber(observer));\n };\n return IsEmptyOperator;\n}());\nvar IsEmptySubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(IsEmptySubscriber, _super);\n function IsEmptySubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n IsEmptySubscriber.prototype.notifyComplete = function (isEmpty) {\n var destination = this.destination;\n destination.next(isEmpty);\n destination.complete();\n };\n IsEmptySubscriber.prototype._next = function (value) {\n this.notifyComplete(false);\n };\n IsEmptySubscriber.prototype._complete = function () {\n this.notifyComplete(true);\n };\n return IsEmptySubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=isEmpty.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/isEmpty.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/last.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/last.js ***! + \****************************************************************/ +/*! exports provided: last */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"last\", function() { return last; });\n/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/EmptyError */ \"./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js\");\n/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./filter */ \"./node_modules/rxjs/dist/esm5/internal/operators/filter.js\");\n/* harmony import */ var _takeLast__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./takeLast */ \"./node_modules/rxjs/dist/esm5/internal/operators/takeLast.js\");\n/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./throwIfEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js\");\n/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./defaultIfEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js\");\n/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/identity */ \"./node_modules/rxjs/dist/esm5/internal/util/identity.js\");\n\n\n\n\n\n\nfunction last(predicate, defaultValue) {\n var hasDefaultValue = arguments.length >= 2;\n return function (source) { return source.pipe(predicate ? Object(_filter__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(function (v, i) { return predicate(v, i, source); }) : _util_identity__WEBPACK_IMPORTED_MODULE_5__[\"identity\"], Object(_takeLast__WEBPACK_IMPORTED_MODULE_2__[\"takeLast\"])(1), hasDefaultValue ? Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_4__[\"defaultIfEmpty\"])(defaultValue) : Object(_throwIfEmpty__WEBPACK_IMPORTED_MODULE_3__[\"throwIfEmpty\"])(function () { return new _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__[\"EmptyError\"](); })); };\n}\n//# sourceMappingURL=last.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/last.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/map.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/map.js ***! + \***************************************************************/ +/*! exports provided: map, MapOperator */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"map\", function() { return map; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MapOperator\", function() { return MapOperator; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nvar MapOperator = (function () {\n function MapOperator(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n MapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n };\n return MapOperator;\n}());\n\nvar MapSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(MapSubscriber, _super);\n function MapSubscriber(destination, project, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.count = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n MapSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return MapSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=map.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/map.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/mapTo.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/mapTo.js ***! + \*****************************************************************/ +/*! exports provided: mapTo */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mapTo\", function() { return mapTo; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction mapTo(value) {\n return function (source) { return source.lift(new MapToOperator(value)); };\n}\nvar MapToOperator = (function () {\n function MapToOperator(value) {\n this.value = value;\n }\n MapToOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapToSubscriber(subscriber, this.value));\n };\n return MapToOperator;\n}());\nvar MapToSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(MapToSubscriber, _super);\n function MapToSubscriber(destination, value) {\n var _this = _super.call(this, destination) || this;\n _this.value = value;\n return _this;\n }\n MapToSubscriber.prototype._next = function (x) {\n this.destination.next(this.value);\n };\n return MapToSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=mapTo.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mapTo.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/materialize.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/materialize.js ***! + \***********************************************************************/ +/*! exports provided: materialize */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"materialize\", function() { return materialize; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _Notification__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Notification */ \"./node_modules/rxjs/dist/esm5/internal/Notification.js\");\n\n\n\nfunction materialize() {\n return function materializeOperatorFunction(source) {\n return source.lift(new MaterializeOperator());\n };\n}\nvar MaterializeOperator = (function () {\n function MaterializeOperator() {\n }\n MaterializeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MaterializeSubscriber(subscriber));\n };\n return MaterializeOperator;\n}());\nvar MaterializeSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(MaterializeSubscriber, _super);\n function MaterializeSubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n MaterializeSubscriber.prototype._next = function (value) {\n this.destination.next(_Notification__WEBPACK_IMPORTED_MODULE_2__[\"Notification\"].createNext(value));\n };\n MaterializeSubscriber.prototype._error = function (err) {\n var destination = this.destination;\n destination.next(_Notification__WEBPACK_IMPORTED_MODULE_2__[\"Notification\"].createError(err));\n destination.complete();\n };\n MaterializeSubscriber.prototype._complete = function () {\n var destination = this.destination;\n destination.next(_Notification__WEBPACK_IMPORTED_MODULE_2__[\"Notification\"].createComplete());\n destination.complete();\n };\n return MaterializeSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=materialize.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/materialize.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/max.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/max.js ***! + \***************************************************************/ +/*! exports provided: max */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"max\", function() { return max; });\n/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reduce */ \"./node_modules/rxjs/dist/esm5/internal/operators/reduce.js\");\n\nfunction max(comparer) {\n var max = (typeof comparer === 'function')\n ? function (x, y) { return comparer(x, y) > 0 ? x : y; }\n : function (x, y) { return x > y ? x : y; };\n return Object(_reduce__WEBPACK_IMPORTED_MODULE_0__[\"reduce\"])(max);\n}\n//# sourceMappingURL=max.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/max.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js ***! + \********************************************************************/ +/*! exports provided: mergeAll */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeAll\", function() { return mergeAll; });\n/* harmony import */ var _mergeMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mergeMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js\");\n/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/identity */ \"./node_modules/rxjs/dist/esm5/internal/util/identity.js\");\n\n\nfunction mergeAll(concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__[\"mergeMap\"])(_util_identity__WEBPACK_IMPORTED_MODULE_1__[\"identity\"], concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js ***! + \********************************************************************/ +/*! exports provided: mergeMap, MergeMapOperator, MergeMapSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeMap\", function() { return mergeMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MergeMapOperator\", function() { return MergeMapOperator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MergeMapSubscriber\", function() { return MergeMapSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../InnerSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js\");\n/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../observable/from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n\n\n\n\n\n\nfunction mergeMap(project, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(mergeMap(function (a, i) { return Object(_observable_from__WEBPACK_IMPORTED_MODULE_5__[\"from\"])(project(a, i)).pipe(Object(_map__WEBPACK_IMPORTED_MODULE_4__[\"map\"])(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); };\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); };\n}\nvar MergeMapOperator = (function () {\n function MergeMapOperator(project, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n this.project = project;\n this.concurrent = concurrent;\n }\n MergeMapOperator.prototype.call = function (observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n };\n return MergeMapOperator;\n}());\n\nvar MergeMapSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(MergeMapSubscriber, _super);\n function MergeMapSubscriber(destination, project, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.concurrent = concurrent;\n _this.hasCompleted = false;\n _this.buffer = [];\n _this.active = 0;\n _this.index = 0;\n return _this;\n }\n MergeMapSubscriber.prototype._next = function (value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n }\n else {\n this.buffer.push(value);\n }\n };\n MergeMapSubscriber.prototype._tryNext = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result, value, index);\n };\n MergeMapSubscriber.prototype._innerSub = function (ish, value, index) {\n var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_3__[\"InnerSubscriber\"](this, value, index);\n var destination = this.destination;\n destination.add(innerSubscriber);\n var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__[\"subscribeToResult\"])(this, ish, undefined, undefined, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n };\n MergeMapSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n MergeMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var buffer = this.buffer;\n this.remove(innerSub);\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n };\n return MergeMapSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"OuterSubscriber\"]));\n\n//# sourceMappingURL=mergeMap.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/mergeMapTo.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/mergeMapTo.js ***! + \**********************************************************************/ +/*! exports provided: mergeMapTo */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeMapTo\", function() { return mergeMapTo; });\n/* harmony import */ var _mergeMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mergeMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js\");\n\nfunction mergeMapTo(innerObservable, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n if (typeof resultSelector === 'function') {\n return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__[\"mergeMap\"])(function () { return innerObservable; }, resultSelector, concurrent);\n }\n if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__[\"mergeMap\"])(function () { return innerObservable; }, concurrent);\n}\n//# sourceMappingURL=mergeMapTo.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mergeMapTo.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/mergeScan.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/mergeScan.js ***! + \*********************************************************************/ +/*! exports provided: mergeScan, MergeScanOperator, MergeScanSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeScan\", function() { return mergeScan; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MergeScanOperator\", function() { return MergeScanOperator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MergeScanSubscriber\", function() { return MergeScanSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../InnerSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js\");\n\n\n\n\nfunction mergeScan(accumulator, seed, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n return function (source) { return source.lift(new MergeScanOperator(accumulator, seed, concurrent)); };\n}\nvar MergeScanOperator = (function () {\n function MergeScanOperator(accumulator, seed, concurrent) {\n this.accumulator = accumulator;\n this.seed = seed;\n this.concurrent = concurrent;\n }\n MergeScanOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MergeScanSubscriber(subscriber, this.accumulator, this.seed, this.concurrent));\n };\n return MergeScanOperator;\n}());\n\nvar MergeScanSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(MergeScanSubscriber, _super);\n function MergeScanSubscriber(destination, accumulator, acc, concurrent) {\n var _this = _super.call(this, destination) || this;\n _this.accumulator = accumulator;\n _this.acc = acc;\n _this.concurrent = concurrent;\n _this.hasValue = false;\n _this.hasCompleted = false;\n _this.buffer = [];\n _this.active = 0;\n _this.index = 0;\n return _this;\n }\n MergeScanSubscriber.prototype._next = function (value) {\n if (this.active < this.concurrent) {\n var index = this.index++;\n var destination = this.destination;\n var ish = void 0;\n try {\n var accumulator = this.accumulator;\n ish = accumulator(this.acc, value, index);\n }\n catch (e) {\n return destination.error(e);\n }\n this.active++;\n this._innerSub(ish, value, index);\n }\n else {\n this.buffer.push(value);\n }\n };\n MergeScanSubscriber.prototype._innerSub = function (ish, value, index) {\n var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_3__[\"InnerSubscriber\"](this, value, index);\n var destination = this.destination;\n destination.add(innerSubscriber);\n var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__[\"subscribeToResult\"])(this, ish, undefined, undefined, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n };\n MergeScanSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n if (this.hasValue === false) {\n this.destination.next(this.acc);\n }\n this.destination.complete();\n }\n this.unsubscribe();\n };\n MergeScanSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var destination = this.destination;\n this.acc = innerValue;\n this.hasValue = true;\n destination.next(innerValue);\n };\n MergeScanSubscriber.prototype.notifyComplete = function (innerSub) {\n var buffer = this.buffer;\n var destination = this.destination;\n destination.remove(innerSub);\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n if (this.hasValue === false) {\n this.destination.next(this.acc);\n }\n this.destination.complete();\n }\n };\n return MergeScanSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"OuterSubscriber\"]));\n\n//# sourceMappingURL=mergeScan.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mergeScan.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/mergeWith.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/mergeWith.js ***! + \*********************************************************************/ +/*! exports provided: merge, mergeWith */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"merge\", function() { return merge; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeWith\", function() { return mergeWith; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _observable_merge__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../observable/merge */ \"./node_modules/rxjs/dist/esm5/internal/observable/merge.js\");\n\n\nfunction merge() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function (source) { return source.lift.call(_observable_merge__WEBPACK_IMPORTED_MODULE_1__[\"merge\"].apply(void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])([source], observables)), undefined); };\n}\nfunction mergeWith() {\n var otherSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n otherSources[_i] = arguments[_i];\n }\n return merge.apply(void 0, otherSources);\n}\n//# sourceMappingURL=mergeWith.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mergeWith.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/min.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/min.js ***! + \***************************************************************/ +/*! exports provided: min */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"min\", function() { return min; });\n/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reduce */ \"./node_modules/rxjs/dist/esm5/internal/operators/reduce.js\");\n\nfunction min(comparer) {\n var min = (typeof comparer === 'function')\n ? function (x, y) { return comparer(x, y) < 0 ? x : y; }\n : function (x, y) { return x < y ? x : y; };\n return Object(_reduce__WEBPACK_IMPORTED_MODULE_0__[\"reduce\"])(min);\n}\n//# sourceMappingURL=min.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/min.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/multicast.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/multicast.js ***! + \*********************************************************************/ +/*! exports provided: multicast, MulticastOperator */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"multicast\", function() { return multicast; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MulticastOperator\", function() { return MulticastOperator; });\n/* harmony import */ var _observable_ConnectableObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../observable/ConnectableObservable */ \"./node_modules/rxjs/dist/esm5/internal/observable/ConnectableObservable.js\");\n\nfunction multicast(subjectOrSubjectFactory, selector) {\n return function multicastOperatorFunction(source) {\n var subjectFactory;\n if (typeof subjectOrSubjectFactory === 'function') {\n subjectFactory = subjectOrSubjectFactory;\n }\n else {\n subjectFactory = function subjectFactory() {\n return subjectOrSubjectFactory;\n };\n }\n if (typeof selector === 'function') {\n return source.lift(new MulticastOperator(subjectFactory, selector));\n }\n var connectable = Object.create(source, _observable_ConnectableObservable__WEBPACK_IMPORTED_MODULE_0__[\"connectableObservableDescriptor\"]);\n connectable.source = source;\n connectable.subjectFactory = subjectFactory;\n return connectable;\n };\n}\nvar MulticastOperator = (function () {\n function MulticastOperator(subjectFactory, selector) {\n this.subjectFactory = subjectFactory;\n this.selector = selector;\n }\n MulticastOperator.prototype.call = function (subscriber, source) {\n var selector = this.selector;\n var subject = this.subjectFactory();\n var subscription = selector(subject).subscribe(subscriber);\n subscription.add(source.subscribe(subject));\n return subscription;\n };\n return MulticastOperator;\n}());\n\n//# sourceMappingURL=multicast.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/multicast.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/observeOn.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/observeOn.js ***! + \*********************************************************************/ +/*! exports provided: observeOn, ObserveOnOperator, ObserveOnSubscriber, ObserveOnMessage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observeOn\", function() { return observeOn; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObserveOnOperator\", function() { return ObserveOnOperator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObserveOnSubscriber\", function() { return ObserveOnSubscriber; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObserveOnMessage\", function() { return ObserveOnMessage; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _Notification__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Notification */ \"./node_modules/rxjs/dist/esm5/internal/Notification.js\");\n\n\n\nfunction observeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return function observeOnOperatorFunction(source) {\n return source.lift(new ObserveOnOperator(scheduler, delay));\n };\n}\nvar ObserveOnOperator = (function () {\n function ObserveOnOperator(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n this.scheduler = scheduler;\n this.delay = delay;\n }\n ObserveOnOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n };\n return ObserveOnOperator;\n}());\n\nvar ObserveOnSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ObserveOnSubscriber, _super);\n function ObserveOnSubscriber(destination, scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n var _this = _super.call(this, destination) || this;\n _this.scheduler = scheduler;\n _this.delay = delay;\n return _this;\n }\n ObserveOnSubscriber.dispatch = function (arg) {\n var notification = arg.notification, destination = arg.destination;\n notification.observe(destination);\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype.scheduleMessage = function (notification) {\n var destination = this.destination;\n destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));\n };\n ObserveOnSubscriber.prototype._next = function (value) {\n this.scheduleMessage(_Notification__WEBPACK_IMPORTED_MODULE_2__[\"Notification\"].createNext(value));\n };\n ObserveOnSubscriber.prototype._error = function (err) {\n this.scheduleMessage(_Notification__WEBPACK_IMPORTED_MODULE_2__[\"Notification\"].createError(err));\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype._complete = function () {\n this.scheduleMessage(_Notification__WEBPACK_IMPORTED_MODULE_2__[\"Notification\"].createComplete());\n this.unsubscribe();\n };\n return ObserveOnSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n\nvar ObserveOnMessage = (function () {\n function ObserveOnMessage(notification, destination) {\n this.notification = notification;\n this.destination = destination;\n }\n return ObserveOnMessage;\n}());\n\n//# sourceMappingURL=observeOn.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/observeOn.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/onErrorResumeNext.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/onErrorResumeNext.js ***! + \*****************************************************************************/ +/*! exports provided: onErrorResumeNext, onErrorResumeNextStatic */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onErrorResumeNext\", function() { return onErrorResumeNext; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onErrorResumeNextStatic\", function() { return onErrorResumeNextStatic; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../observable/from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../InnerSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\n\n\nfunction onErrorResumeNext() {\n var nextSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nextSources[_i] = arguments[_i];\n }\n if (nextSources.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__[\"isArray\"])(nextSources[0])) {\n nextSources = nextSources[0];\n }\n return function (source) { return source.lift(new OnErrorResumeNextOperator(nextSources)); };\n}\nfunction onErrorResumeNextStatic() {\n var nextSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nextSources[_i] = arguments[_i];\n }\n var source = null;\n if (nextSources.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__[\"isArray\"])(nextSources[0])) {\n nextSources = nextSources[0];\n }\n source = nextSources.shift();\n return Object(_observable_from__WEBPACK_IMPORTED_MODULE_1__[\"from\"])(source, null).lift(new OnErrorResumeNextOperator(nextSources));\n}\nvar OnErrorResumeNextOperator = (function () {\n function OnErrorResumeNextOperator(nextSources) {\n this.nextSources = nextSources;\n }\n OnErrorResumeNextOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources));\n };\n return OnErrorResumeNextOperator;\n}());\nvar OnErrorResumeNextSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(OnErrorResumeNextSubscriber, _super);\n function OnErrorResumeNextSubscriber(destination, nextSources) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.nextSources = nextSources;\n return _this;\n }\n OnErrorResumeNextSubscriber.prototype.notifyError = function (error, innerSub) {\n this.subscribeToNextSource();\n };\n OnErrorResumeNextSubscriber.prototype.notifyComplete = function (innerSub) {\n this.subscribeToNextSource();\n };\n OnErrorResumeNextSubscriber.prototype._error = function (err) {\n this.subscribeToNextSource();\n this.unsubscribe();\n };\n OnErrorResumeNextSubscriber.prototype._complete = function () {\n this.subscribeToNextSource();\n this.unsubscribe();\n };\n OnErrorResumeNextSubscriber.prototype.subscribeToNextSource = function () {\n var next = this.nextSources.shift();\n if (!!next) {\n var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_4__[\"InnerSubscriber\"](this, undefined, undefined);\n var destination = this.destination;\n destination.add(innerSubscriber);\n var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__[\"subscribeToResult\"])(this, next, undefined, undefined, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n }\n else {\n this.destination.complete();\n }\n };\n return OnErrorResumeNextSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__[\"OuterSubscriber\"]));\n//# sourceMappingURL=onErrorResumeNext.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/onErrorResumeNext.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/pairwise.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/pairwise.js ***! + \********************************************************************/ +/*! exports provided: pairwise */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pairwise\", function() { return pairwise; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction pairwise() {\n return function (source) { return source.lift(new PairwiseOperator()); };\n}\nvar PairwiseOperator = (function () {\n function PairwiseOperator() {\n }\n PairwiseOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new PairwiseSubscriber(subscriber));\n };\n return PairwiseOperator;\n}());\nvar PairwiseSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(PairwiseSubscriber, _super);\n function PairwiseSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.hasPrev = false;\n return _this;\n }\n PairwiseSubscriber.prototype._next = function (value) {\n var pair;\n if (this.hasPrev) {\n pair = [this.prev, value];\n }\n else {\n this.hasPrev = true;\n }\n this.prev = value;\n if (pair) {\n this.destination.next(pair);\n }\n };\n return PairwiseSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=pairwise.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/pairwise.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/partition.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/partition.js ***! + \*********************************************************************/ +/*! exports provided: partition */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"partition\", function() { return partition; });\n/* harmony import */ var _util_not__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/not */ \"./node_modules/rxjs/dist/esm5/internal/util/not.js\");\n/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./filter */ \"./node_modules/rxjs/dist/esm5/internal/operators/filter.js\");\n\n\nfunction partition(predicate, thisArg) {\n return function (source) { return [\n Object(_filter__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(predicate, thisArg)(source),\n Object(_filter__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(Object(_util_not__WEBPACK_IMPORTED_MODULE_0__[\"not\"])(predicate, thisArg))(source)\n ]; };\n}\n//# sourceMappingURL=partition.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/partition.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/pluck.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/pluck.js ***! + \*****************************************************************/ +/*! exports provided: pluck */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pluck\", function() { return pluck; });\n/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n\nfunction pluck() {\n var properties = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n properties[_i] = arguments[_i];\n }\n var length = properties.length;\n if (length === 0) {\n throw new Error('list of properties cannot be empty.');\n }\n return Object(_map__WEBPACK_IMPORTED_MODULE_0__[\"map\"])(function (x) {\n var currentProp = x;\n for (var i = 0; i < length; i++) {\n var p = currentProp[properties[i]];\n if (typeof p !== 'undefined') {\n currentProp = p;\n }\n else {\n return undefined;\n }\n }\n return currentProp;\n });\n}\n//# sourceMappingURL=pluck.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/pluck.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/publish.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/publish.js ***! + \*******************************************************************/ +/*! exports provided: publish */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"publish\", function() { return publish; });\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./multicast */ \"./node_modules/rxjs/dist/esm5/internal/operators/multicast.js\");\n\n\nfunction publish(selector) {\n return selector ?\n Object(_multicast__WEBPACK_IMPORTED_MODULE_1__[\"multicast\"])(function () { return new _Subject__WEBPACK_IMPORTED_MODULE_0__[\"Subject\"](); }, selector) :\n Object(_multicast__WEBPACK_IMPORTED_MODULE_1__[\"multicast\"])(new _Subject__WEBPACK_IMPORTED_MODULE_0__[\"Subject\"]());\n}\n//# sourceMappingURL=publish.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/publish.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/publishBehavior.js": +/*!***************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/publishBehavior.js ***! + \***************************************************************************/ +/*! exports provided: publishBehavior */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"publishBehavior\", function() { return publishBehavior; });\n/* harmony import */ var _BehaviorSubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../BehaviorSubject */ \"./node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js\");\n/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./multicast */ \"./node_modules/rxjs/dist/esm5/internal/operators/multicast.js\");\n\n\nfunction publishBehavior(value) {\n return function (source) { return Object(_multicast__WEBPACK_IMPORTED_MODULE_1__[\"multicast\"])(new _BehaviorSubject__WEBPACK_IMPORTED_MODULE_0__[\"BehaviorSubject\"](value))(source); };\n}\n//# sourceMappingURL=publishBehavior.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/publishBehavior.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/publishLast.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/publishLast.js ***! + \***********************************************************************/ +/*! exports provided: publishLast */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"publishLast\", function() { return publishLast; });\n/* harmony import */ var _AsyncSubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../AsyncSubject */ \"./node_modules/rxjs/dist/esm5/internal/AsyncSubject.js\");\n/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./multicast */ \"./node_modules/rxjs/dist/esm5/internal/operators/multicast.js\");\n\n\nfunction publishLast() {\n return function (source) { return Object(_multicast__WEBPACK_IMPORTED_MODULE_1__[\"multicast\"])(new _AsyncSubject__WEBPACK_IMPORTED_MODULE_0__[\"AsyncSubject\"]())(source); };\n}\n//# sourceMappingURL=publishLast.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/publishLast.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/publishReplay.js": +/*!*************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/publishReplay.js ***! + \*************************************************************************/ +/*! exports provided: publishReplay */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"publishReplay\", function() { return publishReplay; });\n/* harmony import */ var _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ReplaySubject */ \"./node_modules/rxjs/dist/esm5/internal/ReplaySubject.js\");\n/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./multicast */ \"./node_modules/rxjs/dist/esm5/internal/operators/multicast.js\");\n\n\nfunction publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) {\n if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') {\n scheduler = selectorOrScheduler;\n }\n var selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined;\n var subject = new _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__[\"ReplaySubject\"](bufferSize, windowTime, scheduler);\n return function (source) { return Object(_multicast__WEBPACK_IMPORTED_MODULE_1__[\"multicast\"])(function () { return subject; }, selector)(source); };\n}\n//# sourceMappingURL=publishReplay.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/publishReplay.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/race.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/race.js ***! + \****************************************************************/ +/*! exports provided: race */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"race\", function() { return race; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _observable_race__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../observable/race */ \"./node_modules/rxjs/dist/esm5/internal/observable/race.js\");\n\n\n\nfunction race() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function raceOperatorFunction(source) {\n if (observables.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__[\"isArray\"])(observables[0])) {\n observables = observables[0];\n }\n return source.lift.call(_observable_race__WEBPACK_IMPORTED_MODULE_2__[\"race\"].apply(void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])([source], observables)), undefined);\n };\n}\n//# sourceMappingURL=race.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/race.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/reduce.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/reduce.js ***! + \******************************************************************/ +/*! exports provided: reduce */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reduce\", function() { return reduce; });\n/* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./scan */ \"./node_modules/rxjs/dist/esm5/internal/operators/scan.js\");\n/* harmony import */ var _takeLast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./takeLast */ \"./node_modules/rxjs/dist/esm5/internal/operators/takeLast.js\");\n/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./defaultIfEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js\");\n/* harmony import */ var _util_pipe__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/pipe */ \"./node_modules/rxjs/dist/esm5/internal/util/pipe.js\");\n\n\n\n\nfunction reduce(accumulator, seed) {\n if (arguments.length >= 2) {\n return function reduceOperatorFunctionWithSeed(source) {\n return Object(_util_pipe__WEBPACK_IMPORTED_MODULE_3__[\"pipe\"])(Object(_scan__WEBPACK_IMPORTED_MODULE_0__[\"scan\"])(accumulator, seed), Object(_takeLast__WEBPACK_IMPORTED_MODULE_1__[\"takeLast\"])(1), Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_2__[\"defaultIfEmpty\"])(seed))(source);\n };\n }\n return function reduceOperatorFunction(source) {\n return Object(_util_pipe__WEBPACK_IMPORTED_MODULE_3__[\"pipe\"])(Object(_scan__WEBPACK_IMPORTED_MODULE_0__[\"scan\"])(function (acc, value, index) { return accumulator(acc, value, index + 1); }), Object(_takeLast__WEBPACK_IMPORTED_MODULE_1__[\"takeLast\"])(1))(source);\n };\n}\n//# sourceMappingURL=reduce.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/reduce.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/refCount.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/refCount.js ***! + \********************************************************************/ +/*! exports provided: refCount */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"refCount\", function() { return refCount; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction refCount() {\n return function refCountOperatorFunction(source) {\n return source.lift(new RefCountOperator(source));\n };\n}\nvar RefCountOperator = (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n _this.connection = null;\n return _this;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=refCount.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/refCount.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/repeat.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/repeat.js ***! + \******************************************************************/ +/*! exports provided: repeat */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"repeat\", function() { return repeat; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../observable/empty */ \"./node_modules/rxjs/dist/esm5/internal/observable/empty.js\");\n\n\n\nfunction repeat(count) {\n if (count === void 0) { count = -1; }\n return function (source) {\n if (count === 0) {\n return _observable_empty__WEBPACK_IMPORTED_MODULE_2__[\"EMPTY\"];\n }\n else if (count < 0) {\n return source.lift(new RepeatOperator(-1, source));\n }\n else {\n return source.lift(new RepeatOperator(count - 1, source));\n }\n };\n}\nvar RepeatOperator = (function () {\n function RepeatOperator(count, source) {\n this.count = count;\n this.source = source;\n }\n RepeatOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source));\n };\n return RepeatOperator;\n}());\nvar RepeatSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(RepeatSubscriber, _super);\n function RepeatSubscriber(destination, count, source) {\n var _this = _super.call(this, destination) || this;\n _this.count = count;\n _this.source = source;\n return _this;\n }\n RepeatSubscriber.prototype.complete = function () {\n if (!this.isStopped) {\n var _a = this, source = _a.source, count = _a.count;\n if (count === 0) {\n return _super.prototype.complete.call(this);\n }\n else if (count > -1) {\n this.count = count - 1;\n }\n source.subscribe(this._unsubscribeAndRecycle());\n }\n };\n return RepeatSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=repeat.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/repeat.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/repeatWhen.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/repeatWhen.js ***! + \**********************************************************************/ +/*! exports provided: repeatWhen */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"repeatWhen\", function() { return repeatWhen; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\nfunction repeatWhen(notifier) {\n return function (source) { return source.lift(new RepeatWhenOperator(notifier)); };\n}\nvar RepeatWhenOperator = (function () {\n function RepeatWhenOperator(notifier) {\n this.notifier = notifier;\n }\n RepeatWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source));\n };\n return RepeatWhenOperator;\n}());\nvar RepeatWhenSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(RepeatWhenSubscriber, _super);\n function RepeatWhenSubscriber(destination, notifier, source) {\n var _this = _super.call(this, destination) || this;\n _this.notifier = notifier;\n _this.source = source;\n _this.notifications = null;\n _this.retries = null;\n _this.retriesSubscription = null;\n _this.sourceIsBeingSubscribedTo = true;\n return _this;\n }\n RepeatWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.sourceIsBeingSubscribedTo = true;\n this.source.subscribe(this);\n };\n RepeatWhenSubscriber.prototype.notifyComplete = function (innerSub) {\n if (this.sourceIsBeingSubscribedTo === false) {\n return _super.prototype.complete.call(this);\n }\n };\n RepeatWhenSubscriber.prototype.complete = function () {\n this.sourceIsBeingSubscribedTo = false;\n if (!this.isStopped) {\n if (!this.retries) {\n this.subscribeToRetries();\n }\n if (!this.retriesSubscription || this.retriesSubscription.closed) {\n return _super.prototype.complete.call(this);\n }\n this._unsubscribeAndRecycle();\n this.notifications.next();\n }\n };\n RepeatWhenSubscriber.prototype._unsubscribe = function () {\n var _a = this, notifications = _a.notifications, retriesSubscription = _a.retriesSubscription;\n if (notifications) {\n notifications.unsubscribe();\n this.notifications = null;\n }\n if (retriesSubscription) {\n retriesSubscription.unsubscribe();\n this.retriesSubscription = null;\n }\n this.retries = null;\n };\n RepeatWhenSubscriber.prototype._unsubscribeAndRecycle = function () {\n var _unsubscribe = this._unsubscribe;\n this._unsubscribe = null;\n _super.prototype._unsubscribeAndRecycle.call(this);\n this._unsubscribe = _unsubscribe;\n return this;\n };\n RepeatWhenSubscriber.prototype.subscribeToRetries = function () {\n this.notifications = new _Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]();\n var retries;\n try {\n var notifier = this.notifier;\n retries = notifier(this.notifications);\n }\n catch (e) {\n return _super.prototype.complete.call(this);\n }\n this.retries = retries;\n this.retriesSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToResult\"])(this, retries);\n };\n return RepeatWhenSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"OuterSubscriber\"]));\n//# sourceMappingURL=repeatWhen.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/repeatWhen.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/retry.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/retry.js ***! + \*****************************************************************/ +/*! exports provided: retry */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"retry\", function() { return retry; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction retry(configOrCount) {\n if (configOrCount === void 0) { configOrCount = -1; }\n var config;\n if (configOrCount && typeof configOrCount === 'object') {\n config = configOrCount;\n }\n else {\n config = {\n count: configOrCount\n };\n }\n return function (source) { return source.lift(new RetryOperator(config.count, !!config.resetOnSuccess, source)); };\n}\nvar RetryOperator = (function () {\n function RetryOperator(count, resetOnSuccess, source) {\n this.count = count;\n this.resetOnSuccess = resetOnSuccess;\n this.source = source;\n }\n RetryOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RetrySubscriber(subscriber, this.count, this.resetOnSuccess, this.source));\n };\n return RetryOperator;\n}());\nvar RetrySubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(RetrySubscriber, _super);\n function RetrySubscriber(destination, count, resetOnSuccess, source) {\n var _this = _super.call(this, destination) || this;\n _this.count = count;\n _this.resetOnSuccess = resetOnSuccess;\n _this.source = source;\n _this.initialCount = _this.count;\n return _this;\n }\n RetrySubscriber.prototype.next = function (value) {\n _super.prototype.next.call(this, value);\n if (this.resetOnSuccess) {\n this.count = this.initialCount;\n }\n };\n RetrySubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _a = this, source = _a.source, count = _a.count;\n if (count === 0) {\n return _super.prototype.error.call(this, err);\n }\n else if (count > -1) {\n this.count = count - 1;\n }\n source.subscribe(this._unsubscribeAndRecycle());\n }\n };\n return RetrySubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=retry.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/retry.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/retryWhen.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/retryWhen.js ***! + \*********************************************************************/ +/*! exports provided: retryWhen */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"retryWhen\", function() { return retryWhen; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\nfunction retryWhen(notifier) {\n return function (source) { return source.lift(new RetryWhenOperator(notifier, source)); };\n}\nvar RetryWhenOperator = (function () {\n function RetryWhenOperator(notifier, source) {\n this.notifier = notifier;\n this.source = source;\n }\n RetryWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source));\n };\n return RetryWhenOperator;\n}());\nvar RetryWhenSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(RetryWhenSubscriber, _super);\n function RetryWhenSubscriber(destination, notifier, source) {\n var _this = _super.call(this, destination) || this;\n _this.notifier = notifier;\n _this.source = source;\n _this.errors = null;\n _this.retries = null;\n _this.retriesSubscription = null;\n return _this;\n }\n RetryWhenSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var errors = this.errors;\n var retries = this.retries;\n var retriesSubscription = this.retriesSubscription;\n if (!retries) {\n errors = new _Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]();\n try {\n var notifier = this.notifier;\n retries = notifier(errors);\n }\n catch (e) {\n return _super.prototype.error.call(this, e);\n }\n retriesSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToResult\"])(this, retries);\n }\n else {\n this.errors = null;\n this.retriesSubscription = null;\n }\n this._unsubscribeAndRecycle();\n this.errors = errors;\n this.retries = retries;\n this.retriesSubscription = retriesSubscription;\n errors.next(err);\n }\n };\n RetryWhenSubscriber.prototype._unsubscribe = function () {\n var _a = this, errors = _a.errors, retriesSubscription = _a.retriesSubscription;\n if (errors) {\n errors.unsubscribe();\n this.errors = null;\n }\n if (retriesSubscription) {\n retriesSubscription.unsubscribe();\n this.retriesSubscription = null;\n }\n this.retries = null;\n };\n RetryWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var _unsubscribe = this._unsubscribe;\n this._unsubscribe = null;\n this._unsubscribeAndRecycle();\n this._unsubscribe = _unsubscribe;\n this.source.subscribe(this);\n };\n return RetryWhenSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"OuterSubscriber\"]));\n//# sourceMappingURL=retryWhen.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/retryWhen.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/sample.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/sample.js ***! + \******************************************************************/ +/*! exports provided: sample */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sample\", function() { return sample; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nfunction sample(notifier) {\n return function (source) { return source.lift(new SampleOperator(notifier)); };\n}\nvar SampleOperator = (function () {\n function SampleOperator(notifier) {\n this.notifier = notifier;\n }\n SampleOperator.prototype.call = function (subscriber, source) {\n var sampleSubscriber = new SampleSubscriber(subscriber);\n var subscription = source.subscribe(sampleSubscriber);\n subscription.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(sampleSubscriber, this.notifier));\n return subscription;\n };\n return SampleOperator;\n}());\nvar SampleSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SampleSubscriber, _super);\n function SampleSubscriber() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.hasValue = false;\n return _this;\n }\n SampleSubscriber.prototype._next = function (value) {\n this.value = value;\n this.hasValue = true;\n };\n SampleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.emitValue();\n };\n SampleSubscriber.prototype.notifyComplete = function () {\n this.emitValue();\n };\n SampleSubscriber.prototype.emitValue = function () {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.value);\n }\n };\n return SampleSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=sample.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/sample.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/sampleTime.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/sampleTime.js ***! + \**********************************************************************/ +/*! exports provided: sampleTime */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sampleTime\", function() { return sampleTime; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n\n\n\nfunction sampleTime(period, scheduler) {\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_2__[\"async\"]; }\n return function (source) { return source.lift(new SampleTimeOperator(period, scheduler)); };\n}\nvar SampleTimeOperator = (function () {\n function SampleTimeOperator(period, scheduler) {\n this.period = period;\n this.scheduler = scheduler;\n }\n SampleTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler));\n };\n return SampleTimeOperator;\n}());\nvar SampleTimeSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SampleTimeSubscriber, _super);\n function SampleTimeSubscriber(destination, period, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.period = period;\n _this.scheduler = scheduler;\n _this.hasValue = false;\n _this.add(scheduler.schedule(dispatchNotification, period, { subscriber: _this, period: period }));\n return _this;\n }\n SampleTimeSubscriber.prototype._next = function (value) {\n this.lastValue = value;\n this.hasValue = true;\n };\n SampleTimeSubscriber.prototype.notifyNext = function () {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.lastValue);\n }\n };\n return SampleTimeSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\nfunction dispatchNotification(state) {\n var subscriber = state.subscriber, period = state.period;\n subscriber.notifyNext();\n this.schedule(state, period);\n}\n//# sourceMappingURL=sampleTime.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/sampleTime.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/scan.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/scan.js ***! + \****************************************************************/ +/*! exports provided: scan */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scan\", function() { return scan; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction scan(accumulator, seed) {\n var hasSeed = false;\n if (arguments.length >= 2) {\n hasSeed = true;\n }\n return function scanOperatorFunction(source) {\n return source.lift(new ScanOperator(accumulator, seed, hasSeed));\n };\n}\nvar ScanOperator = (function () {\n function ScanOperator(accumulator, seed, hasSeed) {\n if (hasSeed === void 0) { hasSeed = false; }\n this.accumulator = accumulator;\n this.seed = seed;\n this.hasSeed = hasSeed;\n }\n ScanOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));\n };\n return ScanOperator;\n}());\nvar ScanSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ScanSubscriber, _super);\n function ScanSubscriber(destination, accumulator, _state, _hasState) {\n var _this = _super.call(this, destination) || this;\n _this.accumulator = accumulator;\n _this._state = _state;\n _this._hasState = _hasState;\n _this.index = 0;\n return _this;\n }\n ScanSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n if (!this._hasState) {\n this._state = value;\n this._hasState = true;\n destination.next(value);\n }\n else {\n var index = this.index++;\n var result = void 0;\n try {\n result = this.accumulator(this._state, value, index);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this._state = result;\n destination.next(result);\n }\n };\n return ScanSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=scan.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/scan.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/sequenceEqual.js": +/*!*************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/sequenceEqual.js ***! + \*************************************************************************/ +/*! exports provided: sequenceEqual, SequenceEqualOperator, SequenceEqualSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sequenceEqual\", function() { return sequenceEqual; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SequenceEqualOperator\", function() { return SequenceEqualOperator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SequenceEqualSubscriber\", function() { return SequenceEqualSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction sequenceEqual(compareTo, comparator) {\n return function (source) { return source.lift(new SequenceEqualOperator(compareTo, comparator)); };\n}\nvar SequenceEqualOperator = (function () {\n function SequenceEqualOperator(compareTo, comparator) {\n this.compareTo = compareTo;\n this.comparator = comparator;\n }\n SequenceEqualOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparator));\n };\n return SequenceEqualOperator;\n}());\n\nvar SequenceEqualSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SequenceEqualSubscriber, _super);\n function SequenceEqualSubscriber(destination, compareTo, comparator) {\n var _this = _super.call(this, destination) || this;\n _this.compareTo = compareTo;\n _this.comparator = comparator;\n _this._a = [];\n _this._b = [];\n _this._oneComplete = false;\n _this.destination.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this)));\n return _this;\n }\n SequenceEqualSubscriber.prototype._next = function (value) {\n if (this._oneComplete && this._b.length === 0) {\n this.emit(false);\n }\n else {\n this._a.push(value);\n this.checkValues();\n }\n };\n SequenceEqualSubscriber.prototype._complete = function () {\n if (this._oneComplete) {\n this.emit(this._a.length === 0 && this._b.length === 0);\n }\n else {\n this._oneComplete = true;\n }\n this.unsubscribe();\n };\n SequenceEqualSubscriber.prototype.checkValues = function () {\n var _c = this, _a = _c._a, _b = _c._b, comparator = _c.comparator;\n while (_a.length > 0 && _b.length > 0) {\n var a = _a.shift();\n var b = _b.shift();\n var areEqual = false;\n try {\n areEqual = comparator ? comparator(a, b) : a === b;\n }\n catch (e) {\n this.destination.error(e);\n }\n if (!areEqual) {\n this.emit(false);\n }\n }\n };\n SequenceEqualSubscriber.prototype.emit = function (value) {\n var destination = this.destination;\n destination.next(value);\n destination.complete();\n };\n SequenceEqualSubscriber.prototype.nextB = function (value) {\n if (this._oneComplete && this._a.length === 0) {\n this.emit(false);\n }\n else {\n this._b.push(value);\n this.checkValues();\n }\n };\n SequenceEqualSubscriber.prototype.completeB = function () {\n if (this._oneComplete) {\n this.emit(this._a.length === 0 && this._b.length === 0);\n }\n else {\n this._oneComplete = true;\n }\n };\n return SequenceEqualSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n\nvar SequenceEqualCompareToSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SequenceEqualCompareToSubscriber, _super);\n function SequenceEqualCompareToSubscriber(destination, parent) {\n var _this = _super.call(this, destination) || this;\n _this.parent = parent;\n return _this;\n }\n SequenceEqualCompareToSubscriber.prototype._next = function (value) {\n this.parent.nextB(value);\n };\n SequenceEqualCompareToSubscriber.prototype._error = function (err) {\n this.parent.error(err);\n this.unsubscribe();\n };\n SequenceEqualCompareToSubscriber.prototype._complete = function () {\n this.parent.completeB();\n this.unsubscribe();\n };\n return SequenceEqualCompareToSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=sequenceEqual.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/sequenceEqual.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/share.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/share.js ***! + \*****************************************************************/ +/*! exports provided: share */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"share\", function() { return share; });\n/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./multicast */ \"./node_modules/rxjs/dist/esm5/internal/operators/multicast.js\");\n/* harmony import */ var _refCount__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./refCount */ \"./node_modules/rxjs/dist/esm5/internal/operators/refCount.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n\n\n\nfunction shareSubjectFactory() {\n return new _Subject__WEBPACK_IMPORTED_MODULE_2__[\"Subject\"]();\n}\nfunction share() {\n return function (source) { return Object(_refCount__WEBPACK_IMPORTED_MODULE_1__[\"refCount\"])()(Object(_multicast__WEBPACK_IMPORTED_MODULE_0__[\"multicast\"])(shareSubjectFactory)(source)); };\n}\n//# sourceMappingURL=share.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/share.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/shareReplay.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/shareReplay.js ***! + \***********************************************************************/ +/*! exports provided: shareReplay */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"shareReplay\", function() { return shareReplay; });\n/* harmony import */ var _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ReplaySubject */ \"./node_modules/rxjs/dist/esm5/internal/ReplaySubject.js\");\n\nfunction shareReplay(configOrBufferSize, windowTime, scheduler) {\n var config;\n if (configOrBufferSize && typeof configOrBufferSize === 'object') {\n config = configOrBufferSize;\n }\n else {\n config = {\n bufferSize: configOrBufferSize,\n windowTime: windowTime,\n refCount: false,\n scheduler: scheduler\n };\n }\n return function (source) { return source.lift(shareReplayOperator(config)); };\n}\nfunction shareReplayOperator(_a) {\n var _b = _a.bufferSize, bufferSize = _b === void 0 ? Number.POSITIVE_INFINITY : _b, _c = _a.windowTime, windowTime = _c === void 0 ? Number.POSITIVE_INFINITY : _c, useRefCount = _a.refCount, scheduler = _a.scheduler;\n var subject;\n var refCount = 0;\n var subscription;\n var hasError = false;\n var isComplete = false;\n return function shareReplayOperation(source) {\n refCount++;\n if (!subject || hasError) {\n hasError = false;\n subject = new _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__[\"ReplaySubject\"](bufferSize, windowTime, scheduler);\n subscription = source.subscribe({\n next: function (value) { subject.next(value); },\n error: function (err) {\n hasError = true;\n subject.error(err);\n },\n complete: function () {\n isComplete = true;\n subscription = undefined;\n subject.complete();\n },\n });\n }\n var innerSub = subject.subscribe(this);\n this.add(function () {\n refCount--;\n innerSub.unsubscribe();\n if (subscription && !isComplete && useRefCount && refCount === 0) {\n subscription.unsubscribe();\n subscription = undefined;\n subject = undefined;\n }\n });\n };\n}\n//# sourceMappingURL=shareReplay.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/shareReplay.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/single.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/single.js ***! + \******************************************************************/ +/*! exports provided: single */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"single\", function() { return single; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/EmptyError */ \"./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js\");\n\n\n\nfunction single(predicate) {\n return function (source) { return source.lift(new SingleOperator(predicate, source)); };\n}\nvar SingleOperator = (function () {\n function SingleOperator(predicate, source) {\n this.predicate = predicate;\n this.source = source;\n }\n SingleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source));\n };\n return SingleOperator;\n}());\nvar SingleSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SingleSubscriber, _super);\n function SingleSubscriber(destination, predicate, source) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.source = source;\n _this.seenValue = false;\n _this.index = 0;\n return _this;\n }\n SingleSubscriber.prototype.applySingleValue = function (value) {\n if (this.seenValue) {\n this.destination.error('Sequence contains more than one element');\n }\n else {\n this.seenValue = true;\n this.singleValue = value;\n }\n };\n SingleSubscriber.prototype._next = function (value) {\n var index = this.index++;\n if (this.predicate) {\n this.tryNext(value, index);\n }\n else {\n this.applySingleValue(value);\n }\n };\n SingleSubscriber.prototype.tryNext = function (value, index) {\n try {\n if (this.predicate(value, index, this.source)) {\n this.applySingleValue(value);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n SingleSubscriber.prototype._complete = function () {\n var destination = this.destination;\n if (this.index > 0) {\n destination.next(this.seenValue ? this.singleValue : undefined);\n destination.complete();\n }\n else {\n destination.error(new _util_EmptyError__WEBPACK_IMPORTED_MODULE_2__[\"EmptyError\"]);\n }\n };\n return SingleSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=single.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/single.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/skip.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/skip.js ***! + \****************************************************************/ +/*! exports provided: skip */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"skip\", function() { return skip; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction skip(count) {\n return function (source) { return source.lift(new SkipOperator(count)); };\n}\nvar SkipOperator = (function () {\n function SkipOperator(total) {\n this.total = total;\n }\n SkipOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SkipSubscriber(subscriber, this.total));\n };\n return SkipOperator;\n}());\nvar SkipSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SkipSubscriber, _super);\n function SkipSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n SkipSubscriber.prototype._next = function (x) {\n if (++this.count > this.total) {\n this.destination.next(x);\n }\n };\n return SkipSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=skip.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/skip.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/skipLast.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/skipLast.js ***! + \********************************************************************/ +/*! exports provided: skipLast */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"skipLast\", function() { return skipLast; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/ArgumentOutOfRangeError */ \"./node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js\");\n\n\n\nfunction skipLast(count) {\n return function (source) { return source.lift(new SkipLastOperator(count)); };\n}\nvar SkipLastOperator = (function () {\n function SkipLastOperator(_skipCount) {\n this._skipCount = _skipCount;\n if (this._skipCount < 0) {\n throw new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__[\"ArgumentOutOfRangeError\"];\n }\n }\n SkipLastOperator.prototype.call = function (subscriber, source) {\n if (this._skipCount === 0) {\n return source.subscribe(new _Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"](subscriber));\n }\n else {\n return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount));\n }\n };\n return SkipLastOperator;\n}());\nvar SkipLastSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SkipLastSubscriber, _super);\n function SkipLastSubscriber(destination, _skipCount) {\n var _this = _super.call(this, destination) || this;\n _this._skipCount = _skipCount;\n _this._count = 0;\n _this._ring = new Array(_skipCount);\n return _this;\n }\n SkipLastSubscriber.prototype._next = function (value) {\n var skipCount = this._skipCount;\n var count = this._count++;\n if (count < skipCount) {\n this._ring[count] = value;\n }\n else {\n var currentIndex = count % skipCount;\n var ring = this._ring;\n var oldValue = ring[currentIndex];\n ring[currentIndex] = value;\n this.destination.next(oldValue);\n }\n };\n return SkipLastSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=skipLast.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/skipLast.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/skipUntil.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/skipUntil.js ***! + \*********************************************************************/ +/*! exports provided: skipUntil */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"skipUntil\", function() { return skipUntil; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../InnerSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\nfunction skipUntil(notifier) {\n return function (source) { return source.lift(new SkipUntilOperator(notifier)); };\n}\nvar SkipUntilOperator = (function () {\n function SkipUntilOperator(notifier) {\n this.notifier = notifier;\n }\n SkipUntilOperator.prototype.call = function (destination, source) {\n return source.subscribe(new SkipUntilSubscriber(destination, this.notifier));\n };\n return SkipUntilOperator;\n}());\nvar SkipUntilSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SkipUntilSubscriber, _super);\n function SkipUntilSubscriber(destination, notifier) {\n var _this = _super.call(this, destination) || this;\n _this.hasValue = false;\n var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"InnerSubscriber\"](_this, undefined, undefined);\n _this.add(innerSubscriber);\n _this.innerSubscription = innerSubscriber;\n var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToResult\"])(_this, notifier, undefined, undefined, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n _this.add(innerSubscription);\n _this.innerSubscription = innerSubscription;\n }\n return _this;\n }\n SkipUntilSubscriber.prototype._next = function (value) {\n if (this.hasValue) {\n _super.prototype._next.call(this, value);\n }\n };\n SkipUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.hasValue = true;\n if (this.innerSubscription) {\n this.innerSubscription.unsubscribe();\n }\n };\n SkipUntilSubscriber.prototype.notifyComplete = function () {\n };\n return SkipUntilSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=skipUntil.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/skipUntil.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/skipWhile.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/skipWhile.js ***! + \*********************************************************************/ +/*! exports provided: skipWhile */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"skipWhile\", function() { return skipWhile; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction skipWhile(predicate) {\n return function (source) { return source.lift(new SkipWhileOperator(predicate)); };\n}\nvar SkipWhileOperator = (function () {\n function SkipWhileOperator(predicate) {\n this.predicate = predicate;\n }\n SkipWhileOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate));\n };\n return SkipWhileOperator;\n}());\nvar SkipWhileSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SkipWhileSubscriber, _super);\n function SkipWhileSubscriber(destination, predicate) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.skipping = true;\n _this.index = 0;\n return _this;\n }\n SkipWhileSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n if (this.skipping) {\n this.tryCallPredicate(value);\n }\n if (!this.skipping) {\n destination.next(value);\n }\n };\n SkipWhileSubscriber.prototype.tryCallPredicate = function (value) {\n try {\n var result = this.predicate(value, this.index++);\n this.skipping = Boolean(result);\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n return SkipWhileSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=skipWhile.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/skipWhile.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/startWith.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/startWith.js ***! + \*********************************************************************/ +/*! exports provided: startWith */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"startWith\", function() { return startWith; });\n/* harmony import */ var _observable_concat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../observable/concat */ \"./node_modules/rxjs/dist/esm5/internal/observable/concat.js\");\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n\n\nfunction startWith() {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n var scheduler = values[values.length - 1];\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_1__[\"isScheduler\"])(scheduler)) {\n values.pop();\n return function (source) { return Object(_observable_concat__WEBPACK_IMPORTED_MODULE_0__[\"concat\"])(values, source, scheduler); };\n }\n else {\n return function (source) { return Object(_observable_concat__WEBPACK_IMPORTED_MODULE_0__[\"concat\"])(values, source); };\n }\n}\n//# sourceMappingURL=startWith.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/startWith.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js ***! + \***********************************************************************/ +/*! exports provided: subscribeOn */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subscribeOn\", function() { return subscribeOn; });\n/* harmony import */ var _observable_SubscribeOnObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../observable/SubscribeOnObservable */ \"./node_modules/rxjs/dist/esm5/internal/observable/SubscribeOnObservable.js\");\n\nfunction subscribeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return function subscribeOnOperatorFunction(source) {\n return source.lift(new SubscribeOnOperator(scheduler, delay));\n };\n}\nvar SubscribeOnOperator = (function () {\n function SubscribeOnOperator(scheduler, delay) {\n this.scheduler = scheduler;\n this.delay = delay;\n }\n SubscribeOnOperator.prototype.call = function (subscriber, source) {\n return new _observable_SubscribeOnObservable__WEBPACK_IMPORTED_MODULE_0__[\"SubscribeOnObservable\"](source, this.delay, this.scheduler).subscribe(subscriber);\n };\n return SubscribeOnOperator;\n}());\n//# sourceMappingURL=subscribeOn.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/switchAll.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/switchAll.js ***! + \*********************************************************************/ +/*! exports provided: switchAll */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"switchAll\", function() { return switchAll; });\n/* harmony import */ var _switchMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./switchMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js\");\n/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/identity */ \"./node_modules/rxjs/dist/esm5/internal/util/identity.js\");\n\n\nfunction switchAll() {\n return Object(_switchMap__WEBPACK_IMPORTED_MODULE_0__[\"switchMap\"])(_util_identity__WEBPACK_IMPORTED_MODULE_1__[\"identity\"]);\n}\n//# sourceMappingURL=switchAll.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/switchAll.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js ***! + \*********************************************************************/ +/*! exports provided: switchMap */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"switchMap\", function() { return switchMap; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../InnerSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../observable/from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n\n\n\n\n\n\nfunction switchMap(project, resultSelector) {\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(switchMap(function (a, i) { return Object(_observable_from__WEBPACK_IMPORTED_MODULE_5__[\"from\"])(project(a, i)).pipe(Object(_map__WEBPACK_IMPORTED_MODULE_4__[\"map\"])(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };\n }\n return function (source) { return source.lift(new SwitchMapOperator(project)); };\n}\nvar SwitchMapOperator = (function () {\n function SwitchMapOperator(project) {\n this.project = project;\n }\n SwitchMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));\n };\n return SwitchMapOperator;\n}());\nvar SwitchMapSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SwitchMapSubscriber, _super);\n function SwitchMapSubscriber(destination, project) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.index = 0;\n return _this;\n }\n SwitchMapSubscriber.prototype._next = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (error) {\n this.destination.error(error);\n return;\n }\n this._innerSub(result, value, index);\n };\n SwitchMapSubscriber.prototype._innerSub = function (result, value, index) {\n var innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"InnerSubscriber\"](this, value, index);\n var destination = this.destination;\n destination.add(innerSubscriber);\n this.innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToResult\"])(this, result, undefined, undefined, innerSubscriber);\n if (this.innerSubscription !== innerSubscriber) {\n destination.add(this.innerSubscription);\n }\n };\n SwitchMapSubscriber.prototype._complete = function () {\n var innerSubscription = this.innerSubscription;\n if (!innerSubscription || innerSubscription.closed) {\n _super.prototype._complete.call(this);\n }\n this.unsubscribe();\n };\n SwitchMapSubscriber.prototype._unsubscribe = function () {\n this.innerSubscription = null;\n };\n SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var destination = this.destination;\n destination.remove(innerSub);\n this.innerSubscription = null;\n if (this.isStopped) {\n _super.prototype._complete.call(this);\n }\n };\n SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n return SwitchMapSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=switchMap.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/switchMapTo.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/switchMapTo.js ***! + \***********************************************************************/ +/*! exports provided: switchMapTo */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"switchMapTo\", function() { return switchMapTo; });\n/* harmony import */ var _switchMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./switchMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js\");\n\nfunction switchMapTo(innerObservable, resultSelector) {\n return resultSelector ? Object(_switchMap__WEBPACK_IMPORTED_MODULE_0__[\"switchMap\"])(function () { return innerObservable; }, resultSelector) : Object(_switchMap__WEBPACK_IMPORTED_MODULE_0__[\"switchMap\"])(function () { return innerObservable; });\n}\n//# sourceMappingURL=switchMapTo.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/switchMapTo.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/take.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/take.js ***! + \****************************************************************/ +/*! exports provided: take */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"take\", function() { return take; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/ArgumentOutOfRangeError */ \"./node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js\");\n/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../observable/empty */ \"./node_modules/rxjs/dist/esm5/internal/observable/empty.js\");\n\n\n\n\nfunction take(count) {\n return function (source) {\n if (count === 0) {\n return _observable_empty__WEBPACK_IMPORTED_MODULE_3__[\"EMPTY\"];\n }\n else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\nvar TakeOperator = (function () {\n function TakeOperator(total) {\n this.total = total;\n if (this.total < 0) {\n throw new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__[\"ArgumentOutOfRangeError\"];\n }\n }\n TakeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n };\n return TakeOperator;\n}());\nvar TakeSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(TakeSubscriber, _super);\n function TakeSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n TakeSubscriber.prototype._next = function (value) {\n var total = this.total;\n var count = ++this.count;\n if (count <= total) {\n this.destination.next(value);\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n };\n return TakeSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=take.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/take.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/takeLast.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/takeLast.js ***! + \********************************************************************/ +/*! exports provided: takeLast */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"takeLast\", function() { return takeLast; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/ArgumentOutOfRangeError */ \"./node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js\");\n/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../observable/empty */ \"./node_modules/rxjs/dist/esm5/internal/observable/empty.js\");\n\n\n\n\nfunction takeLast(count) {\n return function takeLastOperatorFunction(source) {\n if (count === 0) {\n return _observable_empty__WEBPACK_IMPORTED_MODULE_3__[\"EMPTY\"];\n }\n else {\n return source.lift(new TakeLastOperator(count));\n }\n };\n}\nvar TakeLastOperator = (function () {\n function TakeLastOperator(total) {\n this.total = total;\n if (this.total < 0) {\n throw new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__[\"ArgumentOutOfRangeError\"];\n }\n }\n TakeLastOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeLastSubscriber(subscriber, this.total));\n };\n return TakeLastOperator;\n}());\nvar TakeLastSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(TakeLastSubscriber, _super);\n function TakeLastSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.ring = new Array();\n _this.count = 0;\n return _this;\n }\n TakeLastSubscriber.prototype._next = function (value) {\n var ring = this.ring;\n var total = this.total;\n var count = this.count++;\n if (ring.length < total) {\n ring.push(value);\n }\n else {\n var index = count % total;\n ring[index] = value;\n }\n };\n TakeLastSubscriber.prototype._complete = function () {\n var destination = this.destination;\n var count = this.count;\n if (count > 0) {\n var total = this.count >= this.total ? this.total : this.count;\n var ring = this.ring;\n for (var i = 0; i < total; i++) {\n var idx = (count++) % total;\n destination.next(ring[idx]);\n }\n }\n destination.complete();\n };\n return TakeLastSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=takeLast.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/takeLast.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js ***! + \*********************************************************************/ +/*! exports provided: takeUntil */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"takeUntil\", function() { return takeUntil; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nfunction takeUntil(notifier) {\n return function (source) { return source.lift(new TakeUntilOperator(notifier)); };\n}\nvar TakeUntilOperator = (function () {\n function TakeUntilOperator(notifier) {\n this.notifier = notifier;\n }\n TakeUntilOperator.prototype.call = function (subscriber, source) {\n var takeUntilSubscriber = new TakeUntilSubscriber(subscriber);\n var notifierSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(takeUntilSubscriber, this.notifier);\n if (notifierSubscription && !takeUntilSubscriber.seenValue) {\n takeUntilSubscriber.add(notifierSubscription);\n return source.subscribe(takeUntilSubscriber);\n }\n return takeUntilSubscriber;\n };\n return TakeUntilOperator;\n}());\nvar TakeUntilSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(TakeUntilSubscriber, _super);\n function TakeUntilSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.seenValue = false;\n return _this;\n }\n TakeUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.seenValue = true;\n this.complete();\n };\n TakeUntilSubscriber.prototype.notifyComplete = function () {\n };\n return TakeUntilSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=takeUntil.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/takeWhile.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/takeWhile.js ***! + \*********************************************************************/ +/*! exports provided: takeWhile */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"takeWhile\", function() { return takeWhile; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction takeWhile(predicate, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return function (source) {\n return source.lift(new TakeWhileOperator(predicate, inclusive));\n };\n}\nvar TakeWhileOperator = (function () {\n function TakeWhileOperator(predicate, inclusive) {\n this.predicate = predicate;\n this.inclusive = inclusive;\n }\n TakeWhileOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive));\n };\n return TakeWhileOperator;\n}());\nvar TakeWhileSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(TakeWhileSubscriber, _super);\n function TakeWhileSubscriber(destination, predicate, inclusive) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.inclusive = inclusive;\n _this.index = 0;\n return _this;\n }\n TakeWhileSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n var result;\n try {\n result = this.predicate(value, this.index++);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this.nextOrComplete(value, result);\n };\n TakeWhileSubscriber.prototype.nextOrComplete = function (value, predicateResult) {\n var destination = this.destination;\n if (Boolean(predicateResult)) {\n destination.next(value);\n }\n else {\n if (this.inclusive) {\n destination.next(value);\n }\n destination.complete();\n }\n };\n return TakeWhileSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=takeWhile.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/takeWhile.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/tap.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/tap.js ***! + \***************************************************************/ +/*! exports provided: tap */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tap\", function() { return tap; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _util_noop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/noop */ \"./node_modules/rxjs/dist/esm5/internal/util/noop.js\");\n/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/isFunction */ \"./node_modules/rxjs/dist/esm5/internal/util/isFunction.js\");\n\n\n\n\nfunction tap(nextOrObserver, error, complete) {\n return function tapOperatorFunction(source) {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\nvar DoOperator = (function () {\n function DoOperator(nextOrObserver, error, complete) {\n this.nextOrObserver = nextOrObserver;\n this.error = error;\n this.complete = complete;\n }\n DoOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n };\n return DoOperator;\n}());\nvar TapSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(TapSubscriber, _super);\n function TapSubscriber(destination, observerOrNext, error, complete) {\n var _this = _super.call(this, destination) || this;\n _this._tapNext = _util_noop__WEBPACK_IMPORTED_MODULE_2__[\"noop\"];\n _this._tapError = _util_noop__WEBPACK_IMPORTED_MODULE_2__[\"noop\"];\n _this._tapComplete = _util_noop__WEBPACK_IMPORTED_MODULE_2__[\"noop\"];\n _this._tapError = error || _util_noop__WEBPACK_IMPORTED_MODULE_2__[\"noop\"];\n _this._tapComplete = complete || _util_noop__WEBPACK_IMPORTED_MODULE_2__[\"noop\"];\n if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_3__[\"isFunction\"])(observerOrNext)) {\n _this._context = _this;\n _this._tapNext = observerOrNext;\n }\n else if (observerOrNext) {\n _this._context = observerOrNext;\n _this._tapNext = observerOrNext.next || _util_noop__WEBPACK_IMPORTED_MODULE_2__[\"noop\"];\n _this._tapError = observerOrNext.error || _util_noop__WEBPACK_IMPORTED_MODULE_2__[\"noop\"];\n _this._tapComplete = observerOrNext.complete || _util_noop__WEBPACK_IMPORTED_MODULE_2__[\"noop\"];\n }\n return _this;\n }\n TapSubscriber.prototype._next = function (value) {\n try {\n this._tapNext.call(this._context, value);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(value);\n };\n TapSubscriber.prototype._error = function (err) {\n try {\n this._tapError.call(this._context, err);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.error(err);\n };\n TapSubscriber.prototype._complete = function () {\n try {\n this._tapComplete.call(this._context);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n return this.destination.complete();\n };\n return TapSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=tap.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/tap.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/throttle.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/throttle.js ***! + \********************************************************************/ +/*! exports provided: defaultThrottleConfig, throttle */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultThrottleConfig\", function() { return defaultThrottleConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"throttle\", function() { return throttle; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nvar defaultThrottleConfig = {\n leading: true,\n trailing: false\n};\nfunction throttle(durationSelector, config) {\n if (config === void 0) { config = defaultThrottleConfig; }\n return function (source) { return source.lift(new ThrottleOperator(durationSelector, !!config.leading, !!config.trailing)); };\n}\nvar ThrottleOperator = (function () {\n function ThrottleOperator(durationSelector, leading, trailing) {\n this.durationSelector = durationSelector;\n this.leading = leading;\n this.trailing = trailing;\n }\n ThrottleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing));\n };\n return ThrottleOperator;\n}());\nvar ThrottleSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ThrottleSubscriber, _super);\n function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.durationSelector = durationSelector;\n _this._leading = _leading;\n _this._trailing = _trailing;\n _this._sendValue = null;\n _this._hasValue = false;\n return _this;\n }\n ThrottleSubscriber.prototype._next = function (value) {\n this._hasValue = true;\n this._sendValue = value;\n if (!this._throttled) {\n if (this._leading) {\n this.send();\n }\n else {\n this.throttle(value);\n }\n }\n };\n ThrottleSubscriber.prototype.send = function () {\n var _a = this, _hasValue = _a._hasValue, _sendValue = _a._sendValue;\n if (_hasValue) {\n this.destination.next(_sendValue);\n this.throttle(_sendValue);\n }\n this._hasValue = false;\n this._sendValue = null;\n };\n ThrottleSubscriber.prototype.throttle = function (value) {\n var duration = this.tryDurationSelector(value);\n if (!!duration) {\n this.add(this._throttled = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(this, duration));\n }\n };\n ThrottleSubscriber.prototype.tryDurationSelector = function (value) {\n try {\n return this.durationSelector(value);\n }\n catch (err) {\n this.destination.error(err);\n return null;\n }\n };\n ThrottleSubscriber.prototype.throttlingDone = function () {\n var _a = this, _throttled = _a._throttled, _trailing = _a._trailing;\n if (_throttled) {\n _throttled.unsubscribe();\n }\n this._throttled = null;\n if (_trailing) {\n this.send();\n }\n };\n ThrottleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.throttlingDone();\n };\n ThrottleSubscriber.prototype.notifyComplete = function () {\n this.throttlingDone();\n };\n return ThrottleSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=throttle.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/throttle.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/throttleTime.js": +/*!************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/throttleTime.js ***! + \************************************************************************/ +/*! exports provided: throttleTime */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"throttleTime\", function() { return throttleTime; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _throttle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./throttle */ \"./node_modules/rxjs/dist/esm5/internal/operators/throttle.js\");\n\n\n\n\nfunction throttleTime(duration, scheduler, config) {\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_2__[\"async\"]; }\n if (config === void 0) { config = _throttle__WEBPACK_IMPORTED_MODULE_3__[\"defaultThrottleConfig\"]; }\n return function (source) { return source.lift(new ThrottleTimeOperator(duration, scheduler, !!config.leading, !!config.trailing)); };\n}\nvar ThrottleTimeOperator = (function () {\n function ThrottleTimeOperator(duration, scheduler, leading, trailing) {\n this.duration = duration;\n this.scheduler = scheduler;\n this.leading = leading;\n this.trailing = trailing;\n }\n ThrottleTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing));\n };\n return ThrottleTimeOperator;\n}());\nvar ThrottleTimeSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ThrottleTimeSubscriber, _super);\n function ThrottleTimeSubscriber(destination, duration, scheduler, leading, trailing) {\n var _this = _super.call(this, destination) || this;\n _this.duration = duration;\n _this.scheduler = scheduler;\n _this.leading = leading;\n _this.trailing = trailing;\n _this.throttled = null;\n _this._hasTrailingValue = false;\n _this._trailingValue = null;\n return _this;\n }\n ThrottleTimeSubscriber.prototype._next = function (value) {\n if (this.throttled) {\n if (this.trailing) {\n this._trailingValue = value;\n this._hasTrailingValue = true;\n }\n }\n else {\n this.add(this.throttled = this.scheduler.schedule(dispatchNext, this.duration, { subscriber: this }));\n if (this.leading) {\n this.destination.next(value);\n }\n else if (this.trailing) {\n this._trailingValue = value;\n this._hasTrailingValue = true;\n }\n }\n };\n ThrottleTimeSubscriber.prototype._complete = function () {\n if (this._hasTrailingValue) {\n this.destination.next(this._trailingValue);\n this.destination.complete();\n }\n else {\n this.destination.complete();\n }\n };\n ThrottleTimeSubscriber.prototype.clearThrottle = function () {\n var throttled = this.throttled;\n if (throttled) {\n if (this.trailing && this._hasTrailingValue) {\n this.destination.next(this._trailingValue);\n this._trailingValue = null;\n this._hasTrailingValue = false;\n }\n throttled.unsubscribe();\n this.remove(throttled);\n this.throttled = null;\n }\n };\n return ThrottleTimeSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\nfunction dispatchNext(arg) {\n var subscriber = arg.subscriber;\n subscriber.clearThrottle();\n}\n//# sourceMappingURL=throttleTime.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/throttleTime.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js": +/*!************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js ***! + \************************************************************************/ +/*! exports provided: throwIfEmpty */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"throwIfEmpty\", function() { return throwIfEmpty; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/EmptyError */ \"./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\n\nfunction throwIfEmpty(errorFactory) {\n if (errorFactory === void 0) { errorFactory = defaultErrorFactory; }\n return function (source) {\n return source.lift(new ThrowIfEmptyOperator(errorFactory));\n };\n}\nvar ThrowIfEmptyOperator = (function () {\n function ThrowIfEmptyOperator(errorFactory) {\n this.errorFactory = errorFactory;\n }\n ThrowIfEmptyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory));\n };\n return ThrowIfEmptyOperator;\n}());\nvar ThrowIfEmptySubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ThrowIfEmptySubscriber, _super);\n function ThrowIfEmptySubscriber(destination, errorFactory) {\n var _this = _super.call(this, destination) || this;\n _this.errorFactory = errorFactory;\n _this.hasValue = false;\n return _this;\n }\n ThrowIfEmptySubscriber.prototype._next = function (value) {\n this.hasValue = true;\n this.destination.next(value);\n };\n ThrowIfEmptySubscriber.prototype._complete = function () {\n if (!this.hasValue) {\n var err = void 0;\n try {\n err = this.errorFactory();\n }\n catch (e) {\n err = e;\n }\n this.destination.error(err);\n }\n else {\n return this.destination.complete();\n }\n };\n return ThrowIfEmptySubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_2__[\"Subscriber\"]));\nfunction defaultErrorFactory() {\n return new _util_EmptyError__WEBPACK_IMPORTED_MODULE_1__[\"EmptyError\"]();\n}\n//# sourceMappingURL=throwIfEmpty.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/timeInterval.js": +/*!************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/timeInterval.js ***! + \************************************************************************/ +/*! exports provided: timeInterval, TimeInterval */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeInterval\", function() { return timeInterval; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TimeInterval\", function() { return TimeInterval; });\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./scan */ \"./node_modules/rxjs/dist/esm5/internal/operators/scan.js\");\n/* harmony import */ var _observable_defer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../observable/defer */ \"./node_modules/rxjs/dist/esm5/internal/observable/defer.js\");\n/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n\n\n\n\nfunction timeInterval(scheduler) {\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__[\"async\"]; }\n return function (source) { return Object(_observable_defer__WEBPACK_IMPORTED_MODULE_2__[\"defer\"])(function () {\n return source.pipe(Object(_scan__WEBPACK_IMPORTED_MODULE_1__[\"scan\"])(function (_a, value) {\n var current = _a.current;\n return ({ value: value, current: scheduler.now(), last: current });\n }, { current: scheduler.now(), value: undefined, last: undefined }), Object(_map__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (_a) {\n var current = _a.current, last = _a.last, value = _a.value;\n return new TimeInterval(value, current - last);\n }));\n }); };\n}\nvar TimeInterval = (function () {\n function TimeInterval(value, interval) {\n this.value = value;\n this.interval = interval;\n }\n return TimeInterval;\n}());\n\n//# sourceMappingURL=timeInterval.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/timeInterval.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/timeout.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/timeout.js ***! + \*******************************************************************/ +/*! exports provided: timeout */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeout\", function() { return timeout; });\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _util_TimeoutError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/TimeoutError */ \"./node_modules/rxjs/dist/esm5/internal/util/TimeoutError.js\");\n/* harmony import */ var _timeoutWith__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./timeoutWith */ \"./node_modules/rxjs/dist/esm5/internal/operators/timeoutWith.js\");\n/* harmony import */ var _observable_throwError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../observable/throwError */ \"./node_modules/rxjs/dist/esm5/internal/observable/throwError.js\");\n\n\n\n\nfunction timeout(due, scheduler) {\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__[\"async\"]; }\n return Object(_timeoutWith__WEBPACK_IMPORTED_MODULE_2__[\"timeoutWith\"])(due, Object(_observable_throwError__WEBPACK_IMPORTED_MODULE_3__[\"throwError\"])(new _util_TimeoutError__WEBPACK_IMPORTED_MODULE_1__[\"TimeoutError\"]()), scheduler);\n}\n//# sourceMappingURL=timeout.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/timeout.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/timeoutWith.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/timeoutWith.js ***! + \***********************************************************************/ +/*! exports provided: timeoutWith */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeoutWith\", function() { return timeoutWith; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _util_isDate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isDate */ \"./node_modules/rxjs/dist/esm5/internal/util/isDate.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\n\nfunction timeoutWith(due, withObservable, scheduler) {\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__[\"async\"]; }\n return function (source) {\n var absoluteTimeout = Object(_util_isDate__WEBPACK_IMPORTED_MODULE_2__[\"isDate\"])(due);\n var waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due);\n return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler));\n };\n}\nvar TimeoutWithOperator = (function () {\n function TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler) {\n this.waitFor = waitFor;\n this.absoluteTimeout = absoluteTimeout;\n this.withObservable = withObservable;\n this.scheduler = scheduler;\n }\n TimeoutWithOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TimeoutWithSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler));\n };\n return TimeoutWithOperator;\n}());\nvar TimeoutWithSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(TimeoutWithSubscriber, _super);\n function TimeoutWithSubscriber(destination, absoluteTimeout, waitFor, withObservable, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.absoluteTimeout = absoluteTimeout;\n _this.waitFor = waitFor;\n _this.withObservable = withObservable;\n _this.scheduler = scheduler;\n _this.action = null;\n _this.scheduleTimeout();\n return _this;\n }\n TimeoutWithSubscriber.dispatchTimeout = function (subscriber) {\n var withObservable = subscriber.withObservable;\n subscriber._unsubscribeAndRecycle();\n subscriber.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__[\"subscribeToResult\"])(subscriber, withObservable));\n };\n TimeoutWithSubscriber.prototype.scheduleTimeout = function () {\n var action = this.action;\n if (action) {\n this.action = action.schedule(this, this.waitFor);\n }\n else {\n this.add(this.action = this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this));\n }\n };\n TimeoutWithSubscriber.prototype._next = function (value) {\n if (!this.absoluteTimeout) {\n this.scheduleTimeout();\n }\n _super.prototype._next.call(this, value);\n };\n TimeoutWithSubscriber.prototype._unsubscribe = function () {\n this.action = null;\n this.scheduler = null;\n this.withObservable = null;\n };\n return TimeoutWithSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__[\"OuterSubscriber\"]));\n//# sourceMappingURL=timeoutWith.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/timeoutWith.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/timestamp.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/timestamp.js ***! + \*********************************************************************/ +/*! exports provided: timestamp, Timestamp */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timestamp\", function() { return timestamp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Timestamp\", function() { return Timestamp; });\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n\n\nfunction timestamp(scheduler) {\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__[\"async\"]; }\n return Object(_map__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (value) { return new Timestamp(value, scheduler.now()); });\n}\nvar Timestamp = (function () {\n function Timestamp(value, timestamp) {\n this.value = value;\n this.timestamp = timestamp;\n }\n return Timestamp;\n}());\n\n//# sourceMappingURL=timestamp.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/timestamp.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/toArray.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/toArray.js ***! + \*******************************************************************/ +/*! exports provided: toArray */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toArray\", function() { return toArray; });\n/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reduce */ \"./node_modules/rxjs/dist/esm5/internal/operators/reduce.js\");\n\nfunction toArrayReducer(arr, item, index) {\n if (index === 0) {\n return [item];\n }\n arr.push(item);\n return arr;\n}\nfunction toArray() {\n return Object(_reduce__WEBPACK_IMPORTED_MODULE_0__[\"reduce\"])(toArrayReducer, []);\n}\n//# sourceMappingURL=toArray.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/toArray.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/window.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/window.js ***! + \******************************************************************/ +/*! exports provided: window */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"window\", function() { return window; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\nfunction window(windowBoundaries) {\n return function windowOperatorFunction(source) {\n return source.lift(new WindowOperator(windowBoundaries));\n };\n}\nvar WindowOperator = (function () {\n function WindowOperator(windowBoundaries) {\n this.windowBoundaries = windowBoundaries;\n }\n WindowOperator.prototype.call = function (subscriber, source) {\n var windowSubscriber = new WindowSubscriber(subscriber);\n var sourceSubscription = source.subscribe(windowSubscriber);\n if (!sourceSubscription.closed) {\n windowSubscriber.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToResult\"])(windowSubscriber, this.windowBoundaries));\n }\n return sourceSubscription;\n };\n return WindowOperator;\n}());\nvar WindowSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(WindowSubscriber, _super);\n function WindowSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.window = new _Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]();\n destination.next(_this.window);\n return _this;\n }\n WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.openWindow();\n };\n WindowSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n WindowSubscriber.prototype.notifyComplete = function (innerSub) {\n this._complete();\n };\n WindowSubscriber.prototype._next = function (value) {\n this.window.next(value);\n };\n WindowSubscriber.prototype._error = function (err) {\n this.window.error(err);\n this.destination.error(err);\n };\n WindowSubscriber.prototype._complete = function () {\n this.window.complete();\n this.destination.complete();\n };\n WindowSubscriber.prototype._unsubscribe = function () {\n this.window = null;\n };\n WindowSubscriber.prototype.openWindow = function () {\n var prevWindow = this.window;\n if (prevWindow) {\n prevWindow.complete();\n }\n var destination = this.destination;\n var newWindow = this.window = new _Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]();\n destination.next(newWindow);\n };\n return WindowSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"OuterSubscriber\"]));\n//# sourceMappingURL=window.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/window.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/windowCount.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/windowCount.js ***! + \***********************************************************************/ +/*! exports provided: windowCount */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"windowCount\", function() { return windowCount; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n\n\n\nfunction windowCount(windowSize, startWindowEvery) {\n if (startWindowEvery === void 0) { startWindowEvery = 0; }\n return function windowCountOperatorFunction(source) {\n return source.lift(new WindowCountOperator(windowSize, startWindowEvery));\n };\n}\nvar WindowCountOperator = (function () {\n function WindowCountOperator(windowSize, startWindowEvery) {\n this.windowSize = windowSize;\n this.startWindowEvery = startWindowEvery;\n }\n WindowCountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery));\n };\n return WindowCountOperator;\n}());\nvar WindowCountSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(WindowCountSubscriber, _super);\n function WindowCountSubscriber(destination, windowSize, startWindowEvery) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.windowSize = windowSize;\n _this.startWindowEvery = startWindowEvery;\n _this.windows = [new _Subject__WEBPACK_IMPORTED_MODULE_2__[\"Subject\"]()];\n _this.count = 0;\n destination.next(_this.windows[0]);\n return _this;\n }\n WindowCountSubscriber.prototype._next = function (value) {\n var startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize;\n var destination = this.destination;\n var windowSize = this.windowSize;\n var windows = this.windows;\n var len = windows.length;\n for (var i = 0; i < len && !this.closed; i++) {\n windows[i].next(value);\n }\n var c = this.count - windowSize + 1;\n if (c >= 0 && c % startWindowEvery === 0 && !this.closed) {\n windows.shift().complete();\n }\n if (++this.count % startWindowEvery === 0 && !this.closed) {\n var window_1 = new _Subject__WEBPACK_IMPORTED_MODULE_2__[\"Subject\"]();\n windows.push(window_1);\n destination.next(window_1);\n }\n };\n WindowCountSubscriber.prototype._error = function (err) {\n var windows = this.windows;\n if (windows) {\n while (windows.length > 0 && !this.closed) {\n windows.shift().error(err);\n }\n }\n this.destination.error(err);\n };\n WindowCountSubscriber.prototype._complete = function () {\n var windows = this.windows;\n if (windows) {\n while (windows.length > 0 && !this.closed) {\n windows.shift().complete();\n }\n }\n this.destination.complete();\n };\n WindowCountSubscriber.prototype._unsubscribe = function () {\n this.count = 0;\n this.windows = null;\n };\n return WindowCountSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=windowCount.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/windowCount.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/windowTime.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/windowTime.js ***! + \**********************************************************************/ +/*! exports provided: windowTime */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"windowTime\", function() { return windowTime; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/isNumeric */ \"./node_modules/rxjs/dist/esm5/internal/util/isNumeric.js\");\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n\n\n\n\n\n\nfunction windowTime(windowTimeSpan) {\n var scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_2__[\"async\"];\n var windowCreationInterval = null;\n var maxWindowSize = Number.POSITIVE_INFINITY;\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_5__[\"isScheduler\"])(arguments[3])) {\n scheduler = arguments[3];\n }\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_5__[\"isScheduler\"])(arguments[2])) {\n scheduler = arguments[2];\n }\n else if (Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_4__[\"isNumeric\"])(arguments[2])) {\n maxWindowSize = Number(arguments[2]);\n }\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_5__[\"isScheduler\"])(arguments[1])) {\n scheduler = arguments[1];\n }\n else if (Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_4__[\"isNumeric\"])(arguments[1])) {\n windowCreationInterval = Number(arguments[1]);\n }\n return function windowTimeOperatorFunction(source) {\n return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler));\n };\n}\nvar WindowTimeOperator = (function () {\n function WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {\n this.windowTimeSpan = windowTimeSpan;\n this.windowCreationInterval = windowCreationInterval;\n this.maxWindowSize = maxWindowSize;\n this.scheduler = scheduler;\n }\n WindowTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowTimeSubscriber(subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler));\n };\n return WindowTimeOperator;\n}());\nvar CountedSubject = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(CountedSubject, _super);\n function CountedSubject() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._numberOfNextedValues = 0;\n return _this;\n }\n CountedSubject.prototype.next = function (value) {\n this._numberOfNextedValues++;\n _super.prototype.next.call(this, value);\n };\n Object.defineProperty(CountedSubject.prototype, \"numberOfNextedValues\", {\n get: function () {\n return this._numberOfNextedValues;\n },\n enumerable: true,\n configurable: true\n });\n return CountedSubject;\n}(_Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]));\nvar WindowTimeSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(WindowTimeSubscriber, _super);\n function WindowTimeSubscriber(destination, windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.maxWindowSize = maxWindowSize;\n _this.windows = [];\n var window = _this.openWindow();\n if (windowCreationInterval !== null && windowCreationInterval >= 0) {\n var closeState = { subscriber: _this, window: window, context: null };\n var creationState = { windowTimeSpan: windowTimeSpan, windowCreationInterval: windowCreationInterval, subscriber: _this, scheduler: scheduler };\n _this.add(scheduler.schedule(dispatchWindowClose, windowTimeSpan, closeState));\n _this.add(scheduler.schedule(dispatchWindowCreation, windowCreationInterval, creationState));\n }\n else {\n var timeSpanOnlyState = { subscriber: _this, window: window, windowTimeSpan: windowTimeSpan };\n _this.add(scheduler.schedule(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState));\n }\n return _this;\n }\n WindowTimeSubscriber.prototype._next = function (value) {\n var windows = this.maxWindowSize < Number.POSITIVE_INFINITY ? this.windows.slice() : this.windows;\n var len = windows.length;\n for (var i = 0; i < len; i++) {\n var window_1 = windows[i];\n if (!window_1.closed) {\n window_1.next(value);\n if (this.maxWindowSize <= window_1.numberOfNextedValues) {\n this.closeWindow(window_1);\n }\n }\n }\n };\n WindowTimeSubscriber.prototype._error = function (err) {\n var windows = this.windows;\n while (windows.length > 0) {\n windows.shift().error(err);\n }\n this.destination.error(err);\n };\n WindowTimeSubscriber.prototype._complete = function () {\n var windows = this.windows;\n while (windows.length > 0) {\n windows.shift().complete();\n }\n this.destination.complete();\n };\n WindowTimeSubscriber.prototype.openWindow = function () {\n var window = new CountedSubject();\n this.windows.push(window);\n var destination = this.destination;\n destination.next(window);\n return window;\n };\n WindowTimeSubscriber.prototype.closeWindow = function (window) {\n var index = this.windows.indexOf(window);\n if (index >= 0) {\n window.complete();\n this.windows.splice(index, 1);\n }\n };\n return WindowTimeSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__[\"Subscriber\"]));\nfunction dispatchWindowTimeSpanOnly(state) {\n var subscriber = state.subscriber, windowTimeSpan = state.windowTimeSpan, window = state.window;\n if (window) {\n subscriber.closeWindow(window);\n }\n state.window = subscriber.openWindow();\n this.schedule(state, windowTimeSpan);\n}\nfunction dispatchWindowCreation(state) {\n var windowTimeSpan = state.windowTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler, windowCreationInterval = state.windowCreationInterval;\n var window = subscriber.openWindow();\n var action = this;\n var context = { action: action, subscription: null };\n var timeSpanState = { subscriber: subscriber, window: window, context: context };\n context.subscription = scheduler.schedule(dispatchWindowClose, windowTimeSpan, timeSpanState);\n action.add(context.subscription);\n action.schedule(state, windowCreationInterval);\n}\nfunction dispatchWindowClose(state) {\n var subscriber = state.subscriber, window = state.window, context = state.context;\n if (context && context.action && context.subscription) {\n context.action.remove(context.subscription);\n }\n subscriber.closeWindow(window);\n}\n//# sourceMappingURL=windowTime.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/windowTime.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/windowToggle.js": +/*!************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/windowToggle.js ***! + \************************************************************************/ +/*! exports provided: windowToggle */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"windowToggle\", function() { return windowToggle; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\n\nfunction windowToggle(openings, closingSelector) {\n return function (source) { return source.lift(new WindowToggleOperator(openings, closingSelector)); };\n}\nvar WindowToggleOperator = (function () {\n function WindowToggleOperator(openings, closingSelector) {\n this.openings = openings;\n this.closingSelector = closingSelector;\n }\n WindowToggleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowToggleSubscriber(subscriber, this.openings, this.closingSelector));\n };\n return WindowToggleOperator;\n}());\nvar WindowToggleSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(WindowToggleSubscriber, _super);\n function WindowToggleSubscriber(destination, openings, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.openings = openings;\n _this.closingSelector = closingSelector;\n _this.contexts = [];\n _this.add(_this.openSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__[\"subscribeToResult\"])(_this, openings, openings));\n return _this;\n }\n WindowToggleSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n if (contexts) {\n var len = contexts.length;\n for (var i = 0; i < len; i++) {\n contexts[i].window.next(value);\n }\n }\n };\n WindowToggleSubscriber.prototype._error = function (err) {\n var contexts = this.contexts;\n this.contexts = null;\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n while (++index < len) {\n var context_1 = contexts[index];\n context_1.window.error(err);\n context_1.subscription.unsubscribe();\n }\n }\n _super.prototype._error.call(this, err);\n };\n WindowToggleSubscriber.prototype._complete = function () {\n var contexts = this.contexts;\n this.contexts = null;\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n while (++index < len) {\n var context_2 = contexts[index];\n context_2.window.complete();\n context_2.subscription.unsubscribe();\n }\n }\n _super.prototype._complete.call(this);\n };\n WindowToggleSubscriber.prototype._unsubscribe = function () {\n var contexts = this.contexts;\n this.contexts = null;\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n while (++index < len) {\n var context_3 = contexts[index];\n context_3.window.unsubscribe();\n context_3.subscription.unsubscribe();\n }\n }\n };\n WindowToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n if (outerValue === this.openings) {\n var closingNotifier = void 0;\n try {\n var closingSelector = this.closingSelector;\n closingNotifier = closingSelector(innerValue);\n }\n catch (e) {\n return this.error(e);\n }\n var window_1 = new _Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]();\n var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_2__[\"Subscription\"]();\n var context_4 = { window: window_1, subscription: subscription };\n this.contexts.push(context_4);\n var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__[\"subscribeToResult\"])(this, closingNotifier, context_4);\n if (innerSubscription.closed) {\n this.closeWindow(this.contexts.length - 1);\n }\n else {\n innerSubscription.context = context_4;\n subscription.add(innerSubscription);\n }\n this.destination.next(window_1);\n }\n else {\n this.closeWindow(this.contexts.indexOf(outerValue));\n }\n };\n WindowToggleSubscriber.prototype.notifyError = function (err) {\n this.error(err);\n };\n WindowToggleSubscriber.prototype.notifyComplete = function (inner) {\n if (inner !== this.openSubscription) {\n this.closeWindow(this.contexts.indexOf(inner.context));\n }\n };\n WindowToggleSubscriber.prototype.closeWindow = function (index) {\n if (index === -1) {\n return;\n }\n var contexts = this.contexts;\n var context = contexts[index];\n var window = context.window, subscription = context.subscription;\n contexts.splice(index, 1);\n window.complete();\n subscription.unsubscribe();\n };\n return WindowToggleSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__[\"OuterSubscriber\"]));\n//# sourceMappingURL=windowToggle.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/windowToggle.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/windowWhen.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/windowWhen.js ***! + \**********************************************************************/ +/*! exports provided: windowWhen */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"windowWhen\", function() { return windowWhen; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\nfunction windowWhen(closingSelector) {\n return function windowWhenOperatorFunction(source) {\n return source.lift(new WindowOperator(closingSelector));\n };\n}\nvar WindowOperator = (function () {\n function WindowOperator(closingSelector) {\n this.closingSelector = closingSelector;\n }\n WindowOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector));\n };\n return WindowOperator;\n}());\nvar WindowSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(WindowSubscriber, _super);\n function WindowSubscriber(destination, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.closingSelector = closingSelector;\n _this.openWindow();\n return _this;\n }\n WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.openWindow(innerSub);\n };\n WindowSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n WindowSubscriber.prototype.notifyComplete = function (innerSub) {\n this.openWindow(innerSub);\n };\n WindowSubscriber.prototype._next = function (value) {\n this.window.next(value);\n };\n WindowSubscriber.prototype._error = function (err) {\n this.window.error(err);\n this.destination.error(err);\n this.unsubscribeClosingNotification();\n };\n WindowSubscriber.prototype._complete = function () {\n this.window.complete();\n this.destination.complete();\n this.unsubscribeClosingNotification();\n };\n WindowSubscriber.prototype.unsubscribeClosingNotification = function () {\n if (this.closingNotification) {\n this.closingNotification.unsubscribe();\n }\n };\n WindowSubscriber.prototype.openWindow = function (innerSub) {\n if (innerSub === void 0) { innerSub = null; }\n if (innerSub) {\n this.remove(innerSub);\n innerSub.unsubscribe();\n }\n var prevWindow = this.window;\n if (prevWindow) {\n prevWindow.complete();\n }\n var window = this.window = new _Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]();\n this.destination.next(window);\n var closingNotifier;\n try {\n var closingSelector = this.closingSelector;\n closingNotifier = closingSelector();\n }\n catch (e) {\n this.destination.error(e);\n this.window.error(e);\n return;\n }\n this.add(this.closingNotification = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToResult\"])(this, closingNotifier));\n };\n return WindowSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"OuterSubscriber\"]));\n//# sourceMappingURL=windowWhen.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/windowWhen.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js ***! + \**************************************************************************/ +/*! exports provided: withLatestFrom */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"withLatestFrom\", function() { return withLatestFrom; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nfunction withLatestFrom() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return function (source) {\n var project;\n if (typeof args[args.length - 1] === 'function') {\n project = args.pop();\n }\n var observables = args;\n return source.lift(new WithLatestFromOperator(observables, project));\n };\n}\nvar WithLatestFromOperator = (function () {\n function WithLatestFromOperator(observables, project) {\n this.observables = observables;\n this.project = project;\n }\n WithLatestFromOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));\n };\n return WithLatestFromOperator;\n}());\nvar WithLatestFromSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(WithLatestFromSubscriber, _super);\n function WithLatestFromSubscriber(destination, observables, project) {\n var _this = _super.call(this, destination) || this;\n _this.observables = observables;\n _this.project = project;\n _this.toRespond = [];\n var len = observables.length;\n _this.values = new Array(len);\n for (var i = 0; i < len; i++) {\n _this.toRespond.push(i);\n }\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n _this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(_this, observable, observable, i));\n }\n return _this;\n }\n WithLatestFromSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.values[outerIndex] = innerValue;\n var toRespond = this.toRespond;\n if (toRespond.length > 0) {\n var found = toRespond.indexOf(outerIndex);\n if (found !== -1) {\n toRespond.splice(found, 1);\n }\n }\n };\n WithLatestFromSubscriber.prototype.notifyComplete = function () {\n };\n WithLatestFromSubscriber.prototype._next = function (value) {\n if (this.toRespond.length === 0) {\n var args = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])([value], this.values);\n if (this.project) {\n this._tryProject(args);\n }\n else {\n this.destination.next(args);\n }\n }\n };\n WithLatestFromSubscriber.prototype._tryProject = function (args) {\n var result;\n try {\n result = this.project.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return WithLatestFromSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=withLatestFrom.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/zipAll.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/zipAll.js ***! + \******************************************************************/ +/*! exports provided: zipAll */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"zipAll\", function() { return zipAll; });\n/* harmony import */ var _observable_zip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../observable/zip */ \"./node_modules/rxjs/dist/esm5/internal/observable/zip.js\");\n\nfunction zipAll(project) {\n return function (source) { return source.lift(new _observable_zip__WEBPACK_IMPORTED_MODULE_0__[\"ZipOperator\"](project)); };\n}\n//# sourceMappingURL=zipAll.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/zipAll.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/zipWith.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/zipWith.js ***! + \*******************************************************************/ +/*! exports provided: zip, zipWith */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"zip\", function() { return zip; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"zipWith\", function() { return zipWith; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _observable_zip__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../observable/zip */ \"./node_modules/rxjs/dist/esm5/internal/observable/zip.js\");\n\n\nfunction zip() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function zipOperatorFunction(source) {\n return source.lift.call(_observable_zip__WEBPACK_IMPORTED_MODULE_1__[\"zip\"].apply(void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])([source], observables)), undefined);\n };\n}\nfunction zipWith() {\n var otherInputs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n otherInputs[_i] = arguments[_i];\n }\n return zip.apply(void 0, otherInputs);\n}\n//# sourceMappingURL=zipWith.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/zipWith.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js": +/*!*************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js ***! + \*************************************************************************/ +/*! exports provided: scheduleArray */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scheduleArray\", function() { return scheduleArray; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n\n\nfunction scheduleArray(input, scheduler) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]();\n var i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleArray.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js ***! + \*********************************************************************************/ +/*! exports provided: scheduleAsyncIterable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scheduleAsyncIterable\", function() { return scheduleAsyncIterable; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n\n\nfunction scheduleAsyncIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]();\n sub.add(scheduler.schedule(function () {\n var iterator = input[Symbol.asyncIterator]();\n sub.add(scheduler.schedule(function () {\n var _this = this;\n iterator.next().then(function (result) {\n if (result.done) {\n subscriber.complete();\n }\n else {\n subscriber.next(result.value);\n _this.schedule();\n }\n });\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleAsyncIterable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js": +/*!****************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js ***! + \****************************************************************************/ +/*! exports provided: scheduleIterable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scheduleIterable\", function() { return scheduleIterable; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../symbol/iterator */ \"./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js\");\n\n\n\nfunction scheduleIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]();\n var iterator;\n sub.add(function () {\n if (iterator && typeof iterator.return === 'function') {\n iterator.return();\n }\n });\n sub.add(scheduler.schedule(function () {\n iterator = input[_symbol_iterator__WEBPACK_IMPORTED_MODULE_2__[\"iterator\"]]();\n sub.add(scheduler.schedule(function () {\n if (subscriber.closed) {\n return;\n }\n var value;\n var done;\n try {\n var result = iterator.next();\n value = result.value;\n done = result.done;\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n this.schedule();\n }\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleIterable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js": +/*!******************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js ***! + \******************************************************************************/ +/*! exports provided: scheduleObservable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scheduleObservable\", function() { return scheduleObservable; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../symbol/observable */ \"./node_modules/rxjs/dist/esm5/internal/symbol/observable.js\");\n\n\n\nfunction scheduleObservable(input, scheduler) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]();\n sub.add(scheduler.schedule(function () {\n var observable = input[_symbol_observable__WEBPACK_IMPORTED_MODULE_2__[\"observable\"]]();\n sub.add(observable.subscribe({\n next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); },\n error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); },\n complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); },\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleObservable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js": +/*!***************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js ***! + \***************************************************************************/ +/*! exports provided: schedulePromise */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"schedulePromise\", function() { return schedulePromise; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n\n\nfunction schedulePromise(input, scheduler) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]();\n sub.add(scheduler.schedule(function () { return input.then(function (value) {\n sub.add(scheduler.schedule(function () {\n subscriber.next(value);\n sub.add(scheduler.schedule(function () { return subscriber.complete(); }));\n }));\n }, function (err) {\n sub.add(scheduler.schedule(function () { return subscriber.error(err); }));\n }); }));\n return sub;\n });\n}\n//# sourceMappingURL=schedulePromise.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js ***! + \*********************************************************************/ +/*! exports provided: scheduled */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scheduled\", function() { return scheduled; });\n/* harmony import */ var _scheduleObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./scheduleObservable */ \"./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js\");\n/* harmony import */ var _schedulePromise__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./schedulePromise */ \"./node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js\");\n/* harmony import */ var _scheduleArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./scheduleArray */ \"./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js\");\n/* harmony import */ var _scheduleIterable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./scheduleIterable */ \"./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js\");\n/* harmony import */ var _util_isInteropObservable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/isInteropObservable */ \"./node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js\");\n/* harmony import */ var _util_isPromise__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/isPromise */ \"./node_modules/rxjs/dist/esm5/internal/util/isPromise.js\");\n/* harmony import */ var _util_isArrayLike__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../util/isArrayLike */ \"./node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js\");\n/* harmony import */ var _util_isIterable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../util/isIterable */ \"./node_modules/rxjs/dist/esm5/internal/util/isIterable.js\");\n/* harmony import */ var _scheduleAsyncIterable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./scheduleAsyncIterable */ \"./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js\");\n\n\n\n\n\n\n\n\n\nfunction scheduled(input, scheduler) {\n if (input != null) {\n if (Object(_util_isInteropObservable__WEBPACK_IMPORTED_MODULE_4__[\"isInteropObservable\"])(input)) {\n return Object(_scheduleObservable__WEBPACK_IMPORTED_MODULE_0__[\"scheduleObservable\"])(input, scheduler);\n }\n else if (Object(_util_isPromise__WEBPACK_IMPORTED_MODULE_5__[\"isPromise\"])(input)) {\n return Object(_schedulePromise__WEBPACK_IMPORTED_MODULE_1__[\"schedulePromise\"])(input, scheduler);\n }\n else if (Object(_util_isArrayLike__WEBPACK_IMPORTED_MODULE_6__[\"isArrayLike\"])(input)) {\n return Object(_scheduleArray__WEBPACK_IMPORTED_MODULE_2__[\"scheduleArray\"])(input, scheduler);\n }\n else if (Object(_util_isIterable__WEBPACK_IMPORTED_MODULE_7__[\"isIterable\"])(input) || typeof input === 'string') {\n return Object(_scheduleIterable__WEBPACK_IMPORTED_MODULE_3__[\"scheduleIterable\"])(input, scheduler);\n }\n else if (Symbol && Symbol.asyncIterator && typeof input[Symbol.asyncIterator] === 'function') {\n return Object(_scheduleAsyncIterable__WEBPACK_IMPORTED_MODULE_8__[\"scheduleAsyncIterable\"])(input, scheduler);\n }\n }\n throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n//# sourceMappingURL=scheduled.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/Action.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/Action.js ***! + \******************************************************************/ +/*! exports provided: Action */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Action\", function() { return Action; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n\n\nvar Action = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n return this;\n };\n return Action;\n}(_Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]));\n\n//# sourceMappingURL=Action.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/Action.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameAction.js": +/*!********************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameAction.js ***! + \********************************************************************************/ +/*! exports provided: AnimationFrameAction */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AnimationFrameAction\", function() { return AnimationFrameAction; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncAction */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js\");\n\n\nvar AnimationFrameAction = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AnimationFrameAction, _super);\n function AnimationFrameAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () { return scheduler.flush(undefined); }));\n };\n AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n cancelAnimationFrame(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n };\n return AnimationFrameAction;\n}(_AsyncAction__WEBPACK_IMPORTED_MODULE_1__[\"AsyncAction\"]));\n\n//# sourceMappingURL=AnimationFrameAction.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameAction.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameScheduler.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameScheduler.js ***! + \***********************************************************************************/ +/*! exports provided: AnimationFrameScheduler */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AnimationFrameScheduler\", function() { return AnimationFrameScheduler; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncScheduler */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js\");\n\n\nvar AnimationFrameScheduler = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AnimationFrameScheduler, _super);\n function AnimationFrameScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AnimationFrameScheduler.prototype.flush = function (action) {\n this.active = true;\n this.scheduled = undefined;\n var actions = this.actions;\n var error;\n var index = -1;\n var count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AnimationFrameScheduler;\n}(_AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__[\"AsyncScheduler\"]));\n\n//# sourceMappingURL=AnimationFrameScheduler.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameScheduler.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/AsapAction.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/AsapAction.js ***! + \**********************************************************************/ +/*! exports provided: AsapAction */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AsapAction\", function() { return AsapAction; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_Immediate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/Immediate */ \"./node_modules/rxjs/dist/esm5/internal/util/Immediate.js\");\n/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AsyncAction */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js\");\n\n\n\nvar AsapAction = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AsapAction, _super);\n function AsapAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = _util_Immediate__WEBPACK_IMPORTED_MODULE_1__[\"Immediate\"].setImmediate(scheduler.flush.bind(scheduler, undefined)));\n };\n AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n _util_Immediate__WEBPACK_IMPORTED_MODULE_1__[\"Immediate\"].clearImmediate(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n };\n return AsapAction;\n}(_AsyncAction__WEBPACK_IMPORTED_MODULE_2__[\"AsyncAction\"]));\n\n//# sourceMappingURL=AsapAction.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AsapAction.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/AsapScheduler.js": +/*!*************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/AsapScheduler.js ***! + \*************************************************************************/ +/*! exports provided: AsapScheduler */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AsapScheduler\", function() { return AsapScheduler; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncScheduler */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js\");\n\n\nvar AsapScheduler = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AsapScheduler, _super);\n function AsapScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AsapScheduler.prototype.flush = function (action) {\n this.active = true;\n this.scheduled = undefined;\n var actions = this.actions;\n var error;\n var index = -1;\n var count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsapScheduler;\n}(_AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__[\"AsyncScheduler\"]));\n\n//# sourceMappingURL=AsapScheduler.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AsapScheduler.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js ***! + \***********************************************************************/ +/*! exports provided: AsyncAction */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AsyncAction\", function() { return AsyncAction; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Action__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Action */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/Action.js\");\n\n\nvar AsyncAction = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (this.closed) {\n return this;\n }\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n return setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && this.delay === delay && this.pending === false) {\n return id;\n }\n clearInterval(id);\n return undefined;\n };\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, delay) {\n var errored = false;\n var errorValue = undefined;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = !!e && e || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype._unsubscribe = function () {\n var id = this.id;\n var scheduler = this.scheduler;\n var actions = scheduler.actions;\n var index = actions.indexOf(this);\n this.work = null;\n this.state = null;\n this.pending = false;\n this.scheduler = null;\n if (index !== -1) {\n actions.splice(index, 1);\n }\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n };\n return AsyncAction;\n}(_Action__WEBPACK_IMPORTED_MODULE_1__[\"Action\"]));\n\n//# sourceMappingURL=AsyncAction.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js ***! + \**************************************************************************/ +/*! exports provided: AsyncScheduler */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AsyncScheduler\", function() { return AsyncScheduler; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Scheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Scheduler */ \"./node_modules/rxjs/dist/esm5/internal/Scheduler.js\");\n\n\nvar AsyncScheduler = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) { now = _Scheduler__WEBPACK_IMPORTED_MODULE_1__[\"Scheduler\"].now; }\n var _this = _super.call(this, SchedulerAction, function () {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) {\n return AsyncScheduler.delegate.now();\n }\n else {\n return now();\n }\n }) || this;\n _this.actions = [];\n _this.active = false;\n _this.scheduled = undefined;\n return _this;\n }\n AsyncScheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.schedule(work, delay, state);\n }\n else {\n return _super.prototype.schedule.call(this, work, delay, state);\n }\n };\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this.active) {\n actions.push(action);\n return;\n }\n var error;\n this.active = true;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift());\n this.active = false;\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(_Scheduler__WEBPACK_IMPORTED_MODULE_1__[\"Scheduler\"]));\n\n//# sourceMappingURL=AsyncScheduler.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/QueueAction.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/QueueAction.js ***! + \***********************************************************************/ +/*! exports provided: QueueAction */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QueueAction\", function() { return QueueAction; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncAction */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js\");\n\n\nvar QueueAction = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(QueueAction, _super);\n function QueueAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n QueueAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay > 0) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n };\n QueueAction.prototype.execute = function (state, delay) {\n return (delay > 0 || this.closed) ?\n _super.prototype.execute.call(this, state, delay) :\n this._execute(state, delay);\n };\n QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n return scheduler.flush(this);\n };\n return QueueAction;\n}(_AsyncAction__WEBPACK_IMPORTED_MODULE_1__[\"AsyncAction\"]));\n\n//# sourceMappingURL=QueueAction.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/QueueAction.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/QueueScheduler.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/QueueScheduler.js ***! + \**************************************************************************/ +/*! exports provided: QueueScheduler */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QueueScheduler\", function() { return QueueScheduler; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncScheduler */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js\");\n\n\nvar QueueScheduler = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(QueueScheduler, _super);\n function QueueScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return QueueScheduler;\n}(_AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__[\"AsyncScheduler\"]));\n\n//# sourceMappingURL=QueueScheduler.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/QueueScheduler.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/VirtualTimeScheduler.js": +/*!********************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/VirtualTimeScheduler.js ***! + \********************************************************************************/ +/*! exports provided: VirtualTimeScheduler, VirtualAction */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VirtualTimeScheduler\", function() { return VirtualTimeScheduler; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VirtualAction\", function() { return VirtualAction; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncAction */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js\");\n/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AsyncScheduler */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js\");\n\n\n\nvar VirtualTimeScheduler = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(VirtualTimeScheduler, _super);\n function VirtualTimeScheduler(SchedulerAction, maxFrames) {\n if (SchedulerAction === void 0) { SchedulerAction = VirtualAction; }\n if (maxFrames === void 0) { maxFrames = Number.POSITIVE_INFINITY; }\n var _this = _super.call(this, SchedulerAction, function () { return _this.frame; }) || this;\n _this.maxFrames = maxFrames;\n _this.frame = 0;\n _this.index = -1;\n return _this;\n }\n VirtualTimeScheduler.prototype.flush = function () {\n var _a = this, actions = _a.actions, maxFrames = _a.maxFrames;\n var error, action;\n while ((action = actions[0]) && action.delay <= maxFrames) {\n actions.shift();\n this.frame = action.delay;\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n }\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n VirtualTimeScheduler.frameTimeFactor = 10;\n return VirtualTimeScheduler;\n}(_AsyncScheduler__WEBPACK_IMPORTED_MODULE_2__[\"AsyncScheduler\"]));\n\nvar VirtualAction = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(VirtualAction, _super);\n function VirtualAction(scheduler, work, index) {\n if (index === void 0) { index = scheduler.index += 1; }\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.index = index;\n _this.active = true;\n _this.index = scheduler.index = index;\n return _this;\n }\n VirtualAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (!this.id) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.active = false;\n var action = new VirtualAction(this.scheduler, this.work);\n this.add(action);\n return action.schedule(state, delay);\n };\n VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n this.delay = scheduler.frame + delay;\n var actions = scheduler.actions;\n actions.push(this);\n actions.sort(VirtualAction.sortActions);\n return true;\n };\n VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n return undefined;\n };\n VirtualAction.prototype._execute = function (state, delay) {\n if (this.active === true) {\n return _super.prototype._execute.call(this, state, delay);\n }\n };\n VirtualAction.sortActions = function (a, b) {\n if (a.delay === b.delay) {\n if (a.index === b.index) {\n return 0;\n }\n else if (a.index > b.index) {\n return 1;\n }\n else {\n return -1;\n }\n }\n else if (a.delay > b.delay) {\n return 1;\n }\n else {\n return -1;\n }\n };\n return VirtualAction;\n}(_AsyncAction__WEBPACK_IMPORTED_MODULE_1__[\"AsyncAction\"]));\n\n//# sourceMappingURL=VirtualTimeScheduler.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/VirtualTimeScheduler.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/animationFrame.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/animationFrame.js ***! + \**************************************************************************/ +/*! exports provided: animationFrame */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"animationFrame\", function() { return animationFrame; });\n/* harmony import */ var _AnimationFrameAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AnimationFrameAction */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameAction.js\");\n/* harmony import */ var _AnimationFrameScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AnimationFrameScheduler */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameScheduler.js\");\n\n\nvar animationFrame = new _AnimationFrameScheduler__WEBPACK_IMPORTED_MODULE_1__[\"AnimationFrameScheduler\"](_AnimationFrameAction__WEBPACK_IMPORTED_MODULE_0__[\"AnimationFrameAction\"]);\n//# sourceMappingURL=animationFrame.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/animationFrame.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/asap.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/asap.js ***! + \****************************************************************/ +/*! exports provided: asap */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asap\", function() { return asap; });\n/* harmony import */ var _AsapAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AsapAction */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsapAction.js\");\n/* harmony import */ var _AsapScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsapScheduler */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsapScheduler.js\");\n\n\nvar asap = new _AsapScheduler__WEBPACK_IMPORTED_MODULE_1__[\"AsapScheduler\"](_AsapAction__WEBPACK_IMPORTED_MODULE_0__[\"AsapAction\"]);\n//# sourceMappingURL=asap.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/asap.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/async.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/async.js ***! + \*****************************************************************/ +/*! exports provided: async */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"async\", function() { return async; });\n/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AsyncAction */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js\");\n/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncScheduler */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js\");\n\n\nvar async = new _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__[\"AsyncScheduler\"](_AsyncAction__WEBPACK_IMPORTED_MODULE_0__[\"AsyncAction\"]);\n//# sourceMappingURL=async.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/async.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/queue.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/queue.js ***! + \*****************************************************************/ +/*! exports provided: queue */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"queue\", function() { return queue; });\n/* harmony import */ var _QueueAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./QueueAction */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/QueueAction.js\");\n/* harmony import */ var _QueueScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./QueueScheduler */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/QueueScheduler.js\");\n\n\nvar queue = new _QueueScheduler__WEBPACK_IMPORTED_MODULE_1__[\"QueueScheduler\"](_QueueAction__WEBPACK_IMPORTED_MODULE_0__[\"QueueAction\"]);\n//# sourceMappingURL=queue.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/queue.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js ***! + \*****************************************************************/ +/*! exports provided: getSymbolIterator, iterator, $$iterator */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getSymbolIterator\", function() { return getSymbolIterator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"iterator\", function() { return iterator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"$$iterator\", function() { return $$iterator; });\nfunction getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nvar iterator = getSymbolIterator();\nvar $$iterator = iterator;\n//# sourceMappingURL=iterator.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/symbol/observable.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/symbol/observable.js ***! + \*******************************************************************/ +/*! exports provided: observable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observable\", function() { return observable; });\nvar observable = (function () { return typeof Symbol === 'function' && Symbol.observable || '@@observable'; })();\n//# sourceMappingURL=observable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/symbol/observable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/symbol/rxSubscriber.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/symbol/rxSubscriber.js ***! + \*********************************************************************/ +/*! exports provided: rxSubscriber, $$rxSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rxSubscriber\", function() { return rxSubscriber; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"$$rxSubscriber\", function() { return $$rxSubscriber; });\nvar rxSubscriber = (function () {\n return typeof Symbol === 'function'\n ? Symbol('rxSubscriber')\n : '@@rxSubscriber_' + Math.random();\n})();\nvar $$rxSubscriber = rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/symbol/rxSubscriber.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js": +/*!******************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js ***! + \******************************************************************************/ +/*! exports provided: ArgumentOutOfRangeError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ArgumentOutOfRangeError\", function() { return ArgumentOutOfRangeError; });\nvar ArgumentOutOfRangeErrorImpl = (function () {\n function ArgumentOutOfRangeErrorImpl() {\n Error.call(this);\n this.message = 'argument out of range';\n this.name = 'ArgumentOutOfRangeError';\n return this;\n }\n ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);\n return ArgumentOutOfRangeErrorImpl;\n})();\nvar ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;\n//# sourceMappingURL=ArgumentOutOfRangeError.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js ***! + \*****************************************************************/ +/*! exports provided: EmptyError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EmptyError\", function() { return EmptyError; });\nvar EmptyErrorImpl = (function () {\n function EmptyErrorImpl() {\n Error.call(this);\n this.message = 'no elements in sequence';\n this.name = 'EmptyError';\n return this;\n }\n EmptyErrorImpl.prototype = Object.create(Error.prototype);\n return EmptyErrorImpl;\n})();\nvar EmptyError = EmptyErrorImpl;\n//# sourceMappingURL=EmptyError.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/Immediate.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/Immediate.js ***! + \****************************************************************/ +/*! exports provided: Immediate, TestTools */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Immediate\", function() { return Immediate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TestTools\", function() { return TestTools; });\nvar nextHandle = 1;\nvar resolved;\nvar activeHandles = {};\nfunction findAndClearHandle(handle) {\n if (handle in activeHandles) {\n delete activeHandles[handle];\n return true;\n }\n return false;\n}\nvar Immediate = {\n setImmediate: function (cb) {\n var handle = nextHandle++;\n activeHandles[handle] = true;\n if (!resolved) {\n resolved = Promise.resolve();\n }\n resolved.then(function () { return findAndClearHandle(handle) && cb(); });\n return handle;\n },\n clearImmediate: function (handle) {\n findAndClearHandle(handle);\n },\n};\nvar TestTools = {\n pending: function () {\n return Object.keys(activeHandles).length;\n }\n};\n//# sourceMappingURL=Immediate.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/Immediate.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js": +/*!******************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js ***! + \******************************************************************************/ +/*! exports provided: ObjectUnsubscribedError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObjectUnsubscribedError\", function() { return ObjectUnsubscribedError; });\nvar ObjectUnsubscribedErrorImpl = (function () {\n function ObjectUnsubscribedErrorImpl() {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n }\n ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\n return ObjectUnsubscribedErrorImpl;\n})();\nvar ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n//# sourceMappingURL=ObjectUnsubscribedError.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/TimeoutError.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/TimeoutError.js ***! + \*******************************************************************/ +/*! exports provided: TimeoutError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TimeoutError\", function() { return TimeoutError; });\nvar TimeoutErrorImpl = (function () {\n function TimeoutErrorImpl() {\n Error.call(this);\n this.message = 'Timeout has occurred';\n this.name = 'TimeoutError';\n return this;\n }\n TimeoutErrorImpl.prototype = Object.create(Error.prototype);\n return TimeoutErrorImpl;\n})();\nvar TimeoutError = TimeoutErrorImpl;\n//# sourceMappingURL=TimeoutError.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/TimeoutError.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js ***! + \**************************************************************************/ +/*! exports provided: UnsubscriptionError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UnsubscriptionError\", function() { return UnsubscriptionError; });\nvar UnsubscriptionErrorImpl = (function () {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ') : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n})();\nvar UnsubscriptionError = UnsubscriptionErrorImpl;\n//# sourceMappingURL=UnsubscriptionError.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/canReportError.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/canReportError.js ***! + \*********************************************************************/ +/*! exports provided: canReportError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"canReportError\", function() { return canReportError; });\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\nfunction canReportError(observer) {\n while (observer) {\n var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped;\n if (closed_1 || isStopped) {\n return false;\n }\n else if (destination && destination instanceof _Subscriber__WEBPACK_IMPORTED_MODULE_0__[\"Subscriber\"]) {\n observer = destination;\n }\n else {\n observer = null;\n }\n }\n return true;\n}\n//# sourceMappingURL=canReportError.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/canReportError.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/deferred.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/deferred.js ***! + \***************************************************************/ +/*! exports provided: Deferred */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Deferred\", function() { return Deferred; });\nvar Deferred = (function () {\n function Deferred() {\n var _this = this;\n this.resolve = null;\n this.reject = null;\n this.promise = new Promise(function (a, b) {\n _this.resolve = a;\n _this.reject = b;\n });\n }\n return Deferred;\n}());\n\n//# sourceMappingURL=deferred.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/deferred.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/hostReportError.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/hostReportError.js ***! + \**********************************************************************/ +/*! exports provided: hostReportError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hostReportError\", function() { return hostReportError; });\nfunction hostReportError(err) {\n setTimeout(function () { throw err; }, 0);\n}\n//# sourceMappingURL=hostReportError.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/hostReportError.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/identity.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/identity.js ***! + \***************************************************************/ +/*! exports provided: identity */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"identity\", function() { return identity; });\nfunction identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/identity.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isArray.js": +/*!**************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isArray.js ***! + \**************************************************************/ +/*! exports provided: isArray */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isArray\", function() { return isArray; });\nvar isArray = (function () { return Array.isArray || (function (x) { return x && typeof x.length === 'number'; }); })();\n//# sourceMappingURL=isArray.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isArray.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js ***! + \******************************************************************/ +/*! exports provided: isArrayLike */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isArrayLike\", function() { return isArrayLike; });\nvar isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isDate.js": +/*!*************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isDate.js ***! + \*************************************************************/ +/*! exports provided: isDate */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isDate\", function() { return isDate; });\nfunction isDate(value) {\n return value instanceof Date && !isNaN(+value);\n}\n//# sourceMappingURL=isDate.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isDate.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isFunction.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isFunction.js ***! + \*****************************************************************/ +/*! exports provided: isFunction */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFunction\", function() { return isFunction; });\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n//# sourceMappingURL=isFunction.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isFunction.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js ***! + \**************************************************************************/ +/*! exports provided: isInteropObservable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isInteropObservable\", function() { return isInteropObservable; });\n/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../symbol/observable */ \"./node_modules/rxjs/dist/esm5/internal/symbol/observable.js\");\n\nfunction isInteropObservable(input) {\n return input && typeof input[_symbol_observable__WEBPACK_IMPORTED_MODULE_0__[\"observable\"]] === 'function';\n}\n//# sourceMappingURL=isInteropObservable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isIterable.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isIterable.js ***! + \*****************************************************************/ +/*! exports provided: isIterable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isIterable\", function() { return isIterable; });\n/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../symbol/iterator */ \"./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js\");\n\nfunction isIterable(input) {\n return input && typeof input[_symbol_iterator__WEBPACK_IMPORTED_MODULE_0__[\"iterator\"]] === 'function';\n}\n//# sourceMappingURL=isIterable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isIterable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isNumeric.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isNumeric.js ***! + \****************************************************************/ +/*! exports provided: isNumeric */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isNumeric\", function() { return isNumeric; });\n/* harmony import */ var _isArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n\nfunction isNumeric(val) {\n return !Object(_isArray__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(val) && (val - parseFloat(val) + 1) >= 0;\n}\n//# sourceMappingURL=isNumeric.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isNumeric.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isObject.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isObject.js ***! + \***************************************************************/ +/*! exports provided: isObject */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObject\", function() { return isObject; });\nfunction isObject(x) {\n return x !== null && typeof x === 'object';\n}\n//# sourceMappingURL=isObject.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isObject.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isObservable.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isObservable.js ***! + \*******************************************************************/ +/*! exports provided: isObservable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservable\", function() { return isObservable; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n\nfunction isObservable(obj) {\n return !!obj && (obj instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"] || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function'));\n}\n//# sourceMappingURL=isObservable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isObservable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isPromise.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isPromise.js ***! + \****************************************************************/ +/*! exports provided: isPromise */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isPromise\", function() { return isPromise; });\nfunction isPromise(value) {\n return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n//# sourceMappingURL=isPromise.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isPromise.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js ***! + \******************************************************************/ +/*! exports provided: isScheduler */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isScheduler\", function() { return isScheduler; });\nfunction isScheduler(value) {\n return value && typeof value.schedule === 'function';\n}\n//# sourceMappingURL=isScheduler.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/noop.js": +/*!***********************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/noop.js ***! + \***********************************************************/ +/*! exports provided: noop */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"noop\", function() { return noop; });\nfunction noop() { }\n//# sourceMappingURL=noop.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/noop.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/not.js": +/*!**********************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/not.js ***! + \**********************************************************/ +/*! exports provided: not */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"not\", function() { return not; });\nfunction not(pred, thisArg) {\n function notPred() {\n return !(notPred.pred.apply(notPred.thisArg, arguments));\n }\n notPred.pred = pred;\n notPred.thisArg = thisArg;\n return notPred;\n}\n//# sourceMappingURL=not.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/not.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/pipe.js": +/*!***********************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/pipe.js ***! + \***********************************************************/ +/*! exports provided: pipe, pipeFromArray */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pipe\", function() { return pipe; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pipeFromArray\", function() { return pipeFromArray; });\n/* harmony import */ var _identity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./identity */ \"./node_modules/rxjs/dist/esm5/internal/util/identity.js\");\n\nfunction pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nfunction pipeFromArray(fns) {\n if (fns.length === 0) {\n return _identity__WEBPACK_IMPORTED_MODULE_0__[\"identity\"];\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/pipe.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/root.js": +/*!***********************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/root.js ***! + \***********************************************************/ +/*! exports provided: root */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"root\", function() { return _root; });\nvar __window = typeof window !== 'undefined' && window;\nvar __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self;\nvar __global = typeof global !== 'undefined' && global;\nvar _root = __window || __global || __self;\n(function () {\n if (!_root) {\n throw new Error('RxJS could not find any global context (window, self, global)');\n }\n})();\n\n//# sourceMappingURL=root.js.map\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/root.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/subscribeTo.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/subscribeTo.js ***! + \******************************************************************/ +/*! exports provided: subscribeTo */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subscribeTo\", function() { return subscribeTo; });\n/* harmony import */ var _subscribeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./subscribeToArray */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToArray.js\");\n/* harmony import */ var _subscribeToPromise__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./subscribeToPromise */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToPromise.js\");\n/* harmony import */ var _subscribeToIterable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./subscribeToIterable */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToIterable.js\");\n/* harmony import */ var _subscribeToObservable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./subscribeToObservable */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToObservable.js\");\n/* harmony import */ var _isArrayLike__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./isArrayLike */ \"./node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js\");\n/* harmony import */ var _isPromise__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./isPromise */ \"./node_modules/rxjs/dist/esm5/internal/util/isPromise.js\");\n/* harmony import */ var _isObject__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./isObject */ \"./node_modules/rxjs/dist/esm5/internal/util/isObject.js\");\n/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../symbol/iterator */ \"./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js\");\n/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../symbol/observable */ \"./node_modules/rxjs/dist/esm5/internal/symbol/observable.js\");\n/* harmony import */ var _subscribeToAsyncIterable__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./subscribeToAsyncIterable */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToAsyncIterable.js\");\n\n\n\n\n\n\n\n\n\n\nvar subscribeTo = function (result) {\n if (!!result && typeof result[_symbol_observable__WEBPACK_IMPORTED_MODULE_8__[\"observable\"]] === 'function') {\n return Object(_subscribeToObservable__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToObservable\"])(result);\n }\n else if (Object(_isArrayLike__WEBPACK_IMPORTED_MODULE_4__[\"isArrayLike\"])(result)) {\n return Object(_subscribeToArray__WEBPACK_IMPORTED_MODULE_0__[\"subscribeToArray\"])(result);\n }\n else if (Object(_isPromise__WEBPACK_IMPORTED_MODULE_5__[\"isPromise\"])(result)) {\n return Object(_subscribeToPromise__WEBPACK_IMPORTED_MODULE_1__[\"subscribeToPromise\"])(result);\n }\n else if (!!result && typeof result[_symbol_iterator__WEBPACK_IMPORTED_MODULE_7__[\"iterator\"]] === 'function') {\n return Object(_subscribeToIterable__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToIterable\"])(result);\n }\n else if (Symbol && Symbol.asyncIterator &&\n !!result && typeof result[Symbol.asyncIterator] === 'function') {\n return Object(_subscribeToAsyncIterable__WEBPACK_IMPORTED_MODULE_9__[\"subscribeToAsyncIterable\"])(result);\n }\n else {\n var value = Object(_isObject__WEBPACK_IMPORTED_MODULE_6__[\"isObject\"])(result) ? 'an invalid object' : \"'\" + result + \"'\";\n var msg = \"You provided \" + value + \" where a stream was expected.\"\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n//# sourceMappingURL=subscribeTo.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeTo.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/subscribeToArray.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/subscribeToArray.js ***! + \***********************************************************************/ +/*! exports provided: subscribeToArray */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subscribeToArray\", function() { return subscribeToArray; });\nvar subscribeToArray = function (array) { return function (subscriber) {\n for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n}; };\n//# sourceMappingURL=subscribeToArray.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToArray.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/subscribeToAsyncIterable.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/subscribeToAsyncIterable.js ***! + \*******************************************************************************/ +/*! exports provided: subscribeToAsyncIterable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subscribeToAsyncIterable\", function() { return subscribeToAsyncIterable; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\nfunction subscribeToAsyncIterable(asyncIterable) {\n return function (subscriber) {\n process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); });\n };\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_1, _a;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var value, e_1_1;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 11]);\n asyncIterable_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__asyncValues\"])(asyncIterable);\n _b.label = 1;\n case 1: return [4, asyncIterable_1.next()];\n case 2:\n if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4];\n value = asyncIterable_1_1.value;\n subscriber.next(value);\n _b.label = 3;\n case 3: return [3, 1];\n case 4: return [3, 11];\n case 5:\n e_1_1 = _b.sent();\n e_1 = { error: e_1_1 };\n return [3, 11];\n case 6:\n _b.trys.push([6, , 9, 10]);\n if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8];\n return [4, _a.call(asyncIterable_1)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [3, 10];\n case 9:\n if (e_1) throw e_1.error;\n return [7];\n case 10: return [7];\n case 11:\n subscriber.complete();\n return [2];\n }\n });\n });\n}\n//# sourceMappingURL=subscribeToAsyncIterable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToAsyncIterable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/subscribeToIterable.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/subscribeToIterable.js ***! + \**************************************************************************/ +/*! exports provided: subscribeToIterable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subscribeToIterable\", function() { return subscribeToIterable; });\n/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../symbol/iterator */ \"./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js\");\n\nvar subscribeToIterable = function (iterable) { return function (subscriber) {\n var iterator = iterable[_symbol_iterator__WEBPACK_IMPORTED_MODULE_0__[\"iterator\"]]();\n do {\n var item = iterator.next();\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n if (typeof iterator.return === 'function') {\n subscriber.add(function () {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n return subscriber;\n}; };\n//# sourceMappingURL=subscribeToIterable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToIterable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/subscribeToObservable.js": +/*!****************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/subscribeToObservable.js ***! + \****************************************************************************/ +/*! exports provided: subscribeToObservable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subscribeToObservable\", function() { return subscribeToObservable; });\n/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../symbol/observable */ \"./node_modules/rxjs/dist/esm5/internal/symbol/observable.js\");\n\nvar subscribeToObservable = function (obj) { return function (subscriber) {\n var obs = obj[_symbol_observable__WEBPACK_IMPORTED_MODULE_0__[\"observable\"]]();\n if (typeof obs.subscribe !== 'function') {\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n }\n else {\n return obs.subscribe(subscriber);\n }\n}; };\n//# sourceMappingURL=subscribeToObservable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToObservable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/subscribeToPromise.js": +/*!*************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/subscribeToPromise.js ***! + \*************************************************************************/ +/*! exports provided: subscribeToPromise */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subscribeToPromise\", function() { return subscribeToPromise; });\n/* harmony import */ var _hostReportError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hostReportError */ \"./node_modules/rxjs/dist/esm5/internal/util/hostReportError.js\");\n\nvar subscribeToPromise = function (promise) { return function (subscriber) {\n promise.then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, _hostReportError__WEBPACK_IMPORTED_MODULE_0__[\"hostReportError\"]);\n return subscriber;\n}; };\n//# sourceMappingURL=subscribeToPromise.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToPromise.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js": +/*!************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js ***! + \************************************************************************/ +/*! exports provided: subscribeToResult */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subscribeToResult\", function() { return subscribeToResult; });\n/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../InnerSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js\");\n/* harmony import */ var _subscribeTo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./subscribeTo */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeTo.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n\n\n\nfunction subscribeToResult(outerSubscriber, result, outerValue, outerIndex, innerSubscriber) {\n if (innerSubscriber === void 0) { innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_0__[\"InnerSubscriber\"](outerSubscriber, outerValue, outerIndex); }\n if (innerSubscriber.closed) {\n return undefined;\n }\n if (result instanceof _Observable__WEBPACK_IMPORTED_MODULE_2__[\"Observable\"]) {\n return result.subscribe(innerSubscriber);\n }\n return Object(_subscribeTo__WEBPACK_IMPORTED_MODULE_1__[\"subscribeTo\"])(result)(innerSubscriber);\n}\n//# sourceMappingURL=subscribeToResult.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/toSubscriber.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/toSubscriber.js ***! + \*******************************************************************/ +/*! exports provided: toSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toSubscriber\", function() { return toSubscriber; });\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../symbol/rxSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/symbol/rxSubscriber.js\");\n/* harmony import */ var _Observer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Observer */ \"./node_modules/rxjs/dist/esm5/internal/Observer.js\");\n\n\n\nfunction toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof _Subscriber__WEBPACK_IMPORTED_MODULE_0__[\"Subscriber\"]) {\n return nextOrObserver;\n }\n if (nextOrObserver[_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"rxSubscriber\"]]) {\n return nextOrObserver[_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"rxSubscriber\"]]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new _Subscriber__WEBPACK_IMPORTED_MODULE_0__[\"Subscriber\"](_Observer__WEBPACK_IMPORTED_MODULE_2__[\"empty\"]);\n }\n return new _Subscriber__WEBPACK_IMPORTED_MODULE_0__[\"Subscriber\"](nextOrObserver, error, complete);\n}\n//# sourceMappingURL=toSubscriber.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/toSubscriber.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/operators/index.js": +/*!********************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/operators/index.js ***! + \********************************************************/ +/*! exports provided: audit, auditTime, buffer, bufferCount, bufferTime, bufferToggle, bufferWhen, catchError, combineAll, combineLatest, combineLatestWith, concat, concatAll, concatMap, concatMapTo, concatWith, count, debounce, debounceTime, defaultIfEmpty, delay, delayWhen, dematerialize, distinct, distinctUntilChanged, distinctUntilKeyChanged, elementAt, endWith, every, exhaust, exhaustMap, expand, filter, finalize, find, findIndex, first, groupBy, ignoreElements, isEmpty, last, map, mapTo, materialize, max, mergeWith, merge, mergeAll, mergeMap, flatMap, mergeMapTo, mergeScan, min, multicast, observeOn, onErrorResumeNext, pairwise, partition, pluck, publish, publishBehavior, publishLast, publishReplay, race, reduce, repeat, repeatWhen, retry, retryWhen, refCount, sample, sampleTime, scan, sequenceEqual, share, shareReplay, single, skip, skipLast, skipUntil, skipWhile, startWith, subscribeOn, switchAll, switchMap, switchMapTo, take, takeLast, takeUntil, takeWhile, tap, throttle, throttleTime, throwIfEmpty, timeInterval, timeout, timeoutWith, timestamp, toArray, window, windowCount, windowTime, windowToggle, windowWhen, withLatestFrom, zip, zipWith, zipAll */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_operators_audit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../internal/operators/audit */ \"./node_modules/rxjs/dist/esm5/internal/operators/audit.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"audit\", function() { return _internal_operators_audit__WEBPACK_IMPORTED_MODULE_0__[\"audit\"]; });\n\n/* harmony import */ var _internal_operators_auditTime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../internal/operators/auditTime */ \"./node_modules/rxjs/dist/esm5/internal/operators/auditTime.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"auditTime\", function() { return _internal_operators_auditTime__WEBPACK_IMPORTED_MODULE_1__[\"auditTime\"]; });\n\n/* harmony import */ var _internal_operators_buffer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../internal/operators/buffer */ \"./node_modules/rxjs/dist/esm5/internal/operators/buffer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"buffer\", function() { return _internal_operators_buffer__WEBPACK_IMPORTED_MODULE_2__[\"buffer\"]; });\n\n/* harmony import */ var _internal_operators_bufferCount__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../internal/operators/bufferCount */ \"./node_modules/rxjs/dist/esm5/internal/operators/bufferCount.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bufferCount\", function() { return _internal_operators_bufferCount__WEBPACK_IMPORTED_MODULE_3__[\"bufferCount\"]; });\n\n/* harmony import */ var _internal_operators_bufferTime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../internal/operators/bufferTime */ \"./node_modules/rxjs/dist/esm5/internal/operators/bufferTime.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bufferTime\", function() { return _internal_operators_bufferTime__WEBPACK_IMPORTED_MODULE_4__[\"bufferTime\"]; });\n\n/* harmony import */ var _internal_operators_bufferToggle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../internal/operators/bufferToggle */ \"./node_modules/rxjs/dist/esm5/internal/operators/bufferToggle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bufferToggle\", function() { return _internal_operators_bufferToggle__WEBPACK_IMPORTED_MODULE_5__[\"bufferToggle\"]; });\n\n/* harmony import */ var _internal_operators_bufferWhen__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../internal/operators/bufferWhen */ \"./node_modules/rxjs/dist/esm5/internal/operators/bufferWhen.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bufferWhen\", function() { return _internal_operators_bufferWhen__WEBPACK_IMPORTED_MODULE_6__[\"bufferWhen\"]; });\n\n/* harmony import */ var _internal_operators_catchError__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../internal/operators/catchError */ \"./node_modules/rxjs/dist/esm5/internal/operators/catchError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"catchError\", function() { return _internal_operators_catchError__WEBPACK_IMPORTED_MODULE_7__[\"catchError\"]; });\n\n/* harmony import */ var _internal_operators_combineAll__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../internal/operators/combineAll */ \"./node_modules/rxjs/dist/esm5/internal/operators/combineAll.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"combineAll\", function() { return _internal_operators_combineAll__WEBPACK_IMPORTED_MODULE_8__[\"combineAll\"]; });\n\n/* harmony import */ var _internal_operators_combineLatestWith__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../internal/operators/combineLatestWith */ \"./node_modules/rxjs/dist/esm5/internal/operators/combineLatestWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"combineLatest\", function() { return _internal_operators_combineLatestWith__WEBPACK_IMPORTED_MODULE_9__[\"combineLatest\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"combineLatestWith\", function() { return _internal_operators_combineLatestWith__WEBPACK_IMPORTED_MODULE_9__[\"combineLatestWith\"]; });\n\n/* harmony import */ var _internal_operators_concat__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../internal/operators/concat */ \"./node_modules/rxjs/dist/esm5/internal/operators/concat.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"concat\", function() { return _internal_operators_concat__WEBPACK_IMPORTED_MODULE_10__[\"concat\"]; });\n\n/* harmony import */ var _internal_operators_concatAll__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../internal/operators/concatAll */ \"./node_modules/rxjs/dist/esm5/internal/operators/concatAll.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"concatAll\", function() { return _internal_operators_concatAll__WEBPACK_IMPORTED_MODULE_11__[\"concatAll\"]; });\n\n/* harmony import */ var _internal_operators_concatMap__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../internal/operators/concatMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/concatMap.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"concatMap\", function() { return _internal_operators_concatMap__WEBPACK_IMPORTED_MODULE_12__[\"concatMap\"]; });\n\n/* harmony import */ var _internal_operators_concatMapTo__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../internal/operators/concatMapTo */ \"./node_modules/rxjs/dist/esm5/internal/operators/concatMapTo.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"concatMapTo\", function() { return _internal_operators_concatMapTo__WEBPACK_IMPORTED_MODULE_13__[\"concatMapTo\"]; });\n\n/* harmony import */ var _internal_operators_concatWith__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../internal/operators/concatWith */ \"./node_modules/rxjs/dist/esm5/internal/operators/concatWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"concatWith\", function() { return _internal_operators_concatWith__WEBPACK_IMPORTED_MODULE_14__[\"concatWith\"]; });\n\n/* harmony import */ var _internal_operators_count__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../internal/operators/count */ \"./node_modules/rxjs/dist/esm5/internal/operators/count.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"count\", function() { return _internal_operators_count__WEBPACK_IMPORTED_MODULE_15__[\"count\"]; });\n\n/* harmony import */ var _internal_operators_debounce__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../internal/operators/debounce */ \"./node_modules/rxjs/dist/esm5/internal/operators/debounce.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"debounce\", function() { return _internal_operators_debounce__WEBPACK_IMPORTED_MODULE_16__[\"debounce\"]; });\n\n/* harmony import */ var _internal_operators_debounceTime__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../internal/operators/debounceTime */ \"./node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"debounceTime\", function() { return _internal_operators_debounceTime__WEBPACK_IMPORTED_MODULE_17__[\"debounceTime\"]; });\n\n/* harmony import */ var _internal_operators_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../internal/operators/defaultIfEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"defaultIfEmpty\", function() { return _internal_operators_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_18__[\"defaultIfEmpty\"]; });\n\n/* harmony import */ var _internal_operators_delay__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../internal/operators/delay */ \"./node_modules/rxjs/dist/esm5/internal/operators/delay.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"delay\", function() { return _internal_operators_delay__WEBPACK_IMPORTED_MODULE_19__[\"delay\"]; });\n\n/* harmony import */ var _internal_operators_delayWhen__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../internal/operators/delayWhen */ \"./node_modules/rxjs/dist/esm5/internal/operators/delayWhen.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"delayWhen\", function() { return _internal_operators_delayWhen__WEBPACK_IMPORTED_MODULE_20__[\"delayWhen\"]; });\n\n/* harmony import */ var _internal_operators_dematerialize__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../internal/operators/dematerialize */ \"./node_modules/rxjs/dist/esm5/internal/operators/dematerialize.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dematerialize\", function() { return _internal_operators_dematerialize__WEBPACK_IMPORTED_MODULE_21__[\"dematerialize\"]; });\n\n/* harmony import */ var _internal_operators_distinct__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../internal/operators/distinct */ \"./node_modules/rxjs/dist/esm5/internal/operators/distinct.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"distinct\", function() { return _internal_operators_distinct__WEBPACK_IMPORTED_MODULE_22__[\"distinct\"]; });\n\n/* harmony import */ var _internal_operators_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../internal/operators/distinctUntilChanged */ \"./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"distinctUntilChanged\", function() { return _internal_operators_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_23__[\"distinctUntilChanged\"]; });\n\n/* harmony import */ var _internal_operators_distinctUntilKeyChanged__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../internal/operators/distinctUntilKeyChanged */ \"./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilKeyChanged.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"distinctUntilKeyChanged\", function() { return _internal_operators_distinctUntilKeyChanged__WEBPACK_IMPORTED_MODULE_24__[\"distinctUntilKeyChanged\"]; });\n\n/* harmony import */ var _internal_operators_elementAt__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../internal/operators/elementAt */ \"./node_modules/rxjs/dist/esm5/internal/operators/elementAt.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"elementAt\", function() { return _internal_operators_elementAt__WEBPACK_IMPORTED_MODULE_25__[\"elementAt\"]; });\n\n/* harmony import */ var _internal_operators_endWith__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../internal/operators/endWith */ \"./node_modules/rxjs/dist/esm5/internal/operators/endWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"endWith\", function() { return _internal_operators_endWith__WEBPACK_IMPORTED_MODULE_26__[\"endWith\"]; });\n\n/* harmony import */ var _internal_operators_every__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../internal/operators/every */ \"./node_modules/rxjs/dist/esm5/internal/operators/every.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"every\", function() { return _internal_operators_every__WEBPACK_IMPORTED_MODULE_27__[\"every\"]; });\n\n/* harmony import */ var _internal_operators_exhaust__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../internal/operators/exhaust */ \"./node_modules/rxjs/dist/esm5/internal/operators/exhaust.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"exhaust\", function() { return _internal_operators_exhaust__WEBPACK_IMPORTED_MODULE_28__[\"exhaust\"]; });\n\n/* harmony import */ var _internal_operators_exhaustMap__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../internal/operators/exhaustMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/exhaustMap.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"exhaustMap\", function() { return _internal_operators_exhaustMap__WEBPACK_IMPORTED_MODULE_29__[\"exhaustMap\"]; });\n\n/* harmony import */ var _internal_operators_expand__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../internal/operators/expand */ \"./node_modules/rxjs/dist/esm5/internal/operators/expand.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"expand\", function() { return _internal_operators_expand__WEBPACK_IMPORTED_MODULE_30__[\"expand\"]; });\n\n/* harmony import */ var _internal_operators_filter__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ../internal/operators/filter */ \"./node_modules/rxjs/dist/esm5/internal/operators/filter.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"filter\", function() { return _internal_operators_filter__WEBPACK_IMPORTED_MODULE_31__[\"filter\"]; });\n\n/* harmony import */ var _internal_operators_finalize__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ../internal/operators/finalize */ \"./node_modules/rxjs/dist/esm5/internal/operators/finalize.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"finalize\", function() { return _internal_operators_finalize__WEBPACK_IMPORTED_MODULE_32__[\"finalize\"]; });\n\n/* harmony import */ var _internal_operators_find__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ../internal/operators/find */ \"./node_modules/rxjs/dist/esm5/internal/operators/find.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"find\", function() { return _internal_operators_find__WEBPACK_IMPORTED_MODULE_33__[\"find\"]; });\n\n/* harmony import */ var _internal_operators_findIndex__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ../internal/operators/findIndex */ \"./node_modules/rxjs/dist/esm5/internal/operators/findIndex.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"findIndex\", function() { return _internal_operators_findIndex__WEBPACK_IMPORTED_MODULE_34__[\"findIndex\"]; });\n\n/* harmony import */ var _internal_operators_first__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ../internal/operators/first */ \"./node_modules/rxjs/dist/esm5/internal/operators/first.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"first\", function() { return _internal_operators_first__WEBPACK_IMPORTED_MODULE_35__[\"first\"]; });\n\n/* harmony import */ var _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ../internal/operators/groupBy */ \"./node_modules/rxjs/dist/esm5/internal/operators/groupBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"groupBy\", function() { return _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_36__[\"groupBy\"]; });\n\n/* harmony import */ var _internal_operators_ignoreElements__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ../internal/operators/ignoreElements */ \"./node_modules/rxjs/dist/esm5/internal/operators/ignoreElements.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ignoreElements\", function() { return _internal_operators_ignoreElements__WEBPACK_IMPORTED_MODULE_37__[\"ignoreElements\"]; });\n\n/* harmony import */ var _internal_operators_isEmpty__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ../internal/operators/isEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/isEmpty.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isEmpty\", function() { return _internal_operators_isEmpty__WEBPACK_IMPORTED_MODULE_38__[\"isEmpty\"]; });\n\n/* harmony import */ var _internal_operators_last__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ../internal/operators/last */ \"./node_modules/rxjs/dist/esm5/internal/operators/last.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"last\", function() { return _internal_operators_last__WEBPACK_IMPORTED_MODULE_39__[\"last\"]; });\n\n/* harmony import */ var _internal_operators_map__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ../internal/operators/map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"map\", function() { return _internal_operators_map__WEBPACK_IMPORTED_MODULE_40__[\"map\"]; });\n\n/* harmony import */ var _internal_operators_mapTo__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ../internal/operators/mapTo */ \"./node_modules/rxjs/dist/esm5/internal/operators/mapTo.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mapTo\", function() { return _internal_operators_mapTo__WEBPACK_IMPORTED_MODULE_41__[\"mapTo\"]; });\n\n/* harmony import */ var _internal_operators_materialize__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ../internal/operators/materialize */ \"./node_modules/rxjs/dist/esm5/internal/operators/materialize.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"materialize\", function() { return _internal_operators_materialize__WEBPACK_IMPORTED_MODULE_42__[\"materialize\"]; });\n\n/* harmony import */ var _internal_operators_max__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ../internal/operators/max */ \"./node_modules/rxjs/dist/esm5/internal/operators/max.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"max\", function() { return _internal_operators_max__WEBPACK_IMPORTED_MODULE_43__[\"max\"]; });\n\n/* harmony import */ var _internal_operators_mergeWith__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ../internal/operators/mergeWith */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeWith\", function() { return _internal_operators_mergeWith__WEBPACK_IMPORTED_MODULE_44__[\"mergeWith\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"merge\", function() { return _internal_operators_mergeWith__WEBPACK_IMPORTED_MODULE_44__[\"merge\"]; });\n\n/* harmony import */ var _internal_operators_mergeAll__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ../internal/operators/mergeAll */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeAll\", function() { return _internal_operators_mergeAll__WEBPACK_IMPORTED_MODULE_45__[\"mergeAll\"]; });\n\n/* harmony import */ var _internal_operators_mergeMap__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ../internal/operators/mergeMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeMap\", function() { return _internal_operators_mergeMap__WEBPACK_IMPORTED_MODULE_46__[\"mergeMap\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"flatMap\", function() { return _internal_operators_mergeMap__WEBPACK_IMPORTED_MODULE_46__[\"mergeMap\"]; });\n\n/* harmony import */ var _internal_operators_mergeMapTo__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ../internal/operators/mergeMapTo */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeMapTo.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeMapTo\", function() { return _internal_operators_mergeMapTo__WEBPACK_IMPORTED_MODULE_47__[\"mergeMapTo\"]; });\n\n/* harmony import */ var _internal_operators_mergeScan__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ../internal/operators/mergeScan */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeScan.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeScan\", function() { return _internal_operators_mergeScan__WEBPACK_IMPORTED_MODULE_48__[\"mergeScan\"]; });\n\n/* harmony import */ var _internal_operators_min__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ../internal/operators/min */ \"./node_modules/rxjs/dist/esm5/internal/operators/min.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"min\", function() { return _internal_operators_min__WEBPACK_IMPORTED_MODULE_49__[\"min\"]; });\n\n/* harmony import */ var _internal_operators_multicast__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ../internal/operators/multicast */ \"./node_modules/rxjs/dist/esm5/internal/operators/multicast.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"multicast\", function() { return _internal_operators_multicast__WEBPACK_IMPORTED_MODULE_50__[\"multicast\"]; });\n\n/* harmony import */ var _internal_operators_observeOn__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ../internal/operators/observeOn */ \"./node_modules/rxjs/dist/esm5/internal/operators/observeOn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"observeOn\", function() { return _internal_operators_observeOn__WEBPACK_IMPORTED_MODULE_51__[\"observeOn\"]; });\n\n/* harmony import */ var _internal_operators_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ../internal/operators/onErrorResumeNext */ \"./node_modules/rxjs/dist/esm5/internal/operators/onErrorResumeNext.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"onErrorResumeNext\", function() { return _internal_operators_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_52__[\"onErrorResumeNext\"]; });\n\n/* harmony import */ var _internal_operators_pairwise__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ../internal/operators/pairwise */ \"./node_modules/rxjs/dist/esm5/internal/operators/pairwise.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pairwise\", function() { return _internal_operators_pairwise__WEBPACK_IMPORTED_MODULE_53__[\"pairwise\"]; });\n\n/* harmony import */ var _internal_operators_partition__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ../internal/operators/partition */ \"./node_modules/rxjs/dist/esm5/internal/operators/partition.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"partition\", function() { return _internal_operators_partition__WEBPACK_IMPORTED_MODULE_54__[\"partition\"]; });\n\n/* harmony import */ var _internal_operators_pluck__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ../internal/operators/pluck */ \"./node_modules/rxjs/dist/esm5/internal/operators/pluck.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pluck\", function() { return _internal_operators_pluck__WEBPACK_IMPORTED_MODULE_55__[\"pluck\"]; });\n\n/* harmony import */ var _internal_operators_publish__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ../internal/operators/publish */ \"./node_modules/rxjs/dist/esm5/internal/operators/publish.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"publish\", function() { return _internal_operators_publish__WEBPACK_IMPORTED_MODULE_56__[\"publish\"]; });\n\n/* harmony import */ var _internal_operators_publishBehavior__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ../internal/operators/publishBehavior */ \"./node_modules/rxjs/dist/esm5/internal/operators/publishBehavior.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"publishBehavior\", function() { return _internal_operators_publishBehavior__WEBPACK_IMPORTED_MODULE_57__[\"publishBehavior\"]; });\n\n/* harmony import */ var _internal_operators_publishLast__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ../internal/operators/publishLast */ \"./node_modules/rxjs/dist/esm5/internal/operators/publishLast.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"publishLast\", function() { return _internal_operators_publishLast__WEBPACK_IMPORTED_MODULE_58__[\"publishLast\"]; });\n\n/* harmony import */ var _internal_operators_publishReplay__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ../internal/operators/publishReplay */ \"./node_modules/rxjs/dist/esm5/internal/operators/publishReplay.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"publishReplay\", function() { return _internal_operators_publishReplay__WEBPACK_IMPORTED_MODULE_59__[\"publishReplay\"]; });\n\n/* harmony import */ var _internal_operators_race__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ../internal/operators/race */ \"./node_modules/rxjs/dist/esm5/internal/operators/race.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"race\", function() { return _internal_operators_race__WEBPACK_IMPORTED_MODULE_60__[\"race\"]; });\n\n/* harmony import */ var _internal_operators_reduce__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ../internal/operators/reduce */ \"./node_modules/rxjs/dist/esm5/internal/operators/reduce.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reduce\", function() { return _internal_operators_reduce__WEBPACK_IMPORTED_MODULE_61__[\"reduce\"]; });\n\n/* harmony import */ var _internal_operators_repeat__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ../internal/operators/repeat */ \"./node_modules/rxjs/dist/esm5/internal/operators/repeat.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"repeat\", function() { return _internal_operators_repeat__WEBPACK_IMPORTED_MODULE_62__[\"repeat\"]; });\n\n/* harmony import */ var _internal_operators_repeatWhen__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ../internal/operators/repeatWhen */ \"./node_modules/rxjs/dist/esm5/internal/operators/repeatWhen.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"repeatWhen\", function() { return _internal_operators_repeatWhen__WEBPACK_IMPORTED_MODULE_63__[\"repeatWhen\"]; });\n\n/* harmony import */ var _internal_operators_retry__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ../internal/operators/retry */ \"./node_modules/rxjs/dist/esm5/internal/operators/retry.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"retry\", function() { return _internal_operators_retry__WEBPACK_IMPORTED_MODULE_64__[\"retry\"]; });\n\n/* harmony import */ var _internal_operators_retryWhen__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ../internal/operators/retryWhen */ \"./node_modules/rxjs/dist/esm5/internal/operators/retryWhen.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"retryWhen\", function() { return _internal_operators_retryWhen__WEBPACK_IMPORTED_MODULE_65__[\"retryWhen\"]; });\n\n/* harmony import */ var _internal_operators_refCount__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ../internal/operators/refCount */ \"./node_modules/rxjs/dist/esm5/internal/operators/refCount.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"refCount\", function() { return _internal_operators_refCount__WEBPACK_IMPORTED_MODULE_66__[\"refCount\"]; });\n\n/* harmony import */ var _internal_operators_sample__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ../internal/operators/sample */ \"./node_modules/rxjs/dist/esm5/internal/operators/sample.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sample\", function() { return _internal_operators_sample__WEBPACK_IMPORTED_MODULE_67__[\"sample\"]; });\n\n/* harmony import */ var _internal_operators_sampleTime__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ../internal/operators/sampleTime */ \"./node_modules/rxjs/dist/esm5/internal/operators/sampleTime.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sampleTime\", function() { return _internal_operators_sampleTime__WEBPACK_IMPORTED_MODULE_68__[\"sampleTime\"]; });\n\n/* harmony import */ var _internal_operators_scan__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ../internal/operators/scan */ \"./node_modules/rxjs/dist/esm5/internal/operators/scan.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scan\", function() { return _internal_operators_scan__WEBPACK_IMPORTED_MODULE_69__[\"scan\"]; });\n\n/* harmony import */ var _internal_operators_sequenceEqual__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ../internal/operators/sequenceEqual */ \"./node_modules/rxjs/dist/esm5/internal/operators/sequenceEqual.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sequenceEqual\", function() { return _internal_operators_sequenceEqual__WEBPACK_IMPORTED_MODULE_70__[\"sequenceEqual\"]; });\n\n/* harmony import */ var _internal_operators_share__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ../internal/operators/share */ \"./node_modules/rxjs/dist/esm5/internal/operators/share.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"share\", function() { return _internal_operators_share__WEBPACK_IMPORTED_MODULE_71__[\"share\"]; });\n\n/* harmony import */ var _internal_operators_shareReplay__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ../internal/operators/shareReplay */ \"./node_modules/rxjs/dist/esm5/internal/operators/shareReplay.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"shareReplay\", function() { return _internal_operators_shareReplay__WEBPACK_IMPORTED_MODULE_72__[\"shareReplay\"]; });\n\n/* harmony import */ var _internal_operators_single__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ../internal/operators/single */ \"./node_modules/rxjs/dist/esm5/internal/operators/single.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"single\", function() { return _internal_operators_single__WEBPACK_IMPORTED_MODULE_73__[\"single\"]; });\n\n/* harmony import */ var _internal_operators_skip__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ../internal/operators/skip */ \"./node_modules/rxjs/dist/esm5/internal/operators/skip.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"skip\", function() { return _internal_operators_skip__WEBPACK_IMPORTED_MODULE_74__[\"skip\"]; });\n\n/* harmony import */ var _internal_operators_skipLast__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ../internal/operators/skipLast */ \"./node_modules/rxjs/dist/esm5/internal/operators/skipLast.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"skipLast\", function() { return _internal_operators_skipLast__WEBPACK_IMPORTED_MODULE_75__[\"skipLast\"]; });\n\n/* harmony import */ var _internal_operators_skipUntil__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ../internal/operators/skipUntil */ \"./node_modules/rxjs/dist/esm5/internal/operators/skipUntil.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"skipUntil\", function() { return _internal_operators_skipUntil__WEBPACK_IMPORTED_MODULE_76__[\"skipUntil\"]; });\n\n/* harmony import */ var _internal_operators_skipWhile__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ../internal/operators/skipWhile */ \"./node_modules/rxjs/dist/esm5/internal/operators/skipWhile.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"skipWhile\", function() { return _internal_operators_skipWhile__WEBPACK_IMPORTED_MODULE_77__[\"skipWhile\"]; });\n\n/* harmony import */ var _internal_operators_startWith__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ../internal/operators/startWith */ \"./node_modules/rxjs/dist/esm5/internal/operators/startWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"startWith\", function() { return _internal_operators_startWith__WEBPACK_IMPORTED_MODULE_78__[\"startWith\"]; });\n\n/* harmony import */ var _internal_operators_subscribeOn__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ../internal/operators/subscribeOn */ \"./node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"subscribeOn\", function() { return _internal_operators_subscribeOn__WEBPACK_IMPORTED_MODULE_79__[\"subscribeOn\"]; });\n\n/* harmony import */ var _internal_operators_switchAll__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ../internal/operators/switchAll */ \"./node_modules/rxjs/dist/esm5/internal/operators/switchAll.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"switchAll\", function() { return _internal_operators_switchAll__WEBPACK_IMPORTED_MODULE_80__[\"switchAll\"]; });\n\n/* harmony import */ var _internal_operators_switchMap__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ../internal/operators/switchMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"switchMap\", function() { return _internal_operators_switchMap__WEBPACK_IMPORTED_MODULE_81__[\"switchMap\"]; });\n\n/* harmony import */ var _internal_operators_switchMapTo__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ../internal/operators/switchMapTo */ \"./node_modules/rxjs/dist/esm5/internal/operators/switchMapTo.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"switchMapTo\", function() { return _internal_operators_switchMapTo__WEBPACK_IMPORTED_MODULE_82__[\"switchMapTo\"]; });\n\n/* harmony import */ var _internal_operators_take__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ../internal/operators/take */ \"./node_modules/rxjs/dist/esm5/internal/operators/take.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"take\", function() { return _internal_operators_take__WEBPACK_IMPORTED_MODULE_83__[\"take\"]; });\n\n/* harmony import */ var _internal_operators_takeLast__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ../internal/operators/takeLast */ \"./node_modules/rxjs/dist/esm5/internal/operators/takeLast.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"takeLast\", function() { return _internal_operators_takeLast__WEBPACK_IMPORTED_MODULE_84__[\"takeLast\"]; });\n\n/* harmony import */ var _internal_operators_takeUntil__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ../internal/operators/takeUntil */ \"./node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"takeUntil\", function() { return _internal_operators_takeUntil__WEBPACK_IMPORTED_MODULE_85__[\"takeUntil\"]; });\n\n/* harmony import */ var _internal_operators_takeWhile__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ../internal/operators/takeWhile */ \"./node_modules/rxjs/dist/esm5/internal/operators/takeWhile.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"takeWhile\", function() { return _internal_operators_takeWhile__WEBPACK_IMPORTED_MODULE_86__[\"takeWhile\"]; });\n\n/* harmony import */ var _internal_operators_tap__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ../internal/operators/tap */ \"./node_modules/rxjs/dist/esm5/internal/operators/tap.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tap\", function() { return _internal_operators_tap__WEBPACK_IMPORTED_MODULE_87__[\"tap\"]; });\n\n/* harmony import */ var _internal_operators_throttle__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ../internal/operators/throttle */ \"./node_modules/rxjs/dist/esm5/internal/operators/throttle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"throttle\", function() { return _internal_operators_throttle__WEBPACK_IMPORTED_MODULE_88__[\"throttle\"]; });\n\n/* harmony import */ var _internal_operators_throttleTime__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ../internal/operators/throttleTime */ \"./node_modules/rxjs/dist/esm5/internal/operators/throttleTime.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"throttleTime\", function() { return _internal_operators_throttleTime__WEBPACK_IMPORTED_MODULE_89__[\"throttleTime\"]; });\n\n/* harmony import */ var _internal_operators_throwIfEmpty__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ../internal/operators/throwIfEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"throwIfEmpty\", function() { return _internal_operators_throwIfEmpty__WEBPACK_IMPORTED_MODULE_90__[\"throwIfEmpty\"]; });\n\n/* harmony import */ var _internal_operators_timeInterval__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ../internal/operators/timeInterval */ \"./node_modules/rxjs/dist/esm5/internal/operators/timeInterval.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeInterval\", function() { return _internal_operators_timeInterval__WEBPACK_IMPORTED_MODULE_91__[\"timeInterval\"]; });\n\n/* harmony import */ var _internal_operators_timeout__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ../internal/operators/timeout */ \"./node_modules/rxjs/dist/esm5/internal/operators/timeout.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeout\", function() { return _internal_operators_timeout__WEBPACK_IMPORTED_MODULE_92__[\"timeout\"]; });\n\n/* harmony import */ var _internal_operators_timeoutWith__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ../internal/operators/timeoutWith */ \"./node_modules/rxjs/dist/esm5/internal/operators/timeoutWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeoutWith\", function() { return _internal_operators_timeoutWith__WEBPACK_IMPORTED_MODULE_93__[\"timeoutWith\"]; });\n\n/* harmony import */ var _internal_operators_timestamp__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ../internal/operators/timestamp */ \"./node_modules/rxjs/dist/esm5/internal/operators/timestamp.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timestamp\", function() { return _internal_operators_timestamp__WEBPACK_IMPORTED_MODULE_94__[\"timestamp\"]; });\n\n/* harmony import */ var _internal_operators_toArray__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ../internal/operators/toArray */ \"./node_modules/rxjs/dist/esm5/internal/operators/toArray.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toArray\", function() { return _internal_operators_toArray__WEBPACK_IMPORTED_MODULE_95__[\"toArray\"]; });\n\n/* harmony import */ var _internal_operators_window__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ../internal/operators/window */ \"./node_modules/rxjs/dist/esm5/internal/operators/window.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"window\", function() { return _internal_operators_window__WEBPACK_IMPORTED_MODULE_96__[\"window\"]; });\n\n/* harmony import */ var _internal_operators_windowCount__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(/*! ../internal/operators/windowCount */ \"./node_modules/rxjs/dist/esm5/internal/operators/windowCount.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"windowCount\", function() { return _internal_operators_windowCount__WEBPACK_IMPORTED_MODULE_97__[\"windowCount\"]; });\n\n/* harmony import */ var _internal_operators_windowTime__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(/*! ../internal/operators/windowTime */ \"./node_modules/rxjs/dist/esm5/internal/operators/windowTime.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"windowTime\", function() { return _internal_operators_windowTime__WEBPACK_IMPORTED_MODULE_98__[\"windowTime\"]; });\n\n/* harmony import */ var _internal_operators_windowToggle__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(/*! ../internal/operators/windowToggle */ \"./node_modules/rxjs/dist/esm5/internal/operators/windowToggle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"windowToggle\", function() { return _internal_operators_windowToggle__WEBPACK_IMPORTED_MODULE_99__[\"windowToggle\"]; });\n\n/* harmony import */ var _internal_operators_windowWhen__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(/*! ../internal/operators/windowWhen */ \"./node_modules/rxjs/dist/esm5/internal/operators/windowWhen.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"windowWhen\", function() { return _internal_operators_windowWhen__WEBPACK_IMPORTED_MODULE_100__[\"windowWhen\"]; });\n\n/* harmony import */ var _internal_operators_withLatestFrom__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(/*! ../internal/operators/withLatestFrom */ \"./node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"withLatestFrom\", function() { return _internal_operators_withLatestFrom__WEBPACK_IMPORTED_MODULE_101__[\"withLatestFrom\"]; });\n\n/* harmony import */ var _internal_operators_zipWith__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(/*! ../internal/operators/zipWith */ \"./node_modules/rxjs/dist/esm5/internal/operators/zipWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zip\", function() { return _internal_operators_zipWith__WEBPACK_IMPORTED_MODULE_102__[\"zip\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zipWith\", function() { return _internal_operators_zipWith__WEBPACK_IMPORTED_MODULE_102__[\"zipWith\"]; });\n\n/* harmony import */ var _internal_operators_zipAll__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(/*! ../internal/operators/zipAll */ \"./node_modules/rxjs/dist/esm5/internal/operators/zipAll.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zipAll\", function() { return _internal_operators_zipAll__WEBPACK_IMPORTED_MODULE_103__[\"zipAll\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/operators/index.js?"); + +/***/ }), + +/***/ "./node_modules/tslib/tslib.es6.js": +/*!*****************************************!*\ + !*** ./node_modules/tslib/tslib.es6.js ***! + \*****************************************/ +/*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault, __classPrivateFieldGet, __classPrivateFieldSet */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__extends\", function() { return __extends; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__assign\", function() { return __assign; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__rest\", function() { return __rest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__decorate\", function() { return __decorate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__param\", function() { return __param; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__metadata\", function() { return __metadata; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__awaiter\", function() { return __awaiter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__generator\", function() { return __generator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__exportStar\", function() { return __exportStar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__values\", function() { return __values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__read\", function() { return __read; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__spread\", function() { return __spread; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__spreadArrays\", function() { return __spreadArrays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__await\", function() { return __await; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncGenerator\", function() { return __asyncGenerator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncDelegator\", function() { return __asyncDelegator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncValues\", function() { return __asyncValues; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__makeTemplateObject\", function() { return __makeTemplateObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__importStar\", function() { return __importStar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__importDefault\", function() { return __importDefault; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__classPrivateFieldGet\", function() { return __classPrivateFieldGet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__classPrivateFieldSet\", function() { return __classPrivateFieldSet; });\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nfunction __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nfunction __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nfunction __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nfunction __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nfunction __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nfunction __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nfunction __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nfunction __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nfunction __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n\n\n//# sourceURL=webpack:///./node_modules/tslib/tslib.es6.js?"); + +/***/ }), + +/***/ "./node_modules/webpack/buildin/global.js": +/*!***********************************!*\ + !*** (webpack)/buildin/global.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n//# sourceURL=webpack:///(webpack)/buildin/global.js?"); + +/***/ }) + +}]); \ No newline at end of file diff --git a/doc/theme/material/assets/javascripts/worker/search.37585f48.min.js b/doc/theme/material/assets/javascripts/worker/search.37585f48.min.js new file mode 100644 index 00000000..edcf6ebf --- /dev/null +++ b/doc/theme/material/assets/javascripts/worker/search.37585f48.min.js @@ -0,0 +1,59 @@ +!function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=4)}([function(e,t,r){"use strict"; +/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var n=/["'&<>]/;e.exports=function(e){var t,r=""+e,i=n.exec(r);if(!i)return r;var s="",o=0,a=0;for(o=i.index;o0){var u=I.utils.clone(t)||{};u.position=[o,a],u.index=i.length,i.push(new I.Token(r.slice(o,s),u))}o=s+1}}return i},I.tokenizer.separator=/[\s\-]+/ +/*! + * lunr.Pipeline + * Copyright (C) 2019 Oliver Nightingale + */,I.Pipeline=function(){this._stack=[]},I.Pipeline.registeredFunctions=Object.create(null),I.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&I.utils.warn("Overwriting existing registered function: "+t),e.label=t,I.Pipeline.registeredFunctions[e.label]=e},I.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||I.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},I.Pipeline.load=function(e){var t=new I.Pipeline;return e.forEach((function(e){var r=I.Pipeline.registeredFunctions[e];if(!r)throw new Error("Cannot load unregistered function: "+e);t.add(r)})),t},I.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach((function(e){I.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},I.Pipeline.prototype.after=function(e,t){I.Pipeline.warnIfFunctionNotRegistered(t);var r=this._stack.indexOf(e);if(-1==r)throw new Error("Cannot find existingFn");r+=1,this._stack.splice(r,0,t)},I.Pipeline.prototype.before=function(e,t){I.Pipeline.warnIfFunctionNotRegistered(t);var r=this._stack.indexOf(e);if(-1==r)throw new Error("Cannot find existingFn");this._stack.splice(r,0,t)},I.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},I.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=i),s!=e);)n=r-t,i=t+Math.floor(n/2),s=this.elements[2*i];return s==e||s>e?2*i:sa?l+=2:o==a&&(t+=r[u+1]*n[l+1],u+=2,l+=2);return t},I.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},I.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var s,o=i.str.charAt(0);o in i.node.edges?s=i.node.edges[o]:(s=new I.TokenSet,i.node.edges[o]=s),1==i.str.length&&(s.final=!0),n.push({node:s,editsRemaining:i.editsRemaining,str:i.str.slice(1)})}if(0!=i.editsRemaining){if("*"in i.node.edges)var a=i.node.edges["*"];else{a=new I.TokenSet;i.node.edges["*"]=a}if(0==i.str.length&&(a.final=!0),n.push({node:a,editsRemaining:i.editsRemaining-1,str:i.str}),i.str.length>1&&n.push({node:i.node,editsRemaining:i.editsRemaining-1,str:i.str.slice(1)}),1==i.str.length&&(i.node.final=!0),i.str.length>=1){if("*"in i.node.edges)var u=i.node.edges["*"];else{u=new I.TokenSet;i.node.edges["*"]=u}1==i.str.length&&(u.final=!0),n.push({node:u,editsRemaining:i.editsRemaining-1,str:i.str.slice(1)})}if(i.str.length>1){var l,c=i.str.charAt(0),h=i.str.charAt(1);h in i.node.edges?l=i.node.edges[h]:(l=new I.TokenSet,i.node.edges[h]=l),1==i.str.length&&(l.final=!0),n.push({node:l,editsRemaining:i.editsRemaining-1,str:c+i.str.slice(2)})}}}return r},I.TokenSet.fromString=function(e){for(var t=new I.TokenSet,r=t,n=0,i=e.length;n=e;t--){var r=this.uncheckedNodes[t],n=r.child.toString();n in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[n]:(r.child._str=n,this.minimizedNodes[n]=r.child),this.uncheckedNodes.pop()}} +/*! + * lunr.Index + * Copyright (C) 2019 Oliver Nightingale + */,I.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},I.Index.prototype.search=function(e){return this.query((function(t){new I.QueryParser(e,t).parse()}))},I.Index.prototype.query=function(e){for(var t=new I.Query(this.fields),r=Object.create(null),n=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=0;a1?1:e},I.Builder.prototype.k1=function(e){this._k1=e},I.Builder.prototype.add=function(e,t){var r=e[this._ref],n=Object.keys(this._fields);this._documents[r]=t||{},this.documentCount+=1;for(var i=0;i=this.length)return I.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},I.QueryLexer.prototype.width=function(){return this.pos-this.start},I.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},I.QueryLexer.prototype.backup=function(){this.pos-=1},I.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=I.QueryLexer.EOS&&this.backup()},I.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(I.QueryLexer.TERM)),e.ignore(),e.more())return I.QueryLexer.lexText},I.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(I.QueryLexer.EDIT_DISTANCE),I.QueryLexer.lexText},I.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(I.QueryLexer.BOOST),I.QueryLexer.lexText},I.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(I.QueryLexer.TERM)},I.QueryLexer.termSeparator=I.tokenizer.separator,I.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==I.QueryLexer.EOS)return I.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return I.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(I.QueryLexer.TERM),I.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(I.QueryLexer.TERM),I.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(I.QueryLexer.PRESENCE),I.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(I.QueryLexer.PRESENCE),I.QueryLexer.lexText;if(t.match(I.QueryLexer.termSeparator))return I.QueryLexer.lexTerm}else e.escapeCharacter()}},I.QueryParser=function(e,t){this.lexer=new I.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},I.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=I.QueryParser.parseClause;e;)e=e(this);return this.query},I.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},I.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},I.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},I.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case I.QueryLexer.PRESENCE:return I.QueryParser.parsePresence;case I.QueryLexer.FIELD:return I.QueryParser.parseField;case I.QueryLexer.TERM:return I.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(r+=" with value '"+t.str+"'"),new I.QueryParseError(r,t.start,t.end)}},I.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=I.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=I.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+t.str+"'";throw new I.QueryParseError(r,t.start,t.end)}var n=e.peekLexeme();if(null==n){r="expecting term or field, found nothing";throw new I.QueryParseError(r,t.start,t.end)}switch(n.type){case I.QueryLexer.FIELD:return I.QueryParser.parseField;case I.QueryLexer.TERM:return I.QueryParser.parseTerm;default:r="expecting term or field, found '"+n.type+"'";throw new I.QueryParseError(r,n.start,n.end)}}},I.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var r=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),n="unrecognised field '"+t.str+"', possible fields: "+r;throw new I.QueryParseError(n,t.start,t.end)}e.currentClause.fields=[t.str];var i=e.peekLexeme();if(null==i){n="expecting term, found nothing";throw new I.QueryParseError(n,t.start,t.end)}switch(i.type){case I.QueryLexer.TERM:return I.QueryParser.parseTerm;default:n="expecting term, found '"+i.type+"'";throw new I.QueryParseError(n,i.start,i.end)}}},I.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(null!=r)switch(r.type){case I.QueryLexer.TERM:return e.nextClause(),I.QueryParser.parseTerm;case I.QueryLexer.FIELD:return e.nextClause(),I.QueryParser.parseField;case I.QueryLexer.EDIT_DISTANCE:return I.QueryParser.parseEditDistance;case I.QueryLexer.BOOST:return I.QueryParser.parseBoost;case I.QueryLexer.PRESENCE:return e.nextClause(),I.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+r.type+"'";throw new I.QueryParseError(n,r.start,r.end)}else e.nextClause()}},I.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var r=parseInt(t.str,10);if(isNaN(r)){var n="edit distance must be numeric";throw new I.QueryParseError(n,t.start,t.end)}e.currentClause.editDistance=r;var i=e.peekLexeme();if(null!=i)switch(i.type){case I.QueryLexer.TERM:return e.nextClause(),I.QueryParser.parseTerm;case I.QueryLexer.FIELD:return e.nextClause(),I.QueryParser.parseField;case I.QueryLexer.EDIT_DISTANCE:return I.QueryParser.parseEditDistance;case I.QueryLexer.BOOST:return I.QueryParser.parseBoost;case I.QueryLexer.PRESENCE:return e.nextClause(),I.QueryParser.parsePresence;default:n="Unexpected lexeme type '"+i.type+"'";throw new I.QueryParseError(n,i.start,i.end)}else e.nextClause()}},I.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var r=parseInt(t.str,10);if(isNaN(r)){var n="boost must be numeric";throw new I.QueryParseError(n,t.start,t.end)}e.currentClause.boost=r;var i=e.peekLexeme();if(null!=i)switch(i.type){case I.QueryLexer.TERM:return e.nextClause(),I.QueryParser.parseTerm;case I.QueryLexer.FIELD:return e.nextClause(),I.QueryParser.parseField;case I.QueryLexer.EDIT_DISTANCE:return I.QueryParser.parseEditDistance;case I.QueryLexer.BOOST:return I.QueryParser.parseBoost;case I.QueryLexer.PRESENCE:return e.nextClause(),I.QueryParser.parsePresence;default:n="Unexpected lexeme type '"+i.type+"'";throw new I.QueryParseError(n,i.start,i.end)}else e.nextClause()}},void 0===(i="function"==typeof(n=function(){return I})?n.call(t,r,t,e):n)||(e.exports=i)}()},function(e,t,r){"use strict";r.r(t),r.d(t,"handler",(function(){return h}));var n=function(){return(n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function s(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,s=r.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(n=s.next()).done;)o.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=s.return)&&r.call(s)}finally{if(i)throw i.error}}return o}function o(){for(var e=[],t=0;t"+r+""};return function(i){i=i.replace(/[\s*+-:~^]+/g," ").trim();var s=new RegExp("(^|"+e.separator+")("+i.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(t,"|")+")","img");return function(e){return n(n({},e),{title:e.title.replace(s,r),text:e.text.replace(s,r)})}}}(t),this.index=void 0===l?lunr((function(){var e,n,s,a,l;u=u||["trimmer","stopWordFilter"],this.pipeline.reset();try{for(var c=i(u),h=c.next();!h.done;h=c.next()){var d=h.value;this.pipeline.add(lunr[d])}}catch(t){e={error:t}}finally{try{h&&!h.done&&(n=c.return)&&n.call(c)}finally{if(e)throw e.error}}1===t.lang.length&&"en"!==t.lang[0]?this.use(lunr[t.lang[0]]):t.lang.length>1&&this.use((s=lunr).multiLanguage.apply(s,o(t.lang))),this.field("title",{boost:1e3}),this.field("text"),this.ref("location");try{for(var f=i(r),p=f.next();!p.done;p=f.next()){var y=p.value;this.add(y)}}catch(e){a={error:e}}finally{try{p&&!p.done&&(l=f.return)&&l.call(f)}finally{if(a)throw a.error}}})):lunr.Index.load("string"==typeof l?JSON.parse(l):l)}return e.prototype.query=function(e){var t=this;if(e)try{var r=this.index.search(e).reduce((function(e,r){var n=t.documents.get(r.ref);if(void 0!==n)if("parent"in n){var i=n.parent.location;e.set(i,o(e.get(i)||[],[r]))}else{i=n.location;e.set(i,e.get(i)||[])}return e}),new Map),n=this.highlight(e);return o(r).map((function(e){var r=s(e,2),i=r[0],o=r[1];return{article:n(t.documents.get(i)),sections:o.map((function(e){return n(t.documents.get(e.ref))}))}}))}catch(t){console.warn("Invalid query: "+e+" – see https://bit.ly/2s3ChXG")}return[]},e}();function h(e){switch(e.type){case u.SETUP:return function(e){var t,r,n="../lunr",s=[];try{for(var a=i(e.lang),u=a.next();!u.done;u=a.next()){var l=u.value;"ja"===l&&s.push(n+"/tinyseg.min.js"),"en"!==l&&s.push(n+"/min/lunr."+l+".min.js")}}catch(e){t={error:e}}finally{try{u&&!u.done&&(r=a.return)&&r.call(a)}finally{if(t)throw t.error}}e.lang.length>1&&s.push(n+"/min/lunr.multi.min.js"),s.length&&importScripts.apply(void 0,o([n+"/min/lunr.stemmer.support.min.js"],s))}(e.data.config),l=new c(e.data),{type:u.READY};case u.QUERY:return{type:u.RESULT,data:l?l.query(e.data):[]};default:throw new TypeError("Invalid message type")}}!function(e){e[e.SETUP=0]="SETUP",e[e.READY=1]="READY",e[e.QUERY=2]="QUERY",e[e.RESULT=3]="RESULT"}(u||(u={})),addEventListener("message",(function(e){postMessage(h(e.data))}))}]); +//# sourceMappingURL=search.37585f48.min.js.map \ No newline at end of file diff --git a/doc/theme/material/assets/javascripts/worker/search.37585f48.min.js.map b/doc/theme/material/assets/javascripts/worker/search.37585f48.min.js.map new file mode 100644 index 00000000..884ad522 --- /dev/null +++ b/doc/theme/material/assets/javascripts/worker/search.37585f48.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/escape-html/index.js","webpack:///./node_modules/lunr/lunr.js-exposed","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/lunr/lunr.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./src/assets/javascripts/integrations/search/_/index.ts","webpack:///./src/assets/javascripts/integrations/search/worker/message/index.ts","webpack:///./src/assets/javascripts/integrations/search/worker/main/index.ts","webpack:///./src/assets/javascripts/integrations/search/document/index.ts","webpack:///./src/assets/javascripts/integrations/search/highlighter/index.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","matchHtmlRegExp","string","escape","str","match","exec","html","index","lastIndex","length","charCodeAt","substring","g","this","Function","e","window","global","step2list","step3list","v","C","re_mgr0","re_mgr1","re_meq1","re_s_v","re_1a","re2_1a","re_1b","re2_1b","re_1b_2","re2_1b_2","re3_1b_2","re4_1b_2","re_1c","re_2","re_3","re_4","re2_4","re_5","re_5_1","re3_5","porterStemmer","lunr","config","builder","Builder","pipeline","add","trimmer","stopWordFilter","stemmer","searchPipeline","build","version","utils","warn","message","console","asString","obj","toString","clone","keys","val","Array","isArray","slice","TypeError","FieldRef","docRef","fieldName","stringValue","_stringValue","joiner","fromString","indexOf","fieldRef","undefined","Set","elements","complete","intersect","other","union","contains","empty","a","b","intersection","element","push","concat","idf","posting","documentCount","documentsWithTerm","x","Math","log","abs","Token","metadata","update","fn","tokenizer","map","toLowerCase","len","tokens","sliceEnd","sliceStart","sliceLength","charAt","separator","tokenMetadata","Pipeline","_stack","registeredFunctions","registerFunction","label","warnIfFunctionNotRegistered","load","serialised","forEach","fnName","Error","fns","arguments","after","existingFn","newFn","pos","splice","before","remove","run","stackLength","memo","j","result","k","runString","token","reset","toJSON","Vector","_magnitude","positionForIndex","start","end","pivotPoint","floor","pivotIndex","insert","insertIdx","upsert","position","magnitude","sumOfSquares","elementsLength","sqrt","dot","otherVector","dotProduct","aLen","bLen","aVal","bVal","similarity","toArray","output","RegExp","w","stem","suffix","firstch","re","re2","re3","re4","substr","toUpperCase","test","replace","fp","generateStopWordFilter","stopWords","words","reduce","stopWord","TokenSet","final","edges","id","_nextId","fromArray","arr","finish","root","fromClause","clause","fromFuzzyString","term","editDistance","stack","node","editsRemaining","frame","pop","noEditNode","char","insertionNode","substitutionNode","transposeNode","charA","charB","next","prefix","edge","_str","labels","sort","qNode","qEdges","qLen","nEdges","nLen","q","qEdge","nEdge","previousWord","uncheckedNodes","minimizedNodes","word","commonPrefix","minimize","child","nextNode","parent","downTo","childKey","Index","attrs","invertedIndex","fieldVectors","tokenSet","fields","search","queryString","query","QueryParser","parse","Query","matchingFields","queryVectors","termFieldCache","requiredMatches","prohibitedMatches","clauses","terms","clauseMatches","usePipeline","termTokenSet","expandedTerms","presence","REQUIRED","field","expandedTerm","termIndex","_index","fieldPosting","matchingDocumentRefs","termField","matchingDocumentsSet","PROHIBITED","boost","fieldMatch","matchingDocumentRef","matchingFieldRef","MatchData","allRequiredMatches","allProhibitedMatches","matchingFieldRefs","results","matches","isNegated","docMatch","fieldVector","score","matchData","combine","ref","serializedIndex","serializedVectors","serializedInvertedIndex","tokenSetBuilder","tuple","_ref","_fields","_documents","fieldTermFrequencies","fieldLengths","_b","_k1","metadataWhitelist","attributes","RangeError","number","k1","doc","extractor","fieldTerms","metadataKey","calculateAverageFieldLengths","fieldRefs","numberOfFields","accumulator","documentsWithField","averageFieldLength","createFieldVectors","fieldRefsLength","termIdfCache","fieldLength","termFrequencies","termsLength","fieldBoost","docBoost","scoreWithPrecision","tf","round","createTokenSet","use","args","unshift","apply","clonedMetadata","metadataKeys","otherMatchData","allFields","wildcard","String","NONE","LEADING","TRAILING","OPTIONAL","options","QueryParseError","QueryLexer","lexemes","escapeCharPositions","state","lexText","sliceString","subSlices","join","emit","type","escapeCharacter","EOS","width","ignore","backup","acceptDigitRun","charCode","more","FIELD","TERM","EDIT_DISTANCE","BOOST","PRESENCE","lexField","lexer","lexTerm","lexEditDistance","lexBoost","lexEOS","termSeparator","currentClause","lexemeIdx","parseClause","peekLexeme","consumeLexeme","lexeme","nextClause","completedClause","parser","parsePresence","parseField","parseTerm","errorMessage","nextLexeme","possibleFields","f","parseEditDistance","parseBoost","parseInt","isNaN","__assign","assign","__values","iterator","done","__read","ar","error","__spread","SearchMessageType","docs","documents","Map","path","hash","location","title","text","linked","set","setupSearchDocumentMap","highlight","_","data","trim","document","setupSearchHighlighter","lang","multiLanguage","JSON","groups","sections","article","section","err","handler","SETUP","base","scripts","importScripts","setupLunrLanguages","READY","QUERY","RESULT","addEventListener","ev","postMessage"],"mappings":"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C,GACtC,IAAIC,EAAQD,EAAUE,QAAO,SAAUnD,EAAMoD,GAE3C,OADApD,EAAKoD,GAAYA,EACVpD,IACN,IAEH,OAAO,SAAUK,GACf,GAAIA,GAAS6C,EAAM7C,EAAMlF,cAAgBkF,EAAMlF,WAAY,OAAOkF,IAiBtEpG,EAAKO,eAAiBP,EAAK+I,uBAAuB,CAChD,IACA,OACA,QACA,SACA,QACA,MACA,SACA,OACA,KACA,QACA,KACA,MACA,MACA,MACA,KACA,KACA,KACA,UACA,OACA,MACA,KACA,MACA,SACA,QACA,OACA,MACA,KACA,OACA,SACA,OACA,OACA,QACA,MACA,OACA,MACA,MACA,MACA,MACA,OACA,KACA,MACA,OACA,MACA,MACA,MACA,UACA,IACA,KACA,KACA,OACA,KACA,KACA,MACA,OACA,QACA,MACA,OACA,SACA,MACA,KACA,QACA,OACA,OACA,KACA,UACA,KACA,MACA,MACA,KACA,MACA,QACA,KACA,OACA,KACA,QACA,MACA,MACA,SACA,OACA,MACA,OACA,MACA,SACA,QACA,KACA,OACA,OACA,OACA,MACA,QACA,OACA,OACA,QACA,QACA,OACA,OACA,MACA,KACA,MACA,OACA,KACA,QACA,MACA,KACA,OACA,OACA,OACA,QACA,QACA,QACA,MACA,OACA,MACA,OACA,OACA,QACA,MACA,MACA,SAGF/I,EAAKyE,SAASG,iBAAiB5E,EAAKO,eAAgB;;;;IAqBpDP,EAAKM,QAAU,SAAU8F,GACvB,OAAOA,EAAMxC,QAAO,SAAUxG,GAC5B,OAAOA,EAAEyL,QAAQ,OAAQ,IAAIA,QAAQ,OAAQ,QAIjD7I,EAAKyE,SAASG,iBAAiB5E,EAAKM,QAAS;;;;IA2B7CN,EAAKoJ,SAAW,WACdlL,KAAKmL,OAAQ,EACbnL,KAAKoL,MAAQ,GACbpL,KAAKqL,GAAKvJ,EAAKoJ,SAASI,QACxBxJ,EAAKoJ,SAASI,SAAW,GAW3BxJ,EAAKoJ,SAASI,QAAU,EASxBxJ,EAAKoJ,SAASK,UAAY,SAAUC,GAGlC,IAFA,IAAIxJ,EAAU,IAAIF,EAAKoJ,SAASjJ,Q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","file":"assets/javascripts/worker/search.37585f48.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 4);\n","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n","module.exports = global[\"lunr\"] = require(\"-!./lunr.js\");","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/**\n * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.8\n * Copyright (C) 2019 Oliver Nightingale\n * @license MIT\n */\n\n;(function(){\n\n/**\n * A convenience function for configuring and constructing\n * a new lunr Index.\n *\n * A lunr.Builder instance is created and the pipeline setup\n * with a trimmer, stop word filter and stemmer.\n *\n * This builder object is yielded to the configuration function\n * that is passed as a parameter, allowing the list of fields\n * and other builder parameters to be customised.\n *\n * All documents _must_ be added within the passed config function.\n *\n * @example\n * var idx = lunr(function () {\n * this.field('title')\n * this.field('body')\n * this.ref('id')\n *\n * documents.forEach(function (doc) {\n * this.add(doc)\n * }, this)\n * })\n *\n * @see {@link lunr.Builder}\n * @see {@link lunr.Pipeline}\n * @see {@link lunr.trimmer}\n * @see {@link lunr.stopWordFilter}\n * @see {@link lunr.stemmer}\n * @namespace {function} lunr\n */\nvar lunr = function (config) {\n var builder = new lunr.Builder\n\n builder.pipeline.add(\n lunr.trimmer,\n lunr.stopWordFilter,\n lunr.stemmer\n )\n\n builder.searchPipeline.add(\n lunr.stemmer\n )\n\n config.call(builder, builder)\n return builder.build()\n}\n\nlunr.version = \"2.3.8\"\n/*!\n * lunr.utils\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A namespace containing utils for the rest of the lunr library\n * @namespace lunr.utils\n */\nlunr.utils = {}\n\n/**\n * Print a warning message to the console.\n *\n * @param {String} message The message to be printed.\n * @memberOf lunr.utils\n * @function\n */\nlunr.utils.warn = (function (global) {\n /* eslint-disable no-console */\n return function (message) {\n if (global.console && console.warn) {\n console.warn(message)\n }\n }\n /* eslint-enable no-console */\n})(this)\n\n/**\n * Convert an object to a string.\n *\n * In the case of `null` and `undefined` the function returns\n * the empty string, in all other cases the result of calling\n * `toString` on the passed object is returned.\n *\n * @param {Any} obj The object to convert to a string.\n * @return {String} string representation of the passed object.\n * @memberOf lunr.utils\n */\nlunr.utils.asString = function (obj) {\n if (obj === void 0 || obj === null) {\n return \"\"\n } else {\n return obj.toString()\n }\n}\n\n/**\n * Clones an object.\n *\n * Will create a copy of an existing object such that any mutations\n * on the copy cannot affect the original.\n *\n * Only shallow objects are supported, passing a nested object to this\n * function will cause a TypeError.\n *\n * Objects with primitives, and arrays of primitives are supported.\n *\n * @param {Object} obj The object to clone.\n * @return {Object} a clone of the passed object.\n * @throws {TypeError} when a nested object is passed.\n * @memberOf Utils\n */\nlunr.utils.clone = function (obj) {\n if (obj === null || obj === undefined) {\n return obj\n }\n\n var clone = Object.create(null),\n keys = Object.keys(obj)\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i],\n val = obj[key]\n\n if (Array.isArray(val)) {\n clone[key] = val.slice()\n continue\n }\n\n if (typeof val === 'string' ||\n typeof val === 'number' ||\n typeof val === 'boolean') {\n clone[key] = val\n continue\n }\n\n throw new TypeError(\"clone is not deep and does not support nested objects\")\n }\n\n return clone\n}\nlunr.FieldRef = function (docRef, fieldName, stringValue) {\n this.docRef = docRef\n this.fieldName = fieldName\n this._stringValue = stringValue\n}\n\nlunr.FieldRef.joiner = \"/\"\n\nlunr.FieldRef.fromString = function (s) {\n var n = s.indexOf(lunr.FieldRef.joiner)\n\n if (n === -1) {\n throw \"malformed field ref string\"\n }\n\n var fieldRef = s.slice(0, n),\n docRef = s.slice(n + 1)\n\n return new lunr.FieldRef (docRef, fieldRef, s)\n}\n\nlunr.FieldRef.prototype.toString = function () {\n if (this._stringValue == undefined) {\n this._stringValue = this.fieldName + lunr.FieldRef.joiner + this.docRef\n }\n\n return this._stringValue\n}\n/*!\n * lunr.Set\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A lunr set.\n *\n * @constructor\n */\nlunr.Set = function (elements) {\n this.elements = Object.create(null)\n\n if (elements) {\n this.length = elements.length\n\n for (var i = 0; i < this.length; i++) {\n this.elements[elements[i]] = true\n }\n } else {\n this.length = 0\n }\n}\n\n/**\n * A complete set that contains all elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.complete = {\n intersect: function (other) {\n return other\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return true\n }\n}\n\n/**\n * An empty set that contains no elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.empty = {\n intersect: function () {\n return this\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return false\n }\n}\n\n/**\n * Returns true if this set contains the specified object.\n *\n * @param {object} object - Object whose presence in this set is to be tested.\n * @returns {boolean} - True if this set contains the specified object.\n */\nlunr.Set.prototype.contains = function (object) {\n return !!this.elements[object]\n}\n\n/**\n * Returns a new set containing only the elements that are present in both\n * this set and the specified set.\n *\n * @param {lunr.Set} other - set to intersect with this set.\n * @returns {lunr.Set} a new set that is the intersection of this and the specified set.\n */\n\nlunr.Set.prototype.intersect = function (other) {\n var a, b, elements, intersection = []\n\n if (other === lunr.Set.complete) {\n return this\n }\n\n if (other === lunr.Set.empty) {\n return other\n }\n\n if (this.length < other.length) {\n a = this\n b = other\n } else {\n a = other\n b = this\n }\n\n elements = Object.keys(a.elements)\n\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i]\n if (element in b.elements) {\n intersection.push(element)\n }\n }\n\n return new lunr.Set (intersection)\n}\n\n/**\n * Returns a new set combining the elements of this and the specified set.\n *\n * @param {lunr.Set} other - set to union with this set.\n * @return {lunr.Set} a new set that is the union of this and the specified set.\n */\n\nlunr.Set.prototype.union = function (other) {\n if (other === lunr.Set.complete) {\n return lunr.Set.complete\n }\n\n if (other === lunr.Set.empty) {\n return this\n }\n\n return new lunr.Set(Object.keys(this.elements).concat(Object.keys(other.elements)))\n}\n/**\n * A function to calculate the inverse document frequency for\n * a posting. This is shared between the builder and the index\n *\n * @private\n * @param {object} posting - The posting for a given term\n * @param {number} documentCount - The total number of documents.\n */\nlunr.idf = function (posting, documentCount) {\n var documentsWithTerm = 0\n\n for (var fieldName in posting) {\n if (fieldName == '_index') continue // Ignore the term index, its not a field\n documentsWithTerm += Object.keys(posting[fieldName]).length\n }\n\n var x = (documentCount - documentsWithTerm + 0.5) / (documentsWithTerm + 0.5)\n\n return Math.log(1 + Math.abs(x))\n}\n\n/**\n * A token wraps a string representation of a token\n * as it is passed through the text processing pipeline.\n *\n * @constructor\n * @param {string} [str=''] - The string token being wrapped.\n * @param {object} [metadata={}] - Metadata associated with this token.\n */\nlunr.Token = function (str, metadata) {\n this.str = str || \"\"\n this.metadata = metadata || {}\n}\n\n/**\n * Returns the token string that is being wrapped by this object.\n *\n * @returns {string}\n */\nlunr.Token.prototype.toString = function () {\n return this.str\n}\n\n/**\n * A token update function is used when updating or optionally\n * when cloning a token.\n *\n * @callback lunr.Token~updateFunction\n * @param {string} str - The string representation of the token.\n * @param {Object} metadata - All metadata associated with this token.\n */\n\n/**\n * Applies the given function to the wrapped string token.\n *\n * @example\n * token.update(function (str, metadata) {\n * return str.toUpperCase()\n * })\n *\n * @param {lunr.Token~updateFunction} fn - A function to apply to the token string.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.update = function (fn) {\n this.str = fn(this.str, this.metadata)\n return this\n}\n\n/**\n * Creates a clone of this token. Optionally a function can be\n * applied to the cloned token.\n *\n * @param {lunr.Token~updateFunction} [fn] - An optional function to apply to the cloned token.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.clone = function (fn) {\n fn = fn || function (s) { return s }\n return new lunr.Token (fn(this.str, this.metadata), this.metadata)\n}\n/*!\n * lunr.tokenizer\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A function for splitting a string into tokens ready to be inserted into\n * the search index. Uses `lunr.tokenizer.separator` to split strings, change\n * the value of this property to change how strings are split into tokens.\n *\n * This tokenizer will convert its parameter to a string by calling `toString` and\n * then will split this string on the character in `lunr.tokenizer.separator`.\n * Arrays will have their elements converted to strings and wrapped in a lunr.Token.\n *\n * Optional metadata can be passed to the tokenizer, this metadata will be cloned and\n * added as metadata to every token that is created from the object to be tokenized.\n *\n * @static\n * @param {?(string|object|object[])} obj - The object to convert into tokens\n * @param {?object} metadata - Optional metadata to associate with every token\n * @returns {lunr.Token[]}\n * @see {@link lunr.Pipeline}\n */\nlunr.tokenizer = function (obj, metadata) {\n if (obj == null || obj == undefined) {\n return []\n }\n\n if (Array.isArray(obj)) {\n return obj.map(function (t) {\n return new lunr.Token(\n lunr.utils.asString(t).toLowerCase(),\n lunr.utils.clone(metadata)\n )\n })\n }\n\n var str = obj.toString().toLowerCase(),\n len = str.length,\n tokens = []\n\n for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {\n var char = str.charAt(sliceEnd),\n sliceLength = sliceEnd - sliceStart\n\n if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) {\n\n if (sliceLength > 0) {\n var tokenMetadata = lunr.utils.clone(metadata) || {}\n tokenMetadata[\"position\"] = [sliceStart, sliceLength]\n tokenMetadata[\"index\"] = tokens.length\n\n tokens.push(\n new lunr.Token (\n str.slice(sliceStart, sliceEnd),\n tokenMetadata\n )\n )\n }\n\n sliceStart = sliceEnd + 1\n }\n\n }\n\n return tokens\n}\n\n/**\n * The separator used to split a string into tokens. Override this property to change the behaviour of\n * `lunr.tokenizer` behaviour when tokenizing strings. By default this splits on whitespace and hyphens.\n *\n * @static\n * @see lunr.tokenizer\n */\nlunr.tokenizer.separator = /[\\s\\-]+/\n/*!\n * lunr.Pipeline\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.Pipelines maintain an ordered list of functions to be applied to all\n * tokens in documents entering the search index and queries being ran against\n * the index.\n *\n * An instance of lunr.Index created with the lunr shortcut will contain a\n * pipeline with a stop word filter and an English language stemmer. Extra\n * functions can be added before or after either of these functions or these\n * default functions can be removed.\n *\n * When run the pipeline will call each function in turn, passing a token, the\n * index of that token in the original list of all tokens and finally a list of\n * all the original tokens.\n *\n * The output of functions in the pipeline will be passed to the next function\n * in the pipeline. To exclude a token from entering the index the function\n * should return undefined, the rest of the pipeline will not be called with\n * this token.\n *\n * For serialisation of pipelines to work, all functions used in an instance of\n * a pipeline should be registered with lunr.Pipeline. Registered functions can\n * then be loaded. If trying to load a serialised pipeline that uses functions\n * that are not registered an error will be thrown.\n *\n * If not planning on serialising the pipeline then registering pipeline functions\n * is not necessary.\n *\n * @constructor\n */\nlunr.Pipeline = function () {\n this._stack = []\n}\n\nlunr.Pipeline.registeredFunctions = Object.create(null)\n\n/**\n * A pipeline function maps lunr.Token to lunr.Token. A lunr.Token contains the token\n * string as well as all known metadata. A pipeline function can mutate the token string\n * or mutate (or add) metadata for a given token.\n *\n * A pipeline function can indicate that the passed token should be discarded by returning\n * null, undefined or an empty string. This token will not be passed to any downstream pipeline\n * functions and will not be added to the index.\n *\n * Multiple tokens can be returned by returning an array of tokens. Each token will be passed\n * to any downstream pipeline functions and all will returned tokens will be added to the index.\n *\n * Any number of pipeline functions may be chained together using a lunr.Pipeline.\n *\n * @interface lunr.PipelineFunction\n * @param {lunr.Token} token - A token from the document being processed.\n * @param {number} i - The index of this token in the complete list of tokens for this document/field.\n * @param {lunr.Token[]} tokens - All tokens for this document/field.\n * @returns {(?lunr.Token|lunr.Token[])}\n */\n\n/**\n * Register a function with the pipeline.\n *\n * Functions that are used in the pipeline should be registered if the pipeline\n * needs to be serialised, or a serialised pipeline needs to be loaded.\n *\n * Registering a function does not add it to a pipeline, functions must still be\n * added to instances of the pipeline for them to be used when running a pipeline.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @param {String} label - The label to register this function with\n */\nlunr.Pipeline.registerFunction = function (fn, label) {\n if (label in this.registeredFunctions) {\n lunr.utils.warn('Overwriting existing registered function: ' + label)\n }\n\n fn.label = label\n lunr.Pipeline.registeredFunctions[fn.label] = fn\n}\n\n/**\n * Warns if the function is not registered as a Pipeline function.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @private\n */\nlunr.Pipeline.warnIfFunctionNotRegistered = function (fn) {\n var isRegistered = fn.label && (fn.label in this.registeredFunctions)\n\n if (!isRegistered) {\n lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\\n', fn)\n }\n}\n\n/**\n * Loads a previously serialised pipeline.\n *\n * All functions to be loaded must already be registered with lunr.Pipeline.\n * If any function from the serialised data has not been registered then an\n * error will be thrown.\n *\n * @param {Object} serialised - The serialised pipeline to load.\n * @returns {lunr.Pipeline}\n */\nlunr.Pipeline.load = function (serialised) {\n var pipeline = new lunr.Pipeline\n\n serialised.forEach(function (fnName) {\n var fn = lunr.Pipeline.registeredFunctions[fnName]\n\n if (fn) {\n pipeline.add(fn)\n } else {\n throw new Error('Cannot load unregistered function: ' + fnName)\n }\n })\n\n return pipeline\n}\n\n/**\n * Adds new functions to the end of the pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction[]} functions - Any number of functions to add to the pipeline.\n */\nlunr.Pipeline.prototype.add = function () {\n var fns = Array.prototype.slice.call(arguments)\n\n fns.forEach(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n this._stack.push(fn)\n }, this)\n}\n\n/**\n * Adds a single function after a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.after = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n pos = pos + 1\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Adds a single function before a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.before = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Removes a function from the pipeline.\n *\n * @param {lunr.PipelineFunction} fn The function to remove from the pipeline.\n */\nlunr.Pipeline.prototype.remove = function (fn) {\n var pos = this._stack.indexOf(fn)\n if (pos == -1) {\n return\n }\n\n this._stack.splice(pos, 1)\n}\n\n/**\n * Runs the current list of functions that make up the pipeline against the\n * passed tokens.\n *\n * @param {Array} tokens The tokens to run through the pipeline.\n * @returns {Array}\n */\nlunr.Pipeline.prototype.run = function (tokens) {\n var stackLength = this._stack.length\n\n for (var i = 0; i < stackLength; i++) {\n var fn = this._stack[i]\n var memo = []\n\n for (var j = 0; j < tokens.length; j++) {\n var result = fn(tokens[j], j, tokens)\n\n if (result === null || result === void 0 || result === '') continue\n\n if (Array.isArray(result)) {\n for (var k = 0; k < result.length; k++) {\n memo.push(result[k])\n }\n } else {\n memo.push(result)\n }\n }\n\n tokens = memo\n }\n\n return tokens\n}\n\n/**\n * Convenience method for passing a string through a pipeline and getting\n * strings out. This method takes care of wrapping the passed string in a\n * token and mapping the resulting tokens back to strings.\n *\n * @param {string} str - The string to pass through the pipeline.\n * @param {?object} metadata - Optional metadata to associate with the token\n * passed to the pipeline.\n * @returns {string[]}\n */\nlunr.Pipeline.prototype.runString = function (str, metadata) {\n var token = new lunr.Token (str, metadata)\n\n return this.run([token]).map(function (t) {\n return t.toString()\n })\n}\n\n/**\n * Resets the pipeline by removing any existing processors.\n *\n */\nlunr.Pipeline.prototype.reset = function () {\n this._stack = []\n}\n\n/**\n * Returns a representation of the pipeline ready for serialisation.\n *\n * Logs a warning if the function has not been registered.\n *\n * @returns {Array}\n */\nlunr.Pipeline.prototype.toJSON = function () {\n return this._stack.map(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n\n return fn.label\n })\n}\n/*!\n * lunr.Vector\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A vector is used to construct the vector space of documents and queries. These\n * vectors support operations to determine the similarity between two documents or\n * a document and a query.\n *\n * Normally no parameters are required for initializing a vector, but in the case of\n * loading a previously dumped vector the raw elements can be provided to the constructor.\n *\n * For performance reasons vectors are implemented with a flat array, where an elements\n * index is immediately followed by its value. E.g. [index, value, index, value]. This\n * allows the underlying array to be as sparse as possible and still offer decent\n * performance when being used for vector calculations.\n *\n * @constructor\n * @param {Number[]} [elements] - The flat list of element index and element value pairs.\n */\nlunr.Vector = function (elements) {\n this._magnitude = 0\n this.elements = elements || []\n}\n\n\n/**\n * Calculates the position within the vector to insert a given index.\n *\n * This is used internally by insert and upsert. If there are duplicate indexes then\n * the position is returned as if the value for that index were to be updated, but it\n * is the callers responsibility to check whether there is a duplicate at that index\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @returns {Number}\n */\nlunr.Vector.prototype.positionForIndex = function (index) {\n // For an empty vector the tuple can be inserted at the beginning\n if (this.elements.length == 0) {\n return 0\n }\n\n var start = 0,\n end = this.elements.length / 2,\n sliceLength = end - start,\n pivotPoint = Math.floor(sliceLength / 2),\n pivotIndex = this.elements[pivotPoint * 2]\n\n while (sliceLength > 1) {\n if (pivotIndex < index) {\n start = pivotPoint\n }\n\n if (pivotIndex > index) {\n end = pivotPoint\n }\n\n if (pivotIndex == index) {\n break\n }\n\n sliceLength = end - start\n pivotPoint = start + Math.floor(sliceLength / 2)\n pivotIndex = this.elements[pivotPoint * 2]\n }\n\n if (pivotIndex == index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex > index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex < index) {\n return (pivotPoint + 1) * 2\n }\n}\n\n/**\n * Inserts an element at an index within the vector.\n *\n * Does not allow duplicates, will throw an error if there is already an entry\n * for this index.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n */\nlunr.Vector.prototype.insert = function (insertIdx, val) {\n this.upsert(insertIdx, val, function () {\n throw \"duplicate index\"\n })\n}\n\n/**\n * Inserts or updates an existing index within the vector.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n * @param {function} fn - A function that is called for updates, the existing value and the\n * requested value are passed as arguments\n */\nlunr.Vector.prototype.upsert = function (insertIdx, val, fn) {\n this._magnitude = 0\n var position = this.positionForIndex(insertIdx)\n\n if (this.elements[position] == insertIdx) {\n this.elements[position + 1] = fn(this.elements[position + 1], val)\n } else {\n this.elements.splice(position, 0, insertIdx, val)\n }\n}\n\n/**\n * Calculates the magnitude of this vector.\n *\n * @returns {Number}\n */\nlunr.Vector.prototype.magnitude = function () {\n if (this._magnitude) return this._magnitude\n\n var sumOfSquares = 0,\n elementsLength = this.elements.length\n\n for (var i = 1; i < elementsLength; i += 2) {\n var val = this.elements[i]\n sumOfSquares += val * val\n }\n\n return this._magnitude = Math.sqrt(sumOfSquares)\n}\n\n/**\n * Calculates the dot product of this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The vector to compute the dot product with.\n * @returns {Number}\n */\nlunr.Vector.prototype.dot = function (otherVector) {\n var dotProduct = 0,\n a = this.elements, b = otherVector.elements,\n aLen = a.length, bLen = b.length,\n aVal = 0, bVal = 0,\n i = 0, j = 0\n\n while (i < aLen && j < bLen) {\n aVal = a[i], bVal = b[j]\n if (aVal < bVal) {\n i += 2\n } else if (aVal > bVal) {\n j += 2\n } else if (aVal == bVal) {\n dotProduct += a[i + 1] * b[j + 1]\n i += 2\n j += 2\n }\n }\n\n return dotProduct\n}\n\n/**\n * Calculates the similarity between this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The other vector to calculate the\n * similarity with.\n * @returns {Number}\n */\nlunr.Vector.prototype.similarity = function (otherVector) {\n return this.dot(otherVector) / this.magnitude() || 0\n}\n\n/**\n * Converts the vector to an array of the elements within the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toArray = function () {\n var output = new Array (this.elements.length / 2)\n\n for (var i = 1, j = 0; i < this.elements.length; i += 2, j++) {\n output[j] = this.elements[i]\n }\n\n return output\n}\n\n/**\n * A JSON serializable representation of the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toJSON = function () {\n return this.elements\n}\n/* eslint-disable */\n/*!\n * lunr.stemmer\n * Copyright (C) 2019 Oliver Nightingale\n * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt\n */\n\n/**\n * lunr.stemmer is an english language stemmer, this is a JavaScript\n * implementation of the PorterStemmer taken from http://tartarus.org/~martin\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token - The string to stem\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n * @function\n */\nlunr.stemmer = (function(){\n var step2list = {\n \"ational\" : \"ate\",\n \"tional\" : \"tion\",\n \"enci\" : \"ence\",\n \"anci\" : \"ance\",\n \"izer\" : \"ize\",\n \"bli\" : \"ble\",\n \"alli\" : \"al\",\n \"entli\" : \"ent\",\n \"eli\" : \"e\",\n \"ousli\" : \"ous\",\n \"ization\" : \"ize\",\n \"ation\" : \"ate\",\n \"ator\" : \"ate\",\n \"alism\" : \"al\",\n \"iveness\" : \"ive\",\n \"fulness\" : \"ful\",\n \"ousness\" : \"ous\",\n \"aliti\" : \"al\",\n \"iviti\" : \"ive\",\n \"biliti\" : \"ble\",\n \"logi\" : \"log\"\n },\n\n step3list = {\n \"icate\" : \"ic\",\n \"ative\" : \"\",\n \"alize\" : \"al\",\n \"iciti\" : \"ic\",\n \"ical\" : \"ic\",\n \"ful\" : \"\",\n \"ness\" : \"\"\n },\n\n c = \"[^aeiou]\", // consonant\n v = \"[aeiouy]\", // vowel\n C = c + \"[^aeiouy]*\", // consonant sequence\n V = v + \"[aeiou]*\", // vowel sequence\n\n mgr0 = \"^(\" + C + \")?\" + V + C, // [C]VC... is m>0\n meq1 = \"^(\" + C + \")?\" + V + C + \"(\" + V + \")?$\", // [C]VC[V] is m=1\n mgr1 = \"^(\" + C + \")?\" + V + C + V + C, // [C]VCVC... is m>1\n s_v = \"^(\" + C + \")?\" + v; // vowel in stem\n\n var re_mgr0 = new RegExp(mgr0);\n var re_mgr1 = new RegExp(mgr1);\n var re_meq1 = new RegExp(meq1);\n var re_s_v = new RegExp(s_v);\n\n var re_1a = /^(.+?)(ss|i)es$/;\n var re2_1a = /^(.+?)([^s])s$/;\n var re_1b = /^(.+?)eed$/;\n var re2_1b = /^(.+?)(ed|ing)$/;\n var re_1b_2 = /.$/;\n var re2_1b_2 = /(at|bl|iz)$/;\n var re3_1b_2 = new RegExp(\"([^aeiouylsz])\\\\1$\");\n var re4_1b_2 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var re_1c = /^(.+?[^aeiou])y$/;\n var re_2 = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;\n\n var re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;\n\n var re_4 = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;\n var re2_4 = /^(.+?)(s|t)(ion)$/;\n\n var re_5 = /^(.+?)e$/;\n var re_5_1 = /ll$/;\n var re3_5 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var porterStemmer = function porterStemmer(w) {\n var stem,\n suffix,\n firstch,\n re,\n re2,\n re3,\n re4;\n\n if (w.length < 3) { return w; }\n\n firstch = w.substr(0,1);\n if (firstch == \"y\") {\n w = firstch.toUpperCase() + w.substr(1);\n }\n\n // Step 1a\n re = re_1a\n re2 = re2_1a;\n\n if (re.test(w)) { w = w.replace(re,\"$1$2\"); }\n else if (re2.test(w)) { w = w.replace(re2,\"$1$2\"); }\n\n // Step 1b\n re = re_1b;\n re2 = re2_1b;\n if (re.test(w)) {\n var fp = re.exec(w);\n re = re_mgr0;\n if (re.test(fp[1])) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1];\n re2 = re_s_v;\n if (re2.test(stem)) {\n w = stem;\n re2 = re2_1b_2;\n re3 = re3_1b_2;\n re4 = re4_1b_2;\n if (re2.test(w)) { w = w + \"e\"; }\n else if (re3.test(w)) { re = re_1b_2; w = w.replace(re,\"\"); }\n else if (re4.test(w)) { w = w + \"e\"; }\n }\n }\n\n // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say)\n re = re_1c;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n w = stem + \"i\";\n }\n\n // Step 2\n re = re_2;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step2list[suffix];\n }\n }\n\n // Step 3\n re = re_3;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step3list[suffix];\n }\n }\n\n // Step 4\n re = re_4;\n re2 = re2_4;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n if (re.test(stem)) {\n w = stem;\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1] + fp[2];\n re2 = re_mgr1;\n if (re2.test(stem)) {\n w = stem;\n }\n }\n\n // Step 5\n re = re_5;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n re2 = re_meq1;\n re3 = re3_5;\n if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {\n w = stem;\n }\n }\n\n re = re_5_1;\n re2 = re_mgr1;\n if (re.test(w) && re2.test(w)) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n\n // and turn initial Y back to y\n\n if (firstch == \"y\") {\n w = firstch.toLowerCase() + w.substr(1);\n }\n\n return w;\n };\n\n return function (token) {\n return token.update(porterStemmer);\n }\n})();\n\nlunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer')\n/*!\n * lunr.stopWordFilter\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.generateStopWordFilter builds a stopWordFilter function from the provided\n * list of stop words.\n *\n * The built in lunr.stopWordFilter is built using this generator and can be used\n * to generate custom stopWordFilters for applications or non English languages.\n *\n * @function\n * @param {Array} token The token to pass through the filter\n * @returns {lunr.PipelineFunction}\n * @see lunr.Pipeline\n * @see lunr.stopWordFilter\n */\nlunr.generateStopWordFilter = function (stopWords) {\n var words = stopWords.reduce(function (memo, stopWord) {\n memo[stopWord] = stopWord\n return memo\n }, {})\n\n return function (token) {\n if (token && words[token.toString()] !== token.toString()) return token\n }\n}\n\n/**\n * lunr.stopWordFilter is an English language stop word list filter, any words\n * contained in the list will not be passed through the filter.\n *\n * This is intended to be used in the Pipeline. If the token does not pass the\n * filter then undefined will be returned.\n *\n * @function\n * @implements {lunr.PipelineFunction}\n * @params {lunr.Token} token - A token to check for being a stop word.\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n */\nlunr.stopWordFilter = lunr.generateStopWordFilter([\n 'a',\n 'able',\n 'about',\n 'across',\n 'after',\n 'all',\n 'almost',\n 'also',\n 'am',\n 'among',\n 'an',\n 'and',\n 'any',\n 'are',\n 'as',\n 'at',\n 'be',\n 'because',\n 'been',\n 'but',\n 'by',\n 'can',\n 'cannot',\n 'could',\n 'dear',\n 'did',\n 'do',\n 'does',\n 'either',\n 'else',\n 'ever',\n 'every',\n 'for',\n 'from',\n 'get',\n 'got',\n 'had',\n 'has',\n 'have',\n 'he',\n 'her',\n 'hers',\n 'him',\n 'his',\n 'how',\n 'however',\n 'i',\n 'if',\n 'in',\n 'into',\n 'is',\n 'it',\n 'its',\n 'just',\n 'least',\n 'let',\n 'like',\n 'likely',\n 'may',\n 'me',\n 'might',\n 'most',\n 'must',\n 'my',\n 'neither',\n 'no',\n 'nor',\n 'not',\n 'of',\n 'off',\n 'often',\n 'on',\n 'only',\n 'or',\n 'other',\n 'our',\n 'own',\n 'rather',\n 'said',\n 'say',\n 'says',\n 'she',\n 'should',\n 'since',\n 'so',\n 'some',\n 'than',\n 'that',\n 'the',\n 'their',\n 'them',\n 'then',\n 'there',\n 'these',\n 'they',\n 'this',\n 'tis',\n 'to',\n 'too',\n 'twas',\n 'us',\n 'wants',\n 'was',\n 'we',\n 'were',\n 'what',\n 'when',\n 'where',\n 'which',\n 'while',\n 'who',\n 'whom',\n 'why',\n 'will',\n 'with',\n 'would',\n 'yet',\n 'you',\n 'your'\n])\n\nlunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter')\n/*!\n * lunr.trimmer\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.trimmer is a pipeline function for trimming non word\n * characters from the beginning and end of tokens before they\n * enter the index.\n *\n * This implementation may not work correctly for non latin\n * characters and should either be removed or adapted for use\n * with languages with non-latin characters.\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token The token to pass through the filter\n * @returns {lunr.Token}\n * @see lunr.Pipeline\n */\nlunr.trimmer = function (token) {\n return token.update(function (s) {\n return s.replace(/^\\W+/, '').replace(/\\W+$/, '')\n })\n}\n\nlunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer')\n/*!\n * lunr.TokenSet\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A token set is used to store the unique list of all tokens\n * within an index. Token sets are also used to represent an\n * incoming query to the index, this query token set and index\n * token set are then intersected to find which tokens to look\n * up in the inverted index.\n *\n * A token set can hold multiple tokens, as in the case of the\n * index token set, or it can hold a single token as in the\n * case of a simple query token set.\n *\n * Additionally token sets are used to perform wildcard matching.\n * Leading, contained and trailing wildcards are supported, and\n * from this edit distance matching can also be provided.\n *\n * Token sets are implemented as a minimal finite state automata,\n * where both common prefixes and suffixes are shared between tokens.\n * This helps to reduce the space used for storing the token set.\n *\n * @constructor\n */\nlunr.TokenSet = function () {\n this.final = false\n this.edges = {}\n this.id = lunr.TokenSet._nextId\n lunr.TokenSet._nextId += 1\n}\n\n/**\n * Keeps track of the next, auto increment, identifier to assign\n * to a new tokenSet.\n *\n * TokenSets require a unique identifier to be correctly minimised.\n *\n * @private\n */\nlunr.TokenSet._nextId = 1\n\n/**\n * Creates a TokenSet instance from the given sorted array of words.\n *\n * @param {String[]} arr - A sorted array of strings to create the set from.\n * @returns {lunr.TokenSet}\n * @throws Will throw an error if the input array is not sorted.\n */\nlunr.TokenSet.fromArray = function (arr) {\n var builder = new lunr.TokenSet.Builder\n\n for (var i = 0, len = arr.length; i < len; i++) {\n builder.insert(arr[i])\n }\n\n builder.finish()\n return builder.root\n}\n\n/**\n * Creates a token set from a query clause.\n *\n * @private\n * @param {Object} clause - A single clause from lunr.Query.\n * @param {string} clause.term - The query clause term.\n * @param {number} [clause.editDistance] - The optional edit distance for the term.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromClause = function (clause) {\n if ('editDistance' in clause) {\n return lunr.TokenSet.fromFuzzyString(clause.term, clause.editDistance)\n } else {\n return lunr.TokenSet.fromString(clause.term)\n }\n}\n\n/**\n * Creates a token set representing a single string with a specified\n * edit distance.\n *\n * Insertions, deletions, substitutions and transpositions are each\n * treated as an edit distance of 1.\n *\n * Increasing the allowed edit distance will have a dramatic impact\n * on the performance of both creating and intersecting these TokenSets.\n * It is advised to keep the edit distance less than 3.\n *\n * @param {string} str - The string to create the token set from.\n * @param {number} editDistance - The allowed edit distance to match.\n * @returns {lunr.Vector}\n */\nlunr.TokenSet.fromFuzzyString = function (str, editDistance) {\n var root = new lunr.TokenSet\n\n var stack = [{\n node: root,\n editsRemaining: editDistance,\n str: str\n }]\n\n while (stack.length) {\n var frame = stack.pop()\n\n // no edit\n if (frame.str.length > 0) {\n var char = frame.str.charAt(0),\n noEditNode\n\n if (char in frame.node.edges) {\n noEditNode = frame.node.edges[char]\n } else {\n noEditNode = new lunr.TokenSet\n frame.node.edges[char] = noEditNode\n }\n\n if (frame.str.length == 1) {\n noEditNode.final = true\n }\n\n stack.push({\n node: noEditNode,\n editsRemaining: frame.editsRemaining,\n str: frame.str.slice(1)\n })\n }\n\n if (frame.editsRemaining == 0) {\n continue\n }\n\n // insertion\n if (\"*\" in frame.node.edges) {\n var insertionNode = frame.node.edges[\"*\"]\n } else {\n var insertionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = insertionNode\n }\n\n if (frame.str.length == 0) {\n insertionNode.final = true\n }\n\n stack.push({\n node: insertionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str\n })\n\n // deletion\n // can only do a deletion if we have enough edits remaining\n // and if there are characters left to delete in the string\n if (frame.str.length > 1) {\n stack.push({\n node: frame.node,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // deletion\n // just removing the last character from the str\n if (frame.str.length == 1) {\n frame.node.final = true\n }\n\n // substitution\n // can only do a substitution if we have enough edits remaining\n // and if there are characters left to substitute\n if (frame.str.length >= 1) {\n if (\"*\" in frame.node.edges) {\n var substitutionNode = frame.node.edges[\"*\"]\n } else {\n var substitutionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = substitutionNode\n }\n\n if (frame.str.length == 1) {\n substitutionNode.final = true\n }\n\n stack.push({\n node: substitutionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // transposition\n // can only do a transposition if there are edits remaining\n // and there are enough characters to transpose\n if (frame.str.length > 1) {\n var charA = frame.str.charAt(0),\n charB = frame.str.charAt(1),\n transposeNode\n\n if (charB in frame.node.edges) {\n transposeNode = frame.node.edges[charB]\n } else {\n transposeNode = new lunr.TokenSet\n frame.node.edges[charB] = transposeNode\n }\n\n if (frame.str.length == 1) {\n transposeNode.final = true\n }\n\n stack.push({\n node: transposeNode,\n editsRemaining: frame.editsRemaining - 1,\n str: charA + frame.str.slice(2)\n })\n }\n }\n\n return root\n}\n\n/**\n * Creates a TokenSet from a string.\n *\n * The string may contain one or more wildcard characters (*)\n * that will allow wildcard matching when intersecting with\n * another TokenSet.\n *\n * @param {string} str - The string to create a TokenSet from.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromString = function (str) {\n var node = new lunr.TokenSet,\n root = node\n\n /*\n * Iterates through all characters within the passed string\n * appending a node for each character.\n *\n * When a wildcard character is found then a self\n * referencing edge is introduced to continually match\n * any number of any characters.\n */\n for (var i = 0, len = str.length; i < len; i++) {\n var char = str[i],\n final = (i == len - 1)\n\n if (char == \"*\") {\n node.edges[char] = node\n node.final = final\n\n } else {\n var next = new lunr.TokenSet\n next.final = final\n\n node.edges[char] = next\n node = next\n }\n }\n\n return root\n}\n\n/**\n * Converts this TokenSet into an array of strings\n * contained within the TokenSet.\n *\n * This is not intended to be used on a TokenSet that\n * contains wildcards, in these cases the results are\n * undefined and are likely to cause an infinite loop.\n *\n * @returns {string[]}\n */\nlunr.TokenSet.prototype.toArray = function () {\n var words = []\n\n var stack = [{\n prefix: \"\",\n node: this\n }]\n\n while (stack.length) {\n var frame = stack.pop(),\n edges = Object.keys(frame.node.edges),\n len = edges.length\n\n if (frame.node.final) {\n /* In Safari, at this point the prefix is sometimes corrupted, see:\n * https://github.com/olivernn/lunr.js/issues/279 Calling any\n * String.prototype method forces Safari to \"cast\" this string to what\n * it's supposed to be, fixing the bug. */\n frame.prefix.charAt(0)\n words.push(frame.prefix)\n }\n\n for (var i = 0; i < len; i++) {\n var edge = edges[i]\n\n stack.push({\n prefix: frame.prefix.concat(edge),\n node: frame.node.edges[edge]\n })\n }\n }\n\n return words\n}\n\n/**\n * Generates a string representation of a TokenSet.\n *\n * This is intended to allow TokenSets to be used as keys\n * in objects, largely to aid the construction and minimisation\n * of a TokenSet. As such it is not designed to be a human\n * friendly representation of the TokenSet.\n *\n * @returns {string}\n */\nlunr.TokenSet.prototype.toString = function () {\n // NOTE: Using Object.keys here as this.edges is very likely\n // to enter 'hash-mode' with many keys being added\n //\n // avoiding a for-in loop here as it leads to the function\n // being de-optimised (at least in V8). From some simple\n // benchmarks the performance is comparable, but allowing\n // V8 to optimize may mean easy performance wins in the future.\n\n if (this._str) {\n return this._str\n }\n\n var str = this.final ? '1' : '0',\n labels = Object.keys(this.edges).sort(),\n len = labels.length\n\n for (var i = 0; i < len; i++) {\n var label = labels[i],\n node = this.edges[label]\n\n str = str + label + node.id\n }\n\n return str\n}\n\n/**\n * Returns a new TokenSet that is the intersection of\n * this TokenSet and the passed TokenSet.\n *\n * This intersection will take into account any wildcards\n * contained within the TokenSet.\n *\n * @param {lunr.TokenSet} b - An other TokenSet to intersect with.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.prototype.intersect = function (b) {\n var output = new lunr.TokenSet,\n frame = undefined\n\n var stack = [{\n qNode: b,\n output: output,\n node: this\n }]\n\n while (stack.length) {\n frame = stack.pop()\n\n // NOTE: As with the #toString method, we are using\n // Object.keys and a for loop instead of a for-in loop\n // as both of these objects enter 'hash' mode, causing\n // the function to be de-optimised in V8\n var qEdges = Object.keys(frame.qNode.edges),\n qLen = qEdges.length,\n nEdges = Object.keys(frame.node.edges),\n nLen = nEdges.length\n\n for (var q = 0; q < qLen; q++) {\n var qEdge = qEdges[q]\n\n for (var n = 0; n < nLen; n++) {\n var nEdge = nEdges[n]\n\n if (nEdge == qEdge || qEdge == '*') {\n var node = frame.node.edges[nEdge],\n qNode = frame.qNode.edges[qEdge],\n final = node.final && qNode.final,\n next = undefined\n\n if (nEdge in frame.output.edges) {\n // an edge already exists for this character\n // no need to create a new node, just set the finality\n // bit unless this node is already final\n next = frame.output.edges[nEdge]\n next.final = next.final || final\n\n } else {\n // no edge exists yet, must create one\n // set the finality bit and insert it\n // into the output\n next = new lunr.TokenSet\n next.final = final\n frame.output.edges[nEdge] = next\n }\n\n stack.push({\n qNode: qNode,\n output: next,\n node: node\n })\n }\n }\n }\n }\n\n return output\n}\nlunr.TokenSet.Builder = function () {\n this.previousWord = \"\"\n this.root = new lunr.TokenSet\n this.uncheckedNodes = []\n this.minimizedNodes = {}\n}\n\nlunr.TokenSet.Builder.prototype.insert = function (word) {\n var node,\n commonPrefix = 0\n\n if (word < this.previousWord) {\n throw new Error (\"Out of order word insertion\")\n }\n\n for (var i = 0; i < word.length && i < this.previousWord.length; i++) {\n if (word[i] != this.previousWord[i]) break\n commonPrefix++\n }\n\n this.minimize(commonPrefix)\n\n if (this.uncheckedNodes.length == 0) {\n node = this.root\n } else {\n node = this.uncheckedNodes[this.uncheckedNodes.length - 1].child\n }\n\n for (var i = commonPrefix; i < word.length; i++) {\n var nextNode = new lunr.TokenSet,\n char = word[i]\n\n node.edges[char] = nextNode\n\n this.uncheckedNodes.push({\n parent: node,\n char: char,\n child: nextNode\n })\n\n node = nextNode\n }\n\n node.final = true\n this.previousWord = word\n}\n\nlunr.TokenSet.Builder.prototype.finish = function () {\n this.minimize(0)\n}\n\nlunr.TokenSet.Builder.prototype.minimize = function (downTo) {\n for (var i = this.uncheckedNodes.length - 1; i >= downTo; i--) {\n var node = this.uncheckedNodes[i],\n childKey = node.child.toString()\n\n if (childKey in this.minimizedNodes) {\n node.parent.edges[node.char] = this.minimizedNodes[childKey]\n } else {\n // Cache the key for this node since\n // we know it can't change anymore\n node.child._str = childKey\n\n this.minimizedNodes[childKey] = node.child\n }\n\n this.uncheckedNodes.pop()\n }\n}\n/*!\n * lunr.Index\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * An index contains the built index of all documents and provides a query interface\n * to the index.\n *\n * Usually instances of lunr.Index will not be created using this constructor, instead\n * lunr.Builder should be used to construct new indexes, or lunr.Index.load should be\n * used to load previously built and serialized indexes.\n *\n * @constructor\n * @param {Object} attrs - The attributes of the built search index.\n * @param {Object} attrs.invertedIndex - An index of term/field to document reference.\n * @param {Object} attrs.fieldVectors - Field vectors\n * @param {lunr.TokenSet} attrs.tokenSet - An set of all corpus tokens.\n * @param {string[]} attrs.fields - The names of indexed document fields.\n * @param {lunr.Pipeline} attrs.pipeline - The pipeline to use for search terms.\n */\nlunr.Index = function (attrs) {\n this.invertedIndex = attrs.invertedIndex\n this.fieldVectors = attrs.fieldVectors\n this.tokenSet = attrs.tokenSet\n this.fields = attrs.fields\n this.pipeline = attrs.pipeline\n}\n\n/**\n * A result contains details of a document matching a search query.\n * @typedef {Object} lunr.Index~Result\n * @property {string} ref - The reference of the document this result represents.\n * @property {number} score - A number between 0 and 1 representing how similar this document is to the query.\n * @property {lunr.MatchData} matchData - Contains metadata about this match including which term(s) caused the match.\n */\n\n/**\n * Although lunr provides the ability to create queries using lunr.Query, it also provides a simple\n * query language which itself is parsed into an instance of lunr.Query.\n *\n * For programmatically building queries it is advised to directly use lunr.Query, the query language\n * is best used for human entered text rather than program generated text.\n *\n * At its simplest queries can just be a single term, e.g. `hello`, multiple terms are also supported\n * and will be combined with OR, e.g `hello world` will match documents that contain either 'hello'\n * or 'world', though those that contain both will rank higher in the results.\n *\n * Wildcards can be included in terms to match one or more unspecified characters, these wildcards can\n * be inserted anywhere within the term, and more than one wildcard can exist in a single term. Adding\n * wildcards will increase the number of documents that will be found but can also have a negative\n * impact on query performance, especially with wildcards at the beginning of a term.\n *\n * Terms can be restricted to specific fields, e.g. `title:hello`, only documents with the term\n * hello in the title field will match this query. Using a field not present in the index will lead\n * to an error being thrown.\n *\n * Modifiers can also be added to terms, lunr supports edit distance and boost modifiers on terms. A term\n * boost will make documents matching that term score higher, e.g. `foo^5`. Edit distance is also supported\n * to provide fuzzy matching, e.g. 'hello~2' will match documents with hello with an edit distance of 2.\n * Avoid large values for edit distance to improve query performance.\n *\n * Each term also supports a presence modifier. By default a term's presence in document is optional, however\n * this can be changed to either required or prohibited. For a term's presence to be required in a document the\n * term should be prefixed with a '+', e.g. `+foo bar` is a search for documents that must contain 'foo' and\n * optionally contain 'bar'. Conversely a leading '-' sets the terms presence to prohibited, i.e. it must not\n * appear in a document, e.g. `-foo bar` is a search for documents that do not contain 'foo' but may contain 'bar'.\n *\n * To escape special characters the backslash character '\\' can be used, this allows searches to include\n * characters that would normally be considered modifiers, e.g. `foo\\~2` will search for a term \"foo~2\" instead\n * of attempting to apply a boost of 2 to the search term \"foo\".\n *\n * @typedef {string} lunr.Index~QueryString\n * @example Simple single term query\n * hello\n * @example Multiple term query\n * hello world\n * @example term scoped to a field\n * title:hello\n * @example term with a boost of 10\n * hello^10\n * @example term with an edit distance of 2\n * hello~2\n * @example terms with presence modifiers\n * -foo +bar baz\n */\n\n/**\n * Performs a search against the index using lunr query syntax.\n *\n * Results will be returned sorted by their score, the most relevant results\n * will be returned first. For details on how the score is calculated, please see\n * the {@link https://lunrjs.com/guides/searching.html#scoring|guide}.\n *\n * For more programmatic querying use lunr.Index#query.\n *\n * @param {lunr.Index~QueryString} queryString - A string containing a lunr query.\n * @throws {lunr.QueryParseError} If the passed query string cannot be parsed.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.search = function (queryString) {\n return this.query(function (query) {\n var parser = new lunr.QueryParser(queryString, query)\n parser.parse()\n })\n}\n\n/**\n * A query builder callback provides a query object to be used to express\n * the query to perform on the index.\n *\n * @callback lunr.Index~queryBuilder\n * @param {lunr.Query} query - The query object to build up.\n * @this lunr.Query\n */\n\n/**\n * Performs a query against the index using the yielded lunr.Query object.\n *\n * If performing programmatic queries against the index, this method is preferred\n * over lunr.Index#search so as to avoid the additional query parsing overhead.\n *\n * A query object is yielded to the supplied function which should be used to\n * express the query to be run against the index.\n *\n * Note that although this function takes a callback parameter it is _not_ an\n * asynchronous operation, the callback is just yielded a query object to be\n * customized.\n *\n * @param {lunr.Index~queryBuilder} fn - A function that is used to build the query.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.query = function (fn) {\n // for each query clause\n // * process terms\n // * expand terms from token set\n // * find matching documents and metadata\n // * get document vectors\n // * score documents\n\n var query = new lunr.Query(this.fields),\n matchingFields = Object.create(null),\n queryVectors = Object.create(null),\n termFieldCache = Object.create(null),\n requiredMatches = Object.create(null),\n prohibitedMatches = Object.create(null)\n\n /*\n * To support field level boosts a query vector is created per\n * field. An empty vector is eagerly created to support negated\n * queries.\n */\n for (var i = 0; i < this.fields.length; i++) {\n queryVectors[this.fields[i]] = new lunr.Vector\n }\n\n fn.call(query, query)\n\n for (var i = 0; i < query.clauses.length; i++) {\n /*\n * Unless the pipeline has been disabled for this term, which is\n * the case for terms with wildcards, we need to pass the clause\n * term through the search pipeline. A pipeline returns an array\n * of processed terms. Pipeline functions may expand the passed\n * term, which means we may end up performing multiple index lookups\n * for a single query term.\n */\n var clause = query.clauses[i],\n terms = null,\n clauseMatches = lunr.Set.complete\n\n if (clause.usePipeline) {\n terms = this.pipeline.runString(clause.term, {\n fields: clause.fields\n })\n } else {\n terms = [clause.term]\n }\n\n for (var m = 0; m < terms.length; m++) {\n var term = terms[m]\n\n /*\n * Each term returned from the pipeline needs to use the same query\n * clause object, e.g. the same boost and or edit distance. The\n * simplest way to do this is to re-use the clause object but mutate\n * its term property.\n */\n clause.term = term\n\n /*\n * From the term in the clause we create a token set which will then\n * be used to intersect the indexes token set to get a list of terms\n * to lookup in the inverted index\n */\n var termTokenSet = lunr.TokenSet.fromClause(clause),\n expandedTerms = this.tokenSet.intersect(termTokenSet).toArray()\n\n /*\n * If a term marked as required does not exist in the tokenSet it is\n * impossible for the search to return any matches. We set all the field\n * scoped required matches set to empty and stop examining any further\n * clauses.\n */\n if (expandedTerms.length === 0 && clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = lunr.Set.empty\n }\n\n break\n }\n\n for (var j = 0; j < expandedTerms.length; j++) {\n /*\n * For each term get the posting and termIndex, this is required for\n * building the query vector.\n */\n var expandedTerm = expandedTerms[j],\n posting = this.invertedIndex[expandedTerm],\n termIndex = posting._index\n\n for (var k = 0; k < clause.fields.length; k++) {\n /*\n * For each field that this query term is scoped by (by default\n * all fields are in scope) we need to get all the document refs\n * that have this term in that field.\n *\n * The posting is the entry in the invertedIndex for the matching\n * term from above.\n */\n var field = clause.fields[k],\n fieldPosting = posting[field],\n matchingDocumentRefs = Object.keys(fieldPosting),\n termField = expandedTerm + \"/\" + field,\n matchingDocumentsSet = new lunr.Set(matchingDocumentRefs)\n\n /*\n * if the presence of this term is required ensure that the matching\n * documents are added to the set of required matches for this clause.\n *\n */\n if (clause.presence == lunr.Query.presence.REQUIRED) {\n clauseMatches = clauseMatches.union(matchingDocumentsSet)\n\n if (requiredMatches[field] === undefined) {\n requiredMatches[field] = lunr.Set.complete\n }\n }\n\n /*\n * if the presence of this term is prohibited ensure that the matching\n * documents are added to the set of prohibited matches for this field,\n * creating that set if it does not yet exist.\n */\n if (clause.presence == lunr.Query.presence.PROHIBITED) {\n if (prohibitedMatches[field] === undefined) {\n prohibitedMatches[field] = lunr.Set.empty\n }\n\n prohibitedMatches[field] = prohibitedMatches[field].union(matchingDocumentsSet)\n\n /*\n * Prohibited matches should not be part of the query vector used for\n * similarity scoring and no metadata should be extracted so we continue\n * to the next field\n */\n continue\n }\n\n /*\n * The query field vector is populated using the termIndex found for\n * the term and a unit value with the appropriate boost applied.\n * Using upsert because there could already be an entry in the vector\n * for the term we are working with. In that case we just add the scores\n * together.\n */\n queryVectors[field].upsert(termIndex, clause.boost, function (a, b) { return a + b })\n\n /**\n * If we've already seen this term, field combo then we've already collected\n * the matching documents and metadata, no need to go through all that again\n */\n if (termFieldCache[termField]) {\n continue\n }\n\n for (var l = 0; l < matchingDocumentRefs.length; l++) {\n /*\n * All metadata for this term/field/document triple\n * are then extracted and collected into an instance\n * of lunr.MatchData ready to be returned in the query\n * results\n */\n var matchingDocumentRef = matchingDocumentRefs[l],\n matchingFieldRef = new lunr.FieldRef (matchingDocumentRef, field),\n metadata = fieldPosting[matchingDocumentRef],\n fieldMatch\n\n if ((fieldMatch = matchingFields[matchingFieldRef]) === undefined) {\n matchingFields[matchingFieldRef] = new lunr.MatchData (expandedTerm, field, metadata)\n } else {\n fieldMatch.add(expandedTerm, field, metadata)\n }\n\n }\n\n termFieldCache[termField] = true\n }\n }\n }\n\n /**\n * If the presence was required we need to update the requiredMatches field sets.\n * We do this after all fields for the term have collected their matches because\n * the clause terms presence is required in _any_ of the fields not _all_ of the\n * fields.\n */\n if (clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = requiredMatches[field].intersect(clauseMatches)\n }\n }\n }\n\n /**\n * Need to combine the field scoped required and prohibited\n * matching documents into a global set of required and prohibited\n * matches\n */\n var allRequiredMatches = lunr.Set.complete,\n allProhibitedMatches = lunr.Set.empty\n\n for (var i = 0; i < this.fields.length; i++) {\n var field = this.fields[i]\n\n if (requiredMatches[field]) {\n allRequiredMatches = allRequiredMatches.intersect(requiredMatches[field])\n }\n\n if (prohibitedMatches[field]) {\n allProhibitedMatches = allProhibitedMatches.union(prohibitedMatches[field])\n }\n }\n\n var matchingFieldRefs = Object.keys(matchingFields),\n results = [],\n matches = Object.create(null)\n\n /*\n * If the query is negated (contains only prohibited terms)\n * we need to get _all_ fieldRefs currently existing in the\n * index. This is only done when we know that the query is\n * entirely prohibited terms to avoid any cost of getting all\n * fieldRefs unnecessarily.\n *\n * Additionally, blank MatchData must be created to correctly\n * populate the results.\n */\n if (query.isNegated()) {\n matchingFieldRefs = Object.keys(this.fieldVectors)\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n var matchingFieldRef = matchingFieldRefs[i]\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRef)\n matchingFields[matchingFieldRef] = new lunr.MatchData\n }\n }\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n /*\n * Currently we have document fields that match the query, but we\n * need to return documents. The matchData and scores are combined\n * from multiple fields belonging to the same document.\n *\n * Scores are calculated by field, using the query vectors created\n * above, and combined into a final document score using addition.\n */\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRefs[i]),\n docRef = fieldRef.docRef\n\n if (!allRequiredMatches.contains(docRef)) {\n continue\n }\n\n if (allProhibitedMatches.contains(docRef)) {\n continue\n }\n\n var fieldVector = this.fieldVectors[fieldRef],\n score = queryVectors[fieldRef.fieldName].similarity(fieldVector),\n docMatch\n\n if ((docMatch = matches[docRef]) !== undefined) {\n docMatch.score += score\n docMatch.matchData.combine(matchingFields[fieldRef])\n } else {\n var match = {\n ref: docRef,\n score: score,\n matchData: matchingFields[fieldRef]\n }\n matches[docRef] = match\n results.push(match)\n }\n }\n\n /*\n * Sort the results objects by score, highest first.\n */\n return results.sort(function (a, b) {\n return b.score - a.score\n })\n}\n\n/**\n * Prepares the index for JSON serialization.\n *\n * The schema for this JSON blob will be described in a\n * separate JSON schema file.\n *\n * @returns {Object}\n */\nlunr.Index.prototype.toJSON = function () {\n var invertedIndex = Object.keys(this.invertedIndex)\n .sort()\n .map(function (term) {\n return [term, this.invertedIndex[term]]\n }, this)\n\n var fieldVectors = Object.keys(this.fieldVectors)\n .map(function (ref) {\n return [ref, this.fieldVectors[ref].toJSON()]\n }, this)\n\n return {\n version: lunr.version,\n fields: this.fields,\n fieldVectors: fieldVectors,\n invertedIndex: invertedIndex,\n pipeline: this.pipeline.toJSON()\n }\n}\n\n/**\n * Loads a previously serialized lunr.Index\n *\n * @param {Object} serializedIndex - A previously serialized lunr.Index\n * @returns {lunr.Index}\n */\nlunr.Index.load = function (serializedIndex) {\n var attrs = {},\n fieldVectors = {},\n serializedVectors = serializedIndex.fieldVectors,\n invertedIndex = Object.create(null),\n serializedInvertedIndex = serializedIndex.invertedIndex,\n tokenSetBuilder = new lunr.TokenSet.Builder,\n pipeline = lunr.Pipeline.load(serializedIndex.pipeline)\n\n if (serializedIndex.version != lunr.version) {\n lunr.utils.warn(\"Version mismatch when loading serialised index. Current version of lunr '\" + lunr.version + \"' does not match serialized index '\" + serializedIndex.version + \"'\")\n }\n\n for (var i = 0; i < serializedVectors.length; i++) {\n var tuple = serializedVectors[i],\n ref = tuple[0],\n elements = tuple[1]\n\n fieldVectors[ref] = new lunr.Vector(elements)\n }\n\n for (var i = 0; i < serializedInvertedIndex.length; i++) {\n var tuple = serializedInvertedIndex[i],\n term = tuple[0],\n posting = tuple[1]\n\n tokenSetBuilder.insert(term)\n invertedIndex[term] = posting\n }\n\n tokenSetBuilder.finish()\n\n attrs.fields = serializedIndex.fields\n\n attrs.fieldVectors = fieldVectors\n attrs.invertedIndex = invertedIndex\n attrs.tokenSet = tokenSetBuilder.root\n attrs.pipeline = pipeline\n\n return new lunr.Index(attrs)\n}\n/*!\n * lunr.Builder\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.Builder performs indexing on a set of documents and\n * returns instances of lunr.Index ready for querying.\n *\n * All configuration of the index is done via the builder, the\n * fields to index, the document reference, the text processing\n * pipeline and document scoring parameters are all set on the\n * builder before indexing.\n *\n * @constructor\n * @property {string} _ref - Internal reference to the document reference field.\n * @property {string[]} _fields - Internal reference to the document fields to index.\n * @property {object} invertedIndex - The inverted index maps terms to document fields.\n * @property {object} documentTermFrequencies - Keeps track of document term frequencies.\n * @property {object} documentLengths - Keeps track of the length of documents added to the index.\n * @property {lunr.tokenizer} tokenizer - Function for splitting strings into tokens for indexing.\n * @property {lunr.Pipeline} pipeline - The pipeline performs text processing on tokens before indexing.\n * @property {lunr.Pipeline} searchPipeline - A pipeline for processing search terms before querying the index.\n * @property {number} documentCount - Keeps track of the total number of documents indexed.\n * @property {number} _b - A parameter to control field length normalization, setting this to 0 disabled normalization, 1 fully normalizes field lengths, the default value is 0.75.\n * @property {number} _k1 - A parameter to control how quickly an increase in term frequency results in term frequency saturation, the default value is 1.2.\n * @property {number} termIndex - A counter incremented for each unique term, used to identify a terms position in the vector space.\n * @property {array} metadataWhitelist - A list of metadata keys that have been whitelisted for entry in the index.\n */\nlunr.Builder = function () {\n this._ref = \"id\"\n this._fields = Object.create(null)\n this._documents = Object.create(null)\n this.invertedIndex = Object.create(null)\n this.fieldTermFrequencies = {}\n this.fieldLengths = {}\n this.tokenizer = lunr.tokenizer\n this.pipeline = new lunr.Pipeline\n this.searchPipeline = new lunr.Pipeline\n this.documentCount = 0\n this._b = 0.75\n this._k1 = 1.2\n this.termIndex = 0\n this.metadataWhitelist = []\n}\n\n/**\n * Sets the document field used as the document reference. Every document must have this field.\n * The type of this field in the document should be a string, if it is not a string it will be\n * coerced into a string by calling toString.\n *\n * The default ref is 'id'.\n *\n * The ref should _not_ be changed during indexing, it should be set before any documents are\n * added to the index. Changing it during indexing can lead to inconsistent results.\n *\n * @param {string} ref - The name of the reference field in the document.\n */\nlunr.Builder.prototype.ref = function (ref) {\n this._ref = ref\n}\n\n/**\n * A function that is used to extract a field from a document.\n *\n * Lunr expects a field to be at the top level of a document, if however the field\n * is deeply nested within a document an extractor function can be used to extract\n * the right field for indexing.\n *\n * @callback fieldExtractor\n * @param {object} doc - The document being added to the index.\n * @returns {?(string|object|object[])} obj - The object that will be indexed for this field.\n * @example Extracting a nested field\n * function (doc) { return doc.nested.field }\n */\n\n/**\n * Adds a field to the list of document fields that will be indexed. Every document being\n * indexed should have this field. Null values for this field in indexed documents will\n * not cause errors but will limit the chance of that document being retrieved by searches.\n *\n * All fields should be added before adding documents to the index. Adding fields after\n * a document has been indexed will have no effect on already indexed documents.\n *\n * Fields can be boosted at build time. This allows terms within that field to have more\n * importance when ranking search results. Use a field boost to specify that matches within\n * one field are more important than other fields.\n *\n * @param {string} fieldName - The name of a field to index in all documents.\n * @param {object} attributes - Optional attributes associated with this field.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this field.\n * @param {fieldExtractor} [attributes.extractor] - Function to extract a field from a document.\n * @throws {RangeError} fieldName cannot contain unsupported characters '/'\n */\nlunr.Builder.prototype.field = function (fieldName, attributes) {\n if (/\\//.test(fieldName)) {\n throw new RangeError (\"Field '\" + fieldName + \"' contains illegal character '/'\")\n }\n\n this._fields[fieldName] = attributes || {}\n}\n\n/**\n * A parameter to tune the amount of field length normalisation that is applied when\n * calculating relevance scores. A value of 0 will completely disable any normalisation\n * and a value of 1 will fully normalise field lengths. The default is 0.75. Values of b\n * will be clamped to the range 0 - 1.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.b = function (number) {\n if (number < 0) {\n this._b = 0\n } else if (number > 1) {\n this._b = 1\n } else {\n this._b = number\n }\n}\n\n/**\n * A parameter that controls the speed at which a rise in term frequency results in term\n * frequency saturation. The default value is 1.2. Setting this to a higher value will give\n * slower saturation levels, a lower value will result in quicker saturation.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.k1 = function (number) {\n this._k1 = number\n}\n\n/**\n * Adds a document to the index.\n *\n * Before adding fields to the index the index should have been fully setup, with the document\n * ref and all fields to index already having been specified.\n *\n * The document must have a field name as specified by the ref (by default this is 'id') and\n * it should have all fields defined for indexing, though null or undefined values will not\n * cause errors.\n *\n * Entire documents can be boosted at build time. Applying a boost to a document indicates that\n * this document should rank higher in search results than other documents.\n *\n * @param {object} doc - The document to add to the index.\n * @param {object} attributes - Optional attributes associated with this document.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this document.\n */\nlunr.Builder.prototype.add = function (doc, attributes) {\n var docRef = doc[this._ref],\n fields = Object.keys(this._fields)\n\n this._documents[docRef] = attributes || {}\n this.documentCount += 1\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i],\n extractor = this._fields[fieldName].extractor,\n field = extractor ? extractor(doc) : doc[fieldName],\n tokens = this.tokenizer(field, {\n fields: [fieldName]\n }),\n terms = this.pipeline.run(tokens),\n fieldRef = new lunr.FieldRef (docRef, fieldName),\n fieldTerms = Object.create(null)\n\n this.fieldTermFrequencies[fieldRef] = fieldTerms\n this.fieldLengths[fieldRef] = 0\n\n // store the length of this field for this document\n this.fieldLengths[fieldRef] += terms.length\n\n // calculate term frequencies for this field\n for (var j = 0; j < terms.length; j++) {\n var term = terms[j]\n\n if (fieldTerms[term] == undefined) {\n fieldTerms[term] = 0\n }\n\n fieldTerms[term] += 1\n\n // add to inverted index\n // create an initial posting if one doesn't exist\n if (this.invertedIndex[term] == undefined) {\n var posting = Object.create(null)\n posting[\"_index\"] = this.termIndex\n this.termIndex += 1\n\n for (var k = 0; k < fields.length; k++) {\n posting[fields[k]] = Object.create(null)\n }\n\n this.invertedIndex[term] = posting\n }\n\n // add an entry for this term/fieldName/docRef to the invertedIndex\n if (this.invertedIndex[term][fieldName][docRef] == undefined) {\n this.invertedIndex[term][fieldName][docRef] = Object.create(null)\n }\n\n // store all whitelisted metadata about this token in the\n // inverted index\n for (var l = 0; l < this.metadataWhitelist.length; l++) {\n var metadataKey = this.metadataWhitelist[l],\n metadata = term.metadata[metadataKey]\n\n if (this.invertedIndex[term][fieldName][docRef][metadataKey] == undefined) {\n this.invertedIndex[term][fieldName][docRef][metadataKey] = []\n }\n\n this.invertedIndex[term][fieldName][docRef][metadataKey].push(metadata)\n }\n }\n\n }\n}\n\n/**\n * Calculates the average document length for this index\n *\n * @private\n */\nlunr.Builder.prototype.calculateAverageFieldLengths = function () {\n\n var fieldRefs = Object.keys(this.fieldLengths),\n numberOfFields = fieldRefs.length,\n accumulator = {},\n documentsWithField = {}\n\n for (var i = 0; i < numberOfFields; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n field = fieldRef.fieldName\n\n documentsWithField[field] || (documentsWithField[field] = 0)\n documentsWithField[field] += 1\n\n accumulator[field] || (accumulator[field] = 0)\n accumulator[field] += this.fieldLengths[fieldRef]\n }\n\n var fields = Object.keys(this._fields)\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i]\n accumulator[fieldName] = accumulator[fieldName] / documentsWithField[fieldName]\n }\n\n this.averageFieldLength = accumulator\n}\n\n/**\n * Builds a vector space model of every document using lunr.Vector\n *\n * @private\n */\nlunr.Builder.prototype.createFieldVectors = function () {\n var fieldVectors = {},\n fieldRefs = Object.keys(this.fieldTermFrequencies),\n fieldRefsLength = fieldRefs.length,\n termIdfCache = Object.create(null)\n\n for (var i = 0; i < fieldRefsLength; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n fieldName = fieldRef.fieldName,\n fieldLength = this.fieldLengths[fieldRef],\n fieldVector = new lunr.Vector,\n termFrequencies = this.fieldTermFrequencies[fieldRef],\n terms = Object.keys(termFrequencies),\n termsLength = terms.length\n\n\n var fieldBoost = this._fields[fieldName].boost || 1,\n docBoost = this._documents[fieldRef.docRef].boost || 1\n\n for (var j = 0; j < termsLength; j++) {\n var term = terms[j],\n tf = termFrequencies[term],\n termIndex = this.invertedIndex[term]._index,\n idf, score, scoreWithPrecision\n\n if (termIdfCache[term] === undefined) {\n idf = lunr.idf(this.invertedIndex[term], this.documentCount)\n termIdfCache[term] = idf\n } else {\n idf = termIdfCache[term]\n }\n\n score = idf * ((this._k1 + 1) * tf) / (this._k1 * (1 - this._b + this._b * (fieldLength / this.averageFieldLength[fieldName])) + tf)\n score *= fieldBoost\n score *= docBoost\n scoreWithPrecision = Math.round(score * 1000) / 1000\n // Converts 1.23456789 to 1.234.\n // Reducing the precision so that the vectors take up less\n // space when serialised. Doing it now so that they behave\n // the same before and after serialisation. Also, this is\n // the fastest approach to reducing a number's precision in\n // JavaScript.\n\n fieldVector.insert(termIndex, scoreWithPrecision)\n }\n\n fieldVectors[fieldRef] = fieldVector\n }\n\n this.fieldVectors = fieldVectors\n}\n\n/**\n * Creates a token set of all tokens in the index using lunr.TokenSet\n *\n * @private\n */\nlunr.Builder.prototype.createTokenSet = function () {\n this.tokenSet = lunr.TokenSet.fromArray(\n Object.keys(this.invertedIndex).sort()\n )\n}\n\n/**\n * Builds the index, creating an instance of lunr.Index.\n *\n * This completes the indexing process and should only be called\n * once all documents have been added to the index.\n *\n * @returns {lunr.Index}\n */\nlunr.Builder.prototype.build = function () {\n this.calculateAverageFieldLengths()\n this.createFieldVectors()\n this.createTokenSet()\n\n return new lunr.Index({\n invertedIndex: this.invertedIndex,\n fieldVectors: this.fieldVectors,\n tokenSet: this.tokenSet,\n fields: Object.keys(this._fields),\n pipeline: this.searchPipeline\n })\n}\n\n/**\n * Applies a plugin to the index builder.\n *\n * A plugin is a function that is called with the index builder as its context.\n * Plugins can be used to customise or extend the behaviour of the index\n * in some way. A plugin is just a function, that encapsulated the custom\n * behaviour that should be applied when building the index.\n *\n * The plugin function will be called with the index builder as its argument, additional\n * arguments can also be passed when calling use. The function will be called\n * with the index builder as its context.\n *\n * @param {Function} plugin The plugin to apply.\n */\nlunr.Builder.prototype.use = function (fn) {\n var args = Array.prototype.slice.call(arguments, 1)\n args.unshift(this)\n fn.apply(this, args)\n}\n/**\n * Contains and collects metadata about a matching document.\n * A single instance of lunr.MatchData is returned as part of every\n * lunr.Index~Result.\n *\n * @constructor\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n * @property {object} metadata - A cloned collection of metadata associated with this document.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData = function (term, field, metadata) {\n var clonedMetadata = Object.create(null),\n metadataKeys = Object.keys(metadata || {})\n\n // Cloning the metadata to prevent the original\n // being mutated during match data combination.\n // Metadata is kept in an array within the inverted\n // index so cloning the data can be done with\n // Array#slice\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n clonedMetadata[key] = metadata[key].slice()\n }\n\n this.metadata = Object.create(null)\n\n if (term !== undefined) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = clonedMetadata\n }\n}\n\n/**\n * An instance of lunr.MatchData will be created for every term that matches a\n * document. However only one instance is required in a lunr.Index~Result. This\n * method combines metadata from another instance of lunr.MatchData with this\n * objects metadata.\n *\n * @param {lunr.MatchData} otherMatchData - Another instance of match data to merge with this one.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData.prototype.combine = function (otherMatchData) {\n var terms = Object.keys(otherMatchData.metadata)\n\n for (var i = 0; i < terms.length; i++) {\n var term = terms[i],\n fields = Object.keys(otherMatchData.metadata[term])\n\n if (this.metadata[term] == undefined) {\n this.metadata[term] = Object.create(null)\n }\n\n for (var j = 0; j < fields.length; j++) {\n var field = fields[j],\n keys = Object.keys(otherMatchData.metadata[term][field])\n\n if (this.metadata[term][field] == undefined) {\n this.metadata[term][field] = Object.create(null)\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k]\n\n if (this.metadata[term][field][key] == undefined) {\n this.metadata[term][field][key] = otherMatchData.metadata[term][field][key]\n } else {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(otherMatchData.metadata[term][field][key])\n }\n\n }\n }\n }\n}\n\n/**\n * Add metadata for a term/field pair to this instance of match data.\n *\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n */\nlunr.MatchData.prototype.add = function (term, field, metadata) {\n if (!(term in this.metadata)) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = metadata\n return\n }\n\n if (!(field in this.metadata[term])) {\n this.metadata[term][field] = metadata\n return\n }\n\n var metadataKeys = Object.keys(metadata)\n\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n\n if (key in this.metadata[term][field]) {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(metadata[key])\n } else {\n this.metadata[term][field][key] = metadata[key]\n }\n }\n}\n/**\n * A lunr.Query provides a programmatic way of defining queries to be performed\n * against a {@link lunr.Index}.\n *\n * Prefer constructing a lunr.Query using the {@link lunr.Index#query} method\n * so the query object is pre-initialized with the right index fields.\n *\n * @constructor\n * @property {lunr.Query~Clause[]} clauses - An array of query clauses.\n * @property {string[]} allFields - An array of all available fields in a lunr.Index.\n */\nlunr.Query = function (allFields) {\n this.clauses = []\n this.allFields = allFields\n}\n\n/**\n * Constants for indicating what kind of automatic wildcard insertion will be used when constructing a query clause.\n *\n * This allows wildcards to be added to the beginning and end of a term without having to manually do any string\n * concatenation.\n *\n * The wildcard constants can be bitwise combined to select both leading and trailing wildcards.\n *\n * @constant\n * @default\n * @property {number} wildcard.NONE - The term will have no wildcards inserted, this is the default behaviour\n * @property {number} wildcard.LEADING - Prepend the term with a wildcard, unless a leading wildcard already exists\n * @property {number} wildcard.TRAILING - Append a wildcard to the term, unless a trailing wildcard already exists\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with trailing wildcard\n * query.term('foo', { wildcard: lunr.Query.wildcard.TRAILING })\n * @example query term with leading and trailing wildcard\n * query.term('foo', {\n * wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING\n * })\n */\n\nlunr.Query.wildcard = new String (\"*\")\nlunr.Query.wildcard.NONE = 0\nlunr.Query.wildcard.LEADING = 1\nlunr.Query.wildcard.TRAILING = 2\n\n/**\n * Constants for indicating what kind of presence a term must have in matching documents.\n *\n * @constant\n * @enum {number}\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with required presence\n * query.term('foo', { presence: lunr.Query.presence.REQUIRED })\n */\nlunr.Query.presence = {\n /**\n * Term's presence in a document is optional, this is the default value.\n */\n OPTIONAL: 1,\n\n /**\n * Term's presence in a document is required, documents that do not contain\n * this term will not be returned.\n */\n REQUIRED: 2,\n\n /**\n * Term's presence in a document is prohibited, documents that do contain\n * this term will not be returned.\n */\n PROHIBITED: 3\n}\n\n/**\n * A single clause in a {@link lunr.Query} contains a term and details on how to\n * match that term against a {@link lunr.Index}.\n *\n * @typedef {Object} lunr.Query~Clause\n * @property {string[]} fields - The fields in an index this clause should be matched against.\n * @property {number} [boost=1] - Any boost that should be applied when matching this clause.\n * @property {number} [editDistance] - Whether the term should have fuzzy matching applied, and how fuzzy the match should be.\n * @property {boolean} [usePipeline] - Whether the term should be passed through the search pipeline.\n * @property {number} [wildcard=lunr.Query.wildcard.NONE] - Whether the term should have wildcards appended or prepended.\n * @property {number} [presence=lunr.Query.presence.OPTIONAL] - The terms presence in any matching documents.\n */\n\n/**\n * Adds a {@link lunr.Query~Clause} to this query.\n *\n * Unless the clause contains the fields to be matched all fields will be matched. In addition\n * a default boost of 1 is applied to the clause.\n *\n * @param {lunr.Query~Clause} clause - The clause to add to this query.\n * @see lunr.Query~Clause\n * @returns {lunr.Query}\n */\nlunr.Query.prototype.clause = function (clause) {\n if (!('fields' in clause)) {\n clause.fields = this.allFields\n }\n\n if (!('boost' in clause)) {\n clause.boost = 1\n }\n\n if (!('usePipeline' in clause)) {\n clause.usePipeline = true\n }\n\n if (!('wildcard' in clause)) {\n clause.wildcard = lunr.Query.wildcard.NONE\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.LEADING) && (clause.term.charAt(0) != lunr.Query.wildcard)) {\n clause.term = \"*\" + clause.term\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.TRAILING) && (clause.term.slice(-1) != lunr.Query.wildcard)) {\n clause.term = \"\" + clause.term + \"*\"\n }\n\n if (!('presence' in clause)) {\n clause.presence = lunr.Query.presence.OPTIONAL\n }\n\n this.clauses.push(clause)\n\n return this\n}\n\n/**\n * A negated query is one in which every clause has a presence of\n * prohibited. These queries require some special processing to return\n * the expected results.\n *\n * @returns boolean\n */\nlunr.Query.prototype.isNegated = function () {\n for (var i = 0; i < this.clauses.length; i++) {\n if (this.clauses[i].presence != lunr.Query.presence.PROHIBITED) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * Adds a term to the current query, under the covers this will create a {@link lunr.Query~Clause}\n * to the list of clauses that make up this query.\n *\n * The term is used as is, i.e. no tokenization will be performed by this method. Instead conversion\n * to a token or token-like string should be done before calling this method.\n *\n * The term will be converted to a string by calling `toString`. Multiple terms can be passed as an\n * array, each term in the array will share the same options.\n *\n * @param {object|object[]} term - The term(s) to add to the query.\n * @param {object} [options] - Any additional properties to add to the query clause.\n * @returns {lunr.Query}\n * @see lunr.Query#clause\n * @see lunr.Query~Clause\n * @example adding a single term to a query\n * query.term(\"foo\")\n * @example adding a single term to a query and specifying search fields, term boost and automatic trailing wildcard\n * query.term(\"foo\", {\n * fields: [\"title\"],\n * boost: 10,\n * wildcard: lunr.Query.wildcard.TRAILING\n * })\n * @example using lunr.tokenizer to convert a string to tokens before using them as terms\n * query.term(lunr.tokenizer(\"foo bar\"))\n */\nlunr.Query.prototype.term = function (term, options) {\n if (Array.isArray(term)) {\n term.forEach(function (t) { this.term(t, lunr.utils.clone(options)) }, this)\n return this\n }\n\n var clause = options || {}\n clause.term = term.toString()\n\n this.clause(clause)\n\n return this\n}\nlunr.QueryParseError = function (message, start, end) {\n this.name = \"QueryParseError\"\n this.message = message\n this.start = start\n this.end = end\n}\n\nlunr.QueryParseError.prototype = new Error\nlunr.QueryLexer = function (str) {\n this.lexemes = []\n this.str = str\n this.length = str.length\n this.pos = 0\n this.start = 0\n this.escapeCharPositions = []\n}\n\nlunr.QueryLexer.prototype.run = function () {\n var state = lunr.QueryLexer.lexText\n\n while (state) {\n state = state(this)\n }\n}\n\nlunr.QueryLexer.prototype.sliceString = function () {\n var subSlices = [],\n sliceStart = this.start,\n sliceEnd = this.pos\n\n for (var i = 0; i < this.escapeCharPositions.length; i++) {\n sliceEnd = this.escapeCharPositions[i]\n subSlices.push(this.str.slice(sliceStart, sliceEnd))\n sliceStart = sliceEnd + 1\n }\n\n subSlices.push(this.str.slice(sliceStart, this.pos))\n this.escapeCharPositions.length = 0\n\n return subSlices.join('')\n}\n\nlunr.QueryLexer.prototype.emit = function (type) {\n this.lexemes.push({\n type: type,\n str: this.sliceString(),\n start: this.start,\n end: this.pos\n })\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.escapeCharacter = function () {\n this.escapeCharPositions.push(this.pos - 1)\n this.pos += 1\n}\n\nlunr.QueryLexer.prototype.next = function () {\n if (this.pos >= this.length) {\n return lunr.QueryLexer.EOS\n }\n\n var char = this.str.charAt(this.pos)\n this.pos += 1\n return char\n}\n\nlunr.QueryLexer.prototype.width = function () {\n return this.pos - this.start\n}\n\nlunr.QueryLexer.prototype.ignore = function () {\n if (this.start == this.pos) {\n this.pos += 1\n }\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.backup = function () {\n this.pos -= 1\n}\n\nlunr.QueryLexer.prototype.acceptDigitRun = function () {\n var char, charCode\n\n do {\n char = this.next()\n charCode = char.charCodeAt(0)\n } while (charCode > 47 && charCode < 58)\n\n if (char != lunr.QueryLexer.EOS) {\n this.backup()\n }\n}\n\nlunr.QueryLexer.prototype.more = function () {\n return this.pos < this.length\n}\n\nlunr.QueryLexer.EOS = 'EOS'\nlunr.QueryLexer.FIELD = 'FIELD'\nlunr.QueryLexer.TERM = 'TERM'\nlunr.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE'\nlunr.QueryLexer.BOOST = 'BOOST'\nlunr.QueryLexer.PRESENCE = 'PRESENCE'\n\nlunr.QueryLexer.lexField = function (lexer) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.FIELD)\n lexer.ignore()\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexTerm = function (lexer) {\n if (lexer.width() > 1) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.TERM)\n }\n\n lexer.ignore()\n\n if (lexer.more()) {\n return lunr.QueryLexer.lexText\n }\n}\n\nlunr.QueryLexer.lexEditDistance = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.EDIT_DISTANCE)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexBoost = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.BOOST)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexEOS = function (lexer) {\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n}\n\n// This matches the separator used when tokenising fields\n// within a document. These should match otherwise it is\n// not possible to search for some tokens within a document.\n//\n// It is possible for the user to change the separator on the\n// tokenizer so it _might_ clash with any other of the special\n// characters already used within the search string, e.g. :.\n//\n// This means that it is possible to change the separator in\n// such a way that makes some words unsearchable using a search\n// string.\nlunr.QueryLexer.termSeparator = lunr.tokenizer.separator\n\nlunr.QueryLexer.lexText = function (lexer) {\n while (true) {\n var char = lexer.next()\n\n if (char == lunr.QueryLexer.EOS) {\n return lunr.QueryLexer.lexEOS\n }\n\n // Escape character is '\\'\n if (char.charCodeAt(0) == 92) {\n lexer.escapeCharacter()\n continue\n }\n\n if (char == \":\") {\n return lunr.QueryLexer.lexField\n }\n\n if (char == \"~\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexEditDistance\n }\n\n if (char == \"^\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexBoost\n }\n\n // \"+\" indicates term presence is required\n // checking for length to ensure that only\n // leading \"+\" are considered\n if (char == \"+\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n // \"-\" indicates term presence is prohibited\n // checking for length to ensure that only\n // leading \"-\" are considered\n if (char == \"-\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n if (char.match(lunr.QueryLexer.termSeparator)) {\n return lunr.QueryLexer.lexTerm\n }\n }\n}\n\nlunr.QueryParser = function (str, query) {\n this.lexer = new lunr.QueryLexer (str)\n this.query = query\n this.currentClause = {}\n this.lexemeIdx = 0\n}\n\nlunr.QueryParser.prototype.parse = function () {\n this.lexer.run()\n this.lexemes = this.lexer.lexemes\n\n var state = lunr.QueryParser.parseClause\n\n while (state) {\n state = state(this)\n }\n\n return this.query\n}\n\nlunr.QueryParser.prototype.peekLexeme = function () {\n return this.lexemes[this.lexemeIdx]\n}\n\nlunr.QueryParser.prototype.consumeLexeme = function () {\n var lexeme = this.peekLexeme()\n this.lexemeIdx += 1\n return lexeme\n}\n\nlunr.QueryParser.prototype.nextClause = function () {\n var completedClause = this.currentClause\n this.query.clause(completedClause)\n this.currentClause = {}\n}\n\nlunr.QueryParser.parseClause = function (parser) {\n var lexeme = parser.peekLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.type) {\n case lunr.QueryLexer.PRESENCE:\n return lunr.QueryParser.parsePresence\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expected either a field or a term, found \" + lexeme.type\n\n if (lexeme.str.length >= 1) {\n errorMessage += \" with value '\" + lexeme.str + \"'\"\n }\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n}\n\nlunr.QueryParser.parsePresence = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.str) {\n case \"-\":\n parser.currentClause.presence = lunr.Query.presence.PROHIBITED\n break\n case \"+\":\n parser.currentClause.presence = lunr.Query.presence.REQUIRED\n break\n default:\n var errorMessage = \"unrecognised presence operator'\" + lexeme.str + \"'\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term or field, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term or field, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseField = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n if (parser.query.allFields.indexOf(lexeme.str) == -1) {\n var possibleFields = parser.query.allFields.map(function (f) { return \"'\" + f + \"'\" }).join(', '),\n errorMessage = \"unrecognised field '\" + lexeme.str + \"', possible fields: \" + possibleFields\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.fields = [lexeme.str]\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseTerm = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n parser.currentClause.term = lexeme.str.toLowerCase()\n\n if (lexeme.str.indexOf(\"*\") != -1) {\n parser.currentClause.usePipeline = false\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseEditDistance = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var editDistance = parseInt(lexeme.str, 10)\n\n if (isNaN(editDistance)) {\n var errorMessage = \"edit distance must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.editDistance = editDistance\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseBoost = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var boost = parseInt(lexeme.str, 10)\n\n if (isNaN(boost)) {\n var errorMessage = \"boost must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.boost = boost\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\n /**\n * export the module via AMD, CommonJS or as a browser global\n * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js\n */\n ;(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory)\n } else if (typeof exports === 'object') {\n /**\n * Node. Does not work with strict CommonJS, but\n * only CommonJS-like enviroments that support module.exports,\n * like Node.\n */\n module.exports = factory()\n } else {\n // Browser globals (root is window)\n root.lunr = factory()\n }\n }(this, function () {\n /**\n * Just return a value to define the module export.\n * This example returns an object, but the module\n * can return a function as the exported value.\n */\n return lunr\n }))\n})();\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n ArticleDocument,\n SearchDocumentMap,\n SectionDocument,\n setupSearchDocumentMap\n} from \"../document\"\nimport {\n SearchHighlightFactoryFn,\n setupSearchHighlighter\n} from \"../highlighter\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search index configuration\n */\nexport interface SearchIndexConfig {\n lang: string[] /* Search languages */\n separator: string /* Search separator */\n}\n\n/**\n * Search index document\n */\nexport interface SearchIndexDocument {\n location: string /* Document location */\n title: string /* Document title */\n text: string /* Document text */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search index pipeline function\n */\nexport type SearchIndexPipelineFn =\n | \"stemmer\" /* Stemmer */\n | \"stopWordFilter\" /* Stop word filter */\n | \"trimmer\" /* Trimmer */\n\n/**\n * Search index pipeline\n */\nexport type SearchIndexPipeline = SearchIndexPipelineFn[]\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search index\n *\n * This interfaces describes the format of the `search_index.json` file which\n * is automatically built by the MkDocs search plugin.\n */\nexport interface SearchIndex {\n config: SearchIndexConfig /* Search index configuration */\n docs: SearchIndexDocument[] /* Search index documents */\n index?: object | string /* Prebuilt or serialized index */\n pipeline?: SearchIndexPipeline /* Search index pipeline */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search result\n */\nexport interface SearchResult {\n article: ArticleDocument /* Article document */\n sections: SectionDocument[] /* Section documents */\n}\n\n/* ----------------------------------------------------------------------------\n * Class\n * ------------------------------------------------------------------------- */\n\n/**\n * Search\n *\n * Note that `lunr` is injected via Webpack, as it will otherwise also be\n * bundled in the application bundle.\n */\nexport class Search {\n\n /**\n * Search document mapping\n *\n * A mapping of URLs (including hash fragments) to the actual articles and\n * sections of the documentation. The search document mapping must be created\n * regardless of whether the index was prebuilt or not, as `lunr` itself will\n * only store the actual index.\n */\n protected documents: SearchDocumentMap\n\n /**\n * Search highlight factory function\n */\n protected highlight: SearchHighlightFactoryFn\n\n /**\n * The `lunr` search index\n */\n protected index: lunr.Index\n\n /**\n * Create the search integration\n *\n * @param data - Search index\n */\n public constructor({ config, docs, pipeline, index }: SearchIndex) {\n this.documents = setupSearchDocumentMap(docs)\n this.highlight = setupSearchHighlighter(config)\n\n /* If no index was given, create it */\n if (typeof index === \"undefined\") {\n this.index = lunr(function() {\n pipeline = pipeline || [\"trimmer\", \"stopWordFilter\"]\n\n /* Set up pipeline according to configuration */\n this.pipeline.reset()\n for (const fn of pipeline)\n this.pipeline.add(lunr[fn])\n\n /* Set up alternate search languages */\n if (config.lang.length === 1 && config.lang[0] !== \"en\") {\n this.use((lunr as any)[config.lang[0]])\n } else if (config.lang.length > 1) {\n this.use((lunr as any).multiLanguage(...config.lang))\n }\n\n /* Set up fields and reference */\n this.field(\"title\", { boost: 1000 })\n this.field(\"text\")\n this.ref(\"location\")\n\n /* Index documents */\n for (const doc of docs)\n this.add(doc)\n })\n\n /* Prebuilt or serialized index */\n } else {\n this.index = lunr.Index.load(\n typeof index === \"string\"\n ? JSON.parse(index)\n : index\n )\n }\n }\n\n /**\n * Search for matching documents\n *\n * The search index which MkDocs provides is divided up into articles, which\n * contain the whole content of the individual pages, and sections, which only\n * contain the contents of the subsections obtained by breaking the individual\n * pages up at `h1` ... `h6`. As there may be many sections on different pages\n * with identical titles (for example within this very project, e.g. \"Usage\"\n * or \"Installation\"), they need to be put into the context of the containing\n * page. For this reason, section results are grouped within their respective\n * articles which are the top-level results that are returned.\n *\n * @param value - Query value\n *\n * @return Search results\n */\n public query(value: string): SearchResult[] {\n if (value) {\n try {\n\n /* Group sections by containing article */\n const groups = this.index.search(value)\n .reduce((results, result) => {\n const document = this.documents.get(result.ref)\n if (typeof document !== \"undefined\") {\n if (\"parent\" in document) {\n const ref = document.parent.location\n results.set(ref, [...results.get(ref) || [], result])\n } else {\n const ref = document.location\n results.set(ref, results.get(ref) || [])\n }\n }\n return results\n }, new Map())\n\n /* Create highlighter for query */\n const fn = this.highlight(value)\n\n /* Map groups to search documents */\n return [...groups].map(([ref, sections]) => ({\n article: fn(this.documents.get(ref) as ArticleDocument),\n sections: sections.map(section => {\n return fn(this.documents.get(section.ref) as SectionDocument)\n })\n }))\n\n /* Log errors to console (for now) */\n } catch (err) {\n // tslint:disable-next-line no-console\n console.warn(`Invalid query: ${value} – see https://bit.ly/2s3ChXG`)\n }\n }\n\n /* Return nothing in case of error or empty query */\n return []\n }\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SearchIndex, SearchResult } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search message type\n */\nexport const enum SearchMessageType {\n SETUP, /* Search index setup */\n READY, /* Search index ready */\n QUERY, /* Search query */\n RESULT /* Search results */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * A message containing the data necessary to setup the search index\n */\nexport interface SearchSetupMessage {\n type: SearchMessageType.SETUP /* Message type */\n data: SearchIndex /* Message data */\n}\n\n/**\n * A message indicating the search index is ready\n */\nexport interface SearchReadyMessage {\n type: SearchMessageType.READY /* Message type */\n}\n\n/**\n * A message containing a search query\n */\nexport interface SearchQueryMessage {\n type: SearchMessageType.QUERY /* Message type */\n data: string /* Message data */\n}\n\n/**\n * A message containing results for a search query\n */\nexport interface SearchResultMessage {\n type: SearchMessageType.RESULT /* Message type */\n data: SearchResult[] /* Message data */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * A message exchanged with the search worker\n */\nexport type SearchMessage =\n | SearchSetupMessage\n | SearchReadyMessage\n | SearchQueryMessage\n | SearchResultMessage\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Type guard for search setup messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchSetupMessage(\n message: SearchMessage\n): message is SearchSetupMessage {\n return message.type === SearchMessageType.SETUP\n}\n\n/**\n * Type guard for search ready messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchReadyMessage(\n message: SearchMessage\n): message is SearchReadyMessage {\n return message.type === SearchMessageType.READY\n}\n\n/**\n * Type guard for search query messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchQueryMessage(\n message: SearchMessage\n): message is SearchQueryMessage {\n return message.type === SearchMessageType.QUERY\n}\n\n/**\n * Type guard for search result messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchResultMessage(\n message: SearchMessage\n): message is SearchResultMessage {\n return message.type === SearchMessageType.RESULT\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport \"expose-loader?lunr!lunr\"\n\nimport { Search, SearchIndexConfig } from \"../../_\"\nimport { SearchMessage, SearchMessageType } from \"../message\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Search\n */\nlet search: Search\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up multi-language support through `lunr-languages`\n *\n * This function will automatically import the stemmers necessary to process\n * the languages which were given through the search index configuration.\n *\n * @param config - Search index configuration\n */\nfunction setupLunrLanguages(config: SearchIndexConfig): void {\n const base = \"../lunr\"\n\n /* Add scripts for languages */\n const scripts = []\n for (const lang of config.lang) {\n if (lang === \"ja\") scripts.push(`${base}/tinyseg.min.js`)\n if (lang !== \"en\") scripts.push(`${base}/min/lunr.${lang}.min.js`)\n }\n\n /* Add multi-language support */\n if (config.lang.length > 1)\n scripts.push(`${base}/min/lunr.multi.min.js`)\n\n /* Load scripts synchronously */\n if (scripts.length)\n importScripts(\n `${base}/min/lunr.stemmer.support.min.js`,\n ...scripts\n )\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Message handler\n *\n * @param message - Source message\n *\n * @return Target message\n */\nexport function handler(message: SearchMessage): SearchMessage {\n switch (message.type) {\n\n /* Search setup message */\n case SearchMessageType.SETUP:\n setupLunrLanguages(message.data.config)\n search = new Search(message.data)\n return {\n type: SearchMessageType.READY\n }\n\n /* Search query message */\n case SearchMessageType.QUERY:\n return {\n type: SearchMessageType.RESULT,\n data: search ? search.query(message.data) : []\n }\n\n /* All other messages */\n default:\n throw new TypeError(\"Invalid message type\")\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Worker\n * ------------------------------------------------------------------------- */\n\naddEventListener(\"message\", ev => {\n postMessage(handler(ev.data))\n})\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport * as escapeHTML from \"escape-html\"\n\nimport { SearchIndexDocument } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * A top-level article\n */\nexport interface ArticleDocument extends SearchIndexDocument {\n linked: boolean /* Whether the section was linked */\n}\n\n/**\n * A section of an article\n */\nexport interface SectionDocument extends SearchIndexDocument {\n parent: ArticleDocument /* Parent article */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search document\n */\nexport type SearchDocument =\n | ArticleDocument\n | SectionDocument\n\n/**\n * Search document mapping\n */\nexport type SearchDocumentMap = Map\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search document mapping\n *\n * @param docs - Search index documents\n *\n * @return Search document map\n */\nexport function setupSearchDocumentMap(\n docs: SearchIndexDocument[]\n): SearchDocumentMap {\n const documents = new Map()\n for (const doc of docs) {\n const [path, hash] = doc.location.split(\"#\")\n\n /* Extract location and title */\n const location = doc.location\n const title = doc.title\n\n /* Escape and cleanup text */\n const text = escapeHTML(doc.text)\n .replace(/\\s+(?=[,.:;!?])/g, \"\")\n .replace(/\\s+/g, \" \")\n\n /* Handle section */\n if (hash) {\n const parent = documents.get(path) as ArticleDocument\n\n /* Ignore first section, override article */\n if (!parent.linked) {\n parent.title = doc.title\n parent.text = text\n parent.linked = true\n\n /* Add subsequent section */\n } else {\n documents.set(location, {\n location,\n title,\n text,\n parent\n })\n }\n\n /* Add article */\n } else {\n documents.set(location, {\n location,\n title,\n text,\n linked: false\n })\n }\n }\n return documents\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SearchIndexConfig } from \"../_\"\nimport { SearchDocument } from \"../document\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search highlight function\n *\n * @template T - Search document type\n *\n * @param document - Search document\n *\n * @return Highlighted document\n */\nexport type SearchHighlightFn = <\n T extends SearchDocument\n>(document: Readonly) => T\n\n/**\n * Search highlight factory function\n *\n * @param value - Query value\n *\n * @return Search highlight function\n */\nexport type SearchHighlightFactoryFn = (value: string) => SearchHighlightFn\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search highlighter\n *\n * @param config - Search index configuration\n *\n * @return Search highlight factory function\n */\nexport function setupSearchHighlighter(\n config: SearchIndexConfig\n): SearchHighlightFactoryFn {\n const separator = new RegExp(config.separator, \"img\")\n const highlight = (_: unknown, data: string, term: string) => {\n return `${data}${term}`\n }\n\n /* Return factory function */\n return (value: string) => {\n value = value\n .replace(/[\\s*+-:~^]+/g, \" \")\n .trim()\n\n /* Create search term match expression */\n const match = new RegExp(`(^|${config.separator})(${\n value\n .replace(/[|\\\\{}()[\\]^$+*?.-]/g, \"\\\\$&\")\n .replace(separator, \"|\")\n })`, \"img\")\n\n /* Highlight document */\n return document => ({\n ...document,\n title: document.title.replace(match, highlight),\n text: document.text.replace(match, highlight)\n })\n }\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/doc/theme/material/assets/javascripts/worker/search.js b/doc/theme/material/assets/javascripts/worker/search.js new file mode 100644 index 00000000..29f901a3 --- /dev/null +++ b/doc/theme/material/assets/javascripts/worker/search.js @@ -0,0 +1,206 @@ +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "./src/assets/javascripts/integrations/search/worker/main/index.ts"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./node_modules/escape-html/index.js": +/*!*******************************************!*\ + !*** ./node_modules/escape-html/index.js ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n\n\n//# sourceURL=webpack:///./node_modules/escape-html/index.js?"); + +/***/ }), + +/***/ "./node_modules/expose-loader/index.js?lunr!./node_modules/lunr/lunr.js-exposed": +/*!*****************************************************************************!*\ + !*** ./node_modules/expose-loader?lunr!./node_modules/lunr/lunr.js-exposed ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* WEBPACK VAR INJECTION */(function(global) {module.exports = global[\"lunr\"] = __webpack_require__(/*! -!./lunr.js */ \"./node_modules/lunr/lunr.js\");\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/lunr/lunr.js-exposed?./node_modules/expose-loader?lunr"); + +/***/ }), + +/***/ "./node_modules/lunr/lunr.js": +/*!***********************************!*\ + !*** ./node_modules/lunr/lunr.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.8\n * Copyright (C) 2019 Oliver Nightingale\n * @license MIT\n */\n\n;(function(){\n\n/**\n * A convenience function for configuring and constructing\n * a new lunr Index.\n *\n * A lunr.Builder instance is created and the pipeline setup\n * with a trimmer, stop word filter and stemmer.\n *\n * This builder object is yielded to the configuration function\n * that is passed as a parameter, allowing the list of fields\n * and other builder parameters to be customised.\n *\n * All documents _must_ be added within the passed config function.\n *\n * @example\n * var idx = lunr(function () {\n * this.field('title')\n * this.field('body')\n * this.ref('id')\n *\n * documents.forEach(function (doc) {\n * this.add(doc)\n * }, this)\n * })\n *\n * @see {@link lunr.Builder}\n * @see {@link lunr.Pipeline}\n * @see {@link lunr.trimmer}\n * @see {@link lunr.stopWordFilter}\n * @see {@link lunr.stemmer}\n * @namespace {function} lunr\n */\nvar lunr = function (config) {\n var builder = new lunr.Builder\n\n builder.pipeline.add(\n lunr.trimmer,\n lunr.stopWordFilter,\n lunr.stemmer\n )\n\n builder.searchPipeline.add(\n lunr.stemmer\n )\n\n config.call(builder, builder)\n return builder.build()\n}\n\nlunr.version = \"2.3.8\"\n/*!\n * lunr.utils\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A namespace containing utils for the rest of the lunr library\n * @namespace lunr.utils\n */\nlunr.utils = {}\n\n/**\n * Print a warning message to the console.\n *\n * @param {String} message The message to be printed.\n * @memberOf lunr.utils\n * @function\n */\nlunr.utils.warn = (function (global) {\n /* eslint-disable no-console */\n return function (message) {\n if (global.console && console.warn) {\n console.warn(message)\n }\n }\n /* eslint-enable no-console */\n})(this)\n\n/**\n * Convert an object to a string.\n *\n * In the case of `null` and `undefined` the function returns\n * the empty string, in all other cases the result of calling\n * `toString` on the passed object is returned.\n *\n * @param {Any} obj The object to convert to a string.\n * @return {String} string representation of the passed object.\n * @memberOf lunr.utils\n */\nlunr.utils.asString = function (obj) {\n if (obj === void 0 || obj === null) {\n return \"\"\n } else {\n return obj.toString()\n }\n}\n\n/**\n * Clones an object.\n *\n * Will create a copy of an existing object such that any mutations\n * on the copy cannot affect the original.\n *\n * Only shallow objects are supported, passing a nested object to this\n * function will cause a TypeError.\n *\n * Objects with primitives, and arrays of primitives are supported.\n *\n * @param {Object} obj The object to clone.\n * @return {Object} a clone of the passed object.\n * @throws {TypeError} when a nested object is passed.\n * @memberOf Utils\n */\nlunr.utils.clone = function (obj) {\n if (obj === null || obj === undefined) {\n return obj\n }\n\n var clone = Object.create(null),\n keys = Object.keys(obj)\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i],\n val = obj[key]\n\n if (Array.isArray(val)) {\n clone[key] = val.slice()\n continue\n }\n\n if (typeof val === 'string' ||\n typeof val === 'number' ||\n typeof val === 'boolean') {\n clone[key] = val\n continue\n }\n\n throw new TypeError(\"clone is not deep and does not support nested objects\")\n }\n\n return clone\n}\nlunr.FieldRef = function (docRef, fieldName, stringValue) {\n this.docRef = docRef\n this.fieldName = fieldName\n this._stringValue = stringValue\n}\n\nlunr.FieldRef.joiner = \"/\"\n\nlunr.FieldRef.fromString = function (s) {\n var n = s.indexOf(lunr.FieldRef.joiner)\n\n if (n === -1) {\n throw \"malformed field ref string\"\n }\n\n var fieldRef = s.slice(0, n),\n docRef = s.slice(n + 1)\n\n return new lunr.FieldRef (docRef, fieldRef, s)\n}\n\nlunr.FieldRef.prototype.toString = function () {\n if (this._stringValue == undefined) {\n this._stringValue = this.fieldName + lunr.FieldRef.joiner + this.docRef\n }\n\n return this._stringValue\n}\n/*!\n * lunr.Set\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A lunr set.\n *\n * @constructor\n */\nlunr.Set = function (elements) {\n this.elements = Object.create(null)\n\n if (elements) {\n this.length = elements.length\n\n for (var i = 0; i < this.length; i++) {\n this.elements[elements[i]] = true\n }\n } else {\n this.length = 0\n }\n}\n\n/**\n * A complete set that contains all elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.complete = {\n intersect: function (other) {\n return other\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return true\n }\n}\n\n/**\n * An empty set that contains no elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.empty = {\n intersect: function () {\n return this\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return false\n }\n}\n\n/**\n * Returns true if this set contains the specified object.\n *\n * @param {object} object - Object whose presence in this set is to be tested.\n * @returns {boolean} - True if this set contains the specified object.\n */\nlunr.Set.prototype.contains = function (object) {\n return !!this.elements[object]\n}\n\n/**\n * Returns a new set containing only the elements that are present in both\n * this set and the specified set.\n *\n * @param {lunr.Set} other - set to intersect with this set.\n * @returns {lunr.Set} a new set that is the intersection of this and the specified set.\n */\n\nlunr.Set.prototype.intersect = function (other) {\n var a, b, elements, intersection = []\n\n if (other === lunr.Set.complete) {\n return this\n }\n\n if (other === lunr.Set.empty) {\n return other\n }\n\n if (this.length < other.length) {\n a = this\n b = other\n } else {\n a = other\n b = this\n }\n\n elements = Object.keys(a.elements)\n\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i]\n if (element in b.elements) {\n intersection.push(element)\n }\n }\n\n return new lunr.Set (intersection)\n}\n\n/**\n * Returns a new set combining the elements of this and the specified set.\n *\n * @param {lunr.Set} other - set to union with this set.\n * @return {lunr.Set} a new set that is the union of this and the specified set.\n */\n\nlunr.Set.prototype.union = function (other) {\n if (other === lunr.Set.complete) {\n return lunr.Set.complete\n }\n\n if (other === lunr.Set.empty) {\n return this\n }\n\n return new lunr.Set(Object.keys(this.elements).concat(Object.keys(other.elements)))\n}\n/**\n * A function to calculate the inverse document frequency for\n * a posting. This is shared between the builder and the index\n *\n * @private\n * @param {object} posting - The posting for a given term\n * @param {number} documentCount - The total number of documents.\n */\nlunr.idf = function (posting, documentCount) {\n var documentsWithTerm = 0\n\n for (var fieldName in posting) {\n if (fieldName == '_index') continue // Ignore the term index, its not a field\n documentsWithTerm += Object.keys(posting[fieldName]).length\n }\n\n var x = (documentCount - documentsWithTerm + 0.5) / (documentsWithTerm + 0.5)\n\n return Math.log(1 + Math.abs(x))\n}\n\n/**\n * A token wraps a string representation of a token\n * as it is passed through the text processing pipeline.\n *\n * @constructor\n * @param {string} [str=''] - The string token being wrapped.\n * @param {object} [metadata={}] - Metadata associated with this token.\n */\nlunr.Token = function (str, metadata) {\n this.str = str || \"\"\n this.metadata = metadata || {}\n}\n\n/**\n * Returns the token string that is being wrapped by this object.\n *\n * @returns {string}\n */\nlunr.Token.prototype.toString = function () {\n return this.str\n}\n\n/**\n * A token update function is used when updating or optionally\n * when cloning a token.\n *\n * @callback lunr.Token~updateFunction\n * @param {string} str - The string representation of the token.\n * @param {Object} metadata - All metadata associated with this token.\n */\n\n/**\n * Applies the given function to the wrapped string token.\n *\n * @example\n * token.update(function (str, metadata) {\n * return str.toUpperCase()\n * })\n *\n * @param {lunr.Token~updateFunction} fn - A function to apply to the token string.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.update = function (fn) {\n this.str = fn(this.str, this.metadata)\n return this\n}\n\n/**\n * Creates a clone of this token. Optionally a function can be\n * applied to the cloned token.\n *\n * @param {lunr.Token~updateFunction} [fn] - An optional function to apply to the cloned token.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.clone = function (fn) {\n fn = fn || function (s) { return s }\n return new lunr.Token (fn(this.str, this.metadata), this.metadata)\n}\n/*!\n * lunr.tokenizer\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A function for splitting a string into tokens ready to be inserted into\n * the search index. Uses `lunr.tokenizer.separator` to split strings, change\n * the value of this property to change how strings are split into tokens.\n *\n * This tokenizer will convert its parameter to a string by calling `toString` and\n * then will split this string on the character in `lunr.tokenizer.separator`.\n * Arrays will have their elements converted to strings and wrapped in a lunr.Token.\n *\n * Optional metadata can be passed to the tokenizer, this metadata will be cloned and\n * added as metadata to every token that is created from the object to be tokenized.\n *\n * @static\n * @param {?(string|object|object[])} obj - The object to convert into tokens\n * @param {?object} metadata - Optional metadata to associate with every token\n * @returns {lunr.Token[]}\n * @see {@link lunr.Pipeline}\n */\nlunr.tokenizer = function (obj, metadata) {\n if (obj == null || obj == undefined) {\n return []\n }\n\n if (Array.isArray(obj)) {\n return obj.map(function (t) {\n return new lunr.Token(\n lunr.utils.asString(t).toLowerCase(),\n lunr.utils.clone(metadata)\n )\n })\n }\n\n var str = obj.toString().toLowerCase(),\n len = str.length,\n tokens = []\n\n for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {\n var char = str.charAt(sliceEnd),\n sliceLength = sliceEnd - sliceStart\n\n if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) {\n\n if (sliceLength > 0) {\n var tokenMetadata = lunr.utils.clone(metadata) || {}\n tokenMetadata[\"position\"] = [sliceStart, sliceLength]\n tokenMetadata[\"index\"] = tokens.length\n\n tokens.push(\n new lunr.Token (\n str.slice(sliceStart, sliceEnd),\n tokenMetadata\n )\n )\n }\n\n sliceStart = sliceEnd + 1\n }\n\n }\n\n return tokens\n}\n\n/**\n * The separator used to split a string into tokens. Override this property to change the behaviour of\n * `lunr.tokenizer` behaviour when tokenizing strings. By default this splits on whitespace and hyphens.\n *\n * @static\n * @see lunr.tokenizer\n */\nlunr.tokenizer.separator = /[\\s\\-]+/\n/*!\n * lunr.Pipeline\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.Pipelines maintain an ordered list of functions to be applied to all\n * tokens in documents entering the search index and queries being ran against\n * the index.\n *\n * An instance of lunr.Index created with the lunr shortcut will contain a\n * pipeline with a stop word filter and an English language stemmer. Extra\n * functions can be added before or after either of these functions or these\n * default functions can be removed.\n *\n * When run the pipeline will call each function in turn, passing a token, the\n * index of that token in the original list of all tokens and finally a list of\n * all the original tokens.\n *\n * The output of functions in the pipeline will be passed to the next function\n * in the pipeline. To exclude a token from entering the index the function\n * should return undefined, the rest of the pipeline will not be called with\n * this token.\n *\n * For serialisation of pipelines to work, all functions used in an instance of\n * a pipeline should be registered with lunr.Pipeline. Registered functions can\n * then be loaded. If trying to load a serialised pipeline that uses functions\n * that are not registered an error will be thrown.\n *\n * If not planning on serialising the pipeline then registering pipeline functions\n * is not necessary.\n *\n * @constructor\n */\nlunr.Pipeline = function () {\n this._stack = []\n}\n\nlunr.Pipeline.registeredFunctions = Object.create(null)\n\n/**\n * A pipeline function maps lunr.Token to lunr.Token. A lunr.Token contains the token\n * string as well as all known metadata. A pipeline function can mutate the token string\n * or mutate (or add) metadata for a given token.\n *\n * A pipeline function can indicate that the passed token should be discarded by returning\n * null, undefined or an empty string. This token will not be passed to any downstream pipeline\n * functions and will not be added to the index.\n *\n * Multiple tokens can be returned by returning an array of tokens. Each token will be passed\n * to any downstream pipeline functions and all will returned tokens will be added to the index.\n *\n * Any number of pipeline functions may be chained together using a lunr.Pipeline.\n *\n * @interface lunr.PipelineFunction\n * @param {lunr.Token} token - A token from the document being processed.\n * @param {number} i - The index of this token in the complete list of tokens for this document/field.\n * @param {lunr.Token[]} tokens - All tokens for this document/field.\n * @returns {(?lunr.Token|lunr.Token[])}\n */\n\n/**\n * Register a function with the pipeline.\n *\n * Functions that are used in the pipeline should be registered if the pipeline\n * needs to be serialised, or a serialised pipeline needs to be loaded.\n *\n * Registering a function does not add it to a pipeline, functions must still be\n * added to instances of the pipeline for them to be used when running a pipeline.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @param {String} label - The label to register this function with\n */\nlunr.Pipeline.registerFunction = function (fn, label) {\n if (label in this.registeredFunctions) {\n lunr.utils.warn('Overwriting existing registered function: ' + label)\n }\n\n fn.label = label\n lunr.Pipeline.registeredFunctions[fn.label] = fn\n}\n\n/**\n * Warns if the function is not registered as a Pipeline function.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @private\n */\nlunr.Pipeline.warnIfFunctionNotRegistered = function (fn) {\n var isRegistered = fn.label && (fn.label in this.registeredFunctions)\n\n if (!isRegistered) {\n lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\\n', fn)\n }\n}\n\n/**\n * Loads a previously serialised pipeline.\n *\n * All functions to be loaded must already be registered with lunr.Pipeline.\n * If any function from the serialised data has not been registered then an\n * error will be thrown.\n *\n * @param {Object} serialised - The serialised pipeline to load.\n * @returns {lunr.Pipeline}\n */\nlunr.Pipeline.load = function (serialised) {\n var pipeline = new lunr.Pipeline\n\n serialised.forEach(function (fnName) {\n var fn = lunr.Pipeline.registeredFunctions[fnName]\n\n if (fn) {\n pipeline.add(fn)\n } else {\n throw new Error('Cannot load unregistered function: ' + fnName)\n }\n })\n\n return pipeline\n}\n\n/**\n * Adds new functions to the end of the pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction[]} functions - Any number of functions to add to the pipeline.\n */\nlunr.Pipeline.prototype.add = function () {\n var fns = Array.prototype.slice.call(arguments)\n\n fns.forEach(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n this._stack.push(fn)\n }, this)\n}\n\n/**\n * Adds a single function after a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.after = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n pos = pos + 1\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Adds a single function before a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.before = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Removes a function from the pipeline.\n *\n * @param {lunr.PipelineFunction} fn The function to remove from the pipeline.\n */\nlunr.Pipeline.prototype.remove = function (fn) {\n var pos = this._stack.indexOf(fn)\n if (pos == -1) {\n return\n }\n\n this._stack.splice(pos, 1)\n}\n\n/**\n * Runs the current list of functions that make up the pipeline against the\n * passed tokens.\n *\n * @param {Array} tokens The tokens to run through the pipeline.\n * @returns {Array}\n */\nlunr.Pipeline.prototype.run = function (tokens) {\n var stackLength = this._stack.length\n\n for (var i = 0; i < stackLength; i++) {\n var fn = this._stack[i]\n var memo = []\n\n for (var j = 0; j < tokens.length; j++) {\n var result = fn(tokens[j], j, tokens)\n\n if (result === null || result === void 0 || result === '') continue\n\n if (Array.isArray(result)) {\n for (var k = 0; k < result.length; k++) {\n memo.push(result[k])\n }\n } else {\n memo.push(result)\n }\n }\n\n tokens = memo\n }\n\n return tokens\n}\n\n/**\n * Convenience method for passing a string through a pipeline and getting\n * strings out. This method takes care of wrapping the passed string in a\n * token and mapping the resulting tokens back to strings.\n *\n * @param {string} str - The string to pass through the pipeline.\n * @param {?object} metadata - Optional metadata to associate with the token\n * passed to the pipeline.\n * @returns {string[]}\n */\nlunr.Pipeline.prototype.runString = function (str, metadata) {\n var token = new lunr.Token (str, metadata)\n\n return this.run([token]).map(function (t) {\n return t.toString()\n })\n}\n\n/**\n * Resets the pipeline by removing any existing processors.\n *\n */\nlunr.Pipeline.prototype.reset = function () {\n this._stack = []\n}\n\n/**\n * Returns a representation of the pipeline ready for serialisation.\n *\n * Logs a warning if the function has not been registered.\n *\n * @returns {Array}\n */\nlunr.Pipeline.prototype.toJSON = function () {\n return this._stack.map(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n\n return fn.label\n })\n}\n/*!\n * lunr.Vector\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A vector is used to construct the vector space of documents and queries. These\n * vectors support operations to determine the similarity between two documents or\n * a document and a query.\n *\n * Normally no parameters are required for initializing a vector, but in the case of\n * loading a previously dumped vector the raw elements can be provided to the constructor.\n *\n * For performance reasons vectors are implemented with a flat array, where an elements\n * index is immediately followed by its value. E.g. [index, value, index, value]. This\n * allows the underlying array to be as sparse as possible and still offer decent\n * performance when being used for vector calculations.\n *\n * @constructor\n * @param {Number[]} [elements] - The flat list of element index and element value pairs.\n */\nlunr.Vector = function (elements) {\n this._magnitude = 0\n this.elements = elements || []\n}\n\n\n/**\n * Calculates the position within the vector to insert a given index.\n *\n * This is used internally by insert and upsert. If there are duplicate indexes then\n * the position is returned as if the value for that index were to be updated, but it\n * is the callers responsibility to check whether there is a duplicate at that index\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @returns {Number}\n */\nlunr.Vector.prototype.positionForIndex = function (index) {\n // For an empty vector the tuple can be inserted at the beginning\n if (this.elements.length == 0) {\n return 0\n }\n\n var start = 0,\n end = this.elements.length / 2,\n sliceLength = end - start,\n pivotPoint = Math.floor(sliceLength / 2),\n pivotIndex = this.elements[pivotPoint * 2]\n\n while (sliceLength > 1) {\n if (pivotIndex < index) {\n start = pivotPoint\n }\n\n if (pivotIndex > index) {\n end = pivotPoint\n }\n\n if (pivotIndex == index) {\n break\n }\n\n sliceLength = end - start\n pivotPoint = start + Math.floor(sliceLength / 2)\n pivotIndex = this.elements[pivotPoint * 2]\n }\n\n if (pivotIndex == index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex > index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex < index) {\n return (pivotPoint + 1) * 2\n }\n}\n\n/**\n * Inserts an element at an index within the vector.\n *\n * Does not allow duplicates, will throw an error if there is already an entry\n * for this index.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n */\nlunr.Vector.prototype.insert = function (insertIdx, val) {\n this.upsert(insertIdx, val, function () {\n throw \"duplicate index\"\n })\n}\n\n/**\n * Inserts or updates an existing index within the vector.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n * @param {function} fn - A function that is called for updates, the existing value and the\n * requested value are passed as arguments\n */\nlunr.Vector.prototype.upsert = function (insertIdx, val, fn) {\n this._magnitude = 0\n var position = this.positionForIndex(insertIdx)\n\n if (this.elements[position] == insertIdx) {\n this.elements[position + 1] = fn(this.elements[position + 1], val)\n } else {\n this.elements.splice(position, 0, insertIdx, val)\n }\n}\n\n/**\n * Calculates the magnitude of this vector.\n *\n * @returns {Number}\n */\nlunr.Vector.prototype.magnitude = function () {\n if (this._magnitude) return this._magnitude\n\n var sumOfSquares = 0,\n elementsLength = this.elements.length\n\n for (var i = 1; i < elementsLength; i += 2) {\n var val = this.elements[i]\n sumOfSquares += val * val\n }\n\n return this._magnitude = Math.sqrt(sumOfSquares)\n}\n\n/**\n * Calculates the dot product of this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The vector to compute the dot product with.\n * @returns {Number}\n */\nlunr.Vector.prototype.dot = function (otherVector) {\n var dotProduct = 0,\n a = this.elements, b = otherVector.elements,\n aLen = a.length, bLen = b.length,\n aVal = 0, bVal = 0,\n i = 0, j = 0\n\n while (i < aLen && j < bLen) {\n aVal = a[i], bVal = b[j]\n if (aVal < bVal) {\n i += 2\n } else if (aVal > bVal) {\n j += 2\n } else if (aVal == bVal) {\n dotProduct += a[i + 1] * b[j + 1]\n i += 2\n j += 2\n }\n }\n\n return dotProduct\n}\n\n/**\n * Calculates the similarity between this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The other vector to calculate the\n * similarity with.\n * @returns {Number}\n */\nlunr.Vector.prototype.similarity = function (otherVector) {\n return this.dot(otherVector) / this.magnitude() || 0\n}\n\n/**\n * Converts the vector to an array of the elements within the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toArray = function () {\n var output = new Array (this.elements.length / 2)\n\n for (var i = 1, j = 0; i < this.elements.length; i += 2, j++) {\n output[j] = this.elements[i]\n }\n\n return output\n}\n\n/**\n * A JSON serializable representation of the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toJSON = function () {\n return this.elements\n}\n/* eslint-disable */\n/*!\n * lunr.stemmer\n * Copyright (C) 2019 Oliver Nightingale\n * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt\n */\n\n/**\n * lunr.stemmer is an english language stemmer, this is a JavaScript\n * implementation of the PorterStemmer taken from http://tartarus.org/~martin\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token - The string to stem\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n * @function\n */\nlunr.stemmer = (function(){\n var step2list = {\n \"ational\" : \"ate\",\n \"tional\" : \"tion\",\n \"enci\" : \"ence\",\n \"anci\" : \"ance\",\n \"izer\" : \"ize\",\n \"bli\" : \"ble\",\n \"alli\" : \"al\",\n \"entli\" : \"ent\",\n \"eli\" : \"e\",\n \"ousli\" : \"ous\",\n \"ization\" : \"ize\",\n \"ation\" : \"ate\",\n \"ator\" : \"ate\",\n \"alism\" : \"al\",\n \"iveness\" : \"ive\",\n \"fulness\" : \"ful\",\n \"ousness\" : \"ous\",\n \"aliti\" : \"al\",\n \"iviti\" : \"ive\",\n \"biliti\" : \"ble\",\n \"logi\" : \"log\"\n },\n\n step3list = {\n \"icate\" : \"ic\",\n \"ative\" : \"\",\n \"alize\" : \"al\",\n \"iciti\" : \"ic\",\n \"ical\" : \"ic\",\n \"ful\" : \"\",\n \"ness\" : \"\"\n },\n\n c = \"[^aeiou]\", // consonant\n v = \"[aeiouy]\", // vowel\n C = c + \"[^aeiouy]*\", // consonant sequence\n V = v + \"[aeiou]*\", // vowel sequence\n\n mgr0 = \"^(\" + C + \")?\" + V + C, // [C]VC... is m>0\n meq1 = \"^(\" + C + \")?\" + V + C + \"(\" + V + \")?$\", // [C]VC[V] is m=1\n mgr1 = \"^(\" + C + \")?\" + V + C + V + C, // [C]VCVC... is m>1\n s_v = \"^(\" + C + \")?\" + v; // vowel in stem\n\n var re_mgr0 = new RegExp(mgr0);\n var re_mgr1 = new RegExp(mgr1);\n var re_meq1 = new RegExp(meq1);\n var re_s_v = new RegExp(s_v);\n\n var re_1a = /^(.+?)(ss|i)es$/;\n var re2_1a = /^(.+?)([^s])s$/;\n var re_1b = /^(.+?)eed$/;\n var re2_1b = /^(.+?)(ed|ing)$/;\n var re_1b_2 = /.$/;\n var re2_1b_2 = /(at|bl|iz)$/;\n var re3_1b_2 = new RegExp(\"([^aeiouylsz])\\\\1$\");\n var re4_1b_2 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var re_1c = /^(.+?[^aeiou])y$/;\n var re_2 = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;\n\n var re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;\n\n var re_4 = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;\n var re2_4 = /^(.+?)(s|t)(ion)$/;\n\n var re_5 = /^(.+?)e$/;\n var re_5_1 = /ll$/;\n var re3_5 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var porterStemmer = function porterStemmer(w) {\n var stem,\n suffix,\n firstch,\n re,\n re2,\n re3,\n re4;\n\n if (w.length < 3) { return w; }\n\n firstch = w.substr(0,1);\n if (firstch == \"y\") {\n w = firstch.toUpperCase() + w.substr(1);\n }\n\n // Step 1a\n re = re_1a\n re2 = re2_1a;\n\n if (re.test(w)) { w = w.replace(re,\"$1$2\"); }\n else if (re2.test(w)) { w = w.replace(re2,\"$1$2\"); }\n\n // Step 1b\n re = re_1b;\n re2 = re2_1b;\n if (re.test(w)) {\n var fp = re.exec(w);\n re = re_mgr0;\n if (re.test(fp[1])) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1];\n re2 = re_s_v;\n if (re2.test(stem)) {\n w = stem;\n re2 = re2_1b_2;\n re3 = re3_1b_2;\n re4 = re4_1b_2;\n if (re2.test(w)) { w = w + \"e\"; }\n else if (re3.test(w)) { re = re_1b_2; w = w.replace(re,\"\"); }\n else if (re4.test(w)) { w = w + \"e\"; }\n }\n }\n\n // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say)\n re = re_1c;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n w = stem + \"i\";\n }\n\n // Step 2\n re = re_2;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step2list[suffix];\n }\n }\n\n // Step 3\n re = re_3;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step3list[suffix];\n }\n }\n\n // Step 4\n re = re_4;\n re2 = re2_4;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n if (re.test(stem)) {\n w = stem;\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1] + fp[2];\n re2 = re_mgr1;\n if (re2.test(stem)) {\n w = stem;\n }\n }\n\n // Step 5\n re = re_5;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n re2 = re_meq1;\n re3 = re3_5;\n if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {\n w = stem;\n }\n }\n\n re = re_5_1;\n re2 = re_mgr1;\n if (re.test(w) && re2.test(w)) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n\n // and turn initial Y back to y\n\n if (firstch == \"y\") {\n w = firstch.toLowerCase() + w.substr(1);\n }\n\n return w;\n };\n\n return function (token) {\n return token.update(porterStemmer);\n }\n})();\n\nlunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer')\n/*!\n * lunr.stopWordFilter\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.generateStopWordFilter builds a stopWordFilter function from the provided\n * list of stop words.\n *\n * The built in lunr.stopWordFilter is built using this generator and can be used\n * to generate custom stopWordFilters for applications or non English languages.\n *\n * @function\n * @param {Array} token The token to pass through the filter\n * @returns {lunr.PipelineFunction}\n * @see lunr.Pipeline\n * @see lunr.stopWordFilter\n */\nlunr.generateStopWordFilter = function (stopWords) {\n var words = stopWords.reduce(function (memo, stopWord) {\n memo[stopWord] = stopWord\n return memo\n }, {})\n\n return function (token) {\n if (token && words[token.toString()] !== token.toString()) return token\n }\n}\n\n/**\n * lunr.stopWordFilter is an English language stop word list filter, any words\n * contained in the list will not be passed through the filter.\n *\n * This is intended to be used in the Pipeline. If the token does not pass the\n * filter then undefined will be returned.\n *\n * @function\n * @implements {lunr.PipelineFunction}\n * @params {lunr.Token} token - A token to check for being a stop word.\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n */\nlunr.stopWordFilter = lunr.generateStopWordFilter([\n 'a',\n 'able',\n 'about',\n 'across',\n 'after',\n 'all',\n 'almost',\n 'also',\n 'am',\n 'among',\n 'an',\n 'and',\n 'any',\n 'are',\n 'as',\n 'at',\n 'be',\n 'because',\n 'been',\n 'but',\n 'by',\n 'can',\n 'cannot',\n 'could',\n 'dear',\n 'did',\n 'do',\n 'does',\n 'either',\n 'else',\n 'ever',\n 'every',\n 'for',\n 'from',\n 'get',\n 'got',\n 'had',\n 'has',\n 'have',\n 'he',\n 'her',\n 'hers',\n 'him',\n 'his',\n 'how',\n 'however',\n 'i',\n 'if',\n 'in',\n 'into',\n 'is',\n 'it',\n 'its',\n 'just',\n 'least',\n 'let',\n 'like',\n 'likely',\n 'may',\n 'me',\n 'might',\n 'most',\n 'must',\n 'my',\n 'neither',\n 'no',\n 'nor',\n 'not',\n 'of',\n 'off',\n 'often',\n 'on',\n 'only',\n 'or',\n 'other',\n 'our',\n 'own',\n 'rather',\n 'said',\n 'say',\n 'says',\n 'she',\n 'should',\n 'since',\n 'so',\n 'some',\n 'than',\n 'that',\n 'the',\n 'their',\n 'them',\n 'then',\n 'there',\n 'these',\n 'they',\n 'this',\n 'tis',\n 'to',\n 'too',\n 'twas',\n 'us',\n 'wants',\n 'was',\n 'we',\n 'were',\n 'what',\n 'when',\n 'where',\n 'which',\n 'while',\n 'who',\n 'whom',\n 'why',\n 'will',\n 'with',\n 'would',\n 'yet',\n 'you',\n 'your'\n])\n\nlunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter')\n/*!\n * lunr.trimmer\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.trimmer is a pipeline function for trimming non word\n * characters from the beginning and end of tokens before they\n * enter the index.\n *\n * This implementation may not work correctly for non latin\n * characters and should either be removed or adapted for use\n * with languages with non-latin characters.\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token The token to pass through the filter\n * @returns {lunr.Token}\n * @see lunr.Pipeline\n */\nlunr.trimmer = function (token) {\n return token.update(function (s) {\n return s.replace(/^\\W+/, '').replace(/\\W+$/, '')\n })\n}\n\nlunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer')\n/*!\n * lunr.TokenSet\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A token set is used to store the unique list of all tokens\n * within an index. Token sets are also used to represent an\n * incoming query to the index, this query token set and index\n * token set are then intersected to find which tokens to look\n * up in the inverted index.\n *\n * A token set can hold multiple tokens, as in the case of the\n * index token set, or it can hold a single token as in the\n * case of a simple query token set.\n *\n * Additionally token sets are used to perform wildcard matching.\n * Leading, contained and trailing wildcards are supported, and\n * from this edit distance matching can also be provided.\n *\n * Token sets are implemented as a minimal finite state automata,\n * where both common prefixes and suffixes are shared between tokens.\n * This helps to reduce the space used for storing the token set.\n *\n * @constructor\n */\nlunr.TokenSet = function () {\n this.final = false\n this.edges = {}\n this.id = lunr.TokenSet._nextId\n lunr.TokenSet._nextId += 1\n}\n\n/**\n * Keeps track of the next, auto increment, identifier to assign\n * to a new tokenSet.\n *\n * TokenSets require a unique identifier to be correctly minimised.\n *\n * @private\n */\nlunr.TokenSet._nextId = 1\n\n/**\n * Creates a TokenSet instance from the given sorted array of words.\n *\n * @param {String[]} arr - A sorted array of strings to create the set from.\n * @returns {lunr.TokenSet}\n * @throws Will throw an error if the input array is not sorted.\n */\nlunr.TokenSet.fromArray = function (arr) {\n var builder = new lunr.TokenSet.Builder\n\n for (var i = 0, len = arr.length; i < len; i++) {\n builder.insert(arr[i])\n }\n\n builder.finish()\n return builder.root\n}\n\n/**\n * Creates a token set from a query clause.\n *\n * @private\n * @param {Object} clause - A single clause from lunr.Query.\n * @param {string} clause.term - The query clause term.\n * @param {number} [clause.editDistance] - The optional edit distance for the term.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromClause = function (clause) {\n if ('editDistance' in clause) {\n return lunr.TokenSet.fromFuzzyString(clause.term, clause.editDistance)\n } else {\n return lunr.TokenSet.fromString(clause.term)\n }\n}\n\n/**\n * Creates a token set representing a single string with a specified\n * edit distance.\n *\n * Insertions, deletions, substitutions and transpositions are each\n * treated as an edit distance of 1.\n *\n * Increasing the allowed edit distance will have a dramatic impact\n * on the performance of both creating and intersecting these TokenSets.\n * It is advised to keep the edit distance less than 3.\n *\n * @param {string} str - The string to create the token set from.\n * @param {number} editDistance - The allowed edit distance to match.\n * @returns {lunr.Vector}\n */\nlunr.TokenSet.fromFuzzyString = function (str, editDistance) {\n var root = new lunr.TokenSet\n\n var stack = [{\n node: root,\n editsRemaining: editDistance,\n str: str\n }]\n\n while (stack.length) {\n var frame = stack.pop()\n\n // no edit\n if (frame.str.length > 0) {\n var char = frame.str.charAt(0),\n noEditNode\n\n if (char in frame.node.edges) {\n noEditNode = frame.node.edges[char]\n } else {\n noEditNode = new lunr.TokenSet\n frame.node.edges[char] = noEditNode\n }\n\n if (frame.str.length == 1) {\n noEditNode.final = true\n }\n\n stack.push({\n node: noEditNode,\n editsRemaining: frame.editsRemaining,\n str: frame.str.slice(1)\n })\n }\n\n if (frame.editsRemaining == 0) {\n continue\n }\n\n // insertion\n if (\"*\" in frame.node.edges) {\n var insertionNode = frame.node.edges[\"*\"]\n } else {\n var insertionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = insertionNode\n }\n\n if (frame.str.length == 0) {\n insertionNode.final = true\n }\n\n stack.push({\n node: insertionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str\n })\n\n // deletion\n // can only do a deletion if we have enough edits remaining\n // and if there are characters left to delete in the string\n if (frame.str.length > 1) {\n stack.push({\n node: frame.node,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // deletion\n // just removing the last character from the str\n if (frame.str.length == 1) {\n frame.node.final = true\n }\n\n // substitution\n // can only do a substitution if we have enough edits remaining\n // and if there are characters left to substitute\n if (frame.str.length >= 1) {\n if (\"*\" in frame.node.edges) {\n var substitutionNode = frame.node.edges[\"*\"]\n } else {\n var substitutionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = substitutionNode\n }\n\n if (frame.str.length == 1) {\n substitutionNode.final = true\n }\n\n stack.push({\n node: substitutionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // transposition\n // can only do a transposition if there are edits remaining\n // and there are enough characters to transpose\n if (frame.str.length > 1) {\n var charA = frame.str.charAt(0),\n charB = frame.str.charAt(1),\n transposeNode\n\n if (charB in frame.node.edges) {\n transposeNode = frame.node.edges[charB]\n } else {\n transposeNode = new lunr.TokenSet\n frame.node.edges[charB] = transposeNode\n }\n\n if (frame.str.length == 1) {\n transposeNode.final = true\n }\n\n stack.push({\n node: transposeNode,\n editsRemaining: frame.editsRemaining - 1,\n str: charA + frame.str.slice(2)\n })\n }\n }\n\n return root\n}\n\n/**\n * Creates a TokenSet from a string.\n *\n * The string may contain one or more wildcard characters (*)\n * that will allow wildcard matching when intersecting with\n * another TokenSet.\n *\n * @param {string} str - The string to create a TokenSet from.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromString = function (str) {\n var node = new lunr.TokenSet,\n root = node\n\n /*\n * Iterates through all characters within the passed string\n * appending a node for each character.\n *\n * When a wildcard character is found then a self\n * referencing edge is introduced to continually match\n * any number of any characters.\n */\n for (var i = 0, len = str.length; i < len; i++) {\n var char = str[i],\n final = (i == len - 1)\n\n if (char == \"*\") {\n node.edges[char] = node\n node.final = final\n\n } else {\n var next = new lunr.TokenSet\n next.final = final\n\n node.edges[char] = next\n node = next\n }\n }\n\n return root\n}\n\n/**\n * Converts this TokenSet into an array of strings\n * contained within the TokenSet.\n *\n * This is not intended to be used on a TokenSet that\n * contains wildcards, in these cases the results are\n * undefined and are likely to cause an infinite loop.\n *\n * @returns {string[]}\n */\nlunr.TokenSet.prototype.toArray = function () {\n var words = []\n\n var stack = [{\n prefix: \"\",\n node: this\n }]\n\n while (stack.length) {\n var frame = stack.pop(),\n edges = Object.keys(frame.node.edges),\n len = edges.length\n\n if (frame.node.final) {\n /* In Safari, at this point the prefix is sometimes corrupted, see:\n * https://github.com/olivernn/lunr.js/issues/279 Calling any\n * String.prototype method forces Safari to \"cast\" this string to what\n * it's supposed to be, fixing the bug. */\n frame.prefix.charAt(0)\n words.push(frame.prefix)\n }\n\n for (var i = 0; i < len; i++) {\n var edge = edges[i]\n\n stack.push({\n prefix: frame.prefix.concat(edge),\n node: frame.node.edges[edge]\n })\n }\n }\n\n return words\n}\n\n/**\n * Generates a string representation of a TokenSet.\n *\n * This is intended to allow TokenSets to be used as keys\n * in objects, largely to aid the construction and minimisation\n * of a TokenSet. As such it is not designed to be a human\n * friendly representation of the TokenSet.\n *\n * @returns {string}\n */\nlunr.TokenSet.prototype.toString = function () {\n // NOTE: Using Object.keys here as this.edges is very likely\n // to enter 'hash-mode' with many keys being added\n //\n // avoiding a for-in loop here as it leads to the function\n // being de-optimised (at least in V8). From some simple\n // benchmarks the performance is comparable, but allowing\n // V8 to optimize may mean easy performance wins in the future.\n\n if (this._str) {\n return this._str\n }\n\n var str = this.final ? '1' : '0',\n labels = Object.keys(this.edges).sort(),\n len = labels.length\n\n for (var i = 0; i < len; i++) {\n var label = labels[i],\n node = this.edges[label]\n\n str = str + label + node.id\n }\n\n return str\n}\n\n/**\n * Returns a new TokenSet that is the intersection of\n * this TokenSet and the passed TokenSet.\n *\n * This intersection will take into account any wildcards\n * contained within the TokenSet.\n *\n * @param {lunr.TokenSet} b - An other TokenSet to intersect with.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.prototype.intersect = function (b) {\n var output = new lunr.TokenSet,\n frame = undefined\n\n var stack = [{\n qNode: b,\n output: output,\n node: this\n }]\n\n while (stack.length) {\n frame = stack.pop()\n\n // NOTE: As with the #toString method, we are using\n // Object.keys and a for loop instead of a for-in loop\n // as both of these objects enter 'hash' mode, causing\n // the function to be de-optimised in V8\n var qEdges = Object.keys(frame.qNode.edges),\n qLen = qEdges.length,\n nEdges = Object.keys(frame.node.edges),\n nLen = nEdges.length\n\n for (var q = 0; q < qLen; q++) {\n var qEdge = qEdges[q]\n\n for (var n = 0; n < nLen; n++) {\n var nEdge = nEdges[n]\n\n if (nEdge == qEdge || qEdge == '*') {\n var node = frame.node.edges[nEdge],\n qNode = frame.qNode.edges[qEdge],\n final = node.final && qNode.final,\n next = undefined\n\n if (nEdge in frame.output.edges) {\n // an edge already exists for this character\n // no need to create a new node, just set the finality\n // bit unless this node is already final\n next = frame.output.edges[nEdge]\n next.final = next.final || final\n\n } else {\n // no edge exists yet, must create one\n // set the finality bit and insert it\n // into the output\n next = new lunr.TokenSet\n next.final = final\n frame.output.edges[nEdge] = next\n }\n\n stack.push({\n qNode: qNode,\n output: next,\n node: node\n })\n }\n }\n }\n }\n\n return output\n}\nlunr.TokenSet.Builder = function () {\n this.previousWord = \"\"\n this.root = new lunr.TokenSet\n this.uncheckedNodes = []\n this.minimizedNodes = {}\n}\n\nlunr.TokenSet.Builder.prototype.insert = function (word) {\n var node,\n commonPrefix = 0\n\n if (word < this.previousWord) {\n throw new Error (\"Out of order word insertion\")\n }\n\n for (var i = 0; i < word.length && i < this.previousWord.length; i++) {\n if (word[i] != this.previousWord[i]) break\n commonPrefix++\n }\n\n this.minimize(commonPrefix)\n\n if (this.uncheckedNodes.length == 0) {\n node = this.root\n } else {\n node = this.uncheckedNodes[this.uncheckedNodes.length - 1].child\n }\n\n for (var i = commonPrefix; i < word.length; i++) {\n var nextNode = new lunr.TokenSet,\n char = word[i]\n\n node.edges[char] = nextNode\n\n this.uncheckedNodes.push({\n parent: node,\n char: char,\n child: nextNode\n })\n\n node = nextNode\n }\n\n node.final = true\n this.previousWord = word\n}\n\nlunr.TokenSet.Builder.prototype.finish = function () {\n this.minimize(0)\n}\n\nlunr.TokenSet.Builder.prototype.minimize = function (downTo) {\n for (var i = this.uncheckedNodes.length - 1; i >= downTo; i--) {\n var node = this.uncheckedNodes[i],\n childKey = node.child.toString()\n\n if (childKey in this.minimizedNodes) {\n node.parent.edges[node.char] = this.minimizedNodes[childKey]\n } else {\n // Cache the key for this node since\n // we know it can't change anymore\n node.child._str = childKey\n\n this.minimizedNodes[childKey] = node.child\n }\n\n this.uncheckedNodes.pop()\n }\n}\n/*!\n * lunr.Index\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * An index contains the built index of all documents and provides a query interface\n * to the index.\n *\n * Usually instances of lunr.Index will not be created using this constructor, instead\n * lunr.Builder should be used to construct new indexes, or lunr.Index.load should be\n * used to load previously built and serialized indexes.\n *\n * @constructor\n * @param {Object} attrs - The attributes of the built search index.\n * @param {Object} attrs.invertedIndex - An index of term/field to document reference.\n * @param {Object} attrs.fieldVectors - Field vectors\n * @param {lunr.TokenSet} attrs.tokenSet - An set of all corpus tokens.\n * @param {string[]} attrs.fields - The names of indexed document fields.\n * @param {lunr.Pipeline} attrs.pipeline - The pipeline to use for search terms.\n */\nlunr.Index = function (attrs) {\n this.invertedIndex = attrs.invertedIndex\n this.fieldVectors = attrs.fieldVectors\n this.tokenSet = attrs.tokenSet\n this.fields = attrs.fields\n this.pipeline = attrs.pipeline\n}\n\n/**\n * A result contains details of a document matching a search query.\n * @typedef {Object} lunr.Index~Result\n * @property {string} ref - The reference of the document this result represents.\n * @property {number} score - A number between 0 and 1 representing how similar this document is to the query.\n * @property {lunr.MatchData} matchData - Contains metadata about this match including which term(s) caused the match.\n */\n\n/**\n * Although lunr provides the ability to create queries using lunr.Query, it also provides a simple\n * query language which itself is parsed into an instance of lunr.Query.\n *\n * For programmatically building queries it is advised to directly use lunr.Query, the query language\n * is best used for human entered text rather than program generated text.\n *\n * At its simplest queries can just be a single term, e.g. `hello`, multiple terms are also supported\n * and will be combined with OR, e.g `hello world` will match documents that contain either 'hello'\n * or 'world', though those that contain both will rank higher in the results.\n *\n * Wildcards can be included in terms to match one or more unspecified characters, these wildcards can\n * be inserted anywhere within the term, and more than one wildcard can exist in a single term. Adding\n * wildcards will increase the number of documents that will be found but can also have a negative\n * impact on query performance, especially with wildcards at the beginning of a term.\n *\n * Terms can be restricted to specific fields, e.g. `title:hello`, only documents with the term\n * hello in the title field will match this query. Using a field not present in the index will lead\n * to an error being thrown.\n *\n * Modifiers can also be added to terms, lunr supports edit distance and boost modifiers on terms. A term\n * boost will make documents matching that term score higher, e.g. `foo^5`. Edit distance is also supported\n * to provide fuzzy matching, e.g. 'hello~2' will match documents with hello with an edit distance of 2.\n * Avoid large values for edit distance to improve query performance.\n *\n * Each term also supports a presence modifier. By default a term's presence in document is optional, however\n * this can be changed to either required or prohibited. For a term's presence to be required in a document the\n * term should be prefixed with a '+', e.g. `+foo bar` is a search for documents that must contain 'foo' and\n * optionally contain 'bar'. Conversely a leading '-' sets the terms presence to prohibited, i.e. it must not\n * appear in a document, e.g. `-foo bar` is a search for documents that do not contain 'foo' but may contain 'bar'.\n *\n * To escape special characters the backslash character '\\' can be used, this allows searches to include\n * characters that would normally be considered modifiers, e.g. `foo\\~2` will search for a term \"foo~2\" instead\n * of attempting to apply a boost of 2 to the search term \"foo\".\n *\n * @typedef {string} lunr.Index~QueryString\n * @example Simple single term query\n * hello\n * @example Multiple term query\n * hello world\n * @example term scoped to a field\n * title:hello\n * @example term with a boost of 10\n * hello^10\n * @example term with an edit distance of 2\n * hello~2\n * @example terms with presence modifiers\n * -foo +bar baz\n */\n\n/**\n * Performs a search against the index using lunr query syntax.\n *\n * Results will be returned sorted by their score, the most relevant results\n * will be returned first. For details on how the score is calculated, please see\n * the {@link https://lunrjs.com/guides/searching.html#scoring|guide}.\n *\n * For more programmatic querying use lunr.Index#query.\n *\n * @param {lunr.Index~QueryString} queryString - A string containing a lunr query.\n * @throws {lunr.QueryParseError} If the passed query string cannot be parsed.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.search = function (queryString) {\n return this.query(function (query) {\n var parser = new lunr.QueryParser(queryString, query)\n parser.parse()\n })\n}\n\n/**\n * A query builder callback provides a query object to be used to express\n * the query to perform on the index.\n *\n * @callback lunr.Index~queryBuilder\n * @param {lunr.Query} query - The query object to build up.\n * @this lunr.Query\n */\n\n/**\n * Performs a query against the index using the yielded lunr.Query object.\n *\n * If performing programmatic queries against the index, this method is preferred\n * over lunr.Index#search so as to avoid the additional query parsing overhead.\n *\n * A query object is yielded to the supplied function which should be used to\n * express the query to be run against the index.\n *\n * Note that although this function takes a callback parameter it is _not_ an\n * asynchronous operation, the callback is just yielded a query object to be\n * customized.\n *\n * @param {lunr.Index~queryBuilder} fn - A function that is used to build the query.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.query = function (fn) {\n // for each query clause\n // * process terms\n // * expand terms from token set\n // * find matching documents and metadata\n // * get document vectors\n // * score documents\n\n var query = new lunr.Query(this.fields),\n matchingFields = Object.create(null),\n queryVectors = Object.create(null),\n termFieldCache = Object.create(null),\n requiredMatches = Object.create(null),\n prohibitedMatches = Object.create(null)\n\n /*\n * To support field level boosts a query vector is created per\n * field. An empty vector is eagerly created to support negated\n * queries.\n */\n for (var i = 0; i < this.fields.length; i++) {\n queryVectors[this.fields[i]] = new lunr.Vector\n }\n\n fn.call(query, query)\n\n for (var i = 0; i < query.clauses.length; i++) {\n /*\n * Unless the pipeline has been disabled for this term, which is\n * the case for terms with wildcards, we need to pass the clause\n * term through the search pipeline. A pipeline returns an array\n * of processed terms. Pipeline functions may expand the passed\n * term, which means we may end up performing multiple index lookups\n * for a single query term.\n */\n var clause = query.clauses[i],\n terms = null,\n clauseMatches = lunr.Set.complete\n\n if (clause.usePipeline) {\n terms = this.pipeline.runString(clause.term, {\n fields: clause.fields\n })\n } else {\n terms = [clause.term]\n }\n\n for (var m = 0; m < terms.length; m++) {\n var term = terms[m]\n\n /*\n * Each term returned from the pipeline needs to use the same query\n * clause object, e.g. the same boost and or edit distance. The\n * simplest way to do this is to re-use the clause object but mutate\n * its term property.\n */\n clause.term = term\n\n /*\n * From the term in the clause we create a token set which will then\n * be used to intersect the indexes token set to get a list of terms\n * to lookup in the inverted index\n */\n var termTokenSet = lunr.TokenSet.fromClause(clause),\n expandedTerms = this.tokenSet.intersect(termTokenSet).toArray()\n\n /*\n * If a term marked as required does not exist in the tokenSet it is\n * impossible for the search to return any matches. We set all the field\n * scoped required matches set to empty and stop examining any further\n * clauses.\n */\n if (expandedTerms.length === 0 && clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = lunr.Set.empty\n }\n\n break\n }\n\n for (var j = 0; j < expandedTerms.length; j++) {\n /*\n * For each term get the posting and termIndex, this is required for\n * building the query vector.\n */\n var expandedTerm = expandedTerms[j],\n posting = this.invertedIndex[expandedTerm],\n termIndex = posting._index\n\n for (var k = 0; k < clause.fields.length; k++) {\n /*\n * For each field that this query term is scoped by (by default\n * all fields are in scope) we need to get all the document refs\n * that have this term in that field.\n *\n * The posting is the entry in the invertedIndex for the matching\n * term from above.\n */\n var field = clause.fields[k],\n fieldPosting = posting[field],\n matchingDocumentRefs = Object.keys(fieldPosting),\n termField = expandedTerm + \"/\" + field,\n matchingDocumentsSet = new lunr.Set(matchingDocumentRefs)\n\n /*\n * if the presence of this term is required ensure that the matching\n * documents are added to the set of required matches for this clause.\n *\n */\n if (clause.presence == lunr.Query.presence.REQUIRED) {\n clauseMatches = clauseMatches.union(matchingDocumentsSet)\n\n if (requiredMatches[field] === undefined) {\n requiredMatches[field] = lunr.Set.complete\n }\n }\n\n /*\n * if the presence of this term is prohibited ensure that the matching\n * documents are added to the set of prohibited matches for this field,\n * creating that set if it does not yet exist.\n */\n if (clause.presence == lunr.Query.presence.PROHIBITED) {\n if (prohibitedMatches[field] === undefined) {\n prohibitedMatches[field] = lunr.Set.empty\n }\n\n prohibitedMatches[field] = prohibitedMatches[field].union(matchingDocumentsSet)\n\n /*\n * Prohibited matches should not be part of the query vector used for\n * similarity scoring and no metadata should be extracted so we continue\n * to the next field\n */\n continue\n }\n\n /*\n * The query field vector is populated using the termIndex found for\n * the term and a unit value with the appropriate boost applied.\n * Using upsert because there could already be an entry in the vector\n * for the term we are working with. In that case we just add the scores\n * together.\n */\n queryVectors[field].upsert(termIndex, clause.boost, function (a, b) { return a + b })\n\n /**\n * If we've already seen this term, field combo then we've already collected\n * the matching documents and metadata, no need to go through all that again\n */\n if (termFieldCache[termField]) {\n continue\n }\n\n for (var l = 0; l < matchingDocumentRefs.length; l++) {\n /*\n * All metadata for this term/field/document triple\n * are then extracted and collected into an instance\n * of lunr.MatchData ready to be returned in the query\n * results\n */\n var matchingDocumentRef = matchingDocumentRefs[l],\n matchingFieldRef = new lunr.FieldRef (matchingDocumentRef, field),\n metadata = fieldPosting[matchingDocumentRef],\n fieldMatch\n\n if ((fieldMatch = matchingFields[matchingFieldRef]) === undefined) {\n matchingFields[matchingFieldRef] = new lunr.MatchData (expandedTerm, field, metadata)\n } else {\n fieldMatch.add(expandedTerm, field, metadata)\n }\n\n }\n\n termFieldCache[termField] = true\n }\n }\n }\n\n /**\n * If the presence was required we need to update the requiredMatches field sets.\n * We do this after all fields for the term have collected their matches because\n * the clause terms presence is required in _any_ of the fields not _all_ of the\n * fields.\n */\n if (clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = requiredMatches[field].intersect(clauseMatches)\n }\n }\n }\n\n /**\n * Need to combine the field scoped required and prohibited\n * matching documents into a global set of required and prohibited\n * matches\n */\n var allRequiredMatches = lunr.Set.complete,\n allProhibitedMatches = lunr.Set.empty\n\n for (var i = 0; i < this.fields.length; i++) {\n var field = this.fields[i]\n\n if (requiredMatches[field]) {\n allRequiredMatches = allRequiredMatches.intersect(requiredMatches[field])\n }\n\n if (prohibitedMatches[field]) {\n allProhibitedMatches = allProhibitedMatches.union(prohibitedMatches[field])\n }\n }\n\n var matchingFieldRefs = Object.keys(matchingFields),\n results = [],\n matches = Object.create(null)\n\n /*\n * If the query is negated (contains only prohibited terms)\n * we need to get _all_ fieldRefs currently existing in the\n * index. This is only done when we know that the query is\n * entirely prohibited terms to avoid any cost of getting all\n * fieldRefs unnecessarily.\n *\n * Additionally, blank MatchData must be created to correctly\n * populate the results.\n */\n if (query.isNegated()) {\n matchingFieldRefs = Object.keys(this.fieldVectors)\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n var matchingFieldRef = matchingFieldRefs[i]\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRef)\n matchingFields[matchingFieldRef] = new lunr.MatchData\n }\n }\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n /*\n * Currently we have document fields that match the query, but we\n * need to return documents. The matchData and scores are combined\n * from multiple fields belonging to the same document.\n *\n * Scores are calculated by field, using the query vectors created\n * above, and combined into a final document score using addition.\n */\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRefs[i]),\n docRef = fieldRef.docRef\n\n if (!allRequiredMatches.contains(docRef)) {\n continue\n }\n\n if (allProhibitedMatches.contains(docRef)) {\n continue\n }\n\n var fieldVector = this.fieldVectors[fieldRef],\n score = queryVectors[fieldRef.fieldName].similarity(fieldVector),\n docMatch\n\n if ((docMatch = matches[docRef]) !== undefined) {\n docMatch.score += score\n docMatch.matchData.combine(matchingFields[fieldRef])\n } else {\n var match = {\n ref: docRef,\n score: score,\n matchData: matchingFields[fieldRef]\n }\n matches[docRef] = match\n results.push(match)\n }\n }\n\n /*\n * Sort the results objects by score, highest first.\n */\n return results.sort(function (a, b) {\n return b.score - a.score\n })\n}\n\n/**\n * Prepares the index for JSON serialization.\n *\n * The schema for this JSON blob will be described in a\n * separate JSON schema file.\n *\n * @returns {Object}\n */\nlunr.Index.prototype.toJSON = function () {\n var invertedIndex = Object.keys(this.invertedIndex)\n .sort()\n .map(function (term) {\n return [term, this.invertedIndex[term]]\n }, this)\n\n var fieldVectors = Object.keys(this.fieldVectors)\n .map(function (ref) {\n return [ref, this.fieldVectors[ref].toJSON()]\n }, this)\n\n return {\n version: lunr.version,\n fields: this.fields,\n fieldVectors: fieldVectors,\n invertedIndex: invertedIndex,\n pipeline: this.pipeline.toJSON()\n }\n}\n\n/**\n * Loads a previously serialized lunr.Index\n *\n * @param {Object} serializedIndex - A previously serialized lunr.Index\n * @returns {lunr.Index}\n */\nlunr.Index.load = function (serializedIndex) {\n var attrs = {},\n fieldVectors = {},\n serializedVectors = serializedIndex.fieldVectors,\n invertedIndex = Object.create(null),\n serializedInvertedIndex = serializedIndex.invertedIndex,\n tokenSetBuilder = new lunr.TokenSet.Builder,\n pipeline = lunr.Pipeline.load(serializedIndex.pipeline)\n\n if (serializedIndex.version != lunr.version) {\n lunr.utils.warn(\"Version mismatch when loading serialised index. Current version of lunr '\" + lunr.version + \"' does not match serialized index '\" + serializedIndex.version + \"'\")\n }\n\n for (var i = 0; i < serializedVectors.length; i++) {\n var tuple = serializedVectors[i],\n ref = tuple[0],\n elements = tuple[1]\n\n fieldVectors[ref] = new lunr.Vector(elements)\n }\n\n for (var i = 0; i < serializedInvertedIndex.length; i++) {\n var tuple = serializedInvertedIndex[i],\n term = tuple[0],\n posting = tuple[1]\n\n tokenSetBuilder.insert(term)\n invertedIndex[term] = posting\n }\n\n tokenSetBuilder.finish()\n\n attrs.fields = serializedIndex.fields\n\n attrs.fieldVectors = fieldVectors\n attrs.invertedIndex = invertedIndex\n attrs.tokenSet = tokenSetBuilder.root\n attrs.pipeline = pipeline\n\n return new lunr.Index(attrs)\n}\n/*!\n * lunr.Builder\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.Builder performs indexing on a set of documents and\n * returns instances of lunr.Index ready for querying.\n *\n * All configuration of the index is done via the builder, the\n * fields to index, the document reference, the text processing\n * pipeline and document scoring parameters are all set on the\n * builder before indexing.\n *\n * @constructor\n * @property {string} _ref - Internal reference to the document reference field.\n * @property {string[]} _fields - Internal reference to the document fields to index.\n * @property {object} invertedIndex - The inverted index maps terms to document fields.\n * @property {object} documentTermFrequencies - Keeps track of document term frequencies.\n * @property {object} documentLengths - Keeps track of the length of documents added to the index.\n * @property {lunr.tokenizer} tokenizer - Function for splitting strings into tokens for indexing.\n * @property {lunr.Pipeline} pipeline - The pipeline performs text processing on tokens before indexing.\n * @property {lunr.Pipeline} searchPipeline - A pipeline for processing search terms before querying the index.\n * @property {number} documentCount - Keeps track of the total number of documents indexed.\n * @property {number} _b - A parameter to control field length normalization, setting this to 0 disabled normalization, 1 fully normalizes field lengths, the default value is 0.75.\n * @property {number} _k1 - A parameter to control how quickly an increase in term frequency results in term frequency saturation, the default value is 1.2.\n * @property {number} termIndex - A counter incremented for each unique term, used to identify a terms position in the vector space.\n * @property {array} metadataWhitelist - A list of metadata keys that have been whitelisted for entry in the index.\n */\nlunr.Builder = function () {\n this._ref = \"id\"\n this._fields = Object.create(null)\n this._documents = Object.create(null)\n this.invertedIndex = Object.create(null)\n this.fieldTermFrequencies = {}\n this.fieldLengths = {}\n this.tokenizer = lunr.tokenizer\n this.pipeline = new lunr.Pipeline\n this.searchPipeline = new lunr.Pipeline\n this.documentCount = 0\n this._b = 0.75\n this._k1 = 1.2\n this.termIndex = 0\n this.metadataWhitelist = []\n}\n\n/**\n * Sets the document field used as the document reference. Every document must have this field.\n * The type of this field in the document should be a string, if it is not a string it will be\n * coerced into a string by calling toString.\n *\n * The default ref is 'id'.\n *\n * The ref should _not_ be changed during indexing, it should be set before any documents are\n * added to the index. Changing it during indexing can lead to inconsistent results.\n *\n * @param {string} ref - The name of the reference field in the document.\n */\nlunr.Builder.prototype.ref = function (ref) {\n this._ref = ref\n}\n\n/**\n * A function that is used to extract a field from a document.\n *\n * Lunr expects a field to be at the top level of a document, if however the field\n * is deeply nested within a document an extractor function can be used to extract\n * the right field for indexing.\n *\n * @callback fieldExtractor\n * @param {object} doc - The document being added to the index.\n * @returns {?(string|object|object[])} obj - The object that will be indexed for this field.\n * @example Extracting a nested field\n * function (doc) { return doc.nested.field }\n */\n\n/**\n * Adds a field to the list of document fields that will be indexed. Every document being\n * indexed should have this field. Null values for this field in indexed documents will\n * not cause errors but will limit the chance of that document being retrieved by searches.\n *\n * All fields should be added before adding documents to the index. Adding fields after\n * a document has been indexed will have no effect on already indexed documents.\n *\n * Fields can be boosted at build time. This allows terms within that field to have more\n * importance when ranking search results. Use a field boost to specify that matches within\n * one field are more important than other fields.\n *\n * @param {string} fieldName - The name of a field to index in all documents.\n * @param {object} attributes - Optional attributes associated with this field.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this field.\n * @param {fieldExtractor} [attributes.extractor] - Function to extract a field from a document.\n * @throws {RangeError} fieldName cannot contain unsupported characters '/'\n */\nlunr.Builder.prototype.field = function (fieldName, attributes) {\n if (/\\//.test(fieldName)) {\n throw new RangeError (\"Field '\" + fieldName + \"' contains illegal character '/'\")\n }\n\n this._fields[fieldName] = attributes || {}\n}\n\n/**\n * A parameter to tune the amount of field length normalisation that is applied when\n * calculating relevance scores. A value of 0 will completely disable any normalisation\n * and a value of 1 will fully normalise field lengths. The default is 0.75. Values of b\n * will be clamped to the range 0 - 1.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.b = function (number) {\n if (number < 0) {\n this._b = 0\n } else if (number > 1) {\n this._b = 1\n } else {\n this._b = number\n }\n}\n\n/**\n * A parameter that controls the speed at which a rise in term frequency results in term\n * frequency saturation. The default value is 1.2. Setting this to a higher value will give\n * slower saturation levels, a lower value will result in quicker saturation.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.k1 = function (number) {\n this._k1 = number\n}\n\n/**\n * Adds a document to the index.\n *\n * Before adding fields to the index the index should have been fully setup, with the document\n * ref and all fields to index already having been specified.\n *\n * The document must have a field name as specified by the ref (by default this is 'id') and\n * it should have all fields defined for indexing, though null or undefined values will not\n * cause errors.\n *\n * Entire documents can be boosted at build time. Applying a boost to a document indicates that\n * this document should rank higher in search results than other documents.\n *\n * @param {object} doc - The document to add to the index.\n * @param {object} attributes - Optional attributes associated with this document.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this document.\n */\nlunr.Builder.prototype.add = function (doc, attributes) {\n var docRef = doc[this._ref],\n fields = Object.keys(this._fields)\n\n this._documents[docRef] = attributes || {}\n this.documentCount += 1\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i],\n extractor = this._fields[fieldName].extractor,\n field = extractor ? extractor(doc) : doc[fieldName],\n tokens = this.tokenizer(field, {\n fields: [fieldName]\n }),\n terms = this.pipeline.run(tokens),\n fieldRef = new lunr.FieldRef (docRef, fieldName),\n fieldTerms = Object.create(null)\n\n this.fieldTermFrequencies[fieldRef] = fieldTerms\n this.fieldLengths[fieldRef] = 0\n\n // store the length of this field for this document\n this.fieldLengths[fieldRef] += terms.length\n\n // calculate term frequencies for this field\n for (var j = 0; j < terms.length; j++) {\n var term = terms[j]\n\n if (fieldTerms[term] == undefined) {\n fieldTerms[term] = 0\n }\n\n fieldTerms[term] += 1\n\n // add to inverted index\n // create an initial posting if one doesn't exist\n if (this.invertedIndex[term] == undefined) {\n var posting = Object.create(null)\n posting[\"_index\"] = this.termIndex\n this.termIndex += 1\n\n for (var k = 0; k < fields.length; k++) {\n posting[fields[k]] = Object.create(null)\n }\n\n this.invertedIndex[term] = posting\n }\n\n // add an entry for this term/fieldName/docRef to the invertedIndex\n if (this.invertedIndex[term][fieldName][docRef] == undefined) {\n this.invertedIndex[term][fieldName][docRef] = Object.create(null)\n }\n\n // store all whitelisted metadata about this token in the\n // inverted index\n for (var l = 0; l < this.metadataWhitelist.length; l++) {\n var metadataKey = this.metadataWhitelist[l],\n metadata = term.metadata[metadataKey]\n\n if (this.invertedIndex[term][fieldName][docRef][metadataKey] == undefined) {\n this.invertedIndex[term][fieldName][docRef][metadataKey] = []\n }\n\n this.invertedIndex[term][fieldName][docRef][metadataKey].push(metadata)\n }\n }\n\n }\n}\n\n/**\n * Calculates the average document length for this index\n *\n * @private\n */\nlunr.Builder.prototype.calculateAverageFieldLengths = function () {\n\n var fieldRefs = Object.keys(this.fieldLengths),\n numberOfFields = fieldRefs.length,\n accumulator = {},\n documentsWithField = {}\n\n for (var i = 0; i < numberOfFields; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n field = fieldRef.fieldName\n\n documentsWithField[field] || (documentsWithField[field] = 0)\n documentsWithField[field] += 1\n\n accumulator[field] || (accumulator[field] = 0)\n accumulator[field] += this.fieldLengths[fieldRef]\n }\n\n var fields = Object.keys(this._fields)\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i]\n accumulator[fieldName] = accumulator[fieldName] / documentsWithField[fieldName]\n }\n\n this.averageFieldLength = accumulator\n}\n\n/**\n * Builds a vector space model of every document using lunr.Vector\n *\n * @private\n */\nlunr.Builder.prototype.createFieldVectors = function () {\n var fieldVectors = {},\n fieldRefs = Object.keys(this.fieldTermFrequencies),\n fieldRefsLength = fieldRefs.length,\n termIdfCache = Object.create(null)\n\n for (var i = 0; i < fieldRefsLength; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n fieldName = fieldRef.fieldName,\n fieldLength = this.fieldLengths[fieldRef],\n fieldVector = new lunr.Vector,\n termFrequencies = this.fieldTermFrequencies[fieldRef],\n terms = Object.keys(termFrequencies),\n termsLength = terms.length\n\n\n var fieldBoost = this._fields[fieldName].boost || 1,\n docBoost = this._documents[fieldRef.docRef].boost || 1\n\n for (var j = 0; j < termsLength; j++) {\n var term = terms[j],\n tf = termFrequencies[term],\n termIndex = this.invertedIndex[term]._index,\n idf, score, scoreWithPrecision\n\n if (termIdfCache[term] === undefined) {\n idf = lunr.idf(this.invertedIndex[term], this.documentCount)\n termIdfCache[term] = idf\n } else {\n idf = termIdfCache[term]\n }\n\n score = idf * ((this._k1 + 1) * tf) / (this._k1 * (1 - this._b + this._b * (fieldLength / this.averageFieldLength[fieldName])) + tf)\n score *= fieldBoost\n score *= docBoost\n scoreWithPrecision = Math.round(score * 1000) / 1000\n // Converts 1.23456789 to 1.234.\n // Reducing the precision so that the vectors take up less\n // space when serialised. Doing it now so that they behave\n // the same before and after serialisation. Also, this is\n // the fastest approach to reducing a number's precision in\n // JavaScript.\n\n fieldVector.insert(termIndex, scoreWithPrecision)\n }\n\n fieldVectors[fieldRef] = fieldVector\n }\n\n this.fieldVectors = fieldVectors\n}\n\n/**\n * Creates a token set of all tokens in the index using lunr.TokenSet\n *\n * @private\n */\nlunr.Builder.prototype.createTokenSet = function () {\n this.tokenSet = lunr.TokenSet.fromArray(\n Object.keys(this.invertedIndex).sort()\n )\n}\n\n/**\n * Builds the index, creating an instance of lunr.Index.\n *\n * This completes the indexing process and should only be called\n * once all documents have been added to the index.\n *\n * @returns {lunr.Index}\n */\nlunr.Builder.prototype.build = function () {\n this.calculateAverageFieldLengths()\n this.createFieldVectors()\n this.createTokenSet()\n\n return new lunr.Index({\n invertedIndex: this.invertedIndex,\n fieldVectors: this.fieldVectors,\n tokenSet: this.tokenSet,\n fields: Object.keys(this._fields),\n pipeline: this.searchPipeline\n })\n}\n\n/**\n * Applies a plugin to the index builder.\n *\n * A plugin is a function that is called with the index builder as its context.\n * Plugins can be used to customise or extend the behaviour of the index\n * in some way. A plugin is just a function, that encapsulated the custom\n * behaviour that should be applied when building the index.\n *\n * The plugin function will be called with the index builder as its argument, additional\n * arguments can also be passed when calling use. The function will be called\n * with the index builder as its context.\n *\n * @param {Function} plugin The plugin to apply.\n */\nlunr.Builder.prototype.use = function (fn) {\n var args = Array.prototype.slice.call(arguments, 1)\n args.unshift(this)\n fn.apply(this, args)\n}\n/**\n * Contains and collects metadata about a matching document.\n * A single instance of lunr.MatchData is returned as part of every\n * lunr.Index~Result.\n *\n * @constructor\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n * @property {object} metadata - A cloned collection of metadata associated with this document.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData = function (term, field, metadata) {\n var clonedMetadata = Object.create(null),\n metadataKeys = Object.keys(metadata || {})\n\n // Cloning the metadata to prevent the original\n // being mutated during match data combination.\n // Metadata is kept in an array within the inverted\n // index so cloning the data can be done with\n // Array#slice\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n clonedMetadata[key] = metadata[key].slice()\n }\n\n this.metadata = Object.create(null)\n\n if (term !== undefined) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = clonedMetadata\n }\n}\n\n/**\n * An instance of lunr.MatchData will be created for every term that matches a\n * document. However only one instance is required in a lunr.Index~Result. This\n * method combines metadata from another instance of lunr.MatchData with this\n * objects metadata.\n *\n * @param {lunr.MatchData} otherMatchData - Another instance of match data to merge with this one.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData.prototype.combine = function (otherMatchData) {\n var terms = Object.keys(otherMatchData.metadata)\n\n for (var i = 0; i < terms.length; i++) {\n var term = terms[i],\n fields = Object.keys(otherMatchData.metadata[term])\n\n if (this.metadata[term] == undefined) {\n this.metadata[term] = Object.create(null)\n }\n\n for (var j = 0; j < fields.length; j++) {\n var field = fields[j],\n keys = Object.keys(otherMatchData.metadata[term][field])\n\n if (this.metadata[term][field] == undefined) {\n this.metadata[term][field] = Object.create(null)\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k]\n\n if (this.metadata[term][field][key] == undefined) {\n this.metadata[term][field][key] = otherMatchData.metadata[term][field][key]\n } else {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(otherMatchData.metadata[term][field][key])\n }\n\n }\n }\n }\n}\n\n/**\n * Add metadata for a term/field pair to this instance of match data.\n *\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n */\nlunr.MatchData.prototype.add = function (term, field, metadata) {\n if (!(term in this.metadata)) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = metadata\n return\n }\n\n if (!(field in this.metadata[term])) {\n this.metadata[term][field] = metadata\n return\n }\n\n var metadataKeys = Object.keys(metadata)\n\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n\n if (key in this.metadata[term][field]) {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(metadata[key])\n } else {\n this.metadata[term][field][key] = metadata[key]\n }\n }\n}\n/**\n * A lunr.Query provides a programmatic way of defining queries to be performed\n * against a {@link lunr.Index}.\n *\n * Prefer constructing a lunr.Query using the {@link lunr.Index#query} method\n * so the query object is pre-initialized with the right index fields.\n *\n * @constructor\n * @property {lunr.Query~Clause[]} clauses - An array of query clauses.\n * @property {string[]} allFields - An array of all available fields in a lunr.Index.\n */\nlunr.Query = function (allFields) {\n this.clauses = []\n this.allFields = allFields\n}\n\n/**\n * Constants for indicating what kind of automatic wildcard insertion will be used when constructing a query clause.\n *\n * This allows wildcards to be added to the beginning and end of a term without having to manually do any string\n * concatenation.\n *\n * The wildcard constants can be bitwise combined to select both leading and trailing wildcards.\n *\n * @constant\n * @default\n * @property {number} wildcard.NONE - The term will have no wildcards inserted, this is the default behaviour\n * @property {number} wildcard.LEADING - Prepend the term with a wildcard, unless a leading wildcard already exists\n * @property {number} wildcard.TRAILING - Append a wildcard to the term, unless a trailing wildcard already exists\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with trailing wildcard\n * query.term('foo', { wildcard: lunr.Query.wildcard.TRAILING })\n * @example query term with leading and trailing wildcard\n * query.term('foo', {\n * wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING\n * })\n */\n\nlunr.Query.wildcard = new String (\"*\")\nlunr.Query.wildcard.NONE = 0\nlunr.Query.wildcard.LEADING = 1\nlunr.Query.wildcard.TRAILING = 2\n\n/**\n * Constants for indicating what kind of presence a term must have in matching documents.\n *\n * @constant\n * @enum {number}\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with required presence\n * query.term('foo', { presence: lunr.Query.presence.REQUIRED })\n */\nlunr.Query.presence = {\n /**\n * Term's presence in a document is optional, this is the default value.\n */\n OPTIONAL: 1,\n\n /**\n * Term's presence in a document is required, documents that do not contain\n * this term will not be returned.\n */\n REQUIRED: 2,\n\n /**\n * Term's presence in a document is prohibited, documents that do contain\n * this term will not be returned.\n */\n PROHIBITED: 3\n}\n\n/**\n * A single clause in a {@link lunr.Query} contains a term and details on how to\n * match that term against a {@link lunr.Index}.\n *\n * @typedef {Object} lunr.Query~Clause\n * @property {string[]} fields - The fields in an index this clause should be matched against.\n * @property {number} [boost=1] - Any boost that should be applied when matching this clause.\n * @property {number} [editDistance] - Whether the term should have fuzzy matching applied, and how fuzzy the match should be.\n * @property {boolean} [usePipeline] - Whether the term should be passed through the search pipeline.\n * @property {number} [wildcard=lunr.Query.wildcard.NONE] - Whether the term should have wildcards appended or prepended.\n * @property {number} [presence=lunr.Query.presence.OPTIONAL] - The terms presence in any matching documents.\n */\n\n/**\n * Adds a {@link lunr.Query~Clause} to this query.\n *\n * Unless the clause contains the fields to be matched all fields will be matched. In addition\n * a default boost of 1 is applied to the clause.\n *\n * @param {lunr.Query~Clause} clause - The clause to add to this query.\n * @see lunr.Query~Clause\n * @returns {lunr.Query}\n */\nlunr.Query.prototype.clause = function (clause) {\n if (!('fields' in clause)) {\n clause.fields = this.allFields\n }\n\n if (!('boost' in clause)) {\n clause.boost = 1\n }\n\n if (!('usePipeline' in clause)) {\n clause.usePipeline = true\n }\n\n if (!('wildcard' in clause)) {\n clause.wildcard = lunr.Query.wildcard.NONE\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.LEADING) && (clause.term.charAt(0) != lunr.Query.wildcard)) {\n clause.term = \"*\" + clause.term\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.TRAILING) && (clause.term.slice(-1) != lunr.Query.wildcard)) {\n clause.term = \"\" + clause.term + \"*\"\n }\n\n if (!('presence' in clause)) {\n clause.presence = lunr.Query.presence.OPTIONAL\n }\n\n this.clauses.push(clause)\n\n return this\n}\n\n/**\n * A negated query is one in which every clause has a presence of\n * prohibited. These queries require some special processing to return\n * the expected results.\n *\n * @returns boolean\n */\nlunr.Query.prototype.isNegated = function () {\n for (var i = 0; i < this.clauses.length; i++) {\n if (this.clauses[i].presence != lunr.Query.presence.PROHIBITED) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * Adds a term to the current query, under the covers this will create a {@link lunr.Query~Clause}\n * to the list of clauses that make up this query.\n *\n * The term is used as is, i.e. no tokenization will be performed by this method. Instead conversion\n * to a token or token-like string should be done before calling this method.\n *\n * The term will be converted to a string by calling `toString`. Multiple terms can be passed as an\n * array, each term in the array will share the same options.\n *\n * @param {object|object[]} term - The term(s) to add to the query.\n * @param {object} [options] - Any additional properties to add to the query clause.\n * @returns {lunr.Query}\n * @see lunr.Query#clause\n * @see lunr.Query~Clause\n * @example adding a single term to a query\n * query.term(\"foo\")\n * @example adding a single term to a query and specifying search fields, term boost and automatic trailing wildcard\n * query.term(\"foo\", {\n * fields: [\"title\"],\n * boost: 10,\n * wildcard: lunr.Query.wildcard.TRAILING\n * })\n * @example using lunr.tokenizer to convert a string to tokens before using them as terms\n * query.term(lunr.tokenizer(\"foo bar\"))\n */\nlunr.Query.prototype.term = function (term, options) {\n if (Array.isArray(term)) {\n term.forEach(function (t) { this.term(t, lunr.utils.clone(options)) }, this)\n return this\n }\n\n var clause = options || {}\n clause.term = term.toString()\n\n this.clause(clause)\n\n return this\n}\nlunr.QueryParseError = function (message, start, end) {\n this.name = \"QueryParseError\"\n this.message = message\n this.start = start\n this.end = end\n}\n\nlunr.QueryParseError.prototype = new Error\nlunr.QueryLexer = function (str) {\n this.lexemes = []\n this.str = str\n this.length = str.length\n this.pos = 0\n this.start = 0\n this.escapeCharPositions = []\n}\n\nlunr.QueryLexer.prototype.run = function () {\n var state = lunr.QueryLexer.lexText\n\n while (state) {\n state = state(this)\n }\n}\n\nlunr.QueryLexer.prototype.sliceString = function () {\n var subSlices = [],\n sliceStart = this.start,\n sliceEnd = this.pos\n\n for (var i = 0; i < this.escapeCharPositions.length; i++) {\n sliceEnd = this.escapeCharPositions[i]\n subSlices.push(this.str.slice(sliceStart, sliceEnd))\n sliceStart = sliceEnd + 1\n }\n\n subSlices.push(this.str.slice(sliceStart, this.pos))\n this.escapeCharPositions.length = 0\n\n return subSlices.join('')\n}\n\nlunr.QueryLexer.prototype.emit = function (type) {\n this.lexemes.push({\n type: type,\n str: this.sliceString(),\n start: this.start,\n end: this.pos\n })\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.escapeCharacter = function () {\n this.escapeCharPositions.push(this.pos - 1)\n this.pos += 1\n}\n\nlunr.QueryLexer.prototype.next = function () {\n if (this.pos >= this.length) {\n return lunr.QueryLexer.EOS\n }\n\n var char = this.str.charAt(this.pos)\n this.pos += 1\n return char\n}\n\nlunr.QueryLexer.prototype.width = function () {\n return this.pos - this.start\n}\n\nlunr.QueryLexer.prototype.ignore = function () {\n if (this.start == this.pos) {\n this.pos += 1\n }\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.backup = function () {\n this.pos -= 1\n}\n\nlunr.QueryLexer.prototype.acceptDigitRun = function () {\n var char, charCode\n\n do {\n char = this.next()\n charCode = char.charCodeAt(0)\n } while (charCode > 47 && charCode < 58)\n\n if (char != lunr.QueryLexer.EOS) {\n this.backup()\n }\n}\n\nlunr.QueryLexer.prototype.more = function () {\n return this.pos < this.length\n}\n\nlunr.QueryLexer.EOS = 'EOS'\nlunr.QueryLexer.FIELD = 'FIELD'\nlunr.QueryLexer.TERM = 'TERM'\nlunr.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE'\nlunr.QueryLexer.BOOST = 'BOOST'\nlunr.QueryLexer.PRESENCE = 'PRESENCE'\n\nlunr.QueryLexer.lexField = function (lexer) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.FIELD)\n lexer.ignore()\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexTerm = function (lexer) {\n if (lexer.width() > 1) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.TERM)\n }\n\n lexer.ignore()\n\n if (lexer.more()) {\n return lunr.QueryLexer.lexText\n }\n}\n\nlunr.QueryLexer.lexEditDistance = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.EDIT_DISTANCE)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexBoost = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.BOOST)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexEOS = function (lexer) {\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n}\n\n// This matches the separator used when tokenising fields\n// within a document. These should match otherwise it is\n// not possible to search for some tokens within a document.\n//\n// It is possible for the user to change the separator on the\n// tokenizer so it _might_ clash with any other of the special\n// characters already used within the search string, e.g. :.\n//\n// This means that it is possible to change the separator in\n// such a way that makes some words unsearchable using a search\n// string.\nlunr.QueryLexer.termSeparator = lunr.tokenizer.separator\n\nlunr.QueryLexer.lexText = function (lexer) {\n while (true) {\n var char = lexer.next()\n\n if (char == lunr.QueryLexer.EOS) {\n return lunr.QueryLexer.lexEOS\n }\n\n // Escape character is '\\'\n if (char.charCodeAt(0) == 92) {\n lexer.escapeCharacter()\n continue\n }\n\n if (char == \":\") {\n return lunr.QueryLexer.lexField\n }\n\n if (char == \"~\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexEditDistance\n }\n\n if (char == \"^\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexBoost\n }\n\n // \"+\" indicates term presence is required\n // checking for length to ensure that only\n // leading \"+\" are considered\n if (char == \"+\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n // \"-\" indicates term presence is prohibited\n // checking for length to ensure that only\n // leading \"-\" are considered\n if (char == \"-\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n if (char.match(lunr.QueryLexer.termSeparator)) {\n return lunr.QueryLexer.lexTerm\n }\n }\n}\n\nlunr.QueryParser = function (str, query) {\n this.lexer = new lunr.QueryLexer (str)\n this.query = query\n this.currentClause = {}\n this.lexemeIdx = 0\n}\n\nlunr.QueryParser.prototype.parse = function () {\n this.lexer.run()\n this.lexemes = this.lexer.lexemes\n\n var state = lunr.QueryParser.parseClause\n\n while (state) {\n state = state(this)\n }\n\n return this.query\n}\n\nlunr.QueryParser.prototype.peekLexeme = function () {\n return this.lexemes[this.lexemeIdx]\n}\n\nlunr.QueryParser.prototype.consumeLexeme = function () {\n var lexeme = this.peekLexeme()\n this.lexemeIdx += 1\n return lexeme\n}\n\nlunr.QueryParser.prototype.nextClause = function () {\n var completedClause = this.currentClause\n this.query.clause(completedClause)\n this.currentClause = {}\n}\n\nlunr.QueryParser.parseClause = function (parser) {\n var lexeme = parser.peekLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.type) {\n case lunr.QueryLexer.PRESENCE:\n return lunr.QueryParser.parsePresence\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expected either a field or a term, found \" + lexeme.type\n\n if (lexeme.str.length >= 1) {\n errorMessage += \" with value '\" + lexeme.str + \"'\"\n }\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n}\n\nlunr.QueryParser.parsePresence = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.str) {\n case \"-\":\n parser.currentClause.presence = lunr.Query.presence.PROHIBITED\n break\n case \"+\":\n parser.currentClause.presence = lunr.Query.presence.REQUIRED\n break\n default:\n var errorMessage = \"unrecognised presence operator'\" + lexeme.str + \"'\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term or field, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term or field, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseField = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n if (parser.query.allFields.indexOf(lexeme.str) == -1) {\n var possibleFields = parser.query.allFields.map(function (f) { return \"'\" + f + \"'\" }).join(', '),\n errorMessage = \"unrecognised field '\" + lexeme.str + \"', possible fields: \" + possibleFields\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.fields = [lexeme.str]\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseTerm = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n parser.currentClause.term = lexeme.str.toLowerCase()\n\n if (lexeme.str.indexOf(\"*\") != -1) {\n parser.currentClause.usePipeline = false\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseEditDistance = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var editDistance = parseInt(lexeme.str, 10)\n\n if (isNaN(editDistance)) {\n var errorMessage = \"edit distance must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.editDistance = editDistance\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseBoost = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var boost = parseInt(lexeme.str, 10)\n\n if (isNaN(boost)) {\n var errorMessage = \"boost must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.boost = boost\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\n /**\n * export the module via AMD, CommonJS or as a browser global\n * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js\n */\n ;(function (root, factory) {\n if (true) {\n // AMD. Register as an anonymous module.\n !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))\n } else {}\n }(this, function () {\n /**\n * Just return a value to define the module export.\n * This example returns an object, but the module\n * can return a function as the exported value.\n */\n return lunr\n }))\n})();\n\n\n//# sourceURL=webpack:///./node_modules/lunr/lunr.js?"); + +/***/ }), + +/***/ "./node_modules/tslib/tslib.es6.js": +/*!*****************************************!*\ + !*** ./node_modules/tslib/tslib.es6.js ***! + \*****************************************/ +/*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault, __classPrivateFieldGet, __classPrivateFieldSet */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__extends\", function() { return __extends; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__assign\", function() { return __assign; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__rest\", function() { return __rest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__decorate\", function() { return __decorate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__param\", function() { return __param; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__metadata\", function() { return __metadata; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__awaiter\", function() { return __awaiter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__generator\", function() { return __generator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__exportStar\", function() { return __exportStar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__values\", function() { return __values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__read\", function() { return __read; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__spread\", function() { return __spread; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__spreadArrays\", function() { return __spreadArrays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__await\", function() { return __await; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncGenerator\", function() { return __asyncGenerator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncDelegator\", function() { return __asyncDelegator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncValues\", function() { return __asyncValues; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__makeTemplateObject\", function() { return __makeTemplateObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__importStar\", function() { return __importStar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__importDefault\", function() { return __importDefault; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__classPrivateFieldGet\", function() { return __classPrivateFieldGet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__classPrivateFieldSet\", function() { return __classPrivateFieldSet; });\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nfunction __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nfunction __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nfunction __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nfunction __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nfunction __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nfunction __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nfunction __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nfunction __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nfunction __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n\n\n//# sourceURL=webpack:///./node_modules/tslib/tslib.es6.js?"); + +/***/ }), + +/***/ "./node_modules/webpack/buildin/global.js": +/*!***********************************!*\ + !*** (webpack)/buildin/global.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n//# sourceURL=webpack:///(webpack)/buildin/global.js?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/_/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/_/index.ts ***! + \***************************************************************/ +/*! exports provided: Search */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Search\", function() { return Search; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _document__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../document */ \"./src/assets/javascripts/integrations/search/document/index.ts\");\n/* harmony import */ var _highlighter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../highlighter */ \"./src/assets/javascripts/integrations/search/highlighter/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Class\n * ------------------------------------------------------------------------- */\n/**\n * Search\n *\n * Note that `lunr` is injected via Webpack, as it will otherwise also be\n * bundled in the application bundle.\n */\nvar Search = /** @class */ (function () {\n /**\n * Create the search integration\n *\n * @param data - Search index\n */\n function Search(_a) {\n var config = _a.config, docs = _a.docs, pipeline = _a.pipeline, index = _a.index;\n this.documents = Object(_document__WEBPACK_IMPORTED_MODULE_1__[\"setupSearchDocumentMap\"])(docs);\n this.highlight = Object(_highlighter__WEBPACK_IMPORTED_MODULE_2__[\"setupSearchHighlighter\"])(config);\n /* If no index was given, create it */\n if (typeof index === \"undefined\") {\n this.index = lunr(function () {\n var e_1, _a, _b, e_2, _c;\n pipeline = pipeline || [\"trimmer\", \"stopWordFilter\"];\n /* Set up pipeline according to configuration */\n this.pipeline.reset();\n try {\n for (var pipeline_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(pipeline), pipeline_1_1 = pipeline_1.next(); !pipeline_1_1.done; pipeline_1_1 = pipeline_1.next()) {\n var fn = pipeline_1_1.value;\n this.pipeline.add(lunr[fn]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (pipeline_1_1 && !pipeline_1_1.done && (_a = pipeline_1.return)) _a.call(pipeline_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n /* Set up alternate search languages */\n if (config.lang.length === 1 && config.lang[0] !== \"en\") {\n this.use(lunr[config.lang[0]]);\n }\n else if (config.lang.length > 1) {\n this.use((_b = lunr).multiLanguage.apply(_b, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(config.lang)));\n }\n /* Set up fields and reference */\n this.field(\"title\", { boost: 1000 });\n this.field(\"text\");\n this.ref(\"location\");\n try {\n /* Index documents */\n for (var docs_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(docs), docs_1_1 = docs_1.next(); !docs_1_1.done; docs_1_1 = docs_1.next()) {\n var doc = docs_1_1.value;\n this.add(doc);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (docs_1_1 && !docs_1_1.done && (_c = docs_1.return)) _c.call(docs_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n });\n /* Prebuilt or serialized index */\n }\n else {\n this.index = lunr.Index.load(typeof index === \"string\"\n ? JSON.parse(index)\n : index);\n }\n }\n /**\n * Search for matching documents\n *\n * The search index which MkDocs provides is divided up into articles, which\n * contain the whole content of the individual pages, and sections, which only\n * contain the contents of the subsections obtained by breaking the individual\n * pages up at `h1` ... `h6`. As there may be many sections on different pages\n * with identical titles (for example within this very project, e.g. \"Usage\"\n * or \"Installation\"), they need to be put into the context of the containing\n * page. For this reason, section results are grouped within their respective\n * articles which are the top-level results that are returned.\n *\n * @param value - Query value\n *\n * @return Search results\n */\n Search.prototype.query = function (value) {\n var _this = this;\n if (value) {\n try {\n /* Group sections by containing article */\n var groups = this.index.search(value)\n .reduce(function (results, result) {\n var document = _this.documents.get(result.ref);\n if (typeof document !== \"undefined\") {\n if (\"parent\" in document) {\n var ref = document.parent.location;\n results.set(ref, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(results.get(ref) || [], [result]));\n }\n else {\n var ref = document.location;\n results.set(ref, results.get(ref) || []);\n }\n }\n return results;\n }, new Map());\n /* Create highlighter for query */\n var fn_1 = this.highlight(value);\n /* Map groups to search documents */\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(groups).map(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), ref = _b[0], sections = _b[1];\n return ({\n article: fn_1(_this.documents.get(ref)),\n sections: sections.map(function (section) {\n return fn_1(_this.documents.get(section.ref));\n })\n });\n });\n /* Log errors to console (for now) */\n }\n catch (err) {\n // tslint:disable-next-line no-console\n console.warn(\"Invalid query: \" + value + \" \\u2013 see https://bit.ly/2s3ChXG\");\n }\n }\n /* Return nothing in case of error or empty query */\n return [];\n };\n return Search;\n}());\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/document/index.ts": +/*!**********************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/document/index.ts ***! + \**********************************************************************/ +/*! exports provided: setupSearchDocumentMap */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupSearchDocumentMap\", function() { return setupSearchDocumentMap; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var escape_html__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! escape-html */ \"./node_modules/escape-html/index.js\");\n/* harmony import */ var escape_html__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(escape_html__WEBPACK_IMPORTED_MODULE_1__);\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Create a search document mapping\n *\n * @param docs - Search index documents\n *\n * @return Search document map\n */\nfunction setupSearchDocumentMap(docs) {\n var e_1, _a;\n var documents = new Map();\n try {\n for (var docs_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(docs), docs_1_1 = docs_1.next(); !docs_1_1.done; docs_1_1 = docs_1.next()) {\n var doc = docs_1_1.value;\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(doc.location.split(\"#\"), 2), path = _b[0], hash = _b[1];\n /* Extract location and title */\n var location = doc.location;\n var title = doc.title;\n /* Escape and cleanup text */\n var text = escape_html__WEBPACK_IMPORTED_MODULE_1__(doc.text)\n .replace(/\\s+(?=[,.:;!?])/g, \"\")\n .replace(/\\s+/g, \" \");\n /* Handle section */\n if (hash) {\n var parent = documents.get(path);\n /* Ignore first section, override article */\n if (!parent.linked) {\n parent.title = doc.title;\n parent.text = text;\n parent.linked = true;\n /* Add subsequent section */\n }\n else {\n documents.set(location, {\n location: location,\n title: title,\n text: text,\n parent: parent\n });\n }\n /* Add article */\n }\n else {\n documents.set(location, {\n location: location,\n title: title,\n text: text,\n linked: false\n });\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (docs_1_1 && !docs_1_1.done && (_a = docs_1.return)) _a.call(docs_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return documents;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/document/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/highlighter/index.ts": +/*!*************************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/highlighter/index.ts ***! + \*************************************************************************/ +/*! exports provided: setupSearchHighlighter */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupSearchHighlighter\", function() { return setupSearchHighlighter; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Create a search highlighter\n *\n * @param config - Search index configuration\n *\n * @return Search highlight factory function\n */\nfunction setupSearchHighlighter(config) {\n var separator = new RegExp(config.separator, \"img\");\n var highlight = function (_, data, term) {\n return data + \"\" + term + \"\";\n };\n /* Return factory function */\n return function (value) {\n value = value\n .replace(/[\\s*+-:~^]+/g, \" \")\n .trim();\n /* Create search term match expression */\n var match = new RegExp(\"(^|\" + config.separator + \")(\" + value\n .replace(/[|\\\\{}()[\\]^$+*?.-]/g, \"\\\\$&\")\n .replace(separator, \"|\") + \")\", \"img\");\n /* Highlight document */\n return function (document) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({}, document), { title: document.title.replace(match, highlight), text: document.text.replace(match, highlight) })); };\n };\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/highlighter/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/worker/main/index.ts": +/*!*************************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/worker/main/index.ts ***! + \*************************************************************************/ +/*! exports provided: handler */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"handler\", function() { return handler; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var expose_loader_lunr_lunr__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! expose-loader?lunr!lunr */ \"./node_modules/expose-loader/index.js?lunr!./node_modules/lunr/lunr.js-exposed\");\n/* harmony import */ var expose_loader_lunr_lunr__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(expose_loader_lunr_lunr__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_ */ \"./src/assets/javascripts/integrations/search/_/index.ts\");\n/* harmony import */ var _message__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../message */ \"./src/assets/javascripts/integrations/search/worker/message/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n/**\n * Search\n */\nvar search;\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n/**\n * Set up multi-language support through `lunr-languages`\n *\n * This function will automatically import the stemmers necessary to process\n * the languages which were given through the search index configuration.\n *\n * @param config - Search index configuration\n */\nfunction setupLunrLanguages(config) {\n var e_1, _a;\n var base = \"../lunr\";\n /* Add scripts for languages */\n var scripts = [];\n try {\n for (var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(config.lang), _c = _b.next(); !_c.done; _c = _b.next()) {\n var lang = _c.value;\n if (lang === \"ja\")\n scripts.push(base + \"/tinyseg.min.js\");\n if (lang !== \"en\")\n scripts.push(base + \"/min/lunr.\" + lang + \".min.js\");\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n /* Add multi-language support */\n if (config.lang.length > 1)\n scripts.push(base + \"/min/lunr.multi.min.js\");\n /* Load scripts synchronously */\n if (scripts.length)\n importScripts.apply(void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])([base + \"/min/lunr.stemmer.support.min.js\"], scripts));\n}\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Message handler\n *\n * @param message - Source message\n *\n * @return Target message\n */\nfunction handler(message) {\n switch (message.type) {\n /* Search setup message */\n case _message__WEBPACK_IMPORTED_MODULE_3__[\"SearchMessageType\"].SETUP:\n setupLunrLanguages(message.data.config);\n search = new ___WEBPACK_IMPORTED_MODULE_2__[\"Search\"](message.data);\n return {\n type: _message__WEBPACK_IMPORTED_MODULE_3__[\"SearchMessageType\"].READY\n };\n /* Search query message */\n case _message__WEBPACK_IMPORTED_MODULE_3__[\"SearchMessageType\"].QUERY:\n return {\n type: _message__WEBPACK_IMPORTED_MODULE_3__[\"SearchMessageType\"].RESULT,\n data: search ? search.query(message.data) : []\n };\n /* All other messages */\n default:\n throw new TypeError(\"Invalid message type\");\n }\n}\n/* ----------------------------------------------------------------------------\n * Worker\n * ------------------------------------------------------------------------- */\naddEventListener(\"message\", function (ev) {\n postMessage(handler(ev.data));\n});\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/worker/main/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/worker/message/index.ts": +/*!****************************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/worker/message/index.ts ***! + \****************************************************************************/ +/*! exports provided: SearchMessageType, isSearchSetupMessage, isSearchReadyMessage, isSearchQueryMessage, isSearchResultMessage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SearchMessageType\", function() { return SearchMessageType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSearchSetupMessage\", function() { return isSearchSetupMessage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSearchReadyMessage\", function() { return isSearchReadyMessage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSearchQueryMessage\", function() { return isSearchQueryMessage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSearchResultMessage\", function() { return isSearchResultMessage; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n/**\n * Search message type\n */\nvar SearchMessageType;\n(function (SearchMessageType) {\n SearchMessageType[SearchMessageType[\"SETUP\"] = 0] = \"SETUP\";\n SearchMessageType[SearchMessageType[\"READY\"] = 1] = \"READY\";\n SearchMessageType[SearchMessageType[\"QUERY\"] = 2] = \"QUERY\";\n SearchMessageType[SearchMessageType[\"RESULT\"] = 3] = \"RESULT\"; /* Search results */\n})(SearchMessageType || (SearchMessageType = {}));\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Type guard for search setup messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nfunction isSearchSetupMessage(message) {\n return message.type === SearchMessageType.SETUP;\n}\n/**\n * Type guard for search ready messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nfunction isSearchReadyMessage(message) {\n return message.type === SearchMessageType.READY;\n}\n/**\n * Type guard for search query messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nfunction isSearchQueryMessage(message) {\n return message.type === SearchMessageType.QUERY;\n}\n/**\n * Type guard for search result messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nfunction isSearchResultMessage(message) {\n return message.type === SearchMessageType.RESULT;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/worker/message/index.ts?"); + +/***/ }) + +/******/ }); \ No newline at end of file diff --git a/doc/theme/material/assets/manifest.json b/doc/theme/material/assets/manifest.json new file mode 100644 index 00000000..234962d6 --- /dev/null +++ b/doc/theme/material/assets/manifest.json @@ -0,0 +1,7 @@ +{ + "assets/javascripts/bundle.js": "assets/javascripts/bundle.js", + "assets/javascripts/vendor.js": "assets/javascripts/vendor.js", + "assets/javascripts/worker/search.js": "assets/javascripts/worker/search.js", + "assets/stylesheets/main.css": "assets/stylesheets/main.css", + "assets/stylesheets/palette.css": "assets/stylesheets/palette.css" +} \ No newline at end of file diff --git a/doc/theme/material/assets/stylesheets/main.c8609f9b.min.css b/doc/theme/material/assets/stylesheets/main.c8609f9b.min.css new file mode 100644 index 00000000..d3b3efa7 --- /dev/null +++ b/doc/theme/material/assets/stylesheets/main.c8609f9b.min.css @@ -0,0 +1,3 @@ +html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none}body{margin:0}hr{box-sizing:content-box;overflow:visible}a,button,label,input{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}small{font-size:80%}sub,sup{position:relative;font-size:80%;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}table{border-collapse:separate;border-spacing:0}td,th{font-weight:normal;vertical-align:top}button{margin:0;padding:0;font-size:inherit;background:transparent;border:0}input{border:0;outline:0}:root{--md-default-fg-color: hsla(0, 0%, 0%, 0.87);--md-default-fg-color--light: hsla(0, 0%, 0%, 0.54);--md-default-fg-color--lighter: hsla(0, 0%, 0%, 0.26);--md-default-fg-color--lightest: hsla(0, 0%, 0%, 0.07);--md-default-bg-color: hsla(0, 0%, 100%, 1);--md-default-bg-color--light: hsla(0, 0%, 100%, 0.7);--md-default-bg-color--lighter: hsla(0, 0%, 100%, 0.3);--md-default-bg-color--lightest: hsla(0, 0%, 100%, 0.12);--md-primary-fg-color: hsla(231deg, 48%, 48%, 1);--md-primary-fg-color--light: hsla(230deg, 44%, 64%, 1);--md-primary-fg-color--dark: hsla(232deg, 54%, 41%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light);--md-accent-fg-color: hsla(231deg, 99%, 66%, 1);--md-accent-fg-color--transparent: hsla(231deg, 99%, 66%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light);--md-code-bg-color: hsla(0, 0%, 96%, 1);--md-code-fg-color: hsla(200, 18%, 26%, 1)}.md-icon svg{display:block;width:1.2rem;height:1.2rem;margin:0 auto;fill:currentColor}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,input{color:var(--md-default-fg-color);font-feature-settings:"kern","liga";font-family:-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif}code,pre,kbd{color:var(--md-default-fg-color);font-feature-settings:"kern";font-family:SFMono-Regular,Consolas,Menlo,monospace}.md-typeset{font-size:.8rem;line-height:1.6;-webkit-print-color-adjust:exact;color-adjust:exact}.md-typeset p,.md-typeset ul,.md-typeset ol,.md-typeset blockquote{margin:1em 0}.md-typeset h1{margin:0 0 2rem;color:var(--md-default-fg-color--light);font-weight:300;font-size:1.5625rem;line-height:1.3;letter-spacing:-0.01em}.md-typeset h2{margin:2rem 0 .8rem;font-weight:300;font-size:1.25rem;line-height:1.4;letter-spacing:-0.01em}.md-typeset h3{margin:1.6rem 0 .8rem;font-weight:400;font-size:1rem;line-height:1.5;letter-spacing:-0.01em}.md-typeset h2+h3{margin-top:.8rem}.md-typeset h4{margin:.8rem 0;font-weight:700;font-size:.8rem;letter-spacing:-0.01em}.md-typeset h5,.md-typeset h6{margin:.8rem 0;color:var(--md-default-fg-color--light);font-weight:700;font-size:.64rem;letter-spacing:-0.01em}.md-typeset h5{text-transform:uppercase}.md-typeset hr{margin:1.5em 0;border-bottom:.05rem dotted var(--md-default-fg-color--lighter)}.md-typeset a{color:var(--md-primary-fg-color);word-break:break-word}.md-typeset a,.md-typeset a::before{transition:color 125ms}.md-typeset a:focus,.md-typeset a:hover{color:var(--md-accent-fg-color)}.md-typeset code,.md-typeset pre,.md-typeset kbd{color:var(--md-code-fg-color);direction:ltr}@media print{.md-typeset code,.md-typeset pre,.md-typeset kbd{white-space:pre-wrap}}.md-typeset code{padding:0 .2941176471em;font-size:.85em;word-break:break-word;background-color:var(--md-code-bg-color);border-radius:.1rem;-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset h1 code,.md-typeset h2 code,.md-typeset h3 code,.md-typeset h4 code,.md-typeset h5 code,.md-typeset h6 code{margin:initial;padding:initial;background-color:transparent;box-shadow:none}.md-typeset a>code{color:currentColor}.md-typeset pre{position:relative;margin:1em 0;line-height:1.4}.md-typeset pre>code{display:block;margin:0;padding:.525rem 1.1764705882em;overflow:auto;word-break:normal;box-shadow:none;-webkit-box-decoration-break:slice;box-decoration-break:slice;touch-action:auto}.md-typeset pre>code::-webkit-scrollbar{width:.2rem;height:.2rem}.md-typeset pre>code::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-typeset pre>code::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@media screen and (max-width: 44.9375em){.md-typeset>pre{margin:1em -0.8rem}.md-typeset>pre code{border-radius:0}}.md-typeset kbd{display:inline-block;padding:0 .6666666667em;font-size:.75em;line-height:1.5;vertical-align:text-top;word-break:break-word;border-radius:.1rem;box-shadow:0 .1rem 0 .05rem var(--md-default-fg-color--lighter),0 .1rem 0 var(--md-default-fg-color--lighter),inset 0 -0.1rem .2rem var(--md-default-bg-color)}.md-typeset mark{padding:0 .25em;word-break:break-word;background-color:rgba(255,235,59,.5);border-radius:.1rem;-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset abbr{text-decoration:none;border-bottom:.05rem dotted var(--md-default-fg-color--light);cursor:help}.md-typeset small{opacity:.75}.md-typeset sup,.md-typeset sub{margin-left:.078125em}[dir=rtl] .md-typeset sup,[dir=rtl] .md-typeset sub{margin-right:.078125em;margin-left:initial}.md-typeset blockquote{padding-left:.6rem;color:var(--md-default-fg-color--light);border-left:.2rem solid var(--md-default-fg-color--lighter)}[dir=rtl] .md-typeset blockquote{padding-right:.6rem;padding-left:initial;border-right:.2rem solid var(--md-default-fg-color--lighter);border-left:initial}.md-typeset ul{list-style-type:disc}.md-typeset ul,.md-typeset ol{margin-left:.625em;padding:0}[dir=rtl] .md-typeset ul,[dir=rtl] .md-typeset ol{margin-right:.625em;margin-left:initial}.md-typeset ul ol,.md-typeset ol ol{list-style-type:lower-alpha}.md-typeset ul ol ol,.md-typeset ol ol ol{list-style-type:lower-roman}.md-typeset ul li,.md-typeset ol li{margin-bottom:.5em;margin-left:1.25em}[dir=rtl] .md-typeset ul li,[dir=rtl] .md-typeset ol li{margin-right:1.25em;margin-left:initial}.md-typeset ul li p,.md-typeset ul li blockquote,.md-typeset ol li p,.md-typeset ol li blockquote{margin:.5em 0}.md-typeset ul li:last-child,.md-typeset ol li:last-child{margin-bottom:0}.md-typeset ul li ul,.md-typeset ul li ol,.md-typeset ol li ul,.md-typeset ol li ol{margin:.5em 0 .5em .625em}[dir=rtl] .md-typeset ul li ul,[dir=rtl] .md-typeset ul li ol,[dir=rtl] .md-typeset ol li ul,[dir=rtl] .md-typeset ol li ol{margin-right:.625em;margin-left:initial}.md-typeset dd{margin:1em 0 1em 1.875em}[dir=rtl] .md-typeset dd{margin-right:1.875em;margin-left:initial}.md-typeset iframe,.md-typeset img,.md-typeset svg{max-width:100%;height:auto}.md-typeset table:not([class]){display:inline-block;max-width:100%;overflow:auto;font-size:.64rem;background:var(--md-default-bg-color);border-radius:.1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .05rem rgba(0,0,0,.1);touch-action:auto}.md-typeset table:not([class])+*{margin-top:1.5em}.md-typeset table:not([class]) th:not([align]),.md-typeset table:not([class]) td:not([align]){text-align:left}[dir=rtl] .md-typeset table:not([class]) th:not([align]),[dir=rtl] .md-typeset table:not([class]) td:not([align]){text-align:right}.md-typeset table:not([class]) th{min-width:5rem;padding:.6rem .8rem;color:var(--md-default-bg-color);vertical-align:top;background-color:var(--md-default-fg-color--light)}.md-typeset table:not([class]) td{padding:.6rem .8rem;vertical-align:top;border-top:.05rem solid var(--md-default-fg-color--lightest)}.md-typeset table:not([class]) tr{transition:background-color 125ms}.md-typeset table:not([class]) tr:hover{background-color:rgba(0,0,0,.035);box-shadow:0 .05rem 0 var(--md-default-bg-color) inset}.md-typeset table:not([class]) tr:first-child td{border-top:0}.md-typeset table:not([class]) a{word-break:normal}.md-typeset__scrollwrap{margin:1em -0.8rem;overflow-x:auto;touch-action:auto}.md-typeset__table{display:inline-block;margin-bottom:.5em;padding:0 .8rem}.md-typeset__table table{display:table;width:100%;margin:0;overflow:hidden}html{height:100%;overflow-x:hidden;font-size:125%;background-color:var(--md-default-bg-color)}@media screen and (min-width: 100em){html{font-size:137.5%}}@media screen and (min-width: 125em){html{font-size:150%}}body{position:relative;display:flex;flex-direction:column;width:100%;min-height:100%;font-size:.5rem}@media screen and (max-width: 59.9375em){body[data-md-state=lock]{position:fixed}}@media print{body{display:block}}hr{display:block;height:.05rem;padding:0;border:0}.md-grid{max-width:61rem;margin-right:auto;margin-left:auto}.md-container{display:flex;flex-direction:column;flex-grow:1}@media print{.md-container{display:block}}.md-main{flex-grow:1}.md-main__inner{display:flex;height:100%;margin-top:1.5rem}.md-ellipsis{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.md-toggle{display:none}.md-overlay{position:fixed;top:0;z-index:3;width:0;height:0;background-color:var(--md-default-fg-color--light);opacity:0;transition:width 0ms 250ms,height 0ms 250ms,opacity 250ms}@media screen and (max-width: 76.1875em){[data-md-toggle=drawer]:checked~.md-overlay{width:100%;height:100%;opacity:1;transition:width 0ms,height 0ms,opacity 250ms}}.md-skip{position:fixed;z-index:-1;margin:.5rem;padding:.3rem .5rem;color:var(--md-default-bg-color);font-size:.64rem;background-color:var(--md-default-fg-color);border-radius:.1rem;transform:translateY(0.4rem);opacity:0}.md-skip:focus{z-index:10;transform:translateY(0);opacity:1;transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1),opacity 175ms 75ms}@page{margin:25mm}.md-announce{overflow:auto;background-color:var(--md-default-fg-color)}.md-announce__inner{margin:.6rem auto;padding:0 .8rem;color:var(--md-default-bg-color);font-size:.7rem}@media print{.md-announce{display:none}}.md-typeset .md-button{display:inline-block;padding:.625em 2em;color:var(--md-primary-fg-color);font-weight:700;border:.1rem solid currentColor;border-radius:.1rem;transition:color 125ms,background-color 125ms,border-color 125ms}.md-typeset .md-button--primary{color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color);border-color:var(--md-primary-fg-color)}.md-typeset .md-button:focus,.md-typeset .md-button:hover{color:var(--md-accent-bg-color);background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color)}.md-clipboard{position:absolute;top:.4rem;right:.5em;z-index:1;width:1.5em;height:1.5em;color:var(--md-default-fg-color--lightest);border-radius:.1rem;cursor:pointer;transition:color 125ms}@media print{.md-clipboard{display:none}}.md-clipboard svg{width:1.125em;height:1.125em}pre:hover .md-clipboard{color:var(--md-default-fg-color--light)}pre .md-clipboard:focus,pre .md-clipboard:hover{color:var(--md-accent-fg-color)}.md-content{flex:1;max-width:100%}@media screen and (min-width: 60em)and (max-width: 76.1875em){.md-content{max-width:calc(100% - 12.1rem)}}@media screen and (min-width: 76.25em){.md-content{max-width:calc(100% - 12.1rem * 2)}}.md-content__inner{margin:0 .8rem 1.2rem;padding-top:.6rem}@media screen and (min-width: 76.25em){.md-content__inner{margin-right:1.2rem;margin-left:1.2rem}}.md-content__inner::before{display:block;height:.4rem;content:""}.md-content__inner>:last-child{margin-bottom:0}.md-content__button{float:right;margin:.4rem 0;margin-left:.4rem;padding:0}[dir=rtl] .md-content__button{float:left;margin-right:.4rem;margin-left:initial}[dir=rtl] .md-content__button svg{transform:scaleX(-1)}.md-typeset .md-content__button{color:var(--md-default-fg-color--lighter)}.md-content__button svg{display:inline;vertical-align:top}@media print{.md-content__button{display:none}}.md-dialog{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);position:fixed;right:.8rem;bottom:.8rem;left:initial;z-index:2;display:block;min-width:11.1rem;padding:.4rem .6rem;color:var(--md-default-bg-color);font-size:.7rem;background:var(--md-default-fg-color);border:none;border-radius:.1rem;transform:translateY(100%);opacity:0;transition:transform 0ms 400ms,opacity 400ms}[dir=rtl] .md-dialog{right:initial;left:.8rem}.md-dialog[data-md-state=open]{transform:translateY(0);opacity:1;transition:transform 400ms cubic-bezier(0.075, 0.85, 0.175, 1),opacity 400ms}@media print{.md-dialog{display:none}}.md-header{position:-webkit-sticky;position:sticky;top:0;right:0;left:0;z-index:2;height:2.4rem;color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color);box-shadow:0 0 .2rem rgba(0,0,0,0),0 .2rem .4rem rgba(0,0,0,0);transition:color 250ms,background-color 250ms}.no-js .md-header{box-shadow:none;transition:none}.md-header[data-md-state=shadow]{box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2);transition:color 250ms,background-color 250ms,box-shadow 250ms}@media print{.md-header{display:none}}.md-header-nav{display:flex;padding:0 .2rem}.md-header-nav__button{position:relative;z-index:1;margin:.2rem;padding:.4rem;cursor:pointer;transition:opacity 250ms}[dir=rtl] .md-header-nav__button svg{transform:scaleX(-1)}.md-header-nav__button:focus,.md-header-nav__button:hover{opacity:.7}.md-header-nav__button.md-logo{margin:.2rem;padding:.4rem}.md-header-nav__button.md-logo img,.md-header-nav__button.md-logo svg{display:block;width:1.2rem;height:1.2rem;fill:currentColor}.no-js .md-header-nav__button[for=__search]{display:none}@media screen and (min-width: 60em){.md-header-nav__button[for=__search]{display:none}}@media screen and (max-width: 76.1875em){.md-header-nav__button.md-logo{display:none}}@media screen and (min-width: 76.25em){.md-header-nav__button[for=__drawer]{display:none}}.md-header-nav__topic{position:absolute;width:100%;transition:transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 150ms}.md-header-nav__topic+.md-header-nav__topic{z-index:-1;transform:translateX(1.25rem);opacity:0;transition:transform 400ms cubic-bezier(1, 0.7, 0.1, 0.1),opacity 150ms;pointer-events:none}[dir=rtl] .md-header-nav__topic+.md-header-nav__topic{transform:translateX(-1.25rem)}.no-js .md-header-nav__topic{position:initial}.no-js .md-header-nav__topic+.md-header-nav__topic{display:none}.md-header-nav__title{flex-grow:1;padding:0 1rem;font-size:.9rem;line-height:2.4rem}.md-header-nav__title[data-md-state=active] .md-header-nav__topic{z-index:-1;transform:translateX(-1.25rem);opacity:0;transition:transform 400ms cubic-bezier(1, 0.7, 0.1, 0.1),opacity 150ms;pointer-events:none}[dir=rtl] .md-header-nav__title[data-md-state=active] .md-header-nav__topic{transform:translateX(1.25rem)}.md-header-nav__title[data-md-state=active] .md-header-nav__topic+.md-header-nav__topic{z-index:0;transform:translateX(0);opacity:1;transition:transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 150ms;pointer-events:initial}.md-header-nav__title>.md-header-nav__ellipsis{position:relative;width:100%;height:100%}.md-header-nav__source{display:none}@media screen and (min-width: 60em){.md-header-nav__source{display:block;width:11.7rem;max-width:11.7rem;margin-left:1rem}[dir=rtl] .md-header-nav__source{margin-right:1rem;margin-left:initial}}@media screen and (min-width: 76.25em){.md-header-nav__source{margin-left:1.4rem}[dir=rtl] .md-header-nav__source{margin-right:1.4rem}}.md-hero{overflow:hidden;color:var(--md-primary-bg-color);font-size:1rem;background-color:var(--md-primary-fg-color);transition:background 250ms}.md-hero__inner{margin-top:1rem;padding:.8rem .8rem .4rem;transition:transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 250ms;transition-delay:100ms}@media screen and (max-width: 76.1875em){.md-hero__inner{margin-top:2.4rem;margin-bottom:1.2rem}}[data-md-state=hidden] .md-hero__inner{transform:translateY(0.625rem);opacity:0;transition:transform 0ms 400ms,opacity 100ms 0ms;pointer-events:none}.md-hero--expand .md-hero__inner{margin-bottom:1.2rem}.md-footer{color:var(--md-default-bg-color);background-color:var(--md-default-fg-color)}@media print{.md-footer{display:none}}.md-footer-nav__inner{padding:.2rem;overflow:auto}.md-footer-nav__link{display:flex;padding-top:1.4rem;padding-bottom:.4rem;transition:opacity 250ms}@media screen and (min-width: 45em){.md-footer-nav__link{width:50%}}.md-footer-nav__link:focus,.md-footer-nav__link:hover{opacity:.7}.md-footer-nav__link--prev{float:left;width:25%}[dir=rtl] .md-footer-nav__link--prev{float:right}[dir=rtl] .md-footer-nav__link--prev svg{transform:scaleX(-1)}@media screen and (max-width: 44.9375em){.md-footer-nav__link--prev .md-footer-nav__title{display:none}}.md-footer-nav__link--next{float:right;width:75%;text-align:right}[dir=rtl] .md-footer-nav__link--next{float:left;text-align:left}[dir=rtl] .md-footer-nav__link--next svg{transform:scaleX(-1)}.md-footer-nav__title{position:relative;flex-grow:1;max-width:calc(100% - 2.4rem);padding:0 1rem;font-size:.9rem;line-height:2.4rem}.md-footer-nav__button{margin:.2rem;padding:.4rem}.md-footer-nav__direction{position:absolute;right:0;left:0;margin-top:-1rem;padding:0 1rem;color:var(--md-default-bg-color--light);font-size:.64rem}.md-footer-meta{background-color:var(--md-default-fg-color--lighter)}.md-footer-meta__inner{display:flex;flex-wrap:wrap;justify-content:space-between;padding:.2rem}html .md-footer-meta.md-typeset a{color:var(--md-default-bg-color--light)}html .md-footer-meta.md-typeset a:focus,html .md-footer-meta.md-typeset a:hover{color:var(--md-default-bg-color)}.md-footer-copyright{width:100%;margin:auto .6rem;padding:.4rem 0;color:var(--md-default-bg-color--lighter);font-size:.64rem}@media screen and (min-width: 45em){.md-footer-copyright{width:auto}}.md-footer-copyright__highlight{color:var(--md-default-bg-color--light)}.md-footer-social{margin:0 .4rem;padding:.2rem 0 .6rem}@media screen and (min-width: 45em){.md-footer-social{padding:.6rem 0}}.md-footer-social__link{display:inline-block;width:1.6rem;height:1.6rem;text-align:center}.md-footer-social__link::before{line-height:1.9}.md-footer-social__link svg{max-height:.8rem;vertical-align:-25%;fill:currentColor}.md-nav{font-size:.7rem;line-height:1.3}.md-nav__title{display:block;padding:0 .6rem;overflow:hidden;font-weight:700;text-overflow:ellipsis}.md-nav__title .md-nav__button{display:none}.md-nav__title .md-nav__button img{width:100%;height:auto}.md-nav__title .md-nav__button.md-logo img,.md-nav__title .md-nav__button.md-logo svg{display:block;width:2.4rem;height:2.4rem}.md-nav__title .md-nav__button.md-logo svg{fill:currentColor}.md-nav__list{margin:0;padding:0;list-style:none}.md-nav__item{padding:0 .6rem}.md-nav__item:last-child{padding-bottom:.6rem}.md-nav__item .md-nav__item{padding-right:0}[dir=rtl] .md-nav__item .md-nav__item{padding-right:.6rem;padding-left:0}.md-nav__item .md-nav__item:last-child{padding-bottom:0}.md-nav__link{display:block;margin-top:.625em;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:color 125ms;scroll-snap-align:start}html .md-nav__link[for=__toc]{display:none}html .md-nav__link[for=__toc]~.md-nav{display:none}.md-nav__link[data-md-state=blur]{color:var(--md-default-fg-color--light)}.md-nav__item .md-nav__link--active{color:var(--md-primary-fg-color)}.md-nav__item--nested>.md-nav__link{color:inherit}.md-nav__link:focus,.md-nav__link:hover{color:var(--md-accent-fg-color)}.md-nav__source{display:none}@media screen and (max-width: 76.1875em){.md-nav{background-color:var(--md-default-bg-color)}.md-nav--primary,.md-nav--primary .md-nav{position:absolute;top:0;right:0;left:0;z-index:1;display:flex;flex-direction:column;height:100%}.md-nav--primary .md-nav__title,.md-nav--primary .md-nav__item{font-size:.8rem;line-height:1.5}.md-nav--primary .md-nav__title{position:relative;height:5.6rem;padding:3rem .8rem .2rem;color:var(--md-default-fg-color--light);font-weight:400;line-height:2.4rem;white-space:nowrap;background-color:var(--md-default-fg-color--lightest);cursor:pointer}.md-nav--primary .md-nav__title .md-nav__icon{position:absolute;top:.4rem;left:.4rem;display:block;width:1.2rem;height:1.2rem;margin:.2rem}[dir=rtl] .md-nav--primary .md-nav__title .md-nav__icon{right:.4rem;left:initial}.md-nav--primary .md-nav__title~.md-nav__list{overflow-y:auto;background-color:var(--md-default-bg-color);box-shadow:inset 0 .05rem 0 var(--md-default-fg-color--lightest);-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;touch-action:pan-y}.md-nav--primary .md-nav__title~.md-nav__list>.md-nav__item:first-child{border-top:0}.md-nav--primary .md-nav__title[for=__drawer]{position:relative;color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color)}.md-nav--primary .md-nav__title[for=__drawer] .md-nav__button{position:absolute;top:.2rem;left:.2rem;display:block;margin:.2rem;padding:.4rem;font-size:2.4rem}html [dir=rtl] .md-nav--primary .md-nav__title[for=__drawer] .md-nav__button{right:.2rem;left:initial}.md-nav--primary .md-nav__list{flex:1}.md-nav--primary .md-nav__item{padding:0;border-top:.05rem solid var(--md-default-fg-color--lightest)}[dir=rtl] .md-nav--primary .md-nav__item{padding:0}.md-nav--primary .md-nav__item--nested>.md-nav__link{padding-right:2.4rem}[dir=rtl] .md-nav--primary .md-nav__item--nested>.md-nav__link{padding-right:.8rem;padding-left:2.4rem}.md-nav--primary .md-nav__item--active>.md-nav__link{color:var(--md-primary-fg-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:focus,.md-nav--primary .md-nav__item--active>.md-nav__link:hover{color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__link{position:relative;margin-top:0;padding:.6rem .8rem}.md-nav--primary .md-nav__link .md-nav__icon{position:absolute;top:50%;right:.6rem;margin-top:-0.6rem;color:inherit;font-size:1.2rem}[dir=rtl] .md-nav--primary .md-nav__link .md-nav__icon{right:initial;left:.6rem}[dir=rtl] .md-nav--primary .md-nav__icon svg{transform:scale(-1)}.md-nav--primary .md-nav--secondary .md-nav__link{position:static}.md-nav--primary .md-nav--secondary .md-nav{position:static;background-color:transparent}.md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-left:1.4rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-right:1.4rem;padding-left:initial}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-left:2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-right:2rem;padding-left:initial}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-left:2.6rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-right:2.6rem;padding-left:initial}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-left:3.2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-right:3.2rem;padding-left:initial}.md-nav__toggle~.md-nav{display:flex;transform:translateX(100%);opacity:0;transition:transform 250ms cubic-bezier(0.8, 0, 0.6, 1),opacity 125ms 50ms}[dir=rtl] .md-nav__toggle~.md-nav{transform:translateX(-100%)}.md-nav__toggle:checked~.md-nav{transform:translateX(0);opacity:1;transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1),opacity 125ms 125ms}.md-nav__toggle:checked~.md-nav>.md-nav__list{-webkit-backface-visibility:hidden;backface-visibility:hidden}}@media screen and (max-width: 59.9375em){html .md-nav__link[for=__toc]{display:block;padding-right:2.4rem}html .md-nav__link[for=__toc]+.md-nav__link{display:none}html .md-nav__link[for=__toc]~.md-nav{display:flex}html [dir=rtl] .md-nav__link{padding-right:.8rem;padding-left:2.4rem}.md-nav__source{display:block;padding:0 .2rem;color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color--dark)}}@media screen and (min-width: 60em){.md-nav--secondary .md-nav__title[for=__toc]{scroll-snap-align:start}.md-nav--secondary .md-nav__title .md-nav__icon{display:none}}@media screen and (min-width: 76.25em){.md-nav{transition:max-height 250ms cubic-bezier(0.86, 0, 0.07, 1)}.md-nav--primary .md-nav__title[for=__drawer]{scroll-snap-align:start}.md-nav--primary .md-nav__title .md-nav__icon{display:none}.md-nav__toggle~.md-nav{display:none}.md-nav__toggle:checked~.md-nav{display:block}.md-nav__item--nested>.md-nav>.md-nav__title{display:none}.md-nav__icon{float:right;height:.9rem;transition:transform 250ms}[dir=rtl] .md-nav__icon{float:left;transform:rotate(180deg)}.md-nav__icon svg{display:inline-block;width:.9rem;height:.9rem;vertical-align:-0.1rem}.md-nav__item--nested .md-nav__toggle:checked~.md-nav__link .md-nav__icon{transform:rotate(90deg)}}.md-search{position:relative}.no-js .md-search{display:none}@media screen and (min-width: 60em){.md-search{padding:.2rem 0}}.md-search__overlay{z-index:1;opacity:0}@media screen and (max-width: 59.9375em){.md-search__overlay{position:absolute;top:.2rem;left:-2.2rem;width:2rem;height:2rem;overflow:hidden;background-color:var(--md-default-bg-color);border-radius:1rem;transform-origin:center;transition:transform 300ms 100ms,opacity 200ms 200ms;pointer-events:none}[dir=rtl] .md-search__overlay{right:-2.2rem;left:initial}[data-md-toggle=search]:checked~.md-header .md-search__overlay{opacity:1;transition:transform 400ms,opacity 100ms}}@media screen and (max-width: 29.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(45)}}@media screen and (min-width: 30em)and (max-width: 44.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(60)}}@media screen and (min-width: 45em)and (max-width: 59.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(75)}}@media screen and (min-width: 60em){.md-search__overlay{position:fixed;top:0;left:0;width:0;height:0;background-color:var(--md-default-fg-color--light);cursor:pointer;transition:width 0ms 250ms,height 0ms 250ms,opacity 250ms}[dir=rtl] .md-search__overlay{right:0;left:initial}[data-md-toggle=search]:checked~.md-header .md-search__overlay{width:100%;height:100%;opacity:1;transition:width 0ms,height 0ms,opacity 250ms}}.md-search__inner{-webkit-backface-visibility:hidden;backface-visibility:hidden}@media screen and (max-width: 59.9375em){.md-search__inner{position:fixed;top:0;left:100%;z-index:2;width:100%;height:100%;transform:translateX(5%);opacity:0;transition:right 0ms 300ms,left 0ms 300ms,transform 150ms 150ms cubic-bezier(0.4, 0, 0.2, 1),opacity 150ms 150ms}[data-md-toggle=search]:checked~.md-header .md-search__inner{left:0;transform:translateX(0);opacity:1;transition:right 0ms 0ms,left 0ms 0ms,transform 150ms 150ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 150ms 150ms}[dir=rtl] [data-md-toggle=search]:checked~.md-header .md-search__inner{right:0;left:initial}html [dir=rtl] .md-search__inner{right:100%;left:initial;transform:translateX(-5%)}}@media screen and (min-width: 60em){.md-search__inner{position:relative;float:right;width:11.7rem;padding:.1rem 0;transition:width 250ms cubic-bezier(0.1, 0.7, 0.1, 1)}[dir=rtl] .md-search__inner{float:left}}@media screen and (min-width: 60em)and (max-width: 76.1875em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:23.4rem}}@media screen and (min-width: 76.25em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:34.4rem}}.md-search__form{position:relative}@media screen and (min-width: 60em){.md-search__form{border-radius:.1rem}}.md-search__input{position:relative;z-index:2;padding:0 2.2rem 0 3.6rem;text-overflow:ellipsis}[dir=rtl] .md-search__input{padding:0 3.6rem 0 2.2rem}.md-search__input::-webkit-input-placeholder{-webkit-transition:color 250ms;transition:color 250ms}.md-search__input::-moz-placeholder{-moz-transition:color 250ms;transition:color 250ms}.md-search__input::-ms-input-placeholder{-ms-transition:color 250ms;transition:color 250ms}.md-search__input::placeholder{transition:color 250ms}.md-search__input::-webkit-input-placeholder{color:var(--md-default-fg-color--light)}.md-search__input::-moz-placeholder{color:var(--md-default-fg-color--light)}.md-search__input::-ms-input-placeholder{color:var(--md-default-fg-color--light)}.md-search__input~.md-search__icon,.md-search__input::placeholder{color:var(--md-default-fg-color--light)}.md-search__input::-ms-clear{display:none}@media screen and (max-width: 59.9375em){.md-search__input{width:100%;height:2.4rem;font-size:.9rem}}@media screen and (min-width: 60em){.md-search__input{width:100%;height:1.8rem;padding-left:2.2rem;color:inherit;font-size:.8rem;background-color:var(--md-default-fg-color--lighter);border-radius:.1rem;transition:color 250ms,background-color 250ms}[dir=rtl] .md-search__input{padding-right:2.2rem}.md-search__input+.md-search__icon{color:var(--md-primary-bg-color)}.md-search__input::-webkit-input-placeholder{color:var(--md-primary-bg-color--light)}.md-search__input::-moz-placeholder{color:var(--md-primary-bg-color--light)}.md-search__input::-ms-input-placeholder{color:var(--md-primary-bg-color--light)}.md-search__input::placeholder{color:var(--md-primary-bg-color--light)}.md-search__input:hover{background-color:var(--md-default-bg-color--lightest)}[data-md-toggle=search]:checked~.md-header .md-search__input{color:var(--md-default-fg-color);text-overflow:clip;background-color:var(--md-default-bg-color);border-radius:.1rem .1rem 0 0}[data-md-toggle=search]:checked~.md-header .md-search__input::-webkit-input-placeholder{color:var(--md-default-fg-color--light)}[data-md-toggle=search]:checked~.md-header .md-search__input::-moz-placeholder{color:var(--md-default-fg-color--light)}[data-md-toggle=search]:checked~.md-header .md-search__input::-ms-input-placeholder{color:var(--md-default-fg-color--light)}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon,[data-md-toggle=search]:checked~.md-header .md-search__input::placeholder{color:var(--md-default-fg-color--light)}}.md-search__icon{position:absolute;z-index:2;width:1.2rem;height:1.2rem;cursor:pointer;transition:color 250ms,opacity 250ms}.md-search__icon:hover{opacity:.7}.md-search__icon[for=__search]{top:.3rem;left:.5rem}[dir=rtl] .md-search__icon[for=__search]{right:.5rem;left:initial}[dir=rtl] .md-search__icon[for=__search] svg{transform:scaleX(-1)}@media screen and (max-width: 59.9375em){.md-search__icon[for=__search]{top:.6rem;left:.8rem}[dir=rtl] .md-search__icon[for=__search]{right:.8rem;left:initial}.md-search__icon[for=__search] svg:first-child{display:none}}@media screen and (min-width: 60em){.md-search__icon[for=__search]{pointer-events:none}.md-search__icon[for=__search] svg:last-child{display:none}}.md-search__icon[type=reset]{top:.3rem;right:.5rem;transform:scale(0.75);opacity:0;transition:transform 150ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 150ms;pointer-events:none}[dir=rtl] .md-search__icon[type=reset]{right:initial;left:.5rem}@media screen and (max-width: 59.9375em){.md-search__icon[type=reset]{top:.6rem;right:.8rem}[dir=rtl] .md-search__icon[type=reset]{right:initial;left:.8rem}}[data-md-toggle=search]:checked~.md-header .md-search__input:not(:placeholder-shown)~.md-search__icon[type=reset]{transform:scale(1);opacity:1;pointer-events:initial}[data-md-toggle=search]:checked~.md-header .md-search__input:not(:placeholder-shown)~.md-search__icon[type=reset]:hover{opacity:.7}.md-search__output{position:absolute;z-index:1;width:100%;overflow:hidden;border-radius:0 0 .1rem .1rem}@media screen and (max-width: 59.9375em){.md-search__output{top:2.4rem;bottom:0}}@media screen and (min-width: 60em){.md-search__output{top:1.9rem;opacity:0;transition:opacity 400ms}[data-md-toggle=search]:checked~.md-header .md-search__output{box-shadow:0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.4);opacity:1}}.md-search__scrollwrap{height:100%;overflow-y:auto;background-color:var(--md-default-bg-color);box-shadow:inset 0 .05rem 0 var(--md-default-fg-color--lightest);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;touch-action:pan-y}@media(-webkit-max-device-pixel-ratio: 1), (max-resolution: 1dppx){.md-search__scrollwrap{transform:translateZ(0)}}@media screen and (min-width: 60em)and (max-width: 76.1875em){.md-search__scrollwrap{width:23.4rem}}@media screen and (min-width: 76.25em){.md-search__scrollwrap{width:34.4rem}}@media screen and (min-width: 60em){.md-search__scrollwrap{max-height:0}[data-md-toggle=search]:checked~.md-header .md-search__scrollwrap{max-height:75vh}.md-search__scrollwrap::-webkit-scrollbar{width:.2rem;height:.2rem}.md-search__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}}.md-search-result{color:var(--md-default-fg-color);word-break:break-word}.md-search-result__meta{padding:0 .8rem;color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.8rem;background-color:var(--md-default-fg-color--lightest);scroll-snap-align:start}@media screen and (min-width: 60em){.md-search-result__meta{padding-left:2.2rem}[dir=rtl] .md-search-result__meta{padding-right:2.2rem;padding-left:initial}}.md-search-result__list{margin:0;padding:0;list-style:none;border-top:.05rem solid var(--md-default-fg-color--lightest)}.md-search-result__item{box-shadow:0 -0.05rem 0 var(--md-default-fg-color--lightest)}.md-search-result__link{display:block;outline:0;transition:background 250ms;scroll-snap-align:start}.md-search-result__link:focus,.md-search-result__link:hover{background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:focus .md-search-result__article::before,.md-search-result__link:hover .md-search-result__article::before{opacity:.7}.md-search-result__link:last-child .md-search-result__teaser{margin-bottom:.6rem}.md-search-result__article{position:relative;padding:0 .8rem;overflow:hidden}@media screen and (min-width: 60em){.md-search-result__article{padding-left:2.2rem}[dir=rtl] .md-search-result__article{padding-right:2.2rem;padding-left:.8rem}}.md-search-result__article--document .md-search-result__title{margin:.55rem 0;font-weight:400;font-size:.8rem;line-height:1.4}.md-search-result__icon{position:absolute;left:0;margin:.1rem;padding:.4rem;color:var(--md-default-fg-color--light)}[dir=rtl] .md-search-result__icon{right:0;left:initial}[dir=rtl] .md-search-result__icon svg{transform:scaleX(-1)}@media screen and (max-width: 59.9375em){.md-search-result__icon{display:none}}.md-search-result__title{margin:.5em 0;font-weight:700;font-size:.64rem;line-height:1.4}.md-search-result__teaser{display:-webkit-box;max-height:1.65rem;margin:.5em 0;overflow:hidden;color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.4;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:2}@media screen and (max-width: 44.9375em){.md-search-result__teaser{max-height:2.5rem;-webkit-line-clamp:3}}@media screen and (min-width: 60em)and (max-width: 76.1875em){.md-search-result__teaser{max-height:2.5rem;-webkit-line-clamp:3}}.md-search-result em{font-weight:700;font-style:normal;text-decoration:underline}.md-sidebar{position:-webkit-sticky;position:sticky;top:2.4rem;width:12.1rem;padding:1.2rem 0;overflow:hidden}@media print{.md-sidebar{display:none}}@media screen and (max-width: 76.1875em){.md-sidebar--primary{position:fixed;top:0;left:-12.1rem;z-index:3;width:12.1rem;height:100%;background-color:var(--md-default-bg-color);transform:translateX(0);transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 250ms}[dir=rtl] .md-sidebar--primary{right:-12.1rem;left:initial}[data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{box-shadow:0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12),0 5px 5px -3px rgba(0,0,0,.4);transform:translateX(12.1rem)}[dir=rtl] [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{transform:translateX(-12.1rem)}.md-sidebar--primary .md-sidebar__scrollwrap{overflow:hidden}}.md-sidebar--secondary{display:none;order:2}@media screen and (min-width: 60em){.md-sidebar--secondary{display:block}.md-sidebar--secondary .md-sidebar__scrollwrap{touch-action:pan-y}}.md-sidebar__scrollwrap{max-height:100%;margin:0 .2rem;overflow-y:auto;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory}@media screen and (max-width: 76.1875em){.md-sidebar--primary .md-sidebar__scrollwrap{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;-webkit-scroll-snap-type:none;-ms-scroll-snap-type:none;scroll-snap-type:none}}.md-sidebar__scrollwrap::-webkit-scrollbar{width:.2rem;height:.2rem}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@-webkit-keyframes md-source__facts--done{0%{height:0}100%{height:.65rem}}@keyframes md-source__facts--done{0%{height:0}100%{height:.65rem}}@-webkit-keyframes md-source__fact--done{0%{transform:translateY(100%);opacity:0}50%{opacity:0}100%{transform:translateY(0%);opacity:1}}@keyframes md-source__fact--done{0%{transform:translateY(100%);opacity:0}50%{opacity:0}100%{transform:translateY(0%);opacity:1}}.md-source{display:block;font-size:.65rem;line-height:1.2;white-space:nowrap;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:opacity 250ms}.md-source:hover{opacity:.7}.md-source__icon{display:inline-block;width:2.4rem;height:2.4rem;vertical-align:middle}.md-source__icon svg{margin-top:.6rem;margin-left:.6rem}[dir=rtl] .md-source__icon svg{margin-right:.6rem;margin-left:initial}.md-source__icon+.md-source__repository{margin-left:-2rem;padding-left:2rem}[dir=rtl] .md-source__icon+.md-source__repository{margin-right:-2rem;margin-left:initial;padding-right:2rem;padding-left:initial}.md-source__repository{display:inline-block;max-width:calc(100% - 1.2rem);margin-left:.6rem;overflow:hidden;font-weight:700;text-overflow:ellipsis;vertical-align:middle}.md-source__facts{margin:0;padding:0;overflow:hidden;font-weight:700;font-size:.55rem;list-style-type:none;opacity:.75}[data-md-state=done] .md-source__facts{-webkit-animation:md-source__facts--done 250ms ease-in;animation:md-source__facts--done 250ms ease-in}.md-source__fact{float:left}[dir=rtl] .md-source__fact{float:right}[data-md-state=done] .md-source__fact{-webkit-animation:md-source__fact--done 400ms ease-out;animation:md-source__fact--done 400ms ease-out}.md-source__fact::before{margin:0 .1rem;content:"·"}.md-source__fact:first-child::before{display:none}.md-tabs{width:100%;overflow:auto;color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color);transition:background 250ms}.no-js .md-tabs{transition:none}@media screen and (max-width: 76.1875em){.md-tabs{display:none}}@media print{.md-tabs{display:none}}.md-tabs__list{margin:0;margin-left:.2rem;padding:0;white-space:nowrap;list-style:none;contain:content}[dir=rtl] .md-tabs__list{margin-right:.2rem;margin-left:initial}.md-tabs__item{display:inline-block;height:2.4rem;padding-right:.6rem;padding-left:.6rem}.md-tabs__link{display:block;margin-top:.8rem;font-size:.7rem;opacity:.7;transition:transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 250ms}.no-js .md-tabs__link{transition:none}.md-tabs__link--active,.md-tabs__link:hover{color:inherit;opacity:1}.md-tabs__item:nth-child(2) .md-tabs__link{transition-delay:20ms}.md-tabs__item:nth-child(3) .md-tabs__link{transition-delay:40ms}.md-tabs__item:nth-child(4) .md-tabs__link{transition-delay:60ms}.md-tabs__item:nth-child(5) .md-tabs__link{transition-delay:80ms}.md-tabs__item:nth-child(6) .md-tabs__link{transition-delay:100ms}.md-tabs__item:nth-child(7) .md-tabs__link{transition-delay:120ms}.md-tabs__item:nth-child(8) .md-tabs__link{transition-delay:140ms}.md-tabs__item:nth-child(9) .md-tabs__link{transition-delay:160ms}.md-tabs__item:nth-child(10) .md-tabs__link{transition-delay:180ms}.md-tabs__item:nth-child(11) .md-tabs__link{transition-delay:200ms}.md-tabs__item:nth-child(12) .md-tabs__link{transition-delay:220ms}.md-tabs__item:nth-child(13) .md-tabs__link{transition-delay:240ms}.md-tabs__item:nth-child(14) .md-tabs__link{transition-delay:260ms}.md-tabs__item:nth-child(15) .md-tabs__link{transition-delay:280ms}.md-tabs__item:nth-child(16) .md-tabs__link{transition-delay:300ms}.md-tabs[data-md-state=hidden]{pointer-events:none}.md-tabs[data-md-state=hidden] .md-tabs__link{transform:translateY(50%);opacity:0;transition:color 250ms,transform 0ms 400ms,opacity 100ms}@media screen and (min-width: 76.25em){.md-tabs~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--nested{display:none}.md-tabs--active~.md-main .md-nav--primary .md-nav__title{display:block;padding:0 .6rem;pointer-events:none;scroll-snap-align:start}.md-tabs--active~.md-main .md-nav--primary .md-nav__title[for=__drawer]{display:none}.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item{display:none}.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--active{display:block;padding:0}.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--active>.md-nav__link{display:none}.md-tabs--active~.md-main .md-nav[data-md-level="1"]{display:block}.md-tabs--active~.md-main .md-nav[data-md-level="1"]>.md-nav__list>.md-nav__item{padding:0 .6rem}.md-tabs--active~.md-main .md-nav[data-md-level="1"] .md-nav .md-nav__title{display:none}}:root{--md-admonition-icon--note: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--abstract: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--info: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--tip: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--success: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--question: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--warning: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--failure: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--danger: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--bug: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--example: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--quote: url('data:image/svg+xml;charset=utf-8,')}.md-typeset .admonition,.md-typeset details{margin:1.5625em 0;padding:0 .6rem;overflow:hidden;font-size:.64rem;page-break-inside:avoid;border-left:.2rem solid #448aff;border-radius:.1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .05rem rgba(0,0,0,.1)}[dir=rtl] .md-typeset .admonition,[dir=rtl] .md-typeset details{border-right:.2rem solid #448aff;border-left:none}@media print{.md-typeset .admonition,.md-typeset details{box-shadow:none}}html .md-typeset .admonition>:last-child,html .md-typeset details>:last-child{margin-bottom:.6rem}.md-typeset .admonition .admonition,.md-typeset details .admonition,.md-typeset .admonition details,.md-typeset details details{margin:1em 0}.md-typeset .admonition .md-typeset__scrollwrap,.md-typeset details .md-typeset__scrollwrap{margin:1em -0.6rem}.md-typeset .admonition .md-typeset__table,.md-typeset details .md-typeset__table{padding:0 .6rem}.md-typeset .admonition-title,.md-typeset summary{position:relative;margin:0 -0.6rem;padding:.4rem .6rem .4rem 2rem;font-weight:700;background-color:rgba(68,138,255,.1)}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{padding:.4rem 2rem .4rem .6rem}html .md-typeset .admonition-title:last-child,html .md-typeset summary:last-child{margin-bottom:0}.md-typeset .admonition-title::before,.md-typeset summary::before{position:absolute;left:.6rem;width:1rem;height:1rem;background-color:#448aff;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);content:""}[dir=rtl] .md-typeset .admonition-title::before,[dir=rtl] .md-typeset summary::before{right:.6rem;left:initial}.md-typeset .admonition-title code,.md-typeset summary code{margin:initial;padding:initial;color:currentColor;background-color:transparent;border-radius:initial;box-shadow:none}.md-typeset .admonition.note,.md-typeset details.note{border-color:#448aff}.md-typeset .note>.admonition-title,.md-typeset .note>summary{background-color:rgba(68,138,255,.1)}.md-typeset .note>.admonition-title::before,.md-typeset .note>summary::before{background-color:#448aff;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note)}.md-typeset .admonition.abstract,.md-typeset details.abstract,.md-typeset .admonition.tldr,.md-typeset details.tldr,.md-typeset .admonition.summary,.md-typeset details.summary{border-color:#00b0ff}.md-typeset .abstract>.admonition-title,.md-typeset .abstract>summary,.md-typeset .tldr>.admonition-title,.md-typeset .tldr>summary,.md-typeset .summary>.admonition-title,.md-typeset .summary>summary{background-color:rgba(0,176,255,.1)}.md-typeset .abstract>.admonition-title::before,.md-typeset .abstract>summary::before,.md-typeset .tldr>.admonition-title::before,.md-typeset .tldr>summary::before,.md-typeset .summary>.admonition-title::before,.md-typeset .summary>summary::before{background-color:#00b0ff;-webkit-mask-image:var(--md-admonition-icon--abstract);mask-image:var(--md-admonition-icon--abstract)}.md-typeset .admonition.info,.md-typeset details.info,.md-typeset .admonition.todo,.md-typeset details.todo{border-color:#00b8d4}.md-typeset .info>.admonition-title,.md-typeset .info>summary,.md-typeset .todo>.admonition-title,.md-typeset .todo>summary{background-color:rgba(0,184,212,.1)}.md-typeset .info>.admonition-title::before,.md-typeset .info>summary::before,.md-typeset .todo>.admonition-title::before,.md-typeset .todo>summary::before{background-color:#00b8d4;-webkit-mask-image:var(--md-admonition-icon--info);mask-image:var(--md-admonition-icon--info)}.md-typeset .admonition.tip,.md-typeset details.tip,.md-typeset .admonition.important,.md-typeset details.important,.md-typeset .admonition.hint,.md-typeset details.hint{border-color:#00bfa5}.md-typeset .tip>.admonition-title,.md-typeset .tip>summary,.md-typeset .important>.admonition-title,.md-typeset .important>summary,.md-typeset .hint>.admonition-title,.md-typeset .hint>summary{background-color:rgba(0,191,165,.1)}.md-typeset .tip>.admonition-title::before,.md-typeset .tip>summary::before,.md-typeset .important>.admonition-title::before,.md-typeset .important>summary::before,.md-typeset .hint>.admonition-title::before,.md-typeset .hint>summary::before{background-color:#00bfa5;-webkit-mask-image:var(--md-admonition-icon--tip);mask-image:var(--md-admonition-icon--tip)}.md-typeset .admonition.success,.md-typeset details.success,.md-typeset .admonition.done,.md-typeset details.done,.md-typeset .admonition.check,.md-typeset details.check{border-color:#00c853}.md-typeset .success>.admonition-title,.md-typeset .success>summary,.md-typeset .done>.admonition-title,.md-typeset .done>summary,.md-typeset .check>.admonition-title,.md-typeset .check>summary{background-color:rgba(0,200,83,.1)}.md-typeset .success>.admonition-title::before,.md-typeset .success>summary::before,.md-typeset .done>.admonition-title::before,.md-typeset .done>summary::before,.md-typeset .check>.admonition-title::before,.md-typeset .check>summary::before{background-color:#00c853;-webkit-mask-image:var(--md-admonition-icon--success);mask-image:var(--md-admonition-icon--success)}.md-typeset .admonition.question,.md-typeset details.question,.md-typeset .admonition.faq,.md-typeset details.faq,.md-typeset .admonition.help,.md-typeset details.help{border-color:#64dd17}.md-typeset .question>.admonition-title,.md-typeset .question>summary,.md-typeset .faq>.admonition-title,.md-typeset .faq>summary,.md-typeset .help>.admonition-title,.md-typeset .help>summary{background-color:rgba(100,221,23,.1)}.md-typeset .question>.admonition-title::before,.md-typeset .question>summary::before,.md-typeset .faq>.admonition-title::before,.md-typeset .faq>summary::before,.md-typeset .help>.admonition-title::before,.md-typeset .help>summary::before{background-color:#64dd17;-webkit-mask-image:var(--md-admonition-icon--question);mask-image:var(--md-admonition-icon--question)}.md-typeset .admonition.warning,.md-typeset details.warning,.md-typeset .admonition.attention,.md-typeset details.attention,.md-typeset .admonition.caution,.md-typeset details.caution{border-color:#ff9100}.md-typeset .warning>.admonition-title,.md-typeset .warning>summary,.md-typeset .attention>.admonition-title,.md-typeset .attention>summary,.md-typeset .caution>.admonition-title,.md-typeset .caution>summary{background-color:rgba(255,145,0,.1)}.md-typeset .warning>.admonition-title::before,.md-typeset .warning>summary::before,.md-typeset .attention>.admonition-title::before,.md-typeset .attention>summary::before,.md-typeset .caution>.admonition-title::before,.md-typeset .caution>summary::before{background-color:#ff9100;-webkit-mask-image:var(--md-admonition-icon--warning);mask-image:var(--md-admonition-icon--warning)}.md-typeset .admonition.failure,.md-typeset details.failure,.md-typeset .admonition.missing,.md-typeset details.missing,.md-typeset .admonition.fail,.md-typeset details.fail{border-color:#ff5252}.md-typeset .failure>.admonition-title,.md-typeset .failure>summary,.md-typeset .missing>.admonition-title,.md-typeset .missing>summary,.md-typeset .fail>.admonition-title,.md-typeset .fail>summary{background-color:rgba(255,82,82,.1)}.md-typeset .failure>.admonition-title::before,.md-typeset .failure>summary::before,.md-typeset .missing>.admonition-title::before,.md-typeset .missing>summary::before,.md-typeset .fail>.admonition-title::before,.md-typeset .fail>summary::before{background-color:#ff5252;-webkit-mask-image:var(--md-admonition-icon--failure);mask-image:var(--md-admonition-icon--failure)}.md-typeset .admonition.danger,.md-typeset details.danger,.md-typeset .admonition.error,.md-typeset details.error{border-color:#ff1744}.md-typeset .danger>.admonition-title,.md-typeset .danger>summary,.md-typeset .error>.admonition-title,.md-typeset .error>summary{background-color:rgba(255,23,68,.1)}.md-typeset .danger>.admonition-title::before,.md-typeset .danger>summary::before,.md-typeset .error>.admonition-title::before,.md-typeset .error>summary::before{background-color:#ff1744;-webkit-mask-image:var(--md-admonition-icon--danger);mask-image:var(--md-admonition-icon--danger)}.md-typeset .admonition.bug,.md-typeset details.bug{border-color:#f50057}.md-typeset .bug>.admonition-title,.md-typeset .bug>summary{background-color:rgba(245,0,87,.1)}.md-typeset .bug>.admonition-title::before,.md-typeset .bug>summary::before{background-color:#f50057;-webkit-mask-image:var(--md-admonition-icon--bug);mask-image:var(--md-admonition-icon--bug)}.md-typeset .admonition.example,.md-typeset details.example{border-color:#651fff}.md-typeset .example>.admonition-title,.md-typeset .example>summary{background-color:rgba(101,31,255,.1)}.md-typeset .example>.admonition-title::before,.md-typeset .example>summary::before{background-color:#651fff;-webkit-mask-image:var(--md-admonition-icon--example);mask-image:var(--md-admonition-icon--example)}.md-typeset .admonition.quote,.md-typeset details.quote,.md-typeset .admonition.cite,.md-typeset details.cite{border-color:#9e9e9e}.md-typeset .quote>.admonition-title,.md-typeset .quote>summary,.md-typeset .cite>.admonition-title,.md-typeset .cite>summary{background-color:rgba(158,158,158,.1)}.md-typeset .quote>.admonition-title::before,.md-typeset .quote>summary::before,.md-typeset .cite>.admonition-title::before,.md-typeset .cite>summary::before{background-color:#9e9e9e;-webkit-mask-image:var(--md-admonition-icon--quote);mask-image:var(--md-admonition-icon--quote)}.codehilite .o,.highlight .o{color:inherit}.codehilite .ow,.highlight .ow{color:inherit}.codehilite .ge,.highlight .ge{color:#000}.codehilite .gr,.highlight .gr{color:#a00}.codehilite .gh,.highlight .gh{color:#999}.codehilite .go,.highlight .go{color:#888}.codehilite .gp,.highlight .gp{color:#555}.codehilite .gs,.highlight .gs{color:inherit}.codehilite .gu,.highlight .gu{color:#aaa}.codehilite .gt,.highlight .gt{color:#a00}.codehilite .gd,.highlight .gd{background-color:#fdd}.codehilite .gi,.highlight .gi{background-color:#dfd}.codehilite .k,.highlight .k{color:#3b78e7}.codehilite .kc,.highlight .kc{color:#a71d5d}.codehilite .kd,.highlight .kd{color:#3b78e7}.codehilite .kn,.highlight .kn{color:#3b78e7}.codehilite .kp,.highlight .kp{color:#a71d5d}.codehilite .kr,.highlight .kr{color:#3e61a2}.codehilite .kt,.highlight .kt{color:#3e61a2}.codehilite .c,.highlight .c{color:#999}.codehilite .cm,.highlight .cm{color:#999}.codehilite .cp,.highlight .cp{color:#666}.codehilite .c1,.highlight .c1{color:#999}.codehilite .ch,.highlight .ch{color:#999}.codehilite .cs,.highlight .cs{color:#999}.codehilite .na,.highlight .na{color:#c2185b}.codehilite .nb,.highlight .nb{color:#c2185b}.codehilite .bp,.highlight .bp{color:#3e61a2}.codehilite .nc,.highlight .nc{color:#c2185b}.codehilite .no,.highlight .no{color:#3e61a2}.codehilite .nd,.highlight .nd{color:#666}.codehilite .ni,.highlight .ni{color:#666}.codehilite .ne,.highlight .ne{color:#c2185b}.codehilite .nf,.highlight .nf{color:#c2185b}.codehilite .nl,.highlight .nl{color:#3b5179}.codehilite .nn,.highlight .nn{color:#ec407a}.codehilite .nt,.highlight .nt{color:#3b78e7}.codehilite .nv,.highlight .nv{color:#3e61a2}.codehilite .vc,.highlight .vc{color:#3e61a2}.codehilite .vg,.highlight .vg{color:#3e61a2}.codehilite .vi,.highlight .vi{color:#3e61a2}.codehilite .nx,.highlight .nx{color:#ec407a}.codehilite .m,.highlight .m{color:#e74c3c}.codehilite .mf,.highlight .mf{color:#e74c3c}.codehilite .mh,.highlight .mh{color:#e74c3c}.codehilite .mi,.highlight .mi{color:#e74c3c}.codehilite .il,.highlight .il{color:#e74c3c}.codehilite .mo,.highlight .mo{color:#e74c3c}.codehilite .s,.highlight .s{color:#0d904f}.codehilite .sb,.highlight .sb{color:#0d904f}.codehilite .sc,.highlight .sc{color:#0d904f}.codehilite .sd,.highlight .sd{color:#999}.codehilite .s2,.highlight .s2{color:#0d904f}.codehilite .se,.highlight .se{color:#183691}.codehilite .sh,.highlight .sh{color:#183691}.codehilite .si,.highlight .si{color:#183691}.codehilite .sx,.highlight .sx{color:#183691}.codehilite .sr,.highlight .sr{color:#009926}.codehilite .s1,.highlight .s1{color:#0d904f}.codehilite .ss,.highlight .ss{color:#0d904f}.codehilite .err,.highlight .err{color:#a61717}.codehilite .w,.highlight .w{color:transparent}.codehilite .hll,.highlight .hll{display:block;margin:0 -1.1764705882em;padding:0 1.1764705882em;background-color:rgba(255,235,59,.5)}.codehilitetable,.highlighttable{display:block;overflow:hidden}.codehilitetable tbody,.highlighttable tbody,.codehilitetable td,.highlighttable td{display:block;padding:0}.codehilitetable tr,.highlighttable tr{display:flex}.codehilitetable pre,.highlighttable pre{margin:0}.codehilitetable .linenos,.highlighttable .linenos{padding:.525rem 1.1764705882em;padding-right:0;font-size:.85em;background-color:var(--md-code-bg-color);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.codehilitetable .linenodiv,.highlighttable .linenodiv{padding-right:.5882352941em;box-shadow:inset -0.05rem 0 var(--md-default-fg-color--lightest)}.codehilitetable .linenodiv pre,.highlighttable .linenodiv pre{color:var(--md-default-fg-color--lighter);text-align:right}.codehilitetable .code,.highlighttable .code{flex:1;overflow:hidden}.md-typeset .codehilitetable,.md-typeset .highlighttable{margin:1em 0;direction:ltr;border-radius:.1rem}.md-typeset .codehilitetable code,.md-typeset .highlighttable code{border-radius:0}@media screen and (max-width: 44.9375em){.md-typeset>.codehilite,.md-typeset>.highlight{margin:1em -0.8rem}.md-typeset>.codehilite .hll,.md-typeset>.highlight .hll{margin:0 -0.8rem;padding:0 .8rem}.md-typeset>.codehilite code,.md-typeset>.highlight code{border-radius:0}.md-typeset>.codehilitetable,.md-typeset>.highlighttable{margin:1em -0.8rem;border-radius:0}.md-typeset>.codehilitetable .hll,.md-typeset>.highlighttable .hll{margin:0 -0.8rem;padding:0 .8rem}}:root{--md-footnotes-icon: url('data:image/svg+xml;charset=utf-8,')}.md-typeset [id^="fnref:"]{display:inline-block}.md-typeset [id^="fnref:"]:target{margin-top:-3.8rem;padding-top:3.8rem;pointer-events:none}.md-typeset [id^="fn:"]::before{display:none;height:0;content:""}.md-typeset [id^="fn:"]:target::before{display:block;margin-top:-3.5rem;padding-top:3.5rem;pointer-events:none}.md-typeset .footnote{color:var(--md-default-fg-color--light);font-size:.64rem}.md-typeset .footnote ol{margin-left:0}.md-typeset .footnote li{transition:color 125ms}.md-typeset .footnote li:target{color:var(--md-default-fg-color)}.md-typeset .footnote li :first-child{margin-top:0}.md-typeset .footnote li:hover .footnote-backref,.md-typeset .footnote li:target .footnote-backref{transform:translateX(0);opacity:1}.md-typeset .footnote li:hover .footnote-backref:hover{color:var(--md-accent-fg-color)}.md-typeset .footnote-ref{display:inline-block;pointer-events:initial}.md-typeset .footnote-backref{display:inline-block;color:var(--md-primary-fg-color);font-size:0;vertical-align:text-bottom;transform:translateX(0.25rem);opacity:0;transition:color 250ms,transform 250ms 250ms,opacity 125ms 250ms}[dir=rtl] .md-typeset .footnote-backref{transform:translateX(-0.25rem)}.md-typeset .footnote-backref::before{display:inline-block;width:.8rem;height:.8rem;background-color:currentColor;-webkit-mask-image:var(--md-footnotes-icon);mask-image:var(--md-footnotes-icon);content:""}[dir=rtl] .md-typeset .footnote-backref::before svg{transform:scaleX(-1)}@media print{.md-typeset .footnote-backref{color:var(--md-primary-fg-color);transform:translateX(0);opacity:1}}.md-typeset .headerlink{display:inline-block;margin-left:.5rem;visibility:hidden;opacity:0;transition:color 250ms,visibility 0ms 500ms,opacity 125ms}[dir=rtl] .md-typeset .headerlink{margin-right:.5rem;margin-left:initial}html body .md-typeset .headerlink{color:var(--md-default-fg-color--lighter)}@media print{.md-typeset .headerlink{display:none}}.md-typeset :hover>.headerlink,.md-typeset :target>.headerlink,.md-typeset .headerlink:focus{visibility:visible;opacity:1;transition:color 250ms,visibility 0ms,opacity 125ms}.md-typeset :target>.headerlink,.md-typeset .headerlink:focus,.md-typeset .headerlink:hover{color:var(--md-accent-fg-color)}.md-typeset h3[id]::before,.md-typeset h2[id]::before,.md-typeset h1[id]::before{display:block;margin-top:-0.4rem;padding-top:.4rem;content:""}.md-typeset h3[id]:target::before,.md-typeset h2[id]:target::before,.md-typeset h1[id]:target::before{margin-top:-3.4rem;padding-top:3.4rem}.md-typeset h4[id]::before{display:block;margin-top:-0.45rem;padding-top:.45rem;content:""}.md-typeset h4[id]:target::before{margin-top:-3.45rem;padding-top:3.45rem}.md-typeset h6[id]::before,.md-typeset h5[id]::before{display:block;margin-top:-0.6rem;padding-top:.6rem;content:""}.md-typeset h6[id]:target::before,.md-typeset h5[id]:target::before{margin-top:-3.6rem;padding-top:3.6rem}.md-typeset .MJXc-display{margin:.75em 0;padding:.75em 0;overflow:auto;touch-action:auto}@media screen and (max-width: 44.9375em){.md-typeset>p>.MJXc-display{margin:.75em -0.8rem;padding:.25em .8rem}}.md-typeset .MathJax_CHTML{outline:0}.md-typeset del.critic,.md-typeset ins.critic,.md-typeset .critic.comment{padding:0 .25em;border-radius:.1rem;-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset del.critic{background-color:#fdd}.md-typeset ins.critic{background-color:#dfd}.md-typeset .critic.comment{color:#999}.md-typeset .critic.comment::before{content:"/* "}.md-typeset .critic.comment::after{content:" */"}.md-typeset .critic.block{display:block;margin:1em 0;padding-right:.8rem;padding-left:.8rem;overflow:auto;box-shadow:none}.md-typeset .critic.block :first-child{margin-top:.5em}.md-typeset .critic.block :last-child{margin-bottom:.5em}:root{--md-details-icon: url('data:image/svg+xml;charset=utf-8,')}.md-typeset details{display:block;padding-top:0;overflow:visible}.md-typeset details[open]>summary::after{transform:rotate(90deg)}.md-typeset details:not([open]){padding-bottom:0}.md-typeset details:not([open])>summary{border-bottom-right-radius:.1rem}.md-typeset details::after{display:table;content:""}.md-typeset summary{display:block;min-height:1rem;padding:.4rem 1.8rem .4rem 2rem;border-top-right-radius:.1rem;cursor:pointer}[dir=rtl] .md-typeset summary{padding:.4rem 2rem .4rem 1.8rem}.md-typeset summary::-webkit-details-marker{display:none}.md-typeset summary::after{position:absolute;top:.4rem;right:.4rem;width:1rem;height:1rem;background-color:currentColor;-webkit-mask-image:var(--md-details-icon);mask-image:var(--md-details-icon);transform:rotate(0deg);transition:transform 250ms;content:""}[dir=rtl] .md-typeset summary::after{right:initial;left:.4rem;transform:rotate(180deg)}.md-typeset img.emojione,.md-typeset img.twemoji,.md-typeset img.gemoji{width:1.125em;vertical-align:-15%}.md-typeset span.twemoji{display:inline-block;height:1.125em;vertical-align:text-top}.md-typeset span.twemoji svg{width:1.125em;fill:currentColor}.highlight [data-linenos]::before{position:-webkit-sticky;position:sticky;left:-1.1764705882em;float:left;margin-right:1.1764705882em;margin-left:-1.1764705882em;padding-left:1.1764705882em;color:var(--md-default-fg-color--lighter);background-color:var(--md-code-bg-color);box-shadow:inset -0.05rem 0 var(--md-default-fg-color--lightest);content:attr(data-linenos);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.md-typeset .tabbed-content{display:none;order:99;width:100%;box-shadow:0 -0.05rem var(--md-default-fg-color--lightest)}.md-typeset .tabbed-content>.codehilite:only-child pre,.md-typeset .tabbed-content>.codehilitetable:only-child,.md-typeset .tabbed-content>.highlight:only-child pre,.md-typeset .tabbed-content>.highlighttable:only-child{margin:0}.md-typeset .tabbed-content>.codehilite:only-child pre>code,.md-typeset .tabbed-content>.codehilitetable:only-child>code,.md-typeset .tabbed-content>.highlight:only-child pre>code,.md-typeset .tabbed-content>.highlighttable:only-child>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-content>.tabbed-set{margin:0}.md-typeset .tabbed-set{position:relative;display:flex;flex-wrap:wrap;margin:1em 0;border-radius:.1rem}.md-typeset .tabbed-set>input{display:none}.md-typeset .tabbed-set>input:checked+label{color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color)}.md-typeset .tabbed-set>input:checked+label+.tabbed-content{display:block}.md-typeset .tabbed-set>label{z-index:1;width:auto;padding:.6rem 1.25em .5rem;color:var(--md-default-fg-color--light);font-weight:700;font-size:.64rem;border-bottom:.1rem solid transparent;cursor:pointer;transition:color 125ms}html .md-typeset .tabbed-set>label:hover{color:var(--md-accent-fg-color)}:root{--md-tasklist-icon: url('data:image/svg+xml;charset=utf-8,');--md-tasklist-icon--checked: url('data:image/svg+xml;charset=utf-8,')}.md-typeset .task-list-item{position:relative;list-style-type:none}.md-typeset .task-list-item [type=checkbox]{position:absolute;top:.45em;left:-2em}[dir=rtl] .md-typeset .task-list-item [type=checkbox]{right:-2em;left:initial}.md-typeset .task-list-control .task-list-indicator::before{position:absolute;top:.15em;left:-1.5em;width:1.25em;height:1.25em;background-color:var(--md-default-fg-color--lightest);-webkit-mask-image:var(--md-tasklist-icon);mask-image:var(--md-tasklist-icon);content:""}[dir=rtl] .md-typeset .task-list-control .task-list-indicator::before{right:-1.5em;left:initial}.md-typeset .task-list-control [type=checkbox]:checked+.task-list-indicator::before{background-color:#00e676;-webkit-mask-image:var(--md-tasklist-icon--checked);mask-image:var(--md-tasklist-icon--checked)}.md-typeset .task-list-control [type=checkbox]{z-index:-1;opacity:0} + +/*# sourceMappingURL=main.c8609f9b.min.css.map*/ \ No newline at end of file diff --git a/doc/theme/material/assets/stylesheets/main.c8609f9b.min.css.map b/doc/theme/material/assets/stylesheets/main.c8609f9b.min.css.map new file mode 100644 index 00000000..694598a4 --- /dev/null +++ b/doc/theme/material/assets/stylesheets/main.c8609f9b.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///main.scss","webpack:///./src/assets/stylesheets/base/_reset.scss","webpack:///./src/assets/stylesheets/base/_colors.scss","webpack:///./src/assets/stylesheets/base/_icons.scss","webpack:///./src/assets/stylesheets/base/_typeset.scss","webpack:///./src/assets/stylesheets/utilities/_break.scss","webpack:///./src/assets/stylesheets/layout/_base.scss","webpack:///./src/assets/stylesheets/layout/_announce.scss","webpack:///./src/assets/stylesheets/layout/_button.scss","webpack:///./src/assets/stylesheets/layout/_clipboard.scss","webpack:///./src/assets/stylesheets/layout/_content.scss","webpack:///./src/assets/stylesheets/layout/_dialog.scss","webpack:///./node_modules/material-shadows/material-shadows.scss","webpack:///./src/assets/stylesheets/layout/_header.scss","webpack:///./src/assets/stylesheets/layout/_hero.scss","webpack:///./src/assets/stylesheets/layout/_footer.scss","webpack:///./src/assets/stylesheets/layout/_nav.scss","webpack:///./src/assets/stylesheets/layout/_search.scss","webpack:///./src/assets/stylesheets/layout/_sidebar.scss","webpack:///./src/assets/stylesheets/layout/_source.scss","webpack:///./src/assets/stylesheets/layout/_tabs.scss","webpack:///./src/assets/stylesheets/extensions/_admonition.scss","webpack:///./node_modules/material-design-color/material-color.scss","webpack:///./src/assets/stylesheets/extensions/_codehilite.scss","webpack:///./src/assets/stylesheets/extensions/_footnotes.scss","webpack:///./src/assets/stylesheets/extensions/_permalinks.scss","webpack:///./src/assets/stylesheets/extensions/pymdown/_arithmatex.scss","webpack:///./src/assets/stylesheets/extensions/pymdown/_critic.scss","webpack:///./src/assets/stylesheets/extensions/pymdown/_details.scss","webpack:///./src/assets/stylesheets/extensions/pymdown/_emoji.scss","webpack:///./src/assets/stylesheets/extensions/pymdown/_highlight.scss","webpack:///./src/assets/stylesheets/extensions/pymdown/_tabbed.scss","webpack:///./src/assets/stylesheets/extensions/pymdown/_tasklist.scss"],"names":[],"mappings":"AAAA,KC6BA,qBACE,sBAIF,kBAGE,MAIF,6BACE,CADF,0BACE,CADF,yBACE,CADF,qBACE,MAIF,QACE,IAIF,sBACE,iBACA,sBAIF,uCAIE,GAIF,aACE,qBACA,OAIF,aACE,SAIF,iBAEE,cACA,cACA,wBACA,KAIF,cACE,KAIF,UACE,KAIF,iBACE,OAIF,wBACE,iBACA,OAIF,kBAEE,mBACA,QAIF,QACE,UACA,kBACA,uBACA,SACA,OAIF,QACE,UACA,OCjGF,4CAGE,oDACA,sDACA,uDACA,4CACA,qDACA,uDACA,yDACA,iDAGA,wDACA,uDACA,kDACA,gEACA,gDAGA,+DACA,iDACA,+DACA,wCAGA,2CACA,cCxBA,aACE,aACA,cACA,cACA,kBACA,MCRJ,kCACE,kCACA,YAIF,gCAEE,oCACA,wEACA,cAIF,gCAGE,6BACA,oDACA,aAWF,eACE,gBACA,iCACA,CADA,kBACA,oEAGA,YAIE,gBAIF,eACE,wCACA,gBACA,oBACA,gBACA,uBACA,gBAIF,mBACE,gBACA,kBACA,gBACA,uBACA,gBAIF,qBACE,gBACA,eACA,gBACA,uBACA,mBAIF,gBACE,gBAIF,cACE,gBACA,gBACA,uBACA,+BAIF,cAEE,wCACA,gBACA,iBACA,uBACA,gBAIF,wBACE,gBAIF,cACE,gEACA,eAIF,gCACE,sBACA,qCAGA,sBAEE,yCAIF,+BAEE,kDAKJ,6BAGE,cACA,cAGA,iDAPF,oBAQI,mBAKJ,uBACE,gBACA,sBACA,yCACA,oBACA,mCACA,CADA,0BACA,yHAIF,cAME,gBACA,6BACA,gBACA,oBAIF,kBACE,iBAIF,iBACE,aACA,gBACA,sBAGA,aACE,SACA,+BACA,cACA,kBACA,gBACA,mCACA,CADA,0BACA,kBACA,yCAGA,WACE,aACA,+CAIF,oDACE,qDAGA,0CACE,0CCfN,gBDyBA,kBACE,sBAGA,eACE,kBAMN,oBACE,wBACA,gBACA,gBACA,wBACA,sBACA,oBACA,+JAEE,kBAMJ,eACE,sBACA,qCACA,oBACA,mCACA,CADA,0BACA,kBAIF,oBACE,8DACA,YACA,mBAIF,WACE,iCAIF,qBAEE,qDAGA,sBACE,oBACA,wBAKJ,kBACE,wCACA,4DACA,kCAGA,mBACE,qBACA,6DACA,oBACA,gBAKJ,oBACE,+BAIF,kBAEE,UACA,mDAGA,mBACE,oBACA,qCAIF,2BACE,2CAGA,2BACE,qCAKJ,kBACE,mBACA,yDAGA,mBACE,oBACA,mGAIF,aAEE,2DAIF,eACE,qFAIF,yBAEE,6HAGA,mBACE,oBACA,gBAOR,wBACE,0BAGA,oBACE,oBACA,oDAKJ,cAGE,YACA,gCAIF,oBACE,eACA,cACA,iBACA,sCACA,oBACA,mEAEE,kBAEF,kCAKA,gBACE,+FAIF,eAEE,mHAGA,gBACE,mCAKJ,cACE,oBACA,iCACA,mBACA,mDACA,mCAIF,mBACE,mBACA,6DACA,mCAIF,iCACE,yCAGA,iCACE,uDACA,kDAIF,YACE,kCAMJ,iBACE,yBAKJ,kBACE,gBACA,kBACA,oBAIF,oBACE,mBACA,gBACA,0BAGA,aACE,WACA,SACA,gBACA,MErbN,WACE,kBAKA,eAOA,4CACA,sCDyIE,KCvJJ,gBAkBI,uCDqIA,KCvJJ,cAuBI,OAKJ,iBACE,aACA,sBACA,WACA,gBACA,gBAGA,0CDqIE,yBC/HA,cACE,eAMJ,KArBF,aAsBI,KAKJ,aACE,cACA,UACA,SACA,UAIF,eACE,kBACA,iBACA,eAIF,YACE,sBACA,YACA,cAIA,cAPF,aAQI,WAKJ,WACE,iBAGA,YACE,YACA,kBACA,cAKJ,aACE,gBACA,mBACA,uBACA,YAQF,YACE,aAIF,cACE,MACA,UACA,QACA,SACA,mDACA,UACA,0DAEE,0CDgDA,4CCxCA,UACE,YACA,UACA,8CAEE,WAYR,cACE,WAGA,aACA,oBACA,iCACA,iBACA,4CACA,oBACA,6BACA,UACA,gBAGA,UACE,wBACA,UACA,2EAEE,OAUN,WACE,cC1LF,aACE,4CACA,qBAGA,iBACE,gBACA,iCACA,gBACA,cAIF,aAbF,YAcI,yBCXF,oBACE,mBACA,iCACA,gBACA,gCACA,oBACA,iEAEE,iCAKF,gCACE,4CACA,wCACA,2DAIF,+BAEE,2CACA,uCACA,eC3BN,iBACE,UACA,WACA,UACA,YACA,aACA,2CACA,oBACA,eACA,uBACA,cAGA,cAbF,YAcI,oBAIF,aACE,eACA,yBAIF,uCACE,iDAIF,+BAEE,aC/BJ,MACE,eACA,+DLyII,YK3IN,8BAMI,yCL0JA,YKhKJ,kCAWI,qBAIF,qBACE,kBACA,wCL+IA,mBKjJF,mBAMI,mBACA,6BAKF,aACE,aACA,WACA,gCAIF,eACE,qBAKJ,WACE,eACA,kBACA,UACA,+BAGA,UACE,mBACA,oBACA,mCAGA,oBACE,iCAKJ,yCACE,yBAIF,cACE,mBACA,cAIF,oBA9BF,YA+BI,aCvEN,gGCFE,eDKA,YACA,aACA,aACA,UACA,cACA,kBACA,oBACA,iCACA,gBACA,sCACA,YACA,oBACA,2BACA,UACA,6CAEE,sBAIF,aACE,WACA,gCAIF,uBACE,UACA,6EAEE,cAKJ,WAtCF,YAuCI,aEvCJ,uBACE,CADF,eACE,MACA,QACA,OACA,UACA,cACA,iCACA,4CACA,+DAIE,8CAGA,mBAIF,eACE,gBACA,kCAIF,gEAEI,+DAGA,cAMJ,WApCF,YAqCI,iBAKJ,YACE,gBACA,wBAGA,iBACE,UACA,aACA,cACA,eACA,yBACA,sCAME,oBACE,2DAKJ,UAEE,gCAIF,YACE,cACA,uEAGA,aAEE,aACA,cACA,kBACA,6CAKJ,YACE,qCRyEF,qCQlEE,YACE,2CRmFJ,+BQ3EE,YACE,yCRwDJ,qCQhDE,YACE,wBAMN,iBACE,WACA,wEAEE,6CAIF,UACE,8BACA,UACA,wEAEE,oBAEF,uDAGA,8BACE,8BAKJ,gBACE,oDAIF,YACE,uBAKJ,WACE,eACA,gBACA,mBACA,mEAGA,UACE,+BACA,UACA,wEAEE,oBAEF,6EAGA,6BACE,yFAIF,SACE,wBACA,UACA,wEAEE,uBAEF,gDAKJ,iBACE,WACA,YACA,wBAKJ,YACE,qCRrCA,uBQoCF,aAKI,cACA,kBACA,iBACA,kCAGA,iBACE,oBACA,yCRjDJ,uBQoCF,kBAmBI,kCAGA,mBACE,WC3NR,eACE,iCACA,eACA,4CACA,4BACA,iBAGA,eACE,0BACA,wEAEE,uBAEF,0CToKA,gBS1KF,iBAUI,qBACA,yCAIF,8BACE,UACA,iDAEE,oBAEF,kCAIF,oBACE,YClCN,gCACE,4CACA,cAGA,WALF,YAMI,wBAQF,aACE,cACA,sBAIF,YACE,mBACA,qBACA,yBACA,qCVwIA,qBU5IF,SAQI,wDAIF,UAEE,4BAIF,UACE,UACA,sCAGA,WACE,0CAGA,oBACE,0CVkIN,iDU7HE,YAII,6BAMN,WACE,UACA,iBACA,sCAGA,UACE,gBACA,0CAGA,oBACE,uBAOR,iBACE,YACA,8BACA,eACA,gBACA,mBACA,wBAIF,YACE,cACA,2BAIF,iBACE,QACA,OACA,iBACA,eACA,wCACA,iBACA,iBAKJ,oDACE,wBAGA,YACE,eACA,8BACA,cACA,mCAIF,uCACE,iFAGA,gCAEE,sBAMN,UACE,kBACA,gBACA,0CACA,iBACA,qCVqBE,qBU1BJ,UASI,kCAIF,uCACE,mBAKJ,cACE,sBACA,qCVKE,kBUPJ,eAMI,0BAIF,oBACE,aACA,cACA,kBACA,iCAGA,eACE,6BAIF,gBACE,oBACA,kBACA,SClLN,eACE,gBACA,gBAGA,aACE,gBACA,gBACA,gBACA,uBACA,gCAGA,YACE,oCAGA,UACE,YACA,uFAOA,aAEE,aACA,cACA,4CAIF,iBACE,eAOR,QACE,UACA,gBACA,eAIF,eACE,0BAGA,oBACE,6BAIF,eACE,uCAGA,mBACE,eACA,wCAIF,gBACE,eAMN,aACE,kBACA,gBACA,uBACA,eACA,uBACA,wBACA,+BAIA,YACE,uCAGA,YACE,mCAKJ,uCACE,qCAIF,gCACE,qCAIF,aACE,yCAIF,+BAEE,iBAKJ,YACE,0CX2DA,QWlLJ,2CA4HI,2CAGA,iBAEE,MACA,QACA,OACA,UACA,aACA,sBACA,YACA,gEAOA,eAEE,gBACA,iCAIF,iBACE,cACA,yBACA,wCACA,gBACA,mBACA,mBACA,sDACA,eACA,+CAGA,iBACE,UACA,WACA,cACA,aACA,cACA,aACA,yDAGA,WACE,aACA,+CAKJ,eACE,4CACA,iEAEE,qCACF,CADE,gCACF,CADE,4BACF,mBAC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A,uBYkRJ,aAiBI,yCZ9QF,uBY6PF,aAsBI,sCZnRF,uBY6PF,YA2BI,mEAGA,eACE,2CAIF,WACE,aACA,iDAIF,oDACE,uDAGA,0CACE,oBAQV,gCACE,sBACA,yBAGA,eACE,wCACA,iBACA,mBACA,sDACA,wBACA,qCZ9TA,wBYwTF,mBAUI,mCAGA,oBACE,qBACA,0BAMN,QACE,UACA,gBACA,6DACA,yBAIF,4DACE,yBAIF,aACE,UACA,4BACA,wBACA,6DAGA,uDAEE,mIAGA,UACE,8DAKJ,mBACE,4BAKJ,iBACE,gBACA,gBACA,qCZrXA,2BYkXF,mBAOI,sCAGA,oBACE,mBACA,gEAQF,eACE,gBACA,gBACA,gBACA,yBAMN,iBACE,OACA,aACA,cACA,wCACA,mCAGA,OACE,aACA,uCAGA,oBACE,0CZ5YJ,wBY8XF,YAoBI,2BAKJ,aACE,gBACA,iBACA,gBACA,2BAMF,mBACE,mBACA,cACA,gBACA,wCACA,iBACA,gBACA,uBACA,4BACA,qBACA,0CZ3aA,0BYiaF,iBAcI,qBACA,gEZvdA,0BYwcJ,iBAoBI,qBACA,uBAOJ,eACE,kBACA,0BACA,aC1mBJ,uBACE,CADF,eACE,WACA,cACA,iBACA,gBACA,cAGA,YARF,YASI,2CbiKA,qBa1JA,cACE,MACA,cACA,UACA,cACA,YACA,4CACA,wBACA,yEAEE,gCAIF,cACE,aACA,oEAIF,sGNtBJ,8BMyBM,8EAGA,8BACE,8CAKJ,eACE,yBAMN,YACE,QACA,qCb+FA,uBajGF,aAMI,gDAGA,kBACE,0BAMN,eACE,eACA,gBACA,mCAEA,CAFA,0BAEA,qCACA,CADA,gCACA,CADA,4BACA,0Cb6FA,6CavFE,iBACE,MACA,QACA,SACA,OACA,SACA,8BACA,CADA,yBACA,CADA,qBACA,6CAKJ,WACE,aACA,kDAIF,oDACE,wDAGA,0CACE,2CClHR,GACE,QACE,MAGF,aACE,ED4GI,kCClHR,GACE,QACE,MAGF,aACE,2CAKJ,GACE,0BACE,UACA,KAGF,SACE,MAGF,wBACE,UACA,EAjBA,iCAKJ,GACE,0BACE,UACA,KAGF,SACE,MAGF,wBACE,UACA,aASJ,aACE,iBACA,gBACA,mBACA,mCAEA,CAFA,0BAEA,yBACA,kBAGA,UACE,kBAIF,oBACE,aACA,cACA,sBACA,sBAGA,gBACE,kBACA,gCAGA,kBACE,oBACA,yCAKJ,iBACE,kBACA,mDAGA,kBACE,oBACA,mBACA,qBACA,wBAMN,oBACE,8BACA,kBACA,gBACA,gBACA,uBACA,sBACA,mBAIF,QACE,UACA,gBACA,gBACA,iBACA,qBACA,YACA,wCAGA,sDACE,CADF,8CACE,kBAKJ,UACE,4BAGA,WACE,uCAIF,sDACE,CADF,8CACE,0BAIF,cACE,YACA,sCAIF,YACE,UCjIN,UACE,cACA,iCACA,4CACA,4BACA,iBAGA,eACE,0CfyKA,SelLJ,YAcI,eAIF,SAlBF,YAmBI,iBAIF,QACE,kBACA,UACA,mBACA,gBACA,gBACA,0BAGA,kBACE,oBACA,gBAKJ,oBACE,cACA,oBACA,mBACA,gBAKF,aACE,iBACA,gBACA,WACA,wEAEE,uBAIF,eACE,6CAIF,aAEE,UACA,4CAKA,qBACE,4CADF,qBACE,4CADF,qBACE,4CADF,qBACE,4CADF,sBACE,4CADF,sBACE,4CADF,sBACE,4CADF,sBACE,6CADF,sBACE,6CADF,sBACE,6CADF,sBACE,6CADF,sBACE,6CADF,sBACE,6CADF,sBACE,6CADF,sBACE,gCAMN,mBACE,+CAIA,yBACE,UACA,yDAEE,wCfyEJ,uEe/DA,YACE,2DAUE,aACE,gBACA,oBACA,wBACA,yEAGA,YACE,wEAKJ,YACE,gFAGA,aACE,UACA,8FAGA,YACE,sDAOR,aAGE,kFAGA,eACE,6EAIF,YACE,QChIV,4RAMI,owHAUF,iBACE,gBACA,gBACA,iBACA,wBACA,gCACA,oBACA,mEAEE,iEAIF,gCACE,iBACA,cAIF,4CAnBF,eAoBI,gFAIF,mBACE,iIAIF,YACE,6FAIF,kBACE,mFAIF,eACE,mDAKJ,iBACE,iBACA,+BACA,gBACA,qCACA,uEAGA,8BACE,mFAIF,eACE,mEAIF,iBACE,WACA,WACA,YACA,yBCgJU,mDD9I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IF,wBAxBF,YAyBI,+FAKJ,kBAGE,UACA,oDAEE,6FAMJ,+BAGE,kFAYE,aACE,mBACA,kBACA,WACA,uGAIF,kBACE,mBACA,4BAVF,aACE,oBACA,mBACA,WACA,mCAIF,mBACE,oBACA,uDAVF,aACE,mBACA,kBACA,WACA,qEAIF,kBACE,mBACA,2BCjEN,cACE,gBACA,cACA,kBACA,0CrByKA,4BqBrKF,oBAII,oBACA,6BAKJ,SACE,2ECrBF,eAGE,oBACA,mCACA,CADA,0BACA,wBAIF,qBJEwB,wBIGxB,qBJFyB,6BIOzB,UJKmB,qCIDjB,aACE,oCAIF,aACE,2BAKJ,aACE,aACA,oBACA,mBACA,cACA,gBACA,wCAGA,eACE,uCAIF,kBACE,OCpDN,+LACE,qBASA,aAGE,cACA,iBACA,0CAIA,uBACE,iCAIF,gBACE,yCAIA,gCACE,4BAKJ,aACE,WACA,qBAKJ,aAGE,gBACA,gCACA,8BACA,eACA,+BAGA,+BACE,6CAIF,YACE,4BAIF,iBACE,UACA,YACA,WACA,YACA,8BACA,0CACA,CADA,iCACA,uBACA,2BACA,WACA,sCAGA,aACE,WACA,yBACA,yEC3EN,aAGE,oBACA,0BAIF,oBACE,eACA,wBACA,8BAGA,aACE,kBACA,mCCbJ,uBACE,CADF,eACE,qBACA,WACA,4BACA,4BACA,4BACA,0CACA,yCACA,iEACA,2BACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,6BCdF,YACE,SACA,WACA,2DACA,6NAGA,QAIE,iPAGA,wBACE,0BACA,yCAKJ,QACE,yBAKJ,iBACE,aACA,eACA,aACA,oBACA,+BAGA,YACE,6CAGA,+BACE,uCACA,6DAGA,aACE,+BAMN,SACE,WACA,2BACA,wCACA,gBACA,iBACA,sCACA,eACA,uBACA,0CAGA,+BACE,OCnER,8MACE,mQACA,6BASA,iBACE,qBACA,6CAIA,iBACE,UACA,UACA,uDAGA,UACE,aACA,6DASJ,iBACE,UACA,YACA,aACA,cACA,sDACA,2CACA,CADA,kCACA,WACA,uEAGA,YACE,aACA,qFAKJ,wBVsWa,oDUpWX,CVoWW,2CUpWX,gDAIF,UACE,UACA,C","file":"assets/stylesheets/main.c8609f9b.min.css","sourcesContent":["html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}html{text-size-adjust:none}body{margin:0}hr{box-sizing:content-box;overflow:visible}a,button,label,input{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}small{font-size:80%}sub,sup{position:relative;font-size:80%;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}table{border-collapse:separate;border-spacing:0}td,th{font-weight:normal;vertical-align:top}button{margin:0;padding:0;font-size:inherit;background:transparent;border:0}input{border:0;outline:0}:root{--md-default-fg-color: hsla(0, 0%, 0%, 0.87);--md-default-fg-color--light: hsla(0, 0%, 0%, 0.54);--md-default-fg-color--lighter: hsla(0, 0%, 0%, 0.26);--md-default-fg-color--lightest: hsla(0, 0%, 0%, 0.07);--md-default-bg-color: hsla(0, 0%, 100%, 1);--md-default-bg-color--light: hsla(0, 0%, 100%, 0.7);--md-default-bg-color--lighter: hsla(0, 0%, 100%, 0.3);--md-default-bg-color--lightest: hsla(0, 0%, 100%, 0.12);--md-primary-fg-color: hsla(231deg, 48%, 48%, 1);--md-primary-fg-color--light: hsla(230deg, 44%, 64%, 1);--md-primary-fg-color--dark: hsla(232deg, 54%, 41%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light);--md-accent-fg-color: hsla(231deg, 99%, 66%, 1);--md-accent-fg-color--transparent: hsla(231deg, 99%, 66%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light);--md-code-bg-color: hsla(0, 0%, 96%, 1);--md-code-fg-color: hsla(200, 18%, 26%, 1)}.md-icon svg{display:block;width:1.2rem;height:1.2rem;margin:0 auto;fill:currentColor}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,input{color:var(--md-default-fg-color);font-feature-settings:\"kern\",\"liga\";font-family:-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif}code,pre,kbd{color:var(--md-default-fg-color);font-feature-settings:\"kern\";font-family:SFMono-Regular,Consolas,Menlo,monospace}.md-typeset{font-size:.8rem;line-height:1.6;color-adjust:exact}.md-typeset p,.md-typeset ul,.md-typeset ol,.md-typeset blockquote{margin:1em 0}.md-typeset h1{margin:0 0 2rem;color:var(--md-default-fg-color--light);font-weight:300;font-size:1.5625rem;line-height:1.3;letter-spacing:-0.01em}.md-typeset h2{margin:2rem 0 .8rem;font-weight:300;font-size:1.25rem;line-height:1.4;letter-spacing:-0.01em}.md-typeset h3{margin:1.6rem 0 .8rem;font-weight:400;font-size:1rem;line-height:1.5;letter-spacing:-0.01em}.md-typeset h2+h3{margin-top:.8rem}.md-typeset h4{margin:.8rem 0;font-weight:700;font-size:.8rem;letter-spacing:-0.01em}.md-typeset h5,.md-typeset h6{margin:.8rem 0;color:var(--md-default-fg-color--light);font-weight:700;font-size:.64rem;letter-spacing:-0.01em}.md-typeset h5{text-transform:uppercase}.md-typeset hr{margin:1.5em 0;border-bottom:.05rem dotted var(--md-default-fg-color--lighter)}.md-typeset a{color:var(--md-primary-fg-color);word-break:break-word}.md-typeset a,.md-typeset a::before{transition:color 125ms}.md-typeset a:focus,.md-typeset a:hover{color:var(--md-accent-fg-color)}.md-typeset code,.md-typeset pre,.md-typeset kbd{color:var(--md-code-fg-color);direction:ltr}@media print{.md-typeset code,.md-typeset pre,.md-typeset kbd{white-space:pre-wrap}}.md-typeset code{padding:0 .2941176471em;font-size:.85em;word-break:break-word;background-color:var(--md-code-bg-color);border-radius:.1rem;box-decoration-break:clone}.md-typeset h1 code,.md-typeset h2 code,.md-typeset h3 code,.md-typeset h4 code,.md-typeset h5 code,.md-typeset h6 code{margin:initial;padding:initial;background-color:transparent;box-shadow:none}.md-typeset a>code{color:currentColor}.md-typeset pre{position:relative;margin:1em 0;line-height:1.4}.md-typeset pre>code{display:block;margin:0;padding:.525rem 1.1764705882em;overflow:auto;word-break:normal;box-shadow:none;box-decoration-break:slice;touch-action:auto}.md-typeset pre>code::-webkit-scrollbar{width:.2rem;height:.2rem}.md-typeset pre>code::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-typeset pre>code::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@media screen and (max-width: 44.9375em){.md-typeset>pre{margin:1em -0.8rem}.md-typeset>pre code{border-radius:0}}.md-typeset kbd{display:inline-block;padding:0 .6666666667em;font-size:.75em;line-height:1.5;vertical-align:text-top;word-break:break-word;border-radius:.1rem;box-shadow:0 .1rem 0 .05rem var(--md-default-fg-color--lighter),0 .1rem 0 var(--md-default-fg-color--lighter),inset 0 -0.1rem .2rem var(--md-default-bg-color)}.md-typeset mark{padding:0 .25em;word-break:break-word;background-color:rgba(255,235,59,.5);border-radius:.1rem;box-decoration-break:clone}.md-typeset abbr{text-decoration:none;border-bottom:.05rem dotted var(--md-default-fg-color--light);cursor:help}.md-typeset small{opacity:.75}.md-typeset sup,.md-typeset sub{margin-left:.078125em}[dir=rtl] .md-typeset sup,[dir=rtl] .md-typeset sub{margin-right:.078125em;margin-left:initial}.md-typeset blockquote{padding-left:.6rem;color:var(--md-default-fg-color--light);border-left:.2rem solid var(--md-default-fg-color--lighter)}[dir=rtl] .md-typeset blockquote{padding-right:.6rem;padding-left:initial;border-right:.2rem solid var(--md-default-fg-color--lighter);border-left:initial}.md-typeset ul{list-style-type:disc}.md-typeset ul,.md-typeset ol{margin-left:.625em;padding:0}[dir=rtl] .md-typeset ul,[dir=rtl] .md-typeset ol{margin-right:.625em;margin-left:initial}.md-typeset ul ol,.md-typeset ol ol{list-style-type:lower-alpha}.md-typeset ul ol ol,.md-typeset ol ol ol{list-style-type:lower-roman}.md-typeset ul li,.md-typeset ol li{margin-bottom:.5em;margin-left:1.25em}[dir=rtl] .md-typeset ul li,[dir=rtl] .md-typeset ol li{margin-right:1.25em;margin-left:initial}.md-typeset ul li p,.md-typeset ul li blockquote,.md-typeset ol li p,.md-typeset ol li blockquote{margin:.5em 0}.md-typeset ul li:last-child,.md-typeset ol li:last-child{margin-bottom:0}.md-typeset ul li ul,.md-typeset ul li ol,.md-typeset ol li ul,.md-typeset ol li ol{margin:.5em 0 .5em .625em}[dir=rtl] .md-typeset ul li ul,[dir=rtl] .md-typeset ul li ol,[dir=rtl] .md-typeset ol li ul,[dir=rtl] .md-typeset ol li ol{margin-right:.625em;margin-left:initial}.md-typeset dd{margin:1em 0 1em 1.875em}[dir=rtl] .md-typeset dd{margin-right:1.875em;margin-left:initial}.md-typeset iframe,.md-typeset img,.md-typeset svg{max-width:100%;height:auto}.md-typeset table:not([class]){display:inline-block;max-width:100%;overflow:auto;font-size:.64rem;background:var(--md-default-bg-color);border-radius:.1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .05rem rgba(0,0,0,.1);touch-action:auto}.md-typeset table:not([class])+*{margin-top:1.5em}.md-typeset table:not([class]) th:not([align]),.md-typeset table:not([class]) td:not([align]){text-align:left}[dir=rtl] .md-typeset table:not([class]) th:not([align]),[dir=rtl] .md-typeset table:not([class]) td:not([align]){text-align:right}.md-typeset table:not([class]) th{min-width:5rem;padding:.6rem .8rem;color:var(--md-default-bg-color);vertical-align:top;background-color:var(--md-default-fg-color--light)}.md-typeset table:not([class]) td{padding:.6rem .8rem;vertical-align:top;border-top:.05rem solid var(--md-default-fg-color--lightest)}.md-typeset table:not([class]) tr{transition:background-color 125ms}.md-typeset table:not([class]) tr:hover{background-color:rgba(0,0,0,.035);box-shadow:0 .05rem 0 var(--md-default-bg-color) inset}.md-typeset table:not([class]) tr:first-child td{border-top:0}.md-typeset table:not([class]) a{word-break:normal}.md-typeset__scrollwrap{margin:1em -0.8rem;overflow-x:auto;touch-action:auto}.md-typeset__table{display:inline-block;margin-bottom:.5em;padding:0 .8rem}.md-typeset__table table{display:table;width:100%;margin:0;overflow:hidden}html{height:100%;overflow-x:hidden;font-size:125%;background-color:var(--md-default-bg-color)}@media screen and (min-width: 100em){html{font-size:137.5%}}@media screen and (min-width: 125em){html{font-size:150%}}body{position:relative;display:flex;flex-direction:column;width:100%;min-height:100%;font-size:.5rem}@media screen and (max-width: 59.9375em){body[data-md-state=lock]{position:fixed}}@media print{body{display:block}}hr{display:block;height:.05rem;padding:0;border:0}.md-grid{max-width:61rem;margin-right:auto;margin-left:auto}.md-container{display:flex;flex-direction:column;flex-grow:1}@media print{.md-container{display:block}}.md-main{flex-grow:1}.md-main__inner{display:flex;height:100%;margin-top:1.5rem}.md-ellipsis{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.md-toggle{display:none}.md-overlay{position:fixed;top:0;z-index:3;width:0;height:0;background-color:var(--md-default-fg-color--light);opacity:0;transition:width 0ms 250ms,height 0ms 250ms,opacity 250ms}@media screen and (max-width: 76.1875em){[data-md-toggle=drawer]:checked~.md-overlay{width:100%;height:100%;opacity:1;transition:width 0ms,height 0ms,opacity 250ms}}.md-skip{position:fixed;z-index:-1;margin:.5rem;padding:.3rem .5rem;color:var(--md-default-bg-color);font-size:.64rem;background-color:var(--md-default-fg-color);border-radius:.1rem;transform:translateY(0.4rem);opacity:0}.md-skip:focus{z-index:10;transform:translateY(0);opacity:1;transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1),opacity 175ms 75ms}@page{margin:25mm}.md-announce{overflow:auto;background-color:var(--md-default-fg-color)}.md-announce__inner{margin:.6rem auto;padding:0 .8rem;color:var(--md-default-bg-color);font-size:.7rem}@media print{.md-announce{display:none}}.md-typeset .md-button{display:inline-block;padding:.625em 2em;color:var(--md-primary-fg-color);font-weight:700;border:.1rem solid currentColor;border-radius:.1rem;transition:color 125ms,background-color 125ms,border-color 125ms}.md-typeset .md-button--primary{color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color);border-color:var(--md-primary-fg-color)}.md-typeset .md-button:focus,.md-typeset .md-button:hover{color:var(--md-accent-bg-color);background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color)}.md-clipboard{position:absolute;top:.4rem;right:.5em;z-index:1;width:1.5em;height:1.5em;color:var(--md-default-fg-color--lightest);border-radius:.1rem;cursor:pointer;transition:color 125ms}@media print{.md-clipboard{display:none}}.md-clipboard svg{width:1.125em;height:1.125em}pre:hover .md-clipboard{color:var(--md-default-fg-color--light)}pre .md-clipboard:focus,pre .md-clipboard:hover{color:var(--md-accent-fg-color)}.md-content{flex:1;max-width:100%}@media screen and (min-width: 60em)and (max-width: 76.1875em){.md-content{max-width:calc(100% - 12.1rem)}}@media screen and (min-width: 76.25em){.md-content{max-width:calc(100% - 12.1rem * 2)}}.md-content__inner{margin:0 .8rem 1.2rem;padding-top:.6rem}@media screen and (min-width: 76.25em){.md-content__inner{margin-right:1.2rem;margin-left:1.2rem}}.md-content__inner::before{display:block;height:.4rem;content:\"\"}.md-content__inner>:last-child{margin-bottom:0}.md-content__button{float:right;margin:.4rem 0;margin-left:.4rem;padding:0}[dir=rtl] .md-content__button{float:left;margin-right:.4rem;margin-left:initial}[dir=rtl] .md-content__button svg{transform:scaleX(-1)}.md-typeset .md-content__button{color:var(--md-default-fg-color--lighter)}.md-content__button svg{display:inline;vertical-align:top}@media print{.md-content__button{display:none}}.md-dialog{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);position:fixed;right:.8rem;bottom:.8rem;left:initial;z-index:2;display:block;min-width:11.1rem;padding:.4rem .6rem;color:var(--md-default-bg-color);font-size:.7rem;background:var(--md-default-fg-color);border:none;border-radius:.1rem;transform:translateY(100%);opacity:0;transition:transform 0ms 400ms,opacity 400ms}[dir=rtl] .md-dialog{right:initial;left:.8rem}.md-dialog[data-md-state=open]{transform:translateY(0);opacity:1;transition:transform 400ms cubic-bezier(0.075, 0.85, 0.175, 1),opacity 400ms}@media print{.md-dialog{display:none}}.md-header{position:sticky;top:0;right:0;left:0;z-index:2;height:2.4rem;color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color);box-shadow:0 0 .2rem rgba(0,0,0,0),0 .2rem .4rem rgba(0,0,0,0);transition:color 250ms,background-color 250ms}.no-js .md-header{box-shadow:none;transition:none}.md-header[data-md-state=shadow]{box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2);transition:color 250ms,background-color 250ms,box-shadow 250ms}@media print{.md-header{display:none}}.md-header-nav{display:flex;padding:0 .2rem}.md-header-nav__button{position:relative;z-index:1;margin:.2rem;padding:.4rem;cursor:pointer;transition:opacity 250ms}[dir=rtl] .md-header-nav__button svg{transform:scaleX(-1)}.md-header-nav__button:focus,.md-header-nav__button:hover{opacity:.7}.md-header-nav__button.md-logo{margin:.2rem;padding:.4rem}.md-header-nav__button.md-logo img,.md-header-nav__button.md-logo svg{display:block;width:1.2rem;height:1.2rem;fill:currentColor}.no-js .md-header-nav__button[for=__search]{display:none}@media screen and (min-width: 60em){.md-header-nav__button[for=__search]{display:none}}@media screen and (max-width: 76.1875em){.md-header-nav__button.md-logo{display:none}}@media screen and (min-width: 76.25em){.md-header-nav__button[for=__drawer]{display:none}}.md-header-nav__topic{position:absolute;width:100%;transition:transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 150ms}.md-header-nav__topic+.md-header-nav__topic{z-index:-1;transform:translateX(1.25rem);opacity:0;transition:transform 400ms cubic-bezier(1, 0.7, 0.1, 0.1),opacity 150ms;pointer-events:none}[dir=rtl] .md-header-nav__topic+.md-header-nav__topic{transform:translateX(-1.25rem)}.no-js .md-header-nav__topic{position:initial}.no-js .md-header-nav__topic+.md-header-nav__topic{display:none}.md-header-nav__title{flex-grow:1;padding:0 1rem;font-size:.9rem;line-height:2.4rem}.md-header-nav__title[data-md-state=active] .md-header-nav__topic{z-index:-1;transform:translateX(-1.25rem);opacity:0;transition:transform 400ms cubic-bezier(1, 0.7, 0.1, 0.1),opacity 150ms;pointer-events:none}[dir=rtl] .md-header-nav__title[data-md-state=active] .md-header-nav__topic{transform:translateX(1.25rem)}.md-header-nav__title[data-md-state=active] .md-header-nav__topic+.md-header-nav__topic{z-index:0;transform:translateX(0);opacity:1;transition:transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 150ms;pointer-events:initial}.md-header-nav__title>.md-header-nav__ellipsis{position:relative;width:100%;height:100%}.md-header-nav__source{display:none}@media screen and (min-width: 60em){.md-header-nav__source{display:block;width:11.7rem;max-width:11.7rem;margin-left:1rem}[dir=rtl] .md-header-nav__source{margin-right:1rem;margin-left:initial}}@media screen and (min-width: 76.25em){.md-header-nav__source{margin-left:1.4rem}[dir=rtl] .md-header-nav__source{margin-right:1.4rem}}.md-hero{overflow:hidden;color:var(--md-primary-bg-color);font-size:1rem;background-color:var(--md-primary-fg-color);transition:background 250ms}.md-hero__inner{margin-top:1rem;padding:.8rem .8rem .4rem;transition:transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 250ms;transition-delay:100ms}@media screen and (max-width: 76.1875em){.md-hero__inner{margin-top:2.4rem;margin-bottom:1.2rem}}[data-md-state=hidden] .md-hero__inner{transform:translateY(0.625rem);opacity:0;transition:transform 0ms 400ms,opacity 100ms 0ms;pointer-events:none}.md-hero--expand .md-hero__inner{margin-bottom:1.2rem}.md-footer{color:var(--md-default-bg-color);background-color:var(--md-default-fg-color)}@media print{.md-footer{display:none}}.md-footer-nav__inner{padding:.2rem;overflow:auto}.md-footer-nav__link{display:flex;padding-top:1.4rem;padding-bottom:.4rem;transition:opacity 250ms}@media screen and (min-width: 45em){.md-footer-nav__link{width:50%}}.md-footer-nav__link:focus,.md-footer-nav__link:hover{opacity:.7}.md-footer-nav__link--prev{float:left;width:25%}[dir=rtl] .md-footer-nav__link--prev{float:right}[dir=rtl] .md-footer-nav__link--prev svg{transform:scaleX(-1)}@media screen and (max-width: 44.9375em){.md-footer-nav__link--prev .md-footer-nav__title{display:none}}.md-footer-nav__link--next{float:right;width:75%;text-align:right}[dir=rtl] .md-footer-nav__link--next{float:left;text-align:left}[dir=rtl] .md-footer-nav__link--next svg{transform:scaleX(-1)}.md-footer-nav__title{position:relative;flex-grow:1;max-width:calc(100% - 2.4rem);padding:0 1rem;font-size:.9rem;line-height:2.4rem}.md-footer-nav__button{margin:.2rem;padding:.4rem}.md-footer-nav__direction{position:absolute;right:0;left:0;margin-top:-1rem;padding:0 1rem;color:var(--md-default-bg-color--light);font-size:.64rem}.md-footer-meta{background-color:var(--md-default-fg-color--lighter)}.md-footer-meta__inner{display:flex;flex-wrap:wrap;justify-content:space-between;padding:.2rem}html .md-footer-meta.md-typeset a{color:var(--md-default-bg-color--light)}html .md-footer-meta.md-typeset a:focus,html .md-footer-meta.md-typeset a:hover{color:var(--md-default-bg-color)}.md-footer-copyright{width:100%;margin:auto .6rem;padding:.4rem 0;color:var(--md-default-bg-color--lighter);font-size:.64rem}@media screen and (min-width: 45em){.md-footer-copyright{width:auto}}.md-footer-copyright__highlight{color:var(--md-default-bg-color--light)}.md-footer-social{margin:0 .4rem;padding:.2rem 0 .6rem}@media screen and (min-width: 45em){.md-footer-social{padding:.6rem 0}}.md-footer-social__link{display:inline-block;width:1.6rem;height:1.6rem;text-align:center}.md-footer-social__link::before{line-height:1.9}.md-footer-social__link svg{max-height:.8rem;vertical-align:-25%;fill:currentColor}.md-nav{font-size:.7rem;line-height:1.3}.md-nav__title{display:block;padding:0 .6rem;overflow:hidden;font-weight:700;text-overflow:ellipsis}.md-nav__title .md-nav__button{display:none}.md-nav__title .md-nav__button img{width:100%;height:auto}.md-nav__title .md-nav__button.md-logo img,.md-nav__title .md-nav__button.md-logo svg{display:block;width:2.4rem;height:2.4rem}.md-nav__title .md-nav__button.md-logo svg{fill:currentColor}.md-nav__list{margin:0;padding:0;list-style:none}.md-nav__item{padding:0 .6rem}.md-nav__item:last-child{padding-bottom:.6rem}.md-nav__item .md-nav__item{padding-right:0}[dir=rtl] .md-nav__item .md-nav__item{padding-right:.6rem;padding-left:0}.md-nav__item .md-nav__item:last-child{padding-bottom:0}.md-nav__link{display:block;margin-top:.625em;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:color 125ms;scroll-snap-align:start}html .md-nav__link[for=__toc]{display:none}html .md-nav__link[for=__toc]~.md-nav{display:none}.md-nav__link[data-md-state=blur]{color:var(--md-default-fg-color--light)}.md-nav__item .md-nav__link--active{color:var(--md-primary-fg-color)}.md-nav__item--nested>.md-nav__link{color:inherit}.md-nav__link:focus,.md-nav__link:hover{color:var(--md-accent-fg-color)}.md-nav__source{display:none}@media screen and (max-width: 76.1875em){.md-nav{background-color:var(--md-default-bg-color)}.md-nav--primary,.md-nav--primary .md-nav{position:absolute;top:0;right:0;left:0;z-index:1;display:flex;flex-direction:column;height:100%}.md-nav--primary .md-nav__title,.md-nav--primary .md-nav__item{font-size:.8rem;line-height:1.5}.md-nav--primary .md-nav__title{position:relative;height:5.6rem;padding:3rem .8rem .2rem;color:var(--md-default-fg-color--light);font-weight:400;line-height:2.4rem;white-space:nowrap;background-color:var(--md-default-fg-color--lightest);cursor:pointer}.md-nav--primary .md-nav__title .md-nav__icon{position:absolute;top:.4rem;left:.4rem;display:block;width:1.2rem;height:1.2rem;margin:.2rem}[dir=rtl] .md-nav--primary .md-nav__title .md-nav__icon{right:.4rem;left:initial}.md-nav--primary .md-nav__title~.md-nav__list{overflow-y:auto;background-color:var(--md-default-bg-color);box-shadow:inset 0 .05rem 0 var(--md-default-fg-color--lightest);scroll-snap-type:y mandatory;touch-action:pan-y}.md-nav--primary .md-nav__title~.md-nav__list>.md-nav__item:first-child{border-top:0}.md-nav--primary .md-nav__title[for=__drawer]{position:relative;color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color)}.md-nav--primary .md-nav__title[for=__drawer] .md-nav__button{position:absolute;top:.2rem;left:.2rem;display:block;margin:.2rem;padding:.4rem;font-size:2.4rem}html [dir=rtl] .md-nav--primary .md-nav__title[for=__drawer] .md-nav__button{right:.2rem;left:initial}.md-nav--primary .md-nav__list{flex:1}.md-nav--primary .md-nav__item{padding:0;border-top:.05rem solid var(--md-default-fg-color--lightest)}[dir=rtl] .md-nav--primary .md-nav__item{padding:0}.md-nav--primary .md-nav__item--nested>.md-nav__link{padding-right:2.4rem}[dir=rtl] .md-nav--primary .md-nav__item--nested>.md-nav__link{padding-right:.8rem;padding-left:2.4rem}.md-nav--primary .md-nav__item--active>.md-nav__link{color:var(--md-primary-fg-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:focus,.md-nav--primary .md-nav__item--active>.md-nav__link:hover{color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__link{position:relative;margin-top:0;padding:.6rem .8rem}.md-nav--primary .md-nav__link .md-nav__icon{position:absolute;top:50%;right:.6rem;margin-top:-0.6rem;color:inherit;font-size:1.2rem}[dir=rtl] .md-nav--primary .md-nav__link .md-nav__icon{right:initial;left:.6rem}[dir=rtl] .md-nav--primary .md-nav__icon svg{transform:scale(-1)}.md-nav--primary .md-nav--secondary .md-nav__link{position:static}.md-nav--primary .md-nav--secondary .md-nav{position:static;background-color:transparent}.md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-left:1.4rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-right:1.4rem;padding-left:initial}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-left:2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-right:2rem;padding-left:initial}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-left:2.6rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-right:2.6rem;padding-left:initial}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-left:3.2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-right:3.2rem;padding-left:initial}.md-nav__toggle~.md-nav{display:flex;transform:translateX(100%);opacity:0;transition:transform 250ms cubic-bezier(0.8, 0, 0.6, 1),opacity 125ms 50ms}[dir=rtl] .md-nav__toggle~.md-nav{transform:translateX(-100%)}.md-nav__toggle:checked~.md-nav{transform:translateX(0);opacity:1;transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1),opacity 125ms 125ms}.md-nav__toggle:checked~.md-nav>.md-nav__list{backface-visibility:hidden}}@media screen and (max-width: 59.9375em){html .md-nav__link[for=__toc]{display:block;padding-right:2.4rem}html .md-nav__link[for=__toc]+.md-nav__link{display:none}html .md-nav__link[for=__toc]~.md-nav{display:flex}html [dir=rtl] .md-nav__link{padding-right:.8rem;padding-left:2.4rem}.md-nav__source{display:block;padding:0 .2rem;color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color--dark)}}@media screen and (min-width: 60em){.md-nav--secondary .md-nav__title[for=__toc]{scroll-snap-align:start}.md-nav--secondary .md-nav__title .md-nav__icon{display:none}}@media screen and (min-width: 76.25em){.md-nav{transition:max-height 250ms cubic-bezier(0.86, 0, 0.07, 1)}.md-nav--primary .md-nav__title[for=__drawer]{scroll-snap-align:start}.md-nav--primary .md-nav__title .md-nav__icon{display:none}.md-nav__toggle~.md-nav{display:none}.md-nav__toggle:checked~.md-nav{display:block}.md-nav__item--nested>.md-nav>.md-nav__title{display:none}.md-nav__icon{float:right;height:.9rem;transition:transform 250ms}[dir=rtl] .md-nav__icon{float:left;transform:rotate(180deg)}.md-nav__icon svg{display:inline-block;width:.9rem;height:.9rem;vertical-align:-0.1rem}.md-nav__item--nested .md-nav__toggle:checked~.md-nav__link .md-nav__icon{transform:rotate(90deg)}}.md-search{position:relative}.no-js .md-search{display:none}@media screen and (min-width: 60em){.md-search{padding:.2rem 0}}.md-search__overlay{z-index:1;opacity:0}@media screen and (max-width: 59.9375em){.md-search__overlay{position:absolute;top:.2rem;left:-2.2rem;width:2rem;height:2rem;overflow:hidden;background-color:var(--md-default-bg-color);border-radius:1rem;transform-origin:center;transition:transform 300ms 100ms,opacity 200ms 200ms;pointer-events:none}[dir=rtl] .md-search__overlay{right:-2.2rem;left:initial}[data-md-toggle=search]:checked~.md-header .md-search__overlay{opacity:1;transition:transform 400ms,opacity 100ms}}@media screen and (max-width: 29.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(45)}}@media screen and (min-width: 30em)and (max-width: 44.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(60)}}@media screen and (min-width: 45em)and (max-width: 59.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(75)}}@media screen and (min-width: 60em){.md-search__overlay{position:fixed;top:0;left:0;width:0;height:0;background-color:var(--md-default-fg-color--light);cursor:pointer;transition:width 0ms 250ms,height 0ms 250ms,opacity 250ms}[dir=rtl] .md-search__overlay{right:0;left:initial}[data-md-toggle=search]:checked~.md-header .md-search__overlay{width:100%;height:100%;opacity:1;transition:width 0ms,height 0ms,opacity 250ms}}.md-search__inner{backface-visibility:hidden}@media screen and (max-width: 59.9375em){.md-search__inner{position:fixed;top:0;left:100%;z-index:2;width:100%;height:100%;transform:translateX(5%);opacity:0;transition:right 0ms 300ms,left 0ms 300ms,transform 150ms 150ms cubic-bezier(0.4, 0, 0.2, 1),opacity 150ms 150ms}[data-md-toggle=search]:checked~.md-header .md-search__inner{left:0;transform:translateX(0);opacity:1;transition:right 0ms 0ms,left 0ms 0ms,transform 150ms 150ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 150ms 150ms}[dir=rtl] [data-md-toggle=search]:checked~.md-header .md-search__inner{right:0;left:initial}html [dir=rtl] .md-search__inner{right:100%;left:initial;transform:translateX(-5%)}}@media screen and (min-width: 60em){.md-search__inner{position:relative;float:right;width:11.7rem;padding:.1rem 0;transition:width 250ms cubic-bezier(0.1, 0.7, 0.1, 1)}[dir=rtl] .md-search__inner{float:left}}@media screen and (min-width: 60em)and (max-width: 76.1875em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:23.4rem}}@media screen and (min-width: 76.25em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:34.4rem}}.md-search__form{position:relative}@media screen and (min-width: 60em){.md-search__form{border-radius:.1rem}}.md-search__input{position:relative;z-index:2;padding:0 2.2rem 0 3.6rem;text-overflow:ellipsis}[dir=rtl] .md-search__input{padding:0 3.6rem 0 2.2rem}.md-search__input::placeholder{transition:color 250ms}.md-search__input~.md-search__icon,.md-search__input::placeholder{color:var(--md-default-fg-color--light)}.md-search__input::-ms-clear{display:none}@media screen and (max-width: 59.9375em){.md-search__input{width:100%;height:2.4rem;font-size:.9rem}}@media screen and (min-width: 60em){.md-search__input{width:100%;height:1.8rem;padding-left:2.2rem;color:inherit;font-size:.8rem;background-color:var(--md-default-fg-color--lighter);border-radius:.1rem;transition:color 250ms,background-color 250ms}[dir=rtl] .md-search__input{padding-right:2.2rem}.md-search__input+.md-search__icon{color:var(--md-primary-bg-color)}.md-search__input::placeholder{color:var(--md-primary-bg-color--light)}.md-search__input:hover{background-color:var(--md-default-bg-color--lightest)}[data-md-toggle=search]:checked~.md-header .md-search__input{color:var(--md-default-fg-color);text-overflow:clip;background-color:var(--md-default-bg-color);border-radius:.1rem .1rem 0 0}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon,[data-md-toggle=search]:checked~.md-header .md-search__input::placeholder{color:var(--md-default-fg-color--light)}}.md-search__icon{position:absolute;z-index:2;width:1.2rem;height:1.2rem;cursor:pointer;transition:color 250ms,opacity 250ms}.md-search__icon:hover{opacity:.7}.md-search__icon[for=__search]{top:.3rem;left:.5rem}[dir=rtl] .md-search__icon[for=__search]{right:.5rem;left:initial}[dir=rtl] .md-search__icon[for=__search] svg{transform:scaleX(-1)}@media screen and (max-width: 59.9375em){.md-search__icon[for=__search]{top:.6rem;left:.8rem}[dir=rtl] .md-search__icon[for=__search]{right:.8rem;left:initial}.md-search__icon[for=__search] svg:first-child{display:none}}@media screen and (min-width: 60em){.md-search__icon[for=__search]{pointer-events:none}.md-search__icon[for=__search] svg:last-child{display:none}}.md-search__icon[type=reset]{top:.3rem;right:.5rem;transform:scale(0.75);opacity:0;transition:transform 150ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 150ms;pointer-events:none}[dir=rtl] .md-search__icon[type=reset]{right:initial;left:.5rem}@media screen and (max-width: 59.9375em){.md-search__icon[type=reset]{top:.6rem;right:.8rem}[dir=rtl] .md-search__icon[type=reset]{right:initial;left:.8rem}}[data-md-toggle=search]:checked~.md-header .md-search__input:not(:placeholder-shown)~.md-search__icon[type=reset]{transform:scale(1);opacity:1;pointer-events:initial}[data-md-toggle=search]:checked~.md-header .md-search__input:not(:placeholder-shown)~.md-search__icon[type=reset]:hover{opacity:.7}.md-search__output{position:absolute;z-index:1;width:100%;overflow:hidden;border-radius:0 0 .1rem .1rem}@media screen and (max-width: 59.9375em){.md-search__output{top:2.4rem;bottom:0}}@media screen and (min-width: 60em){.md-search__output{top:1.9rem;opacity:0;transition:opacity 400ms}[data-md-toggle=search]:checked~.md-header .md-search__output{box-shadow:0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.4);opacity:1}}.md-search__scrollwrap{height:100%;overflow-y:auto;background-color:var(--md-default-bg-color);box-shadow:inset 0 .05rem 0 var(--md-default-fg-color--lightest);backface-visibility:hidden;scroll-snap-type:y mandatory;touch-action:pan-y}@media(max-resolution: 1dppx){.md-search__scrollwrap{transform:translateZ(0)}}@media screen and (min-width: 60em)and (max-width: 76.1875em){.md-search__scrollwrap{width:23.4rem}}@media screen and (min-width: 76.25em){.md-search__scrollwrap{width:34.4rem}}@media screen and (min-width: 60em){.md-search__scrollwrap{max-height:0}[data-md-toggle=search]:checked~.md-header .md-search__scrollwrap{max-height:75vh}.md-search__scrollwrap::-webkit-scrollbar{width:.2rem;height:.2rem}.md-search__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}}.md-search-result{color:var(--md-default-fg-color);word-break:break-word}.md-search-result__meta{padding:0 .8rem;color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.8rem;background-color:var(--md-default-fg-color--lightest);scroll-snap-align:start}@media screen and (min-width: 60em){.md-search-result__meta{padding-left:2.2rem}[dir=rtl] .md-search-result__meta{padding-right:2.2rem;padding-left:initial}}.md-search-result__list{margin:0;padding:0;list-style:none;border-top:.05rem solid var(--md-default-fg-color--lightest)}.md-search-result__item{box-shadow:0 -0.05rem 0 var(--md-default-fg-color--lightest)}.md-search-result__link{display:block;outline:0;transition:background 250ms;scroll-snap-align:start}.md-search-result__link:focus,.md-search-result__link:hover{background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:focus .md-search-result__article::before,.md-search-result__link:hover .md-search-result__article::before{opacity:.7}.md-search-result__link:last-child .md-search-result__teaser{margin-bottom:.6rem}.md-search-result__article{position:relative;padding:0 .8rem;overflow:hidden}@media screen and (min-width: 60em){.md-search-result__article{padding-left:2.2rem}[dir=rtl] .md-search-result__article{padding-right:2.2rem;padding-left:.8rem}}.md-search-result__article--document .md-search-result__title{margin:.55rem 0;font-weight:400;font-size:.8rem;line-height:1.4}.md-search-result__icon{position:absolute;left:0;margin:.1rem;padding:.4rem;color:var(--md-default-fg-color--light)}[dir=rtl] .md-search-result__icon{right:0;left:initial}[dir=rtl] .md-search-result__icon svg{transform:scaleX(-1)}@media screen and (max-width: 59.9375em){.md-search-result__icon{display:none}}.md-search-result__title{margin:.5em 0;font-weight:700;font-size:.64rem;line-height:1.4}.md-search-result__teaser{display:-webkit-box;max-height:1.65rem;margin:.5em 0;overflow:hidden;color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.4;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:2}@media screen and (max-width: 44.9375em){.md-search-result__teaser{max-height:2.5rem;-webkit-line-clamp:3}}@media screen and (min-width: 60em)and (max-width: 76.1875em){.md-search-result__teaser{max-height:2.5rem;-webkit-line-clamp:3}}.md-search-result em{font-weight:700;font-style:normal;text-decoration:underline}.md-sidebar{position:sticky;top:2.4rem;width:12.1rem;padding:1.2rem 0;overflow:hidden}@media print{.md-sidebar{display:none}}@media screen and (max-width: 76.1875em){.md-sidebar--primary{position:fixed;top:0;left:-12.1rem;z-index:3;width:12.1rem;height:100%;background-color:var(--md-default-bg-color);transform:translateX(0);transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 250ms}[dir=rtl] .md-sidebar--primary{right:-12.1rem;left:initial}[data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{box-shadow:0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12),0 5px 5px -3px rgba(0,0,0,.4);transform:translateX(12.1rem)}[dir=rtl] [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{transform:translateX(-12.1rem)}.md-sidebar--primary .md-sidebar__scrollwrap{overflow:hidden}}.md-sidebar--secondary{display:none;order:2}@media screen and (min-width: 60em){.md-sidebar--secondary{display:block}.md-sidebar--secondary .md-sidebar__scrollwrap{touch-action:pan-y}}.md-sidebar__scrollwrap{max-height:100%;margin:0 .2rem;overflow-y:auto;backface-visibility:hidden;scroll-snap-type:y mandatory}@media screen and (max-width: 76.1875em){.md-sidebar--primary .md-sidebar__scrollwrap{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;scroll-snap-type:none}}.md-sidebar__scrollwrap::-webkit-scrollbar{width:.2rem;height:.2rem}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@keyframes md-source__facts--done{0%{height:0}100%{height:.65rem}}@keyframes md-source__fact--done{0%{transform:translateY(100%);opacity:0}50%{opacity:0}100%{transform:translateY(0%);opacity:1}}.md-source{display:block;font-size:.65rem;line-height:1.2;white-space:nowrap;backface-visibility:hidden;transition:opacity 250ms}.md-source:hover{opacity:.7}.md-source__icon{display:inline-block;width:2.4rem;height:2.4rem;vertical-align:middle}.md-source__icon svg{margin-top:.6rem;margin-left:.6rem}[dir=rtl] .md-source__icon svg{margin-right:.6rem;margin-left:initial}.md-source__icon+.md-source__repository{margin-left:-2rem;padding-left:2rem}[dir=rtl] .md-source__icon+.md-source__repository{margin-right:-2rem;margin-left:initial;padding-right:2rem;padding-left:initial}.md-source__repository{display:inline-block;max-width:calc(100% - 1.2rem);margin-left:.6rem;overflow:hidden;font-weight:700;text-overflow:ellipsis;vertical-align:middle}.md-source__facts{margin:0;padding:0;overflow:hidden;font-weight:700;font-size:.55rem;list-style-type:none;opacity:.75}[data-md-state=done] .md-source__facts{animation:md-source__facts--done 250ms ease-in}.md-source__fact{float:left}[dir=rtl] .md-source__fact{float:right}[data-md-state=done] .md-source__fact{animation:md-source__fact--done 400ms ease-out}.md-source__fact::before{margin:0 .1rem;content:\"·\"}.md-source__fact:first-child::before{display:none}.md-tabs{width:100%;overflow:auto;color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color);transition:background 250ms}.no-js .md-tabs{transition:none}@media screen and (max-width: 76.1875em){.md-tabs{display:none}}@media print{.md-tabs{display:none}}.md-tabs__list{margin:0;margin-left:.2rem;padding:0;white-space:nowrap;list-style:none;contain:content}[dir=rtl] .md-tabs__list{margin-right:.2rem;margin-left:initial}.md-tabs__item{display:inline-block;height:2.4rem;padding-right:.6rem;padding-left:.6rem}.md-tabs__link{display:block;margin-top:.8rem;font-size:.7rem;opacity:.7;transition:transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 250ms}.no-js .md-tabs__link{transition:none}.md-tabs__link--active,.md-tabs__link:hover{color:inherit;opacity:1}.md-tabs__item:nth-child(2) .md-tabs__link{transition-delay:20ms}.md-tabs__item:nth-child(3) .md-tabs__link{transition-delay:40ms}.md-tabs__item:nth-child(4) .md-tabs__link{transition-delay:60ms}.md-tabs__item:nth-child(5) .md-tabs__link{transition-delay:80ms}.md-tabs__item:nth-child(6) .md-tabs__link{transition-delay:100ms}.md-tabs__item:nth-child(7) .md-tabs__link{transition-delay:120ms}.md-tabs__item:nth-child(8) .md-tabs__link{transition-delay:140ms}.md-tabs__item:nth-child(9) .md-tabs__link{transition-delay:160ms}.md-tabs__item:nth-child(10) .md-tabs__link{transition-delay:180ms}.md-tabs__item:nth-child(11) .md-tabs__link{transition-delay:200ms}.md-tabs__item:nth-child(12) .md-tabs__link{transition-delay:220ms}.md-tabs__item:nth-child(13) .md-tabs__link{transition-delay:240ms}.md-tabs__item:nth-child(14) .md-tabs__link{transition-delay:260ms}.md-tabs__item:nth-child(15) .md-tabs__link{transition-delay:280ms}.md-tabs__item:nth-child(16) .md-tabs__link{transition-delay:300ms}.md-tabs[data-md-state=hidden]{pointer-events:none}.md-tabs[data-md-state=hidden] .md-tabs__link{transform:translateY(50%);opacity:0;transition:color 250ms,transform 0ms 400ms,opacity 100ms}@media screen and (min-width: 76.25em){.md-tabs~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--nested{display:none}.md-tabs--active~.md-main .md-nav--primary .md-nav__title{display:block;padding:0 .6rem;pointer-events:none;scroll-snap-align:start}.md-tabs--active~.md-main .md-nav--primary .md-nav__title[for=__drawer]{display:none}.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item{display:none}.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--active{display:block;padding:0}.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--active>.md-nav__link{display:none}.md-tabs--active~.md-main .md-nav[data-md-level=\"1\"]{display:block}.md-tabs--active~.md-main .md-nav[data-md-level=\"1\"]>.md-nav__list>.md-nav__item{padding:0 .6rem}.md-tabs--active~.md-main .md-nav[data-md-level=\"1\"] .md-nav .md-nav__title{display:none}}:root{--md-admonition-icon--note: svg-load(\"@mdi/svg/svg/pencil.svg\");--md-admonition-icon--abstract: svg-load(\"@mdi/svg/svg/text-subject.svg\");--md-admonition-icon--info: svg-load(\"@mdi/svg/svg/information.svg\");--md-admonition-icon--tip: svg-load(\"@mdi/svg/svg/fire.svg\");--md-admonition-icon--success: svg-load(\"@mdi/svg/svg/check-circle.svg\");--md-admonition-icon--question: svg-load(\"@mdi/svg/svg/help-circle.svg\");--md-admonition-icon--warning: svg-load(\"@mdi/svg/svg/alert.svg\");--md-admonition-icon--failure: svg-load(\"@mdi/svg/svg/close-circle.svg\");--md-admonition-icon--danger: svg-load(\"@mdi/svg/svg/flash-circle.svg\");--md-admonition-icon--bug: svg-load(\"@mdi/svg/svg/bug.svg\");--md-admonition-icon--example: svg-load(\"@mdi/svg/svg/format-list-numbered.svg\");--md-admonition-icon--quote: svg-load(\"@mdi/svg/svg/format-quote-close.svg\")}.md-typeset .admonition,.md-typeset details{margin:1.5625em 0;padding:0 .6rem;overflow:hidden;font-size:.64rem;page-break-inside:avoid;border-left:.2rem solid #448aff;border-radius:.1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .05rem rgba(0,0,0,.1)}[dir=rtl] .md-typeset .admonition,[dir=rtl] .md-typeset details{border-right:.2rem solid #448aff;border-left:none}@media print{.md-typeset .admonition,.md-typeset details{box-shadow:none}}html .md-typeset .admonition>:last-child,html .md-typeset details>:last-child{margin-bottom:.6rem}.md-typeset .admonition .admonition,.md-typeset details .admonition,.md-typeset .admonition details,.md-typeset details details{margin:1em 0}.md-typeset .admonition .md-typeset__scrollwrap,.md-typeset details .md-typeset__scrollwrap{margin:1em -0.6rem}.md-typeset .admonition .md-typeset__table,.md-typeset details .md-typeset__table{padding:0 .6rem}.md-typeset .admonition-title,.md-typeset summary{position:relative;margin:0 -0.6rem;padding:.4rem .6rem .4rem 2rem;font-weight:700;background-color:rgba(68,138,255,.1)}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{padding:.4rem 2rem .4rem .6rem}html .md-typeset .admonition-title:last-child,html .md-typeset summary:last-child{margin-bottom:0}.md-typeset .admonition-title::before,.md-typeset summary::before{position:absolute;left:.6rem;width:1rem;height:1rem;background-color:#448aff;mask-image:var(--md-admonition-icon--note);content:\"\"}[dir=rtl] .md-typeset .admonition-title::before,[dir=rtl] .md-typeset summary::before{right:.6rem;left:initial}.md-typeset .admonition-title code,.md-typeset summary code{margin:initial;padding:initial;color:currentColor;background-color:transparent;border-radius:initial;box-shadow:none}.md-typeset .admonition.note,.md-typeset details.note{border-color:#448aff}.md-typeset .note>.admonition-title,.md-typeset .note>summary{background-color:rgba(68,138,255,.1)}.md-typeset .note>.admonition-title::before,.md-typeset .note>summary::before{background-color:#448aff;mask-image:var(--md-admonition-icon--note)}.md-typeset .admonition.abstract,.md-typeset details.abstract,.md-typeset .admonition.tldr,.md-typeset details.tldr,.md-typeset .admonition.summary,.md-typeset details.summary{border-color:#00b0ff}.md-typeset .abstract>.admonition-title,.md-typeset .abstract>summary,.md-typeset .tldr>.admonition-title,.md-typeset .tldr>summary,.md-typeset .summary>.admonition-title,.md-typeset .summary>summary{background-color:rgba(0,176,255,.1)}.md-typeset .abstract>.admonition-title::before,.md-typeset .abstract>summary::before,.md-typeset .tldr>.admonition-title::before,.md-typeset .tldr>summary::before,.md-typeset .summary>.admonition-title::before,.md-typeset .summary>summary::before{background-color:#00b0ff;mask-image:var(--md-admonition-icon--abstract)}.md-typeset .admonition.info,.md-typeset details.info,.md-typeset .admonition.todo,.md-typeset details.todo{border-color:#00b8d4}.md-typeset .info>.admonition-title,.md-typeset .info>summary,.md-typeset .todo>.admonition-title,.md-typeset .todo>summary{background-color:rgba(0,184,212,.1)}.md-typeset .info>.admonition-title::before,.md-typeset .info>summary::before,.md-typeset .todo>.admonition-title::before,.md-typeset .todo>summary::before{background-color:#00b8d4;mask-image:var(--md-admonition-icon--info)}.md-typeset .admonition.tip,.md-typeset details.tip,.md-typeset .admonition.important,.md-typeset details.important,.md-typeset .admonition.hint,.md-typeset details.hint{border-color:#00bfa5}.md-typeset .tip>.admonition-title,.md-typeset .tip>summary,.md-typeset .important>.admonition-title,.md-typeset .important>summary,.md-typeset .hint>.admonition-title,.md-typeset .hint>summary{background-color:rgba(0,191,165,.1)}.md-typeset .tip>.admonition-title::before,.md-typeset .tip>summary::before,.md-typeset .important>.admonition-title::before,.md-typeset .important>summary::before,.md-typeset .hint>.admonition-title::before,.md-typeset .hint>summary::before{background-color:#00bfa5;mask-image:var(--md-admonition-icon--tip)}.md-typeset .admonition.success,.md-typeset details.success,.md-typeset .admonition.done,.md-typeset details.done,.md-typeset .admonition.check,.md-typeset details.check{border-color:#00c853}.md-typeset .success>.admonition-title,.md-typeset .success>summary,.md-typeset .done>.admonition-title,.md-typeset .done>summary,.md-typeset .check>.admonition-title,.md-typeset .check>summary{background-color:rgba(0,200,83,.1)}.md-typeset .success>.admonition-title::before,.md-typeset .success>summary::before,.md-typeset .done>.admonition-title::before,.md-typeset .done>summary::before,.md-typeset .check>.admonition-title::before,.md-typeset .check>summary::before{background-color:#00c853;mask-image:var(--md-admonition-icon--success)}.md-typeset .admonition.question,.md-typeset details.question,.md-typeset .admonition.faq,.md-typeset details.faq,.md-typeset .admonition.help,.md-typeset details.help{border-color:#64dd17}.md-typeset .question>.admonition-title,.md-typeset .question>summary,.md-typeset .faq>.admonition-title,.md-typeset .faq>summary,.md-typeset .help>.admonition-title,.md-typeset .help>summary{background-color:rgba(100,221,23,.1)}.md-typeset .question>.admonition-title::before,.md-typeset .question>summary::before,.md-typeset .faq>.admonition-title::before,.md-typeset .faq>summary::before,.md-typeset .help>.admonition-title::before,.md-typeset .help>summary::before{background-color:#64dd17;mask-image:var(--md-admonition-icon--question)}.md-typeset .admonition.warning,.md-typeset details.warning,.md-typeset .admonition.attention,.md-typeset details.attention,.md-typeset .admonition.caution,.md-typeset details.caution{border-color:#ff9100}.md-typeset .warning>.admonition-title,.md-typeset .warning>summary,.md-typeset .attention>.admonition-title,.md-typeset .attention>summary,.md-typeset .caution>.admonition-title,.md-typeset .caution>summary{background-color:rgba(255,145,0,.1)}.md-typeset .warning>.admonition-title::before,.md-typeset .warning>summary::before,.md-typeset .attention>.admonition-title::before,.md-typeset .attention>summary::before,.md-typeset .caution>.admonition-title::before,.md-typeset .caution>summary::before{background-color:#ff9100;mask-image:var(--md-admonition-icon--warning)}.md-typeset .admonition.failure,.md-typeset details.failure,.md-typeset .admonition.missing,.md-typeset details.missing,.md-typeset .admonition.fail,.md-typeset details.fail{border-color:#ff5252}.md-typeset .failure>.admonition-title,.md-typeset .failure>summary,.md-typeset .missing>.admonition-title,.md-typeset .missing>summary,.md-typeset .fail>.admonition-title,.md-typeset .fail>summary{background-color:rgba(255,82,82,.1)}.md-typeset .failure>.admonition-title::before,.md-typeset .failure>summary::before,.md-typeset .missing>.admonition-title::before,.md-typeset .missing>summary::before,.md-typeset .fail>.admonition-title::before,.md-typeset .fail>summary::before{background-color:#ff5252;mask-image:var(--md-admonition-icon--failure)}.md-typeset .admonition.danger,.md-typeset details.danger,.md-typeset .admonition.error,.md-typeset details.error{border-color:#ff1744}.md-typeset .danger>.admonition-title,.md-typeset .danger>summary,.md-typeset .error>.admonition-title,.md-typeset .error>summary{background-color:rgba(255,23,68,.1)}.md-typeset .danger>.admonition-title::before,.md-typeset .danger>summary::before,.md-typeset .error>.admonition-title::before,.md-typeset .error>summary::before{background-color:#ff1744;mask-image:var(--md-admonition-icon--danger)}.md-typeset .admonition.bug,.md-typeset details.bug{border-color:#f50057}.md-typeset .bug>.admonition-title,.md-typeset .bug>summary{background-color:rgba(245,0,87,.1)}.md-typeset .bug>.admonition-title::before,.md-typeset .bug>summary::before{background-color:#f50057;mask-image:var(--md-admonition-icon--bug)}.md-typeset .admonition.example,.md-typeset details.example{border-color:#651fff}.md-typeset .example>.admonition-title,.md-typeset .example>summary{background-color:rgba(101,31,255,.1)}.md-typeset .example>.admonition-title::before,.md-typeset .example>summary::before{background-color:#651fff;mask-image:var(--md-admonition-icon--example)}.md-typeset .admonition.quote,.md-typeset details.quote,.md-typeset .admonition.cite,.md-typeset details.cite{border-color:#9e9e9e}.md-typeset .quote>.admonition-title,.md-typeset .quote>summary,.md-typeset .cite>.admonition-title,.md-typeset .cite>summary{background-color:rgba(158,158,158,.1)}.md-typeset .quote>.admonition-title::before,.md-typeset .quote>summary::before,.md-typeset .cite>.admonition-title::before,.md-typeset .cite>summary::before{background-color:#9e9e9e;mask-image:var(--md-admonition-icon--quote)}.codehilite .o,.highlight .o{color:inherit}.codehilite .ow,.highlight .ow{color:inherit}.codehilite .ge,.highlight .ge{color:#000}.codehilite .gr,.highlight .gr{color:#a00}.codehilite .gh,.highlight .gh{color:#999}.codehilite .go,.highlight .go{color:#888}.codehilite .gp,.highlight .gp{color:#555}.codehilite .gs,.highlight .gs{color:inherit}.codehilite .gu,.highlight .gu{color:#aaa}.codehilite .gt,.highlight .gt{color:#a00}.codehilite .gd,.highlight .gd{background-color:#fdd}.codehilite .gi,.highlight .gi{background-color:#dfd}.codehilite .k,.highlight .k{color:#3b78e7}.codehilite .kc,.highlight .kc{color:#a71d5d}.codehilite .kd,.highlight .kd{color:#3b78e7}.codehilite .kn,.highlight .kn{color:#3b78e7}.codehilite .kp,.highlight .kp{color:#a71d5d}.codehilite .kr,.highlight .kr{color:#3e61a2}.codehilite .kt,.highlight .kt{color:#3e61a2}.codehilite .c,.highlight .c{color:#999}.codehilite .cm,.highlight .cm{color:#999}.codehilite .cp,.highlight .cp{color:#666}.codehilite .c1,.highlight .c1{color:#999}.codehilite .ch,.highlight .ch{color:#999}.codehilite .cs,.highlight .cs{color:#999}.codehilite .na,.highlight .na{color:#c2185b}.codehilite .nb,.highlight .nb{color:#c2185b}.codehilite .bp,.highlight .bp{color:#3e61a2}.codehilite .nc,.highlight .nc{color:#c2185b}.codehilite .no,.highlight .no{color:#3e61a2}.codehilite .nd,.highlight .nd{color:#666}.codehilite .ni,.highlight .ni{color:#666}.codehilite .ne,.highlight .ne{color:#c2185b}.codehilite .nf,.highlight .nf{color:#c2185b}.codehilite .nl,.highlight .nl{color:#3b5179}.codehilite .nn,.highlight .nn{color:#ec407a}.codehilite .nt,.highlight .nt{color:#3b78e7}.codehilite .nv,.highlight .nv{color:#3e61a2}.codehilite .vc,.highlight .vc{color:#3e61a2}.codehilite .vg,.highlight .vg{color:#3e61a2}.codehilite .vi,.highlight .vi{color:#3e61a2}.codehilite .nx,.highlight .nx{color:#ec407a}.codehilite .m,.highlight .m{color:#e74c3c}.codehilite .mf,.highlight .mf{color:#e74c3c}.codehilite .mh,.highlight .mh{color:#e74c3c}.codehilite .mi,.highlight .mi{color:#e74c3c}.codehilite .il,.highlight .il{color:#e74c3c}.codehilite .mo,.highlight .mo{color:#e74c3c}.codehilite .s,.highlight .s{color:#0d904f}.codehilite .sb,.highlight .sb{color:#0d904f}.codehilite .sc,.highlight .sc{color:#0d904f}.codehilite .sd,.highlight .sd{color:#999}.codehilite .s2,.highlight .s2{color:#0d904f}.codehilite .se,.highlight .se{color:#183691}.codehilite .sh,.highlight .sh{color:#183691}.codehilite .si,.highlight .si{color:#183691}.codehilite .sx,.highlight .sx{color:#183691}.codehilite .sr,.highlight .sr{color:#009926}.codehilite .s1,.highlight .s1{color:#0d904f}.codehilite .ss,.highlight .ss{color:#0d904f}.codehilite .err,.highlight .err{color:#a61717}.codehilite .w,.highlight .w{color:transparent}.codehilite .hll,.highlight .hll{display:block;margin:0 -1.1764705882em;padding:0 1.1764705882em;background-color:rgba(255,235,59,.5)}.codehilitetable,.highlighttable{display:block;overflow:hidden}.codehilitetable tbody,.highlighttable tbody,.codehilitetable td,.highlighttable td{display:block;padding:0}.codehilitetable tr,.highlighttable tr{display:flex}.codehilitetable pre,.highlighttable pre{margin:0}.codehilitetable .linenos,.highlighttable .linenos{padding:.525rem 1.1764705882em;padding-right:0;font-size:.85em;background-color:var(--md-code-bg-color);user-select:none}.codehilitetable .linenodiv,.highlighttable .linenodiv{padding-right:.5882352941em;box-shadow:inset -0.05rem 0 var(--md-default-fg-color--lightest)}.codehilitetable .linenodiv pre,.highlighttable .linenodiv pre{color:var(--md-default-fg-color--lighter);text-align:right}.codehilitetable .code,.highlighttable .code{flex:1;overflow:hidden}.md-typeset .codehilitetable,.md-typeset .highlighttable{margin:1em 0;direction:ltr;border-radius:.1rem}.md-typeset .codehilitetable code,.md-typeset .highlighttable code{border-radius:0}@media screen and (max-width: 44.9375em){.md-typeset>.codehilite,.md-typeset>.highlight{margin:1em -0.8rem}.md-typeset>.codehilite .hll,.md-typeset>.highlight .hll{margin:0 -0.8rem;padding:0 .8rem}.md-typeset>.codehilite code,.md-typeset>.highlight code{border-radius:0}.md-typeset>.codehilitetable,.md-typeset>.highlighttable{margin:1em -0.8rem;border-radius:0}.md-typeset>.codehilitetable .hll,.md-typeset>.highlighttable .hll{margin:0 -0.8rem;padding:0 .8rem}}:root{--md-footnotes-icon: svg-load(\"@mdi/svg/svg/keyboard-return.svg\")}.md-typeset [id^=\"fnref:\"]{display:inline-block}.md-typeset [id^=\"fnref:\"]:target{margin-top:-3.8rem;padding-top:3.8rem;pointer-events:none}.md-typeset [id^=\"fn:\"]::before{display:none;height:0;content:\"\"}.md-typeset [id^=\"fn:\"]:target::before{display:block;margin-top:-3.5rem;padding-top:3.5rem;pointer-events:none}.md-typeset .footnote{color:var(--md-default-fg-color--light);font-size:.64rem}.md-typeset .footnote ol{margin-left:0}.md-typeset .footnote li{transition:color 125ms}.md-typeset .footnote li:target{color:var(--md-default-fg-color)}.md-typeset .footnote li :first-child{margin-top:0}.md-typeset .footnote li:hover .footnote-backref,.md-typeset .footnote li:target .footnote-backref{transform:translateX(0);opacity:1}.md-typeset .footnote li:hover .footnote-backref:hover{color:var(--md-accent-fg-color)}.md-typeset .footnote-ref{display:inline-block;pointer-events:initial}.md-typeset .footnote-backref{display:inline-block;color:var(--md-primary-fg-color);font-size:0;vertical-align:text-bottom;transform:translateX(0.25rem);opacity:0;transition:color 250ms,transform 250ms 250ms,opacity 125ms 250ms}[dir=rtl] .md-typeset .footnote-backref{transform:translateX(-0.25rem)}.md-typeset .footnote-backref::before{display:inline-block;width:.8rem;height:.8rem;background-color:currentColor;mask-image:var(--md-footnotes-icon);content:\"\"}[dir=rtl] .md-typeset .footnote-backref::before svg{transform:scaleX(-1)}@media print{.md-typeset .footnote-backref{color:var(--md-primary-fg-color);transform:translateX(0);opacity:1}}.md-typeset .headerlink{display:inline-block;margin-left:.5rem;visibility:hidden;opacity:0;transition:color 250ms,visibility 0ms 500ms,opacity 125ms}[dir=rtl] .md-typeset .headerlink{margin-right:.5rem;margin-left:initial}html body .md-typeset .headerlink{color:var(--md-default-fg-color--lighter)}@media print{.md-typeset .headerlink{display:none}}.md-typeset :hover>.headerlink,.md-typeset :target>.headerlink,.md-typeset .headerlink:focus{visibility:visible;opacity:1;transition:color 250ms,visibility 0ms,opacity 125ms}.md-typeset :target>.headerlink,.md-typeset .headerlink:focus,.md-typeset .headerlink:hover{color:var(--md-accent-fg-color)}.md-typeset h3[id]::before,.md-typeset h2[id]::before,.md-typeset h1[id]::before{display:block;margin-top:-0.4rem;padding-top:.4rem;content:\"\"}.md-typeset h3[id]:target::before,.md-typeset h2[id]:target::before,.md-typeset h1[id]:target::before{margin-top:-3.4rem;padding-top:3.4rem}.md-typeset h4[id]::before{display:block;margin-top:-0.45rem;padding-top:.45rem;content:\"\"}.md-typeset h4[id]:target::before{margin-top:-3.45rem;padding-top:3.45rem}.md-typeset h6[id]::before,.md-typeset h5[id]::before{display:block;margin-top:-0.6rem;padding-top:.6rem;content:\"\"}.md-typeset h6[id]:target::before,.md-typeset h5[id]:target::before{margin-top:-3.6rem;padding-top:3.6rem}.md-typeset .MJXc-display{margin:.75em 0;padding:.75em 0;overflow:auto;touch-action:auto}@media screen and (max-width: 44.9375em){.md-typeset>p>.MJXc-display{margin:.75em -0.8rem;padding:.25em .8rem}}.md-typeset .MathJax_CHTML{outline:0}.md-typeset del.critic,.md-typeset ins.critic,.md-typeset .critic.comment{padding:0 .25em;border-radius:.1rem;box-decoration-break:clone}.md-typeset del.critic{background-color:#fdd}.md-typeset ins.critic{background-color:#dfd}.md-typeset .critic.comment{color:#999}.md-typeset .critic.comment::before{content:\"/* \"}.md-typeset .critic.comment::after{content:\" */\"}.md-typeset .critic.block{display:block;margin:1em 0;padding-right:.8rem;padding-left:.8rem;overflow:auto;box-shadow:none}.md-typeset .critic.block :first-child{margin-top:.5em}.md-typeset .critic.block :last-child{margin-bottom:.5em}:root{--md-details-icon: svg-load(\"@mdi/svg/svg/chevron-right.svg\")}.md-typeset details{display:block;padding-top:0;overflow:visible}.md-typeset details[open]>summary::after{transform:rotate(90deg)}.md-typeset details:not([open]){padding-bottom:0}.md-typeset details:not([open])>summary{border-bottom-right-radius:.1rem}.md-typeset details::after{display:table;content:\"\"}.md-typeset summary{display:block;min-height:1rem;padding:.4rem 1.8rem .4rem 2rem;border-top-right-radius:.1rem;cursor:pointer}[dir=rtl] .md-typeset summary{padding:.4rem 2rem .4rem 1.8rem}.md-typeset summary::-webkit-details-marker{display:none}.md-typeset summary::after{position:absolute;top:.4rem;right:.4rem;width:1rem;height:1rem;background-color:currentColor;mask-image:var(--md-details-icon);transform:rotate(0deg);transition:transform 250ms;content:\"\"}[dir=rtl] .md-typeset summary::after{right:initial;left:.4rem;transform:rotate(180deg)}.md-typeset img.emojione,.md-typeset img.twemoji,.md-typeset img.gemoji{width:1.125em;vertical-align:-15%}.md-typeset span.twemoji{display:inline-block;height:1.125em;vertical-align:text-top}.md-typeset span.twemoji svg{width:1.125em;fill:currentColor}.highlight [data-linenos]::before{position:sticky;left:-1.1764705882em;float:left;margin-right:1.1764705882em;margin-left:-1.1764705882em;padding-left:1.1764705882em;color:var(--md-default-fg-color--lighter);background-color:var(--md-code-bg-color);box-shadow:inset -0.05rem 0 var(--md-default-fg-color--lightest);content:attr(data-linenos);user-select:none}.md-typeset .tabbed-content{display:none;order:99;width:100%;box-shadow:0 -0.05rem var(--md-default-fg-color--lightest)}.md-typeset .tabbed-content>.codehilite:only-child pre,.md-typeset .tabbed-content>.codehilitetable:only-child,.md-typeset .tabbed-content>.highlight:only-child pre,.md-typeset .tabbed-content>.highlighttable:only-child{margin:0}.md-typeset .tabbed-content>.codehilite:only-child pre>code,.md-typeset .tabbed-content>.codehilitetable:only-child>code,.md-typeset .tabbed-content>.highlight:only-child pre>code,.md-typeset .tabbed-content>.highlighttable:only-child>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-content>.tabbed-set{margin:0}.md-typeset .tabbed-set{position:relative;display:flex;flex-wrap:wrap;margin:1em 0;border-radius:.1rem}.md-typeset .tabbed-set>input{display:none}.md-typeset .tabbed-set>input:checked+label{color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color)}.md-typeset .tabbed-set>input:checked+label+.tabbed-content{display:block}.md-typeset .tabbed-set>label{z-index:1;width:auto;padding:.6rem 1.25em .5rem;color:var(--md-default-fg-color--light);font-weight:700;font-size:.64rem;border-bottom:.1rem solid transparent;cursor:pointer;transition:color 125ms}html .md-typeset .tabbed-set>label:hover{color:var(--md-accent-fg-color)}:root{--md-tasklist-icon: svg-load(\"@mdi/svg/svg/checkbox-blank-circle.svg\");--md-tasklist-icon--checked: svg-load(\"@mdi/svg/svg/check-circle.svg\")}.md-typeset .task-list-item{position:relative;list-style-type:none}.md-typeset .task-list-item [type=checkbox]{position:absolute;top:.45em;left:-2em}[dir=rtl] .md-typeset .task-list-item [type=checkbox]{right:-2em;left:initial}.md-typeset .task-list-control .task-list-indicator::before{position:absolute;top:.15em;left:-1.5em;width:1.25em;height:1.25em;background-color:var(--md-default-fg-color--lightest);mask-image:var(--md-tasklist-icon);content:\"\"}[dir=rtl] .md-typeset .task-list-control .task-list-indicator::before{right:-1.5em;left:initial}.md-typeset .task-list-control [type=checkbox]:checked+.task-list-indicator::before{background-color:#00e676;mask-image:var(--md-tasklist-icon--checked)}.md-typeset .task-list-control [type=checkbox]{z-index:-1;opacity:0}","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// stylelint-disable no-duplicate-selectors\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Enforce correct box model\nhtml {\n box-sizing: border-box;\n}\n\n// All elements shall inherit the document default\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n// Prevent adjustments of font size after orientation changes in IE and iOS\nhtml {\n text-size-adjust: none;\n}\n\n// Remove margin in all browsers\nbody {\n margin: 0;\n}\n\n// Reset horizontal rules in FF\nhr {\n box-sizing: content-box;\n overflow: visible;\n}\n\n// Reset tap outlines on iOS and Android\na,\nbutton,\nlabel,\ninput {\n -webkit-tap-highlight-color: transparent;\n}\n\n// Reset link styles\na {\n color: inherit;\n text-decoration: none;\n}\n\n// Normalize font-size in all browsers\nsmall {\n font-size: 80%;\n}\n\n// Prevent subscript and superscript from affecting line-height\nsub,\nsup {\n position: relative;\n font-size: 80%;\n line-height: 0;\n vertical-align: baseline;\n}\n\n// Correct subscript offset\nsub {\n bottom: -0.25em;\n}\n\n// Correct superscript offset\nsup {\n top: -0.5em;\n}\n\n// Remove borders on images\nimg {\n border-style: none;\n}\n\n// Reset table styles\ntable {\n border-collapse: separate;\n border-spacing: 0;\n}\n\n// Reset table cell styles\ntd,\nth {\n font-weight: normal; // stylelint-disable-line\n vertical-align: top;\n}\n\n// Reset button styles\nbutton {\n margin: 0;\n padding: 0;\n font-size: inherit;\n background: transparent;\n border: 0;\n}\n\n// Reset input styles\ninput {\n border: 0;\n outline: 0;\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Color definitions\n:root {\n\n // Default color shades\n --md-default-fg-color: hsla(0, 0%, 0%, 0.87);\n --md-default-fg-color--light: hsla(0, 0%, 0%, 0.54);\n --md-default-fg-color--lighter: hsla(0, 0%, 0%, 0.26);\n --md-default-fg-color--lightest: hsla(0, 0%, 0%, 0.07);\n --md-default-bg-color: hsla(0, 0%, 100%, 1);\n --md-default-bg-color--light: hsla(0, 0%, 100%, 0.7);\n --md-default-bg-color--lighter: hsla(0, 0%, 100%, 0.3);\n --md-default-bg-color--lightest: hsla(0, 0%, 100%, 0.12);\n\n // Primary color shades\n --md-primary-fg-color: hsla(#{hex2hsl($clr-indigo-500)}, 1);\n --md-primary-fg-color--light: hsla(#{hex2hsl($clr-indigo-300)}, 1);\n --md-primary-fg-color--dark: hsla(#{hex2hsl($clr-indigo-700)}, 1);\n --md-primary-bg-color: var(--md-default-bg-color);\n --md-primary-bg-color--light: var(--md-default-bg-color--light);\n\n // Accent color shades\n --md-accent-fg-color: hsla(#{hex2hsl($clr-indigo-a200)}, 1);\n --md-accent-fg-color--transparent: hsla(#{hex2hsl($clr-indigo-a200)}, 0.1);\n --md-accent-bg-color: var(--md-default-bg-color);\n --md-accent-bg-color--light: var(--md-default-bg-color--light);\n\n // Code block color shades\n --md-code-bg-color: hsla(0, 0%, 96%, 1);\n --md-code-fg-color: hsla(200, 18%, 26%, 1);\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Icon\n.md-icon {\n\n // SVG defaults\n svg {\n display: block;\n width: px2rem(24px);\n height: px2rem(24px);\n margin: 0 auto;\n fill: currentColor;\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules: font definitions\n// ----------------------------------------------------------------------------\n\n// Enable font-smoothing in Webkit and FF\nbody {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n// Default fonts\nbody,\ninput {\n color: var(--md-default-fg-color);\n font-feature-settings: \"kern\", \"liga\";\n font-family: -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif;\n}\n\n// Proportionally spaced fonts\ncode,\npre,\nkbd {\n color: var(--md-default-fg-color);\n font-feature-settings: \"kern\";\n font-family: SFMono-Regular, Consolas, Menlo, monospace;\n}\n\n// ----------------------------------------------------------------------------\n// Rules: typesetted content\n// ----------------------------------------------------------------------------\n\n// Content that is typeset - if possible, all margins, paddings and font sizes\n// should be set in ems, so nested blocks (e.g. Admonition) render correctly,\n// except headlines that should only appear on the top level and need to have\n// consistent spacing due to layout constraints.\n.md-typeset {\n font-size: ms(0);\n line-height: 1.6;\n color-adjust: exact;\n\n // Default spacing\n p,\n ul,\n ol,\n blockquote {\n margin: 1em 0;\n }\n\n // 1st level headline\n h1 {\n margin: 0 0 px2rem(40px);\n color: var(--md-default-fg-color--light);\n font-weight: 300;\n font-size: ms(3);\n line-height: 1.3;\n letter-spacing: -0.01em;\n }\n\n // 2nd level headline\n h2 {\n margin: px2rem(40px) 0 px2rem(16px);\n font-weight: 300;\n font-size: ms(2);\n line-height: 1.4;\n letter-spacing: -0.01em;\n }\n\n // 3rd level headline\n h3 {\n margin: px2rem(32px) 0 px2rem(16px);\n font-weight: 400;\n font-size: ms(1);\n line-height: 1.5;\n letter-spacing: -0.01em;\n }\n\n // 3rd level headline following an 2nd level headline\n h2 + h3 {\n margin-top: px2rem(16px);\n }\n\n // 4th level headline\n h4 {\n margin: px2rem(16px) 0;\n font-weight: 700;\n font-size: ms(0);\n letter-spacing: -0.01em;\n }\n\n // 5th and 6th level headline\n h5,\n h6 {\n margin: px2rem(16px) 0;\n color: var(--md-default-fg-color--light);\n font-weight: 700;\n font-size: ms(-1);\n letter-spacing: -0.01em;\n }\n\n // Overrides for 5th level headline\n h5 {\n text-transform: uppercase;\n }\n\n // Horizontal separators\n hr {\n margin: 1.5em 0;\n border-bottom: px2rem(1px) dotted var(--md-default-fg-color--lighter);\n }\n\n // Links\n a {\n color: var(--md-primary-fg-color);\n word-break: break-word;\n\n // Also enable color transition on pseudo elements\n &,\n &::before {\n transition: color 125ms;\n }\n\n // Focused or hover links\n &:focus,\n &:hover {\n color: var(--md-accent-fg-color);\n }\n }\n\n // Code blocks\n code,\n pre,\n kbd {\n color: var(--md-code-fg-color);\n direction: ltr;\n\n // Wrap text and hide scollbars\n @media print {\n white-space: pre-wrap;\n }\n }\n\n // Inline code blocks\n code {\n padding: 0 px2em(4px, 13.6px);\n font-size: px2em(13.6px);\n word-break: break-word;\n background-color: var(--md-code-bg-color);\n border-radius: px2rem(2px);\n box-decoration-break: clone;\n }\n\n // Disable containing block inside headlines\n h1 code,\n h2 code,\n h3 code,\n h4 code,\n h5 code,\n h6 code {\n margin: initial;\n padding: initial;\n background-color: transparent;\n box-shadow: none;\n }\n\n // Ensure link color in code blocks\n a > code {\n color: currentColor;\n }\n\n // Unformatted code blocks\n pre {\n position: relative;\n margin: 1em 0;\n line-height: 1.4;\n\n // Actual container with code, overflowing\n > code {\n display: block;\n margin: 0;\n padding: px2rem(10.5px) px2em(16px, 13.6px);\n overflow: auto;\n word-break: normal;\n box-shadow: none;\n box-decoration-break: slice;\n touch-action: auto;\n\n // Override native scrollbar styles\n &::-webkit-scrollbar {\n width: px2rem(4px);\n height: px2rem(4px);\n }\n\n // Scrollbar thumb\n &::-webkit-scrollbar-thumb {\n background-color: var(--md-default-fg-color--lighter);\n\n // Hovered scrollbar thumb\n &:hover {\n background-color: var(--md-accent-fg-color);\n }\n }\n }\n }\n\n // [mobile -]: Stretch to whole width\n @include break-to-device(mobile) {\n\n // Stretch top-level containers\n > pre {\n margin: 1em px2rem(-16px);\n\n // Remove rounded borders\n code {\n border-radius: 0;\n }\n }\n }\n\n // Keystrokes\n kbd {\n display: inline-block;\n padding: 0 px2em(8px, 12px);\n font-size: px2em(12px);\n line-height: 1.5;\n vertical-align: text-top;\n word-break: break-word;\n border-radius: px2rem(2px);\n box-shadow:\n 0 px2rem(2px) 0 px2rem(1px) var(--md-default-fg-color--lighter),\n 0 px2rem(2px) 0 var(--md-default-fg-color--lighter),\n inset 0 px2rem(-2px) px2rem(4px) var(--md-default-bg-color);\n }\n\n // Text highlighting marker\n mark {\n padding: 0 px2em(4px, 16px);\n word-break: break-word;\n background-color: transparentize($clr-yellow-500, 0.5);\n border-radius: px2rem(2px);\n box-decoration-break: clone;\n }\n\n // Abbreviations\n abbr {\n text-decoration: none;\n border-bottom: px2rem(1px) dotted var(--md-default-fg-color--light);\n cursor: help;\n }\n\n // Small text\n small {\n opacity: 0.75;\n }\n\n // Superscript and subscript\n sup,\n sub {\n margin-left: px2em(1px, 12.8px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2em(1px, 12.8px);\n margin-left: initial;\n }\n }\n\n // Blockquotes, possibly nested\n blockquote {\n padding-left: px2rem(12px);\n color: var(--md-default-fg-color--light);\n border-left: px2rem(4px) solid var(--md-default-fg-color--lighter);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(12px);\n padding-left: initial;\n border-right: px2rem(4px) solid var(--md-default-fg-color--lighter);\n border-left: initial;\n }\n }\n\n // Unordered lists\n ul {\n list-style-type: disc;\n }\n\n // Unordered and ordered lists\n ul,\n ol {\n margin-left: px2em(10px, 16px);\n padding: 0;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2em(10px, 16px);\n margin-left: initial;\n }\n\n // Nested ordered lists\n ol {\n list-style-type: lower-alpha;\n\n // Triply nested ordered list\n ol {\n list-style-type: lower-roman;\n }\n }\n\n // List elements\n li {\n margin-bottom: 0.5em;\n margin-left: px2em(20px, 16px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2em(20px, 16px);\n margin-left: initial;\n }\n\n // Decrease vertical spacing\n p,\n blockquote {\n margin: 0.5em 0;\n }\n\n // Remove margin on last element\n &:last-child {\n margin-bottom: 0;\n }\n\n // Nested lists\n ul,\n ol {\n margin: 0.5em 0 0.5em px2em(10px, 16px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2em(10px, 16px);\n margin-left: initial;\n }\n }\n }\n }\n\n // Definition lists\n dd {\n margin: 1em 0 1em px2em(30px, 16px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2em(30px, 16px);\n margin-left: initial;\n }\n }\n\n // Limit width to container, scale height proportionally\n iframe,\n img,\n svg {\n max-width: 100%;\n height: auto;\n }\n\n // Data tables\n table:not([class]) {\n display: inline-block;\n max-width: 100%;\n overflow: auto;\n font-size: ms(-1);\n background: var(--md-default-bg-color);\n border-radius: px2rem(2px);\n box-shadow:\n 0 px2rem(4px) px2rem(10px) hsla(0, 0%, 0%, 0.05),\n 0 0 px2rem(1px) hsla(0, 0%, 0%, 0.1);\n touch-action: auto;\n\n // Due to margin collapse because of the necessary inline-block hack, we\n // cannot increase the bottom margin on the table, so we just increase the\n // top margin on the following element\n & + * {\n margin-top: 1.5em;\n }\n\n // Table headings and cells\n th:not([align]),\n td:not([align]) {\n text-align: left;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n text-align: right;\n }\n }\n\n // Table headings\n th {\n min-width: px2rem(100px);\n padding: px2rem(12px) px2rem(16px);\n color: var(--md-default-bg-color);\n vertical-align: top;\n background-color: var(--md-default-fg-color--light);\n }\n\n // Table cells\n td {\n padding: px2rem(12px) px2rem(16px);\n vertical-align: top;\n border-top: px2rem(1px) solid var(--md-default-fg-color--lightest);\n }\n\n // Table rows\n tr {\n transition: background-color 125ms;\n\n // Add background on hover\n &:hover {\n background-color: rgba(0, 0, 0, 0.035);\n box-shadow: 0 px2rem(1px) 0 var(--md-default-bg-color) inset;\n }\n\n // Remove top border on first row\n &:first-child td {\n border-top: 0;\n }\n }\n\n\n // Do not wrap links in tables\n a {\n word-break: normal;\n }\n }\n\n // Wrapper for scrolling on overflow\n &__scrollwrap {\n margin: 1em px2rem(-16px);\n overflow-x: auto;\n touch-action: auto;\n }\n\n // Data table wrapper, in case JavaScript is available\n &__table {\n display: inline-block;\n margin-bottom: 0.5em;\n padding: 0 px2rem(16px);\n\n // Data tables\n table {\n display: table;\n width: 100%;\n margin: 0;\n overflow: hidden;\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Variables\n// ----------------------------------------------------------------------------\n\n///\n/// Device-specific breakpoints\n///\n/// @example\n/// $break-devices: (\n/// mobile: (\n/// portrait: 220px 479px,\n/// landscape: 480px 719px\n/// ),\n/// tablet: (\n/// portrait: 720px 959px,\n/// landscape: 960px 1219px\n/// ),\n/// screen: (\n/// small: 1220px 1599px,\n/// medium: 1600px 1999px,\n/// large: 2000px\n/// )\n/// );\n///\n$break-devices: () !default;\n\n// ----------------------------------------------------------------------------\n// Helpers\n// ----------------------------------------------------------------------------\n\n///\n/// Choose minimum and maximum device widths\n///\n@function break-select-min-max($devices) {\n $min: 1000000;\n $max: 0;\n @each $key, $value in $devices {\n @while type-of($value) == map {\n $value: break-select-min-max($value);\n }\n @if type-of($value) == list {\n @each $number in $value {\n @if type-of($number) == number {\n $min: min($number, $min);\n @if $max != null {\n $max: max($number, $max);\n }\n } @else {\n @error \"Invalid number: #{$number}\";\n }\n }\n } @else if type-of($value) == number {\n $min: min($value, $min);\n $max: null;\n } @else {\n @error \"Invalid value: #{$value}\";\n }\n }\n @return $min, $max;\n}\n\n///\n/// Select minimum and maximum widths for a device breakpoint\n///\n@function break-select-device($device) {\n $current: $break-devices;\n @for $n from 1 through length($device) {\n @if type-of($current) == map {\n $current: map-get($current, nth($device, $n));\n } @else {\n @error \"Invalid device map: #{$devices}\";\n }\n }\n @if type-of($current) == list or type-of($current) == number {\n $current: (default: $current);\n }\n @return break-select-min-max($current);\n}\n\n// ----------------------------------------------------------------------------\n// Mixins\n// ----------------------------------------------------------------------------\n\n///\n/// A minimum-maximum media query breakpoint\n///\n@mixin break-at($breakpoint) {\n @if type-of($breakpoint) == number {\n @media screen and (min-width: $breakpoint) {\n @content;\n }\n } @else if type-of($breakpoint) == list {\n $min: nth($breakpoint, 1);\n $max: nth($breakpoint, 2);\n @if type-of($min) == number and type-of($max) == number {\n @media screen and (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else {\n @error \"Invalid breakpoint: #{$breakpoint}\";\n }\n } @else {\n @error \"Invalid breakpoint: #{$breakpoint}\";\n }\n}\n\n///\n/// An orientation media query breakpoint\n///\n@mixin break-at-orientation($breakpoint) {\n @if type-of($breakpoint) == string {\n @media screen and (orientation: $breakpoint) {\n @content;\n }\n } @else {\n @error \"Invalid breakpoint: #{$breakpoint}\";\n }\n}\n\n///\n/// A maximum-aspect-ratio media query breakpoint\n///\n@mixin break-at-ratio($breakpoint) {\n @if type-of($breakpoint) == number {\n @media screen and (max-aspect-ratio: $breakpoint) {\n @content;\n }\n } @else {\n @error \"Invalid breakpoint: #{$breakpoint}\";\n }\n}\n\n///\n/// A minimum-maximum media query device breakpoint\n///\n@mixin break-at-device($device) {\n @if type-of($device) == string {\n $device: $device,;\n }\n @if type-of($device) == list {\n $breakpoint: break-select-device($device);\n @if nth($breakpoint, 2) != null {\n $min: nth($breakpoint, 1);\n $max: nth($breakpoint, 2);\n @media screen and (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else {\n @error \"Invalid device: #{$device}\";\n }\n } @else {\n @error \"Invalid device: #{$device}\";\n }\n}\n\n///\n/// A minimum media query device breakpoint\n///\n@mixin break-from-device($device) {\n @if type-of($device) == string {\n $device: $device,;\n }\n @if type-of($device) == list {\n $breakpoint: break-select-device($device);\n $min: nth($breakpoint, 1);\n @media screen and (min-width: $min) {\n @content;\n }\n } @else {\n @error \"Invalid device: #{$device}\";\n }\n}\n\n///\n/// A maximum media query device breakpoint\n///\n@mixin break-to-device($device) {\n @if type-of($device) == string {\n $device: $device,;\n }\n @if type-of($device) == list {\n $breakpoint: break-select-device($device);\n $max: nth($breakpoint, 2);\n @media screen and (max-width: $max) {\n @content;\n }\n } @else {\n @error \"Invalid device: #{$device}\";\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Variables\n// ----------------------------------------------------------------------------\n\n// Active (toggled) drawer\n$md-toggle__drawer--checked:\n \"[data-md-toggle=\\\"drawer\\\"]:checked ~\";\n\n// ----------------------------------------------------------------------------\n// Rules: base grid and containers\n// ----------------------------------------------------------------------------\n\n// Stretch container to viewport and set base font-sizefor simple calculations\n// based on relative ems (rems)\nhtml {\n height: 100%;\n // Hack: some browsers on some operating systems don't account for scroll\n // bars when firing media queries, so we need to do this for safety. This\n // currently impacts the table of contents component between 1220 and 1234px\n // and is to current knowledge not fixable.\n overflow-x: hidden;\n // Hack: normally, we would set the base font-size to 62.5%, so we can base\n // all calculations on 10px, but Chromium and Chrome define a minimal font\n // size of 12 if the system language is set to Chinese. For this reason we\n // just double the font-size, set it to 20px which seems to do the trick.\n //\n // See https://github.com/squidfunk/mkdocs-material/issues/911\n font-size: 125%;\n background-color: var(--md-default-bg-color);\n\n // [screen medium +]: Set base font-size to 11px\n @include break-from-device(screen medium) {\n font-size: 137.50%;\n }\n\n // [screen large +]: Set base font-size to 12px\n @include break-from-device(screen large) {\n font-size: 150%;\n }\n}\n\n// Stretch body to container and leave room for footer\nbody {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n min-height: 100%;\n // Hack: reset font-size to 10px, so the spacing for all inline elements is\n // correct again. Otherwise the spacing would be based on 20px.\n font-size: 0.5rem; // stylelint-disable-line unit-whitelist\n\n // [tablet portrait -]: Lock body to disable scroll bubbling\n @include break-to-device(tablet portrait) {\n\n // Lock body to viewport height (e.g. in search mode)\n &[data-md-state=\"lock\"] {\n position: fixed;\n }\n }\n\n // Hack: we must not use flex, or Firefox will only print the first page\n // see https://mzl.la/39DgR3m\n @media print {\n display: block;\n }\n}\n\n// Horizontal separators\nhr {\n display: block;\n height: px2rem(1px);\n padding: 0;\n border: 0;\n}\n\n// Template-wide grid\n.md-grid {\n max-width: px2rem(1220px);\n margin-right: auto;\n margin-left: auto;\n}\n\n// Content wrapper\n.md-container {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n\n // Hack: we must not use flex, or Firefox will only print the first page\n // see https://mzl.la/39DgR3m\n @media print {\n display: block;\n }\n}\n\n// The main content should stretch to maximum height in the table\n.md-main {\n flex-grow: 1;\n\n // Increase top spacing of content area to give typography more room\n &__inner {\n display: flex;\n height: 100%;\n margin-top: px2rem(24px + 6px);\n }\n}\n\n// Apply ellipsis in case of overflowing text\n.md-ellipsis {\n display: block;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n// ----------------------------------------------------------------------------\n// Rules: navigational elements\n// ----------------------------------------------------------------------------\n\n// Toggle checkbox\n.md-toggle {\n display: none;\n}\n\n// Overlay below expanded drawer\n.md-overlay {\n position: fixed;\n top: 0;\n z-index: 3;\n width: 0;\n height: 0;\n background-color: var(--md-default-fg-color--light);\n opacity: 0;\n transition:\n width 0ms 250ms,\n height 0ms 250ms,\n opacity 250ms;\n\n // [tablet -]: Trigger overlay\n @include break-to-device(tablet) {\n\n // Expanded drawer\n #{$md-toggle__drawer--checked} & {\n width: 100%;\n height: 100%;\n opacity: 1;\n transition:\n width 0ms,\n height 0ms,\n opacity 250ms;\n }\n }\n}\n\n// ----------------------------------------------------------------------------\n// Rules: skip link\n// ----------------------------------------------------------------------------\n\n// Skip link\n.md-skip {\n position: fixed;\n // Hack: if we don't set the negative z-index, the skip link will induce the\n // creation of new layers when code blocks are near the header on scrolling\n z-index: -1;\n margin: px2rem(10px);\n padding: px2rem(6px) px2rem(10px);\n color: var(--md-default-bg-color);\n font-size: ms(-1);\n background-color: var(--md-default-fg-color);\n border-radius: px2rem(2px);\n transform: translateY(px2rem(8px));\n opacity: 0;\n\n // Show skip link on focus\n &:focus {\n z-index: 10;\n transform: translateY(0);\n opacity: 1;\n transition:\n transform 250ms cubic-bezier(0.4, 0, 0.2, 1),\n opacity 175ms 75ms;\n }\n}\n\n// ----------------------------------------------------------------------------\n// Rules: print styles\n// ----------------------------------------------------------------------------\n\n// Add margins to page\n@page {\n margin: 25mm;\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Announcement bar\n.md-announce {\n overflow: auto;\n background-color: var(--md-default-fg-color);\n\n // Actual content\n &__inner {\n margin: px2rem(12px) auto;\n padding: 0 px2rem(16px);\n color: var(--md-default-bg-color);\n font-size: px2rem(14px);\n }\n\n // Hide for print\n @media print {\n display: none;\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // Button\n .md-button {\n display: inline-block;\n padding: px2em(10px, 16px) px2em(32px, 16px);\n color: var(--md-primary-fg-color);\n font-weight: 700;\n border: px2rem(2px) solid currentColor;\n border-radius: px2rem(2px);\n transition:\n color 125ms,\n background-color 125ms,\n border-color 125ms;\n\n // Primary button\n &--primary {\n color: var(--md-primary-bg-color);\n background-color: var(--md-primary-fg-color);\n border-color: var(--md-primary-fg-color);\n }\n\n // Focused or hovered button\n &:focus,\n &:hover {\n color: var(--md-accent-bg-color);\n background-color: var(--md-accent-fg-color);\n border-color: var(--md-accent-fg-color);\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Copy to clipboard\n.md-clipboard {\n position: absolute;\n top: px2rem(8px);\n right: px2em(8px, 16px);\n z-index: 1;\n width: px2em(24px, 16px);\n height: px2em(24px, 16px);\n color: var(--md-default-fg-color--lightest);\n border-radius: px2rem(2px);\n cursor: pointer;\n transition: color 125ms;\n\n // Hide for print\n @media print {\n display: none;\n }\n\n // Slightly smaller icon\n svg {\n width: px2em(18px, 16px);\n height: px2em(18px, 16px);\n }\n\n // Show on container hover\n pre:hover & {\n color: var(--md-default-fg-color--light);\n }\n\n // Focused or hovered icon\n pre &:focus,\n pre &:hover {\n color: var(--md-accent-fg-color);\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Content container\n.md-content {\n flex: 1;\n max-width: 100%;\n\n // [tablet landscape]: Decrease horizontal width\n @include break-at-device(tablet landscape) {\n max-width: calc(100% - #{px2rem(242px)});\n }\n\n // [screen +]: Decrease horizontal width\n @include break-from-device(screen) {\n max-width: calc(100% - #{px2rem(242px)} * 2);\n }\n\n // Define spacing\n &__inner {\n margin: 0 px2rem(16px) px2rem(24px);\n padding-top: px2rem(12px);\n\n // [screen +]: Increase horizontal spacing\n @include break-from-device(screen) {\n margin-right: px2rem(24px);\n margin-left: px2rem(24px);\n }\n\n // Hack: add pseudo element for spacing, as the overflow of the content\n // container may not be hidden due to an imminent offset error on targets\n &::before {\n display: block;\n height: px2rem(8px);\n content: \"\";\n }\n\n // Hack: remove bottom spacing of last element, due to margin collapse\n > :last-child {\n margin-bottom: 0;\n }\n }\n\n // Button next to the title\n &__button {\n float: right;\n margin: px2rem(8px) 0;\n margin-left: px2rem(8px);\n padding: 0;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n float: left;\n margin-right: px2rem(8px);\n margin-left: initial;\n\n // Flip icon vertically\n svg {\n transform: scaleX(-1);\n }\n }\n\n // Override default link color for icons\n .md-typeset & {\n color: var(--md-default-fg-color--lighter);\n }\n\n // Align text with icon\n svg {\n display: inline;\n vertical-align: top;\n }\n\n // Hide for print\n @media print {\n display: none;\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Dialog rendered as snackbar\n.md-dialog {\n @include z-depth(2);\n\n position: fixed;\n right: px2rem(16px);\n bottom: px2rem(16px);\n left: initial;\n z-index: 2;\n display: block;\n min-width: px2rem(222px);\n padding: px2rem(8px) px2rem(12px);\n color: var(--md-default-bg-color);\n font-size: px2rem(14px);\n background: var(--md-default-fg-color);\n border: none;\n border-radius: px2rem(2px);\n transform: translateY(100%);\n opacity: 0;\n transition:\n transform 0ms 400ms,\n opacity 400ms;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: initial;\n left: px2rem(16px);\n }\n\n // Show open dialog\n &[data-md-state=\"open\"] {\n transform: translateY(0);\n opacity: 1;\n transition:\n transform 400ms cubic-bezier(0.075, 0.85, 0.175, 1),\n opacity 400ms;\n }\n\n // Hide for print\n @media print {\n display: none;\n }\n}\n","//\n// Name: Material Shadows\n// Description: Mixins for Material Design Shadows.\n// Version: 3.0.1\n//\n// Author: Denis Malinochkin\n// Git: https://github.com/mrmlnc/material-shadows\n//\n// twitter: @mrmlnc\n//\n// ------------------------------------\n\n\n// Mixins\n// ------------------------------------\n\n@mixin z-depth-transition() {\n transition: box-shadow .28s cubic-bezier(.4, 0, .2, 1);\n}\n\n@mixin z-depth-focus() {\n box-shadow: 0 0 8px rgba(0, 0, 0, .18), 0 8px 16px rgba(0, 0, 0, .36);\n}\n\n@mixin z-depth-2dp() {\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .14),\n 0 1px 5px 0 rgba(0, 0, 0, .12),\n 0 3px 1px -2px rgba(0, 0, 0, .2);\n}\n\n@mixin z-depth-3dp() {\n box-shadow: 0 3px 4px 0 rgba(0, 0, 0, .14),\n 0 1px 8px 0 rgba(0, 0, 0, .12),\n 0 3px 3px -2px rgba(0, 0, 0, .4);\n}\n\n@mixin z-depth-4dp() {\n box-shadow: 0 4px 5px 0 rgba(0, 0, 0, .14),\n 0 1px 10px 0 rgba(0, 0, 0, .12),\n 0 2px 4px -1px rgba(0, 0, 0, .4);\n}\n\n@mixin z-depth-6dp() {\n box-shadow: 0 6px 10px 0 rgba(0, 0, 0, .14),\n 0 1px 18px 0 rgba(0, 0, 0, .12),\n 0 3px 5px -1px rgba(0, 0, 0, .4);\n}\n\n@mixin z-depth-8dp() {\n box-shadow: 0 8px 10px 1px rgba(0, 0, 0, .14),\n 0 3px 14px 2px rgba(0, 0, 0, .12),\n 0 5px 5px -3px rgba(0, 0, 0, .4);\n}\n\n@mixin z-depth-16dp() {\n box-shadow: 0 16px 24px 2px rgba(0, 0, 0, .14),\n 0 6px 30px 5px rgba(0, 0, 0, .12),\n 0 8px 10px -5px rgba(0, 0, 0, .4);\n}\n\n@mixin z-depth-24dp() {\n box-shadow: 0 9px 46px 8px rgba(0, 0, 0, .14),\n 0 24px 38px 3px rgba(0, 0, 0, .12),\n 0 11px 15px -7px rgba(0, 0, 0, .4);\n}\n\n@mixin z-depth($dp: 2) {\n @if $dp == 2 {\n @include z-depth-2dp();\n } @else if $dp == 3 {\n @include z-depth-3dp();\n } @else if $dp == 4 {\n @include z-depth-4dp();\n } @else if $dp == 6 {\n @include z-depth-6dp();\n } @else if $dp == 8 {\n @include z-depth-8dp();\n } @else if $dp == 16 {\n @include z-depth-16dp();\n } @else if $dp == 24 {\n @include z-depth-24dp();\n }\n}\n\n\n// Class generator\n// ------------------------------------\n\n@mixin z-depth-classes($transition: false, $focus: false) {\n @if $transition == true {\n &-transition {\n @include z-depth-transition();\n }\n }\n\n @if $focus == true {\n &-focus {\n @include z-depth-focus();\n }\n }\n\n // The available values for the shadow depth\n @each $depth in 2, 3, 4, 6, 8, 16, 24 {\n &-#{$depth}dp {\n @include z-depth($depth);\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Application header (stays always on top)\n.md-header {\n position: sticky;\n top: 0;\n right: 0;\n left: 0;\n z-index: 2;\n height: px2rem(48px);\n color: var(--md-primary-bg-color);\n background-color: var(--md-primary-fg-color);\n // Hack: reduce jitter by adding a transparent box shadow of the same size\n // so the size of the layer doesn't change during animation\n box-shadow:\n 0 0 px2rem(4px) rgba(0, 0, 0, 0),\n 0 px2rem(4px) px2rem(8px) rgba(0, 0, 0, 0);\n transition:\n color 250ms,\n background-color 250ms;\n\n // Always hide shadow, in case JavaScript is not available\n .no-js & {\n box-shadow: none;\n transition: none;\n }\n\n // Show and animate shadow\n &[data-md-state=\"shadow\"] {\n box-shadow:\n 0 0 px2rem(4px) rgba(0, 0, 0, 0.1),\n 0 px2rem(4px) px2rem(8px) rgba(0, 0, 0, 0.2);\n transition:\n color 250ms,\n background-color 250ms,\n box-shadow 250ms;\n }\n\n // Hide for print\n @media print {\n display: none;\n }\n}\n\n// Navigation within header\n.md-header-nav {\n display: flex;\n padding: 0 px2rem(4px);\n\n // Icon buttons\n &__button {\n position: relative;\n z-index: 1;\n margin: px2rem(4px);\n padding: px2rem(8px);\n cursor: pointer;\n transition: opacity 250ms;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n\n // Flip icon vertically\n svg {\n transform: scaleX(-1);\n }\n }\n\n // Focused or hovered icon\n &:focus,\n &:hover {\n opacity: 0.7;\n }\n\n // Logo\n &.md-logo {\n margin: px2rem(4px);\n padding: px2rem(8px);\n\n // Image or icon\n img,\n svg {\n display: block;\n width: px2rem(24px);\n height: px2rem(24px);\n fill: currentColor;\n }\n }\n\n // Hide search icon, if JavaScript is not available.\n .no-js &[for=\"__search\"] {\n display: none;\n }\n\n // [tablet landscape +]: Hide the search button\n @include break-from-device(tablet landscape) {\n\n // Search button\n &[for=\"__search\"] {\n display: none;\n }\n }\n\n // [tablet -]: Hide the logo\n @include break-to-device(tablet) {\n\n // Logo\n &.md-logo {\n display: none;\n }\n }\n\n // [screen +]: Hide the menu button\n @include break-from-device(screen) {\n\n // Menu button\n &[for=\"__drawer\"] {\n display: none;\n }\n }\n }\n\n // Header topics\n &__topic {\n position: absolute;\n width: 100%;\n transition:\n transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),\n opacity 150ms;\n\n // Page title\n & + & {\n z-index: -1;\n transform: translateX(px2rem(25px));\n opacity: 0;\n transition:\n transform 400ms cubic-bezier(1, 0.7, 0.1, 0.1),\n opacity 150ms;\n pointer-events: none;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n transform: translateX(px2rem(-25px));\n }\n }\n\n // Induce ellipsis, if no JavaScript is available\n .no-js & {\n position: initial;\n }\n\n // Hide page title as it is invisible anyway and will overflow the header\n .no-js & + & {\n display: none;\n }\n }\n\n // Header title - set line height to match icon for correct alignment\n &__title {\n flex-grow: 1;\n padding: 0 px2rem(20px);\n font-size: px2rem(18px);\n line-height: px2rem(48px);\n\n // Show page title\n &[data-md-state=\"active\"] .md-header-nav__topic {\n z-index: -1;\n transform: translateX(px2rem(-25px));\n opacity: 0;\n transition:\n transform 400ms cubic-bezier(1, 0.7, 0.1, 0.1),\n opacity 150ms;\n pointer-events: none;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n transform: translateX(px2rem(25px));\n }\n\n // Page title\n & + .md-header-nav__topic {\n z-index: 0;\n transform: translateX(0);\n opacity: 1;\n transition:\n transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),\n opacity 150ms;\n pointer-events: initial;\n }\n }\n\n // Patch ellipsis\n > .md-header-nav__ellipsis {\n position: relative;\n width: 100%;\n height: 100%;\n }\n }\n\n // Repository containing source\n &__source {\n display: none;\n\n // [tablet landscape +]: Show the reposistory from tablet\n @include break-from-device(tablet landscape) {\n display: block;\n width: px2rem(234px);\n max-width: px2rem(234px);\n margin-left: px2rem(20px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2rem(20px);\n margin-left: initial;\n }\n }\n\n // [screen +]: Increase spacing of search bar\n @include break-from-device(screen) {\n margin-left: px2rem(28px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2rem(28px);\n }\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Hero teaser\n.md-hero {\n overflow: hidden;\n color: var(--md-primary-bg-color);\n font-size: ms(1);\n background-color: var(--md-primary-fg-color);\n transition: background 250ms;\n\n // Inner wrapper\n &__inner {\n margin-top: px2rem(20px);\n padding: px2rem(16px) px2rem(16px) px2rem(8px);\n transition:\n transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),\n opacity 250ms;\n transition-delay: 100ms;\n\n // [tablet -]: Compensate for missing tabs\n @include break-to-device(tablet) {\n margin-top: px2rem(48px);\n margin-bottom: px2rem(24px);\n }\n\n // Fade-out tabs background upon scrolling\n [data-md-state=\"hidden\"] & {\n transform: translateY(px2rem(12.5px));\n opacity: 0;\n transition:\n transform 0ms 400ms,\n opacity 100ms 0ms;\n pointer-events: none;\n }\n\n // Adjust bottom spacing if there are no tabs\n .md-hero--expand & {\n margin-bottom: px2rem(24px);\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Application footer\n.md-footer {\n color: var(--md-default-bg-color);\n background-color: var(--md-default-fg-color);\n\n // Hide for print\n @media print {\n display: none;\n }\n}\n\n// Navigation within footer\n.md-footer-nav {\n\n // Set spacing\n &__inner {\n padding: px2rem(4px);\n overflow: auto;\n }\n\n // Links to previous and next page\n &__link {\n display: flex;\n padding-top: px2rem(28px);\n padding-bottom: px2rem(8px);\n transition: opacity 250ms;\n\n // [tablet +]: Set proportional width\n @include break-from-device(tablet) {\n width: 50%;\n }\n\n // Focused or hovered links\n &:focus,\n &:hover {\n opacity: 0.7;\n }\n\n // Link to previous page\n &--prev {\n float: left;\n width: 25%;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n float: right;\n\n // Flip icon vertically\n svg {\n transform: scaleX(-1);\n }\n }\n\n // Title\n .md-footer-nav__title {\n\n // [mobile -]: Hide title for previous page\n @include break-to-device(mobile) {\n display: none;\n }\n }\n }\n\n // Link to next page\n &--next {\n float: right;\n width: 75%;\n text-align: right;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n float: left;\n text-align: left;\n\n // Flip icon vertically\n svg {\n transform: scaleX(-1);\n }\n }\n }\n }\n\n // Link title - set line height to match icon for correct alignment\n &__title {\n position: relative;\n flex-grow: 1;\n max-width: calc(100% - #{px2rem(48px)});\n padding: 0 px2rem(20px);\n font-size: px2rem(18px);\n line-height: px2rem(48px);\n }\n\n // Link button\n &__button {\n margin: px2rem(4px);\n padding: px2rem(8px);\n }\n\n // Link direction\n &__direction {\n position: absolute;\n right: 0;\n left: 0;\n margin-top: px2rem(-20px);\n padding: 0 px2rem(20px);\n color: var(--md-default-bg-color--light);\n font-size: ms(-1);\n }\n}\n\n// Non-navigational information\n.md-footer-meta {\n background-color: var(--md-default-fg-color--lighter);\n\n // Set spacing\n &__inner {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n padding: px2rem(4px);\n }\n\n // Use a decent color for non-hovered links and ensure specificity\n html &.md-typeset a {\n color: var(--md-default-bg-color--light);\n\n // Focused or hovered link\n &:focus,\n &:hover {\n color: var(--md-default-bg-color);\n }\n }\n}\n\n// Copyright and theme information\n.md-footer-copyright {\n width: 100%;\n margin: auto px2rem(12px);\n padding: px2rem(8px) 0;\n color: var(--md-default-bg-color--lighter);\n font-size: ms(-1);\n\n // [tablet portrait +]: Show next to social media links\n @include break-from-device(tablet portrait) {\n width: auto;\n }\n\n // Highlight copyright information\n &__highlight {\n color: var(--md-default-bg-color--light);\n }\n}\n\n// Social links\n.md-footer-social {\n margin: 0 px2rem(8px);\n padding: px2rem(4px) 0 px2rem(12px);\n\n // [tablet portrait +]: Show next to copyright information\n @include break-from-device(tablet portrait) {\n padding: px2rem(12px) 0;\n }\n\n // Link with icon\n &__link {\n display: inline-block;\n width: px2rem(32px);\n height: px2rem(32px);\n text-align: center;\n\n // Adjust line-height to match height for correct alignment\n &::before {\n line-height: 1.9;\n }\n\n // Social icon\n svg {\n max-height: px2rem(16px);\n vertical-align: -25%;\n fill: currentColor;\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Navigation container\n.md-nav {\n font-size: px2rem(14px);\n line-height: 1.3;\n\n // List title\n &__title {\n display: block;\n padding: 0 px2rem(12px);\n overflow: hidden;\n font-weight: 700;\n text-overflow: ellipsis;\n\n // Hide buttons by default\n .md-nav__button {\n display: none;\n\n // Stretch images\n img {\n width: 100%;\n height: auto;\n }\n\n // Logo\n &.md-logo {\n\n // Image or icon\n img,\n svg {\n display: block;\n width: px2rem(48px);\n height: px2rem(48px);\n }\n\n // Icon\n svg {\n fill: currentColor;\n }\n }\n }\n }\n\n // List of items\n &__list {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n // List item\n &__item {\n padding: 0 px2rem(12px);\n\n // Add bottom spacing to last item\n &:last-child {\n padding-bottom: px2rem(12px);\n }\n\n // 2nd+ level items\n & & {\n padding-right: 0;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(12px);\n padding-left: 0;\n }\n\n // Remove bottom spacing for nested items\n &:last-child {\n padding-bottom: 0;\n }\n }\n }\n\n // Link inside item\n &__link {\n display: block;\n margin-top: 0.625em;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n transition: color 125ms;\n scroll-snap-align: start;\n\n // Hide link to table of contents by default - this will only match the\n // table of contents inside the drawer below and including tablet portrait\n html &[for=\"__toc\"] {\n display: none;\n\n // Hide table of contents by default\n & ~ .md-nav {\n display: none;\n }\n }\n\n // Blurred link\n &[data-md-state=\"blur\"] {\n color: var(--md-default-fg-color--light);\n }\n\n // Active link\n .md-nav__item &--active {\n color: var(--md-primary-fg-color);\n }\n\n // Reset active color for nested list titles\n .md-nav__item--nested > & {\n color: inherit;\n }\n\n // Focused or hovered link\n &:focus,\n &:hover {\n color: var(--md-accent-fg-color);\n }\n }\n\n // Repository containing source\n &__source {\n display: none;\n }\n\n // [tablet -]: Layered navigation\n @include break-to-device(tablet) {\n background-color: var(--md-default-bg-color);\n\n // Stretch primary navigation to drawer\n &--primary,\n &--primary .md-nav {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n // Adjust styles for primary navigation\n &--primary {\n\n // List title and item\n .md-nav__title,\n .md-nav__item {\n font-size: px2rem(16px);\n line-height: 1.5;\n }\n\n // List title\n .md-nav__title {\n position: relative;\n height: px2rem(112px);\n padding: px2rem(60px) px2rem(16px) px2rem(4px);\n color: var(--md-default-fg-color--light);\n font-weight: 400;\n line-height: px2rem(48px);\n white-space: nowrap;\n background-color: var(--md-default-fg-color--lightest);\n cursor: pointer;\n\n // Icon\n .md-nav__icon {\n position: absolute;\n top: px2rem(8px);\n left: px2rem(8px);\n display: block;\n width: px2rem(24px);\n height: px2rem(24px);\n margin: px2rem(4px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: px2rem(8px);\n left: initial;\n }\n }\n\n // Main lists\n ~ .md-nav__list {\n overflow-y: auto;\n background-color: var(--md-default-bg-color);\n box-shadow:\n inset 0 px2rem(1px) 0 var(--md-default-fg-color--lightest);\n scroll-snap-type: y mandatory;\n touch-action: pan-y;\n\n // Remove border for first list item\n > .md-nav__item:first-child {\n border-top: 0;\n }\n }\n\n // Site title in main navigation\n &[for=\"__drawer\"] {\n position: relative;\n color: var(--md-primary-bg-color);\n background-color: var(--md-primary-fg-color);\n\n // Site logo\n .md-nav__button {\n position: absolute;\n top: px2rem(4px);\n left: px2rem(4px);\n display: block;\n margin: px2rem(4px);\n padding: px2rem(8px);\n font-size: px2rem(48px);\n }\n }\n }\n\n // Adjust for right-to-left languages\n html [dir=\"rtl\"] & .md-nav__title {\n\n // Site title in main navigation\n &[for=\"__drawer\"] .md-nav__button {\n right: px2rem(4px);\n left: initial;\n }\n }\n\n // List of items\n .md-nav__list {\n flex: 1;\n }\n\n // List item\n .md-nav__item {\n padding: 0;\n border-top: px2rem(1px) solid var(--md-default-fg-color--lightest);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding: 0;\n }\n\n // Increase spacing to account for icon\n &--nested > .md-nav__link {\n padding-right: px2rem(48px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(16px);\n padding-left: px2rem(48px);\n }\n }\n\n // Active parent item\n &--active > .md-nav__link {\n color: var(--md-primary-fg-color);\n\n // Focused or hovered linl\n &:focus,\n &:hover {\n color: var(--md-accent-fg-color);\n }\n }\n }\n\n // Link inside item\n .md-nav__link {\n position: relative;\n margin-top: 0;\n padding: px2rem(12px) px2rem(16px);\n\n // Icon\n .md-nav__icon {\n position: absolute;\n top: 50%;\n right: px2rem(12px);\n margin-top: px2rem(-12px);\n color: inherit;\n font-size: px2rem(24px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: initial;\n left: px2rem(12px);\n }\n }\n }\n\n // Icon\n .md-nav__icon {\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n\n // Flip icon vertically\n svg {\n transform: scale(-1);\n }\n }\n }\n\n // Table of contents inside navigation\n .md-nav--secondary {\n\n // Set links to static to avoid unnecessary layering\n .md-nav__link {\n position: static;\n }\n\n // Set nested navigation for table of contents to static\n .md-nav {\n position: static;\n background-color: transparent;\n\n // 3rd level link\n .md-nav__link {\n padding-left: px2rem(28px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(28px);\n padding-left: initial;\n }\n }\n\n // 4th level link\n .md-nav .md-nav__link {\n padding-left: px2rem(40px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(40px);\n padding-left: initial;\n }\n }\n\n // 5th level link\n .md-nav .md-nav .md-nav__link {\n padding-left: px2rem(52px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(52px);\n padding-left: initial;\n }\n }\n\n // 6th level link\n .md-nav .md-nav .md-nav .md-nav__link {\n padding-left: px2rem(64px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(64px);\n padding-left: initial;\n }\n }\n }\n }\n }\n\n // Hide nested navigation by default\n .md-nav__toggle ~ & {\n display: flex;\n transform: translateX(100%);\n opacity: 0;\n transition:\n transform 250ms cubic-bezier(0.8, 0, 0.6, 1),\n opacity 125ms 50ms;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n transform: translateX(-100%);\n }\n }\n\n // Expand nested navigation, if toggle is checked\n .md-nav__toggle:checked ~ & {\n transform: translateX(0);\n opacity: 1;\n transition:\n transform 250ms cubic-bezier(0.4, 0, 0.2, 1),\n opacity 125ms 125ms;\n\n // Hack: reduce jitter\n > .md-nav__list {\n backface-visibility: hidden;\n }\n }\n }\n\n // [tablet portrait -]: Show table of contents in drawer\n @include break-to-device(tablet portrait) {\n\n // Show link to table of contents - higher specificity is necessary to\n // display the table of contents inside the drawer\n html &__link[for=\"__toc\"] {\n display: block;\n padding-right: px2rem(48px);\n\n // Hide link to current item\n + .md-nav__link {\n display: none;\n }\n\n // Show table of contents\n & ~ .md-nav {\n display: flex;\n }\n }\n\n // Adjust for right-to-left languages\n html [dir=\"rtl\"] &__link {\n padding-right: px2rem(16px);\n padding-left: px2rem(48px);\n }\n\n // Repository containing source\n &__source {\n display: block;\n padding: 0 px2rem(4px);\n color: var(--md-primary-bg-color);\n background-color: var(--md-primary-fg-color--dark);\n }\n }\n\n // [tablet landscape +]: Tree-like navigation\n @include break-from-device(tablet landscape) {\n\n // List title\n &--secondary .md-nav__title {\n\n // Snap to table of contents title\n &[for=\"__toc\"] {\n scroll-snap-align: start;\n }\n\n // Hide icon\n .md-nav__icon {\n display: none;\n }\n }\n }\n\n // [screen +]: Tree-like navigation\n @include break-from-device(screen) {\n transition: max-height 250ms cubic-bezier(0.86, 0, 0.07, 1);\n\n // List title\n &--primary .md-nav__title {\n\n // Snap to site title\n &[for=\"__drawer\"] {\n scroll-snap-align: start;\n }\n\n // Hide icon\n .md-nav__icon {\n display: none;\n }\n }\n\n // Hide nested navigation by default\n .md-nav__toggle ~ & {\n display: none;\n }\n\n // Show nested navigation, if toggle is checked\n .md-nav__toggle:checked ~ & {\n display: block;\n }\n\n // Hide titles for nested navigation\n &__item--nested > .md-nav > &__title {\n display: none;\n }\n\n // Icon\n &__icon {\n float: right;\n height: px2rem(18px);\n transition: transform 250ms;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n float: left;\n transform: rotate(180deg);\n }\n\n // Inline icon and adjust to match font size\n svg {\n display: inline-block;\n width: px2rem(18px);\n height: px2rem(18px);\n vertical-align: px2rem(-2px);\n }\n\n // Rotate icon for expanded lists\n .md-nav__item--nested .md-nav__toggle:checked ~ .md-nav__link & {\n transform: rotate(90deg);\n }\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Variables\n// ----------------------------------------------------------------------------\n\n// Active (toggled) search\n$md-toggle__search--checked:\n \"[data-md-toggle=\\\"search\\\"]:checked ~ .md-header\";\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Search container\n.md-search {\n position: relative;\n\n // Hide search, if JavaScript is not available.\n .no-js & {\n display: none;\n }\n\n // [tablet landscape +]: Header-embedded search\n @include break-from-device(tablet landscape) {\n padding: px2rem(4px) 0;\n }\n\n // Search modal overlay\n &__overlay {\n z-index: 1;\n opacity: 0;\n\n // [tablet portrait -]: Full-screen search bar\n @include break-to-device(tablet portrait) {\n position: absolute;\n top: px2rem(4px);\n left: px2rem(-44px);\n width: px2rem(40px);\n height: px2rem(40px);\n overflow: hidden;\n background-color: var(--md-default-bg-color);\n border-radius: px2rem(20px);\n transform-origin: center;\n transition:\n transform 300ms 100ms,\n opacity 200ms 200ms;\n pointer-events: none;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: px2rem(-44px);\n left: initial;\n }\n\n // Expanded overlay\n #{$md-toggle__search--checked} & {\n opacity: 1;\n transition:\n transform 400ms,\n opacity 100ms;\n }\n }\n\n // Set scale factors\n #{$md-toggle__search--checked} & {\n\n // [mobile portrait -]: Scale up 45 times\n @include break-to-device(mobile portrait) {\n transform: scale(45);\n }\n\n // [mobile landscape]: Scale up 60 times\n @include break-at-device(mobile landscape) {\n transform: scale(60);\n }\n\n // [tablet portrait]: Scale up 75 times\n @include break-at-device(tablet portrait) {\n transform: scale(75);\n }\n }\n\n // [tablet landscape +]: Overlay for better focus on search\n @include break-from-device(tablet landscape) {\n position: fixed;\n top: 0;\n left: 0;\n width: 0;\n height: 0;\n background-color: var(--md-default-fg-color--light);\n cursor: pointer;\n transition:\n width 0ms 250ms,\n height 0ms 250ms,\n opacity 250ms;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: 0;\n left: initial;\n }\n\n // Expanded overlay\n #{$md-toggle__search--checked} & {\n width: 100%;\n height: 100%;\n opacity: 1;\n transition:\n width 0ms,\n height 0ms,\n opacity 250ms;\n }\n }\n }\n\n // Search modal wrapper\n &__inner {\n // Hack: reduce jitter\n backface-visibility: hidden;\n\n // [tablet portrait -]: Put search modal off-canvas by default\n @include break-to-device(tablet portrait) {\n position: fixed;\n top: 0;\n left: 100%;\n z-index: 2;\n width: 100%;\n height: 100%;\n transform: translateX(5%);\n opacity: 0;\n transition:\n right 0ms 300ms,\n left 0ms 300ms,\n transform 150ms 150ms cubic-bezier(0.4, 0, 0.2, 1),\n opacity 150ms 150ms;\n\n // Active search modal\n #{$md-toggle__search--checked} & {\n left: 0;\n transform: translateX(0);\n opacity: 1;\n transition:\n right 0ms 0ms,\n left 0ms 0ms,\n transform 150ms 150ms cubic-bezier(0.1, 0.7, 0.1, 1),\n opacity 150ms 150ms;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: 0;\n left: initial;\n }\n }\n\n // Adjust for right-to-left languages\n html [dir=\"rtl\"] & {\n right: 100%;\n left: initial;\n transform: translateX(-5%);\n }\n }\n\n // [tablet landscape +]: Header-embedded search\n @include break-from-device(tablet landscape) {\n position: relative;\n float: right;\n width: px2rem(234px);\n padding: px2rem(2px) 0;\n transition: width 250ms cubic-bezier(0.1, 0.7, 0.1, 1);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n float: left;\n }\n }\n\n // Set maximum width\n #{$md-toggle__search--checked} & {\n\n // [tablet landscape]: Do not overlay title\n @include break-at-device(tablet landscape) {\n width: px2rem(468px);\n }\n\n // [screen +]: Match content width\n @include break-from-device(screen) {\n width: px2rem(688px);\n }\n }\n }\n\n // Search form\n &__form {\n position: relative;\n\n // [tablet landscape +]: Header-embedded search\n @include break-from-device(tablet landscape) {\n border-radius: px2rem(2px);\n }\n }\n\n // Search input\n &__input {\n position: relative;\n z-index: 2;\n padding: 0 px2rem(44px) 0 px2rem(72px);\n text-overflow: ellipsis;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding: 0 px2rem(72px) 0 px2rem(44px);\n }\n\n // Transition on placeholder\n &::placeholder {\n transition: color 250ms;\n }\n\n // Placeholder and icon color in active state\n ~ .md-search__icon,\n &::placeholder {\n color: var(--md-default-fg-color--light);\n }\n\n // Remove the \"x\" rendered by Internet Explorer\n &::-ms-clear {\n display: none;\n }\n\n // [tablet portrait -]: Full-screen search bar\n @include break-to-device(tablet portrait) {\n width: 100%;\n height: px2rem(48px);\n font-size: px2rem(18px);\n }\n\n // [tablet landscape +]: Header-embedded search\n @include break-from-device(tablet landscape) {\n width: 100%;\n height: px2rem(36px);\n padding-left: px2rem(44px);\n color: inherit;\n font-size: ms(0);\n background-color: var(--md-default-fg-color--lighter);\n border-radius: px2rem(2px);\n transition:\n color 250ms,\n background-color 250ms;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(44px);\n }\n\n // Icon color\n + .md-search__icon {\n color: var(--md-primary-bg-color);\n }\n\n // Placeholder color\n &::placeholder {\n color: var(--md-primary-bg-color--light);\n }\n\n // Hovered search field\n &:hover {\n background-color: var(--md-default-bg-color--lightest);\n }\n\n // Set light background on active search field\n #{$md-toggle__search--checked} & {\n color: var(--md-default-fg-color);\n text-overflow: clip;\n background-color: var(--md-default-bg-color);\n border-radius: px2rem(2px) px2rem(2px) 0 0;\n\n // Icon and placeholder color in active state\n + .md-search__icon,\n &::placeholder {\n color: var(--md-default-fg-color--light);\n }\n }\n }\n }\n\n // Icon\n &__icon {\n position: absolute;\n z-index: 2;\n width: px2rem(24px);\n height: px2rem(24px);\n cursor: pointer;\n transition:\n color 250ms,\n opacity 250ms;\n\n // Hovered icon\n &:hover {\n opacity: 0.7;\n }\n\n // Search icon\n &[for=\"__search\"] {\n top: px2rem(6px);\n left: px2rem(10px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: px2rem(10px);\n left: initial;\n\n // Flip icon vertically\n svg {\n transform: scaleX(-1);\n }\n }\n\n // [tablet portrait -]: Full-screen search bar\n @include break-to-device(tablet portrait) {\n top: px2rem(12px);\n left: px2rem(16px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: px2rem(16px);\n left: initial;\n }\n\n // Hide the magnifying glass (1st icon)\n svg:first-child {\n display: none;\n }\n }\n\n // [tablet landscape +]: Header-embedded search\n @include break-from-device(tablet landscape) {\n pointer-events: none;\n\n // Hide the arrow (2nd icon)\n svg:last-child {\n display: none;\n }\n }\n }\n\n // Reset button\n &[type=\"reset\"] {\n top: px2rem(6px);\n right: px2rem(10px);\n transform: scale(0.75);\n opacity: 0;\n transition:\n transform 150ms cubic-bezier(0.1, 0.7, 0.1, 1),\n opacity 150ms;\n pointer-events: none;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: initial;\n left: px2rem(10px);\n }\n\n // [tablet portrait -]: Full-screen search bar\n @include break-to-device(tablet portrait) {\n top: px2rem(12px);\n right: px2rem(16px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: initial;\n left: px2rem(16px);\n }\n }\n\n // Show reset button if search is active and input non-empty\n #{$md-toggle__search--checked}\n .md-search__input:not(:placeholder-shown) ~ & {\n transform: scale(1);\n opacity: 1;\n pointer-events: initial;\n\n // Hovered icon\n &:hover {\n opacity: 0.7;\n }\n }\n }\n }\n\n // Search output container\n &__output {\n position: absolute;\n z-index: 1;\n width: 100%;\n overflow: hidden;\n border-radius: 0 0 px2rem(2px) px2rem(2px);\n\n // [tablet portrait -]: Full-screen search bar\n @include break-to-device(tablet portrait) {\n top: px2rem(48px);\n bottom: 0;\n }\n\n // [tablet landscape +]: Header-embedded search\n @include break-from-device(tablet landscape) {\n top: px2rem(38px);\n opacity: 0;\n transition: opacity 400ms;\n\n // Show search output in active state\n #{$md-toggle__search--checked} & {\n @include z-depth(6);\n\n opacity: 1;\n }\n }\n }\n\n // Wrapper for scrolling on overflow\n &__scrollwrap {\n height: 100%;\n overflow-y: auto;\n background-color: var(--md-default-bg-color);\n box-shadow: inset 0 px2rem(1px) 0 var(--md-default-fg-color--lightest);\n // Hack: reduce jitter\n backface-visibility: hidden;\n scroll-snap-type: y mandatory;\n touch-action: pan-y;\n\n // Mitigiate excessive repaints on non-retina devices\n @media (max-resolution: 1dppx) {\n transform: translateZ(0);\n }\n\n // [tablet landscape]: Set absolute width to omit unnecessary reflow\n @include break-at-device(tablet landscape) {\n width: px2rem(468px);\n }\n\n // [screen +]: Set absolute width to omit unnecessary reflow\n @include break-from-device(screen) {\n width: px2rem(688px);\n }\n\n // [tablet landscape +]: Limit height to viewport\n @include break-from-device(tablet landscape) {\n max-height: 0;\n\n // Expand in active state\n #{$md-toggle__search--checked} & {\n max-height: 75vh;\n }\n\n // Override native scrollbar styles\n &::-webkit-scrollbar {\n width: px2rem(4px);\n height: px2rem(4px);\n }\n\n // Scrollbar thumb\n &::-webkit-scrollbar-thumb {\n background-color: var(--md-default-fg-color--lighter);\n\n // Hovered scrollbar thumb\n &:hover {\n background-color: var(--md-accent-fg-color);\n }\n }\n }\n }\n}\n\n// Search result\n.md-search-result {\n color: var(--md-default-fg-color);\n word-break: break-word;\n\n // Search metadata\n &__meta {\n padding: 0 px2rem(16px);\n color: var(--md-default-fg-color--light);\n font-size: ms(-1);\n line-height: px2rem(36px);\n background-color: var(--md-default-fg-color--lightest);\n scroll-snap-align: start;\n\n // [tablet landscape +]: Increase left indent\n @include break-from-device(tablet landscape) {\n padding-left: px2rem(44px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(44px);\n padding-left: initial;\n }\n }\n }\n\n // List of items\n &__list {\n margin: 0;\n padding: 0;\n list-style: none;\n border-top: px2rem(1px) solid var(--md-default-fg-color--lightest);\n }\n\n // List item\n &__item {\n box-shadow: 0 px2rem(-1px) 0 var(--md-default-fg-color--lightest);\n }\n\n // Link inside item\n &__link {\n display: block;\n outline: 0;\n transition: background 250ms;\n scroll-snap-align: start;\n\n // Focused or hovered link\n &:focus,\n &:hover {\n background-color: var(--md-accent-fg-color--transparent);\n\n // Slightly transparent icon\n .md-search-result__article::before {\n opacity: 0.7;\n }\n }\n\n // Add a little spacing on the teaser of the last link\n &:last-child .md-search-result__teaser {\n margin-bottom: px2rem(12px);\n }\n }\n\n // Article - document or section\n &__article {\n position: relative;\n padding: 0 px2rem(16px);\n overflow: hidden;\n\n // [tablet landscape +]: Increase left indent\n @include break-from-device(tablet landscape) {\n padding-left: px2rem(44px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(44px);\n padding-left: px2rem(16px);\n }\n }\n\n // Document\n &--document {\n\n // Title\n .md-search-result__title {\n margin: px2rem(11px) 0;\n font-weight: 400;\n font-size: ms(0);\n line-height: 1.4;\n }\n }\n }\n\n // Icon\n &__icon {\n position: absolute;\n left: 0;\n margin: px2rem(2px);\n padding: px2rem(8px);\n color: var(--md-default-fg-color--light);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: 0;\n left: initial;\n\n // Flip icon vertically\n svg {\n transform: scaleX(-1);\n }\n }\n\n // [tablet portrait -]: Hide page icon\n @include break-to-device(tablet portrait) {\n display: none;\n }\n }\n\n // Title\n &__title {\n margin: 0.5em 0;\n font-weight: 700;\n font-size: ms(-1);\n line-height: 1.4;\n }\n\n // stylelint-disable value-no-vendor-prefix, property-no-vendor-prefix\n\n // Teaser\n &__teaser {\n display: -webkit-box;\n max-height: px2rem(33px);\n margin: 0.5em 0;\n overflow: hidden;\n color: var(--md-default-fg-color--light);\n font-size: ms(-1);\n line-height: 1.4;\n text-overflow: ellipsis;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n\n // [mobile -]: Increase number of lines\n @include break-to-device(mobile) {\n max-height: px2rem(50px);\n -webkit-line-clamp: 3;\n }\n\n // [tablet landscape]: Increase number of lines\n @include break-at-device(tablet landscape) {\n max-height: px2rem(50px);\n -webkit-line-clamp: 3;\n }\n }\n\n // stylelint-enable value-no-vendor-prefix, property-no-vendor-prefix\n\n // Search term highlighting\n em {\n font-weight: 700;\n font-style: normal;\n text-decoration: underline;\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Variables\n// ----------------------------------------------------------------------------\n\n// Active (toggled) drawer\n$md-toggle__drawer--checked:\n \"[data-md-toggle=\\\"drawer\\\"]:checked ~ .md-container\";\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Sidebar container\n.md-sidebar {\n position: sticky;\n top: px2rem(48px);\n width: px2rem(242px);\n padding: px2rem(24px) 0;\n overflow: hidden;\n\n // Hide for print\n @media print {\n display: none;\n }\n\n // [tablet -]: Convert navigation to drawer\n @include break-to-device(tablet) {\n\n // Render primary sidebar as a slideout container\n &--primary {\n position: fixed;\n top: 0;\n left: px2rem(-242px);\n z-index: 3;\n width: px2rem(242px);\n height: 100%;\n background-color: var(--md-default-bg-color);\n transform: translateX(0);\n transition:\n transform 250ms cubic-bezier(0.4, 0, 0.2, 1),\n box-shadow 250ms;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: px2rem(-242px);\n left: initial;\n }\n\n // Expanded drawer\n #{$md-toggle__drawer--checked} & {\n @include z-depth(8);\n\n transform: translateX(px2rem(242px));\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n transform: translateX(px2rem(-242px));\n }\n }\n\n // Hide overflow for nested navigation\n .md-sidebar__scrollwrap {\n overflow: hidden;\n }\n }\n }\n\n // Secondary sidebar with table of contents\n &--secondary {\n display: none;\n order: 2;\n\n // [tablet landscape +]: Show table of contents next to body copy\n @include break-from-device(tablet landscape) {\n display: block;\n\n // Ensure smooth scrolling on iOS\n .md-sidebar__scrollwrap {\n touch-action: pan-y;\n }\n }\n }\n\n // Wrapper for scrolling on overflow\n &__scrollwrap {\n max-height: 100%;\n margin: 0 px2rem(4px);\n overflow-y: auto;\n // Hack: reduce jitter\n backface-visibility: hidden;\n scroll-snap-type: y mandatory;\n\n // [tablet -]: Adjust margins\n @include break-to-device(tablet) {\n\n // Stretch scrollwrap for primary sidebar\n .md-sidebar--primary & {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n margin: 0;\n scroll-snap-type: none;\n }\n }\n\n // Override native scrollbar styles\n &::-webkit-scrollbar {\n width: px2rem(4px);\n height: px2rem(4px);\n }\n\n // Scrollbar thumb\n &::-webkit-scrollbar-thumb {\n background-color: var(--md-default-fg-color--lighter);\n\n // Hovered scrollbar thumb\n &:hover {\n background-color: var(--md-accent-fg-color);\n }\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Keyframes\n// ----------------------------------------------------------------------------\n\n// Show source facts\n@keyframes md-source__facts--done {\n 0% {\n height: 0;\n }\n\n 100% {\n height: px2rem(13px);\n }\n}\n\n// Show source fact\n@keyframes md-source__fact--done {\n 0% {\n transform: translateY(100%);\n opacity: 0;\n }\n\n 50% {\n opacity: 0;\n }\n\n 100% {\n transform: translateY(0%);\n opacity: 1;\n }\n}\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Source container\n.md-source {\n display: block;\n font-size: px2rem(13px);\n line-height: 1.2;\n white-space: nowrap;\n // Hack: reduce jitter\n backface-visibility: hidden;\n transition: opacity 250ms;\n\n // Hovered source container\n &:hover {\n opacity: 0.7;\n }\n\n // Repository platform icon\n &__icon {\n display: inline-block;\n width: px2rem(48px);\n height: px2rem(48px);\n vertical-align: middle;\n\n // Align with margin only (as opposed to normal button alignment)\n svg {\n margin-top: px2rem(12px);\n margin-left: px2rem(12px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2rem(12px);\n margin-left: initial;\n }\n }\n\n // Correct alignment, if icon is present\n + .md-source__repository {\n margin-left: px2rem(-40px);\n padding-left: px2rem(40px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2rem(-40px);\n margin-left: initial;\n padding-right: px2rem(40px);\n padding-left: initial;\n }\n }\n }\n\n // Repository name\n &__repository {\n display: inline-block;\n max-width: calc(100% - #{px2rem(24px)});\n margin-left: px2rem(12px);\n overflow: hidden;\n font-weight: 700;\n text-overflow: ellipsis;\n vertical-align: middle;\n }\n\n // Source facts (statistics etc.)\n &__facts {\n margin: 0;\n padding: 0;\n overflow: hidden;\n font-weight: 700;\n font-size: px2rem(11px);\n list-style-type: none;\n opacity: 0.75;\n\n // Show after the data was loaded\n [data-md-state=\"done\"] & {\n animation: md-source__facts--done 250ms ease-in;\n }\n }\n\n // Fact\n &__fact {\n float: left;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n float: right;\n }\n\n // Show after the data was loaded\n [data-md-state=\"done\"] & {\n animation: md-source__fact--done 400ms ease-out;\n }\n\n // Middle dot before fact\n &::before {\n margin: 0 px2rem(2px);\n content: \"\\00B7\";\n }\n\n // Remove middle dot on first fact\n &:first-child::before {\n display: none;\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Tabs with outline\n.md-tabs {\n width: 100%;\n overflow: auto;\n color: var(--md-primary-bg-color);\n background-color: var(--md-primary-fg-color);\n transition: background 250ms;\n\n // Omit transitions, in case JavaScript is not available\n .no-js & {\n transition: none;\n }\n\n // [tablet -]: Hide tabs for tablet and below, as they don't make any sense\n @include break-to-device(tablet) {\n display: none;\n }\n\n // Hide for print\n @media print {\n display: none;\n }\n\n // List of items\n &__list {\n margin: 0;\n margin-left: px2rem(4px);\n padding: 0;\n white-space: nowrap;\n list-style: none;\n contain: content;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2rem(4px);\n margin-left: initial;\n }\n }\n\n // List item\n &__item {\n display: inline-block;\n height: px2rem(48px);\n padding-right: px2rem(12px);\n padding-left: px2rem(12px);\n }\n\n // Link inside item - could be defined as block elements and aligned via\n // line height, but this would imply more repaints when scrolling\n &__link {\n display: block;\n margin-top: px2rem(16px);\n font-size: px2rem(14px);\n opacity: 0.7;\n transition:\n transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),\n opacity 250ms;\n\n // Omit transitions, in case JavaScript is not available\n .no-js & {\n transition: none;\n }\n\n // Active or hovered link\n &--active,\n &:hover {\n color: inherit;\n opacity: 1;\n }\n\n // Delay transitions by a small amount\n @for $i from 2 through 16 {\n .md-tabs__item:nth-child(#{$i}) & {\n transition-delay: 20ms * ($i - 1);\n }\n }\n }\n\n // Fade-out tabs background upon scrolling\n &[data-md-state=\"hidden\"] {\n pointer-events: none;\n\n // Hide tabs upon scrolling - disable transition to minimizes repaints\n // while scrolling down, while scrolling up seems to be okay\n .md-tabs__link {\n transform: translateY(50%);\n opacity: 0;\n transition:\n color 250ms,\n transform 0ms 400ms,\n opacity 100ms;\n }\n }\n\n // [screen +]: Adjust main navigation styles\n @include break-from-device(screen) {\n\n // Hide 1st level nested items, as they are listed in the tabs\n ~ .md-main .md-nav--primary > .md-nav__list > .md-nav__item--nested {\n display: none;\n }\n\n // Active tab\n &--active ~ .md-main {\n\n // Adjust 1st level styles\n .md-nav--primary {\n\n // Show title and remove spacing\n .md-nav__title {\n display: block;\n padding: 0 px2rem(12px);\n pointer-events: none;\n scroll-snap-align: start;\n\n // Hide site title\n &[for=\"__drawer\"] {\n display: none;\n }\n }\n\n // Hide 1st level items\n > .md-nav__list > .md-nav__item {\n display: none;\n\n // Show 1st level active nested items\n &--active {\n display: block;\n padding: 0;\n\n // Hide nested links\n > .md-nav__link {\n display: none;\n }\n }\n }\n }\n\n // Always expand nested navigation on 2nd level\n .md-nav[data-md-level=\"1\"] {\n // Hack: Always show active navigation tab on breakpoint screen, despite\n // of checkbox being checked or not. Fixes #1655.\n display: block;\n\n // Remove spacing on 2nd level items\n > .md-nav__list > .md-nav__item {\n padding: 0 px2rem(12px);\n }\n\n // Hide titles from 2nd level on\n .md-nav .md-nav__title {\n display: none;\n }\n }\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Variables\n// ----------------------------------------------------------------------------\n\n///\n/// Admonition flavours\n///\n$admonitions: (\n note: pencil $clr-blue-a200,\n abstract summary tldr: text-subject $clr-light-blue-a400,\n info todo: information $clr-cyan-a700,\n tip hint important: fire $clr-teal-a700,\n success check done: check-circle $clr-green-a700,\n question help faq: help-circle $clr-light-green-a700,\n warning caution attention: alert $clr-orange-a400,\n failure fail missing: close-circle $clr-red-a200,\n danger error: flash-circle $clr-red-a400,\n bug: bug $clr-pink-a400,\n example: format-list-numbered $clr-deep-purple-a400,\n quote cite: format-quote-close $clr-grey\n) !default;\n\n// ----------------------------------------------------------------------------\n// Rules: layout\n// ----------------------------------------------------------------------------\n\n// Icon definitions\n:root {\n @each $names, $props in $admonitions {\n $name: nth($names, 1);\n $icon: nth($props, 1);\n\n // Inline icon through string-replace-loader in webpack\n --md-admonition-icon--#{$name}: svg-load(\"@mdi/svg/svg/#{$icon}.svg\");\n }\n}\n\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // Admonition extension\n .admonition {\n margin: 1.5625em 0;\n padding: 0 px2rem(12px);\n overflow: hidden;\n font-size: ms(-1);\n page-break-inside: avoid;\n border-left: px2rem(4px) solid $clr-blue-a200;\n border-radius: px2rem(2px);\n box-shadow:\n 0 px2rem(4px) px2rem(10px) hsla(0, 0%, 0%, 0.05),\n 0 0 px2rem(1px) hsla(0, 0%, 0%, 0.1);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n border-right: px2rem(4px) solid $clr-blue-a200;\n border-left: none;\n }\n\n // Hack: omit rendering errors for print\n @media print {\n box-shadow: none;\n }\n\n // Adjust spacing on last element\n html & > :last-child {\n margin-bottom: px2rem(12px);\n }\n\n // Adjust margin for nested admonition blocks\n .admonition {\n margin: 1em 0;\n }\n\n // Wrapper for scrolling on overflow\n .md-typeset__scrollwrap {\n margin: 1em px2rem(-12px);\n }\n\n // Data table wrapper, in case JavaScript is available\n .md-typeset__table {\n padding: 0 px2rem(12px);\n }\n }\n\n // Admonition title\n .admonition-title {\n position: relative;\n margin: 0 px2rem(-12px);\n padding: px2rem(8px) px2rem(12px) px2rem(8px) px2rem(40px);\n font-weight: 700;\n background-color: transparentize($clr-blue-a200, 0.9);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding: px2rem(8px) px2rem(40px) px2rem(8px) px2rem(12px);\n }\n\n // Reset spacing, if title is the only element\n html &:last-child {\n margin-bottom: 0;\n }\n\n // Icon\n &::before {\n position: absolute;\n left: px2rem(12px);\n width: px2rem(20px);\n height: px2rem(20px);\n background-color: $clr-blue-a200;\n mask-image: var(--md-admonition-icon--note);\n content: \"\";\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: px2rem(12px);\n left: initial;\n }\n }\n\n // Reset code inside Admonition titles\n code {\n margin: initial;\n padding: initial;\n color: currentColor;\n background-color: transparent;\n border-radius: initial;\n box-shadow: none;\n }\n }\n}\n\n// ----------------------------------------------------------------------------\n// Rules: flavours\n// ----------------------------------------------------------------------------\n\n@each $names, $props in $admonitions {\n $name: nth($names, 1);\n $tint: nth($props, 2);\n\n // Define base class\n .md-typeset .admonition.#{$name} {\n border-color: $tint;\n }\n\n // Define base class\n .md-typeset .#{$name} > .admonition-title {\n background-color: transparentize($tint, 0.9);\n\n // Icon\n &::before {\n background-color: $tint;\n mask-image: var(--md-admonition-icon--#{$name});\n }\n }\n\n // Define synonyms for base class\n @if length($names) > 1 {\n @for $n from 2 through length($names) {\n .#{nth($names, $n)} {\n @extend .#{$name};\n }\n }\n }\n}\n","// ==========================================================================\n//\n// Name: UI Color Palette\n// Description: The color palette of material design.\n// Version: 2.3.1\n//\n// Author: Denis Malinochkin\n// Git: https://github.com/mrmlnc/material-color\n//\n// twitter: @mrmlnc\n//\n// ==========================================================================\n\n\n//\n// List of base colors\n//\n\n// $clr-red\n// $clr-pink\n// $clr-purple\n// $clr-deep-purple\n// $clr-indigo\n// $clr-blue\n// $clr-light-blue\n// $clr-cyan\n// $clr-teal\n// $clr-green\n// $clr-light-green\n// $clr-lime\n// $clr-yellow\n// $clr-amber\n// $clr-orange\n// $clr-deep-orange\n// $clr-brown\n// $clr-grey\n// $clr-blue-grey\n// $clr-black\n// $clr-white\n\n\n//\n// Red\n//\n\n$clr-red-list: (\n \"base\": #f44336,\n \"50\": #ffebee,\n \"100\": #ffcdd2,\n \"200\": #ef9a9a,\n \"300\": #e57373,\n \"400\": #ef5350,\n \"500\": #f44336,\n \"600\": #e53935,\n \"700\": #d32f2f,\n \"800\": #c62828,\n \"900\": #b71c1c,\n \"a100\": #ff8a80,\n \"a200\": #ff5252,\n \"a400\": #ff1744,\n \"a700\": #d50000\n);\n\n$clr-red: map-get($clr-red-list, \"base\");\n\n$clr-red-50: map-get($clr-red-list, \"50\");\n$clr-red-100: map-get($clr-red-list, \"100\");\n$clr-red-200: map-get($clr-red-list, \"200\");\n$clr-red-300: map-get($clr-red-list, \"300\");\n$clr-red-400: map-get($clr-red-list, \"400\");\n$clr-red-500: map-get($clr-red-list, \"500\");\n$clr-red-600: map-get($clr-red-list, \"600\");\n$clr-red-700: map-get($clr-red-list, \"700\");\n$clr-red-800: map-get($clr-red-list, \"800\");\n$clr-red-900: map-get($clr-red-list, \"900\");\n$clr-red-a100: map-get($clr-red-list, \"a100\");\n$clr-red-a200: map-get($clr-red-list, \"a200\");\n$clr-red-a400: map-get($clr-red-list, \"a400\");\n$clr-red-a700: map-get($clr-red-list, \"a700\");\n\n\n//\n// Pink\n//\n\n$clr-pink-list: (\n \"base\": #e91e63,\n \"50\": #fce4ec,\n \"100\": #f8bbd0,\n \"200\": #f48fb1,\n \"300\": #f06292,\n \"400\": #ec407a,\n \"500\": #e91e63,\n \"600\": #d81b60,\n \"700\": #c2185b,\n \"800\": #ad1457,\n \"900\": #880e4f,\n \"a100\": #ff80ab,\n \"a200\": #ff4081,\n \"a400\": #f50057,\n \"a700\": #c51162\n);\n\n$clr-pink: map-get($clr-pink-list, \"base\");\n\n$clr-pink-50: map-get($clr-pink-list, \"50\");\n$clr-pink-100: map-get($clr-pink-list, \"100\");\n$clr-pink-200: map-get($clr-pink-list, \"200\");\n$clr-pink-300: map-get($clr-pink-list, \"300\");\n$clr-pink-400: map-get($clr-pink-list, \"400\");\n$clr-pink-500: map-get($clr-pink-list, \"500\");\n$clr-pink-600: map-get($clr-pink-list, \"600\");\n$clr-pink-700: map-get($clr-pink-list, \"700\");\n$clr-pink-800: map-get($clr-pink-list, \"800\");\n$clr-pink-900: map-get($clr-pink-list, \"900\");\n$clr-pink-a100: map-get($clr-pink-list, \"a100\");\n$clr-pink-a200: map-get($clr-pink-list, \"a200\");\n$clr-pink-a400: map-get($clr-pink-list, \"a400\");\n$clr-pink-a700: map-get($clr-pink-list, \"a700\");\n\n\n//\n// Purple\n//\n\n$clr-purple-list: (\n \"base\": #9c27b0,\n \"50\": #f3e5f5,\n \"100\": #e1bee7,\n \"200\": #ce93d8,\n \"300\": #ba68c8,\n \"400\": #ab47bc,\n \"500\": #9c27b0,\n \"600\": #8e24aa,\n \"700\": #7b1fa2,\n \"800\": #6a1b9a,\n \"900\": #4a148c,\n \"a100\": #ea80fc,\n \"a200\": #e040fb,\n \"a400\": #d500f9,\n \"a700\": #aa00ff\n);\n\n$clr-purple: map-get($clr-purple-list, \"base\");\n\n$clr-purple-50: map-get($clr-purple-list, \"50\");\n$clr-purple-100: map-get($clr-purple-list, \"100\");\n$clr-purple-200: map-get($clr-purple-list, \"200\");\n$clr-purple-300: map-get($clr-purple-list, \"300\");\n$clr-purple-400: map-get($clr-purple-list, \"400\");\n$clr-purple-500: map-get($clr-purple-list, \"500\");\n$clr-purple-600: map-get($clr-purple-list, \"600\");\n$clr-purple-700: map-get($clr-purple-list, \"700\");\n$clr-purple-800: map-get($clr-purple-list, \"800\");\n$clr-purple-900: map-get($clr-purple-list, \"900\");\n$clr-purple-a100: map-get($clr-purple-list, \"a100\");\n$clr-purple-a200: map-get($clr-purple-list, \"a200\");\n$clr-purple-a400: map-get($clr-purple-list, \"a400\");\n$clr-purple-a700: map-get($clr-purple-list, \"a700\");\n\n\n//\n// Deep purple\n//\n\n$clr-deep-purple-list: (\n \"base\": #673ab7,\n \"50\": #ede7f6,\n \"100\": #d1c4e9,\n \"200\": #b39ddb,\n \"300\": #9575cd,\n \"400\": #7e57c2,\n \"500\": #673ab7,\n \"600\": #5e35b1,\n \"700\": #512da8,\n \"800\": #4527a0,\n \"900\": #311b92,\n \"a100\": #b388ff,\n \"a200\": #7c4dff,\n \"a400\": #651fff,\n \"a700\": #6200ea\n);\n\n$clr-deep-purple: map-get($clr-deep-purple-list, \"base\");\n\n$clr-deep-purple-50: map-get($clr-deep-purple-list, \"50\");\n$clr-deep-purple-100: map-get($clr-deep-purple-list, \"100\");\n$clr-deep-purple-200: map-get($clr-deep-purple-list, \"200\");\n$clr-deep-purple-300: map-get($clr-deep-purple-list, \"300\");\n$clr-deep-purple-400: map-get($clr-deep-purple-list, \"400\");\n$clr-deep-purple-500: map-get($clr-deep-purple-list, \"500\");\n$clr-deep-purple-600: map-get($clr-deep-purple-list, \"600\");\n$clr-deep-purple-700: map-get($clr-deep-purple-list, \"700\");\n$clr-deep-purple-800: map-get($clr-deep-purple-list, \"800\");\n$clr-deep-purple-900: map-get($clr-deep-purple-list, \"900\");\n$clr-deep-purple-a100: map-get($clr-deep-purple-list, \"a100\");\n$clr-deep-purple-a200: map-get($clr-deep-purple-list, \"a200\");\n$clr-deep-purple-a400: map-get($clr-deep-purple-list, \"a400\");\n$clr-deep-purple-a700: map-get($clr-deep-purple-list, \"a700\");\n\n\n//\n// Indigo\n//\n\n$clr-indigo-list: (\n \"base\": #3f51b5,\n \"50\": #e8eaf6,\n \"100\": #c5cae9,\n \"200\": #9fa8da,\n \"300\": #7986cb,\n \"400\": #5c6bc0,\n \"500\": #3f51b5,\n \"600\": #3949ab,\n \"700\": #303f9f,\n \"800\": #283593,\n \"900\": #1a237e,\n \"a100\": #8c9eff,\n \"a200\": #536dfe,\n \"a400\": #3d5afe,\n \"a700\": #304ffe\n);\n\n$clr-indigo: map-get($clr-indigo-list, \"base\");\n\n$clr-indigo-50: map-get($clr-indigo-list, \"50\");\n$clr-indigo-100: map-get($clr-indigo-list, \"100\");\n$clr-indigo-200: map-get($clr-indigo-list, \"200\");\n$clr-indigo-300: map-get($clr-indigo-list, \"300\");\n$clr-indigo-400: map-get($clr-indigo-list, \"400\");\n$clr-indigo-500: map-get($clr-indigo-list, \"500\");\n$clr-indigo-600: map-get($clr-indigo-list, \"600\");\n$clr-indigo-700: map-get($clr-indigo-list, \"700\");\n$clr-indigo-800: map-get($clr-indigo-list, \"800\");\n$clr-indigo-900: map-get($clr-indigo-list, \"900\");\n$clr-indigo-a100: map-get($clr-indigo-list, \"a100\");\n$clr-indigo-a200: map-get($clr-indigo-list, \"a200\");\n$clr-indigo-a400: map-get($clr-indigo-list, \"a400\");\n$clr-indigo-a700: map-get($clr-indigo-list, \"a700\");\n\n\n//\n// Blue\n//\n\n$clr-blue-list: (\n \"base\": #2196f3,\n \"50\": #e3f2fd,\n \"100\": #bbdefb,\n \"200\": #90caf9,\n \"300\": #64b5f6,\n \"400\": #42a5f5,\n \"500\": #2196f3,\n \"600\": #1e88e5,\n \"700\": #1976d2,\n \"800\": #1565c0,\n \"900\": #0d47a1,\n \"a100\": #82b1ff,\n \"a200\": #448aff,\n \"a400\": #2979ff,\n \"a700\": #2962ff\n);\n\n$clr-blue: map-get($clr-blue-list, \"base\");\n\n$clr-blue-50: map-get($clr-blue-list, \"50\");\n$clr-blue-100: map-get($clr-blue-list, \"100\");\n$clr-blue-200: map-get($clr-blue-list, \"200\");\n$clr-blue-300: map-get($clr-blue-list, \"300\");\n$clr-blue-400: map-get($clr-blue-list, \"400\");\n$clr-blue-500: map-get($clr-blue-list, \"500\");\n$clr-blue-600: map-get($clr-blue-list, \"600\");\n$clr-blue-700: map-get($clr-blue-list, \"700\");\n$clr-blue-800: map-get($clr-blue-list, \"800\");\n$clr-blue-900: map-get($clr-blue-list, \"900\");\n$clr-blue-a100: map-get($clr-blue-list, \"a100\");\n$clr-blue-a200: map-get($clr-blue-list, \"a200\");\n$clr-blue-a400: map-get($clr-blue-list, \"a400\");\n$clr-blue-a700: map-get($clr-blue-list, \"a700\");\n\n\n//\n// Light Blue\n//\n\n$clr-light-blue-list: (\n \"base\": #03a9f4,\n \"50\": #e1f5fe,\n \"100\": #b3e5fc,\n \"200\": #81d4fa,\n \"300\": #4fc3f7,\n \"400\": #29b6f6,\n \"500\": #03a9f4,\n \"600\": #039be5,\n \"700\": #0288d1,\n \"800\": #0277bd,\n \"900\": #01579b,\n \"a100\": #80d8ff,\n \"a200\": #40c4ff,\n \"a400\": #00b0ff,\n \"a700\": #0091ea\n);\n\n$clr-light-blue: map-get($clr-light-blue-list, \"base\");\n\n$clr-light-blue-50: map-get($clr-light-blue-list, \"50\");\n$clr-light-blue-100: map-get($clr-light-blue-list, \"100\");\n$clr-light-blue-200: map-get($clr-light-blue-list, \"200\");\n$clr-light-blue-300: map-get($clr-light-blue-list, \"300\");\n$clr-light-blue-400: map-get($clr-light-blue-list, \"400\");\n$clr-light-blue-500: map-get($clr-light-blue-list, \"500\");\n$clr-light-blue-600: map-get($clr-light-blue-list, \"600\");\n$clr-light-blue-700: map-get($clr-light-blue-list, \"700\");\n$clr-light-blue-800: map-get($clr-light-blue-list, \"800\");\n$clr-light-blue-900: map-get($clr-light-blue-list, \"900\");\n$clr-light-blue-a100: map-get($clr-light-blue-list, \"a100\");\n$clr-light-blue-a200: map-get($clr-light-blue-list, \"a200\");\n$clr-light-blue-a400: map-get($clr-light-blue-list, \"a400\");\n$clr-light-blue-a700: map-get($clr-light-blue-list, \"a700\");\n\n\n//\n// Cyan\n//\n\n$clr-cyan-list: (\n \"base\": #00bcd4,\n \"50\": #e0f7fa,\n \"100\": #b2ebf2,\n \"200\": #80deea,\n \"300\": #4dd0e1,\n \"400\": #26c6da,\n \"500\": #00bcd4,\n \"600\": #00acc1,\n \"700\": #0097a7,\n \"800\": #00838f,\n \"900\": #006064,\n \"a100\": #84ffff,\n \"a200\": #18ffff,\n \"a400\": #00e5ff,\n \"a700\": #00b8d4\n);\n\n$clr-cyan: map-get($clr-cyan-list, \"base\");\n\n$clr-cyan-50: map-get($clr-cyan-list, \"50\");\n$clr-cyan-100: map-get($clr-cyan-list, \"100\");\n$clr-cyan-200: map-get($clr-cyan-list, \"200\");\n$clr-cyan-300: map-get($clr-cyan-list, \"300\");\n$clr-cyan-400: map-get($clr-cyan-list, \"400\");\n$clr-cyan-500: map-get($clr-cyan-list, \"500\");\n$clr-cyan-600: map-get($clr-cyan-list, \"600\");\n$clr-cyan-700: map-get($clr-cyan-list, \"700\");\n$clr-cyan-800: map-get($clr-cyan-list, \"800\");\n$clr-cyan-900: map-get($clr-cyan-list, \"900\");\n$clr-cyan-a100: map-get($clr-cyan-list, \"a100\");\n$clr-cyan-a200: map-get($clr-cyan-list, \"a200\");\n$clr-cyan-a400: map-get($clr-cyan-list, \"a400\");\n$clr-cyan-a700: map-get($clr-cyan-list, \"a700\");\n\n\n//\n// Teal\n//\n\n$clr-teal-list: (\n \"base\": #009688,\n \"50\": #e0f2f1,\n \"100\": #b2dfdb,\n \"200\": #80cbc4,\n \"300\": #4db6ac,\n \"400\": #26a69a,\n \"500\": #009688,\n \"600\": #00897b,\n \"700\": #00796b,\n \"800\": #00695c,\n \"900\": #004d40,\n \"a100\": #a7ffeb,\n \"a200\": #64ffda,\n \"a400\": #1de9b6,\n \"a700\": #00bfa5\n);\n\n$clr-teal: map-get($clr-teal-list, \"base\");\n\n$clr-teal-50: map-get($clr-teal-list, \"50\");\n$clr-teal-100: map-get($clr-teal-list, \"100\");\n$clr-teal-200: map-get($clr-teal-list, \"200\");\n$clr-teal-300: map-get($clr-teal-list, \"300\");\n$clr-teal-400: map-get($clr-teal-list, \"400\");\n$clr-teal-500: map-get($clr-teal-list, \"500\");\n$clr-teal-600: map-get($clr-teal-list, \"600\");\n$clr-teal-700: map-get($clr-teal-list, \"700\");\n$clr-teal-800: map-get($clr-teal-list, \"800\");\n$clr-teal-900: map-get($clr-teal-list, \"900\");\n$clr-teal-a100: map-get($clr-teal-list, \"a100\");\n$clr-teal-a200: map-get($clr-teal-list, \"a200\");\n$clr-teal-a400: map-get($clr-teal-list, \"a400\");\n$clr-teal-a700: map-get($clr-teal-list, \"a700\");\n\n\n//\n// Green\n//\n\n$clr-green-list: (\n \"base\": #4caf50,\n \"50\": #e8f5e9,\n \"100\": #c8e6c9,\n \"200\": #a5d6a7,\n \"300\": #81c784,\n \"400\": #66bb6a,\n \"500\": #4caf50,\n \"600\": #43a047,\n \"700\": #388e3c,\n \"800\": #2e7d32,\n \"900\": #1b5e20,\n \"a100\": #b9f6ca,\n \"a200\": #69f0ae,\n \"a400\": #00e676,\n \"a700\": #00c853\n);\n\n$clr-green: map-get($clr-green-list, \"base\");\n\n$clr-green-50: map-get($clr-green-list, \"50\");\n$clr-green-100: map-get($clr-green-list, \"100\");\n$clr-green-200: map-get($clr-green-list, \"200\");\n$clr-green-300: map-get($clr-green-list, \"300\");\n$clr-green-400: map-get($clr-green-list, \"400\");\n$clr-green-500: map-get($clr-green-list, \"500\");\n$clr-green-600: map-get($clr-green-list, \"600\");\n$clr-green-700: map-get($clr-green-list, \"700\");\n$clr-green-800: map-get($clr-green-list, \"800\");\n$clr-green-900: map-get($clr-green-list, \"900\");\n$clr-green-a100: map-get($clr-green-list, \"a100\");\n$clr-green-a200: map-get($clr-green-list, \"a200\");\n$clr-green-a400: map-get($clr-green-list, \"a400\");\n$clr-green-a700: map-get($clr-green-list, \"a700\");\n\n\n//\n// Light green\n//\n\n$clr-light-green-list: (\n \"base\": #8bc34a,\n \"50\": #f1f8e9,\n \"100\": #dcedc8,\n \"200\": #c5e1a5,\n \"300\": #aed581,\n \"400\": #9ccc65,\n \"500\": #8bc34a,\n \"600\": #7cb342,\n \"700\": #689f38,\n \"800\": #558b2f,\n \"900\": #33691e,\n \"a100\": #ccff90,\n \"a200\": #b2ff59,\n \"a400\": #76ff03,\n \"a700\": #64dd17\n);\n\n$clr-light-green: map-get($clr-light-green-list, \"base\");\n\n$clr-light-green-50: map-get($clr-light-green-list, \"50\");\n$clr-light-green-100: map-get($clr-light-green-list, \"100\");\n$clr-light-green-200: map-get($clr-light-green-list, \"200\");\n$clr-light-green-300: map-get($clr-light-green-list, \"300\");\n$clr-light-green-400: map-get($clr-light-green-list, \"400\");\n$clr-light-green-500: map-get($clr-light-green-list, \"500\");\n$clr-light-green-600: map-get($clr-light-green-list, \"600\");\n$clr-light-green-700: map-get($clr-light-green-list, \"700\");\n$clr-light-green-800: map-get($clr-light-green-list, \"800\");\n$clr-light-green-900: map-get($clr-light-green-list, \"900\");\n$clr-light-green-a100: map-get($clr-light-green-list, \"a100\");\n$clr-light-green-a200: map-get($clr-light-green-list, \"a200\");\n$clr-light-green-a400: map-get($clr-light-green-list, \"a400\");\n$clr-light-green-a700: map-get($clr-light-green-list, \"a700\");\n\n\n//\n// Lime\n//\n\n$clr-lime-list: (\n \"base\": #cddc39,\n \"50\": #f9fbe7,\n \"100\": #f0f4c3,\n \"200\": #e6ee9c,\n \"300\": #dce775,\n \"400\": #d4e157,\n \"500\": #cddc39,\n \"600\": #c0ca33,\n \"700\": #afb42b,\n \"800\": #9e9d24,\n \"900\": #827717,\n \"a100\": #f4ff81,\n \"a200\": #eeff41,\n \"a400\": #c6ff00,\n \"a700\": #aeea00\n);\n\n$clr-lime: map-get($clr-lime-list, \"base\");\n\n$clr-lime-50: map-get($clr-lime-list, \"50\");\n$clr-lime-100: map-get($clr-lime-list, \"100\");\n$clr-lime-200: map-get($clr-lime-list, \"200\");\n$clr-lime-300: map-get($clr-lime-list, \"300\");\n$clr-lime-400: map-get($clr-lime-list, \"400\");\n$clr-lime-500: map-get($clr-lime-list, \"500\");\n$clr-lime-600: map-get($clr-lime-list, \"600\");\n$clr-lime-700: map-get($clr-lime-list, \"700\");\n$clr-lime-800: map-get($clr-lime-list, \"800\");\n$clr-lime-900: map-get($clr-lime-list, \"900\");\n$clr-lime-a100: map-get($clr-lime-list, \"a100\");\n$clr-lime-a200: map-get($clr-lime-list, \"a200\");\n$clr-lime-a400: map-get($clr-lime-list, \"a400\");\n$clr-lime-a700: map-get($clr-lime-list, \"a700\");\n\n\n//\n// Yellow\n//\n\n$clr-yellow-list: (\n \"base\": #ffeb3b,\n \"50\": #fffde7,\n \"100\": #fff9c4,\n \"200\": #fff59d,\n \"300\": #fff176,\n \"400\": #ffee58,\n \"500\": #ffeb3b,\n \"600\": #fdd835,\n \"700\": #fbc02d,\n \"800\": #f9a825,\n \"900\": #f57f17,\n \"a100\": #ffff8d,\n \"a200\": #ffff00,\n \"a400\": #ffea00,\n \"a700\": #ffd600\n);\n\n$clr-yellow: map-get($clr-yellow-list, \"base\");\n\n$clr-yellow-50: map-get($clr-yellow-list, \"50\");\n$clr-yellow-100: map-get($clr-yellow-list, \"100\");\n$clr-yellow-200: map-get($clr-yellow-list, \"200\");\n$clr-yellow-300: map-get($clr-yellow-list, \"300\");\n$clr-yellow-400: map-get($clr-yellow-list, \"400\");\n$clr-yellow-500: map-get($clr-yellow-list, \"500\");\n$clr-yellow-600: map-get($clr-yellow-list, \"600\");\n$clr-yellow-700: map-get($clr-yellow-list, \"700\");\n$clr-yellow-800: map-get($clr-yellow-list, \"800\");\n$clr-yellow-900: map-get($clr-yellow-list, \"900\");\n$clr-yellow-a100: map-get($clr-yellow-list, \"a100\");\n$clr-yellow-a200: map-get($clr-yellow-list, \"a200\");\n$clr-yellow-a400: map-get($clr-yellow-list, \"a400\");\n$clr-yellow-a700: map-get($clr-yellow-list, \"a700\");\n\n\n//\n// amber\n//\n\n$clr-amber-list: (\n \"base\": #ffc107,\n \"50\": #fff8e1,\n \"100\": #ffecb3,\n \"200\": #ffe082,\n \"300\": #ffd54f,\n \"400\": #ffca28,\n \"500\": #ffc107,\n \"600\": #ffb300,\n \"700\": #ffa000,\n \"800\": #ff8f00,\n \"900\": #ff6f00,\n \"a100\": #ffe57f,\n \"a200\": #ffd740,\n \"a400\": #ffc400,\n \"a700\": #ffab00\n);\n\n$clr-amber: map-get($clr-amber-list, \"base\");\n\n$clr-amber-50: map-get($clr-amber-list, \"50\");\n$clr-amber-100: map-get($clr-amber-list, \"100\");\n$clr-amber-200: map-get($clr-amber-list, \"200\");\n$clr-amber-300: map-get($clr-amber-list, \"300\");\n$clr-amber-400: map-get($clr-amber-list, \"400\");\n$clr-amber-500: map-get($clr-amber-list, \"500\");\n$clr-amber-600: map-get($clr-amber-list, \"600\");\n$clr-amber-700: map-get($clr-amber-list, \"700\");\n$clr-amber-800: map-get($clr-amber-list, \"800\");\n$clr-amber-900: map-get($clr-amber-list, \"900\");\n$clr-amber-a100: map-get($clr-amber-list, \"a100\");\n$clr-amber-a200: map-get($clr-amber-list, \"a200\");\n$clr-amber-a400: map-get($clr-amber-list, \"a400\");\n$clr-amber-a700: map-get($clr-amber-list, \"a700\");\n\n\n//\n// Orange\n//\n\n$clr-orange-list: (\n \"base\": #ff9800,\n \"50\": #fff3e0,\n \"100\": #ffe0b2,\n \"200\": #ffcc80,\n \"300\": #ffb74d,\n \"400\": #ffa726,\n \"500\": #ff9800,\n \"600\": #fb8c00,\n \"700\": #f57c00,\n \"800\": #ef6c00,\n \"900\": #e65100,\n \"a100\": #ffd180,\n \"a200\": #ffab40,\n \"a400\": #ff9100,\n \"a700\": #ff6d00\n);\n\n$clr-orange: map-get($clr-orange-list, \"base\");\n\n$clr-orange-50: map-get($clr-orange-list, \"50\");\n$clr-orange-100: map-get($clr-orange-list, \"100\");\n$clr-orange-200: map-get($clr-orange-list, \"200\");\n$clr-orange-300: map-get($clr-orange-list, \"300\");\n$clr-orange-400: map-get($clr-orange-list, \"400\");\n$clr-orange-500: map-get($clr-orange-list, \"500\");\n$clr-orange-600: map-get($clr-orange-list, \"600\");\n$clr-orange-700: map-get($clr-orange-list, \"700\");\n$clr-orange-800: map-get($clr-orange-list, \"800\");\n$clr-orange-900: map-get($clr-orange-list, \"900\");\n$clr-orange-a100: map-get($clr-orange-list, \"a100\");\n$clr-orange-a200: map-get($clr-orange-list, \"a200\");\n$clr-orange-a400: map-get($clr-orange-list, \"a400\");\n$clr-orange-a700: map-get($clr-orange-list, \"a700\");\n\n\n//\n// Deep orange\n//\n\n$clr-deep-orange-list: (\n \"base\": #ff5722,\n \"50\": #fbe9e7,\n \"100\": #ffccbc,\n \"200\": #ffab91,\n \"300\": #ff8a65,\n \"400\": #ff7043,\n \"500\": #ff5722,\n \"600\": #f4511e,\n \"700\": #e64a19,\n \"800\": #d84315,\n \"900\": #bf360c,\n \"a100\": #ff9e80,\n \"a200\": #ff6e40,\n \"a400\": #ff3d00,\n \"a700\": #dd2c00\n);\n\n$clr-deep-orange: map-get($clr-deep-orange-list, \"base\");\n\n$clr-deep-orange-50: map-get($clr-deep-orange-list, \"50\");\n$clr-deep-orange-100: map-get($clr-deep-orange-list, \"100\");\n$clr-deep-orange-200: map-get($clr-deep-orange-list, \"200\");\n$clr-deep-orange-300: map-get($clr-deep-orange-list, \"300\");\n$clr-deep-orange-400: map-get($clr-deep-orange-list, \"400\");\n$clr-deep-orange-500: map-get($clr-deep-orange-list, \"500\");\n$clr-deep-orange-600: map-get($clr-deep-orange-list, \"600\");\n$clr-deep-orange-700: map-get($clr-deep-orange-list, \"700\");\n$clr-deep-orange-800: map-get($clr-deep-orange-list, \"800\");\n$clr-deep-orange-900: map-get($clr-deep-orange-list, \"900\");\n$clr-deep-orange-a100: map-get($clr-deep-orange-list, \"a100\");\n$clr-deep-orange-a200: map-get($clr-deep-orange-list, \"a200\");\n$clr-deep-orange-a400: map-get($clr-deep-orange-list, \"a400\");\n$clr-deep-orange-a700: map-get($clr-deep-orange-list, \"a700\");\n\n\n//\n// Brown\n//\n\n$clr-brown-list: (\n \"base\": #795548,\n \"50\": #efebe9,\n \"100\": #d7ccc8,\n \"200\": #bcaaa4,\n \"300\": #a1887f,\n \"400\": #8d6e63,\n \"500\": #795548,\n \"600\": #6d4c41,\n \"700\": #5d4037,\n \"800\": #4e342e,\n \"900\": #3e2723,\n);\n\n$clr-brown: map-get($clr-brown-list, \"base\");\n\n$clr-brown-50: map-get($clr-brown-list, \"50\");\n$clr-brown-100: map-get($clr-brown-list, \"100\");\n$clr-brown-200: map-get($clr-brown-list, \"200\");\n$clr-brown-300: map-get($clr-brown-list, \"300\");\n$clr-brown-400: map-get($clr-brown-list, \"400\");\n$clr-brown-500: map-get($clr-brown-list, \"500\");\n$clr-brown-600: map-get($clr-brown-list, \"600\");\n$clr-brown-700: map-get($clr-brown-list, \"700\");\n$clr-brown-800: map-get($clr-brown-list, \"800\");\n$clr-brown-900: map-get($clr-brown-list, \"900\");\n\n\n//\n// Grey\n//\n\n$clr-grey-list: (\n \"base\": #9e9e9e,\n \"50\": #fafafa,\n \"100\": #f5f5f5,\n \"200\": #eeeeee,\n \"300\": #e0e0e0,\n \"400\": #bdbdbd,\n \"500\": #9e9e9e,\n \"600\": #757575,\n \"700\": #616161,\n \"800\": #424242,\n \"900\": #212121,\n);\n\n$clr-grey: map-get($clr-grey-list, \"base\");\n\n$clr-grey-50: map-get($clr-grey-list, \"50\");\n$clr-grey-100: map-get($clr-grey-list, \"100\");\n$clr-grey-200: map-get($clr-grey-list, \"200\");\n$clr-grey-300: map-get($clr-grey-list, \"300\");\n$clr-grey-400: map-get($clr-grey-list, \"400\");\n$clr-grey-500: map-get($clr-grey-list, \"500\");\n$clr-grey-600: map-get($clr-grey-list, \"600\");\n$clr-grey-700: map-get($clr-grey-list, \"700\");\n$clr-grey-800: map-get($clr-grey-list, \"800\");\n$clr-grey-900: map-get($clr-grey-list, \"900\");\n\n\n//\n// Blue grey\n//\n\n$clr-blue-grey-list: (\n \"base\": #607d8b,\n \"50\": #eceff1,\n \"100\": #cfd8dc,\n \"200\": #b0bec5,\n \"300\": #90a4ae,\n \"400\": #78909c,\n \"500\": #607d8b,\n \"600\": #546e7a,\n \"700\": #455a64,\n \"800\": #37474f,\n \"900\": #263238,\n);\n\n$clr-blue-grey: map-get($clr-blue-grey-list, \"base\");\n\n$clr-blue-grey-50: map-get($clr-blue-grey-list, \"50\");\n$clr-blue-grey-100: map-get($clr-blue-grey-list, \"100\");\n$clr-blue-grey-200: map-get($clr-blue-grey-list, \"200\");\n$clr-blue-grey-300: map-get($clr-blue-grey-list, \"300\");\n$clr-blue-grey-400: map-get($clr-blue-grey-list, \"400\");\n$clr-blue-grey-500: map-get($clr-blue-grey-list, \"500\");\n$clr-blue-grey-600: map-get($clr-blue-grey-list, \"600\");\n$clr-blue-grey-700: map-get($clr-blue-grey-list, \"700\");\n$clr-blue-grey-800: map-get($clr-blue-grey-list, \"800\");\n$clr-blue-grey-900: map-get($clr-blue-grey-list, \"900\");\n\n\n//\n// Black\n//\n\n$clr-black-list: (\n \"base\": #000\n);\n\n$clr-black: map-get($clr-black-list, \"base\");\n\n\n//\n// White\n//\n\n$clr-white-list: (\n \"base\": #fff\n);\n\n$clr-white: map-get($clr-white-list, \"base\");\n\n\n//\n// List for all Colors for looping\n//\n\n$clr-list-all: (\n \"red\": $clr-red-list,\n \"pink\": $clr-pink-list,\n \"purple\": $clr-purple-list,\n \"deep-purple\": $clr-deep-purple-list,\n \"indigo\": $clr-indigo-list,\n \"blue\": $clr-blue-list,\n \"light-blue\": $clr-light-blue-list,\n \"cyan\": $clr-cyan-list,\n \"teal\": $clr-teal-list,\n \"green\": $clr-green-list,\n \"light-green\": $clr-light-green-list,\n \"lime\": $clr-lime-list,\n \"yellow\": $clr-yellow-list,\n \"amber\": $clr-amber-list,\n \"orange\": $clr-orange-list,\n \"deep-orange\": $clr-deep-orange-list,\n \"brown\": $clr-brown-list,\n \"grey\": $clr-grey-list,\n \"blue-grey\": $clr-blue-grey-list,\n \"black\": $clr-black-list,\n \"white\": $clr-white-list\n);\n\n\n//\n// Typography\n//\n\n$clr-ui-display-4: $clr-grey-600;\n$clr-ui-display-3: $clr-grey-600;\n$clr-ui-display-2: $clr-grey-600;\n$clr-ui-display-1: $clr-grey-600;\n$clr-ui-headline: $clr-grey-900;\n$clr-ui-title: $clr-grey-900;\n$clr-ui-subhead-1: $clr-grey-900;\n$clr-ui-body-2: $clr-grey-900;\n$clr-ui-body-1: $clr-grey-900;\n$clr-ui-caption: $clr-grey-600;\n$clr-ui-menu: $clr-grey-900;\n$clr-ui-button: $clr-grey-900;\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Variables\n// ----------------------------------------------------------------------------\n\n// Operators\n$codehilite-operator: inherit;\n$codehilite-operator-word: inherit;\n\n// Generics\n$codehilite-generic-emph: #000000;\n$codehilite-generic-error: #AA0000;\n$codehilite-generic-heading: #999999;\n$codehilite-generic-output: #888888;\n$codehilite-generic-prompt: #555555;\n$codehilite-generic-strong: inherit;\n$codehilite-generic-subheading: #AAAAAA;\n$codehilite-generic-traceback: #AA0000;\n\n// Diffs\n$codehilite-diff-deleted: #FFDDDD;\n$codehilite-diff-inserted: #DDFFDD;\n\n// Keywords\n$codehilite-keyword: #3B78E7;\n$codehilite-keyword-constant: #A71D5D;\n$codehilite-keyword-declaration: #3B78E7;\n$codehilite-keyword-namespace: #3B78E7;\n$codehilite-keyword-pseudo: #A71D5D;\n$codehilite-keyword-reserved: #3E61A2;\n$codehilite-keyword-type: #3E61A2;\n\n// Comments\n$codehilite-comment: #999999;\n$codehilite-comment-multiline: #999999;\n$codehilite-comment-preproc: #666666;\n$codehilite-comment-single: #999999;\n$codehilite-comment-shebang: #999999;\n$codehilite-comment-special: #999999;\n\n// Names\n$codehilite-name-attribute: #C2185B;\n$codehilite-name-builtin: #C2185B;\n$codehilite-name-builtin-pseudo: #3E61A2;\n$codehilite-name-class: #C2185B;\n$codehilite-name-constant: #3E61A2;\n$codehilite-name-decorator: #666666;\n$codehilite-name-entity: #666666;\n$codehilite-name-exception: #C2185B;\n$codehilite-name-function: #C2185B;\n$codehilite-name-label: #3B5179;\n$codehilite-name-namespace: #EC407A;\n$codehilite-name-tag: #3B78E7;\n$codehilite-name-variable: #3E61A2;\n$codehilite-name-variable-class: #3E61A2;\n$codehilite-name-variable-instance: #3E61A2;\n$codehilite-name-variable-global: #3E61A2;\n$codehilite-name-extension: #EC407A;\n\n// Numbers\n$codehilite-literal-number: #E74C3C;\n$codehilite-literal-number-float: #E74C3C;\n$codehilite-literal-number-hex: #E74C3C;\n$codehilite-literal-number-integer: #E74C3C;\n$codehilite-literal-number-integer-long: #E74C3C;\n$codehilite-literal-number-oct: #E74C3C;\n\n// Strings\n$codehilite-literal-string: #0D904F;\n$codehilite-literal-string-backticks: #0D904F;\n$codehilite-literal-string-char: #0D904F;\n$codehilite-literal-string-doc: #999999;\n$codehilite-literal-string-double: #0D904F;\n$codehilite-literal-string-escape: #183691;\n$codehilite-literal-string-heredoc: #183691;\n$codehilite-literal-string-interpol: #183691;\n$codehilite-literal-string-other: #183691;\n$codehilite-literal-string-regex: #009926;\n$codehilite-literal-string-single: #0D904F;\n$codehilite-literal-string-symbol: #0D904F;\n\n// Miscellaneous\n$codehilite-error: #A61717;\n$codehilite-whitespace: transparent;\n\n// ----------------------------------------------------------------------------\n// Rules: syntax highlighting\n// ----------------------------------------------------------------------------\n\n// Codehilite extension\n.codehilite {\n\n // Operators\n .o { color: $codehilite-operator; }\n .ow { color: $codehilite-operator-word; }\n\n // Generics\n .ge { color: $codehilite-generic-emph; }\n .gr { color: $codehilite-generic-error; }\n .gh { color: $codehilite-generic-heading; }\n .go { color: $codehilite-generic-output; }\n .gp { color: $codehilite-generic-prompt; }\n .gs { color: $codehilite-generic-strong; }\n .gu { color: $codehilite-generic-subheading; }\n .gt { color: $codehilite-generic-traceback; }\n\n // Diffs\n .gd { background-color: $codehilite-diff-deleted; }\n .gi { background-color: $codehilite-diff-inserted; }\n\n // Keywords\n .k { color: $codehilite-keyword; }\n .kc { color: $codehilite-keyword-constant; }\n .kd { color: $codehilite-keyword-declaration; }\n .kn { color: $codehilite-keyword-namespace; }\n .kp { color: $codehilite-keyword-pseudo; }\n .kr { color: $codehilite-keyword-reserved; }\n .kt { color: $codehilite-keyword-type; }\n\n // Comments\n .c { color: $codehilite-comment; }\n .cm { color: $codehilite-comment-multiline; }\n .cp { color: $codehilite-comment-preproc; }\n .c1 { color: $codehilite-comment-single; }\n .ch { color: $codehilite-comment-shebang; }\n .cs { color: $codehilite-comment-special; }\n\n // Names\n .na { color: $codehilite-name-attribute; }\n .nb { color: $codehilite-name-builtin; }\n .bp { color: $codehilite-name-builtin-pseudo; }\n .nc { color: $codehilite-name-class; }\n .no { color: $codehilite-name-constant; }\n .nd { color: $codehilite-name-entity; }\n .ni { color: $codehilite-name-entity; }\n .ne { color: $codehilite-name-exception; }\n .nf { color: $codehilite-name-function; }\n .nl { color: $codehilite-name-label; }\n .nn { color: $codehilite-name-namespace; }\n .nt { color: $codehilite-name-tag; }\n .nv { color: $codehilite-name-variable; }\n .vc { color: $codehilite-name-variable-class; }\n .vg { color: $codehilite-name-variable-global; }\n .vi { color: $codehilite-name-variable-instance; }\n .nx { color: $codehilite-name-extension; }\n\n // Numbers\n .m { color: $codehilite-literal-number; }\n .mf { color: $codehilite-literal-number-float; }\n .mh { color: $codehilite-literal-number-hex; }\n .mi { color: $codehilite-literal-number-integer; }\n .il { color: $codehilite-literal-number-integer-long; }\n .mo { color: $codehilite-literal-number-oct; }\n\n // Strings\n .s { color: $codehilite-literal-string; }\n .sb { color: $codehilite-literal-string-backticks; }\n .sc { color: $codehilite-literal-string-char; }\n .sd { color: $codehilite-literal-string-doc; }\n .s2 { color: $codehilite-literal-string-double; }\n .se { color: $codehilite-literal-string-escape; }\n .sh { color: $codehilite-literal-string-heredoc; }\n .si { color: $codehilite-literal-string-interpol; }\n .sx { color: $codehilite-literal-string-other; }\n .sr { color: $codehilite-literal-string-regex; }\n .s1 { color: $codehilite-literal-string-single; }\n .ss { color: $codehilite-literal-string-symbol; }\n\n // Miscellaneous\n .err { color: $codehilite-error; }\n .w { color: $codehilite-whitespace; }\n\n // Highlighted lines\n .hll {\n display: block;\n margin: 0 px2em(-16px, 13.6px);\n padding: 0 px2em(16px, 13.6px);\n background-color: transparentize($clr-yellow-500, 0.5);\n }\n}\n\n// ----------------------------------------------------------------------------\n// Rules: layout\n// ----------------------------------------------------------------------------\n\n// Block with line numbers\n.codehilitetable {\n display: block;\n overflow: hidden;\n\n // Set table elements to block layout, because otherwise the whole flexbox\n // hacking won't work correctly\n tbody,\n td {\n display: block;\n padding: 0;\n }\n\n // We need to use flexbox layout, because otherwise it's not possible to\n // make the code container scroll while keeping the line numbers static\n tr {\n display: flex;\n }\n\n // The pre tags are nested inside a table, so we need to remove the\n // margin because it collapses below all the overflows\n pre {\n margin: 0;\n }\n\n // Disable user selection, so code can be easily copied without\n // accidentally also copying the line numbers\n .linenos {\n padding: px2rem(10.5px) px2em(16px, 13.6px);\n padding-right: 0;\n font-size: px2em(13.6px);\n background-color: var(--md-code-bg-color);\n user-select: none;\n }\n\n // Add spacing to line number container\n .linenodiv {\n padding-right: px2em(8px, 13.6px);\n box-shadow: inset px2rem(-1px) 0 var(--md-default-fg-color--lightest);\n\n // Reset spacings\n pre {\n color: var(--md-default-fg-color--lighter);\n text-align: right;\n }\n }\n\n // The table cell containing the code container wrapper and code should\n // stretch horizontally to the remaining space\n .code {\n flex: 1;\n overflow: hidden;\n }\n}\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // Block with line numbers\n .codehilitetable {\n margin: 1em 0;\n direction: ltr;\n border-radius: px2rem(2px);\n\n // Remove rounded borders\n code {\n border-radius: 0;\n }\n }\n\n // [mobile -]: Stretch to whole width\n @include break-to-device(mobile) {\n\n // Full-width container\n > .codehilite {\n margin: 1em px2rem(-16px);\n\n // Stretch highlighted lines\n .hll {\n margin: 0 px2rem(-16px);\n padding: 0 px2rem(16px);\n }\n\n // Remove rounded borders\n code {\n border-radius: 0;\n }\n }\n\n // Full-width container on top-level\n > .codehilitetable {\n margin: 1em px2rem(-16px);\n border-radius: 0;\n\n // Stretch highlighted lines\n .hll {\n margin: 0 px2rem(-16px);\n padding: 0 px2rem(16px);\n }\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Icon definitions\n:root {\n --md-footnotes-icon: svg-load(\"@mdi/svg/svg/keyboard-return.svg\");\n}\n\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // All footnote references\n [id^=\"fnref:\"] {\n display: inline-block;\n\n // Targeted anchor\n &:target {\n margin-top: -1 * px2rem(48px + 12px + 16px);\n padding-top: px2rem(48px + 12px + 16px);\n pointer-events: none;\n }\n }\n\n // All footnote back references\n [id^=\"fn:\"] {\n\n // Add spacing to anchor for offset\n &::before {\n display: none;\n height: 0;\n content: \"\";\n }\n\n // Targeted anchor\n &:target::before {\n display: block;\n margin-top: -1 * px2rem(48px + 12px + 10px);\n padding-top: px2rem(48px + 12px + 10px);\n pointer-events: none;\n }\n }\n\n // Footnotes extension\n .footnote {\n color: var(--md-default-fg-color--light);\n font-size: ms(-1);\n\n // Remove additional spacing on footnotes\n ol {\n margin-left: 0;\n }\n\n // Footnote\n li {\n transition: color 125ms;\n\n // Darken color for targeted footnote\n &:target {\n color: var(--md-default-fg-color);\n }\n\n // Remove spacing on first element\n :first-child {\n margin-top: 0;\n }\n\n // Make back references visible on container hover\n &:hover .footnote-backref,\n &:target .footnote-backref {\n transform: translateX(0);\n opacity: 1;\n }\n\n // Hovered back reference\n &:hover .footnote-backref:hover {\n color: var(--md-accent-fg-color);\n }\n }\n }\n\n // Footnote reference\n .footnote-ref {\n display: inline-block;\n pointer-events: initial;\n }\n\n // Footnote back reference\n .footnote-backref {\n display: inline-block;\n color: var(--md-primary-fg-color);\n // Hack: remove Unicode arrow for icon\n font-size: 0;\n vertical-align: text-bottom;\n transform: translateX(px2rem(5px));\n opacity: 0;\n transition:\n color 250ms,\n transform 250ms 250ms,\n opacity 125ms 250ms;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n transform: translateX(px2rem(-5px));\n }\n\n // Back reference icon\n &::before {\n display: inline-block;\n width: px2rem(16px);\n height: px2rem(16px);\n background-color: currentColor;\n mask-image: var(--md-footnotes-icon);\n content: \"\";\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n\n // Flip icon vertically\n svg {\n transform: scaleX(-1)\n }\n }\n }\n\n // Always show for print\n @media print {\n color: var(--md-primary-fg-color);\n transform: translateX(0);\n opacity: 1;\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // Permalinks extension\n .headerlink {\n display: inline-block;\n margin-left: px2rem(10px);\n // Hack: if we don't set visibility hidden, the text content of the node\n // will include the headerlink character, which is why Google indexes them.\n visibility: hidden;\n opacity: 0;\n transition:\n color 250ms,\n visibility 0ms 500ms,\n opacity 125ms;\n\n // Adjust for RTL languages\n [dir=\"rtl\"] & {\n margin-right: px2rem(10px);\n margin-left: initial;\n }\n\n // Higher specificity for color due to palettes integration\n html body & {\n color: var(--md-default-fg-color--lighter);\n }\n\n // Hide for print\n @media print {\n display: none;\n }\n }\n\n // Make permalink visible on hover\n :hover > .headerlink,\n :target > .headerlink,\n .headerlink:focus {\n visibility: visible;\n opacity: 1;\n transition:\n color 250ms,\n visibility 0ms,\n opacity 125ms;\n }\n\n // Active or targeted permalink\n :target > .headerlink,\n .headerlink:focus,\n .headerlink:hover {\n color: var(--md-accent-fg-color);\n }\n\n // Correct anchor offset for link blurring\n @each $level, $delta in (\n h1 h2 h3: 8px,\n h4: 9px,\n h5 h6: 12px,\n ) {\n %#{nth($level, 1)} {\n\n // Un-targeted anchor\n &::before {\n display: block;\n margin-top: -1 * px2rem($delta);\n padding-top: px2rem($delta);\n content: \"\";\n }\n\n // Targeted anchor (48px from header, 12px from sidebar offset)\n &:target::before {\n margin-top: -1 * px2rem(48px + 12px + $delta);\n padding-top: px2rem(48px + 12px + $delta);\n }\n }\n\n // Define levels\n @for $n from 1 through length($level) {\n #{nth($level, $n)}[id] {\n @extend %#{nth($level, 1)};\n }\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// stylelint-disable selector-class-pattern\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // MathJax integration - add padding to omit vertical scrollbar\n .MJXc-display {\n margin: 0.75em 0;\n padding: 0.75em 0;\n overflow: auto;\n touch-action: auto;\n }\n\n // Stretch top-level containers\n > p > .MJXc-display {\n\n // [mobile -]: Stretch to whole width\n @include break-to-device(mobile) {\n margin: 0.75em px2rem(-16px);\n padding: 0.25em px2rem(16px);\n }\n }\n\n // Remove outline on tab index\n .MathJax_CHTML {\n outline: 0;\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // Deletions, additions and comments\n del.critic,\n ins.critic,\n .critic.comment {\n padding: 0 px2em(4px, 16px);\n border-radius: px2rem(2px);\n box-decoration-break: clone;\n }\n\n // Deletion\n del.critic {\n background-color: $codehilite-diff-deleted;\n }\n\n // Addition\n ins.critic {\n background-color: $codehilite-diff-inserted;\n }\n\n // Comment\n .critic.comment {\n color: $codehilite-comment;\n\n // Comment opening mark\n &::before {\n content: \"/* \";\n }\n\n // Comment closing mark\n &::after {\n content: \" */\";\n }\n }\n\n // Block\n .critic.block {\n display: block;\n margin: 1em 0;\n padding-right: px2rem(16px);\n padding-left: px2rem(16px);\n overflow: auto;\n box-shadow: none;\n\n // Decrease spacing on first element\n :first-child {\n margin-top: 0.5em;\n }\n\n // Decrease spacing on last element\n :last-child {\n margin-bottom: 0.5em;\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Icon definitions\n:root {\n --md-details-icon: svg-load(\"@mdi/svg/svg/chevron-right.svg\");\n}\n\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // Details extension\n details {\n @extend .admonition;\n\n display: block;\n padding-top: 0;\n overflow: visible;\n\n\n // Rotate title icon\n &[open] > summary::after {\n transform: rotate(90deg);\n }\n\n // Remove bottom spacing for closed details\n &:not([open]) {\n padding-bottom: 0;\n\n // We cannot set overflow: hidden, as the outline would not be visible,\n // so we need to correct the border radius\n > summary {\n border-bottom-right-radius: px2rem(2px);\n }\n }\n\n // Hack: omit margin collapse\n &::after {\n display: table;\n content: \"\";\n }\n }\n\n // Details title\n summary {\n @extend .admonition-title;\n\n display: block;\n min-height: px2rem(20px);\n padding: px2rem(8px) px2rem(36px) px2rem(8px) px2rem(40px);\n border-top-right-radius: px2rem(2px);\n cursor: pointer;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding: px2rem(8px) px2rem(40px) px2rem(8px) px2rem(36px);\n }\n\n // Remove default details marker\n &::-webkit-details-marker {\n display: none;\n }\n\n // Details marker\n &::after {\n position: absolute;\n top: px2rem(8px);\n right: px2rem(8px);\n width: px2rem(20px);\n height: px2rem(20px);\n background-color: currentColor;\n mask-image: var(--md-details-icon);\n transform: rotate(0deg);\n transition: transform 250ms;\n content: \"\";\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: initial;\n left: px2rem(8px);\n transform: rotate(180deg);\n }\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // Emojis\n img.emojione,\n img.twemoji,\n img.gemoji {\n width: px2em(18px);\n vertical-align: -15%;\n }\n\n // Inlined SVG icons via mkdocs-material-extensions\n span.twemoji {\n display: inline-block;\n height: px2em(18px);\n vertical-align: text-top;\n\n // Icon\n svg {\n width: px2em(18px);\n fill: currentColor;\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// When pymdownx.superfences is enabled but codehilite is disabled,\n// pymdownx.highlight will be used. When this happens, the outer container\n// and tables get this class names by default\n.highlight {\n @extend .codehilite;\n\n // Inline line numbers\n [data-linenos]::before {\n position: sticky;\n left: px2em(-16px, 13.6px);\n float: left;\n margin-right: px2em(16px, 13.6px);\n margin-left: px2em(-16px, 13.6px);\n padding-left: px2em(16px, 13.6px);\n color: var(--md-default-fg-color--lighter);\n background-color: var(--md-code-bg-color);\n box-shadow: inset px2rem(-1px) 0 var(--md-default-fg-color--lightest);\n content: attr(data-linenos);\n user-select: none;\n }\n}\n\n// Same as above, but for code blocks with line numbers enabled\n.highlighttable {\n @extend .codehilitetable;\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // Tabbed block content\n .tabbed-content {\n display: none;\n order: 99;\n width: 100%;\n box-shadow: 0 px2rem(-1px) var(--md-default-fg-color--lightest);\n\n // Mirror old superfences behavior, if there's only a single code block.\n > .codehilite:only-child pre,\n > .codehilitetable:only-child,\n > .highlight:only-child pre,\n > .highlighttable:only-child {\n margin: 0;\n\n // Remove rounded borders at the top\n > code {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n }\n\n // Nested tabs\n > .tabbed-set {\n margin: 0;\n }\n }\n\n // Tabbed block container\n .tabbed-set {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n margin: 1em 0;\n border-radius: px2rem(2px);\n\n // Hide radio buttons\n > input {\n display: none;\n\n // Active tab label\n &:checked + label {\n color: var(--md-accent-fg-color);\n border-color: var(--md-accent-fg-color);\n\n // Show tabbed block content\n & + .tabbed-content {\n display: block;\n }\n }\n }\n\n // Tab label\n > label {\n z-index: 1;\n width: auto;\n padding: px2rem(12px) 1.25em px2rem(10px);\n color: var(--md-default-fg-color--light);\n font-weight: 700;\n font-size: ms(-1);\n border-bottom: px2rem(2px) solid transparent;\n cursor: pointer;\n transition: color 125ms;\n\n // Hovered tab label\n html &:hover {\n color: var(--md-accent-fg-color);\n }\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Icon definitions\n:root {\n --md-tasklist-icon: svg-load(\"@mdi/svg/svg/checkbox-blank-circle.svg\");\n --md-tasklist-icon--checked: svg-load(\"@mdi/svg/svg/check-circle.svg\");\n}\n\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // Remove list icon on task items\n .task-list-item {\n position: relative;\n list-style-type: none;\n\n // Make checkbox items align with normal list items, but position\n // everything in ems for correct layout at smaller font sizes\n [type=\"checkbox\"] {\n position: absolute;\n top: 0.45em;\n left: -2em;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: -2em;\n left: initial;\n }\n }\n }\n\n // Wrapper for list controls, in case custom checkboxes are enabled\n .task-list-control {\n\n // Checkbox icon in unchecked state\n .task-list-indicator::before {\n position: absolute;\n top: 0.15em;\n left: px2em(-24px);\n width: px2em(20px);\n height: px2em(20px);\n background-color: var(--md-default-fg-color--lightest);\n mask-image: var(--md-tasklist-icon);\n content: \"\";\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: px2em(-24px);\n left: initial;\n }\n }\n\n // Checkbox icon in checked state\n [type=\"checkbox\"]:checked + .task-list-indicator::before {\n background-color: $clr-green-a400;\n mask-image: var(--md-tasklist-icon--checked);\n }\n\n // Hide original checkbox behind icon\n [type=\"checkbox\"] {\n z-index: -1;\n opacity: 0;\n }\n }\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/doc/theme/material/assets/stylesheets/main.css b/doc/theme/material/assets/stylesheets/main.css new file mode 100644 index 00000000..e3330aeb --- /dev/null +++ b/doc/theme/material/assets/stylesheets/main.css @@ -0,0 +1,3076 @@ +@charset "UTF-8"; +html { + box-sizing: border-box; +} + +*, +*::before, +*::after { + box-sizing: inherit; +} + +html { + -webkit-text-size-adjust: none; + -moz-text-size-adjust: none; + -ms-text-size-adjust: none; + text-size-adjust: none; +} + +body { + margin: 0; +} + +hr { + box-sizing: content-box; + overflow: visible; +} + +a, +button, +label, +input { + -webkit-tap-highlight-color: transparent; +} + +a { + color: inherit; + text-decoration: none; +} + +small { + font-size: 80%; +} + +sub, +sup { + position: relative; + font-size: 80%; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +img { + border-style: none; +} + +table { + border-collapse: separate; + border-spacing: 0; +} + +td, +th { + font-weight: normal; + vertical-align: top; +} + +button { + margin: 0; + padding: 0; + font-size: inherit; + background: transparent; + border: 0; +} + +input { + border: 0; + outline: 0; +} + +:root { + --md-default-fg-color: hsla(0, 0%, 0%, 0.87); + --md-default-fg-color--light: hsla(0, 0%, 0%, 0.54); + --md-default-fg-color--lighter: hsla(0, 0%, 0%, 0.26); + --md-default-fg-color--lightest: hsla(0, 0%, 0%, 0.07); + --md-default-bg-color: hsla(0, 0%, 100%, 1); + --md-default-bg-color--light: hsla(0, 0%, 100%, 0.7); + --md-default-bg-color--lighter: hsla(0, 0%, 100%, 0.3); + --md-default-bg-color--lightest: hsla(0, 0%, 100%, 0.12); + --md-primary-fg-color: hsla(231deg, 48%, 48%, 1); + --md-primary-fg-color--light: hsla(230deg, 44%, 64%, 1); + --md-primary-fg-color--dark: hsla(232deg, 54%, 41%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); + --md-accent-fg-color: hsla(231deg, 99%, 66%, 1); + --md-accent-fg-color--transparent: hsla(231deg, 99%, 66%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); + --md-code-bg-color: hsla(0, 0%, 96%, 1); + --md-code-fg-color: hsla(200, 18%, 26%, 1); +} + +.md-icon svg { + display: block; + width: 1.2rem; + height: 1.2rem; + margin: 0 auto; + fill: currentColor; +} + +body { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +body, +input { + color: var(--md-default-fg-color); + font-feature-settings: "kern", "liga"; + font-family: -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; +} + +code, +pre, +kbd { + color: var(--md-default-fg-color); + font-feature-settings: "kern"; + font-family: SFMono-Regular, Consolas, Menlo, monospace; +} + +.md-typeset { + font-size: 0.8rem; + line-height: 1.6; + -webkit-print-color-adjust: exact; + color-adjust: exact; +} +.md-typeset p, +.md-typeset ul, +.md-typeset ol, +.md-typeset blockquote { + margin: 1em 0; +} +.md-typeset h1 { + margin: 0 0 2rem; + color: var(--md-default-fg-color--light); + font-weight: 300; + font-size: 1.5625rem; + line-height: 1.3; + letter-spacing: -0.01em; +} +.md-typeset h2 { + margin: 2rem 0 0.8rem; + font-weight: 300; + font-size: 1.25rem; + line-height: 1.4; + letter-spacing: -0.01em; +} +.md-typeset h3 { + margin: 1.6rem 0 0.8rem; + font-weight: 400; + font-size: 1rem; + line-height: 1.5; + letter-spacing: -0.01em; +} +.md-typeset h2 + h3 { + margin-top: 0.8rem; +} +.md-typeset h4 { + margin: 0.8rem 0; + font-weight: 700; + font-size: 0.8rem; + letter-spacing: -0.01em; +} +.md-typeset h5, +.md-typeset h6 { + margin: 0.8rem 0; + color: var(--md-default-fg-color--light); + font-weight: 700; + font-size: 0.64rem; + letter-spacing: -0.01em; +} +.md-typeset h5 { + text-transform: uppercase; +} +.md-typeset hr { + margin: 1.5em 0; + border-bottom: 0.05rem dotted var(--md-default-fg-color--lighter); +} +.md-typeset a { + color: var(--md-primary-fg-color); + word-break: break-word; +} +.md-typeset a, .md-typeset a::before { + transition: color 125ms; +} +.md-typeset a:focus, .md-typeset a:hover { + color: var(--md-accent-fg-color); +} +.md-typeset code, +.md-typeset pre, +.md-typeset kbd { + color: var(--md-code-fg-color); + direction: ltr; +} +@media print { + .md-typeset code, +.md-typeset pre, +.md-typeset kbd { + white-space: pre-wrap; + } +} +.md-typeset code { + padding: 0 0.2941176471em; + font-size: 0.85em; + word-break: break-word; + background-color: var(--md-code-bg-color); + border-radius: 0.1rem; + -webkit-box-decoration-break: clone; + box-decoration-break: clone; +} +.md-typeset h1 code, +.md-typeset h2 code, +.md-typeset h3 code, +.md-typeset h4 code, +.md-typeset h5 code, +.md-typeset h6 code { + margin: initial; + padding: initial; + background-color: transparent; + box-shadow: none; +} +.md-typeset a > code { + color: currentColor; +} +.md-typeset pre { + position: relative; + margin: 1em 0; + line-height: 1.4; +} +.md-typeset pre > code { + display: block; + margin: 0; + padding: 0.525rem 1.1764705882em; + overflow: auto; + word-break: normal; + box-shadow: none; + -webkit-box-decoration-break: slice; + box-decoration-break: slice; + touch-action: auto; +} +.md-typeset pre > code::-webkit-scrollbar { + width: 0.2rem; + height: 0.2rem; +} +.md-typeset pre > code::-webkit-scrollbar-thumb { + background-color: var(--md-default-fg-color--lighter); +} +.md-typeset pre > code::-webkit-scrollbar-thumb:hover { + background-color: var(--md-accent-fg-color); +} +@media screen and (max-width: 44.9375em) { + .md-typeset > pre { + margin: 1em -0.8rem; + } + .md-typeset > pre code { + border-radius: 0; + } +} +.md-typeset kbd { + display: inline-block; + padding: 0 0.6666666667em; + font-size: 0.75em; + line-height: 1.5; + vertical-align: text-top; + word-break: break-word; + border-radius: 0.1rem; + box-shadow: 0 0.1rem 0 0.05rem var(--md-default-fg-color--lighter), 0 0.1rem 0 var(--md-default-fg-color--lighter), inset 0 -0.1rem 0.2rem var(--md-default-bg-color); +} +.md-typeset mark { + padding: 0 0.25em; + word-break: break-word; + background-color: rgba(255, 235, 59, 0.5); + border-radius: 0.1rem; + -webkit-box-decoration-break: clone; + box-decoration-break: clone; +} +.md-typeset abbr { + text-decoration: none; + border-bottom: 0.05rem dotted var(--md-default-fg-color--light); + cursor: help; +} +.md-typeset small { + opacity: 0.75; +} +.md-typeset sup, +.md-typeset sub { + margin-left: 0.078125em; +} +[dir=rtl] .md-typeset sup, +[dir=rtl] .md-typeset sub { + margin-right: 0.078125em; + margin-left: initial; +} +.md-typeset blockquote { + padding-left: 0.6rem; + color: var(--md-default-fg-color--light); + border-left: 0.2rem solid var(--md-default-fg-color--lighter); +} +[dir=rtl] .md-typeset blockquote { + padding-right: 0.6rem; + padding-left: initial; + border-right: 0.2rem solid var(--md-default-fg-color--lighter); + border-left: initial; +} +.md-typeset ul { + list-style-type: disc; +} +.md-typeset ul, +.md-typeset ol { + margin-left: 0.625em; + padding: 0; +} +[dir=rtl] .md-typeset ul, +[dir=rtl] .md-typeset ol { + margin-right: 0.625em; + margin-left: initial; +} +.md-typeset ul ol, +.md-typeset ol ol { + list-style-type: lower-alpha; +} +.md-typeset ul ol ol, +.md-typeset ol ol ol { + list-style-type: lower-roman; +} +.md-typeset ul li, +.md-typeset ol li { + margin-bottom: 0.5em; + margin-left: 1.25em; +} +[dir=rtl] .md-typeset ul li, +[dir=rtl] .md-typeset ol li { + margin-right: 1.25em; + margin-left: initial; +} +.md-typeset ul li p, +.md-typeset ul li blockquote, +.md-typeset ol li p, +.md-typeset ol li blockquote { + margin: 0.5em 0; +} +.md-typeset ul li:last-child, +.md-typeset ol li:last-child { + margin-bottom: 0; +} +.md-typeset ul li ul, +.md-typeset ul li ol, +.md-typeset ol li ul, +.md-typeset ol li ol { + margin: 0.5em 0 0.5em 0.625em; +} +[dir=rtl] .md-typeset ul li ul, +[dir=rtl] .md-typeset ul li ol, +[dir=rtl] .md-typeset ol li ul, +[dir=rtl] .md-typeset ol li ol { + margin-right: 0.625em; + margin-left: initial; +} +.md-typeset dd { + margin: 1em 0 1em 1.875em; +} +[dir=rtl] .md-typeset dd { + margin-right: 1.875em; + margin-left: initial; +} +.md-typeset iframe, +.md-typeset img, +.md-typeset svg { + max-width: 100%; + height: auto; +} +.md-typeset table:not([class]) { + display: inline-block; + max-width: 100%; + overflow: auto; + font-size: 0.64rem; + background: var(--md-default-bg-color); + border-radius: 0.1rem; + box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.05rem rgba(0, 0, 0, 0.1); + touch-action: auto; +} +.md-typeset table:not([class]) + * { + margin-top: 1.5em; +} +.md-typeset table:not([class]) th:not([align]), +.md-typeset table:not([class]) td:not([align]) { + text-align: left; +} +[dir=rtl] .md-typeset table:not([class]) th:not([align]), +[dir=rtl] .md-typeset table:not([class]) td:not([align]) { + text-align: right; +} +.md-typeset table:not([class]) th { + min-width: 5rem; + padding: 0.6rem 0.8rem; + color: var(--md-default-bg-color); + vertical-align: top; + background-color: var(--md-default-fg-color--light); +} +.md-typeset table:not([class]) td { + padding: 0.6rem 0.8rem; + vertical-align: top; + border-top: 0.05rem solid var(--md-default-fg-color--lightest); +} +.md-typeset table:not([class]) tr { + transition: background-color 125ms; +} +.md-typeset table:not([class]) tr:hover { + background-color: rgba(0, 0, 0, 0.035); + box-shadow: 0 0.05rem 0 var(--md-default-bg-color) inset; +} +.md-typeset table:not([class]) tr:first-child td { + border-top: 0; +} +.md-typeset table:not([class]) a { + word-break: normal; +} +.md-typeset__scrollwrap { + margin: 1em -0.8rem; + overflow-x: auto; + touch-action: auto; +} +.md-typeset__table { + display: inline-block; + margin-bottom: 0.5em; + padding: 0 0.8rem; +} +.md-typeset__table table { + display: table; + width: 100%; + margin: 0; + overflow: hidden; +} + +html { + height: 100%; + overflow-x: hidden; + font-size: 125%; + background-color: var(--md-default-bg-color); +} +@media screen and (min-width: 100em) { + html { + font-size: 137.5%; + } +} +@media screen and (min-width: 125em) { + html { + font-size: 150%; + } +} + +body { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + min-height: 100%; + font-size: 0.5rem; +} +@media screen and (max-width: 59.9375em) { + body[data-md-state=lock] { + position: fixed; + } +} +@media print { + body { + display: block; + } +} + +hr { + display: block; + height: 0.05rem; + padding: 0; + border: 0; +} + +.md-grid { + max-width: 61rem; + margin-right: auto; + margin-left: auto; +} + +.md-container { + display: flex; + flex-direction: column; + flex-grow: 1; +} +@media print { + .md-container { + display: block; + } +} + +.md-main { + flex-grow: 1; +} +.md-main__inner { + display: flex; + height: 100%; + margin-top: 1.5rem; +} + +.md-ellipsis { + display: block; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.md-toggle { + display: none; +} + +.md-overlay { + position: fixed; + top: 0; + z-index: 3; + width: 0; + height: 0; + background-color: var(--md-default-fg-color--light); + opacity: 0; + transition: width 0ms 250ms, height 0ms 250ms, opacity 250ms; +} +@media screen and (max-width: 76.1875em) { + [data-md-toggle=drawer]:checked ~ .md-overlay { + width: 100%; + height: 100%; + opacity: 1; + transition: width 0ms, height 0ms, opacity 250ms; + } +} + +.md-skip { + position: fixed; + z-index: -1; + margin: 0.5rem; + padding: 0.3rem 0.5rem; + color: var(--md-default-bg-color); + font-size: 0.64rem; + background-color: var(--md-default-fg-color); + border-radius: 0.1rem; + transform: translateY(0.4rem); + opacity: 0; +} +.md-skip:focus { + z-index: 10; + transform: translateY(0); + opacity: 1; + transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1), opacity 175ms 75ms; +} + +@page { + margin: 25mm; +} +.md-announce { + overflow: auto; + background-color: var(--md-default-fg-color); +} +.md-announce__inner { + margin: 0.6rem auto; + padding: 0 0.8rem; + color: var(--md-default-bg-color); + font-size: 0.7rem; +} +@media print { + .md-announce { + display: none; + } +} + +.md-typeset .md-button { + display: inline-block; + padding: 0.625em 2em; + color: var(--md-primary-fg-color); + font-weight: 700; + border: 0.1rem solid currentColor; + border-radius: 0.1rem; + transition: color 125ms, background-color 125ms, border-color 125ms; +} +.md-typeset .md-button--primary { + color: var(--md-primary-bg-color); + background-color: var(--md-primary-fg-color); + border-color: var(--md-primary-fg-color); +} +.md-typeset .md-button:focus, .md-typeset .md-button:hover { + color: var(--md-accent-bg-color); + background-color: var(--md-accent-fg-color); + border-color: var(--md-accent-fg-color); +} + +.md-clipboard { + position: absolute; + top: 0.4rem; + right: 0.5em; + z-index: 1; + width: 1.5em; + height: 1.5em; + color: var(--md-default-fg-color--lightest); + border-radius: 0.1rem; + cursor: pointer; + transition: color 125ms; +} +@media print { + .md-clipboard { + display: none; + } +} +.md-clipboard svg { + width: 1.125em; + height: 1.125em; +} +pre:hover .md-clipboard { + color: var(--md-default-fg-color--light); +} +pre .md-clipboard:focus, pre .md-clipboard:hover { + color: var(--md-accent-fg-color); +} + +.md-content { + flex: 1; + max-width: 100%; +} +@media screen and (min-width: 60em) and (max-width: 76.1875em) { + .md-content { + max-width: calc(100% - 12.1rem); + } +} +@media screen and (min-width: 76.25em) { + .md-content { + max-width: calc(100% - 12.1rem * 2); + } +} +.md-content__inner { + margin: 0 0.8rem 1.2rem; + padding-top: 0.6rem; +} +@media screen and (min-width: 76.25em) { + .md-content__inner { + margin-right: 1.2rem; + margin-left: 1.2rem; + } +} +.md-content__inner::before { + display: block; + height: 0.4rem; + content: ""; +} +.md-content__inner > :last-child { + margin-bottom: 0; +} +.md-content__button { + float: right; + margin: 0.4rem 0; + margin-left: 0.4rem; + padding: 0; +} +[dir=rtl] .md-content__button { + float: left; + margin-right: 0.4rem; + margin-left: initial; +} +[dir=rtl] .md-content__button svg { + transform: scaleX(-1); +} +.md-typeset .md-content__button { + color: var(--md-default-fg-color--lighter); +} +.md-content__button svg { + display: inline; + vertical-align: top; +} +@media print { + .md-content__button { + display: none; + } +} + +.md-dialog { + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); + position: fixed; + right: 0.8rem; + bottom: 0.8rem; + left: initial; + z-index: 2; + display: block; + min-width: 11.1rem; + padding: 0.4rem 0.6rem; + color: var(--md-default-bg-color); + font-size: 0.7rem; + background: var(--md-default-fg-color); + border: none; + border-radius: 0.1rem; + transform: translateY(100%); + opacity: 0; + transition: transform 0ms 400ms, opacity 400ms; +} +[dir=rtl] .md-dialog { + right: initial; + left: 0.8rem; +} +.md-dialog[data-md-state=open] { + transform: translateY(0); + opacity: 1; + transition: transform 400ms cubic-bezier(0.075, 0.85, 0.175, 1), opacity 400ms; +} +@media print { + .md-dialog { + display: none; + } +} + +.md-header { + position: -webkit-sticky; + position: sticky; + top: 0; + right: 0; + left: 0; + z-index: 2; + height: 2.4rem; + color: var(--md-primary-bg-color); + background-color: var(--md-primary-fg-color); + box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0), 0 0.2rem 0.4rem rgba(0, 0, 0, 0); + transition: color 250ms, background-color 250ms; +} +.no-js .md-header { + box-shadow: none; + transition: none; +} +.md-header[data-md-state=shadow] { + box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.1), 0 0.2rem 0.4rem rgba(0, 0, 0, 0.2); + transition: color 250ms, background-color 250ms, box-shadow 250ms; +} +@media print { + .md-header { + display: none; + } +} + +.md-header-nav { + display: flex; + padding: 0 0.2rem; +} +.md-header-nav__button { + position: relative; + z-index: 1; + margin: 0.2rem; + padding: 0.4rem; + cursor: pointer; + transition: opacity 250ms; +} +[dir=rtl] .md-header-nav__button svg { + transform: scaleX(-1); +} +.md-header-nav__button:focus, .md-header-nav__button:hover { + opacity: 0.7; +} +.md-header-nav__button.md-logo { + margin: 0.2rem; + padding: 0.4rem; +} +.md-header-nav__button.md-logo img, +.md-header-nav__button.md-logo svg { + display: block; + width: 1.2rem; + height: 1.2rem; + fill: currentColor; +} +.no-js .md-header-nav__button[for=__search] { + display: none; +} +@media screen and (min-width: 60em) { + .md-header-nav__button[for=__search] { + display: none; + } +} +@media screen and (max-width: 76.1875em) { + .md-header-nav__button.md-logo { + display: none; + } +} +@media screen and (min-width: 76.25em) { + .md-header-nav__button[for=__drawer] { + display: none; + } +} +.md-header-nav__topic { + position: absolute; + width: 100%; + transition: transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1), opacity 150ms; +} +.md-header-nav__topic + .md-header-nav__topic { + z-index: -1; + transform: translateX(1.25rem); + opacity: 0; + transition: transform 400ms cubic-bezier(1, 0.7, 0.1, 0.1), opacity 150ms; + pointer-events: none; +} +[dir=rtl] .md-header-nav__topic + .md-header-nav__topic { + transform: translateX(-1.25rem); +} +.no-js .md-header-nav__topic { + position: initial; +} +.no-js .md-header-nav__topic + .md-header-nav__topic { + display: none; +} +.md-header-nav__title { + flex-grow: 1; + padding: 0 1rem; + font-size: 0.9rem; + line-height: 2.4rem; +} +.md-header-nav__title[data-md-state=active] .md-header-nav__topic { + z-index: -1; + transform: translateX(-1.25rem); + opacity: 0; + transition: transform 400ms cubic-bezier(1, 0.7, 0.1, 0.1), opacity 150ms; + pointer-events: none; +} +[dir=rtl] .md-header-nav__title[data-md-state=active] .md-header-nav__topic { + transform: translateX(1.25rem); +} +.md-header-nav__title[data-md-state=active] .md-header-nav__topic + .md-header-nav__topic { + z-index: 0; + transform: translateX(0); + opacity: 1; + transition: transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1), opacity 150ms; + pointer-events: initial; +} +.md-header-nav__title > .md-header-nav__ellipsis { + position: relative; + width: 100%; + height: 100%; +} +.md-header-nav__source { + display: none; +} +@media screen and (min-width: 60em) { + .md-header-nav__source { + display: block; + width: 11.7rem; + max-width: 11.7rem; + margin-left: 1rem; + } + [dir=rtl] .md-header-nav__source { + margin-right: 1rem; + margin-left: initial; + } +} +@media screen and (min-width: 76.25em) { + .md-header-nav__source { + margin-left: 1.4rem; + } + [dir=rtl] .md-header-nav__source { + margin-right: 1.4rem; + } +} + +.md-hero { + overflow: hidden; + color: var(--md-primary-bg-color); + font-size: 1rem; + background-color: var(--md-primary-fg-color); + transition: background 250ms; +} +.md-hero__inner { + margin-top: 1rem; + padding: 0.8rem 0.8rem 0.4rem; + transition: transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1), opacity 250ms; + transition-delay: 100ms; +} +@media screen and (max-width: 76.1875em) { + .md-hero__inner { + margin-top: 2.4rem; + margin-bottom: 1.2rem; + } +} +[data-md-state=hidden] .md-hero__inner { + transform: translateY(0.625rem); + opacity: 0; + transition: transform 0ms 400ms, opacity 100ms 0ms; + pointer-events: none; +} +.md-hero--expand .md-hero__inner { + margin-bottom: 1.2rem; +} + +.md-footer { + color: var(--md-default-bg-color); + background-color: var(--md-default-fg-color); +} +@media print { + .md-footer { + display: none; + } +} + +.md-footer-nav__inner { + padding: 0.2rem; + overflow: auto; +} +.md-footer-nav__link { + display: flex; + padding-top: 1.4rem; + padding-bottom: 0.4rem; + transition: opacity 250ms; +} +@media screen and (min-width: 45em) { + .md-footer-nav__link { + width: 50%; + } +} +.md-footer-nav__link:focus, .md-footer-nav__link:hover { + opacity: 0.7; +} +.md-footer-nav__link--prev { + float: left; + width: 25%; +} +[dir=rtl] .md-footer-nav__link--prev { + float: right; +} +[dir=rtl] .md-footer-nav__link--prev svg { + transform: scaleX(-1); +} +@media screen and (max-width: 44.9375em) { + .md-footer-nav__link--prev .md-footer-nav__title { + display: none; + } +} +.md-footer-nav__link--next { + float: right; + width: 75%; + text-align: right; +} +[dir=rtl] .md-footer-nav__link--next { + float: left; + text-align: left; +} +[dir=rtl] .md-footer-nav__link--next svg { + transform: scaleX(-1); +} +.md-footer-nav__title { + position: relative; + flex-grow: 1; + max-width: calc(100% - 2.4rem); + padding: 0 1rem; + font-size: 0.9rem; + line-height: 2.4rem; +} +.md-footer-nav__button { + margin: 0.2rem; + padding: 0.4rem; +} +.md-footer-nav__direction { + position: absolute; + right: 0; + left: 0; + margin-top: -1rem; + padding: 0 1rem; + color: var(--md-default-bg-color--light); + font-size: 0.64rem; +} + +.md-footer-meta { + background-color: var(--md-default-fg-color--lighter); +} +.md-footer-meta__inner { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + padding: 0.2rem; +} +html .md-footer-meta.md-typeset a { + color: var(--md-default-bg-color--light); +} +html .md-footer-meta.md-typeset a:focus, html .md-footer-meta.md-typeset a:hover { + color: var(--md-default-bg-color); +} + +.md-footer-copyright { + width: 100%; + margin: auto 0.6rem; + padding: 0.4rem 0; + color: var(--md-default-bg-color--lighter); + font-size: 0.64rem; +} +@media screen and (min-width: 45em) { + .md-footer-copyright { + width: auto; + } +} +.md-footer-copyright__highlight { + color: var(--md-default-bg-color--light); +} + +.md-footer-social { + margin: 0 0.4rem; + padding: 0.2rem 0 0.6rem; +} +@media screen and (min-width: 45em) { + .md-footer-social { + padding: 0.6rem 0; + } +} +.md-footer-social__link { + display: inline-block; + width: 1.6rem; + height: 1.6rem; + text-align: center; +} +.md-footer-social__link::before { + line-height: 1.9; +} +.md-footer-social__link svg { + max-height: 0.8rem; + vertical-align: -25%; + fill: currentColor; +} + +.md-nav { + font-size: 0.7rem; + line-height: 1.3; +} +.md-nav__title { + display: block; + padding: 0 0.6rem; + overflow: hidden; + font-weight: 700; + text-overflow: ellipsis; +} +.md-nav__title .md-nav__button { + display: none; +} +.md-nav__title .md-nav__button img { + width: 100%; + height: auto; +} +.md-nav__title .md-nav__button.md-logo img, +.md-nav__title .md-nav__button.md-logo svg { + display: block; + width: 2.4rem; + height: 2.4rem; +} +.md-nav__title .md-nav__button.md-logo svg { + fill: currentColor; +} +.md-nav__list { + margin: 0; + padding: 0; + list-style: none; +} +.md-nav__item { + padding: 0 0.6rem; +} +.md-nav__item:last-child { + padding-bottom: 0.6rem; +} +.md-nav__item .md-nav__item { + padding-right: 0; +} +[dir=rtl] .md-nav__item .md-nav__item { + padding-right: 0.6rem; + padding-left: 0; +} +.md-nav__item .md-nav__item:last-child { + padding-bottom: 0; +} +.md-nav__link { + display: block; + margin-top: 0.625em; + overflow: hidden; + text-overflow: ellipsis; + cursor: pointer; + transition: color 125ms; + scroll-snap-align: start; +} +html .md-nav__link[for=__toc] { + display: none; +} +html .md-nav__link[for=__toc] ~ .md-nav { + display: none; +} +.md-nav__link[data-md-state=blur] { + color: var(--md-default-fg-color--light); +} +.md-nav__item .md-nav__link--active { + color: var(--md-primary-fg-color); +} +.md-nav__item--nested > .md-nav__link { + color: inherit; +} +.md-nav__link:focus, .md-nav__link:hover { + color: var(--md-accent-fg-color); +} +.md-nav__source { + display: none; +} +@media screen and (max-width: 76.1875em) { + .md-nav { + background-color: var(--md-default-bg-color); + } + .md-nav--primary, .md-nav--primary .md-nav { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 1; + display: flex; + flex-direction: column; + height: 100%; + } + .md-nav--primary .md-nav__title, +.md-nav--primary .md-nav__item { + font-size: 0.8rem; + line-height: 1.5; + } + .md-nav--primary .md-nav__title { + position: relative; + height: 5.6rem; + padding: 3rem 0.8rem 0.2rem; + color: var(--md-default-fg-color--light); + font-weight: 400; + line-height: 2.4rem; + white-space: nowrap; + background-color: var(--md-default-fg-color--lightest); + cursor: pointer; + } + .md-nav--primary .md-nav__title .md-nav__icon { + position: absolute; + top: 0.4rem; + left: 0.4rem; + display: block; + width: 1.2rem; + height: 1.2rem; + margin: 0.2rem; + } + [dir=rtl] .md-nav--primary .md-nav__title .md-nav__icon { + right: 0.4rem; + left: initial; + } + .md-nav--primary .md-nav__title ~ .md-nav__list { + overflow-y: auto; + background-color: var(--md-default-bg-color); + box-shadow: inset 0 0.05rem 0 var(--md-default-fg-color--lightest); + -webkit-scroll-snap-type: y mandatory; + -ms-scroll-snap-type: y mandatory; + scroll-snap-type: y mandatory; + touch-action: pan-y; + } + .md-nav--primary .md-nav__title ~ .md-nav__list > .md-nav__item:first-child { + border-top: 0; + } + .md-nav--primary .md-nav__title[for=__drawer] { + position: relative; + color: var(--md-primary-bg-color); + background-color: var(--md-primary-fg-color); + } + .md-nav--primary .md-nav__title[for=__drawer] .md-nav__button { + position: absolute; + top: 0.2rem; + left: 0.2rem; + display: block; + margin: 0.2rem; + padding: 0.4rem; + font-size: 2.4rem; + } + html [dir=rtl] .md-nav--primary .md-nav__title[for=__drawer] .md-nav__button { + right: 0.2rem; + left: initial; + } + .md-nav--primary .md-nav__list { + flex: 1; + } + .md-nav--primary .md-nav__item { + padding: 0; + border-top: 0.05rem solid var(--md-default-fg-color--lightest); + } + [dir=rtl] .md-nav--primary .md-nav__item { + padding: 0; + } + .md-nav--primary .md-nav__item--nested > .md-nav__link { + padding-right: 2.4rem; + } + [dir=rtl] .md-nav--primary .md-nav__item--nested > .md-nav__link { + padding-right: 0.8rem; + padding-left: 2.4rem; + } + .md-nav--primary .md-nav__item--active > .md-nav__link { + color: var(--md-primary-fg-color); + } + .md-nav--primary .md-nav__item--active > .md-nav__link:focus, .md-nav--primary .md-nav__item--active > .md-nav__link:hover { + color: var(--md-accent-fg-color); + } + .md-nav--primary .md-nav__link { + position: relative; + margin-top: 0; + padding: 0.6rem 0.8rem; + } + .md-nav--primary .md-nav__link .md-nav__icon { + position: absolute; + top: 50%; + right: 0.6rem; + margin-top: -0.6rem; + color: inherit; + font-size: 1.2rem; + } + [dir=rtl] .md-nav--primary .md-nav__link .md-nav__icon { + right: initial; + left: 0.6rem; + } + [dir=rtl] .md-nav--primary .md-nav__icon svg { + transform: scale(-1); + } + .md-nav--primary .md-nav--secondary .md-nav__link { + position: static; + } + .md-nav--primary .md-nav--secondary .md-nav { + position: static; + background-color: transparent; + } + .md-nav--primary .md-nav--secondary .md-nav .md-nav__link { + padding-left: 1.4rem; + } + [dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link { + padding-right: 1.4rem; + padding-left: initial; + } + .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link { + padding-left: 2rem; + } + [dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link { + padding-right: 2rem; + padding-left: initial; + } + .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link { + padding-left: 2.6rem; + } + [dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link { + padding-right: 2.6rem; + padding-left: initial; + } + .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link { + padding-left: 3.2rem; + } + [dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link { + padding-right: 3.2rem; + padding-left: initial; + } + .md-nav__toggle ~ .md-nav { + display: flex; + transform: translateX(100%); + opacity: 0; + transition: transform 250ms cubic-bezier(0.8, 0, 0.6, 1), opacity 125ms 50ms; + } + [dir=rtl] .md-nav__toggle ~ .md-nav { + transform: translateX(-100%); + } + .md-nav__toggle:checked ~ .md-nav { + transform: translateX(0); + opacity: 1; + transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1), opacity 125ms 125ms; + } + .md-nav__toggle:checked ~ .md-nav > .md-nav__list { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + } +} +@media screen and (max-width: 59.9375em) { + html .md-nav__link[for=__toc] { + display: block; + padding-right: 2.4rem; + } + html .md-nav__link[for=__toc] + .md-nav__link { + display: none; + } + html .md-nav__link[for=__toc] ~ .md-nav { + display: flex; + } + html [dir=rtl] .md-nav__link { + padding-right: 0.8rem; + padding-left: 2.4rem; + } + .md-nav__source { + display: block; + padding: 0 0.2rem; + color: var(--md-primary-bg-color); + background-color: var(--md-primary-fg-color--dark); + } +} +@media screen and (min-width: 60em) { + .md-nav--secondary .md-nav__title[for=__toc] { + scroll-snap-align: start; + } + .md-nav--secondary .md-nav__title .md-nav__icon { + display: none; + } +} +@media screen and (min-width: 76.25em) { + .md-nav { + transition: max-height 250ms cubic-bezier(0.86, 0, 0.07, 1); + } + .md-nav--primary .md-nav__title[for=__drawer] { + scroll-snap-align: start; + } + .md-nav--primary .md-nav__title .md-nav__icon { + display: none; + } + .md-nav__toggle ~ .md-nav { + display: none; + } + .md-nav__toggle:checked ~ .md-nav { + display: block; + } + .md-nav__item--nested > .md-nav > .md-nav__title { + display: none; + } + .md-nav__icon { + float: right; + height: 0.9rem; + transition: transform 250ms; + } + [dir=rtl] .md-nav__icon { + float: left; + transform: rotate(180deg); + } + .md-nav__icon svg { + display: inline-block; + width: 0.9rem; + height: 0.9rem; + vertical-align: -0.1rem; + } + .md-nav__item--nested .md-nav__toggle:checked ~ .md-nav__link .md-nav__icon { + transform: rotate(90deg); + } +} + +.md-search { + position: relative; +} +.no-js .md-search { + display: none; +} +@media screen and (min-width: 60em) { + .md-search { + padding: 0.2rem 0; + } +} +.md-search__overlay { + z-index: 1; + opacity: 0; +} +@media screen and (max-width: 59.9375em) { + .md-search__overlay { + position: absolute; + top: 0.2rem; + left: -2.2rem; + width: 2rem; + height: 2rem; + overflow: hidden; + background-color: var(--md-default-bg-color); + border-radius: 1rem; + transform-origin: center; + transition: transform 300ms 100ms, opacity 200ms 200ms; + pointer-events: none; + } + [dir=rtl] .md-search__overlay { + right: -2.2rem; + left: initial; + } + [data-md-toggle=search]:checked ~ .md-header .md-search__overlay { + opacity: 1; + transition: transform 400ms, opacity 100ms; + } +} +@media screen and (max-width: 29.9375em) { + [data-md-toggle=search]:checked ~ .md-header .md-search__overlay { + transform: scale(45); + } +} +@media screen and (min-width: 30em) and (max-width: 44.9375em) { + [data-md-toggle=search]:checked ~ .md-header .md-search__overlay { + transform: scale(60); + } +} +@media screen and (min-width: 45em) and (max-width: 59.9375em) { + [data-md-toggle=search]:checked ~ .md-header .md-search__overlay { + transform: scale(75); + } +} +@media screen and (min-width: 60em) { + .md-search__overlay { + position: fixed; + top: 0; + left: 0; + width: 0; + height: 0; + background-color: var(--md-default-fg-color--light); + cursor: pointer; + transition: width 0ms 250ms, height 0ms 250ms, opacity 250ms; + } + [dir=rtl] .md-search__overlay { + right: 0; + left: initial; + } + [data-md-toggle=search]:checked ~ .md-header .md-search__overlay { + width: 100%; + height: 100%; + opacity: 1; + transition: width 0ms, height 0ms, opacity 250ms; + } +} +.md-search__inner { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +@media screen and (max-width: 59.9375em) { + .md-search__inner { + position: fixed; + top: 0; + left: 100%; + z-index: 2; + width: 100%; + height: 100%; + transform: translateX(5%); + opacity: 0; + transition: right 0ms 300ms, left 0ms 300ms, transform 150ms 150ms cubic-bezier(0.4, 0, 0.2, 1), opacity 150ms 150ms; + } + [data-md-toggle=search]:checked ~ .md-header .md-search__inner { + left: 0; + transform: translateX(0); + opacity: 1; + transition: right 0ms 0ms, left 0ms 0ms, transform 150ms 150ms cubic-bezier(0.1, 0.7, 0.1, 1), opacity 150ms 150ms; + } + [dir=rtl] [data-md-toggle=search]:checked ~ .md-header .md-search__inner { + right: 0; + left: initial; + } + html [dir=rtl] .md-search__inner { + right: 100%; + left: initial; + transform: translateX(-5%); + } +} +@media screen and (min-width: 60em) { + .md-search__inner { + position: relative; + float: right; + width: 11.7rem; + padding: 0.1rem 0; + transition: width 250ms cubic-bezier(0.1, 0.7, 0.1, 1); + } + [dir=rtl] .md-search__inner { + float: left; + } +} +@media screen and (min-width: 60em) and (max-width: 76.1875em) { + [data-md-toggle=search]:checked ~ .md-header .md-search__inner { + width: 23.4rem; + } +} +@media screen and (min-width: 76.25em) { + [data-md-toggle=search]:checked ~ .md-header .md-search__inner { + width: 34.4rem; + } +} +.md-search__form { + position: relative; +} +@media screen and (min-width: 60em) { + .md-search__form { + border-radius: 0.1rem; + } +} +.md-search__input { + position: relative; + z-index: 2; + padding: 0 2.2rem 0 3.6rem; + text-overflow: ellipsis; +} +[dir=rtl] .md-search__input { + padding: 0 3.6rem 0 2.2rem; +} +.md-search__input::-webkit-input-placeholder { + -webkit-transition: color 250ms; + transition: color 250ms; +} +.md-search__input::-moz-placeholder { + -moz-transition: color 250ms; + transition: color 250ms; +} +.md-search__input::-ms-input-placeholder { + -ms-transition: color 250ms; + transition: color 250ms; +} +.md-search__input::placeholder { + transition: color 250ms; +} +.md-search__input::-webkit-input-placeholder { + color: var(--md-default-fg-color--light); +} +.md-search__input::-moz-placeholder { + color: var(--md-default-fg-color--light); +} +.md-search__input::-ms-input-placeholder { + color: var(--md-default-fg-color--light); +} +.md-search__input ~ .md-search__icon, .md-search__input::placeholder { + color: var(--md-default-fg-color--light); +} +.md-search__input::-ms-clear { + display: none; +} +@media screen and (max-width: 59.9375em) { + .md-search__input { + width: 100%; + height: 2.4rem; + font-size: 0.9rem; + } +} +@media screen and (min-width: 60em) { + .md-search__input { + width: 100%; + height: 1.8rem; + padding-left: 2.2rem; + color: inherit; + font-size: 0.8rem; + background-color: var(--md-default-fg-color--lighter); + border-radius: 0.1rem; + transition: color 250ms, background-color 250ms; + } + [dir=rtl] .md-search__input { + padding-right: 2.2rem; + } + .md-search__input + .md-search__icon { + color: var(--md-primary-bg-color); + } + .md-search__input::-webkit-input-placeholder { + color: var(--md-primary-bg-color--light); + } + .md-search__input::-moz-placeholder { + color: var(--md-primary-bg-color--light); + } + .md-search__input::-ms-input-placeholder { + color: var(--md-primary-bg-color--light); + } + .md-search__input::placeholder { + color: var(--md-primary-bg-color--light); + } + .md-search__input:hover { + background-color: var(--md-default-bg-color--lightest); + } + [data-md-toggle=search]:checked ~ .md-header .md-search__input { + color: var(--md-default-fg-color); + text-overflow: clip; + background-color: var(--md-default-bg-color); + border-radius: 0.1rem 0.1rem 0 0; + } + [data-md-toggle=search]:checked ~ .md-header .md-search__input::-webkit-input-placeholder { + color: var(--md-default-fg-color--light); + } + [data-md-toggle=search]:checked ~ .md-header .md-search__input::-moz-placeholder { + color: var(--md-default-fg-color--light); + } + [data-md-toggle=search]:checked ~ .md-header .md-search__input::-ms-input-placeholder { + color: var(--md-default-fg-color--light); + } + [data-md-toggle=search]:checked ~ .md-header .md-search__input + .md-search__icon, [data-md-toggle=search]:checked ~ .md-header .md-search__input::placeholder { + color: var(--md-default-fg-color--light); + } +} +.md-search__icon { + position: absolute; + z-index: 2; + width: 1.2rem; + height: 1.2rem; + cursor: pointer; + transition: color 250ms, opacity 250ms; +} +.md-search__icon:hover { + opacity: 0.7; +} +.md-search__icon[for=__search] { + top: 0.3rem; + left: 0.5rem; +} +[dir=rtl] .md-search__icon[for=__search] { + right: 0.5rem; + left: initial; +} +[dir=rtl] .md-search__icon[for=__search] svg { + transform: scaleX(-1); +} +@media screen and (max-width: 59.9375em) { + .md-search__icon[for=__search] { + top: 0.6rem; + left: 0.8rem; + } + [dir=rtl] .md-search__icon[for=__search] { + right: 0.8rem; + left: initial; + } + .md-search__icon[for=__search] svg:first-child { + display: none; + } +} +@media screen and (min-width: 60em) { + .md-search__icon[for=__search] { + pointer-events: none; + } + .md-search__icon[for=__search] svg:last-child { + display: none; + } +} +.md-search__icon[type=reset] { + top: 0.3rem; + right: 0.5rem; + transform: scale(0.75); + opacity: 0; + transition: transform 150ms cubic-bezier(0.1, 0.7, 0.1, 1), opacity 150ms; + pointer-events: none; +} +[dir=rtl] .md-search__icon[type=reset] { + right: initial; + left: 0.5rem; +} +@media screen and (max-width: 59.9375em) { + .md-search__icon[type=reset] { + top: 0.6rem; + right: 0.8rem; + } + [dir=rtl] .md-search__icon[type=reset] { + right: initial; + left: 0.8rem; + } +} +[data-md-toggle=search]:checked ~ .md-header .md-search__input:not(:placeholder-shown) ~ .md-search__icon[type=reset] { + transform: scale(1); + opacity: 1; + pointer-events: initial; +} +[data-md-toggle=search]:checked ~ .md-header .md-search__input:not(:placeholder-shown) ~ .md-search__icon[type=reset]:hover { + opacity: 0.7; +} +.md-search__output { + position: absolute; + z-index: 1; + width: 100%; + overflow: hidden; + border-radius: 0 0 0.1rem 0.1rem; +} +@media screen and (max-width: 59.9375em) { + .md-search__output { + top: 2.4rem; + bottom: 0; + } +} +@media screen and (min-width: 60em) { + .md-search__output { + top: 1.9rem; + opacity: 0; + transition: opacity 400ms; + } + [data-md-toggle=search]:checked ~ .md-header .md-search__output { + box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12), 0 3px 5px -1px rgba(0, 0, 0, 0.4); + opacity: 1; + } +} +.md-search__scrollwrap { + height: 100%; + overflow-y: auto; + background-color: var(--md-default-bg-color); + box-shadow: inset 0 0.05rem 0 var(--md-default-fg-color--lightest); + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-scroll-snap-type: y mandatory; + -ms-scroll-snap-type: y mandatory; + scroll-snap-type: y mandatory; + touch-action: pan-y; +} +@media (-webkit-max-device-pixel-ratio: 1), (max-resolution: 1dppx) { + .md-search__scrollwrap { + transform: translateZ(0); + } +} +@media screen and (min-width: 60em) and (max-width: 76.1875em) { + .md-search__scrollwrap { + width: 23.4rem; + } +} +@media screen and (min-width: 76.25em) { + .md-search__scrollwrap { + width: 34.4rem; + } +} +@media screen and (min-width: 60em) { + .md-search__scrollwrap { + max-height: 0; + } + [data-md-toggle=search]:checked ~ .md-header .md-search__scrollwrap { + max-height: 75vh; + } + .md-search__scrollwrap::-webkit-scrollbar { + width: 0.2rem; + height: 0.2rem; + } + .md-search__scrollwrap::-webkit-scrollbar-thumb { + background-color: var(--md-default-fg-color--lighter); + } + .md-search__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: var(--md-accent-fg-color); + } +} + +.md-search-result { + color: var(--md-default-fg-color); + word-break: break-word; +} +.md-search-result__meta { + padding: 0 0.8rem; + color: var(--md-default-fg-color--light); + font-size: 0.64rem; + line-height: 1.8rem; + background-color: var(--md-default-fg-color--lightest); + scroll-snap-align: start; +} +@media screen and (min-width: 60em) { + .md-search-result__meta { + padding-left: 2.2rem; + } + [dir=rtl] .md-search-result__meta { + padding-right: 2.2rem; + padding-left: initial; + } +} +.md-search-result__list { + margin: 0; + padding: 0; + list-style: none; + border-top: 0.05rem solid var(--md-default-fg-color--lightest); +} +.md-search-result__item { + box-shadow: 0 -0.05rem 0 var(--md-default-fg-color--lightest); +} +.md-search-result__link { + display: block; + outline: 0; + transition: background 250ms; + scroll-snap-align: start; +} +.md-search-result__link:focus, .md-search-result__link:hover { + background-color: var(--md-accent-fg-color--transparent); +} +.md-search-result__link:focus .md-search-result__article::before, .md-search-result__link:hover .md-search-result__article::before { + opacity: 0.7; +} +.md-search-result__link:last-child .md-search-result__teaser { + margin-bottom: 0.6rem; +} +.md-search-result__article { + position: relative; + padding: 0 0.8rem; + overflow: hidden; +} +@media screen and (min-width: 60em) { + .md-search-result__article { + padding-left: 2.2rem; + } + [dir=rtl] .md-search-result__article { + padding-right: 2.2rem; + padding-left: 0.8rem; + } +} +.md-search-result__article--document .md-search-result__title { + margin: 0.55rem 0; + font-weight: 400; + font-size: 0.8rem; + line-height: 1.4; +} +.md-search-result__icon { + position: absolute; + left: 0; + margin: 0.1rem; + padding: 0.4rem; + color: var(--md-default-fg-color--light); +} +[dir=rtl] .md-search-result__icon { + right: 0; + left: initial; +} +[dir=rtl] .md-search-result__icon svg { + transform: scaleX(-1); +} +@media screen and (max-width: 59.9375em) { + .md-search-result__icon { + display: none; + } +} +.md-search-result__title { + margin: 0.5em 0; + font-weight: 700; + font-size: 0.64rem; + line-height: 1.4; +} +.md-search-result__teaser { + display: -webkit-box; + max-height: 1.65rem; + margin: 0.5em 0; + overflow: hidden; + color: var(--md-default-fg-color--light); + font-size: 0.64rem; + line-height: 1.4; + text-overflow: ellipsis; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; +} +@media screen and (max-width: 44.9375em) { + .md-search-result__teaser { + max-height: 2.5rem; + -webkit-line-clamp: 3; + } +} +@media screen and (min-width: 60em) and (max-width: 76.1875em) { + .md-search-result__teaser { + max-height: 2.5rem; + -webkit-line-clamp: 3; + } +} +.md-search-result em { + font-weight: 700; + font-style: normal; + text-decoration: underline; +} + +.md-sidebar { + position: -webkit-sticky; + position: sticky; + top: 2.4rem; + width: 12.1rem; + padding: 1.2rem 0; + overflow: hidden; +} +@media print { + .md-sidebar { + display: none; + } +} +@media screen and (max-width: 76.1875em) { + .md-sidebar--primary { + position: fixed; + top: 0; + left: -12.1rem; + z-index: 3; + width: 12.1rem; + height: 100%; + background-color: var(--md-default-bg-color); + transform: translateX(0); + transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1), box-shadow 250ms; + } + [dir=rtl] .md-sidebar--primary { + right: -12.1rem; + left: initial; + } + [data-md-toggle=drawer]:checked ~ .md-container .md-sidebar--primary { + box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.4); + transform: translateX(12.1rem); + } + [dir=rtl] [data-md-toggle=drawer]:checked ~ .md-container .md-sidebar--primary { + transform: translateX(-12.1rem); + } + .md-sidebar--primary .md-sidebar__scrollwrap { + overflow: hidden; + } +} +.md-sidebar--secondary { + display: none; + order: 2; +} +@media screen and (min-width: 60em) { + .md-sidebar--secondary { + display: block; + } + .md-sidebar--secondary .md-sidebar__scrollwrap { + touch-action: pan-y; + } +} +.md-sidebar__scrollwrap { + max-height: 100%; + margin: 0 0.2rem; + overflow-y: auto; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-scroll-snap-type: y mandatory; + -ms-scroll-snap-type: y mandatory; + scroll-snap-type: y mandatory; +} +@media screen and (max-width: 76.1875em) { + .md-sidebar--primary .md-sidebar__scrollwrap { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + margin: 0; + -webkit-scroll-snap-type: none; + -ms-scroll-snap-type: none; + scroll-snap-type: none; + } +} +.md-sidebar__scrollwrap::-webkit-scrollbar { + width: 0.2rem; + height: 0.2rem; +} +.md-sidebar__scrollwrap::-webkit-scrollbar-thumb { + background-color: var(--md-default-fg-color--lighter); +} +.md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: var(--md-accent-fg-color); +} + +@-webkit-keyframes md-source__facts--done { + 0% { + height: 0; + } + 100% { + height: 0.65rem; + } +} + +@keyframes md-source__facts--done { + 0% { + height: 0; + } + 100% { + height: 0.65rem; + } +} +@-webkit-keyframes md-source__fact--done { + 0% { + transform: translateY(100%); + opacity: 0; + } + 50% { + opacity: 0; + } + 100% { + transform: translateY(0%); + opacity: 1; + } +} +@keyframes md-source__fact--done { + 0% { + transform: translateY(100%); + opacity: 0; + } + 50% { + opacity: 0; + } + 100% { + transform: translateY(0%); + opacity: 1; + } +} +.md-source { + display: block; + font-size: 0.65rem; + line-height: 1.2; + white-space: nowrap; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition: opacity 250ms; +} +.md-source:hover { + opacity: 0.7; +} +.md-source__icon { + display: inline-block; + width: 2.4rem; + height: 2.4rem; + vertical-align: middle; +} +.md-source__icon svg { + margin-top: 0.6rem; + margin-left: 0.6rem; +} +[dir=rtl] .md-source__icon svg { + margin-right: 0.6rem; + margin-left: initial; +} +.md-source__icon + .md-source__repository { + margin-left: -2rem; + padding-left: 2rem; +} +[dir=rtl] .md-source__icon + .md-source__repository { + margin-right: -2rem; + margin-left: initial; + padding-right: 2rem; + padding-left: initial; +} +.md-source__repository { + display: inline-block; + max-width: calc(100% - 1.2rem); + margin-left: 0.6rem; + overflow: hidden; + font-weight: 700; + text-overflow: ellipsis; + vertical-align: middle; +} +.md-source__facts { + margin: 0; + padding: 0; + overflow: hidden; + font-weight: 700; + font-size: 0.55rem; + list-style-type: none; + opacity: 0.75; +} +[data-md-state=done] .md-source__facts { + -webkit-animation: md-source__facts--done 250ms ease-in; + animation: md-source__facts--done 250ms ease-in; +} +.md-source__fact { + float: left; +} +[dir=rtl] .md-source__fact { + float: right; +} +[data-md-state=done] .md-source__fact { + -webkit-animation: md-source__fact--done 400ms ease-out; + animation: md-source__fact--done 400ms ease-out; +} +.md-source__fact::before { + margin: 0 0.1rem; + content: "·"; +} +.md-source__fact:first-child::before { + display: none; +} + +.md-tabs { + width: 100%; + overflow: auto; + color: var(--md-primary-bg-color); + background-color: var(--md-primary-fg-color); + transition: background 250ms; +} +.no-js .md-tabs { + transition: none; +} +@media screen and (max-width: 76.1875em) { + .md-tabs { + display: none; + } +} +@media print { + .md-tabs { + display: none; + } +} +.md-tabs__list { + margin: 0; + margin-left: 0.2rem; + padding: 0; + white-space: nowrap; + list-style: none; + contain: content; +} +[dir=rtl] .md-tabs__list { + margin-right: 0.2rem; + margin-left: initial; +} +.md-tabs__item { + display: inline-block; + height: 2.4rem; + padding-right: 0.6rem; + padding-left: 0.6rem; +} +.md-tabs__link { + display: block; + margin-top: 0.8rem; + font-size: 0.7rem; + opacity: 0.7; + transition: transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1), opacity 250ms; +} +.no-js .md-tabs__link { + transition: none; +} +.md-tabs__link--active, .md-tabs__link:hover { + color: inherit; + opacity: 1; +} +.md-tabs__item:nth-child(2) .md-tabs__link { + transition-delay: 20ms; +} +.md-tabs__item:nth-child(3) .md-tabs__link { + transition-delay: 40ms; +} +.md-tabs__item:nth-child(4) .md-tabs__link { + transition-delay: 60ms; +} +.md-tabs__item:nth-child(5) .md-tabs__link { + transition-delay: 80ms; +} +.md-tabs__item:nth-child(6) .md-tabs__link { + transition-delay: 100ms; +} +.md-tabs__item:nth-child(7) .md-tabs__link { + transition-delay: 120ms; +} +.md-tabs__item:nth-child(8) .md-tabs__link { + transition-delay: 140ms; +} +.md-tabs__item:nth-child(9) .md-tabs__link { + transition-delay: 160ms; +} +.md-tabs__item:nth-child(10) .md-tabs__link { + transition-delay: 180ms; +} +.md-tabs__item:nth-child(11) .md-tabs__link { + transition-delay: 200ms; +} +.md-tabs__item:nth-child(12) .md-tabs__link { + transition-delay: 220ms; +} +.md-tabs__item:nth-child(13) .md-tabs__link { + transition-delay: 240ms; +} +.md-tabs__item:nth-child(14) .md-tabs__link { + transition-delay: 260ms; +} +.md-tabs__item:nth-child(15) .md-tabs__link { + transition-delay: 280ms; +} +.md-tabs__item:nth-child(16) .md-tabs__link { + transition-delay: 300ms; +} +.md-tabs[data-md-state=hidden] { + pointer-events: none; +} +.md-tabs[data-md-state=hidden] .md-tabs__link { + transform: translateY(50%); + opacity: 0; + transition: color 250ms, transform 0ms 400ms, opacity 100ms; +} +@media screen and (min-width: 76.25em) { + .md-tabs ~ .md-main .md-nav--primary > .md-nav__list > .md-nav__item--nested { + display: none; + } + .md-tabs--active ~ .md-main .md-nav--primary .md-nav__title { + display: block; + padding: 0 0.6rem; + pointer-events: none; + scroll-snap-align: start; + } + .md-tabs--active ~ .md-main .md-nav--primary .md-nav__title[for=__drawer] { + display: none; + } + .md-tabs--active ~ .md-main .md-nav--primary > .md-nav__list > .md-nav__item { + display: none; + } + .md-tabs--active ~ .md-main .md-nav--primary > .md-nav__list > .md-nav__item--active { + display: block; + padding: 0; + } + .md-tabs--active ~ .md-main .md-nav--primary > .md-nav__list > .md-nav__item--active > .md-nav__link { + display: none; + } + .md-tabs--active ~ .md-main .md-nav[data-md-level="1"] { + display: block; + } + .md-tabs--active ~ .md-main .md-nav[data-md-level="1"] > .md-nav__list > .md-nav__item { + padding: 0 0.6rem; + } + .md-tabs--active ~ .md-main .md-nav[data-md-level="1"] .md-nav .md-nav__title { + display: none; + } +} + +:root { + --md-admonition-icon--note: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--abstract: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--info: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--tip: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--success: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--question: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--warning: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--failure: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--danger: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--bug: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--example: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--quote: url('data:image/svg+xml;charset=utf-8,'); +} + +.md-typeset .admonition, .md-typeset details { + margin: 1.5625em 0; + padding: 0 0.6rem; + overflow: hidden; + font-size: 0.64rem; + page-break-inside: avoid; + border-left: 0.2rem solid #448aff; + border-radius: 0.1rem; + box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.05rem rgba(0, 0, 0, 0.1); +} +[dir=rtl] .md-typeset .admonition, [dir=rtl] .md-typeset details { + border-right: 0.2rem solid #448aff; + border-left: none; +} +@media print { + .md-typeset .admonition, .md-typeset details { + box-shadow: none; + } +} +html .md-typeset .admonition > :last-child, html .md-typeset details > :last-child { + margin-bottom: 0.6rem; +} +.md-typeset .admonition .admonition, .md-typeset details .admonition, .md-typeset .admonition details, .md-typeset details details { + margin: 1em 0; +} +.md-typeset .admonition .md-typeset__scrollwrap, .md-typeset details .md-typeset__scrollwrap { + margin: 1em -0.6rem; +} +.md-typeset .admonition .md-typeset__table, .md-typeset details .md-typeset__table { + padding: 0 0.6rem; +} +.md-typeset .admonition-title, .md-typeset summary { + position: relative; + margin: 0 -0.6rem; + padding: 0.4rem 0.6rem 0.4rem 2rem; + font-weight: 700; + background-color: rgba(68, 138, 255, 0.1); +} +[dir=rtl] .md-typeset .admonition-title, [dir=rtl] .md-typeset summary { + padding: 0.4rem 2rem 0.4rem 0.6rem; +} +html .md-typeset .admonition-title:last-child, html .md-typeset summary:last-child { + margin-bottom: 0; +} +.md-typeset .admonition-title::before, .md-typeset summary::before { + position: absolute; + left: 0.6rem; + width: 1rem; + height: 1rem; + background-color: #448aff; + -webkit-mask-image: var(--md-admonition-icon--note); + mask-image: var(--md-admonition-icon--note); + content: ""; +} +[dir=rtl] .md-typeset .admonition-title::before, [dir=rtl] .md-typeset summary::before { + right: 0.6rem; + left: initial; +} +.md-typeset .admonition-title code, .md-typeset summary code { + margin: initial; + padding: initial; + color: currentColor; + background-color: transparent; + border-radius: initial; + box-shadow: none; +} + +.md-typeset .admonition.note, .md-typeset details.note { + border-color: #448aff; +} + +.md-typeset .note > .admonition-title, .md-typeset .note > summary { + background-color: rgba(68, 138, 255, 0.1); +} +.md-typeset .note > .admonition-title::before, .md-typeset .note > summary::before { + background-color: #448aff; + -webkit-mask-image: var(--md-admonition-icon--note); + mask-image: var(--md-admonition-icon--note); +} + +.md-typeset .admonition.abstract, .md-typeset details.abstract, .md-typeset .admonition.tldr, .md-typeset details.tldr, .md-typeset .admonition.summary, .md-typeset details.summary { + border-color: #00b0ff; +} + +.md-typeset .abstract > .admonition-title, .md-typeset .abstract > summary, .md-typeset .tldr > .admonition-title, .md-typeset .tldr > summary, .md-typeset .summary > .admonition-title, .md-typeset .summary > summary { + background-color: rgba(0, 176, 255, 0.1); +} +.md-typeset .abstract > .admonition-title::before, .md-typeset .abstract > summary::before, .md-typeset .tldr > .admonition-title::before, .md-typeset .tldr > summary::before, .md-typeset .summary > .admonition-title::before, .md-typeset .summary > summary::before { + background-color: #00b0ff; + -webkit-mask-image: var(--md-admonition-icon--abstract); + mask-image: var(--md-admonition-icon--abstract); +} + +.md-typeset .admonition.info, .md-typeset details.info, .md-typeset .admonition.todo, .md-typeset details.todo { + border-color: #00b8d4; +} + +.md-typeset .info > .admonition-title, .md-typeset .info > summary, .md-typeset .todo > .admonition-title, .md-typeset .todo > summary { + background-color: rgba(0, 184, 212, 0.1); +} +.md-typeset .info > .admonition-title::before, .md-typeset .info > summary::before, .md-typeset .todo > .admonition-title::before, .md-typeset .todo > summary::before { + background-color: #00b8d4; + -webkit-mask-image: var(--md-admonition-icon--info); + mask-image: var(--md-admonition-icon--info); +} + +.md-typeset .admonition.tip, .md-typeset details.tip, .md-typeset .admonition.important, .md-typeset details.important, .md-typeset .admonition.hint, .md-typeset details.hint { + border-color: #00bfa5; +} + +.md-typeset .tip > .admonition-title, .md-typeset .tip > summary, .md-typeset .important > .admonition-title, .md-typeset .important > summary, .md-typeset .hint > .admonition-title, .md-typeset .hint > summary { + background-color: rgba(0, 191, 165, 0.1); +} +.md-typeset .tip > .admonition-title::before, .md-typeset .tip > summary::before, .md-typeset .important > .admonition-title::before, .md-typeset .important > summary::before, .md-typeset .hint > .admonition-title::before, .md-typeset .hint > summary::before { + background-color: #00bfa5; + -webkit-mask-image: var(--md-admonition-icon--tip); + mask-image: var(--md-admonition-icon--tip); +} + +.md-typeset .admonition.success, .md-typeset details.success, .md-typeset .admonition.done, .md-typeset details.done, .md-typeset .admonition.check, .md-typeset details.check { + border-color: #00c853; +} + +.md-typeset .success > .admonition-title, .md-typeset .success > summary, .md-typeset .done > .admonition-title, .md-typeset .done > summary, .md-typeset .check > .admonition-title, .md-typeset .check > summary { + background-color: rgba(0, 200, 83, 0.1); +} +.md-typeset .success > .admonition-title::before, .md-typeset .success > summary::before, .md-typeset .done > .admonition-title::before, .md-typeset .done > summary::before, .md-typeset .check > .admonition-title::before, .md-typeset .check > summary::before { + background-color: #00c853; + -webkit-mask-image: var(--md-admonition-icon--success); + mask-image: var(--md-admonition-icon--success); +} + +.md-typeset .admonition.question, .md-typeset details.question, .md-typeset .admonition.faq, .md-typeset details.faq, .md-typeset .admonition.help, .md-typeset details.help { + border-color: #64dd17; +} + +.md-typeset .question > .admonition-title, .md-typeset .question > summary, .md-typeset .faq > .admonition-title, .md-typeset .faq > summary, .md-typeset .help > .admonition-title, .md-typeset .help > summary { + background-color: rgba(100, 221, 23, 0.1); +} +.md-typeset .question > .admonition-title::before, .md-typeset .question > summary::before, .md-typeset .faq > .admonition-title::before, .md-typeset .faq > summary::before, .md-typeset .help > .admonition-title::before, .md-typeset .help > summary::before { + background-color: #64dd17; + -webkit-mask-image: var(--md-admonition-icon--question); + mask-image: var(--md-admonition-icon--question); +} + +.md-typeset .admonition.warning, .md-typeset details.warning, .md-typeset .admonition.attention, .md-typeset details.attention, .md-typeset .admonition.caution, .md-typeset details.caution { + border-color: #ff9100; +} + +.md-typeset .warning > .admonition-title, .md-typeset .warning > summary, .md-typeset .attention > .admonition-title, .md-typeset .attention > summary, .md-typeset .caution > .admonition-title, .md-typeset .caution > summary { + background-color: rgba(255, 145, 0, 0.1); +} +.md-typeset .warning > .admonition-title::before, .md-typeset .warning > summary::before, .md-typeset .attention > .admonition-title::before, .md-typeset .attention > summary::before, .md-typeset .caution > .admonition-title::before, .md-typeset .caution > summary::before { + background-color: #ff9100; + -webkit-mask-image: var(--md-admonition-icon--warning); + mask-image: var(--md-admonition-icon--warning); +} + +.md-typeset .admonition.failure, .md-typeset details.failure, .md-typeset .admonition.missing, .md-typeset details.missing, .md-typeset .admonition.fail, .md-typeset details.fail { + border-color: #ff5252; +} + +.md-typeset .failure > .admonition-title, .md-typeset .failure > summary, .md-typeset .missing > .admonition-title, .md-typeset .missing > summary, .md-typeset .fail > .admonition-title, .md-typeset .fail > summary { + background-color: rgba(255, 82, 82, 0.1); +} +.md-typeset .failure > .admonition-title::before, .md-typeset .failure > summary::before, .md-typeset .missing > .admonition-title::before, .md-typeset .missing > summary::before, .md-typeset .fail > .admonition-title::before, .md-typeset .fail > summary::before { + background-color: #ff5252; + -webkit-mask-image: var(--md-admonition-icon--failure); + mask-image: var(--md-admonition-icon--failure); +} + +.md-typeset .admonition.danger, .md-typeset details.danger, .md-typeset .admonition.error, .md-typeset details.error { + border-color: #ff1744; +} + +.md-typeset .danger > .admonition-title, .md-typeset .danger > summary, .md-typeset .error > .admonition-title, .md-typeset .error > summary { + background-color: rgba(255, 23, 68, 0.1); +} +.md-typeset .danger > .admonition-title::before, .md-typeset .danger > summary::before, .md-typeset .error > .admonition-title::before, .md-typeset .error > summary::before { + background-color: #ff1744; + -webkit-mask-image: var(--md-admonition-icon--danger); + mask-image: var(--md-admonition-icon--danger); +} + +.md-typeset .admonition.bug, .md-typeset details.bug { + border-color: #f50057; +} + +.md-typeset .bug > .admonition-title, .md-typeset .bug > summary { + background-color: rgba(245, 0, 87, 0.1); +} +.md-typeset .bug > .admonition-title::before, .md-typeset .bug > summary::before { + background-color: #f50057; + -webkit-mask-image: var(--md-admonition-icon--bug); + mask-image: var(--md-admonition-icon--bug); +} + +.md-typeset .admonition.example, .md-typeset details.example { + border-color: #651fff; +} + +.md-typeset .example > .admonition-title, .md-typeset .example > summary { + background-color: rgba(101, 31, 255, 0.1); +} +.md-typeset .example > .admonition-title::before, .md-typeset .example > summary::before { + background-color: #651fff; + -webkit-mask-image: var(--md-admonition-icon--example); + mask-image: var(--md-admonition-icon--example); +} + +.md-typeset .admonition.quote, .md-typeset details.quote, .md-typeset .admonition.cite, .md-typeset details.cite { + border-color: #9e9e9e; +} + +.md-typeset .quote > .admonition-title, .md-typeset .quote > summary, .md-typeset .cite > .admonition-title, .md-typeset .cite > summary { + background-color: rgba(158, 158, 158, 0.1); +} +.md-typeset .quote > .admonition-title::before, .md-typeset .quote > summary::before, .md-typeset .cite > .admonition-title::before, .md-typeset .cite > summary::before { + background-color: #9e9e9e; + -webkit-mask-image: var(--md-admonition-icon--quote); + mask-image: var(--md-admonition-icon--quote); +} + +.codehilite .o, .highlight .o { + color: inherit; +} +.codehilite .ow, .highlight .ow { + color: inherit; +} +.codehilite .ge, .highlight .ge { + color: #000000; +} +.codehilite .gr, .highlight .gr { + color: #AA0000; +} +.codehilite .gh, .highlight .gh { + color: #999999; +} +.codehilite .go, .highlight .go { + color: #888888; +} +.codehilite .gp, .highlight .gp { + color: #555555; +} +.codehilite .gs, .highlight .gs { + color: inherit; +} +.codehilite .gu, .highlight .gu { + color: #AAAAAA; +} +.codehilite .gt, .highlight .gt { + color: #AA0000; +} +.codehilite .gd, .highlight .gd { + background-color: #FFDDDD; +} +.codehilite .gi, .highlight .gi { + background-color: #DDFFDD; +} +.codehilite .k, .highlight .k { + color: #3B78E7; +} +.codehilite .kc, .highlight .kc { + color: #A71D5D; +} +.codehilite .kd, .highlight .kd { + color: #3B78E7; +} +.codehilite .kn, .highlight .kn { + color: #3B78E7; +} +.codehilite .kp, .highlight .kp { + color: #A71D5D; +} +.codehilite .kr, .highlight .kr { + color: #3E61A2; +} +.codehilite .kt, .highlight .kt { + color: #3E61A2; +} +.codehilite .c, .highlight .c { + color: #999999; +} +.codehilite .cm, .highlight .cm { + color: #999999; +} +.codehilite .cp, .highlight .cp { + color: #666666; +} +.codehilite .c1, .highlight .c1 { + color: #999999; +} +.codehilite .ch, .highlight .ch { + color: #999999; +} +.codehilite .cs, .highlight .cs { + color: #999999; +} +.codehilite .na, .highlight .na { + color: #C2185B; +} +.codehilite .nb, .highlight .nb { + color: #C2185B; +} +.codehilite .bp, .highlight .bp { + color: #3E61A2; +} +.codehilite .nc, .highlight .nc { + color: #C2185B; +} +.codehilite .no, .highlight .no { + color: #3E61A2; +} +.codehilite .nd, .highlight .nd { + color: #666666; +} +.codehilite .ni, .highlight .ni { + color: #666666; +} +.codehilite .ne, .highlight .ne { + color: #C2185B; +} +.codehilite .nf, .highlight .nf { + color: #C2185B; +} +.codehilite .nl, .highlight .nl { + color: #3B5179; +} +.codehilite .nn, .highlight .nn { + color: #EC407A; +} +.codehilite .nt, .highlight .nt { + color: #3B78E7; +} +.codehilite .nv, .highlight .nv { + color: #3E61A2; +} +.codehilite .vc, .highlight .vc { + color: #3E61A2; +} +.codehilite .vg, .highlight .vg { + color: #3E61A2; +} +.codehilite .vi, .highlight .vi { + color: #3E61A2; +} +.codehilite .nx, .highlight .nx { + color: #EC407A; +} +.codehilite .m, .highlight .m { + color: #E74C3C; +} +.codehilite .mf, .highlight .mf { + color: #E74C3C; +} +.codehilite .mh, .highlight .mh { + color: #E74C3C; +} +.codehilite .mi, .highlight .mi { + color: #E74C3C; +} +.codehilite .il, .highlight .il { + color: #E74C3C; +} +.codehilite .mo, .highlight .mo { + color: #E74C3C; +} +.codehilite .s, .highlight .s { + color: #0D904F; +} +.codehilite .sb, .highlight .sb { + color: #0D904F; +} +.codehilite .sc, .highlight .sc { + color: #0D904F; +} +.codehilite .sd, .highlight .sd { + color: #999999; +} +.codehilite .s2, .highlight .s2 { + color: #0D904F; +} +.codehilite .se, .highlight .se { + color: #183691; +} +.codehilite .sh, .highlight .sh { + color: #183691; +} +.codehilite .si, .highlight .si { + color: #183691; +} +.codehilite .sx, .highlight .sx { + color: #183691; +} +.codehilite .sr, .highlight .sr { + color: #009926; +} +.codehilite .s1, .highlight .s1 { + color: #0D904F; +} +.codehilite .ss, .highlight .ss { + color: #0D904F; +} +.codehilite .err, .highlight .err { + color: #A61717; +} +.codehilite .w, .highlight .w { + color: transparent; +} +.codehilite .hll, .highlight .hll { + display: block; + margin: 0 -1.1764705882em; + padding: 0 1.1764705882em; + background-color: rgba(255, 235, 59, 0.5); +} + +.codehilitetable, .highlighttable { + display: block; + overflow: hidden; +} +.codehilitetable tbody, .highlighttable tbody, +.codehilitetable td, +.highlighttable td { + display: block; + padding: 0; +} +.codehilitetable tr, .highlighttable tr { + display: flex; +} +.codehilitetable pre, .highlighttable pre { + margin: 0; +} +.codehilitetable .linenos, .highlighttable .linenos { + padding: 0.525rem 1.1764705882em; + padding-right: 0; + font-size: 0.85em; + background-color: var(--md-code-bg-color); + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.codehilitetable .linenodiv, .highlighttable .linenodiv { + padding-right: 0.5882352941em; + box-shadow: inset -0.05rem 0 var(--md-default-fg-color--lightest); +} +.codehilitetable .linenodiv pre, .highlighttable .linenodiv pre { + color: var(--md-default-fg-color--lighter); + text-align: right; +} +.codehilitetable .code, .highlighttable .code { + flex: 1; + overflow: hidden; +} + +.md-typeset .codehilitetable, .md-typeset .highlighttable { + margin: 1em 0; + direction: ltr; + border-radius: 0.1rem; +} +.md-typeset .codehilitetable code, .md-typeset .highlighttable code { + border-radius: 0; +} +@media screen and (max-width: 44.9375em) { + .md-typeset > .codehilite, .md-typeset > .highlight { + margin: 1em -0.8rem; + } + .md-typeset > .codehilite .hll, .md-typeset > .highlight .hll { + margin: 0 -0.8rem; + padding: 0 0.8rem; + } + .md-typeset > .codehilite code, .md-typeset > .highlight code { + border-radius: 0; + } + .md-typeset > .codehilitetable, .md-typeset > .highlighttable { + margin: 1em -0.8rem; + border-radius: 0; + } + .md-typeset > .codehilitetable .hll, .md-typeset > .highlighttable .hll { + margin: 0 -0.8rem; + padding: 0 0.8rem; + } +} + +:root { + --md-footnotes-icon: url('data:image/svg+xml;charset=utf-8,'); +} + +.md-typeset [id^="fnref:"] { + display: inline-block; +} +.md-typeset [id^="fnref:"]:target { + margin-top: -3.8rem; + padding-top: 3.8rem; + pointer-events: none; +} +.md-typeset [id^="fn:"]::before { + display: none; + height: 0; + content: ""; +} +.md-typeset [id^="fn:"]:target::before { + display: block; + margin-top: -3.5rem; + padding-top: 3.5rem; + pointer-events: none; +} +.md-typeset .footnote { + color: var(--md-default-fg-color--light); + font-size: 0.64rem; +} +.md-typeset .footnote ol { + margin-left: 0; +} +.md-typeset .footnote li { + transition: color 125ms; +} +.md-typeset .footnote li:target { + color: var(--md-default-fg-color); +} +.md-typeset .footnote li :first-child { + margin-top: 0; +} +.md-typeset .footnote li:hover .footnote-backref, .md-typeset .footnote li:target .footnote-backref { + transform: translateX(0); + opacity: 1; +} +.md-typeset .footnote li:hover .footnote-backref:hover { + color: var(--md-accent-fg-color); +} +.md-typeset .footnote-ref { + display: inline-block; + pointer-events: initial; +} +.md-typeset .footnote-backref { + display: inline-block; + color: var(--md-primary-fg-color); + font-size: 0; + vertical-align: text-bottom; + transform: translateX(0.25rem); + opacity: 0; + transition: color 250ms, transform 250ms 250ms, opacity 125ms 250ms; +} +[dir=rtl] .md-typeset .footnote-backref { + transform: translateX(-0.25rem); +} +.md-typeset .footnote-backref::before { + display: inline-block; + width: 0.8rem; + height: 0.8rem; + background-color: currentColor; + -webkit-mask-image: var(--md-footnotes-icon); + mask-image: var(--md-footnotes-icon); + content: ""; +} +[dir=rtl] .md-typeset .footnote-backref::before svg { + transform: scaleX(-1); +} +@media print { + .md-typeset .footnote-backref { + color: var(--md-primary-fg-color); + transform: translateX(0); + opacity: 1; + } +} + +.md-typeset .headerlink { + display: inline-block; + margin-left: 0.5rem; + visibility: hidden; + opacity: 0; + transition: color 250ms, visibility 0ms 500ms, opacity 125ms; +} +[dir=rtl] .md-typeset .headerlink { + margin-right: 0.5rem; + margin-left: initial; +} +html body .md-typeset .headerlink { + color: var(--md-default-fg-color--lighter); +} +@media print { + .md-typeset .headerlink { + display: none; + } +} +.md-typeset :hover > .headerlink, +.md-typeset :target > .headerlink, +.md-typeset .headerlink:focus { + visibility: visible; + opacity: 1; + transition: color 250ms, visibility 0ms, opacity 125ms; +} +.md-typeset :target > .headerlink, +.md-typeset .headerlink:focus, +.md-typeset .headerlink:hover { + color: var(--md-accent-fg-color); +} +.md-typeset h3[id]::before, .md-typeset h2[id]::before, .md-typeset h1[id]::before { + display: block; + margin-top: -0.4rem; + padding-top: 0.4rem; + content: ""; +} +.md-typeset h3[id]:target::before, .md-typeset h2[id]:target::before, .md-typeset h1[id]:target::before { + margin-top: -3.4rem; + padding-top: 3.4rem; +} +.md-typeset h4[id]::before { + display: block; + margin-top: -0.45rem; + padding-top: 0.45rem; + content: ""; +} +.md-typeset h4[id]:target::before { + margin-top: -3.45rem; + padding-top: 3.45rem; +} +.md-typeset h6[id]::before, .md-typeset h5[id]::before { + display: block; + margin-top: -0.6rem; + padding-top: 0.6rem; + content: ""; +} +.md-typeset h6[id]:target::before, .md-typeset h5[id]:target::before { + margin-top: -3.6rem; + padding-top: 3.6rem; +} +.md-typeset .MJXc-display { + margin: 0.75em 0; + padding: 0.75em 0; + overflow: auto; + touch-action: auto; +} +@media screen and (max-width: 44.9375em) { + .md-typeset > p > .MJXc-display { + margin: 0.75em -0.8rem; + padding: 0.25em 0.8rem; + } +} +.md-typeset .MathJax_CHTML { + outline: 0; +} + +.md-typeset del.critic, +.md-typeset ins.critic, +.md-typeset .critic.comment { + padding: 0 0.25em; + border-radius: 0.1rem; + -webkit-box-decoration-break: clone; + box-decoration-break: clone; +} +.md-typeset del.critic { + background-color: #FFDDDD; +} +.md-typeset ins.critic { + background-color: #DDFFDD; +} +.md-typeset .critic.comment { + color: #999999; +} +.md-typeset .critic.comment::before { + content: "/* "; +} +.md-typeset .critic.comment::after { + content: " */"; +} +.md-typeset .critic.block { + display: block; + margin: 1em 0; + padding-right: 0.8rem; + padding-left: 0.8rem; + overflow: auto; + box-shadow: none; +} +.md-typeset .critic.block :first-child { + margin-top: 0.5em; +} +.md-typeset .critic.block :last-child { + margin-bottom: 0.5em; +} + +:root { + --md-details-icon: url('data:image/svg+xml;charset=utf-8,'); +} + +.md-typeset details { + display: block; + padding-top: 0; + overflow: visible; +} +.md-typeset details[open] > summary::after { + transform: rotate(90deg); +} +.md-typeset details:not([open]) { + padding-bottom: 0; +} +.md-typeset details:not([open]) > summary { + border-bottom-right-radius: 0.1rem; +} +.md-typeset details::after { + display: table; + content: ""; +} +.md-typeset summary { + display: block; + min-height: 1rem; + padding: 0.4rem 1.8rem 0.4rem 2rem; + border-top-right-radius: 0.1rem; + cursor: pointer; +} +[dir=rtl] .md-typeset summary { + padding: 0.4rem 2rem 0.4rem 1.8rem; +} +.md-typeset summary::-webkit-details-marker { + display: none; +} +.md-typeset summary::after { + position: absolute; + top: 0.4rem; + right: 0.4rem; + width: 1rem; + height: 1rem; + background-color: currentColor; + -webkit-mask-image: var(--md-details-icon); + mask-image: var(--md-details-icon); + transform: rotate(0deg); + transition: transform 250ms; + content: ""; +} +[dir=rtl] .md-typeset summary::after { + right: initial; + left: 0.4rem; + transform: rotate(180deg); +} + +.md-typeset img.emojione, +.md-typeset img.twemoji, +.md-typeset img.gemoji { + width: 1.125em; + vertical-align: -15%; +} +.md-typeset span.twemoji { + display: inline-block; + height: 1.125em; + vertical-align: text-top; +} +.md-typeset span.twemoji svg { + width: 1.125em; + fill: currentColor; +} + +.highlight [data-linenos]::before { + position: -webkit-sticky; + position: sticky; + left: -1.1764705882em; + float: left; + margin-right: 1.1764705882em; + margin-left: -1.1764705882em; + padding-left: 1.1764705882em; + color: var(--md-default-fg-color--lighter); + background-color: var(--md-code-bg-color); + box-shadow: inset -0.05rem 0 var(--md-default-fg-color--lightest); + content: attr(data-linenos); + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.md-typeset .tabbed-content { + display: none; + order: 99; + width: 100%; + box-shadow: 0 -0.05rem var(--md-default-fg-color--lightest); +} +.md-typeset .tabbed-content > .codehilite:only-child pre, +.md-typeset .tabbed-content > .codehilitetable:only-child, +.md-typeset .tabbed-content > .highlight:only-child pre, +.md-typeset .tabbed-content > .highlighttable:only-child { + margin: 0; +} +.md-typeset .tabbed-content > .codehilite:only-child pre > code, +.md-typeset .tabbed-content > .codehilitetable:only-child > code, +.md-typeset .tabbed-content > .highlight:only-child pre > code, +.md-typeset .tabbed-content > .highlighttable:only-child > code { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.md-typeset .tabbed-content > .tabbed-set { + margin: 0; +} +.md-typeset .tabbed-set { + position: relative; + display: flex; + flex-wrap: wrap; + margin: 1em 0; + border-radius: 0.1rem; +} +.md-typeset .tabbed-set > input { + display: none; +} +.md-typeset .tabbed-set > input:checked + label { + color: var(--md-accent-fg-color); + border-color: var(--md-accent-fg-color); +} +.md-typeset .tabbed-set > input:checked + label + .tabbed-content { + display: block; +} +.md-typeset .tabbed-set > label { + z-index: 1; + width: auto; + padding: 0.6rem 1.25em 0.5rem; + color: var(--md-default-fg-color--light); + font-weight: 700; + font-size: 0.64rem; + border-bottom: 0.1rem solid transparent; + cursor: pointer; + transition: color 125ms; +} +html .md-typeset .tabbed-set > label:hover { + color: var(--md-accent-fg-color); +} + +:root { + --md-tasklist-icon: url('data:image/svg+xml;charset=utf-8,'); + --md-tasklist-icon--checked: url('data:image/svg+xml;charset=utf-8,'); +} + +.md-typeset .task-list-item { + position: relative; + list-style-type: none; +} +.md-typeset .task-list-item [type=checkbox] { + position: absolute; + top: 0.45em; + left: -2em; +} +[dir=rtl] .md-typeset .task-list-item [type=checkbox] { + right: -2em; + left: initial; +} +.md-typeset .task-list-control .task-list-indicator::before { + position: absolute; + top: 0.15em; + left: -1.5em; + width: 1.25em; + height: 1.25em; + background-color: var(--md-default-fg-color--lightest); + -webkit-mask-image: var(--md-tasklist-icon); + mask-image: var(--md-tasklist-icon); + content: ""; +} +[dir=rtl] .md-typeset .task-list-control .task-list-indicator::before { + right: -1.5em; + left: initial; +} +.md-typeset .task-list-control [type=checkbox]:checked + .task-list-indicator::before { + background-color: #00e676; + -webkit-mask-image: var(--md-tasklist-icon--checked); + mask-image: var(--md-tasklist-icon--checked); +} +.md-typeset .task-list-control [type=checkbox] { + z-index: -1; + opacity: 0; +} diff --git a/doc/theme/material/assets/stylesheets/palette.85bb4ebe.min.css b/doc/theme/material/assets/stylesheets/palette.85bb4ebe.min.css new file mode 100644 index 00000000..8f8a04a2 --- /dev/null +++ b/doc/theme/material/assets/stylesheets/palette.85bb4ebe.min.css @@ -0,0 +1,3 @@ +[data-md-color-primary=red]{--md-primary-fg-color: hsla(1deg, 83%, 63%, 1);--md-primary-fg-color--light: hsla(0deg, 73%, 77%, 1);--md-primary-fg-color--dark: hsla(1deg, 77%, 55%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=pink]{--md-primary-fg-color: hsla(340deg, 82%, 52%, 1);--md-primary-fg-color--light: hsla(340deg, 82%, 76%, 1);--md-primary-fg-color--dark: hsla(336deg, 78%, 43%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=purple]{--md-primary-fg-color: hsla(291deg, 47%, 51%, 1);--md-primary-fg-color--light: hsla(291deg, 47%, 71%, 1);--md-primary-fg-color--dark: hsla(287deg, 65%, 40%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=deep-purple]{--md-primary-fg-color: hsla(262deg, 47%, 55%, 1);--md-primary-fg-color--light: hsla(261deg, 46%, 74%, 1);--md-primary-fg-color--dark: hsla(262deg, 52%, 47%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=indigo]{--md-primary-fg-color: hsla(231deg, 48%, 48%, 1);--md-primary-fg-color--light: hsla(231deg, 44%, 74%, 1);--md-primary-fg-color--dark: hsla(232deg, 54%, 41%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=blue]{--md-primary-fg-color: hsla(207deg, 90%, 54%, 1);--md-primary-fg-color--light: hsla(207deg, 90%, 77%, 1);--md-primary-fg-color--dark: hsla(210deg, 79%, 46%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=light-blue]{--md-primary-fg-color: hsla(199deg, 98%, 48%, 1);--md-primary-fg-color--light: hsla(199deg, 92%, 74%, 1);--md-primary-fg-color--dark: hsla(201deg, 98%, 41%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=cyan]{--md-primary-fg-color: hsla(187deg, 100%, 42%, 1);--md-primary-fg-color--light: hsla(187deg, 72%, 71%, 1);--md-primary-fg-color--dark: hsla(186deg, 100%, 33%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=teal]{--md-primary-fg-color: hsla(174deg, 100%, 29%, 1);--md-primary-fg-color--light: hsla(174deg, 42%, 65%, 1);--md-primary-fg-color--dark: hsla(173deg, 100%, 24%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=green]{--md-primary-fg-color: hsla(122deg, 39%, 49%, 1);--md-primary-fg-color--light: hsla(122deg, 37%, 74%, 1);--md-primary-fg-color--dark: hsla(123deg, 43%, 39%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=light-green]{--md-primary-fg-color: hsla(88deg, 50%, 53%, 1);--md-primary-fg-color--light: hsla(88deg, 50%, 76%, 1);--md-primary-fg-color--dark: hsla(92deg, 48%, 42%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=lime]{--md-primary-fg-color: hsla(66deg, 70%, 54%, 1);--md-primary-fg-color--light: hsla(66deg, 71%, 77%, 1);--md-primary-fg-color--dark: hsla(62deg, 61%, 44%, 1);--md-primary-bg-color: var(--md-default-fg-color);--md-primary-bg-color--light: var(--md-default-fg-color--light)}[data-md-color-primary=yellow]{--md-primary-fg-color: hsla(54deg, 100%, 62%, 1);--md-primary-fg-color--light: hsla(54deg, 100%, 81%, 1);--md-primary-fg-color--dark: hsla(43deg, 96%, 58%, 1);--md-primary-bg-color: var(--md-default-fg-color);--md-primary-bg-color--light: var(--md-default-fg-color--light)}[data-md-color-primary=amber]{--md-primary-fg-color: hsla(45deg, 100%, 51%, 1);--md-primary-fg-color--light: hsla(45deg, 100%, 75%, 1);--md-primary-fg-color--dark: hsla(38deg, 100%, 50%, 1);--md-primary-bg-color: var(--md-default-fg-color);--md-primary-bg-color--light: var(--md-default-fg-color--light)}[data-md-color-primary=orange]{--md-primary-fg-color: hsla(36deg, 100%, 57%, 1);--md-primary-fg-color--light: hsla(36deg, 100%, 75%, 1);--md-primary-fg-color--dark: hsla(33deg, 100%, 49%, 1);--md-primary-bg-color: var(--md-default-fg-color);--md-primary-bg-color--light: var(--md-default-fg-color--light)}[data-md-color-primary=deep-orange]{--md-primary-fg-color: hsla(14deg, 100%, 63%, 1);--md-primary-fg-color--light: hsla(14deg, 100%, 78%, 1);--md-primary-fg-color--dark: hsla(14deg, 91%, 54%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=brown]{--md-primary-fg-color: hsla(16deg, 25%, 38%, 1);--md-primary-fg-color--light: hsla(15deg, 15%, 69%, 1);--md-primary-fg-color--dark: hsla(14deg, 26%, 29%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=grey]{--md-primary-fg-color: hsla(0deg, 0%, 46%, 1);--md-primary-fg-color--light: hsla(0deg, 0%, 93%, 1);--md-primary-fg-color--dark: hsla(0deg, 0%, 38%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=blue-grey]{--md-primary-fg-color: hsla(199deg, 18%, 40%, 1);--md-primary-fg-color--light: hsla(200deg, 15%, 73%, 1);--md-primary-fg-color--dark: hsla(199deg, 18%, 33%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=white]{--md-primary-fg-color: hsla(231deg, 48%, 48%, 1);--md-primary-fg-color--light: hsla(230deg, 44%, 64%, 1);--md-primary-fg-color--dark: hsla(232deg, 54%, 41%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=white] .md-header{color:var(--md-default-fg-color);background-color:var(--md-default-bg-color)}[data-md-color-primary=white] .md-hero{color:var(--md-default-fg-color);background-color:var(--md-default-bg-color)}[data-md-color-primary=white] .md-hero--expand{border-bottom:.05rem solid var(--md-default-fg-color--lightest)}@media screen and (max-width: 59.9375em){[data-md-color-primary=white] .md-nav__source{color:var(--md-default-fg-color);background-color:var(--md-default-fg-color--lightest)}}@media screen and (min-width: 60em){[data-md-color-primary=white] .md-search__input{background-color:var(--md-default-fg-color--lightest)}[data-md-color-primary=white] .md-search__input+.md-search__icon{color:var(--md-default-fg-color)}[data-md-color-primary=white] .md-search__input::-webkit-input-placeholder{color:var(--md-default-fg-color--light)}[data-md-color-primary=white] .md-search__input::-moz-placeholder{color:var(--md-default-fg-color--light)}[data-md-color-primary=white] .md-search__input::-ms-input-placeholder{color:var(--md-default-fg-color--light)}[data-md-color-primary=white] .md-search__input::placeholder{color:var(--md-default-fg-color--light)}[data-md-color-primary=white] .md-search__input:hover{background-color:var(--md-default-fg-color--lighter)}}@media screen and (max-width: 76.1875em){html [data-md-color-primary=white] .md-nav--primary .md-nav__title[for=__drawer]{color:var(--md-default-fg-color);background-color:var(--md-default-bg-color)}[data-md-color-primary=white] .md-hero{border-bottom:.05rem solid var(--md-default-fg-color--lightest)}}@media screen and (min-width: 76.25em){[data-md-color-primary=white] .md-tabs{color:var(--md-default-fg-color);background-color:var(--md-default-bg-color);border-bottom:.05rem solid var(--md-default-fg-color--lightest)}}[data-md-color-primary=black]{--md-primary-fg-color: hsla(231deg, 48%, 48%, 1);--md-primary-fg-color--light: hsla(230deg, 44%, 64%, 1);--md-primary-fg-color--dark: hsla(232deg, 54%, 41%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=black] .md-header{background-color:#000}[data-md-color-primary=black] .md-hero{background-color:#000}@media screen and (max-width: 59.9375em){[data-md-color-primary=black] .md-nav__source{background-color:var(--md-default-fg-color)}}@media screen and (min-width: 60em){[data-md-color-primary=black] .md-search__input{background-color:var(--md-default-bg-color--lighter)}[data-md-color-primary=black] .md-search__input:hover{background-color:var(--md-default-bg-color--lightest)}}@media screen and (max-width: 76.1875em){html [data-md-color-primary=black] .md-nav--primary .md-nav__title[for=__drawer]{background-color:#000}}@media screen and (min-width: 76.25em){[data-md-color-primary=black] .md-tabs{background-color:#000}}[data-md-color-accent=red]{--md-accent-fg-color: hsla(348deg, 100%, 55%, 1);--md-accent-fg-color--transparent: hsla(348deg, 100%, 55%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=pink]{--md-accent-fg-color: hsla(339deg, 100%, 48%, 1);--md-accent-fg-color--transparent: hsla(339deg, 100%, 48%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=purple]{--md-accent-fg-color: hsla(291deg, 96%, 62%, 1);--md-accent-fg-color--transparent: hsla(291deg, 96%, 62%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=deep-purple]{--md-accent-fg-color: hsla(256deg, 100%, 65%, 1);--md-accent-fg-color--transparent: hsla(256deg, 100%, 65%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=indigo]{--md-accent-fg-color: hsla(231deg, 99%, 66%, 1);--md-accent-fg-color--transparent: hsla(231deg, 99%, 66%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=blue]{--md-accent-fg-color: hsla(218deg, 100%, 63%, 1);--md-accent-fg-color--transparent: hsla(218deg, 100%, 63%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=light-blue]{--md-accent-fg-color: hsla(203deg, 100%, 46%, 1);--md-accent-fg-color--transparent: hsla(203deg, 100%, 46%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=cyan]{--md-accent-fg-color: hsla(188deg, 100%, 42%, 1);--md-accent-fg-color--transparent: hsla(188deg, 100%, 42%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=teal]{--md-accent-fg-color: hsla(172deg, 100%, 37%, 1);--md-accent-fg-color--transparent: hsla(172deg, 100%, 37%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=green]{--md-accent-fg-color: hsla(145deg, 100%, 39%, 1);--md-accent-fg-color--transparent: hsla(145deg, 100%, 39%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=light-green]{--md-accent-fg-color: hsla(97deg, 81%, 48%, 1);--md-accent-fg-color--transparent: hsla(97deg, 81%, 48%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=lime]{--md-accent-fg-color: hsla(75deg, 100%, 46%, 1);--md-accent-fg-color--transparent: hsla(75deg, 100%, 46%, 0.1);--md-accent-bg-color: var(--md-default-fg-color);--md-accent-bg-color--light: var(--md-default-fg-color--light)}[data-md-color-accent=yellow]{--md-accent-fg-color: hsla(50deg, 100%, 50%, 1);--md-accent-fg-color--transparent: hsla(50deg, 100%, 50%, 0.1);--md-accent-bg-color: var(--md-default-fg-color);--md-accent-bg-color--light: var(--md-default-fg-color--light)}[data-md-color-accent=amber]{--md-accent-fg-color: hsla(40deg, 100%, 50%, 1);--md-accent-fg-color--transparent: hsla(40deg, 100%, 50%, 0.1);--md-accent-bg-color: var(--md-default-fg-color);--md-accent-bg-color--light: var(--md-default-fg-color--light)}[data-md-color-accent=orange]{--md-accent-fg-color: hsla(34deg, 100%, 50%, 1);--md-accent-fg-color--transparent: hsla(34deg, 100%, 50%, 0.1);--md-accent-bg-color: var(--md-default-fg-color);--md-accent-bg-color--light: var(--md-default-fg-color--light)}[data-md-color-accent=deep-orange]{--md-accent-fg-color: hsla(14deg, 100%, 63%, 1);--md-accent-fg-color--transparent: hsla(14deg, 100%, 63%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)} + +/*# sourceMappingURL=palette.85bb4ebe.min.css.map*/ \ No newline at end of file diff --git a/doc/theme/material/assets/stylesheets/palette.85bb4ebe.min.css.map b/doc/theme/material/assets/stylesheets/palette.85bb4ebe.min.css.map new file mode 100644 index 00000000..b650d405 --- /dev/null +++ b/doc/theme/material/assets/stylesheets/palette.85bb4ebe.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./src/assets/stylesheets/palette.scss","webpack:///./src/assets/stylesheets/utilities/_break.scss"],"names":[],"mappings":"AAiEE,4BACE,+CACA,sDACA,qDAOE,kDACA,gEAXJ,6BACE,iDACA,wDACA,uDAOE,kDACA,gEAXJ,+BACE,iDACA,wDACA,uDAOE,kDACA,gEAXJ,oCACE,iDACA,wDACA,uDAOE,kDACA,gEAXJ,+BACE,iDACA,wDACA,uDAOE,kDACA,gEAXJ,6BACE,iDACA,wDACA,uDAOE,kDACA,gEAXJ,mCACE,iDACA,wDACA,uDAOE,kDACA,gEAXJ,6BACE,kDACA,wDACA,wDAOE,kDACA,gEAXJ,6BACE,kDACA,wDACA,wDAOE,kDACA,gEAXJ,8BACE,iDACA,wDACA,uDAOE,kDACA,gEAXJ,oCACE,gDACA,uDACA,sDAOE,kDACA,gEAXJ,6BACE,gDACA,uDACA,sDAIE,kDACA,gEARJ,+BACE,iDACA,wDACA,sDAIE,kDACA,gEARJ,8BACE,iDACA,wDACA,uDAIE,kDACA,gEARJ,+BACE,iDACA,wDACA,uDAIE,kDACA,gEARJ,oCACE,iDACA,wDACA,sDAOE,kDACA,gEAXJ,8BACE,gDACA,uDACA,sDAOE,kDACA,gEAXJ,6BACE,8CACA,qDACA,oDAOE,kDACA,gEAXJ,kCACE,iDACA,wDACA,uDAOE,kDACA,gEAUN,8BACE,iDACA,wDACA,uDACA,kDACA,gEAGA,yCACE,iCACA,4CAIF,uCACE,iCACA,4CAGA,+CACE,gECmGF,yCD3FA,8CACE,iCACA,uDCuEF,oCD/DA,gDACE,sDAGA,iEACE,iCAIF,2EACE,wCADF,kEACE,wCADF,uEACE,wCADF,6DACE,wCAIF,sDACE,sDCkEJ,yCDzDA,iFACE,iCACA,4CAIF,uCACE,iECgCF,uCDxBA,uCACE,iCACA,4CACA,iEAUN,8BACE,iDACA,wDACA,uDACA,kDACA,gEAGA,yCACE,sBAIF,uCACE,sBCeA,yCDRA,8CACE,6CCXF,oCDmBA,gDACE,qDAGA,sDACE,uDCNJ,yCDeA,iFACE,uBClCF,uCD0CA,uCACE,uBA6BJ,2BACE,iDACA,gEAOE,iDACA,+DAVJ,4BACE,iDACA,gEAOE,iDACA,+DAVJ,8BACE,gDACA,+DAOE,iDACA,+DAVJ,mCACE,iDACA,gEAOE,iDACA,+DAVJ,8BACE,gDACA,+DAOE,iDACA,+DAVJ,4BACE,iDACA,gEAOE,iDACA,+DAVJ,kCACE,iDACA,gEAOE,iDACA,+DAVJ,4BACE,iDACA,gEAOE,iDACA,+DAVJ,4BACE,iDACA,gEAOE,iDACA,+DAVJ,6BACE,iDACA,gEAOE,iDACA,+DAVJ,mCACE,+CACA,8DAOE,iDACA,+DAVJ,4BACE,gDACA,+DAIE,iDACA,+DAPJ,8BACE,gDACA,+DAIE,iDACA,+DAPJ,6BACE,gDACA,+DAIE,iDACA,+DAPJ,8BACE,gDACA,+DAIE,iDACA,+DAPJ,mCACE,gDACA,+DAOE,iDACA,+D","file":"assets/stylesheets/palette.85bb4ebe.min.css","sourcesContent":["////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Dependencies\n// ----------------------------------------------------------------------------\n\n@import \"modularscale\";\n@import \"material-color\";\n\n// ----------------------------------------------------------------------------\n// Local imports\n// ----------------------------------------------------------------------------\n\n@import \"utilities/break\";\n@import \"utilities/convert\";\n\n@import \"config\";\n\n// ----------------------------------------------------------------------------\n// Rules: primary colors\n// ----------------------------------------------------------------------------\n\n@each $name, $colors in (\n \"red\": $clr-red-400 $clr-red-200 $clr-red-600,\n \"pink\": $clr-pink-500 $clr-pink-200 $clr-pink-700,\n \"purple\": $clr-purple-400 $clr-purple-200 $clr-purple-600,\n \"deep-purple\": $clr-deep-purple-400 $clr-deep-purple-200 $clr-deep-purple-500,\n \"indigo\": $clr-indigo-500 $clr-indigo-200 $clr-indigo-700,\n \"blue\": $clr-blue-500 $clr-blue-200 $clr-blue-700,\n \"light-blue\": $clr-light-blue-500 $clr-light-blue-200 $clr-light-blue-700,\n \"cyan\": $clr-cyan-500 $clr-cyan-200 $clr-cyan-700,\n \"teal\": $clr-teal-500 $clr-teal-200 $clr-teal-700,\n \"green\": $clr-green-500 $clr-green-200 $clr-green-700,\n \"light-green\": $clr-light-green-500 $clr-light-green-200 $clr-light-green-700,\n \"lime\": $clr-lime-500 $clr-lime-200 $clr-lime-700,\n \"yellow\": $clr-yellow-500 $clr-yellow-200 $clr-yellow-700,\n \"amber\": $clr-amber-500 $clr-amber-200 $clr-amber-700,\n \"orange\": $clr-orange-400 $clr-orange-200 $clr-orange-600,\n \"deep-orange\": $clr-deep-orange-400 $clr-deep-orange-200 $clr-deep-orange-600,\n \"brown\": $clr-brown-500 $clr-brown-200 $clr-brown-700,\n \"grey\": $clr-grey-600 $clr-grey-200 $clr-grey-700,\n \"blue-grey\": $clr-blue-grey-600 $clr-blue-grey-200 $clr-blue-grey-700\n) {\n\n // Color palette\n [data-md-color-primary=\"#{$name}\"] {\n --md-primary-fg-color: hsla(#{hex2hsl(nth($colors, 1))}, 1);\n --md-primary-fg-color--light: hsla(#{hex2hsl(nth($colors, 2))}, 1);\n --md-primary-fg-color--dark: hsla(#{hex2hsl(nth($colors, 3))}, 1);\n\n // Inverted text for lighter shades\n @if index(\"lime\" \"yellow\" \"amber\" \"orange\", $name) {\n --md-primary-bg-color: var(--md-default-fg-color);\n --md-primary-bg-color--light: var(--md-default-fg-color--light);\n } @else {\n --md-primary-bg-color: var(--md-default-bg-color);\n --md-primary-bg-color--light: var(--md-default-bg-color--light);\n }\n }\n}\n\n// ----------------------------------------------------------------------------\n// Rules: white\n// ----------------------------------------------------------------------------\n\n// Color palette\n[data-md-color-primary=\"white\"] {\n --md-primary-fg-color: hsla(#{hex2hsl($clr-indigo-500)}, 1);\n --md-primary-fg-color--light: hsla(#{hex2hsl($clr-indigo-300)}, 1);\n --md-primary-fg-color--dark: hsla(#{hex2hsl($clr-indigo-700)}, 1);\n --md-primary-bg-color: var(--md-default-bg-color);\n --md-primary-bg-color--light: var(--md-default-bg-color--light);\n\n // Application header (stays always on top)\n .md-header {\n color: var(--md-default-fg-color);\n background-color: var(--md-default-bg-color);\n }\n\n // Hero teaser\n .md-hero {\n color: var(--md-default-fg-color);\n background-color: var(--md-default-bg-color);\n\n // Add a border if there are no tabs\n &--expand {\n border-bottom: px2rem(1px) solid var(--md-default-fg-color--lightest);\n }\n }\n\n // [tablet portrait -]: Layered navigation\n @include break-to-device(tablet portrait) {\n\n // Repository containing source\n .md-nav__source {\n color: var(--md-default-fg-color);\n background-color: var(--md-default-fg-color--lightest);\n }\n }\n\n // [tablet portrait +]: Change color of search input\n @include break-from-device(tablet landscape) {\n\n // Search input\n .md-search__input {\n background-color: var(--md-default-fg-color--lightest);\n\n // Icon color\n + .md-search__icon {\n color: var(--md-default-fg-color);\n }\n\n // Placeholder color\n &::placeholder {\n color: var(--md-default-fg-color--light);\n }\n\n // Hovered search field\n &:hover {\n background-color: var(--md-default-fg-color--lighter);\n }\n }\n }\n\n // [tablet -]: Layered navigation\n @include break-to-device(tablet) {\n\n // Site title in main navigation\n html & .md-nav--primary .md-nav__title[for=\"__drawer\"] {\n color: var(--md-default-fg-color);\n background-color: var(--md-default-bg-color);\n }\n\n // Hero teaser\n .md-hero {\n border-bottom: px2rem(1px) solid var(--md-default-fg-color--lightest);\n }\n }\n\n // [screen +]: Set background color for tabs\n @include break-from-device(screen) {\n\n // Tabs with outline\n .md-tabs {\n color: var(--md-default-fg-color);\n background-color: var(--md-default-bg-color);\n border-bottom: px2rem(1px) solid var(--md-default-fg-color--lightest);\n }\n }\n}\n\n// ----------------------------------------------------------------------------\n// Rules: black\n// ----------------------------------------------------------------------------\n\n// Color palette\n[data-md-color-primary=\"black\"] {\n --md-primary-fg-color: hsla(#{hex2hsl($clr-indigo-500)}, 1);\n --md-primary-fg-color--light: hsla(#{hex2hsl($clr-indigo-300)}, 1);\n --md-primary-fg-color--dark: hsla(#{hex2hsl($clr-indigo-700)}, 1);\n --md-primary-bg-color: var(--md-default-bg-color);\n --md-primary-bg-color--light: var(--md-default-bg-color--light);\n\n // Application header (stays always on top)\n .md-header {\n background-color: hsla(0, 0%, 0%, 1);\n }\n\n // Hero teaser\n .md-hero {\n background-color: hsla(0, 0%, 0%, 1);\n }\n\n // [tablet portrait -]: Layered navigation\n @include break-to-device(tablet portrait) {\n\n // Repository containing source\n .md-nav__source {\n background-color: var(--md-default-fg-color);\n }\n }\n\n // [tablet landscape +]: Header-embedded search\n @include break-from-device(tablet landscape) {\n\n // Search input\n .md-search__input {\n background-color: var(--md-default-bg-color--lighter);\n\n // Hovered search field\n &:hover {\n background-color: var(--md-default-bg-color--lightest);\n }\n }\n }\n\n // [tablet -]: Layered navigation\n @include break-to-device(tablet) {\n\n // Site title in main navigation\n html & .md-nav--primary .md-nav__title[for=\"__drawer\"] {\n background-color: hsla(0, 0%, 0%, 1);\n }\n }\n\n // [screen +]: Set background color for tabs\n @include break-from-device(screen) {\n\n // Tabs with outline\n .md-tabs {\n background-color: hsla(0, 0%, 0%, 1);\n }\n }\n}\n\n// ----------------------------------------------------------------------------\n// Rules: accent colors\n// ----------------------------------------------------------------------------\n\n@each $name, $color in (\n \"red\": $clr-red-a400,\n \"pink\": $clr-pink-a400,\n \"purple\": $clr-purple-a200,\n \"deep-purple\": $clr-deep-purple-a200,\n \"indigo\": $clr-indigo-a200,\n \"blue\": $clr-blue-a200,\n \"light-blue\": $clr-light-blue-a700,\n \"cyan\": $clr-cyan-a700,\n \"teal\": $clr-teal-a700,\n \"green\": $clr-green-a700,\n \"light-green\": $clr-light-green-a700,\n \"lime\": $clr-lime-a700,\n \"yellow\": $clr-yellow-a700,\n \"amber\": $clr-amber-a700,\n \"orange\": $clr-orange-a400,\n \"deep-orange\": $clr-deep-orange-a200\n) {\n\n // Color palette\n [data-md-color-accent=\"#{$name}\"] {\n --md-accent-fg-color: hsla(#{hex2hsl($color)}, 1);\n --md-accent-fg-color--transparent: hsla(#{hex2hsl($color)}, 0.1);\n\n // Inverted text for lighter shades\n @if index(\"lime\" \"yellow\" \"amber\" \"orange\", $name) {\n --md-accent-bg-color: var(--md-default-fg-color);\n --md-accent-bg-color--light: var(--md-default-fg-color--light);\n } @else {\n --md-accent-bg-color: var(--md-default-bg-color);\n --md-accent-bg-color--light: var(--md-default-bg-color--light);\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Variables\n// ----------------------------------------------------------------------------\n\n///\n/// Device-specific breakpoints\n///\n/// @example\n/// $break-devices: (\n/// mobile: (\n/// portrait: 220px 479px,\n/// landscape: 480px 719px\n/// ),\n/// tablet: (\n/// portrait: 720px 959px,\n/// landscape: 960px 1219px\n/// ),\n/// screen: (\n/// small: 1220px 1599px,\n/// medium: 1600px 1999px,\n/// large: 2000px\n/// )\n/// );\n///\n$break-devices: () !default;\n\n// ----------------------------------------------------------------------------\n// Helpers\n// ----------------------------------------------------------------------------\n\n///\n/// Choose minimum and maximum device widths\n///\n@function break-select-min-max($devices) {\n $min: 1000000;\n $max: 0;\n @each $key, $value in $devices {\n @while type-of($value) == map {\n $value: break-select-min-max($value);\n }\n @if type-of($value) == list {\n @each $number in $value {\n @if type-of($number) == number {\n $min: min($number, $min);\n @if $max != null {\n $max: max($number, $max);\n }\n } @else {\n @error \"Invalid number: #{$number}\";\n }\n }\n } @else if type-of($value) == number {\n $min: min($value, $min);\n $max: null;\n } @else {\n @error \"Invalid value: #{$value}\";\n }\n }\n @return $min, $max;\n}\n\n///\n/// Select minimum and maximum widths for a device breakpoint\n///\n@function break-select-device($device) {\n $current: $break-devices;\n @for $n from 1 through length($device) {\n @if type-of($current) == map {\n $current: map-get($current, nth($device, $n));\n } @else {\n @error \"Invalid device map: #{$devices}\";\n }\n }\n @if type-of($current) == list or type-of($current) == number {\n $current: (default: $current);\n }\n @return break-select-min-max($current);\n}\n\n// ----------------------------------------------------------------------------\n// Mixins\n// ----------------------------------------------------------------------------\n\n///\n/// A minimum-maximum media query breakpoint\n///\n@mixin break-at($breakpoint) {\n @if type-of($breakpoint) == number {\n @media screen and (min-width: $breakpoint) {\n @content;\n }\n } @else if type-of($breakpoint) == list {\n $min: nth($breakpoint, 1);\n $max: nth($breakpoint, 2);\n @if type-of($min) == number and type-of($max) == number {\n @media screen and (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else {\n @error \"Invalid breakpoint: #{$breakpoint}\";\n }\n } @else {\n @error \"Invalid breakpoint: #{$breakpoint}\";\n }\n}\n\n///\n/// An orientation media query breakpoint\n///\n@mixin break-at-orientation($breakpoint) {\n @if type-of($breakpoint) == string {\n @media screen and (orientation: $breakpoint) {\n @content;\n }\n } @else {\n @error \"Invalid breakpoint: #{$breakpoint}\";\n }\n}\n\n///\n/// A maximum-aspect-ratio media query breakpoint\n///\n@mixin break-at-ratio($breakpoint) {\n @if type-of($breakpoint) == number {\n @media screen and (max-aspect-ratio: $breakpoint) {\n @content;\n }\n } @else {\n @error \"Invalid breakpoint: #{$breakpoint}\";\n }\n}\n\n///\n/// A minimum-maximum media query device breakpoint\n///\n@mixin break-at-device($device) {\n @if type-of($device) == string {\n $device: $device,;\n }\n @if type-of($device) == list {\n $breakpoint: break-select-device($device);\n @if nth($breakpoint, 2) != null {\n $min: nth($breakpoint, 1);\n $max: nth($breakpoint, 2);\n @media screen and (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else {\n @error \"Invalid device: #{$device}\";\n }\n } @else {\n @error \"Invalid device: #{$device}\";\n }\n}\n\n///\n/// A minimum media query device breakpoint\n///\n@mixin break-from-device($device) {\n @if type-of($device) == string {\n $device: $device,;\n }\n @if type-of($device) == list {\n $breakpoint: break-select-device($device);\n $min: nth($breakpoint, 1);\n @media screen and (min-width: $min) {\n @content;\n }\n } @else {\n @error \"Invalid device: #{$device}\";\n }\n}\n\n///\n/// A maximum media query device breakpoint\n///\n@mixin break-to-device($device) {\n @if type-of($device) == string {\n $device: $device,;\n }\n @if type-of($device) == list {\n $breakpoint: break-select-device($device);\n $max: nth($breakpoint, 2);\n @media screen and (max-width: $max) {\n @content;\n }\n } @else {\n @error \"Invalid device: #{$device}\";\n }\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/doc/theme/material/assets/stylesheets/palette.css b/doc/theme/material/assets/stylesheets/palette.css new file mode 100644 index 00000000..837aafea --- /dev/null +++ b/doc/theme/material/assets/stylesheets/palette.css @@ -0,0 +1,364 @@ +[data-md-color-primary=red] { + --md-primary-fg-color: hsla(1deg, 83%, 63%, 1); + --md-primary-fg-color--light: hsla(0deg, 73%, 77%, 1); + --md-primary-fg-color--dark: hsla(1deg, 77%, 55%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=pink] { + --md-primary-fg-color: hsla(340deg, 82%, 52%, 1); + --md-primary-fg-color--light: hsla(340deg, 82%, 76%, 1); + --md-primary-fg-color--dark: hsla(336deg, 78%, 43%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=purple] { + --md-primary-fg-color: hsla(291deg, 47%, 51%, 1); + --md-primary-fg-color--light: hsla(291deg, 47%, 71%, 1); + --md-primary-fg-color--dark: hsla(287deg, 65%, 40%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=deep-purple] { + --md-primary-fg-color: hsla(262deg, 47%, 55%, 1); + --md-primary-fg-color--light: hsla(261deg, 46%, 74%, 1); + --md-primary-fg-color--dark: hsla(262deg, 52%, 47%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=indigo] { + --md-primary-fg-color: hsla(231deg, 48%, 48%, 1); + --md-primary-fg-color--light: hsla(231deg, 44%, 74%, 1); + --md-primary-fg-color--dark: hsla(232deg, 54%, 41%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=blue] { + --md-primary-fg-color: hsla(207deg, 90%, 54%, 1); + --md-primary-fg-color--light: hsla(207deg, 90%, 77%, 1); + --md-primary-fg-color--dark: hsla(210deg, 79%, 46%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=light-blue] { + --md-primary-fg-color: hsla(199deg, 98%, 48%, 1); + --md-primary-fg-color--light: hsla(199deg, 92%, 74%, 1); + --md-primary-fg-color--dark: hsla(201deg, 98%, 41%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=cyan] { + --md-primary-fg-color: hsla(187deg, 100%, 42%, 1); + --md-primary-fg-color--light: hsla(187deg, 72%, 71%, 1); + --md-primary-fg-color--dark: hsla(186deg, 100%, 33%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=teal] { + --md-primary-fg-color: hsla(174deg, 100%, 29%, 1); + --md-primary-fg-color--light: hsla(174deg, 42%, 65%, 1); + --md-primary-fg-color--dark: hsla(173deg, 100%, 24%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=green] { + --md-primary-fg-color: hsla(122deg, 39%, 49%, 1); + --md-primary-fg-color--light: hsla(122deg, 37%, 74%, 1); + --md-primary-fg-color--dark: hsla(123deg, 43%, 39%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=light-green] { + --md-primary-fg-color: hsla(88deg, 50%, 53%, 1); + --md-primary-fg-color--light: hsla(88deg, 50%, 76%, 1); + --md-primary-fg-color--dark: hsla(92deg, 48%, 42%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=lime] { + --md-primary-fg-color: hsla(66deg, 70%, 54%, 1); + --md-primary-fg-color--light: hsla(66deg, 71%, 77%, 1); + --md-primary-fg-color--dark: hsla(62deg, 61%, 44%, 1); + --md-primary-bg-color: var(--md-default-fg-color); + --md-primary-bg-color--light: var(--md-default-fg-color--light); +} + +[data-md-color-primary=yellow] { + --md-primary-fg-color: hsla(54deg, 100%, 62%, 1); + --md-primary-fg-color--light: hsla(54deg, 100%, 81%, 1); + --md-primary-fg-color--dark: hsla(43deg, 96%, 58%, 1); + --md-primary-bg-color: var(--md-default-fg-color); + --md-primary-bg-color--light: var(--md-default-fg-color--light); +} + +[data-md-color-primary=amber] { + --md-primary-fg-color: hsla(45deg, 100%, 51%, 1); + --md-primary-fg-color--light: hsla(45deg, 100%, 75%, 1); + --md-primary-fg-color--dark: hsla(38deg, 100%, 50%, 1); + --md-primary-bg-color: var(--md-default-fg-color); + --md-primary-bg-color--light: var(--md-default-fg-color--light); +} + +[data-md-color-primary=orange] { + --md-primary-fg-color: hsla(36deg, 100%, 57%, 1); + --md-primary-fg-color--light: hsla(36deg, 100%, 75%, 1); + --md-primary-fg-color--dark: hsla(33deg, 100%, 49%, 1); + --md-primary-bg-color: var(--md-default-fg-color); + --md-primary-bg-color--light: var(--md-default-fg-color--light); +} + +[data-md-color-primary=deep-orange] { + --md-primary-fg-color: hsla(14deg, 100%, 63%, 1); + --md-primary-fg-color--light: hsla(14deg, 100%, 78%, 1); + --md-primary-fg-color--dark: hsla(14deg, 91%, 54%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=brown] { + --md-primary-fg-color: hsla(16deg, 25%, 38%, 1); + --md-primary-fg-color--light: hsla(15deg, 15%, 69%, 1); + --md-primary-fg-color--dark: hsla(14deg, 26%, 29%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=grey] { + --md-primary-fg-color: hsla(0deg, 0%, 46%, 1); + --md-primary-fg-color--light: hsla(0deg, 0%, 93%, 1); + --md-primary-fg-color--dark: hsla(0deg, 0%, 38%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=blue-grey] { + --md-primary-fg-color: hsla(199deg, 18%, 40%, 1); + --md-primary-fg-color--light: hsla(200deg, 15%, 73%, 1); + --md-primary-fg-color--dark: hsla(199deg, 18%, 33%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=white] { + --md-primary-fg-color: hsla(231deg, 48%, 48%, 1); + --md-primary-fg-color--light: hsla(230deg, 44%, 64%, 1); + --md-primary-fg-color--dark: hsla(232deg, 54%, 41%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} +[data-md-color-primary=white] .md-header { + color: var(--md-default-fg-color); + background-color: var(--md-default-bg-color); +} +[data-md-color-primary=white] .md-hero { + color: var(--md-default-fg-color); + background-color: var(--md-default-bg-color); +} +[data-md-color-primary=white] .md-hero--expand { + border-bottom: 0.05rem solid var(--md-default-fg-color--lightest); +} +@media screen and (max-width: 59.9375em) { + [data-md-color-primary=white] .md-nav__source { + color: var(--md-default-fg-color); + background-color: var(--md-default-fg-color--lightest); + } +} +@media screen and (min-width: 60em) { + [data-md-color-primary=white] .md-search__input { + background-color: var(--md-default-fg-color--lightest); + } + [data-md-color-primary=white] .md-search__input + .md-search__icon { + color: var(--md-default-fg-color); + } + [data-md-color-primary=white] .md-search__input::-webkit-input-placeholder { + color: var(--md-default-fg-color--light); + } + [data-md-color-primary=white] .md-search__input::-moz-placeholder { + color: var(--md-default-fg-color--light); + } + [data-md-color-primary=white] .md-search__input::-ms-input-placeholder { + color: var(--md-default-fg-color--light); + } + [data-md-color-primary=white] .md-search__input::placeholder { + color: var(--md-default-fg-color--light); + } + [data-md-color-primary=white] .md-search__input:hover { + background-color: var(--md-default-fg-color--lighter); + } +} +@media screen and (max-width: 76.1875em) { + html [data-md-color-primary=white] .md-nav--primary .md-nav__title[for=__drawer] { + color: var(--md-default-fg-color); + background-color: var(--md-default-bg-color); + } + [data-md-color-primary=white] .md-hero { + border-bottom: 0.05rem solid var(--md-default-fg-color--lightest); + } +} +@media screen and (min-width: 76.25em) { + [data-md-color-primary=white] .md-tabs { + color: var(--md-default-fg-color); + background-color: var(--md-default-bg-color); + border-bottom: 0.05rem solid var(--md-default-fg-color--lightest); + } +} + +[data-md-color-primary=black] { + --md-primary-fg-color: hsla(231deg, 48%, 48%, 1); + --md-primary-fg-color--light: hsla(230deg, 44%, 64%, 1); + --md-primary-fg-color--dark: hsla(232deg, 54%, 41%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} +[data-md-color-primary=black] .md-header { + background-color: black; +} +[data-md-color-primary=black] .md-hero { + background-color: black; +} +@media screen and (max-width: 59.9375em) { + [data-md-color-primary=black] .md-nav__source { + background-color: var(--md-default-fg-color); + } +} +@media screen and (min-width: 60em) { + [data-md-color-primary=black] .md-search__input { + background-color: var(--md-default-bg-color--lighter); + } + [data-md-color-primary=black] .md-search__input:hover { + background-color: var(--md-default-bg-color--lightest); + } +} +@media screen and (max-width: 76.1875em) { + html [data-md-color-primary=black] .md-nav--primary .md-nav__title[for=__drawer] { + background-color: black; + } +} +@media screen and (min-width: 76.25em) { + [data-md-color-primary=black] .md-tabs { + background-color: black; + } +} + +[data-md-color-accent=red] { + --md-accent-fg-color: hsla(348deg, 100%, 55%, 1); + --md-accent-fg-color--transparent: hsla(348deg, 100%, 55%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=pink] { + --md-accent-fg-color: hsla(339deg, 100%, 48%, 1); + --md-accent-fg-color--transparent: hsla(339deg, 100%, 48%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=purple] { + --md-accent-fg-color: hsla(291deg, 96%, 62%, 1); + --md-accent-fg-color--transparent: hsla(291deg, 96%, 62%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=deep-purple] { + --md-accent-fg-color: hsla(256deg, 100%, 65%, 1); + --md-accent-fg-color--transparent: hsla(256deg, 100%, 65%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=indigo] { + --md-accent-fg-color: hsla(231deg, 99%, 66%, 1); + --md-accent-fg-color--transparent: hsla(231deg, 99%, 66%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=blue] { + --md-accent-fg-color: hsla(218deg, 100%, 63%, 1); + --md-accent-fg-color--transparent: hsla(218deg, 100%, 63%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=light-blue] { + --md-accent-fg-color: hsla(203deg, 100%, 46%, 1); + --md-accent-fg-color--transparent: hsla(203deg, 100%, 46%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=cyan] { + --md-accent-fg-color: hsla(188deg, 100%, 42%, 1); + --md-accent-fg-color--transparent: hsla(188deg, 100%, 42%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=teal] { + --md-accent-fg-color: hsla(172deg, 100%, 37%, 1); + --md-accent-fg-color--transparent: hsla(172deg, 100%, 37%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=green] { + --md-accent-fg-color: hsla(145deg, 100%, 39%, 1); + --md-accent-fg-color--transparent: hsla(145deg, 100%, 39%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=light-green] { + --md-accent-fg-color: hsla(97deg, 81%, 48%, 1); + --md-accent-fg-color--transparent: hsla(97deg, 81%, 48%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=lime] { + --md-accent-fg-color: hsla(75deg, 100%, 46%, 1); + --md-accent-fg-color--transparent: hsla(75deg, 100%, 46%, 0.1); + --md-accent-bg-color: var(--md-default-fg-color); + --md-accent-bg-color--light: var(--md-default-fg-color--light); +} + +[data-md-color-accent=yellow] { + --md-accent-fg-color: hsla(50deg, 100%, 50%, 1); + --md-accent-fg-color--transparent: hsla(50deg, 100%, 50%, 0.1); + --md-accent-bg-color: var(--md-default-fg-color); + --md-accent-bg-color--light: var(--md-default-fg-color--light); +} + +[data-md-color-accent=amber] { + --md-accent-fg-color: hsla(40deg, 100%, 50%, 1); + --md-accent-fg-color--transparent: hsla(40deg, 100%, 50%, 0.1); + --md-accent-bg-color: var(--md-default-fg-color); + --md-accent-bg-color--light: var(--md-default-fg-color--light); +} + +[data-md-color-accent=orange] { + --md-accent-fg-color: hsla(34deg, 100%, 50%, 1); + --md-accent-fg-color--transparent: hsla(34deg, 100%, 50%, 0.1); + --md-accent-bg-color: var(--md-default-fg-color); + --md-accent-bg-color--light: var(--md-default-fg-color--light); +} + +[data-md-color-accent=deep-orange] { + --md-accent-fg-color: hsla(14deg, 100%, 63%, 1); + --md-accent-fg-color--transparent: hsla(14deg, 100%, 63%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} diff --git a/doc/theme/material/base.html b/doc/theme/material/base.html new file mode 100644 index 00000000..e288d08a --- /dev/null +++ b/doc/theme/material/base.html @@ -0,0 +1,329 @@ +{#- + This file was automatically generated - do not edit +-#} +{% import "partials/language.html" as lang with context %} +{% set palette = config.theme.palette %} +{% set font = config.theme.font %} +{% set donation_link = config.theme.donation_link or "#" %} + + + + + {% block site_meta %} + + + {% if page and page.meta and page.meta.description %} + + {% elif config.site_description %} + + {% endif %} + {% if page and page.meta and page.meta.redirect %} + + + + + {% elif page.canonical_url %} + + {% endif %} + {% if page and page.meta and page.meta.author %} + + {% elif config.site_author %} + + {% endif %} + + + {% endblock %} + {% block htmltitle %} + {% if page and page.meta and page.meta.title %} + {{ page.meta.title }} + {% elif page and page.title and not page.is_homepage %} + {{ page.title | striptags }} - {{ config.site_name }} + {% else %} + {{ config.site_name }} + {% endif %} + {% endblock %} + {% block styles %} + + {% if palette.primary or palette.accent %} + + {% endif %} + {% if palette.primary %} + {% import "partials/palette.html" as map %} + {% set primary = map.primary( + palette.primary | replace(" ", "-") | lower + ) %} + + {% endif %} + {% endblock %} + {% block libs %}{% endblock %} + {% block fonts %} + {% if font != false %} + + + + {% endif %} + {% endblock %} + {% if config.extra.manifest %} + + {% endif %} + {% for path in config["extra_css"] %} + + {% endfor %} + {% block analytics %} + {% if config.google_analytics %} + {% include "partials/integrations/analytics.html" %} + {% endif %} + {% endblock %} + {% block extrahead %}{% endblock %} + +{% set direction = config.theme.direction or lang.t('direction') %} +{% if palette.primary or palette.accent %} +{% set primary = palette.primary | replace(" ", "-") | lower %} +{% set accent = palette.accent | replace(" ", "-") | lower %} + + + {% else %} + + + {% endif %} + + + +
    + {% if page.toc | first is defined %} + {% set skip = page.toc | first %} + + {{ lang.t('skip.link.title') }} + + {% endif %} +
    +
    + {% if self.announce() %} + + {% endif %} +
    + {% block header %} + {% include "partials/header.html" %} + {% endblock %} +
    + {% block hero %} + {% if page and page.meta and page.meta.hero %} + {% include "partials/hero.html" with context %} + {% endif %} + {% endblock %} + {% block tabs %} + {% if "tabs" in config.theme.features %} + {% include "partials/tabs.html" %} + {% endif %} + {% endblock %} + + {% if page and page.url and "en/" in page.url%} +
    +
    Helping who helps you
    +

    + Support this work +

    + + Donation + +
    + {% endif %} + {% if page and page.url and "es/" in page.url%} +
    + + Traduccion: Dimitri + +
    Ayudando a quien te ayuda.
    +

    + Apoya este proyecto con una donación +

    + + Donación + +
    + {% endif %} + {% if page and page.url and "pt/" in page.url%} +
    +
    Ajudando quem te ajuda
    +

    + Apoie este trabalho +

    + + Doação + +
    + {% endif %} + +
    +
    +
    + {% block site_nav %} + {% if nav %} +
    +
    +
    + {% include "partials/nav.html" %} +
    +
    +
    + {% endif %} + {% if page.toc %} +
    +
    +
    + {% include "partials/toc.html" %} +
    +
    +
    + {% endif %} + {% endblock %} +
    +
    + {% block content %} + {% if page.edit_url %} + + {% include ".icons/material/pencil.svg" %} + + {% endif %} + {% block source %} + {% if page and page.meta and page.meta.source %} + {% include "partials/source-link.html" %} + {% endif %} + {% endblock %} + {% if not "\x3ch1" in page.content %} +

    {{ page.title | default(config.site_name, true)}}

    + {% endif %} + {{ page.content }} + {% if page and page.meta %} + {% if page.meta.git_revision_date_localized or + page.meta.revision_date + %} + {% include "partials/source-date.html" %} + {% endif %} + {% endif %} + {% endblock %} + {% block disqus %} + {% include "partials/integrations/disqus.html" %} + {% endblock %} +
    +
    +
    +
    + {% block footer %} + {% include "partials/footer.html" %} + {% endblock %} +
    + {% block scripts %} + + + {%- set translations = {} -%} + {%- for key in [ + "clipboard.copy", + "clipboard.copied", + "search.config.lang", + "search.config.pipeline", + "search.config.separator", + "search.result.placeholder", + "search.result.none", + "search.result.one", + "search.result.other" + ] -%} + {%- set _ = translations.update({ key: lang.t(key) }) -%} + {%- endfor -%} + + {% block config %}{% endblock %} + {% set features = config.theme.features | tojson %} + + {% for path in config["extra_javascript"] %} + + {% endfor %} + {% endblock %} + + + \ No newline at end of file diff --git a/doc/theme/material/logo.png b/doc/theme/material/logo.png new file mode 100644 index 00000000..a571a081 Binary files /dev/null and b/doc/theme/material/logo.png differ diff --git a/doc/theme/material/logo.svg b/doc/theme/material/logo.svg new file mode 100644 index 00000000..c0dd470f --- /dev/null +++ b/doc/theme/material/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/theme/material/main.html b/doc/theme/material/main.html new file mode 100644 index 00000000..094a197b --- /dev/null +++ b/doc/theme/material/main.html @@ -0,0 +1,4 @@ +{#- + This file was automatically generated - do not edit +-#} +{% extends "base.html" %} diff --git a/doc/theme/material/partials/footer.html b/doc/theme/material/partials/footer.html new file mode 100644 index 00000000..d8989fc9 --- /dev/null +++ b/doc/theme/material/partials/footer.html @@ -0,0 +1,56 @@ +{#- + This file was automatically generated - do not edit +-#} +{% import "partials/language.html" as lang with context %} + \ No newline at end of file diff --git a/doc/theme/material/partials/header.html b/doc/theme/material/partials/header.html new file mode 100644 index 00000000..cbf782e4 --- /dev/null +++ b/doc/theme/material/partials/header.html @@ -0,0 +1,44 @@ +{#- + This file was automatically generated - do not edit +-#} +
    + +
    diff --git a/doc/theme/material/partials/hero.html b/doc/theme/material/partials/hero.html new file mode 100644 index 00000000..2c244e18 --- /dev/null +++ b/doc/theme/material/partials/hero.html @@ -0,0 +1,12 @@ +{#- + This file was automatically generated - do not edit +-#} +{% set class = "md-hero" %} +{% if "tabs" not in config.theme.features %} + {% set class = "md-hero md-hero--expand" %} +{% endif %} +
    +
    + {{ page.meta.hero }} +
    +
    diff --git a/doc/theme/material/partials/integrations/analytics.html b/doc/theme/material/partials/integrations/analytics.html new file mode 100644 index 00000000..93104538 --- /dev/null +++ b/doc/theme/material/partials/integrations/analytics.html @@ -0,0 +1,7 @@ +{#- + This file was automatically generated - do not edit +-#} +{% set analytics = config.google_analytics %} + + + diff --git a/doc/theme/material/partials/integrations/disqus.html b/doc/theme/material/partials/integrations/disqus.html new file mode 100644 index 00000000..b6460de5 --- /dev/null +++ b/doc/theme/material/partials/integrations/disqus.html @@ -0,0 +1,12 @@ +{#- + This file was automatically generated - do not edit +-#} +{% set disqus = config.extra.disqus %} +{% if page and page.meta and page.meta.disqus is string %} + {% set disqus = page.meta.disqus %} +{% endif %} +{% if not page.is_homepage and disqus %} +

    {{ lang.t("meta.comments") }}

    +
    + +{% endif %} diff --git a/doc/theme/material/partials/language.html b/doc/theme/material/partials/language.html new file mode 100644 index 00000000..46188a6b --- /dev/null +++ b/doc/theme/material/partials/language.html @@ -0,0 +1,6 @@ +{#- + This file was automatically generated - do not edit +-#} +{% import "partials/language/" + config.theme.language + ".html" as lang %} +{% import "partials/language/en.html" as fallback %} +{% macro t(key) %}{{ lang.t(key) | default(fallback.t(key)) }}{% endmacro %} diff --git a/doc/theme/material/partials/language/af.html b/doc/theme/material/partials/language/af.html new file mode 100644 index 00000000..a625cd4b --- /dev/null +++ b/doc/theme/material/partials/language/af.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "af", + "clipboard.copy": "Kopieer na knipbord", + "clipboard.copied": "gekopieer na knipbord", + "edit.link.title": "Wysig hierdie bladsy", + "footer.previous": "Vorige", + "footer.next": "Volgende", + "meta.comments": "Kommentaar", + "meta.source": "Bron", + "search.config.lang": "nl", + "search.placeholder": "Soek", + "search.result.placeholder": "Tik om te begin soek", + "search.result.none": "Geen ooreenstemmende dokumente", + "search.result.one": "1 ooreenstemmende dokument", + "search.result.other": "# ooreenstemmende dokumente", + "skip.link.title": "Slaan oor na inhoud", + "source.link.title": "Slaan oor na inhoud", + "source.revision.date": "Laaste opdatering", + "toc.title": "Inhoudsopgawe" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/ar.html b/doc/theme/material/partials/language/ar.html new file mode 100644 index 00000000..777c82da --- /dev/null +++ b/doc/theme/material/partials/language/ar.html @@ -0,0 +1,24 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "ar", + "direction": "rtl", + "clipboard.copy": "نسخ إلى الحافظة", + "clipboard.copied": "تم النسخ الى الحافظة", + "edit.link.title": "عدل الصفحة", + "footer.previous": "السابقة", + "footer.next": "التالية", + "meta.comments": "التعليقات", + "meta.source": "المصدر", + "search.config.pipeline": "", + "search.placeholder": "بحث", + "search.result.placeholder": "اكتب لبدء البحث", + "search.result.none": "لا توجد نتائج", + "search.result.one": "نتائج البحث مستند واحد", + "search.result.other": "نتائج البحث # مستندات", + "skip.link.title": "انتقل إلى المحتوى", + "source.link.title": "اذهب إلى المصدر", + "source.revision.date": "اخر تحديث", + "toc.title": "جدول المحتويات" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/ca.html b/doc/theme/material/partials/language/ca.html new file mode 100644 index 00000000..d0ed166e --- /dev/null +++ b/doc/theme/material/partials/language/ca.html @@ -0,0 +1,22 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "ca", + "clipboard.copy": "Còpia al porta-retalls", + "clipboard.copied": "Copiat al porta-retalls", + "edit.link.title": "Edita aquesta pàgina", + "footer.previous": "Anterior", + "footer.next": "Següent", + "meta.comments": "Comentaris", + "meta.source": "Codi font", + "search.placeholder": "Cerca", + "search.result.placeholder": "Escriu per a començar a cercar", + "search.result.none": "Cap document coincideix", + "search.result.one": "1 document coincident", + "search.result.other": "# documents coincidents", + "skip.link.title": "Salta el contingut", + "source.link.title": "Ves al repositori", + "source.revision.date": "Darrera actualització", + "toc.title": "Taula de continguts" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/cs.html b/doc/theme/material/partials/language/cs.html new file mode 100644 index 00000000..013b4062 --- /dev/null +++ b/doc/theme/material/partials/language/cs.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "cs", + "clipboard.copy": "Kopírovat do schránky", + "clipboard.copied": "Zkopírováno do schránky", + "edit.link.title": "Upravit tuto stránku", + "footer.previous": "Předchozí", + "footer.next": "Další", + "meta.comments": "Komentáře", + "meta.source": "Zdroj", + "search.config.lang": "ro", + "search.placeholder": "Hledat", + "search.result.placeholder": "Pište co se má vyhledat", + "search.result.none": "Nenalezeny žádné dokumenty", + "search.result.one": "Nalezený dokument: 1", + "search.result.other": "Nalezené dokumenty: #", + "skip.link.title": "Přeskočit obsah", + "source.link.title": "Přejít do repozitáře", + "source.revision.date": "Poslední aktualizace", + "toc.title": "Obsah" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/da.html b/doc/theme/material/partials/language/da.html new file mode 100644 index 00000000..d98ff553 --- /dev/null +++ b/doc/theme/material/partials/language/da.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "da", + "clipboard.copy": "Kopiér til udklipsholderen", + "clipboard.copied": "Kopieret til udklipsholderen", + "edit.link.title": "Redigér denne side", + "footer.previous": "Forrige", + "footer.next": "Næste", + "meta.comments": "Kommentarer", + "meta.source": "Kilde", + "search.config.lang": "da", + "search.placeholder": "Søg", + "search.result.placeholder": "Indtast søgeord", + "search.result.none": "Ingen resultater fundet", + "search.result.one": "1 resultat", + "search.result.other": "# resultater", + "skip.link.title": "Gå til indholdet", + "source.link.title": "Åbn arkiv", + "source.revision.date": "Sidste ændring", + "toc.title": "Indholdsfortegnelse" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/de.html b/doc/theme/material/partials/language/de.html new file mode 100644 index 00000000..8c4590b1 --- /dev/null +++ b/doc/theme/material/partials/language/de.html @@ -0,0 +1,24 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "de", + "clipboard.copy": "In Zwischenablage kopieren", + "clipboard.copied": "In Zwischenablage kopiert", + "edit.link.title": "Seite editieren", + "footer.previous": "Zurück", + "footer.next": "Weiter", + "meta.comments": "Kommentare", + "meta.source": "Quellcode", + "search.config.lang": "de", + "search.placeholder": "Suche", + "search.result.initializer": "Suche wird initialisiert", + "search.result.placeholder": "Suchbegriff eingeben", + "search.result.none": "Keine Suchergebnisse", + "search.result.one": "1 Suchergebnis", + "search.result.other": "# Suchergebnisse", + "skip.link.title": "Zum Inhalt", + "source.link.title": "Quellcode", + "source.revision.date": "Letztes Update", + "toc.title": "Inhaltsverzeichnis" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/en.html b/doc/theme/material/partials/language/en.html new file mode 100644 index 00000000..2c295808 --- /dev/null +++ b/doc/theme/material/partials/language/en.html @@ -0,0 +1,32 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "en", + "direction": "ltr", + "clipboard.copy": "Copy to clipboard", + "clipboard.copied": "Copied to clipboard", + "edit.link.title": "Edit this page", + "footer.previous": "Previous", + "footer.next": "Next", + "footer.title": "Footer", + "header.title": "Header", + "meta.comments": "Comments", + "meta.source": "Source", + "nav.title": "Navigation", + "search.config.lang": "en", + "search.config.pipeline": "trimmer, stopWordFilter", + "search.config.separator": "[\s\-]+", + "search.placeholder": "Search", + "search.reset": "Clear", + "search.result.initializer": "Initializing search", + "search.result.placeholder": "Type to start searching", + "search.result.none": "No matching documents", + "search.result.one": "1 matching document", + "search.result.other": "# matching documents", + "skip.link.title": "Skip to content", + "source.link.title": "Go to repository", + "source.revision.date": "Last update", + "tabs.title": "Tabs", + "toc.title": "Table of contents" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/es.html b/doc/theme/material/partials/language/es.html new file mode 100644 index 00000000..11734226 --- /dev/null +++ b/doc/theme/material/partials/language/es.html @@ -0,0 +1,28 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "es", + "clipboard.copy": "Copiar al portapapeles", + "clipboard.copied": "Copiado al portapapeles", + "edit.link.title": "Editar esta página", + "footer.previous": "Anterior", + "footer.next": "Siguiente", + "footer.title": "Pie", + "header.title": "Cabecera", + "meta.comments": "Comentarios", + "meta.source": "Fuente", + "nav.title": "Navegación", + "search.config.lang": "es", + "search.placeholder": "Búsqueda", + "search.reset": "Limpiar", + "search.result.placeholder": "Teclee para comenzar búsqueda", + "search.result.none": "No se encontraron documentos", + "search.result.one": "1 documento encontrado", + "search.result.other": "# documentos encontrados", + "skip.link.title": "Saltar a contenido", + "source.link.title": "Ir al repositorio", + "source.revision.date": "Última actualización", + "tabs.title": "Pestañas", + "toc.title": "Tabla de contenidos" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/et.html b/doc/theme/material/partials/language/et.html new file mode 100644 index 00000000..47a1b218 --- /dev/null +++ b/doc/theme/material/partials/language/et.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "et", + "clipboard.copy": "Kopeeri lõikelauale", + "clipboard.copied": "Kopeeritud", + "edit.link.title": "Muuda seda lehte", + "footer.previous": "Eelmine", + "footer.next": "Järgmine", + "meta.comments": "Kommentaarid", + "meta.source": "Lähtekood", + "search.config.pipeline": "", + "search.placeholder": "Otsi", + "search.result.placeholder": "Otsimiseks kirjuta siia", + "search.result.none": "Otsingule ei leitud ühtegi vastet", + "search.result.one": "Leiti üks tulemus", + "search.result.other": "Leiti # tulemust", + "skip.link.title": "Keri sisuni", + "source.link.title": "Ava repositooriumis", + "source.revision.date": "Viimane uuendus", + "toc.title": "Sisukord" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/fa.html b/doc/theme/material/partials/language/fa.html new file mode 100644 index 00000000..d5e988c2 --- /dev/null +++ b/doc/theme/material/partials/language/fa.html @@ -0,0 +1,24 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "fa", + "direction": "rtl", + "clipboard.copy": "کپی کردن", + "clipboard.copied": "کپی شد", + "edit.link.title": "این صفحه را ویرایش کنید", + "footer.previous": "قبلی", + "footer.next": "بعدی", + "meta.comments": "نظرات", + "meta.source": "منبع", + "search.config.pipeline": "", + "search.placeholder": "جستجو", + "search.result.placeholder": "برای شروع جستجو تایپ کنید", + "search.result.none": "سندی یافت نشد", + "search.result.one": "1 سند یافت شد", + "search.result.other": "# سند یافت شد", + "skip.link.title": "پرش به محتویات", + "source.link.title": "رفتن به مخزن", + "source.revision.date": "اخرین بروزرسانی", + "toc.title": "فهرست موضوعات" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/fi.html b/doc/theme/material/partials/language/fi.html new file mode 100644 index 00000000..b2b93e22 --- /dev/null +++ b/doc/theme/material/partials/language/fi.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "fi", + "clipboard.copy": "Kopioi leikepöydälle", + "clipboard.copied": "Kopioitu leikepöydälle", + "edit.link.title": "Muokkaa tätä sivua", + "footer.previous": "Edellinen", + "footer.next": "Seuraava", + "meta.comments": "Kommentit", + "meta.source": "Lähdekodi", + "search.config.lang": "fi", + "search.placeholder": "Hae", + "search.result.placeholder": "Kirjoita aloittaaksesi haun", + "search.result.none": "Ei täsmääviä dokumentteja", + "search.result.one": "1 täsmäävä dokumentti", + "search.result.other": "# täsmäävää dokumenttia", + "skip.link.title": "Hyppää sisältöön", + "source.link.title": "Mene repositoryyn", + "source.revision.date": "Viimeisin päivitys", + "toc.title": "Sisällysluettelo" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/fr.html b/doc/theme/material/partials/language/fr.html new file mode 100644 index 00000000..221cad96 --- /dev/null +++ b/doc/theme/material/partials/language/fr.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "fr", + "clipboard.copy": "Copier dans le presse-papier", + "clipboard.copied": "Copié dans le presse-papier", + "edit.link.title": "Editer cette page", + "footer.previous": "Précédent", + "footer.next": "Suivant", + "meta.comments": "Commentaires", + "meta.source": "Source", + "search.config.lang": "fr", + "search.placeholder": "Rechercher", + "search.result.placeholder": "Taper pour démarrer la recherche", + "search.result.none": "Aucun document trouvé", + "search.result.one": "1 document trouvé", + "search.result.other": "# documents trouvés", + "skip.link.title": "Aller au contenu", + "source.link.title": "Aller au dépôt", + "source.revision.date": "Dernière mise à jour", + "toc.title": "Table des matières" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/gl.html b/doc/theme/material/partials/language/gl.html new file mode 100644 index 00000000..2c3c0d6a --- /dev/null +++ b/doc/theme/material/partials/language/gl.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "gl", + "clipboard.copy": "Copiar no cortapapeis", + "clipboard.copied": "Copiado no cortapapeis", + "edit.link.title": "Editar esta páxina", + "footer.previous": "Anterior", + "footer.next": "Seguinte", + "meta.comments": "Comentarios", + "meta.source": "Fonte", + "search.config.lang": "es", + "search.placeholder": "Busca", + "search.result.placeholder": "Insira un termo", + "search.result.none": "Sen resultados", + "search.result.one": "1 resultado atopado", + "search.result.other": "# resultados atopados", + "skip.link.title": "Ir ao contido", + "source.link.title": "Ir ao repositorio", + "source.revision.date": "Última actualización", + "toc.title": "Táboa de contidos" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/gr.html b/doc/theme/material/partials/language/gr.html new file mode 100644 index 00000000..26e49928 --- /dev/null +++ b/doc/theme/material/partials/language/gr.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "gr", + "clipboard.copy": "Αντιγραφή", + "clipboard.copied": "Αντιγράφηκε", + "edit.link.title": "Επεξεργασία αυτής της σελίδας", + "footer.previous": "Επόμενη", + "footer.next": "Προηγούμενη", + "meta.comments": "Σχόλια", + "meta.source": "Πηγή", + "search.config.pipeline": "", + "search.placeholder": "Αναζήτηση", + "search.result.placeholder": "Πληκτρολογήστε για να αρχίσει η αναζήτηση", + "search.result.none": "Δε βρέθηκαν αντίστοιχα αρχεία", + "search.result.one": "1 αντίστοιχο αρχείο", + "search.result.other": "# αντίστοιχα αρχεία", + "skip.link.title": "Μετάβαση στο περιεχόμενο", + "source.link.title": "Μετάβαση στο αποθετήριο", + "source.revision.date": "τελευταία ενημέρωση", + "toc.title": "Πίνακας περιεχομένων" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/he.html b/doc/theme/material/partials/language/he.html new file mode 100644 index 00000000..ed2d735b --- /dev/null +++ b/doc/theme/material/partials/language/he.html @@ -0,0 +1,24 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "he", + "direction": "rtl", + "clipboard.copy": "העתק ללוח", + "clipboard.copied": "הועתק ללוח", + "edit.link.title": "ערוך דף זה", + "footer.previous": "קודם", + "footer.next": "הַבָּא", + "meta.comments": "הערות", + "meta.source": "מָקוֹר", + "search.config.pipeline": "", + "search.placeholder": "לחפש", + "search.result.placeholder": "הקלד כדי להתחיל לחפש", + "search.result.none": "אין מסמכים תואמים", + "search.result.one": "1 מסמך תואם", + "search.result.other": "# מסמך תואם", + "skip.link.title": "דלג לתוכן", + "source.link.title": "עבור אל מאגר", + "source.revision.date": "העדכון אחרון", + "toc.title": "תוכן העניינים" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/hi.html b/doc/theme/material/partials/language/hi.html new file mode 100644 index 00000000..85377f8b --- /dev/null +++ b/doc/theme/material/partials/language/hi.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "hi", + "clipboard.copy": "क्लिपबोर्ड पर कॉपी करें", + "clipboard.copied": "क्लिपबोर्ड पर कॉपी कर दिया गया", + "edit.link.title": "इस पृष्ठ को संपादित करें", + "footer.previous": "पिछला", + "footer.next": "आगामी", + "meta.comments": "टिप्पणियाँ", + "meta.source": "स्रोत", + "search.config.pipeline": "", + "search.placeholder": "खोज", + "search.result.placeholder": "खोज शुरू करने के लिए टाइप करें", + "search.result.none": "कोई मिलान डॉक्यूमेंट नहीं", + "search.result.one": "1 मिलान डॉक्यूमेंट", + "search.result.other": "# मिलान डाक्यूमेंट्स", + "skip.link.title": "विषय पर बढ़ें", + "source.link.title": "रिपॉजिटरी पर जाएं", + "source.revision.date": "आखिरी अपडेट", + "toc.title": "विषय - सूची" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/hr.html b/doc/theme/material/partials/language/hr.html new file mode 100644 index 00000000..a52aeff5 --- /dev/null +++ b/doc/theme/material/partials/language/hr.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "hr", + "clipboard.copy": "Kopirajte u međuspremnik", + "clipboard.copied": "Kopirano u međuspremnik", + "edit.link.title": "Uredi stranicu", + "footer.previous": "Prethodno", + "footer.next": "Sljedeće", + "meta.comments": "Komentari", + "meta.source": "Izvor", + "search.config.pipeline": "", + "search.placeholder": "Pretraživanje", + "search.result.placeholder": "Unesite pojam pretraživanja", + "search.result.none": "Ništa nije pronađeno", + "search.result.one": "1 rezultat pretraživanja", + "search.result.other": "# rezultata pretraživanja", + "skip.link.title": "Preskočite na sadržaj", + "source.link.title": "Idite u repozitorij", + "source.revision.date": "Zadnje ažuriranje", + "toc.title": "Sadržaj" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/hu.html b/doc/theme/material/partials/language/hu.html new file mode 100644 index 00000000..c2230cab --- /dev/null +++ b/doc/theme/material/partials/language/hu.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "hu", + "clipboard.copy": "Másolás vágólapra", + "clipboard.copied": "Vágólapra másolva", + "edit.link.title": "Oldal szerkesztése", + "footer.previous": "Előző", + "footer.next": "Következő", + "meta.comments": "Hozzászólások", + "meta.source": "Forrás", + "search.config.lang": "hu", + "search.placeholder": "Keresés", + "search.result.placeholder": "Kereséshez írj ide valamit", + "search.result.none": "Nincs találat", + "search.result.one": "1 egyező dokumentum", + "search.result.other": "# egyező dokumentum", + "skip.link.title": "Kihagyás", + "source.link.title": "Főoldalra ugrás", + "source.revision.date": "Utolsó frissítés", + "toc.title": "Tartalomjegyzék" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/id.html b/doc/theme/material/partials/language/id.html new file mode 100644 index 00000000..b846e507 --- /dev/null +++ b/doc/theme/material/partials/language/id.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "id", + "clipboard.copy": "Salin ke memori", + "clipboard.copied": "Tersalin ke memori", + "edit.link.title": "Ubah halaman ini", + "footer.previous": "Sebelumnya", + "footer.next": "Selanjutnya", + "meta.comments": "Komentar", + "meta.source": "Sumber", + "search.config.pipeline": "", + "search.placeholder": "Cari", + "search.result.placeholder": "Ketik untuk mulai pencarian", + "search.result.none": "Tidak ada dokumen yang sesuai", + "search.result.one": "1 dokumen ditemukan", + "search.result.other": "# dokumen ditemukan", + "skip.link.title": "Lewati ke isi", + "source.link.title": "Menuju repositori", + "source.revision.date": "Pembaharuan Terakhir", + "toc.title": "Daftar isi" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/it.html b/doc/theme/material/partials/language/it.html new file mode 100644 index 00000000..3aa0730c --- /dev/null +++ b/doc/theme/material/partials/language/it.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "it", + "clipboard.copy": "Copia", + "clipboard.copied": "Copiato", + "edit.link.title": "Modifica", + "footer.previous": "Precedente", + "footer.next": "Prossimo", + "meta.comments": "Commenti", + "meta.source": "Sorgente", + "search.config.lang": "it", + "search.placeholder": "Cerca", + "search.result.placeholder": "Scrivi per iniziare a cercare", + "search.result.none": "Nessun documento trovato", + "search.result.one": "1 documento trovato", + "search.result.other": "# documenti trovati", + "skip.link.title": "Vai al contenuto", + "source.link.title": "Apri repository", + "source.revision.date": "Ultimo aggiornamento", + "toc.title": "Indice" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/ja.html b/doc/theme/material/partials/language/ja.html new file mode 100644 index 00000000..ee49cc02 --- /dev/null +++ b/doc/theme/material/partials/language/ja.html @@ -0,0 +1,24 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "ja", + "clipboard.copy": "クリップボードへコピー", + "clipboard.copied": "コピーしました", + "edit.link.title": "編集", + "footer.previous": "前", + "footer.next": "次", + "meta.comments": "コメント", + "meta.source": "ソース", + "search.config.lang": "ja", + "search.config.separator": "[\s\- 、。,.]+", + "search.placeholder": "検索", + "search.result.placeholder": "検索キーワードを入力してください", + "search.result.none": "何も見つかりませんでした", + "search.result.one": "1件見つかりました", + "search.result.other": "#件見つかりました", + "skip.link.title": "コンテンツにスキップ", + "source.link.title": "リポジトリへ", + "source.revision.date": "最終更新日", + "toc.title": "目次" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/kr.html b/doc/theme/material/partials/language/kr.html new file mode 100644 index 00000000..f1b863fd --- /dev/null +++ b/doc/theme/material/partials/language/kr.html @@ -0,0 +1,22 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "kr", + "clipboard.copy": "클립보드로 복사", + "clipboard.copied": "클립보드에 복사됨", + "edit.link.title": "이 페이지를 편집", + "footer.previous": "이전", + "footer.next": "다음", + "meta.comments": "댓글", + "meta.source": "출처", + "search.config.lang": "ja", + "search.placeholder": "검색", + "search.result.placeholder": "검색어를 입력하세요", + "search.result.none": "검색어와 일치하는 문서가 없습니다", + "search.result.one": "1개의 일치하는 문서", + "search.result.other": "#개의 일치하는 문서", + "source.link.title": "저장소로 이동", + "source.revision.date": "마지막 업데이트", + "toc.title": "목차" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/nl.html b/doc/theme/material/partials/language/nl.html new file mode 100644 index 00000000..1f28d8f7 --- /dev/null +++ b/doc/theme/material/partials/language/nl.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "nl", + "clipboard.copy": "Kopiëren naar klembord", + "clipboard.copied": "Gekopieerd naar klembord", + "edit.link.title": "Wijzig deze pagina", + "footer.previous": "Vorige", + "footer.next": "Volgende", + "meta.comments": "Reacties", + "meta.source": "Bron", + "search.config.lang": "nl", + "search.placeholder": "Zoeken", + "search.result.placeholder": "Typ om te beginnen met zoeken", + "search.result.none": "Geen overeenkomende documenten", + "search.result.one": "1 overeenkomende document", + "search.result.other": "# overeenkomende documenten", + "skip.link.title": "Ga naar inhoud", + "source.link.title": "Ga naar repository", + "source.revision.date": "Laatst geüpdatet op", + "toc.title": "Inhoudsopgave" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/nn.html b/doc/theme/material/partials/language/nn.html new file mode 100644 index 00000000..a961724f --- /dev/null +++ b/doc/theme/material/partials/language/nn.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "nn", + "clipboard.copy": "Kopier til utklippstavla", + "clipboard.copied": "Kopiert til utklippstavla", + "edit.link.title": "Rediger denne sida", + "footer.previous": "Førre", + "footer.next": "Neste", + "meta.comments": "Kommentarar", + "meta.source": "Kjelde", + "search.config.lang": "no", + "search.placeholder": "Søk", + "search.result.placeholder": "Skriv søkeord", + "search.result.none": "Ingen treff", + "search.result.one": "1 treff", + "search.result.other": "# treff", + "skip.link.title": "Gå til innhald", + "source.link.title": "Gå til kjelde", + "source.revision.date": "Siste oppdatering", + "toc.title": "Innhaldsliste" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/no.html b/doc/theme/material/partials/language/no.html new file mode 100644 index 00000000..2a5ed6e8 --- /dev/null +++ b/doc/theme/material/partials/language/no.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "no", + "clipboard.copy": "Kopier til utklippstavlen", + "clipboard.copied": "Kopiert til utklippstavlen", + "edit.link.title": "Rediger denne siden", + "footer.previous": "Forrige", + "footer.next": "Neste", + "meta.comments": "Kommentarer", + "meta.source": "Kilde", + "search.config.lang": "no", + "search.placeholder": "Søk", + "search.result.placeholder": "Skriv søkeord", + "search.result.none": "Ingen treff", + "search.result.one": "1 treff", + "search.result.other": "# treff", + "skip.link.title": "Gå til innhold", + "source.link.title": "Gå til kilde", + "source.revision.date": "Siste oppdatering", + "toc.title": "Innholdsfortegnelse" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/pl.html b/doc/theme/material/partials/language/pl.html new file mode 100644 index 00000000..a94e22b7 --- /dev/null +++ b/doc/theme/material/partials/language/pl.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "pl", + "clipboard.copy": "Kopiuj do schowka", + "clipboard.copied": "Skopiowane", + "edit.link.title": "Edytuj tę stronę", + "footer.previous": "Poprzednia strona", + "footer.next": "Następna strona", + "meta.comments": "Komentarze", + "meta.source": "Kod źródłowy", + "search.config.pipeline": "", + "search.placeholder": "Szukaj", + "search.result.placeholder": "Zacznij pisać, aby szukać", + "search.result.none": "Brak wyników wyszukiwania", + "search.result.one": "Wyniki wyszukiwania: 1", + "search.result.other": "Wyniki wyszukiwania: #", + "skip.link.title": "Przejdź do treści", + "source.link.title": "Idź do repozytorium", + "source.revision.date": "Ostatnia aktualizacja", + "toc.title": "Spis treści" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/pt.html b/doc/theme/material/partials/language/pt.html new file mode 100644 index 00000000..061ac210 --- /dev/null +++ b/doc/theme/material/partials/language/pt.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "pt", + "clipboard.copy": "Copiar para área de transferência", + "clipboard.copied": "Copiado para área de transferência", + "edit.link.title": "Editar esta página", + "footer.previous": "Anterior", + "footer.next": "Próximo", + "meta.comments": "Comentários", + "meta.source": "Fonte", + "search.config.lang": "pt", + "search.placeholder": "Buscar", + "search.result.placeholder": "Digite para iniciar a busca", + "search.result.none": "Nenhum resultado encontrado", + "search.result.one": "1 resultado encontrado", + "search.result.other": "# resultados encontrados", + "skip.link.title": "Ir para o conteúdo", + "source.link.title": "Ir ao repositório", + "source.revision.date": "Última atualização", + "toc.title": "Índice" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/ro.html b/doc/theme/material/partials/language/ro.html new file mode 100644 index 00000000..5891c791 --- /dev/null +++ b/doc/theme/material/partials/language/ro.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "ro", + "clipboard.copy": "Copiază în clipboard", + "clipboard.copied": "Copiat în clipboard", + "edit.link.title": "Editeaza această pagină", + "footer.previous": "Anterior", + "footer.next": "Următor", + "meta.comments": "Comentarii", + "meta.source": "Sursă", + "search.config.lang": "ro", + "search.placeholder": "Căutare", + "search.result.placeholder": "Tastează pentru a începe căutarea", + "search.result.none": "Nu a fost găsit niciun document", + "search.result.one": "1 document găsit", + "search.result.other": "# documente găsite", + "skip.link.title": "Sari la conținut", + "source.link.title": "Accesează repository-ul", + "source.revision.date": "Ultima actualizare", + "toc.title": "Cuprins" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/ru.html b/doc/theme/material/partials/language/ru.html new file mode 100644 index 00000000..84d20482 --- /dev/null +++ b/doc/theme/material/partials/language/ru.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "ru", + "clipboard.copy": "Копировать в буфер", + "clipboard.copied": "Скопировано в буфер", + "edit.link.title": "Редактировать страницу", + "footer.previous": "Назад", + "footer.next": "Вперед", + "meta.comments": "Комментарии", + "meta.source": "Исходный код", + "search.config.lang": "ru", + "search.placeholder": "Поиск", + "search.result.placeholder": "Начните печатать для поиска", + "search.result.none": "Совпадений не найдено", + "search.result.one": "Найдено 1 совпадение", + "search.result.other": "Найдено # совпадений", + "skip.link.title": "Перейти к содержанию", + "source.link.title": "Перейти к репозиторию", + "source.revision.date": "Последнее обновление", + "toc.title": "Содержание" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/sh.html b/doc/theme/material/partials/language/sh.html new file mode 100644 index 00000000..f0972497 --- /dev/null +++ b/doc/theme/material/partials/language/sh.html @@ -0,0 +1,22 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "sh", + "clipboard.copy": "Kopiraj u klipbord", + "clipboard.copied": "Iskopirano u klipbord", + "edit.link.title": "Uredi stranicu", + "footer.previous": "Prethodno", + "footer.next": "Sledeće", + "meta.comments": "Komentari", + "meta.source": "Izvor", + "search.config.lang": "ro", + "search.placeholder": "Pretraga", + "search.result.placeholder": "Unesite pojam pretrage", + "search.result.none": "Ništa nije pronađeno", + "search.result.one": "1 rezultat pretrage", + "search.result.other": "# rezultata pretrage", + "skip.link.title": "Idi na tekst", + "source.link.title": "Idi u repozitorijum", + "toc.title": "Sadržaj" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/si.html b/doc/theme/material/partials/language/si.html new file mode 100644 index 00000000..aa258b9c --- /dev/null +++ b/doc/theme/material/partials/language/si.html @@ -0,0 +1,22 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "si", + "clipboard.copy": "Kopiraj v odložišče", + "clipboard.copied": "Kopirano v odložišče", + "edit.link.title": "Uredi stran", + "footer.previous": "Prejšnja stran", + "footer.next": "Naslednja stran", + "meta.comments": "Komentarji", + "meta.source": "Izvorna koda", + "search.placeholder": "Išči", + "search.result.placeholder": "Vpiši iskalni niz", + "search.result.none": "Ni zadetkov", + "search.result.one": "1 zadetek", + "search.result.other": "# zadetkov", + "skip.link.title": "Skoči na vsebino", + "source.link.title": "Pojdi na repozitorij", + "source.revision.date": "Zadnja posodobitev", + "toc.title": "Kazalo" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/sk.html b/doc/theme/material/partials/language/sk.html new file mode 100644 index 00000000..66bd7dcf --- /dev/null +++ b/doc/theme/material/partials/language/sk.html @@ -0,0 +1,22 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "sk", + "clipboard.copy": "Kopírovať do schránky", + "clipboard.copied": "Skopírované do schránky", + "edit.link.title": "Upraviť túto stránku", + "footer.previous": "Späť", + "footer.next": "Ďalej", + "meta.comments": "Komentáre", + "meta.source": "Zdroj", + "search.placeholder": "Hľadať", + "search.result.placeholder": "Pre vyhľadávanie začni písať", + "search.result.none": "Žiadne vyhovujúce dokumenty", + "search.result.one": "Vyhovujúci dokument: 1", + "search.result.other": "Vyhovujúce dokumenty: #", + "skip.link.title": "Preskočiť na obsah", + "source.link.title": "Zobraziť repozitár", + "source.revision.date": "Posledná aktualizácia", + "toc.title": "Obsah" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/sr.html b/doc/theme/material/partials/language/sr.html new file mode 100644 index 00000000..695a08b7 --- /dev/null +++ b/doc/theme/material/partials/language/sr.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "sr", + "clipboard.copy": "Копирај у клипборд", + "clipboard.copied": "Ископирано у клипборд", + "edit.link.title": "Уреди страницу", + "footer.previous": "Претходно", + "footer.next": "Следеће", + "meta.comments": "Коментари", + "meta.source": "Извор", + "search.config.pipeline": "", + "search.placeholder": "Претрага", + "search.result.placeholder": "Унесите појам претраге", + "search.result.none": "Нису пронађени документи", + "search.result.one": "1 резултат претраге", + "search.result.other": "# резултата претраге", + "skip.link.title": "Иди на текст", + "source.link.title": "Иди у репозиторијум", + "source.revision.date": "Последња исправка", + "toc.title": "Садржај" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/sv.html b/doc/theme/material/partials/language/sv.html new file mode 100644 index 00000000..87243666 --- /dev/null +++ b/doc/theme/material/partials/language/sv.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "sv", + "clipboard.copy": "Kopiera till urklipp", + "clipboard.copied": "Kopierat till urklipp", + "edit.link.title": "Redigera sidan", + "footer.previous": "Föregående", + "footer.next": "Nästa", + "meta.comments": "Kommentarer", + "meta.source": "Källa", + "search.config.lang": "sv", + "search.placeholder": "Sök", + "search.result.placeholder": "Skriv sökord", + "search.result.none": "Inga sökresultat", + "search.result.one": "1 sökresultat", + "search.result.other": "# sökresultat", + "skip.link.title": "Gå till innehållet", + "source.link.title": "Gå till datakatalog", + "source.revision.date": "Senaste uppdateringen", + "toc.title": "Innehållsförteckning" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/th.html b/doc/theme/material/partials/language/th.html new file mode 100644 index 00000000..dacadfe8 --- /dev/null +++ b/doc/theme/material/partials/language/th.html @@ -0,0 +1,21 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "th", + "clipboard.copy": "คัดลอก", + "clipboard.copied": "คัดลอกแล้ว", + "edit.link.title": "แก้ไขหน้านี้", + "footer.previous": "ก่อนหน้า", + "footer.next": "ต่อไป", + "meta.comments": "ความคิดเห็น", + "meta.source": "แหล่งที่มา", + "search.placeholder": "ค้นหา", + "search.result.placeholder": "พิมพ์เพื่อเริ่มค้นหา", + "search.result.none": "ไม่พบเอกสารที่ตรงกัน", + "search.result.one": "พบเอกสารที่ตรงกัน", + "search.result.other": "พบ # เอกสารที่ตรงกัน", + "skip.link.title": "ข้ามไปที่เนื้อหา", + "source.link.title": "ไปที่ Repository", + "toc.title": "สารบัญ" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/tr.html b/doc/theme/material/partials/language/tr.html new file mode 100644 index 00000000..b34f99d2 --- /dev/null +++ b/doc/theme/material/partials/language/tr.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "tr", + "clipboard.copy": "Kopyala", + "clipboard.copied": "Kopyalandı", + "edit.link.title": "Düzenle", + "footer.previous": "Önceki", + "footer.next": "Sonraki", + "meta.comments": "Yorumlar", + "meta.source": "Kaynak", + "search.config.lang": "tr", + "search.placeholder": "Ara", + "search.result.placeholder": "Aramaya başlamak için yazın", + "search.result.none": "Eşleşen doküman bulunamadı", + "search.result.one": "1 doküman bulundu", + "search.result.other": "# doküman bulundu", + "skip.link.title": "Ana içeriğe geç", + "source.link.title": "Depoya git", + "source.revision.date": "Son Güncelleme", + "toc.title": "İçindekiler" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/uk.html b/doc/theme/material/partials/language/uk.html new file mode 100644 index 00000000..39a17c5e --- /dev/null +++ b/doc/theme/material/partials/language/uk.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "uk", + "clipboard.copy": "Скопіювати в буфер", + "clipboard.copied": "Скопійовано в буфер", + "edit.link.title": "Редагувати сторінку", + "footer.previous": "Назад", + "footer.next": "Вперед", + "meta.comments": "Коментарі", + "meta.source": "Вихідний код", + "search.config.lang": "ru", + "search.placeholder": "Пошук", + "search.result.placeholder": "Розпочніть писати для пошуку", + "search.result.none": "Збігів не знайдено", + "search.result.one": "Знайдено 1 збіг", + "search.result.other": "Знайдено # збігів", + "skip.link.title": "Перейти до змісту", + "source.link.title": "Перейти до репозиторію", + "source.revision.date": "Останнє оновлення", + "toc.title": "Зміст" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/vi.html b/doc/theme/material/partials/language/vi.html new file mode 100644 index 00000000..26cc93af --- /dev/null +++ b/doc/theme/material/partials/language/vi.html @@ -0,0 +1,22 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "vi", + "clipboard.copy": "Sao chép vào bộ nhớ", + "clipboard.copied": "Sao chép xong", + "edit.link.title": "Chỉnh sửa", + "footer.previous": "Trước", + "footer.next": "Sau", + "meta.comments": "Bình luận", + "meta.source": "Mã nguồn", + "search.placeholder": "Tìm kiếm", + "search.result.placeholder": "Nhập để bắt đầu tìm kiếm", + "search.result.none": "Không tìm thấy tài liệu liên quan", + "search.result.one": "1 tài liệu liên quan", + "search.result.other": "# tài liệu liên quan", + "skip.link.title": "Vào thẳng nội dung", + "source.link.title": "Đến kho lưu trữ mã nguồn", + "source.revision.date": "Cập nhật cuối cùng", + "toc.title": "Mục lục" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/zh-Hant.html b/doc/theme/material/partials/language/zh-Hant.html new file mode 100644 index 00000000..6bfc8942 --- /dev/null +++ b/doc/theme/material/partials/language/zh-Hant.html @@ -0,0 +1,24 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "zh-Hant", + "clipboard.copy": "拷貝", + "clipboard.copied": "已拷貝", + "edit.link.title": "編輯此頁", + "footer.previous": "上一頁", + "footer.next": "下一頁", + "meta.comments": "評論", + "meta.source": "來源", + "search.config.lang": "ja", + "search.config.separator": "[\,\。]+", + "search.placeholder": "搜尋", + "search.result.placeholder": "鍵入以開始檢索", + "search.result.none": "沒有找到符合條件的結果", + "search.result.one": "找到 1 个符合條件的結果", + "search.result.other": "# 個符合條件的結果", + "skip.link.title": "跳轉至", + "source.link.title": "前往 GitHub 倉庫", + "source.revision.date": "最後更新", + "toc.title": "目錄" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/zh-TW.html b/doc/theme/material/partials/language/zh-TW.html new file mode 100644 index 00000000..95d9e44d --- /dev/null +++ b/doc/theme/material/partials/language/zh-TW.html @@ -0,0 +1,24 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "zh-Hant", + "clipboard.copy": "複製", + "clipboard.copied": "已複製", + "edit.link.title": "編輯此頁", + "footer.previous": "上一頁", + "footer.next": "下一頁", + "meta.comments": "留言", + "meta.source": "來源", + "search.config.lang": "ja", + "search.config.separator": "[\s\- 、。,.?;]+", + "search.placeholder": "搜尋", + "search.result.placeholder": "打字進行搜尋", + "search.result.none": "沒有符合的項目", + "search.result.one": "找到 1 個符合的項目", + "search.result.other": "找到 # 個符合的項目", + "skip.link.title": "跳轉到", + "source.link.title": "前往倉庫", + "source.revision.date": "最後更新", + "toc.title": "目錄" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/language/zh.html b/doc/theme/material/partials/language/zh.html new file mode 100644 index 00000000..dd90cb57 --- /dev/null +++ b/doc/theme/material/partials/language/zh.html @@ -0,0 +1,24 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "zh", + "clipboard.copy": "复制", + "clipboard.copied": "已复制", + "edit.link.title": "编辑此页", + "footer.previous": "上一页", + "footer.next": "下一页", + "meta.comments": "评论", + "meta.source": "来源", + "search.config.lang": "ja", + "search.config.separator": "[\,\。]+", + "search.placeholder": "搜索", + "search.result.placeholder": "键入以开始搜索", + "search.result.none": "没有找到符合条件的结果", + "search.result.one": "找到 1 个符合条件的结果", + "search.result.other": "# 个符合条件的结果", + "skip.link.title": "跳转至", + "source.link.title": "前往 GitHub 仓库", + "source.revision.date": "最后更新", + "toc.title": "目录" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/logo.html b/doc/theme/material/partials/logo.html new file mode 100644 index 00000000..6d80f2ce --- /dev/null +++ b/doc/theme/material/partials/logo.html @@ -0,0 +1,9 @@ +{#- + This file was automatically generated - do not edit +-#} +{% if config.theme.logo %} + logo +{% else %} + {% set icon = config.theme.icon.logo or "material/library" %} + {% include ".icons/" ~ icon ~ ".svg" %} +{% endif %} diff --git a/doc/theme/material/partials/nav-item.html b/doc/theme/material/partials/nav-item.html new file mode 100644 index 00000000..21bc7097 --- /dev/null +++ b/doc/theme/material/partials/nav-item.html @@ -0,0 +1,66 @@ +{#- + This file was automatically generated - do not edit +-#} +{% set class = "md-nav__item" %} +{% if nav_item.active %} + {% set class = "md-nav__item md-nav__item--active" %} +{% endif %} +{% if nav_item.children %} +
  • + {% if nav_item.active %} + + {% else %} + + {% endif %} + + +
  • +{% elif nav_item == page %} +
  • + {% set toc = page.toc %} + + {% if toc | first is defined and "\x3ch1 id=" in page.content %} + {% set toc = (toc | first).children %} + {% endif %} + {% if toc | first is defined %} + + {% endif %} + + {{ nav_item.title }} + + {% if toc | first is defined %} + {% include "partials/toc.html" %} + {% endif %} +
  • +{% else %} +
  • + + {{ nav_item.title }} + +
  • +{% endif %} diff --git a/doc/theme/material/partials/nav.html b/doc/theme/material/partials/nav.html new file mode 100644 index 00000000..ca050757 --- /dev/null +++ b/doc/theme/material/partials/nav.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} + diff --git a/doc/theme/material/partials/palette.html b/doc/theme/material/partials/palette.html new file mode 100644 index 00000000..c8fe8f7a --- /dev/null +++ b/doc/theme/material/partials/palette.html @@ -0,0 +1,42 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro primary(key) %}{{ { + "red": "#ef5350", + "pink": "#e91e63", + "purple": "#ab47bc", + "deep-purple": "#7e57c2", + "indigo": "#3f51b5", + "blue": "#2196f3", + "light-blue": "#03a9f4", + "cyan": "#00bcd4", + "teal": "#009688", + "green": "#4caf50", + "light-green": "#8bc34a", + "lime": "#cddc39", + "yellow": "#ffee58", + "amber": "#ffc107", + "orange": "#ffa726", + "deep-orange": "#ff7043", + "brown": "#795548", + "grey": "#757575", + "blue-grey": "#546e7a" +}[key] }}{% endmacro %} +{% macro accent(key) %}{{ { + "red": "#ff1744", + "pink": "#f50057", + "purple": "#e040fb", + "deep-purple": "#7c4dff", + "indigo": "#536dfe", + "blue": "#448aff", + "light-blue": "#0091ea", + "cyan": "#00b8d4", + "teal": "#00bfa5", + "green": "#00c853", + "light-green": "#64dd17", + "lime": "#aeea00", + "yellow": "#ffd600", + "amber": "#ffab00", + "orange": "#ff9100", + "deep-orange": "#ff6e40" +}[key] }}{% endmacro %} diff --git a/doc/theme/material/partials/search.html b/doc/theme/material/partials/search.html new file mode 100644 index 00000000..05469ae1 --- /dev/null +++ b/doc/theme/material/partials/search.html @@ -0,0 +1,29 @@ +{#- + This file was automatically generated - do not edit +-#} +{% import "partials/language.html" as lang with context %} + diff --git a/doc/theme/material/partials/social.html b/doc/theme/material/partials/social.html new file mode 100644 index 00000000..ebe38ae5 --- /dev/null +++ b/doc/theme/material/partials/social.html @@ -0,0 +1,14 @@ +{#- + This file was automatically generated - do not edit +-#} +{% if config.extra.social %} + +{% endif %} \ No newline at end of file diff --git a/doc/theme/material/partials/source-date.html b/doc/theme/material/partials/source-date.html new file mode 100644 index 00000000..9c72b8bc --- /dev/null +++ b/doc/theme/material/partials/source-date.html @@ -0,0 +1,15 @@ +{#- + This file was automatically generated - do not edit +-#} +{% import "partials/language.html" as lang with context %} +{% set label = lang.t("source.revision.date") %} +
    +
    + + {% if page.meta.git_revision_date_localized %} + {{ label }}: {{ page.meta.git_revision_date_localized }} + {% elif page.meta.revision_date %} + {{ label }}: {{ page.meta.revision_date }} + {% endif %} + +
    diff --git a/doc/theme/material/partials/source-link.html b/doc/theme/material/partials/source-link.html new file mode 100644 index 00000000..237efe74 --- /dev/null +++ b/doc/theme/material/partials/source-link.html @@ -0,0 +1,14 @@ +{#- + This file was automatically generated - do not edit +-#} +{% import "partials/language.html" as lang with context %} +{% set repo = config.repo_url %} +{% if repo | last == "/" %} + {% set repo = repo[:-1] %} +{% endif %} +{% set path = page.meta.path | default([""]) %} + + {{ lang.t("meta.source") }} + {% set icon = config.theme.icon.repo or "fontawesome/brands/git-alt" %} + {% include ".icons/" ~ icon ~ ".svg" %} + diff --git a/doc/theme/material/partials/source.html b/doc/theme/material/partials/source.html new file mode 100644 index 00000000..095b49a2 --- /dev/null +++ b/doc/theme/material/partials/source.html @@ -0,0 +1,13 @@ +{#- + This file was automatically generated - do not edit +-#} +{% import "partials/language.html" as lang with context %} + +
    + {% set icon = config.theme.icon.repo or "fontawesome/brands/git-alt" %} + {% include ".icons/" ~ icon ~ ".svg" %} +
    +
    + {{ config.repo_name }} +
    +
    diff --git a/doc/theme/material/partials/tabs-item.html b/doc/theme/material/partials/tabs-item.html new file mode 100644 index 00000000..64ced43b --- /dev/null +++ b/doc/theme/material/partials/tabs-item.html @@ -0,0 +1,34 @@ +{#- + This file was automatically generated - do not edit +-#} +{% if nav_item.is_homepage or nav_item.url == "index.html" %} +
  • + {% if not page.ancestors | length and nav | selectattr("url", page.url) %} + + {{ nav_item.title }} + + {% else %} + + {{ nav_item.title }} + + {% endif %} +
  • +{% elif nav_item.children and nav_item.children | length > 0 %} + {% set title = title | default(nav_item.title) %} + {% if (nav_item.children | first).children %} + {% set nav_item = nav_item.children | first %} + {% include "partials/tabs-item.html" %} + {% else %} +
  • + {% if nav_item.active %} + + {{ title }} + + {% else %} + + {{ title }} + + {% endif %} +
  • + {% endif %} +{% endif %} diff --git a/doc/theme/material/partials/tabs.html b/doc/theme/material/partials/tabs.html new file mode 100644 index 00000000..d8e00a05 --- /dev/null +++ b/doc/theme/material/partials/tabs.html @@ -0,0 +1,16 @@ +{#- + This file was automatically generated - do not edit +-#} +{% set class = "md-tabs" %} +{% if page.ancestors | length > 0 %} + {% set class = "md-tabs md-tabs--active" %} +{% endif %} + diff --git a/doc/theme/material/partials/toc-item.html b/doc/theme/material/partials/toc-item.html new file mode 100644 index 00000000..3f0ffe46 --- /dev/null +++ b/doc/theme/material/partials/toc-item.html @@ -0,0 +1,17 @@ +{#- + This file was automatically generated - do not edit +-#} +
  • + + {{ toc_item.title }} + + {% if toc_item.children %} + + {% endif %} +
  • diff --git a/doc/theme/material/partials/toc.html b/doc/theme/material/partials/toc.html new file mode 100644 index 00000000..3a372bf0 --- /dev/null +++ b/doc/theme/material/partials/toc.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% import "partials/language.html" as lang with context %} + diff --git a/docs/404.html b/docs/404.html new file mode 100644 index 00000000..996dd1c5 --- /dev/null +++ b/docs/404.html @@ -0,0 +1,720 @@ + + + + + + + + + + + + + + + + + + + + iqoptionapi document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    + +
    + +
    + +
    + +
    + + + + + + + + + + + +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    + + + +
    +
    + +

    404 - Not found

    + + + + + + +
    +
    +
    +
    + + +
    + + +
    + +
    + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/assets/images/2.jpg b/docs/assets/images/2.jpg new file mode 100644 index 00000000..ebd8c7bd Binary files /dev/null and b/docs/assets/images/2.jpg differ diff --git a/docs/assets/images/donation.jpg b/docs/assets/images/donation.jpg new file mode 100644 index 00000000..ebec3bb6 Binary files /dev/null and b/docs/assets/images/donation.jpg differ diff --git a/docs/assets/images/favicon.png b/docs/assets/images/favicon.png new file mode 100644 index 00000000..1cf13b9f Binary files /dev/null and b/docs/assets/images/favicon.png differ diff --git a/docs/assets/javascripts/bundle.01de222e.min.js b/docs/assets/javascripts/bundle.01de222e.min.js new file mode 100644 index 00000000..6bc63c5b --- /dev/null +++ b/docs/assets/javascripts/bundle.01de222e.min.js @@ -0,0 +1,29 @@ +(()=>{var Ni=Object.create;var _t=Object.defineProperty;var qi=Object.getOwnPropertyDescriptor;var Qi=Object.getOwnPropertyNames,Mt=Object.getOwnPropertySymbols,Ki=Object.getPrototypeOf,br=Object.prototype.hasOwnProperty,Jr=Object.prototype.propertyIsEnumerable;var Xr=(e,t,r)=>t in e?_t(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,F=(e,t)=>{for(var r in t||(t={}))br.call(t,r)&&Xr(e,r,t[r]);if(Mt)for(var r of Mt(t))Jr.call(t,r)&&Xr(e,r,t[r]);return e};var Yi=e=>_t(e,"__esModule",{value:!0});var Zr=(e,t)=>{var r={};for(var n in e)br.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&Mt)for(var n of Mt(e))t.indexOf(n)<0&&Jr.call(e,n)&&(r[n]=e[n]);return r};var ht=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Bi=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Qi(t))!br.call(e,o)&&(r||o!=="default")&&_t(e,o,{get:()=>t[o],enumerable:!(n=qi(t,o))||n.enumerable});return e},ze=(e,t)=>Bi(Yi(_t(e!=null?Ni(Ki(e)):{},"default",!t&&e&&e.__esModule?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var tn=ht((vr,en)=>{(function(e,t){typeof vr=="object"&&typeof en!="undefined"?t():typeof define=="function"&&define.amd?define(t):t()})(vr,function(){"use strict";function e(r){var n=!0,o=!1,i=null,a={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function c(E){return!!(E&&E!==document&&E.nodeName!=="HTML"&&E.nodeName!=="BODY"&&"classList"in E&&"contains"in E.classList)}function s(E){var Ce=E.type,ke=E.tagName;return!!(ke==="INPUT"&&a[Ce]&&!E.readOnly||ke==="TEXTAREA"&&!E.readOnly||E.isContentEditable)}function u(E){E.classList.contains("focus-visible")||(E.classList.add("focus-visible"),E.setAttribute("data-focus-visible-added",""))}function f(E){!E.hasAttribute("data-focus-visible-added")||(E.classList.remove("focus-visible"),E.removeAttribute("data-focus-visible-added"))}function l(E){E.metaKey||E.altKey||E.ctrlKey||(c(r.activeElement)&&u(r.activeElement),n=!0)}function p(E){n=!1}function d(E){!c(E.target)||(n||s(E.target))&&u(E.target)}function h(E){!c(E.target)||(E.target.classList.contains("focus-visible")||E.target.hasAttribute("data-focus-visible-added"))&&(o=!0,window.clearTimeout(i),i=window.setTimeout(function(){o=!1},100),f(E.target))}function b(E){document.visibilityState==="hidden"&&(o&&(n=!0),I())}function I(){document.addEventListener("mousemove",H),document.addEventListener("mousedown",H),document.addEventListener("mouseup",H),document.addEventListener("pointermove",H),document.addEventListener("pointerdown",H),document.addEventListener("pointerup",H),document.addEventListener("touchmove",H),document.addEventListener("touchstart",H),document.addEventListener("touchend",H)}function Y(){document.removeEventListener("mousemove",H),document.removeEventListener("mousedown",H),document.removeEventListener("mouseup",H),document.removeEventListener("pointermove",H),document.removeEventListener("pointerdown",H),document.removeEventListener("pointerup",H),document.removeEventListener("touchmove",H),document.removeEventListener("touchstart",H),document.removeEventListener("touchend",H)}function H(E){E.target.nodeName&&E.target.nodeName.toLowerCase()==="html"||(n=!1,Y())}document.addEventListener("keydown",l,!0),document.addEventListener("mousedown",p,!0),document.addEventListener("pointerdown",p,!0),document.addEventListener("touchstart",p,!0),document.addEventListener("visibilitychange",b,!0),I(),r.addEventListener("focus",d,!0),r.addEventListener("blur",h,!0),r.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&r.host?r.host.setAttribute("data-js-focus-visible",""):r.nodeType===Node.DOCUMENT_NODE&&(document.documentElement.classList.add("js-focus-visible"),document.documentElement.setAttribute("data-js-focus-visible",""))}if(typeof window!="undefined"&&typeof document!="undefined"){window.applyFocusVisiblePolyfill=e;var t;try{t=new CustomEvent("focus-visible-polyfill-ready")}catch(r){t=document.createEvent("CustomEvent"),t.initCustomEvent("focus-visible-polyfill-ready",!1,!1,{})}window.dispatchEvent(t)}typeof document!="undefined"&&e(document)})});var rn=ht(gr=>{(function(e){var t=function(){try{return!!Symbol.iterator}catch(u){return!1}},r=t(),n=function(u){var f={next:function(){var l=u.shift();return{done:l===void 0,value:l}}};return r&&(f[Symbol.iterator]=function(){return f}),f},o=function(u){return encodeURIComponent(u).replace(/%20/g,"+")},i=function(u){return decodeURIComponent(String(u).replace(/\+/g," "))},a=function(){var u=function(l){Object.defineProperty(this,"_entries",{writable:!0,value:{}});var p=typeof l;if(p!=="undefined")if(p==="string")l!==""&&this._fromString(l);else if(l instanceof u){var d=this;l.forEach(function(Y,H){d.append(H,Y)})}else if(l!==null&&p==="object")if(Object.prototype.toString.call(l)==="[object Array]")for(var h=0;hd[0]?1:0}),u._entries&&(u._entries={});for(var l=0;l1?i(d[1]):"")}})})(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:gr);(function(e){var t=function(){try{var o=new e.URL("b","http://a");return o.pathname="c d",o.href==="http://a/c%20d"&&o.searchParams}catch(i){return!1}},r=function(){var o=e.URL,i=function(s,u){typeof s!="string"&&(s=String(s)),u&&typeof u!="string"&&(u=String(u));var f=document,l;if(u&&(e.location===void 0||u!==e.location.href)){u=u.toLowerCase(),f=document.implementation.createHTMLDocument(""),l=f.createElement("base"),l.href=u,f.head.appendChild(l);try{if(l.href.indexOf(u)!==0)throw new Error(l.href)}catch(E){throw new Error("URL unable to set base "+u+" due to "+E)}}var p=f.createElement("a");p.href=s,l&&(f.body.appendChild(p),p.href=p.href);var d=f.createElement("input");if(d.type="url",d.value=s,p.protocol===":"||!/:/.test(p.href)||!d.checkValidity()&&!u)throw new TypeError("Invalid URL");Object.defineProperty(this,"_anchorElement",{value:p});var h=new e.URLSearchParams(this.search),b=!0,I=!0,Y=this;["append","delete","set"].forEach(function(E){var Ce=h[E];h[E]=function(){Ce.apply(h,arguments),b&&(I=!1,Y.search=h.toString(),I=!0)}}),Object.defineProperty(this,"searchParams",{value:h,enumerable:!0});var H=void 0;Object.defineProperty(this,"_updateSearchParams",{enumerable:!1,configurable:!1,writable:!1,value:function(){this.search!==H&&(H=this.search,I&&(b=!1,this.searchParams._fromString(this.search),b=!0))}})},a=i.prototype,c=function(s){Object.defineProperty(a,s,{get:function(){return this._anchorElement[s]},set:function(u){this._anchorElement[s]=u},enumerable:!0})};["hash","host","hostname","port","protocol"].forEach(function(s){c(s)}),Object.defineProperty(a,"search",{get:function(){return this._anchorElement.search},set:function(s){this._anchorElement.search=s,this._updateSearchParams()},enumerable:!0}),Object.defineProperties(a,{toString:{get:function(){var s=this;return function(){return s.href}}},href:{get:function(){return this._anchorElement.href.replace(/\?$/,"")},set:function(s){this._anchorElement.href=s,this._updateSearchParams()},enumerable:!0},pathname:{get:function(){return this._anchorElement.pathname.replace(/(^\/?)/,"/")},set:function(s){this._anchorElement.pathname=s},enumerable:!0},origin:{get:function(){var s={"http:":80,"https:":443,"ftp:":21}[this._anchorElement.protocol],u=this._anchorElement.port!=s&&this._anchorElement.port!=="";return this._anchorElement.protocol+"//"+this._anchorElement.hostname+(u?":"+this._anchorElement.port:"")},enumerable:!0},password:{get:function(){return""},set:function(s){},enumerable:!0},username:{get:function(){return""},set:function(s){},enumerable:!0}}),i.createObjectURL=function(s){return o.createObjectURL.apply(o,arguments)},i.revokeObjectURL=function(s){return o.revokeObjectURL.apply(o,arguments)},e.URL=i};if(t()||r(),e.location!==void 0&&!("origin"in e.location)){var n=function(){return e.location.protocol+"//"+e.location.hostname+(e.location.port?":"+e.location.port:"")};try{Object.defineProperty(e.location,"origin",{get:n,enumerable:!0})}catch(o){setInterval(function(){e.location.origin=n()},100)}}})(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:gr)});var On=ht((ws,Ct)=>{/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */var nn,on,an,sn,cn,un,fn,pn,ln,Lt,yr,mn,dn,hn,Je,bn,vn,gn,yn,xn,wn,Sn,En,At;(function(e){var t=typeof global=="object"?global:typeof self=="object"?self:typeof this=="object"?this:{};typeof define=="function"&&define.amd?define("tslib",["exports"],function(n){e(r(t,r(n)))}):typeof Ct=="object"&&typeof Ct.exports=="object"?e(r(t,r(Ct.exports))):e(r(t));function r(n,o){return n!==t&&(typeof Object.create=="function"?Object.defineProperty(n,"__esModule",{value:!0}):n.__esModule=!0),function(i,a){return n[i]=o?o(i,a):a}}})(function(e){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,o){n.__proto__=o}||function(n,o){for(var i in o)Object.prototype.hasOwnProperty.call(o,i)&&(n[i]=o[i])};nn=function(n,o){if(typeof o!="function"&&o!==null)throw new TypeError("Class extends value "+String(o)+" is not a constructor or null");t(n,o);function i(){this.constructor=n}n.prototype=o===null?Object.create(o):(i.prototype=o.prototype,new i)},on=Object.assign||function(n){for(var o,i=1,a=arguments.length;i=0;f--)(u=n[f])&&(s=(c<3?u(s):c>3?u(o,i,s):u(o,i))||s);return c>3&&s&&Object.defineProperty(o,i,s),s},cn=function(n,o){return function(i,a){o(i,a,n)}},un=function(n,o){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,o)},fn=function(n,o,i,a){function c(s){return s instanceof i?s:new i(function(u){u(s)})}return new(i||(i=Promise))(function(s,u){function f(d){try{p(a.next(d))}catch(h){u(h)}}function l(d){try{p(a.throw(d))}catch(h){u(h)}}function p(d){d.done?s(d.value):c(d.value).then(f,l)}p((a=a.apply(n,o||[])).next())})},pn=function(n,o){var i={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},a,c,s,u;return u={next:f(0),throw:f(1),return:f(2)},typeof Symbol=="function"&&(u[Symbol.iterator]=function(){return this}),u;function f(p){return function(d){return l([p,d])}}function l(p){if(a)throw new TypeError("Generator is already executing.");for(;i;)try{if(a=1,c&&(s=p[0]&2?c.return:p[0]?c.throw||((s=c.return)&&s.call(c),0):c.next)&&!(s=s.call(c,p[1])).done)return s;switch(c=0,s&&(p=[p[0]&2,s.value]),p[0]){case 0:case 1:s=p;break;case 4:return i.label++,{value:p[1],done:!1};case 5:i.label++,c=p[1],p=[0];continue;case 7:p=i.ops.pop(),i.trys.pop();continue;default:if(s=i.trys,!(s=s.length>0&&s[s.length-1])&&(p[0]===6||p[0]===2)){i=0;continue}if(p[0]===3&&(!s||p[1]>s[0]&&p[1]=n.length&&(n=void 0),{value:n&&n[a++],done:!n}}};throw new TypeError(o?"Object is not iterable.":"Symbol.iterator is not defined.")},yr=function(n,o){var i=typeof Symbol=="function"&&n[Symbol.iterator];if(!i)return n;var a=i.call(n),c,s=[],u;try{for(;(o===void 0||o-- >0)&&!(c=a.next()).done;)s.push(c.value)}catch(f){u={error:f}}finally{try{c&&!c.done&&(i=a.return)&&i.call(a)}finally{if(u)throw u.error}}return s},mn=function(){for(var n=[],o=0;o1||f(b,I)})})}function f(b,I){try{l(a[b](I))}catch(Y){h(s[0][3],Y)}}function l(b){b.value instanceof Je?Promise.resolve(b.value.v).then(p,d):h(s[0][2],b)}function p(b){f("next",b)}function d(b){f("throw",b)}function h(b,I){b(I),s.shift(),s.length&&f(s[0][0],s[0][1])}},vn=function(n){var o,i;return o={},a("next"),a("throw",function(c){throw c}),a("return"),o[Symbol.iterator]=function(){return this},o;function a(c,s){o[c]=n[c]?function(u){return(i=!i)?{value:Je(n[c](u)),done:c==="return"}:s?s(u):u}:s}},gn=function(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=n[Symbol.asyncIterator],i;return o?o.call(n):(n=typeof Lt=="function"?Lt(n):n[Symbol.iterator](),i={},a("next"),a("throw"),a("return"),i[Symbol.asyncIterator]=function(){return this},i);function a(s){i[s]=n[s]&&function(u){return new Promise(function(f,l){u=n[s](u),c(f,l,u.done,u.value)})}}function c(s,u,f,l){Promise.resolve(l).then(function(p){s({value:p,done:f})},u)}},yn=function(n,o){return Object.defineProperty?Object.defineProperty(n,"raw",{value:o}):n.raw=o,n};var r=Object.create?function(n,o){Object.defineProperty(n,"default",{enumerable:!0,value:o})}:function(n,o){n.default=o};xn=function(n){if(n&&n.__esModule)return n;var o={};if(n!=null)for(var i in n)i!=="default"&&Object.prototype.hasOwnProperty.call(n,i)&&At(o,n,i);return r(o,n),o},wn=function(n){return n&&n.__esModule?n:{default:n}},Sn=function(n,o,i,a){if(i==="a"&&!a)throw new TypeError("Private accessor was defined without a getter");if(typeof o=="function"?n!==o||!a:!o.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return i==="m"?a:i==="a"?a.call(n):a?a.value:o.get(n)},En=function(n,o,i,a,c){if(a==="m")throw new TypeError("Private method is not writable");if(a==="a"&&!c)throw new TypeError("Private accessor was defined without a setter");if(typeof o=="function"?n!==o||!c:!o.has(n))throw new TypeError("Cannot write private member to an object whose class did not declare it");return a==="a"?c.call(n,i):c?c.value=i:o.set(n,i),i},e("__extends",nn),e("__assign",on),e("__rest",an),e("__decorate",sn),e("__param",cn),e("__metadata",un),e("__awaiter",fn),e("__generator",pn),e("__exportStar",ln),e("__createBinding",At),e("__values",Lt),e("__read",yr),e("__spread",mn),e("__spreadArrays",dn),e("__spreadArray",hn),e("__await",Je),e("__asyncGenerator",bn),e("__asyncDelegator",vn),e("__asyncValues",gn),e("__makeTemplateObject",yn),e("__importStar",xn),e("__importDefault",wn),e("__classPrivateFieldGet",Sn),e("__classPrivateFieldSet",En)})});var zr=ht((Ot,Vr)=>{/*! + * clipboard.js v2.0.8 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */(function(t,r){typeof Ot=="object"&&typeof Vr=="object"?Vr.exports=r():typeof define=="function"&&define.amd?define([],r):typeof Ot=="object"?Ot.ClipboardJS=r():t.ClipboardJS=r()})(Ot,function(){return function(){var e={134:function(n,o,i){"use strict";i.d(o,{default:function(){return Vi}});var a=i(279),c=i.n(a),s=i(370),u=i.n(s),f=i(817),l=i.n(f);function p(L){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?p=function(v){return typeof v}:p=function(v){return v&&typeof Symbol=="function"&&v.constructor===Symbol&&v!==Symbol.prototype?"symbol":typeof v},p(L)}function d(L,x){if(!(L instanceof x))throw new TypeError("Cannot call a class as a function")}function h(L,x){for(var v=0;v0&&arguments[0]!==void 0?arguments[0]:{};this.action=v.action,this.container=v.container,this.emitter=v.emitter,this.target=v.target,this.text=v.text,this.trigger=v.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"createFakeElement",value:function(){var v=document.documentElement.getAttribute("dir")==="rtl";this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[v?"right":"left"]="-9999px";var $=window.pageYOffset||document.documentElement.scrollTop;return this.fakeElem.style.top="".concat($,"px"),this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.fakeElem}},{key:"selectFake",value:function(){var v=this,$=this.createFakeElement();this.fakeHandlerCallback=function(){return v.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.container.appendChild($),this.selectedText=l()($),this.copyText(),this.removeFake()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=l()(this.target),this.copyText()}},{key:"copyText",value:function(){var v;try{v=document.execCommand(this.action)}catch($){v=!1}this.handleResult(v)}},{key:"handleResult",value:function(v){this.emitter.emit(v?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),document.activeElement.blur(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var v=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"copy";if(this._action=v,this._action!=="copy"&&this._action!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(v){if(v!==void 0)if(v&&p(v)==="object"&&v.nodeType===1){if(this.action==="copy"&&v.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(this.action==="cut"&&(v.hasAttribute("readonly")||v.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`);this._target=v}else throw new Error('Invalid "target" value, use a valid Element')},get:function(){return this._target}}]),L}(),Y=I;function H(L){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?H=function(v){return typeof v}:H=function(v){return v&&typeof Symbol=="function"&&v.constructor===Symbol&&v!==Symbol.prototype?"symbol":typeof v},H(L)}function E(L,x){if(!(L instanceof x))throw new TypeError("Cannot call a class as a function")}function Ce(L,x){for(var v=0;v0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof z.action=="function"?z.action:this.defaultAction,this.target=typeof z.target=="function"?z.target:this.defaultTarget,this.text=typeof z.text=="function"?z.text:this.defaultText,this.container=H(z.container)==="object"?z.container:document.body}},{key:"listenClick",value:function(z){var ee=this;this.listener=u()(z,"click",function(dt){return ee.onClick(dt)})}},{key:"onClick",value:function(z){var ee=z.delegateTarget||z.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new Y({action:this.action(ee),target:this.target(ee),text:this.text(ee),container:this.container,trigger:ee,emitter:this})}},{key:"defaultAction",value:function(z){return hr("action",z)}},{key:"defaultTarget",value:function(z){var ee=hr("target",z);if(ee)return document.querySelector(ee)}},{key:"defaultText",value:function(z){return hr("text",z)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var z=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],ee=typeof z=="string"?[z]:z,dt=!!document.queryCommandSupported;return ee.forEach(function(zi){dt=dt&&!!document.queryCommandSupported(zi)}),dt}}]),v}(c()),Vi=Di},828:function(n){var o=9;if(typeof Element!="undefined"&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}function a(c,s){for(;c&&c.nodeType!==o;){if(typeof c.matches=="function"&&c.matches(s))return c;c=c.parentNode}}n.exports=a},438:function(n,o,i){var a=i(828);function c(f,l,p,d,h){var b=u.apply(this,arguments);return f.addEventListener(p,b,h),{destroy:function(){f.removeEventListener(p,b,h)}}}function s(f,l,p,d,h){return typeof f.addEventListener=="function"?c.apply(null,arguments):typeof p=="function"?c.bind(null,document).apply(null,arguments):(typeof f=="string"&&(f=document.querySelectorAll(f)),Array.prototype.map.call(f,function(b){return c(b,l,p,d,h)}))}function u(f,l,p,d){return function(h){h.delegateTarget=a(h.target,l),h.delegateTarget&&d.call(f,h)}}n.exports=s},879:function(n,o){o.node=function(i){return i!==void 0&&i instanceof HTMLElement&&i.nodeType===1},o.nodeList=function(i){var a=Object.prototype.toString.call(i);return i!==void 0&&(a==="[object NodeList]"||a==="[object HTMLCollection]")&&"length"in i&&(i.length===0||o.node(i[0]))},o.string=function(i){return typeof i=="string"||i instanceof String},o.fn=function(i){var a=Object.prototype.toString.call(i);return a==="[object Function]"}},370:function(n,o,i){var a=i(879),c=i(438);function s(p,d,h){if(!p&&!d&&!h)throw new Error("Missing required arguments");if(!a.string(d))throw new TypeError("Second argument must be a String");if(!a.fn(h))throw new TypeError("Third argument must be a Function");if(a.node(p))return u(p,d,h);if(a.nodeList(p))return f(p,d,h);if(a.string(p))return l(p,d,h);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function u(p,d,h){return p.addEventListener(d,h),{destroy:function(){p.removeEventListener(d,h)}}}function f(p,d,h){return Array.prototype.forEach.call(p,function(b){b.addEventListener(d,h)}),{destroy:function(){Array.prototype.forEach.call(p,function(b){b.removeEventListener(d,h)})}}}function l(p,d,h){return c(document.body,p,d,h)}n.exports=s},817:function(n){function o(i){var a;if(i.nodeName==="SELECT")i.focus(),a=i.value;else if(i.nodeName==="INPUT"||i.nodeName==="TEXTAREA"){var c=i.hasAttribute("readonly");c||i.setAttribute("readonly",""),i.select(),i.setSelectionRange(0,i.value.length),c||i.removeAttribute("readonly"),a=i.value}else{i.hasAttribute("contenteditable")&&i.focus();var s=window.getSelection(),u=document.createRange();u.selectNodeContents(i),s.removeAllRanges(),s.addRange(u),a=s.toString()}return a}n.exports=o},279:function(n){function o(){}o.prototype={on:function(i,a,c){var s=this.e||(this.e={});return(s[i]||(s[i]=[])).push({fn:a,ctx:c}),this},once:function(i,a,c){var s=this;function u(){s.off(i,u),a.apply(c,arguments)}return u._=a,this.on(i,u,c)},emit:function(i){var a=[].slice.call(arguments,1),c=((this.e||(this.e={}))[i]||[]).slice(),s=0,u=c.length;for(s;s{"use strict";/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var ns=/["'&<>]/;ui.exports=os;function os(e){var t=""+e,r=ns.exec(t);if(!r)return t;var n,o="",i=0,a=0;for(i=r.index;i0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var n=this,o=n.hasError,i=n.isStopped,a=n.observers;return o||i?xr:(a.push(r),new Oe(function(){return Re(a,r)}))},t.prototype._checkFinalizedStatuses=function(r){var n=this,o=n.hasError,i=n.thrownError,a=n.isStopped;o?r.error(i):a&&r.complete()},t.prototype.asObservable=function(){var r=new j;return r.source=this,r},t.create=function(r,n){return new jn(r,n)},t}(j);var jn=function(e){Z(t,e);function t(r,n){var o=e.call(this)||this;return o.destination=r,o.source=n,o}return t.prototype.next=function(r){var n,o;(o=(n=this.destination)===null||n===void 0?void 0:n.next)===null||o===void 0||o.call(n,r)},t.prototype.error=function(r){var n,o;(o=(n=this.destination)===null||n===void 0?void 0:n.error)===null||o===void 0||o.call(n,r)},t.prototype.complete=function(){var r,n;(n=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||n===void 0||n.call(r)},t.prototype._subscribe=function(r){var n,o;return(o=(n=this.source)===null||n===void 0?void 0:n.subscribe(r))!==null&&o!==void 0?o:xr},t}(S);var vt={now:function(){return(vt.delegate||Date).now()},delegate:void 0};var gt=function(e){Z(t,e);function t(r,n,o){r===void 0&&(r=1/0),n===void 0&&(n=1/0),o===void 0&&(o=vt);var i=e.call(this)||this;return i._bufferSize=r,i._windowTime=n,i._timestampProvider=o,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=n===1/0,i._bufferSize=Math.max(1,r),i._windowTime=Math.max(1,n),i}return t.prototype.next=function(r){var n=this,o=n.isStopped,i=n._buffer,a=n._infiniteTimeWindow,c=n._timestampProvider,s=n._windowTime;o||(i.push(r),!a&&i.push(c.now()+s)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var n=this._innerSubscribe(r),o=this,i=o._infiniteTimeWindow,a=o._buffer,c=a.slice(),s=0;s0?e.prototype.requestAsyncId.call(this,r,n,o):(r.actions.push(this),r._scheduled||(r._scheduled=rt.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,n,o){if(o===void 0&&(o=0),o!=null&&o>0||o==null&&this.delay>0)return e.prototype.recycleAsyncId.call(this,r,n,o);r.actions.some(function(i){return i.id===n})||(rt.cancelAnimationFrame(n),r._scheduled=void 0)},t}(Ft);var Dn=function(e){Z(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var n=this._scheduled;this._scheduled=void 0;var o=this.actions,i;r=r||o.shift();do if(i=r.execute(r.state,r.delay))break;while((r=o[0])&&r.id===n&&o.shift());if(this._active=!1,i){for(;(r=o[0])&&r.id===n&&o.shift();)r.unsubscribe();throw i}},t}(jt);var we=new Dn(Wn);var N=new j(function(e){return e.complete()});function Ut(e){return e&&O(e.schedule)}function _r(e){return e[e.length-1]}function Ie(e){return O(_r(e))?e.pop():void 0}function ve(e){return Ut(_r(e))?e.pop():void 0}function Wt(e,t){return typeof _r(e)=="number"?e.pop():t}var nt=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function Dt(e){return O(e==null?void 0:e.then)}function Vt(e){return O(e[tt])}function zt(e){return Symbol.asyncIterator&&O(e==null?void 0:e[Symbol.asyncIterator])}function Nt(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function ea(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var qt=ea();function Qt(e){return O(e==null?void 0:e[qt])}function Kt(e){return Mn(this,arguments,function(){var r,n,o,i;return kt(this,function(a){switch(a.label){case 0:r=e.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,Rt(r.read())];case 3:return n=a.sent(),o=n.value,i=n.done,i?[4,Rt(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,Rt(o)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}function Yt(e){return O(e==null?void 0:e.getReader)}function D(e){if(e instanceof j)return e;if(e!=null){if(Vt(e))return ta(e);if(nt(e))return ra(e);if(Dt(e))return na(e);if(zt(e))return Vn(e);if(Qt(e))return oa(e);if(Yt(e))return ia(e)}throw Nt(e)}function ta(e){return new j(function(t){var r=e[tt]();if(O(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function ra(e){return new j(function(t){for(var r=0;r=2,!0))}function fe(e){e===void 0&&(e={});var t=e.connector,r=t===void 0?function(){return new S}:t,n=e.resetOnError,o=n===void 0?!0:n,i=e.resetOnComplete,a=i===void 0?!0:i,c=e.resetOnRefCountZero,s=c===void 0?!0:c;return function(u){var f=null,l=null,p=null,d=0,h=!1,b=!1,I=function(){l==null||l.unsubscribe(),l=null},Y=function(){I(),f=p=null,h=b=!1},H=function(){var E=f;Y(),E==null||E.unsubscribe()};return g(function(E,Ce){d++,!b&&!h&&I();var ke=p=p!=null?p:r();Ce.add(function(){d--,d===0&&!b&&!h&&(l=Hr(H,s))}),ke.subscribe(Ce),f||(f=new et({next:function(Ge){return ke.next(Ge)},error:function(Ge){b=!0,I(),l=Hr(Y,o,Ge),ke.error(Ge)},complete:function(){h=!0,I(),l=Hr(Y,a),ke.complete()}}),te(E).subscribe(f))})(u)}}function Hr(e,t){for(var r=[],n=2;ne.next(document)),e}function G(e,t=document){return Array.from(t.querySelectorAll(e))}function K(e,t=document){let r=ce(e,t);if(typeof r=="undefined")throw new ReferenceError(`Missing element: expected "${e}" to be present`);return r}function ce(e,t=document){return t.querySelector(e)||void 0}function Ue(){return document.activeElement instanceof HTMLElement&&document.activeElement||void 0}function Zt(e){return A(w(document.body,"focusin"),w(document.body,"focusout")).pipe(Ke(1),m(()=>{let t=Ue();return typeof t!="undefined"?e.contains(t):!1}),V(e===Ue()),Q())}function We(e){return{x:e.offsetLeft,y:e.offsetTop}}function co(e){return A(w(window,"load"),w(window,"resize")).pipe(He(0,we),m(()=>We(e)),V(We(e)))}function uo(e){return{x:e.scrollLeft,y:e.scrollTop}}function er(e){return A(w(e,"scroll"),w(window,"resize")).pipe(He(0,we),m(()=>uo(e)),V(uo(e)))}var fo=function(){if(typeof Map!="undefined")return Map;function e(t,r){var n=-1;return t.some(function(o,i){return o[0]===r?(n=i,!0):!1}),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(r){var n=e(this.__entries__,r),o=this.__entries__[n];return o&&o[1]},t.prototype.set=function(r,n){var o=e(this.__entries__,r);~o?this.__entries__[o][1]=n:this.__entries__.push([r,n])},t.prototype.delete=function(r){var n=this.__entries__,o=e(n,r);~o&&n.splice(o,1)},t.prototype.has=function(r){return!!~e(this.__entries__,r)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(r,n){n===void 0&&(n=null);for(var o=0,i=this.__entries__;o0},e.prototype.connect_=function(){!Ur||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),Ma?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){!Ur||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(t){var r=t.propertyName,n=r===void 0?"":r,o=_a.some(function(i){return!!~n.indexOf(i)});o&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),po=function(e,t){for(var r=0,n=Object.keys(t);r0},e}(),ho=typeof WeakMap!="undefined"?new WeakMap:new fo,bo=function(){function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var r=La.getInstance(),n=new ja(t,r,this);ho.set(this,n)}return e}();["observe","unobserve","disconnect"].forEach(function(e){bo.prototype[e]=function(){var t;return(t=ho.get(this))[e].apply(t,arguments)}});var Ua=function(){return typeof tr.ResizeObserver!="undefined"?tr.ResizeObserver:bo}(),vo=Ua;var go=new S,Wa=U(()=>k(new vo(e=>{for(let t of e)go.next(t)}))).pipe(_(e=>A(ge,k(e)).pipe(C(()=>e.disconnect()))),J(1));function _e(e){return{width:e.offsetWidth,height:e.offsetHeight}}function he(e){return Wa.pipe(T(t=>t.observe(e)),_(t=>go.pipe(M(({target:r})=>r===e),C(()=>t.unobserve(e)),m(()=>_e(e)))),V(_e(e)))}function or(e){return{width:e.scrollWidth,height:e.scrollHeight}}var Da=new S,rv=U(()=>k(new IntersectionObserver(e=>{for(let t of e)Da.next(t)},{threshold:1}))).pipe(_(e=>A(ge,k(e)).pipe(C(()=>e.disconnect()))),J(1));function yo(e,t=16){return er(e).pipe(m(({y:r})=>{let n=_e(e),o=or(e);return r>=o.height-n.height-t}),Q())}var ir={drawer:K("[data-md-toggle=drawer]"),search:K("[data-md-toggle=search]")};function xo(e){return ir[e].checked}function De(e,t){ir[e].checked!==t&&ir[e].click()}function ar(e){let t=ir[e];return w(t,"change").pipe(m(()=>t.checked),V(t.checked))}function Va(e,t){switch(e.constructor){case HTMLInputElement:return e.type==="radio"?/^Arrow/.test(t):!0;case HTMLSelectElement:case HTMLTextAreaElement:return!0;default:return e.isContentEditable}}function wo(){return w(window,"keydown").pipe(M(e=>!(e.metaKey||e.ctrlKey)),m(e=>({mode:xo("search")?"search":"global",type:e.key,claim(){e.preventDefault(),e.stopPropagation()}})),M(({mode:e,type:t})=>{if(e==="global"){let r=Ue();if(typeof r!="undefined")return!Va(r,t)}return!0}),fe())}function Me(){return new URL(location.href)}function So(e){location.href=e.href}function Eo(){return new S}function Oo(e,t){if(typeof t=="string"||typeof t=="number")e.innerHTML+=t.toString();else if(t instanceof Node)e.appendChild(t);else if(Array.isArray(t))for(let r of t)Oo(e,r)}function R(e,t,...r){let n=document.createElement(e);if(t)for(let o of Object.keys(t))typeof t[o]!="boolean"?n.setAttribute(o,t[o]):t[o]&&n.setAttribute(o,"");for(let o of r)Oo(n,o);return n}function To(e,t){let r=t;if(e.length>r){for(;e[r]!==" "&&--r>0;);return`${e.substring(0,r)}...`}return e}function sr(e){if(e>999){let t=+((e-950)%1e3>99);return`${((e+1e-6)/1e3).toFixed(t)}k`}else return e.toString()}function _o(){return location.hash.substring(1)}function Mo(e){let t=R("a",{href:e});t.addEventListener("click",r=>r.stopPropagation()),t.click()}function za(){return w(window,"hashchange").pipe(m(_o),V(_o()),M(e=>e.length>0),J(1))}function Lo(){return za().pipe(m(e=>ce(`[id="${e}"]`)),M(e=>typeof e!="undefined"))}function Wr(e){let t=matchMedia(e);return Jt(r=>t.addListener(()=>r(t.matches))).pipe(V(t.matches))}function Ao(){let e=matchMedia("print");return A(w(window,"beforeprint").pipe(re(!0)),w(window,"afterprint").pipe(re(!1))).pipe(V(e.matches))}function Dr(e,t){return e.pipe(_(r=>r?t():N))}function cr(e,t={credentials:"same-origin"}){return te(fetch(`${e}`,t)).pipe(M(r=>r.status===200),je(()=>N))}function Le(e,t){return cr(e,t).pipe(_(r=>r.json()),J(1))}function Co(e,t){let r=new DOMParser;return cr(e,t).pipe(_(n=>n.text()),m(n=>r.parseFromString(n,"text/xml")),J(1))}function ko(){return{x:Math.max(0,scrollX),y:Math.max(0,scrollY)}}function Ro(){return A(w(window,"scroll",{passive:!0}),w(window,"resize",{passive:!0})).pipe(m(ko),V(ko()))}function Ho(){return{width:innerWidth,height:innerHeight}}function Po(){return w(window,"resize",{passive:!0}).pipe(m(Ho),V(Ho()))}function Io(){return q([Ro(),Po()]).pipe(m(([e,t])=>({offset:e,size:t})),J(1))}function ur(e,{viewport$:t,header$:r}){let n=t.pipe(B("size")),o=q([n,r]).pipe(m(()=>We(e)));return q([r,t,o]).pipe(m(([{height:i},{offset:a,size:c},{x:s,y:u}])=>({offset:{x:a.x-s,y:a.y-u+i},size:c})))}function $o(e,{tx$:t}){let r=w(e,"message").pipe(m(({data:n})=>n));return t.pipe(Et(()=>r,{leading:!0,trailing:!0}),T(n=>e.postMessage(n)),Pr(r),fe())}var Na=K("#__config"),ft=JSON.parse(Na.textContent);ft.base=`${new URL(ft.base,Me())}`;function be(){return ft}function ae(e){return ft.features.includes(e)}function X(e,t){return typeof t!="undefined"?ft.translations[e].replace("#",t.toString()):ft.translations[e]}function Ae(e,t=document){return K(`[data-md-component=${e}]`,t)}function ne(e,t=document){return G(`[data-md-component=${e}]`,t)}var Qo=ze(zr());function Fo(e){return R("aside",{class:"md-annotation",tabIndex:0},R("div",{class:"md-annotation__inner md-tooltip"},R("div",{class:"md-tooltip__inner md-typeset"})),R("span",{class:"md-annotation__index"},R("span",{"data-md-annotation-id":e})))}function jo(e){return R("button",{class:"md-clipboard md-icon",title:X("clipboard.copy"),"data-clipboard-target":`#${e} > code`})}function Nr(e,t){let r=t&2,n=t&1,o=Object.keys(e.terms).filter(a=>!e.terms[a]).reduce((a,c)=>[...a,R("del",null,c)," "],[]).slice(0,-1),i=new URL(e.location);return ae("search.highlight")&&i.searchParams.set("h",Object.entries(e.terms).filter(([,a])=>a).reduce((a,[c])=>`${a} ${c}`.trim(),"")),R("a",{href:`${i}`,class:"md-search-result__link",tabIndex:-1},R("article",{class:["md-search-result__article",...r?["md-search-result__article--document"]:[]].join(" "),"data-md-score":e.score.toFixed(2)},r>0&&R("div",{class:"md-search-result__icon md-icon"}),R("h1",{class:"md-search-result__title"},e.title),n>0&&e.text.length>0&&R("p",{class:"md-search-result__teaser"},To(e.text,320)),n>0&&o.length>0&&R("p",{class:"md-search-result__terms"},X("search.result.term.missing"),": ",o)))}function Uo(e){let t=e[0].score,r=[...e],n=r.findIndex(u=>!u.location.includes("#")),[o]=r.splice(n,1),i=r.findIndex(u=>u.scoreNr(u,1)),...c.length?[R("details",{class:"md-search-result__more"},R("summary",{tabIndex:-1},c.length>0&&c.length===1?X("search.result.more.one"):X("search.result.more.other",c.length)),c.map(u=>Nr(u,1)))]:[]];return R("li",{class:"md-search-result__item"},s)}function Wo(e){return R("ul",{class:"md-source__facts"},Object.entries(e).map(([t,r])=>R("li",{class:`md-source__fact md-source__fact--${t}`},typeof r=="number"?sr(r):r)))}function Do(e){return R("div",{class:"md-typeset__scrollwrap"},R("div",{class:"md-typeset__table"},e))}function qa(e){let t=be(),r=new URL(`../${e.version}/`,t.base);return R("li",{class:"md-version__item"},R("a",{href:r.toString(),class:"md-version__link"},e.title))}function Vo(e,t){return R("div",{class:"md-version"},R("button",{class:"md-version__current","aria-label":X("select.version.title")},t.title),R("ul",{class:"md-version__list"},e.map(qa)))}function Qa(e,t){let r=U(()=>q([co(e),er(t)])).pipe(m(([{x:n,y:o},i])=>{let{width:a}=_e(e);return{x:n-i.x+a/2,y:o-i.y}}));return Zt(e).pipe(_(n=>r.pipe(m(o=>({active:n,offset:o})),le(+!n||1/0))))}function zo(e,t){return U(()=>{let r=new S;r.subscribe({next({offset:i}){e.style.setProperty("--md-tooltip-x",`${i.x}px`),e.style.setProperty("--md-tooltip-y",`${i.y}px`)},complete(){e.style.removeProperty("--md-tooltip-x"),e.style.removeProperty("--md-tooltip-y")}}),r.pipe(Fr(500,we),m(()=>t.getBoundingClientRect()),m(({x:i})=>i)).subscribe({next(i){i?e.style.setProperty("--md-tooltip-0",`${-i}px`):e.style.removeProperty("--md-tooltip-0")},complete(){e.style.removeProperty("--md-tooltip-0")}});let n=K(":scope > :last-child",e),o=w(n,"mousedown",{once:!0});return r.pipe(_(({active:i})=>i?o:N),T(i=>i.preventDefault())).subscribe(()=>e.blur()),Qa(e,t).pipe(T(i=>r.next(i)),C(()=>r.complete()),m(i=>F({ref:e},i)))})}function Ka(e){let t=[];for(let r of G(".c, .c1, .cm",e)){let n,o=r.firstChild;for(;n=/\((\d+)\)/.exec(o.textContent);){let i=o.splitText(n.index);o=i.splitText(n[0].length),t.push(i)}}return t}function No(e,t){t.append(...Array.from(e.childNodes))}function qo(e,t,{print$:r}){let n=new Map;for(let o of Ka(t)){let[,i]=o.textContent.match(/\((\d+)\)/);ce(`li:nth-child(${i})`,e)&&(n.set(+i,Fo(+i)),o.replaceWith(n.get(+i)))}return n.size===0?N:U(()=>{let o=new S;return r.pipe(se(o.pipe(ue(1)))).subscribe(i=>{e.hidden=!i;for(let[a,c]of n){let s=K(".md-typeset",c),u=K(`li:nth-child(${a})`,e);i?No(s,u):No(u,s)}}),A(...[...n].map(([,i])=>zo(i,t))).pipe(C(()=>o.complete()),fe())})}var Ya=0;function Ko(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return Ko(t)}}function Yo(e){return he(e).pipe(m(({width:t})=>({scrollable:or(e).width>t})),B("scrollable"))}function Bo(e,t){let{matches:r}=matchMedia("(hover)");return U(()=>{let n=new S;if(n.subscribe(({scrollable:i})=>{i&&r?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")}),Qo.default.isSupported()){let i=e.closest("pre");i.id=`__code_${++Ya}`,i.insertBefore(jo(i.id),e)}let o=e.closest([":not(td):not(.code) > .highlight",".highlighttable"].join(", "));if(o instanceof HTMLElement){let i=Ko(o);if(typeof i!="undefined"&&(o.classList.contains("annotate")||ae("content.code.annotate"))){let a=qo(i,e,t);return Yo(e).pipe(T(c=>n.next(c)),C(()=>n.complete()),m(c=>F({ref:e},c)),Be(he(o).pipe(se(n.pipe(ue(1))),m(({width:c,height:s})=>c&&s),Q(),_(c=>c?a:N))))}}return Yo(e).pipe(T(i=>n.next(i)),C(()=>n.complete()),m(i=>F({ref:e},i)))})}function Ba(e,{target$:t,print$:r}){let n=!0;return A(t.pipe(m(o=>o.closest("details:not([open])")),M(o=>e===o),re({action:"open",reveal:!0})),r.pipe(M(o=>o||!n),T(()=>n=e.open),m(o=>({action:o?"open":"close"}))))}function Go(e,t){return U(()=>{let r=new S;return r.subscribe(({action:n,reveal:o})=>{n==="open"?e.setAttribute("open",""):e.removeAttribute("open"),o&&e.scrollIntoView()}),Ba(e,t).pipe(T(n=>r.next(n)),C(()=>r.complete()),m(n=>F({ref:e},n)))})}var Jo=R("table");function Xo(e){return e.replaceWith(Jo),Jo.replaceWith(Do(e)),k({ref:e})}function Ga(e){let t=G(":scope > input",e);return A(...t.map(r=>w(r,"change").pipe(re({active:K(`label[for=${r.id}]`)})))).pipe(V({active:K(`label[for=${t[0].id}]`)}))}function Zo(e){let t=K(".tabbed-labels",e);return U(()=>{let r=new S;return q([r,he(e)]).pipe(He(1,we),se(r.pipe(ue(1)))).subscribe({next([{active:n}]){let o=We(n),{width:i}=_e(n);e.style.setProperty("--md-indicator-x",`${o.x}px`),e.style.setProperty("--md-indicator-width",`${i}px`),t.scrollTo({behavior:"smooth",left:o.x})},complete(){e.style.removeProperty("--md-indicator-x"),e.style.removeProperty("--md-indicator-width")}}),Ga(e).pipe(T(n=>r.next(n)),C(()=>r.complete()),m(n=>F({ref:e},n)))})}function ei(e,{target$:t,print$:r}){return A(...G("pre > code",e).map(n=>Bo(n,{print$:r})),...G("table:not([class])",e).map(n=>Xo(n)),...G("details",e).map(n=>Go(n,{target$:t,print$:r})),...G("[data-tabs]",e).map(n=>Zo(n)))}function Ja(e,{alert$:t}){return t.pipe(_(r=>A(k(!0),k(!1).pipe(Pe(2e3))).pipe(m(n=>({message:r,active:n})))))}function ti(e,t){let r=K(".md-typeset",e);return U(()=>{let n=new S;return n.subscribe(({message:o,active:i})=>{r.textContent=o,i?e.setAttribute("data-md-state","open"):e.removeAttribute("data-md-state")}),Ja(e,t).pipe(T(o=>n.next(o)),C(()=>n.complete()),m(o=>F({ref:e},o)))})}function Xa({viewport$:e}){if(!ae("header.autohide"))return k(!1);let t=e.pipe(m(({offset:{y:o}})=>o),Se(2,1),m(([o,i])=>[oMath.abs(i-o.y)>100),m(([,[o]])=>o),Q()),n=ar("search");return q([e,n]).pipe(m(([{offset:o},i])=>o.y>400&&!i),Q(),_(o=>o?r:k(!1)),V(!1))}function ri(e,t){return U(()=>{let r=getComputedStyle(e);return k(r.position==="sticky"||r.position==="-webkit-sticky")}).pipe(at(he(e),Xa(t)),m(([r,{height:n},o])=>({height:r?n:0,sticky:r,hidden:o})),Q((r,n)=>r.sticky===n.sticky&&r.height===n.height&&r.hidden===n.hidden),J(1))}function ni(e,{header$:t,main$:r}){return U(()=>{let n=new S;return n.pipe(B("active"),at(t)).subscribe(([{active:o},{hidden:i}])=>{o?e.setAttribute("data-md-state",i?"hidden":"shadow"):e.removeAttribute("data-md-state")}),r.subscribe(n),t.pipe(se(n.pipe(ue(1))),m(o=>F({ref:e},o)))})}function Za(e,{viewport$:t,header$:r}){return ur(e,{viewport$:t,header$:r}).pipe(m(({offset:{y:n}})=>{let{height:o}=_e(e);return{active:n>=o}}),B("active"))}function oi(e,t){return U(()=>{let r=new S;r.subscribe(({active:o})=>{o?e.setAttribute("data-md-state","active"):e.removeAttribute("data-md-state")});let n=ce("article h1");return typeof n=="undefined"?N:Za(n,t).pipe(T(o=>r.next(o)),C(()=>r.complete()),m(o=>F({ref:e},o)))})}function ii(e,{viewport$:t,header$:r}){let n=r.pipe(m(({height:i})=>i),Q()),o=n.pipe(_(()=>he(e).pipe(m(({height:i})=>({top:e.offsetTop,bottom:e.offsetTop+i})),B("bottom"))));return q([n,o,t]).pipe(m(([i,{top:a,bottom:c},{offset:{y:s},size:{height:u}}])=>(u=Math.max(0,u-Math.max(0,a-s,i)-Math.max(0,u+s-c)),{offset:a-i,height:u,active:a-i<=s})),Q((i,a)=>i.offset===a.offset&&i.height===a.height&&i.active===a.active))}function es(e){let t=__md_get("__palette")||{index:e.findIndex(r=>matchMedia(r.getAttribute("data-md-color-media")).matches)};return k(...e).pipe(ie(r=>w(r,"change").pipe(re(r))),V(e[Math.max(0,t.index)]),m(r=>({index:e.indexOf(r),color:{scheme:r.getAttribute("data-md-color-scheme"),primary:r.getAttribute("data-md-color-primary"),accent:r.getAttribute("data-md-color-accent")}})),J(1))}function ai(e){return U(()=>{let t=new S;t.subscribe(n=>{for(let[o,i]of Object.entries(n.color))document.body.setAttribute(`data-md-color-${o}`,i);for(let o=0;ot.next(n)),C(()=>t.complete()),m(n=>F({ref:e},n)))})}var qr=ze(zr());function ts(e){e.setAttribute("data-md-copying","");let t=e.innerText;return e.removeAttribute("data-md-copying"),t}function si({alert$:e}){qr.default.isSupported()&&new j(t=>{new qr.default("[data-clipboard-target], [data-clipboard-text]",{text:r=>r.getAttribute("data-clipboard-text")||ts(K(r.getAttribute("data-clipboard-target")))}).on("success",r=>t.next(r))}).pipe(T(t=>{t.trigger.focus()}),re(X("clipboard.copied"))).subscribe(e)}function rs(e){if(e.length<2)return e;let[t,r]=e.sort((i,a)=>i.length-a.length).map(i=>i.replace(/[^/]+$/,"")),n=0;if(t===r)n=t.length;else for(;t.charCodeAt(n)===r.charCodeAt(n);)n++;let o=be();return e.map(i=>i.replace(t.slice(0,n),o.base))}function ci({document$:e,location$:t,viewport$:r}){let n=be();if(location.protocol==="file:")return;"scrollRestoration"in history&&(history.scrollRestoration="manual",w(window,"beforeunload").subscribe(()=>{history.scrollRestoration="auto"}));let o=ce("link[rel=icon]");typeof o!="undefined"&&(o.href=o.href);let i=Co(new URL("sitemap.xml",n.base)).pipe(m(u=>rs(G("loc",u).map(f=>f.textContent))),_(u=>w(document.body,"click").pipe(M(f=>!f.metaKey&&!f.ctrlKey),_(f=>{if(f.target instanceof Element){let l=f.target.closest("a");if(l&&!l.target){let p=new URL(l.href);if(p.search="",p.hash="",p.pathname!==location.pathname&&u.includes(p.toString()))return f.preventDefault(),k({url:new URL(l.href)})}}return ge}))),fe()),a=w(window,"popstate").pipe(M(u=>u.state!==null),m(u=>({url:new URL(location.href),offset:u.state})),fe());A(i,a).pipe(Q((u,f)=>u.url.href===f.url.href),m(({url:u})=>u)).subscribe(t);let c=t.pipe(B("pathname"),_(u=>cr(u.href).pipe(je(()=>(So(u),ge)))),fe());i.pipe(st(c)).subscribe(({url:u})=>{history.pushState({},"",`${u}`)});let s=new DOMParser;c.pipe(_(u=>u.text()),m(u=>s.parseFromString(u,"text/html"))).subscribe(e),e.pipe(ct(1)).subscribe(u=>{for(let f of["title","link[rel=canonical]","meta[name=author]","meta[name=description]","[data-md-component=announce]","[data-md-component=container]","[data-md-component=header-topic]","[data-md-component=logo]","[data-md-component=skip]",...ae("navigation.tabs.sticky")?["[data-md-component=tabs]"]:[]]){let l=ce(f),p=ce(f,u);typeof l!="undefined"&&typeof p!="undefined"&&l.replaceWith(p)}}),e.pipe(ct(1),m(()=>Ae("container")),_(u=>k(...G("script",u))),Ar(u=>{let f=R("script");if(u.src){for(let l of u.getAttributeNames())f.setAttribute(l,u.getAttribute(l));return u.replaceWith(f),new j(l=>{f.onload=()=>l.complete()})}else return f.textContent=u.textContent,u.replaceWith(f),N})).subscribe(),A(i,a).pipe(st(e)).subscribe(({url:u,offset:f})=>{u.hash&&!f?Mo(u.hash):window.scrollTo(0,(f==null?void 0:f.y)||0)}),r.pipe(St(i),Ke(250),B("offset")).subscribe(({offset:u})=>{history.replaceState(u,"")}),A(i,a).pipe(Se(2,1),M(([u,f])=>u.url.pathname===f.url.pathname),m(([,u])=>u)).subscribe(({offset:u})=>{window.scrollTo(0,(u==null?void 0:u.y)||0)})}var is=ze(Qr());var fi=ze(Qr());function Kr(e,t){let r=new RegExp(e.separator,"img"),n=(o,i,a)=>`${i}${a}`;return o=>{o=o.replace(/[\s*+\-:~^]+/g," ").trim();let i=new RegExp(`(^|${e.separator})(${o.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(r,"|")})`,"img");return a=>(t?(0,fi.default)(a):a).replace(i,n).replace(/<\/mark>(\s+)]*>/img,"$1")}}function pi(e){return e.split(/"([^"]+)"/g).map((t,r)=>r&1?t.replace(/^\b|^(?![^\x00-\x7F]|$)|\s+/g," +"):t).join("").replace(/"|(?:^|\s+)[*+\-:^~]+(?=\s+|$)/g,"").trim()}function pt(e){return e.type===1}function li(e){return e.type===2}function lt(e){return e.type===3}function ss({config:e,docs:t}){e.lang.length===1&&e.lang[0]==="en"&&(e.lang=[X("search.config.lang")]),e.separator==="[\\s\\-]+"&&(e.separator=X("search.config.separator"));let n={pipeline:X("search.config.pipeline").split(/\s*,\s*/).filter(Boolean),suggestions:ae("search.suggest")};return{config:e,docs:t,options:n}}function mi(e,t){let r=be(),n=new Worker(e),o=new S,i=$o(n,{tx$:o}).pipe(m(a=>{if(lt(a))for(let c of a.data.items)for(let s of c)s.location=`${new URL(s.location,r.base)}`;return a}),fe());return te(t).pipe(m(a=>({type:0,data:ss(a)}))).subscribe(o.next.bind(o)),{tx$:o,rx$:i}}function di(){let e=be(),t=Le(new URL("../versions.json",e.base)),r=t.pipe(m(n=>{let[,o]=e.base.match(/([^/]+)\/?$/);return n.find(({version:i,aliases:a})=>i===o||a.includes(o))||n[0]}));q([t,r]).subscribe(([n,o])=>{var a;if(K(".md-header__topic").appendChild(Vo(n,o)),__md_get("__outdated",sessionStorage)===null){let c=((a=e.version)==null?void 0:a.default)||"latest",s=!o.aliases.includes(c);if(__md_set("__outdated",s,sessionStorage),s)for(let u of ne("outdated"))u.hidden=!1}})}function cs(e,{rx$:t}){let r=(__search==null?void 0:__search.transform)||pi,{searchParams:n}=Me();n.has("q")&&De("search",!0);let o=t.pipe(M(pt),le(1),m(()=>n.get("q")||""));o.subscribe(c=>{c&&(e.value=c)});let i=Zt(e),a=A(w(e,"keyup"),w(e,"focus").pipe(Pe(1)),o).pipe(m(()=>r(e.value)),V(""),Q());return q([a,i]).pipe(m(([c,s])=>({value:c,focus:s})),J(1))}function hi(e,{tx$:t,rx$:r}){let n=new S;return n.pipe(B("value"),m(({value:o})=>({type:2,data:o}))).subscribe(t.next.bind(t)),n.pipe(B("focus")).subscribe(({focus:o})=>{o?(De("search",o),e.placeholder=""):e.placeholder=X("search.placeholder")}),w(e.form,"reset").pipe(se(n.pipe(ue(1)))).subscribe(()=>e.focus()),cs(e,{tx$:t,rx$:r}).pipe(T(o=>n.next(o)),C(()=>n.complete()),m(o=>F({ref:e},o)))}function bi(e,{rx$:t},{query$:r}){let n=new S,o=yo(e.parentElement).pipe(M(Boolean)),i=K(":scope > :first-child",e),a=K(":scope > :last-child",e),c=t.pipe(M(pt),le(1));return n.pipe(Ee(r),St(c)).subscribe(([{items:u},{value:f}])=>{if(f)switch(u.length){case 0:i.textContent=X("search.result.none");break;case 1:i.textContent=X("search.result.one");break;default:i.textContent=X("search.result.other",sr(u.length))}else i.textContent=X("search.result.placeholder")}),n.pipe(T(()=>a.innerHTML=""),_(({items:u})=>A(k(...u.slice(0,10)),k(...u.slice(10)).pipe(Se(4),jr(o),_(([f])=>k(...f)))))).subscribe(u=>a.appendChild(Uo(u))),t.pipe(M(lt),m(({data:u})=>u)).pipe(T(u=>n.next(u)),C(()=>n.complete()),m(u=>F({ref:e},u)))}function us(e,{query$:t}){return t.pipe(m(({value:r})=>{let n=Me();return n.hash="",n.searchParams.delete("h"),n.searchParams.set("q",r),{url:n}}))}function vi(e,t){let r=new S;return r.subscribe(({url:n})=>{e.setAttribute("data-clipboard-text",e.href),e.href=`${n}`}),w(e,"click").subscribe(n=>n.preventDefault()),us(e,t).pipe(T(n=>r.next(n)),C(()=>r.complete()),m(n=>F({ref:e},n)))}function gi(e,{rx$:t},{keyboard$:r}){let n=new S,o=Ae("search-query"),i=A(w(o,"keydown"),w(o,"focus")).pipe(qe(Te),m(()=>o.value),Q());return n.pipe(at(i),m(([{suggestions:c},s])=>{let u=s.split(/([\s-]+)/);if((c==null?void 0:c.length)&&u[u.length-1]){let f=c[c.length-1];f.startsWith(u[u.length-1])&&(u[u.length-1]=f)}else u.length=0;return u})).subscribe(c=>e.innerHTML=c.join("").replace(/\s/g," ")),r.pipe(M(({mode:c})=>c==="search")).subscribe(c=>{switch(c.type){case"ArrowRight":e.innerText.length&&o.selectionStart===o.value.length&&(o.value=e.innerText);break}}),t.pipe(M(lt),m(({data:c})=>c)).pipe(T(c=>n.next(c)),C(()=>n.complete()),m(()=>({ref:e})))}function yi(e,{index$:t,keyboard$:r}){let n=be();try{let o=(__search==null?void 0:__search.worker)||n.search,i=mi(o,t),a=Ae("search-query",e),c=Ae("search-result",e),{tx$:s,rx$:u}=i;s.pipe(M(li),st(u.pipe(M(pt))),le(1)).subscribe(s.next.bind(s)),r.pipe(M(({mode:p})=>p==="search")).subscribe(p=>{let d=Ue();switch(p.type){case"Enter":if(d===a){let h=new Map;for(let b of G(":first-child [href]",c)){let I=b.firstElementChild;h.set(b,parseFloat(I.getAttribute("data-md-score")))}if(h.size){let[[b]]=[...h].sort(([,I],[,Y])=>Y-I);b.click()}p.claim()}break;case"Escape":case"Tab":De("search",!1),a.blur();break;case"ArrowUp":case"ArrowDown":if(typeof d=="undefined")a.focus();else{let h=[a,...G(":not(details) > [href], summary, details[open] [href]",c)],b=Math.max(0,(Math.max(0,h.indexOf(d))+h.length+(p.type==="ArrowUp"?-1:1))%h.length);h[b].focus()}p.claim();break;default:a!==Ue()&&a.focus()}}),r.pipe(M(({mode:p})=>p==="global")).subscribe(p=>{switch(p.type){case"f":case"s":case"/":a.focus(),a.select(),p.claim();break}});let f=hi(a,i),l=bi(c,i,{query$:f});return A(f,l).pipe(Be(...ne("search-share",e).map(p=>vi(p,{query$:f})),...ne("search-suggest",e).map(p=>gi(p,i,{keyboard$:r}))))}catch(o){return e.hidden=!0,ge}}function xi(e,{index$:t,location$:r}){return q([t,r.pipe(V(Me()),M(n=>!!n.searchParams.get("h")))]).pipe(m(([n,o])=>Kr(n.config,!0)(o.searchParams.get("h"))),m(n=>{var a;let o=new Map,i=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(let c=i.nextNode();c;c=i.nextNode())if((a=c.parentElement)==null?void 0:a.offsetHeight){let s=c.textContent,u=n(s);u.length>s.length&&o.set(c,u)}for(let[c,s]of o){let{childNodes:u}=R("span",null,s);c.replaceWith(...Array.from(u))}return{ref:e,nodes:o}}))}function fs(e,{viewport$:t,main$:r}){let n=e.parentElement,o=n.offsetTop-n.parentElement.offsetTop;return q([r,t]).pipe(m(([{offset:i,height:a},{offset:{y:c}}])=>(a=a+Math.min(o,Math.max(0,c-i))-o,{height:a,locked:c>=i+o})),Q((i,a)=>i.height===a.height&&i.locked===a.locked))}function Yr(e,n){var o=n,{header$:t}=o,r=Zr(o,["header$"]);let i=K(".md-sidebar__scrollwrap",e),{y:a}=We(i);return U(()=>{let c=new S;return c.pipe(He(0,we),Ee(t)).subscribe({next([{height:s},{height:u}]){i.style.height=`${s-2*a}px`,e.style.top=`${u}px`},complete(){i.style.height="",e.style.top=""}}),fs(e,r).pipe(T(s=>c.next(s)),C(()=>c.complete()),m(s=>F({ref:e},s)))})}function wi(e,t){if(typeof t!="undefined"){let r=`https://api.github.com/repos/${e}/${t}`;return wt(Le(`${r}/releases/latest`).pipe(m(n=>({version:n.tag_name})),Ye({})),Le(r).pipe(m(n=>({stars:n.stargazers_count,forks:n.forks_count})),Ye({}))).pipe(m(([n,o])=>F(F({},n),o)))}else{let r=`https://api.github.com/users/${e}`;return Le(r).pipe(m(n=>({repositories:n.public_repos})),Ye({}))}}function Si(e,t){let r=`https://${e}/api/v4/projects/${encodeURIComponent(t)}`;return Le(r).pipe(m(({star_count:n,forks_count:o})=>({stars:n,forks:o})),Ye({}))}function Ei(e){let[t]=e.match(/(git(?:hub|lab))/i)||[];switch(t.toLowerCase()){case"github":let[,r,n]=e.match(/^.+github\.com\/([^/]+)\/?([^/]+)?/i);return wi(r,n);case"gitlab":let[,o,i]=e.match(/^.+?([^/]*gitlab[^/]+)\/(.+?)\/?$/i);return Si(o,i);default:return N}}var ps;function ls(e){return ps||(ps=U(()=>{let t=__md_get("__source",sessionStorage);return t?k(t):Ei(e.href).pipe(T(r=>__md_set("__source",r,sessionStorage)))}).pipe(je(()=>N),M(t=>Object.keys(t).length>0),m(t=>({facts:t})),J(1)))}function Oi(e){let t=K(":scope > :last-child",e);return U(()=>{let r=new S;return r.subscribe(({facts:n})=>{t.appendChild(Wo(n)),t.setAttribute("data-md-state","done")}),ls(e).pipe(T(n=>r.next(n)),C(()=>r.complete()),m(n=>F({ref:e},n)))})}function ms(e,{viewport$:t,header$:r}){return he(document.body).pipe(_(()=>ur(e,{header$:r,viewport$:t})),m(({offset:{y:n}})=>({hidden:n>=10})),B("hidden"))}function Ti(e,t){return U(()=>{let r=new S;return r.subscribe({next({hidden:n}){n?e.setAttribute("data-md-state","hidden"):e.removeAttribute("data-md-state")},complete(){e.removeAttribute("data-md-state")}}),(ae("navigation.tabs.sticky")?k({hidden:!1}):ms(e,t)).pipe(T(n=>r.next(n)),C(()=>r.complete()),m(n=>F({ref:e},n)))})}function ds(e,{viewport$:t,header$:r}){let n=new Map,o=G("[href^=\\#]",e);for(let c of o){let s=decodeURIComponent(c.hash.substring(1)),u=ce(`[id="${s}"]`);typeof u!="undefined"&&n.set(c,u)}let i=r.pipe(m(c=>24+c.height));return he(document.body).pipe(B("height"),_(c=>U(()=>{let s=[];return k([...n].reduce((u,[f,l])=>{for(;s.length&&n.get(s[s.length-1]).tagName>=l.tagName;)s.pop();let p=l.offsetTop;for(;!p&&l.parentElement;)l=l.parentElement,p=l.offsetTop;return u.set([...s=[...s,f]].reverse(),p)},new Map))}).pipe(m(s=>new Map([...s].sort(([,u],[,f])=>u-f))),_(s=>q([t,i]).pipe(Rr(([u,f],[{offset:{y:l},size:p},d])=>{let h=l+p.height>=Math.floor(c.height);for(;f.length;){let[,b]=f[0];if(b-d=l&&!h)f=[u.pop(),...f];else break}return[u,f]},[[],[...s]]),Q((u,f)=>u[0]===f[0]&&u[1]===f[1])))))).pipe(m(([c,s])=>({prev:c.map(([u])=>u),next:s.map(([u])=>u)})),V({prev:[],next:[]}),Se(2,1),m(([c,s])=>c.prev.length{let n=new S;return n.subscribe(({prev:o,next:i})=>{for(let[a]of i)a.removeAttribute("data-md-state"),a.classList.remove("md-nav__link--active");for(let[a,[c]]of o.entries())c.setAttribute("data-md-state","blur"),c.classList.toggle("md-nav__link--active",a===o.length-1)}),ae("navigation.tracking")&&t.pipe(se(n.pipe(ue(1))),B("offset"),Ke(250),Ee(n)).subscribe(([,{prev:o}])=>{let i=Me(),a=o[o.length-1];if(a&&a.length){let[c]=a,{hash:s}=new URL(c.href);i.hash!==s&&(i.hash=s,history.replaceState({},"",`${i}`))}else i.hash="",history.replaceState({},"",`${i}`)}),ds(e,{viewport$:t,header$:r}).pipe(T(o=>n.next(o)),C(()=>n.complete()),m(o=>F({ref:e},o)))})}function hs(e,{viewport$:t,main$:r,target$:n}){let o=t.pipe(m(({offset:{y:a}})=>a),Se(2,1),m(([a,c])=>a>c),Q()),i=r.pipe(m(({active:a})=>a));return q([i,o]).pipe(m(([a,c])=>!(a&&c)),Q(),se(n.pipe(ct(1))),Xt(!0),kr({delay:250}),m(a=>({hidden:a})))}function Mi(e,{viewport$:t,header$:r,main$:n,target$:o}){let i=new S;return i.subscribe({next({hidden:a}){a?(e.setAttribute("data-md-state","hidden"),e.setAttribute("tabindex","-1"),e.blur()):(e.removeAttribute("data-md-state"),e.removeAttribute("tabindex"))},complete(){e.style.top="",e.setAttribute("data-md-state","hidden"),e.removeAttribute("tabindex")}}),r.pipe(se(i.pipe(Xt(0),ue(1))),B("height")).subscribe(({height:a})=>{e.style.top=`${a+16}px`}),hs(e,{viewport$:t,main$:n,target$:o}).pipe(T(a=>i.next(a)),C(()=>i.complete()),m(a=>F({ref:e},a)))}function Li({document$:e,tablet$:t}){e.pipe(_(()=>k(...G("[data-md-state=indeterminate]"))),T(r=>{r.indeterminate=!0,r.checked=!1}),ie(r=>w(r,"change").pipe(Ir(()=>r.hasAttribute("data-md-state")),re(r))),Ee(t)).subscribe(([r,n])=>{r.removeAttribute("data-md-state"),n&&(r.checked=!1)})}function bs(){return/(iPad|iPhone|iPod)/.test(navigator.userAgent)}function Ai({document$:e}){e.pipe(_(()=>k(...G("[data-md-scrollfix]"))),T(t=>t.removeAttribute("data-md-scrollfix")),M(bs),ie(t=>w(t,"touchstart").pipe(re(t)))).subscribe(t=>{let r=t.scrollTop;r===0?t.scrollTop=1:r+t.offsetHeight===t.scrollHeight&&(t.scrollTop=r-1)})}function Ci({viewport$:e,tablet$:t}){q([ar("search"),t]).pipe(m(([r,n])=>r&&!n),_(r=>k(r).pipe(Pe(r?400:100))),Ee(e)).subscribe(([r,{offset:{y:n}}])=>{if(r)document.body.setAttribute("data-md-state","lock"),document.body.style.top=`-${n}px`;else{let o=-1*parseInt(document.body.style.top,10);document.body.removeAttribute("data-md-state"),document.body.style.top="",o&&window.scrollTo(0,o)}})}Object.entries||(Object.entries=function(e){let t=[];for(let r of Object.keys(e))t.push([r,e[r]]);return t});Object.values||(Object.values=function(e){let t=[];for(let r of Object.keys(e))t.push(e[r]);return t});typeof Element!="undefined"&&(Element.prototype.scrollTo||(Element.prototype.scrollTo=function(e,t){typeof e=="object"?(this.scrollLeft=e.left,this.scrollTop=e.top):(this.scrollLeft=e,this.scrollTop=t)}),Element.prototype.replaceWith||(Element.prototype.replaceWith=function(...e){let t=this.parentNode;if(t){e.length===0&&t.removeChild(this);for(let r=e.length-1;r>=0;r--){let n=e[r];typeof n!="object"?n=document.createTextNode(n):n.parentNode&&n.parentNode.removeChild(n),r?t.insertBefore(this.previousSibling,n):t.replaceChild(n,this)}}}));document.documentElement.classList.remove("no-js");document.documentElement.classList.add("js");var mt=so(),fr=Eo(),pr=Lo(),Br=wo(),ye=Io(),lr=Wr("(min-width: 960px)"),ki=Wr("(min-width: 1220px)"),Ri=Ao(),Hi=be(),Pi=document.forms.namedItem("search")?(__search==null?void 0:__search.index)||Le(new URL("search/search_index.json",Hi.base)):ge,Gr=new S;si({alert$:Gr});ae("navigation.instant")&&ci({document$:mt,location$:fr,viewport$:ye});var $i;(($i=Hi.version)==null?void 0:$i.provider)==="mike"&&di();A(fr,pr).pipe(Pe(125)).subscribe(()=>{De("drawer",!1),De("search",!1)});Br.pipe(M(({mode:e})=>e==="global")).subscribe(e=>{switch(e.type){case"p":case",":let t=ce("[href][rel=prev]");typeof t!="undefined"&&t.click();break;case"n":case".":let r=ce("[href][rel=next]");typeof r!="undefined"&&r.click();break}});Li({document$:mt,tablet$:lr});Ai({document$:mt});Ci({viewport$:ye,tablet$:lr});var Ve=ri(Ae("header"),{viewport$:ye}),mr=mt.pipe(m(()=>Ae("main")),_(e=>ii(e,{viewport$:ye,header$:Ve})),J(1)),vs=A(...ne("dialog").map(e=>ti(e,{alert$:Gr})),...ne("header").map(e=>ni(e,{viewport$:ye,header$:Ve,main$:mr})),...ne("palette").map(e=>ai(e)),...ne("search").map(e=>yi(e,{index$:Pi,keyboard$:Br})),...ne("source").map(e=>Oi(e))),gs=U(()=>A(...ne("content").map(e=>ei(e,{target$:pr,print$:Ri})),...ne("content").map(e=>ae("search.highlight")?xi(e,{index$:Pi,location$:fr}):N),...ne("header-title").map(e=>oi(e,{viewport$:ye,header$:Ve})),...ne("sidebar").map(e=>e.getAttribute("data-md-type")==="navigation"?Dr(ki,()=>Yr(e,{viewport$:ye,header$:Ve,main$:mr})):Dr(lr,()=>Yr(e,{viewport$:ye,header$:Ve,main$:mr}))),...ne("tabs").map(e=>Ti(e,{viewport$:ye,header$:Ve})),...ne("toc").map(e=>_i(e,{viewport$:ye,header$:Ve})),...ne("top").map(e=>Mi(e,{viewport$:ye,header$:Ve,main$:mr,target$:pr})))),Ii=mt.pipe(_(()=>gs),Be(vs),J(1));Ii.subscribe();window.document$=mt;window.location$=fr;window.target$=pr;window.keyboard$=Br;window.viewport$=ye;window.tablet$=lr;window.screen$=ki;window.print$=Ri;window.alert$=Gr;window.component$=Ii;})(); +//# sourceMappingURL=bundle.01de222e.min.js.map + diff --git a/docs/assets/javascripts/bundle.01de222e.min.js.map b/docs/assets/javascripts/bundle.01de222e.min.js.map new file mode 100644 index 00000000..98537879 --- /dev/null +++ b/docs/assets/javascripts/bundle.01de222e.min.js.map @@ -0,0 +1,8 @@ +{ + "version": 3, + "sources": ["node_modules/focus-visible/dist/focus-visible.js", "node_modules/url-polyfill/url-polyfill.js", "node_modules/rxjs/node_modules/tslib/tslib.js", "node_modules/clipboard/dist/clipboard.js", "node_modules/escape-html/index.js", "node_modules/array-flat-polyfill/index.mjs", "src/assets/javascripts/bundle.ts", "node_modules/unfetch/polyfill/index.js", "node_modules/rxjs/node_modules/tslib/modules/index.js", "node_modules/rxjs/src/internal/util/isFunction.ts", "node_modules/rxjs/src/internal/util/createErrorClass.ts", "node_modules/rxjs/src/internal/util/UnsubscriptionError.ts", "node_modules/rxjs/src/internal/util/arrRemove.ts", "node_modules/rxjs/src/internal/Subscription.ts", "node_modules/rxjs/src/internal/config.ts", "node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts", "node_modules/rxjs/src/internal/util/reportUnhandledError.ts", "node_modules/rxjs/src/internal/util/noop.ts", "node_modules/rxjs/src/internal/NotificationFactories.ts", "node_modules/rxjs/src/internal/util/errorContext.ts", "node_modules/rxjs/src/internal/Subscriber.ts", "node_modules/rxjs/src/internal/symbol/observable.ts", "node_modules/rxjs/src/internal/util/identity.ts", "node_modules/rxjs/src/internal/util/pipe.ts", "node_modules/rxjs/src/internal/Observable.ts", "node_modules/rxjs/src/internal/util/lift.ts", "node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts", "node_modules/rxjs/src/internal/scheduler/animationFrameProvider.ts", "node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts", "node_modules/rxjs/src/internal/Subject.ts", "node_modules/rxjs/src/internal/scheduler/dateTimestampProvider.ts", "node_modules/rxjs/src/internal/ReplaySubject.ts", "node_modules/rxjs/src/internal/scheduler/Action.ts", "node_modules/rxjs/src/internal/scheduler/intervalProvider.ts", "node_modules/rxjs/src/internal/scheduler/AsyncAction.ts", "node_modules/rxjs/src/internal/Scheduler.ts", "node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts", "node_modules/rxjs/src/internal/scheduler/async.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts", "node_modules/rxjs/src/internal/scheduler/animationFrame.ts", "node_modules/rxjs/src/internal/observable/empty.ts", "node_modules/rxjs/src/internal/util/isScheduler.ts", "node_modules/rxjs/src/internal/util/args.ts", "node_modules/rxjs/src/internal/util/isArrayLike.ts", "node_modules/rxjs/src/internal/util/isPromise.ts", "node_modules/rxjs/src/internal/util/isInteropObservable.ts", "node_modules/rxjs/src/internal/util/isAsyncIterable.ts", "node_modules/rxjs/src/internal/util/throwUnobservableError.ts", "node_modules/rxjs/src/internal/symbol/iterator.ts", "node_modules/rxjs/src/internal/util/isIterable.ts", "node_modules/rxjs/src/internal/util/isReadableStreamLike.ts", "node_modules/rxjs/src/internal/observable/innerFrom.ts", "node_modules/rxjs/src/internal/util/executeSchedule.ts", "node_modules/rxjs/src/internal/operators/observeOn.ts", "node_modules/rxjs/src/internal/operators/subscribeOn.ts", "node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts", "node_modules/rxjs/src/internal/scheduled/schedulePromise.ts", "node_modules/rxjs/src/internal/scheduled/scheduleArray.ts", "node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleAsyncIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleReadableStreamLike.ts", "node_modules/rxjs/src/internal/scheduled/scheduled.ts", "node_modules/rxjs/src/internal/observable/from.ts", "node_modules/rxjs/src/internal/observable/of.ts", "node_modules/rxjs/src/internal/util/isDate.ts", "node_modules/rxjs/src/internal/operators/map.ts", "node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts", "node_modules/rxjs/src/internal/util/argsArgArrayOrObject.ts", "node_modules/rxjs/src/internal/util/createObject.ts", "node_modules/rxjs/src/internal/observable/combineLatest.ts", "node_modules/rxjs/src/internal/operators/mergeInternals.ts", "node_modules/rxjs/src/internal/operators/mergeMap.ts", "node_modules/rxjs/src/internal/operators/mergeAll.ts", "node_modules/rxjs/src/internal/operators/concatAll.ts", "node_modules/rxjs/src/internal/observable/concat.ts", "node_modules/rxjs/src/internal/observable/defer.ts", "node_modules/rxjs/src/internal/observable/fromEvent.ts", "node_modules/rxjs/src/internal/observable/fromEventPattern.ts", "node_modules/rxjs/src/internal/observable/timer.ts", "node_modules/rxjs/src/internal/observable/merge.ts", "node_modules/rxjs/src/internal/observable/never.ts", "node_modules/rxjs/src/internal/util/argsOrArgArray.ts", "node_modules/rxjs/src/internal/operators/filter.ts", "node_modules/rxjs/src/internal/observable/zip.ts", "node_modules/rxjs/src/internal/operators/audit.ts", "node_modules/rxjs/src/internal/operators/auditTime.ts", "node_modules/rxjs/src/internal/operators/bufferCount.ts", "node_modules/rxjs/src/internal/operators/catchError.ts", "node_modules/rxjs/src/internal/operators/scanInternals.ts", "node_modules/rxjs/src/internal/operators/combineLatest.ts", "node_modules/rxjs/src/internal/operators/combineLatestWith.ts", "node_modules/rxjs/src/internal/operators/concatMap.ts", "node_modules/rxjs/src/internal/operators/debounceTime.ts", "node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts", "node_modules/rxjs/src/internal/operators/take.ts", "node_modules/rxjs/src/internal/operators/ignoreElements.ts", "node_modules/rxjs/src/internal/operators/mapTo.ts", "node_modules/rxjs/src/internal/operators/delayWhen.ts", "node_modules/rxjs/src/internal/operators/delay.ts", "node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts", "node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts", "node_modules/rxjs/src/internal/operators/endWith.ts", "node_modules/rxjs/src/internal/operators/finalize.ts", "node_modules/rxjs/src/internal/operators/takeLast.ts", "node_modules/rxjs/src/internal/operators/merge.ts", "node_modules/rxjs/src/internal/operators/mergeWith.ts", "node_modules/rxjs/src/internal/operators/repeat.ts", "node_modules/rxjs/src/internal/operators/sample.ts", "node_modules/rxjs/src/internal/operators/scan.ts", "node_modules/rxjs/src/internal/operators/share.ts", "node_modules/rxjs/src/internal/operators/shareReplay.ts", "node_modules/rxjs/src/internal/operators/skip.ts", "node_modules/rxjs/src/internal/operators/skipUntil.ts", "node_modules/rxjs/src/internal/operators/startWith.ts", "node_modules/rxjs/src/internal/operators/switchMap.ts", "node_modules/rxjs/src/internal/operators/switchMapTo.ts", "node_modules/rxjs/src/internal/operators/takeUntil.ts", "node_modules/rxjs/src/internal/operators/takeWhile.ts", "node_modules/rxjs/src/internal/operators/tap.ts", "node_modules/rxjs/src/internal/operators/throttle.ts", "node_modules/rxjs/src/internal/operators/throttleTime.ts", "node_modules/rxjs/src/internal/operators/withLatestFrom.ts", "node_modules/rxjs/src/internal/operators/zip.ts", "node_modules/rxjs/src/internal/operators/zipWith.ts", "src/assets/javascripts/browser/document/index.ts", "src/assets/javascripts/browser/element/_/index.ts", "src/assets/javascripts/browser/element/focus/index.ts", "src/assets/javascripts/browser/element/offset/_/index.ts", "src/assets/javascripts/browser/element/offset/content/index.ts", "node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js", "src/assets/javascripts/browser/element/size/_/index.ts", "src/assets/javascripts/browser/element/size/content/index.ts", "src/assets/javascripts/browser/element/visibility/index.ts", "src/assets/javascripts/browser/toggle/index.ts", "src/assets/javascripts/browser/keyboard/index.ts", "src/assets/javascripts/browser/location/_/index.ts", "src/assets/javascripts/utilities/h/index.ts", "src/assets/javascripts/utilities/string/index.ts", "src/assets/javascripts/browser/location/hash/index.ts", "src/assets/javascripts/browser/media/index.ts", "src/assets/javascripts/browser/request/index.ts", "src/assets/javascripts/browser/viewport/offset/index.ts", "src/assets/javascripts/browser/viewport/size/index.ts", "src/assets/javascripts/browser/viewport/_/index.ts", "src/assets/javascripts/browser/viewport/at/index.ts", "src/assets/javascripts/browser/worker/index.ts", "src/assets/javascripts/_/index.ts", "src/assets/javascripts/components/_/index.ts", "src/assets/javascripts/components/content/code/index.ts", "src/assets/javascripts/templates/annotation/index.tsx", "src/assets/javascripts/templates/clipboard/index.tsx", "src/assets/javascripts/templates/search/index.tsx", "src/assets/javascripts/templates/source/index.tsx", "src/assets/javascripts/templates/table/index.tsx", "src/assets/javascripts/templates/version/index.tsx", "src/assets/javascripts/components/content/annotation/_/index.ts", "src/assets/javascripts/components/content/annotation/list/index.ts", "src/assets/javascripts/components/content/details/index.ts", "src/assets/javascripts/components/content/table/index.ts", "src/assets/javascripts/components/content/tabs/index.ts", "src/assets/javascripts/components/content/_/index.ts", "src/assets/javascripts/components/dialog/index.ts", "src/assets/javascripts/components/header/_/index.ts", "src/assets/javascripts/components/header/title/index.ts", "src/assets/javascripts/components/main/index.ts", "src/assets/javascripts/components/palette/index.ts", "src/assets/javascripts/integrations/clipboard/index.ts", "src/assets/javascripts/integrations/instant/index.ts", "src/assets/javascripts/integrations/search/document/index.ts", "src/assets/javascripts/integrations/search/highlighter/index.ts", "src/assets/javascripts/integrations/search/query/transform/index.ts", "src/assets/javascripts/integrations/search/worker/message/index.ts", "src/assets/javascripts/integrations/search/worker/_/index.ts", "src/assets/javascripts/integrations/version/index.ts", "src/assets/javascripts/components/search/query/index.ts", "src/assets/javascripts/components/search/result/index.ts", "src/assets/javascripts/components/search/share/index.ts", "src/assets/javascripts/components/search/suggest/index.ts", "src/assets/javascripts/components/search/_/index.ts", "src/assets/javascripts/components/search/highlight/index.ts", "src/assets/javascripts/components/sidebar/index.ts", "src/assets/javascripts/components/source/facts/github/index.ts", "src/assets/javascripts/components/source/facts/gitlab/index.ts", "src/assets/javascripts/components/source/facts/_/index.ts", "src/assets/javascripts/components/source/_/index.ts", "src/assets/javascripts/components/tabs/index.ts", "src/assets/javascripts/components/toc/index.ts", "src/assets/javascripts/components/top/index.ts", "src/assets/javascripts/patches/indeterminate/index.ts", "src/assets/javascripts/patches/scrollfix/index.ts", "src/assets/javascripts/patches/scrolllock/index.ts", "src/assets/javascripts/polyfills/index.ts"], + "sourceRoot": "../../../..", + "sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (factory());\n}(this, (function () { 'use strict';\n\n /**\n * Applies the :focus-visible polyfill at the given scope.\n * A scope in this case is either the top-level Document or a Shadow Root.\n *\n * @param {(Document|ShadowRoot)} scope\n * @see https://github.com/WICG/focus-visible\n */\n function applyFocusVisiblePolyfill(scope) {\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n\n var inputTypesAllowlist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n\n /**\n * Helper function for legacy browsers and iframes which sometimes focus\n * elements like document, body, and non-interactive SVG.\n * @param {Element} el\n */\n function isValidFocusTarget(el) {\n if (\n el &&\n el !== document &&\n el.nodeName !== 'HTML' &&\n el.nodeName !== 'BODY' &&\n 'classList' in el &&\n 'contains' in el.classList\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} el\n * @return {boolean}\n */\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n\n if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !el.readOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Add the `focus-visible` class to the given element if it was not added by\n * the author.\n * @param {Element} el\n */\n function addFocusVisibleClass(el) {\n if (el.classList.contains('focus-visible')) {\n return;\n }\n el.classList.add('focus-visible');\n el.setAttribute('data-focus-visible-added', '');\n }\n\n /**\n * Remove the `focus-visible` class from the given element if it was not\n * originally added by the author.\n * @param {Element} el\n */\n function removeFocusVisibleClass(el) {\n if (!el.hasAttribute('data-focus-visible-added')) {\n return;\n }\n el.classList.remove('focus-visible');\n el.removeAttribute('data-focus-visible-added');\n }\n\n /**\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * Apply `focus-visible` to any current active element and keep track\n * of our keyboard modality state with `hadKeyboardEvent`.\n * @param {KeyboardEvent} e\n */\n function onKeyDown(e) {\n if (e.metaKey || e.altKey || e.ctrlKey) {\n return;\n }\n\n if (isValidFocusTarget(scope.activeElement)) {\n addFocusVisibleClass(scope.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n\n /**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n * @param {Event} e\n */\n function onPointerDown(e) {\n hadKeyboardEvent = false;\n }\n\n /**\n * On `focus`, add the `focus-visible` class to the target if:\n * - the target received focus as a result of keyboard navigation, or\n * - the event target is an element that will likely require interaction\n * via the keyboard (e.g. a text box)\n * @param {Event} e\n */\n function onFocus(e) {\n // Prevent IE from focusing the document or HTML element.\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleClass(e.target);\n }\n }\n\n /**\n * On `blur`, remove the `focus-visible` class from the target.\n * @param {Event} e\n */\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (\n e.target.classList.contains('focus-visible') ||\n e.target.hasAttribute('data-focus-visible-added')\n ) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function() {\n hadFocusVisibleRecently = false;\n }, 100);\n removeFocusVisibleClass(e.target);\n }\n }\n\n /**\n * If the user changes tabs, keep track of whether or not the previously\n * focused element had .focus-visible.\n * @param {Event} e\n */\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n addInitialPointerMoveListeners();\n }\n }\n\n /**\n * Add a group of listeners to detect usage of any pointing devices.\n * These listeners will be added when the polyfill first loads, and anytime\n * the window is blurred, so that they are active when the window regains\n * focus.\n */\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n\n /**\n * When the polfyill first loads, assume the user is in keyboard modality.\n * If any event is received from a pointing device (e.g. mouse, pointer,\n * touch), turn off keyboard modality.\n * This accounts for situations where focus enters the page from the URL bar.\n * @param {Event} e\n */\n function onInitialPointerMove(e) {\n // Work around a Safari quirk that fires a mousemove on whenever the\n // window blurs, even if you're tabbing out of the page. \u00AF\\_(\u30C4)_/\u00AF\n if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n // For some kinds of state, we are interested in changes at the global scope\n // only. For example, global pointer input, global key presses and global\n // visibility change should affect the state at every scope:\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n\n addInitialPointerMoveListeners();\n\n // For focus and blur, we specifically care about state changes in the local\n // scope. This is because focus / blur events that originate from within a\n // shadow root are not re-dispatched from the host element if it was already\n // the active element in its own scope:\n scope.addEventListener('focus', onFocus, true);\n scope.addEventListener('blur', onBlur, true);\n\n // We detect that a node is a ShadowRoot by ensuring that it is a\n // DocumentFragment and also has a host property. This check covers native\n // implementation and polyfill implementation transparently. If we only cared\n // about the native implementation, we could just check if the scope was\n // an instance of a ShadowRoot.\n if (scope.nodeType === Node.DOCUMENT_FRAGMENT_NODE && scope.host) {\n // Since a ShadowRoot is a special kind of DocumentFragment, it does not\n // have a root element to add a class to. So, we add this attribute to the\n // host element instead:\n scope.host.setAttribute('data-js-focus-visible', '');\n } else if (scope.nodeType === Node.DOCUMENT_NODE) {\n document.documentElement.classList.add('js-focus-visible');\n document.documentElement.setAttribute('data-js-focus-visible', '');\n }\n }\n\n // It is important to wrap all references to global window and document in\n // these checks to support server-side rendering use cases\n // @see https://github.com/WICG/focus-visible/issues/199\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n // Make the polyfill helper globally available. This can be used as a signal\n // to interested libraries that wish to coordinate with the polyfill for e.g.,\n // applying the polyfill to a shadow root:\n window.applyFocusVisiblePolyfill = applyFocusVisiblePolyfill;\n\n // Notify interested libraries of the polyfill's presence, in case the\n // polyfill was loaded lazily:\n var event;\n\n try {\n event = new CustomEvent('focus-visible-polyfill-ready');\n } catch (error) {\n // IE11 does not support using CustomEvent as a constructor directly:\n event = document.createEvent('CustomEvent');\n event.initCustomEvent('focus-visible-polyfill-ready', false, false, {});\n }\n\n window.dispatchEvent(event);\n }\n\n if (typeof document !== 'undefined') {\n // Apply the polyfill to the global document, so that no JavaScript\n // coordination is required to use the polyfill in the top-level document:\n applyFocusVisiblePolyfill(document);\n }\n\n})));\n", "(function(global) {\r\n /**\r\n * Polyfill URLSearchParams\r\n *\r\n * Inspired from : https://github.com/WebReflection/url-search-params/blob/master/src/url-search-params.js\r\n */\r\n\r\n var checkIfIteratorIsSupported = function() {\r\n try {\r\n return !!Symbol.iterator;\r\n } catch (error) {\r\n return false;\r\n }\r\n };\r\n\r\n\r\n var iteratorSupported = checkIfIteratorIsSupported();\r\n\r\n var createIterator = function(items) {\r\n var iterator = {\r\n next: function() {\r\n var value = items.shift();\r\n return { done: value === void 0, value: value };\r\n }\r\n };\r\n\r\n if (iteratorSupported) {\r\n iterator[Symbol.iterator] = function() {\r\n return iterator;\r\n };\r\n }\r\n\r\n return iterator;\r\n };\r\n\r\n /**\r\n * Search param name and values should be encoded according to https://url.spec.whatwg.org/#urlencoded-serializing\r\n * encodeURIComponent() produces the same result except encoding spaces as `%20` instead of `+`.\r\n */\r\n var serializeParam = function(value) {\r\n return encodeURIComponent(value).replace(/%20/g, '+');\r\n };\r\n\r\n var deserializeParam = function(value) {\r\n return decodeURIComponent(String(value).replace(/\\+/g, ' '));\r\n };\r\n\r\n var polyfillURLSearchParams = function() {\r\n\r\n var URLSearchParams = function(searchString) {\r\n Object.defineProperty(this, '_entries', { writable: true, value: {} });\r\n var typeofSearchString = typeof searchString;\r\n\r\n if (typeofSearchString === 'undefined') {\r\n // do nothing\r\n } else if (typeofSearchString === 'string') {\r\n if (searchString !== '') {\r\n this._fromString(searchString);\r\n }\r\n } else if (searchString instanceof URLSearchParams) {\r\n var _this = this;\r\n searchString.forEach(function(value, name) {\r\n _this.append(name, value);\r\n });\r\n } else if ((searchString !== null) && (typeofSearchString === 'object')) {\r\n if (Object.prototype.toString.call(searchString) === '[object Array]') {\r\n for (var i = 0; i < searchString.length; i++) {\r\n var entry = searchString[i];\r\n if ((Object.prototype.toString.call(entry) === '[object Array]') || (entry.length !== 2)) {\r\n this.append(entry[0], entry[1]);\r\n } else {\r\n throw new TypeError('Expected [string, any] as entry at index ' + i + ' of URLSearchParams\\'s input');\r\n }\r\n }\r\n } else {\r\n for (var key in searchString) {\r\n if (searchString.hasOwnProperty(key)) {\r\n this.append(key, searchString[key]);\r\n }\r\n }\r\n }\r\n } else {\r\n throw new TypeError('Unsupported input\\'s type for URLSearchParams');\r\n }\r\n };\r\n\r\n var proto = URLSearchParams.prototype;\r\n\r\n proto.append = function(name, value) {\r\n if (name in this._entries) {\r\n this._entries[name].push(String(value));\r\n } else {\r\n this._entries[name] = [String(value)];\r\n }\r\n };\r\n\r\n proto.delete = function(name) {\r\n delete this._entries[name];\r\n };\r\n\r\n proto.get = function(name) {\r\n return (name in this._entries) ? this._entries[name][0] : null;\r\n };\r\n\r\n proto.getAll = function(name) {\r\n return (name in this._entries) ? this._entries[name].slice(0) : [];\r\n };\r\n\r\n proto.has = function(name) {\r\n return (name in this._entries);\r\n };\r\n\r\n proto.set = function(name, value) {\r\n this._entries[name] = [String(value)];\r\n };\r\n\r\n proto.forEach = function(callback, thisArg) {\r\n var entries;\r\n for (var name in this._entries) {\r\n if (this._entries.hasOwnProperty(name)) {\r\n entries = this._entries[name];\r\n for (var i = 0; i < entries.length; i++) {\r\n callback.call(thisArg, entries[i], name, this);\r\n }\r\n }\r\n }\r\n };\r\n\r\n proto.keys = function() {\r\n var items = [];\r\n this.forEach(function(value, name) {\r\n items.push(name);\r\n });\r\n return createIterator(items);\r\n };\r\n\r\n proto.values = function() {\r\n var items = [];\r\n this.forEach(function(value) {\r\n items.push(value);\r\n });\r\n return createIterator(items);\r\n };\r\n\r\n proto.entries = function() {\r\n var items = [];\r\n this.forEach(function(value, name) {\r\n items.push([name, value]);\r\n });\r\n return createIterator(items);\r\n };\r\n\r\n if (iteratorSupported) {\r\n proto[Symbol.iterator] = proto.entries;\r\n }\r\n\r\n proto.toString = function() {\r\n var searchArray = [];\r\n this.forEach(function(value, name) {\r\n searchArray.push(serializeParam(name) + '=' + serializeParam(value));\r\n });\r\n return searchArray.join('&');\r\n };\r\n\r\n\r\n global.URLSearchParams = URLSearchParams;\r\n };\r\n\r\n var checkIfURLSearchParamsSupported = function() {\r\n try {\r\n var URLSearchParams = global.URLSearchParams;\r\n\r\n return (\r\n (new URLSearchParams('?a=1').toString() === 'a=1') &&\r\n (typeof URLSearchParams.prototype.set === 'function') &&\r\n (typeof URLSearchParams.prototype.entries === 'function')\r\n );\r\n } catch (e) {\r\n return false;\r\n }\r\n };\r\n\r\n if (!checkIfURLSearchParamsSupported()) {\r\n polyfillURLSearchParams();\r\n }\r\n\r\n var proto = global.URLSearchParams.prototype;\r\n\r\n if (typeof proto.sort !== 'function') {\r\n proto.sort = function() {\r\n var _this = this;\r\n var items = [];\r\n this.forEach(function(value, name) {\r\n items.push([name, value]);\r\n if (!_this._entries) {\r\n _this.delete(name);\r\n }\r\n });\r\n items.sort(function(a, b) {\r\n if (a[0] < b[0]) {\r\n return -1;\r\n } else if (a[0] > b[0]) {\r\n return +1;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n if (_this._entries) { // force reset because IE keeps keys index\r\n _this._entries = {};\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n this.append(items[i][0], items[i][1]);\r\n }\r\n };\r\n }\r\n\r\n if (typeof proto._fromString !== 'function') {\r\n Object.defineProperty(proto, '_fromString', {\r\n enumerable: false,\r\n configurable: false,\r\n writable: false,\r\n value: function(searchString) {\r\n if (this._entries) {\r\n this._entries = {};\r\n } else {\r\n var keys = [];\r\n this.forEach(function(value, name) {\r\n keys.push(name);\r\n });\r\n for (var i = 0; i < keys.length; i++) {\r\n this.delete(keys[i]);\r\n }\r\n }\r\n\r\n searchString = searchString.replace(/^\\?/, '');\r\n var attributes = searchString.split('&');\r\n var attribute;\r\n for (var i = 0; i < attributes.length; i++) {\r\n attribute = attributes[i].split('=');\r\n this.append(\r\n deserializeParam(attribute[0]),\r\n (attribute.length > 1) ? deserializeParam(attribute[1]) : ''\r\n );\r\n }\r\n }\r\n });\r\n }\r\n\r\n // HTMLAnchorElement\r\n\r\n})(\r\n (typeof global !== 'undefined') ? global\r\n : ((typeof window !== 'undefined') ? window\r\n : ((typeof self !== 'undefined') ? self : this))\r\n);\r\n\r\n(function(global) {\r\n /**\r\n * Polyfill URL\r\n *\r\n * Inspired from : https://github.com/arv/DOM-URL-Polyfill/blob/master/src/url.js\r\n */\r\n\r\n var checkIfURLIsSupported = function() {\r\n try {\r\n var u = new global.URL('b', 'http://a');\r\n u.pathname = 'c d';\r\n return (u.href === 'http://a/c%20d') && u.searchParams;\r\n } catch (e) {\r\n return false;\r\n }\r\n };\r\n\r\n\r\n var polyfillURL = function() {\r\n var _URL = global.URL;\r\n\r\n var URL = function(url, base) {\r\n if (typeof url !== 'string') url = String(url);\r\n if (base && typeof base !== 'string') base = String(base);\r\n\r\n // Only create another document if the base is different from current location.\r\n var doc = document, baseElement;\r\n if (base && (global.location === void 0 || base !== global.location.href)) {\r\n base = base.toLowerCase();\r\n doc = document.implementation.createHTMLDocument('');\r\n baseElement = doc.createElement('base');\r\n baseElement.href = base;\r\n doc.head.appendChild(baseElement);\r\n try {\r\n if (baseElement.href.indexOf(base) !== 0) throw new Error(baseElement.href);\r\n } catch (err) {\r\n throw new Error('URL unable to set base ' + base + ' due to ' + err);\r\n }\r\n }\r\n\r\n var anchorElement = doc.createElement('a');\r\n anchorElement.href = url;\r\n if (baseElement) {\r\n doc.body.appendChild(anchorElement);\r\n anchorElement.href = anchorElement.href; // force href to refresh\r\n }\r\n\r\n var inputElement = doc.createElement('input');\r\n inputElement.type = 'url';\r\n inputElement.value = url;\r\n\r\n if (anchorElement.protocol === ':' || !/:/.test(anchorElement.href) || (!inputElement.checkValidity() && !base)) {\r\n throw new TypeError('Invalid URL');\r\n }\r\n\r\n Object.defineProperty(this, '_anchorElement', {\r\n value: anchorElement\r\n });\r\n\r\n\r\n // create a linked searchParams which reflect its changes on URL\r\n var searchParams = new global.URLSearchParams(this.search);\r\n var enableSearchUpdate = true;\r\n var enableSearchParamsUpdate = true;\r\n var _this = this;\r\n ['append', 'delete', 'set'].forEach(function(methodName) {\r\n var method = searchParams[methodName];\r\n searchParams[methodName] = function() {\r\n method.apply(searchParams, arguments);\r\n if (enableSearchUpdate) {\r\n enableSearchParamsUpdate = false;\r\n _this.search = searchParams.toString();\r\n enableSearchParamsUpdate = true;\r\n }\r\n };\r\n });\r\n\r\n Object.defineProperty(this, 'searchParams', {\r\n value: searchParams,\r\n enumerable: true\r\n });\r\n\r\n var search = void 0;\r\n Object.defineProperty(this, '_updateSearchParams', {\r\n enumerable: false,\r\n configurable: false,\r\n writable: false,\r\n value: function() {\r\n if (this.search !== search) {\r\n search = this.search;\r\n if (enableSearchParamsUpdate) {\r\n enableSearchUpdate = false;\r\n this.searchParams._fromString(this.search);\r\n enableSearchUpdate = true;\r\n }\r\n }\r\n }\r\n });\r\n };\r\n\r\n var proto = URL.prototype;\r\n\r\n var linkURLWithAnchorAttribute = function(attributeName) {\r\n Object.defineProperty(proto, attributeName, {\r\n get: function() {\r\n return this._anchorElement[attributeName];\r\n },\r\n set: function(value) {\r\n this._anchorElement[attributeName] = value;\r\n },\r\n enumerable: true\r\n });\r\n };\r\n\r\n ['hash', 'host', 'hostname', 'port', 'protocol']\r\n .forEach(function(attributeName) {\r\n linkURLWithAnchorAttribute(attributeName);\r\n });\r\n\r\n Object.defineProperty(proto, 'search', {\r\n get: function() {\r\n return this._anchorElement['search'];\r\n },\r\n set: function(value) {\r\n this._anchorElement['search'] = value;\r\n this._updateSearchParams();\r\n },\r\n enumerable: true\r\n });\r\n\r\n Object.defineProperties(proto, {\r\n\r\n 'toString': {\r\n get: function() {\r\n var _this = this;\r\n return function() {\r\n return _this.href;\r\n };\r\n }\r\n },\r\n\r\n 'href': {\r\n get: function() {\r\n return this._anchorElement.href.replace(/\\?$/, '');\r\n },\r\n set: function(value) {\r\n this._anchorElement.href = value;\r\n this._updateSearchParams();\r\n },\r\n enumerable: true\r\n },\r\n\r\n 'pathname': {\r\n get: function() {\r\n return this._anchorElement.pathname.replace(/(^\\/?)/, '/');\r\n },\r\n set: function(value) {\r\n this._anchorElement.pathname = value;\r\n },\r\n enumerable: true\r\n },\r\n\r\n 'origin': {\r\n get: function() {\r\n // get expected port from protocol\r\n var expectedPort = { 'http:': 80, 'https:': 443, 'ftp:': 21 }[this._anchorElement.protocol];\r\n // add port to origin if, expected port is different than actual port\r\n // and it is not empty f.e http://foo:8080\r\n // 8080 != 80 && 8080 != ''\r\n var addPortToOrigin = this._anchorElement.port != expectedPort &&\r\n this._anchorElement.port !== '';\r\n\r\n return this._anchorElement.protocol +\r\n '//' +\r\n this._anchorElement.hostname +\r\n (addPortToOrigin ? (':' + this._anchorElement.port) : '');\r\n },\r\n enumerable: true\r\n },\r\n\r\n 'password': { // TODO\r\n get: function() {\r\n return '';\r\n },\r\n set: function(value) {\r\n },\r\n enumerable: true\r\n },\r\n\r\n 'username': { // TODO\r\n get: function() {\r\n return '';\r\n },\r\n set: function(value) {\r\n },\r\n enumerable: true\r\n },\r\n });\r\n\r\n URL.createObjectURL = function(blob) {\r\n return _URL.createObjectURL.apply(_URL, arguments);\r\n };\r\n\r\n URL.revokeObjectURL = function(url) {\r\n return _URL.revokeObjectURL.apply(_URL, arguments);\r\n };\r\n\r\n global.URL = URL;\r\n\r\n };\r\n\r\n if (!checkIfURLIsSupported()) {\r\n polyfillURL();\r\n }\r\n\r\n if ((global.location !== void 0) && !('origin' in global.location)) {\r\n var getOrigin = function() {\r\n return global.location.protocol + '//' + global.location.hostname + (global.location.port ? (':' + global.location.port) : '');\r\n };\r\n\r\n try {\r\n Object.defineProperty(global.location, 'origin', {\r\n get: getOrigin,\r\n enumerable: true\r\n });\r\n } catch (e) {\r\n setInterval(function() {\r\n global.location.origin = getOrigin();\r\n }, 100);\r\n }\r\n }\r\n\r\n})(\r\n (typeof global !== 'undefined') ? global\r\n : ((typeof window !== 'undefined') ? window\r\n : ((typeof self !== 'undefined') ? self : this))\r\n);\r\n", "/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global global, define, System, Reflect, Promise */\r\nvar __extends;\r\nvar __assign;\r\nvar __rest;\r\nvar __decorate;\r\nvar __param;\r\nvar __metadata;\r\nvar __awaiter;\r\nvar __generator;\r\nvar __exportStar;\r\nvar __values;\r\nvar __read;\r\nvar __spread;\r\nvar __spreadArrays;\r\nvar __spreadArray;\r\nvar __await;\r\nvar __asyncGenerator;\r\nvar __asyncDelegator;\r\nvar __asyncValues;\r\nvar __makeTemplateObject;\r\nvar __importStar;\r\nvar __importDefault;\r\nvar __classPrivateFieldGet;\r\nvar __classPrivateFieldSet;\r\nvar __createBinding;\r\n(function (factory) {\r\n var root = typeof global === \"object\" ? global : typeof self === \"object\" ? self : typeof this === \"object\" ? this : {};\r\n if (typeof define === \"function\" && define.amd) {\r\n define(\"tslib\", [\"exports\"], function (exports) { factory(createExporter(root, createExporter(exports))); });\r\n }\r\n else if (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n factory(createExporter(root, createExporter(module.exports)));\r\n }\r\n else {\r\n factory(createExporter(root));\r\n }\r\n function createExporter(exports, previous) {\r\n if (exports !== root) {\r\n if (typeof Object.create === \"function\") {\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n }\r\n else {\r\n exports.__esModule = true;\r\n }\r\n }\r\n return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };\r\n }\r\n})\r\n(function (exporter) {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n\r\n __extends = function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n\r\n __assign = Object.assign || function (t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n\r\n __rest = function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n };\r\n\r\n __decorate = function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n };\r\n\r\n __param = function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n };\r\n\r\n __metadata = function (metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n };\r\n\r\n __awaiter = function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n };\r\n\r\n __generator = function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n };\r\n\r\n __exportStar = function(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n };\r\n\r\n __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n }) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n });\r\n\r\n __values = function (o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n };\r\n\r\n __read = function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spread = function () {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spreadArrays = function () {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n };\r\n\r\n __spreadArray = function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n };\r\n\r\n __await = function (v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n };\r\n\r\n __asyncGenerator = function (thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n };\r\n\r\n __asyncDelegator = function (o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n };\r\n\r\n __asyncValues = function (o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n };\r\n\r\n __makeTemplateObject = function (cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n };\r\n\r\n var __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n }) : function(o, v) {\r\n o[\"default\"] = v;\r\n };\r\n\r\n __importStar = function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n };\r\n\r\n __importDefault = function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n };\r\n\r\n __classPrivateFieldGet = function (receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n };\r\n\r\n __classPrivateFieldSet = function (receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n };\r\n\r\n exporter(\"__extends\", __extends);\r\n exporter(\"__assign\", __assign);\r\n exporter(\"__rest\", __rest);\r\n exporter(\"__decorate\", __decorate);\r\n exporter(\"__param\", __param);\r\n exporter(\"__metadata\", __metadata);\r\n exporter(\"__awaiter\", __awaiter);\r\n exporter(\"__generator\", __generator);\r\n exporter(\"__exportStar\", __exportStar);\r\n exporter(\"__createBinding\", __createBinding);\r\n exporter(\"__values\", __values);\r\n exporter(\"__read\", __read);\r\n exporter(\"__spread\", __spread);\r\n exporter(\"__spreadArrays\", __spreadArrays);\r\n exporter(\"__spreadArray\", __spreadArray);\r\n exporter(\"__await\", __await);\r\n exporter(\"__asyncGenerator\", __asyncGenerator);\r\n exporter(\"__asyncDelegator\", __asyncDelegator);\r\n exporter(\"__asyncValues\", __asyncValues);\r\n exporter(\"__makeTemplateObject\", __makeTemplateObject);\r\n exporter(\"__importStar\", __importStar);\r\n exporter(\"__importDefault\", __importDefault);\r\n exporter(\"__classPrivateFieldGet\", __classPrivateFieldGet);\r\n exporter(\"__classPrivateFieldSet\", __classPrivateFieldSet);\r\n});\r\n", "/*!\n * clipboard.js v2.0.8\n * https://clipboardjs.com/\n *\n * Licensed MIT \u00A9 Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 134:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/clipboard-action.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n/**\n * Inner class which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n */\n\nvar ClipboardAction = /*#__PURE__*/function () {\n /**\n * @param {Object} options\n */\n function ClipboardAction(options) {\n _classCallCheck(this, ClipboardAction);\n\n this.resolveOptions(options);\n this.initSelection();\n }\n /**\n * Defines base properties passed from constructor.\n * @param {Object} options\n */\n\n\n _createClass(ClipboardAction, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = options.action;\n this.container = options.container;\n this.emitter = options.emitter;\n this.target = options.target;\n this.text = options.text;\n this.trigger = options.trigger;\n this.selectedText = '';\n }\n /**\n * Decides which selection strategy is going to be applied based\n * on the existence of `text` and `target` properties.\n */\n\n }, {\n key: \"initSelection\",\n value: function initSelection() {\n if (this.text) {\n this.selectFake();\n } else if (this.target) {\n this.selectTarget();\n }\n }\n /**\n * Creates a fake textarea element, sets its value from `text` property,\n */\n\n }, {\n key: \"createFakeElement\",\n value: function createFakeElement() {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n this.fakeElem = document.createElement('textarea'); // Prevent zooming on iOS\n\n this.fakeElem.style.fontSize = '12pt'; // Reset box model\n\n this.fakeElem.style.border = '0';\n this.fakeElem.style.padding = '0';\n this.fakeElem.style.margin = '0'; // Move element out of screen horizontally\n\n this.fakeElem.style.position = 'absolute';\n this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n this.fakeElem.style.top = \"\".concat(yPosition, \"px\");\n this.fakeElem.setAttribute('readonly', '');\n this.fakeElem.value = this.text;\n return this.fakeElem;\n }\n /**\n * Get's the value of fakeElem,\n * and makes a selection on it.\n */\n\n }, {\n key: \"selectFake\",\n value: function selectFake() {\n var _this = this;\n\n var fakeElem = this.createFakeElement();\n\n this.fakeHandlerCallback = function () {\n return _this.removeFake();\n };\n\n this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;\n this.container.appendChild(fakeElem);\n this.selectedText = select_default()(fakeElem);\n this.copyText();\n this.removeFake();\n }\n /**\n * Only removes the fake element after another click event, that way\n * a user can hit `Ctrl+C` to copy because selection still exists.\n */\n\n }, {\n key: \"removeFake\",\n value: function removeFake() {\n if (this.fakeHandler) {\n this.container.removeEventListener('click', this.fakeHandlerCallback);\n this.fakeHandler = null;\n this.fakeHandlerCallback = null;\n }\n\n if (this.fakeElem) {\n this.container.removeChild(this.fakeElem);\n this.fakeElem = null;\n }\n }\n /**\n * Selects the content from element passed on `target` property.\n */\n\n }, {\n key: \"selectTarget\",\n value: function selectTarget() {\n this.selectedText = select_default()(this.target);\n this.copyText();\n }\n /**\n * Executes the copy operation based on the current selection.\n */\n\n }, {\n key: \"copyText\",\n value: function copyText() {\n var succeeded;\n\n try {\n succeeded = document.execCommand(this.action);\n } catch (err) {\n succeeded = false;\n }\n\n this.handleResult(succeeded);\n }\n /**\n * Fires an event based on the copy operation result.\n * @param {Boolean} succeeded\n */\n\n }, {\n key: \"handleResult\",\n value: function handleResult(succeeded) {\n this.emitter.emit(succeeded ? 'success' : 'error', {\n action: this.action,\n text: this.selectedText,\n trigger: this.trigger,\n clearSelection: this.clearSelection.bind(this)\n });\n }\n /**\n * Moves focus away from `target` and back to the trigger, removes current selection.\n */\n\n }, {\n key: \"clearSelection\",\n value: function clearSelection() {\n if (this.trigger) {\n this.trigger.focus();\n }\n\n document.activeElement.blur();\n window.getSelection().removeAllRanges();\n }\n /**\n * Sets the `action` to be performed which can be either 'copy' or 'cut'.\n * @param {String} action\n */\n\n }, {\n key: \"destroy\",\n\n /**\n * Destroy lifecycle.\n */\n value: function destroy() {\n this.removeFake();\n }\n }, {\n key: \"action\",\n set: function set() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';\n this._action = action;\n\n if (this._action !== 'copy' && this._action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n }\n }\n /**\n * Gets the `action` property.\n * @return {String}\n */\n ,\n get: function get() {\n return this._action;\n }\n /**\n * Sets the `target` property using an element\n * that will be have its content copied.\n * @param {Element} target\n */\n\n }, {\n key: \"target\",\n set: function set(target) {\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (this.action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n\n this._target = target;\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n }\n }\n /**\n * Gets the `target` property.\n * @return {String|HTMLElement}\n */\n ,\n get: function get() {\n return this._target;\n }\n }]);\n\n return ClipboardAction;\n}();\n\n/* harmony default export */ var clipboard_action = (ClipboardAction);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction clipboard_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction clipboard_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction clipboard_createClass(Constructor, protoProps, staticProps) { if (protoProps) clipboard_defineProperties(Constructor.prototype, protoProps); if (staticProps) clipboard_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n clipboard_classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n clipboard_createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n\n if (this.clipboardAction) {\n this.clipboardAction = null;\n }\n\n this.clipboardAction = new clipboard_action({\n action: this.action(trigger),\n target: this.target(trigger),\n text: this.text(trigger),\n container: this.container,\n trigger: trigger,\n emitter: this\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n\n if (this.clipboardAction) {\n this.clipboardAction.destroy();\n this.clipboardAction = null;\n }\n }\n }], [{\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(134);\n/******/ })()\n.default;\n});", "/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n", "Array.prototype.flat||Object.defineProperty(Array.prototype,\"flat\",{configurable:!0,value:function r(){var t=isNaN(arguments[0])?1:Number(arguments[0]);return t?Array.prototype.reduce.call(this,function(a,e){return Array.isArray(e)?a.push.apply(a,r.call(e,t-1)):a.push(e),a},[]):Array.prototype.slice.call(this)},writable:!0}),Array.prototype.flatMap||Object.defineProperty(Array.prototype,\"flatMap\",{configurable:!0,value:function(r){return Array.prototype.map.apply(this,arguments).flat()},writable:!0})\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport \"array-flat-polyfill\"\nimport \"focus-visible\"\nimport \"unfetch/polyfill\"\nimport \"url-polyfill\"\n\nimport {\n EMPTY,\n NEVER,\n Subject,\n defer,\n delay,\n filter,\n map,\n merge,\n mergeWith,\n shareReplay,\n switchMap\n} from \"rxjs\"\n\nimport { configuration, feature } from \"./_\"\nimport {\n at,\n getOptionalElement,\n requestJSON,\n setToggle,\n watchDocument,\n watchKeyboard,\n watchLocation,\n watchLocationTarget,\n watchMedia,\n watchPrint,\n watchViewport\n} from \"./browser\"\nimport {\n getComponentElement,\n getComponentElements,\n mountBackToTop,\n mountContent,\n mountDialog,\n mountHeader,\n mountHeaderTitle,\n mountPalette,\n mountSearch,\n mountSearchHiglight,\n mountSidebar,\n mountSource,\n mountTableOfContents,\n mountTabs,\n watchHeader,\n watchMain\n} from \"./components\"\nimport {\n SearchIndex,\n setupClipboardJS,\n setupInstantLoading,\n setupVersionSelector\n} from \"./integrations\"\nimport {\n patchIndeterminate,\n patchScrollfix,\n patchScrolllock\n} from \"./patches\"\nimport \"./polyfills\"\n\n/* ----------------------------------------------------------------------------\n * Application\n * ------------------------------------------------------------------------- */\n\n/* Yay, JavaScript is available */\ndocument.documentElement.classList.remove(\"no-js\")\ndocument.documentElement.classList.add(\"js\")\n\n/* Set up navigation observables and subjects */\nconst document$ = watchDocument()\nconst location$ = watchLocation()\nconst target$ = watchLocationTarget()\nconst keyboard$ = watchKeyboard()\n\n/* Set up media observables */\nconst viewport$ = watchViewport()\nconst tablet$ = watchMedia(\"(min-width: 960px)\")\nconst screen$ = watchMedia(\"(min-width: 1220px)\")\nconst print$ = watchPrint()\n\n/* Retrieve search index, if search is enabled */\nconst config = configuration()\nconst index$ = document.forms.namedItem(\"search\")\n ? __search?.index || requestJSON(\n new URL(\"search/search_index.json\", config.base)\n )\n : NEVER\n\n/* Set up Clipboard.js integration */\nconst alert$ = new Subject()\nsetupClipboardJS({ alert$ })\n\n/* Set up instant loading, if enabled */\nif (feature(\"navigation.instant\"))\n setupInstantLoading({ document$, location$, viewport$ })\n\n/* Set up version selector */\nif (config.version?.provider === \"mike\")\n setupVersionSelector()\n\n/* Always close drawer and search on navigation */\nmerge(location$, target$)\n .pipe(\n delay(125)\n )\n .subscribe(() => {\n setToggle(\"drawer\", false)\n setToggle(\"search\", false)\n })\n\n/* Set up global keyboard handlers */\nkeyboard$\n .pipe(\n filter(({ mode }) => mode === \"global\")\n )\n .subscribe(key => {\n switch (key.type) {\n\n /* Go to previous page */\n case \"p\":\n case \",\":\n const prev = getOptionalElement(\"[href][rel=prev]\")\n if (typeof prev !== \"undefined\")\n prev.click()\n break\n\n /* Go to next page */\n case \"n\":\n case \".\":\n const next = getOptionalElement(\"[href][rel=next]\")\n if (typeof next !== \"undefined\")\n next.click()\n break\n }\n })\n\n/* Set up patches */\npatchIndeterminate({ document$, tablet$ })\npatchScrollfix({ document$ })\npatchScrolllock({ viewport$, tablet$ })\n\n/* Set up header and main area observable */\nconst header$ = watchHeader(getComponentElement(\"header\"), { viewport$ })\nconst main$ = document$\n .pipe(\n map(() => getComponentElement(\"main\")),\n switchMap(el => watchMain(el, { viewport$, header$ })),\n shareReplay(1)\n )\n\n/* Set up control component observables */\nconst control$ = merge(\n\n /* Dialog */\n ...getComponentElements(\"dialog\")\n .map(el => mountDialog(el, { alert$ })),\n\n /* Header */\n ...getComponentElements(\"header\")\n .map(el => mountHeader(el, { viewport$, header$, main$ })),\n\n /* Color palette */\n ...getComponentElements(\"palette\")\n .map(el => mountPalette(el)),\n\n /* Search */\n ...getComponentElements(\"search\")\n .map(el => mountSearch(el, { index$, keyboard$ })),\n\n /* Repository information */\n ...getComponentElements(\"source\")\n .map(el => mountSource(el))\n)\n\n/* Set up content component observables */\nconst content$ = defer(() => merge(\n\n /* Content */\n ...getComponentElements(\"content\")\n .map(el => mountContent(el, { target$, print$ })),\n\n /* Search highlighting */\n ...getComponentElements(\"content\")\n .map(el => feature(\"search.highlight\")\n ? mountSearchHiglight(el, { index$, location$ })\n : EMPTY\n ),\n\n /* Header title */\n ...getComponentElements(\"header-title\")\n .map(el => mountHeaderTitle(el, { viewport$, header$ })),\n\n /* Sidebar */\n ...getComponentElements(\"sidebar\")\n .map(el => el.getAttribute(\"data-md-type\") === \"navigation\"\n ? at(screen$, () => mountSidebar(el, { viewport$, header$, main$ }))\n : at(tablet$, () => mountSidebar(el, { viewport$, header$, main$ }))\n ),\n\n /* Navigation tabs */\n ...getComponentElements(\"tabs\")\n .map(el => mountTabs(el, { viewport$, header$ })),\n\n /* Table of contents */\n ...getComponentElements(\"toc\")\n .map(el => mountTableOfContents(el, { viewport$, header$ })),\n\n /* Back-to-top button */\n ...getComponentElements(\"top\")\n .map(el => mountBackToTop(el, { viewport$, header$, main$, target$ }))\n))\n\n/* Set up component observables */\nconst component$ = document$\n .pipe(\n switchMap(() => content$),\n mergeWith(control$),\n shareReplay(1)\n )\n\n/* Subscribe to all components */\ncomponent$.subscribe()\n\n/* ----------------------------------------------------------------------------\n * Exports\n * ------------------------------------------------------------------------- */\n\nwindow.document$ = document$ /* Document observable */\nwindow.location$ = location$ /* Location subject */\nwindow.target$ = target$ /* Location target observable */\nwindow.keyboard$ = keyboard$ /* Keyboard observable */\nwindow.viewport$ = viewport$ /* Viewport observable */\nwindow.tablet$ = tablet$ /* Media tablet observable */\nwindow.screen$ = screen$ /* Media screen observable */\nwindow.print$ = print$ /* Media print observable */\nwindow.alert$ = alert$ /* Alert subject */\nwindow.component$ = component$ /* Component observable */\n", "self.fetch||(self.fetch=function(e,n){return n=n||{},new Promise(function(t,s){var r=new XMLHttpRequest,o=[],u=[],i={},a=function(){return{ok:2==(r.status/100|0),statusText:r.statusText,status:r.status,url:r.responseURL,text:function(){return Promise.resolve(r.responseText)},json:function(){return Promise.resolve(r.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([r.response]))},clone:a,headers:{keys:function(){return o},entries:function(){return u},get:function(e){return i[e.toLowerCase()]},has:function(e){return e.toLowerCase()in i}}}};for(var c in r.open(n.method||\"get\",e,!0),r.onload=function(){r.getAllResponseHeaders().replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm,function(e,n,t){o.push(n=n.toLowerCase()),u.push([n,t]),i[n]=i[n]?i[n]+\",\"+t:t}),t(a())},r.onerror=s,r.withCredentials=\"include\"==n.credentials,n.headers)r.setRequestHeader(c,n.headers[c]);r.send(n.body||null)})});\n", "import tslib from '../tslib.js';\r\nconst {\r\n __extends,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __exportStar,\r\n __createBinding,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n} = tslib;\r\nexport {\r\n __extends,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __exportStar,\r\n __createBinding,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n};\r\n", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n ReplaySubject,\n Subject,\n fromEvent\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch document\n *\n * Documents are implemented as subjects, so all downstream observables are\n * automatically updated when a new document is emitted.\n *\n * @returns Document subject\n */\nexport function watchDocument(): Subject {\n const document$ = new ReplaySubject(1)\n fromEvent(document, \"DOMContentLoaded\", { once: true })\n .subscribe(() => document$.next(document))\n\n /* Return document */\n return document$\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve all elements matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @returns Elements\n */\nexport function getElements(\n selector: T, node?: ParentNode\n): HTMLElementTagNameMap[T][]\n\nexport function getElements(\n selector: string, node?: ParentNode\n): T[]\n\nexport function getElements(\n selector: string, node: ParentNode = document\n): T[] {\n return Array.from(node.querySelectorAll(selector))\n}\n\n/**\n * Retrieve an element matching a query selector or throw a reference error\n *\n * Note that this function assumes that the element is present. If unsure if an\n * element is existent, use the `getOptionalElement` function instead.\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @returns Element\n */\nexport function getElement(\n selector: T, node?: ParentNode\n): HTMLElementTagNameMap[T]\n\nexport function getElement(\n selector: string, node?: ParentNode\n): T\n\nexport function getElement(\n selector: string, node: ParentNode = document\n): T {\n const el = getOptionalElement(selector, node)\n if (typeof el === \"undefined\")\n throw new ReferenceError(\n `Missing element: expected \"${selector}\" to be present`\n )\n\n /* Return element */\n return el\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Retrieve an optional element matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @returns Element or nothing\n */\nexport function getOptionalElement(\n selector: T, node?: ParentNode\n): HTMLElementTagNameMap[T] | undefined\n\nexport function getOptionalElement(\n selector: string, node?: ParentNode\n): T | undefined\n\nexport function getOptionalElement(\n selector: string, node: ParentNode = document\n): T | undefined {\n return node.querySelector(selector) || undefined\n}\n\n/**\n * Retrieve the currently active element\n *\n * @returns Element or nothing\n */\nexport function getActiveElement(): HTMLElement | undefined {\n return document.activeElement instanceof HTMLElement\n ? document.activeElement || undefined\n : undefined\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n debounceTime,\n distinctUntilChanged,\n fromEvent,\n map,\n merge,\n startWith\n} from \"rxjs\"\n\nimport { getActiveElement } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch element focus\n *\n * Previously, this function used `focus` and `blur` events to determine whether\n * an element is focused, but this doesn't work if there are focusable elements\n * within the elements itself. A better solutions are `focusin` and `focusout`\n * events, which bubble up the tree and allow for more fine-grained control.\n *\n * `debounceTime` is necessary, because when a focus change happens inside an\n * element, the observable would first emit `false` and then `true` again.\n *\n * @param el - Element\n *\n * @returns Element focus observable\n */\nexport function watchElementFocus(\n el: HTMLElement\n): Observable {\n return merge(\n fromEvent(document.body, \"focusin\"),\n fromEvent(document.body, \"focusout\")\n )\n .pipe(\n debounceTime(1),\n map(() => {\n const active = getActiveElement()\n return typeof active !== \"undefined\"\n ? el.contains(active)\n : false\n }),\n startWith(el === getActiveElement()),\n distinctUntilChanged()\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n animationFrameScheduler,\n auditTime,\n fromEvent,\n map,\n merge,\n startWith\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Element offset\n */\nexport interface ElementOffset {\n x: number /* Horizontal offset */\n y: number /* Vertical offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve element offset\n *\n * @param el - Element\n *\n * @returns Element offset\n */\nexport function getElementOffset(\n el: HTMLElement\n): ElementOffset {\n return {\n x: el.offsetLeft,\n y: el.offsetTop\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element offset\n *\n * @param el - Element\n *\n * @returns Element offset observable\n */\nexport function watchElementOffset(\n el: HTMLElement\n): Observable {\n return merge(\n fromEvent(window, \"load\"),\n fromEvent(window, \"resize\")\n )\n .pipe(\n auditTime(0, animationFrameScheduler),\n map(() => getElementOffset(el)),\n startWith(getElementOffset(el))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n animationFrameScheduler,\n auditTime,\n fromEvent,\n map,\n merge,\n startWith\n} from \"rxjs\"\n\nimport { ElementOffset } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve element content offset (= scroll offset)\n *\n * @param el - Element\n *\n * @returns Element content offset\n */\nexport function getElementContentOffset(\n el: HTMLElement\n): ElementOffset {\n return {\n x: el.scrollLeft,\n y: el.scrollTop\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element content offset\n *\n * @param el - Element\n *\n * @returns Element content offset observable\n */\nexport function watchElementContentOffset(\n el: HTMLElement\n): Observable {\n return merge(\n fromEvent(el, \"scroll\"),\n fromEvent(window, \"resize\")\n )\n .pipe(\n auditTime(0, animationFrameScheduler),\n map(() => getElementContentOffset(el)),\n startWith(getElementContentOffset(el))\n )\n}\n", "/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport ResizeObserver from \"resize-observer-polyfill\"\nimport {\n NEVER,\n Observable,\n Subject,\n defer,\n filter,\n finalize,\n map,\n merge,\n of,\n shareReplay,\n startWith,\n switchMap,\n tap\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Element offset\n */\nexport interface ElementSize {\n width: number /* Element width */\n height: number /* Element height */\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Resize observer entry subject\n */\nconst entry$ = new Subject()\n\n/**\n * Resize observer observable\n *\n * This observable will create a `ResizeObserver` on the first subscription\n * and will automatically terminate it when there are no more subscribers.\n * It's quite important to centralize observation in a single `ResizeObserver`,\n * as the performance difference can be quite dramatic, as the link shows.\n *\n * @see https://bit.ly/3iIYfEm - Google Groups on performance\n */\nconst observer$ = defer(() => of(\n new ResizeObserver(entries => {\n for (const entry of entries)\n entry$.next(entry)\n })\n))\n .pipe(\n switchMap(observer => merge(NEVER, of(observer))\n .pipe(\n finalize(() => observer.disconnect())\n )\n ),\n shareReplay(1)\n )\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve element size\n *\n * @param el - Element\n *\n * @returns Element size\n */\nexport function getElementSize(\n el: HTMLElement\n): ElementSize {\n return {\n width: el.offsetWidth,\n height: el.offsetHeight\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element size\n *\n * This function returns an observable that subscribes to a single internal\n * instance of `ResizeObserver` upon subscription, and emit resize events until\n * termination. Note that this function should not be called with the same\n * element twice, as the first unsubscription will terminate observation.\n *\n * Sadly, we can't use the `DOMRect` objects returned by the observer, because\n * we need the emitted values to be consistent with `getElementSize`, which will\n * return the used values (rounded) and not actual values (unrounded). Thus, we\n * use the `offset*` properties. See the linked GitHub issue.\n *\n * @see https://bit.ly/3m0k3he - GitHub issue\n *\n * @param el - Element\n *\n * @returns Element size observable\n */\nexport function watchElementSize(\n el: HTMLElement\n): Observable {\n return observer$\n .pipe(\n tap(observer => observer.observe(el)),\n switchMap(observer => entry$\n .pipe(\n filter(({ target }) => target === el),\n finalize(() => observer.unobserve(el)),\n map(() => getElementSize(el))\n )\n ),\n startWith(getElementSize(el))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { ElementSize } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve element content size (= scroll width and height)\n *\n * @param el - Element\n *\n * @returns Element content size\n */\nexport function getElementContentSize(\n el: HTMLElement\n): ElementSize {\n return {\n width: el.scrollWidth,\n height: el.scrollHeight\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n NEVER,\n Observable,\n Subject,\n defer,\n distinctUntilChanged,\n filter,\n finalize,\n map,\n merge,\n of,\n shareReplay,\n switchMap,\n tap\n} from \"rxjs\"\n\nimport {\n getElementContentSize,\n getElementSize,\n watchElementContentOffset\n} from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Intersection observer entry subject\n */\nconst entry$ = new Subject()\n\n/**\n * Intersection observer observable\n *\n * This observable will create an `IntersectionObserver` on first subscription\n * and will automatically terminate it when there are no more subscribers.\n *\n * @see https://bit.ly/3iIYfEm - Google Groups on performance\n */\nconst observer$ = defer(() => of(\n new IntersectionObserver(entries => {\n for (const entry of entries)\n entry$.next(entry)\n }, {\n threshold: 1\n })\n))\n .pipe(\n switchMap(observer => merge(NEVER, of(observer))\n .pipe(\n finalize(() => observer.disconnect())\n )\n ),\n shareReplay(1)\n )\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch element visibility\n *\n * @param el - Element\n *\n * @returns Element visibility observable\n */\nexport function watchElementVisibility(\n el: HTMLElement\n): Observable {\n return observer$\n .pipe(\n tap(observer => observer.observe(el)),\n switchMap(observer => entry$\n .pipe(\n filter(({ target }) => target === el),\n finalize(() => observer.unobserve(el)),\n map(({ isIntersecting }) => isIntersecting)\n )\n )\n )\n}\n\n/**\n * Watch element boundary\n *\n * This function returns an observable which emits whether the bottom content\n * boundary (= scroll offset) of an element is within a certain threshold.\n *\n * @param el - Element\n * @param threshold - Threshold\n *\n * @returns Element boundary observable\n */\nexport function watchElementBoundary(\n el: HTMLElement, threshold = 16\n): Observable {\n return watchElementContentOffset(el)\n .pipe(\n map(({ y }) => {\n const visible = getElementSize(el)\n const content = getElementContentSize(el)\n return y >= (\n content.height - visible.height - threshold\n )\n }),\n distinctUntilChanged()\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n fromEvent,\n map,\n startWith\n} from \"rxjs\"\n\nimport { getElement } from \"../element\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Toggle\n */\nexport type Toggle =\n | \"drawer\" /* Toggle for drawer */\n | \"search\" /* Toggle for search */\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Toggle map\n */\nconst toggles: Record = {\n drawer: getElement(\"[data-md-toggle=drawer]\"),\n search: getElement(\"[data-md-toggle=search]\")\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve the value of a toggle\n *\n * @param name - Toggle\n *\n * @returns Toggle value\n */\nexport function getToggle(name: Toggle): boolean {\n return toggles[name].checked\n}\n\n/**\n * Set toggle\n *\n * Simulating a click event seems to be the most cross-browser compatible way\n * of changing the value while also emitting a `change` event. Before, Material\n * used `CustomEvent` to programmatically change the value of a toggle, but this\n * is a much simpler and cleaner solution which doesn't require a polyfill.\n *\n * @param name - Toggle\n * @param value - Toggle value\n */\nexport function setToggle(name: Toggle, value: boolean): void {\n if (toggles[name].checked !== value)\n toggles[name].click()\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch toggle\n *\n * @param name - Toggle\n *\n * @returns Toggle value observable\n */\nexport function watchToggle(name: Toggle): Observable {\n const el = toggles[name]\n return fromEvent(el, \"change\")\n .pipe(\n map(() => el.checked),\n startWith(el.checked)\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n filter,\n fromEvent,\n map,\n share\n} from \"rxjs\"\n\nimport { getActiveElement } from \"../element\"\nimport { getToggle } from \"../toggle\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Keyboard mode\n */\nexport type KeyboardMode =\n | \"global\" /* Global */\n | \"search\" /* Search is open */\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Keyboard\n */\nexport interface Keyboard {\n mode: KeyboardMode /* Keyboard mode */\n type: string /* Key type */\n claim(): void /* Key claim */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Check whether an element may receive keyboard input\n *\n * @param el - Element\n * @param type - Key type\n *\n * @returns Test result\n */\nfunction isSusceptibleToKeyboard(\n el: HTMLElement, type: string\n): boolean {\n switch (el.constructor) {\n\n /* Input elements */\n case HTMLInputElement:\n /* @ts-expect-error - omit unnecessary type cast */\n if (el.type === \"radio\")\n return /^Arrow/.test(type)\n else\n return true\n\n /* Select element and textarea */\n case HTMLSelectElement:\n case HTMLTextAreaElement:\n return true\n\n /* Everything else */\n default:\n return el.isContentEditable\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch keyboard\n *\n * @returns Keyboard observable\n */\nexport function watchKeyboard(): Observable {\n return fromEvent(window, \"keydown\")\n .pipe(\n filter(ev => !(ev.metaKey || ev.ctrlKey)),\n map(ev => ({\n mode: getToggle(\"search\") ? \"search\" : \"global\",\n type: ev.key,\n claim() {\n ev.preventDefault()\n ev.stopPropagation()\n }\n } as Keyboard)),\n filter(({ mode, type }) => {\n if (mode === \"global\") {\n const active = getActiveElement()\n if (typeof active !== \"undefined\")\n return !isSusceptibleToKeyboard(active, type)\n }\n return true\n }),\n share()\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Subject } from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve location\n *\n * This function returns a `URL` object (and not `Location`) to normalize the\n * typings across the application. Furthermore, locations need to be tracked\n * without setting them and `Location` is a singleton which represents the\n * current location.\n *\n * @returns URL\n */\nexport function getLocation(): URL {\n return new URL(location.href)\n}\n\n/**\n * Set location\n *\n * @param url - URL to change to\n */\nexport function setLocation(url: URL): void {\n location.href = url.href\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch location\n *\n * @returns Location subject\n */\nexport function watchLocation(): Subject {\n return new Subject()\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { JSX as JSXInternal } from \"preact\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * HTML attributes\n */\ntype Attributes =\n & JSXInternal.HTMLAttributes\n & JSXInternal.SVGAttributes\n & Record\n\n/**\n * Child element\n */\ntype Child =\n | HTMLElement\n | Text\n | string\n | number\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Append a child node to an element\n *\n * @param el - Element\n * @param child - Child node(s)\n */\nfunction appendChild(el: HTMLElement, child: Child | Child[]): void {\n\n /* Handle primitive types (including raw HTML) */\n if (typeof child === \"string\" || typeof child === \"number\") {\n el.innerHTML += child.toString()\n\n /* Handle nodes */\n } else if (child instanceof Node) {\n el.appendChild(child)\n\n /* Handle nested children */\n } else if (Array.isArray(child)) {\n for (const node of child)\n appendChild(el, node)\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * JSX factory\n *\n * @template T - Element type\n *\n * @param tag - HTML tag\n * @param attributes - HTML attributes\n * @param children - Child elements\n *\n * @returns Element\n */\nexport function h(\n tag: T, attributes?: Attributes | null, ...children: Child[]\n): HTMLElementTagNameMap[T]\n\nexport function h(\n tag: string, attributes?: Attributes | null, ...children: Child[]\n): T\n\nexport function h(\n tag: string, attributes?: Attributes | null, ...children: Child[]\n): T {\n const el = document.createElement(tag)\n\n /* Set attributes, if any */\n if (attributes)\n for (const attr of Object.keys(attributes))\n if (typeof attributes[attr] !== \"boolean\")\n el.setAttribute(attr, attributes[attr])\n else if (attributes[attr])\n el.setAttribute(attr, \"\")\n\n /* Append child nodes */\n for (const child of children)\n appendChild(el, child)\n\n /* Return element */\n return el as T\n}\n\n/* ----------------------------------------------------------------------------\n * Namespace\n * ------------------------------------------------------------------------- */\n\nexport declare namespace h {\n namespace JSX {\n type Element = HTMLElement\n type IntrinsicElements = JSXInternal.IntrinsicElements\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Truncate a string after the given number of characters\n *\n * This is not a very reasonable approach, since the summaries kind of suck.\n * It would be better to create something more intelligent, highlighting the\n * search occurrences and making a better summary out of it, but this note was\n * written three years ago, so who knows if we'll ever fix it.\n *\n * @param value - Value to be truncated\n * @param n - Number of characters\n *\n * @returns Truncated value\n */\nexport function truncate(value: string, n: number): string {\n let i = n\n if (value.length > i) {\n while (value[i] !== \" \" && --i > 0) { /* keep eating */ }\n return `${value.substring(0, i)}...`\n }\n return value\n}\n\n/**\n * Round a number for display with repository facts\n *\n * This is a reverse-engineered version of GitHub's weird rounding algorithm\n * for stars, forks and all other numbers. While all numbers below `1,000` are\n * returned as-is, bigger numbers are converted to fixed numbers:\n *\n * - `1,049` => `1k`\n * - `1,050` => `1.1k`\n * - `1,949` => `1.9k`\n * - `1,950` => `2k`\n *\n * @param value - Original value\n *\n * @returns Rounded value\n */\nexport function round(value: number): string {\n if (value > 999) {\n const digits = +((value - 950) % 1000 > 99)\n return `${((value + 0.000001) / 1000).toFixed(digits)}k`\n } else {\n return value.toString()\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n filter,\n fromEvent,\n map,\n shareReplay,\n startWith\n} from \"rxjs\"\n\nimport { getOptionalElement } from \"~/browser\"\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve location hash\n *\n * @returns Location hash\n */\nexport function getLocationHash(): string {\n return location.hash.substring(1)\n}\n\n/**\n * Set location hash\n *\n * Setting a new fragment identifier via `location.hash` will have no effect\n * if the value doesn't change. When a new fragment identifier is set, we want\n * the browser to target the respective element at all times, which is why we\n * use this dirty little trick.\n *\n * @param hash - Location hash\n */\nexport function setLocationHash(hash: string): void {\n const el = h(\"a\", { href: hash })\n el.addEventListener(\"click\", ev => ev.stopPropagation())\n el.click()\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch location hash\n *\n * @returns Location hash observable\n */\nexport function watchLocationHash(): Observable {\n return fromEvent(window, \"hashchange\")\n .pipe(\n map(getLocationHash),\n startWith(getLocationHash()),\n filter(hash => hash.length > 0),\n shareReplay(1)\n )\n}\n\n/**\n * Watch location target\n *\n * @returns Location target observable\n */\nexport function watchLocationTarget(): Observable {\n return watchLocationHash()\n .pipe(\n map(id => getOptionalElement(`[id=\"${id}\"]`)!),\n filter(el => typeof el !== \"undefined\")\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Observable,\n fromEvent,\n fromEventPattern,\n mapTo,\n merge,\n startWith,\n switchMap\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch media query\n *\n * Note that although `MediaQueryList.addListener` is deprecated we have to\n * use it, because it's the only way to ensure proper downward compatibility.\n *\n * @see https://bit.ly/3dUBH2m - GitHub issue\n *\n * @param query - Media query\n *\n * @returns Media observable\n */\nexport function watchMedia(query: string): Observable {\n const media = matchMedia(query)\n return fromEventPattern(next => (\n media.addListener(() => next(media.matches))\n ))\n .pipe(\n startWith(media.matches)\n )\n}\n\n/**\n * Watch print mode\n *\n * @returns Print observable\n */\nexport function watchPrint(): Observable {\n const media = matchMedia(\"print\")\n return merge(\n fromEvent(window, \"beforeprint\").pipe(mapTo(true)),\n fromEvent(window, \"afterprint\").pipe(mapTo(false))\n )\n .pipe(\n startWith(media.matches)\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Toggle an observable with a media observable\n *\n * @template T - Data type\n *\n * @param query$ - Media observable\n * @param factory - Observable factory\n *\n * @returns Toggled observable\n */\nexport function at(\n query$: Observable, factory: () => Observable\n): Observable {\n return query$\n .pipe(\n switchMap(active => active ? factory() : EMPTY)\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Observable,\n catchError,\n filter,\n from,\n map,\n shareReplay,\n switchMap\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch the given URL\n *\n * If the request fails (e.g. when dispatched from `file://` locations), the\n * observable will complete without emitting a value.\n *\n * @param url - Request URL\n * @param options - Options\n *\n * @returns Response observable\n */\nexport function request(\n url: URL | string, options: RequestInit = { credentials: \"same-origin\" }\n): Observable {\n return from(fetch(`${url}`, options))\n .pipe(\n filter(res => res.status === 200),\n catchError(() => EMPTY)\n )\n}\n\n/**\n * Fetch JSON from the given URL\n *\n * @template T - Data type\n *\n * @param url - Request URL\n * @param options - Options\n *\n * @returns Data observable\n */\nexport function requestJSON(\n url: URL | string, options?: RequestInit\n): Observable {\n return request(url, options)\n .pipe(\n switchMap(res => res.json()),\n shareReplay(1)\n )\n}\n\n/**\n * Fetch XML from the given URL\n *\n * @param url - Request URL\n * @param options - Options\n *\n * @returns Data observable\n */\nexport function requestXML(\n url: URL | string, options?: RequestInit\n): Observable {\n const dom = new DOMParser()\n return request(url, options)\n .pipe(\n switchMap(res => res.text()),\n map(res => dom.parseFromString(res, \"text/xml\")),\n shareReplay(1)\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n fromEvent,\n map,\n merge,\n startWith\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Viewport offset\n */\nexport interface ViewportOffset {\n x: number /* Horizontal offset */\n y: number /* Vertical offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve viewport offset\n *\n * On iOS Safari, viewport offset can be negative due to overflow scrolling.\n * As this may induce strange behaviors downstream, we'll just limit it to 0.\n *\n * @returns Viewport offset\n */\nexport function getViewportOffset(): ViewportOffset {\n return {\n x: Math.max(0, scrollX),\n y: Math.max(0, scrollY)\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport offset\n *\n * @returns Viewport offset observable\n */\nexport function watchViewportOffset(): Observable {\n return merge(\n fromEvent(window, \"scroll\", { passive: true }),\n fromEvent(window, \"resize\", { passive: true })\n )\n .pipe(\n map(getViewportOffset),\n startWith(getViewportOffset())\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n fromEvent,\n map,\n startWith\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Viewport size\n */\nexport interface ViewportSize {\n width: number /* Viewport width */\n height: number /* Viewport height */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve viewport size\n *\n * @returns Viewport size\n */\nexport function getViewportSize(): ViewportSize {\n return {\n width: innerWidth,\n height: innerHeight\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport size\n *\n * @returns Viewport size observable\n */\nexport function watchViewportSize(): Observable {\n return fromEvent(window, \"resize\", { passive: true })\n .pipe(\n map(getViewportSize),\n startWith(getViewportSize())\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n combineLatest,\n map,\n shareReplay\n} from \"rxjs\"\n\nimport {\n ViewportOffset,\n watchViewportOffset\n} from \"../offset\"\nimport {\n ViewportSize,\n watchViewportSize\n} from \"../size\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Viewport\n */\nexport interface Viewport {\n offset: ViewportOffset /* Viewport offset */\n size: ViewportSize /* Viewport size */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport\n *\n * @returns Viewport observable\n */\nexport function watchViewport(): Observable {\n return combineLatest([\n watchViewportOffset(),\n watchViewportSize()\n ])\n .pipe(\n map(([offset, size]) => ({ offset, size })),\n shareReplay(1)\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n combineLatest,\n distinctUntilKeyChanged,\n map\n} from \"rxjs\"\n\nimport { Header } from \"~/components\"\n\nimport { getElementOffset } from \"../../element\"\nimport { Viewport } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport relative to element\n *\n * @param el - Element\n * @param options - Options\n *\n * @returns Viewport observable\n */\nexport function watchViewportAt(\n el: HTMLElement, { viewport$, header$ }: WatchOptions\n): Observable {\n const size$ = viewport$\n .pipe(\n distinctUntilKeyChanged(\"size\")\n )\n\n /* Compute element offset */\n const offset$ = combineLatest([size$, header$])\n .pipe(\n map(() => getElementOffset(el))\n )\n\n /* Compute relative viewport, return hot observable */\n return combineLatest([header$, viewport$, offset$])\n .pipe(\n map(([{ height }, { offset, size }, { x, y }]) => ({\n offset: {\n x: offset.x - x,\n y: offset.y - y + height\n },\n size\n }))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n fromEvent,\n map,\n share,\n switchMapTo,\n tap,\n throttle\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Worker message\n */\nexport interface WorkerMessage {\n type: unknown /* Message type */\n data?: unknown /* Message data */\n}\n\n/**\n * Worker handler\n *\n * @template T - Message type\n */\nexport interface WorkerHandler<\n T extends WorkerMessage\n> {\n tx$: Subject /* Message transmission subject */\n rx$: Observable /* Message receive observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n *\n * @template T - Worker message type\n */\ninterface WatchOptions {\n tx$: Observable /* Message transmission observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch a web worker\n *\n * This function returns an observable that sends all values emitted by the\n * message observable to the web worker. Web worker communication is expected\n * to be bidirectional (request-response) and synchronous. Messages that are\n * emitted during a pending request are throttled, the last one is emitted.\n *\n * @param worker - Web worker\n * @param options - Options\n *\n * @returns Worker message observable\n */\nexport function watchWorker(\n worker: Worker, { tx$ }: WatchOptions\n): Observable {\n\n /* Intercept messages from worker-like objects */\n const rx$ = fromEvent(worker, \"message\")\n .pipe(\n map(({ data }) => data as T)\n )\n\n /* Send and receive messages, return hot observable */\n return tx$\n .pipe(\n throttle(() => rx$, { leading: true, trailing: true }),\n tap(message => worker.postMessage(message)),\n switchMapTo(rx$),\n share()\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { getElement, getLocation } from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Feature flag\n */\nexport type Flag =\n | \"content.code.annotate\" /* Code annotations */\n | \"header.autohide\" /* Hide header */\n | \"navigation.expand\" /* Automatic expansion */\n | \"navigation.indexes\" /* Section pages */\n | \"navigation.instant\" /* Instant loading */\n | \"navigation.sections\" /* Section navigation */\n | \"navigation.tabs\" /* Tabs navigation */\n | \"navigation.tabs.sticky\" /* Tabs navigation (sticky) */\n | \"navigation.top\" /* Back-to-top button */\n | \"navigation.tracking\" /* Anchor tracking */\n | \"search.highlight\" /* Search highlighting */\n | \"search.share\" /* Search sharing */\n | \"search.suggest\" /* Search suggestions */\n | \"toc.integrate\" /* Integrated table of contents */\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Translation\n */\nexport type Translation =\n | \"clipboard.copy\" /* Copy to clipboard */\n | \"clipboard.copied\" /* Copied to clipboard */\n | \"search.config.lang\" /* Search language */\n | \"search.config.pipeline\" /* Search pipeline */\n | \"search.config.separator\" /* Search separator */\n | \"search.placeholder\" /* Search */\n | \"search.result.placeholder\" /* Type to start searching */\n | \"search.result.none\" /* No matching documents */\n | \"search.result.one\" /* 1 matching document */\n | \"search.result.other\" /* # matching documents */\n | \"search.result.more.one\" /* 1 more on this page */\n | \"search.result.more.other\" /* # more on this page */\n | \"search.result.term.missing\" /* Missing */\n | \"select.version.title\" /* Version selector */\n\n/**\n * Translations\n */\nexport type Translations = Record\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Versioning\n */\nexport interface Versioning {\n provider: \"mike\" /* Version provider */\n default?: string /* Default version */\n}\n\n/**\n * Configuration\n */\nexport interface Config {\n base: string /* Base URL */\n features: Flag[] /* Feature flags */\n translations: Translations /* Translations */\n search: string /* Search worker URL */\n version?: Versioning /* Versioning */\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve global configuration and make base URL absolute\n */\nconst script = getElement(\"#__config\")\nconst config: Config = JSON.parse(script.textContent!)\nconfig.base = `${new URL(config.base, getLocation())}`\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve global configuration\n *\n * @returns Global configuration\n */\nexport function configuration(): Config {\n return config\n}\n\n/**\n * Check whether a feature flag is enabled\n *\n * @param flag - Feature flag\n *\n * @returns Test result\n */\nexport function feature(flag: Flag): boolean {\n return config.features.includes(flag)\n}\n\n/**\n * Retrieve the translation for the given key\n *\n * @param key - Key to be translated\n * @param value - Positional value, if any\n *\n * @returns Translation\n */\nexport function translation(\n key: Translation, value?: string | number\n): string {\n return typeof value !== \"undefined\"\n ? config.translations[key].replace(\"#\", value.toString())\n : config.translations[key]\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { getElement, getElements } from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Component type\n */\nexport type ComponentType =\n | \"announce\" /* Announcement bar */\n | \"container\" /* Container */\n | \"content\" /* Content */\n | \"dialog\" /* Dialog */\n | \"header\" /* Header */\n | \"header-title\" /* Header title */\n | \"header-topic\" /* Header topic */\n | \"main\" /* Main area */\n | \"outdated\" /* Version warning */\n | \"palette\" /* Color palette */\n | \"search\" /* Search */\n | \"search-query\" /* Search input */\n | \"search-result\" /* Search results */\n | \"search-share\" /* Search sharing */\n | \"search-suggest\" /* Search suggestions */\n | \"sidebar\" /* Sidebar */\n | \"skip\" /* Skip link */\n | \"source\" /* Repository information */\n | \"tabs\" /* Navigation tabs */\n | \"toc\" /* Table of contents */\n | \"top\" /* Back-to-top button */\n\n/**\n * Component\n *\n * @template T - Component type\n * @template U - Reference type\n */\nexport type Component<\n T extends {} = {},\n U extends HTMLElement = HTMLElement\n> =\n T & {\n ref: U /* Component reference */\n }\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Component type map\n */\ninterface ComponentTypeMap {\n \"announce\": HTMLElement /* Announcement bar */\n \"container\": HTMLElement /* Container */\n \"content\": HTMLElement /* Content */\n \"dialog\": HTMLElement /* Dialog */\n \"header\": HTMLElement /* Header */\n \"header-title\": HTMLElement /* Header title */\n \"header-topic\": HTMLElement /* Header topic */\n \"main\": HTMLElement /* Main area */\n \"outdated\": HTMLElement /* Version warning */\n \"palette\": HTMLElement /* Color palette */\n \"search\": HTMLElement /* Search */\n \"search-query\": HTMLInputElement /* Search input */\n \"search-result\": HTMLElement /* Search results */\n \"search-share\": HTMLAnchorElement /* Search sharing */\n \"search-suggest\": HTMLElement /* Search suggestions */\n \"sidebar\": HTMLElement /* Sidebar */\n \"skip\": HTMLAnchorElement /* Skip link */\n \"source\": HTMLAnchorElement /* Repository information */\n \"tabs\": HTMLElement /* Navigation tabs */\n \"toc\": HTMLElement /* Table of contents */\n \"top\": HTMLAnchorElement /* Back-to-top button */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve the element for a given component or throw a reference error\n *\n * @template T - Component type\n *\n * @param type - Component type\n * @param node - Node of reference\n *\n * @returns Element\n */\nexport function getComponentElement(\n type: T, node: ParentNode = document\n): ComponentTypeMap[T] {\n return getElement(`[data-md-component=${type}]`, node)\n}\n\n/**\n * Retrieve all elements for a given component\n *\n * @template T - Component type\n *\n * @param type - Component type\n * @param node - Node of reference\n *\n * @returns Elements\n */\nexport function getComponentElements(\n type: T, node: ParentNode = document\n): ComponentTypeMap[T][] {\n return getElements(`[data-md-component=${type}]`, node)\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport ClipboardJS from \"clipboard\"\nimport {\n EMPTY,\n Observable,\n Subject,\n defer,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n finalize,\n map,\n mergeWith,\n switchMap,\n takeLast,\n takeUntil,\n tap\n} from \"rxjs\"\n\nimport { feature } from \"~/_\"\nimport {\n getElementContentSize,\n watchElementSize\n} from \"~/browser\"\nimport { renderClipboardButton } from \"~/templates\"\n\nimport { Component } from \"../../_\"\nimport {\n Annotation,\n mountAnnotationList\n} from \"../annotation\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Code block\n */\nexport interface CodeBlock {\n scrollable: boolean /* Code block overflows */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n print$: Observable /* Media print observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Global sequence number for Clipboard.js integration\n */\nlet sequence = 0\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Find candidate list element directly following a code block\n *\n * @param el - Code block element\n *\n * @returns List element or nothing\n */\nfunction findCandidateList(el: HTMLElement): HTMLElement | undefined {\n if (el.nextElementSibling) {\n const sibling = el.nextElementSibling as HTMLElement\n if (sibling.tagName === \"OL\")\n return sibling\n\n /* Skip empty paragraphs - see https://bit.ly/3r4ZJ2O */\n else if (sibling.tagName === \"P\" && !sibling.children.length)\n return findCandidateList(sibling)\n }\n\n /* Everything else */\n return undefined\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch code block\n *\n * This function monitors size changes of the viewport, as well as switches of\n * content tabs with embedded code blocks, as both may trigger overflow.\n *\n * @param el - Code block element\n *\n * @returns Code block observable\n */\nexport function watchCodeBlock(\n el: HTMLElement\n): Observable {\n return watchElementSize(el)\n .pipe(\n map(({ width }) => {\n const content = getElementContentSize(el)\n return {\n scrollable: content.width > width\n }\n }),\n distinctUntilKeyChanged(\"scrollable\")\n )\n}\n\n/**\n * Mount code block\n *\n * This function ensures that an overflowing code block is focusable through\n * keyboard, so it can be scrolled without a mouse to improve on accessibility.\n * Furthermore, if code annotations are enabled, they are mounted if and only\n * if the code block is currently visible, e.g., not in a hidden content tab.\n *\n * @param el - Code block element\n * @param options - Options\n *\n * @returns Code block and annotation component observable\n */\nexport function mountCodeBlock(\n el: HTMLElement, options: MountOptions\n): Observable> {\n const { matches: hover } = matchMedia(\"(hover)\")\n return defer(() => {\n const push$ = new Subject()\n push$.subscribe(({ scrollable }) => {\n if (scrollable && hover)\n el.setAttribute(\"tabindex\", \"0\")\n else\n el.removeAttribute(\"tabindex\")\n })\n\n /* Render button for Clipboard.js integration */\n if (ClipboardJS.isSupported()) {\n const parent = el.closest(\"pre\")!\n parent.id = `__code_${++sequence}`\n parent.insertBefore(\n renderClipboardButton(parent.id),\n el\n )\n }\n\n /* Handle code annotations */\n const container = el.closest([\n \":not(td):not(.code) > .highlight\",\n \".highlighttable\"\n ].join(\", \"))\n if (container instanceof HTMLElement) {\n const list = findCandidateList(container)\n\n /* Mount code annotations, if enabled */\n if (typeof list !== \"undefined\" && (\n container.classList.contains(\"annotate\") ||\n feature(\"content.code.annotate\")\n )) {\n const annotations$ = mountAnnotationList(list, el, options)\n\n /* Create and return component */\n return watchCodeBlock(el)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state })),\n mergeWith(watchElementSize(container)\n .pipe(\n takeUntil(push$.pipe(takeLast(1))),\n map(({ width, height }) => width && height),\n distinctUntilChanged(),\n switchMap(active => active ? annotations$ : EMPTY)\n )\n )\n )\n }\n }\n\n /* Create and return component */\n return watchCodeBlock(el)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render an empty annotation\n *\n * @param id - Annotation identifier\n *\n * @returns Element\n */\nexport function renderAnnotation(id: number): HTMLElement {\n return (\n \n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { translation } from \"~/_\"\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a 'copy-to-clipboard' button\n *\n * @param id - Unique identifier\n *\n * @returns Element\n */\nexport function renderClipboardButton(id: string): HTMLElement {\n return (\n code`}\n >\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { ComponentChild } from \"preact\"\n\nimport { feature, translation } from \"~/_\"\nimport {\n SearchDocument,\n SearchMetadata,\n SearchResultItem\n} from \"~/integrations/search\"\nimport { h, truncate } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Render flag\n */\nconst enum Flag {\n TEASER = 1, /* Render teaser */\n PARENT = 2 /* Render as parent */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper function\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a search document\n *\n * @param document - Search document\n * @param flag - Render flags\n *\n * @returns Element\n */\nfunction renderSearchDocument(\n document: SearchDocument & SearchMetadata, flag: Flag\n): HTMLElement {\n const parent = flag & Flag.PARENT\n const teaser = flag & Flag.TEASER\n\n /* Render missing query terms */\n const missing = Object.keys(document.terms)\n .filter(key => !document.terms[key])\n .reduce((list, key) => [\n ...list, {key}, \" \"\n ], [])\n .slice(0, -1)\n\n /* Assemble query string for highlighting */\n const url = new URL(document.location)\n if (feature(\"search.highlight\"))\n url.searchParams.set(\"h\", Object.entries(document.terms)\n .filter(([, match]) => match)\n .reduce((highlight, [value]) => `${highlight} ${value}`.trim(), \"\")\n )\n\n /* Render article or section, depending on flags */\n return (\n \n \n {parent > 0 &&
    }\n

    {document.title}

    \n {teaser > 0 && document.text.length > 0 &&\n

    \n {truncate(document.text, 320)}\n

    \n }\n {teaser > 0 && missing.length > 0 &&\n

    \n {translation(\"search.result.term.missing\")}: {...missing}\n

    \n }\n \n
    \n )\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a search result\n *\n * @param result - Search result\n *\n * @returns Element\n */\nexport function renderSearchResultItem(\n result: SearchResultItem\n): HTMLElement {\n const threshold = result[0].score\n const docs = [...result]\n\n /* Find and extract parent article */\n const parent = docs.findIndex(doc => !doc.location.includes(\"#\"))\n const [article] = docs.splice(parent, 1)\n\n /* Determine last index above threshold */\n let index = docs.findIndex(doc => doc.score < threshold)\n if (index === -1)\n index = docs.length\n\n /* Partition sections */\n const best = docs.slice(0, index)\n const more = docs.slice(index)\n\n /* Render children */\n const children = [\n renderSearchDocument(article, Flag.PARENT | +(!parent && index === 0)),\n ...best.map(section => renderSearchDocument(section, Flag.TEASER)),\n ...more.length ? [\n
    \n \n {more.length > 0 && more.length === 1\n ? translation(\"search.result.more.one\")\n : translation(\"search.result.more.other\", more.length)\n }\n \n {...more.map(section => renderSearchDocument(section, Flag.TEASER))}\n
    \n ] : []\n ]\n\n /* Render search result */\n return (\n
  • \n {children}\n
  • \n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SourceFacts } from \"~/components\"\nimport { h, round } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render repository facts\n *\n * @param facts - Repository facts\n *\n * @returns Element\n */\nexport function renderSourceFacts(facts: SourceFacts): HTMLElement {\n return (\n
      \n {Object.entries(facts).map(([key, value]) => (\n
    • \n {typeof value === \"number\" ? round(value) : value}\n
    • \n ))}\n
    \n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a table inside a wrapper to improve scrolling on mobile\n *\n * @param table - Table element\n *\n * @returns Element\n */\nexport function renderTable(table: HTMLElement): HTMLElement {\n return (\n
    \n
    \n {table}\n
    \n
    \n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { configuration, translation } from \"~/_\"\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Version\n */\nexport interface Version {\n version: string /* Version identifier */\n title: string /* Version title */\n aliases: string[] /* Version aliases */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a version\n *\n * @param version - Version\n *\n * @returns Element\n */\nfunction renderVersion(version: Version): HTMLElement {\n const config = configuration()\n\n /* Ensure trailing slash, see https://bit.ly/3rL5u3f */\n const url = new URL(`../${version.version}/`, config.base)\n return (\n
  • \n \n {version.title}\n \n
  • \n )\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a version selector\n *\n * @param versions - Versions\n * @param active - Active version\n *\n * @returns Element\n */\nexport function renderVersionSelector(\n versions: Version[], active: Version\n): HTMLElement {\n return (\n
    \n \n {active.title}\n \n
      \n {versions.map(renderVersion)}\n
    \n
    \n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Observable,\n Subject,\n animationFrameScheduler,\n combineLatest,\n defer,\n finalize,\n fromEvent,\n map,\n switchMap,\n take,\n tap,\n throttleTime\n} from \"rxjs\"\n\nimport {\n ElementOffset,\n getElement,\n getElementSize,\n watchElementContentOffset,\n watchElementFocus,\n watchElementOffset\n} from \"~/browser\"\n\nimport { Component } from \"../../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Annotation\n */\nexport interface Annotation {\n active: boolean /* Annotation is active */\n offset: ElementOffset /* Annotation offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch annotation\n *\n * @param el - Annotation element\n * @param container - Containing element\n *\n * @returns Annotation observable\n */\nexport function watchAnnotation(\n el: HTMLElement, container: HTMLElement\n): Observable {\n const offset$ = defer(() => combineLatest([\n watchElementOffset(el),\n watchElementContentOffset(container)\n ]))\n .pipe(\n map(([{ x, y }, scroll]) => {\n const { width } = getElementSize(el)\n return ({\n x: x - scroll.x + width / 2,\n y: y - scroll.y\n })\n })\n )\n\n /* Actively watch annotation on focus */\n return watchElementFocus(el)\n .pipe(\n switchMap(active => offset$\n .pipe(\n map(offset => ({ active, offset })),\n take(+!active || Infinity)\n )\n )\n )\n}\n\n/**\n * Mount annotation\n *\n * @param el - Annotation element\n * @param container - Containing element\n *\n * @returns Annotation component observable\n */\nexport function mountAnnotation(\n el: HTMLElement, container: HTMLElement\n): Observable> {\n return defer(() => {\n const push$ = new Subject()\n push$.subscribe({\n\n /* Handle emission */\n next({ offset }) {\n el.style.setProperty(\"--md-tooltip-x\", `${offset.x}px`)\n el.style.setProperty(\"--md-tooltip-y\", `${offset.y}px`)\n },\n\n /* Handle complete */\n complete() {\n el.style.removeProperty(\"--md-tooltip-x\")\n el.style.removeProperty(\"--md-tooltip-y\")\n }\n })\n\n /* Track relative origin of tooltip */\n push$\n .pipe(\n throttleTime(500, animationFrameScheduler),\n map(() => container.getBoundingClientRect()),\n map(({ x }) => x)\n )\n .subscribe({\n\n /* Handle emission */\n next(origin) {\n if (origin)\n el.style.setProperty(\"--md-tooltip-0\", `${-origin}px`)\n else\n el.style.removeProperty(\"--md-tooltip-0\")\n },\n\n /* Handle complete */\n complete() {\n el.style.removeProperty(\"--md-tooltip-0\")\n }\n })\n\n /* Close open annotation on click */\n const index = getElement(\":scope > :last-child\", el)\n const blur$ = fromEvent(index, \"mousedown\", { once: true })\n push$\n .pipe(\n switchMap(({ active }) => active ? blur$ : EMPTY),\n tap(ev => ev.preventDefault())\n )\n .subscribe(() => el.blur())\n\n /* Create and return component */\n return watchAnnotation(el, container)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Observable,\n Subject,\n defer,\n finalize,\n merge,\n share,\n takeLast,\n takeUntil\n} from \"rxjs\"\n\nimport {\n getElement,\n getElements,\n getOptionalElement\n} from \"~/browser\"\nimport { renderAnnotation } from \"~/templates\"\n\nimport { Component } from \"../../../_\"\nimport {\n Annotation,\n mountAnnotation\n} from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n print$: Observable /* Media print observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Find all annotation markers in the given code block\n *\n * @param container - Containing element\n *\n * @returns Annotation markers\n */\nfunction findAnnotationMarkers(container: HTMLElement): Text[] {\n const markers: Text[] = []\n for (const comment of getElements(\".c, .c1, .cm\", container)) {\n let match: RegExpExecArray | null\n let text = comment.firstChild as Text\n\n /* Split text at marker and add to list */\n while ((match = /\\((\\d+)\\)/.exec(text.textContent!))) {\n const marker = text.splitText(match.index)\n text = marker.splitText(match[0].length)\n markers.push(marker)\n }\n }\n return markers\n}\n\n/**\n * Swap the child nodes of two elements\n *\n * @param source - Source element\n * @param target - Target element\n */\nfunction swap(source: HTMLElement, target: HTMLElement): void {\n target.append(...Array.from(source.childNodes))\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount annotation list\n *\n * This function analyzes the containing code block and checks for markers\n * referring to elements in the given annotation list. If no markers are found,\n * the list is left untouched. Otherwise, list elements are rendered as\n * annotations inside the code block.\n *\n * @param el - Annotation list element\n * @param container - Containing element\n * @param options - Options\n *\n * @returns Annotation component observable\n */\nexport function mountAnnotationList(\n el: HTMLElement, container: HTMLElement, { print$ }: MountOptions\n): Observable> {\n\n /* Find and replace all markers with empty annotations */\n const annotations = new Map()\n for (const marker of findAnnotationMarkers(container)) {\n const [, id] = marker.textContent!.match(/\\((\\d+)\\)/)!\n if (getOptionalElement(`li:nth-child(${id})`, el)) {\n annotations.set(+id, renderAnnotation(+id))\n marker.replaceWith(annotations.get(+id)!)\n }\n }\n\n /* Keep list if there are no annotations to render */\n if (annotations.size === 0)\n return EMPTY\n\n /* Create and return component */\n return defer(() => {\n const done$ = new Subject()\n\n /* Handle print mode - see https://bit.ly/3rgPdpt */\n print$\n .pipe(\n takeUntil(done$.pipe(takeLast(1)))\n )\n .subscribe(active => {\n el.hidden = !active\n\n /* Show annotations in code block or list (print) */\n for (const [id, annotation] of annotations) {\n const inner = getElement(\".md-typeset\", annotation)\n const child = getElement(`li:nth-child(${id})`, el)\n if (!active)\n swap(child, inner)\n else\n swap(inner, child)\n }\n })\n\n /* Create and return component */\n return merge(...[...annotations]\n .map(([, annotation]) => (\n mountAnnotation(annotation, container)\n ))\n )\n .pipe(\n finalize(() => done$.complete()),\n share()\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n defer,\n filter,\n finalize,\n map,\n mapTo,\n merge,\n tap\n} from \"rxjs\"\n\nimport { Component } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Details\n */\nexport interface Details {\n action: \"open\" | \"close\" /* Details state */\n reveal?: boolean /* Details is revealed */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n target$: Observable /* Location target observable */\n print$: Observable /* Media print observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n target$: Observable /* Location target observable */\n print$: Observable /* Media print observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch details\n *\n * @param el - Details element\n * @param options - Options\n *\n * @returns Details observable\n */\nexport function watchDetails(\n el: HTMLDetailsElement, { target$, print$ }: WatchOptions\n): Observable
    {\n let open = true\n return merge(\n\n /* Open and focus details on location target */\n target$\n .pipe(\n map(target => target.closest(\"details:not([open])\")!),\n filter(details => el === details),\n mapTo
    ({ action: \"open\", reveal: true })\n ),\n\n /* Open details on print and close afterwards */\n print$\n .pipe(\n filter(active => active || !open),\n tap(() => open = el.open),\n map(active => ({\n action: active ? \"open\" : \"close\"\n }) as Details)\n )\n )\n}\n\n/**\n * Mount details\n *\n * This function ensures that `details` tags are opened on anchor jumps and\n * prior to printing, so the whole content of the page is visible.\n *\n * @param el - Details element\n * @param options - Options\n *\n * @returns Details component observable\n */\nexport function mountDetails(\n el: HTMLDetailsElement, options: MountOptions\n): Observable> {\n return defer(() => {\n const push$ = new Subject
    ()\n push$.subscribe(({ action, reveal }) => {\n if (action === \"open\")\n el.setAttribute(\"open\", \"\")\n else\n el.removeAttribute(\"open\")\n if (reveal)\n el.scrollIntoView()\n })\n\n /* Create and return component */\n return watchDetails(el, options)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, of } from \"rxjs\"\n\nimport { renderTable } from \"~/templates\"\nimport { h } from \"~/utilities\"\n\nimport { Component } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Data table\n */\nexport interface DataTable {}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Sentinel for replacement\n */\nconst sentinel = h(\"table\")\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount data table\n *\n * This function wraps a data table in another scrollable container, so it can\n * be smoothly scrolled on smaller screen sizes and won't break the layout.\n *\n * @param el - Data table element\n *\n * @returns Data table component observable\n */\nexport function mountDataTable(\n el: HTMLElement\n): Observable> {\n el.replaceWith(sentinel)\n sentinel.replaceWith(renderTable(el))\n\n /* Create and return component */\n return of({ ref: el })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n animationFrameScheduler,\n auditTime,\n combineLatest,\n defer,\n finalize,\n fromEvent,\n map,\n mapTo,\n merge,\n startWith,\n takeLast,\n takeUntil,\n tap\n} from \"rxjs\"\n\nimport {\n getElement,\n getElementOffset,\n getElementSize,\n getElements,\n watchElementSize\n} from \"~/browser\"\n\nimport { Component } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Content tabs\n */\nexport interface ContentTabs {\n active: HTMLLabelElement /* Active tab label */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch content tabs\n *\n * @param el - Content tabs element\n *\n * @returns Content tabs observable\n */\nexport function watchContentTabs(\n el: HTMLElement\n): Observable {\n const inputs = getElements(\":scope > input\", el)\n return merge(...inputs.map(input => fromEvent(input, \"change\")\n .pipe(\n mapTo({\n active: getElement(`label[for=${input.id}]`)\n })\n )\n ))\n .pipe(\n startWith({\n active: getElement(`label[for=${inputs[0].id}]`)\n } as ContentTabs)\n )\n}\n\n/**\n * Mount content tabs\n *\n * This function scrolls the active tab into view. While this functionality is\n * provided by browsers as part of `scrollInfoView`, browsers will always also\n * scroll the vertical axis, which we do not want. Thus, we decided to provide\n * this functionality ourselves.\n *\n * @param el - Content tabs element\n *\n * @returns Content tabs component observable\n */\nexport function mountContentTabs(\n el: HTMLElement\n): Observable> {\n const container = getElement(\".tabbed-labels\", el)\n return defer(() => {\n const push$ = new Subject()\n combineLatest([push$, watchElementSize(el)])\n .pipe(\n auditTime(1, animationFrameScheduler),\n takeUntil(push$.pipe(takeLast(1)))\n )\n .subscribe({\n\n /* Handle emission */\n next([{ active }]) {\n const offset = getElementOffset(active)\n const { width } = getElementSize(active)\n\n /* Set tab indicator offset and width */\n el.style.setProperty(\"--md-indicator-x\", `${offset.x}px`)\n el.style.setProperty(\"--md-indicator-width\", `${width}px`)\n\n /* Smoothly scroll container */\n container.scrollTo({\n behavior: \"smooth\",\n left: offset.x\n })\n },\n\n /* Handle complete */\n complete() {\n el.style.removeProperty(\"--md-indicator-x\")\n el.style.removeProperty(\"--md-indicator-width\")\n }\n })\n\n /* Create and return component */\n return watchContentTabs(el)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, merge } from \"rxjs\"\n\nimport { getElements } from \"~/browser\"\n\nimport { Component } from \"../../_\"\nimport { Annotation } from \"../annotation\"\nimport { CodeBlock, mountCodeBlock } from \"../code\"\nimport { Details, mountDetails } from \"../details\"\nimport { DataTable, mountDataTable } from \"../table\"\nimport { ContentTabs, mountContentTabs } from \"../tabs\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Content\n */\nexport type Content =\n | Annotation\n | ContentTabs\n | CodeBlock\n | DataTable\n | Details\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n target$: Observable /* Location target observable */\n print$: Observable /* Media print observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount content\n *\n * This function mounts all components that are found in the content of the\n * actual article, including code blocks, data tables and details.\n *\n * @param el - Content element\n * @param options - Options\n *\n * @returns Content component observable\n */\nexport function mountContent(\n el: HTMLElement, { target$, print$ }: MountOptions\n): Observable> {\n return merge(\n\n /* Code blocks */\n ...getElements(\"pre > code\", el)\n .map(child => mountCodeBlock(child, { print$ })),\n\n /* Data tables */\n ...getElements(\"table:not([class])\", el)\n .map(child => mountDataTable(child)),\n\n /* Details */\n ...getElements(\"details\", el)\n .map(child => mountDetails(child, { target$, print$ })),\n\n /* Content tabs */\n ...getElements(\"[data-tabs]\", el)\n .map(child => mountContentTabs(child))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n defer,\n delay,\n finalize,\n map,\n merge,\n of,\n switchMap,\n tap\n} from \"rxjs\"\n\nimport { getElement } from \"~/browser\"\n\nimport { Component } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Dialog\n */\nexport interface Dialog {\n message: string /* Dialog message */\n active: boolean /* Dialog is active */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n alert$: Subject /* Alert subject */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n alert$: Subject /* Alert subject */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch dialog\n *\n * @param _el - Dialog element\n * @param options - Options\n *\n * @returns Dialog observable\n */\nexport function watchDialog(\n _el: HTMLElement, { alert$ }: WatchOptions\n): Observable {\n return alert$\n .pipe(\n switchMap(message => merge(\n of(true),\n of(false).pipe(delay(2000))\n )\n .pipe(\n map(active => ({ message, active }))\n )\n )\n )\n}\n\n/**\n * Mount dialog\n *\n * This function reveals the dialog in the right corner when a new alert is\n * emitted through the subject that is passed as part of the options.\n *\n * @param el - Dialog element\n * @param options - Options\n *\n * @returns Dialog component observable\n */\nexport function mountDialog(\n el: HTMLElement, options: MountOptions\n): Observable> {\n const inner = getElement(\".md-typeset\", el)\n return defer(() => {\n const push$ = new Subject()\n push$.subscribe(({ message, active }) => {\n inner.textContent = message\n if (active)\n el.setAttribute(\"data-md-state\", \"open\")\n else\n el.removeAttribute(\"data-md-state\")\n })\n\n /* Create and return component */\n return watchDialog(el, options)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n bufferCount,\n combineLatest,\n combineLatestWith,\n defer,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n filter,\n map,\n of,\n shareReplay,\n startWith,\n switchMap,\n takeLast,\n takeUntil\n} from \"rxjs\"\n\nimport { feature } from \"~/_\"\nimport {\n Viewport,\n watchElementSize,\n watchToggle\n} from \"~/browser\"\n\nimport { Component } from \"../../_\"\nimport { Main } from \"../../main\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Header\n */\nexport interface Header {\n height: number /* Header visible height */\n sticky: boolean /* Header stickyness */\n hidden: boolean /* Header is hidden */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n main$: Observable
    /* Main area observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Compute whether the header is hidden\n *\n * If the user scrolls past a certain threshold, the header can be hidden when\n * scrolling down, and shown when scrolling up.\n *\n * @param options - Options\n *\n * @returns Toggle observable\n */\nfunction isHidden({ viewport$ }: WatchOptions): Observable {\n if (!feature(\"header.autohide\"))\n return of(false)\n\n /* Compute direction and turning point */\n const direction$ = viewport$\n .pipe(\n map(({ offset: { y } }) => y),\n bufferCount(2, 1),\n map(([a, b]) => [a < b, b] as const),\n distinctUntilKeyChanged(0)\n )\n\n /* Compute whether header should be hidden */\n const hidden$ = combineLatest([viewport$, direction$])\n .pipe(\n filter(([{ offset }, [, y]]) => Math.abs(y - offset.y) > 100),\n map(([, [direction]]) => direction),\n distinctUntilChanged()\n )\n\n /* Compute threshold for hiding */\n const search$ = watchToggle(\"search\")\n return combineLatest([viewport$, search$])\n .pipe(\n map(([{ offset }, search]) => offset.y > 400 && !search),\n distinctUntilChanged(),\n switchMap(active => active ? hidden$ : of(false)),\n startWith(false)\n )\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch header\n *\n * @param el - Header element\n * @param options - Options\n *\n * @returns Header observable\n */\nexport function watchHeader(\n el: HTMLElement, options: WatchOptions\n): Observable
    {\n return defer(() => {\n const styles = getComputedStyle(el)\n return of(\n styles.position === \"sticky\" ||\n styles.position === \"-webkit-sticky\"\n )\n })\n .pipe(\n combineLatestWith(watchElementSize(el), isHidden(options)),\n map(([sticky, { height }, hidden]) => ({\n height: sticky ? height : 0,\n sticky,\n hidden\n })),\n distinctUntilChanged((a, b) => (\n a.sticky === b.sticky &&\n a.height === b.height &&\n a.hidden === b.hidden\n )),\n shareReplay(1)\n )\n}\n\n/**\n * Mount header\n *\n * This function manages the different states of the header, i.e. whether it's\n * hidden or rendered with a shadow. This depends heavily on the main area.\n *\n * @param el - Header element\n * @param options - Options\n *\n * @returns Header component observable\n */\nexport function mountHeader(\n el: HTMLElement, { header$, main$ }: MountOptions\n): Observable> {\n return defer(() => {\n const push$ = new Subject
    ()\n push$\n .pipe(\n distinctUntilKeyChanged(\"active\"),\n combineLatestWith(header$)\n )\n .subscribe(([{ active }, { hidden }]) => {\n if (active)\n el.setAttribute(\"data-md-state\", hidden ? \"hidden\" : \"shadow\")\n else\n el.removeAttribute(\"data-md-state\")\n })\n\n /* Link to main area */\n main$.subscribe(push$)\n\n /* Create and return component */\n return header$\n .pipe(\n takeUntil(push$.pipe(takeLast(1))),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Observable,\n Subject,\n defer,\n distinctUntilKeyChanged,\n finalize,\n map,\n tap\n} from \"rxjs\"\n\nimport {\n Viewport,\n getElementSize,\n getOptionalElement,\n watchViewportAt\n} from \"~/browser\"\n\nimport { Component } from \"../../_\"\nimport { Header } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Header\n */\nexport interface HeaderTitle {\n active: boolean /* Header title is active */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch header title\n *\n * @param el - Heading element\n * @param options - Options\n *\n * @returns Header title observable\n */\nexport function watchHeaderTitle(\n el: HTMLElement, { viewport$, header$ }: WatchOptions\n): Observable {\n return watchViewportAt(el, { viewport$, header$ })\n .pipe(\n map(({ offset: { y } }) => {\n const { height } = getElementSize(el)\n return {\n active: y >= height\n }\n }),\n distinctUntilKeyChanged(\"active\")\n )\n}\n\n/**\n * Mount header title\n *\n * This function swaps the header title from the site title to the title of the\n * current page when the user scrolls past the first headline.\n *\n * @param el - Header title element\n * @param options - Options\n *\n * @returns Header title component observable\n */\nexport function mountHeaderTitle(\n el: HTMLElement, options: MountOptions\n): Observable> {\n return defer(() => {\n const push$ = new Subject()\n push$.subscribe(({ active }) => {\n if (active)\n el.setAttribute(\"data-md-state\", \"active\")\n else\n el.removeAttribute(\"data-md-state\")\n })\n\n /* Obtain headline, if any */\n const heading = getOptionalElement(\"article h1\")\n if (typeof heading === \"undefined\")\n return EMPTY\n\n /* Create and return component */\n return watchHeaderTitle(heading, options)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n combineLatest,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n map,\n switchMap\n} from \"rxjs\"\n\nimport {\n Viewport,\n watchElementSize\n} from \"~/browser\"\n\nimport { Header } from \"../header\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Main area\n */\nexport interface Main {\n offset: number /* Main area top offset */\n height: number /* Main area visible height */\n active: boolean /* Main area is active */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch main area\n *\n * This function returns an observable that computes the visual parameters of\n * the main area which depends on the viewport vertical offset and height, as\n * well as the height of the header element, if the header is fixed.\n *\n * @param el - Main area element\n * @param options - Options\n *\n * @returns Main area observable\n */\nexport function watchMain(\n el: HTMLElement, { viewport$, header$ }: WatchOptions\n): Observable
    {\n\n /* Compute necessary adjustment for header */\n const adjust$ = header$\n .pipe(\n map(({ height }) => height),\n distinctUntilChanged()\n )\n\n /* Compute the main area's top and bottom borders */\n const border$ = adjust$\n .pipe(\n switchMap(() => watchElementSize(el)\n .pipe(\n map(({ height }) => ({\n top: el.offsetTop,\n bottom: el.offsetTop + height\n })),\n distinctUntilKeyChanged(\"bottom\")\n )\n )\n )\n\n /* Compute the main area's offset, visible height and if we scrolled past */\n return combineLatest([adjust$, border$, viewport$])\n .pipe(\n map(([header, { top, bottom }, { offset: { y }, size: { height } }]) => {\n height = Math.max(0, height\n - Math.max(0, top - y, header)\n - Math.max(0, height + y - bottom)\n )\n return {\n offset: top - header,\n height,\n active: top - header <= y\n }\n }),\n distinctUntilChanged((a, b) => (\n a.offset === b.offset &&\n a.height === b.height &&\n a.active === b.active\n ))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n defer,\n finalize,\n fromEvent,\n map,\n mapTo,\n mergeMap,\n of,\n shareReplay,\n startWith,\n tap\n} from \"rxjs\"\n\nimport { getElements } from \"~/browser\"\n\nimport { Component } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Palette colors\n */\nexport interface PaletteColor {\n scheme?: string /* Color scheme */\n primary?: string /* Primary color */\n accent?: string /* Accent color */\n}\n\n/**\n * Palette\n */\nexport interface Palette {\n index: number /* Palette index */\n color: PaletteColor /* Palette colors */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch color palette\n *\n * @param inputs - Color palette element\n *\n * @returns Color palette observable\n */\nexport function watchPalette(\n inputs: HTMLInputElement[]\n): Observable {\n const current = __md_get(\"__palette\") || {\n index: inputs.findIndex(input => matchMedia(\n input.getAttribute(\"data-md-color-media\")!\n ).matches)\n }\n\n /* Emit changes in color palette */\n return of(...inputs)\n .pipe(\n mergeMap(input => fromEvent(input, \"change\")\n .pipe(\n mapTo(input)\n )\n ),\n startWith(inputs[Math.max(0, current.index)]),\n map(input => ({\n index: inputs.indexOf(input),\n color: {\n scheme: input.getAttribute(\"data-md-color-scheme\"),\n primary: input.getAttribute(\"data-md-color-primary\"),\n accent: input.getAttribute(\"data-md-color-accent\")\n }\n } as Palette)),\n shareReplay(1)\n )\n}\n\n/**\n * Mount color palette\n *\n * @param el - Color palette element\n *\n * @returns Color palette component observable\n */\nexport function mountPalette(\n el: HTMLElement\n): Observable> {\n return defer(() => {\n const push$ = new Subject()\n push$.subscribe(palette => {\n\n /* Set color palette */\n for (const [key, value] of Object.entries(palette.color))\n document.body.setAttribute(`data-md-color-${key}`, value)\n\n /* Toggle visibility */\n for (let index = 0; index < inputs.length; index++) {\n const label = inputs[index].nextElementSibling\n if (label instanceof HTMLElement)\n label.hidden = palette.index !== index\n }\n\n /* Persist preference in local storage */\n __md_set(\"__palette\", palette)\n })\n\n /* Create and return component */\n const inputs = getElements(\"input\", el)\n return watchPalette(inputs)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport ClipboardJS from \"clipboard\"\nimport {\n Observable,\n Subject,\n mapTo,\n tap\n} from \"rxjs\"\n\nimport { translation } from \"~/_\"\nimport { getElement } from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Setup options\n */\ninterface SetupOptions {\n alert$: Subject /* Alert subject */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Extract text to copy\n *\n * @param el - HTML element\n *\n * @returns Extracted text\n */\nfunction extract(el: HTMLElement): string {\n el.setAttribute(\"data-md-copying\", \"\")\n const text = el.innerText\n el.removeAttribute(\"data-md-copying\")\n return text\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up Clipboard.js integration\n *\n * @param options - Options\n */\nexport function setupClipboardJS(\n { alert$ }: SetupOptions\n): void {\n if (ClipboardJS.isSupported()) {\n new Observable(subscriber => {\n new ClipboardJS(\"[data-clipboard-target], [data-clipboard-text]\", {\n text: el => (\n el.getAttribute(\"data-clipboard-text\")! ||\n extract(getElement(\n el.getAttribute(\"data-clipboard-target\")!\n ))\n )\n })\n .on(\"success\", ev => subscriber.next(ev))\n })\n .pipe(\n tap(ev => {\n const trigger = ev.trigger as HTMLElement\n trigger.focus()\n }),\n mapTo(translation(\"clipboard.copied\"))\n )\n .subscribe(alert$)\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n NEVER,\n Observable,\n Subject,\n bufferCount,\n catchError,\n concatMap,\n debounceTime,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n filter,\n fromEvent,\n map,\n merge,\n of,\n sample,\n share,\n skip,\n skipUntil,\n switchMap\n} from \"rxjs\"\n\nimport { configuration, feature } from \"~/_\"\nimport {\n Viewport,\n ViewportOffset,\n getElements,\n getOptionalElement,\n request,\n requestXML,\n setLocation,\n setLocationHash\n} from \"~/browser\"\nimport { getComponentElement } from \"~/components\"\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * History state\n */\nexport interface HistoryState {\n url: URL /* State URL */\n offset?: ViewportOffset /* State viewport offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Setup options\n */\ninterface SetupOptions {\n document$: Subject /* Document subject */\n location$: Subject /* Location subject */\n viewport$: Observable /* Viewport observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Preprocess a list of URLs\n *\n * This function replaces the `site_url` in the sitemap with the actual base\n * URL, to allow instant loading to work in occasions like Netlify previews.\n *\n * @param urls - URLs\n *\n * @returns Processed URLs\n */\nfunction preprocess(urls: string[]): string[] {\n if (urls.length < 2)\n return urls\n\n /* Take the first two URLs and remove everything after the last slash */\n const [root, next] = urls\n .sort((a, b) => a.length - b.length)\n .map(url => url.replace(/[^/]+$/, \"\"))\n\n /* Compute common prefix */\n let index = 0\n if (root === next)\n index = root.length\n else\n while (root.charCodeAt(index) === next.charCodeAt(index))\n index++\n\n /* Replace common prefix (i.e. base) with effective base */\n const config = configuration()\n return urls.map(url => (\n url.replace(root.slice(0, index), config.base)\n ))\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up instant loading\n *\n * When fetching, theoretically, we could use `responseType: \"document\"`, but\n * since all MkDocs links are relative, we need to make sure that the current\n * location matches the document we just loaded. Otherwise any relative links\n * in the document could use the old location.\n *\n * This is the reason why we need to synchronize history events and the process\n * of fetching the document for navigation changes (except `popstate` events):\n *\n * 1. Fetch document via `XMLHTTPRequest`\n * 2. Set new location via `history.pushState`\n * 3. Parse and emit fetched document\n *\n * For `popstate` events, we must not use `history.pushState`, or the forward\n * history will be irreversibly overwritten. In case the request fails, the\n * location change is dispatched regularly.\n *\n * @param options - Options\n */\nexport function setupInstantLoading(\n { document$, location$, viewport$ }: SetupOptions\n): void {\n const config = configuration()\n if (location.protocol === \"file:\")\n return\n\n /* Disable automatic scroll restoration */\n if (\"scrollRestoration\" in history) {\n history.scrollRestoration = \"manual\"\n\n /* Hack: ensure that reloads restore viewport offset */\n fromEvent(window, \"beforeunload\")\n .subscribe(() => {\n history.scrollRestoration = \"auto\"\n })\n }\n\n /* Hack: ensure absolute favicon link to omit 404s when switching */\n const favicon = getOptionalElement(\"link[rel=icon]\")\n if (typeof favicon !== \"undefined\")\n favicon.href = favicon.href\n\n /* Intercept internal navigation */\n const push$ = requestXML(new URL(\"sitemap.xml\", config.base))\n .pipe(\n map(sitemap => preprocess(getElements(\"loc\", sitemap)\n .map(node => node.textContent!)\n )),\n switchMap(urls => fromEvent(document.body, \"click\")\n .pipe(\n filter(ev => !ev.metaKey && !ev.ctrlKey),\n switchMap(ev => {\n\n /* Handle HTML and SVG elements */\n if (ev.target instanceof Element) {\n const el = ev.target.closest(\"a\")\n if (el && !el.target) {\n const url = new URL(el.href)\n\n /* Canonicalize URL */\n url.search = \"\"\n url.hash = \"\"\n\n /* Check if URL should be intercepted */\n if (\n url.pathname !== location.pathname &&\n urls.includes(url.toString())\n ) {\n ev.preventDefault()\n return of({\n url: new URL(el.href)\n })\n }\n }\n }\n return NEVER\n })\n )\n ),\n share()\n )\n\n /* Intercept history back and forward */\n const pop$ = fromEvent(window, \"popstate\")\n .pipe(\n filter(ev => ev.state !== null),\n map(ev => ({\n url: new URL(location.href),\n offset: ev.state\n })),\n share()\n )\n\n /* Emit location change */\n merge(push$, pop$)\n .pipe(\n distinctUntilChanged((a, b) => a.url.href === b.url.href),\n map(({ url }) => url)\n )\n .subscribe(location$)\n\n /* Fetch document via `XMLHTTPRequest` */\n const response$ = location$\n .pipe(\n distinctUntilKeyChanged(\"pathname\"),\n switchMap(url => request(url.href)\n .pipe(\n catchError(() => {\n setLocation(url)\n return NEVER\n })\n )\n ),\n share()\n )\n\n /* Set new location via `history.pushState` */\n push$\n .pipe(\n sample(response$)\n )\n .subscribe(({ url }) => {\n history.pushState({}, \"\", `${url}`)\n })\n\n /* Parse and emit fetched document */\n const dom = new DOMParser()\n response$\n .pipe(\n switchMap(res => res.text()),\n map(res => dom.parseFromString(res, \"text/html\"))\n )\n .subscribe(document$)\n\n /* Replace meta tags and components */\n document$\n .pipe(\n skip(1)\n )\n .subscribe(replacement => {\n for (const selector of [\n\n /* Meta tags */\n \"title\",\n \"link[rel=canonical]\",\n \"meta[name=author]\",\n \"meta[name=description]\",\n\n /* Components */\n \"[data-md-component=announce]\",\n \"[data-md-component=container]\",\n \"[data-md-component=header-topic]\",\n \"[data-md-component=logo]\",\n \"[data-md-component=skip]\",\n ...feature(\"navigation.tabs.sticky\")\n ? [\"[data-md-component=tabs]\"]\n : []\n ]) {\n const source = getOptionalElement(selector)\n const target = getOptionalElement(selector, replacement)\n if (\n typeof source !== \"undefined\" &&\n typeof target !== \"undefined\"\n ) {\n source.replaceWith(target)\n }\n }\n })\n\n /* Re-evaluate scripts */\n document$\n .pipe(\n skip(1),\n map(() => getComponentElement(\"container\")),\n switchMap(el => of(...getElements(\"script\", el))),\n concatMap(el => {\n const script = h(\"script\")\n if (el.src) {\n for (const name of el.getAttributeNames())\n script.setAttribute(name, el.getAttribute(name)!)\n el.replaceWith(script)\n\n /* Complete when script is loaded */\n return new Observable(observer => {\n script.onload = () => observer.complete()\n })\n\n /* Complete immediately */\n } else {\n script.textContent = el.textContent\n el.replaceWith(script)\n return EMPTY\n }\n })\n )\n .subscribe()\n\n /* Emit history state change */\n merge(push$, pop$)\n .pipe(\n sample(document$)\n )\n .subscribe(({ url, offset }) => {\n if (url.hash && !offset) {\n setLocationHash(url.hash)\n } else {\n window.scrollTo(0, offset?.y || 0)\n }\n })\n\n /* Debounce update of viewport offset */\n viewport$\n .pipe(\n skipUntil(push$),\n debounceTime(250),\n distinctUntilKeyChanged(\"offset\")\n )\n .subscribe(({ offset }) => {\n history.replaceState(offset, \"\")\n })\n\n /* Set viewport offset from history */\n merge(push$, pop$)\n .pipe(\n bufferCount(2, 1),\n filter(([a, b]) => a.url.pathname === b.url.pathname),\n map(([, state]) => state)\n )\n .subscribe(({ offset }) => {\n window.scrollTo(0, offset?.y || 0)\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport escapeHTML from \"escape-html\"\n\nimport { SearchIndexDocument } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search document\n */\nexport interface SearchDocument extends SearchIndexDocument {\n parent?: SearchIndexDocument /* Parent article */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search document mapping\n */\nexport type SearchDocumentMap = Map\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search document mapping\n *\n * @param docs - Search index documents\n *\n * @returns Search document map\n */\nexport function setupSearchDocumentMap(\n docs: SearchIndexDocument[]\n): SearchDocumentMap {\n const documents = new Map()\n const parents = new Set()\n for (const doc of docs) {\n const [path, hash] = doc.location.split(\"#\")\n\n /* Extract location and title */\n const location = doc.location\n const title = doc.title\n\n /* Escape and cleanup text */\n const text = escapeHTML(doc.text)\n .replace(/\\s+(?=[,.:;!?])/g, \"\")\n .replace(/\\s+/g, \" \")\n\n /* Handle section */\n if (hash) {\n const parent = documents.get(path)!\n\n /* Ignore first section, override article */\n if (!parents.has(parent)) {\n parent.title = doc.title\n parent.text = text\n\n /* Remember that we processed the article */\n parents.add(parent)\n\n /* Add subsequent section */\n } else {\n documents.set(location, {\n location,\n title,\n text,\n parent\n })\n }\n\n /* Add article */\n } else {\n documents.set(location, {\n location,\n title,\n text\n })\n }\n }\n return documents\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport escapeHTML from \"escape-html\"\n\nimport { SearchIndexConfig } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search highlight function\n *\n * @param value - Value\n *\n * @returns Highlighted value\n */\nexport type SearchHighlightFn = (value: string) => string\n\n/**\n * Search highlight factory function\n *\n * @param query - Query value\n *\n * @returns Search highlight function\n */\nexport type SearchHighlightFactoryFn = (query: string) => SearchHighlightFn\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search highlighter\n *\n * @param config - Search index configuration\n * @param escape - Whether to escape HTML\n *\n * @returns Search highlight factory function\n */\nexport function setupSearchHighlighter(\n config: SearchIndexConfig, escape: boolean\n): SearchHighlightFactoryFn {\n const separator = new RegExp(config.separator, \"img\")\n const highlight = (_: unknown, data: string, term: string) => {\n return `${data}${term}`\n }\n\n /* Return factory function */\n return (query: string) => {\n query = query\n .replace(/[\\s*+\\-:~^]+/g, \" \")\n .trim()\n\n /* Create search term match expression */\n const match = new RegExp(`(^|${config.separator})(${\n query\n .replace(/[|\\\\{}()[\\]^$+*?.-]/g, \"\\\\$&\")\n .replace(separator, \"|\")\n })`, \"img\")\n\n /* Highlight string value */\n return value => (\n escape\n ? escapeHTML(value)\n : value\n )\n .replace(match, highlight)\n .replace(/<\\/mark>(\\s+)]*>/img, \"$1\")\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search transformation function\n *\n * @param value - Query value\n *\n * @returns Transformed query value\n */\nexport type SearchTransformFn = (value: string) => string\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Default transformation function\n *\n * 1. Search for terms in quotation marks and prepend a `+` modifier to denote\n * that the resulting document must contain all terms, converting the query\n * to an `AND` query (as opposed to the default `OR` behavior). While users\n * may expect terms enclosed in quotation marks to map to span queries, i.e.\n * for which order is important, Lunr.js doesn't support them, so the best\n * we can do is to convert the terms to an `AND` query.\n *\n * 2. Replace control characters which are not located at the beginning of the\n * query or preceded by white space, or are not followed by a non-whitespace\n * character or are at the end of the query string. Furthermore, filter\n * unmatched quotation marks.\n *\n * 3. Trim excess whitespace from left and right.\n *\n * @param query - Query value\n *\n * @returns Transformed query value\n */\nexport function defaultTransform(query: string): string {\n return query\n .split(/\"([^\"]+)\"/g) /* => 1 */\n .map((terms, index) => index & 1\n ? terms.replace(/^\\b|^(?![^\\x00-\\x7F]|$)|\\s+/g, \" +\")\n : terms\n )\n .join(\"\")\n .replace(/\"|(?:^|\\s+)[*+\\-:^~]+(?=\\s+|$)/g, \"\") /* => 2 */\n .trim() /* => 3 */\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SearchIndex, SearchResult } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search message type\n */\nexport const enum SearchMessageType {\n SETUP, /* Search index setup */\n READY, /* Search index ready */\n QUERY, /* Search query */\n RESULT /* Search results */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Message containing the data necessary to setup the search index\n */\nexport interface SearchSetupMessage {\n type: SearchMessageType.SETUP /* Message type */\n data: SearchIndex /* Message data */\n}\n\n/**\n * Message indicating the search index is ready\n */\nexport interface SearchReadyMessage {\n type: SearchMessageType.READY /* Message type */\n}\n\n/**\n * Message containing a search query\n */\nexport interface SearchQueryMessage {\n type: SearchMessageType.QUERY /* Message type */\n data: string /* Message data */\n}\n\n/**\n * Message containing results for a search query\n */\nexport interface SearchResultMessage {\n type: SearchMessageType.RESULT /* Message type */\n data: SearchResult /* Message data */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Message exchanged with the search worker\n */\nexport type SearchMessage =\n | SearchSetupMessage\n | SearchReadyMessage\n | SearchQueryMessage\n | SearchResultMessage\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Type guard for search setup messages\n *\n * @param message - Search worker message\n *\n * @returns Test result\n */\nexport function isSearchSetupMessage(\n message: SearchMessage\n): message is SearchSetupMessage {\n return message.type === SearchMessageType.SETUP\n}\n\n/**\n * Type guard for search ready messages\n *\n * @param message - Search worker message\n *\n * @returns Test result\n */\nexport function isSearchReadyMessage(\n message: SearchMessage\n): message is SearchReadyMessage {\n return message.type === SearchMessageType.READY\n}\n\n/**\n * Type guard for search query messages\n *\n * @param message - Search worker message\n *\n * @returns Test result\n */\nexport function isSearchQueryMessage(\n message: SearchMessage\n): message is SearchQueryMessage {\n return message.type === SearchMessageType.QUERY\n}\n\n/**\n * Type guard for search result messages\n *\n * @param message - Search worker message\n *\n * @returns Test result\n */\nexport function isSearchResultMessage(\n message: SearchMessage\n): message is SearchResultMessage {\n return message.type === SearchMessageType.RESULT\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n ObservableInput,\n Subject,\n from,\n map,\n share\n} from \"rxjs\"\n\nimport { configuration, feature, translation } from \"~/_\"\nimport { WorkerHandler, watchWorker } from \"~/browser\"\n\nimport { SearchIndex } from \"../../_\"\nimport {\n SearchOptions,\n SearchPipeline\n} from \"../../options\"\nimport {\n SearchMessage,\n SearchMessageType,\n SearchSetupMessage,\n isSearchResultMessage\n} from \"../message\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search worker\n */\nexport type SearchWorker = WorkerHandler\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up search index\n *\n * @param data - Search index\n *\n * @returns Search index\n */\nfunction setupSearchIndex({ config, docs }: SearchIndex): SearchIndex {\n\n /* Override default language with value from translation */\n if (config.lang.length === 1 && config.lang[0] === \"en\")\n config.lang = [\n translation(\"search.config.lang\")\n ]\n\n /* Override default separator with value from translation */\n if (config.separator === \"[\\\\s\\\\-]+\")\n config.separator = translation(\"search.config.separator\")\n\n /* Set pipeline from translation */\n const pipeline = translation(\"search.config.pipeline\")\n .split(/\\s*,\\s*/)\n .filter(Boolean) as SearchPipeline\n\n /* Determine search options */\n const options: SearchOptions = {\n pipeline,\n suggestions: feature(\"search.suggest\")\n }\n\n /* Return search index after defaulting */\n return { config, docs, options }\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up search worker\n *\n * This function creates a web worker to set up and query the search index,\n * which is done using Lunr.js. The index must be passed as an observable to\n * enable hacks like _localsearch_ via search index embedding as JSON.\n *\n * @param url - Worker URL\n * @param index - Search index observable input\n *\n * @returns Search worker\n */\nexport function setupSearchWorker(\n url: string, index: ObservableInput\n): SearchWorker {\n const config = configuration()\n const worker = new Worker(url)\n\n /* Create communication channels and resolve relative links */\n const tx$ = new Subject()\n const rx$ = watchWorker(worker, { tx$ })\n .pipe(\n map(message => {\n if (isSearchResultMessage(message)) {\n for (const result of message.data.items)\n for (const document of result)\n document.location = `${new URL(document.location, config.base)}`\n }\n return message\n }),\n share()\n )\n\n /* Set up search index */\n from(index)\n .pipe(\n map(data => ({\n type: SearchMessageType.SETUP,\n data: setupSearchIndex(data)\n } as SearchSetupMessage))\n )\n .subscribe(tx$.next.bind(tx$))\n\n /* Return search worker */\n return { tx$, rx$ }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { combineLatest, map } from \"rxjs\"\n\nimport { configuration } from \"~/_\"\nimport {\n getElement,\n requestJSON\n} from \"~/browser\"\nimport { getComponentElements } from \"~/components\"\nimport {\n Version,\n renderVersionSelector\n} from \"~/templates\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up version selector\n */\nexport function setupVersionSelector(): void {\n const config = configuration()\n const versions$ = requestJSON(\n new URL(\"../versions.json\", config.base)\n )\n\n /* Determine current version */\n const current$ = versions$\n .pipe(\n map(versions => {\n const [, current] = config.base.match(/([^/]+)\\/?$/)!\n return versions.find(({ version, aliases }) => (\n version === current || aliases.includes(current)\n )) || versions[0]\n })\n )\n\n /* Render version selector and warning */\n combineLatest([versions$, current$])\n .subscribe(([versions, current]) => {\n const topic = getElement(\".md-header__topic\")\n topic.appendChild(renderVersionSelector(versions, current))\n\n /* Check if version state was already determined */\n if (__md_get(\"__outdated\", sessionStorage) === null) {\n const latest = config.version?.default || \"latest\"\n const outdated = !current.aliases.includes(latest)\n\n /* Persist version state in session storage */\n __md_set(\"__outdated\", outdated, sessionStorage)\n if (outdated)\n for (const warning of getComponentElements(\"outdated\"))\n warning.hidden = false\n }\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n combineLatest,\n delay,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n filter,\n finalize,\n fromEvent,\n map,\n merge,\n shareReplay,\n startWith,\n take,\n takeLast,\n takeUntil,\n tap\n} from \"rxjs\"\n\nimport { translation } from \"~/_\"\nimport {\n getLocation,\n setToggle,\n watchElementFocus\n} from \"~/browser\"\nimport {\n SearchMessageType,\n SearchQueryMessage,\n SearchWorker,\n defaultTransform,\n isSearchReadyMessage\n} from \"~/integrations\"\n\nimport { Component } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search query\n */\nexport interface SearchQuery {\n value: string /* Query value */\n focus: boolean /* Query focus */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch search query\n *\n * Note that the focus event which triggers re-reading the current query value\n * is delayed by `1ms` so the input's empty state is allowed to propagate.\n *\n * @param el - Search query element\n * @param worker - Search worker\n *\n * @returns Search query observable\n */\nexport function watchSearchQuery(\n el: HTMLInputElement, { rx$ }: SearchWorker\n): Observable {\n const fn = __search?.transform || defaultTransform\n\n /* Immediately show search dialog */\n const { searchParams } = getLocation()\n if (searchParams.has(\"q\"))\n setToggle(\"search\", true)\n\n /* Intercept query parameter (deep link) */\n const param$ = rx$\n .pipe(\n filter(isSearchReadyMessage),\n take(1),\n map(() => searchParams.get(\"q\") || \"\")\n )\n\n /* Set query from parameter */\n param$.subscribe(value => { // TODO: not ideal - find a better way\n if (value)\n el.value = value\n })\n\n /* Intercept focus and input events */\n const focus$ = watchElementFocus(el)\n const value$ = merge(\n fromEvent(el, \"keyup\"),\n fromEvent(el, \"focus\").pipe(delay(1)),\n param$\n )\n .pipe(\n map(() => fn(el.value)),\n startWith(\"\"),\n distinctUntilChanged(),\n )\n\n /* Combine into single observable */\n return combineLatest([value$, focus$])\n .pipe(\n map(([value, focus]) => ({ value, focus })),\n shareReplay(1)\n )\n}\n\n/**\n * Mount search query\n *\n * @param el - Search query element\n * @param worker - Search worker\n *\n * @returns Search query component observable\n */\nexport function mountSearchQuery(\n el: HTMLInputElement, { tx$, rx$ }: SearchWorker\n): Observable> {\n const push$ = new Subject()\n\n /* Handle value changes */\n push$\n .pipe(\n distinctUntilKeyChanged(\"value\"),\n map(({ value }): SearchQueryMessage => ({\n type: SearchMessageType.QUERY,\n data: value\n }))\n )\n .subscribe(tx$.next.bind(tx$))\n\n /* Handle focus changes */\n push$\n .pipe(\n distinctUntilKeyChanged(\"focus\")\n )\n .subscribe(({ focus }) => {\n if (focus) {\n setToggle(\"search\", focus)\n el.placeholder = \"\"\n } else {\n el.placeholder = translation(\"search.placeholder\")\n }\n })\n\n /* Handle reset */\n fromEvent(el.form!, \"reset\")\n .pipe(\n takeUntil(push$.pipe(takeLast(1)))\n )\n .subscribe(() => el.focus())\n\n /* Create and return component */\n return watchSearchQuery(el, { tx$, rx$ })\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n bufferCount,\n filter,\n finalize,\n map,\n merge,\n of,\n skipUntil,\n switchMap,\n take,\n tap,\n withLatestFrom,\n zipWith\n} from \"rxjs\"\n\nimport { translation } from \"~/_\"\nimport {\n getElement,\n watchElementBoundary\n} from \"~/browser\"\nimport {\n SearchResult,\n SearchWorker,\n isSearchReadyMessage,\n isSearchResultMessage\n} from \"~/integrations\"\nimport { renderSearchResultItem } from \"~/templates\"\nimport { round } from \"~/utilities\"\n\nimport { Component } from \"../../_\"\nimport { SearchQuery } from \"../query\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n query$: Observable /* Search query observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search result list\n *\n * This function performs a lazy rendering of the search results, depending on\n * the vertical offset of the search result container.\n *\n * @param el - Search result list element\n * @param worker - Search worker\n * @param options - Options\n *\n * @returns Search result list component observable\n */\nexport function mountSearchResult(\n el: HTMLElement, { rx$ }: SearchWorker, { query$ }: MountOptions\n): Observable> {\n const push$ = new Subject()\n const boundary$ = watchElementBoundary(el.parentElement!)\n .pipe(\n filter(Boolean)\n )\n\n /* Retrieve nested components */\n const meta = getElement(\":scope > :first-child\", el)\n const list = getElement(\":scope > :last-child\", el)\n\n /* Wait until search is ready */\n const ready$ = rx$\n .pipe(\n filter(isSearchReadyMessage),\n take(1)\n )\n\n /* Update search result metadata */\n push$\n .pipe(\n withLatestFrom(query$),\n skipUntil(ready$)\n )\n .subscribe(([{ items }, { value }]) => {\n if (value) {\n switch (items.length) {\n\n /* No results */\n case 0:\n meta.textContent = translation(\"search.result.none\")\n break\n\n /* One result */\n case 1:\n meta.textContent = translation(\"search.result.one\")\n break\n\n /* Multiple result */\n default:\n meta.textContent = translation(\n \"search.result.other\",\n round(items.length)\n )\n }\n } else {\n meta.textContent = translation(\"search.result.placeholder\")\n }\n })\n\n /* Update search result list */\n push$\n .pipe(\n tap(() => list.innerHTML = \"\"),\n switchMap(({ items }) => merge(\n of(...items.slice(0, 10)),\n of(...items.slice(10))\n .pipe(\n bufferCount(4),\n zipWith(boundary$),\n switchMap(([chunk]) => of(...chunk))\n )\n ))\n )\n .subscribe(result => list.appendChild(\n renderSearchResultItem(result)\n ))\n\n /* Filter search result message */\n const result$ = rx$\n .pipe(\n filter(isSearchResultMessage),\n map(({ data }) => data)\n )\n\n /* Create and return component */\n return result$\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n finalize,\n fromEvent,\n map,\n tap\n} from \"rxjs\"\n\nimport { getLocation } from \"~/browser\"\n\nimport { Component } from \"../../_\"\nimport { SearchQuery } from \"../query\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search sharing\n */\nexport interface SearchShare {\n url: URL /* Deep link for sharing */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n query$: Observable /* Search query observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n query$: Observable /* Search query observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search sharing\n *\n * @param _el - Search sharing element\n * @param options - Options\n *\n * @returns Search sharing observable\n */\nexport function watchSearchShare(\n _el: HTMLElement, { query$ }: WatchOptions\n): Observable {\n return query$\n .pipe(\n map(({ value }) => {\n const url = getLocation()\n url.hash = \"\"\n url.searchParams.delete(\"h\")\n url.searchParams.set(\"q\", value)\n return { url }\n })\n )\n}\n\n/**\n * Mount search sharing\n *\n * @param el - Search sharing element\n * @param options - Options\n *\n * @returns Search sharing component observable\n */\nexport function mountSearchShare(\n el: HTMLAnchorElement, options: MountOptions\n): Observable> {\n const push$ = new Subject()\n push$.subscribe(({ url }) => {\n el.setAttribute(\"data-clipboard-text\", el.href)\n el.href = `${url}`\n })\n\n /* Prevent following of link */\n fromEvent(el, \"click\")\n .subscribe(ev => ev.preventDefault())\n\n /* Create and return component */\n return watchSearchShare(el, options)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n asyncScheduler,\n combineLatestWith,\n distinctUntilChanged,\n filter,\n finalize,\n fromEvent,\n map,\n merge,\n observeOn,\n tap\n} from \"rxjs\"\n\nimport { Keyboard } from \"~/browser\"\nimport {\n SearchResult,\n SearchWorker,\n isSearchResultMessage\n} from \"~/integrations\"\n\nimport { Component, getComponentElement } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search suggestions\n */\nexport interface SearchSuggest {}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n keyboard$: Observable /* Keyboard observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search suggestions\n *\n * This function will perform a lazy rendering of the search results, depending\n * on the vertical offset of the search result container.\n *\n * @param el - Search result list element\n * @param worker - Search worker\n * @param options - Options\n *\n * @returns Search result list component observable\n */\nexport function mountSearchSuggest(\n el: HTMLElement, { rx$ }: SearchWorker, { keyboard$ }: MountOptions\n): Observable> {\n const push$ = new Subject()\n\n /* Retrieve query component and track all changes */\n const query = getComponentElement(\"search-query\")\n const query$ = merge(\n fromEvent(query, \"keydown\"),\n fromEvent(query, \"focus\")\n )\n .pipe(\n observeOn(asyncScheduler),\n map(() => query.value),\n distinctUntilChanged(),\n )\n\n /* Update search suggestions */\n push$\n .pipe(\n combineLatestWith(query$),\n map(([{ suggestions }, value]) => {\n const words = value.split(/([\\s-]+)/)\n if (suggestions?.length && words[words.length - 1]) {\n const last = suggestions[suggestions.length - 1]\n if (last.startsWith(words[words.length - 1]))\n words[words.length - 1] = last\n } else {\n words.length = 0\n }\n return words\n })\n )\n .subscribe(words => el.innerHTML = words\n .join(\"\")\n .replace(/\\s/g, \" \")\n )\n\n /* Set up search keyboard handlers */\n keyboard$\n .pipe(\n filter(({ mode }) => mode === \"search\")\n )\n .subscribe(key => {\n switch (key.type) {\n\n /* Right arrow: accept current suggestion */\n case \"ArrowRight\":\n if (\n el.innerText.length &&\n query.selectionStart === query.value.length\n )\n query.value = el.innerText\n break\n }\n })\n\n /* Filter search result message */\n const result$ = rx$\n .pipe(\n filter(isSearchResultMessage),\n map(({ data }) => data)\n )\n\n /* Create and return component */\n return result$\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(() => ({ ref: el }))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n NEVER,\n Observable,\n ObservableInput,\n filter,\n merge,\n mergeWith,\n sample,\n take\n} from \"rxjs\"\n\nimport { configuration } from \"~/_\"\nimport {\n Keyboard,\n getActiveElement,\n getElements,\n setToggle\n} from \"~/browser\"\nimport {\n SearchIndex,\n SearchResult,\n isSearchQueryMessage,\n isSearchReadyMessage,\n setupSearchWorker\n} from \"~/integrations\"\n\nimport {\n Component,\n getComponentElement,\n getComponentElements\n} from \"../../_\"\nimport {\n SearchQuery,\n mountSearchQuery\n} from \"../query\"\nimport { mountSearchResult } from \"../result\"\nimport {\n SearchShare,\n mountSearchShare\n} from \"../share\"\nimport {\n SearchSuggest,\n mountSearchSuggest\n} from \"../suggest\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search\n */\nexport type Search =\n | SearchQuery\n | SearchResult\n | SearchShare\n | SearchSuggest\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n index$: ObservableInput /* Search index observable */\n keyboard$: Observable /* Keyboard observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search\n *\n * This function sets up the search functionality, including the underlying\n * web worker and all keyboard bindings.\n *\n * @param el - Search element\n * @param options - Options\n *\n * @returns Search component observable\n */\nexport function mountSearch(\n el: HTMLElement, { index$, keyboard$ }: MountOptions\n): Observable> {\n const config = configuration()\n try {\n const url = __search?.worker || config.search\n const worker = setupSearchWorker(url, index$)\n\n /* Retrieve query and result components */\n const query = getComponentElement(\"search-query\", el)\n const result = getComponentElement(\"search-result\", el)\n\n /* Re-emit query when search is ready */\n const { tx$, rx$ } = worker\n tx$\n .pipe(\n filter(isSearchQueryMessage),\n sample(rx$.pipe(filter(isSearchReadyMessage))),\n take(1)\n )\n .subscribe(tx$.next.bind(tx$))\n\n /* Set up search keyboard handlers */\n keyboard$\n .pipe(\n filter(({ mode }) => mode === \"search\")\n )\n .subscribe(key => {\n const active = getActiveElement()\n switch (key.type) {\n\n /* Enter: go to first (best) result */\n case \"Enter\":\n if (active === query) {\n const anchors = new Map()\n for (const anchor of getElements(\n \":first-child [href]\", result\n )) {\n const article = anchor.firstElementChild!\n anchors.set(anchor, parseFloat(\n article.getAttribute(\"data-md-score\")!\n ))\n }\n\n /* Go to result with highest score, if any */\n if (anchors.size) {\n const [[best]] = [...anchors].sort(([, a], [, b]) => b - a)\n best.click()\n }\n\n /* Otherwise omit form submission */\n key.claim()\n }\n break\n\n /* Escape or Tab: close search */\n case \"Escape\":\n case \"Tab\":\n setToggle(\"search\", false)\n query.blur()\n break\n\n /* Vertical arrows: select previous or next search result */\n case \"ArrowUp\":\n case \"ArrowDown\":\n if (typeof active === \"undefined\") {\n query.focus()\n } else {\n const els = [query, ...getElements(\n \":not(details) > [href], summary, details[open] [href]\",\n result\n )]\n const i = Math.max(0, (\n Math.max(0, els.indexOf(active)) + els.length + (\n key.type === \"ArrowUp\" ? -1 : +1\n )\n ) % els.length)\n els[i].focus()\n }\n\n /* Prevent scrolling of page */\n key.claim()\n break\n\n /* All other keys: hand to search query */\n default:\n if (query !== getActiveElement())\n query.focus()\n }\n })\n\n /* Set up global keyboard handlers */\n keyboard$\n .pipe(\n filter(({ mode }) => mode === \"global\"),\n )\n .subscribe(key => {\n switch (key.type) {\n\n /* Open search and select query */\n case \"f\":\n case \"s\":\n case \"/\":\n query.focus()\n query.select()\n\n /* Prevent scrolling of page */\n key.claim()\n break\n }\n })\n\n /* Create and return component */\n const query$ = mountSearchQuery(query, worker)\n const result$ = mountSearchResult(result, worker, { query$ })\n return merge(query$, result$)\n .pipe(\n mergeWith(\n\n /* Search sharing */\n ...getComponentElements(\"search-share\", el)\n .map(child => mountSearchShare(child, { query$ })),\n\n /* Search suggestions */\n ...getComponentElements(\"search-suggest\", el)\n .map(child => mountSearchSuggest(child, worker, { keyboard$ }))\n )\n )\n\n /* Gracefully handle broken search */\n } catch (err) {\n el.hidden = true\n return NEVER\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n ObservableInput,\n combineLatest,\n filter,\n map,\n startWith\n} from \"rxjs\"\n\nimport { getLocation } from \"~/browser\"\nimport {\n SearchIndex,\n setupSearchHighlighter\n} from \"~/integrations\"\nimport { h } from \"~/utilities\"\n\nimport { Component } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search highlighting\n */\nexport interface SearchHighlight {\n nodes: Map /* Map of replacements */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n index$: ObservableInput /* Search index observable */\n location$: Observable /* Location observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search highlighting\n *\n * @param el - Content element\n * @param options - Options\n *\n * @returns Search highlighting component observable\n */\nexport function mountSearchHiglight(\n el: HTMLElement, { index$, location$ }: MountOptions\n): Observable> {\n return combineLatest([\n index$,\n location$\n .pipe(\n startWith(getLocation()),\n filter(url => !!url.searchParams.get(\"h\"))\n )\n ])\n .pipe(\n map(([index, url]) => setupSearchHighlighter(index.config, true)(\n url.searchParams.get(\"h\")!\n )),\n map(fn => {\n const nodes = new Map()\n\n /* Traverse text nodes and collect matches */\n const it = document.createNodeIterator(el, NodeFilter.SHOW_TEXT)\n for (let node = it.nextNode(); node; node = it.nextNode()) {\n if (node.parentElement?.offsetHeight) {\n const original = node.textContent!\n const replaced = fn(original)\n if (replaced.length > original.length)\n nodes.set(node as ChildNode, replaced)\n }\n }\n\n /* Replace original nodes with matches */\n for (const [node, text] of nodes) {\n const { childNodes } = h(\"span\", null, text)\n node.replaceWith(...Array.from(childNodes))\n }\n\n /* Return component */\n return { ref: el, nodes }\n })\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n animationFrameScheduler,\n auditTime,\n combineLatest,\n defer,\n distinctUntilChanged,\n finalize,\n map,\n tap,\n withLatestFrom\n} from \"rxjs\"\n\nimport {\n Viewport,\n getElement,\n getElementOffset\n} from \"~/browser\"\n\nimport { Component } from \"../_\"\nimport { Header } from \"../header\"\nimport { Main } from \"../main\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Sidebar\n */\nexport interface Sidebar {\n height: number /* Sidebar height */\n locked: boolean /* Sidebar is locked */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n main$: Observable
    /* Main area observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n main$: Observable
    /* Main area observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch sidebar\n *\n * This function returns an observable that computes the visual parameters of\n * the sidebar which depends on the vertical viewport offset, as well as the\n * height of the main area. When the page is scrolled beyond the header, the\n * sidebar is locked and fills the remaining space.\n *\n * @param el - Sidebar element\n * @param options - Options\n *\n * @returns Sidebar observable\n */\nexport function watchSidebar(\n el: HTMLElement, { viewport$, main$ }: WatchOptions\n): Observable {\n const parent = el.parentElement!\n const adjust =\n parent.offsetTop -\n parent.parentElement!.offsetTop\n\n /* Compute the sidebar's available height and if it should be locked */\n return combineLatest([main$, viewport$])\n .pipe(\n map(([{ offset, height }, { offset: { y } }]) => {\n height = height\n + Math.min(adjust, Math.max(0, y - offset))\n - adjust\n return {\n height,\n locked: y >= offset + adjust\n }\n }),\n distinctUntilChanged((a, b) => (\n a.height === b.height &&\n a.locked === b.locked\n ))\n )\n}\n\n/**\n * Mount sidebar\n *\n * This function doesn't set the height of the actual sidebar, but of its first\n * child \u2013 the `.md-sidebar__scrollwrap` element in order to mitigiate jittery\n * sidebars when the footer is scrolled into view. At some point we switched\n * from `absolute` / `fixed` positioning to `sticky` positioning, significantly\n * reducing jitter in some browsers (respectively Firefox and Safari) when\n * scrolling from the top. However, top-aligned sticky positioning means that\n * the sidebar snaps to the bottom when the end of the container is reached.\n * This is what leads to the mentioned jitter, as the sidebar's height may be\n * updated too slowly.\n *\n * This behaviour can be mitigiated by setting the height of the sidebar to `0`\n * while preserving the padding, and the height on its first element.\n *\n * @param el - Sidebar element\n * @param options - Options\n *\n * @returns Sidebar component observable\n */\nexport function mountSidebar(\n el: HTMLElement, { header$, ...options }: MountOptions\n): Observable> {\n const inner = getElement(\".md-sidebar__scrollwrap\", el)\n const { y } = getElementOffset(inner)\n return defer(() => {\n const push$ = new Subject()\n push$\n .pipe(\n auditTime(0, animationFrameScheduler),\n withLatestFrom(header$)\n )\n .subscribe({\n\n /* Handle emission */\n next([{ height }, { height: offset }]) {\n inner.style.height = `${height - 2 * y}px`\n el.style.top = `${offset}px`\n },\n\n /* Handle complete */\n complete() {\n inner.style.height = \"\"\n el.style.top = \"\"\n }\n })\n\n /* Create and return component */\n return watchSidebar(el, options)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Repo, User } from \"github-types\"\nimport {\n Observable,\n defaultIfEmpty,\n map,\n zip\n} from \"rxjs\"\n\nimport { requestJSON } from \"~/browser\"\n\nimport { SourceFacts } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * GitHub release (partial)\n */\ninterface Release {\n tag_name: string /* Tag name */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch GitHub repository facts\n *\n * @param user - GitHub user or organization\n * @param repo - GitHub repository\n *\n * @returns Repository facts observable\n */\nexport function fetchSourceFactsFromGitHub(\n user: string, repo?: string\n): Observable {\n if (typeof repo !== \"undefined\") {\n const url = `https://api.github.com/repos/${user}/${repo}`\n return zip(\n\n /* Fetch version */\n requestJSON(`${url}/releases/latest`)\n .pipe(\n map(release => ({\n version: release.tag_name\n })),\n defaultIfEmpty({})\n ),\n\n /* Fetch stars and forks */\n requestJSON(url)\n .pipe(\n map(info => ({\n stars: info.stargazers_count,\n forks: info.forks_count\n })),\n defaultIfEmpty({})\n )\n )\n .pipe(\n map(([release, info]) => ({ ...release, ...info }))\n )\n\n /* User or organization */\n } else {\n const url = `https://api.github.com/users/${user}`\n return requestJSON(url)\n .pipe(\n map(info => ({\n repositories: info.public_repos\n })),\n defaultIfEmpty({})\n )\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { ProjectSchema } from \"gitlab\"\nimport {\n Observable,\n defaultIfEmpty,\n map\n} from \"rxjs\"\n\nimport { requestJSON } from \"~/browser\"\n\nimport { SourceFacts } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch GitLab repository facts\n *\n * @param base - GitLab base\n * @param project - GitLab project\n *\n * @returns Repository facts observable\n */\nexport function fetchSourceFactsFromGitLab(\n base: string, project: string\n): Observable {\n const url = `https://${base}/api/v4/projects/${encodeURIComponent(project)}`\n return requestJSON(url)\n .pipe(\n map(({ star_count, forks_count }) => ({\n stars: star_count,\n forks: forks_count\n })),\n defaultIfEmpty({})\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { EMPTY, Observable } from \"rxjs\"\n\nimport { fetchSourceFactsFromGitHub } from \"../github\"\nimport { fetchSourceFactsFromGitLab } from \"../gitlab\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Repository facts for repositories\n */\nexport interface RepositoryFacts {\n stars?: number /* Number of stars */\n forks?: number /* Number of forks */\n version?: string /* Latest version */\n}\n\n/**\n * Repository facts for organizations\n */\nexport interface OrganizationFacts {\n repositories?: number /* Number of repositories */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Repository facts\n */\nexport type SourceFacts =\n | RepositoryFacts\n | OrganizationFacts\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch repository facts\n *\n * @param url - Repository URL\n *\n * @returns Repository facts observable\n */\nexport function fetchSourceFacts(\n url: string\n): Observable {\n const [type] = url.match(/(git(?:hub|lab))/i) || []\n switch (type.toLowerCase()) {\n\n /* GitHub repository */\n case \"github\":\n const [, user, repo] = url.match(/^.+github\\.com\\/([^/]+)\\/?([^/]+)?/i)!\n return fetchSourceFactsFromGitHub(user, repo)\n\n /* GitLab repository */\n case \"gitlab\":\n const [, base, slug] = url.match(/^.+?([^/]*gitlab[^/]+)\\/(.+?)\\/?$/i)!\n return fetchSourceFactsFromGitLab(base, slug)\n\n /* Everything else */\n default:\n return EMPTY\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Observable,\n Subject,\n catchError,\n defer,\n filter,\n finalize,\n map,\n of,\n shareReplay,\n tap\n} from \"rxjs\"\n\nimport { getElement } from \"~/browser\"\nimport { renderSourceFacts } from \"~/templates\"\n\nimport { Component } from \"../../_\"\nimport {\n SourceFacts,\n fetchSourceFacts\n} from \"../facts\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Repository information\n */\nexport interface Source {\n facts: SourceFacts /* Repository facts */\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Repository information observable\n */\nlet fetch$: Observable\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch repository information\n *\n * This function tries to read the repository facts from session storage, and\n * if unsuccessful, fetches them from the underlying provider.\n *\n * @param el - Repository information element\n *\n * @returns Repository information observable\n */\nexport function watchSource(\n el: HTMLAnchorElement\n): Observable {\n return fetch$ ||= defer(() => {\n const cached = __md_get(\"__source\", sessionStorage)\n if (cached)\n return of(cached)\n else\n return fetchSourceFacts(el.href)\n .pipe(\n tap(facts => __md_set(\"__source\", facts, sessionStorage))\n )\n })\n .pipe(\n catchError(() => EMPTY),\n filter(facts => Object.keys(facts).length > 0),\n map(facts => ({ facts })),\n shareReplay(1)\n )\n}\n\n/**\n * Mount repository information\n *\n * @param el - Repository information element\n *\n * @returns Repository information component observable\n */\nexport function mountSource(\n el: HTMLAnchorElement\n): Observable> {\n const inner = getElement(\":scope > :last-child\", el)\n return defer(() => {\n const push$ = new Subject()\n push$.subscribe(({ facts }) => {\n inner.appendChild(renderSourceFacts(facts))\n inner.setAttribute(\"data-md-state\", \"done\")\n })\n\n /* Create and return component */\n return watchSource(el)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n defer,\n distinctUntilKeyChanged,\n finalize,\n map,\n of,\n switchMap,\n tap\n} from \"rxjs\"\n\nimport { feature } from \"~/_\"\nimport {\n Viewport,\n watchElementSize,\n watchViewportAt\n} from \"~/browser\"\n\nimport { Component } from \"../_\"\nimport { Header } from \"../header\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Navigation tabs\n */\nexport interface Tabs {\n hidden: boolean /* Navigation tabs are hidden */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch navigation tabs\n *\n * @param el - Navigation tabs element\n * @param options - Options\n *\n * @returns Navigation tabs observable\n */\nexport function watchTabs(\n el: HTMLElement, { viewport$, header$ }: WatchOptions\n): Observable {\n return watchElementSize(document.body)\n .pipe(\n switchMap(() => watchViewportAt(el, { header$, viewport$ })),\n map(({ offset: { y } }) => {\n return {\n hidden: y >= 10\n }\n }),\n distinctUntilKeyChanged(\"hidden\")\n )\n}\n\n/**\n * Mount navigation tabs\n *\n * This function hides the navigation tabs when scrolling past the threshold\n * and makes them reappear in a nice CSS animation when scrolling back up.\n *\n * @param el - Navigation tabs element\n * @param options - Options\n *\n * @returns Navigation tabs component observable\n */\nexport function mountTabs(\n el: HTMLElement, options: MountOptions\n): Observable> {\n return defer(() => {\n const push$ = new Subject()\n push$.subscribe({\n\n /* Handle emission */\n next({ hidden }) {\n if (hidden)\n el.setAttribute(\"data-md-state\", \"hidden\")\n else\n el.removeAttribute(\"data-md-state\")\n },\n\n /* Handle complete */\n complete() {\n el.removeAttribute(\"data-md-state\")\n }\n })\n\n /* Create and return component */\n return (\n feature(\"navigation.tabs.sticky\")\n ? of({ hidden: false })\n : watchTabs(el, options)\n )\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n bufferCount,\n combineLatest,\n debounceTime,\n defer,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n finalize,\n map,\n of,\n scan,\n startWith,\n switchMap,\n takeLast,\n takeUntil,\n tap,\n withLatestFrom\n} from \"rxjs\"\n\nimport { feature } from \"~/_\"\nimport {\n Viewport,\n getElements,\n getLocation,\n getOptionalElement,\n watchElementSize\n} from \"~/browser\"\n\nimport { Component } from \"../_\"\nimport { Header } from \"../header\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Table of contents\n */\nexport interface TableOfContents {\n prev: HTMLAnchorElement[][] /* Anchors (previous) */\n next: HTMLAnchorElement[][] /* Anchors (next) */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch table of contents\n *\n * This is effectively a scroll spy implementation which will account for the\n * fixed header and automatically re-calculate anchor offsets when the viewport\n * is resized. The returned observable will only emit if the table of contents\n * needs to be repainted.\n *\n * This implementation tracks an anchor element's entire path starting from its\n * level up to the top-most anchor element, e.g. `[h3, h2, h1]`. Although the\n * Material theme currently doesn't make use of this information, it enables\n * the styling of the entire hierarchy through customization.\n *\n * Note that the current anchor is the last item of the `prev` anchor list.\n *\n * @param el - Table of contents element\n * @param options - Options\n *\n * @returns Table of contents observable\n */\nexport function watchTableOfContents(\n el: HTMLElement, { viewport$, header$ }: WatchOptions\n): Observable {\n const table = new Map()\n\n /* Compute anchor-to-target mapping */\n const anchors = getElements(\"[href^=\\\\#]\", el)\n for (const anchor of anchors) {\n const id = decodeURIComponent(anchor.hash.substring(1))\n const target = getOptionalElement(`[id=\"${id}\"]`)\n if (typeof target !== \"undefined\")\n table.set(anchor, target)\n }\n\n /* Compute necessary adjustment for header */\n const adjust$ = header$\n .pipe(\n map(header => 24 + header.height)\n )\n\n /* Compute partition of previous and next anchors */\n const partition$ = watchElementSize(document.body)\n .pipe(\n distinctUntilKeyChanged(\"height\"),\n\n /* Build index to map anchor paths to vertical offsets */\n switchMap(body => defer(() => {\n let path: HTMLAnchorElement[] = []\n return of([...table].reduce((index, [anchor, target]) => {\n while (path.length) {\n const last = table.get(path[path.length - 1])!\n if (last.tagName >= target.tagName) {\n path.pop()\n } else {\n break\n }\n }\n\n /* If the current anchor is hidden, continue with its parent */\n let offset = target.offsetTop\n while (!offset && target.parentElement) {\n target = target.parentElement\n offset = target.offsetTop\n }\n\n /* Map reversed anchor path to vertical offset */\n return index.set(\n [...path = [...path, anchor]].reverse(),\n offset\n )\n }, new Map()))\n })\n .pipe(\n\n /* Sort index by vertical offset (see https://bit.ly/30z6QSO) */\n map(index => new Map([...index].sort(([, a], [, b]) => a - b))),\n\n /* Re-compute partition when viewport offset changes */\n switchMap(index => combineLatest([viewport$, adjust$])\n .pipe(\n scan(([prev, next], [{ offset: { y }, size }, adjust]) => {\n const last = y + size.height >= Math.floor(body.height)\n\n /* Look forward */\n while (next.length) {\n const [, offset] = next[0]\n if (offset - adjust < y || last) {\n prev = [...prev, next.shift()!]\n } else {\n break\n }\n }\n\n /* Look backward */\n while (prev.length) {\n const [, offset] = prev[prev.length - 1]\n if (offset - adjust >= y && !last) {\n next = [prev.pop()!, ...next]\n } else {\n break\n }\n }\n\n /* Return partition */\n return [prev, next]\n }, [[], [...index]]),\n distinctUntilChanged((a, b) => (\n a[0] === b[0] &&\n a[1] === b[1]\n ))\n )\n )\n )\n )\n )\n\n /* Compute and return anchor list migrations */\n return partition$\n .pipe(\n map(([prev, next]) => ({\n prev: prev.map(([path]) => path),\n next: next.map(([path]) => path)\n })),\n\n /* Extract anchor list migrations */\n startWith({ prev: [], next: [] }),\n bufferCount(2, 1),\n map(([a, b]) => {\n\n /* Moving down */\n if (a.prev.length < b.prev.length) {\n return {\n prev: b.prev.slice(Math.max(0, a.prev.length - 1), b.prev.length),\n next: []\n }\n\n /* Moving up */\n } else {\n return {\n prev: b.prev.slice(-1),\n next: b.next.slice(0, b.next.length - a.next.length)\n }\n }\n })\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Mount table of contents\n *\n * @param el - Table of contents element\n * @param options - Options\n *\n * @returns Table of contents component observable\n */\nexport function mountTableOfContents(\n el: HTMLElement, { viewport$, header$ }: MountOptions\n): Observable> {\n return defer(() => {\n const push$ = new Subject()\n push$.subscribe(({ prev, next }) => {\n\n /* Look forward */\n for (const [anchor] of next) {\n anchor.removeAttribute(\"data-md-state\")\n anchor.classList.remove(\n \"md-nav__link--active\"\n )\n }\n\n /* Look backward */\n for (const [index, [anchor]] of prev.entries()) {\n anchor.setAttribute(\"data-md-state\", \"blur\")\n anchor.classList.toggle(\n \"md-nav__link--active\",\n index === prev.length - 1\n )\n }\n })\n\n /* Set up anchor tracking, if enabled */\n if (feature(\"navigation.tracking\"))\n viewport$\n .pipe(\n takeUntil(push$.pipe(takeLast(1))),\n distinctUntilKeyChanged(\"offset\"),\n debounceTime(250),\n withLatestFrom(push$)\n )\n .subscribe(([, { prev }]) => {\n const url = getLocation()\n\n /* Set hash fragment to active anchor */\n const anchor = prev[prev.length - 1]\n if (anchor && anchor.length) {\n const [active] = anchor\n const { hash } = new URL(active.href)\n if (url.hash !== hash) {\n url.hash = hash\n history.replaceState({}, \"\", `${url}`)\n }\n\n /* Reset anchor when at the top */\n } else {\n url.hash = \"\"\n history.replaceState({}, \"\", `${url}`)\n }\n })\n\n /* Create and return component */\n return watchTableOfContents(el, { viewport$, header$ })\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n bufferCount,\n combineLatest,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n endWith,\n finalize,\n map,\n repeat,\n skip,\n takeLast,\n takeUntil,\n tap\n} from \"rxjs\"\n\nimport { Viewport } from \"~/browser\"\n\nimport { Component } from \"../_\"\nimport { Header } from \"../header\"\nimport { Main } from \"../main\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Back-to-top button\n */\nexport interface BackToTop {\n hidden: boolean /* Back-to-top button is hidden */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n main$: Observable
    /* Main area observable */\n target$: Observable /* Location target observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n main$: Observable
    /* Main area observable */\n target$: Observable /* Location target observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch back-to-top\n *\n * @param _el - Back-to-top element\n * @param options - Options\n *\n * @returns Back-to-top observable\n */\nexport function watchBackToTop(\n _el: HTMLElement, { viewport$, main$, target$ }: WatchOptions\n): Observable {\n\n /* Compute direction */\n const direction$ = viewport$\n .pipe(\n map(({ offset: { y } }) => y),\n bufferCount(2, 1),\n map(([a, b]) => a > b),\n distinctUntilChanged()\n )\n\n /* Compute whether main area is active */\n const active$ = main$\n .pipe(\n map(({ active }) => active)\n )\n\n /* Compute threshold for hiding */\n return combineLatest([active$, direction$])\n .pipe(\n map(([active, direction]) => !(active && direction)),\n distinctUntilChanged(),\n takeUntil(target$.pipe(skip(1))),\n endWith(true),\n repeat({ delay: 250 }),\n map(hidden => ({ hidden }))\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Mount back-to-top\n *\n * @param el - Back-to-top element\n * @param options - Options\n *\n * @returns Back-to-top component observable\n */\nexport function mountBackToTop(\n el: HTMLElement, { viewport$, header$, main$, target$ }: MountOptions\n): Observable> {\n const push$ = new Subject()\n push$.subscribe({\n\n /* Handle emission */\n next({ hidden }) {\n if (hidden) {\n el.setAttribute(\"data-md-state\", \"hidden\")\n el.setAttribute(\"tabindex\", \"-1\")\n el.blur()\n } else {\n el.removeAttribute(\"data-md-state\")\n el.removeAttribute(\"tabindex\")\n }\n },\n\n /* Handle complete */\n complete() {\n el.style.top = \"\"\n el.setAttribute(\"data-md-state\", \"hidden\")\n el.removeAttribute(\"tabindex\")\n }\n })\n\n /* Watch header height */\n header$\n .pipe(\n takeUntil(push$.pipe(endWith(0), takeLast(1))),\n distinctUntilKeyChanged(\"height\")\n )\n .subscribe(({ height }) => {\n el.style.top = `${height + 16}px`\n })\n\n /* Create and return component */\n return watchBackToTop(el, { viewport$, main$, target$ })\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n fromEvent,\n mapTo,\n mergeMap,\n of,\n switchMap,\n takeWhile,\n tap,\n withLatestFrom\n} from \"rxjs\"\n\nimport { getElements } from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch options\n */\ninterface PatchOptions {\n document$: Observable /* Document observable */\n tablet$: Observable /* Media tablet observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch indeterminate checkboxes\n *\n * This function replaces the indeterminate \"pseudo state\" with the actual\n * indeterminate state, which is used to keep navigation always expanded.\n *\n * @param options - Options\n */\nexport function patchIndeterminate(\n { document$, tablet$ }: PatchOptions\n): void {\n document$\n .pipe(\n switchMap(() => of(...getElements(\n \"[data-md-state=indeterminate]\"\n ))),\n tap(el => {\n el.indeterminate = true\n el.checked = false\n }),\n mergeMap(el => fromEvent(el, \"change\")\n .pipe(\n takeWhile(() => el.hasAttribute(\"data-md-state\")),\n mapTo(el)\n )\n ),\n withLatestFrom(tablet$)\n )\n .subscribe(([el, tablet]) => {\n el.removeAttribute(\"data-md-state\")\n if (tablet)\n el.checked = false\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n filter,\n fromEvent,\n mapTo,\n mergeMap,\n of,\n switchMap,\n tap\n} from \"rxjs\"\n\nimport { getElements } from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch options\n */\ninterface PatchOptions {\n document$: Observable /* Document observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Check whether the given device is an Apple device\n *\n * @returns Test result\n */\nfunction isAppleDevice(): boolean {\n return /(iPad|iPhone|iPod)/.test(navigator.userAgent)\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch all elements with `data-md-scrollfix` attributes\n *\n * This is a year-old patch which ensures that overflow scrolling works at the\n * top and bottom of containers on iOS by ensuring a `1px` scroll offset upon\n * the start of a touch event.\n *\n * @see https://bit.ly/2SCtAOO - Original source\n *\n * @param options - Options\n */\nexport function patchScrollfix(\n { document$ }: PatchOptions\n): void {\n document$\n .pipe(\n switchMap(() => of(...getElements(\"[data-md-scrollfix]\"))),\n tap(el => el.removeAttribute(\"data-md-scrollfix\")),\n filter(isAppleDevice),\n mergeMap(el => fromEvent(el, \"touchstart\")\n .pipe(\n mapTo(el)\n )\n )\n )\n .subscribe(el => {\n const top = el.scrollTop\n\n /* We're at the top of the container */\n if (top === 0) {\n el.scrollTop = 1\n\n /* We're at the bottom of the container */\n } else if (top + el.offsetHeight === el.scrollHeight) {\n el.scrollTop = top - 1\n }\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n combineLatest,\n delay,\n map,\n of,\n switchMap,\n withLatestFrom\n} from \"rxjs\"\n\nimport {\n Viewport,\n watchToggle\n} from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch options\n */\ninterface PatchOptions {\n viewport$: Observable /* Viewport observable */\n tablet$: Observable /* Media tablet observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch the document body to lock when search is open\n *\n * For mobile and tablet viewports, the search is rendered full screen, which\n * leads to scroll leaking when at the top or bottom of the search result. This\n * function locks the body when the search is in full screen mode, and restores\n * the scroll position when leaving.\n *\n * @param options - Options\n */\nexport function patchScrolllock(\n { viewport$, tablet$ }: PatchOptions\n): void {\n combineLatest([watchToggle(\"search\"), tablet$])\n .pipe(\n map(([active, tablet]) => active && !tablet),\n switchMap(active => of(active)\n .pipe(\n delay(active ? 400 : 100)\n )\n ),\n withLatestFrom(viewport$)\n )\n .subscribe(([active, { offset: { y }}]) => {\n if (active) {\n document.body.setAttribute(\"data-md-state\", \"lock\")\n document.body.style.top = `-${y}px`\n } else {\n const value = -1 * parseInt(document.body.style.top, 10)\n document.body.removeAttribute(\"data-md-state\")\n document.body.style.top = \"\"\n if (value)\n window.scrollTo(0, value)\n }\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Polyfills\n * ------------------------------------------------------------------------- */\n\n/* Polyfill `Object.entries` */\nif (!Object.entries)\n Object.entries = function (obj: object) {\n const data: [string, string][] = []\n for (const key of Object.keys(obj))\n // @ts-expect-error - ignore property access warning\n data.push([key, obj[key]])\n\n /* Return entries */\n return data\n }\n\n/* Polyfill `Object.values` */\nif (!Object.values)\n Object.values = function (obj: object) {\n const data: string[] = []\n for (const key of Object.keys(obj))\n // @ts-expect-error - ignore property access warning\n data.push(obj[key])\n\n /* Return values */\n return data\n }\n\n/* ------------------------------------------------------------------------- */\n\n/* Polyfills for `Element` */\nif (typeof Element !== \"undefined\") {\n\n /* Polyfill `Element.scrollTo` */\n if (!Element.prototype.scrollTo)\n Element.prototype.scrollTo = function (\n x?: ScrollToOptions | number, y?: number\n ): void {\n if (typeof x === \"object\") {\n this.scrollLeft = x.left!\n this.scrollTop = x.top!\n } else {\n this.scrollLeft = x!\n this.scrollTop = y!\n }\n }\n\n /* Polyfill `Element.replaceWith` */\n if (!Element.prototype.replaceWith)\n Element.prototype.replaceWith = function (\n ...nodes: Array\n ): void {\n const parent = this.parentNode\n if (parent) {\n if (nodes.length === 0)\n parent.removeChild(this)\n\n /* Replace children and create text nodes */\n for (let i = nodes.length - 1; i >= 0; i--) {\n let node = nodes[i]\n if (typeof node !== \"object\")\n node = document.createTextNode(node)\n else if (node.parentNode)\n node.parentNode.removeChild(node)\n\n /* Replace child or insert before previous sibling */\n if (!i)\n parent.replaceChild(node, this)\n else\n parent.insertBefore(this.previousSibling!, node)\n }\n }\n }\n}\n"], + "mappings": "4iCAAA,oBAAC,UAAU,EAAQ,EAAS,CAC1B,MAAO,KAAY,UAAY,MAAO,KAAW,YAAc,IAC/D,MAAO,SAAW,YAAc,OAAO,IAAM,OAAO,GACnD,MACD,GAAO,UAAY,CAAE,aASrB,WAAmC,EAAO,CACxC,GAAI,GAAmB,GACnB,EAA0B,GAC1B,EAAiC,KAEjC,EAAsB,CACxB,KAAM,GACN,OAAQ,GACR,IAAK,GACL,IAAK,GACL,MAAO,GACP,SAAU,GACV,OAAQ,GACR,KAAM,GACN,MAAO,GACP,KAAM,GACN,KAAM,GACN,SAAU,GACV,iBAAkB,IAQpB,WAA4B,EAAI,CAC9B,MACE,MACA,IAAO,UACP,EAAG,WAAa,QAChB,EAAG,WAAa,QAChB,aAAe,IACf,YAAc,GAAG,WAcrB,WAAuC,EAAI,CACzC,GAAI,IAAO,EAAG,KACV,GAAU,EAAG,QAUjB,MARI,QAAY,SAAW,EAAoB,KAAS,CAAC,EAAG,UAIxD,KAAY,YAAc,CAAC,EAAG,UAI9B,EAAG,mBAYT,WAA8B,EAAI,CAChC,AAAI,EAAG,UAAU,SAAS,kBAG1B,GAAG,UAAU,IAAI,iBACjB,EAAG,aAAa,2BAA4B,KAQ9C,WAAiC,EAAI,CACnC,AAAI,CAAC,EAAG,aAAa,6BAGrB,GAAG,UAAU,OAAO,iBACpB,EAAG,gBAAgB,6BAWrB,WAAmB,EAAG,CACpB,AAAI,EAAE,SAAW,EAAE,QAAU,EAAE,SAI3B,GAAmB,EAAM,gBAC3B,EAAqB,EAAM,eAG7B,EAAmB,IAWrB,WAAuB,EAAG,CACxB,EAAmB,GAUrB,WAAiB,EAAG,CAElB,AAAI,CAAC,EAAmB,EAAE,SAItB,IAAoB,EAA8B,EAAE,UACtD,EAAqB,EAAE,QAQ3B,WAAgB,EAAG,CACjB,AAAI,CAAC,EAAmB,EAAE,SAKxB,GAAE,OAAO,UAAU,SAAS,kBAC5B,EAAE,OAAO,aAAa,8BAMtB,GAA0B,GAC1B,OAAO,aAAa,GACpB,EAAiC,OAAO,WAAW,UAAW,CAC5D,EAA0B,IACzB,KACH,EAAwB,EAAE,SAS9B,WAA4B,EAAG,CAC7B,AAAI,SAAS,kBAAoB,UAK3B,IACF,GAAmB,IAErB,KAUJ,YAA0C,CACxC,SAAS,iBAAiB,YAAa,GACvC,SAAS,iBAAiB,YAAa,GACvC,SAAS,iBAAiB,UAAW,GACrC,SAAS,iBAAiB,cAAe,GACzC,SAAS,iBAAiB,cAAe,GACzC,SAAS,iBAAiB,YAAa,GACvC,SAAS,iBAAiB,YAAa,GACvC,SAAS,iBAAiB,aAAc,GACxC,SAAS,iBAAiB,WAAY,GAGxC,YAA6C,CAC3C,SAAS,oBAAoB,YAAa,GAC1C,SAAS,oBAAoB,YAAa,GAC1C,SAAS,oBAAoB,UAAW,GACxC,SAAS,oBAAoB,cAAe,GAC5C,SAAS,oBAAoB,cAAe,GAC5C,SAAS,oBAAoB,YAAa,GAC1C,SAAS,oBAAoB,YAAa,GAC1C,SAAS,oBAAoB,aAAc,GAC3C,SAAS,oBAAoB,WAAY,GAU3C,WAA8B,EAAG,CAG/B,AAAI,EAAE,OAAO,UAAY,EAAE,OAAO,SAAS,gBAAkB,QAI7D,GAAmB,GACnB,KAMF,SAAS,iBAAiB,UAAW,EAAW,IAChD,SAAS,iBAAiB,YAAa,EAAe,IACtD,SAAS,iBAAiB,cAAe,EAAe,IACxD,SAAS,iBAAiB,aAAc,EAAe,IACvD,SAAS,iBAAiB,mBAAoB,EAAoB,IAElE,IAMA,EAAM,iBAAiB,QAAS,EAAS,IACzC,EAAM,iBAAiB,OAAQ,EAAQ,IAOvC,AAAI,EAAM,WAAa,KAAK,wBAA0B,EAAM,KAI1D,EAAM,KAAK,aAAa,wBAAyB,IACxC,EAAM,WAAa,KAAK,eACjC,UAAS,gBAAgB,UAAU,IAAI,oBACvC,SAAS,gBAAgB,aAAa,wBAAyB,KAOnE,GAAI,MAAO,SAAW,aAAe,MAAO,WAAa,YAAa,CAIpE,OAAO,0BAA4B,EAInC,GAAI,GAEJ,GAAI,CACF,EAAQ,GAAI,aAAY,sCACjB,EAAP,CAEA,EAAQ,SAAS,YAAY,eAC7B,EAAM,gBAAgB,+BAAgC,GAAO,GAAO,IAGtE,OAAO,cAAc,GAGvB,AAAI,MAAO,WAAa,aAGtB,EAA0B,cCpT9B,eAAC,UAAS,EAAQ,CAOhB,GAAI,GAA6B,UAAW,CAC1C,GAAI,CACF,MAAO,CAAC,CAAC,OAAO,eACT,EAAP,CACA,MAAO,KAKP,EAAoB,IAEpB,EAAiB,SAAS,EAAO,CACnC,GAAI,GAAW,CACb,KAAM,UAAW,CACf,GAAI,GAAQ,EAAM,QAClB,MAAO,CAAE,KAAM,IAAU,OAAQ,MAAO,KAI5C,MAAI,IACF,GAAS,OAAO,UAAY,UAAW,CACrC,MAAO,KAIJ,GAOL,EAAiB,SAAS,EAAO,CACnC,MAAO,oBAAmB,GAAO,QAAQ,OAAQ,MAG/C,EAAmB,SAAS,EAAO,CACrC,MAAO,oBAAmB,OAAO,GAAO,QAAQ,MAAO,OAGrD,EAA0B,UAAW,CAEvC,GAAI,GAAkB,SAAS,EAAc,CAC3C,OAAO,eAAe,KAAM,WAAY,CAAE,SAAU,GAAM,MAAO,KACjE,GAAI,GAAqB,MAAO,GAEhC,GAAI,IAAuB,YAEpB,GAAI,IAAuB,SAChC,AAAI,IAAiB,IACnB,KAAK,YAAY,WAEV,YAAwB,GAAiB,CAClD,GAAI,GAAQ,KACZ,EAAa,QAAQ,SAAS,EAAO,EAAM,CACzC,EAAM,OAAO,EAAM,aAEX,IAAiB,MAAU,IAAuB,SAC5D,GAAI,OAAO,UAAU,SAAS,KAAK,KAAkB,iBACnD,OAAS,GAAI,EAAG,EAAI,EAAa,OAAQ,IAAK,CAC5C,GAAI,GAAQ,EAAa,GACzB,GAAK,OAAO,UAAU,SAAS,KAAK,KAAW,kBAAsB,EAAM,SAAW,EACpF,KAAK,OAAO,EAAM,GAAI,EAAM,QAE5B,MAAM,IAAI,WAAU,4CAA8C,EAAI,mCAI1E,QAAS,KAAO,GACd,AAAI,EAAa,eAAe,IAC9B,KAAK,OAAO,EAAK,EAAa,QAKpC,MAAM,IAAI,WAAU,iDAIpB,EAAQ,EAAgB,UAE5B,EAAM,OAAS,SAAS,EAAM,EAAO,CACnC,AAAI,IAAQ,MAAK,SACf,KAAK,SAAS,GAAM,KAAK,OAAO,IAEhC,KAAK,SAAS,GAAQ,CAAC,OAAO,KAIlC,EAAM,OAAS,SAAS,EAAM,CAC5B,MAAO,MAAK,SAAS,IAGvB,EAAM,IAAM,SAAS,EAAM,CACzB,MAAQ,KAAQ,MAAK,SAAY,KAAK,SAAS,GAAM,GAAK,MAG5D,EAAM,OAAS,SAAS,EAAM,CAC5B,MAAQ,KAAQ,MAAK,SAAY,KAAK,SAAS,GAAM,MAAM,GAAK,IAGlE,EAAM,IAAM,SAAS,EAAM,CACzB,MAAQ,KAAQ,MAAK,UAGvB,EAAM,IAAM,SAAS,EAAM,EAAO,CAChC,KAAK,SAAS,GAAQ,CAAC,OAAO,KAGhC,EAAM,QAAU,SAAS,EAAU,EAAS,CAC1C,GAAI,GACJ,OAAS,KAAQ,MAAK,SACpB,GAAI,KAAK,SAAS,eAAe,GAAO,CACtC,EAAU,KAAK,SAAS,GACxB,OAAS,GAAI,EAAG,EAAI,EAAQ,OAAQ,IAClC,EAAS,KAAK,EAAS,EAAQ,GAAI,EAAM,QAMjD,EAAM,KAAO,UAAW,CACtB,GAAI,GAAQ,GACZ,YAAK,QAAQ,SAAS,EAAO,EAAM,CACjC,EAAM,KAAK,KAEN,EAAe,IAGxB,EAAM,OAAS,UAAW,CACxB,GAAI,GAAQ,GACZ,YAAK,QAAQ,SAAS,EAAO,CAC3B,EAAM,KAAK,KAEN,EAAe,IAGxB,EAAM,QAAU,UAAW,CACzB,GAAI,GAAQ,GACZ,YAAK,QAAQ,SAAS,EAAO,EAAM,CACjC,EAAM,KAAK,CAAC,EAAM,MAEb,EAAe,IAGpB,GACF,GAAM,OAAO,UAAY,EAAM,SAGjC,EAAM,SAAW,UAAW,CAC1B,GAAI,GAAc,GAClB,YAAK,QAAQ,SAAS,EAAO,EAAM,CACjC,EAAY,KAAK,EAAe,GAAQ,IAAM,EAAe,MAExD,EAAY,KAAK,MAI1B,EAAO,gBAAkB,GAGvB,EAAkC,UAAW,CAC/C,GAAI,CACF,GAAI,GAAkB,EAAO,gBAE7B,MACG,IAAI,GAAgB,QAAQ,aAAe,OAC3C,MAAO,GAAgB,UAAU,KAAQ,YACzC,MAAO,GAAgB,UAAU,SAAY,iBAEzC,EAAP,CACA,MAAO,KAIX,AAAK,KACH,IAGF,GAAI,GAAQ,EAAO,gBAAgB,UAEnC,AAAI,MAAO,GAAM,MAAS,YACxB,GAAM,KAAO,UAAW,CACtB,GAAI,GAAQ,KACR,EAAQ,GACZ,KAAK,QAAQ,SAAS,EAAO,EAAM,CACjC,EAAM,KAAK,CAAC,EAAM,IACb,EAAM,UACT,EAAM,OAAO,KAGjB,EAAM,KAAK,SAAS,EAAG,EAAG,CACxB,MAAI,GAAE,GAAK,EAAE,GACJ,GACE,EAAE,GAAK,EAAE,GACX,EAEA,IAGP,EAAM,UACR,GAAM,SAAW,IAEnB,OAAS,GAAI,EAAG,EAAI,EAAM,OAAQ,IAChC,KAAK,OAAO,EAAM,GAAG,GAAI,EAAM,GAAG,MAKpC,MAAO,GAAM,aAAgB,YAC/B,OAAO,eAAe,EAAO,cAAe,CAC1C,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,SAAS,EAAc,CAC5B,GAAI,KAAK,SACP,KAAK,SAAW,OACX,CACL,GAAI,GAAO,GACX,KAAK,QAAQ,SAAS,EAAO,EAAM,CACjC,EAAK,KAAK,KAEZ,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,IAC/B,KAAK,OAAO,EAAK,IAIrB,EAAe,EAAa,QAAQ,MAAO,IAG3C,OAFI,GAAa,EAAa,MAAM,KAChC,EACK,EAAI,EAAG,EAAI,EAAW,OAAQ,IACrC,EAAY,EAAW,GAAG,MAAM,KAChC,KAAK,OACH,EAAiB,EAAU,IAC1B,EAAU,OAAS,EAAK,EAAiB,EAAU,IAAM,SAUnE,MAAO,SAAW,YAAe,OAC5B,MAAO,SAAW,YAAe,OACjC,MAAO,OAAS,YAAe,KAAO,IAG9C,AAAC,UAAS,EAAQ,CAOhB,GAAI,GAAwB,UAAW,CACrC,GAAI,CACF,GAAI,GAAI,GAAI,GAAO,IAAI,IAAK,YAC5B,SAAE,SAAW,MACL,EAAE,OAAS,kBAAqB,EAAE,mBACnC,EAAP,CACA,MAAO,KAKP,EAAc,UAAW,CAC3B,GAAI,GAAO,EAAO,IAEd,EAAM,SAAS,EAAK,EAAM,CAC5B,AAAI,MAAO,IAAQ,UAAU,GAAM,OAAO,IACtC,GAAQ,MAAO,IAAS,UAAU,GAAO,OAAO,IAGpD,GAAI,GAAM,SAAU,EACpB,GAAI,GAAS,GAAO,WAAa,QAAU,IAAS,EAAO,SAAS,MAAO,CACzE,EAAO,EAAK,cACZ,EAAM,SAAS,eAAe,mBAAmB,IACjD,EAAc,EAAI,cAAc,QAChC,EAAY,KAAO,EACnB,EAAI,KAAK,YAAY,GACrB,GAAI,CACF,GAAI,EAAY,KAAK,QAAQ,KAAU,EAAG,KAAM,IAAI,OAAM,EAAY,YAC/D,EAAP,CACA,KAAM,IAAI,OAAM,0BAA4B,EAAO,WAAa,IAIpE,GAAI,GAAgB,EAAI,cAAc,KACtC,EAAc,KAAO,EACjB,GACF,GAAI,KAAK,YAAY,GACrB,EAAc,KAAO,EAAc,MAGrC,GAAI,GAAe,EAAI,cAAc,SAIrC,GAHA,EAAa,KAAO,MACpB,EAAa,MAAQ,EAEjB,EAAc,WAAa,KAAO,CAAC,IAAI,KAAK,EAAc,OAAU,CAAC,EAAa,iBAAmB,CAAC,EACxG,KAAM,IAAI,WAAU,eAGtB,OAAO,eAAe,KAAM,iBAAkB,CAC5C,MAAO,IAKT,GAAI,GAAe,GAAI,GAAO,gBAAgB,KAAK,QAC/C,EAAqB,GACrB,EAA2B,GAC3B,EAAQ,KACZ,CAAC,SAAU,SAAU,OAAO,QAAQ,SAAS,EAAY,CACvD,GAAI,IAAS,EAAa,GAC1B,EAAa,GAAc,UAAW,CACpC,GAAO,MAAM,EAAc,WACvB,GACF,GAA2B,GAC3B,EAAM,OAAS,EAAa,WAC5B,EAA2B,OAKjC,OAAO,eAAe,KAAM,eAAgB,CAC1C,MAAO,EACP,WAAY,KAGd,GAAI,GAAS,OACb,OAAO,eAAe,KAAM,sBAAuB,CACjD,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,UAAW,CAChB,AAAI,KAAK,SAAW,GAClB,GAAS,KAAK,OACV,GACF,GAAqB,GACrB,KAAK,aAAa,YAAY,KAAK,QACnC,EAAqB,SAO3B,EAAQ,EAAI,UAEZ,EAA6B,SAAS,EAAe,CACvD,OAAO,eAAe,EAAO,EAAe,CAC1C,IAAK,UAAW,CACd,MAAO,MAAK,eAAe,IAE7B,IAAK,SAAS,EAAO,CACnB,KAAK,eAAe,GAAiB,GAEvC,WAAY,MAIhB,CAAC,OAAQ,OAAQ,WAAY,OAAQ,YAClC,QAAQ,SAAS,EAAe,CAC/B,EAA2B,KAG/B,OAAO,eAAe,EAAO,SAAU,CACrC,IAAK,UAAW,CACd,MAAO,MAAK,eAAe,QAE7B,IAAK,SAAS,EAAO,CACnB,KAAK,eAAe,OAAY,EAChC,KAAK,uBAEP,WAAY,KAGd,OAAO,iBAAiB,EAAO,CAE7B,SAAY,CACV,IAAK,UAAW,CACd,GAAI,GAAQ,KACZ,MAAO,WAAW,CAChB,MAAO,GAAM,QAKnB,KAAQ,CACN,IAAK,UAAW,CACd,MAAO,MAAK,eAAe,KAAK,QAAQ,MAAO,KAEjD,IAAK,SAAS,EAAO,CACnB,KAAK,eAAe,KAAO,EAC3B,KAAK,uBAEP,WAAY,IAGd,SAAY,CACV,IAAK,UAAW,CACd,MAAO,MAAK,eAAe,SAAS,QAAQ,SAAU,MAExD,IAAK,SAAS,EAAO,CACnB,KAAK,eAAe,SAAW,GAEjC,WAAY,IAGd,OAAU,CACR,IAAK,UAAW,CAEd,GAAI,GAAe,CAAE,QAAS,GAAI,SAAU,IAAK,OAAQ,IAAK,KAAK,eAAe,UAI9E,EAAkB,KAAK,eAAe,MAAQ,GAChD,KAAK,eAAe,OAAS,GAE/B,MAAO,MAAK,eAAe,SACzB,KACA,KAAK,eAAe,SACnB,GAAmB,IAAM,KAAK,eAAe,KAAQ,KAE1D,WAAY,IAGd,SAAY,CACV,IAAK,UAAW,CACd,MAAO,IAET,IAAK,SAAS,EAAO,GAErB,WAAY,IAGd,SAAY,CACV,IAAK,UAAW,CACd,MAAO,IAET,IAAK,SAAS,EAAO,GAErB,WAAY,MAIhB,EAAI,gBAAkB,SAAS,EAAM,CACnC,MAAO,GAAK,gBAAgB,MAAM,EAAM,YAG1C,EAAI,gBAAkB,SAAS,EAAK,CAClC,MAAO,GAAK,gBAAgB,MAAM,EAAM,YAG1C,EAAO,IAAM,GAQf,GAJK,KACH,IAGG,EAAO,WAAa,QAAW,CAAE,WAAY,GAAO,UAAW,CAClE,GAAI,GAAY,UAAW,CACzB,MAAO,GAAO,SAAS,SAAW,KAAO,EAAO,SAAS,SAAY,GAAO,SAAS,KAAQ,IAAM,EAAO,SAAS,KAAQ,KAG7H,GAAI,CACF,OAAO,eAAe,EAAO,SAAU,SAAU,CAC/C,IAAK,EACL,WAAY,WAEP,EAAP,CACA,YAAY,UAAW,CACrB,EAAO,SAAS,OAAS,KACxB,SAKN,MAAO,SAAW,YAAe,OAC5B,MAAO,SAAW,YAAe,OACjC,MAAO,OAAS,YAAe,KAAO,MC3e9C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gFAeA,GAAI,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACJ,AAAC,UAAU,EAAS,CAChB,GAAI,GAAO,MAAO,SAAW,SAAW,OAAS,MAAO,OAAS,SAAW,KAAO,MAAO,OAAS,SAAW,KAAO,GACrH,AAAI,MAAO,SAAW,YAAc,OAAO,IACvC,OAAO,QAAS,CAAC,WAAY,SAAU,EAAS,CAAE,EAAQ,EAAe,EAAM,EAAe,OAE7F,AAAI,MAAO,KAAW,UAAY,MAAO,IAAO,SAAY,SAC7D,EAAQ,EAAe,EAAM,EAAe,GAAO,WAGnD,EAAQ,EAAe,IAE3B,WAAwB,EAAS,EAAU,CACvC,MAAI,KAAY,GACZ,CAAI,MAAO,QAAO,QAAW,WACzB,OAAO,eAAe,EAAS,aAAc,CAAE,MAAO,KAGtD,EAAQ,WAAa,IAGtB,SAAU,EAAI,EAAG,CAAE,MAAO,GAAQ,GAAM,EAAW,EAAS,EAAI,GAAK,MAGnF,SAAU,EAAU,CACjB,GAAI,GAAgB,OAAO,gBACtB,CAAE,UAAW,aAAgB,QAAS,SAAU,EAAG,EAAG,CAAE,EAAE,UAAY,IACvE,SAAU,EAAG,EAAG,CAAE,OAAS,KAAK,GAAG,AAAI,OAAO,UAAU,eAAe,KAAK,EAAG,IAAI,GAAE,GAAK,EAAE,KAEhG,GAAY,SAAU,EAAG,EAAG,CACxB,GAAI,MAAO,IAAM,YAAc,IAAM,KACjC,KAAM,IAAI,WAAU,uBAAyB,OAAO,GAAK,iCAC7D,EAAc,EAAG,GACjB,YAAc,CAAE,KAAK,YAAc,EACnC,EAAE,UAAY,IAAM,KAAO,OAAO,OAAO,GAAM,GAAG,UAAY,EAAE,UAAW,GAAI,KAGnF,GAAW,OAAO,QAAU,SAAU,EAAG,CACrC,OAAS,GAAG,EAAI,EAAG,EAAI,UAAU,OAAQ,EAAI,EAAG,IAAK,CACjD,EAAI,UAAU,GACd,OAAS,KAAK,GAAG,AAAI,OAAO,UAAU,eAAe,KAAK,EAAG,IAAI,GAAE,GAAK,EAAE,IAE9E,MAAO,IAGX,GAAS,SAAU,EAAG,EAAG,CACrB,GAAI,GAAI,GACR,OAAS,KAAK,GAAG,AAAI,OAAO,UAAU,eAAe,KAAK,EAAG,IAAM,EAAE,QAAQ,GAAK,GAC9E,GAAE,GAAK,EAAE,IACb,GAAI,GAAK,MAAQ,MAAO,QAAO,uBAA0B,WACrD,OAAS,GAAI,EAAG,EAAI,OAAO,sBAAsB,GAAI,EAAI,EAAE,OAAQ,IAC/D,AAAI,EAAE,QAAQ,EAAE,IAAM,GAAK,OAAO,UAAU,qBAAqB,KAAK,EAAG,EAAE,KACvE,GAAE,EAAE,IAAM,EAAE,EAAE,KAE1B,MAAO,IAGX,GAAa,SAAU,EAAY,EAAQ,EAAK,EAAM,CAClD,GAAI,GAAI,UAAU,OAAQ,EAAI,EAAI,EAAI,EAAS,IAAS,KAAO,EAAO,OAAO,yBAAyB,EAAQ,GAAO,EAAM,EAC3H,GAAI,MAAO,UAAY,UAAY,MAAO,SAAQ,UAAa,WAAY,EAAI,QAAQ,SAAS,EAAY,EAAQ,EAAK,OACpH,QAAS,GAAI,EAAW,OAAS,EAAG,GAAK,EAAG,IAAK,AAAI,GAAI,EAAW,KAAI,GAAK,GAAI,EAAI,EAAE,GAAK,EAAI,EAAI,EAAE,EAAQ,EAAK,GAAK,EAAE,EAAQ,KAAS,GAChJ,MAAO,GAAI,GAAK,GAAK,OAAO,eAAe,EAAQ,EAAK,GAAI,GAGhE,GAAU,SAAU,EAAY,EAAW,CACvC,MAAO,UAAU,EAAQ,EAAK,CAAE,EAAU,EAAQ,EAAK,KAG3D,GAAa,SAAU,EAAa,EAAe,CAC/C,GAAI,MAAO,UAAY,UAAY,MAAO,SAAQ,UAAa,WAAY,MAAO,SAAQ,SAAS,EAAa,IAGpH,GAAY,SAAU,EAAS,EAAY,EAAG,EAAW,CACrD,WAAe,EAAO,CAAE,MAAO,aAAiB,GAAI,EAAQ,GAAI,GAAE,SAAU,EAAS,CAAE,EAAQ,KAC/F,MAAO,IAAK,IAAM,GAAI,UAAU,SAAU,EAAS,EAAQ,CACvD,WAAmB,EAAO,CAAE,GAAI,CAAE,EAAK,EAAU,KAAK,UAAkB,EAAP,CAAY,EAAO,IACpF,WAAkB,EAAO,CAAE,GAAI,CAAE,EAAK,EAAU,MAAS,UAAkB,EAAP,CAAY,EAAO,IACvF,WAAc,EAAQ,CAAE,EAAO,KAAO,EAAQ,EAAO,OAAS,EAAM,EAAO,OAAO,KAAK,EAAW,GAClG,EAAM,GAAY,EAAU,MAAM,EAAS,GAAc,KAAK,WAItE,GAAc,SAAU,EAAS,EAAM,CACnC,GAAI,GAAI,CAAE,MAAO,EAAG,KAAM,UAAW,CAAE,GAAI,EAAE,GAAK,EAAG,KAAM,GAAE,GAAI,MAAO,GAAE,IAAO,KAAM,GAAI,IAAK,IAAM,EAAG,EAAG,EAAG,EAC/G,MAAO,GAAI,CAAE,KAAM,EAAK,GAAI,MAAS,EAAK,GAAI,OAAU,EAAK,IAAM,MAAO,SAAW,YAAe,GAAE,OAAO,UAAY,UAAW,CAAE,MAAO,QAAU,EACvJ,WAAc,EAAG,CAAE,MAAO,UAAU,EAAG,CAAE,MAAO,GAAK,CAAC,EAAG,KACzD,WAAc,EAAI,CACd,GAAI,EAAG,KAAM,IAAI,WAAU,mCAC3B,KAAO,GAAG,GAAI,CACV,GAAI,EAAI,EAAG,GAAM,GAAI,EAAG,GAAK,EAAI,EAAE,OAAY,EAAG,GAAK,EAAE,OAAc,IAAI,EAAE,SAAc,EAAE,KAAK,GAAI,GAAK,EAAE,OAAS,CAAE,GAAI,EAAE,KAAK,EAAG,EAAG,KAAK,KAAM,MAAO,GAE3J,OADI,EAAI,EAAG,GAAG,GAAK,CAAC,EAAG,GAAK,EAAG,EAAE,QACzB,EAAG,QACF,OAAQ,GAAG,EAAI,EAAI,UACnB,GAAG,SAAE,QAAgB,CAAE,MAAO,EAAG,GAAI,KAAM,QAC3C,GAAG,EAAE,QAAS,EAAI,EAAG,GAAI,EAAK,CAAC,GAAI,aACnC,GAAG,EAAK,EAAE,IAAI,MAAO,EAAE,KAAK,MAAO,iBAEpC,GAAM,EAAI,EAAE,KAAM,IAAI,EAAE,OAAS,GAAK,EAAE,EAAE,OAAS,KAAQ,GAAG,KAAO,GAAK,EAAG,KAAO,GAAI,CAAE,EAAI,EAAG,SACjG,GAAI,EAAG,KAAO,GAAM,EAAC,GAAM,EAAG,GAAK,EAAE,IAAM,EAAG,GAAK,EAAE,IAAM,CAAE,EAAE,MAAQ,EAAG,GAAI,MAC9E,GAAI,EAAG,KAAO,GAAK,EAAE,MAAQ,EAAE,GAAI,CAAE,EAAE,MAAQ,EAAE,GAAI,EAAI,EAAI,MAC7D,GAAI,GAAK,EAAE,MAAQ,EAAE,GAAI,CAAE,EAAE,MAAQ,EAAE,GAAI,EAAE,IAAI,KAAK,GAAK,MAC3D,AAAI,EAAE,IAAI,EAAE,IAAI,MAChB,EAAE,KAAK,MAAO,SAEtB,EAAK,EAAK,KAAK,EAAS,SACnB,EAAP,CAAY,EAAK,CAAC,EAAG,GAAI,EAAI,SAAK,CAAU,EAAI,EAAI,EACtD,GAAI,EAAG,GAAK,EAAG,KAAM,GAAG,GAAI,MAAO,CAAE,MAAO,EAAG,GAAK,EAAG,GAAK,OAAQ,KAAM,MAIlF,GAAe,SAAS,EAAG,EAAG,CAC1B,OAAS,KAAK,GAAG,AAAI,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAK,EAAG,IAAI,GAAgB,EAAG,EAAG,IAG/G,GAAkB,OAAO,OAAU,SAAS,EAAG,EAAG,EAAG,EAAI,CACrD,AAAI,IAAO,QAAW,GAAK,GAC3B,OAAO,eAAe,EAAG,EAAI,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,MAAO,GAAE,OAC1E,SAAS,EAAG,EAAG,EAAG,EAAI,CACxB,AAAI,IAAO,QAAW,GAAK,GAC3B,EAAE,GAAM,EAAE,IAGd,GAAW,SAAU,EAAG,CACpB,GAAI,GAAI,MAAO,SAAW,YAAc,OAAO,SAAU,EAAI,GAAK,EAAE,GAAI,EAAI,EAC5E,GAAI,EAAG,MAAO,GAAE,KAAK,GACrB,GAAI,GAAK,MAAO,GAAE,QAAW,SAAU,MAAO,CAC1C,KAAM,UAAY,CACd,MAAI,IAAK,GAAK,EAAE,QAAQ,GAAI,QACrB,CAAE,MAAO,GAAK,EAAE,KAAM,KAAM,CAAC,KAG5C,KAAM,IAAI,WAAU,EAAI,0BAA4B,oCAGxD,GAAS,SAAU,EAAG,EAAG,CACrB,GAAI,GAAI,MAAO,SAAW,YAAc,EAAE,OAAO,UACjD,GAAI,CAAC,EAAG,MAAO,GACf,GAAI,GAAI,EAAE,KAAK,GAAI,EAAG,EAAK,GAAI,EAC/B,GAAI,CACA,KAAQ,KAAM,QAAU,KAAM,IAAM,CAAE,GAAI,EAAE,QAAQ,MAAM,EAAG,KAAK,EAAE,aAEjE,EAAP,CAAgB,EAAI,CAAE,MAAO,UAC7B,CACI,GAAI,CACA,AAAI,GAAK,CAAC,EAAE,MAAS,GAAI,EAAE,SAAY,EAAE,KAAK,UAElD,CAAU,GAAI,EAAG,KAAM,GAAE,OAE7B,MAAO,IAIX,GAAW,UAAY,CACnB,OAAS,GAAK,GAAI,EAAI,EAAG,EAAI,UAAU,OAAQ,IAC3C,EAAK,EAAG,OAAO,GAAO,UAAU,KACpC,MAAO,IAIX,GAAiB,UAAY,CACzB,OAAS,GAAI,EAAG,EAAI,EAAG,EAAK,UAAU,OAAQ,EAAI,EAAI,IAAK,GAAK,UAAU,GAAG,OAC7E,OAAS,GAAI,MAAM,GAAI,EAAI,EAAG,EAAI,EAAG,EAAI,EAAI,IACzC,OAAS,GAAI,UAAU,GAAI,EAAI,EAAG,EAAK,EAAE,OAAQ,EAAI,EAAI,IAAK,IAC1D,EAAE,GAAK,EAAE,GACjB,MAAO,IAGX,GAAgB,SAAU,EAAI,EAAM,EAAM,CACtC,GAAI,GAAQ,UAAU,SAAW,EAAG,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,EAAI,EAAI,EAAG,IAC5E,AAAI,IAAM,CAAE,KAAK,MACR,IAAI,GAAK,MAAM,UAAU,MAAM,KAAK,EAAM,EAAG,IAClD,EAAG,GAAK,EAAK,IAGrB,MAAO,GAAG,OAAO,GAAM,MAAM,UAAU,MAAM,KAAK,KAGtD,GAAU,SAAU,EAAG,CACnB,MAAO,gBAAgB,IAAW,MAAK,EAAI,EAAG,MAAQ,GAAI,IAAQ,IAGtE,GAAmB,SAAU,EAAS,EAAY,EAAW,CACzD,GAAI,CAAC,OAAO,cAAe,KAAM,IAAI,WAAU,wCAC/C,GAAI,GAAI,EAAU,MAAM,EAAS,GAAc,IAAK,EAAG,EAAI,GAC3D,MAAO,GAAI,GAAI,EAAK,QAAS,EAAK,SAAU,EAAK,UAAW,EAAE,OAAO,eAAiB,UAAY,CAAE,MAAO,OAAS,EACpH,WAAc,EAAG,CAAE,AAAI,EAAE,IAAI,GAAE,GAAK,SAAU,EAAG,CAAE,MAAO,IAAI,SAAQ,SAAU,EAAG,EAAG,CAAE,EAAE,KAAK,CAAC,EAAG,EAAG,EAAG,IAAM,GAAK,EAAO,EAAG,OAC9H,WAAgB,EAAG,EAAG,CAAE,GAAI,CAAE,EAAK,EAAE,GAAG,UAAc,EAAP,CAAY,EAAO,EAAE,GAAG,GAAI,IAC3E,WAAc,EAAG,CAAE,EAAE,gBAAiB,IAAU,QAAQ,QAAQ,EAAE,MAAM,GAAG,KAAK,EAAS,GAAU,EAAO,EAAE,GAAG,GAAI,GACnH,WAAiB,EAAO,CAAE,EAAO,OAAQ,GACzC,WAAgB,EAAO,CAAE,EAAO,QAAS,GACzC,WAAgB,EAAG,EAAG,CAAE,AAAI,EAAE,GAAI,EAAE,QAAS,EAAE,QAAQ,EAAO,EAAE,GAAG,GAAI,EAAE,GAAG,MAGhF,GAAmB,SAAU,EAAG,CAC5B,GAAI,GAAG,EACP,MAAO,GAAI,GAAI,EAAK,QAAS,EAAK,QAAS,SAAU,EAAG,CAAE,KAAM,KAAO,EAAK,UAAW,EAAE,OAAO,UAAY,UAAY,CAAE,MAAO,OAAS,EAC1I,WAAc,EAAG,EAAG,CAAE,EAAE,GAAK,EAAE,GAAK,SAAU,EAAG,CAAE,MAAQ,GAAI,CAAC,GAAK,CAAE,MAAO,GAAQ,EAAE,GAAG,IAAK,KAAM,IAAM,UAAa,EAAI,EAAE,GAAK,GAAO,IAG/I,GAAgB,SAAU,EAAG,CACzB,GAAI,CAAC,OAAO,cAAe,KAAM,IAAI,WAAU,wCAC/C,GAAI,GAAI,EAAE,OAAO,eAAgB,EACjC,MAAO,GAAI,EAAE,KAAK,GAAM,GAAI,MAAO,KAAa,WAAa,GAAS,GAAK,EAAE,OAAO,YAAa,EAAI,GAAI,EAAK,QAAS,EAAK,SAAU,EAAK,UAAW,EAAE,OAAO,eAAiB,UAAY,CAAE,MAAO,OAAS,GAC9M,WAAc,EAAG,CAAE,EAAE,GAAK,EAAE,IAAM,SAAU,EAAG,CAAE,MAAO,IAAI,SAAQ,SAAU,EAAS,EAAQ,CAAE,EAAI,EAAE,GAAG,GAAI,EAAO,EAAS,EAAQ,EAAE,KAAM,EAAE,UAChJ,WAAgB,EAAS,EAAQ,EAAG,EAAG,CAAE,QAAQ,QAAQ,GAAG,KAAK,SAAS,EAAG,CAAE,EAAQ,CAAE,MAAO,EAAG,KAAM,KAAS,KAGtH,GAAuB,SAAU,EAAQ,EAAK,CAC1C,MAAI,QAAO,eAAkB,OAAO,eAAe,EAAQ,MAAO,CAAE,MAAO,IAAiB,EAAO,IAAM,EAClG,GAGX,GAAI,GAAqB,OAAO,OAAU,SAAS,EAAG,EAAG,CACrD,OAAO,eAAe,EAAG,UAAW,CAAE,WAAY,GAAM,MAAO,KAC9D,SAAS,EAAG,EAAG,CAChB,EAAE,QAAa,GAGnB,GAAe,SAAU,EAAK,CAC1B,GAAI,GAAO,EAAI,WAAY,MAAO,GAClC,GAAI,GAAS,GACb,GAAI,GAAO,KAAM,OAAS,KAAK,GAAK,AAAI,IAAM,WAAa,OAAO,UAAU,eAAe,KAAK,EAAK,IAAI,GAAgB,EAAQ,EAAK,GACtI,SAAmB,EAAQ,GACpB,GAGX,GAAkB,SAAU,EAAK,CAC7B,MAAQ,IAAO,EAAI,WAAc,EAAM,CAAE,QAAW,IAGxD,GAAyB,SAAU,EAAU,EAAO,EAAM,EAAG,CACzD,GAAI,IAAS,KAAO,CAAC,EAAG,KAAM,IAAI,WAAU,iDAC5C,GAAI,MAAO,IAAU,WAAa,IAAa,GAAS,CAAC,EAAI,CAAC,EAAM,IAAI,GAAW,KAAM,IAAI,WAAU,4EACvG,MAAO,KAAS,IAAM,EAAI,IAAS,IAAM,EAAE,KAAK,GAAY,EAAI,EAAE,MAAQ,EAAM,IAAI,IAGxF,GAAyB,SAAU,EAAU,EAAO,EAAO,EAAM,EAAG,CAChE,GAAI,IAAS,IAAK,KAAM,IAAI,WAAU,kCACtC,GAAI,IAAS,KAAO,CAAC,EAAG,KAAM,IAAI,WAAU,iDAC5C,GAAI,MAAO,IAAU,WAAa,IAAa,GAAS,CAAC,EAAI,CAAC,EAAM,IAAI,GAAW,KAAM,IAAI,WAAU,2EACvG,MAAQ,KAAS,IAAM,EAAE,KAAK,EAAU,GAAS,EAAI,EAAE,MAAQ,EAAQ,EAAM,IAAI,EAAU,GAAS,GAGxG,EAAS,YAAa,IACtB,EAAS,WAAY,IACrB,EAAS,SAAU,IACnB,EAAS,aAAc,IACvB,EAAS,UAAW,IACpB,EAAS,aAAc,IACvB,EAAS,YAAa,IACtB,EAAS,cAAe,IACxB,EAAS,eAAgB,IACzB,EAAS,kBAAmB,IAC5B,EAAS,WAAY,IACrB,EAAS,SAAU,IACnB,EAAS,WAAY,IACrB,EAAS,iBAAkB,IAC3B,EAAS,gBAAiB,IAC1B,EAAS,UAAW,IACpB,EAAS,mBAAoB,IAC7B,EAAS,mBAAoB,IAC7B,EAAS,gBAAiB,IAC1B,EAAS,uBAAwB,IACjC,EAAS,eAAgB,IACzB,EAAS,kBAAmB,IAC5B,EAAS,yBAA0B,IACnC,EAAS,yBAA0B,QChTvC;AAAA;AAAA;AAAA;AAAA;AAAA,GAMA,AAAC,UAA0C,EAAM,EAAS,CACzD,AAAG,MAAO,KAAY,UAAY,MAAO,KAAW,SACnD,GAAO,QAAU,IACb,AAAG,MAAO,SAAW,YAAc,OAAO,IAC9C,OAAO,GAAI,GACP,AAAG,MAAO,KAAY,SAC1B,GAAQ,YAAiB,IAEzB,EAAK,YAAiB,MACrB,GAAM,UAAW,CACpB,MAAiB,WAAW,CAClB,GAAI,GAAuB,CAE/B,IACC,SAAS,EAAyB,EAAqB,EAAqB,CAEnF,aAGA,EAAoB,EAAE,EAAqB,CACzC,QAAW,UAAW,CAAE,MAAqB,OAI/C,GAAI,GAAe,EAAoB,KACnC,EAAoC,EAAoB,EAAE,GAE1D,EAAS,EAAoB,KAC7B,EAA8B,EAAoB,EAAE,GAEpD,EAAa,EAAoB,KACjC,EAA8B,EAAoB,EAAE,GAExD,WAAiB,EAAK,CAA6B,MAAI,OAAO,SAAW,YAAc,MAAO,QAAO,UAAa,SAAY,EAAU,SAAiB,EAAK,CAAE,MAAO,OAAO,IAAiB,EAAU,SAAiB,EAAK,CAAE,MAAO,IAAO,MAAO,SAAW,YAAc,EAAI,cAAgB,QAAU,IAAQ,OAAO,UAAY,SAAW,MAAO,IAAiB,EAAQ,GAEnX,WAAyB,EAAU,EAAa,CAAE,GAAI,CAAE,aAAoB,IAAgB,KAAM,IAAI,WAAU,qCAEhH,WAA2B,EAAQ,EAAO,CAAE,OAAS,GAAI,EAAG,EAAI,EAAM,OAAQ,IAAK,CAAE,GAAI,GAAa,EAAM,GAAI,EAAW,WAAa,EAAW,YAAc,GAAO,EAAW,aAAe,GAAU,SAAW,IAAY,GAAW,SAAW,IAAM,OAAO,eAAe,EAAQ,EAAW,IAAK,IAE7S,WAAsB,EAAa,EAAY,EAAa,CAAE,MAAI,IAAY,EAAkB,EAAY,UAAW,GAAiB,GAAa,EAAkB,EAAa,GAAqB,EAQzM,GAAI,GAA+B,UAAY,CAI7C,WAAyB,EAAS,CAChC,EAAgB,KAAM,GAEtB,KAAK,eAAe,GACpB,KAAK,gBAQP,SAAa,EAAiB,CAAC,CAC7B,IAAK,iBACL,MAAO,UAA0B,CAC/B,GAAI,GAAU,UAAU,OAAS,GAAK,UAAU,KAAO,OAAY,UAAU,GAAK,GAClF,KAAK,OAAS,EAAQ,OACtB,KAAK,UAAY,EAAQ,UACzB,KAAK,QAAU,EAAQ,QACvB,KAAK,OAAS,EAAQ,OACtB,KAAK,KAAO,EAAQ,KACpB,KAAK,QAAU,EAAQ,QACvB,KAAK,aAAe,KAOrB,CACD,IAAK,gBACL,MAAO,UAAyB,CAC9B,AAAI,KAAK,KACP,KAAK,aACI,KAAK,QACd,KAAK,iBAOR,CACD,IAAK,oBACL,MAAO,UAA6B,CAClC,GAAI,GAAQ,SAAS,gBAAgB,aAAa,SAAW,MAC7D,KAAK,SAAW,SAAS,cAAc,YAEvC,KAAK,SAAS,MAAM,SAAW,OAE/B,KAAK,SAAS,MAAM,OAAS,IAC7B,KAAK,SAAS,MAAM,QAAU,IAC9B,KAAK,SAAS,MAAM,OAAS,IAE7B,KAAK,SAAS,MAAM,SAAW,WAC/B,KAAK,SAAS,MAAM,EAAQ,QAAU,QAAU,UAEhD,GAAI,GAAY,OAAO,aAAe,SAAS,gBAAgB,UAC/D,YAAK,SAAS,MAAM,IAAM,GAAG,OAAO,EAAW,MAC/C,KAAK,SAAS,aAAa,WAAY,IACvC,KAAK,SAAS,MAAQ,KAAK,KACpB,KAAK,WAOb,CACD,IAAK,aACL,MAAO,UAAsB,CAC3B,GAAI,GAAQ,KAER,EAAW,KAAK,oBAEpB,KAAK,oBAAsB,UAAY,CACrC,MAAO,GAAM,cAGf,KAAK,YAAc,KAAK,UAAU,iBAAiB,QAAS,KAAK,sBAAwB,GACzF,KAAK,UAAU,YAAY,GAC3B,KAAK,aAAe,IAAiB,GACrC,KAAK,WACL,KAAK,eAON,CACD,IAAK,aACL,MAAO,UAAsB,CAC3B,AAAI,KAAK,aACP,MAAK,UAAU,oBAAoB,QAAS,KAAK,qBACjD,KAAK,YAAc,KACnB,KAAK,oBAAsB,MAGzB,KAAK,UACP,MAAK,UAAU,YAAY,KAAK,UAChC,KAAK,SAAW,QAOnB,CACD,IAAK,eACL,MAAO,UAAwB,CAC7B,KAAK,aAAe,IAAiB,KAAK,QAC1C,KAAK,aAMN,CACD,IAAK,WACL,MAAO,UAAoB,CACzB,GAAI,GAEJ,GAAI,CACF,EAAY,SAAS,YAAY,KAAK,cAC/B,EAAP,CACA,EAAY,GAGd,KAAK,aAAa,KAOnB,CACD,IAAK,eACL,MAAO,SAAsB,EAAW,CACtC,KAAK,QAAQ,KAAK,EAAY,UAAY,QAAS,CACjD,OAAQ,KAAK,OACb,KAAM,KAAK,aACX,QAAS,KAAK,QACd,eAAgB,KAAK,eAAe,KAAK,UAO5C,CACD,IAAK,iBACL,MAAO,UAA0B,CAC/B,AAAI,KAAK,SACP,KAAK,QAAQ,QAGf,SAAS,cAAc,OACvB,OAAO,eAAe,oBAOvB,CACD,IAAK,UAKL,MAAO,UAAmB,CACxB,KAAK,eAEN,CACD,IAAK,SACL,IAAK,UAAe,CAClB,GAAI,GAAS,UAAU,OAAS,GAAK,UAAU,KAAO,OAAY,UAAU,GAAK,OAGjF,GAFA,KAAK,QAAU,EAEX,KAAK,UAAY,QAAU,KAAK,UAAY,MAC9C,KAAM,IAAI,OAAM,uDAQpB,IAAK,UAAe,CAClB,MAAO,MAAK,UAQb,CACD,IAAK,SACL,IAAK,SAAa,EAAQ,CACxB,GAAI,IAAW,OACb,GAAI,GAAU,EAAQ,KAAY,UAAY,EAAO,WAAa,EAAG,CACnE,GAAI,KAAK,SAAW,QAAU,EAAO,aAAa,YAChD,KAAM,IAAI,OAAM,qFAGlB,GAAI,KAAK,SAAW,OAAU,GAAO,aAAa,aAAe,EAAO,aAAa,aACnF,KAAM,IAAI,OAAM,yGAGlB,KAAK,QAAU,MAEf,MAAM,IAAI,OAAM,gDAStB,IAAK,UAAe,CAClB,MAAO,MAAK,YAIT,KAGwB,EAAoB,EAErD,WAA0B,EAAK,CAA6B,MAAI,OAAO,SAAW,YAAc,MAAO,QAAO,UAAa,SAAY,EAAmB,SAAiB,EAAK,CAAE,MAAO,OAAO,IAAiB,EAAmB,SAAiB,EAAK,CAAE,MAAO,IAAO,MAAO,SAAW,YAAc,EAAI,cAAgB,QAAU,IAAQ,OAAO,UAAY,SAAW,MAAO,IAAiB,EAAiB,GAEvZ,WAAkC,EAAU,EAAa,CAAE,GAAI,CAAE,aAAoB,IAAgB,KAAM,IAAI,WAAU,qCAEzH,YAAoC,EAAQ,EAAO,CAAE,OAAS,GAAI,EAAG,EAAI,EAAM,OAAQ,IAAK,CAAE,GAAI,GAAa,EAAM,GAAI,EAAW,WAAa,EAAW,YAAc,GAAO,EAAW,aAAe,GAAU,SAAW,IAAY,GAAW,SAAW,IAAM,OAAO,eAAe,EAAQ,EAAW,IAAK,IAEtT,YAA+B,EAAa,EAAY,EAAa,CAAE,MAAI,IAAY,GAA2B,EAAY,UAAW,GAAiB,GAAa,GAA2B,EAAa,GAAqB,EAEpO,YAAmB,EAAU,EAAY,CAAE,GAAI,MAAO,IAAe,YAAc,IAAe,KAAQ,KAAM,IAAI,WAAU,sDAAyD,EAAS,UAAY,OAAO,OAAO,GAAc,EAAW,UAAW,CAAE,YAAa,CAAE,MAAO,EAAU,SAAU,GAAM,aAAc,MAAe,GAAY,GAAgB,EAAU,GAEnX,YAAyB,EAAG,EAAG,CAAE,UAAkB,OAAO,gBAAkB,SAAyB,EAAG,EAAG,CAAE,SAAE,UAAY,EAAU,GAAa,GAAgB,EAAG,GAErK,YAAsB,EAAS,CAAE,GAAI,GAA4B,KAA6B,MAAO,WAAgC,CAAE,GAAI,GAAQ,GAAgB,GAAU,EAAQ,GAAI,EAA2B,CAAE,GAAI,IAAY,GAAgB,MAAM,YAAa,EAAS,QAAQ,UAAU,EAAO,UAAW,QAAqB,GAAS,EAAM,MAAM,KAAM,WAAc,MAAO,IAA2B,KAAM,IAE5Z,YAAoC,EAAM,EAAM,CAAE,MAAI,IAAS,GAAiB,KAAU,UAAY,MAAO,IAAS,YAAsB,EAAe,GAAuB,GAElL,YAAgC,EAAM,CAAE,GAAI,IAAS,OAAU,KAAM,IAAI,gBAAe,6DAAgE,MAAO,GAE/J,aAAqC,CAA0E,GAApE,MAAO,UAAY,aAAe,CAAC,QAAQ,WAA6B,QAAQ,UAAU,KAAM,MAAO,GAAO,GAAI,MAAO,QAAU,WAAY,MAAO,GAAM,GAAI,CAAE,YAAK,UAAU,SAAS,KAAK,QAAQ,UAAU,KAAM,GAAI,UAAY,KAAa,SAAe,EAAP,CAAY,MAAO,IAE1T,YAAyB,EAAG,CAAE,UAAkB,OAAO,eAAiB,OAAO,eAAiB,SAAyB,EAAG,CAAE,MAAO,GAAE,WAAa,OAAO,eAAe,IAAc,GAAgB,GAWxM,YAA2B,EAAQ,EAAS,CAC1C,GAAI,GAAY,kBAAkB,OAAO,GAEzC,GAAI,EAAC,EAAQ,aAAa,GAI1B,MAAO,GAAQ,aAAa,GAQ9B,GAAI,IAAyB,SAAU,EAAU,CAC/C,GAAU,EAAW,GAErB,GAAI,GAAS,GAAa,GAM1B,WAAmB,EAAS,EAAS,CACnC,GAAI,IAEJ,SAAyB,KAAM,GAE/B,GAAQ,EAAO,KAAK,MAEpB,GAAM,eAAe,GAErB,GAAM,YAAY,GAEX,GAST,UAAsB,EAAW,CAAC,CAChC,IAAK,iBACL,MAAO,UAA0B,CAC/B,GAAI,GAAU,UAAU,OAAS,GAAK,UAAU,KAAO,OAAY,UAAU,GAAK,GAClF,KAAK,OAAS,MAAO,GAAQ,QAAW,WAAa,EAAQ,OAAS,KAAK,cAC3E,KAAK,OAAS,MAAO,GAAQ,QAAW,WAAa,EAAQ,OAAS,KAAK,cAC3E,KAAK,KAAO,MAAO,GAAQ,MAAS,WAAa,EAAQ,KAAO,KAAK,YACrE,KAAK,UAAY,EAAiB,EAAQ,aAAe,SAAW,EAAQ,UAAY,SAAS,OAOlG,CACD,IAAK,cACL,MAAO,SAAqB,EAAS,CACnC,GAAI,IAAS,KAEb,KAAK,SAAW,IAAiB,EAAS,QAAS,SAAU,GAAG,CAC9D,MAAO,IAAO,QAAQ,QAQzB,CACD,IAAK,UACL,MAAO,SAAiB,EAAG,CACzB,GAAI,IAAU,EAAE,gBAAkB,EAAE,cAEpC,AAAI,KAAK,iBACP,MAAK,gBAAkB,MAGzB,KAAK,gBAAkB,GAAI,GAAiB,CAC1C,OAAQ,KAAK,OAAO,IACpB,OAAQ,KAAK,OAAO,IACpB,KAAM,KAAK,KAAK,IAChB,UAAW,KAAK,UAChB,QAAS,GACT,QAAS,SAQZ,CACD,IAAK,gBACL,MAAO,SAAuB,EAAS,CACrC,MAAO,IAAkB,SAAU,KAOpC,CACD,IAAK,gBACL,MAAO,SAAuB,EAAS,CACrC,GAAI,IAAW,GAAkB,SAAU,GAE3C,GAAI,GACF,MAAO,UAAS,cAAc,MASjC,CACD,IAAK,cAML,MAAO,SAAqB,EAAS,CACnC,MAAO,IAAkB,OAAQ,KAMlC,CACD,IAAK,UACL,MAAO,UAAmB,CACxB,KAAK,SAAS,UAEV,KAAK,iBACP,MAAK,gBAAgB,UACrB,KAAK,gBAAkB,SAGzB,CAAC,CACH,IAAK,cACL,MAAO,UAAuB,CAC5B,GAAI,GAAS,UAAU,OAAS,GAAK,UAAU,KAAO,OAAY,UAAU,GAAK,CAAC,OAAQ,OACtF,GAAU,MAAO,IAAW,SAAW,CAAC,GAAU,EAClD,GAAU,CAAC,CAAC,SAAS,sBACzB,UAAQ,QAAQ,SAAU,GAAQ,CAChC,GAAU,IAAW,CAAC,CAAC,SAAS,sBAAsB,MAEjD,OAIJ,GACN,KAE8B,GAAa,IAIxC,IACC,SAAS,EAAQ,CAExB,GAAI,GAAqB,EAKzB,GAAI,MAAO,UAAY,aAAe,CAAC,QAAQ,UAAU,QAAS,CAC9D,GAAI,GAAQ,QAAQ,UAEpB,EAAM,QAAU,EAAM,iBACN,EAAM,oBACN,EAAM,mBACN,EAAM,kBACN,EAAM,sBAU1B,WAAkB,EAAS,EAAU,CACjC,KAAO,GAAW,EAAQ,WAAa,GAAoB,CACvD,GAAI,MAAO,GAAQ,SAAY,YAC3B,EAAQ,QAAQ,GAClB,MAAO,GAET,EAAU,EAAQ,YAI1B,EAAO,QAAU,GAKX,IACC,SAAS,EAAQ,EAA0B,EAAqB,CAEvE,GAAI,GAAU,EAAoB,KAYlC,WAAmB,EAAS,EAAU,EAAM,EAAU,EAAY,CAC9D,GAAI,GAAa,EAAS,MAAM,KAAM,WAEtC,SAAQ,iBAAiB,EAAM,EAAY,GAEpC,CACH,QAAS,UAAW,CAChB,EAAQ,oBAAoB,EAAM,EAAY,KAe1D,WAAkB,EAAU,EAAU,EAAM,EAAU,EAAY,CAE9D,MAAI,OAAO,GAAS,kBAAqB,WAC9B,EAAU,MAAM,KAAM,WAI7B,MAAO,IAAS,WAGT,EAAU,KAAK,KAAM,UAAU,MAAM,KAAM,WAIlD,OAAO,IAAa,UACpB,GAAW,SAAS,iBAAiB,IAIlC,MAAM,UAAU,IAAI,KAAK,EAAU,SAAU,EAAS,CACzD,MAAO,GAAU,EAAS,EAAU,EAAM,EAAU,MAa5D,WAAkB,EAAS,EAAU,EAAM,EAAU,CACjD,MAAO,UAAS,EAAG,CACf,EAAE,eAAiB,EAAQ,EAAE,OAAQ,GAEjC,EAAE,gBACF,EAAS,KAAK,EAAS,IAKnC,EAAO,QAAU,GAKX,IACC,SAAS,EAAyB,EAAS,CAQlD,EAAQ,KAAO,SAAS,EAAO,CAC3B,MAAO,KAAU,QACV,YAAiB,cACjB,EAAM,WAAa,GAS9B,EAAQ,SAAW,SAAS,EAAO,CAC/B,GAAI,GAAO,OAAO,UAAU,SAAS,KAAK,GAE1C,MAAO,KAAU,QACT,KAAS,qBAAuB,IAAS,4BACzC,UAAY,IACZ,GAAM,SAAW,GAAK,EAAQ,KAAK,EAAM,MASrD,EAAQ,OAAS,SAAS,EAAO,CAC7B,MAAO,OAAO,IAAU,UACjB,YAAiB,SAS5B,EAAQ,GAAK,SAAS,EAAO,CACzB,GAAI,GAAO,OAAO,UAAU,SAAS,KAAK,GAE1C,MAAO,KAAS,sBAMd,IACC,SAAS,EAAQ,EAA0B,EAAqB,CAEvE,GAAI,GAAK,EAAoB,KACzB,EAAW,EAAoB,KAWnC,WAAgB,EAAQ,EAAM,EAAU,CACpC,GAAI,CAAC,GAAU,CAAC,GAAQ,CAAC,EACrB,KAAM,IAAI,OAAM,8BAGpB,GAAI,CAAC,EAAG,OAAO,GACX,KAAM,IAAI,WAAU,oCAGxB,GAAI,CAAC,EAAG,GAAG,GACP,KAAM,IAAI,WAAU,qCAGxB,GAAI,EAAG,KAAK,GACR,MAAO,GAAW,EAAQ,EAAM,GAE/B,GAAI,EAAG,SAAS,GACjB,MAAO,GAAe,EAAQ,EAAM,GAEnC,GAAI,EAAG,OAAO,GACf,MAAO,GAAe,EAAQ,EAAM,GAGpC,KAAM,IAAI,WAAU,6EAa5B,WAAoB,EAAM,EAAM,EAAU,CACtC,SAAK,iBAAiB,EAAM,GAErB,CACH,QAAS,UAAW,CAChB,EAAK,oBAAoB,EAAM,KAc3C,WAAwB,EAAU,EAAM,EAAU,CAC9C,aAAM,UAAU,QAAQ,KAAK,EAAU,SAAS,EAAM,CAClD,EAAK,iBAAiB,EAAM,KAGzB,CACH,QAAS,UAAW,CAChB,MAAM,UAAU,QAAQ,KAAK,EAAU,SAAS,EAAM,CAClD,EAAK,oBAAoB,EAAM,OAe/C,WAAwB,EAAU,EAAM,EAAU,CAC9C,MAAO,GAAS,SAAS,KAAM,EAAU,EAAM,GAGnD,EAAO,QAAU,GAKX,IACC,SAAS,EAAQ,CAExB,WAAgB,EAAS,CACrB,GAAI,GAEJ,GAAI,EAAQ,WAAa,SACrB,EAAQ,QAER,EAAe,EAAQ,cAElB,EAAQ,WAAa,SAAW,EAAQ,WAAa,WAAY,CACtE,GAAI,GAAa,EAAQ,aAAa,YAEtC,AAAK,GACD,EAAQ,aAAa,WAAY,IAGrC,EAAQ,SACR,EAAQ,kBAAkB,EAAG,EAAQ,MAAM,QAEtC,GACD,EAAQ,gBAAgB,YAG5B,EAAe,EAAQ,UAEtB,CACD,AAAI,EAAQ,aAAa,oBACrB,EAAQ,QAGZ,GAAI,GAAY,OAAO,eACnB,EAAQ,SAAS,cAErB,EAAM,mBAAmB,GACzB,EAAU,kBACV,EAAU,SAAS,GAEnB,EAAe,EAAU,WAG7B,MAAO,GAGX,EAAO,QAAU,GAKX,IACC,SAAS,EAAQ,CAExB,YAAc,EAKd,EAAE,UAAY,CACZ,GAAI,SAAU,EAAM,EAAU,EAAK,CACjC,GAAI,GAAI,KAAK,GAAM,MAAK,EAAI,IAE5B,MAAC,GAAE,IAAU,GAAE,GAAQ,KAAK,KAAK,CAC/B,GAAI,EACJ,IAAK,IAGA,MAGT,KAAM,SAAU,EAAM,EAAU,EAAK,CACnC,GAAI,GAAO,KACX,YAAqB,CACnB,EAAK,IAAI,EAAM,GACf,EAAS,MAAM,EAAK,WAGtB,SAAS,EAAI,EACN,KAAK,GAAG,EAAM,EAAU,IAGjC,KAAM,SAAU,EAAM,CACpB,GAAI,GAAO,GAAG,MAAM,KAAK,UAAW,GAChC,EAAW,OAAK,GAAM,MAAK,EAAI,KAAK,IAAS,IAAI,QACjD,EAAI,EACJ,EAAM,EAAO,OAEjB,IAAK,EAAG,EAAI,EAAK,IACf,EAAO,GAAG,GAAG,MAAM,EAAO,GAAG,IAAK,GAGpC,MAAO,OAGT,IAAK,SAAU,EAAM,EAAU,CAC7B,GAAI,GAAI,KAAK,GAAM,MAAK,EAAI,IACxB,EAAO,EAAE,GACT,EAAa,GAEjB,GAAI,GAAQ,EACV,OAAS,GAAI,EAAG,EAAM,EAAK,OAAQ,EAAI,EAAK,IAC1C,AAAI,EAAK,GAAG,KAAO,GAAY,EAAK,GAAG,GAAG,IAAM,GAC9C,EAAW,KAAK,EAAK,IAQ3B,MAAC,GAAW,OACR,EAAE,GAAQ,EACV,MAAO,GAAE,GAEN,OAIX,EAAO,QAAU,EACjB,EAAO,QAAQ,YAAc,IAQf,EAA2B,GAG/B,WAA6B,EAAU,CAEtC,GAAG,EAAyB,GAC3B,MAAO,GAAyB,GAAU,QAG3C,GAAI,GAAS,EAAyB,GAAY,CAGjD,QAAS,IAIV,SAAoB,GAAU,EAAQ,EAAO,QAAS,GAG/C,EAAO,QAKf,MAAC,WAAW,CAEX,EAAoB,EAAI,SAAS,EAAQ,CACxC,GAAI,GAAS,GAAU,EAAO,WAC7B,UAAW,CAAE,MAAO,GAAO,SAC3B,UAAW,CAAE,MAAO,IACrB,SAAoB,EAAE,EAAQ,CAAE,EAAG,IAC5B,MAKR,UAAW,CAEX,EAAoB,EAAI,SAAS,EAAS,EAAY,CACrD,OAAQ,KAAO,GACd,AAAG,EAAoB,EAAE,EAAY,IAAQ,CAAC,EAAoB,EAAE,EAAS,IAC5E,OAAO,eAAe,EAAS,EAAK,CAAE,WAAY,GAAM,IAAK,EAAW,SAO3E,UAAW,CACX,EAAoB,EAAI,SAAS,EAAK,EAAM,CAAE,MAAO,QAAO,UAAU,eAAe,KAAK,EAAK,OAOzF,EAAoB,QAEpC,YCx7BD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAeA,GAAI,IAAkB,UAOtB,GAAO,QAAU,GAUjB,YAAoB,EAAQ,CAC1B,GAAI,GAAM,GAAK,EACX,EAAQ,GAAgB,KAAK,GAEjC,GAAI,CAAC,EACH,MAAO,GAGT,GAAI,GACA,EAAO,GACP,EAAQ,EACR,EAAY,EAEhB,IAAK,EAAQ,EAAM,MAAO,EAAQ,EAAI,OAAQ,IAAS,CACrD,OAAQ,EAAI,WAAW,QAChB,IACH,EAAS,SACT,UACG,IACH,EAAS,QACT,UACG,IACH,EAAS,QACT,UACG,IACH,EAAS,OACT,UACG,IACH,EAAS,OACT,cAEA,SAGJ,AAAI,IAAc,GAChB,IAAQ,EAAI,UAAU,EAAW,IAGnC,EAAY,EAAQ,EACpB,GAAQ,EAGV,MAAO,KAAc,EACjB,EAAO,EAAI,UAAU,EAAW,GAChC,KC5EN,MAAM,UAAU,MAAM,OAAO,eAAe,MAAM,UAAU,OAAO,CAAC,aAAa,GAAG,MAAM,YAAY,CAAC,GAAI,GAAE,MAAM,UAAU,IAAI,EAAE,OAAO,UAAU,IAAI,MAAO,GAAE,MAAM,UAAU,OAAO,KAAK,KAAK,SAAS,EAAE,EAAE,CAAC,MAAO,OAAM,QAAQ,GAAG,EAAE,KAAK,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,GAAG,GAAG,IAAI,MAAM,UAAU,MAAM,KAAK,OAAO,SAAS,KAAK,MAAM,UAAU,SAAS,OAAO,eAAe,MAAM,UAAU,UAAU,CAAC,aAAa,GAAG,MAAM,SAAS,EAAE,CAAC,MAAO,OAAM,UAAU,IAAI,MAAM,KAAK,WAAW,QAAQ,SAAS,KCuBrf,OAAO,SCvBP,KAAK,OAAQ,MAAK,MAAM,SAAS,EAAE,EAAE,CAAC,MAAO,GAAE,GAAG,GAAG,GAAI,SAAQ,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,GAAI,gBAAe,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,AAAI,GAAE,OAAO,IAAI,IAAjB,EAAoB,WAAW,EAAE,WAAW,OAAO,EAAE,OAAO,IAAI,EAAE,YAAY,KAAK,UAAU,CAAC,MAAO,SAAQ,QAAQ,EAAE,eAAe,KAAK,UAAU,CAAC,MAAO,SAAQ,QAAQ,EAAE,cAAc,KAAK,KAAK,QAAQ,KAAK,UAAU,CAAC,MAAO,SAAQ,QAAQ,GAAI,MAAK,CAAC,EAAE,aAAa,MAAM,EAAE,QAAQ,CAAC,KAAK,UAAU,CAAC,MAAO,IAAG,QAAQ,UAAU,CAAC,MAAO,IAAG,IAAI,SAAS,EAAE,CAAC,MAAO,GAAE,EAAE,gBAAgB,IAAI,SAAS,EAAE,CAAC,MAAO,GAAE,eAAgB,OAAM,OAAQ,KAAK,GAAE,KAAK,EAAE,QAAQ,MAAM,EAAE,IAAI,EAAE,OAAO,UAAU,CAAC,EAAE,wBAAwB,QAAQ,+BAA+B,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,gBAAgB,AAAW,EAAE,aAAb,UAAyB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,EAAE,QAAQ,IAAI,EAAE,KAAK,EAAE,MAAM,UDyB14B,OAAO,SEzBP,OAAkB,WACZ,CACF,YACA,YACA,UACA,cACA,WACA,cACA,aACA,eACA,gBACA,mBACA,YACA,SACA,YACA,kBACA,gBACA,WACA,oBACA,oBACA,iBACA,wBACA,gBACA,mBACA,0BACA,2BACA,WCtBE,WAAqB,EAAU,CACnC,MAAO,OAAO,IAAU,WCIpB,YAA8B,EAAgC,CAClE,GAAM,GAAS,SAAC,EAAa,CAC3B,MAAM,KAAK,GACX,EAAS,MAAQ,GAAI,SAAQ,OAGzB,EAAW,EAAW,GAC5B,SAAS,UAAY,OAAO,OAAO,MAAM,WACzC,EAAS,UAAU,YAAc,EAC1B,ECAF,GAAM,IAA+C,GAC1D,SAAC,EAAM,CACL,MAAA,UAA4C,EAA0B,CACpE,EAAO,MACP,KAAK,QAAU,EACR,EAAO,OAAM;EACxB,EAAO,IAAI,SAAC,EAAK,EAAC,CAAK,MAAG,GAAI,EAAC,KAAK,EAAI,aAAc,KAAK;KACnD,GACJ,KAAK,KAAO,sBACZ,KAAK,OAAS,KCtBd,YAAuB,EAA6B,EAAO,CAC/D,GAAI,EAAK,CACP,GAAM,GAAQ,EAAI,QAAQ,GAC1B,GAAK,GAAS,EAAI,OAAO,EAAO,ICSpC,GAAA,IAAA,UAAA,CAyBE,WAAoB,EAA4B,CAA5B,KAAA,gBAAA,EAdb,KAAA,OAAS,GAER,KAAA,WAAmD,KAMnD,KAAA,WAAoD,KAc5D,SAAA,UAAA,YAAA,UAAA,aACM,EAEJ,GAAI,CAAC,KAAK,OAAQ,CAChB,KAAK,OAAS,GAGN,GAAA,GAAe,KAAI,WAC3B,GAAI,EAEF,GADA,KAAK,WAAa,KACd,MAAM,QAAQ,OAChB,OAAqB,GAAA,GAAA,GAAU,EAAA,EAAA,OAAA,CAAA,EAAA,KAAA,EAAA,EAAA,OAAE,CAA5B,GAAM,GAAM,EAAA,MACf,EAAO,OAAO,4GAGhB,GAAW,OAAO,MAId,GAAA,GAAoB,KAAI,gBAChC,GAAI,EAAW,GACb,GAAI,CACF,UACO,EAAP,CACA,EAAS,YAAa,IAAsB,EAAE,OAAS,CAAC,GAIpD,GAAA,GAAe,KAAI,WAC3B,GAAI,EAAY,CACd,KAAK,WAAa,SAClB,OAAuB,GAAA,GAAA,GAAU,EAAA,EAAA,OAAA,CAAA,EAAA,KAAA,EAAA,EAAA,OAAE,CAA9B,GAAM,GAAQ,EAAA,MACjB,GAAI,CACF,GAAa,SACN,EAAP,CACA,EAAS,GAAM,KAAN,EAAU,GACnB,AAAI,YAAe,IACjB,EAAM,EAAA,EAAA,GAAA,EAAO,IAAM,EAAK,EAAI,SAE5B,EAAO,KAAK,uGAMpB,GAAI,EACF,KAAM,IAAI,IAAoB,KAuBpC,EAAA,UAAA,IAAA,SAAI,EAAuB,OAGzB,GAAI,GAAY,IAAa,KAC3B,GAAI,KAAK,OAGP,GAAa,OACR,CACL,GAAI,YAAoB,GAAc,CAGpC,GAAI,EAAS,QAAU,EAAS,WAAW,MACzC,OAEF,EAAS,WAAW,MAEtB,AAAC,MAAK,WAAa,GAAA,KAAK,cAAU,MAAA,IAAA,OAAA,EAAI,IAAI,KAAK,KAU7C,EAAA,UAAA,WAAR,SAAmB,EAAoB,CAC7B,GAAA,GAAe,KAAI,WAC3B,MAAO,KAAe,GAAW,MAAM,QAAQ,IAAe,EAAW,SAAS,IAU5E,EAAA,UAAA,WAAR,SAAmB,EAAoB,CAC7B,GAAA,GAAe,KAAI,WAC3B,KAAK,WAAa,MAAM,QAAQ,GAAe,GAAW,KAAK,GAAS,GAAc,EAAa,CAAC,EAAY,GAAU,GAOpH,EAAA,UAAA,cAAR,SAAsB,EAAoB,CAChC,GAAA,GAAe,KAAI,WAC3B,AAAI,IAAe,EACjB,KAAK,WAAa,KACT,MAAM,QAAQ,IACvB,GAAU,EAAY,IAkB1B,EAAA,UAAA,OAAA,SAAO,EAAsC,CACnC,GAAA,GAAe,KAAI,WAC3B,GAAc,GAAU,EAAY,GAEhC,YAAoB,IACtB,EAAS,cAAc,OAhLb,EAAA,MAAS,UAAA,CACrB,GAAM,GAAQ,GAAI,GAClB,SAAM,OAAS,GACR,KAgLX,KAEO,GAAM,IAAqB,GAAa,MAEzC,YAAyB,EAAU,CACvC,MACE,aAAiB,KAChB,GAAS,UAAY,IAAS,EAAW,EAAM,SAAW,EAAW,EAAM,MAAQ,EAAW,EAAM,aAIzG,YAAsB,EAAuC,CAC3D,AAAI,EAAW,GACb,IAEA,EAAS,cC9MN,GAAM,IAAuB,CAClC,iBAAkB,KAClB,sBAAuB,KACvB,QAAS,OACT,sCAAuC,GACvC,yBAA0B,ICErB,GAAM,IAAmC,CAG9C,WAAU,UAAA,QAAC,GAAA,GAAA,EAAA,EAAA,EAAA,UAAA,OAAA,IAAA,EAAA,GAAA,UAAA,GACD,GAAA,GAAa,GAAe,SACpC,MAAQ,KAAQ,KAAA,OAAR,EAAU,aAAc,YAAW,MAAA,OAAA,EAAA,GAAA,EAAI,MAEjD,aAAY,SAAC,EAAM,CACT,GAAA,GAAa,GAAe,SACpC,MAAQ,KAAQ,KAAA,OAAR,EAAU,eAAgB,cAAc,IAElD,SAAU,QCbN,YAA+B,EAAQ,CAC3C,GAAgB,WAAW,UAAA,CACjB,GAAA,GAAqB,GAAM,iBACnC,GAAI,EAEF,EAAiB,OAGjB,MAAM,KCnBN,aAAc,ECMb,GAAM,IAAyB,UAAA,CAAM,MAAA,IAAmB,IAAK,OAAW,WAOzE,YAA4B,EAAU,CAC1C,MAAO,IAAmB,IAAK,OAAW,GAQtC,YAA8B,EAAQ,CAC1C,MAAO,IAAmB,IAAK,EAAO,QASlC,YAA6B,EAAuB,EAAY,EAAU,CAC9E,MAAO,CACL,KAAI,EACJ,MAAK,EACL,MAAK,GCnCT,GAAI,IAAuD,KASrD,YAAuB,EAAc,CACzC,GAAI,GAAO,sCAAuC,CAChD,GAAM,GAAS,CAAC,GAKhB,GAJI,GACF,IAAU,CAAE,YAAa,GAAO,MAAO,OAEzC,IACI,EAAQ,CACJ,GAAA,GAAyB,GAAvB,EAAW,EAAA,YAAE,EAAK,EAAA,MAE1B,GADA,GAAU,KACN,EACF,KAAM,QAMV,KAQE,YAAuB,EAAQ,CACnC,AAAI,GAAO,uCAAyC,IAClD,IAAQ,YAAc,GACtB,GAAQ,MAAQ,GCnBpB,GAAA,IAAA,SAAA,EAAA,CAAmC,EAAA,EAAA,GA6BjC,WAAY,EAA6C,CAAzD,GAAA,GACE,EAAA,KAAA,OAAO,KATC,SAAA,UAAqB,GAU7B,AAAI,EACF,GAAK,YAAc,EAGf,GAAe,IACjB,EAAY,IAAI,IAGlB,EAAK,YAAc,KAvBhB,SAAA,OAAP,SAAiB,EAAwB,EAA2B,EAAqB,CACvF,MAAO,IAAI,IAAe,EAAM,EAAO,IAiCzC,EAAA,UAAA,KAAA,SAAK,EAAS,CACZ,AAAI,KAAK,UACP,GAA0B,GAAiB,GAAQ,MAEnD,KAAK,MAAM,IAWf,EAAA,UAAA,MAAA,SAAM,EAAS,CACb,AAAI,KAAK,UACP,GAA0B,GAAkB,GAAM,MAElD,MAAK,UAAY,GACjB,KAAK,OAAO,KAUhB,EAAA,UAAA,SAAA,UAAA,CACE,AAAI,KAAK,UACP,GAA0B,GAAuB,MAEjD,MAAK,UAAY,GACjB,KAAK,cAIT,EAAA,UAAA,YAAA,UAAA,CACE,AAAK,KAAK,QACR,MAAK,UAAY,GACjB,EAAA,UAAM,YAAW,KAAA,MACjB,KAAK,YAAc,OAIb,EAAA,UAAA,MAAV,SAAgB,EAAQ,CACtB,KAAK,YAAY,KAAK,IAGd,EAAA,UAAA,OAAV,SAAiB,EAAQ,CACvB,GAAI,CACF,KAAK,YAAY,MAAM,WAEvB,KAAK,gBAIC,EAAA,UAAA,UAAV,UAAA,CACE,GAAI,CACF,KAAK,YAAY,mBAEjB,KAAK,gBAGX,GApHmC,IAsHnC,GAAA,IAAA,SAAA,EAAA,CAAuC,EAAA,EAAA,GACrC,WACE,EACA,EACA,EAA8B,CAHhC,GAAA,GAKE,EAAA,KAAA,OAAO,KAEH,EACJ,GAAI,EAAW,GAGb,EAAO,UACE,EAAgB,CAMzB,AAAG,EAA0B,EAAc,KAAlC,EAAoB,EAAc,MAA3B,EAAa,EAAc,SAC3C,GAAI,GACJ,AAAI,GAAQ,GAAO,yBAIjB,GAAU,OAAO,OAAO,GACxB,EAAQ,YAAc,UAAA,CAAM,MAAA,GAAK,gBAEjC,EAAU,EAEZ,EAAO,GAAI,KAAA,OAAJ,EAAM,KAAK,GAClB,EAAQ,GAAK,KAAA,OAAL,EAAO,KAAK,GACpB,EAAW,GAAQ,KAAA,OAAR,EAAU,KAAK,GAK5B,SAAK,YAAc,CACjB,KAAM,EAAO,GAAqB,EAAM,GAAQ,GAChD,MAAO,GAAqB,GAAK,KAAL,EAAS,GAAqB,GAC1D,SAAU,EAAW,GAAqB,EAAU,GAAQ,MAGlE,MAAA,IA3CuC,IAoDvC,YAA8B,EAA8B,EAA6B,CACvF,MAAO,WAAA,QAAC,GAAA,GAAA,EAAA,EAAA,EAAA,UAAA,OAAA,IAAA,EAAA,GAAA,UAAA,GACN,GAAI,CACF,EAAO,MAAA,OAAA,EAAA,GAAA,EAAI,WACJ,EAAP,CACA,AAAI,GAAO,sCACT,GAAa,GAIb,GAAqB,KAW7B,YAA6B,EAAQ,CACnC,KAAM,GAQR,YAAmC,EAA2C,EAA2B,CAC/F,GAAA,GAA0B,GAAM,sBACxC,GAAyB,GAAgB,WAAW,UAAA,CAAM,MAAA,GAAsB,EAAc,KAQzF,GAAM,IAA6D,CACxE,OAAQ,GACR,KAAM,GACN,MAAO,GACP,SAAU,ICzOL,GAAM,IAA+B,UAAA,CAAM,MAAC,OAAO,SAAW,YAAc,OAAO,YAAe,kBCDnG,YAAsB,EAAI,CAC9B,MAAO,GCsEH,aAAc,QAAC,GAAA,GAAA,EAAA,EAAA,EAAA,UAAA,OAAA,IAAA,EAAA,GAAA,UAAA,GACnB,MAAO,IAAc,GAIjB,YAA8B,EAA+B,CACjE,MAAI,GAAI,SAAW,EACV,GAGL,EAAI,SAAW,EACV,EAAI,GAGN,SAAe,EAAQ,CAC5B,MAAO,GAAI,OAAO,SAAC,EAAW,EAAuB,CAAK,MAAA,GAAG,IAAO,ICnExE,GAAA,GAAA,UAAA,CAkBE,WAAY,EAA6E,CACvF,AAAI,GACF,MAAK,WAAa,GA8BtB,SAAA,UAAA,KAAA,SAAQ,EAAyB,CAC/B,GAAM,GAAa,GAAI,GACvB,SAAW,OAAS,KACpB,EAAW,SAAW,EACf,GA2IT,EAAA,UAAA,UAAA,SACE,EACA,EACA,EAA8B,CAHhC,GAAA,GAAA,KAKQ,EAAa,GAAa,GAAkB,EAAiB,GAAI,IAAe,EAAgB,EAAO,GAE7G,UAAa,UAAA,CACL,GAAA,GAAuB,EAArB,EAAQ,EAAA,SAAE,EAAM,EAAA,OACxB,EAAW,IACT,EAGI,EAAS,KAAK,EAAY,GAC1B,EAIA,EAAK,WAAW,GAGhB,EAAK,cAAc,MAIpB,GAIC,EAAA,UAAA,cAAV,SAAwB,EAAmB,CACzC,GAAI,CACF,MAAO,MAAK,WAAW,SAChB,EAAP,CAIA,EAAK,MAAM,KA+Df,EAAA,UAAA,QAAA,SAAQ,EAA0B,EAAoC,CAAtE,GAAA,GAAA,KACE,SAAc,GAAe,GAEtB,GAAI,GAAkB,SAAC,EAAS,EAAM,CAC3C,GAAM,GAAa,GAAI,IAAkB,CACvC,KAAM,SAAC,EAAK,CACV,GAAI,CACF,EAAK,SACE,EAAP,CACA,EAAO,GACP,EAAW,gBAGf,MAAO,EACP,SAAU,IAEZ,EAAK,UAAU,MAKT,EAAA,UAAA,WAAV,SAAqB,EAA2B,OAC9C,MAAO,GAAA,KAAK,UAAM,MAAA,IAAA,OAAA,OAAA,EAAE,UAAU,IAQhC,EAAA,UAAC,IAAD,UAAA,CACE,MAAO,OA6FT,EAAA,UAAA,KAAA,UAAA,QAAK,GAAA,GAAA,EAAA,EAAA,EAAA,UAAA,OAAA,IAAA,EAAA,GAAA,UAAA,GACH,MAAO,IAAc,GAAY,OA8BnC,EAAA,UAAA,UAAA,SAAU,EAAoC,CAA9C,GAAA,GAAA,KACE,SAAc,GAAe,GAEtB,GAAI,GAAY,SAAC,EAAS,EAAM,CACrC,GAAI,GACJ,EAAK,UACH,SAAC,EAAI,CAAK,MAAC,GAAQ,GACnB,SAAC,EAAQ,CAAK,MAAA,GAAO,IACrB,UAAA,CAAM,MAAA,GAAQ,QApab,EAAA,OAAkC,SAAI,EAAwD,CACnG,MAAO,IAAI,GAAc,IAua7B,KASA,YAAwB,EAA+C,OACrE,MAAO,GAAA,GAAW,KAAX,EAAe,GAAO,WAAO,MAAA,IAAA,OAAA,EAAI,QAG1C,YAAuB,EAAU,CAC/B,MAAO,IAAS,EAAW,EAAM,OAAS,EAAW,EAAM,QAAU,EAAW,EAAM,UAGxF,YAAyB,EAAU,CACjC,MAAQ,IAAS,YAAiB,KAAgB,GAAW,IAAU,GAAe,GCxelF,YAAkB,EAAW,CACjC,MAAO,GAAW,GAAM,KAAA,OAAN,EAAQ,MAOtB,WACJ,EAAqF,CAErF,MAAO,UAAC,EAAqB,CAC3B,GAAI,GAAQ,GACV,MAAO,GAAO,KAAK,SAA+B,EAA2B,CAC3E,GAAI,CACF,MAAO,GAAK,EAAc,YACnB,EAAP,CACA,KAAK,MAAM,MAIjB,KAAM,IAAI,WAAU,2CCvBxB,GAAA,GAAA,SAAA,EAAA,CAA2C,EAAA,EAAA,GAazC,WACE,EACA,EACA,EACA,EACQ,EAAuB,CALjC,GAAA,GAmBE,EAAA,KAAA,KAAM,IAAY,KAdV,SAAA,WAAA,EAeR,EAAK,MAAQ,EACT,SAAuC,EAAQ,CAC7C,GAAI,CACF,EAAO,SACA,EAAP,CACA,EAAY,MAAM,KAGtB,EAAA,UAAM,MACV,EAAK,OAAS,EACV,SAAuC,EAAQ,CAC7C,GAAI,CACF,EAAQ,SACD,EAAP,CAEA,EAAY,MAAM,WAGlB,KAAK,gBAGT,EAAA,UAAM,OACV,EAAK,UAAY,EACb,UAAA,CACE,GAAI,CACF,UACO,EAAP,CAEA,EAAY,MAAM,WAGlB,KAAK,gBAGT,EAAA,UAAM,YAGZ,SAAA,UAAA,YAAA,UAAA,OACU,EAAW,KAAI,OACvB,EAAA,UAAM,YAAW,KAAA,MAEjB,CAAC,GAAU,IAAA,KAAK,cAAU,MAAA,IAAA,QAAA,EAAA,KAAf,QAEf,GA5E2C,ICQpC,GAAM,IAAiD,CAG5D,SAAA,SAAS,EAAQ,CACf,GAAI,GAAU,sBACV,EAAkD,qBAC9C,EAAa,GAAsB,SAC3C,AAAI,GACF,GAAU,EAAS,sBACnB,EAAS,EAAS,sBAEpB,GAAM,GAAS,EAAQ,SAAC,EAAS,CAI/B,EAAS,OACT,EAAS,KAEX,MAAO,IAAI,IAAa,UAAA,CAAM,MAAA,IAAM,KAAA,OAAN,EAAS,MAEzC,sBAAqB,UAAA,QAAC,GAAA,GAAA,EAAA,EAAA,EAAA,UAAA,OAAA,IAAA,EAAA,GAAA,UAAA,GACZ,GAAA,GAAa,GAAsB,SAC3C,MAAQ,KAAQ,KAAA,OAAR,EAAU,wBAAyB,uBAAsB,MAAA,OAAA,EAAA,GAAA,EAAI,MAEvE,qBAAoB,UAAA,QAAC,GAAA,GAAA,EAAA,EAAA,EAAA,UAAA,OAAA,IAAA,EAAA,GAAA,UAAA,GACX,GAAA,GAAa,GAAsB,SAC3C,MAAQ,KAAQ,KAAA,OAAR,EAAU,uBAAwB,sBAAqB,MAAA,OAAA,EAAA,GAAA,EAAI,MAErE,SAAU,QCrBL,GAAM,IAAuD,GAClE,SAAC,EAAM,CACL,MAAA,WAAoC,CAClC,EAAO,MACP,KAAK,KAAO,0BACZ,KAAK,QAAU,yBCVrB,GAAA,GAAA,SAAA,EAAA,CAAgC,EAAA,EAAA,GAqB9B,YAAA,CAAA,GAAA,GAEE,EAAA,KAAA,OAAO,KAtBT,SAAA,OAAS,GAET,EAAA,UAA2B,GAE3B,EAAA,UAAY,GAEZ,EAAA,SAAW,GAEX,EAAA,YAAmB,OAkBnB,SAAA,UAAA,KAAA,SAAQ,EAAwB,CAC9B,GAAM,GAAU,GAAI,IAAiB,KAAM,MAC3C,SAAQ,SAAW,EACZ,GAIC,EAAA,UAAA,eAAV,UAAA,CACE,GAAI,KAAK,OACP,KAAM,IAAI,KAId,EAAA,UAAA,KAAA,SAAK,EAAQ,CAAb,GAAA,GAAA,KACE,GAAa,UAAA,SAEX,GADA,EAAK,iBACD,CAAC,EAAK,UAAW,CACnB,GAAM,GAAO,EAAK,UAAU,YAC5B,OAAuB,GAAA,GAAA,GAAI,EAAA,EAAA,OAAA,CAAA,EAAA,KAAA,EAAA,EAAA,OAAE,CAAxB,GAAM,GAAQ,EAAA,MACjB,EAAS,KAAK,0GAMtB,EAAA,UAAA,MAAA,SAAM,EAAQ,CAAd,GAAA,GAAA,KACE,GAAa,UAAA,CAEX,GADA,EAAK,iBACD,CAAC,EAAK,UAAW,CACnB,EAAK,SAAW,EAAK,UAAY,GACjC,EAAK,YAAc,EAEnB,OADQ,GAAc,EAAI,UACnB,EAAU,QACf,EAAU,QAAS,MAAM,OAMjC,EAAA,UAAA,SAAA,UAAA,CAAA,GAAA,GAAA,KACE,GAAa,UAAA,CAEX,GADA,EAAK,iBACD,CAAC,EAAK,UAAW,CACnB,EAAK,UAAY,GAEjB,OADQ,GAAc,EAAI,UACnB,EAAU,QACf,EAAU,QAAS,eAM3B,EAAA,UAAA,YAAA,UAAA,CACE,KAAK,UAAY,KAAK,OAAS,GAC/B,KAAK,UAAY,MAGnB,OAAA,eAAI,EAAA,UAAA,WAAQ,KAAZ,UAAA,OACE,MAAO,IAAA,KAAK,aAAS,MAAA,IAAA,OAAA,OAAA,EAAE,QAAS,mCAIxB,EAAA,UAAA,cAAV,SAAwB,EAAyB,CAC/C,YAAK,iBACE,EAAA,UAAM,cAAa,KAAA,KAAC,IAInB,EAAA,UAAA,WAAV,SAAqB,EAAyB,CAC5C,YAAK,iBACL,KAAK,wBAAwB,GACtB,KAAK,gBAAgB,IAIpB,EAAA,UAAA,gBAAV,SAA0B,EAA2B,CAC7C,GAAA,GAAqC,KAAnC,EAAQ,EAAA,SAAE,EAAS,EAAA,UAAE,EAAS,EAAA,UACtC,MAAO,IAAY,EACf,GACC,GAAU,KAAK,GAAa,GAAI,IAAa,UAAA,CAAM,MAAA,IAAU,EAAW,OAIrE,EAAA,UAAA,wBAAV,SAAkC,EAA2B,CACrD,GAAA,GAAuC,KAArC,EAAQ,EAAA,SAAE,EAAW,EAAA,YAAE,EAAS,EAAA,UACxC,AAAI,EACF,EAAW,MAAM,GACR,GACT,EAAW,YAUf,EAAA,UAAA,aAAA,UAAA,CACE,GAAM,GAAkB,GAAI,GAC5B,SAAW,OAAS,KACb,GA/GF,EAAA,OAAkC,SAAI,EAA0B,EAAqB,CAC1F,MAAO,IAAI,IAAoB,EAAa,IAgHhD,GAlIgC,GAuIhC,GAAA,IAAA,SAAA,EAAA,CAAyC,EAAA,EAAA,GACvC,WAES,EACP,EAAsB,CAHxB,GAAA,GAKE,EAAA,KAAA,OAAO,KAHA,SAAA,YAAA,EAIP,EAAK,OAAS,IAGhB,SAAA,UAAA,KAAA,SAAK,EAAQ,SACX,AAAA,GAAA,GAAA,KAAK,eAAW,MAAA,IAAA,OAAA,OAAA,EAAE,QAAI,MAAA,IAAA,QAAA,EAAA,KAAA,EAAG,IAG3B,EAAA,UAAA,MAAA,SAAM,EAAQ,SACZ,AAAA,GAAA,GAAA,KAAK,eAAW,MAAA,IAAA,OAAA,OAAA,EAAE,SAAK,MAAA,IAAA,QAAA,EAAA,KAAA,EAAG,IAG5B,EAAA,UAAA,SAAA,UAAA,SACE,AAAA,GAAA,GAAA,KAAK,eAAW,MAAA,IAAA,OAAA,OAAA,EAAE,YAAQ,MAAA,IAAA,QAAA,EAAA,KAAA,IAIlB,EAAA,UAAA,WAAV,SAAqB,EAAyB,SAC5C,MAAO,GAAA,GAAA,KAAK,UAAM,MAAA,IAAA,OAAA,OAAA,EAAE,UAAU,MAAW,MAAA,IAAA,OAAA,EAAI,IAEjD,GA1ByC,GCjJlC,GAAM,IAA+C,CAC1D,IAAG,UAAA,CAGD,MAAQ,IAAsB,UAAY,MAAM,OAElD,SAAU,QCwBZ,GAAA,IAAA,SAAA,EAAA,CAAsC,EAAA,EAAA,GAUpC,WACU,EACA,EACA,EAA6D,CAF7D,AAAA,IAAA,QAAA,GAAA,KACA,IAAA,QAAA,GAAA,KACA,IAAA,QAAA,GAAA,IAHV,GAAA,GAKE,EAAA,KAAA,OAAO,KAJC,SAAA,YAAA,EACA,EAAA,YAAA,EACA,EAAA,mBAAA,EAZF,EAAA,QAA0B,GAC1B,EAAA,oBAAsB,GAc5B,EAAK,oBAAsB,IAAgB,IAC3C,EAAK,YAAc,KAAK,IAAI,EAAG,GAC/B,EAAK,YAAc,KAAK,IAAI,EAAG,KAGjC,SAAA,UAAA,KAAA,SAAK,EAAQ,CACL,GAAA,GAA+E,KAA7E,EAAS,EAAA,UAAE,EAAO,EAAA,QAAE,EAAmB,EAAA,oBAAE,EAAkB,EAAA,mBAAE,EAAW,EAAA,YAChF,AAAK,GACH,GAAQ,KAAK,GACb,CAAC,GAAuB,EAAQ,KAAK,EAAmB,MAAQ,IAElE,KAAK,cACL,EAAA,UAAM,KAAI,KAAA,KAAC,IAIH,EAAA,UAAA,WAAV,SAAqB,EAAyB,CAC5C,KAAK,iBACL,KAAK,cAQL,OANM,GAAe,KAAK,gBAAgB,GAEpC,EAAmC,KAAjC,EAAmB,EAAA,oBAAE,EAAO,EAAA,QAG9B,EAAO,EAAQ,QACZ,EAAI,EAAG,EAAI,EAAK,QAAU,CAAC,EAAW,OAAQ,GAAK,EAAsB,EAAI,EACpF,EAAW,KAAK,EAAK,IAGvB,YAAK,wBAAwB,GAEtB,GAGD,EAAA,UAAA,YAAR,UAAA,CACQ,GAAA,GAAoE,KAAlE,EAAW,EAAA,YAAE,EAAkB,EAAA,mBAAE,EAAO,EAAA,QAAE,EAAmB,EAAA,oBAK/D,EAAsB,GAAsB,EAAI,GAAK,EAK3D,GAJA,EAAc,KAAY,EAAqB,EAAQ,QAAU,EAAQ,OAAO,EAAG,EAAQ,OAAS,GAIhG,CAAC,EAAqB,CAKxB,OAJM,GAAM,EAAmB,MAC3B,EAAO,EAGF,EAAI,EAAG,EAAI,EAAQ,QAAW,EAAQ,IAAiB,EAAK,GAAK,EACxE,EAAO,EAET,GAAQ,EAAQ,OAAO,EAAG,EAAO,KAGvC,GAzEsC,GClBtC,GAAA,IAAA,SAAA,EAAA,CAA+B,EAAA,EAAA,GAC7B,WAAY,EAAsB,EAAmD,OACnF,GAAA,KAAA,OAAO,KAYF,SAAA,UAAA,SAAP,SAAgB,EAAW,EAAiB,CAAjB,MAAA,KAAA,QAAA,GAAA,GAClB,MAEX,GAjB+B,ICJxB,GAAM,IAAqC,CAGhD,YAAW,UAAA,QAAC,GAAA,GAAA,EAAA,EAAA,EAAA,UAAA,OAAA,IAAA,EAAA,GAAA,UAAA,GACF,GAAA,GAAa,GAAgB,SACrC,MAAQ,KAAQ,KAAA,OAAR,EAAU,cAAe,aAAY,MAAA,OAAA,EAAA,GAAA,EAAI,MAEnD,cAAa,SAAC,EAAM,CACV,GAAA,GAAa,GAAgB,SACrC,MAAQ,KAAQ,KAAA,OAAR,EAAU,gBAAiB,eAAe,IAEpD,SAAU,QClBZ,GAAA,IAAA,SAAA,EAAA,CAAoC,EAAA,EAAA,GAOlC,WAAsB,EAAqC,EAAmD,CAA9G,GAAA,GACE,EAAA,KAAA,KAAM,EAAW,IAAK,KADF,SAAA,UAAA,EAAqC,EAAA,KAAA,EAFjD,EAAA,QAAmB,KAMtB,SAAA,UAAA,SAAP,SAAgB,EAAW,EAAiB,CAC1C,GADyB,IAAA,QAAA,GAAA,GACrB,KAAK,OACP,MAAO,MAIT,KAAK,MAAQ,EAEb,GAAM,GAAK,KAAK,GACV,EAAY,KAAK,UAuBvB,MAAI,IAAM,MACR,MAAK,GAAK,KAAK,eAAe,EAAW,EAAI,IAK/C,KAAK,QAAU,GAEf,KAAK,MAAQ,EAEb,KAAK,GAAK,KAAK,IAAM,KAAK,eAAe,EAAW,KAAK,GAAI,GAEtD,MAGC,EAAA,UAAA,eAAV,SAAyB,EAA2B,EAAW,EAAiB,CAAjB,MAAA,KAAA,QAAA,GAAA,GACtD,GAAiB,YAAY,EAAU,MAAM,KAAK,EAAW,MAAO,IAGnE,EAAA,UAAA,eAAV,SAAyB,EAA4B,EAAS,EAAwB,CAEpF,GAF4D,IAAA,QAAA,GAAA,GAExD,GAAS,MAAQ,KAAK,QAAU,GAAS,KAAK,UAAY,GAC5D,MAAO,GAIT,GAAiB,cAAc,IAQ1B,EAAA,UAAA,QAAP,SAAe,EAAU,EAAa,CACpC,GAAI,KAAK,OACP,MAAO,IAAI,OAAM,gCAGnB,KAAK,QAAU,GACf,GAAM,GAAQ,KAAK,SAAS,EAAO,GACnC,GAAI,EACF,MAAO,GACF,AAAI,KAAK,UAAY,IAAS,KAAK,IAAM,MAc9C,MAAK,GAAK,KAAK,eAAe,KAAK,UAAW,KAAK,GAAI,QAIjD,EAAA,UAAA,SAAV,SAAmB,EAAU,EAAc,CACzC,GAAI,GAAmB,GACnB,EACJ,GAAI,CACF,KAAK,KAAK,SACH,EAAP,CACA,EAAU,GAIV,EAAa,GAAQ,GAAI,OAAM,sCAEjC,GAAI,EACF,YAAK,cACE,GAIX,EAAA,UAAA,YAAA,UAAA,CACE,GAAI,CAAC,KAAK,OAAQ,CACV,GAAA,GAAoB,KAAlB,EAAE,EAAA,GAAE,EAAS,EAAA,UACb,EAAY,EAAS,QAE7B,KAAK,KAAO,KAAK,MAAQ,KAAK,UAAY,KAC1C,KAAK,QAAU,GAEf,GAAU,EAAS,MACf,GAAM,MACR,MAAK,GAAK,KAAK,eAAe,EAAW,EAAI,OAG/C,KAAK,MAAQ,KACb,EAAA,UAAM,YAAW,KAAA,QAGvB,GA3IoC,ICiBpC,GAAA,IAAA,UAAA,CAGE,WAAoB,EAAoC,EAAiC,CAAjC,AAAA,IAAA,QAAA,GAAoB,EAAU,KAAlE,KAAA,oBAAA,EAClB,KAAK,IAAM,EA8BN,SAAA,UAAA,SAAP,SAAmB,EAAqD,EAAmB,EAAS,CAA5B,MAAA,KAAA,QAAA,GAAA,GAC/D,GAAI,MAAK,oBAAuB,KAAM,GAAM,SAAS,EAAO,IAlCvD,EAAA,IAAoB,GAAsB,IAoC1D,KCzDA,GAAA,IAAA,SAAA,EAAA,CAAoC,EAAA,EAAA,GAkBlC,WAAY,EAAgC,EAAiC,CAAjC,AAAA,IAAA,QAAA,GAAoB,GAAU,KAA1E,GAAA,GACE,EAAA,KAAA,KAAM,EAAiB,IAAI,KAlBtB,SAAA,QAAmC,GAOnC,EAAA,QAAmB,GAQnB,EAAA,WAAkB,SAMlB,SAAA,UAAA,MAAP,SAAa,EAAwB,CAC3B,GAAA,GAAY,KAAI,QAExB,GAAI,KAAK,QAAS,CAChB,EAAQ,KAAK,GACb,OAGF,GAAI,GACJ,KAAK,QAAU,GAEf,EACE,IAAK,EAAQ,EAAO,QAAQ,EAAO,MAAO,EAAO,OAC/C,YAEM,EAAS,EAAQ,SAI3B,GAFA,KAAK,QAAU,GAEX,EAAO,CACT,KAAQ,EAAS,EAAQ,SACvB,EAAO,cAET,KAAM,KAGZ,GAhDoC,IC8C7B,GAAM,IAAiB,GAAI,IAAe,IAKpC,GAAQ,GClDrB,GAAA,IAAA,SAAA,EAAA,CAA6C,EAAA,EAAA,GAC3C,WAAsB,EAA8C,EAAmD,CAAvH,GAAA,GACE,EAAA,KAAA,KAAM,EAAW,IAAK,KADF,SAAA,UAAA,EAA8C,EAAA,KAAA,IAI1D,SAAA,UAAA,eAAV,SAAyB,EAAoC,EAAU,EAAiB,CAEtF,MAFqE,KAAA,QAAA,GAAA,GAEjE,IAAU,MAAQ,EAAQ,EACrB,EAAA,UAAM,eAAc,KAAA,KAAC,EAAW,EAAI,GAG7C,GAAU,QAAQ,KAAK,MAIhB,EAAU,YAAe,GAAU,WAAa,GAAuB,sBAAsB,UAAA,CAAM,MAAA,GAAU,MAAM,aAElH,EAAA,UAAA,eAAV,SAAyB,EAAoC,EAAU,EAAiB,CAItF,GAJqE,IAAA,QAAA,GAAA,GAIhE,GAAS,MAAQ,EAAQ,GAAO,GAAS,MAAQ,KAAK,MAAQ,EACjE,MAAO,GAAA,UAAM,eAAc,KAAA,KAAC,EAAW,EAAI,GAK7C,AAAK,EAAU,QAAQ,KAAK,SAAC,EAAM,CAAK,MAAA,GAAO,KAAO,KACpD,IAAuB,qBAAqB,GAC5C,EAAU,WAAa,SAK7B,GAlC6C,ICF7C,GAAA,IAAA,SAAA,EAAA,CAA6C,EAAA,EAAA,GAA7C,YAAA,gDACS,SAAA,UAAA,MAAP,SAAa,EAAyB,CACpC,KAAK,QAAU,GAUf,GAAM,GAAU,KAAK,WACrB,KAAK,WAAa,OAEV,GAAA,GAAY,KAAI,QACpB,EACJ,EAAS,GAAU,EAAQ,QAE3B,EACE,IAAK,EAAQ,EAAO,QAAQ,EAAO,MAAO,EAAO,OAC/C,YAEM,GAAS,EAAQ,KAAO,EAAO,KAAO,GAAW,EAAQ,SAInE,GAFA,KAAK,QAAU,GAEX,EAAO,CACT,KAAQ,GAAS,EAAQ,KAAO,EAAO,KAAO,GAAW,EAAQ,SAC/D,EAAO,cAET,KAAM,KAGZ,GAlC6C,ICgCtC,GAAM,IAA0B,GAAI,IAAwB,ICR5D,GAAM,GAAQ,GAAI,GAAkB,SAAC,EAAU,CAAK,MAAA,GAAW,aCxBhE,YAAsB,EAAU,CACpC,MAAO,IAAS,EAAW,EAAM,UCAnC,YAAiB,EAAQ,CACvB,MAAO,GAAI,EAAI,OAAS,GAGpB,YAA4B,EAAW,CAC3C,MAAO,GAAW,GAAK,IAAS,EAAK,MAAQ,OAGzC,YAAuB,EAAW,CACtC,MAAO,IAAY,GAAK,IAAS,EAAK,MAAQ,OAG1C,YAAoB,EAAa,EAAoB,CACzD,MAAO,OAAO,IAAK,IAAU,SAAW,EAAK,MAAS,ECjBjD,GAAM,IAAe,SAAI,EAAM,CAAwB,MAAA,IAAK,MAAO,GAAE,QAAW,UAAY,MAAO,IAAM,YCM1G,YAAoB,EAAU,CAClC,MAAO,GAAW,GAAK,KAAA,OAAL,EAAO,MCFrB,YAA8B,EAAU,CAC5C,MAAO,GAAW,EAAM,KCJpB,YAA6B,EAAQ,CACzC,MAAO,QAAO,eAAiB,EAAW,GAAG,KAAA,OAAH,EAAM,OAAO,gBCCnD,YAA2C,EAAU,CAEzD,MAAO,IAAI,WACT,gBACE,KAAU,MAAQ,MAAO,IAAU,SAAW,oBAAsB,IAAI,EAAK,KAAG,4HCRhF,aAA2B,CAC/B,MAAI,OAAO,SAAW,YAAc,CAAC,OAAO,SACnC,aAGF,OAAO,SAGT,GAAM,IAAW,KCJlB,YAAqB,EAAU,CACnC,MAAO,GAAW,GAAK,KAAA,OAAL,EAAQ,KCFtB,YAAuD,EAAqC,mGAC1F,EAAS,EAAe,qEAGF,MAAA,CAAA,EAAA,GAAM,EAAO,sBAA/B,GAAkB,EAAA,OAAhB,EAAK,EAAA,MAAE,EAAI,EAAA,KACf,iBAAA,CAAA,EAAA,UACF,MAAA,CAAA,EAAA,EAAA,2BAEI,WAAN,MAAA,CAAA,EAAA,EAAA,eAAA,SAAA,wCAGF,SAAO,yCAIL,YAAkC,EAAQ,CAG9C,MAAO,GAAW,GAAG,KAAA,OAAH,EAAK,WCPnB,WAAuB,EAAyB,CACpD,GAAI,YAAiB,GACnB,MAAO,GAET,GAAI,GAAS,KAAM,CACjB,GAAI,GAAoB,GACtB,MAAO,IAAsB,GAE/B,GAAI,GAAY,GACd,MAAO,IAAc,GAEvB,GAAI,GAAU,GACZ,MAAO,IAAY,GAErB,GAAI,GAAgB,GAClB,MAAO,IAAkB,GAE3B,GAAI,GAAW,GACb,MAAO,IAAa,GAEtB,GAAI,GAAqB,GACvB,MAAO,IAAuB,GAIlC,KAAM,IAAiC,GAOnC,YAAmC,EAAQ,CAC/C,MAAO,IAAI,GAAW,SAAC,EAAyB,CAC9C,GAAM,GAAM,EAAI,MAChB,GAAI,EAAW,EAAI,WACjB,MAAO,GAAI,UAAU,GAGvB,KAAM,IAAI,WAAU,oEAWlB,YAA2B,EAAmB,CAClD,MAAO,IAAI,GAAW,SAAC,EAAyB,CAU9C,OAAS,GAAI,EAAG,EAAI,EAAM,QAAU,CAAC,EAAW,OAAQ,IACtD,EAAW,KAAK,EAAM,IAExB,EAAW,aAIT,YAAyB,EAAuB,CACpD,MAAO,IAAI,GAAW,SAAC,EAAyB,CAC9C,EACG,KACC,SAAC,EAAK,CACJ,AAAK,EAAW,QACd,GAAW,KAAK,GAChB,EAAW,aAGf,SAAC,EAAQ,CAAK,MAAA,GAAW,MAAM,KAEhC,KAAK,KAAM,MAIZ,YAA0B,EAAqB,CACnD,MAAO,IAAI,GAAW,SAAC,EAAyB,aAC9C,OAAoB,GAAA,GAAA,GAAQ,EAAA,EAAA,OAAA,CAAA,EAAA,KAAA,EAAA,EAAA,OAAE,CAAzB,GAAM,GAAK,EAAA,MAEd,GADA,EAAW,KAAK,GACZ,EAAW,OACb,yGAGJ,EAAW,aAIT,YAA+B,EAA+B,CAClE,MAAO,IAAI,GAAW,SAAC,EAAyB,CAC9C,GAAQ,EAAe,GAAY,MAAM,SAAC,EAAG,CAAK,MAAA,GAAW,MAAM,OAIjE,YAAoC,EAAqC,CAC7E,MAAO,IAAkB,GAAmC,IAG9D,YAA0B,EAAiC,EAAyB,uIACxD,EAAA,GAAA,iFAIxB,GAJe,EAAK,EAAA,MACpB,EAAW,KAAK,GAGZ,EAAW,OACb,MAAA,CAAA,8RAGJ,SAAW,oBC/GP,YACJ,EACA,EACA,EACA,EACA,EAAc,CADd,AAAA,IAAA,QAAA,GAAA,GACA,IAAA,QAAA,GAAA,IAEA,GAAM,GAAuB,EAAU,SAAS,UAAA,CAC9C,IACA,AAAI,EACF,EAAmB,IAAI,KAAK,SAAS,KAAM,IAE3C,KAAK,eAEN,GAIH,GAFA,EAAmB,IAAI,GAEnB,CAAC,EAKH,MAAO,GCmBL,YAAuB,EAA0B,EAAS,CAAT,MAAA,KAAA,QAAA,GAAA,GAC9C,EAAQ,SAAC,EAAQ,EAAU,CAChC,EAAO,UACL,GAAI,GACF,EACA,SAAC,EAAK,CAAK,MAAA,IAAgB,EAAY,EAAW,UAAA,CAAM,MAAA,GAAW,KAAK,IAAQ,IAChF,UAAA,CAAM,MAAA,IAAgB,EAAY,EAAW,UAAA,CAAM,MAAA,GAAW,YAAY,IAC1E,SAAC,EAAG,CAAK,MAAA,IAAgB,EAAY,EAAW,UAAA,CAAM,MAAA,GAAW,MAAM,IAAM,QCJ/E,YAAyB,EAA0B,EAAiB,CAAjB,MAAA,KAAA,QAAA,GAAA,GAChD,EAAQ,SAAC,EAAQ,EAAU,CAChC,EAAW,IAAI,EAAU,SAAS,UAAA,CAAM,MAAA,GAAO,UAAU,IAAa,MC5DpE,YAAgC,EAA6B,EAAwB,CACzF,MAAO,GAAU,GAAO,KAAK,GAAY,GAAY,GAAU,ICD3D,YAA6B,EAAuB,EAAwB,CAChF,MAAO,GAAU,GAAO,KAAK,GAAY,GAAY,GAAU,ICH3D,YAA2B,EAAqB,EAAwB,CAC5E,MAAO,IAAI,GAAc,SAAC,EAAU,CAElC,GAAI,GAAI,EAER,MAAO,GAAU,SAAS,UAAA,CACxB,AAAI,IAAM,EAAM,OAGd,EAAW,WAIX,GAAW,KAAK,EAAM,MAIjB,EAAW,QACd,KAAK,gBCVT,YAA8B,EAAoB,EAAwB,CAC9E,MAAO,IAAI,GAAc,SAAC,EAAU,CAClC,GAAI,GAKJ,UAAgB,EAAY,EAAW,UAAA,CAErC,EAAY,EAAc,MAE1B,GACE,EACA,EACA,UAAA,OACM,EACA,EACJ,GAAI,CAEF,AAAC,EAAkB,EAAS,OAAzB,EAAK,EAAA,MAAE,EAAI,EAAA,WACP,EAAP,CAEA,EAAW,MAAM,GACjB,OAGF,AAAI,EAKF,EAAW,WAGX,EAAW,KAAK,IAGpB,EACA,MAQG,UAAA,CAAM,MAAA,GAAW,GAAQ,KAAA,OAAR,EAAU,SAAW,EAAS,YCrDpD,YAAmC,EAAyB,EAAwB,CACxF,GAAI,CAAC,EACH,KAAM,IAAI,OAAM,2BAElB,MAAO,IAAI,GAAc,SAAC,EAAU,CAClC,GAAgB,EAAY,EAAW,UAAA,CACrC,GAAM,GAAW,EAAM,OAAO,iBAC9B,GACE,EACA,EACA,UAAA,CACE,EAAS,OAAO,KAAK,SAAC,EAAM,CAC1B,AAAI,EAAO,KAGT,EAAW,WAEX,EAAW,KAAK,EAAO,UAI7B,EACA,QCrBF,YAAwC,EAA8B,EAAwB,CAClG,MAAO,IAAsB,GAAmC,GAAQ,GCqBpE,YAAuB,EAA2B,EAAwB,CAC9E,GAAI,GAAS,KAAM,CACjB,GAAI,GAAoB,GACtB,MAAO,IAAmB,EAAO,GAEnC,GAAI,GAAY,GACd,MAAO,IAAc,EAAO,GAE9B,GAAI,GAAU,GACZ,MAAO,IAAgB,EAAO,GAEhC,GAAI,GAAgB,GAClB,MAAO,IAAsB,EAAO,GAEtC,GAAI,GAAW,GACb,MAAO,IAAiB,EAAO,GAEjC,GAAI,GAAqB,GACvB,MAAO,IAA2B,EAAO,GAG7C,KAAM,IAAiC,GC0DnC,YAAkB,EAA2B,EAAyB,CAC1E,MAAO,GAAY,GAAU,EAAO,GAAa,EAAU,GC5BvD,YAAY,QAAI,GAAA,GAAA,EAAA,EAAA,EAAA,UAAA,OAAA,IAAA,EAAA,GAAA,UAAA,GACpB,GAAM,GAAY,GAAa,GAC/B,MAAO,IAAK,EAAa,GC1ErB,YAAsB,EAAU,CACpC,MAAO,aAAiB,OAAQ,CAAC,MAAM,GCqCnC,WAAoB,EAAyC,EAAa,CAC9E,MAAO,GAAQ,SAAC,EAAQ,EAAU,CAEhC,GAAI,GAAQ,EAGZ,EAAO,UACL,GAAI,GAAmB,EAAY,SAAC,EAAQ,CAG1C,EAAW,KAAK,EAAQ,KAAK,EAAS,EAAO,WCpD7C,GAAA,IAAY,MAAK,QAEzB,YAA2B,EAA6B,EAAW,CAC/D,MAAO,IAAQ,GAAQ,EAAE,MAAA,OAAA,EAAA,GAAA,EAAI,KAAQ,EAAG,GAOtC,YAAiC,EAA2B,CAC9D,MAAO,GAAI,SAAA,EAAI,CAAI,MAAA,IAAY,EAAI,KCd/B,GAAA,IAAY,MAAK,QACjB,GAA0D,OAAM,eAArC,GAA+B,OAAM,UAAlB,GAAY,OAAM,KAQlE,YAA+D,EAAuB,CAC1F,GAAI,EAAK,SAAW,EAAG,CACrB,GAAM,GAAQ,EAAK,GACnB,GAAI,GAAQ,GACV,MAAO,CAAE,KAAM,EAAO,KAAM,MAE9B,GAAI,GAAO,GAAQ,CACjB,GAAM,GAAO,GAAQ,GACrB,MAAO,CACL,KAAM,EAAK,IAAI,SAAC,EAAG,CAAK,MAAA,GAAM,KAC9B,KAAI,IAKV,MAAO,CAAE,KAAM,EAAa,KAAM,MAGpC,YAAgB,EAAQ,CACtB,MAAO,IAAO,MAAO,IAAQ,UAAY,GAAe,KAAS,GC5B7D,YAAuB,EAAgB,EAAa,CACxD,MAAO,GAAK,OAAO,SAAC,EAAQ,EAAK,EAAC,CAAK,MAAE,GAAO,GAAO,EAAO,GAAK,GAAS,ICoMxE,YAAuB,QAAoC,GAAA,GAAA,EAAA,EAAA,EAAA,UAAA,OAAA,IAAA,EAAA,GAAA,UAAA,GAC/D,GAAM,GAAY,GAAa,GACzB,EAAiB,GAAkB,GAEnC,EAA8B,GAAqB,GAA3C,EAAW,EAAA,KAAE,EAAI,EAAA,KAE/B,GAAI,EAAY,SAAW,EAIzB,MAAO,IAAK,GAAI,GAGlB,GAAM,GAAS,GAAI,GACjB,GACE,EACA,EACA,EAEI,SAAC,EAAM,CAAK,MAAA,IAAa,EAAM,IAE/B,KAIR,MAAO,GAAkB,EAAO,KAAK,GAAiB,IAAqC,EAGvF,YACJ,EACA,EACA,EAAiD,CAAjD,MAAA,KAAA,QAAA,GAAA,IAEO,SAAC,EAA2B,CAGjC,GACE,EACA,UAAA,CAaE,OAZQ,GAAW,EAAW,OAExB,EAAS,GAAI,OAAM,GAGrB,EAAS,EAIT,EAAuB,aAGlB,EAAC,CACR,GACE,EACA,UAAA,CACE,GAAM,GAAS,GAAK,EAAY,GAAI,GAChC,EAAgB,GACpB,EAAO,UACL,GAAI,GACF,EACA,SAAC,EAAK,CAEJ,EAAO,GAAK,EACP,GAEH,GAAgB,GAChB,KAEG,GAGH,EAAW,KAAK,EAAe,EAAO,WAG1C,UAAA,CACE,AAAK,EAAE,GAGL,EAAW,eAMrB,IAjCK,EAAI,EAAG,EAAI,EAAQ,MAAnB,IAqCX,IASN,YAAuB,EAAsC,EAAqB,EAA0B,CAC1G,AAAI,EACF,GAAgB,EAAc,EAAW,GAEzC,ICtRE,YACJ,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EAA+B,CAG/B,GAAM,GAAc,GAEhB,EAAS,EAET,EAAQ,EAER,EAAa,GAKX,EAAgB,UAAA,CAIpB,AAAI,GAAc,CAAC,EAAO,QAAU,CAAC,GACnC,EAAW,YAKT,EAAY,SAAC,EAAQ,CAAK,MAAC,GAAS,EAAa,EAAW,GAAS,EAAO,KAAK,IAEjF,EAAa,SAAC,EAAQ,CAI1B,GAAU,EAAW,KAAK,GAI1B,IAKA,GAAI,GAAgB,GAGpB,EAAU,EAAQ,EAAO,MAAU,UACjC,GAAI,GACF,EACA,SAAC,EAAU,CAGT,GAAY,MAAZ,EAAe,GAEf,AAAI,EAGF,EAAU,GAGV,EAAW,KAAK,IAGpB,UAAA,CAGE,EAAgB,IAGlB,OACA,UAAA,CAIE,GAAI,EAKF,GAAI,CAIF,IAKA,qBACE,GAAM,GAAgB,EAAO,QAI7B,AAAI,EACF,GAAgB,EAAY,EAAmB,UAAA,CAAM,MAAA,GAAW,KAEhE,EAAW,IARR,EAAO,QAAU,EAAS,OAYjC,UACO,EAAP,CACA,EAAW,MAAM,QAS7B,SAAO,UACL,GAAI,GAAmB,EAAY,EAAW,UAAA,CAE5C,EAAa,GACb,OAMG,UAAA,CACL,GAAkB,MAAlB,KClEE,YACJ,EACA,EACA,EAA6B,CAE7B,MAFA,KAAA,QAAA,GAAA,KAEI,EAAW,GAEN,GAAS,SAAC,EAAG,EAAC,CAAK,MAAA,GAAI,SAAC,EAAQ,EAAU,CAAK,MAAA,GAAe,EAAG,EAAG,EAAG,KAAK,EAAU,EAAQ,EAAG,MAAM,GACrG,OAAO,IAAmB,UACnC,GAAa,GAGR,EAAQ,SAAC,EAAQ,EAAU,CAAK,MAAA,IAAe,EAAQ,EAAY,EAAS,MChC/E,YAAmD,EAA6B,CAA7B,MAAA,KAAA,QAAA,GAAA,KAChD,GAAS,GAAU,GCFtB,aAAmB,CACvB,MAAO,IAAS,GCwDZ,aAAgB,QAAC,GAAA,GAAA,EAAA,EAAA,EAAA,UAAA,OAAA,IAAA,EAAA,GAAA,UAAA,GACrB,MAAO,MAAY,GAAK,EAAM,GAAa,KCnEvC,WAAgD,EAA0B,CAC9E,MAAO,IAAI,GAA+B,SAAC,EAAU,CACnD,EAAU,KAAqB,UAAU,KC5C7C,GAAM,IAA0B,CAAC,cAAe,kBAC1C,GAAqB,CAAC,mBAAoB,uBAC1C,GAAgB,CAAC,KAAM,OA2NvB,WACJ,EACA,EACA,EACA,EAAsC,CAMtC,GAJI,EAAW,IACb,GAAiB,EACjB,EAAU,QAER,EACF,MAAO,GAAa,EAAQ,EAAW,GAAiC,KAAK,GAAiB,IAU1F,GAAA,GAAA,EAEJ,GAAc,GACV,GAAmB,IAAI,SAAC,EAAU,CAAK,MAAA,UAAC,EAAY,CAAK,MAAA,GAAO,GAAY,EAAW,EAAS,MAElG,GAAwB,GACtB,GAAwB,IAAI,GAAwB,EAAQ,IAC5D,GAA0B,GAC1B,GAAc,IAAI,GAAwB,EAAQ,IAClD,GAAE,GATD,EAAG,EAAA,GAAE,EAAM,EAAA,GAgBlB,GAAI,CAAC,GACC,GAAY,GACd,MAAO,IAAS,SAAC,EAAc,CAAK,MAAA,GAAU,EAAW,EAAW,KAClE,EAAU,IAOhB,GAAI,CAAC,EACH,KAAM,IAAI,WAAU,wBAGtB,MAAO,IAAI,GAAc,SAAC,EAAU,CAIlC,GAAM,GAAU,UAAA,QAAC,GAAA,GAAA,EAAA,EAAA,EAAA,UAAA,OAAA,IAAA,EAAA,GAAA,UAAA,GAAmB,MAAA,GAAW,KAAK,EAAI,EAAK,OAAS,EAAO,EAAK,KAElF,SAAI,GAEG,UAAA,CAAM,MAAA,GAAQ,MAWzB,YAAiC,EAAa,EAAiB,CAC7D,MAAO,UAAC,EAAkB,CAAK,MAAA,UAAC,EAAY,CAAK,MAAA,GAAO,GAAY,EAAW,KAQjF,YAAiC,EAAW,CAC1C,MAAO,GAAW,EAAO,cAAgB,EAAW,EAAO,gBAQ7D,YAAmC,EAAW,CAC5C,MAAO,GAAW,EAAO,KAAO,EAAW,EAAO,KAQpD,YAAuB,EAAW,CAChC,MAAO,GAAW,EAAO,mBAAqB,EAAW,EAAO,qBC1L5D,YACJ,EACA,EACA,EAAsC,CAEtC,MAAI,GACK,GAAoB,EAAY,GAAe,KAAK,GAAiB,IAGvE,GAAI,GAAoB,SAAC,EAAU,CACxC,GAAM,GAAU,UAAA,QAAC,GAAA,GAAA,EAAA,EAAA,EAAA,UAAA,OAAA,IAAA,EAAA,GAAA,UAAA,GAAc,MAAA,GAAW,KAAK,EAAE,SAAW,EAAI,EAAE,GAAK,IACjE,EAAW,EAAW,GAC5B,MAAO,GAAW,GAAiB,UAAA,CAAM,MAAA,GAAc,EAAS,IAAY,SClB1E,YACJ,EACA,EACA,EAAyC,CAFzC,AAAA,IAAA,QAAA,GAAA,GAEA,IAAA,QAAA,GAAA,IAIA,GAAI,GAAmB,GAEvB,MAAI,IAAuB,MAIzB,CAAI,GAAY,GACd,EAAY,EAIZ,EAAmB,GAIhB,GAAI,GAAW,SAAC,EAAU,CAI/B,GAAI,GAAM,GAAY,GAAW,CAAC,EAAU,EAAW,MAAQ,EAE/D,AAAI,EAAM,GAER,GAAM,GAIR,GAAI,GAAI,EAGR,MAAO,GAAU,SAAS,UAAA,CACxB,AAAK,EAAW,QAEd,GAAW,KAAK,KAEhB,AAAI,GAAK,EAGP,KAAK,SAAS,OAAW,GAGzB,EAAW,aAGd,KCpGD,YAAe,QAAC,GAAA,GAAA,EAAA,EAAA,EAAA,UAAA,OAAA,IAAA,EAAA,GAAA,UAAA,GACpB,GAAM,GAAY,GAAa,GACzB,EAAa,GAAU,EAAM,KAC7B,EAAU,EAChB,MAAO,AAAC,GAAQ,OAGZ,EAAQ,SAAW,EAEnB,EAAU,EAAQ,IAElB,GAAS,GAAY,GAAK,EAAS,IALnC,EC3DC,GAAM,IAAQ,GAAI,GAAkB,ICjCnC,GAAA,IAAY,MAAK,QAMnB,YAA4B,EAAiB,CACjD,MAAO,GAAK,SAAW,GAAK,GAAQ,EAAK,IAAM,EAAK,GAAM,ECoDtD,WAAoB,EAAiD,EAAa,CACtF,MAAO,GAAQ,SAAC,EAAQ,EAAU,CAEhC,GAAI,GAAQ,EAIZ,EAAO,UAIL,GAAI,GAAmB,EAAY,SAAC,EAAK,CAAK,MAAA,GAAU,KAAK,EAAS,EAAO,MAAY,EAAW,KAAK,QCpBzG,aAAa,QAAC,GAAA,GAAA,EAAA,EAAA,EAAA,UAAA,OAAA,IAAA,EAAA,GAAA,UAAA,GAClB,GAAM,GAAiB,GAAkB,GAEnC,EAAU,GAAe,GAE/B,MAAO,GAAQ,OACX,GAAI,GAAsB,SAAC,EAAU,CAGnC,GAAI,GAAuB,EAAQ,IAAI,UAAA,CAAM,MAAA,KAKzC,EAAY,EAAQ,IAAI,UAAA,CAAM,MAAA,KAGlC,EAAW,IAAI,UAAA,CACb,EAAU,EAAY,OAMxB,mBAAS,EAAW,CAClB,EAAU,EAAQ,IAAc,UAC9B,GAAI,GACF,EACA,SAAC,EAAK,CAKJ,GAJA,EAAQ,GAAa,KAAK,GAItB,EAAQ,MAAM,SAAC,EAAM,CAAK,MAAA,GAAO,SAAS,CAC5C,GAAM,GAAc,EAAQ,IAAI,SAAC,EAAM,CAAK,MAAA,GAAO,UAEnD,EAAW,KAAK,EAAiB,EAAc,MAAA,OAAA,EAAA,GAAA,EAAI,KAAU,GAIzD,EAAQ,KAAK,SAAC,EAAQ,EAAC,CAAK,MAAA,CAAC,EAAO,QAAU,EAAU,MAC1D,EAAW,aAIjB,UAAA,CAGE,EAAU,GAAe,GAIzB,CAAC,EAAQ,GAAa,QAAU,EAAW,eA5B1C,EAAc,EAAG,CAAC,EAAW,QAAU,EAAc,EAAQ,OAAQ,MAArE,GAmCT,MAAO,WAAA,CACL,EAAU,EAAY,QAG1B,EC9DA,YAAmB,EAAoD,CAC3E,MAAO,GAAQ,SAAC,EAAQ,EAAU,CAChC,GAAI,GAAW,GACX,EAAsB,KACtB,EAA6C,KAC7C,EAAa,GAEX,EAAc,UAAA,CAGlB,GAFA,GAAkB,MAAlB,EAAoB,cACpB,EAAqB,KACjB,EAAU,CACZ,EAAW,GACX,GAAM,GAAQ,EACd,EAAY,KACZ,EAAW,KAAK,GAElB,GAAc,EAAW,YAGrB,EAAkB,UAAA,CACtB,EAAqB,KACrB,GAAc,EAAW,YAG3B,EAAO,UACL,GAAI,GACF,EACA,SAAC,EAAK,CACJ,EAAW,GACX,EAAY,EACP,GACH,EAAU,EAAiB,IAAQ,UAChC,EAAqB,GAAI,GAAmB,EAAY,EAAa,KAI5E,UAAA,CACE,EAAa,GACZ,EAAC,GAAY,CAAC,GAAsB,EAAmB,SAAW,EAAW,gBCrClF,YAAuB,EAAkB,EAAgC,CAAhC,MAAA,KAAA,QAAA,GAAA,IACtC,GAAM,UAAA,CAAM,MAAA,IAAM,EAAU,KCK/B,YAAyB,EAAoB,EAAsC,CAAtC,MAAA,KAAA,QAAA,GAAA,MAGjD,EAAmB,GAAgB,KAAhB,EAAoB,EAEhC,EAAQ,SAAC,EAAQ,EAAU,CAChC,GAAI,GAAiB,GACjB,EAAQ,EAEZ,EAAO,UACL,GAAI,GACF,EACA,SAAC,EAAK,aACA,EAAuB,KAK3B,AAAI,IAAU,IAAsB,GAClC,EAAQ,KAAK,QAIf,OAAqB,GAAA,GAAA,GAAO,EAAA,EAAA,OAAA,CAAA,EAAA,KAAA,EAAA,EAAA,OAAE,CAAzB,GAAM,GAAM,EAAA,MACf,EAAO,KAAK,GAMR,GAAc,EAAO,QACvB,GAAS,GAAM,KAAN,EAAU,GACnB,EAAO,KAAK,sGAIhB,GAAI,MAIF,OAAqB,GAAA,GAAA,GAAM,EAAA,EAAA,OAAA,CAAA,EAAA,KAAA,EAAA,EAAA,OAAE,CAAxB,GAAM,GAAM,EAAA,MACf,GAAU,EAAS,GACnB,EAAW,KAAK,uGAItB,UAAA,aAGE,OAAqB,GAAA,GAAA,GAAO,EAAA,EAAA,OAAA,CAAA,EAAA,KAAA,EAAA,EAAA,OAAE,CAAzB,GAAM,GAAM,EAAA,MACf,EAAW,KAAK,qGAElB,EAAW,YAGb,OACA,UAAA,CAEE,EAAU,UCXd,YACJ,EAAgD,CAEhD,MAAO,GAAQ,SAAC,EAAQ,EAAU,CAChC,GAAI,GAAgC,KAChC,EAAY,GACZ,EAEJ,EAAW,EAAO,UAChB,GAAI,GAAmB,EAAY,OAAW,OAAW,SAAC,EAAG,CAC3D,EAAgB,EAAU,EAAS,EAAK,GAAW,GAAU,KAC7D,AAAI,EACF,GAAS,cACT,EAAW,KACX,EAAc,UAAU,IAIxB,EAAY,MAKd,GAMF,GAAS,cACT,EAAW,KACX,EAAe,UAAU,MC3HzB,YACJ,EACA,EACA,EACA,EACA,EAAqC,CAErC,MAAO,UAAC,EAAuB,EAA2B,CAIxD,GAAI,GAAW,EAIX,EAAa,EAEb,EAAQ,EAGZ,EAAO,UACL,GAAI,GACF,EACA,SAAC,EAAK,CAEJ,GAAM,GAAI,IAEV,EAAQ,EAEJ,EAAY,EAAO,EAAO,GAIxB,GAAW,GAAO,GAGxB,GAAc,EAAW,KAAK,IAIhC,GACG,UAAA,CACC,GAAY,EAAW,KAAK,GAC5B,EAAW,eC9BjB,aAAuB,QAAO,GAAA,GAAA,EAAA,EAAA,EAAA,UAAA,OAAA,IAAA,EAAA,GAAA,UAAA,GAClC,GAAM,GAAiB,GAAkB,GACzC,MAAO,GACH,GAAK,GAAa,MAAA,OAAA,EAAA,GAAA,EAAK,KAAuC,GAAiB,IAC/E,EAAQ,SAAC,EAAQ,EAAU,CACzB,GAAiB,EAAA,CAAE,GAAM,EAAK,GAAe,MAAQ,KCavD,aAA2B,QAC/B,GAAA,GAAA,EAAA,EAAA,EAAA,UAAA,OAAA,IAAA,EAAA,GAAA,UAAA,GAEA,MAAO,IAAa,MAAA,OAAA,EAAA,GAAA,EAAI,KC+BpB,YACJ,EACA,EAA6G,CAE7G,MAAO,GAAW,GAAkB,GAAS,EAAS,EAAgB,GAAK,GAAS,EAAS,GCnBzF,YAA0B,EAAiB,EAAyC,CAAzC,MAAA,KAAA,QAAA,GAAA,IACxC,EAAQ,SAAC,EAAQ,EAAU,CAChC,GAAI,GAAkC,KAClC,EAAsB,KACtB,EAA0B,KAExB,EAAO,UAAA,CACX,GAAI,EAAY,CAEd,EAAW,cACX,EAAa,KACb,GAAM,GAAQ,EACd,EAAY,KACZ,EAAW,KAAK,KAGpB,YAAqB,CAInB,GAAM,GAAa,EAAY,EACzB,EAAM,EAAU,MACtB,GAAI,EAAM,EAAY,CAEpB,EAAa,KAAK,SAAS,OAAW,EAAa,GACnD,EAAW,IAAI,GACf,OAGF,IAGF,EAAO,UACL,GAAI,GACF,EACA,SAAC,EAAQ,CACP,EAAY,EACZ,EAAW,EAAU,MAGhB,GACH,GAAa,EAAU,SAAS,EAAc,GAC9C,EAAW,IAAI,KAGnB,UAAA,CAGE,IACA,EAAW,YAGb,OACA,UAAA,CAEE,EAAY,EAAa,UChF7B,YAA+B,EAAe,CAClD,MAAO,GAAQ,SAAC,EAAQ,EAAU,CAChC,GAAI,GAAW,GACf,EAAO,UACL,GAAI,GACF,EACA,SAAC,EAAK,CACJ,EAAW,GACX,EAAW,KAAK,IAElB,UAAA,CACE,AAAK,GACH,EAAW,KAAK,GAElB,EAAW,gBCNf,YAAkB,EAAa,CACnC,MAAO,IAAS,EAEZ,UAAA,CAAM,MAAA,IACN,EAAQ,SAAC,EAAQ,EAAU,CACzB,GAAI,GAAO,EACX,EAAO,UACL,GAAI,GAAmB,EAAY,SAAC,EAAK,CAIvC,AAAI,EAAE,GAAQ,GACZ,GAAW,KAAK,GAIZ,GAAS,GACX,EAAW,iBC1BrB,aAAwB,CAC5B,MAAO,GAAQ,SAAC,EAAQ,EAAU,CAChC,EAAO,UAAU,GAAI,GAAmB,EAAY,OCFlD,YAAmB,EAAQ,CAC/B,MAAO,GAAI,UAAA,CAAM,MAAA,KCmCb,YACJ,EACA,EAAmC,CAEnC,MAAI,GAEK,SAAC,EAAqB,CAC3B,MAAA,IAAO,EAAkB,KAAK,GAAK,GAAI,MAAmB,EAAO,KAAK,GAAU,MAG7E,GAAS,SAAC,EAAO,EAAK,CAAK,MAAA,GAAsB,EAAO,GAAO,KAAK,GAAK,GAAI,GAAM,MCvBtF,YAAmB,EAAoB,EAAyC,CAAzC,AAAA,IAAA,QAAA,GAAA,IAC3C,GAAM,GAAW,GAAM,EAAK,GAC5B,MAAO,IAAU,UAAA,CAAM,MAAA,KCoFnB,WACJ,EACA,EAA0D,CAA1D,MAAA,KAAA,QAAA,GAA+B,IAK/B,EAAa,GAAU,KAAV,EAAc,GAEpB,EAAQ,SAAC,EAAQ,EAAU,CAGhC,GAAI,GAEA,EAAQ,GAEZ,EAAO,UACL,GAAI,GAAmB,EAAY,SAAC,EAAK,CAEvC,GAAM,GAAa,EAAY,GAK/B,AAAI,IAAS,CAAC,EAAY,EAAa,KAMrC,GAAQ,GACR,EAAc,EAGd,EAAW,KAAK,SAO1B,YAAwB,EAAQ,EAAM,CACpC,MAAO,KAAM,EC/GT,WAAwD,EAAQ,EAAuC,CAC3G,MAAO,GAAqB,SAAC,EAAM,EAAI,CAAK,MAAA,GAAU,EAAQ,EAAE,GAAM,EAAE,IAAQ,EAAE,KAAS,EAAE,KCZzF,aAAiB,QAAI,GAAA,GAAA,EAAA,EAAA,EAAA,UAAA,OAAA,IAAA,EAAA,GAAA,UAAA,GACzB,MAAO,UAAC,EAAqB,CAAK,MAAA,IAAO,EAAQ,EAAE,MAAA,OAAA,EAAA,GAAA,EAAI,OCFnD,WAAsB,EAAoB,CAC9C,MAAO,GAAQ,SAAC,EAAQ,EAAU,CAGhC,GAAI,CACF,EAAO,UAAU,WAEjB,EAAW,IAAI,MC3Bf,YAAsB,EAAa,CACvC,MAAO,IAAS,EACZ,UAAA,CAAM,MAAA,IACN,EAAQ,SAAC,EAAQ,EAAU,CAKzB,GAAI,GAAc,GAClB,EAAO,UACL,GAAI,GACF,EACA,SAAC,EAAK,CAEJ,EAAO,KAAK,GAGZ,EAAQ,EAAO,QAAU,EAAO,SAElC,UAAA,aAGE,OAAoB,GAAA,GAAA,GAAM,EAAA,EAAA,OAAA,CAAA,EAAA,KAAA,EAAA,EAAA,OAAE,CAAvB,GAAM,GAAK,EAAA,MACd,EAAW,KAAK,qGAElB,EAAW,YAGb,OACA,UAAA,CAEE,EAAS,UCtDjB,aAAe,QAAI,GAAA,GAAA,EAAA,EAAA,EAAA,UAAA,OAAA,IAAA,EAAA,GAAA,UAAA,GACvB,GAAM,GAAY,GAAa,GACzB,EAAa,GAAU,EAAM,KACnC,SAAO,GAAe,GAEf,EAAQ,SAAC,EAAQ,EAAU,CAChC,GAAS,GAAY,GAAI,EAAA,CAAE,GAAM,EAAM,IAAgC,IAAY,UAAU,KCgB3F,aAAmB,QACvB,GAAA,GAAA,EAAA,EAAA,EAAA,UAAA,OAAA,IAAA,EAAA,GAAA,UAAA,GAEA,MAAO,IAAK,MAAA,OAAA,EAAA,GAAA,EAAI,KCgEZ,YAAoB,EAAqC,OACzD,EAAQ,IACR,EAEJ,MAAI,IAAiB,MACnB,CAAI,MAAO,IAAkB,SACxB,GAA4B,EAAa,MAAzC,EAAK,IAAA,OAAG,IAAQ,EAAE,EAAU,EAAa,OAE5C,EAAQ,GAIL,GAAS,EACZ,UAAA,CAAM,MAAA,IACN,EAAQ,SAAC,EAAQ,EAAU,CACzB,GAAI,GAAQ,EACR,EAEE,EAAc,UAAA,CAGlB,GAFA,GAAS,MAAT,EAAW,cACX,EAAY,KACR,GAAS,KAAM,CACjB,GAAM,GAAW,MAAO,IAAU,SAAW,GAAM,GAAS,EAAU,EAAM,IACtE,EAAqB,GAAI,GAAmB,EAAY,UAAA,CAC5D,EAAmB,cACnB,MAEF,EAAS,UAAU,OAEnB,MAIE,EAAoB,UAAA,CACxB,GAAI,GAAY,GAChB,EAAY,EAAO,UACjB,GAAI,GAAmB,EAAY,OAAW,UAAA,CAC5C,AAAI,EAAE,EAAQ,EACZ,AAAI,EACF,IAEA,EAAY,GAGd,EAAW,cAKb,GACF,KAIJ,MCzHF,YAAoB,EAAyB,CACjD,MAAO,GAAQ,SAAC,EAAQ,EAAU,CAChC,GAAI,GAAW,GACX,EAAsB,KAC1B,EAAO,UACL,GAAI,GAAmB,EAAY,SAAC,EAAK,CACvC,EAAW,GACX,EAAY,KAGhB,GAAM,GAAO,UAAA,CACX,GAAI,EAAU,CACZ,EAAW,GACX,GAAM,GAAQ,EACd,EAAY,KACZ,EAAW,KAAK,KAGpB,EAAS,UAAU,GAAI,GAAmB,EAAY,EAAM,OC8B1D,YAAwB,EAA6D,EAAQ,CAMjG,MAAO,GAAQ,GAAc,EAAa,EAAW,UAAU,QAAU,EAAG,KCqCxE,YAAmB,EAA4B,CAA5B,AAAA,IAAA,QAAA,GAAA,IACf,GAAA,GAAgH,EAAO,UAAvH,EAAS,IAAA,OAAG,UAAA,CAAM,MAAA,IAAI,IAAY,EAAE,EAA4E,EAAO,aAAnF,EAAY,IAAA,OAAG,GAAI,EAAE,EAAuD,EAAO,gBAA9D,EAAe,IAAA,OAAG,GAAI,EAAE,EAA+B,EAAO,oBAAtC,EAAmB,IAAA,OAAG,GAAI,EAUnH,MAAO,UAAC,EAAa,CACnB,GAAI,GAAuC,KACvC,EAAuC,KACvC,EAAiC,KACjC,EAAW,EACX,EAAe,GACf,EAAa,GAEX,EAAc,UAAA,CAClB,GAAe,MAAf,EAAiB,cACjB,EAAkB,MAId,EAAQ,UAAA,CACZ,IACA,EAAa,EAAU,KACvB,EAAe,EAAa,IAExB,EAAsB,UAAA,CAG1B,GAAM,GAAO,EACb,IACA,GAAI,MAAJ,EAAM,eAGR,MAAO,GAAc,SAAC,EAAQ,GAAU,CACtC,IACI,CAAC,GAAc,CAAC,GAClB,IAOF,GAAM,IAAQ,EAAU,GAAO,KAAP,EAAW,IAOnC,GAAW,IAAI,UAAA,CACb,IAKI,IAAa,GAAK,CAAC,GAAc,CAAC,GACpC,GAAkB,GAAY,EAAqB,MAMvD,GAAK,UAAU,IAEV,GAMH,GAAa,GAAI,IAAe,CAC9B,KAAM,SAAC,GAAK,CAAK,MAAA,IAAK,KAAK,KAC3B,MAAO,SAAC,GAAG,CACT,EAAa,GACb,IACA,EAAkB,GAAY,EAAO,EAAc,IACnD,GAAK,MAAM,KAEb,SAAU,UAAA,CACR,EAAe,GACf,IACA,EAAkB,GAAY,EAAO,GACrC,GAAK,cAGT,GAAK,GAAQ,UAAU,MAExB,IAIP,YACE,EACA,EAA+C,QAC/C,GAAA,GAAA,EAAA,EAAA,EAAA,UAAA,OAAA,IAAA,EAAA,EAAA,GAAA,UAAA,GAEA,MAAI,KAAO,GACT,KAEO,MAGL,IAAO,GACF,KAGF,EAAE,MAAA,OAAA,EAAA,GAAA,EAAI,KACV,KAAK,GAAK,IACV,UAAU,UAAA,CAAM,MAAA,OChIf,WACJ,EACA,EACA,EAAyB,SAErB,EACA,EAAW,GACf,MAAI,IAAsB,MAAO,IAAuB,SACtD,GAAa,GAAA,EAAmB,cAAU,MAAA,IAAA,OAAA,EAAI,IAC9C,EAAa,GAAA,EAAmB,cAAU,MAAA,IAAA,OAAA,EAAI,IAC9C,EAAW,CAAC,CAAC,EAAmB,SAChC,EAAY,EAAmB,WAE/B,EAAa,GAAkB,KAAlB,EAAsB,IAE9B,GAAS,CACd,UAAW,UAAA,CAAM,MAAA,IAAI,IAAc,EAAY,EAAY,IAC3D,aAAc,GACd,gBAAiB,GACjB,oBAAqB,IC1GnB,YAAkB,EAAa,CACnC,MAAO,GAAO,SAAC,EAAG,EAAK,CAAK,MAAA,IAAS,ICUjC,YAAuB,EAAyB,CACpD,MAAO,GAAQ,SAAC,EAAQ,EAAU,CAChC,GAAI,GAAS,GAEP,EAAiB,GAAI,GACzB,EACA,UAAA,CACE,GAAc,MAAd,EAAgB,cAChB,EAAS,IAEX,IAGF,EAAU,GAAU,UAAU,GAE9B,EAAO,UAAU,GAAI,GAAmB,EAAY,SAAC,EAAK,CAAK,MAAA,IAAU,EAAW,KAAK,QCDvF,YAAmB,QAAO,GAAA,GAAA,EAAA,EAAA,EAAA,UAAA,OAAA,IAAA,EAAA,GAAA,UAAA,GAC9B,GAAM,GAAY,GAAa,GAC/B,MAAO,GAAQ,SAAC,EAAQ,EAAU,CAIhC,AAAC,GAAY,GAAO,EAAQ,EAAQ,GAAa,GAAO,EAAQ,IAAS,UAAU,KCiBjF,WACJ,EACA,EAA6G,CAE7G,MAAO,GAAQ,SAAC,EAAQ,EAAU,CAChC,GAAI,GAAyD,KACzD,EAAQ,EAER,EAAa,GAIX,EAAgB,UAAA,CAAM,MAAA,IAAc,CAAC,GAAmB,EAAW,YAEzE,EAAO,UACL,GAAI,GACF,EACA,SAAC,EAAK,CAEJ,GAAe,MAAf,EAAiB,cACjB,GAAI,GAAa,EACX,EAAa,IAEnB,EAAU,EAAQ,EAAO,IAAa,UACnC,EAAkB,GAAI,GACrB,EAIA,SAAC,EAAU,CAAK,MAAA,GAAW,KAAK,EAAiB,EAAe,EAAO,EAAY,EAAY,KAAgB,IAC/G,UAAA,CAIE,EAAkB,KAClB,QAKR,UAAA,CACE,EAAa,GACb,SCnEJ,YACJ,EACA,EAA6G,CAE7G,MAAO,GAAW,GAAkB,EAAU,UAAA,CAAM,MAAA,IAAiB,GAAkB,EAAU,UAAA,CAAM,MAAA,KCjBnG,YAAuB,EAA8B,CACzD,MAAO,GAAQ,SAAC,EAAQ,EAAU,CAChC,EAAU,GAAU,UAAU,GAAI,GAAmB,EAAY,UAAA,CAAM,MAAA,GAAW,YAAY,KAC9F,CAAC,EAAW,QAAU,EAAO,UAAU,KCMrC,YAAuB,EAAiD,EAAiB,CAAjB,MAAA,KAAA,QAAA,GAAA,IACrE,EAAQ,SAAC,EAAQ,EAAU,CAChC,GAAI,GAAQ,EACZ,EAAO,UACL,GAAI,GAAmB,EAAY,SAAC,EAAK,CACvC,GAAM,GAAS,EAAU,EAAO,KAChC,AAAC,IAAU,IAAc,EAAW,KAAK,GACzC,CAAC,GAAU,EAAW,gBCqDxB,WACJ,EACA,EACA,EAA8B,CAK9B,GAAM,GACJ,EAAW,IAAmB,GAAS,EAElC,CAAE,KAAM,EAA2E,MAAK,EAAE,SAAQ,GACnG,EAEN,MAAO,GACH,EAAQ,SAAC,EAAQ,EAAU,OACzB,AAAA,GAAA,EAAY,aAAS,MAAA,IAAA,QAAA,EAAA,KAArB,GACA,GAAI,GAAU,GACd,EAAO,UACL,GAAI,GACF,EACA,SAAC,EAAK,OACJ,AAAA,GAAA,EAAY,QAAI,MAAA,IAAA,QAAA,EAAA,KAAhB,EAAmB,GACnB,EAAW,KAAK,IAElB,UAAA,OACE,EAAU,GACV,GAAA,EAAY,YAAQ,MAAA,IAAA,QAAA,EAAA,KAApB,GACA,EAAW,YAEb,SAAC,EAAG,OACF,EAAU,GACV,GAAA,EAAY,SAAK,MAAA,IAAA,QAAA,EAAA,KAAjB,EAAoB,GACpB,EAAW,MAAM,IAEnB,UAAA,SACE,AAAI,GACF,IAAA,EAAY,eAAW,MAAA,IAAA,QAAA,EAAA,KAAvB,IAEF,GAAA,EAAY,YAAQ,MAAA,IAAA,QAAA,EAAA,KAApB,QAQR,GCpJC,GAAM,IAAwC,CACnD,QAAS,GACT,SAAU,IA+CN,YACJ,EACA,EAA8C,CAA9C,MAAA,KAAA,QAAA,GAAA,IAEO,EAAQ,SAAC,EAAQ,EAAU,CACxB,GAAA,GAAsB,EAAM,QAAnB,EAAa,EAAM,SAChC,EAAW,GACX,EAAsB,KACtB,EAAiC,KACjC,EAAa,GAEX,EAAgB,UAAA,CACpB,GAAS,MAAT,EAAW,cACX,EAAY,KACR,GACF,KACA,GAAc,EAAW,aAIvB,EAAoB,UAAA,CACxB,EAAY,KACZ,GAAc,EAAW,YAGrB,EAAgB,SAAC,EAAQ,CAC7B,MAAC,GAAY,EAAU,EAAiB,IAAQ,UAAU,GAAI,GAAmB,EAAY,EAAe,KAExG,EAAO,UAAA,CACX,GAAI,EAAU,CAIZ,EAAW,GACX,GAAM,GAAQ,EACd,EAAY,KAEZ,EAAW,KAAK,GAChB,CAAC,GAAc,EAAc,KAIjC,EAAO,UACL,GAAI,GACF,EAMA,SAAC,EAAK,CACJ,EAAW,GACX,EAAY,EACZ,CAAE,IAAa,CAAC,EAAU,SAAY,GAAU,IAAS,EAAc,KAEzE,UAAA,CACE,EAAa,GACb,CAAE,IAAY,GAAY,GAAa,CAAC,EAAU,SAAW,EAAW,gBCpC5E,YACJ,EACA,EACA,EAA8B,CAD9B,AAAA,IAAA,QAAA,GAAA,IACA,IAAA,QAAA,GAAA,IAEA,GAAM,GAAY,GAAM,EAAU,GAClC,MAAO,IAAS,UAAA,CAAM,MAAA,IAAW,GChC7B,aAAwB,QAAO,GAAA,GAAA,EAAA,EAAA,EAAA,UAAA,OAAA,IAAA,EAAA,GAAA,UAAA,GACnC,GAAM,GAAU,GAAkB,GAElC,MAAO,GAAQ,SAAC,EAAQ,EAAU,CAehC,OAdM,GAAM,EAAO,OACb,EAAc,GAAI,OAAM,GAI1B,EAAW,EAAO,IAAI,UAAA,CAAM,MAAA,KAG5B,EAAQ,cAMH,EAAC,CACR,EAAU,EAAO,IAAI,UACnB,GAAI,GACF,EACA,SAAC,EAAK,CACJ,EAAY,GAAK,EACb,CAAC,GAAS,CAAC,EAAS,IAEtB,GAAS,GAAK,GAKb,GAAQ,EAAS,MAAM,MAAe,GAAW,QAKtD,MAlBG,EAAI,EAAG,EAAI,EAAK,MAAhB,GAwBT,EAAO,UACL,GAAI,GAAmB,EAAY,SAAC,EAAK,CACvC,GAAI,EAAO,CAET,GAAM,GAAM,EAAA,CAAI,GAAK,EAAK,IAC1B,EAAW,KAAK,EAAU,EAAO,MAAA,OAAA,EAAA,GAAA,EAAI,KAAU,SClFnD,aAAa,QAAO,GAAA,GAAA,EAAA,EAAA,EAAA,UAAA,OAAA,IAAA,EAAA,GAAA,UAAA,GACxB,MAAO,GAAQ,SAAC,EAAQ,EAAU,CAChC,GAAS,MAAA,OAAA,EAAA,CAAC,GAA8B,EAAM,KAAyC,UAAU,KCG/F,aAAiB,QAAkC,GAAA,GAAA,EAAA,EAAA,EAAA,UAAA,OAAA,IAAA,EAAA,GAAA,UAAA,GACvD,MAAO,IAAG,MAAA,OAAA,EAAA,GAAA,EAAI,KCaT,aAA4C,CACjD,GAAM,GAAY,GAAI,IAAwB,GAC9C,SAAU,SAAU,mBAAoB,CAAE,KAAM,KAC7C,UAAU,IAAM,EAAU,KAAK,WAG3B,ECFF,WACL,EAAkB,EAAmB,SAChC,CACL,MAAO,OAAM,KAAK,EAAK,iBAAoB,IAwBtC,WACL,EAAkB,EAAmB,SAClC,CACH,GAAM,GAAK,GAAsB,EAAU,GAC3C,GAAI,MAAO,IAAO,YAChB,KAAM,IAAI,gBACR,8BAA8B,oBAIlC,MAAO,GAuBF,YACL,EAAkB,EAAmB,SACtB,CACf,MAAO,GAAK,cAAiB,IAAa,OAQrC,aAAqD,CAC1D,MAAO,UAAS,wBAAyB,cACrC,SAAS,eAAiB,OChEzB,YACL,EACqB,CACrB,MAAO,GACL,EAAU,SAAS,KAAM,WACzB,EAAU,SAAS,KAAM,aAExB,KACC,GAAa,GACb,EAAI,IAAM,CACR,GAAM,GAAS,KACf,MAAO,OAAO,IAAW,YACrB,EAAG,SAAS,GACZ,KAEN,EAAU,IAAO,MACjB,KCdC,YACL,EACe,CACf,MAAO,CACL,EAAG,EAAG,WACN,EAAG,EAAG,WAaH,YACL,EAC2B,CAC3B,MAAO,GACL,EAAU,OAAQ,QAClB,EAAU,OAAQ,WAEjB,KACC,GAAU,EAAG,IACb,EAAI,IAAM,GAAiB,IAC3B,EAAU,GAAiB,KCtC1B,YACL,EACe,CACf,MAAO,CACL,EAAG,EAAG,WACN,EAAG,EAAG,WAaH,YACL,EAC2B,CAC3B,MAAO,GACL,EAAU,EAAI,UACd,EAAU,OAAQ,WAEjB,KACC,GAAU,EAAG,IACb,EAAI,IAAM,GAAwB,IAClC,EAAU,GAAwB,KClExC,GAAI,IAAW,UAAY,CACvB,GAAI,MAAO,MAAQ,YACf,MAAO,KASX,WAAkB,EAAK,EAAK,CACxB,GAAI,GAAS,GACb,SAAI,KAAK,SAAU,EAAO,EAAO,CAC7B,MAAI,GAAM,KAAO,EACb,GAAS,EACF,IAEJ,KAEJ,EAEX,MAAsB,WAAY,CAC9B,YAAmB,CACf,KAAK,YAAc,GAEvB,cAAO,eAAe,EAAQ,UAAW,OAAQ,CAI7C,IAAK,UAAY,CACb,MAAO,MAAK,YAAY,QAE5B,WAAY,GACZ,aAAc,KAMlB,EAAQ,UAAU,IAAM,SAAU,EAAK,CACnC,GAAI,GAAQ,EAAS,KAAK,YAAa,GACnC,EAAQ,KAAK,YAAY,GAC7B,MAAO,IAAS,EAAM,IAO1B,EAAQ,UAAU,IAAM,SAAU,EAAK,EAAO,CAC1C,GAAI,GAAQ,EAAS,KAAK,YAAa,GACvC,AAAI,CAAC,EACD,KAAK,YAAY,GAAO,GAAK,EAG7B,KAAK,YAAY,KAAK,CAAC,EAAK,KAOpC,EAAQ,UAAU,OAAS,SAAU,EAAK,CACtC,GAAI,GAAU,KAAK,YACf,EAAQ,EAAS,EAAS,GAC9B,AAAI,CAAC,GACD,EAAQ,OAAO,EAAO,IAO9B,EAAQ,UAAU,IAAM,SAAU,EAAK,CACnC,MAAO,CAAC,CAAC,CAAC,EAAS,KAAK,YAAa,IAKzC,EAAQ,UAAU,MAAQ,UAAY,CAClC,KAAK,YAAY,OAAO,IAO5B,EAAQ,UAAU,QAAU,SAAU,EAAU,EAAK,CACjD,AAAI,IAAQ,QAAU,GAAM,MAC5B,OAAS,GAAK,EAAG,EAAK,KAAK,YAAa,EAAK,EAAG,OAAQ,IAAM,CAC1D,GAAI,GAAQ,EAAG,GACf,EAAS,KAAK,EAAK,EAAM,GAAI,EAAM,MAGpC,QAOX,GAAY,MAAO,SAAW,aAAe,MAAO,WAAa,aAAe,OAAO,WAAa,SAGpG,GAAY,UAAY,CACxB,MAAI,OAAO,SAAW,aAAe,OAAO,OAAS,KAC1C,OAEP,MAAO,OAAS,aAAe,KAAK,OAAS,KACtC,KAEP,MAAO,SAAW,aAAe,OAAO,OAAS,KAC1C,OAGJ,SAAS,oBAShB,GAA2B,UAAY,CACvC,MAAI,OAAO,wBAA0B,WAI1B,sBAAsB,KAAK,IAE/B,SAAU,EAAU,CAAE,MAAO,YAAW,UAAY,CAAE,MAAO,GAAS,KAAK,QAAW,IAAO,QAIpG,GAAkB,EAStB,YAAmB,EAAU,EAAO,CAChC,GAAI,GAAc,GAAO,EAAe,GAAO,EAAe,EAO9D,YAA0B,CACtB,AAAI,GACA,GAAc,GACd,KAEA,GACA,IAUR,YAA2B,CACvB,GAAwB,GAO5B,YAAiB,CACb,GAAI,GAAY,KAAK,MACrB,GAAI,EAAa,CAEb,GAAI,EAAY,EAAe,GAC3B,OAMJ,EAAe,OAGf,GAAc,GACd,EAAe,GACf,WAAW,EAAiB,GAEhC,EAAe,EAEnB,MAAO,GAIX,GAAI,IAAgB,GAGhB,GAAiB,CAAC,MAAO,QAAS,SAAU,OAAQ,QAAS,SAAU,OAAQ,UAE/E,GAA4B,MAAO,mBAAqB,YAIxD,GAA0C,UAAY,CAMtD,YAAoC,CAMhC,KAAK,WAAa,GAMlB,KAAK,qBAAuB,GAM5B,KAAK,mBAAqB,KAM1B,KAAK,WAAa,GAClB,KAAK,iBAAmB,KAAK,iBAAiB,KAAK,MACnD,KAAK,QAAU,GAAS,KAAK,QAAQ,KAAK,MAAO,IAQrD,SAAyB,UAAU,YAAc,SAAU,EAAU,CACjE,AAAK,CAAC,KAAK,WAAW,QAAQ,IAC1B,KAAK,WAAW,KAAK,GAGpB,KAAK,YACN,KAAK,YASb,EAAyB,UAAU,eAAiB,SAAU,EAAU,CACpE,GAAI,GAAY,KAAK,WACjB,EAAQ,EAAU,QAAQ,GAE9B,AAAI,CAAC,GACD,EAAU,OAAO,EAAO,GAGxB,CAAC,EAAU,QAAU,KAAK,YAC1B,KAAK,eASb,EAAyB,UAAU,QAAU,UAAY,CACrD,GAAI,GAAkB,KAAK,mBAG3B,AAAI,GACA,KAAK,WAWb,EAAyB,UAAU,iBAAmB,UAAY,CAE9D,GAAI,GAAkB,KAAK,WAAW,OAAO,SAAU,EAAU,CAC7D,MAAO,GAAS,eAAgB,EAAS,cAO7C,SAAgB,QAAQ,SAAU,EAAU,CAAE,MAAO,GAAS,oBACvD,EAAgB,OAAS,GAQpC,EAAyB,UAAU,SAAW,UAAY,CAGtD,AAAI,CAAC,IAAa,KAAK,YAMvB,UAAS,iBAAiB,gBAAiB,KAAK,kBAChD,OAAO,iBAAiB,SAAU,KAAK,SACvC,AAAI,GACA,MAAK,mBAAqB,GAAI,kBAAiB,KAAK,SACpD,KAAK,mBAAmB,QAAQ,SAAU,CACtC,WAAY,GACZ,UAAW,GACX,cAAe,GACf,QAAS,MAIb,UAAS,iBAAiB,qBAAsB,KAAK,SACrD,KAAK,qBAAuB,IAEhC,KAAK,WAAa,KAQtB,EAAyB,UAAU,YAAc,UAAY,CAGzD,AAAI,CAAC,IAAa,CAAC,KAAK,YAGxB,UAAS,oBAAoB,gBAAiB,KAAK,kBACnD,OAAO,oBAAoB,SAAU,KAAK,SACtC,KAAK,oBACL,KAAK,mBAAmB,aAExB,KAAK,sBACL,SAAS,oBAAoB,qBAAsB,KAAK,SAE5D,KAAK,mBAAqB,KAC1B,KAAK,qBAAuB,GAC5B,KAAK,WAAa,KAStB,EAAyB,UAAU,iBAAmB,SAAU,EAAI,CAChE,GAAI,GAAK,EAAG,aAAc,EAAe,IAAO,OAAS,GAAK,EAE1D,EAAmB,GAAe,KAAK,SAAU,EAAK,CACtD,MAAO,CAAC,CAAC,CAAC,EAAa,QAAQ,KAEnC,AAAI,GACA,KAAK,WAQb,EAAyB,YAAc,UAAY,CAC/C,MAAK,MAAK,WACN,MAAK,UAAY,GAAI,IAElB,KAAK,WAOhB,EAAyB,UAAY,KAC9B,KAUP,GAAsB,SAAU,EAAQ,EAAO,CAC/C,OAAS,GAAK,EAAG,EAAK,OAAO,KAAK,GAAQ,EAAK,EAAG,OAAQ,IAAM,CAC5D,GAAI,GAAM,EAAG,GACb,OAAO,eAAe,EAAQ,EAAK,CAC/B,MAAO,EAAM,GACb,WAAY,GACZ,SAAU,GACV,aAAc,KAGtB,MAAO,IASP,GAAe,SAAU,EAAQ,CAIjC,GAAI,GAAc,GAAU,EAAO,eAAiB,EAAO,cAAc,YAGzE,MAAO,IAAe,IAItB,GAAY,GAAe,EAAG,EAAG,EAAG,GAOxC,YAAiB,EAAO,CACpB,MAAO,YAAW,IAAU,EAShC,YAAwB,EAAQ,CAE5B,OADI,GAAY,GACP,EAAK,EAAG,EAAK,UAAU,OAAQ,IACpC,EAAU,EAAK,GAAK,UAAU,GAElC,MAAO,GAAU,OAAO,SAAU,EAAM,EAAU,CAC9C,GAAI,GAAQ,EAAO,UAAY,EAAW,UAC1C,MAAO,GAAO,GAAQ,IACvB,GAQP,YAAqB,EAAQ,CAGzB,OAFI,GAAY,CAAC,MAAO,QAAS,SAAU,QACvC,EAAW,GACN,EAAK,EAAG,EAAc,EAAW,EAAK,EAAY,OAAQ,IAAM,CACrE,GAAI,GAAW,EAAY,GACvB,EAAQ,EAAO,WAAa,GAChC,EAAS,GAAY,GAAQ,GAEjC,MAAO,GASX,YAA2B,EAAQ,CAC/B,GAAI,GAAO,EAAO,UAClB,MAAO,IAAe,EAAG,EAAG,EAAK,MAAO,EAAK,QAQjD,YAAmC,EAAQ,CAGvC,GAAI,GAAc,EAAO,YAAa,EAAe,EAAO,aAS5D,GAAI,CAAC,GAAe,CAAC,EACjB,MAAO,IAEX,GAAI,GAAS,GAAY,GAAQ,iBAAiB,GAC9C,EAAW,GAAY,GACvB,EAAW,EAAS,KAAO,EAAS,MACpC,EAAU,EAAS,IAAM,EAAS,OAKlC,EAAQ,GAAQ,EAAO,OAAQ,EAAS,GAAQ,EAAO,QAqB3D,GAlBI,EAAO,YAAc,cAOjB,MAAK,MAAM,EAAQ,KAAc,GACjC,IAAS,GAAe,EAAQ,OAAQ,SAAW,GAEnD,KAAK,MAAM,EAAS,KAAa,GACjC,IAAU,GAAe,EAAQ,MAAO,UAAY,IAOxD,CAAC,GAAkB,GAAS,CAK5B,GAAI,GAAgB,KAAK,MAAM,EAAQ,GAAY,EAC/C,EAAiB,KAAK,MAAM,EAAS,GAAW,EAMpD,AAAI,KAAK,IAAI,KAAmB,GAC5B,IAAS,GAET,KAAK,IAAI,KAAoB,GAC7B,IAAU,GAGlB,MAAO,IAAe,EAAS,KAAM,EAAS,IAAK,EAAO,GAQ9D,GAAI,IAAwB,UAAY,CAGpC,MAAI,OAAO,qBAAuB,YACvB,SAAU,EAAQ,CAAE,MAAO,aAAkB,IAAY,GAAQ,oBAKrE,SAAU,EAAQ,CAAE,MAAQ,aAAkB,IAAY,GAAQ,YACrE,MAAO,GAAO,SAAY,eAQlC,YAA2B,EAAQ,CAC/B,MAAO,KAAW,GAAY,GAAQ,SAAS,gBAQnD,YAAwB,EAAQ,CAC5B,MAAK,IAGD,GAAqB,GACd,GAAkB,GAEtB,GAA0B,GALtB,GAcf,YAA4B,EAAI,CAC5B,GAAI,GAAI,EAAG,EAAG,EAAI,EAAG,EAAG,EAAQ,EAAG,MAAO,EAAS,EAAG,OAElD,EAAS,MAAO,kBAAoB,YAAc,gBAAkB,OACpE,EAAO,OAAO,OAAO,EAAO,WAEhC,UAAmB,EAAM,CACrB,EAAG,EAAG,EAAG,EAAG,MAAO,EAAO,OAAQ,EAClC,IAAK,EACL,MAAO,EAAI,EACX,OAAQ,EAAS,EACjB,KAAM,IAEH,EAYX,YAAwB,EAAG,EAAG,EAAO,EAAQ,CACzC,MAAO,CAAE,EAAG,EAAG,EAAG,EAAG,MAAO,EAAO,OAAQ,GAO/C,GAAI,IAAmC,UAAY,CAM/C,WAA2B,EAAQ,CAM/B,KAAK,eAAiB,EAMtB,KAAK,gBAAkB,EAMvB,KAAK,aAAe,GAAe,EAAG,EAAG,EAAG,GAC5C,KAAK,OAAS,EAQlB,SAAkB,UAAU,SAAW,UAAY,CAC/C,GAAI,GAAO,GAAe,KAAK,QAC/B,YAAK,aAAe,EACZ,EAAK,QAAU,KAAK,gBACxB,EAAK,SAAW,KAAK,iBAQ7B,EAAkB,UAAU,cAAgB,UAAY,CACpD,GAAI,GAAO,KAAK,aAChB,YAAK,eAAiB,EAAK,MAC3B,KAAK,gBAAkB,EAAK,OACrB,GAEJ,KAGP,GAAqC,UAAY,CAOjD,WAA6B,EAAQ,EAAU,CAC3C,GAAI,GAAc,GAAmB,GAOrC,GAAmB,KAAM,CAAE,OAAQ,EAAQ,YAAa,IAE5D,MAAO,MAGP,GAAmC,UAAY,CAW/C,WAA2B,EAAU,EAAY,EAAa,CAc1D,GAPA,KAAK,oBAAsB,GAM3B,KAAK,cAAgB,GAAI,IACrB,MAAO,IAAa,WACpB,KAAM,IAAI,WAAU,2DAExB,KAAK,UAAY,EACjB,KAAK,YAAc,EACnB,KAAK,aAAe,EAQxB,SAAkB,UAAU,QAAU,SAAU,EAAQ,CACpD,GAAI,CAAC,UAAU,OACX,KAAM,IAAI,WAAU,4CAGxB,GAAI,QAAO,UAAY,aAAe,CAAE,mBAAmB,UAG3D,IAAI,CAAE,aAAkB,IAAY,GAAQ,SACxC,KAAM,IAAI,WAAU,yCAExB,GAAI,GAAe,KAAK,cAExB,AAAI,EAAa,IAAI,IAGrB,GAAa,IAAI,EAAQ,GAAI,IAAkB,IAC/C,KAAK,YAAY,YAAY,MAE7B,KAAK,YAAY,aAQrB,EAAkB,UAAU,UAAY,SAAU,EAAQ,CACtD,GAAI,CAAC,UAAU,OACX,KAAM,IAAI,WAAU,4CAGxB,GAAI,QAAO,UAAY,aAAe,CAAE,mBAAmB,UAG3D,IAAI,CAAE,aAAkB,IAAY,GAAQ,SACxC,KAAM,IAAI,WAAU,yCAExB,GAAI,GAAe,KAAK,cAExB,AAAI,CAAC,EAAa,IAAI,IAGtB,GAAa,OAAO,GACf,EAAa,MACd,KAAK,YAAY,eAAe,SAQxC,EAAkB,UAAU,WAAa,UAAY,CACjD,KAAK,cACL,KAAK,cAAc,QACnB,KAAK,YAAY,eAAe,OAQpC,EAAkB,UAAU,aAAe,UAAY,CACnD,GAAI,GAAQ,KACZ,KAAK,cACL,KAAK,cAAc,QAAQ,SAAU,EAAa,CAC9C,AAAI,EAAY,YACZ,EAAM,oBAAoB,KAAK,MAU3C,EAAkB,UAAU,gBAAkB,UAAY,CAEtD,GAAI,EAAC,KAAK,YAGV,IAAI,GAAM,KAAK,aAEX,EAAU,KAAK,oBAAoB,IAAI,SAAU,EAAa,CAC9D,MAAO,IAAI,IAAoB,EAAY,OAAQ,EAAY,mBAEnE,KAAK,UAAU,KAAK,EAAK,EAAS,GAClC,KAAK,gBAOT,EAAkB,UAAU,YAAc,UAAY,CAClD,KAAK,oBAAoB,OAAO,IAOpC,EAAkB,UAAU,UAAY,UAAY,CAChD,MAAO,MAAK,oBAAoB,OAAS,GAEtC,KAMP,GAAY,MAAO,UAAY,YAAc,GAAI,SAAY,GAAI,IAKjE,GAAgC,UAAY,CAO5C,WAAwB,EAAU,CAC9B,GAAI,CAAE,gBAAgB,IAClB,KAAM,IAAI,WAAU,sCAExB,GAAI,CAAC,UAAU,OACX,KAAM,IAAI,WAAU,4CAExB,GAAI,GAAa,GAAyB,cACtC,EAAW,GAAI,IAAkB,EAAU,EAAY,MAC3D,GAAU,IAAI,KAAM,GAExB,MAAO,MAGX,CACI,UACA,YACA,cACF,QAAQ,SAAU,EAAQ,CACxB,GAAe,UAAU,GAAU,UAAY,CAC3C,GAAI,GACJ,MAAQ,GAAK,GAAU,IAAI,OAAO,GAAQ,MAAM,EAAI,cAI5D,GAAI,IAAS,UAAY,CAErB,MAAI,OAAO,IAAS,gBAAmB,YAC5B,GAAS,eAEb,MAGJ,GAAQ,GCr2Bf,GAAM,IAAS,GAAI,GAYb,GAAY,EAAM,IAAM,EAC5B,GAAI,IAAe,GAAW,CAC5B,OAAW,KAAS,GAClB,GAAO,KAAK,OAGf,KACC,EAAU,GAAY,EAAM,GAAO,EAAG,IACnC,KACC,EAAS,IAAM,EAAS,gBAG5B,EAAY,IAcT,YACL,EACa,CACb,MAAO,CACL,MAAQ,EAAG,YACX,OAAQ,EAAG,cAyBR,YACL,EACyB,CACzB,MAAO,IACJ,KACC,EAAI,GAAY,EAAS,QAAQ,IACjC,EAAU,GAAY,GACnB,KACC,EAAO,CAAC,CAAE,YAAa,IAAW,GAClC,EAAS,IAAM,EAAS,UAAU,IAClC,EAAI,IAAM,GAAe,MAG7B,EAAU,GAAe,KCxGxB,YACL,EACa,CACb,MAAO,CACL,MAAQ,EAAG,YACX,OAAQ,EAAG,cCWf,GAAM,IAAS,GAAI,GAUb,GAAY,EAAM,IAAM,EAC5B,GAAI,sBAAqB,GAAW,CAClC,OAAW,KAAS,GAClB,GAAO,KAAK,IACb,CACD,UAAW,MAGZ,KACC,EAAU,GAAY,EAAM,GAAO,EAAG,IACnC,KACC,EAAS,IAAM,EAAS,gBAG5B,EAAY,IAyCT,YACL,EAAiB,EAAY,GACR,CACrB,MAAO,IAA0B,GAC9B,KACC,EAAI,CAAC,CAAE,OAAQ,CACb,GAAM,GAAU,GAAe,GACzB,EAAU,GAAsB,GACtC,MAAO,IACL,EAAQ,OAAS,EAAQ,OAAS,IAGtC,KC/EN,GAAM,IAA4C,CAChD,OAAQ,EAAW,2BACnB,OAAQ,EAAW,4BAcd,YAAmB,EAAuB,CAC/C,MAAO,IAAQ,GAAM,QAchB,YAAmB,EAAc,EAAsB,CAC5D,AAAI,GAAQ,GAAM,UAAY,GAC5B,GAAQ,GAAM,QAYX,YAAqB,EAAmC,CAC7D,GAAM,GAAK,GAAQ,GACnB,MAAO,GAAU,EAAI,UAClB,KACC,EAAI,IAAM,EAAG,SACb,EAAU,EAAG,UChCnB,YACE,EAAiB,EACR,CACT,OAAQ,EAAG,iBAGJ,kBAEH,MAAI,GAAG,OAAS,QACP,SAAS,KAAK,GAEd,OAGN,uBACA,qBACH,MAAO,WAIP,MAAO,GAAG,mBAaT,aAA+C,CACpD,MAAO,GAAyB,OAAQ,WACrC,KACC,EAAO,GAAM,CAAE,GAAG,SAAW,EAAG,UAChC,EAAI,GAAO,EACT,KAAM,GAAU,UAAY,SAAW,SACvC,KAAM,EAAG,IACT,OAAQ,CACN,EAAG,iBACH,EAAG,sBAGP,EAAO,CAAC,CAAE,OAAM,UAAW,CACzB,GAAI,IAAS,SAAU,CACrB,GAAM,GAAS,KACf,GAAI,MAAO,IAAW,YACpB,MAAO,CAAC,GAAwB,EAAQ,GAE5C,MAAO,KAET,MClFC,aAA4B,CACjC,MAAO,IAAI,KAAI,SAAS,MAQnB,YAAqB,EAAgB,CAC1C,SAAS,KAAO,EAAI,KAUf,aAAuC,CAC5C,MAAO,IAAI,GCJb,YAAqB,EAAiB,EAA8B,CAGlE,GAAI,MAAO,IAAU,UAAY,MAAO,IAAU,SAChD,EAAG,WAAa,EAAM,mBAGb,YAAiB,MAC1B,EAAG,YAAY,WAGN,MAAM,QAAQ,GACvB,OAAW,KAAQ,GACjB,GAAY,EAAI,GA2Bf,WACL,EAAa,KAAmC,EAC7C,CACH,GAAM,GAAK,SAAS,cAAc,GAGlC,GAAI,EACF,OAAW,KAAQ,QAAO,KAAK,GAC7B,AAAI,MAAO,GAAW,IAAU,UAC9B,EAAG,aAAa,EAAM,EAAW,IAC1B,EAAW,IAClB,EAAG,aAAa,EAAM,IAG5B,OAAW,KAAS,GAClB,GAAY,EAAI,GAGlB,MAAO,GC1EF,YAAkB,EAAe,EAAmB,CACzD,GAAI,GAAI,EACR,GAAI,EAAM,OAAS,EAAG,CACpB,KAAO,EAAM,KAAO,KAAO,EAAE,EAAI,GAAG,CACpC,MAAO,GAAG,EAAM,UAAU,EAAG,QAE/B,MAAO,GAmBF,YAAe,EAAuB,CAC3C,GAAI,EAAQ,IAAK,CACf,GAAM,GAAS,CAAG,IAAQ,KAAO,IAAO,IACxC,MAAO,GAAK,IAAQ,MAAY,KAAM,QAAQ,UAE9C,OAAO,GAAM,WC1BV,aAAmC,CACxC,MAAO,UAAS,KAAK,UAAU,GAa1B,YAAyB,EAAoB,CAClD,GAAM,GAAK,EAAE,IAAK,CAAE,KAAM,IAC1B,EAAG,iBAAiB,QAAS,GAAM,EAAG,mBACtC,EAAG,QAUE,aAAiD,CACtD,MAAO,GAA2B,OAAQ,cACvC,KACC,EAAI,IACJ,EAAU,MACV,EAAO,GAAQ,EAAK,OAAS,GAC7B,EAAY,IASX,aAAwD,CAC7D,MAAO,MACJ,KACC,EAAI,GAAM,GAAmB,QAAQ,QACrC,EAAO,GAAM,MAAO,IAAO,cCxC1B,YAAoB,EAAoC,CAC7D,GAAM,GAAQ,WAAW,GACzB,MAAO,IAA0B,GAC/B,EAAM,YAAY,IAAM,EAAK,EAAM,WAElC,KACC,EAAU,EAAM,UASf,aAA2C,CAChD,GAAM,GAAQ,WAAW,SACzB,MAAO,GACL,EAAU,OAAQ,eAAe,KAAK,GAAM,KAC5C,EAAU,OAAQ,cAAc,KAAK,GAAM,MAE1C,KACC,EAAU,EAAM,UAgBf,YACL,EAA6B,EACd,CACf,MAAO,GACJ,KACC,EAAU,GAAU,EAAS,IAAY,IC5CxC,YACL,EAAmB,EAAuB,CAAE,YAAa,eACnC,CACtB,MAAO,IAAK,MAAM,GAAG,IAAO,IACzB,KACC,EAAO,GAAO,EAAI,SAAW,KAC7B,GAAW,IAAM,IAchB,YACL,EAAmB,EACJ,CACf,MAAO,IAAQ,EAAK,GACjB,KACC,EAAU,GAAO,EAAI,QACrB,EAAY,IAYX,YACL,EAAmB,EACG,CACtB,GAAM,GAAM,GAAI,WAChB,MAAO,IAAQ,EAAK,GACjB,KACC,EAAU,GAAO,EAAI,QACrB,EAAI,GAAO,EAAI,gBAAgB,EAAK,aACpC,EAAY,ICxCX,aAA6C,CAClD,MAAO,CACL,EAAG,KAAK,IAAI,EAAG,SACf,EAAG,KAAK,IAAI,EAAG,UAWZ,aAA2D,CAChE,MAAO,GACL,EAAU,OAAQ,SAAU,CAAE,QAAS,KACvC,EAAU,OAAQ,SAAU,CAAE,QAAS,MAEtC,KACC,EAAI,IACJ,EAAU,OCzBT,aAAyC,CAC9C,MAAO,CACL,MAAQ,WACR,OAAQ,aAWL,aAAuD,CAC5D,MAAO,GAAU,OAAQ,SAAU,CAAE,QAAS,KAC3C,KACC,EAAI,IACJ,EAAU,OCTT,aAA+C,CACpD,MAAO,GAAc,CACnB,KACA,OAEC,KACC,EAAI,CAAC,CAAC,EAAQ,KAAW,EAAE,SAAQ,UACnC,EAAY,ICRX,YACL,EAAiB,CAAE,YAAW,WACR,CACtB,GAAM,GAAQ,EACX,KACC,EAAwB,SAItB,EAAU,EAAc,CAAC,EAAO,IACnC,KACC,EAAI,IAAM,GAAiB,KAI/B,MAAO,GAAc,CAAC,EAAS,EAAW,IACvC,KACC,EAAI,CAAC,CAAC,CAAE,UAAU,CAAE,SAAQ,QAAQ,CAAE,IAAG,QAAU,EACjD,OAAQ,CACN,EAAG,EAAO,EAAI,EACd,EAAG,EAAO,EAAI,EAAI,GAEpB,WCOD,YACL,EAAgB,CAAE,OACH,CAGf,GAAM,GAAM,EAAwB,EAAQ,WACzC,KACC,EAAI,CAAC,CAAE,UAAW,IAItB,MAAO,GACJ,KACC,GAAS,IAAM,EAAK,CAAE,QAAS,GAAM,SAAU,KAC/C,EAAI,GAAW,EAAO,YAAY,IAClC,GAAY,GACZ,MCFN,GAAM,IAAS,EAAW,aACpB,GAAiB,KAAK,MAAM,GAAO,aACzC,GAAO,KAAO,GAAG,GAAI,KAAI,GAAO,KAAM,QAW/B,aAAiC,CACtC,MAAO,IAUF,YAAiB,EAAqB,CAC3C,MAAO,IAAO,SAAS,SAAS,GAW3B,WACL,EAAkB,EACV,CACR,MAAO,OAAO,IAAU,YACpB,GAAO,aAAa,GAAK,QAAQ,IAAK,EAAM,YAC5C,GAAO,aAAa,GC7BnB,YACL,EAAS,EAAmB,SACP,CACrB,MAAO,GAAW,sBAAsB,KAAS,GAa5C,YACL,EAAS,EAAmB,SACL,CACvB,MAAO,GAAY,sBAAsB,KAAS,GC9GpD,OAAwB,SCajB,YAA0B,EAAyB,CACxD,MACE,GAAC,QAAD,CAAO,MAAM,gBAAgB,SAAU,GACrC,EAAC,MAAD,CAAK,MAAM,mCACT,EAAC,MAAD,CAAK,MAAM,kCAEb,EAAC,OAAD,CAAM,MAAM,wBACV,EAAC,OAAD,CAAM,wBAAuB,MCN9B,YAA+B,EAAyB,CAC7D,MACE,GAAC,SAAD,CACE,MAAM,uBACN,MAAO,EAAY,kBACnB,wBAAuB,IAAI,aCejC,YACE,EAA2C,EAC9B,CACb,GAAM,GAAS,EAAO,EAChB,EAAS,EAAO,EAGhB,EAAU,OAAO,KAAK,EAAS,OAClC,OAAO,GAAO,CAAC,EAAS,MAAM,IAC9B,OAAyB,CAAC,EAAM,IAAQ,CACvC,GAAG,EAAM,EAAC,MAAD,KAAM,GAAY,KAC1B,IACF,MAAM,EAAG,IAGN,EAAM,GAAI,KAAI,EAAS,UAC7B,MAAI,IAAQ,qBACV,EAAI,aAAa,IAAI,IAAK,OAAO,QAAQ,EAAS,OAC/C,OAAO,CAAC,CAAC,CAAE,KAAW,GACtB,OAAO,CAAC,EAAW,CAAC,KAAW,GAAG,KAAa,IAAQ,OAAQ,KAKlE,EAAC,IAAD,CAAG,KAAM,GAAG,IAAO,MAAM,yBAAyB,SAAU,IAC1D,EAAC,UAAD,CACE,MAAO,CAAC,4BAA6B,GAAG,EACpC,CAAC,uCACD,IACF,KAAK,KACP,gBAAe,EAAS,MAAM,QAAQ,IAErC,EAAS,GAAK,EAAC,MAAD,CAAK,MAAM,mCAC1B,EAAC,KAAD,CAAI,MAAM,2BAA2B,EAAS,OAC7C,EAAS,GAAK,EAAS,KAAK,OAAS,GACpC,EAAC,IAAD,CAAG,MAAM,4BACN,GAAS,EAAS,KAAM,MAG5B,EAAS,GAAK,EAAQ,OAAS,GAC9B,EAAC,IAAD,CAAG,MAAM,2BACN,EAAY,8BAA8B,KAAM,KAmBtD,YACL,EACa,CACb,GAAM,GAAY,EAAO,GAAG,MACtB,EAAO,CAAC,GAAG,GAGX,EAAS,EAAK,UAAU,GAAO,CAAC,EAAI,SAAS,SAAS,MACtD,CAAC,GAAW,EAAK,OAAO,EAAQ,GAGlC,EAAQ,EAAK,UAAU,GAAO,EAAI,MAAQ,GAC9C,AAAI,IAAU,IACZ,GAAQ,EAAK,QAGf,GAAM,GAAO,EAAK,MAAM,EAAG,GACrB,EAAO,EAAK,MAAM,GAGlB,EAAW,CACf,GAAqB,EAAS,EAAc,CAAE,EAAC,GAAU,IAAU,IACnE,GAAG,EAAK,IAAI,GAAW,GAAqB,EAAS,IACrD,GAAG,EAAK,OAAS,CACf,EAAC,UAAD,CAAS,MAAM,0BACb,EAAC,UAAD,CAAS,SAAU,IAChB,EAAK,OAAS,GAAK,EAAK,SAAW,EAChC,EAAY,0BACZ,EAAY,2BAA4B,EAAK,SAG/C,EAAK,IAAI,GAAW,GAAqB,EAAS,MAEtD,IAIN,MACE,GAAC,KAAD,CAAI,MAAM,0BACP,GCvHA,YAA2B,EAAiC,CACjE,MACE,GAAC,KAAD,CAAI,MAAM,oBACP,OAAO,QAAQ,GAAO,IAAI,CAAC,CAAC,EAAK,KAChC,EAAC,KAAD,CAAI,MAAO,oCAAoC,KAC5C,MAAO,IAAU,SAAW,GAAM,GAAS,KCN/C,YAAqB,EAAiC,CAC3D,MACE,GAAC,MAAD,CAAK,MAAM,0BACT,EAAC,MAAD,CAAK,MAAM,qBACR,ICUT,YAAuB,EAA+B,CACpD,GAAM,GAAS,KAGT,EAAM,GAAI,KAAI,MAAM,EAAQ,WAAY,EAAO,MACrD,MACE,GAAC,KAAD,CAAI,MAAM,oBACR,EAAC,IAAD,CAAG,KAAM,EAAI,WAAY,MAAM,oBAC5B,EAAQ,QAkBV,YACL,EAAqB,EACR,CACb,MACE,GAAC,MAAD,CAAK,MAAM,cACT,EAAC,SAAD,CACE,MAAM,sBACN,aAAY,EAAY,yBAEvB,EAAO,OAEV,EAAC,KAAD,CAAI,MAAM,oBACP,EAAS,IAAI,MCdf,YACL,EAAiB,EACO,CACxB,GAAM,GAAU,EAAM,IAAM,EAAc,CACxC,GAAmB,GACnB,GAA0B,MAEzB,KACC,EAAI,CAAC,CAAC,CAAE,IAAG,KAAK,KAAY,CAC1B,GAAM,CAAE,SAAU,GAAe,GACjC,MAAQ,CACN,EAAG,EAAI,EAAO,EAAI,EAAQ,EAC1B,EAAG,EAAI,EAAO,MAMtB,MAAO,IAAkB,GACtB,KACC,EAAU,GAAU,EACjB,KACC,EAAI,GAAW,EAAE,SAAQ,YACzB,GAAK,CAAC,CAAC,GAAU,QAcpB,YACL,EAAiB,EACkB,CACnC,MAAO,GAAM,IAAM,CACjB,GAAM,GAAQ,GAAI,GAClB,EAAM,UAAU,CAGd,KAAK,CAAE,UAAU,CACf,EAAG,MAAM,YAAY,iBAAkB,GAAG,EAAO,OACjD,EAAG,MAAM,YAAY,iBAAkB,GAAG,EAAO,QAInD,UAAW,CACT,EAAG,MAAM,eAAe,kBACxB,EAAG,MAAM,eAAe,qBAK5B,EACG,KACC,GAAa,IAAK,IAClB,EAAI,IAAM,EAAU,yBACpB,EAAI,CAAC,CAAE,OAAQ,IAEd,UAAU,CAGT,KAAK,EAAQ,CACX,AAAI,EACF,EAAG,MAAM,YAAY,iBAAkB,GAAG,CAAC,OAE3C,EAAG,MAAM,eAAe,mBAI5B,UAAW,CACT,EAAG,MAAM,eAAe,qBAKhC,GAAM,GAAQ,EAAW,uBAAwB,GAC3C,EAAQ,EAAU,EAAO,YAAa,CAAE,KAAM,KACpD,SACG,KACC,EAAU,CAAC,CAAE,YAAa,EAAS,EAAQ,GAC3C,EAAI,GAAM,EAAG,mBAEZ,UAAU,IAAM,EAAG,QAGjB,GAAgB,EAAI,GACxB,KACC,EAAI,GAAS,EAAM,KAAK,IACxB,EAAS,IAAM,EAAM,YACrB,EAAI,GAAU,GAAE,IAAK,GAAO,OCnGpC,YAA+B,EAAgC,CAC7D,GAAM,GAAkB,GACxB,OAAW,KAAW,GAAY,eAAgB,GAAY,CAC5D,GAAI,GACA,EAAO,EAAQ,WAGnB,KAAQ,EAAQ,YAAY,KAAK,EAAK,cAAgB,CACpD,GAAM,GAAS,EAAK,UAAU,EAAM,OACpC,EAAO,EAAO,UAAU,EAAM,GAAG,QACjC,EAAQ,KAAK,IAGjB,MAAO,GAST,YAAc,EAAqB,EAA2B,CAC5D,EAAO,OAAO,GAAG,MAAM,KAAK,EAAO,aAqB9B,YACL,EAAiB,EAAwB,CAAE,UACR,CAGnC,GAAM,GAAc,GAAI,KACxB,OAAW,KAAU,IAAsB,GAAY,CACrD,GAAM,CAAC,CAAE,GAAM,EAAO,YAAa,MAAM,aACzC,AAAI,GAAmB,gBAAgB,KAAO,IAC5C,GAAY,IAAI,CAAC,EAAI,GAAiB,CAAC,IACvC,EAAO,YAAY,EAAY,IAAI,CAAC,KAKxC,MAAI,GAAY,OAAS,EAChB,EAGF,EAAM,IAAM,CACjB,GAAM,GAAQ,GAAI,GAGlB,SACG,KACC,GAAU,EAAM,KAAK,GAAS,MAE7B,UAAU,GAAU,CACnB,EAAG,OAAS,CAAC,EAGb,OAAW,CAAC,EAAI,IAAe,GAAa,CAC1C,GAAM,GAAQ,EAAW,cAAe,GAClC,EAAQ,EAAW,gBAAgB,KAAO,GAChD,AAAK,EAGH,GAAK,EAAO,GAFZ,GAAK,EAAO,MAOf,EAAM,GAAG,CAAC,GAAG,GACjB,IAAI,CAAC,CAAC,CAAE,KACP,GAAgB,EAAY,KAG7B,KACC,EAAS,IAAM,EAAM,YACrB,QRjFR,GAAI,IAAW,EAaf,YAA2B,EAA0C,CACnE,GAAI,EAAG,mBAAoB,CACzB,GAAM,GAAU,EAAG,mBACnB,GAAI,EAAQ,UAAY,KACtB,MAAO,GAGJ,GAAI,EAAQ,UAAY,KAAO,CAAC,EAAQ,SAAS,OACpD,MAAO,IAAkB,IAqBxB,YACL,EACuB,CACvB,MAAO,IAAiB,GACrB,KACC,EAAI,CAAC,CAAE,WAEE,EACL,WAAY,AAFE,GAAsB,GAEhB,MAAQ,KAGhC,EAAwB,eAiBvB,YACL,EAAiB,EAC8B,CAC/C,GAAM,CAAE,QAAS,GAAU,WAAW,WACtC,MAAO,GAAM,IAAM,CACjB,GAAM,GAAQ,GAAI,GASlB,GARA,EAAM,UAAU,CAAC,CAAE,gBAAiB,CAClC,AAAI,GAAc,EAChB,EAAG,aAAa,WAAY,KAE5B,EAAG,gBAAgB,cAInB,WAAY,cAAe,CAC7B,GAAM,GAAS,EAAG,QAAQ,OAC1B,EAAO,GAAK,UAAU,EAAE,KACxB,EAAO,aACL,GAAsB,EAAO,IAC7B,GAKJ,GAAM,GAAY,EAAG,QAAQ,CAC3B,mCACA,mBACA,KAAK,OACP,GAAI,YAAqB,aAAa,CACpC,GAAM,GAAO,GAAkB,GAG/B,GAAI,MAAO,IAAS,aAClB,GAAU,UAAU,SAAS,aAC7B,GAAQ,0BACP,CACD,GAAM,GAAe,GAAoB,EAAM,EAAI,GAGnD,MAAO,IAAe,GACnB,KACC,EAAI,GAAS,EAAM,KAAK,IACxB,EAAS,IAAM,EAAM,YACrB,EAAI,GAAU,GAAE,IAAK,GAAO,IAC5B,GAAU,GAAiB,GACxB,KACC,GAAU,EAAM,KAAK,GAAS,KAC9B,EAAI,CAAC,CAAE,QAAO,YAAa,GAAS,GACpC,IACA,EAAU,GAAU,EAAS,EAAe,OAQxD,MAAO,IAAe,GACnB,KACC,EAAI,GAAS,EAAM,KAAK,IACxB,EAAS,IAAM,EAAM,YACrB,EAAI,GAAU,GAAE,IAAK,GAAO,OSpI7B,YACL,EAAwB,CAAE,UAAS,UACd,CACrB,GAAI,GAAO,GACX,MAAO,GAGL,EACG,KACC,EAAI,GAAU,EAAO,QAAQ,wBAC7B,EAAO,GAAW,IAAO,GACzB,GAAe,CAAE,OAAQ,OAAQ,OAAQ,MAI7C,EACG,KACC,EAAO,GAAU,GAAU,CAAC,GAC5B,EAAI,IAAM,EAAO,EAAG,MACpB,EAAI,GAAW,EACb,OAAQ,EAAS,OAAS,aAiB7B,YACL,EAAwB,EACQ,CAChC,MAAO,GAAM,IAAM,CACjB,GAAM,GAAQ,GAAI,GAClB,SAAM,UAAU,CAAC,CAAE,SAAQ,YAAa,CACtC,AAAI,IAAW,OACb,EAAG,aAAa,OAAQ,IAExB,EAAG,gBAAgB,QACjB,GACF,EAAG,mBAIA,GAAa,EAAI,GACrB,KACC,EAAI,GAAS,EAAM,KAAK,IACxB,EAAS,IAAM,EAAM,YACrB,EAAI,GAAU,GAAE,IAAK,GAAO,OC3FpC,GAAM,IAAW,EAAE,SAgBZ,YACL,EACkC,CAClC,SAAG,YAAY,IACf,GAAS,YAAY,GAAY,IAG1B,EAAG,CAAE,IAAK,ICIZ,YACL,EACyB,CACzB,GAAM,GAAS,EAAY,iBAAkB,GAC7C,MAAO,GAAM,GAAG,EAAO,IAAI,GAAS,EAAU,EAAO,UAClD,KACC,GAAmB,CACjB,OAAQ,EAAW,aAAa,EAAM,YAIzC,KACC,EAAU,CACR,OAAQ,EAAW,aAAa,EAAO,GAAG,UAiB3C,YACL,EACoC,CACpC,GAAM,GAAY,EAAW,iBAAkB,GAC/C,MAAO,GAAM,IAAM,CACjB,GAAM,GAAQ,GAAI,GAClB,SAAc,CAAC,EAAO,GAAiB,KACpC,KACC,GAAU,EAAG,IACb,GAAU,EAAM,KAAK,GAAS,MAE7B,UAAU,CAGT,KAAK,CAAC,CAAE,WAAW,CACjB,GAAM,GAAS,GAAiB,GAC1B,CAAE,SAAU,GAAe,GAGjC,EAAG,MAAM,YAAY,mBAAoB,GAAG,EAAO,OACnD,EAAG,MAAM,YAAY,uBAAwB,GAAG,OAGhD,EAAU,SAAS,CACjB,SAAU,SACV,KAAM,EAAO,KAKjB,UAAW,CACT,EAAG,MAAM,eAAe,oBACxB,EAAG,MAAM,eAAe,2BAKzB,GAAiB,GACrB,KACC,EAAI,GAAS,EAAM,KAAK,IACxB,EAAS,IAAM,EAAM,YACrB,EAAI,GAAU,GAAE,IAAK,GAAO,OCrE7B,YACL,EAAiB,CAAE,UAAS,UACI,CAChC,MAAO,GAGL,GAAG,EAAY,aAAc,GAC1B,IAAI,GAAS,GAAe,EAAO,CAAE,YAGxC,GAAG,EAAY,qBAAsB,GAClC,IAAI,GAAS,GAAe,IAG/B,GAAG,EAAY,UAAW,GACvB,IAAI,GAAS,GAAa,EAAO,CAAE,UAAS,YAG/C,GAAG,EAAY,cAAe,GAC3B,IAAI,GAAS,GAAiB,KCZ9B,YACL,EAAkB,CAAE,UACA,CACpB,MAAO,GACJ,KACC,EAAU,GAAW,EACnB,EAAG,IACH,EAAG,IAAO,KAAK,GAAM,OAEpB,KACC,EAAI,GAAW,EAAE,UAAS,eAiB7B,YACL,EAAiB,EACc,CAC/B,GAAM,GAAQ,EAAW,cAAe,GACxC,MAAO,GAAM,IAAM,CACjB,GAAM,GAAQ,GAAI,GAClB,SAAM,UAAU,CAAC,CAAE,UAAS,YAAa,CACvC,EAAM,YAAc,EACpB,AAAI,EACF,EAAG,aAAa,gBAAiB,QAEjC,EAAG,gBAAgB,mBAIhB,GAAY,EAAI,GACpB,KACC,EAAI,GAAS,EAAM,KAAK,IACxB,EAAS,IAAM,EAAM,YACrB,EAAI,GAAU,GAAE,IAAK,GAAO,OC7BpC,YAAkB,CAAE,aAAgD,CAClE,GAAI,CAAC,GAAQ,mBACX,MAAO,GAAG,IAGZ,GAAM,GAAa,EAChB,KACC,EAAI,CAAC,CAAE,OAAQ,CAAE,QAAU,GAC3B,GAAY,EAAG,GACf,EAAI,CAAC,CAAC,EAAG,KAAO,CAAC,EAAI,EAAG,IACxB,EAAwB,IAItB,EAAU,EAAc,CAAC,EAAW,IACvC,KACC,EAAO,CAAC,CAAC,CAAE,UAAU,CAAC,CAAE,MAAQ,KAAK,IAAI,EAAI,EAAO,GAAK,KACzD,EAAI,CAAC,CAAC,CAAE,CAAC,MAAgB,GACzB,KAIE,EAAU,GAAY,UAC5B,MAAO,GAAc,CAAC,EAAW,IAC9B,KACC,EAAI,CAAC,CAAC,CAAE,UAAU,KAAY,EAAO,EAAI,KAAO,CAAC,GACjD,IACA,EAAU,GAAU,EAAS,EAAU,EAAG,KAC1C,EAAU,KAgBT,YACL,EAAiB,EACG,CACpB,MAAO,GAAM,IAAM,CACjB,GAAM,GAAS,iBAAiB,GAChC,MAAO,GACL,EAAO,WAAa,UACpB,EAAO,WAAa,oBAGrB,KACC,GAAkB,GAAiB,GAAK,GAAS,IACjD,EAAI,CAAC,CAAC,EAAQ,CAAE,UAAU,KAAa,EACrC,OAAQ,EAAS,EAAS,EAC1B,SACA,YAEF,EAAqB,CAAC,EAAG,IACvB,EAAE,SAAW,EAAE,QACf,EAAE,SAAW,EAAE,QACf,EAAE,SAAW,EAAE,QAEjB,EAAY,IAeX,YACL,EAAiB,CAAE,UAAS,SACG,CAC/B,MAAO,GAAM,IAAM,CACjB,GAAM,GAAQ,GAAI,GAClB,SACG,KACC,EAAwB,UACxB,GAAkB,IAEjB,UAAU,CAAC,CAAC,CAAE,UAAU,CAAE,aAAc,CACvC,AAAI,EACF,EAAG,aAAa,gBAAiB,EAAS,SAAW,UAErD,EAAG,gBAAgB,mBAI3B,EAAM,UAAU,GAGT,EACJ,KACC,GAAU,EAAM,KAAK,GAAS,KAC9B,EAAI,GAAU,GAAE,IAAK,GAAO,OCrH7B,YACL,EAAiB,CAAE,YAAW,WACL,CACzB,MAAO,IAAgB,EAAI,CAAE,YAAW,YACrC,KACC,EAAI,CAAC,CAAE,OAAQ,CAAE,QAAU,CACzB,GAAM,CAAE,UAAW,GAAe,GAClC,MAAO,CACL,OAAQ,GAAK,KAGjB,EAAwB,WAevB,YACL,EAAiB,EACmB,CACpC,MAAO,GAAM,IAAM,CACjB,GAAM,GAAQ,GAAI,GAClB,EAAM,UAAU,CAAC,CAAE,YAAa,CAC9B,AAAI,EACF,EAAG,aAAa,gBAAiB,UAEjC,EAAG,gBAAgB,mBAIvB,GAAM,GAAU,GAAmB,cACnC,MAAI,OAAO,IAAY,YACd,EAGF,GAAiB,EAAS,GAC9B,KACC,EAAI,GAAS,EAAM,KAAK,IACxB,EAAS,IAAM,EAAM,YACrB,EAAI,GAAU,GAAE,IAAK,GAAO,OCvD7B,YACL,EAAiB,CAAE,YAAW,WACZ,CAGlB,GAAM,GAAU,EACb,KACC,EAAI,CAAC,CAAE,YAAa,GACpB,KAIE,EAAU,EACb,KACC,EAAU,IAAM,GAAiB,GAC9B,KACC,EAAI,CAAC,CAAE,YAAc,EACnB,IAAQ,EAAG,UACX,OAAQ,EAAG,UAAY,KAEzB,EAAwB,aAMhC,MAAO,GAAc,CAAC,EAAS,EAAS,IACrC,KACC,EAAI,CAAC,CAAC,EAAQ,CAAE,MAAK,UAAU,CAAE,OAAQ,CAAE,KAAK,KAAM,CAAE,cACtD,GAAS,KAAK,IAAI,EAAG,EACjB,KAAK,IAAI,EAAG,EAAS,EAAI,GACzB,KAAK,IAAI,EAAG,EAAS,EAAI,IAEtB,CACL,OAAQ,EAAM,EACd,SACA,OAAQ,EAAM,GAAU,KAG5B,EAAqB,CAAC,EAAG,IACvB,EAAE,SAAW,EAAE,QACf,EAAE,SAAW,EAAE,QACf,EAAE,SAAW,EAAE,SChDhB,YACL,EACqB,CACrB,GAAM,GAAU,SAAkB,cAAgB,CAChD,MAAO,EAAO,UAAU,GAAS,WAC/B,EAAM,aAAa,wBACnB,UAIJ,MAAO,GAAG,GAAG,GACV,KACC,GAAS,GAAS,EAAU,EAAO,UAChC,KACC,GAAM,KAGV,EAAU,EAAO,KAAK,IAAI,EAAG,EAAQ,SACrC,EAAI,GAAU,EACZ,MAAO,EAAO,QAAQ,GACtB,MAAO,CACL,OAAS,EAAM,aAAa,wBAC5B,QAAS,EAAM,aAAa,yBAC5B,OAAS,EAAM,aAAa,4BAGhC,EAAY,IAWX,YACL,EACgC,CAChC,MAAO,GAAM,IAAM,CACjB,GAAM,GAAQ,GAAI,GAClB,EAAM,UAAU,GAAW,CAGzB,OAAW,CAAC,EAAK,IAAU,QAAO,QAAQ,EAAQ,OAChD,SAAS,KAAK,aAAa,iBAAiB,IAAO,GAGrD,OAAS,GAAQ,EAAG,EAAQ,EAAO,OAAQ,IAAS,CAClD,GAAM,GAAQ,EAAO,GAAO,mBAC5B,AAAI,YAAiB,cACnB,GAAM,OAAS,EAAQ,QAAU,GAIrC,SAAS,YAAa,KAIxB,GAAM,GAAS,EAA8B,QAAS,GACtD,MAAO,IAAa,GACjB,KACC,EAAI,GAAS,EAAM,KAAK,IACxB,EAAS,IAAM,EAAM,YACrB,EAAI,GAAU,GAAE,IAAK,GAAO,OCpHpC,OAAwB,SAiCxB,YAAiB,EAAyB,CACxC,EAAG,aAAa,kBAAmB,IACnC,GAAM,GAAO,EAAG,UAChB,SAAG,gBAAgB,mBACZ,EAYF,YACL,CAAE,UACI,CACN,AAAI,WAAY,eACd,GAAI,GAA8B,GAAc,CAC9C,GAAI,YAAY,iDAAkD,CAChE,KAAM,GACJ,EAAG,aAAa,wBAChB,GAAQ,EACN,EAAG,aAAa,6BAInB,GAAG,UAAW,GAAM,EAAW,KAAK,MAEtC,KACC,EAAI,GAAM,CAER,AADgB,EAAG,QACX,UAEV,GAAM,EAAY,sBAEjB,UAAU,GCKnB,YAAoB,EAA0B,CAC5C,GAAI,EAAK,OAAS,EAChB,MAAO,GAGT,GAAM,CAAC,EAAM,GAAQ,EAClB,KAAK,CAAC,EAAG,IAAM,EAAE,OAAS,EAAE,QAC5B,IAAI,GAAO,EAAI,QAAQ,SAAU,KAGhC,EAAQ,EACZ,GAAI,IAAS,EACX,EAAQ,EAAK,WAEb,MAAO,EAAK,WAAW,KAAW,EAAK,WAAW,IAChD,IAGJ,GAAM,GAAS,KACf,MAAO,GAAK,IAAI,GACd,EAAI,QAAQ,EAAK,MAAM,EAAG,GAAQ,EAAO,OA6BtC,YACL,CAAE,YAAW,YAAW,aAClB,CACN,GAAM,GAAS,KACf,GAAI,SAAS,WAAa,QACxB,OAGF,AAAI,qBAAuB,UACzB,SAAQ,kBAAoB,SAG5B,EAAU,OAAQ,gBACf,UAAU,IAAM,CACf,QAAQ,kBAAoB,UAKlC,GAAM,GAAU,GAAoC,kBACpD,AAAI,MAAO,IAAY,aACrB,GAAQ,KAAO,EAAQ,MAGzB,GAAM,GAAQ,GAAW,GAAI,KAAI,cAAe,EAAO,OACpD,KACC,EAAI,GAAW,GAAW,EAAY,MAAO,GAC1C,IAAI,GAAQ,EAAK,eAEpB,EAAU,GAAQ,EAAsB,SAAS,KAAM,SACpD,KACC,EAAO,GAAM,CAAC,EAAG,SAAW,CAAC,EAAG,SAChC,EAAU,GAAM,CAGd,GAAI,EAAG,iBAAkB,SAAS,CAChC,GAAM,GAAK,EAAG,OAAO,QAAQ,KAC7B,GAAI,GAAM,CAAC,EAAG,OAAQ,CACpB,GAAM,GAAM,GAAI,KAAI,EAAG,MAOvB,GAJA,EAAI,OAAS,GACb,EAAI,KAAO,GAIT,EAAI,WAAa,SAAS,UAC1B,EAAK,SAAS,EAAI,YAElB,SAAG,iBACI,EAAG,CACR,IAAK,GAAI,KAAI,EAAG,SAKxB,MAAO,QAIb,MAIE,EAAO,EAAyB,OAAQ,YAC3C,KACC,EAAO,GAAM,EAAG,QAAU,MAC1B,EAAI,GAAO,EACT,IAAK,GAAI,KAAI,SAAS,MACtB,OAAQ,EAAG,SAEb,MAIJ,EAAM,EAAO,GACV,KACC,EAAqB,CAAC,EAAG,IAAM,EAAE,IAAI,OAAS,EAAE,IAAI,MACpD,EAAI,CAAC,CAAE,SAAU,IAEhB,UAAU,GAGf,GAAM,GAAY,EACf,KACC,EAAwB,YACxB,EAAU,GAAO,GAAQ,EAAI,MAC1B,KACC,GAAW,IACT,IAAY,GACL,OAIb,MAIJ,EACG,KACC,GAAO,IAEN,UAAU,CAAC,CAAE,SAAU,CACtB,QAAQ,UAAU,GAAI,GAAI,GAAG,OAInC,GAAM,GAAM,GAAI,WAChB,EACG,KACC,EAAU,GAAO,EAAI,QACrB,EAAI,GAAO,EAAI,gBAAgB,EAAK,eAEnC,UAAU,GAGf,EACG,KACC,GAAK,IAEJ,UAAU,GAAe,CACxB,OAAW,KAAY,CAGrB,QACA,sBACA,oBACA,yBAGA,+BACA,gCACA,mCACA,2BACA,2BACA,GAAG,GAAQ,0BACP,CAAC,4BACD,IACH,CACD,GAAM,GAAS,GAAmB,GAC5B,EAAS,GAAmB,EAAU,GAC5C,AACE,MAAO,IAAW,aAClB,MAAO,IAAW,aAElB,EAAO,YAAY,MAM7B,EACG,KACC,GAAK,GACL,EAAI,IAAM,GAAoB,cAC9B,EAAU,GAAM,EAAG,GAAG,EAAY,SAAU,KAC5C,GAAU,GAAM,CACd,GAAM,GAAS,EAAE,UACjB,GAAI,EAAG,IAAK,CACV,OAAW,KAAQ,GAAG,oBACpB,EAAO,aAAa,EAAM,EAAG,aAAa,IAC5C,SAAG,YAAY,GAGR,GAAI,GAAW,GAAY,CAChC,EAAO,OAAS,IAAM,EAAS,iBAKjC,UAAO,YAAc,EAAG,YACxB,EAAG,YAAY,GACR,KAIV,YAGL,EAAM,EAAO,GACV,KACC,GAAO,IAEN,UAAU,CAAC,CAAE,MAAK,YAAa,CAC9B,AAAI,EAAI,MAAQ,CAAC,EACf,GAAgB,EAAI,MAEpB,OAAO,SAAS,EAAG,kBAAQ,IAAK,KAKxC,EACG,KACC,GAAU,GACV,GAAa,KACb,EAAwB,WAEvB,UAAU,CAAC,CAAE,YAAa,CACzB,QAAQ,aAAa,EAAQ,MAInC,EAAM,EAAO,GACV,KACC,GAAY,EAAG,GACf,EAAO,CAAC,CAAC,EAAG,KAAO,EAAE,IAAI,WAAa,EAAE,IAAI,UAC5C,EAAI,CAAC,CAAC,CAAE,KAAW,IAElB,UAAU,CAAC,CAAE,YAAa,CACzB,OAAO,SAAS,EAAG,kBAAQ,IAAK,KC/UxC,OAAuB,SCAvB,OAAuB,SAsChB,YACL,EAA2B,EACD,CAC1B,GAAM,GAAY,GAAI,QAAO,EAAO,UAAW,OACzC,EAAY,CAAC,EAAY,EAAc,IACpC,GAAG,4BAA+B,WAI3C,MAAO,AAAC,IAAkB,CACxB,EAAQ,EACL,QAAQ,gBAAiB,KACzB,OAGH,GAAM,GAAQ,GAAI,QAAO,MAAM,EAAO,cACpC,EACG,QAAQ,uBAAwB,QAChC,QAAQ,EAAW,QACnB,OAGL,MAAO,IACL,GACI,eAAW,GACX,GAED,QAAQ,EAAO,GACf,QAAQ,8BAA+B,OC5BzC,YAA0B,EAAuB,CACtD,MAAO,GACJ,MAAM,cACJ,IAAI,CAAC,EAAO,IAAU,EAAQ,EAC3B,EAAM,QAAQ,+BAAgC,MAC9C,GAEH,KAAK,IACP,QAAQ,kCAAmC,IAC3C,OCqCE,YACL,EAC+B,CAC/B,MAAO,GAAQ,OAAS,EAUnB,YACL,EAC+B,CAC/B,MAAO,GAAQ,OAAS,EAUnB,YACL,EACgC,CAChC,MAAO,GAAQ,OAAS,ECtE1B,YAA0B,CAAE,SAAQ,QAAkC,CAGpE,AAAI,EAAO,KAAK,SAAW,GAAK,EAAO,KAAK,KAAO,MACjD,GAAO,KAAO,CACZ,EAAY,wBAIZ,EAAO,YAAc,aACvB,GAAO,UAAY,EAAY,4BAQjC,GAAM,GAAyB,CAC7B,SANe,EAAY,0BAC1B,MAAM,WACN,OAAO,SAKR,YAAa,GAAQ,mBAIvB,MAAO,CAAE,SAAQ,OAAM,WAmBlB,YACL,EAAa,EACC,CACd,GAAM,GAAS,KACT,EAAS,GAAI,QAAO,GAGpB,EAAM,GAAI,GACV,EAAM,GAAY,EAAQ,CAAE,QAC/B,KACC,EAAI,GAAW,CACb,GAAI,GAAsB,GACxB,OAAW,KAAU,GAAQ,KAAK,MAChC,OAAW,KAAY,GACrB,EAAS,SAAW,GAAG,GAAI,KAAI,EAAS,SAAU,EAAO,QAE/D,MAAO,KAET,MAIJ,UAAK,GACF,KACC,EAAI,GAAS,EACX,KAAM,EACN,KAAM,GAAiB,OAGxB,UAAU,EAAI,KAAK,KAAK,IAGtB,CAAE,MAAK,OClGT,aAAsC,CAC3C,GAAM,GAAS,KACT,EAAY,GAChB,GAAI,KAAI,mBAAoB,EAAO,OAI/B,EAAW,EACd,KACC,EAAI,GAAY,CACd,GAAM,CAAC,CAAE,GAAW,EAAO,KAAK,MAAM,eACtC,MAAO,GAAS,KAAK,CAAC,CAAE,UAAS,aAC/B,IAAY,GAAW,EAAQ,SAAS,KACpC,EAAS,MAKrB,EAAc,CAAC,EAAW,IACvB,UAAU,CAAC,CAAC,EAAU,KAAa,CA7DxC,MAkEM,GAHA,AADc,EAAW,qBACnB,YAAY,GAAsB,EAAU,IAG9C,SAAS,aAAc,kBAAoB,KAAM,CACnD,GAAM,GAAS,MAAO,UAAP,cAAgB,UAAW,SACpC,EAAW,CAAC,EAAQ,QAAQ,SAAS,GAI3C,GADA,SAAS,aAAc,EAAU,gBAC7B,EACF,OAAW,KAAW,IAAqB,YACzC,EAAQ,OAAS,MCWtB,YACL,EAAsB,CAAE,OACC,CACzB,GAAM,GAAK,gCAAU,YAAa,GAG5B,CAAE,gBAAiB,KACzB,AAAI,EAAa,IAAI,MACnB,GAAU,SAAU,IAGtB,GAAM,GAAS,EACZ,KACC,EAAO,IACP,GAAK,GACL,EAAI,IAAM,EAAa,IAAI,MAAQ,KAIvC,EAAO,UAAU,GAAS,CACxB,AAAI,GACF,GAAG,MAAQ,KAIf,GAAM,GAAS,GAAkB,GAC3B,EAAS,EACb,EAAU,EAAI,SACd,EAAU,EAAI,SAAS,KAAK,GAAM,IAClC,GAEC,KACC,EAAI,IAAM,EAAG,EAAG,QAChB,EAAU,IACV,KAIJ,MAAO,GAAc,CAAC,EAAQ,IAC3B,KACC,EAAI,CAAC,CAAC,EAAO,KAAY,EAAE,QAAO,WAClC,EAAY,IAYX,YACL,EAAsB,CAAE,MAAK,OACyB,CACtD,GAAM,GAAQ,GAAI,GAGlB,SACG,KACC,EAAwB,SACxB,EAAI,CAAC,CAAE,WAAiC,EACtC,KAAM,EACN,KAAM,MAGP,UAAU,EAAI,KAAK,KAAK,IAG7B,EACG,KACC,EAAwB,UAEvB,UAAU,CAAC,CAAE,WAAY,CACxB,AAAI,EACF,IAAU,SAAU,GACpB,EAAG,YAAc,IAEjB,EAAG,YAAc,EAAY,wBAKrC,EAAU,EAAG,KAAO,SACjB,KACC,GAAU,EAAM,KAAK,GAAS,MAE7B,UAAU,IAAM,EAAG,SAGjB,GAAiB,EAAI,CAAE,MAAK,QAChC,KACC,EAAI,GAAS,EAAM,KAAK,IACxB,EAAS,IAAM,EAAM,YACrB,EAAI,GAAU,GAAE,IAAK,GAAO,KCjG3B,YACL,EAAiB,CAAE,OAAqB,CAAE,UACL,CACrC,GAAM,GAAQ,GAAI,GACZ,EAAY,GAAqB,EAAG,eACvC,KACC,EAAO,UAIL,EAAO,EAAW,wBAAyB,GAC3C,EAAO,EAAW,uBAAwB,GAG1C,EAAS,EACZ,KACC,EAAO,IACP,GAAK,IAIT,SACG,KACC,GAAe,GACf,GAAU,IAET,UAAU,CAAC,CAAC,CAAE,SAAS,CAAE,YAAa,CACrC,GAAI,EACF,OAAQ,EAAM,YAGP,GACH,EAAK,YAAc,EAAY,sBAC/B,UAGG,GACH,EAAK,YAAc,EAAY,qBAC/B,cAIA,EAAK,YAAc,EACjB,sBACA,GAAM,EAAM,aAIlB,GAAK,YAAc,EAAY,+BAKvC,EACG,KACC,EAAI,IAAM,EAAK,UAAY,IAC3B,EAAU,CAAC,CAAE,WAAY,EACvB,EAAG,GAAG,EAAM,MAAM,EAAG,KACrB,EAAG,GAAG,EAAM,MAAM,KACf,KACC,GAAY,GACZ,GAAQ,GACR,EAAU,CAAC,CAAC,KAAW,EAAG,GAAG,QAIlC,UAAU,GAAU,EAAK,YACxB,GAAuB,KAWtB,AAPS,EACb,KACC,EAAO,IACP,EAAI,CAAC,CAAE,UAAW,IAKnB,KACC,EAAI,GAAS,EAAM,KAAK,IACxB,EAAS,IAAM,EAAM,YACrB,EAAI,GAAU,GAAE,IAAK,GAAO,KCxF3B,YACL,EAAkB,CAAE,UACK,CACzB,MAAO,GACJ,KACC,EAAI,CAAC,CAAE,WAAY,CACjB,GAAM,GAAM,KACZ,SAAI,KAAO,GACX,EAAI,aAAa,OAAO,KACxB,EAAI,aAAa,IAAI,IAAK,GACnB,CAAE,UAaV,YACL,EAAuB,EACa,CACpC,GAAM,GAAQ,GAAI,GAClB,SAAM,UAAU,CAAC,CAAE,SAAU,CAC3B,EAAG,aAAa,sBAAuB,EAAG,MAC1C,EAAG,KAAO,GAAG,MAIf,EAAU,EAAI,SACX,UAAU,GAAM,EAAG,kBAGf,GAAiB,EAAI,GACzB,KACC,EAAI,GAAS,EAAM,KAAK,IACxB,EAAS,IAAM,EAAM,YACrB,EAAI,GAAU,GAAE,IAAK,GAAO,KCpC3B,YACL,EAAiB,CAAE,OAAqB,CAAE,aACJ,CACtC,GAAM,GAAQ,GAAI,GAGZ,EAAS,GAAoB,gBAC7B,EAAS,EACb,EAAU,EAAO,WACjB,EAAU,EAAO,UAEhB,KACC,GAAU,IACV,EAAI,IAAM,EAAM,OAChB,KAIJ,SACG,KACC,GAAkB,GAClB,EAAI,CAAC,CAAC,CAAE,eAAe,KAAW,CAChC,GAAM,GAAQ,EAAM,MAAM,YAC1B,GAAI,kBAAa,SAAU,EAAM,EAAM,OAAS,GAAI,CAClD,GAAM,GAAO,EAAY,EAAY,OAAS,GAC9C,AAAI,EAAK,WAAW,EAAM,EAAM,OAAS,KACvC,GAAM,EAAM,OAAS,GAAK,OAE5B,GAAM,OAAS,EAEjB,MAAO,MAGR,UAAU,GAAS,EAAG,UAAY,EAChC,KAAK,IACL,QAAQ,MAAO,WAItB,EACG,KACC,EAAO,CAAC,CAAE,UAAW,IAAS,WAE7B,UAAU,GAAO,CAChB,OAAQ,EAAI,UAGL,aACH,AACE,EAAG,UAAU,QACb,EAAM,iBAAmB,EAAM,MAAM,QAErC,GAAM,MAAQ,EAAG,WACnB,SAYH,AAPS,EACb,KACC,EAAO,IACP,EAAI,CAAC,CAAE,UAAW,IAKnB,KACC,EAAI,GAAS,EAAM,KAAK,IACxB,EAAS,IAAM,EAAM,YACrB,EAAI,IAAO,EAAE,IAAK,MC5CjB,YACL,EAAiB,CAAE,SAAQ,aACI,CAC/B,GAAM,GAAS,KACf,GAAI,CACF,GAAM,GAAM,gCAAU,SAAU,EAAO,OACjC,EAAS,GAAkB,EAAK,GAGhC,EAAS,GAAoB,eAAgB,GAC7C,EAAS,GAAoB,gBAAiB,GAG9C,CAAE,MAAK,OAAQ,EACrB,EACG,KACC,EAAO,IACP,GAAO,EAAI,KAAK,EAAO,MACvB,GAAK,IAEJ,UAAU,EAAI,KAAK,KAAK,IAG7B,EACG,KACC,EAAO,CAAC,CAAE,UAAW,IAAS,WAE7B,UAAU,GAAO,CAChB,GAAM,GAAS,KACf,OAAQ,EAAI,UAGL,QACH,GAAI,IAAW,EAAO,CACpB,GAAM,GAAU,GAAI,KACpB,OAAW,KAAU,GACnB,sBAAuB,GACtB,CACD,GAAM,GAAU,EAAO,kBACvB,EAAQ,IAAI,EAAQ,WAClB,EAAQ,aAAa,mBAKzB,GAAI,EAAQ,KAAM,CAChB,GAAM,CAAC,CAAC,IAAS,CAAC,GAAG,GAAS,KAAK,CAAC,CAAC,CAAE,GAAI,CAAC,CAAE,KAAO,EAAI,GACzD,EAAK,QAIP,EAAI,QAEN,UAGG,aACA,MACH,GAAU,SAAU,IACpB,EAAM,OACN,UAGG,cACA,YACH,GAAI,MAAO,IAAW,YACpB,EAAM,YACD,CACL,GAAM,GAAM,CAAC,EAAO,GAAG,EACrB,wDACA,IAEI,EAAI,KAAK,IAAI,EACjB,MAAK,IAAI,EAAG,EAAI,QAAQ,IAAW,EAAI,OACrC,GAAI,OAAS,UAAY,GAAK,IAE9B,EAAI,QACR,EAAI,GAAG,QAIT,EAAI,QACJ,cAIA,AAAI,IAAU,MACZ,EAAM,WAKlB,EACG,KACC,EAAO,CAAC,CAAE,UAAW,IAAS,WAE7B,UAAU,GAAO,CAChB,OAAQ,EAAI,UAGL,QACA,QACA,IACH,EAAM,QACN,EAAM,SAGN,EAAI,QACJ,SAKV,GAAM,GAAU,GAAiB,EAAO,GAClC,EAAU,GAAkB,EAAQ,EAAQ,CAAE,WACpD,MAAO,GAAM,EAAQ,GAClB,KACC,GAGE,GAAG,GAAqB,eAAgB,GACrC,IAAI,GAAS,GAAiB,EAAO,CAAE,YAG1C,GAAG,GAAqB,iBAAkB,GACvC,IAAI,GAAS,GAAmB,EAAO,EAAQ,CAAE,uBAKnD,EAAP,CACA,SAAG,OAAS,GACL,ICpKJ,YACL,EAAiB,CAAE,SAAQ,aACa,CACxC,MAAO,GAAc,CACnB,EACA,EACG,KACC,EAAU,MACV,EAAO,GAAO,CAAC,CAAC,EAAI,aAAa,IAAI,SAGxC,KACC,EAAI,CAAC,CAAC,EAAO,KAAS,GAAuB,EAAM,OAAQ,IACzD,EAAI,aAAa,IAAI,OAEvB,EAAI,GAAM,CA1FhB,MA2FQ,GAAM,GAAQ,GAAI,KAGZ,EAAK,SAAS,mBAAmB,EAAI,WAAW,WACtD,OAAS,GAAO,EAAG,WAAY,EAAM,EAAO,EAAG,WAC7C,GAAI,KAAK,gBAAL,cAAoB,aAAc,CACpC,GAAM,GAAW,EAAK,YAChB,EAAW,EAAG,GACpB,AAAI,EAAS,OAAS,EAAS,QAC7B,EAAM,IAAI,EAAmB,GAKnC,OAAW,CAAC,EAAM,IAAS,GAAO,CAChC,GAAM,CAAE,cAAe,EAAE,OAAQ,KAAM,GACvC,EAAK,YAAY,GAAG,MAAM,KAAK,IAIjC,MAAO,CAAE,IAAK,EAAI,YCfnB,YACL,EAAiB,CAAE,YAAW,SACT,CACrB,GAAM,GAAS,EAAG,cACZ,EACJ,EAAO,UACP,EAAO,cAAe,UAGxB,MAAO,GAAc,CAAC,EAAO,IAC1B,KACC,EAAI,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAE,OAAQ,CAAE,SACpC,GAAS,EACL,KAAK,IAAI,EAAQ,KAAK,IAAI,EAAG,EAAI,IACjC,EACG,CACL,SACA,OAAQ,GAAK,EAAS,KAG1B,EAAqB,CAAC,EAAG,IACvB,EAAE,SAAW,EAAE,QACf,EAAE,SAAW,EAAE,SA0BhB,YACL,EAAiB,EACe,CADf,QAAE,YAAF,EAAc,KAAd,EAAc,CAAZ,YAEnB,GAAM,GAAQ,EAAW,0BAA2B,GAC9C,CAAE,KAAM,GAAiB,GAC/B,MAAO,GAAM,IAAM,CACjB,GAAM,GAAQ,GAAI,GAClB,SACG,KACC,GAAU,EAAG,IACb,GAAe,IAEd,UAAU,CAGT,KAAK,CAAC,CAAE,UAAU,CAAE,OAAQ,IAAW,CACrC,EAAM,MAAM,OAAS,GAAG,EAAS,EAAI,MACrC,EAAG,MAAM,IAAY,GAAG,OAI1B,UAAW,CACT,EAAM,MAAM,OAAS,GACrB,EAAG,MAAM,IAAY,MAKtB,GAAa,EAAI,GACrB,KACC,EAAI,GAAS,EAAM,KAAK,IACxB,EAAS,IAAM,EAAM,YACrB,EAAI,GAAU,GAAE,IAAK,GAAO,OCvH7B,YACL,EAAc,EACW,CACzB,GAAI,MAAO,IAAS,YAAa,CAC/B,GAAM,GAAM,gCAAgC,KAAQ,IACpD,MAAO,IAGL,GAAqB,GAAG,qBACrB,KACC,EAAI,GAAY,EACd,QAAS,EAAQ,YAEnB,GAAe,KAInB,GAAkB,GACf,KACC,EAAI,GAAS,EACX,MAAO,EAAK,iBACZ,MAAO,EAAK,eAEd,GAAe,MAGlB,KACC,EAAI,CAAC,CAAC,EAAS,KAAW,OAAK,GAAY,SAI1C,CACL,GAAM,GAAM,gCAAgC,IAC5C,MAAO,IAAkB,GACtB,KACC,EAAI,GAAS,EACX,aAAc,EAAK,gBAErB,GAAe,MClDhB,YACL,EAAc,EACW,CACzB,GAAM,GAAM,WAAW,qBAAwB,mBAAmB,KAClE,MAAO,IAA2B,GAC/B,KACC,EAAI,CAAC,CAAE,aAAY,iBAAmB,EACpC,MAAO,EACP,MAAO,KAET,GAAe,KCYd,YACL,EACyB,CACzB,GAAM,CAAC,GAAQ,EAAI,MAAM,sBAAwB,GACjD,OAAQ,EAAK,mBAGN,SACH,GAAM,CAAC,CAAE,EAAM,GAAQ,EAAI,MAAM,uCACjC,MAAO,IAA2B,EAAM,OAGrC,SACH,GAAM,CAAC,CAAE,EAAM,GAAQ,EAAI,MAAM,sCACjC,MAAO,IAA2B,EAAM,WAIxC,MAAO,ICtBb,GAAI,IAgBG,YACL,EACoB,CACpB,MAAO,SAAW,EAAM,IAAM,CAC5B,GAAM,GAAS,SAAsB,WAAY,gBACjD,MAAI,GACK,EAAG,GAEH,GAAiB,EAAG,MACxB,KACC,EAAI,GAAS,SAAS,WAAY,EAAO,oBAG9C,KACC,GAAW,IAAM,GACjB,EAAO,GAAS,OAAO,KAAK,GAAO,OAAS,GAC5C,EAAI,GAAU,EAAE,WAChB,EAAY,KAWX,YACL,EAC+B,CAC/B,GAAM,GAAQ,EAAW,uBAAwB,GACjD,MAAO,GAAM,IAAM,CACjB,GAAM,GAAQ,GAAI,GAClB,SAAM,UAAU,CAAC,CAAE,WAAY,CAC7B,EAAM,YAAY,GAAkB,IACpC,EAAM,aAAa,gBAAiB,UAI/B,GAAY,GAChB,KACC,EAAI,GAAS,EAAM,KAAK,IACxB,EAAS,IAAM,EAAM,YACrB,EAAI,GAAU,GAAE,IAAK,GAAO,OCpC7B,YACL,EAAiB,CAAE,YAAW,WACZ,CAClB,MAAO,IAAiB,SAAS,MAC9B,KACC,EAAU,IAAM,GAAgB,EAAI,CAAE,UAAS,eAC/C,EAAI,CAAC,CAAE,OAAQ,CAAE,QACR,EACL,OAAQ,GAAK,MAGjB,EAAwB,WAevB,YACL,EAAiB,EACY,CAC7B,MAAO,GAAM,IAAM,CACjB,GAAM,GAAQ,GAAI,GAClB,SAAM,UAAU,CAGd,KAAK,CAAE,UAAU,CACf,AAAI,EACF,EAAG,aAAa,gBAAiB,UAEjC,EAAG,gBAAgB,kBAIvB,UAAW,CACT,EAAG,gBAAgB,oBAMrB,IAAQ,0BACJ,EAAG,CAAE,OAAQ,KACb,GAAU,EAAI,IAEjB,KACC,EAAI,GAAS,EAAM,KAAK,IACxB,EAAS,IAAM,EAAM,YACrB,EAAI,GAAU,GAAE,IAAK,GAAO,OChC7B,YACL,EAAiB,CAAE,YAAW,WACD,CAC7B,GAAM,GAAQ,GAAI,KAGZ,EAAU,EAA+B,cAAe,GAC9D,OAAW,KAAU,GAAS,CAC5B,GAAM,GAAK,mBAAmB,EAAO,KAAK,UAAU,IAC9C,EAAS,GAAmB,QAAQ,OAC1C,AAAI,MAAO,IAAW,aACpB,EAAM,IAAI,EAAQ,GAItB,GAAM,GAAU,EACb,KACC,EAAI,GAAU,GAAK,EAAO,SAgF9B,MAAO,AA5EY,IAAiB,SAAS,MAC1C,KACC,EAAwB,UAGxB,EAAU,GAAQ,EAAM,IAAM,CAC5B,GAAI,GAA4B,GAChC,MAAO,GAAG,CAAC,GAAG,GAAO,OAAO,CAAC,EAAO,CAAC,EAAQ,KAAY,CACvD,KAAO,EAAK,QAEN,AADS,EAAM,IAAI,EAAK,EAAK,OAAS,IACjC,SAAW,EAAO,SACzB,EAAK,MAOT,GAAI,GAAS,EAAO,UACpB,KAAO,CAAC,GAAU,EAAO,eACvB,EAAS,EAAO,cAChB,EAAS,EAAO,UAIlB,MAAO,GAAM,IACX,CAAC,GAAG,EAAO,CAAC,GAAG,EAAM,IAAS,UAC9B,IAED,GAAI,SAEN,KAGC,EAAI,GAAS,GAAI,KAAI,CAAC,GAAG,GAAO,KAAK,CAAC,CAAC,CAAE,GAAI,CAAC,CAAE,KAAO,EAAI,KAG3D,EAAU,GAAS,EAAc,CAAC,EAAW,IAC1C,KACC,GAAK,CAAC,CAAC,EAAM,GAAO,CAAC,CAAE,OAAQ,CAAE,KAAK,QAAQ,KAAY,CACxD,GAAM,GAAO,EAAI,EAAK,QAAU,KAAK,MAAM,EAAK,QAGhD,KAAO,EAAK,QAAQ,CAClB,GAAM,CAAC,CAAE,GAAU,EAAK,GACxB,GAAI,EAAS,EAAS,GAAK,EACzB,EAAO,CAAC,GAAG,EAAM,EAAK,aAEtB,OAKJ,KAAO,EAAK,QAAQ,CAClB,GAAM,CAAC,CAAE,GAAU,EAAK,EAAK,OAAS,GACtC,GAAI,EAAS,GAAU,GAAK,CAAC,EAC3B,EAAO,CAAC,EAAK,MAAQ,GAAG,OAExB,OAKJ,MAAO,CAAC,EAAM,IACb,CAAC,GAAI,CAAC,GAAG,KACZ,EAAqB,CAAC,EAAG,IACvB,EAAE,KAAO,EAAE,IACX,EAAE,KAAO,EAAE,SAUtB,KACC,EAAI,CAAC,CAAC,EAAM,KAAW,EACrB,KAAM,EAAK,IAAI,CAAC,CAAC,KAAU,GAC3B,KAAM,EAAK,IAAI,CAAC,CAAC,KAAU,MAI7B,EAAU,CAAE,KAAM,GAAI,KAAM,KAC5B,GAAY,EAAG,GACf,EAAI,CAAC,CAAC,EAAG,KAGH,EAAE,KAAK,OAAS,EAAE,KAAK,OAClB,CACL,KAAM,EAAE,KAAK,MAAM,KAAK,IAAI,EAAG,EAAE,KAAK,OAAS,GAAI,EAAE,KAAK,QAC1D,KAAM,IAKD,CACL,KAAM,EAAE,KAAK,MAAM,IACnB,KAAM,EAAE,KAAK,MAAM,EAAG,EAAE,KAAK,OAAS,EAAE,KAAK,WAiBlD,YACL,EAAiB,CAAE,YAAW,WACU,CACxC,MAAO,GAAM,IAAM,CACjB,GAAM,GAAQ,GAAI,GAClB,SAAM,UAAU,CAAC,CAAE,OAAM,UAAW,CAGlC,OAAW,CAAC,IAAW,GACrB,EAAO,gBAAgB,iBACvB,EAAO,UAAU,OACf,wBAKJ,OAAW,CAAC,EAAO,CAAC,KAAY,GAAK,UACnC,EAAO,aAAa,gBAAiB,QACrC,EAAO,UAAU,OACf,uBACA,IAAU,EAAK,OAAS,KAM1B,GAAQ,wBACV,EACG,KACC,GAAU,EAAM,KAAK,GAAS,KAC9B,EAAwB,UACxB,GAAa,KACb,GAAe,IAEd,UAAU,CAAC,CAAC,CAAE,CAAE,WAAY,CAC3B,GAAM,GAAM,KAGN,EAAS,EAAK,EAAK,OAAS,GAClC,GAAI,GAAU,EAAO,OAAQ,CAC3B,GAAM,CAAC,GAAU,EACX,CAAE,QAAS,GAAI,KAAI,EAAO,MAChC,AAAI,EAAI,OAAS,GACf,GAAI,KAAO,EACX,QAAQ,aAAa,GAAI,GAAI,GAAG,UAKlC,GAAI,KAAO,GACX,QAAQ,aAAa,GAAI,GAAI,GAAG,OAKnC,GAAqB,EAAI,CAAE,YAAW,YAC1C,KACC,EAAI,GAAS,EAAM,KAAK,IACxB,EAAS,IAAM,EAAM,YACrB,EAAI,GAAU,GAAE,IAAK,GAAO,OCxN7B,YACL,EAAkB,CAAE,YAAW,QAAO,WACf,CAGvB,GAAM,GAAa,EAChB,KACC,EAAI,CAAC,CAAE,OAAQ,CAAE,QAAU,GAC3B,GAAY,EAAG,GACf,EAAI,CAAC,CAAC,EAAG,KAAO,EAAI,GACpB,KAIE,EAAU,EACb,KACC,EAAI,CAAC,CAAE,YAAa,IAIxB,MAAO,GAAc,CAAC,EAAS,IAC5B,KACC,EAAI,CAAC,CAAC,EAAQ,KAAe,CAAE,IAAU,IACzC,IACA,GAAU,EAAQ,KAAK,GAAK,KAC5B,GAAQ,IACR,GAAO,CAAE,MAAO,MAChB,EAAI,GAAW,EAAE,aAchB,YACL,EAAiB,CAAE,YAAW,UAAS,QAAO,WACZ,CAClC,GAAM,GAAQ,GAAI,GAClB,SAAM,UAAU,CAGd,KAAK,CAAE,UAAU,CACf,AAAI,EACF,GAAG,aAAa,gBAAiB,UACjC,EAAG,aAAa,WAAY,MAC5B,EAAG,QAEH,GAAG,gBAAgB,iBACnB,EAAG,gBAAgB,cAKvB,UAAW,CACT,EAAG,MAAM,IAAM,GACf,EAAG,aAAa,gBAAiB,UACjC,EAAG,gBAAgB,eAKvB,EACG,KACC,GAAU,EAAM,KAAK,GAAQ,GAAI,GAAS,KAC1C,EAAwB,WAEvB,UAAU,CAAC,CAAE,YAAa,CACzB,EAAG,MAAM,IAAM,GAAG,EAAS,SAI1B,GAAe,EAAI,CAAE,YAAW,QAAO,YAC3C,KACC,EAAI,GAAS,EAAM,KAAK,IACxB,EAAS,IAAM,EAAM,YACrB,EAAI,GAAU,GAAE,IAAK,GAAO,KCjH3B,YACL,CAAE,YAAW,WACP,CACN,EACG,KACC,EAAU,IAAM,EAAG,GAAG,EACpB,mCAEF,EAAI,GAAM,CACR,EAAG,cAAgB,GACnB,EAAG,QAAU,KAEf,GAAS,GAAM,EAAU,EAAI,UAC1B,KACC,GAAU,IAAM,EAAG,aAAa,kBAChC,GAAM,KAGV,GAAe,IAEd,UAAU,CAAC,CAAC,EAAI,KAAY,CAC3B,EAAG,gBAAgB,iBACf,GACF,GAAG,QAAU,MC5BvB,aAAkC,CAChC,MAAO,qBAAqB,KAAK,UAAU,WAkBtC,YACL,CAAE,aACI,CACN,EACG,KACC,EAAU,IAAM,EAAG,GAAG,EAAY,yBAClC,EAAI,GAAM,EAAG,gBAAgB,sBAC7B,EAAO,IACP,GAAS,GAAM,EAAU,EAAI,cAC1B,KACC,GAAM,MAIT,UAAU,GAAM,CACf,GAAM,GAAM,EAAG,UAGf,AAAI,IAAQ,EACV,EAAG,UAAY,EAGN,EAAM,EAAG,eAAiB,EAAG,cACtC,GAAG,UAAY,EAAM,KClCxB,YACL,CAAE,YAAW,WACP,CACN,EAAc,CAAC,GAAY,UAAW,IACnC,KACC,EAAI,CAAC,CAAC,EAAQ,KAAY,GAAU,CAAC,GACrC,EAAU,GAAU,EAAG,GACpB,KACC,GAAM,EAAS,IAAM,OAGzB,GAAe,IAEd,UAAU,CAAC,CAAC,EAAQ,CAAE,OAAQ,CAAE,SAAU,CACzC,GAAI,EACF,SAAS,KAAK,aAAa,gBAAiB,QAC5C,SAAS,KAAK,MAAM,IAAM,IAAI,UACzB,CACL,GAAM,GAAQ,GAAK,SAAS,SAAS,KAAK,MAAM,IAAK,IACrD,SAAS,KAAK,gBAAgB,iBAC9B,SAAS,KAAK,MAAM,IAAM,GACtB,GACF,OAAO,SAAS,EAAG,MC1D/B,AAAK,OAAO,SACV,QAAO,QAAU,SAAU,EAAa,CACtC,GAAM,GAA2B,GACjC,OAAW,KAAO,QAAO,KAAK,GAE5B,EAAK,KAAK,CAAC,EAAK,EAAI,KAGtB,MAAO,KAIX,AAAK,OAAO,QACV,QAAO,OAAS,SAAU,EAAa,CACrC,GAAM,GAAiB,GACvB,OAAW,KAAO,QAAO,KAAK,GAE5B,EAAK,KAAK,EAAI,IAGhB,MAAO,KAMX,AAAI,MAAO,UAAY,aAGhB,SAAQ,UAAU,UACrB,SAAQ,UAAU,SAAW,SAC3B,EAA8B,EACxB,CACN,AAAI,MAAO,IAAM,SACf,MAAK,WAAa,EAAE,KACpB,KAAK,UAAY,EAAE,KAEnB,MAAK,WAAa,EAClB,KAAK,UAAY,KAKlB,QAAQ,UAAU,aACrB,SAAQ,UAAU,YAAc,YAC3B,EACG,CACN,GAAM,GAAS,KAAK,WACpB,GAAI,EAAQ,CACV,AAAI,EAAM,SAAW,GACnB,EAAO,YAAY,MAGrB,OAAS,GAAI,EAAM,OAAS,EAAG,GAAK,EAAG,IAAK,CAC1C,GAAI,GAAO,EAAM,GACjB,AAAI,MAAO,IAAS,SAClB,EAAO,SAAS,eAAe,GACxB,EAAK,YACZ,EAAK,WAAW,YAAY,GAG9B,AAAK,EAGH,EAAO,aAAa,KAAK,gBAAkB,GAF3C,EAAO,aAAa,EAAM,W1LEtC,SAAS,gBAAgB,UAAU,OAAO,SAC1C,SAAS,gBAAgB,UAAU,IAAI,MAGvC,GAAM,IAAY,KACZ,GAAY,KACZ,GAAY,KACZ,GAAY,KAGZ,GAAY,KACZ,GAAY,GAAW,sBACvB,GAAY,GAAW,uBACvB,GAAY,KAGZ,GAAS,KACT,GAAS,SAAS,MAAM,UAAU,UACpC,gCAAU,QAAS,GACnB,GAAI,KAAI,2BAA4B,GAAO,OAE3C,GAGE,GAAS,GAAI,GACnB,GAAiB,CAAE,YAGnB,AAAI,GAAQ,uBACV,GAAoB,CAAE,aAAW,aAAW,eAxH9C,OA2HA,AAAI,QAAO,UAAP,eAAgB,YAAa,QAC/B,KAGF,EAAM,GAAW,IACd,KACC,GAAM,MAEL,UAAU,IAAM,CACf,GAAU,SAAU,IACpB,GAAU,SAAU,MAI1B,GACG,KACC,EAAO,CAAC,CAAE,UAAW,IAAS,WAE7B,UAAU,GAAO,CAChB,OAAQ,EAAI,UAGL,QACA,IACH,GAAM,GAAO,GAAmB,oBAChC,AAAI,MAAO,IAAS,aAClB,EAAK,QACP,UAGG,QACA,IACH,GAAM,GAAO,GAAmB,oBAChC,AAAI,MAAO,IAAS,aAClB,EAAK,QACP,SAKV,GAAmB,CAAE,aAAW,aAChC,GAAe,CAAE,eACjB,GAAgB,CAAE,aAAW,aAG7B,GAAM,IAAU,GAAY,GAAoB,UAAW,CAAE,eACvD,GAAQ,GACX,KACC,EAAI,IAAM,GAAoB,SAC9B,EAAU,GAAM,GAAU,EAAI,CAAE,aAAW,cAC3C,EAAY,IAIV,GAAW,EAGf,GAAG,GAAqB,UACrB,IAAI,GAAM,GAAY,EAAI,CAAE,aAG/B,GAAG,GAAqB,UACrB,IAAI,GAAM,GAAY,EAAI,CAAE,aAAW,WAAS,YAGnD,GAAG,GAAqB,WACrB,IAAI,GAAM,GAAa,IAG1B,GAAG,GAAqB,UACrB,IAAI,GAAM,GAAY,EAAI,CAAE,UAAQ,gBAGvC,GAAG,GAAqB,UACrB,IAAI,GAAM,GAAY,KAIrB,GAAW,EAAM,IAAM,EAG3B,GAAG,GAAqB,WACrB,IAAI,GAAM,GAAa,EAAI,CAAE,WAAS,aAGzC,GAAG,GAAqB,WACrB,IAAI,GAAM,GAAQ,oBACf,GAAoB,EAAI,CAAE,UAAQ,eAClC,GAIN,GAAG,GAAqB,gBACrB,IAAI,GAAM,GAAiB,EAAI,CAAE,aAAW,cAG/C,GAAG,GAAqB,WACrB,IAAI,GAAM,EAAG,aAAa,kBAAoB,aAC3C,GAAG,GAAS,IAAM,GAAa,EAAI,CAAE,aAAW,WAAS,YACzD,GAAG,GAAS,IAAM,GAAa,EAAI,CAAE,aAAW,WAAS,aAI/D,GAAG,GAAqB,QACrB,IAAI,GAAM,GAAU,EAAI,CAAE,aAAW,cAGxC,GAAG,GAAqB,OACrB,IAAI,GAAM,GAAqB,EAAI,CAAE,aAAW,cAGnD,GAAG,GAAqB,OACrB,IAAI,GAAM,GAAe,EAAI,CAAE,aAAW,WAAS,SAAO,gBAIzD,GAAa,GAChB,KACC,EAAU,IAAM,IAChB,GAAU,IACV,EAAY,IAIhB,GAAW,YAMX,OAAO,UAAa,GACpB,OAAO,UAAa,GACpB,OAAO,QAAa,GACpB,OAAO,UAAa,GACpB,OAAO,UAAa,GACpB,OAAO,QAAa,GACpB,OAAO,QAAa,GACpB,OAAO,OAAa,GACpB,OAAO,OAAa,GACpB,OAAO,WAAa", + "names": [] +} diff --git a/docs/assets/javascripts/bundle.193efd2f.min.js b/docs/assets/javascripts/bundle.193efd2f.min.js new file mode 100644 index 00000000..3cb87086 --- /dev/null +++ b/docs/assets/javascripts/bundle.193efd2f.min.js @@ -0,0 +1,2 @@ +!function(t,e){for(var n in e)t[n]=e[n]}(window,function(t){function e(e){for(var r,i,o=e[0],u=e[1],b=e[2],s=0,O=[];s0}function H(){return new _.a(new URL(location.href))}var R=n(109);function P(t,e){return e.location$.pipe(Object(R.a)(1),Object(l.a)((function(e){var n=e.href;return new URL(t,n).toString().replace(/\/$/,"")})),Object(p.a)(1))}function U(){return location.hash.substring(1)}function q(t){var e=s("a");e.href=t,e.addEventListener("click",(function(t){return t.stopPropagation()})),e.click()}function N(){return Object(c.a)(window,"hashchange").pipe(Object(l.a)(U),Object(d.a)(U()),Object(S.a)((function(t){return t.length>0})),Object(C.a)())}function I(t){var e=matchMedia(t);return Object(x.a)((function(t){return e.addListener((function(){return t(e.matches)}))})).pipe(Object(d.a)(e.matches),Object(p.a)(1))}var z={drawer:u("[data-md-toggle=drawer]"),search:u("[data-md-toggle=search]")};function V(t){return z[t].checked}function D(t,e){z[t].checked!==e&&z[t].click()}function B(t){var e=z[t];return Object(c.a)(e,"change").pipe(Object(l.a)((function(){return e.checked})),Object(d.a)(e.checked))}var Y=n(59),J=n(87);function K(){return{x:Math.max(0,pageXOffset),y:Math.max(0,pageYOffset)}}function Q(t){var e=t.x,n=t.y;window.scrollTo(e||0,n||0)}function F(){return{width:innerWidth,height:innerHeight}}function W(){return Object(Y.a)([Object(j.a)(Object(c.a)(window,"scroll",{passive:!0}),Object(c.a)(window,"resize",{passive:!0})).pipe(Object(l.a)(K),Object(d.a)(K())),Object(c.a)(window,"resize",{passive:!0}).pipe(Object(l.a)(F),Object(d.a)(F()))]).pipe(Object(l.a)((function(t){var e=Object(w.h)(t,2);return{offset:e[0],size:e[1]}})),Object(p.a)(1))}function X(t,e){var n=e.header$,r=e.viewport$,c=r.pipe(Object(J.a)("size")),a=Object(Y.a)([c,n]).pipe(Object(l.a)((function(){return{x:t.offsetLeft,y:t.offsetTop}})));return Object(Y.a)([n,r,a]).pipe(Object(l.a)((function(t){var e=Object(w.h)(t,3),n=e[0].height,r=e[1],c=r.offset,a=r.size,i=e[2],o=i.x,u=i.y;return{offset:{x:c.x-o,y:c.y-u+n},size:a}})),Object(p.a)(1))}var Z=n(98),G=n(99),tt=n(79),et=n(100);function nt(t,e){var n=e.tx$,r=Object(x.a)((function(e){return t.addEventListener("message",e)})).pipe(Object(Z.a)("data"));return n.pipe(Object(G.a)((function(){return r}),{leading:!0,trailing:!0}),Object(tt.a)((function(e){return t.postMessage(e)})),Object(et.a)(r),Object(C.a)())}},,,function(t,e,n){"use strict";function r(t){return"object"==typeof t&&"string"==typeof t.base&&"object"==typeof t.features&&"object"==typeof t.search}n.d(e,"d",(function(){return r})),n.d(e,"b",(function(){return b})),n.d(e,"a",(function(){return O})),n.d(e,"f",(function(){return d})),n.d(e,"g",(function(){return p})),n.d(e,"e",(function(){return h})),n.d(e,"c",(function(){return v}));var c=n(0),a=n(78);function i(t){switch(t){case"svg":case"path":return document.createElementNS("http://www.w3.org/2000/svg",t);default:return document.createElement(t)}}function o(t,e,n){switch(e){case"xmlns":break;case"viewBox":case"d":"boolean"!=typeof n?t.setAttributeNS(null,e,n):n&&t.setAttributeNS(null,e,"");break;default:"boolean"!=typeof n?t.setAttribute(e,n):n&&t.setAttribute(e,"")}}function u(t,e){var n,r;if("string"==typeof e||"number"==typeof e)t.innerHTML+=e.toString();else if(e instanceof Node)t.appendChild(e);else if(Array.isArray(e))try{for(var a=Object(c.k)(e),i=a.next();!i.done;i=a.next()){u(t,i.value)}}catch(t){n={error:t}}finally{try{i&&!i.done&&(r=a.return)&&r.call(a)}finally{if(n)throw n.error}}}function b(t,e){for(var n,r,b,f,s=[],O=2;On){for(;" "!==t[n]&&--n>0;);return t.substring(0,n)+"..."}return t}function h(t){return t>999?((t+1e-6)/1e3).toFixed(+((t-950)%1e3>99))+"k":t.toString()}function v(t){for(var e=0,n=0,r=t.length;n code").forEach((function(t,e){var n=t.parentElement;n.id="__code_"+e,n.insertBefore(Object(f.a)(n.id),t)}))}));var O=Object(a.a)((function(t){new r(".md-clipboard").on("success",t)})).pipe(Object(i.a)());return O.pipe(Object(o.a)((function(t){return t.clearSelection()})),Object(u.a)(Object(s.f)("clipboard.copied"))).subscribe(n),O}var j=n(26),l=n(39),d=n(82),p=n(33),h=n(9),v=n(56),m=n(111);function y(t){var e=(void 0===t?{}:t).duration,n=new j.a,r=Object(b.a)("div");return r.classList.add("md-dialog","md-typeset"),n.pipe(Object(p.a)((function(t){return Object(l.a)(document.body).pipe(Object(h.a)((function(t){return t.appendChild(r)})),Object(v.b)(d.a),Object(m.a)(1),Object(o.a)((function(e){e.innerHTML=t,e.setAttribute("data-md-state","open")})),Object(m.a)(e||2e3),Object(o.a)((function(t){return t.removeAttribute("data-md-state")})),Object(m.a)(400),Object(o.a)((function(t){t.innerHTML="",t.remove()})))}))).subscribe(),n}var g=n(0),w=n(92),$=n(94),x=n(112),k=n(96),S=n(46),C=n(98),T=n(87),A=n(103),_=n(104),E=n(101),L=n(88),M=n(105),H=n(89);function R(t){var e=t.document$,n=t.viewport$,r=t.location$;"scrollRestoration"in history&&(history.scrollRestoration="manual"),Object(w.a)(window,"beforeunload").subscribe((function(){history.scrollRestoration="auto"}));var a=Object(b.c)('link[rel="shortcut icon"]');void 0!==a&&(a.href=a.href);var o=Object(w.a)(document.body,"click").pipe(Object(k.a)((function(t){return!(t.metaKey||t.ctrlKey)})),Object(p.a)((function(t){if(t.target instanceof HTMLElement){var e=t.target.closest("a");if(e&&!e.target&&Object(b.h)(e))return Object(b.g)(e)||t.preventDefault(),Object(l.a)(e)}return c.a})),Object(h.a)((function(t){return{url:new URL(t.href)}})),Object(i.a)());o.subscribe((function(){Object(b.o)("search",!1)}));var u=o.pipe(Object(k.a)((function(t){var e=t.url;return!Object(b.g)(e)})),Object(i.a)()),f=Object(w.a)(window,"popstate").pipe(Object(k.a)((function(t){return null!==t.state})),Object(h.a)((function(t){return{url:new URL(location.href),offset:t.state}})),Object(i.a)());Object($.a)(u,f).pipe(Object(S.a)((function(t,e){return t.url.href===e.url.href})),Object(C.a)("url")).subscribe(r);var s=r.pipe(Object(T.a)("pathname"),Object(A.a)(1),Object(p.a)((function(t){return Object(x.a)({url:t.href,responseType:"text",withCredentials:!0}).pipe(Object(_.a)((function(){return Object(b.m)(t),c.a})))})));u.pipe(Object(E.a)(s)).subscribe((function(t){var e=t.url;history.pushState({},"",e.toString())}));var O=new DOMParser;s.pipe(Object(h.a)((function(t){var e=t.response;return O.parseFromString(e,"text/html")}))).subscribe(e);var j=Object($.a)(u,f).pipe(Object(E.a)(e));j.subscribe((function(t){var e=t.url,n=t.offset;e.hash&&!n?Object(b.n)(e.hash):Object(b.p)(n||{y:0})})),j.pipe(Object(L.a)(e)).subscribe((function(t){var e,n,r=Object(g.h)(t,2)[1],c=r.title,a=r.head;document.dispatchEvent(new CustomEvent("DOMContentSwitch")),document.title=c;try{for(var i=Object(g.k)(['link[rel="canonical"]','meta[name="author"]','meta[name="description"]']),o=i.next();!o.done;o=i.next()){var u=o.value,f=Object(b.c)(u,a),s=Object(b.c)(u,document.head);void 0!==f&&void 0!==s&&Object(b.j)(s,f)}}catch(t){e={error:t}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(e)throw e.error}}})),n.pipe(Object(M.a)(250),Object(T.a)("offset")).subscribe((function(t){var e=t.offset;history.replaceState(e,"")})),Object($.a)(o,f).pipe(Object(H.a)(2,1),Object(k.a)((function(t){var e=Object(g.h)(t,2),n=e[0],r=e[1];return n.url.pathname===r.url.pathname&&!Object(b.g)(r.url)})),Object(h.a)((function(t){return Object(g.h)(t,2)[1]}))).subscribe((function(t){var e=t.offset;Object(b.p)(e||{y:0})}))}var P=n(7);function U(){var t=Object(b.u)().pipe(Object(h.a)((function(t){return Object(g.a)({mode:Object(b.f)("search")?"search":"global"},t)})),Object(k.a)((function(t){if("global"===t.mode){var e=Object(b.b)();if(void 0!==e)return!Object(b.i)(e)}return!0})),Object(i.a)());return t.pipe(Object(k.a)((function(t){return"search"===t.mode})),Object(L.a)(Object(P.useComponent)("search-query"),Object(P.useComponent)("search-result"))).subscribe((function(t){var e=Object(g.h)(t,3),n=e[0],r=e[1],c=e[2],a=Object(b.b)();switch(n.type){case"Enter":a===r&&n.claim();break;case"Escape":case"Tab":Object(b.o)("search",!1),Object(b.k)(r,!1);break;case"ArrowUp":case"ArrowDown":if(void 0===a)Object(b.k)(r);else{var i=Object(g.i)([r],Object(b.e)("[href]",c)),o=Math.max(0,(Math.max(0,i.indexOf(a))+i.length+("ArrowUp"===n.type?-1:1))%i.length);Object(b.k)(i[o])}n.claim();break;default:r!==Object(b.b)()&&Object(b.k)(r)}})),t.pipe(Object(k.a)((function(t){return"global"===t.mode})),Object(L.a)(Object(P.useComponent)("search-query"))).subscribe((function(t){var e=Object(g.h)(t,2),n=e[0],r=e[1];switch(n.type){case"f":case"s":case"/":Object(b.k)(r),Object(b.l)(r),n.claim();break;case"p":case",":var c=Object(b.c)("[href][rel=prev]");void 0!==c&&c.click();break;case"n":case".":var a=Object(b.c)("[href][rel=next]");void 0!==a&&a.click()}})),t}var q=n(44)},,,,,,function(t,e,n){"use strict";n.d(e,"a",(function(){return j})),n.d(e,"b",(function(){return l}));var r,c=n(0),a=n(39),i=n(18),o=n(9),u=n(80),b=n(86),f=n(33),s=n(46),O=n(1);function j(t,e){var n=e.document$;r=n.pipe(Object(o.a)((function(e){return t.reduce((function(t,n){var r,a=Object(O.c)("[data-md-component="+n+"]",e);return Object(c.a)(Object(c.a)({},t),void 0!==a?((r={})[n]=a,r):{})}),{})})),Object(u.a)((function(e,n){var r,a;try{for(var i=Object(c.k)(t),o=i.next();!o.done;o=i.next()){var u=o.value;switch(u){case"announce":case"header-title":case"container":case"skip":u in e&&void 0!==e[u]&&(Object(O.j)(e[u],n[u]),e[u]=n[u]);break;default:void 0!==n[u]?e[u]=Object(O.c)("[data-md-component="+u+"]"):delete e[u]}}}catch(t){r={error:t}}finally{try{o&&!o.done&&(a=i.return)&&a.call(i)}finally{if(r)throw r.error}}return e})),Object(b.a)(1))}function l(t){return r.pipe(Object(f.a)((function(e){return void 0!==e[t]?Object(a.a)(e[t]):i.a})),Object(s.a)())}},,,function(t,e,n){"use strict";function r(t,e){t.setAttribute("data-md-state",e?"blur":"")}function c(t){t.removeAttribute("data-md-state")}function a(t,e){t.classList.toggle("md-nav__link--active",e)}function i(t){t.classList.remove("md-nav__link--active")}n.d(e,"d",(function(){return r})),n.d(e,"b",(function(){return c})),n.d(e,"c",(function(){return a})),n.d(e,"a",(function(){return i}))},,,,,,function(t,e,n){"use strict";var r=n(61);n.o(r,"applySidebar")&&n.d(e,"applySidebar",(function(){return r.applySidebar})),n.o(r,"mountTableOfContents")&&n.d(e,"mountTableOfContents",(function(){return r.mountTableOfContents})),n.o(r,"mountTabs")&&n.d(e,"mountTabs",(function(){return r.mountTabs})),n.o(r,"watchSidebar")&&n.d(e,"watchSidebar",(function(){return r.watchSidebar}))},function(t,e,n){"use strict";n.d(e,"a",(function(){return a})),n.d(e,"b",(function(){return j})),n.d(e,"c",(function(){return p})),n.d(e,"d",(function(){return m}));var r=n(4),c="md-clipboard md-icon";function a(t){return Object(r.b)("button",{class:c,title:Object(r.f)("clipboard.copy"),"data-clipboard-target":"#"+t+" > code"},Object(r.b)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(r.b)("path",{d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})))}var i=n(0),o="md-search-result__item",u="md-search-result__link",b="md-search-result__article md-search-result__article--document",f="md-search-result__article",s="md-search-result__title",O="md-search-result__teaser";function j(t){var e=t.article,n=t.sections,c=Object(r.b)("div",{class:"md-search-result__icon md-icon"},Object(r.b)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(r.b)("path",{d:"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H13C12.59,21.75 12.2,21.44 11.86,21.1C11.53,20.77 11.25,20.4 11,20H6V4H13V9H18V10.18C18.71,10.34 19.39,10.61 20,11V8L14,2M20.31,18.9C21.64,16.79 21,14 18.91,12.68C16.8,11.35 14,12 12.69,14.08C11.35,16.19 12,18.97 14.09,20.3C15.55,21.23 17.41,21.23 18.88,20.32L22,23.39L23.39,22L20.31,18.9M16.5,19A2.5,2.5 0 0,1 14,16.5A2.5,2.5 0 0,1 16.5,14A2.5,2.5 0 0,1 19,16.5A2.5,2.5 0 0,1 16.5,19Z"}))),a=Object(i.i)([e],n).map((function(t){var e=t.location,n=t.title,a=t.text;return Object(r.b)("a",{href:e,class:u,tabIndex:-1},Object(r.b)("article",{class:"parent"in t?f:b},!("parent"in t)&&c,Object(r.b)("h1",{class:s},n),a.length>0&&Object(r.b)("p",{class:O},Object(r.g)(a,320))))}));return Object(r.b)("li",{class:o},a)}var l="md-source__facts",d="md-source__fact";function p(t){var e=t.map((function(t){return Object(r.b)("li",{class:d},t)}));return Object(r.b)("ul",{class:l},e)}var h="md-typeset__scrollwrap",v="md-typeset__table";function m(t){return Object(r.b)("div",{class:h},Object(r.b)("div",{class:v},t))}},function(t,e,n){"use strict";function r(t,e){t.style.top=e+"px"}function c(t){t.style.top=""}function a(t,e){t.style.height=e+"px"}function i(t){t.style.height=""}n.d(e,"d",(function(){return r})),n.d(e,"b",(function(){return c})),n.d(e,"c",(function(){return a})),n.d(e,"a",(function(){return i}))},,,,,,,,,,,,function(t,e,n){"use strict";var r=n(66);n.o(r,"applyAnchorList")&&n.d(e,"applyAnchorList",(function(){return r.applyAnchorList})),n.o(r,"watchAnchorList")&&n.d(e,"watchAnchorList",(function(){return r.watchAnchorList}));var c=n(67);n.d(e,"applyAnchorList",(function(){return c.a})),n.d(e,"watchAnchorList",(function(){return c.b}));n(23)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a})),n.d(e,"f",(function(){return y})),n.d(e,"a",(function(){return i})),n.d(e,"d",(function(){return p})),n.d(e,"c",(function(){return h})),n.d(e,"e",(function(){return v}));var r=n(0),c=n(75);!function(){function t(t){var e=t.config,n=t.docs,a=t.pipeline,i=t.index;this.documents=function(t){var e,n,a=new Map;try{for(var i=Object(r.k)(t),o=i.next();!o.done;o=i.next()){var u=o.value,b=Object(r.h)(u.location.split("#"),2),f=b[0],s=b[1],O=u.location,j=u.title,l=c(u.text).replace(/\s+(?=[,.:;!?])/g,"").replace(/\s+/g," ");if(s){var d=a.get(f);d.linked?a.set(O,{location:O,title:j,text:l,parent:d}):(d.title=u.title,d.text=l,d.linked=!0)}else a.set(O,{location:O,title:j,text:l,linked:!1})}}catch(t){e={error:t}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(e)throw e.error}}return a}(n),this.highlight=function(t){var e=new RegExp(t.separator,"img"),n=function(t,e,n){return e+""+n+""};return function(c){c=c.replace(/[\s*+-:~^]+/g," ").trim();var a=new RegExp("(^|"+t.separator+")("+c.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(e,"|")+")","img");return function(t){return Object(r.a)(Object(r.a)({},t),{title:t.title.replace(a,n),text:t.text.replace(a,n)})}}}(e),this.index=void 0===i?lunr((function(){var t,c,i,o,u;a=a||["trimmer","stopWordFilter"],this.pipeline.reset();try{for(var b=Object(r.k)(a),f=b.next();!f.done;f=b.next()){var s=f.value;this.pipeline.add(lunr[s])}}catch(e){t={error:e}}finally{try{f&&!f.done&&(c=b.return)&&c.call(b)}finally{if(t)throw t.error}}1===e.lang.length&&"en"!==e.lang[0]?this.use(lunr[e.lang[0]]):e.lang.length>1&&this.use((i=lunr).multiLanguage.apply(i,Object(r.i)(e.lang))),this.field("title",{boost:1e3}),this.field("text"),this.ref("location");try{for(var O=Object(r.k)(n),j=O.next();!j.done;j=O.next()){var l=j.value;this.add(l)}}catch(t){o={error:t}}finally{try{j&&!j.done&&(u=O.return)&&u.call(O)}finally{if(o)throw o.error}}})):lunr.Index.load("string"==typeof i?JSON.parse(i):i)}t.prototype.query=function(t){var e=this;if(t)try{var n=this.index.search(t).reduce((function(t,n){var c=e.documents.get(n.ref);if(void 0!==c)if("parent"in c){var a=c.parent.location;t.set(a,Object(r.i)(t.get(a)||[],[n]))}else{a=c.location;t.set(a,t.get(a)||[])}return t}),new Map),c=this.highlight(t);return Object(r.i)(n).map((function(t){var n=Object(r.h)(t,2),a=n[0],i=n[1];return{article:c(e.documents.get(a)),sections:i.map((function(t){return c(e.documents.get(t.ref))}))}}))}catch(e){console.warn("Invalid query: "+t+" – see https://bit.ly/2s3ChXG")}return[]}}();function a(t){return t.replace(/(?:^|\s+)[*+-:^~]+(?=\s+|$)/g,"").trim().replace(/\s+|\b$/g,"* ")}var i,o=n(110),u=n(26),b=n(53),f=n(88),s=n(9),O=n(86),j=n(56),l=n(1),d=n(4);function p(t){return t.type===i.READY}function h(t){return t.type===i.QUERY}function v(t){return t.type===i.RESULT}function m(t){var e=t.config,n=t.docs,r=t.index;return 1===e.lang.length&&"en"===e.lang[0]&&(e.lang=[Object(d.f)("search.config.lang")]),"[s-]+"===e.separator&&(e.separator=Object(d.f)("search.config.separator")),{config:e,docs:n,index:r,pipeline:Object(d.f)("search.config.pipeline").split(/\s*,\s*/).filter(o.a)}}function y(t,e){var n=e.index$,c=e.base$,a=new Worker(t),o=new u.a,d=Object(l.C)(a,{tx$:o}).pipe(Object(f.a)(c),Object(s.a)((function(t){var e,n,c,a,i=Object(r.h)(t,2),o=i[0],u=i[1];if(v(o))try{for(var b=Object(r.k)(o.data),f=b.next();!f.done;f=b.next()){var s=f.value,O=s.article,j=s.sections;O.location=u+"/"+O.location;try{for(var l=(c=void 0,Object(r.k)(j)),d=l.next();!d.done;d=l.next()){var p=d.value;p.location=u+"/"+p.location}}catch(t){c={error:t}}finally{try{d&&!d.done&&(a=l.return)&&a.call(l)}finally{if(c)throw c.error}}}}catch(t){e={error:t}}finally{try{f&&!f.done&&(n=b.return)&&n.call(b)}finally{if(e)throw e.error}}return o})),Object(O.a)(1));return n.pipe(Object(s.a)((function(t){return{type:i.SETUP,data:m(t)}})),Object(j.b)(b.a)).subscribe(o.next.bind(o)),{tx$:o,rx$:d}}!function(t){t[t.SETUP=0]="SETUP",t[t.READY=1]="READY",t[t.QUERY=2]="QUERY",t[t.RESULT=3]="RESULT"}(i||(i={}))},,,,,,,,,,,,,,,,,function(t,e,n){"use strict";var r=n(62);n.o(r,"applySidebar")&&n.d(e,"applySidebar",(function(){return r.applySidebar})),n.o(r,"mountTableOfContents")&&n.d(e,"mountTableOfContents",(function(){return r.mountTableOfContents})),n.o(r,"mountTabs")&&n.d(e,"mountTabs",(function(){return r.mountTabs})),n.o(r,"watchSidebar")&&n.d(e,"watchSidebar",(function(){return r.watchSidebar}));var c=n(63);n.d(e,"applySidebar",(function(){return c.a})),n.d(e,"watchSidebar",(function(){return c.b}));n(31)},function(t,e){},function(t,e,n){"use strict";n.d(e,"b",(function(){return l})),n.d(e,"a",(function(){return d}));var r=n(0),c=n(59),a=n(45),i=n(82),o=n(9),u=n(46),b=n(56),f=n(88),s=n(79),O=n(81),j=n(31);function l(t,e){var n=e.main$,a=e.viewport$,i=t.parentElement.offsetTop-t.parentElement.parentElement.offsetTop;return Object(c.a)([n,a]).pipe(Object(o.a)((function(t){var e=Object(r.h)(t,2),n=e[0],c=n.offset,a=n.height,o=e[1].offset.y;return{height:a=a+Math.min(i,Math.max(0,o-c))-i,lock:o>=c+i}})),Object(u.a)((function(t,e){return t.height===e.height&&t.lock===e.lock})))}function d(t,e){var n=e.header$;return Object(a.a)(Object(b.b)(i.a),Object(f.a)(n),Object(s.a)((function(e){var n=Object(r.h)(e,2),c=n[0],a=c.height,i=c.lock,o=n[1].height;Object(j.c)(t,a),i?Object(j.d)(t,o):Object(j.b)(t)})),Object(o.a)((function(t){return Object(r.h)(t,1)[0]})),Object(O.a)((function(){Object(j.b)(t),Object(j.a)(t)})))}},function(t,e,n){"use strict";var r=n(65);n.d(e,"mountTableOfContents",(function(){return r.a}));n(43)},function(t,e,n){"use strict";n.d(e,"a",(function(){return O}));var r=n(0),c=n(45),a=n(59),i=n(39),o=n(33),u=n(9),b=n(1),f=n(29),s=n(43);function O(t){var e=t.header$,n=t.main$,O=t.viewport$,j=t.tablet$;return Object(c.a)(Object(o.a)((function(t){return j.pipe(Object(o.a)((function(c){if(c){var o=Object(b.e)(".md-nav__link",t),j=Object(f.watchSidebar)(t,{main$:n,viewport$:O}).pipe(Object(f.applySidebar)(t,{header$:e})),l=Object(s.watchAnchorList)(o,{header$:e,viewport$:O}).pipe(Object(s.applyAnchorList)(o));return Object(a.a)([j,l]).pipe(Object(u.a)((function(t){var e=Object(r.h)(t,2);return{sidebar:e[0],anchors:e[1]}})))}return Object(i.a)({})})))})))}},function(t,e){},function(t,e,n){"use strict";n.d(e,"b",(function(){return y})),n.d(e,"a",(function(){return g}));var r=n(0),c=n(91),a=n(59),i=n(45),o=n(82),u=n(9),b=n(87),f=n(33),s=n(80),O=n(46),j=n(90),l=n(89),d=n(56),p=n(79),h=n(81),v=n(1),m=n(23);function y(t,e){var n,i,o=e.header$,d=e.viewport$,p=new Map;try{for(var h=Object(r.k)(t),m=h.next();!m.done;m=h.next()){var y=m.value,g=decodeURIComponent(y.hash.substring(1)),w=Object(v.c)('[id="'+g+'"]');void 0!==w&&p.set(y,w)}}catch(t){n={error:t}}finally{try{m&&!m.done&&(i=h.return)&&i.call(h)}finally{if(n)throw n.error}}var $=o.pipe(Object(u.a)((function(t){return 18+t.height})));return Object(v.t)(document.body).pipe(Object(b.a)("height"),Object(u.a)((function(){var t=[];return Object(r.i)(p).reduce((function(e,n){for(var a=Object(r.h)(n,2),i=a[0],o=a[1];t.length;){if(!(p.get(t[t.length-1]).tagName>=o.tagName))break;t.pop()}for(var u=o.offsetTop;!u&&o.parentElement;)u=(o=o.parentElement).offsetTop;return e.set(Object(c.a)(t=Object(r.i)(t,[i])),u)}),new Map)})),Object(f.a)((function(t){return Object(a.a)([$,d]).pipe(Object(s.a)((function(t,e){for(var n=Object(r.h)(t,2),c=n[0],a=n[1],i=Object(r.h)(e,2),o=i[0],u=i[1].offset.y;a.length;){if(!(Object(r.h)(a[0],2)[1]-o=u))break;a=Object(r.i)([c.pop()],a)}return[c,a]}),[[],Object(r.i)(t)]),Object(O.a)((function(t,e){return t[0]===e[0]&&t[1]===e[1]})))}))).pipe(Object(u.a)((function(t){var e=Object(r.h)(t,2),n=e[0],c=e[1];return{prev:n.map((function(t){return Object(r.h)(t,1)[0]})),next:c.map((function(t){return Object(r.h)(t,1)[0]}))}})),Object(j.a)({prev:[],next:[]}),Object(l.a)(2,1),Object(u.a)((function(t){var e=Object(r.h)(t,2),n=e[0],c=e[1];return n.prev.length16)););return n}),0),Object(u.a)(e),Object(M.a)((function(){!function(t){t.innerHTML=""}(b)})))})))}function q(t,e){var n=t.rx$,r=e.query$;return Object(c.a)(Object(i.a)((function(t){var e=t.parentElement,c=n.pipe(Object(o.a)(h.c),Object(u.a)(!0)),a=Object(p.s)(e).pipe(Object(O.a)((function(t){return t.y>=e.scrollHeight-e.offsetHeight-16})),Object(g.a)(),Object(o.a)(C.a));return n.pipe(Object(o.a)(h.d),Object(T.a)("data"),U(t,{query$:r,ready$:c,fetch$:a}),Object(b.a)([]))})))}},function(t,e,n){"use strict";n.d(e,"a",(function(){return y}));var r=n(0),c=n(45),a=n(59),i=n(33),o=n(9),u=n(96),b=n(88),f=n(46),s=n(90),O=n(86),j=n(1),l=n(20),d=n(39),p=n(82),h=n(56),v=n(79),m=n(81);function y(t){var e=t.document$,n=t.viewport$;return Object(c.a)(Object(i.a)((function(t){var y=function(t,e){return e.document$.pipe(Object(o.a)((function(){var e=getComputedStyle(t);return["sticky","-webkit-sticky"].includes(e.position)})),Object(f.a)(),Object(i.a)((function(e){return e?Object(j.t)(t).pipe(Object(o.a)((function(t){return{sticky:!0,height:t.height}}))):Object(d.a)({sticky:!1,height:0})})),Object(O.a)(1))}(t,{document$:e}),g=Object(l.b)("main").pipe(Object(o.a)((function(t){return Object(j.c)("h1, h2, h3, h4, h5, h6",t)})),Object(u.a)((function(t){return void 0!==t})),Object(b.a)(Object(l.b)("header-title")),Object(i.a)((function(t){var e=Object(r.h)(t,2),a=e[0],i=e[1];return Object(j.B)(a,{header$:y,viewport$:n}).pipe(Object(o.a)((function(t){return t.offset.y>=a.offsetHeight?"page":"site"})),Object(f.a)(),function(t){return Object(c.a)(Object(h.b)(p.a),Object(v.a)((function(e){!function(t,e){t.setAttribute("data-md-state",e?"active":"")}(t,"page"===e)})),Object(m.a)((function(){!function(t){t.removeAttribute("data-md-state")}(t)})))}(i))})),Object(s.a)("site"));return Object(a.a)([y,g]).pipe(Object(o.a)((function(t){var e=Object(r.h)(t,2),n=e[0],c=e[1];return Object(r.a)({type:c},n)})),Object(O.a)(1))})))}},function(t,e,n){"use strict";n.d(e,"a",(function(){return O}));var r=n(45),c=n(33),a=n(9),i=n(87),o=n(1),u=n(82),b=n(56),f=n(79),s=n(81);function O(t){var e=t.header$,n=t.viewport$;return Object(r.a)(Object(c.a)((function(t){return Object(o.B)(t,{header$:e,viewport$:n}).pipe(Object(a.a)((function(t){return{hidden:t.offset.y>=20}})),Object(i.a)("hidden"),function(t){return Object(r.a)(Object(b.b)(u.a),Object(f.a)((function(e){var n=e.hidden;!function(t,e){t.setAttribute("data-md-state",e?"hidden":"")}(t,n)})),Object(s.a)((function(){!function(t){t.removeAttribute("data-md-state")}(t)})))}(t))})))}},function(t,e,n){"use strict";n.d(e,"a",(function(){return m}));var r=n(26),c=n(45),a=n(33),i=n(87),o=n(79),u=n(20),b=n(0),f=n(59),s=n(82),O=n(98),j=n(46),l=n(86),d=n(9),p=n(56),h=n(81),v=n(1);function m(t){var e=t.header$,n=t.viewport$,m=new r.a;return Object(u.b)("header").pipe(Object(a.a)((function(t){return m.pipe(Object(i.a)("active"),(e=t,Object(c.a)(Object(p.b)(s.a),Object(o.a)((function(t){var n=t.active;!function(t,e){t.setAttribute("data-md-state",e?"shadow":"")}(e,n)})),Object(h.a)((function(){!function(t){t.removeAttribute("data-md-state")}(e)})))));var e}))).subscribe(),Object(c.a)(Object(a.a)((function(t){return function(t,e){var n=e.header$,r=e.viewport$,c=n.pipe(Object(O.a)("height"),Object(j.a)(),Object(l.a)(1)),o=c.pipe(Object(a.a)((function(){return Object(v.t)(t).pipe(Object(d.a)((function(e){var n=e.height;return{top:t.offsetTop,bottom:t.offsetTop+n}})))})),Object(i.a)("bottom"),Object(l.a)(1));return Object(f.a)([c,o,r]).pipe(Object(d.a)((function(t){var e=Object(b.h)(t,3),n=e[0],r=e[1],c=r.top,a=r.bottom,i=e[2],o=i.offset.y,u=i.size.height;return{offset:c-n,height:u=Math.max(0,u-Math.max(0,c-o,n)-Math.max(0,u+o-a)),active:c-n<=o}})),Object(j.a)((function(t,e){return t.offset===e.offset&&t.height===e.height&&t.active===e.active})))}(t,{header$:e,viewport$:n})})),Object(o.a)((function(t){return m.next(t)})))}},function(t,e,n){"use strict";n.d(e,"a",(function(){return j}));var r=n(45),c=n(39),a=n(33),i=n(9),o=n(87),u=n(1),b=n(82),f=n(56),s=n(79),O=n(81);function j(t){var e=t.header$,n=t.viewport$,j=t.screen$;return Object(r.a)(Object(a.a)((function(t){return j.pipe(Object(a.a)((function(a){return a?Object(u.B)(t,{header$:e,viewport$:n}).pipe(Object(i.a)((function(t){return{hidden:t.offset.y>=10}})),Object(o.a)("hidden"),function(t){return Object(r.a)(Object(f.b)(b.a),Object(s.a)((function(e){var n=e.hidden;!function(t,e){t.setAttribute("data-md-state",e?"hidden":"")}(t,n)})),Object(O.a)((function(){!function(t){t.removeAttribute("data-md-state")}(t)})))}(t)):Object(c.a)({hidden:!0})})))})))}},function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var r=n(45),c=n(39),a=n(33),i=n(9),o=n(29);function u(t){var e=t.header$,n=t.main$,u=t.viewport$,b=t.screen$;return Object(r.a)(Object(a.a)((function(t){return b.pipe(Object(a.a)((function(r){return r?Object(o.watchSidebar)(t,{main$:n,viewport$:u}).pipe(Object(o.applySidebar)(t,{header$:e}),Object(i.a)((function(t){return{sidebar:t}}))):Object(c.a)({})})))})))}},,,,,,,,,,,,function(t,e,n){"use strict";n.r(e),n.d(e,"setScrollLock",(function(){return U})),n.d(e,"resetScrollLock",(function(){return q})),n.d(e,"initialize",(function(){return N}));var r=n(0),c=n(107),a=n(76),i=n(36),o=n(39),u=n(102),b=n(59),f=n(82),s=n(92),O=n(94),j=n(112),l=n(86),d=n(33),p=n(98),h=n(104),v=n(79),m=n(111),y=n(88),g=n(56),w=n(96),$=n(109),x=n(1),k=n(7),S=n(14),C=n(110),T=n(9),A=n(100);var _=n(103);var E=n(106),L=n(93);function M(){return/(iPad|iPhone|iPod)/.test(navigator.userAgent)}var H=n(30),R=n(4);function P(t){switch(Object(r.h)(t.match(/(git(?:hub|lab))/i)||[],1)[0].toLowerCase()){case"github":var e=Object(r.h)(t.match(/^.+github\.com\/([^\/]+)\/?([^\/]+)/i),3);return function(t,e){return Object(j.a)({url:void 0!==e?"https://api.github.com/repos/"+t+"/"+e:"https://api.github.com/users/"+t,responseType:"json"}).pipe(Object(w.a)((function(t){return 200===t.status})),Object(p.a)("response"),Object(d.a)((function(t){if(void 0!==e){var n=t.stargazers_count,r=t.forks_count;return Object(o.a)([Object(R.e)(n||0)+" Stars",Object(R.e)(r||0)+" Forks"])}var c=t.public_repos;return Object(o.a)([Object(R.e)(c||0)+" Repositories"])})))}(e[1],e[2]);case"gitlab":var n=Object(r.h)(t.match(/^.+?([^\/]*gitlab[^\/]+)\/(.+?)\/?$/i),3);return function(t,e){return Object(j.a)({url:"https://"+t+"/api/v4/projects/"+encodeURIComponent(e),responseType:"json"}).pipe(Object(w.a)((function(t){return 200===t.status})),Object(p.a)("response"),Object(T.a)((function(t){var e=t.star_count,n=t.forks_count;return[Object(R.e)(e)+" Stars",Object(R.e)(n)+" Forks"]})))}(n[1],n[2]);default:return u.a}}function U(t,e){t.setAttribute("data-md-state","lock"),t.style.top="-"+e+"px"}function q(t){var e=-1*parseInt(t.style.top,10);t.removeAttribute("data-md-state"),t.style.top="",e&&window.scrollTo(0,e)}function N(t){if(!Object(R.d)(t))throw new SyntaxError("Invalid configuration: "+JSON.stringify(t));var e=Object(x.q)(),n=Object(x.v)(),N=Object(x.w)(t.base,{location$:n}),I=Object(x.x)(),z=Object(x.A)(),V=Object(x.y)("(min-width: 960px)"),D=Object(x.y)("(min-width: 1220px)");Object(k.setupComponents)(["announce","container","header","header-title","hero","main","navigation","search","search-query","search-reset","search-result","skip","tabs","toc"],{document$:e});var B=Object(S.h)();!function(t){var e=t.document$,n=t.hash$,c=e.pipe(Object(T.a)((function(){return Object(x.e)("details")})));Object(O.a)(Object(x.y)("print").pipe(Object(w.a)(C.a)),Object(s.a)(window,"beforeprint")).pipe(Object(A.a)(c)).subscribe((function(t){var e,n;try{for(var c=Object(r.k)(t),a=c.next();!a.done;a=c.next()){a.value.setAttribute("open","")}}catch(t){e={error:t}}finally{try{a&&!a.done&&(n=c.return)&&n.call(c)}finally{if(e)throw e.error}}})),n.pipe(Object(T.a)((function(t){return Object(x.c)('[id="'+t+'"]')})),Object(w.a)((function(t){return void 0!==t})),Object(v.a)((function(t){var e=t.closest("details");e&&!e.open&&e.setAttribute("open","")}))).subscribe((function(t){return t.scrollIntoView()}))}({document$:e,hash$:I}),{document$:e}.document$.pipe(Object(_.a)(1),Object(y.a)(Object(k.useComponent)("container")),Object(T.a)((function(t){var e=Object(r.h)(t,2)[1];return Object(x.e)("script",e)}))).subscribe((function(t){var e,n;try{for(var c=Object(r.k)(t),a=c.next();!a.done;a=c.next()){var i=a.value;if(i.src||/(^|\/javascript)$/i.test(i.type)){var o=Object(x.a)("script"),u=i.src?"src":"textContent";o[u]=i[u],Object(x.j)(i,o)}}}catch(t){e={error:t}}finally{try{a&&!a.done&&(n=c.return)&&n.call(c)}finally{if(e)throw e.error}}})),function(t){t.document$.pipe(Object(T.a)((function(){return Object(x.d)(".md-source[href]")})),Object(d.a)((function(t){var e=t.href;return Object(R.a)(""+Object(R.c)(e),(function(){return P(e)}))})),Object(h.a)((function(){return u.a}))).subscribe((function(t){var e,n;try{for(var c=Object(r.k)(Object(x.e)(".md-source__repository")),a=c.next();!a.done;a=c.next()){var i=a.value;i.hasAttribute("data-md-state")||(i.setAttribute("data-md-state","done"),i.appendChild(Object(H.c)(t)))}}catch(t){e={error:t}}finally{try{a&&!a.done&&(n=c.return)&&n.call(c)}finally{if(e)throw e.error}}}))}({document$:e}),function(t){var e=t.document$,n=Object(x.a)("table");e.pipe(Object(T.a)((function(){return Object(x.e)("table:not([class])")}))).subscribe((function(t){var e,c;try{for(var a=Object(r.k)(t),i=a.next();!i.done;i=a.next()){var o=i.value;Object(x.j)(o,n),Object(x.j)(n,Object(H.d)(o))}}catch(t){e={error:t}}finally{try{i&&!i.done&&(c=a.return)&&c.call(a)}finally{if(e)throw e.error}}}))}({document$:e}),function(t){var e=t.document$.pipe(Object(T.a)((function(){return Object(x.e)("[data-md-scrollfix]")})),Object(l.a)(1));e.subscribe((function(t){var e,n;try{for(var c=Object(r.k)(t),a=c.next();!a.done;a=c.next()){a.value.removeAttribute("data-md-scrollfix")}}catch(t){e={error:t}}finally{try{a&&!a.done&&(n=c.return)&&n.call(c)}finally{if(e)throw e.error}}})),Object(E.a)(M,e,u.a).pipe(Object(d.a)((function(t){return O.a.apply(void 0,Object(r.i)(t.map((function(t){return Object(s.a)(t,"touchstart",{passive:!0}).pipe(Object(L.a)(t))}))))}))).subscribe((function(t){var e=t.scrollTop;0===e?t.scrollTop=1:e+t.offsetHeight===t.scrollHeight&&(t.scrollTop=e-1)}))}({document$:e});var Y=Object(S.f)(),J=Object(S.e)({document$:e,dialog$:Y}),K=Object(k.useComponent)("header").pipe(Object(k.mountHeader)({document$:e,viewport$:z}),Object(l.a)(1)),Q=Object(k.useComponent)("main").pipe(Object(k.mountMain)({header$:K,viewport$:z}),Object(l.a)(1)),F=Object(k.useComponent)("navigation").pipe(Object(k.mountNavigation)({header$:K,main$:Q,viewport$:z,screen$:D}),Object(l.a)(1)),W=Object(k.useComponent)("toc").pipe(Object(k.mountTableOfContents)({header$:K,main$:Q,viewport$:z,tablet$:V}),Object(l.a)(1)),X=Object(k.useComponent)("tabs").pipe(Object(k.mountTabs)({header$:K,viewport$:z,screen$:D}),Object(l.a)(1)),Z=Object(k.useComponent)("hero").pipe(Object(k.mountHero)({header$:K,viewport$:z}),Object(l.a)(1)),G=Object(a.a)((function(){var e=t.search&&t.search.index?t.search.index:void 0,n=void 0!==e?Object(i.a)(e):N.pipe(Object(d.a)((function(t){return Object(j.a)({url:t+"/search/search_index.json",responseType:"json",withCredentials:!0}).pipe(Object(p.a)("response"))})));return Object(o.a)(Object(S.i)(t.search.worker,{base$:N,index$:n}))})).pipe(Object(d.a)((function(e){var n=Object(k.useComponent)("search-query").pipe(Object(k.mountSearchQuery)(e,{transform:t.search.transform}),Object(l.a)(1)),r=Object(k.useComponent)("search-reset").pipe(Object(k.mountSearchReset)(),Object(l.a)(1)),c=Object(k.useComponent)("search-result").pipe(Object(k.mountSearchResult)(e,{query$:n}),Object(l.a)(1));return Object(k.useComponent)("search").pipe(Object(k.mountSearch)(e,{query$:n,reset$:r,result$:c}),Object(l.a)(1))})),Object(h.a)((function(){return Object(k.useComponent)("search").subscribe((function(t){return t.hidden=!0})),u.a})));I.pipe(Object(v.a)((function(){return Object(x.o)("search",!1)})),Object(m.a)(125)).subscribe((function(t){return Object(x.n)("#"+t)})),Object(b.a)([Object(x.z)("search"),V]).pipe(Object(y.a)(z),Object(d.a)((function(t){var n=Object(r.h)(t,2),c=Object(r.h)(n[0],2),a=c[0],i=c[1],o=n[1].offset.y,u=a&&!i;return e.pipe(Object(m.a)(u?400:100),Object(g.b)(f.a),Object(v.a)((function(t){var e=t.body;return u?U(e,o):q(e)})))}))).subscribe(),Object(s.a)(document.body,"click").pipe(Object(w.a)((function(t){return!(t.metaKey||t.ctrlKey)})),Object(w.a)((function(t){if(t.target instanceof HTMLElement){var e=t.target.closest("a");if(e&&Object(x.h)(e))return!0}return!1}))).subscribe((function(){Object(x.o)("drawer",!1)})),t.features.includes("instant")&&"file:"!==location.protocol&&Object(S.g)({document$:e,location$:n,viewport$:z}),B.pipe(Object(w.a)((function(t){return"global"===t.mode&&"Tab"===t.type})),Object($.a)(1)).subscribe((function(){var t,e;try{for(var n=Object(r.k)(Object(x.e)(".headerlink")),c=n.next();!c.done;c=n.next()){c.value.style.visibility="visible"}}catch(e){t={error:e}}finally{try{c&&!c.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}}));var tt={document$:e,location$:n,viewport$:z,header$:K,hero$:Z,main$:Q,navigation$:F,search$:G,tabs$:X,toc$:W,clipboard$:J,keyboard$:B,dialog$:Y};return O.a.apply(void 0,Object(r.i)(Object(c.a)(tt))).subscribe(),tt}document.documentElement.classList.remove("no-js"),document.documentElement.classList.add("js"),navigator.userAgent.match(/(iPad|iPhone|iPod)/g)&&document.documentElement.classList.add("ios")}])); +//# sourceMappingURL=bundle.193efd2f.min.js.map \ No newline at end of file diff --git a/docs/assets/javascripts/bundle.193efd2f.min.js.map b/docs/assets/javascripts/bundle.193efd2f.min.js.map new file mode 100644 index 00000000..a59b5ca4 --- /dev/null +++ b/docs/assets/javascripts/bundle.193efd2f.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/javascripts/browser/document/index.ts","webpack:///./src/assets/javascripts/browser/element/_/index.ts","webpack:///./src/assets/javascripts/browser/element/focus/index.ts","webpack:///./src/assets/javascripts/browser/element/offset/index.ts","webpack:///./src/assets/javascripts/browser/element/select/index.ts","webpack:///./src/assets/javascripts/browser/element/size/index.ts","webpack:///./src/assets/javascripts/browser/keyboard/index.ts","webpack:///./src/assets/javascripts/browser/location/_/index.ts","webpack:///./src/assets/javascripts/browser/location/base/index.ts","webpack:///./src/assets/javascripts/browser/location/hash/index.ts","webpack:///./src/assets/javascripts/browser/media/index.ts","webpack:///./src/assets/javascripts/browser/toggle/index.ts","webpack:///./src/assets/javascripts/browser/viewport/offset/index.ts","webpack:///./src/assets/javascripts/browser/viewport/size/index.ts","webpack:///./src/assets/javascripts/browser/viewport/_/index.ts","webpack:///./src/assets/javascripts/browser/worker/index.ts","webpack:///./src/assets/javascripts/utilities/config/index.ts","webpack:///./src/assets/javascripts/utilities/jsx/index.ts","webpack:///./src/assets/javascripts/utilities/rxjs/index.ts","webpack:///./src/assets/javascripts/utilities/string/index.ts","webpack:///./src/assets/javascripts/components/index.ts","webpack:///./src/assets/javascripts/integrations/clipboard/index.ts","webpack:///./src/assets/javascripts/integrations/dialog/index.ts","webpack:///./src/assets/javascripts/integrations/instant/index.ts","webpack:///./src/assets/javascripts/integrations/keyboard/index.ts","webpack:///./src/assets/javascripts/components/_/index.ts","webpack:///./src/assets/javascripts/components/toc/anchor/set/index.ts","webpack:///./src/assets/javascripts/components/shared/index.ts","webpack:///./src/assets/javascripts/templates/clipboard/index.tsx","webpack:///./src/assets/javascripts/templates/search/index.tsx","webpack:///./src/assets/javascripts/templates/source/index.tsx","webpack:///./src/assets/javascripts/templates/table/index.tsx","webpack:///./src/assets/javascripts/components/shared/sidebar/set/index.ts","webpack:///./src/assets/javascripts/components/toc/anchor/index.ts","webpack:///./src/assets/javascripts/integrations/search/_/index.ts","webpack:///./src/assets/javascripts/integrations/search/document/index.ts","webpack:///./src/assets/javascripts/integrations/search/highlighter/index.ts","webpack:///./src/assets/javascripts/integrations/search/transform/index.ts","webpack:///./src/assets/javascripts/integrations/search/worker/message/index.ts","webpack:///./src/assets/javascripts/integrations/search/worker/_/index.ts","webpack:///./src/assets/javascripts/components/shared/sidebar/index.ts","webpack:///./src/assets/javascripts/components/shared/sidebar/react/index.ts","webpack:///./src/assets/javascripts/components/toc/index.ts","webpack:///./src/assets/javascripts/components/toc/_/index.ts","webpack:///./src/assets/javascripts/components/toc/anchor/react/index.ts","webpack:///./src/assets/javascripts/components/search/_/index.ts","webpack:///./src/assets/javascripts/components/search/query/_/index.ts","webpack:///./src/assets/javascripts/components/search/query/react/index.ts","webpack:///./src/assets/javascripts/components/search/reset/_/index.ts","webpack:///./src/assets/javascripts/components/search/reset/react/index.ts","webpack:///./src/assets/javascripts/components/search/result/set/index.ts","webpack:///./src/assets/javascripts/components/search/result/react/index.ts","webpack:///./src/assets/javascripts/components/search/result/_/index.ts","webpack:///./src/assets/javascripts/components/header/_/index.ts","webpack:///./src/assets/javascripts/components/header/react/index.ts","webpack:///./src/assets/javascripts/components/header/set/index.ts","webpack:///./src/assets/javascripts/components/hero/_/index.ts","webpack:///./src/assets/javascripts/components/hero/react/index.ts","webpack:///./src/assets/javascripts/components/hero/set/index.ts","webpack:///./src/assets/javascripts/components/main/_/index.ts","webpack:///./src/assets/javascripts/components/main/react/index.ts","webpack:///./src/assets/javascripts/components/main/set/index.ts","webpack:///./src/assets/javascripts/components/tabs/_/index.ts","webpack:///./src/assets/javascripts/components/tabs/react/index.ts","webpack:///./src/assets/javascripts/components/tabs/set/index.ts","webpack:///./src/assets/javascripts/components/navigation/_/index.ts","webpack:///./src/assets/javascripts/patches/scrollfix/index.ts","webpack:///./src/assets/javascripts/patches/source/index.ts","webpack:///./src/assets/javascripts/patches/source/github/index.ts","webpack:///./src/assets/javascripts/patches/source/gitlab/index.ts","webpack:///./src/assets/javascripts/index.ts","webpack:///./src/assets/javascripts/patches/details/index.ts","webpack:///./src/assets/javascripts/patches/script/index.ts","webpack:///./src/assets/javascripts/patches/table/index.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","0","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","watchDocument","document$","ReplaySubject","fromEvent","document","pipe","mapTo","subscribe","getElement","selector","node","querySelector","undefined","getElementOrThrow","el","ReferenceError","getActiveElement","activeElement","HTMLElement","getElements","Array","from","querySelectorAll","createElement","tagName","replaceElement","source","target","replaceWith","setElementFocus","focus","blur","watchElementFocus","merge","map","type","startWith","shareReplay","getElementOffset","x","scrollLeft","y","scrollTop","watchElementOffset","setElementSelection","HTMLInputElement","Error","select","watchElementSize","fromEventPattern","next","contentRect","width","Math","round","height","observe","offsetWidth","offsetHeight","getElementSize","isSusceptibleToKeyboard","isContentEditable","watchKeyboard","filter","ev","metaKey","ctrlKey","claim","preventDefault","stopPropagation","share","setLocation","url","location","href","isLocalLocation","ref","host","test","pathname","isAnchorLocation","hash","watchLocation","BehaviorSubject","URL","watchLocationBase","base","location$","take","toString","replace","getLocationHash","substring","setLocationHash","addEventListener","click","watchLocationHash","watchMedia","query","media","matchMedia","addListener","matches","toggles","drawer","search","getToggle","checked","setToggle","watchToggle","getViewportOffset","max","pageXOffset","pageYOffset","setViewportOffset","scrollTo","getViewportSize","innerWidth","innerHeight","watchViewport","combineLatest","passive","offset","size","watchViewportAt","header$","viewport$","size$","distinctUntilKeyChanged","offset$","offsetLeft","offsetTop","watchWorker","worker","tx$","rx$","pluck","throttle","leading","trailing","tap","message","postMessage","switchMapTo","isConfig","config","features","createElementNS","setAttribute","setAttributeNS","appendChild","child","innerHTML","Node","isArray","h","attributes","keys","attr","children","cache","factory","defer","sessionStorage","getItem","of","JSON","parse","value$","setItem","stringify","err","lang","translate","textContent","truncate","toFixed","len","charCodeAt","setupClipboard","dialog$","forEach","block","index","parent","parentElement","id","insertBefore","clipboard$","on","clearSelection","setupDialog","duration","Subject","dialog","classList","add","switchMap","text","body","container","observeOn","animationFrame","delay","removeAttribute","remove","setupInstantLoading","history","scrollRestoration","favicon","state$","closest","push$","pop$","state","distinctUntilChanged","prev","ajax$","skip","ajax","responseType","withCredentials","catchError","sample","pushState","dom","DOMParser","response","parseFromString","instant$","withLatestFrom","title","head","dispatchEvent","CustomEvent","debounceTime","replaceState","bufferCount","setupKeyboard","keyboard$","active","els","indexOf","components$","setupComponents","names","reduce","components","useComponent","setAnchorBlur","resetAnchorBlur","setAnchorActive","toggle","resetAnchorActive","css","renderClipboardButton","class","xmlns","viewBox","renderSearchResult","article","sections","icon","tabIndex","renderSource","facts","fact","renderTable","table","setSidebarOffset","style","top","resetSidebarOffset","setSidebarHeight","resetSidebarHeight","docs","pipeline","this","documents","Map","doc","path","linked","set","setupSearchDocumentMap","highlight","separator","RegExp","_","term","trim","match","setupSearchHighlighter","lunr","reset","fn","use","multiLanguage","field","boost","Index","load","groups","results","section","console","warn","defaultTransform","SearchMessageType","isSearchReadyMessage","READY","isSearchQueryMessage","QUERY","isSearchResultMessage","RESULT","setupSearchIndex","split","identity","setupSearchWorker","index$","base$","Worker","SETUP","watchSidebar","main$","adjust","min","lock","a","b","applySidebar","mountTableOfContents","tablet$","tablet","sidebar$","anchors$","sidebar","anchors","watchAnchorList","decodeURIComponent","adjust$","header","anchor","pop","applyAnchorList","mountSearch","query$","reset$","result$","status$","status","mountSearchQuery","options","transform","focus$","watchSearchQuery","mountSearchReset","watchSearchReset","addToSearchResultList","applySearchResult","ready$","fetch$","list","meta","setSearchResultMeta","resetSearchResultMeta","scan","scrollHeight","finalize","resetSearchResultList","mountSearchResult","mountHeader","styles","getComputedStyle","includes","position","sticky","watchHeader","type$","main","hx","setHeaderTitleActive","resetHeaderTitleActive","applyHeaderType","mountHero","hidden","setHeroHidden","resetHeroHidden","applyHero","mountMain","setHeaderShadow","resetHeaderShadow","border$","bottom","watchMain","mountTabs","screen$","screen","setTabsHidden","resetTabsHidden","applyTabs","mountNavigation","isAppleDevice","navigator","userAgent","fetchSourceFacts","toLowerCase","user","repo","stargazers_count","forks_count","public_repos","fetchSourceFactsFromGitHub","project","encodeURIComponent","star_count","fetchSourceFactsFromGitLab","setScrollLock","resetScrollLock","parseInt","initialize","SyntaxError","hash$","els$","details","open","scrollIntoView","patchDetails","src","script","hasAttribute","patchSource","sentinel","patchTables","iif","patchScrollfix","navigation$","toc$","tabs$","hero$","search$","protocol","visibility","values","documentElement"],"mappings":"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","file":"assets/javascripts/bundle.193efd2f.min.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([85,1]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { ReplaySubject, Subject, fromEvent } from \"rxjs\"\nimport { mapTo } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch document\n *\n * Documents must be implemented as subjects, so all downstream observables are\n * automatically updated when a new document is emitted. This enabled features\n * like instant loading.\n *\n * @return Document subject\n */\nexport function watchDocument(): Subject {\n const document$ = new ReplaySubject()\n fromEvent(document, \"DOMContentLoaded\")\n .pipe(\n mapTo(document)\n )\n .subscribe(document$)\n\n /* Return document */\n return document$\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve an element matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @return Element or nothing\n */\nexport function getElement(\n selector: string, node: ParentNode = document\n): T | undefined {\n return node.querySelector(selector) || undefined\n}\n\n/**\n * Retrieve an element matching a query selector or throw a reference error\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @return Element\n */\nexport function getElementOrThrow(\n selector: string, node: ParentNode = document\n): T {\n const el = getElement(selector, node)\n if (typeof el === \"undefined\")\n throw new ReferenceError(\n `Missing element: expected \"${selector}\" to be present`\n )\n return el\n}\n\n/**\n * Retrieve the currently active element\n *\n * @return Element or nothing\n */\nexport function getActiveElement(): HTMLElement | undefined {\n return document.activeElement instanceof HTMLElement\n ? document.activeElement\n : undefined\n}\n\n/**\n * Retrieve all elements matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @return Elements\n */\nexport function getElements(\n selector: string, node: ParentNode = document\n): T[] {\n return Array.from(node.querySelectorAll(selector))\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Create an element\n *\n * @template T - Tag name type\n *\n * @param tagName - Tag name\n *\n * @return Element\n */\nexport function createElement<\n T extends keyof HTMLElementTagNameMap\n>(tagName: T): HTMLElementTagNameMap[T] {\n return document.createElement(tagName)\n}\n\n/**\n * Replace an element with another element\n *\n * @param source - Source element\n * @param target - Target element\n */\nexport function replaceElement(\n source: HTMLElement, target: Node\n): void {\n source.replaceWith(target)\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent, merge } from \"rxjs\"\nimport { map, shareReplay, startWith } from \"rxjs/operators\"\n\nimport { getActiveElement } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set element focus\n *\n * @param el - Element\n * @param value - Whether the element should be focused\n */\nexport function setElementFocus(\nel: HTMLElement, value: boolean = true\n): void {\n if (value)\n el.focus()\n else\n el.blur()\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element focus\n *\n * @param el - Element\n *\n * @return Element focus observable\n */\nexport function watchElementFocus(\n el: HTMLElement\n): Observable {\n return merge(\n fromEvent(el, \"focus\"),\n fromEvent(el, \"blur\")\n )\n .pipe(\n map(({ type }) => type === \"focus\"),\n startWith(el === getActiveElement()),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent, merge } from \"rxjs\"\nimport { map, shareReplay, startWith } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Element offset\n */\nexport interface ElementOffset {\n x: number /* Horizontal offset */\n y: number /* Vertical offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve element offset\n *\n * @param el - Element\n *\n * @return Element offset\n */\nexport function getElementOffset(el: HTMLElement): ElementOffset {\n return {\n x: el.scrollLeft,\n y: el.scrollTop\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element offset\n *\n * @param el - Element\n *\n * @return Element offset observable\n */\nexport function watchElementOffset(\n el: HTMLElement\n): Observable {\n return merge(\n fromEvent(el, \"scroll\"),\n fromEvent(window, \"resize\")\n )\n .pipe(\n map(() => getElementOffset(el)),\n startWith(getElementOffset(el)),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set element text selection\n *\n * @param el - Element\n */\nexport function setElementSelection(\n el: HTMLElement\n): void {\n if (el instanceof HTMLInputElement)\n el.select()\n else\n throw new Error(\"Not implemented\")\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport ResizeObserver from \"resize-observer-polyfill\"\nimport { Observable, fromEventPattern } from \"rxjs\"\nimport { shareReplay, startWith } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Element offset\n */\nexport interface ElementSize {\n width: number /* Element width */\n height: number /* Element height */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve element size\n *\n * @param el - Element\n *\n * @return Element size\n */\nexport function getElementSize(el: HTMLElement): ElementSize {\n return {\n width: el.offsetWidth,\n height: el.offsetHeight\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element size\n *\n * @param el - Element\n *\n * @return Element size observable\n */\nexport function watchElementSize(\n el: HTMLElement\n): Observable {\n return fromEventPattern(next => {\n new ResizeObserver(([{ contentRect }]) => next({\n width: Math.round(contentRect.width),\n height: Math.round(contentRect.height)\n }))\n .observe(el)\n })\n .pipe(\n startWith(getElementSize(el)),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent } from \"rxjs\"\nimport { filter, map, share } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Key\n */\nexport interface Key {\n type: string /* Key type */\n claim(): void /* Key claim */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Check whether an element may receive keyboard input\n *\n * @param el - Element\n *\n * @return Test result\n */\nexport function isSusceptibleToKeyboard(el: HTMLElement): boolean {\n switch (el.tagName) {\n\n /* Form elements */\n case \"INPUT\":\n case \"SELECT\":\n case \"TEXTAREA\":\n return true\n\n /* Everything else */\n default:\n return el.isContentEditable\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch keyboard\n *\n * @return Keyboard observable\n */\nexport function watchKeyboard(): Observable {\n return fromEvent(window, \"keydown\")\n .pipe(\n filter(ev => !(ev.metaKey || ev.ctrlKey)),\n map(ev => ({\n type: ev.key,\n claim() {\n ev.preventDefault()\n ev.stopPropagation()\n }\n })),\n share()\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { BehaviorSubject, Subject } from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve location\n *\n * This function will return a `URL` object (and not `Location`) in order to\n * normalize typings across the application. Furthermore, locations need to be\n * tracked without setting them and `Location` is a singleton which represents\n * the current location.\n *\n * @return URL\n */\nexport function getLocation(): URL {\n return new URL(location.href)\n}\n\n/**\n * Set location\n *\n * @param url - URL to change to\n */\nexport function setLocation(url: URL): void {\n location.href = url.href\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Check whether a URL is a local link or a file (except `.html`)\n *\n * @param url - URL or HTML anchor element\n * @param ref - Reference URL\n *\n * @return Test result\n */\nexport function isLocalLocation(\n url: URL | HTMLAnchorElement,\n ref: URL | Location = location\n): boolean {\n return url.host === ref.host\n && /^(?:\\/[\\w-]+)*(?:\\/?|\\.html)$/i.test(url.pathname)\n}\n\n/**\n * Check whether a URL is an anchor link on the current page\n *\n * @param url - URL or HTML anchor element\n * @param ref - Reference URL\n *\n * @return Test result\n */\nexport function isAnchorLocation(\n url: URL | HTMLAnchorElement,\n ref: URL | Location = location\n): boolean {\n return url.pathname === ref.pathname\n && url.hash.length > 0\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch location\n *\n * @return Location subject\n */\nexport function watchLocation(): Subject {\n return new BehaviorSubject(getLocation())\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable } from \"rxjs\"\nimport { map, shareReplay, take } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n location$: Observable /* Location observable */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch location base\n *\n * @return Location base observable\n */\nexport function watchLocationBase(\n base: string, { location$ }: WatchOptions\n): Observable {\n return location$\n .pipe(\n take(1),\n map(({ href }) => new URL(base, href)\n .toString()\n .replace(/\\/$/, \"\")\n ),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent } from \"rxjs\"\nimport { filter, map, share, startWith } from \"rxjs/operators\"\n\nimport { createElement } from \"browser\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve location hash\n *\n * @return Location hash\n */\nexport function getLocationHash(): string {\n return location.hash.substring(1)\n}\n\n/**\n * Set location hash\n *\n * Setting a new fragment identifier via `location.hash` will have no effect\n * if the value doesn't change. When a new fragment identifier is set, we want\n * the browser to target the respective element at all times, which is why we\n * use this dirty little trick.\n *\n * @param hash - Location hash\n */\nexport function setLocationHash(hash: string): void {\n const el = createElement(\"a\")\n el.href = hash\n el.addEventListener(\"click\", ev => ev.stopPropagation())\n el.click()\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch location hash\n *\n * @return Location hash observable\n */\nexport function watchLocationHash(): Observable {\n return fromEvent(window, \"hashchange\")\n .pipe(\n map(getLocationHash),\n startWith(getLocationHash()),\n filter(hash => hash.length > 0),\n share()\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEventPattern } from \"rxjs\"\nimport { shareReplay, startWith } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch media query\n *\n * @param query - Media query\n *\n * @return Media observable\n */\nexport function watchMedia(query: string): Observable {\n const media = matchMedia(query)\n return fromEventPattern(next =>\n media.addListener(() => next(media.matches))\n )\n .pipe(\n startWith(media.matches),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent } from \"rxjs\"\nimport { map, startWith } from \"rxjs/operators\"\n\nimport { getElementOrThrow } from \"../element\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Toggle\n */\nexport type Toggle =\n | \"drawer\" /* Toggle for drawer */\n | \"search\" /* Toggle for search */\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Toggle map\n */\nconst toggles: Record = {\n drawer: getElementOrThrow(`[data-md-toggle=drawer]`),\n search: getElementOrThrow(`[data-md-toggle=search]`)\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve the value of a toggle\n *\n * @param name - Toggle\n *\n * @return Toggle value\n */\nexport function getToggle(name: Toggle): boolean {\n return toggles[name].checked\n}\n\n/**\n * Set toggle\n *\n * Simulating a click event seems to be the most cross-browser compatible way\n * of changing the value while also emitting a `change` event. Before, Material\n * used `CustomEvent` to programmatically change the value of a toggle, but this\n * is a much simpler and cleaner solution which doesn't require a polyfill.\n *\n * @param name - Toggle\n * @param value - Toggle value\n */\nexport function setToggle(name: Toggle, value: boolean): void {\n if (toggles[name].checked !== value)\n toggles[name].click()\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch toggle\n *\n * @param name - Toggle\n *\n * @return Toggle value observable\n */\nexport function watchToggle(name: Toggle): Observable {\n const el = toggles[name]\n return fromEvent(el, \"change\")\n .pipe(\n map(() => el.checked),\n startWith(el.checked)\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent, merge } from \"rxjs\"\nimport { map, startWith } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Viewport offset\n */\nexport interface ViewportOffset {\n x: number /* Horizontal offset */\n y: number /* Vertical offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve viewport offset\n *\n * On iOS Safari, viewport offset can be negative due to overflow scrolling.\n * As this may induce strange behaviors downstream, we'll just limit it to 0.\n *\n * @return Viewport offset\n */\nexport function getViewportOffset(): ViewportOffset {\n return {\n x: Math.max(0, pageXOffset),\n y: Math.max(0, pageYOffset)\n }\n}\n\n/**\n * Set viewport offset\n *\n * @param offset - Viewport offset\n */\nexport function setViewportOffset(\n { x, y }: Partial\n): void {\n window.scrollTo(x || 0, y || 0)\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport offset\n *\n * @return Viewport offset observable\n */\nexport function watchViewportOffset(): Observable {\n return merge(\n fromEvent(window, \"scroll\", { passive: true }),\n fromEvent(window, \"resize\", { passive: true })\n )\n .pipe(\n map(getViewportOffset),\n startWith(getViewportOffset())\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent } from \"rxjs\"\nimport { map, startWith } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Viewport size\n */\nexport interface ViewportSize {\n width: number /* Viewport width */\n height: number /* Viewport height */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve viewport size\n *\n * @return Viewport size\n */\nexport function getViewportSize(): ViewportSize {\n return {\n width: innerWidth,\n height: innerHeight\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport size\n *\n * @return Viewport size observable\n */\nexport function watchViewportSize(): Observable {\n return fromEvent(window, \"resize\", { passive: true })\n .pipe(\n map(getViewportSize),\n startWith(getViewportSize())\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, combineLatest } from \"rxjs\"\nimport {\n distinctUntilKeyChanged,\n map,\n shareReplay\n} from \"rxjs/operators\"\n\nimport { Header } from \"components\"\n\nimport {\n ViewportOffset,\n watchViewportOffset\n} from \"../offset\"\nimport {\n ViewportSize,\n watchViewportSize\n} from \"../size\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Viewport\n */\nexport interface Viewport {\n offset: ViewportOffset /* Viewport offset */\n size: ViewportSize /* Viewport size */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch at options\n */\ninterface WatchAtOptions {\n header$: Observable
    /* Header observable */\n viewport$: Observable /* Viewport observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport\n *\n * @return Viewport observable\n */\nexport function watchViewport(): Observable {\n return combineLatest([\n watchViewportOffset(),\n watchViewportSize()\n ])\n .pipe(\n map(([offset, size]) => ({ offset, size })),\n shareReplay(1)\n )\n}\n\n/**\n * Watch viewport relative to element\n *\n * @param el - Element\n * @param options - Options\n *\n * @return Viewport observable\n */\nexport function watchViewportAt(\n el: HTMLElement, { header$, viewport$ }: WatchAtOptions\n): Observable {\n const size$ = viewport$\n .pipe(\n distinctUntilKeyChanged(\"size\")\n )\n\n /* Compute element offset */\n const offset$ = combineLatest([size$, header$])\n .pipe(\n map((): ViewportOffset => ({\n x: el.offsetLeft,\n y: el.offsetTop\n }))\n )\n\n /* Compute relative viewport, return hot observable */\n return combineLatest([header$, viewport$, offset$])\n .pipe(\n map(([{ height }, { offset, size }, { x, y }]) => ({\n offset: {\n x: offset.x - x,\n y: offset.y - y + height\n },\n size\n })),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, Subject, fromEventPattern } from \"rxjs\"\nimport {\n pluck,\n share,\n switchMapTo,\n tap,\n throttle\n} from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Worker message\n */\nexport interface WorkerMessage {\n type: unknown /* Message type */\n data?: unknown /* Message data */\n}\n\n/**\n * Worker handler\n *\n * @template T - Message type\n */\nexport interface WorkerHandler<\n T extends WorkerMessage\n> {\n tx$: Subject /* Message transmission subject */\n rx$: Observable /* Message receive observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n *\n * @template T - Worker message type\n */\ninterface WatchOptions {\n tx$: Observable /* Message transmission observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch a web worker\n *\n * This function returns an observable that will send all values emitted by the\n * message observable to the web worker. Web worker communication is expected\n * to be bidirectional (request-response) and synchronous. Messages that are\n * emitted during a pending request are throttled, the last one is emitted.\n *\n * @param worker - Web worker\n * @param options - Options\n *\n * @return Worker message observable\n */\nexport function watchWorker(\n worker: Worker, { tx$ }: WatchOptions\n): Observable {\n\n /* Intercept messages from worker-like objects */\n const rx$ = fromEventPattern(next =>\n worker.addEventListener(\"message\", next)\n )\n .pipe(\n pluck(\"data\")\n )\n\n /* Send and receive messages, return hot observable */\n return tx$\n .pipe(\n throttle(() => rx$, { leading: true, trailing: true }),\n tap(message => worker.postMessage(message)),\n switchMapTo(rx$),\n share()\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SearchIndex, SearchTransformFn } from \"integrations\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Feature flags\n */\nexport type Feature =\n | \"tabs\" /* Tabs navigation */\n | \"instant\" /* Instant loading\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Configuration\n */\nexport interface Config {\n base: string /* Base URL */\n features: Feature[] /* Feature flags */\n search: {\n worker: string /* Worker URL */\n index?: Promise /* Promise resolving with index */\n transform?: SearchTransformFn /* Transformation function */\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Ensure that the given value is a valid configuration\n *\n * We could use `jsonschema` or any other schema validation framework, but that\n * would just add more bloat to the bundle, so we'll keep it plain and simple.\n *\n * @param config - Configuration\n *\n * @return Test result\n */\nexport function isConfig(config: any): config is Config {\n return typeof config === \"object\"\n && typeof config.base === \"string\"\n && typeof config.features === \"object\"\n && typeof config.search === \"object\"\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n// tslint:disable no-null-keyword\n\nimport { JSX as JSXInternal } from \"preact\"\nimport { keys } from \"ramda\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * HTML and SVG attributes\n */\ntype Attributes =\n & JSXInternal.HTMLAttributes\n & JSXInternal.SVGAttributes\n & Record\n\n/**\n * Child element\n */\ntype Child =\n | HTMLElement\n | SVGElement\n | Text\n | string\n | number\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create an element\n *\n * @param tagName - HTML or SVG tag\n *\n * @return Element\n */\nfunction createElement(tagName: string): HTMLElement | SVGElement {\n switch (tagName) {\n\n /* SVG elements */\n case \"svg\":\n case \"path\":\n return document.createElementNS(\"http://www.w3.org/2000/svg\", tagName)\n\n /* HTML elements */\n default:\n return document.createElement(tagName)\n }\n}\n\n/**\n * Set an attribute\n *\n * @param el - Element\n * @param name - Attribute name\n * @param value - Attribute value\n */\nfunction setAttribute(\n el: HTMLElement | SVGElement, name: string, value: string) {\n switch (name) {\n\n /* Attributes to be ignored */\n case \"xmlns\":\n break\n\n /* Attributes of SVG elements */\n case \"viewBox\":\n case \"d\":\n if (typeof value !== \"boolean\")\n el.setAttributeNS(null, name, value)\n else if (value)\n el.setAttributeNS(null, name, \"\")\n break\n\n /* Attributes of HTML elements */\n default:\n if (typeof value !== \"boolean\")\n el.setAttribute(name, value)\n else if (value)\n el.setAttribute(name, \"\")\n }\n}\n\n/**\n * Append a child node to an element\n *\n * @param el - Element\n * @param child - Child node(s)\n */\nfunction appendChild(\n el: HTMLElement | SVGElement, child: Child | Child[]\n): void {\n\n /* Handle primitive types (including raw HTML) */\n if (typeof child === \"string\" || typeof child === \"number\") {\n el.innerHTML += child.toString()\n\n /* Handle nodes */\n } else if (child instanceof Node) {\n el.appendChild(child)\n\n /* Handle nested children */\n } else if (Array.isArray(child)) {\n for (const node of child)\n appendChild(el, node)\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * JSX factory\n *\n * @param tagName - HTML or SVG tag\n * @param attributes - HTML attributes\n * @param children - Child elements\n *\n * @return Element\n */\nexport function h(\n tagName: string, attributes: Attributes | null, ...children: Child[]\n): HTMLElement | SVGElement {\n const el = createElement(tagName)\n\n /* Set attributes, if any */\n if (attributes)\n for (const attr of keys(attributes))\n setAttribute(el, attr, attributes[attr])\n\n /* Append child nodes */\n for (const child of children)\n appendChild(el, child)\n\n /* Return element */\n return el\n}\n\n/* ----------------------------------------------------------------------------\n * Namespace\n * ------------------------------------------------------------------------- */\n\nexport declare namespace h {\n namespace JSX {\n type Element = HTMLElement | SVGElement\n type IntrinsicElements = JSXInternal.IntrinsicElements\n }\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, defer, of } from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Cache the last value emitted by an observable in session storage\n *\n * If the key is not found in session storage, the factory is executed and the\n * latest value emitted will automatically be persisted to sessions storage.\n * Note that the values emitted by the returned observable must be serializable\n * as `JSON`, or data will be lost.\n *\n * @template T - Value type\n *\n * @param key - Cache key\n * @param factory - Observable factory\n *\n * @return Value observable\n */\nexport function cache(\n key: string, factory: () => Observable\n): Observable {\n return defer(() => {\n const data = sessionStorage.getItem(key)\n if (data) {\n return of(JSON.parse(data) as T)\n\n /* Retrieve value from observable factory and write to storage */\n } else {\n const value$ = factory()\n value$.subscribe(value => {\n try {\n sessionStorage.setItem(key, JSON.stringify(value))\n } catch (err) {\n /* Uncritical, just swallow */\n }\n })\n\n /* Return value */\n return value$\n }\n })\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { getElementOrThrow } from \"browser\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Translation keys\n */\ntype TranslateKey =\n | \"clipboard.copy\" /* Copy to clipboard */\n | \"clipboard.copied\" /* Copied to clipboard */\n | \"search.config.lang\" /* Search language */\n | \"search.config.pipeline\" /* Search pipeline */\n | \"search.config.separator\" /* Search separator */\n | \"search.result.placeholder\" /* Type to start searching */\n | \"search.result.none\" /* No matching documents */\n | \"search.result.one\" /* 1 matching document */\n | \"search.result.other\" /* # matching documents */\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Translations\n */\nlet lang: Record\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Translate the given key\n *\n * @param key - Key to be translated\n * @param value - Value to be replaced\n *\n * @return Translation\n */\nexport function translate(key: TranslateKey, value?: string): string {\n if (typeof lang === \"undefined\") {\n const el = getElementOrThrow(\"#__lang\")\n lang = JSON.parse(el.textContent!)\n }\n if (typeof lang[key] === \"undefined\") {\n throw new ReferenceError(`Invalid translation: ${key}`)\n }\n return typeof value !== \"undefined\"\n ? lang[key].replace(\"#\", value)\n : lang[key]\n}\n\n/**\n * Truncate a string after the given number of characters\n *\n * This is not a very reasonable approach, since the summaries kind of suck.\n * It would be better to create something more intelligent, highlighting the\n * search occurrences and making a better summary out of it, but this note was\n * written three years ago, so who knows if we'll ever fix it.\n *\n * @param value - Value to be truncated\n * @param n - Number of characters\n *\n * @return Truncated value\n */\nexport function truncate(value: string, n: number): string {\n let i = n\n if (value.length > i) {\n while (value[i] !== \" \" && --i > 0); // tslint:disable-line\n return `${value.substring(0, i)}...`\n }\n return value\n}\n\n/**\n * Round a number for display with source facts\n *\n * This is a reverse engineered version of GitHub's weird rounding algorithm\n * for stars, forks and all other numbers. While all numbers below `1,000` are\n * returned as-is, bigger numbers are converted to fixed numbers:\n *\n * - `1,049` => `1k`\n * - `1,050` => `1.1k`\n * - `1,949` => `1.9k`\n * - `1,950` => `2k`\n *\n * @param value - Original value\n *\n * @return Rounded value\n */\nexport function round(value: number): string {\n if (value > 999) {\n const digits = +((value - 950) % 1000 > 99)\n return `${((value + 0.000001) / 1000).toFixed(digits)}k`\n } else {\n return value.toString()\n }\n}\n\n/**\n * Simple hash function\n *\n * @see https://bit.ly/2wsVjJ4 - Original source\n *\n * @param value - Value to be hashed\n *\n * @return Hash as 32bit integer\n */\nexport function hash(value: string): number {\n let h = 0\n for (let i = 0, len = value.length; i < len; i++) {\n h = ((h << 5) - h) + value.charCodeAt(i)\n h |= 0 // Convert to 32bit integer\n }\n return h\n }\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nexport * from \"./_\"\nexport * from \"./header\"\nexport * from \"./hero\"\nexport * from \"./main\"\nexport * from \"./navigation\"\nexport * from \"./search\"\nexport * from \"./shared\"\nexport * from \"./tabs\"\nexport * from \"./toc\"\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport * as ClipboardJS from \"clipboard\"\nimport { NEVER, Observable, Subject, fromEventPattern } from \"rxjs\"\nimport { mapTo, share, tap } from \"rxjs/operators\"\n\nimport { getElements } from \"browser\"\nimport { renderClipboardButton } from \"templates\"\nimport { translate } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Setup options\n */\ninterface SetupOptions {\n document$: Observable /* Document observable */\n dialog$: Subject /* Dialog subject */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up clipboard\n *\n * This function implements the Clipboard.js integration and injects a button\n * into all code blocks when the document changes.\n *\n * @param options - Options\n *\n * @return Clipboard observable\n */\nexport function setupClipboard(\n { document$, dialog$ }: SetupOptions\n): Observable {\n if (!ClipboardJS.isSupported())\n return NEVER\n\n /* Inject 'copy-to-clipboard' buttons */\n document$.subscribe(() => {\n const blocks = getElements(\"pre > code\")\n blocks.forEach((block, index) => {\n const parent = block.parentElement!\n parent.id = `__code_${index}`\n parent.insertBefore(renderClipboardButton(parent.id), block)\n })\n })\n\n /* Initialize clipboard */\n const clipboard$ = fromEventPattern(next => {\n new ClipboardJS(\".md-clipboard\").on(\"success\", next)\n })\n .pipe(\n share()\n )\n\n /* Display notification for clipboard event */\n clipboard$\n .pipe(\n tap(ev => ev.clearSelection()),\n mapTo(translate(\"clipboard.copied\"))\n )\n .subscribe(dialog$)\n\n /* Return clipboard */\n return clipboard$\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Subject, animationFrameScheduler, of } from \"rxjs\"\nimport {\n delay,\n map,\n observeOn,\n switchMap,\n tap\n} from \"rxjs/operators\"\n\nimport { createElement } from \"browser\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Setup options\n */\ninterface SetupOptions {\n duration?: number /* Display duration (default: 2s) */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up dialog\n *\n * @param options - Options\n *\n * @return Dialog observable\n */\nexport function setupDialog(\n { duration }: SetupOptions = {}\n): Subject {\n const dialog$ = new Subject()\n\n /* Create dialog */\n const dialog = createElement(\"div\") // TODO: improve scoping\n dialog.classList.add(\"md-dialog\", \"md-typeset\")\n\n /* Display dialog */\n dialog$\n .pipe(\n switchMap(text => of(document.body) // useComponent(\"container\")\n .pipe(\n map(container => container.appendChild(dialog)),\n observeOn(animationFrameScheduler),\n delay(1), // Strangley it doesnt work when we push things to the new animation frame...\n tap(el => {\n el.innerHTML = text\n el.setAttribute(\"data-md-state\", \"open\")\n }),\n delay(duration || 2000),\n tap(el => el.removeAttribute(\"data-md-state\")),\n delay(400),\n tap(el => {\n el.innerHTML = \"\"\n el.remove()\n })\n )\n )\n )\n .subscribe()\n\n /* Return dialog */\n return dialog$\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { NEVER, Observable, Subject, fromEvent, merge, of } from \"rxjs\"\nimport { ajax } from \"rxjs//ajax\"\nimport {\n bufferCount,\n catchError,\n debounceTime,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n filter,\n map,\n pluck,\n sample,\n share,\n skip,\n switchMap,\n withLatestFrom\n} from \"rxjs/operators\"\n\nimport {\n Viewport,\n ViewportOffset,\n getElement,\n isAnchorLocation,\n isLocalLocation,\n replaceElement,\n setLocation,\n setLocationHash,\n setToggle,\n setViewportOffset\n} from \"browser\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * History state\n */\ninterface State {\n url: URL /* State URL */\n offset?: ViewportOffset /* State viewport offset */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Setup options\n */\ninterface SetupOptions {\n document$: Subject /* Document subject */\n location$: Subject /* Location subject */\n viewport$: Observable /* Viewport observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up instant loading\n *\n * When fetching, theoretically, we could use `responseType: \"document\"`, but\n * since all MkDocs links are relative, we need to make sure that the current\n * location matches the document we just loaded. Otherwise any relative links\n * in the document could use the old location.\n *\n * This is the reason why we need to synchronize history events and the process\n * of fetching the document for navigation changes (except `popstate` events):\n *\n * 1. Fetch document via `XMLHTTPRequest`\n * 2. Set new location via `history.pushState`\n * 3. Parse and emit fetched document\n *\n * For `popstate` events, we must not use `history.pushState`, or the forward\n * history will be irreversibly overwritten. In case the request fails, the\n * location change is dispatched regularly.\n *\n * @param options - Options\n */\nexport function setupInstantLoading(\n { document$, viewport$, location$ }: SetupOptions\n): void {\n\n /* Disable automatic scroll restoration */\n if (\"scrollRestoration\" in history)\n history.scrollRestoration = \"manual\"\n\n /* Hack: ensure that reloads restore viewport offset */\n fromEvent(window, \"beforeunload\")\n .subscribe(() => {\n history.scrollRestoration = \"auto\"\n })\n\n /* Hack: ensure absolute favicon link to omit 404s on document switch */\n const favicon = getElement(`link[rel=\"shortcut icon\"]`)\n if (typeof favicon !== \"undefined\")\n favicon.href = favicon.href // tslint:disable-line no-self-assignment\n\n /* Intercept link clicks and convert to state change */\n const state$ = fromEvent(document.body, \"click\")\n .pipe(\n filter(ev => !(ev.metaKey || ev.ctrlKey)),\n switchMap(ev => {\n if (ev.target instanceof HTMLElement) {\n const el = ev.target.closest(\"a\")\n if (el && !el.target && isLocalLocation(el)) {\n if (!isAnchorLocation(el))\n ev.preventDefault()\n return of(el)\n }\n }\n return NEVER\n }),\n map(el => ({ url: new URL(el.href) })),\n share()\n )\n\n /* Always close search on link click */\n state$.subscribe(() => {\n setToggle(\"search\", false)\n })\n\n /* Filter state changes to dispatch */\n const push$ = state$\n .pipe(\n filter(({ url }) => !isAnchorLocation(url)),\n share()\n )\n\n /* Intercept popstate events (history back and forward) */\n const pop$ = fromEvent(window, \"popstate\")\n .pipe(\n filter(ev => ev.state !== null),\n map(ev => ({\n url: new URL(location.href),\n offset: ev.state\n })),\n share()\n )\n\n /* Emit location change */\n merge(push$, pop$)\n .pipe(\n distinctUntilChanged((prev, next) => prev.url.href === next.url.href),\n pluck(\"url\")\n )\n .subscribe(location$)\n\n /* Fetch document on location change */\n const ajax$ = location$\n .pipe(\n distinctUntilKeyChanged(\"pathname\"),\n skip(1),\n switchMap(url => ajax({\n url: url.href,\n responseType: \"text\",\n withCredentials: true\n })\n .pipe(\n catchError(() => {\n setLocation(url)\n return NEVER\n })\n )\n )\n )\n\n /* Set new location as soon as the document was fetched */\n push$\n .pipe(\n sample(ajax$)\n )\n .subscribe(({ url }) => {\n history.pushState({}, \"\", url.toString())\n })\n\n /* Parse and emit document */\n const dom = new DOMParser()\n ajax$\n .pipe(\n map(({ response }) => dom.parseFromString(response, \"text/html\"))\n )\n .subscribe(document$)\n\n /* Intercept instant loading */\n const instant$ = merge(push$, pop$)\n .pipe(\n sample(document$)\n )\n\n // TODO: this must be combined with search scroll restoration on mobile\n instant$.subscribe(({ url, offset }) => {\n if (url.hash && !offset) {\n setLocationHash(url.hash)\n } else {\n setViewportOffset(offset || { y: 0 })\n }\n })\n\n /* Replace document metadata */\n instant$\n .pipe(\n withLatestFrom(document$)\n )\n .subscribe(([, { title, head }]) => {\n document.dispatchEvent(new CustomEvent(\"DOMContentSwitch\"))\n document.title = title\n\n /* Replace meta tags */\n for (const selector of [\n `link[rel=\"canonical\"]`,\n `meta[name=\"author\"]`,\n `meta[name=\"description\"]`\n ]) {\n const next = getElement(selector, head)\n const prev = getElement(selector, document.head)\n if (\n typeof next !== \"undefined\" &&\n typeof prev !== \"undefined\"\n ) {\n replaceElement(prev, next)\n }\n }\n })\n\n /* Debounce update of viewport offset */\n viewport$\n .pipe(\n debounceTime(250),\n distinctUntilKeyChanged(\"offset\")\n )\n .subscribe(({ offset }) => {\n history.replaceState(offset, \"\")\n })\n\n /* Set viewport offset from history */\n merge(state$, pop$)\n .pipe(\n bufferCount(2, 1),\n filter(([prev, next]) => {\n return prev.url.pathname === next.url.pathname\n && !isAnchorLocation(next.url)\n }),\n map(([, state]) => state)\n )\n .subscribe(({ offset }) => {\n setViewportOffset(offset || { y: 0 })\n })\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable } from \"rxjs\"\nimport {\n filter,\n map,\n share,\n withLatestFrom\n} from \"rxjs/operators\"\n\nimport {\n Key,\n getActiveElement,\n getElement,\n getElements,\n getToggle,\n isSusceptibleToKeyboard,\n setElementFocus,\n setElementSelection,\n setToggle,\n watchKeyboard\n} from \"browser\"\nimport { useComponent } from \"components\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Keyboard mode\n */\nexport type KeyboardMode =\n | \"global\" /* Global */\n | \"search\" /* Search is open */\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Keyboard\n */\nexport interface Keyboard extends Key {\n mode: KeyboardMode /* Keyboard mode */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up keyboard\n *\n * This function will set up the keyboard handlers and ensure that keys are\n * correctly propagated. Currently there are two modes:\n *\n * - `global`: This mode is active when the search is closed. It is intended\n * to assign hotkeys to specific functions of the site. Currently the search,\n * previous and next page can be triggered.\n *\n * - `search`: This mode is active when the search is open. It maps certain\n * navigational keys to offer search results that can be entirely navigated\n * through keyboard input.\n *\n * The keyboard observable is returned and can be used to monitor the keyboard\n * in order toassign further hotkeys to custom functions.\n *\n * @return Keyboard observable\n */\nexport function setupKeyboard(): Observable {\n const keyboard$ = watchKeyboard()\n .pipe(\n map(key => ({\n mode: getToggle(\"search\") ? \"search\" : \"global\",\n ...key\n })),\n filter(({ mode }) => {\n if (mode === \"global\") {\n const active = getActiveElement()\n if (typeof active !== \"undefined\")\n return !isSusceptibleToKeyboard(active)\n }\n return true\n }),\n share()\n )\n\n /* Set up search keyboard handlers */\n keyboard$\n .pipe(\n filter(({ mode }) => mode === \"search\"),\n withLatestFrom(\n useComponent(\"search-query\"),\n useComponent(\"search-result\")\n )\n )\n .subscribe(([key, query, result]) => {\n const active = getActiveElement()\n switch (key.type) {\n\n /* Enter: prevent form submission */\n case \"Enter\":\n if (active === query)\n key.claim()\n break\n\n /* Escape or Tab: close search */\n case \"Escape\":\n case \"Tab\":\n setToggle(\"search\", false)\n setElementFocus(query, false)\n break\n\n /* Vertical arrows: select previous or next search result */\n case \"ArrowUp\":\n case \"ArrowDown\":\n if (typeof active === \"undefined\") {\n setElementFocus(query)\n } else {\n const els = [query, ...getElements(\"[href]\", result)]\n const i = Math.max(0, (\n Math.max(0, els.indexOf(active)) + els.length + (\n key.type === \"ArrowUp\" ? -1 : +1\n )\n ) % els.length)\n setElementFocus(els[i])\n }\n\n /* Prevent scrolling of page */\n key.claim()\n break\n\n /* All other keys: hand to search query */\n default:\n if (query !== getActiveElement())\n setElementFocus(query)\n }\n })\n\n /* Set up global keyboard handlers */\n keyboard$\n .pipe(\n filter(({ mode }) => mode === \"global\"),\n withLatestFrom(useComponent(\"search-query\"))\n )\n .subscribe(([key, query]) => {\n switch (key.type) {\n\n /* Open search and select query */\n case \"f\":\n case \"s\":\n case \"/\":\n setElementFocus(query)\n setElementSelection(query)\n key.claim()\n break\n\n /* Go to previous page */\n case \"p\":\n case \",\":\n const prev = getElement(\"[href][rel=prev]\")\n if (typeof prev !== \"undefined\")\n prev.click()\n break\n\n /* Go to next page */\n case \"n\":\n case \".\":\n const next = getElement(\"[href][rel=next]\")\n if (typeof next !== \"undefined\")\n next.click()\n break\n }\n })\n\n /* Return keyboard */\n return keyboard$\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { EMPTY, Observable, of } from \"rxjs\"\nimport {\n distinctUntilChanged,\n map,\n scan,\n shareReplay,\n switchMap\n} from \"rxjs/operators\"\n\nimport { getElement, replaceElement } from \"browser\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Component\n */\nexport type Component =\n | \"announce\" /* Announcement bar */\n | \"container\" /* Container */\n | \"header\" /* Header */\n | \"header-title\" /* Header title */\n | \"hero\" /* Hero */\n | \"main\" /* Main area */\n | \"navigation\" /* Navigation */\n | \"search\" /* Search */\n | \"search-query\" /* Search input */\n | \"search-reset\" /* Search reset */\n | \"search-result\" /* Search results */\n | \"skip\" /* Skip link */\n | \"tabs\" /* Tabs */\n | \"toc\" /* Table of contents */\n\n/**\n * Component map\n */\nexport type ComponentMap = {\n [P in Component]?: HTMLElement\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n document$: Observable /* Document observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Component map observable\n */\nlet components$: Observable\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up bindings to components with given names\n *\n * This function will maintain bindings to the elements identified by the given\n * names in-between document switches and update the elements in-place.\n *\n * @param names - Component names\n * @param options - Options\n */\nexport function setupComponents(\n names: Component[], { document$ }: WatchOptions\n): void {\n components$ = document$\n .pipe(\n\n /* Build component map */\n map(document => names.reduce((components, name) => {\n const el = getElement(`[data-md-component=${name}]`, document)\n return {\n ...components,\n ...typeof el !== \"undefined\" ? { [name]: el } : {}\n }\n }, {})),\n\n /* Re-compute component map on document switch */\n scan((prev, next) => {\n for (const name of names) {\n switch (name) {\n\n /* Top-level components: update */\n case \"announce\":\n case \"header-title\":\n case \"container\":\n case \"skip\":\n if (name in prev && typeof prev[name] !== \"undefined\") {\n replaceElement(prev[name]!, next[name]!)\n prev[name] = next[name]\n }\n break\n\n /* All other components: rebind */\n default:\n if (typeof next[name] !== \"undefined\")\n prev[name] = getElement(`[data-md-component=${name}]`)\n else\n delete prev[name]\n }\n }\n return prev\n }),\n\n /* Convert to hot observable */\n shareReplay(1)\n )\n}\n\n/**\n * Retrieve a component\n *\n * The returned observable will only re-emit if the element changed, i.e. if\n * it was replaced from a document which was switched to.\n *\n * @template T - Element type\n *\n * @param name - Component name\n *\n * @return Component observable\n */\nexport function useComponent(\n name: \"search-query\"\n): Observable\nexport function useComponent(\n name: Component\n): Observable\nexport function useComponent(\n name: Component\n): Observable {\n return components$\n .pipe(\n switchMap(components => (\n typeof components[name] !== \"undefined\"\n ? of(components[name] as T)\n : EMPTY\n )),\n distinctUntilChanged()\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set anchor blur\n *\n * @param el - Anchor element\n * @param value - Whether the anchor is blurred\n */\nexport function setAnchorBlur(\n el: HTMLElement, value: boolean\n): void {\n el.setAttribute(\"data-md-state\", value ? \"blur\" : \"\")\n}\n\n/**\n * Reset anchor blur\n *\n * @param el - Anchor element\n */\nexport function resetAnchorBlur(\n el: HTMLElement\n): void {\n el.removeAttribute(\"data-md-state\")\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Set anchor active\n *\n * @param el - Anchor element\n * @param value - Whether the anchor is active\n */\nexport function setAnchorActive(\n el: HTMLElement, value: boolean\n): void {\n el.classList.toggle(\"md-nav__link--active\", value)\n}\n\n/**\n * Reset anchor active\n *\n * @param el - Anchor element\n */\nexport function resetAnchorActive(\n el: HTMLElement\n): void {\n el.classList.remove(\"md-nav__link--active\")\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nexport * from \"./sidebar\"\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h, translate } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * CSS classes\n */\nconst css = {\n container: \"md-clipboard md-icon\"\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Path of `file-search-outline` icon\n */\nconst path =\n \"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 \" +\n \"21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a 'copy-to-clipboard' button\n *\n * @param id - Unique identifier\n *\n * @return Element\n */\nexport function renderClipboardButton(\n id: string\n) {\n return (\n code`}\n >\n \n \n \n \n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SearchResult } from \"integrations/search\"\nimport { h, truncate } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * CSS classes\n */\nconst css = {\n item: \"md-search-result__item\",\n link: \"md-search-result__link\",\n article: \"md-search-result__article md-search-result__article--document\",\n section: \"md-search-result__article\",\n title: \"md-search-result__title\",\n teaser: \"md-search-result__teaser\"\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Path of `content-copy` icon\n */\nconst path =\n \"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H13C12.59,21.75 12.2,21.44 \" +\n \"11.86,21.1C11.53,20.77 11.25,20.4 11,20H6V4H13V9H18V10.18C18.71,10.34 \" +\n \"19.39,10.61 20,11V8L14,2M20.31,18.9C21.64,16.79 21,14 \" +\n \"18.91,12.68C16.8,11.35 14,12 12.69,14.08C11.35,16.19 12,18.97 \" +\n \"14.09,20.3C15.55,21.23 17.41,21.23 \" +\n \"18.88,20.32L22,23.39L23.39,22L20.31,18.9M16.5,19A2.5,2.5 0 0,1 \" +\n \"14,16.5A2.5,2.5 0 0,1 16.5,14A2.5,2.5 0 0,1 19,16.5A2.5,2.5 0 0,1 16.5,19Z\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a search result\n *\n * @param result - Search result\n *\n * @return Element\n */\nexport function renderSearchResult(\n { article, sections }: SearchResult\n) {\n\n /* Render icon */\n const icon = (\n
    \n \n \n \n
    \n )\n\n /* Render article and sections */\n const children = [article, ...sections].map(document => {\n const { location, title, text } = document\n return (\n \n
    \n {!(\"parent\" in document) && icon}\n

    {title}

    \n {text.length > 0 &&

    {truncate(text, 320)}

    }\n
    \n
    \n )\n })\n\n /* Render search result */\n return (\n
  • \n {children}\n
  • \n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SourceFacts } from \"patches/source\"\nimport { h } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * CSS classes\n */\nconst css = {\n facts: \"md-source__facts\",\n fact: \"md-source__fact\"\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render source facts\n *\n * @param facts - Source facts\n *\n * @return Element\n */\nexport function renderSource(\n facts: SourceFacts\n) {\n const children = facts.map(fact => (\n
  • {fact}
  • \n ))\n return (\n
      \n {children}\n
    \n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * CSS classes\n */\nconst css = {\n wrapper: \"md-typeset__scrollwrap\",\n table: \"md-typeset__table\"\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a table inside a wrapper to improve scrolling on mobile\n *\n * @param table - Table element\n *\n * @return Element\n */\nexport function renderTable(\n table: HTMLTableElement\n) {\n return (\n
    \n
    \n {table}\n
    \n
    \n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set sidebar offset\n *\n * @param el - Sidebar element\n * @param value - Sidebar offset\n */\nexport function setSidebarOffset(\n el: HTMLElement, value: number\n): void {\n el.style.top = `${value}px`\n}\n\n/**\n * Reset sidebar offset\n *\n * @param el - Sidebar element\n */\nexport function resetSidebarOffset(\n el: HTMLElement\n): void {\n el.style.top = \"\"\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Set sidebar height\n *\n * @param el - Sidebar element\n * @param value - Sidebar height\n */\nexport function setSidebarHeight(\n el: HTMLElement, value: number\n): void {\n el.style.height = `${value}px`\n}\n\n/**\n * Reset sidebar height\n *\n * @param el - Sidebar element\n */\nexport function resetSidebarHeight(\n el: HTMLElement\n): void {\n el.style.height = \"\"\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nexport * from \"./_\"\nexport * from \"./react\"\nexport * from \"./set\"\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n ArticleDocument,\n SearchDocumentMap,\n SectionDocument,\n setupSearchDocumentMap\n} from \"../document\"\nimport {\n SearchHighlightFactoryFn,\n setupSearchHighlighter\n} from \"../highlighter\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search index configuration\n */\nexport interface SearchIndexConfig {\n lang: string[] /* Search languages */\n separator: string /* Search separator */\n}\n\n/**\n * Search index document\n */\nexport interface SearchIndexDocument {\n location: string /* Document location */\n title: string /* Document title */\n text: string /* Document text */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search index pipeline function\n */\nexport type SearchIndexPipelineFn =\n | \"stemmer\" /* Stemmer */\n | \"stopWordFilter\" /* Stop word filter */\n | \"trimmer\" /* Trimmer */\n\n/**\n * Search index pipeline\n */\nexport type SearchIndexPipeline = SearchIndexPipelineFn[]\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search index\n *\n * This interfaces describes the format of the `search_index.json` file which\n * is automatically built by the MkDocs search plugin.\n */\nexport interface SearchIndex {\n config: SearchIndexConfig /* Search index configuration */\n docs: SearchIndexDocument[] /* Search index documents */\n index?: object | string /* Prebuilt or serialized index */\n pipeline?: SearchIndexPipeline /* Search index pipeline */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search result\n */\nexport interface SearchResult {\n article: ArticleDocument /* Article document */\n sections: SectionDocument[] /* Section documents */\n}\n\n/* ----------------------------------------------------------------------------\n * Class\n * ------------------------------------------------------------------------- */\n\n/**\n * Search\n *\n * Note that `lunr` is injected via Webpack, as it will otherwise also be\n * bundled in the application bundle.\n */\nexport class Search {\n\n /**\n * Search document mapping\n *\n * A mapping of URLs (including hash fragments) to the actual articles and\n * sections of the documentation. The search document mapping must be created\n * regardless of whether the index was prebuilt or not, as `lunr` itself will\n * only store the actual index.\n */\n protected documents: SearchDocumentMap\n\n /**\n * Search highlight factory function\n */\n protected highlight: SearchHighlightFactoryFn\n\n /**\n * The `lunr` search index\n */\n protected index: lunr.Index\n\n /**\n * Create the search integration\n *\n * @param data - Search index\n */\n public constructor({ config, docs, pipeline, index }: SearchIndex) {\n this.documents = setupSearchDocumentMap(docs)\n this.highlight = setupSearchHighlighter(config)\n\n /* If no index was given, create it */\n if (typeof index === \"undefined\") {\n this.index = lunr(function() {\n pipeline = pipeline || [\"trimmer\", \"stopWordFilter\"]\n\n /* Set up pipeline according to configuration */\n this.pipeline.reset()\n for (const fn of pipeline)\n this.pipeline.add(lunr[fn])\n\n /* Set up alternate search languages */\n if (config.lang.length === 1 && config.lang[0] !== \"en\") {\n this.use((lunr as any)[config.lang[0]])\n } else if (config.lang.length > 1) {\n this.use((lunr as any).multiLanguage(...config.lang))\n }\n\n /* Set up fields and reference */\n this.field(\"title\", { boost: 1000 })\n this.field(\"text\")\n this.ref(\"location\")\n\n /* Index documents */\n for (const doc of docs)\n this.add(doc)\n })\n\n /* Prebuilt or serialized index */\n } else {\n this.index = lunr.Index.load(\n typeof index === \"string\"\n ? JSON.parse(index)\n : index\n )\n }\n }\n\n /**\n * Search for matching documents\n *\n * The search index which MkDocs provides is divided up into articles, which\n * contain the whole content of the individual pages, and sections, which only\n * contain the contents of the subsections obtained by breaking the individual\n * pages up at `h1` ... `h6`. As there may be many sections on different pages\n * with identical titles (for example within this very project, e.g. \"Usage\"\n * or \"Installation\"), they need to be put into the context of the containing\n * page. For this reason, section results are grouped within their respective\n * articles which are the top-level results that are returned.\n *\n * @param value - Query value\n *\n * @return Search results\n */\n public query(value: string): SearchResult[] {\n if (value) {\n try {\n\n /* Group sections by containing article */\n const groups = this.index.search(value)\n .reduce((results, result) => {\n const document = this.documents.get(result.ref)\n if (typeof document !== \"undefined\") {\n if (\"parent\" in document) {\n const ref = document.parent.location\n results.set(ref, [...results.get(ref) || [], result])\n } else {\n const ref = document.location\n results.set(ref, results.get(ref) || [])\n }\n }\n return results\n }, new Map())\n\n /* Create highlighter for query */\n const fn = this.highlight(value)\n\n /* Map groups to search documents */\n return [...groups].map(([ref, sections]) => ({\n article: fn(this.documents.get(ref) as ArticleDocument),\n sections: sections.map(section => {\n return fn(this.documents.get(section.ref) as SectionDocument)\n })\n }))\n\n /* Log errors to console (for now) */\n } catch (err) {\n // tslint:disable-next-line no-console\n console.warn(`Invalid query: ${value} – see https://bit.ly/2s3ChXG`)\n }\n }\n\n /* Return nothing in case of error or empty query */\n return []\n }\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport * as escapeHTML from \"escape-html\"\n\nimport { SearchIndexDocument } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * A top-level article\n */\nexport interface ArticleDocument extends SearchIndexDocument {\n linked: boolean /* Whether the section was linked */\n}\n\n/**\n * A section of an article\n */\nexport interface SectionDocument extends SearchIndexDocument {\n parent: ArticleDocument /* Parent article */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search document\n */\nexport type SearchDocument =\n | ArticleDocument\n | SectionDocument\n\n/**\n * Search document mapping\n */\nexport type SearchDocumentMap = Map\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search document mapping\n *\n * @param docs - Search index documents\n *\n * @return Search document map\n */\nexport function setupSearchDocumentMap(\n docs: SearchIndexDocument[]\n): SearchDocumentMap {\n const documents = new Map()\n for (const doc of docs) {\n const [path, hash] = doc.location.split(\"#\")\n\n /* Extract location and title */\n const location = doc.location\n const title = doc.title\n\n /* Escape and cleanup text */\n const text = escapeHTML(doc.text)\n .replace(/\\s+(?=[,.:;!?])/g, \"\")\n .replace(/\\s+/g, \" \")\n\n /* Handle section */\n if (hash) {\n const parent = documents.get(path) as ArticleDocument\n\n /* Ignore first section, override article */\n if (!parent.linked) {\n parent.title = doc.title\n parent.text = text\n parent.linked = true\n\n /* Add subsequent section */\n } else {\n documents.set(location, {\n location,\n title,\n text,\n parent\n })\n }\n\n /* Add article */\n } else {\n documents.set(location, {\n location,\n title,\n text,\n linked: false\n })\n }\n }\n return documents\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SearchIndexConfig } from \"../_\"\nimport { SearchDocument } from \"../document\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search highlight function\n *\n * @template T - Search document type\n *\n * @param document - Search document\n *\n * @return Highlighted document\n */\nexport type SearchHighlightFn = <\n T extends SearchDocument\n>(document: Readonly) => T\n\n/**\n * Search highlight factory function\n *\n * @param value - Query value\n *\n * @return Search highlight function\n */\nexport type SearchHighlightFactoryFn = (value: string) => SearchHighlightFn\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search highlighter\n *\n * @param config - Search index configuration\n *\n * @return Search highlight factory function\n */\nexport function setupSearchHighlighter(\n config: SearchIndexConfig\n): SearchHighlightFactoryFn {\n const separator = new RegExp(config.separator, \"img\")\n const highlight = (_: unknown, data: string, term: string) => {\n return `${data}${term}`\n }\n\n /* Return factory function */\n return (value: string) => {\n value = value\n .replace(/[\\s*+-:~^]+/g, \" \")\n .trim()\n\n /* Create search term match expression */\n const match = new RegExp(`(^|${config.separator})(${\n value\n .replace(/[|\\\\{}()[\\]^$+*?.-]/g, \"\\\\$&\")\n .replace(separator, \"|\")\n })`, \"img\")\n\n /* Highlight document */\n return document => ({\n ...document,\n title: document.title.replace(match, highlight),\n text: document.text.replace(match, highlight)\n })\n }\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search transformation function\n *\n * @param value - Query value\n *\n * @return Transformed query value\n */\nexport type SearchTransformFn = (value: string) => string\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Default transformation function\n *\n * Rogue control characters are filtered before handing the query to the\n * search index, as `lunr` will throw otherwise.\n *\n * @param value - Query value\n *\n * @return Transformed query value\n */\nexport function defaultTransform(value: string): string {\n return value\n .replace(/(?:^|\\s+)[*+-:^~]+(?=\\s+|$)/g, \"\")\n .trim()\n .replace(/\\s+|\\b$/g, \"* \")\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SearchIndex, SearchResult } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search message type\n */\nexport const enum SearchMessageType {\n SETUP, /* Search index setup */\n READY, /* Search index ready */\n QUERY, /* Search query */\n RESULT /* Search results */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * A message containing the data necessary to setup the search index\n */\nexport interface SearchSetupMessage {\n type: SearchMessageType.SETUP /* Message type */\n data: SearchIndex /* Message data */\n}\n\n/**\n * A message indicating the search index is ready\n */\nexport interface SearchReadyMessage {\n type: SearchMessageType.READY /* Message type */\n}\n\n/**\n * A message containing a search query\n */\nexport interface SearchQueryMessage {\n type: SearchMessageType.QUERY /* Message type */\n data: string /* Message data */\n}\n\n/**\n * A message containing results for a search query\n */\nexport interface SearchResultMessage {\n type: SearchMessageType.RESULT /* Message type */\n data: SearchResult[] /* Message data */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * A message exchanged with the search worker\n */\nexport type SearchMessage =\n | SearchSetupMessage\n | SearchReadyMessage\n | SearchQueryMessage\n | SearchResultMessage\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Type guard for search setup messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchSetupMessage(\n message: SearchMessage\n): message is SearchSetupMessage {\n return message.type === SearchMessageType.SETUP\n}\n\n/**\n * Type guard for search ready messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchReadyMessage(\n message: SearchMessage\n): message is SearchReadyMessage {\n return message.type === SearchMessageType.READY\n}\n\n/**\n * Type guard for search query messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchQueryMessage(\n message: SearchMessage\n): message is SearchQueryMessage {\n return message.type === SearchMessageType.QUERY\n}\n\n/**\n * Type guard for search result messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchResultMessage(\n message: SearchMessage\n): message is SearchResultMessage {\n return message.type === SearchMessageType.RESULT\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { identity } from \"ramda\"\nimport { Observable, Subject, asyncScheduler } from \"rxjs\"\nimport {\n map,\n observeOn,\n shareReplay,\n withLatestFrom\n} from \"rxjs/operators\"\n\nimport { WorkerHandler, watchWorker } from \"browser\"\nimport { translate } from \"utilities\"\n\nimport { SearchIndex, SearchIndexPipeline } from \"../../_\"\nimport {\n SearchMessage,\n SearchMessageType,\n SearchSetupMessage,\n isSearchResultMessage\n} from \"../message\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Setup options\n */\ninterface SetupOptions {\n index$: Observable /* Search index observable */\n base$: Observable /* Location base observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up search index\n *\n * @param data - Search index\n *\n * @return Search index\n */\nfunction setupSearchIndex(\n { config, docs, index }: SearchIndex\n): SearchIndex {\n\n /* Override default language with value from translation */\n if (config.lang.length === 1 && config.lang[0] === \"en\")\n config.lang = [translate(\"search.config.lang\")]\n\n /* Override default separator with value from translation */\n if (config.separator === \"[\\s\\-]+\")\n config.separator = translate(\"search.config.separator\")\n\n /* Set pipeline from translation */\n const pipeline = translate(\"search.config.pipeline\")\n .split(/\\s*,\\s*/)\n .filter(identity) as SearchIndexPipeline\n\n /* Return search index after defaulting */\n return { config, docs, index, pipeline }\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up search web worker\n *\n * This function will create a web worker to set up and query the search index\n * which is done using `lunr`. The index must be passed as an observable to\n * enable hacks like _localsearch_ via search index embedding as JSON.\n *\n * @param url - Worker URL\n * @param options - Options\n *\n * @return Worker handler\n */\nexport function setupSearchWorker(\n url: string, { index$, base$ }: SetupOptions\n): WorkerHandler {\n const worker = new Worker(url)\n\n /* Create communication channels and resolve relative links */\n const tx$ = new Subject()\n const rx$ = watchWorker(worker, { tx$ })\n .pipe(\n withLatestFrom(base$),\n map(([message, base]) => {\n if (isSearchResultMessage(message)) {\n for (const { article, sections } of message.data) {\n article.location = `${base}/${article.location}`\n for (const section of sections)\n section.location = `${base}/${section.location}`\n }\n }\n return message\n }),\n shareReplay(1)\n )\n\n /* Set up search index */\n index$\n .pipe(\n map(index => ({\n type: SearchMessageType.SETUP,\n data: setupSearchIndex(index)\n })),\n observeOn(asyncScheduler)\n )\n .subscribe(tx$.next.bind(tx$))\n\n /* Return worker handler */\n return { tx$, rx$ }\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nexport * from \"./_\"\nexport * from \"./react\"\nexport * from \"./set\"\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n MonoTypeOperatorFunction,\n Observable,\n animationFrameScheduler,\n combineLatest,\n pipe\n} from \"rxjs\"\nimport {\n distinctUntilChanged,\n finalize,\n map,\n observeOn,\n tap,\n withLatestFrom\n} from \"rxjs/operators\"\n\nimport { Viewport } from \"browser\"\n\nimport { Header } from \"../../../header\"\nimport { Main } from \"../../../main\"\nimport { Sidebar } from \"../_\"\nimport {\n resetSidebarHeight,\n resetSidebarOffset,\n setSidebarHeight,\n setSidebarOffset\n} from \"../set\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n main$: Observable
    /* Main area observable */\n viewport$: Observable /* Viewport observable */\n}\n\n/**\n * Apply options\n */\ninterface ApplyOptions {\n header$: Observable
    /* Header observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch sidebar\n *\n * This function returns an observable that computes the visual parameters of\n * the sidebar which depends on the vertical viewport offset, as well as the\n * height of the main area. When the page is scrolled beyond the header, the\n * sidebar is locked and fills the remaining space.\n *\n * @param el - Sidebar element\n * @param options - Options\n *\n * @return Sidebar observable\n */\nexport function watchSidebar(\n el: HTMLElement, { main$, viewport$ }: WatchOptions\n): Observable {\n const adjust = el.parentElement!.offsetTop\n - el.parentElement!.parentElement!.offsetTop\n\n /* Compute the sidebar's available height and if it should be locked */\n return combineLatest([main$, viewport$])\n .pipe(\n map(([{ offset, height }, { offset: { y } }]) => {\n height = height\n + Math.min(adjust, Math.max(0, y - offset))\n - adjust\n return {\n height,\n lock: y >= offset + adjust\n }\n }),\n distinctUntilChanged((a, b) => {\n return a.height === b.height\n && a.lock === b.lock\n })\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Apply sidebar\n *\n * @param el - Sidebar element\n * @param options - Options\n *\n * @return Operator function\n */\nexport function applySidebar(\n el: HTMLElement, { header$ }: ApplyOptions\n): MonoTypeOperatorFunction {\n return pipe(\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n withLatestFrom(header$),\n tap(([{ height, lock }, { height: offset }]) => {\n setSidebarHeight(el, height)\n\n /* Set offset in locked state depending on header height */\n if (lock)\n setSidebarOffset(el, offset)\n else\n resetSidebarOffset(el)\n }),\n\n /* Re-map to sidebar */\n map(([sidebar]) => sidebar),\n\n /* Reset on complete or error */\n finalize(() => {\n resetSidebarOffset(el)\n resetSidebarHeight(el)\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nexport * from \"./_\"\nexport * from \"./anchor\"\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n OperatorFunction,\n combineLatest,\n of,\n pipe\n} from \"rxjs\"\nimport { map, switchMap } from \"rxjs/operators\"\n\nimport { Viewport, getElements } from \"browser\"\n\nimport { Header } from \"../../header\"\nimport { Main } from \"../../main\"\nimport {\n Sidebar,\n applySidebar,\n watchSidebar\n} from \"../../shared\"\nimport {\n AnchorList,\n applyAnchorList,\n watchAnchorList\n} from \"../anchor\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Table of contents for [tablet -]\n */\ninterface TableOfContentsBelowTablet {} // tslint:disable-line\n\n/**\n * Table of contents for [tablet +]\n */\ninterface TableOfContentsAboveTablet {\n sidebar: Sidebar /* Sidebar */\n anchors: AnchorList /* Anchor list */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Table of contents\n */\nexport type TableOfContents =\n | TableOfContentsBelowTablet\n | TableOfContentsAboveTablet\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n header$: Observable
    /* Header observable */\n main$: Observable
    /* Main area observable */\n viewport$: Observable /* Viewport observable */\n tablet$: Observable /* Tablet media observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount table of contents from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountTableOfContents(\n { header$, main$, viewport$, tablet$ }: MountOptions\n): OperatorFunction {\n return pipe(\n switchMap(el => tablet$\n .pipe(\n switchMap(tablet => {\n\n /* [tablet +]: Mount table of contents in sidebar */\n if (tablet) {\n const els = getElements(\".md-nav__link\", el)\n\n /* Watch and apply sidebar */\n const sidebar$ = watchSidebar(el, { main$, viewport$ })\n .pipe(\n applySidebar(el, { header$ })\n )\n\n /* Watch and apply anchor list (scroll spy) */\n const anchors$ = watchAnchorList(els, { header$, viewport$ })\n .pipe(\n applyAnchorList(els)\n )\n\n /* Combine into single hot observable */\n return combineLatest([sidebar$, anchors$])\n .pipe(\n map(([sidebar, anchors]) => ({ sidebar, anchors }))\n )\n\n /* [tablet -]: Unmount table of contents */\n } else {\n return of({})\n }\n })\n )\n )\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { reverse } from \"ramda\"\nimport {\n MonoTypeOperatorFunction,\n Observable,\n animationFrameScheduler,\n combineLatest,\n pipe\n} from \"rxjs\"\nimport {\n bufferCount,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n finalize,\n map,\n observeOn,\n scan,\n startWith,\n switchMap,\n tap\n} from \"rxjs/operators\"\n\nimport { Viewport, getElement, watchElementSize } from \"browser\"\n\nimport { Header } from \"../../../header\"\nimport { AnchorList } from \"../_\"\nimport {\n resetAnchorActive,\n resetAnchorBlur,\n setAnchorActive,\n setAnchorBlur\n} from \"../set\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n header$: Observable
    /* Header observable */\n viewport$: Observable /* Viewport observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch anchor list\n *\n * This is effectively a scroll-spy implementation which will account for the\n * fixed header and automatically re-calculate anchor offsets when the viewport\n * is resized. The returned observable will only emit if the anchor list needs\n * to be repainted.\n *\n * This implementation tracks an anchor element's entire path starting from its\n * level up to the top-most anchor element, e.g. `[h3, h2, h1]`. Although the\n * Material theme currently doesn't make use of this information, it enables\n * the styling of the entire hierarchy through customization.\n *\n * Note that the current anchor is the last item of the `prev` anchor list.\n *\n * @param els - Anchor elements\n * @param options - Options\n *\n * @return Anchor list observable\n */\nexport function watchAnchorList(\n els: HTMLAnchorElement[], { header$, viewport$ }: WatchOptions\n): Observable {\n const table = new Map()\n for (const el of els) {\n const id = decodeURIComponent(el.hash.substring(1))\n const target = getElement(`[id=\"${id}\"]`)\n if (typeof target !== \"undefined\")\n table.set(el, target)\n }\n\n /* Compute necessary adjustment for header */\n const adjust$ = header$\n .pipe(\n map(header => 18 + header.height)\n )\n\n /* Compute partition of previous and next anchors */\n const partition$ = watchElementSize(document.body)\n .pipe(\n distinctUntilKeyChanged(\"height\"),\n\n /* Build index to map anchor paths to vertical offsets */\n map(() => {\n let path: HTMLAnchorElement[] = []\n return [...table].reduce((index, [anchor, target]) => {\n while (path.length) {\n const last = table.get(path[path.length - 1])!\n if (last.tagName >= target.tagName) {\n path.pop()\n } else {\n break\n }\n }\n\n /* If the current anchor is hidden, continue with its parent */\n let offset = target.offsetTop\n while (!offset && target.parentElement) {\n target = target.parentElement\n offset = target.offsetTop\n }\n\n /* Map reversed anchor path to vertical offset */\n return index.set(\n reverse(path = [...path, anchor]),\n offset\n )\n }, new Map())\n }),\n\n /* Re-compute partition when viewport offset changes */\n switchMap(index => combineLatest([adjust$, viewport$])\n .pipe(\n scan(([prev, next], [adjust, { offset: { y } }]) => {\n\n /* Look forward */\n while (next.length) {\n const [, offset] = next[0]\n if (offset - adjust < y) {\n prev = [...prev, next.shift()!]\n } else {\n break\n }\n }\n\n /* Look backward */\n while (prev.length) {\n const [, offset] = prev[prev.length - 1]\n if (offset - adjust >= y) {\n next = [prev.pop()!, ...next]\n } else {\n break\n }\n }\n\n /* Return partition */\n return [prev, next]\n }, [[], [...index]]),\n distinctUntilChanged((a, b) => {\n return a[0] === b[0]\n && a[1] === b[1]\n })\n )\n )\n )\n\n /* Compute and return anchor list migrations */\n return partition$\n .pipe(\n map(([prev, next]) => ({\n prev: prev.map(([path]) => path),\n next: next.map(([path]) => path)\n })),\n\n /* Extract anchor list migrations */\n startWith({ prev: [], next: [] }),\n bufferCount(2, 1),\n map(([a, b]) => {\n\n /* Moving down */\n if (a.prev.length < b.prev.length) {\n return {\n prev: b.prev.slice(Math.max(0, a.prev.length - 1), b.prev.length),\n next: []\n }\n\n /* Moving up */\n } else {\n return {\n prev: b.prev.slice(-1),\n next: b.next.slice(0, b.next.length - a.next.length)\n }\n }\n })\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Apply anchor list\n *\n * @param els - Anchor elements\n *\n * @return Operator function\n */\nexport function applyAnchorList(\n els: HTMLAnchorElement[]\n): MonoTypeOperatorFunction {\n return pipe(\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n tap(({ prev, next }) => {\n\n /* Look forward */\n for (const [el] of next) {\n resetAnchorActive(el)\n resetAnchorBlur(el)\n }\n\n /* Look backward */\n prev.forEach(([el], index) => {\n setAnchorActive(el, index === prev.length - 1)\n setAnchorBlur(el, true)\n })\n }),\n\n /* Reset on complete or error */\n finalize(() => {\n for (const el of els) {\n resetAnchorActive(el)\n resetAnchorBlur(el)\n }\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, OperatorFunction, combineLatest, pipe } from \"rxjs\"\nimport {\n filter,\n map,\n mapTo,\n sample,\n startWith,\n switchMap,\n take\n} from \"rxjs/operators\"\n\nimport { WorkerHandler } from \"browser\"\nimport {\n SearchMessage,\n SearchResult,\n isSearchQueryMessage,\n isSearchReadyMessage\n} from \"integrations/search\"\n\nimport { SearchQuery } from \"../query\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search status\n */\nexport type SearchStatus =\n | \"waiting\" /* Search waiting for initialization */\n | \"ready\" /* Search ready */\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search\n */\nexport interface Search {\n status: SearchStatus /* Search status */\n query: SearchQuery /* Search query */\n result: SearchResult[] /* Search result list */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n query$: Observable /* Search query observable */\n reset$: Observable /* Search reset observable */\n result$: Observable /* Search result observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search from source observable\n *\n * @param handler - Worker handler\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountSearch(\n { rx$, tx$ }: WorkerHandler,\n { query$, reset$, result$ }: MountOptions\n): OperatorFunction {\n return pipe(\n switchMap(() => {\n\n /* Compute search status */\n const status$ = rx$\n .pipe(\n filter(isSearchReadyMessage),\n mapTo(\"ready\"),\n startWith(\"waiting\")\n ) as Observable\n\n /* Re-emit the latest query when search is ready */\n tx$\n .pipe(\n filter(isSearchQueryMessage),\n sample(status$),\n take(1)\n )\n .subscribe(tx$.next.bind(tx$))\n\n /* Combine into single observable */\n return combineLatest([status$, query$, result$, reset$])\n .pipe(\n map(([status, query, result]) => ({\n status,\n query,\n result\n }))\n )\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { OperatorFunction, pipe } from \"rxjs\"\nimport {\n distinctUntilKeyChanged,\n map,\n switchMap\n} from \"rxjs/operators\"\n\nimport { WorkerHandler, setToggle } from \"browser\"\nimport {\n SearchMessage,\n SearchMessageType,\n SearchQueryMessage,\n SearchTransformFn\n} from \"integrations\"\n\nimport { watchSearchQuery } from \"../react\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search query\n */\nexport interface SearchQuery {\n value: string /* Query value */\n focus: boolean /* Query focus */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n transform?: SearchTransformFn /* Transformation function */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search query from source observable\n *\n * @param handler - Worker handler\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountSearchQuery(\n { tx$ }: WorkerHandler, options: MountOptions = {}\n): OperatorFunction {\n return pipe(\n switchMap(el => {\n const query$ = watchSearchQuery(el, options)\n\n /* Subscribe worker to search query */\n query$\n .pipe(\n distinctUntilKeyChanged(\"value\"),\n map(({ value }): SearchQueryMessage => ({\n type: SearchMessageType.QUERY,\n data: value\n }))\n )\n .subscribe(tx$.next.bind(tx$))\n\n /* Toggle search on focus */\n query$\n .pipe(\n distinctUntilKeyChanged(\"focus\")\n )\n .subscribe(({ focus }) => {\n if (focus)\n setToggle(\"search\", focus)\n })\n\n /* Return search query */\n return query$\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, combineLatest, fromEvent, merge } from \"rxjs\"\nimport {\n delay,\n distinctUntilChanged,\n map,\n startWith\n} from \"rxjs/operators\"\n\nimport { watchElementFocus } from \"browser\"\nimport { SearchTransformFn, defaultTransform } from \"integrations\"\n\nimport { SearchQuery } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n transform?: SearchTransformFn /* Transformation function */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch search query\n *\n * Note that the focus event which triggers re-reading the current query value\n * is delayed by `1ms` so the input's empty state is allowed to propagate.\n *\n * @param el - Search query element\n * @param options - Options\n *\n * @return Search query observable\n */\nexport function watchSearchQuery(\n el: HTMLInputElement, { transform }: WatchOptions = {}\n): Observable {\n const fn = transform || defaultTransform\n\n /* Intercept keyboard events */\n const value$ = merge(\n fromEvent(el, \"keyup\"),\n fromEvent(el, \"focus\").pipe(delay(1))\n )\n .pipe(\n map(() => fn(el.value)),\n startWith(fn(el.value)),\n distinctUntilChanged()\n )\n\n /* Intercept focus events */\n const focus$ = watchElementFocus(el)\n\n /* Combine into single observable */\n return combineLatest([value$, focus$])\n .pipe(\n map(([value, focus]) => ({ value, focus }))\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { OperatorFunction, pipe } from \"rxjs\"\nimport {\n mapTo,\n startWith,\n switchMap,\n switchMapTo,\n tap\n} from \"rxjs/operators\"\n\nimport { setElementFocus } from \"browser\"\n\nimport { useComponent } from \"../../../_\"\nimport { watchSearchReset } from \"../react\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search reset from source observable\n *\n * @return Operator function\n */\nexport function mountSearchReset(): OperatorFunction {\n return pipe(\n switchMap(el => watchSearchReset(el)\n .pipe(\n switchMapTo(useComponent(\"search-query\")),\n tap(setElementFocus),\n mapTo(undefined)\n )\n ),\n startWith(undefined)\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent } from \"rxjs\"\nimport { mapTo } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch search reset\n *\n * @param el - Search reset element\n *\n * @return Search reset observable\n */\nexport function watchSearchReset(\n el: HTMLElement\n): Observable {\n return fromEvent(el, \"click\")\n .pipe(\n mapTo(undefined)\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { translate } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set number of search results\n *\n * @param el - Search result metadata element\n * @param value - Number of results\n */\nexport function setSearchResultMeta(\n el: HTMLElement, value: number\n): void {\n switch (value) {\n\n /* No results */\n case 0:\n el.textContent = translate(\"search.result.none\")\n break\n\n /* One result */\n case 1:\n el.textContent = translate(\"search.result.one\")\n break\n\n /* Multiple result */\n default:\n el.textContent = translate(\"search.result.other\", value.toString())\n }\n}\n\n/**\n * Reset number of search results\n *\n * @param el - Search result metadata element\n */\nexport function resetSearchResultMeta(\n el: HTMLElement\n): void {\n el.textContent = translate(\"search.result.placeholder\")\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Add an element to the search result list\n *\n * @param el - Search result list element\n * @param child - Search result element\n */\nexport function addToSearchResultList(\n el: HTMLElement, child: Element\n): void {\n el.appendChild(child)\n}\n\n/**\n * Reset search result list\n *\n * @param el - Search result list element\n */\nexport function resetSearchResultList(\n el: HTMLElement\n): void {\n el.innerHTML = \"\"\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n MonoTypeOperatorFunction,\n Observable,\n animationFrameScheduler,\n pipe\n} from \"rxjs\"\nimport {\n finalize,\n map,\n mapTo,\n observeOn,\n scan,\n switchMap,\n withLatestFrom\n} from \"rxjs/operators\"\n\nimport { getElementOrThrow } from \"browser\"\nimport { SearchResult } from \"integrations/search\"\nimport { renderSearchResult } from \"templates\"\n\nimport { SearchQuery } from \"../../query\"\nimport {\n addToSearchResultList,\n resetSearchResultList,\n resetSearchResultMeta,\n setSearchResultMeta\n} from \"../set\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Apply options\n */\ninterface ApplyOptions {\n query$: Observable /* Search query observable */\n ready$: Observable /* Search ready observable */\n fetch$: Observable /* Result fetch observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Apply search results\n *\n * This function will perform a lazy rendering of the search results, depending\n * on the vertical offset of the search result container. When the scroll offset\n * reaches the bottom of the element, more results are fetched and rendered.\n *\n * @param el - Search result element\n * @param options - Options\n *\n * @return Operator function\n */\nexport function applySearchResult(\n el: HTMLElement, { query$, ready$, fetch$ }: ApplyOptions\n): MonoTypeOperatorFunction {\n const list = getElementOrThrow(\".md-search-result__list\", el)\n const meta = getElementOrThrow(\".md-search-result__meta\", el)\n return pipe(\n\n /* Apply search result metadata */\n withLatestFrom(query$, ready$),\n map(([result, query]) => {\n if (query.value) {\n setSearchResultMeta(meta, result.length)\n } else {\n resetSearchResultMeta(meta)\n }\n return result\n }),\n\n /* Apply search result list */\n switchMap(result => fetch$\n .pipe(\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n scan(index => {\n const container = el.parentElement!\n while (index < result.length) {\n addToSearchResultList(list, renderSearchResult(result[index++]))\n if (container.scrollHeight - container.offsetHeight > 16)\n break\n }\n return index\n }, 0),\n\n /* Re-map to search result */\n mapTo(result),\n\n /* Reset on complete or error */\n finalize(() => {\n resetSearchResultList(list)\n })\n )\n )\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { identity } from \"ramda\"\nimport { Observable, OperatorFunction, pipe } from \"rxjs\"\nimport {\n distinctUntilChanged,\n filter,\n map,\n mapTo,\n pluck,\n startWith,\n switchMap\n} from \"rxjs/operators\"\n\nimport { WorkerHandler, watchElementOffset } from \"browser\"\nimport {\n SearchMessage,\n SearchResult,\n isSearchReadyMessage,\n isSearchResultMessage\n} from \"integrations\"\n\nimport { SearchQuery } from \"../../query\"\nimport { applySearchResult } from \"../react\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n query$: Observable /* Search query observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search result from source observable\n *\n * @param handler - Worker handler\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountSearchResult(\n { rx$ }: WorkerHandler, { query$ }: MountOptions\n): OperatorFunction {\n return pipe(\n switchMap(el => {\n const container = el.parentElement!\n\n /* Compute if search is ready */\n const ready$ = rx$\n .pipe(\n filter(isSearchReadyMessage),\n mapTo(true)\n )\n\n /* Compute whether there are more search results to fetch */\n const fetch$ = watchElementOffset(container)\n .pipe(\n map(({ y }) => {\n return y >= container.scrollHeight - container.offsetHeight - 16\n }),\n distinctUntilChanged(),\n filter(identity)\n )\n\n /* Apply search results */\n return rx$\n .pipe(\n filter(isSearchResultMessage),\n pluck(\"data\"),\n applySearchResult(el, { query$, ready$, fetch$ }),\n startWith([])\n )\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, OperatorFunction, combineLatest, pipe } from \"rxjs\"\nimport {\n distinctUntilChanged,\n filter,\n map,\n shareReplay,\n startWith,\n switchMap,\n withLatestFrom\n} from \"rxjs/operators\"\n\nimport {\n Viewport,\n getElement,\n watchViewportAt\n} from \"browser\"\n\nimport { useComponent } from \"../../_\"\nimport {\n applyHeaderType,\n watchHeader\n} from \"../react\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Header type\n */\nexport type HeaderType =\n | \"site\" /* Header shows site title */\n | \"page\" /* Header shows page title */\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Header\n */\nexport interface Header {\n type: HeaderType /* Header type */\n sticky: boolean /* Header stickyness */\n height: number /* Header visible height */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n document$: Observable /* Document observable */\n viewport$: Observable /* Viewport observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount header from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountHeader(\n { document$, viewport$ }: MountOptions\n): OperatorFunction {\n return pipe(\n switchMap(el => {\n const header$ = watchHeader(el, { document$ })\n\n /* Compute whether the header should switch to page header */\n const type$ = useComponent(\"main\")\n .pipe(\n map(main => getElement(\"h1, h2, h3, h4, h5, h6\", main)!),\n filter(hx => typeof hx !== \"undefined\"),\n withLatestFrom(useComponent(\"header-title\")),\n switchMap(([hx, title]) => watchViewportAt(hx, { header$, viewport$ })\n .pipe(\n map(({ offset: { y } }) => {\n return y >= hx.offsetHeight ? \"page\" : \"site\"\n }),\n distinctUntilChanged(),\n applyHeaderType(title)\n )\n ),\n startWith(\"site\")\n )\n\n /* Combine into single observable */\n return combineLatest([header$, type$])\n .pipe(\n map(([header, type]): Header => ({ type, ...header })),\n shareReplay(1)\n )\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n MonoTypeOperatorFunction,\n Observable,\n animationFrameScheduler,\n of,\n pipe\n} from \"rxjs\"\nimport {\n distinctUntilChanged,\n finalize,\n map,\n observeOn,\n shareReplay,\n switchMap,\n tap\n} from \"rxjs/operators\"\n\nimport { watchElementSize } from \"browser\"\n\nimport { Header, HeaderType } from \"../_\"\nimport {\n resetHeaderTitleActive,\n setHeaderTitleActive\n} from \"../set\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n document$: Observable /* Document observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch header\n *\n * @param el - Header element\n *\n * @return Header observable\n */\nexport function watchHeader(\n el: HTMLElement, { document$ }: WatchOptions\n): Observable> {\n return document$\n .pipe(\n map(() => {\n const styles = getComputedStyle(el)\n return [\n \"sticky\", /* Modern browsers */\n \"-webkit-sticky\" /* Safari */\n ].includes(styles.position)\n }),\n distinctUntilChanged(),\n switchMap(sticky => {\n if (sticky) {\n return watchElementSize(el)\n .pipe(\n map(({ height }) => ({\n sticky: true,\n height\n }))\n )\n } else {\n return of({\n sticky: false,\n height: 0\n })\n }\n }),\n shareReplay(1)\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Apply header title type\n *\n * @param el - Header title element\n *\n * @return Operator function\n */\nexport function applyHeaderType(\n el: HTMLElement\n): MonoTypeOperatorFunction {\n return pipe(\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n tap(type => {\n setHeaderTitleActive(el, type === \"page\")\n }),\n\n /* Reset on complete or error */\n finalize(() => {\n resetHeaderTitleActive(el)\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set header title active\n *\n * @param el - Header title element\n * @param value - Whether the title is shown\n */\nexport function setHeaderTitleActive(\n el: HTMLElement, value: boolean\n): void {\n el.setAttribute(\"data-md-state\", value ? \"active\" : \"\")\n}\n\n/**\n * Reset header title active\n *\n * @param el - Header title element\n */\nexport function resetHeaderTitleActive(\n el: HTMLElement\n): void {\n el.removeAttribute(\"data-md-state\")\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, OperatorFunction, pipe } from \"rxjs\"\nimport {\n distinctUntilKeyChanged,\n map,\n switchMap\n} from \"rxjs/operators\"\n\nimport { Viewport, watchViewportAt } from \"browser\"\n\nimport { Header } from \"../../header\"\nimport { applyHero } from \"../react\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Hero\n */\nexport interface Hero {\n hidden: boolean /* Whether the hero is hidden */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n header$: Observable
    /* Header observable */\n viewport$: Observable /* Viewport observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount hero from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountHero(\n { header$, viewport$ }: MountOptions\n): OperatorFunction {\n return pipe(\n switchMap(el => watchViewportAt(el, { header$, viewport$ })\n .pipe(\n map(({ offset: { y } }) => ({ hidden: y >= 20 })),\n distinctUntilKeyChanged(\"hidden\"),\n applyHero(el)\n )\n )\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n MonoTypeOperatorFunction,\n animationFrameScheduler,\n pipe\n} from \"rxjs\"\nimport { finalize, observeOn, tap } from \"rxjs/operators\"\n\nimport { Hero } from \"../_\"\nimport {\n resetHeroHidden,\n setHeroHidden\n} from \"../set\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Apply hero\n *\n * @param el - Hero element\n *\n * @return Operator function\n */\nexport function applyHero(\n el: HTMLElement\n): MonoTypeOperatorFunction {\n return pipe(\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n tap(({ hidden }) => {\n setHeroHidden(el, hidden)\n }),\n\n /* Reset on complete or error */\n finalize(() => {\n resetHeroHidden(el)\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set hero hidden\n *\n * @param el - Hero element\n * @param value - Whether the element is hidden\n */\nexport function setHeroHidden(\n el: HTMLElement, value: boolean\n): void {\n el.setAttribute(\"data-md-state\", value ? \"hidden\" : \"\")\n}\n\n/**\n * Reset hero hidden\n *\n * @param el - Hero element\n */\nexport function resetHeroHidden(\n el: HTMLElement\n): void {\n el.removeAttribute(\"data-md-state\")\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, OperatorFunction, Subject, pipe } from \"rxjs\"\nimport { distinctUntilKeyChanged, switchMap, tap } from \"rxjs/operators\"\n\nimport { Viewport } from \"browser\"\n\nimport { useComponent } from \"../../_\"\nimport { Header } from \"../../header\"\nimport {\n applyHeaderShadow,\n watchMain\n} from \"../react\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Main area\n */\nexport interface Main {\n offset: number /* Main area top offset */\n height: number /* Main area visible height */\n active: boolean /* Scrolled past top offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n header$: Observable
    /* Header observable */\n viewport$: Observable /* Viewport observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount main area from source observable\n *\n * The header must be connected to the main area observable outside of the\n * operator function, as the header will persist in-between document switches\n * while the main area is replaced. However, the header observable must be\n * passed to this function, so we connect both via a long-living subject.\n *\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountMain(\n { header$, viewport$ }: MountOptions\n): OperatorFunction {\n const main$ = new Subject
    ()\n\n /* Connect to main area observable via long-living subject */\n useComponent(\"header\")\n .pipe(\n switchMap(header => main$\n .pipe(\n distinctUntilKeyChanged(\"active\"),\n applyHeaderShadow(header)\n )\n )\n )\n .subscribe()\n\n /* Return operator */\n return pipe(\n switchMap(el => watchMain(el, { header$, viewport$ })),\n tap(main => main$.next(main))\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n MonoTypeOperatorFunction,\n Observable,\n animationFrameScheduler,\n combineLatest,\n pipe\n} from \"rxjs\"\nimport {\n distinctUntilChanged,\n distinctUntilKeyChanged,\n finalize,\n map,\n observeOn,\n pluck,\n shareReplay,\n switchMap,\n tap\n} from \"rxjs/operators\"\n\nimport { Viewport, watchElementSize } from \"browser\"\n\nimport { Header } from \"../../header\"\nimport { Main } from \"../_\"\nimport {\n resetHeaderShadow,\n setHeaderShadow\n} from \"../set\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n header$: Observable
    /* Header observable */\n viewport$: Observable /* Viewport observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch main area\n *\n * This function returns an observable that computes the visual parameters of\n * the main area which depends on the viewport vertical offset and height, as\n * well as the height of the header element, if the header is fixed.\n *\n * @param el - Main area element\n * @param options - Options\n *\n * @return Main area observable\n */\nexport function watchMain(\n el: HTMLElement, { header$, viewport$ }: WatchOptions\n): Observable
    {\n\n /* Compute necessary adjustment for header */\n const adjust$ = header$\n .pipe(\n pluck(\"height\"),\n distinctUntilChanged(),\n shareReplay(1)\n )\n\n /* Compute the main area's top and bottom borders */\n const border$ = adjust$\n .pipe(\n switchMap(() => watchElementSize(el)\n .pipe(\n map(({ height }) => ({\n top: el.offsetTop,\n bottom: el.offsetTop + height\n }))\n )\n ),\n distinctUntilKeyChanged(\"bottom\"),\n shareReplay(1)\n )\n\n /* Compute the main area's offset, visible height and if we scrolled past */\n return combineLatest([adjust$, border$, viewport$])\n .pipe(\n map(([header, { top, bottom }, { offset: { y }, size: { height } }]) => {\n height = Math.max(0, height\n - Math.max(0, top - y, header)\n - Math.max(0, height + y - bottom)\n )\n return {\n offset: top - header,\n height,\n active: top - header <= y\n }\n }),\n distinctUntilChanged
    ((a, b) => {\n return a.offset === b.offset\n && a.height === b.height\n && a.active === b.active\n })\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Apply header shadow\n *\n * @param el - Header element\n *\n * @return Operator function\n */\nexport function applyHeaderShadow(\n el: HTMLElement\n): MonoTypeOperatorFunction
    {\n return pipe(\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n tap(({ active }) => {\n setHeaderShadow(el, active)\n }),\n\n /* Reset on complete or error */\n finalize(() => {\n resetHeaderShadow(el)\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set header shadow\n *\n * @param el - Header element\n * @param value - Whether the shadow is shown\n */\nexport function setHeaderShadow(\n el: HTMLElement, value: boolean\n): void {\n el.setAttribute(\"data-md-state\", value ? \"shadow\" : \"\")\n}\n\n/**\n * Reset header shadow\n *\n * @param el - Header element\n */\nexport function resetHeaderShadow(\n el: HTMLElement\n): void {\n el.removeAttribute(\"data-md-state\")\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, OperatorFunction, of, pipe } from \"rxjs\"\nimport {\n distinctUntilKeyChanged,\n map,\n switchMap\n} from \"rxjs/operators\"\n\nimport { Viewport, watchViewportAt } from \"browser\"\n\nimport { Header } from \"../../header\"\nimport { applyTabs } from \"../react\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Tabs\n */\nexport interface Tabs {\n hidden: boolean /* Whether the tabs are hidden */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n header$: Observable
    /* Header observable */\n viewport$: Observable /* Viewport observable */\n screen$: Observable /* Media screen observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount tabs from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountTabs(\n { header$, viewport$, screen$ }: MountOptions\n): OperatorFunction {\n return pipe(\n switchMap(el => screen$\n .pipe(\n switchMap(screen => {\n\n /* [screen +]: Mount tabs above screen breakpoint */\n if (screen) {\n return watchViewportAt(el, { header$, viewport$ })\n .pipe(\n map(({ offset: { y } }) => ({ hidden: y >= 10 })),\n distinctUntilKeyChanged(\"hidden\"),\n applyTabs(el)\n )\n\n /* [screen -]: Unmount tabs below screen breakpoint */\n } else {\n return of({ hidden: true })\n }\n })\n )\n )\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n MonoTypeOperatorFunction,\n animationFrameScheduler,\n pipe\n} from \"rxjs\"\nimport { finalize, observeOn, tap } from \"rxjs/operators\"\n\nimport { Tabs } from \"../_\"\nimport {\n resetTabsHidden,\n setTabsHidden\n} from \"../set\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Apply tabs\n *\n * @param el - Tabs element\n *\n * @return Operator function\n */\nexport function applyTabs(\n el: HTMLElement\n): MonoTypeOperatorFunction {\n return pipe(\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n tap(({ hidden }) => {\n setTabsHidden(el, hidden)\n }),\n\n /* Reset on complete or error */\n finalize(() => {\n resetTabsHidden(el)\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set tabs hidden\n *\n * @param el - Tabs element\n * @param value - Whether the element is hidden\n */\nexport function setTabsHidden(\n el: HTMLElement, value: boolean\n): void {\n el.setAttribute(\"data-md-state\", value ? \"hidden\" : \"\")\n}\n\n/**\n * Reset tabs hidden\n *\n * @param el - Tabs element\n */\nexport function resetTabsHidden(\n el: HTMLElement\n): void {\n el.removeAttribute(\"data-md-state\")\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, OperatorFunction, of, pipe } from \"rxjs\"\nimport { map, switchMap } from \"rxjs/operators\"\n\nimport { Viewport } from \"browser\"\n\nimport { Header } from \"../../header\"\nimport { Main } from \"../../main\"\nimport {\n Sidebar,\n applySidebar,\n watchSidebar\n} from \"../../shared\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Navigation for [screen -]\n */\ninterface NavigationBelowScreen {} // tslint:disable-line\n\n/**\n * Navigation for [screen +]\n */\ninterface NavigationAboveScreen {\n sidebar: Sidebar /* Sidebar */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Navigation\n */\nexport type Navigation =\n | NavigationBelowScreen\n | NavigationAboveScreen\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n header$: Observable
    /* Header observable */\n main$: Observable
    /* Main area observable */\n viewport$: Observable /* Viewport observable */\n screen$: Observable /* Screen media observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount navigation from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountNavigation(\n { header$, main$, viewport$, screen$ }: MountOptions\n): OperatorFunction {\n return pipe(\n switchMap(el => screen$\n .pipe(\n switchMap(screen => {\n\n /* [screen +]: Mount navigation in sidebar */\n if (screen) {\n return watchSidebar(el, { main$, viewport$ })\n .pipe(\n applySidebar(el, { header$ }),\n map(sidebar => ({ sidebar }))\n )\n\n /* [screen -]: Mount navigation in drawer */\n } else {\n return of({})\n }\n })\n )\n )\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { NEVER, Observable, fromEvent, iif, merge } from \"rxjs\"\nimport { map, mapTo, shareReplay, switchMap } from \"rxjs/operators\"\n\nimport { getElements } from \"browser\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch options\n */\ninterface PatchOptions {\n document$: Observable /* Document observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Check whether the given device is an Apple device\n *\n * @return Test result\n */\nfunction isAppleDevice(): boolean {\n return /(iPad|iPhone|iPod)/.test(navigator.userAgent)\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch all elements with `data-md-scrollfix` attributes\n *\n * This is a year-old patch which ensures that overflow scrolling works at the\n * top and bottom of containers on iOS by ensuring a `1px` scroll offset upon\n * the start of a touch event.\n *\n * @see https://bit.ly/2SCtAOO - Original source\n *\n * @param options - Options\n */\nexport function patchScrollfix(\n { document$ }: PatchOptions\n): void {\n const els$ = document$\n .pipe(\n map(() => getElements(\"[data-md-scrollfix]\")),\n shareReplay(1)\n )\n\n /* Remove marker attribute, so we'll only add the fix once */\n els$.subscribe(els => {\n for (const el of els)\n el.removeAttribute(\"data-md-scrollfix\")\n })\n\n /* Patch overflow scrolling on touch start */\n iif(isAppleDevice, els$, NEVER)\n .pipe(\n switchMap(els => merge(...els.map(el => (\n fromEvent(el, \"touchstart\", { passive: true })\n .pipe(\n mapTo(el)\n )\n ))))\n )\n .subscribe(el => {\n const top = el.scrollTop\n\n /* We're at the top of the container */\n if (top === 0) {\n el.scrollTop = 1\n\n /* We're at the bottom of the container */\n } else if (top + el.offsetHeight === el.scrollHeight) {\n el.scrollTop = top - 1\n }\n })\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { NEVER, Observable } from \"rxjs\"\nimport { catchError, map, switchMap } from \"rxjs/operators\"\n\nimport { getElementOrThrow, getElements } from \"browser\"\nimport { renderSource } from \"templates\"\nimport { cache, hash } from \"utilities\"\n\nimport { fetchSourceFactsFromGitHub } from \"./github\"\nimport { fetchSourceFactsFromGitLab } from \"./gitlab\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Source facts\n */\nexport type SourceFacts = string[]\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch options\n */\ninterface PatchOptions {\n document$: Observable /* Document observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch source facts\n *\n * @param url - Source repository URL\n *\n * @return Source facts observable\n */\nfunction fetchSourceFacts(\n url: string\n): Observable {\n const [type] = url.match(/(git(?:hub|lab))/i) || []\n switch (type.toLowerCase()) {\n\n /* GitHub repository */\n case \"github\":\n const [, user, repo] = url.match(/^.+github\\.com\\/([^\\/]+)\\/?([^\\/]+)/i)\n return fetchSourceFactsFromGitHub(user, repo)\n\n /* GitLab repository */\n case \"gitlab\":\n const [, base, slug] = url.match(/^.+?([^\\/]*gitlab[^\\/]+)\\/(.+?)\\/?$/i)\n return fetchSourceFactsFromGitLab(base, slug)\n\n /* Everything else */\n default:\n return NEVER\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch elements containing repository information\n *\n * This function will retrieve the URL from the repository link and try to\n * query data from integrated source code platforms like GitHub or GitLab.\n *\n * @param options - Options\n */\nexport function patchSource(\n { document$ }: PatchOptions\n): void {\n document$\n .pipe(\n map(() => getElementOrThrow(\".md-source[href]\")),\n switchMap(({ href }) => (\n cache(`${hash(href)}`, () => fetchSourceFacts(href))\n )),\n catchError(() => NEVER)\n )\n .subscribe(facts => {\n for (const el of getElements(\".md-source__repository\")) {\n if (!el.hasAttribute(\"data-md-state\")) {\n el.setAttribute(\"data-md-state\", \"done\")\n el.appendChild(renderSource(facts))\n }\n }\n })\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Repo, User } from \"github-types\"\nimport { Observable, of } from \"rxjs\"\nimport { ajax } from \"rxjs/ajax\"\nimport { filter, pluck, switchMap } from \"rxjs/operators\"\n\nimport { round } from \"utilities\"\n\nimport { SourceFacts } from \"..\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch GitHub source facts\n *\n * @param user - GitHub user\n * @param repo - GitHub repository\n *\n * @return Source facts observable\n */\nexport function fetchSourceFactsFromGitHub(\n user: string, repo?: string\n): Observable {\n return ajax({\n url: typeof repo !== \"undefined\"\n ? `https://api.github.com/repos/${user}/${repo}`\n : `https://api.github.com/users/${user}`,\n responseType: \"json\"\n })\n .pipe(\n filter(({ status }) => status === 200),\n pluck(\"response\"),\n switchMap(data => {\n\n /* GitHub repository */\n if (typeof repo !== \"undefined\") {\n const { stargazers_count, forks_count }: Repo = data\n return of([\n `${round(stargazers_count || 0)} Stars`,\n `${round(forks_count || 0)} Forks`\n ])\n\n /* GitHub user/organization */\n } else {\n const { public_repos }: User = data\n return of([\n `${round(public_repos || 0)} Repositories`\n ])\n }\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { ProjectSchema } from \"gitlab\"\nimport { Observable } from \"rxjs\"\nimport { ajax } from \"rxjs/ajax\"\nimport { filter, map, pluck } from \"rxjs/operators\"\n\nimport { round } from \"utilities\"\n\nimport { SourceFacts } from \"..\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch GitLab source facts\n *\n * @param base - GitLab base\n * @param project - GitLab project\n *\n * @return Source facts observable\n */\nexport function fetchSourceFactsFromGitLab(\n base: string, project: string\n): Observable {\n return ajax({\n url: `https://${base}/api/v4/projects/${encodeURIComponent(project)}`,\n responseType: \"json\"\n })\n .pipe(\n filter(({ status }) => status === 200),\n pluck(\"response\"),\n map(({ star_count, forks_count }: ProjectSchema) => ([\n `${round(star_count)} Stars`,\n `${round(forks_count)} Forks`\n ]))\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n// DISCLAIMER: this file is still WIP. There're some refactoring opportunities\n// which must be tackled after we gathered some feedback on v5.\n// tslint:disable\n\nimport { values } from \"ramda\"\nimport {\n merge,\n combineLatest,\n animationFrameScheduler,\n fromEvent,\n from,\n defer,\n of,\n NEVER\n} from \"rxjs\"\nimport { ajax } from \"rxjs/ajax\"\nimport {\n delay,\n switchMap,\n tap,\n filter,\n withLatestFrom,\n observeOn,\n take,\n shareReplay,\n pluck,\n catchError\n} from \"rxjs/operators\"\n\nimport {\n watchToggle,\n setToggle,\n getElements,\n watchMedia,\n watchDocument,\n watchLocation,\n watchLocationHash,\n watchViewport,\n isLocalLocation,\n setLocationHash,\n watchLocationBase\n} from \"browser\"\nimport {\n mountHeader,\n mountHero,\n mountMain,\n mountNavigation,\n mountSearch,\n mountTableOfContents,\n mountTabs,\n useComponent,\n setupComponents,\n mountSearchQuery,\n mountSearchReset,\n mountSearchResult\n} from \"components\"\nimport {\n setupClipboard,\n setupDialog,\n setupKeyboard,\n setupInstantLoading,\n setupSearchWorker,\n SearchIndex\n} from \"integrations\"\nimport {\n patchTables,\n patchDetails,\n patchScrollfix,\n patchSource,\n patchScripts\n} from \"patches\"\nimport { isConfig } from \"utilities\"\n\n/* ------------------------------------------------------------------------- */\n\n/* Denote that JavaScript is available */\ndocument.documentElement.classList.remove(\"no-js\")\ndocument.documentElement.classList.add(\"js\")\n\n/* Test for iOS */\nif (navigator.userAgent.match(/(iPad|iPhone|iPod)/g))\n document.documentElement.classList.add(\"ios\")\n\n/**\n * Set scroll lock\n *\n * @param el - Scrollable element\n * @param value - Vertical offset\n */\nexport function setScrollLock(\n el: HTMLElement, value: number\n): void {\n el.setAttribute(\"data-md-state\", \"lock\")\n el.style.top = `-${value}px`\n}\n\n/**\n * Reset scroll lock\n *\n * @param el - Scrollable element\n */\nexport function resetScrollLock(\n el: HTMLElement\n): void {\n const value = -1 * parseInt(el.style.top, 10)\n el.removeAttribute(\"data-md-state\")\n el.style.top = \"\"\n if (value)\n window.scrollTo(0, value)\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Initialize Material for MkDocs\n *\n * @param config - Configuration\n */\nexport function initialize(config: unknown) {\n if (!isConfig(config))\n throw new SyntaxError(`Invalid configuration: ${JSON.stringify(config)}`)\n\n /* Set up subjects */\n const document$ = watchDocument()\n const location$ = watchLocation()\n\n /* Set up user interface observables */\n const base$ = watchLocationBase(config.base, { location$ })\n const hash$ = watchLocationHash()\n const viewport$ = watchViewport()\n const tablet$ = watchMedia(\"(min-width: 960px)\")\n const screen$ = watchMedia(\"(min-width: 1220px)\")\n\n /* ----------------------------------------------------------------------- */\n\n /* Set up component bindings */\n setupComponents([\n \"announce\", /* Announcement bar */\n \"container\", /* Container */\n \"header\", /* Header */\n \"header-title\", /* Header title */\n \"hero\", /* Hero */\n \"main\", /* Main area */\n \"navigation\", /* Navigation */\n \"search\", /* Search */\n \"search-query\", /* Search input */\n \"search-reset\", /* Search reset */\n \"search-result\", /* Search results */\n \"skip\", /* Skip link */\n \"tabs\", /* Tabs */\n \"toc\" /* Table of contents */\n ], { document$ })\n\n const keyboard$ = setupKeyboard()\n\n patchDetails({ document$, hash$ })\n patchScripts({ document$ })\n patchSource({ document$ })\n patchTables({ document$ })\n\n /* Force 1px scroll offset to trigger overflow scrolling */\n patchScrollfix({ document$ })\n\n /* Set up clipboard and dialog */\n const dialog$ = setupDialog()\n const clipboard$ = setupClipboard({ document$, dialog$ })\n\n /* ----------------------------------------------------------------------- */\n\n /* Create header observable */\n const header$ = useComponent(\"header\")\n .pipe(\n mountHeader({ document$, viewport$ }),\n shareReplay(1)\n )\n\n const main$ = useComponent(\"main\")\n .pipe(\n mountMain({ header$, viewport$ }),\n shareReplay(1)\n )\n\n /* ----------------------------------------------------------------------- */\n\n const navigation$ = useComponent(\"navigation\")\n .pipe(\n mountNavigation({ header$, main$, viewport$, screen$ }),\n shareReplay(1) // shareReplay because there might be late subscribers\n )\n\n const toc$ = useComponent(\"toc\")\n .pipe(\n mountTableOfContents({ header$, main$, viewport$, tablet$ }),\n shareReplay(1)\n )\n\n const tabs$ = useComponent(\"tabs\")\n .pipe(\n mountTabs({ header$, viewport$, screen$ }),\n shareReplay(1)\n )\n\n const hero$ = useComponent(\"hero\")\n .pipe(\n mountHero({ header$, viewport$ }),\n shareReplay(1)\n )\n\n /* ----------------------------------------------------------------------- */\n\n /* Search worker */\n const worker$ = defer(() => {\n const index = config.search && config.search.index\n ? config.search.index\n : undefined\n\n /* Fetch index if it wasn't passed explicitly */\n const index$ = typeof index !== \"undefined\"\n ? from(index)\n : base$\n .pipe(\n switchMap(base => ajax({\n url: `${base}/search/search_index.json`,\n responseType: \"json\",\n withCredentials: true\n })\n .pipe(\n pluck(\"response\")\n )\n )\n )\n\n return of(setupSearchWorker(config.search.worker, {\n base$, index$\n }))\n })\n\n /* ----------------------------------------------------------------------- */\n\n /* Mount search query */\n const search$ = worker$\n .pipe(\n switchMap(worker => {\n\n const query$ = useComponent(\"search-query\")\n .pipe(\n mountSearchQuery(worker, { transform: config.search.transform }),\n shareReplay(1)\n )\n\n /* Mount search reset */\n const reset$ = useComponent(\"search-reset\")\n .pipe(\n mountSearchReset(),\n shareReplay(1)\n )\n\n /* Mount search result */\n const result$ = useComponent(\"search-result\")\n .pipe(\n mountSearchResult(worker, { query$ }),\n shareReplay(1)\n )\n\n return useComponent(\"search\")\n .pipe(\n mountSearch(worker, { query$, reset$, result$ }),\n shareReplay(1)\n )\n }),\n catchError(() => {\n useComponent(\"search\")\n .subscribe(el => el.hidden = true) // TODO: Hack\n return NEVER\n })\n )\n\n /* ----------------------------------------------------------------------- */\n\n // // put into search...\n hash$\n .pipe(\n tap(() => setToggle(\"search\", false)),\n delay(125), // ensure that it runs after the body scroll reset...\n )\n .subscribe(hash => setLocationHash(`#${hash}`))\n\n // TODO: scroll restoration must be centralized\n combineLatest([\n watchToggle(\"search\"),\n tablet$,\n ])\n .pipe(\n withLatestFrom(viewport$),\n switchMap(([[toggle, tablet], { offset: { y }}]) => {\n const active = toggle && !tablet\n return document$\n .pipe(\n delay(active ? 400 : 100),\n observeOn(animationFrameScheduler),\n tap(({ body }) => active\n ? setScrollLock(body, y)\n : resetScrollLock(body)\n )\n )\n })\n )\n .subscribe()\n\n /* ----------------------------------------------------------------------- */\n\n /* Always close drawer on click */\n fromEvent(document.body, \"click\")\n .pipe(\n filter(ev => !(ev.metaKey || ev.ctrlKey)),\n filter(ev => {\n if (ev.target instanceof HTMLElement) {\n const el = ev.target.closest(\"a\") // TODO: abstract as link click?\n if (el && isLocalLocation(el)) {\n return true\n }\n }\n return false\n })\n )\n .subscribe(() => {\n setToggle(\"drawer\", false)\n })\n\n /* Enable instant loading, if not on file:// protocol */\n if (config.features.includes(\"instant\") && location.protocol !== \"file:\")\n setupInstantLoading({ document$, location$, viewport$ })\n\n /* ----------------------------------------------------------------------- */\n\n /* Unhide permalinks on first tab */\n keyboard$\n .pipe(\n filter(key => key.mode === \"global\" && key.type === \"Tab\"),\n take(1)\n )\n .subscribe(() => {\n for (const link of getElements(\".headerlink\"))\n link.style.visibility = \"visible\"\n })\n\n /* ----------------------------------------------------------------------- */\n\n const state = {\n\n /* Browser observables */\n document$,\n location$,\n viewport$,\n\n /* Component observables */\n header$,\n hero$,\n main$,\n navigation$,\n search$,\n tabs$,\n toc$,\n\n /* Integration observables */\n clipboard$,\n keyboard$,\n dialog$\n }\n\n /* Subscribe to all observables */\n merge(...values(state))\n .subscribe()\n return state\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { identity } from \"ramda\"\nimport { Observable, fromEvent, merge } from \"rxjs\"\nimport {\n filter,\n map,\n switchMapTo,\n tap\n} from \"rxjs/operators\"\n\nimport {\n getElement,\n getElements,\n watchMedia\n} from \"browser\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch options\n */\ninterface PatchOptions {\n document$: Observable /* Document observable */\n hash$: Observable /* Location hash observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch all `details` elements\n *\n * This function will ensure that all `details` tags are opened prior to\n * printing, so the whole content of the page is included, and on anchor jumps.\n *\n * @param options - Options\n */\nexport function patchDetails(\n { document$, hash$ }: PatchOptions\n): void {\n const els$ = document$\n .pipe(\n map(() => getElements(\"details\"))\n )\n\n /* Open all details before printing */\n merge(\n watchMedia(\"print\").pipe(filter(identity)), /* Webkit */\n fromEvent(window, \"beforeprint\") /* IE, FF */\n )\n .pipe(\n switchMapTo(els$)\n )\n .subscribe(els => {\n for (const el of els)\n el.setAttribute(\"open\", \"\")\n })\n\n /* Open parent details and fix anchor jump */\n hash$\n .pipe(\n map(id => getElement(`[id=\"${id}\"]`)!),\n filter(el => typeof el !== \"undefined\"),\n tap(el => {\n const details = el.closest(\"details\")\n if (details && !details.open)\n details.setAttribute(\"open\", \"\")\n })\n )\n .subscribe(el => el.scrollIntoView())\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable } from \"rxjs\"\nimport { map, skip, withLatestFrom } from \"rxjs/operators\"\n\nimport {\n createElement,\n getElements,\n replaceElement\n} from \"browser\"\nimport { useComponent } from \"components\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch options\n */\ninterface PatchOptions {\n document$: Observable /* Document observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch all `script` elements\n *\n * This function must be run after a document switch, which means the first\n * emission must be ignored.\n *\n * @param options - Options\n */\nexport function patchScripts(\n { document$ }: PatchOptions\n): void {\n const els$ = document$\n .pipe(\n skip(1),\n withLatestFrom(useComponent(\"container\")),\n map(([, el]) => getElements(\"script\", el))\n )\n\n /* Evaluate all scripts via replacement */\n els$.subscribe(els => {\n for (const el of els) {\n if (el.src || /(^|\\/javascript)$/i.test(el.type)) {\n const script = createElement(\"script\")\n const key = el.src ? \"src\" : \"textContent\"\n script[key] = el[key]!\n replaceElement(el, script)\n }\n }\n })\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable } from \"rxjs\"\nimport { map } from \"rxjs/operators\"\n\nimport {\n createElement,\n getElements,\n replaceElement\n} from \"browser\"\nimport { renderTable } from \"templates\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n document$: Observable /* Document observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch all `table` elements\n *\n * This function will re-render all tables by wrapping them to improve overflow\n * scrolling on smaller screen sizes.\n *\n * @param options - Options\n */\nexport function patchTables(\n { document$ }: MountOptions\n): void {\n const sentinel = createElement(\"table\")\n document$\n .pipe(\n map(() => getElements(\"table:not([class])\"))\n )\n .subscribe(els => {\n for (const el of els) {\n replaceElement(el, sentinel)\n replaceElement(sentinel, renderTable(el))\n }\n })\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/assets/javascripts/bundle.js b/docs/assets/javascripts/bundle.js new file mode 100644 index 00000000..10ae0710 --- /dev/null +++ b/docs/assets/javascripts/bundle.js @@ -0,0 +1,1296 @@ +(function(e, a) { for(var i in a) e[i] = a[i]; }(window, /******/ (function(modules) { // webpackBootstrap +/******/ // install a JSONP callback for chunk loading +/******/ function webpackJsonpCallback(data) { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var executeModules = data[2]; +/******/ +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0, resolves = []; +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ resolves.push(installedChunks[chunkId][0]); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ for(moduleId in moreModules) { +/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) { +/******/ modules[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(parentJsonpFunction) parentJsonpFunction(data); +/******/ +/******/ while(resolves.length) { +/******/ resolves.shift()(); +/******/ } +/******/ +/******/ // add entry modules from loaded chunk to deferred list +/******/ deferredModules.push.apply(deferredModules, executeModules || []); +/******/ +/******/ // run deferred modules when all chunks ready +/******/ return checkDeferredModules(); +/******/ }; +/******/ function checkDeferredModules() { +/******/ var result; +/******/ for(var i = 0; i < deferredModules.length; i++) { +/******/ var deferredModule = deferredModules[i]; +/******/ var fulfilled = true; +/******/ for(var j = 1; j < deferredModule.length; j++) { +/******/ var depId = deferredModule[j]; +/******/ if(installedChunks[depId] !== 0) fulfilled = false; +/******/ } +/******/ if(fulfilled) { +/******/ deferredModules.splice(i--, 1); +/******/ result = __webpack_require__(__webpack_require__.s = deferredModule[0]); +/******/ } +/******/ } +/******/ +/******/ return result; +/******/ } +/******/ +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // Promise = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "assets/javascripts/bundle": 0 +/******/ }; +/******/ +/******/ var deferredModules = []; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ var jsonpArray = window["webpackJsonp"] = window["webpackJsonp"] || []; +/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray); +/******/ jsonpArray.push = webpackJsonpCallback; +/******/ jsonpArray = jsonpArray.slice(); +/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]); +/******/ var parentJsonpFunction = oldJsonpFunction; +/******/ +/******/ +/******/ // add entry module to deferred list +/******/ deferredModules.push(["./src/assets/javascripts/index.ts","assets/javascripts/vendor"]); +/******/ // run deferred modules when ready +/******/ return checkDeferredModules(); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./src/assets/javascripts/browser/document/index.ts": +/*!**********************************************************!*\ + !*** ./src/assets/javascripts/browser/document/index.ts ***! + \**********************************************************/ +/*! exports provided: watchDocument */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchDocument\", function() { return watchDocument; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch document\n *\n * Documents must be implemented as subjects, so all downstream observables are\n * automatically updated when a new document is emitted. This enabled features\n * like instant loading.\n *\n * @return Document subject\n */\nfunction watchDocument() {\n var document$ = new rxjs__WEBPACK_IMPORTED_MODULE_0__[\"ReplaySubject\"]();\n Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(document, \"DOMContentLoaded\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"mapTo\"])(document))\n .subscribe(document$);\n /* Return document */\n return document$;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/document/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/element/_/index.ts": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/browser/element/_/index.ts ***! + \***********************************************************/ +/*! exports provided: getElement, getElementOrThrow, getActiveElement, getElements, createElement, replaceElement */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getElement\", function() { return getElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getElementOrThrow\", function() { return getElementOrThrow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getActiveElement\", function() { return getActiveElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getElements\", function() { return getElements; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createElement\", function() { return createElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"replaceElement\", function() { return replaceElement; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Retrieve an element matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @return Element or nothing\n */\nfunction getElement(selector, node) {\n if (node === void 0) { node = document; }\n return node.querySelector(selector) || undefined;\n}\n/**\n * Retrieve an element matching a query selector or throw a reference error\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @return Element\n */\nfunction getElementOrThrow(selector, node) {\n if (node === void 0) { node = document; }\n var el = getElement(selector, node);\n if (typeof el === \"undefined\")\n throw new ReferenceError(\"Missing element: expected \\\"\" + selector + \"\\\" to be present\");\n return el;\n}\n/**\n * Retrieve the currently active element\n *\n * @return Element or nothing\n */\nfunction getActiveElement() {\n return document.activeElement instanceof HTMLElement\n ? document.activeElement\n : undefined;\n}\n/**\n * Retrieve all elements matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @return Elements\n */\nfunction getElements(selector, node) {\n if (node === void 0) { node = document; }\n return Array.from(node.querySelectorAll(selector));\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Create an element\n *\n * @template T - Tag name type\n *\n * @param tagName - Tag name\n *\n * @return Element\n */\nfunction createElement(tagName) {\n return document.createElement(tagName);\n}\n/**\n * Replace an element with another element\n *\n * @param source - Source element\n * @param target - Target element\n */\nfunction replaceElement(source, target) {\n source.replaceWith(target);\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/element/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/element/focus/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/browser/element/focus/index.ts ***! + \***************************************************************/ +/*! exports provided: setElementFocus, watchElementFocus */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setElementFocus\", function() { return setElementFocus; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchElementFocus\", function() { return watchElementFocus; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_ */ \"./src/assets/javascripts/browser/element/_/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set element focus\n *\n * @param el - Element\n * @param value - Whether the element should be focused\n */\nfunction setElementFocus(el, value) {\n if (value === void 0) { value = true; }\n if (value)\n el.focus();\n else\n el.blur();\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Watch element focus\n *\n * @param el - Element\n *\n * @return Element focus observable\n */\nfunction watchElementFocus(el) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"merge\"])(Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(el, \"focus\"), Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(el, \"blur\"))\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (_a) {\n var type = _a.type;\n return type === \"focus\";\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"startWith\"])(el === Object(___WEBPACK_IMPORTED_MODULE_2__[\"getActiveElement\"])()), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"shareReplay\"])(1));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/element/focus/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/element/index.ts": +/*!*********************************************************!*\ + !*** ./src/assets/javascripts/browser/element/index.ts ***! + \*********************************************************/ +/*! exports provided: getElement, getElementOrThrow, getActiveElement, getElements, createElement, replaceElement, setElementFocus, watchElementFocus, getElementOffset, watchElementOffset, setElementSelection, getElementSize, watchElementSize */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/browser/element/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElement\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"getElement\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElementOrThrow\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"getElementOrThrow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getActiveElement\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"getActiveElement\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElements\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"getElements\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createElement\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"createElement\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"replaceElement\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"replaceElement\"]; });\n\n/* harmony import */ var _focus__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./focus */ \"./src/assets/javascripts/browser/element/focus/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setElementFocus\", function() { return _focus__WEBPACK_IMPORTED_MODULE_1__[\"setElementFocus\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchElementFocus\", function() { return _focus__WEBPACK_IMPORTED_MODULE_1__[\"watchElementFocus\"]; });\n\n/* harmony import */ var _offset__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./offset */ \"./src/assets/javascripts/browser/element/offset/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElementOffset\", function() { return _offset__WEBPACK_IMPORTED_MODULE_2__[\"getElementOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchElementOffset\", function() { return _offset__WEBPACK_IMPORTED_MODULE_2__[\"watchElementOffset\"]; });\n\n/* harmony import */ var _select__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./select */ \"./src/assets/javascripts/browser/element/select/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setElementSelection\", function() { return _select__WEBPACK_IMPORTED_MODULE_3__[\"setElementSelection\"]; });\n\n/* harmony import */ var _size__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./size */ \"./src/assets/javascripts/browser/element/size/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElementSize\", function() { return _size__WEBPACK_IMPORTED_MODULE_4__[\"getElementSize\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchElementSize\", function() { return _size__WEBPACK_IMPORTED_MODULE_4__[\"watchElementSize\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/element/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/element/offset/index.ts": +/*!****************************************************************!*\ + !*** ./src/assets/javascripts/browser/element/offset/index.ts ***! + \****************************************************************/ +/*! exports provided: getElementOffset, watchElementOffset */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getElementOffset\", function() { return getElementOffset; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchElementOffset\", function() { return watchElementOffset; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Retrieve element offset\n *\n * @param el - Element\n *\n * @return Element offset\n */\nfunction getElementOffset(el) {\n return {\n x: el.scrollLeft,\n y: el.scrollTop\n };\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Watch element offset\n *\n * @param el - Element\n *\n * @return Element offset observable\n */\nfunction watchElementOffset(el) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"merge\"])(Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(el, \"scroll\"), Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(window, \"resize\"))\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function () { return getElementOffset(el); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"startWith\"])(getElementOffset(el)), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"shareReplay\"])(1));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/element/offset/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/element/select/index.ts": +/*!****************************************************************!*\ + !*** ./src/assets/javascripts/browser/element/select/index.ts ***! + \****************************************************************/ +/*! exports provided: setElementSelection */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setElementSelection\", function() { return setElementSelection; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set element text selection\n *\n * @param el - Element\n */\nfunction setElementSelection(el) {\n if (el instanceof HTMLInputElement)\n el.select();\n else\n throw new Error(\"Not implemented\");\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/element/select/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/element/size/index.ts": +/*!**************************************************************!*\ + !*** ./src/assets/javascripts/browser/element/size/index.ts ***! + \**************************************************************/ +/*! exports provided: getElementSize, watchElementSize */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getElementSize\", function() { return getElementSize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchElementSize\", function() { return watchElementSize; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var resize_observer_polyfill__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! resize-observer-polyfill */ \"./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Retrieve element size\n *\n * @param el - Element\n *\n * @return Element size\n */\nfunction getElementSize(el) {\n return {\n width: el.offsetWidth,\n height: el.offsetHeight\n };\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Watch element size\n *\n * @param el - Element\n *\n * @return Element size observable\n */\nfunction watchElementSize(el) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"fromEventPattern\"])(function (next) {\n new resize_observer_polyfill__WEBPACK_IMPORTED_MODULE_1__[\"default\"](function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 1), contentRect = _b[0].contentRect;\n return next({\n width: Math.round(contentRect.width),\n height: Math.round(contentRect.height)\n });\n })\n .observe(el);\n })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"startWith\"])(getElementSize(el)), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"shareReplay\"])(1));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/element/size/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/index.ts": +/*!*************************************************!*\ + !*** ./src/assets/javascripts/browser/index.ts ***! + \*************************************************/ +/*! exports provided: watchDocument, getElement, getElementOrThrow, getActiveElement, getElements, createElement, replaceElement, setElementFocus, watchElementFocus, getElementOffset, watchElementOffset, setElementSelection, getElementSize, watchElementSize, isSusceptibleToKeyboard, watchKeyboard, getLocation, setLocation, isLocalLocation, isAnchorLocation, watchLocation, watchLocationBase, getLocationHash, setLocationHash, watchLocationHash, watchMedia, getToggle, setToggle, watchToggle, watchViewport, watchViewportAt, getViewportOffset, setViewportOffset, watchViewportOffset, getViewportSize, watchViewportSize, watchWorker */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _document__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./document */ \"./src/assets/javascripts/browser/document/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchDocument\", function() { return _document__WEBPACK_IMPORTED_MODULE_0__[\"watchDocument\"]; });\n\n/* harmony import */ var _element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./element */ \"./src/assets/javascripts/browser/element/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElement\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"getElement\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElementOrThrow\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"getElementOrThrow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getActiveElement\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"getActiveElement\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElements\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"getElements\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createElement\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"createElement\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"replaceElement\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"replaceElement\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setElementFocus\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"setElementFocus\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchElementFocus\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"watchElementFocus\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElementOffset\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"getElementOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchElementOffset\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"watchElementOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setElementSelection\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"setElementSelection\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElementSize\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"getElementSize\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchElementSize\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"watchElementSize\"]; });\n\n/* harmony import */ var _keyboard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./keyboard */ \"./src/assets/javascripts/browser/keyboard/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSusceptibleToKeyboard\", function() { return _keyboard__WEBPACK_IMPORTED_MODULE_2__[\"isSusceptibleToKeyboard\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchKeyboard\", function() { return _keyboard__WEBPACK_IMPORTED_MODULE_2__[\"watchKeyboard\"]; });\n\n/* harmony import */ var _location__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./location */ \"./src/assets/javascripts/browser/location/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getLocation\", function() { return _location__WEBPACK_IMPORTED_MODULE_3__[\"getLocation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setLocation\", function() { return _location__WEBPACK_IMPORTED_MODULE_3__[\"setLocation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isLocalLocation\", function() { return _location__WEBPACK_IMPORTED_MODULE_3__[\"isLocalLocation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isAnchorLocation\", function() { return _location__WEBPACK_IMPORTED_MODULE_3__[\"isAnchorLocation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchLocation\", function() { return _location__WEBPACK_IMPORTED_MODULE_3__[\"watchLocation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchLocationBase\", function() { return _location__WEBPACK_IMPORTED_MODULE_3__[\"watchLocationBase\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getLocationHash\", function() { return _location__WEBPACK_IMPORTED_MODULE_3__[\"getLocationHash\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setLocationHash\", function() { return _location__WEBPACK_IMPORTED_MODULE_3__[\"setLocationHash\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchLocationHash\", function() { return _location__WEBPACK_IMPORTED_MODULE_3__[\"watchLocationHash\"]; });\n\n/* harmony import */ var _media__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./media */ \"./src/assets/javascripts/browser/media/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchMedia\", function() { return _media__WEBPACK_IMPORTED_MODULE_4__[\"watchMedia\"]; });\n\n/* harmony import */ var _toggle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./toggle */ \"./src/assets/javascripts/browser/toggle/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getToggle\", function() { return _toggle__WEBPACK_IMPORTED_MODULE_5__[\"getToggle\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setToggle\", function() { return _toggle__WEBPACK_IMPORTED_MODULE_5__[\"setToggle\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchToggle\", function() { return _toggle__WEBPACK_IMPORTED_MODULE_5__[\"watchToggle\"]; });\n\n/* harmony import */ var _viewport__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./viewport */ \"./src/assets/javascripts/browser/viewport/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchViewport\", function() { return _viewport__WEBPACK_IMPORTED_MODULE_6__[\"watchViewport\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchViewportAt\", function() { return _viewport__WEBPACK_IMPORTED_MODULE_6__[\"watchViewportAt\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getViewportOffset\", function() { return _viewport__WEBPACK_IMPORTED_MODULE_6__[\"getViewportOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setViewportOffset\", function() { return _viewport__WEBPACK_IMPORTED_MODULE_6__[\"setViewportOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchViewportOffset\", function() { return _viewport__WEBPACK_IMPORTED_MODULE_6__[\"watchViewportOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getViewportSize\", function() { return _viewport__WEBPACK_IMPORTED_MODULE_6__[\"getViewportSize\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchViewportSize\", function() { return _viewport__WEBPACK_IMPORTED_MODULE_6__[\"watchViewportSize\"]; });\n\n/* harmony import */ var _worker__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./worker */ \"./src/assets/javascripts/browser/worker/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchWorker\", function() { return _worker__WEBPACK_IMPORTED_MODULE_7__[\"watchWorker\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/keyboard/index.ts": +/*!**********************************************************!*\ + !*** ./src/assets/javascripts/browser/keyboard/index.ts ***! + \**********************************************************/ +/*! exports provided: isSusceptibleToKeyboard, watchKeyboard */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSusceptibleToKeyboard\", function() { return isSusceptibleToKeyboard; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchKeyboard\", function() { return watchKeyboard; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Check whether an element may receive keyboard input\n *\n * @param el - Element\n *\n * @return Test result\n */\nfunction isSusceptibleToKeyboard(el) {\n switch (el.tagName) {\n /* Form elements */\n case \"INPUT\":\n case \"SELECT\":\n case \"TEXTAREA\":\n return true;\n /* Everything else */\n default:\n return el.isContentEditable;\n }\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Watch keyboard\n *\n * @return Keyboard observable\n */\nfunction watchKeyboard() {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(window, \"keydown\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(function (ev) { return !(ev.metaKey || ev.ctrlKey); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (ev) { return ({\n type: ev.key,\n claim: function () {\n ev.preventDefault();\n ev.stopPropagation();\n }\n }); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"share\"])());\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/keyboard/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/location/_/index.ts": +/*!************************************************************!*\ + !*** ./src/assets/javascripts/browser/location/_/index.ts ***! + \************************************************************/ +/*! exports provided: getLocation, setLocation, isLocalLocation, isAnchorLocation, watchLocation */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getLocation\", function() { return getLocation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setLocation\", function() { return setLocation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isLocalLocation\", function() { return isLocalLocation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAnchorLocation\", function() { return isAnchorLocation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchLocation\", function() { return watchLocation; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Retrieve location\n *\n * This function will return a `URL` object (and not `Location`) in order to\n * normalize typings across the application. Furthermore, locations need to be\n * tracked without setting them and `Location` is a singleton which represents\n * the current location.\n *\n * @return URL\n */\nfunction getLocation() {\n return new URL(location.href);\n}\n/**\n * Set location\n *\n * @param url - URL to change to\n */\nfunction setLocation(url) {\n location.href = url.href;\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Check whether a URL is a local link or a file (except `.html`)\n *\n * @param url - URL or HTML anchor element\n * @param ref - Reference URL\n *\n * @return Test result\n */\nfunction isLocalLocation(url, ref) {\n if (ref === void 0) { ref = location; }\n return url.host === ref.host\n && /^(?:\\/[\\w-]+)*(?:\\/?|\\.html)$/i.test(url.pathname);\n}\n/**\n * Check whether a URL is an anchor link on the current page\n *\n * @param url - URL or HTML anchor element\n * @param ref - Reference URL\n *\n * @return Test result\n */\nfunction isAnchorLocation(url, ref) {\n if (ref === void 0) { ref = location; }\n return url.pathname === ref.pathname\n && url.hash.length > 0;\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Watch location\n *\n * @return Location subject\n */\nfunction watchLocation() {\n return new rxjs__WEBPACK_IMPORTED_MODULE_0__[\"BehaviorSubject\"](getLocation());\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/location/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/location/base/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/browser/location/base/index.ts ***! + \***************************************************************/ +/*! exports provided: watchLocationBase */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchLocationBase\", function() { return watchLocationBase; });\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ------------------------------------------------------------------------- */\n/**\n * Watch location base\n *\n * @return Location base observable\n */\nfunction watchLocationBase(base, _a) {\n var location$ = _a.location$;\n return location$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_0__[\"take\"])(1), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_0__[\"map\"])(function (_a) {\n var href = _a.href;\n return new URL(base, href)\n .toString()\n .replace(/\\/$/, \"\");\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_0__[\"shareReplay\"])(1));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/location/base/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/location/hash/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/browser/location/hash/index.ts ***! + \***************************************************************/ +/*! exports provided: getLocationHash, setLocationHash, watchLocationHash */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getLocationHash\", function() { return getLocationHash; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setLocationHash\", function() { return setLocationHash; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchLocationHash\", function() { return watchLocationHash; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Retrieve location hash\n *\n * @return Location hash\n */\nfunction getLocationHash() {\n return location.hash.substring(1);\n}\n/**\n * Set location hash\n *\n * Setting a new fragment identifier via `location.hash` will have no effect\n * if the value doesn't change. When a new fragment identifier is set, we want\n * the browser to target the respective element at all times, which is why we\n * use this dirty little trick.\n *\n * @param hash - Location hash\n */\nfunction setLocationHash(hash) {\n var el = Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"])(\"a\");\n el.href = hash;\n el.addEventListener(\"click\", function (ev) { return ev.stopPropagation(); });\n el.click();\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Watch location hash\n *\n * @return Location hash observable\n */\nfunction watchLocationHash() {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(window, \"hashchange\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(getLocationHash), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"startWith\"])(getLocationHash()), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(function (hash) { return hash.length > 0; }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"share\"])());\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/location/hash/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/location/index.ts": +/*!**********************************************************!*\ + !*** ./src/assets/javascripts/browser/location/index.ts ***! + \**********************************************************/ +/*! exports provided: getLocation, setLocation, isLocalLocation, isAnchorLocation, watchLocation, watchLocationBase, getLocationHash, setLocationHash, watchLocationHash */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/browser/location/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getLocation\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"getLocation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setLocation\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"setLocation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isLocalLocation\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"isLocalLocation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isAnchorLocation\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"isAnchorLocation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchLocation\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"watchLocation\"]; });\n\n/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./base */ \"./src/assets/javascripts/browser/location/base/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchLocationBase\", function() { return _base__WEBPACK_IMPORTED_MODULE_1__[\"watchLocationBase\"]; });\n\n/* harmony import */ var _hash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./hash */ \"./src/assets/javascripts/browser/location/hash/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getLocationHash\", function() { return _hash__WEBPACK_IMPORTED_MODULE_2__[\"getLocationHash\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setLocationHash\", function() { return _hash__WEBPACK_IMPORTED_MODULE_2__[\"setLocationHash\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchLocationHash\", function() { return _hash__WEBPACK_IMPORTED_MODULE_2__[\"watchLocationHash\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/location/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/media/index.ts": +/*!*******************************************************!*\ + !*** ./src/assets/javascripts/browser/media/index.ts ***! + \*******************************************************/ +/*! exports provided: watchMedia */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchMedia\", function() { return watchMedia; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch media query\n *\n * @param query - Media query\n *\n * @return Media observable\n */\nfunction watchMedia(query) {\n var media = matchMedia(query);\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEventPattern\"])(function (next) {\n return media.addListener(function () { return next(media.matches); });\n })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"startWith\"])(media.matches), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"shareReplay\"])(1));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/media/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/toggle/index.ts": +/*!********************************************************!*\ + !*** ./src/assets/javascripts/browser/toggle/index.ts ***! + \********************************************************/ +/*! exports provided: getToggle, setToggle, watchToggle */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getToggle\", function() { return getToggle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setToggle\", function() { return setToggle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchToggle\", function() { return watchToggle; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var _element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../element */ \"./src/assets/javascripts/browser/element/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n/**\n * Toggle map\n */\nvar toggles = {\n drawer: Object(_element__WEBPACK_IMPORTED_MODULE_2__[\"getElementOrThrow\"])(\"[data-md-toggle=drawer]\"),\n search: Object(_element__WEBPACK_IMPORTED_MODULE_2__[\"getElementOrThrow\"])(\"[data-md-toggle=search]\")\n};\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Retrieve the value of a toggle\n *\n * @param name - Toggle\n *\n * @return Toggle value\n */\nfunction getToggle(name) {\n return toggles[name].checked;\n}\n/**\n * Set toggle\n *\n * Simulating a click event seems to be the most cross-browser compatible way\n * of changing the value while also emitting a `change` event. Before, Material\n * used `CustomEvent` to programmatically change the value of a toggle, but this\n * is a much simpler and cleaner solution which doesn't require a polyfill.\n *\n * @param name - Toggle\n * @param value - Toggle value\n */\nfunction setToggle(name, value) {\n if (toggles[name].checked !== value)\n toggles[name].click();\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Watch toggle\n *\n * @param name - Toggle\n *\n * @return Toggle value observable\n */\nfunction watchToggle(name) {\n var el = toggles[name];\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(el, \"change\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function () { return el.checked; }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"startWith\"])(el.checked));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/toggle/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/viewport/_/index.ts": +/*!************************************************************!*\ + !*** ./src/assets/javascripts/browser/viewport/_/index.ts ***! + \************************************************************/ +/*! exports provided: watchViewport, watchViewportAt */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchViewport\", function() { return watchViewport; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchViewportAt\", function() { return watchViewportAt; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var _offset__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../offset */ \"./src/assets/javascripts/browser/viewport/offset/index.ts\");\n/* harmony import */ var _size__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../size */ \"./src/assets/javascripts/browser/viewport/size/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch viewport\n *\n * @return Viewport observable\n */\nfunction watchViewport() {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"combineLatest\"])([\n Object(_offset__WEBPACK_IMPORTED_MODULE_3__[\"watchViewportOffset\"])(),\n Object(_size__WEBPACK_IMPORTED_MODULE_4__[\"watchViewportSize\"])()\n ])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), offset = _b[0], size = _b[1];\n return ({ offset: offset, size: size });\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"shareReplay\"])(1));\n}\n/**\n * Watch viewport relative to element\n *\n * @param el - Element\n * @param options - Options\n *\n * @return Viewport observable\n */\nfunction watchViewportAt(el, _a) {\n var header$ = _a.header$, viewport$ = _a.viewport$;\n var size$ = viewport$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"distinctUntilKeyChanged\"])(\"size\"));\n /* Compute element offset */\n var offset$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"combineLatest\"])([size$, header$])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function () { return ({\n x: el.offsetLeft,\n y: el.offsetTop\n }); }));\n /* Compute relative viewport, return hot observable */\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"combineLatest\"])([header$, viewport$, offset$])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 3), height = _b[0].height, _c = _b[1], offset = _c.offset, size = _c.size, _d = _b[2], x = _d.x, y = _d.y;\n return ({\n offset: {\n x: offset.x - x,\n y: offset.y - y + height\n },\n size: size\n });\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"shareReplay\"])(1));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/viewport/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/viewport/index.ts": +/*!**********************************************************!*\ + !*** ./src/assets/javascripts/browser/viewport/index.ts ***! + \**********************************************************/ +/*! exports provided: watchViewport, watchViewportAt, getViewportOffset, setViewportOffset, watchViewportOffset, getViewportSize, watchViewportSize */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/browser/viewport/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchViewport\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"watchViewport\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchViewportAt\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"watchViewportAt\"]; });\n\n/* harmony import */ var _offset__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./offset */ \"./src/assets/javascripts/browser/viewport/offset/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getViewportOffset\", function() { return _offset__WEBPACK_IMPORTED_MODULE_1__[\"getViewportOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setViewportOffset\", function() { return _offset__WEBPACK_IMPORTED_MODULE_1__[\"setViewportOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchViewportOffset\", function() { return _offset__WEBPACK_IMPORTED_MODULE_1__[\"watchViewportOffset\"]; });\n\n/* harmony import */ var _size__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./size */ \"./src/assets/javascripts/browser/viewport/size/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getViewportSize\", function() { return _size__WEBPACK_IMPORTED_MODULE_2__[\"getViewportSize\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchViewportSize\", function() { return _size__WEBPACK_IMPORTED_MODULE_2__[\"watchViewportSize\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/viewport/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/viewport/offset/index.ts": +/*!*****************************************************************!*\ + !*** ./src/assets/javascripts/browser/viewport/offset/index.ts ***! + \*****************************************************************/ +/*! exports provided: getViewportOffset, setViewportOffset, watchViewportOffset */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getViewportOffset\", function() { return getViewportOffset; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setViewportOffset\", function() { return setViewportOffset; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchViewportOffset\", function() { return watchViewportOffset; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Retrieve viewport offset\n *\n * On iOS Safari, viewport offset can be negative due to overflow scrolling.\n * As this may induce strange behaviors downstream, we'll just limit it to 0.\n *\n * @return Viewport offset\n */\nfunction getViewportOffset() {\n return {\n x: Math.max(0, pageXOffset),\n y: Math.max(0, pageYOffset)\n };\n}\n/**\n * Set viewport offset\n *\n * @param offset - Viewport offset\n */\nfunction setViewportOffset(_a) {\n var x = _a.x, y = _a.y;\n window.scrollTo(x || 0, y || 0);\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Watch viewport offset\n *\n * @return Viewport offset observable\n */\nfunction watchViewportOffset() {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"merge\"])(Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(window, \"scroll\", { passive: true }), Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(window, \"resize\", { passive: true }))\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(getViewportOffset), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"startWith\"])(getViewportOffset()));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/viewport/offset/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/viewport/size/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/browser/viewport/size/index.ts ***! + \***************************************************************/ +/*! exports provided: getViewportSize, watchViewportSize */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getViewportSize\", function() { return getViewportSize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchViewportSize\", function() { return watchViewportSize; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Retrieve viewport size\n *\n * @return Viewport size\n */\nfunction getViewportSize() {\n return {\n width: innerWidth,\n height: innerHeight\n };\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Watch viewport size\n *\n * @return Viewport size observable\n */\nfunction watchViewportSize() {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(window, \"resize\", { passive: true })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(getViewportSize), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"startWith\"])(getViewportSize()));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/viewport/size/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/worker/index.ts": +/*!********************************************************!*\ + !*** ./src/assets/javascripts/browser/worker/index.ts ***! + \********************************************************/ +/*! exports provided: watchWorker */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchWorker\", function() { return watchWorker; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch a web worker\n *\n * This function returns an observable that will send all values emitted by the\n * message observable to the web worker. Web worker communication is expected\n * to be bidirectional (request-response) and synchronous. Messages that are\n * emitted during a pending request are throttled, the last one is emitted.\n *\n * @param worker - Web worker\n * @param options - Options\n *\n * @return Worker message observable\n */\nfunction watchWorker(worker, _a) {\n var tx$ = _a.tx$;\n /* Intercept messages from worker-like objects */\n var rx$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEventPattern\"])(function (next) {\n return worker.addEventListener(\"message\", next);\n })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"pluck\"])(\"data\"));\n /* Send and receive messages, return hot observable */\n return tx$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"throttle\"])(function () { return rx$; }, { leading: true, trailing: true }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"tap\"])(function (message) { return worker.postMessage(message); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMapTo\"])(rx$), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"share\"])());\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/worker/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/_/index.ts": +/*!******************************************************!*\ + !*** ./src/assets/javascripts/components/_/index.ts ***! + \******************************************************/ +/*! exports provided: setupComponents, useComponent */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupComponents\", function() { return setupComponents; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"useComponent\", function() { return useComponent; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n/**\n * Component map observable\n */\nvar components$;\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set up bindings to components with given names\n *\n * This function will maintain bindings to the elements identified by the given\n * names in-between document switches and update the elements in-place.\n *\n * @param names - Component names\n * @param options - Options\n */\nfunction setupComponents(names, _a) {\n var document$ = _a.document$;\n components$ = document$\n .pipe(\n /* Build component map */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (document) { return names.reduce(function (components, name) {\n var _a;\n var el = Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElement\"])(\"[data-md-component=\" + name + \"]\", document);\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({}, components), typeof el !== \"undefined\" ? (_a = {}, _a[name] = el, _a) : {});\n }, {}); }), \n /* Re-compute component map on document switch */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"scan\"])(function (prev, next) {\n var e_1, _a;\n try {\n for (var names_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(names), names_1_1 = names_1.next(); !names_1_1.done; names_1_1 = names_1.next()) {\n var name = names_1_1.value;\n switch (name) {\n /* Top-level components: update */\n case \"announce\":\n case \"header-title\":\n case \"container\":\n case \"skip\":\n if (name in prev && typeof prev[name] !== \"undefined\") {\n Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"replaceElement\"])(prev[name], next[name]);\n prev[name] = next[name];\n }\n break;\n /* All other components: rebind */\n default:\n if (typeof next[name] !== \"undefined\")\n prev[name] = Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElement\"])(\"[data-md-component=\" + name + \"]\");\n else\n delete prev[name];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (names_1_1 && !names_1_1.done && (_a = names_1.return)) _a.call(names_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return prev;\n }), \n /* Convert to hot observable */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"shareReplay\"])(1));\n}\nfunction useComponent(name) {\n return components$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (components) { return (typeof components[name] !== \"undefined\"\n ? Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"of\"])(components[name])\n : rxjs__WEBPACK_IMPORTED_MODULE_1__[\"EMPTY\"]); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"distinctUntilChanged\"])());\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/header/_/index.ts": +/*!*************************************************************!*\ + !*** ./src/assets/javascripts/components/header/_/index.ts ***! + \*************************************************************/ +/*! exports provided: mountHeader */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountHeader\", function() { return mountHeader; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../_ */ \"./src/assets/javascripts/components/_/index.ts\");\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../react */ \"./src/assets/javascripts/components/header/react/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount header from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nfunction mountHeader(_a) {\n var document$ = _a.document$, viewport$ = _a.viewport$;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (el) {\n var header$ = Object(_react__WEBPACK_IMPORTED_MODULE_5__[\"watchHeader\"])(el, { document$: document$ });\n /* Compute whether the header should switch to page header */\n var type$ = Object(___WEBPACK_IMPORTED_MODULE_4__[\"useComponent\"])(\"main\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (main) { return Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElement\"])(\"h1, h2, h3, h4, h5, h6\", main); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"filter\"])(function (hx) { return typeof hx !== \"undefined\"; }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"withLatestFrom\"])(Object(___WEBPACK_IMPORTED_MODULE_4__[\"useComponent\"])(\"header-title\")), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), hx = _b[0], title = _b[1];\n return Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"watchViewportAt\"])(hx, { header$: header$, viewport$: viewport$ })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var y = _a.offset.y;\n return y >= hx.offsetHeight ? \"page\" : \"site\";\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"distinctUntilChanged\"])(), Object(_react__WEBPACK_IMPORTED_MODULE_5__[\"applyHeaderType\"])(title));\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"startWith\"])(\"site\"));\n /* Combine into single observable */\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"combineLatest\"])([header$, type$])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), header = _b[0], type = _b[1];\n return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({ type: type }, header));\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"shareReplay\"])(1));\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/header/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/header/index.ts": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/components/header/index.ts ***! + \***********************************************************/ +/*! exports provided: mountHeader, watchHeader, applyHeaderType, setHeaderTitleActive, resetHeaderTitleActive */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/header/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountHeader\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountHeader\"]; });\n\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ \"./src/assets/javascripts/components/header/react/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchHeader\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"watchHeader\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyHeaderType\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"applyHeaderType\"]; });\n\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./set */ \"./src/assets/javascripts/components/header/set/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setHeaderTitleActive\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"setHeaderTitleActive\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetHeaderTitleActive\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetHeaderTitleActive\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/header/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/header/react/index.ts": +/*!*****************************************************************!*\ + !*** ./src/assets/javascripts/components/header/react/index.ts ***! + \*****************************************************************/ +/*! exports provided: watchHeader, applyHeaderType */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchHeader\", function() { return watchHeader; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"applyHeaderType\", function() { return applyHeaderType; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../set */ \"./src/assets/javascripts/components/header/set/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch header\n *\n * @param el - Header element\n *\n * @return Header observable\n */\nfunction watchHeader(el, _a) {\n var document$ = _a.document$;\n return document$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function () {\n var styles = getComputedStyle(el);\n return [\n \"sticky\",\n \"-webkit-sticky\" /* Safari */\n ].includes(styles.position);\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"distinctUntilChanged\"])(), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (sticky) {\n if (sticky) {\n return Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"watchElementSize\"])(el)\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (_a) {\n var height = _a.height;\n return ({\n sticky: true,\n height: height\n });\n }));\n }\n else {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"of\"])({\n sticky: false,\n height: 0\n });\n }\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"shareReplay\"])(1));\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Apply header title type\n *\n * @param el - Header title element\n *\n * @return Operator function\n */\nfunction applyHeaderType(el) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"pipe\"])(\n /* Defer repaint to next animation frame */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"animationFrameScheduler\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"tap\"])(function (type) {\n Object(_set__WEBPACK_IMPORTED_MODULE_3__[\"setHeaderTitleActive\"])(el, type === \"page\");\n }), \n /* Reset on complete or error */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"finalize\"])(function () {\n Object(_set__WEBPACK_IMPORTED_MODULE_3__[\"resetHeaderTitleActive\"])(el);\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/header/react/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/header/set/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/components/header/set/index.ts ***! + \***************************************************************/ +/*! exports provided: setHeaderTitleActive, resetHeaderTitleActive */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setHeaderTitleActive\", function() { return setHeaderTitleActive; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetHeaderTitleActive\", function() { return resetHeaderTitleActive; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set header title active\n *\n * @param el - Header title element\n * @param value - Whether the title is shown\n */\nfunction setHeaderTitleActive(el, value) {\n el.setAttribute(\"data-md-state\", value ? \"active\" : \"\");\n}\n/**\n * Reset header title active\n *\n * @param el - Header title element\n */\nfunction resetHeaderTitleActive(el) {\n el.removeAttribute(\"data-md-state\");\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/header/set/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/hero/_/index.ts": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/components/hero/_/index.ts ***! + \***********************************************************/ +/*! exports provided: mountHero */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountHero\", function() { return mountHero; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../react */ \"./src/assets/javascripts/components/hero/react/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount hero from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nfunction mountHero(_a) {\n var header$ = _a.header$, viewport$ = _a.viewport$;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (el) { return Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"watchViewportAt\"])(el, { header$: header$, viewport$: viewport$ })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (_a) {\n var y = _a.offset.y;\n return ({ hidden: y >= 20 });\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"distinctUntilKeyChanged\"])(\"hidden\"), Object(_react__WEBPACK_IMPORTED_MODULE_3__[\"applyHero\"])(el)); }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/hero/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/hero/index.ts": +/*!*********************************************************!*\ + !*** ./src/assets/javascripts/components/hero/index.ts ***! + \*********************************************************/ +/*! exports provided: mountHero, applyHero, setHeroHidden, resetHeroHidden */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/hero/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountHero\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountHero\"]; });\n\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ \"./src/assets/javascripts/components/hero/react/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyHero\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"applyHero\"]; });\n\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./set */ \"./src/assets/javascripts/components/hero/set/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setHeroHidden\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"setHeroHidden\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetHeroHidden\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetHeroHidden\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/hero/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/hero/react/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/components/hero/react/index.ts ***! + \***************************************************************/ +/*! exports provided: applyHero */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"applyHero\", function() { return applyHero; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../set */ \"./src/assets/javascripts/components/hero/set/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Apply hero\n *\n * @param el - Hero element\n *\n * @return Operator function\n */\nfunction applyHero(el) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"pipe\"])(\n /* Defer repaint to next animation frame */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"animationFrameScheduler\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"tap\"])(function (_a) {\n var hidden = _a.hidden;\n Object(_set__WEBPACK_IMPORTED_MODULE_2__[\"setHeroHidden\"])(el, hidden);\n }), \n /* Reset on complete or error */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"finalize\"])(function () {\n Object(_set__WEBPACK_IMPORTED_MODULE_2__[\"resetHeroHidden\"])(el);\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/hero/react/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/hero/set/index.ts": +/*!*************************************************************!*\ + !*** ./src/assets/javascripts/components/hero/set/index.ts ***! + \*************************************************************/ +/*! exports provided: setHeroHidden, resetHeroHidden */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setHeroHidden\", function() { return setHeroHidden; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetHeroHidden\", function() { return resetHeroHidden; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set hero hidden\n *\n * @param el - Hero element\n * @param value - Whether the element is hidden\n */\nfunction setHeroHidden(el, value) {\n el.setAttribute(\"data-md-state\", value ? \"hidden\" : \"\");\n}\n/**\n * Reset hero hidden\n *\n * @param el - Hero element\n */\nfunction resetHeroHidden(el) {\n el.removeAttribute(\"data-md-state\");\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/hero/set/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/index.ts": +/*!****************************************************!*\ + !*** ./src/assets/javascripts/components/index.ts ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupComponents\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"setupComponents\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useComponent\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"useComponent\"]; });\n\n/* harmony import */ var _header__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./header */ \"./src/assets/javascripts/components/header/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountHeader\", function() { return _header__WEBPACK_IMPORTED_MODULE_1__[\"mountHeader\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchHeader\", function() { return _header__WEBPACK_IMPORTED_MODULE_1__[\"watchHeader\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyHeaderType\", function() { return _header__WEBPACK_IMPORTED_MODULE_1__[\"applyHeaderType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setHeaderTitleActive\", function() { return _header__WEBPACK_IMPORTED_MODULE_1__[\"setHeaderTitleActive\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetHeaderTitleActive\", function() { return _header__WEBPACK_IMPORTED_MODULE_1__[\"resetHeaderTitleActive\"]; });\n\n/* harmony import */ var _hero__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./hero */ \"./src/assets/javascripts/components/hero/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountHero\", function() { return _hero__WEBPACK_IMPORTED_MODULE_2__[\"mountHero\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyHero\", function() { return _hero__WEBPACK_IMPORTED_MODULE_2__[\"applyHero\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setHeroHidden\", function() { return _hero__WEBPACK_IMPORTED_MODULE_2__[\"setHeroHidden\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetHeroHidden\", function() { return _hero__WEBPACK_IMPORTED_MODULE_2__[\"resetHeroHidden\"]; });\n\n/* harmony import */ var _main__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./main */ \"./src/assets/javascripts/components/main/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountMain\", function() { return _main__WEBPACK_IMPORTED_MODULE_3__[\"mountMain\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchMain\", function() { return _main__WEBPACK_IMPORTED_MODULE_3__[\"watchMain\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyHeaderShadow\", function() { return _main__WEBPACK_IMPORTED_MODULE_3__[\"applyHeaderShadow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setHeaderShadow\", function() { return _main__WEBPACK_IMPORTED_MODULE_3__[\"setHeaderShadow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetHeaderShadow\", function() { return _main__WEBPACK_IMPORTED_MODULE_3__[\"resetHeaderShadow\"]; });\n\n/* harmony import */ var _navigation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./navigation */ \"./src/assets/javascripts/components/navigation/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountNavigation\", function() { return _navigation__WEBPACK_IMPORTED_MODULE_4__[\"mountNavigation\"]; });\n\n/* harmony import */ var _search__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./search */ \"./src/assets/javascripts/components/search/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearch\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"mountSearch\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearchQuery\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"mountSearchQuery\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchSearchQuery\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"watchSearchQuery\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearchReset\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"mountSearchReset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchSearchReset\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"watchSearchReset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearchResult\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"mountSearchResult\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applySearchResult\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"applySearchResult\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setSearchResultMeta\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"setSearchResultMeta\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetSearchResultMeta\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"resetSearchResultMeta\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"addToSearchResultList\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"addToSearchResultList\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetSearchResultList\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"resetSearchResultList\"]; });\n\n/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./shared */ \"./src/assets/javascripts/components/shared/index.ts\");\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _shared__WEBPACK_IMPORTED_MODULE_6__) if([\"setupComponents\",\"useComponent\",\"mountHeader\",\"watchHeader\",\"applyHeaderType\",\"setHeaderTitleActive\",\"resetHeaderTitleActive\",\"mountHero\",\"applyHero\",\"setHeroHidden\",\"resetHeroHidden\",\"mountMain\",\"watchMain\",\"applyHeaderShadow\",\"setHeaderShadow\",\"resetHeaderShadow\",\"mountNavigation\",\"mountSearch\",\"mountSearchQuery\",\"watchSearchQuery\",\"mountSearchReset\",\"watchSearchReset\",\"mountSearchResult\",\"applySearchResult\",\"setSearchResultMeta\",\"resetSearchResultMeta\",\"addToSearchResultList\",\"resetSearchResultList\",\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _shared__WEBPACK_IMPORTED_MODULE_6__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _tabs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./tabs */ \"./src/assets/javascripts/components/tabs/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountTabs\", function() { return _tabs__WEBPACK_IMPORTED_MODULE_7__[\"mountTabs\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyTabs\", function() { return _tabs__WEBPACK_IMPORTED_MODULE_7__[\"applyTabs\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setTabsHidden\", function() { return _tabs__WEBPACK_IMPORTED_MODULE_7__[\"setTabsHidden\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetTabsHidden\", function() { return _tabs__WEBPACK_IMPORTED_MODULE_7__[\"resetTabsHidden\"]; });\n\n/* harmony import */ var _toc__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./toc */ \"./src/assets/javascripts/components/toc/index.ts\");\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _toc__WEBPACK_IMPORTED_MODULE_8__) if([\"setupComponents\",\"useComponent\",\"mountHeader\",\"watchHeader\",\"applyHeaderType\",\"setHeaderTitleActive\",\"resetHeaderTitleActive\",\"mountHero\",\"applyHero\",\"setHeroHidden\",\"resetHeroHidden\",\"mountMain\",\"watchMain\",\"applyHeaderShadow\",\"setHeaderShadow\",\"resetHeaderShadow\",\"mountNavigation\",\"mountSearch\",\"mountSearchQuery\",\"watchSearchQuery\",\"mountSearchReset\",\"watchSearchReset\",\"mountSearchResult\",\"applySearchResult\",\"setSearchResultMeta\",\"resetSearchResultMeta\",\"addToSearchResultList\",\"resetSearchResultList\",\"mountTabs\",\"applyTabs\",\"setTabsHidden\",\"resetTabsHidden\",\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _toc__WEBPACK_IMPORTED_MODULE_8__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/main/_/index.ts": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/components/main/_/index.ts ***! + \***********************************************************/ +/*! exports provided: mountMain */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountMain\", function() { return mountMain; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_ */ \"./src/assets/javascripts/components/_/index.ts\");\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../react */ \"./src/assets/javascripts/components/main/react/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount main area from source observable\n *\n * The header must be connected to the main area observable outside of the\n * operator function, as the header will persist in-between document switches\n * while the main area is replaced. However, the header observable must be\n * passed to this function, so we connect both via a long-living subject.\n *\n * @param options - Options\n *\n * @return Operator function\n */\nfunction mountMain(_a) {\n var header$ = _a.header$, viewport$ = _a.viewport$;\n var main$ = new rxjs__WEBPACK_IMPORTED_MODULE_0__[\"Subject\"]();\n /* Connect to main area observable via long-living subject */\n Object(___WEBPACK_IMPORTED_MODULE_2__[\"useComponent\"])(\"header\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (header) { return main$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"distinctUntilKeyChanged\"])(\"active\"), Object(_react__WEBPACK_IMPORTED_MODULE_3__[\"applyHeaderShadow\"])(header)); }))\n .subscribe();\n /* Return operator */\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (el) { return Object(_react__WEBPACK_IMPORTED_MODULE_3__[\"watchMain\"])(el, { header$: header$, viewport$: viewport$ }); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"tap\"])(function (main) { return main$.next(main); }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/main/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/main/index.ts": +/*!*********************************************************!*\ + !*** ./src/assets/javascripts/components/main/index.ts ***! + \*********************************************************/ +/*! exports provided: mountMain, watchMain, applyHeaderShadow, setHeaderShadow, resetHeaderShadow */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/main/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountMain\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountMain\"]; });\n\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ \"./src/assets/javascripts/components/main/react/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchMain\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"watchMain\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyHeaderShadow\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"applyHeaderShadow\"]; });\n\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./set */ \"./src/assets/javascripts/components/main/set/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setHeaderShadow\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"setHeaderShadow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetHeaderShadow\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetHeaderShadow\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/main/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/main/react/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/components/main/react/index.ts ***! + \***************************************************************/ +/*! exports provided: watchMain, applyHeaderShadow */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchMain\", function() { return watchMain; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"applyHeaderShadow\", function() { return applyHeaderShadow; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../set */ \"./src/assets/javascripts/components/main/set/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch main area\n *\n * This function returns an observable that computes the visual parameters of\n * the main area which depends on the viewport vertical offset and height, as\n * well as the height of the header element, if the header is fixed.\n *\n * @param el - Main area element\n * @param options - Options\n *\n * @return Main area observable\n */\nfunction watchMain(el, _a) {\n var header$ = _a.header$, viewport$ = _a.viewport$;\n /* Compute necessary adjustment for header */\n var adjust$ = header$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"pluck\"])(\"height\"), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"distinctUntilChanged\"])(), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"shareReplay\"])(1));\n /* Compute the main area's top and bottom borders */\n var border$ = adjust$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function () { return Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"watchElementSize\"])(el)\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var height = _a.height;\n return ({\n top: el.offsetTop,\n bottom: el.offsetTop + height\n });\n })); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"distinctUntilKeyChanged\"])(\"bottom\"), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"shareReplay\"])(1));\n /* Compute the main area's offset, visible height and if we scrolled past */\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"combineLatest\"])([adjust$, border$, viewport$])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 3), header = _b[0], _c = _b[1], top = _c.top, bottom = _c.bottom, _d = _b[2], y = _d.offset.y, height = _d.size.height;\n height = Math.max(0, height\n - Math.max(0, top - y, header)\n - Math.max(0, height + y - bottom));\n return {\n offset: top - header,\n height: height,\n active: top - header <= y\n };\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"distinctUntilChanged\"])(function (a, b) {\n return a.offset === b.offset\n && a.height === b.height\n && a.active === b.active;\n }));\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Apply header shadow\n *\n * @param el - Header element\n *\n * @return Operator function\n */\nfunction applyHeaderShadow(el) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"pipe\"])(\n /* Defer repaint to next animation frame */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"animationFrameScheduler\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"tap\"])(function (_a) {\n var active = _a.active;\n Object(_set__WEBPACK_IMPORTED_MODULE_4__[\"setHeaderShadow\"])(el, active);\n }), \n /* Reset on complete or error */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"finalize\"])(function () {\n Object(_set__WEBPACK_IMPORTED_MODULE_4__[\"resetHeaderShadow\"])(el);\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/main/react/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/main/set/index.ts": +/*!*************************************************************!*\ + !*** ./src/assets/javascripts/components/main/set/index.ts ***! + \*************************************************************/ +/*! exports provided: setHeaderShadow, resetHeaderShadow */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setHeaderShadow\", function() { return setHeaderShadow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetHeaderShadow\", function() { return resetHeaderShadow; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set header shadow\n *\n * @param el - Header element\n * @param value - Whether the shadow is shown\n */\nfunction setHeaderShadow(el, value) {\n el.setAttribute(\"data-md-state\", value ? \"shadow\" : \"\");\n}\n/**\n * Reset header shadow\n *\n * @param el - Header element\n */\nfunction resetHeaderShadow(el) {\n el.removeAttribute(\"data-md-state\");\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/main/set/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/navigation/_/index.ts": +/*!*****************************************************************!*\ + !*** ./src/assets/javascripts/components/navigation/_/index.ts ***! + \*****************************************************************/ +/*! exports provided: mountNavigation */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountNavigation\", function() { return mountNavigation; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared */ \"./src/assets/javascripts/components/shared/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount navigation from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nfunction mountNavigation(_a) {\n var header$ = _a.header$, main$ = _a.main$, viewport$ = _a.viewport$, screen$ = _a.screen$;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (el) { return screen$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (screen) {\n /* [screen +]: Mount navigation in sidebar */\n if (screen) {\n return Object(_shared__WEBPACK_IMPORTED_MODULE_2__[\"watchSidebar\"])(el, { main$: main$, viewport$: viewport$ })\n .pipe(Object(_shared__WEBPACK_IMPORTED_MODULE_2__[\"applySidebar\"])(el, { header$: header$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (sidebar) { return ({ sidebar: sidebar }); }));\n /* [screen -]: Mount navigation in drawer */\n }\n else {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"of\"])({});\n }\n })); }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/navigation/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/navigation/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/components/navigation/index.ts ***! + \***************************************************************/ +/*! exports provided: mountNavigation */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/navigation/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountNavigation\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountNavigation\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/navigation/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/_/index.ts": +/*!*************************************************************!*\ + !*** ./src/assets/javascripts/components/search/_/index.ts ***! + \*************************************************************/ +/*! exports provided: mountSearch */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountSearch\", function() { return mountSearch; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var integrations_search__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! integrations/search */ \"./src/assets/javascripts/integrations/search/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount search from source observable\n *\n * @param handler - Worker handler\n * @param options - Options\n *\n * @return Operator function\n */\nfunction mountSearch(_a, _b) {\n var rx$ = _a.rx$, tx$ = _a.tx$;\n var query$ = _b.query$, reset$ = _b.reset$, result$ = _b.result$;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function () {\n /* Compute search status */\n var status$ = rx$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"filter\"])(integrations_search__WEBPACK_IMPORTED_MODULE_3__[\"isSearchReadyMessage\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"mapTo\"])(\"ready\"), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"startWith\"])(\"waiting\"));\n /* Re-emit the latest query when search is ready */\n tx$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"filter\"])(integrations_search__WEBPACK_IMPORTED_MODULE_3__[\"isSearchQueryMessage\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"sample\"])(status$), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"take\"])(1))\n .subscribe(tx$.next.bind(tx$));\n /* Combine into single observable */\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"combineLatest\"])([status$, query$, result$, reset$])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 3), status = _b[0], query = _b[1], result = _b[2];\n return ({\n status: status,\n query: query,\n result: result\n });\n }));\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/index.ts": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/components/search/index.ts ***! + \***********************************************************/ +/*! exports provided: mountSearch, mountSearchQuery, watchSearchQuery, mountSearchReset, watchSearchReset, mountSearchResult, applySearchResult, setSearchResultMeta, resetSearchResultMeta, addToSearchResultList, resetSearchResultList */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/search/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearch\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountSearch\"]; });\n\n/* harmony import */ var _query__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query */ \"./src/assets/javascripts/components/search/query/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearchQuery\", function() { return _query__WEBPACK_IMPORTED_MODULE_1__[\"mountSearchQuery\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchSearchQuery\", function() { return _query__WEBPACK_IMPORTED_MODULE_1__[\"watchSearchQuery\"]; });\n\n/* harmony import */ var _reset__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reset */ \"./src/assets/javascripts/components/search/reset/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearchReset\", function() { return _reset__WEBPACK_IMPORTED_MODULE_2__[\"mountSearchReset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchSearchReset\", function() { return _reset__WEBPACK_IMPORTED_MODULE_2__[\"watchSearchReset\"]; });\n\n/* harmony import */ var _result__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./result */ \"./src/assets/javascripts/components/search/result/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearchResult\", function() { return _result__WEBPACK_IMPORTED_MODULE_3__[\"mountSearchResult\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applySearchResult\", function() { return _result__WEBPACK_IMPORTED_MODULE_3__[\"applySearchResult\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setSearchResultMeta\", function() { return _result__WEBPACK_IMPORTED_MODULE_3__[\"setSearchResultMeta\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetSearchResultMeta\", function() { return _result__WEBPACK_IMPORTED_MODULE_3__[\"resetSearchResultMeta\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"addToSearchResultList\", function() { return _result__WEBPACK_IMPORTED_MODULE_3__[\"addToSearchResultList\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetSearchResultList\", function() { return _result__WEBPACK_IMPORTED_MODULE_3__[\"resetSearchResultList\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/query/_/index.ts": +/*!*******************************************************************!*\ + !*** ./src/assets/javascripts/components/search/query/_/index.ts ***! + \*******************************************************************/ +/*! exports provided: mountSearchQuery */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountSearchQuery\", function() { return mountSearchQuery; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var integrations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! integrations */ \"./src/assets/javascripts/integrations/index.ts\");\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../react */ \"./src/assets/javascripts/components/search/query/react/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount search query from source observable\n *\n * @param handler - Worker handler\n * @param options - Options\n *\n * @return Operator function\n */\nfunction mountSearchQuery(_a, options) {\n var tx$ = _a.tx$;\n if (options === void 0) { options = {}; }\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (el) {\n var query$ = Object(_react__WEBPACK_IMPORTED_MODULE_4__[\"watchSearchQuery\"])(el, options);\n /* Subscribe worker to search query */\n query$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"distinctUntilKeyChanged\"])(\"value\"), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (_a) {\n var value = _a.value;\n return ({\n type: integrations__WEBPACK_IMPORTED_MODULE_3__[\"SearchMessageType\"].QUERY,\n data: value\n });\n }))\n .subscribe(tx$.next.bind(tx$));\n /* Toggle search on focus */\n query$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"distinctUntilKeyChanged\"])(\"focus\"))\n .subscribe(function (_a) {\n var focus = _a.focus;\n if (focus)\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"setToggle\"])(\"search\", focus);\n });\n /* Return search query */\n return query$;\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/query/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/query/index.ts": +/*!*****************************************************************!*\ + !*** ./src/assets/javascripts/components/search/query/index.ts ***! + \*****************************************************************/ +/*! exports provided: mountSearchQuery, watchSearchQuery */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/search/query/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearchQuery\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountSearchQuery\"]; });\n\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ \"./src/assets/javascripts/components/search/query/react/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchSearchQuery\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"watchSearchQuery\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/query/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/query/react/index.ts": +/*!***********************************************************************!*\ + !*** ./src/assets/javascripts/components/search/query/react/index.ts ***! + \***********************************************************************/ +/*! exports provided: watchSearchQuery */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchSearchQuery\", function() { return watchSearchQuery; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var integrations__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! integrations */ \"./src/assets/javascripts/integrations/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch search query\n *\n * Note that the focus event which triggers re-reading the current query value\n * is delayed by `1ms` so the input's empty state is allowed to propagate.\n *\n * @param el - Search query element\n * @param options - Options\n *\n * @return Search query observable\n */\nfunction watchSearchQuery(el, _a) {\n var transform = (_a === void 0 ? {} : _a).transform;\n var fn = transform || integrations__WEBPACK_IMPORTED_MODULE_4__[\"defaultTransform\"];\n /* Intercept keyboard events */\n var value$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"merge\"])(Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"fromEvent\"])(el, \"keyup\"), Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"fromEvent\"])(el, \"focus\").pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"delay\"])(1)))\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function () { return fn(el.value); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"startWith\"])(fn(el.value)), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"distinctUntilChanged\"])());\n /* Intercept focus events */\n var focus$ = Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"watchElementFocus\"])(el);\n /* Combine into single observable */\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"combineLatest\"])([value$, focus$])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), value = _b[0], focus = _b[1];\n return ({ value: value, focus: focus });\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/query/react/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/reset/_/index.ts": +/*!*******************************************************************!*\ + !*** ./src/assets/javascripts/components/search/reset/_/index.ts ***! + \*******************************************************************/ +/*! exports provided: mountSearchReset */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountSearchReset\", function() { return mountSearchReset; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_ */ \"./src/assets/javascripts/components/_/index.ts\");\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../react */ \"./src/assets/javascripts/components/search/reset/react/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount search reset from source observable\n *\n * @return Operator function\n */\nfunction mountSearchReset() {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (el) { return Object(_react__WEBPACK_IMPORTED_MODULE_4__[\"watchSearchReset\"])(el)\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMapTo\"])(Object(___WEBPACK_IMPORTED_MODULE_3__[\"useComponent\"])(\"search-query\")), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"tap\"])(browser__WEBPACK_IMPORTED_MODULE_2__[\"setElementFocus\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"mapTo\"])(undefined)); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"startWith\"])(undefined));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/reset/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/reset/index.ts": +/*!*****************************************************************!*\ + !*** ./src/assets/javascripts/components/search/reset/index.ts ***! + \*****************************************************************/ +/*! exports provided: mountSearchReset, watchSearchReset */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/search/reset/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearchReset\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountSearchReset\"]; });\n\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ \"./src/assets/javascripts/components/search/reset/react/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchSearchReset\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"watchSearchReset\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/reset/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/reset/react/index.ts": +/*!***********************************************************************!*\ + !*** ./src/assets/javascripts/components/search/reset/react/index.ts ***! + \***********************************************************************/ +/*! exports provided: watchSearchReset */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchSearchReset\", function() { return watchSearchReset; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch search reset\n *\n * @param el - Search reset element\n *\n * @return Search reset observable\n */\nfunction watchSearchReset(el) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(el, \"click\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"mapTo\"])(undefined));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/reset/react/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/result/_/index.ts": +/*!********************************************************************!*\ + !*** ./src/assets/javascripts/components/search/result/_/index.ts ***! + \********************************************************************/ +/*! exports provided: mountSearchResult */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountSearchResult\", function() { return mountSearchResult; });\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/index.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var integrations__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! integrations */ \"./src/assets/javascripts/integrations/index.ts\");\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../react */ \"./src/assets/javascripts/components/search/result/react/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount search result from source observable\n *\n * @param handler - Worker handler\n * @param options - Options\n *\n * @return Operator function\n */\nfunction mountSearchResult(_a, _b) {\n var rx$ = _a.rx$;\n var query$ = _b.query$;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (el) {\n var container = el.parentElement;\n /* Compute if search is ready */\n var ready$ = rx$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"filter\"])(integrations__WEBPACK_IMPORTED_MODULE_4__[\"isSearchReadyMessage\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"mapTo\"])(true));\n /* Compute whether there are more search results to fetch */\n var fetch$ = Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"watchElementOffset\"])(container)\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var y = _a.y;\n return y >= container.scrollHeight - container.offsetHeight - 16;\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"distinctUntilChanged\"])(), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"filter\"])(ramda__WEBPACK_IMPORTED_MODULE_0__[\"identity\"]));\n /* Apply search results */\n return rx$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"filter\"])(integrations__WEBPACK_IMPORTED_MODULE_4__[\"isSearchResultMessage\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"pluck\"])(\"data\"), Object(_react__WEBPACK_IMPORTED_MODULE_5__[\"applySearchResult\"])(el, { query$: query$, ready$: ready$, fetch$: fetch$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"startWith\"])([]));\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/result/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/result/index.ts": +/*!******************************************************************!*\ + !*** ./src/assets/javascripts/components/search/result/index.ts ***! + \******************************************************************/ +/*! exports provided: mountSearchResult, applySearchResult, setSearchResultMeta, resetSearchResultMeta, addToSearchResultList, resetSearchResultList */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/search/result/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearchResult\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountSearchResult\"]; });\n\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ \"./src/assets/javascripts/components/search/result/react/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applySearchResult\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"applySearchResult\"]; });\n\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./set */ \"./src/assets/javascripts/components/search/result/set/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setSearchResultMeta\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"setSearchResultMeta\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetSearchResultMeta\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetSearchResultMeta\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"addToSearchResultList\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"addToSearchResultList\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetSearchResultList\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetSearchResultList\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/result/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/result/react/index.ts": +/*!************************************************************************!*\ + !*** ./src/assets/javascripts/components/search/result/react/index.ts ***! + \************************************************************************/ +/*! exports provided: applySearchResult */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"applySearchResult\", function() { return applySearchResult; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var templates__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! templates */ \"./src/assets/javascripts/templates/index.ts\");\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../set */ \"./src/assets/javascripts/components/search/result/set/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Apply search results\n *\n * This function will perform a lazy rendering of the search results, depending\n * on the vertical offset of the search result container. When the scroll offset\n * reaches the bottom of the element, more results are fetched and rendered.\n *\n * @param el - Search result element\n * @param options - Options\n *\n * @return Operator function\n */\nfunction applySearchResult(el, _a) {\n var query$ = _a.query$, ready$ = _a.ready$, fetch$ = _a.fetch$;\n var list = Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElementOrThrow\"])(\".md-search-result__list\", el);\n var meta = Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElementOrThrow\"])(\".md-search-result__meta\", el);\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"pipe\"])(\n /* Apply search result metadata */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"withLatestFrom\"])(query$, ready$), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), result = _b[0], query = _b[1];\n if (query.value) {\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"setSearchResultMeta\"])(meta, result.length);\n }\n else {\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"resetSearchResultMeta\"])(meta);\n }\n return result;\n }), \n /* Apply search result list */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (result) { return fetch$\n .pipe(\n /* Defer repaint to next animation frame */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"animationFrameScheduler\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"scan\"])(function (index) {\n var container = el.parentElement;\n while (index < result.length) {\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"addToSearchResultList\"])(list, Object(templates__WEBPACK_IMPORTED_MODULE_4__[\"renderSearchResult\"])(result[index++]));\n if (container.scrollHeight - container.offsetHeight > 16)\n break;\n }\n return index;\n }, 0), \n /* Re-map to search result */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"mapTo\"])(result), \n /* Reset on complete or error */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"finalize\"])(function () {\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"resetSearchResultList\"])(list);\n })); }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/result/react/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/result/set/index.ts": +/*!**********************************************************************!*\ + !*** ./src/assets/javascripts/components/search/result/set/index.ts ***! + \**********************************************************************/ +/*! exports provided: setSearchResultMeta, resetSearchResultMeta, addToSearchResultList, resetSearchResultList */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setSearchResultMeta\", function() { return setSearchResultMeta; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetSearchResultMeta\", function() { return resetSearchResultMeta; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addToSearchResultList\", function() { return addToSearchResultList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetSearchResultList\", function() { return resetSearchResultList; });\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set number of search results\n *\n * @param el - Search result metadata element\n * @param value - Number of results\n */\nfunction setSearchResultMeta(el, value) {\n switch (value) {\n /* No results */\n case 0:\n el.textContent = Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"translate\"])(\"search.result.none\");\n break;\n /* One result */\n case 1:\n el.textContent = Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"translate\"])(\"search.result.one\");\n break;\n /* Multiple result */\n default:\n el.textContent = Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"translate\"])(\"search.result.other\", value.toString());\n }\n}\n/**\n * Reset number of search results\n *\n * @param el - Search result metadata element\n */\nfunction resetSearchResultMeta(el) {\n el.textContent = Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"translate\"])(\"search.result.placeholder\");\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Add an element to the search result list\n *\n * @param el - Search result list element\n * @param child - Search result element\n */\nfunction addToSearchResultList(el, child) {\n el.appendChild(child);\n}\n/**\n * Reset search result list\n *\n * @param el - Search result list element\n */\nfunction resetSearchResultList(el) {\n el.innerHTML = \"\";\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/result/set/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/shared/index.ts": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/components/shared/index.ts ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _sidebar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sidebar */ \"./src/assets/javascripts/components/shared/sidebar/index.ts\");\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _sidebar__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _sidebar__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/shared/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/shared/sidebar/_/index.ts": +/*!*********************************************************************!*\ + !*** ./src/assets/javascripts/components/shared/sidebar/_/index.ts ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/shared/sidebar/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/shared/sidebar/index.ts": +/*!*******************************************************************!*\ + !*** ./src/assets/javascripts/components/shared/sidebar/index.ts ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/shared/sidebar/_/index.ts\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in ___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return ___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ \"./src/assets/javascripts/components/shared/sidebar/react/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchSidebar\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"watchSidebar\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applySidebar\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"applySidebar\"]; });\n\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./set */ \"./src/assets/javascripts/components/shared/sidebar/set/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setSidebarOffset\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"setSidebarOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetSidebarOffset\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetSidebarOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setSidebarHeight\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"setSidebarHeight\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetSidebarHeight\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetSidebarHeight\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/shared/sidebar/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/shared/sidebar/react/index.ts": +/*!*************************************************************************!*\ + !*** ./src/assets/javascripts/components/shared/sidebar/react/index.ts ***! + \*************************************************************************/ +/*! exports provided: watchSidebar, applySidebar */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchSidebar\", function() { return watchSidebar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"applySidebar\", function() { return applySidebar; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../set */ \"./src/assets/javascripts/components/shared/sidebar/set/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch sidebar\n *\n * This function returns an observable that computes the visual parameters of\n * the sidebar which depends on the vertical viewport offset, as well as the\n * height of the main area. When the page is scrolled beyond the header, the\n * sidebar is locked and fills the remaining space.\n *\n * @param el - Sidebar element\n * @param options - Options\n *\n * @return Sidebar observable\n */\nfunction watchSidebar(el, _a) {\n var main$ = _a.main$, viewport$ = _a.viewport$;\n var adjust = el.parentElement.offsetTop\n - el.parentElement.parentElement.offsetTop;\n /* Compute the sidebar's available height and if it should be locked */\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"combineLatest\"])([main$, viewport$])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), _c = _b[0], offset = _c.offset, height = _c.height, y = _b[1].offset.y;\n height = height\n + Math.min(adjust, Math.max(0, y - offset))\n - adjust;\n return {\n height: height,\n lock: y >= offset + adjust\n };\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"distinctUntilChanged\"])(function (a, b) {\n return a.height === b.height\n && a.lock === b.lock;\n }));\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Apply sidebar\n *\n * @param el - Sidebar element\n * @param options - Options\n *\n * @return Operator function\n */\nfunction applySidebar(el, _a) {\n var header$ = _a.header$;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"pipe\"])(\n /* Defer repaint to next animation frame */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"animationFrameScheduler\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"withLatestFrom\"])(header$), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"tap\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), _c = _b[0], height = _c.height, lock = _c.lock, offset = _b[1].height;\n Object(_set__WEBPACK_IMPORTED_MODULE_3__[\"setSidebarHeight\"])(el, height);\n /* Set offset in locked state depending on header height */\n if (lock)\n Object(_set__WEBPACK_IMPORTED_MODULE_3__[\"setSidebarOffset\"])(el, offset);\n else\n Object(_set__WEBPACK_IMPORTED_MODULE_3__[\"resetSidebarOffset\"])(el);\n }), \n /* Re-map to sidebar */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 1), sidebar = _b[0];\n return sidebar;\n }), \n /* Reset on complete or error */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"finalize\"])(function () {\n Object(_set__WEBPACK_IMPORTED_MODULE_3__[\"resetSidebarOffset\"])(el);\n Object(_set__WEBPACK_IMPORTED_MODULE_3__[\"resetSidebarHeight\"])(el);\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/shared/sidebar/react/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/shared/sidebar/set/index.ts": +/*!***********************************************************************!*\ + !*** ./src/assets/javascripts/components/shared/sidebar/set/index.ts ***! + \***********************************************************************/ +/*! exports provided: setSidebarOffset, resetSidebarOffset, setSidebarHeight, resetSidebarHeight */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setSidebarOffset\", function() { return setSidebarOffset; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetSidebarOffset\", function() { return resetSidebarOffset; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setSidebarHeight\", function() { return setSidebarHeight; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetSidebarHeight\", function() { return resetSidebarHeight; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set sidebar offset\n *\n * @param el - Sidebar element\n * @param value - Sidebar offset\n */\nfunction setSidebarOffset(el, value) {\n el.style.top = value + \"px\";\n}\n/**\n * Reset sidebar offset\n *\n * @param el - Sidebar element\n */\nfunction resetSidebarOffset(el) {\n el.style.top = \"\";\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Set sidebar height\n *\n * @param el - Sidebar element\n * @param value - Sidebar height\n */\nfunction setSidebarHeight(el, value) {\n el.style.height = value + \"px\";\n}\n/**\n * Reset sidebar height\n *\n * @param el - Sidebar element\n */\nfunction resetSidebarHeight(el) {\n el.style.height = \"\";\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/shared/sidebar/set/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/tabs/_/index.ts": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/components/tabs/_/index.ts ***! + \***********************************************************/ +/*! exports provided: mountTabs */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountTabs\", function() { return mountTabs; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../react */ \"./src/assets/javascripts/components/tabs/react/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount tabs from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nfunction mountTabs(_a) {\n var header$ = _a.header$, viewport$ = _a.viewport$, screen$ = _a.screen$;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (el) { return screen$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (screen) {\n /* [screen +]: Mount tabs above screen breakpoint */\n if (screen) {\n return Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"watchViewportAt\"])(el, { header$: header$, viewport$: viewport$ })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (_a) {\n var y = _a.offset.y;\n return ({ hidden: y >= 10 });\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"distinctUntilKeyChanged\"])(\"hidden\"), Object(_react__WEBPACK_IMPORTED_MODULE_3__[\"applyTabs\"])(el));\n /* [screen -]: Unmount tabs below screen breakpoint */\n }\n else {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"of\"])({ hidden: true });\n }\n })); }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/tabs/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/tabs/index.ts": +/*!*********************************************************!*\ + !*** ./src/assets/javascripts/components/tabs/index.ts ***! + \*********************************************************/ +/*! exports provided: mountTabs, applyTabs, setTabsHidden, resetTabsHidden */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/tabs/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountTabs\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountTabs\"]; });\n\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ \"./src/assets/javascripts/components/tabs/react/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyTabs\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"applyTabs\"]; });\n\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./set */ \"./src/assets/javascripts/components/tabs/set/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setTabsHidden\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"setTabsHidden\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetTabsHidden\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetTabsHidden\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/tabs/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/tabs/react/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/components/tabs/react/index.ts ***! + \***************************************************************/ +/*! exports provided: applyTabs */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"applyTabs\", function() { return applyTabs; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../set */ \"./src/assets/javascripts/components/tabs/set/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Apply tabs\n *\n * @param el - Tabs element\n *\n * @return Operator function\n */\nfunction applyTabs(el) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"pipe\"])(\n /* Defer repaint to next animation frame */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"animationFrameScheduler\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"tap\"])(function (_a) {\n var hidden = _a.hidden;\n Object(_set__WEBPACK_IMPORTED_MODULE_2__[\"setTabsHidden\"])(el, hidden);\n }), \n /* Reset on complete or error */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"finalize\"])(function () {\n Object(_set__WEBPACK_IMPORTED_MODULE_2__[\"resetTabsHidden\"])(el);\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/tabs/react/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/tabs/set/index.ts": +/*!*************************************************************!*\ + !*** ./src/assets/javascripts/components/tabs/set/index.ts ***! + \*************************************************************/ +/*! exports provided: setTabsHidden, resetTabsHidden */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setTabsHidden\", function() { return setTabsHidden; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetTabsHidden\", function() { return resetTabsHidden; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set tabs hidden\n *\n * @param el - Tabs element\n * @param value - Whether the element is hidden\n */\nfunction setTabsHidden(el, value) {\n el.setAttribute(\"data-md-state\", value ? \"hidden\" : \"\");\n}\n/**\n * Reset tabs hidden\n *\n * @param el - Tabs element\n */\nfunction resetTabsHidden(el) {\n el.removeAttribute(\"data-md-state\");\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/tabs/set/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/toc/_/index.ts": +/*!**********************************************************!*\ + !*** ./src/assets/javascripts/components/toc/_/index.ts ***! + \**********************************************************/ +/*! exports provided: mountTableOfContents */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountTableOfContents\", function() { return mountTableOfContents; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../shared */ \"./src/assets/javascripts/components/shared/index.ts\");\n/* harmony import */ var _anchor__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../anchor */ \"./src/assets/javascripts/components/toc/anchor/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount table of contents from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nfunction mountTableOfContents(_a) {\n var header$ = _a.header$, main$ = _a.main$, viewport$ = _a.viewport$, tablet$ = _a.tablet$;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (el) { return tablet$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (tablet) {\n /* [tablet +]: Mount table of contents in sidebar */\n if (tablet) {\n var els = Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElements\"])(\".md-nav__link\", el);\n /* Watch and apply sidebar */\n var sidebar$ = Object(_shared__WEBPACK_IMPORTED_MODULE_4__[\"watchSidebar\"])(el, { main$: main$, viewport$: viewport$ })\n .pipe(Object(_shared__WEBPACK_IMPORTED_MODULE_4__[\"applySidebar\"])(el, { header$: header$ }));\n /* Watch and apply anchor list (scroll spy) */\n var anchors$ = Object(_anchor__WEBPACK_IMPORTED_MODULE_5__[\"watchAnchorList\"])(els, { header$: header$, viewport$: viewport$ })\n .pipe(Object(_anchor__WEBPACK_IMPORTED_MODULE_5__[\"applyAnchorList\"])(els));\n /* Combine into single hot observable */\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"combineLatest\"])([sidebar$, anchors$])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), sidebar = _b[0], anchors = _b[1];\n return ({ sidebar: sidebar, anchors: anchors });\n }));\n /* [tablet -]: Unmount table of contents */\n }\n else {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"of\"])({});\n }\n })); }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/toc/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/toc/anchor/_/index.ts": +/*!*****************************************************************!*\ + !*** ./src/assets/javascripts/components/toc/anchor/_/index.ts ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/toc/anchor/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/toc/anchor/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/components/toc/anchor/index.ts ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/toc/anchor/_/index.ts\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in ___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return ___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ \"./src/assets/javascripts/components/toc/anchor/react/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchAnchorList\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"watchAnchorList\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyAnchorList\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"applyAnchorList\"]; });\n\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./set */ \"./src/assets/javascripts/components/toc/anchor/set/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setAnchorBlur\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"setAnchorBlur\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetAnchorBlur\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetAnchorBlur\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setAnchorActive\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"setAnchorActive\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetAnchorActive\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetAnchorActive\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/toc/anchor/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/toc/anchor/react/index.ts": +/*!*********************************************************************!*\ + !*** ./src/assets/javascripts/components/toc/anchor/react/index.ts ***! + \*********************************************************************/ +/*! exports provided: watchAnchorList, applyAnchorList */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchAnchorList\", function() { return watchAnchorList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"applyAnchorList\", function() { return applyAnchorList; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/index.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../set */ \"./src/assets/javascripts/components/toc/anchor/set/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch anchor list\n *\n * This is effectively a scroll-spy implementation which will account for the\n * fixed header and automatically re-calculate anchor offsets when the viewport\n * is resized. The returned observable will only emit if the anchor list needs\n * to be repainted.\n *\n * This implementation tracks an anchor element's entire path starting from its\n * level up to the top-most anchor element, e.g. `[h3, h2, h1]`. Although the\n * Material theme currently doesn't make use of this information, it enables\n * the styling of the entire hierarchy through customization.\n *\n * Note that the current anchor is the last item of the `prev` anchor list.\n *\n * @param els - Anchor elements\n * @param options - Options\n *\n * @return Anchor list observable\n */\nfunction watchAnchorList(els, _a) {\n var e_1, _b;\n var header$ = _a.header$, viewport$ = _a.viewport$;\n var table = new Map();\n try {\n for (var els_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(els), els_1_1 = els_1.next(); !els_1_1.done; els_1_1 = els_1.next()) {\n var el = els_1_1.value;\n var id = decodeURIComponent(el.hash.substring(1));\n var target = Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"getElement\"])(\"[id=\\\"\" + id + \"\\\"]\");\n if (typeof target !== \"undefined\")\n table.set(el, target);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (els_1_1 && !els_1_1.done && (_b = els_1.return)) _b.call(els_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n /* Compute necessary adjustment for header */\n var adjust$ = header$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (header) { return 18 + header.height; }));\n /* Compute partition of previous and next anchors */\n var partition$ = Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"watchElementSize\"])(document.body)\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"distinctUntilKeyChanged\"])(\"height\"), \n /* Build index to map anchor paths to vertical offsets */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function () {\n var path = [];\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(table).reduce(function (index, _a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), anchor = _b[0], target = _b[1];\n while (path.length) {\n var last = table.get(path[path.length - 1]);\n if (last.tagName >= target.tagName) {\n path.pop();\n }\n else {\n break;\n }\n }\n /* If the current anchor is hidden, continue with its parent */\n var offset = target.offsetTop;\n while (!offset && target.parentElement) {\n target = target.parentElement;\n offset = target.offsetTop;\n }\n /* Map reversed anchor path to vertical offset */\n return index.set(Object(ramda__WEBPACK_IMPORTED_MODULE_1__[\"reverse\"])(path = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(path, [anchor])), offset);\n }, new Map());\n }), \n /* Re-compute partition when viewport offset changes */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"switchMap\"])(function (index) { return Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"combineLatest\"])([adjust$, viewport$])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"scan\"])(function (_a, _b) {\n var _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), prev = _c[0], next = _c[1];\n var _d = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_b, 2), adjust = _d[0], y = _d[1].offset.y;\n /* Look forward */\n while (next.length) {\n var _e = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(next[0], 2), offset = _e[1];\n if (offset - adjust < y) {\n prev = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(prev, [next.shift()]);\n }\n else {\n break;\n }\n }\n /* Look backward */\n while (prev.length) {\n var _f = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(prev[prev.length - 1], 2), offset = _f[1];\n if (offset - adjust >= y) {\n next = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])([prev.pop()], next);\n }\n else {\n break;\n }\n }\n /* Return partition */\n return [prev, next];\n }, [[], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(index)]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"distinctUntilChanged\"])(function (a, b) {\n return a[0] === b[0]\n && a[1] === b[1];\n })); }));\n /* Compute and return anchor list migrations */\n return partition$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), prev = _b[0], next = _b[1];\n return ({\n prev: prev.map(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 1), path = _b[0];\n return path;\n }),\n next: next.map(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 1), path = _b[0];\n return path;\n })\n });\n }), \n /* Extract anchor list migrations */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"startWith\"])({ prev: [], next: [] }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"bufferCount\"])(2, 1), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), a = _b[0], b = _b[1];\n /* Moving down */\n if (a.prev.length < b.prev.length) {\n return {\n prev: b.prev.slice(Math.max(0, a.prev.length - 1), b.prev.length),\n next: []\n };\n /* Moving up */\n }\n else {\n return {\n prev: b.prev.slice(-1),\n next: b.next.slice(0, b.next.length - a.next.length)\n };\n }\n }));\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Apply anchor list\n *\n * @param els - Anchor elements\n *\n * @return Operator function\n */\nfunction applyAnchorList(els) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"pipe\"])(\n /* Defer repaint to next animation frame */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"animationFrameScheduler\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"tap\"])(function (_a) {\n var e_2, _b;\n var prev = _a.prev, next = _a.next;\n try {\n /* Look forward */\n for (var next_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(next), next_1_1 = next_1.next(); !next_1_1.done; next_1_1 = next_1.next()) {\n var _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(next_1_1.value, 1), el = _c[0];\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"resetAnchorActive\"])(el);\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"resetAnchorBlur\"])(el);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (next_1_1 && !next_1_1.done && (_b = next_1.return)) _b.call(next_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n /* Look backward */\n prev.forEach(function (_a, index) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 1), el = _b[0];\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"setAnchorActive\"])(el, index === prev.length - 1);\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"setAnchorBlur\"])(el, true);\n });\n }), \n /* Reset on complete or error */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"finalize\"])(function () {\n var e_3, _a;\n try {\n for (var els_2 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(els), els_2_1 = els_2.next(); !els_2_1.done; els_2_1 = els_2.next()) {\n var el = els_2_1.value;\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"resetAnchorActive\"])(el);\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"resetAnchorBlur\"])(el);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (els_2_1 && !els_2_1.done && (_a = els_2.return)) _a.call(els_2);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/toc/anchor/react/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/toc/anchor/set/index.ts": +/*!*******************************************************************!*\ + !*** ./src/assets/javascripts/components/toc/anchor/set/index.ts ***! + \*******************************************************************/ +/*! exports provided: setAnchorBlur, resetAnchorBlur, setAnchorActive, resetAnchorActive */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setAnchorBlur\", function() { return setAnchorBlur; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetAnchorBlur\", function() { return resetAnchorBlur; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setAnchorActive\", function() { return setAnchorActive; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetAnchorActive\", function() { return resetAnchorActive; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set anchor blur\n *\n * @param el - Anchor element\n * @param value - Whether the anchor is blurred\n */\nfunction setAnchorBlur(el, value) {\n el.setAttribute(\"data-md-state\", value ? \"blur\" : \"\");\n}\n/**\n * Reset anchor blur\n *\n * @param el - Anchor element\n */\nfunction resetAnchorBlur(el) {\n el.removeAttribute(\"data-md-state\");\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Set anchor active\n *\n * @param el - Anchor element\n * @param value - Whether the anchor is active\n */\nfunction setAnchorActive(el, value) {\n el.classList.toggle(\"md-nav__link--active\", value);\n}\n/**\n * Reset anchor active\n *\n * @param el - Anchor element\n */\nfunction resetAnchorActive(el) {\n el.classList.remove(\"md-nav__link--active\");\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/toc/anchor/set/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/toc/index.ts": +/*!********************************************************!*\ + !*** ./src/assets/javascripts/components/toc/index.ts ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/toc/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountTableOfContents\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountTableOfContents\"]; });\n\n/* harmony import */ var _anchor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./anchor */ \"./src/assets/javascripts/components/toc/anchor/index.ts\");\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _anchor__WEBPACK_IMPORTED_MODULE_1__) if([\"mountTableOfContents\",\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _anchor__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/toc/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/index.ts": +/*!*****************************************!*\ + !*** ./src/assets/javascripts/index.ts ***! + \*****************************************/ +/*! exports provided: setScrollLock, resetScrollLock, initialize */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setScrollLock\", function() { return setScrollLock; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetScrollLock\", function() { return resetScrollLock; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"initialize\", function() { return initialize; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/index.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_ajax__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/ajax */ \"./node_modules/rxjs/dist/esm5/ajax/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var components__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! components */ \"./src/assets/javascripts/components/index.ts\");\n/* harmony import */ var integrations__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! integrations */ \"./src/assets/javascripts/integrations/index.ts\");\n/* harmony import */ var patches__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! patches */ \"./src/assets/javascripts/patches/index.ts\");\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n// DISCLAIMER: this file is still WIP. There're some refactoring opportunities\n// which must be tackled after we gathered some feedback on v5.\n// tslint:disable\n\n\n\n\n\n\n\n\n\n/* ------------------------------------------------------------------------- */\n/* Denote that JavaScript is available */\ndocument.documentElement.classList.remove(\"no-js\");\ndocument.documentElement.classList.add(\"js\");\n/* Test for iOS */\nif (navigator.userAgent.match(/(iPad|iPhone|iPod)/g))\n document.documentElement.classList.add(\"ios\");\n/**\n * Set scroll lock\n *\n * @param el - Scrollable element\n * @param value - Vertical offset\n */\nfunction setScrollLock(el, value) {\n el.setAttribute(\"data-md-state\", \"lock\");\n el.style.top = \"-\" + value + \"px\";\n}\n/**\n * Reset scroll lock\n *\n * @param el - Scrollable element\n */\nfunction resetScrollLock(el) {\n var value = -1 * parseInt(el.style.top, 10);\n el.removeAttribute(\"data-md-state\");\n el.style.top = \"\";\n if (value)\n window.scrollTo(0, value);\n}\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Initialize Material for MkDocs\n *\n * @param config - Configuration\n */\nfunction initialize(config) {\n if (!Object(utilities__WEBPACK_IMPORTED_MODULE_9__[\"isConfig\"])(config))\n throw new SyntaxError(\"Invalid configuration: \" + JSON.stringify(config));\n /* Set up subjects */\n var document$ = Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"watchDocument\"])();\n var location$ = Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"watchLocation\"])();\n /* Set up user interface observables */\n var base$ = Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"watchLocationBase\"])(config.base, { location$: location$ });\n var hash$ = Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"watchLocationHash\"])();\n var viewport$ = Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"watchViewport\"])();\n var tablet$ = Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"watchMedia\"])(\"(min-width: 960px)\");\n var screen$ = Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"watchMedia\"])(\"(min-width: 1220px)\");\n /* ----------------------------------------------------------------------- */\n /* Set up component bindings */\n Object(components__WEBPACK_IMPORTED_MODULE_6__[\"setupComponents\"])([\n \"announce\",\n \"container\",\n \"header\",\n \"header-title\",\n \"hero\",\n \"main\",\n \"navigation\",\n \"search\",\n \"search-query\",\n \"search-reset\",\n \"search-result\",\n \"skip\",\n \"tabs\",\n \"toc\" /* Table of contents */\n ], { document$: document$ });\n var keyboard$ = Object(integrations__WEBPACK_IMPORTED_MODULE_7__[\"setupKeyboard\"])();\n Object(patches__WEBPACK_IMPORTED_MODULE_8__[\"patchDetails\"])({ document$: document$, hash$: hash$ });\n Object(patches__WEBPACK_IMPORTED_MODULE_8__[\"patchScripts\"])({ document$: document$ });\n Object(patches__WEBPACK_IMPORTED_MODULE_8__[\"patchSource\"])({ document$: document$ });\n Object(patches__WEBPACK_IMPORTED_MODULE_8__[\"patchTables\"])({ document$: document$ });\n /* Force 1px scroll offset to trigger overflow scrolling */\n Object(patches__WEBPACK_IMPORTED_MODULE_8__[\"patchScrollfix\"])({ document$: document$ });\n /* Set up clipboard and dialog */\n var dialog$ = Object(integrations__WEBPACK_IMPORTED_MODULE_7__[\"setupDialog\"])();\n var clipboard$ = Object(integrations__WEBPACK_IMPORTED_MODULE_7__[\"setupClipboard\"])({ document$: document$, dialog$: dialog$ });\n /* ----------------------------------------------------------------------- */\n /* Create header observable */\n var header$ = Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"header\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountHeader\"])({ document$: document$, viewport$: viewport$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1));\n var main$ = Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"main\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountMain\"])({ header$: header$, viewport$: viewport$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1));\n /* ----------------------------------------------------------------------- */\n var navigation$ = Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"navigation\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountNavigation\"])({ header$: header$, main$: main$, viewport$: viewport$, screen$: screen$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1) // shareReplay because there might be late subscribers\n );\n var toc$ = Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"toc\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountTableOfContents\"])({ header$: header$, main$: main$, viewport$: viewport$, tablet$: tablet$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1));\n var tabs$ = Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"tabs\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountTabs\"])({ header$: header$, viewport$: viewport$, screen$: screen$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1));\n var hero$ = Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"hero\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountHero\"])({ header$: header$, viewport$: viewport$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1));\n /* ----------------------------------------------------------------------- */\n /* Search worker */\n var worker$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"defer\"])(function () {\n var index = config.search && config.search.index\n ? config.search.index\n : undefined;\n /* Fetch index if it wasn't passed explicitly */\n var index$ = typeof index !== \"undefined\"\n ? Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"from\"])(index)\n : base$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"switchMap\"])(function (base) { return Object(rxjs_ajax__WEBPACK_IMPORTED_MODULE_3__[\"ajax\"])({\n url: base + \"/search/search_index.json\",\n responseType: \"json\",\n withCredentials: true\n })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"pluck\"])(\"response\")); }));\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"of\"])(Object(integrations__WEBPACK_IMPORTED_MODULE_7__[\"setupSearchWorker\"])(config.search.worker, {\n base$: base$, index$: index$\n }));\n });\n /* ----------------------------------------------------------------------- */\n /* Mount search query */\n var search$ = worker$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"switchMap\"])(function (worker) {\n var query$ = Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"search-query\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountSearchQuery\"])(worker, { transform: config.search.transform }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1));\n /* Mount search reset */\n var reset$ = Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"search-reset\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountSearchReset\"])(), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1));\n /* Mount search result */\n var result$ = Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"search-result\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountSearchResult\"])(worker, { query$: query$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1));\n return Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"search\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountSearch\"])(worker, { query$: query$, reset$: reset$, result$: result$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1));\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"catchError\"])(function () {\n Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"search\")\n .subscribe(function (el) { return el.hidden = true; }); // TODO: Hack\n return rxjs__WEBPACK_IMPORTED_MODULE_2__[\"NEVER\"];\n }));\n /* ----------------------------------------------------------------------- */\n // // put into search...\n hash$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"tap\"])(function () { return Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"setToggle\"])(\"search\", false); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"delay\"])(125))\n .subscribe(function (hash) { return Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"setLocationHash\"])(\"#\" + hash); });\n // TODO: scroll restoration must be centralized\n Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"combineLatest\"])([\n Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"watchToggle\"])(\"search\"),\n tablet$,\n ])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"withLatestFrom\"])(viewport$), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"switchMap\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_b[0], 2), toggle = _c[0], tablet = _c[1], y = _b[1].offset.y;\n var active = toggle && !tablet;\n return document$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"delay\"])(active ? 400 : 100), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"animationFrameScheduler\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"tap\"])(function (_a) {\n var body = _a.body;\n return active\n ? setScrollLock(body, y)\n : resetScrollLock(body);\n }));\n }))\n .subscribe();\n /* ----------------------------------------------------------------------- */\n /* Always close drawer on click */\n Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"fromEvent\"])(document.body, \"click\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"filter\"])(function (ev) { return !(ev.metaKey || ev.ctrlKey); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"filter\"])(function (ev) {\n if (ev.target instanceof HTMLElement) {\n var el = ev.target.closest(\"a\"); // TODO: abstract as link click?\n if (el && Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"isLocalLocation\"])(el)) {\n return true;\n }\n }\n return false;\n }))\n .subscribe(function () {\n Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"setToggle\"])(\"drawer\", false);\n });\n /* Enable instant loading, if not on file:// protocol */\n if (config.features.includes(\"instant\") && location.protocol !== \"file:\")\n Object(integrations__WEBPACK_IMPORTED_MODULE_7__[\"setupInstantLoading\"])({ document$: document$, location$: location$, viewport$: viewport$ });\n /* ----------------------------------------------------------------------- */\n /* Unhide permalinks on first tab */\n keyboard$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"filter\"])(function (key) { return key.mode === \"global\" && key.type === \"Tab\"; }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"take\"])(1))\n .subscribe(function () {\n var e_1, _a;\n try {\n for (var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"getElements\"])(\".headerlink\")), _c = _b.next(); !_c.done; _c = _b.next()) {\n var link = _c.value;\n link.style.visibility = \"visible\";\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n });\n /* ----------------------------------------------------------------------- */\n var state = {\n /* Browser observables */\n document$: document$,\n location$: location$,\n viewport$: viewport$,\n /* Component observables */\n header$: header$,\n hero$: hero$,\n main$: main$,\n navigation$: navigation$,\n search$: search$,\n tabs$: tabs$,\n toc$: toc$,\n /* Integration observables */\n clipboard$: clipboard$,\n keyboard$: keyboard$,\n dialog$: dialog$\n };\n /* Subscribe to all observables */\n rxjs__WEBPACK_IMPORTED_MODULE_2__[\"merge\"].apply(void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(Object(ramda__WEBPACK_IMPORTED_MODULE_1__[\"values\"])(state))).subscribe();\n return state;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/clipboard/index.ts": +/*!****************************************************************!*\ + !*** ./src/assets/javascripts/integrations/clipboard/index.ts ***! + \****************************************************************/ +/*! exports provided: setupClipboard */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupClipboard\", function() { return setupClipboard; });\n/* harmony import */ var clipboard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! clipboard */ \"./node_modules/clipboard/dist/clipboard.js\");\n/* harmony import */ var clipboard__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(clipboard__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var templates__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! templates */ \"./src/assets/javascripts/templates/index.ts\");\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set up clipboard\n *\n * This function implements the Clipboard.js integration and injects a button\n * into all code blocks when the document changes.\n *\n * @param options - Options\n *\n * @return Clipboard observable\n */\nfunction setupClipboard(_a) {\n var document$ = _a.document$, dialog$ = _a.dialog$;\n if (!clipboard__WEBPACK_IMPORTED_MODULE_0__[\"isSupported\"]())\n return rxjs__WEBPACK_IMPORTED_MODULE_1__[\"NEVER\"];\n /* Inject 'copy-to-clipboard' buttons */\n document$.subscribe(function () {\n var blocks = Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElements\"])(\"pre > code\");\n blocks.forEach(function (block, index) {\n var parent = block.parentElement;\n parent.id = \"__code_\" + index;\n parent.insertBefore(Object(templates__WEBPACK_IMPORTED_MODULE_4__[\"renderClipboardButton\"])(parent.id), block);\n });\n });\n /* Initialize clipboard */\n var clipboard$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"fromEventPattern\"])(function (next) {\n new clipboard__WEBPACK_IMPORTED_MODULE_0__(\".md-clipboard\").on(\"success\", next);\n })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"share\"])());\n /* Display notification for clipboard event */\n clipboard$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"tap\"])(function (ev) { return ev.clearSelection(); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"mapTo\"])(Object(utilities__WEBPACK_IMPORTED_MODULE_5__[\"translate\"])(\"clipboard.copied\")))\n .subscribe(dialog$);\n /* Return clipboard */\n return clipboard$;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/clipboard/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/dialog/index.ts": +/*!*************************************************************!*\ + !*** ./src/assets/javascripts/integrations/dialog/index.ts ***! + \*************************************************************/ +/*! exports provided: setupDialog */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupDialog\", function() { return setupDialog; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set up dialog\n *\n * @param options - Options\n *\n * @return Dialog observable\n */\nfunction setupDialog(_a) {\n var duration = (_a === void 0 ? {} : _a).duration;\n var dialog$ = new rxjs__WEBPACK_IMPORTED_MODULE_0__[\"Subject\"]();\n /* Create dialog */\n var dialog = Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"])(\"div\"); // TODO: improve scoping\n dialog.classList.add(\"md-dialog\", \"md-typeset\");\n /* Display dialog */\n dialog$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (text) { return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"of\"])(document.body) // useComponent(\"container\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (container) { return container.appendChild(dialog); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"animationFrameScheduler\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"delay\"])(1), // Strangley it doesnt work when we push things to the new animation frame...\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"tap\"])(function (el) {\n el.innerHTML = text;\n el.setAttribute(\"data-md-state\", \"open\");\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"delay\"])(duration || 2000), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"tap\"])(function (el) { return el.removeAttribute(\"data-md-state\"); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"delay\"])(400), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"tap\"])(function (el) {\n el.innerHTML = \"\";\n el.remove();\n })); }))\n .subscribe();\n /* Return dialog */\n return dialog$;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/dialog/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/index.ts": +/*!******************************************************!*\ + !*** ./src/assets/javascripts/integrations/index.ts ***! + \******************************************************/ +/*! exports provided: setupClipboard, setupDialog, setupInstantLoading, setupKeyboard, Search, setupSearchDocumentMap, setupSearchHighlighter, defaultTransform, setupSearchWorker, SearchMessageType, isSearchSetupMessage, isSearchReadyMessage, isSearchQueryMessage, isSearchResultMessage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _clipboard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./clipboard */ \"./src/assets/javascripts/integrations/clipboard/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupClipboard\", function() { return _clipboard__WEBPACK_IMPORTED_MODULE_0__[\"setupClipboard\"]; });\n\n/* harmony import */ var _dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dialog */ \"./src/assets/javascripts/integrations/dialog/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupDialog\", function() { return _dialog__WEBPACK_IMPORTED_MODULE_1__[\"setupDialog\"]; });\n\n/* harmony import */ var _instant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./instant */ \"./src/assets/javascripts/integrations/instant/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupInstantLoading\", function() { return _instant__WEBPACK_IMPORTED_MODULE_2__[\"setupInstantLoading\"]; });\n\n/* harmony import */ var _keyboard__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./keyboard */ \"./src/assets/javascripts/integrations/keyboard/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupKeyboard\", function() { return _keyboard__WEBPACK_IMPORTED_MODULE_3__[\"setupKeyboard\"]; });\n\n/* harmony import */ var _search__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./search */ \"./src/assets/javascripts/integrations/search/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Search\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"Search\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupSearchDocumentMap\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"setupSearchDocumentMap\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupSearchHighlighter\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"setupSearchHighlighter\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"defaultTransform\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"defaultTransform\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupSearchWorker\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"setupSearchWorker\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SearchMessageType\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"SearchMessageType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchSetupMessage\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"isSearchSetupMessage\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchReadyMessage\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"isSearchReadyMessage\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchQueryMessage\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"isSearchQueryMessage\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchResultMessage\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"isSearchResultMessage\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/instant/index.ts": +/*!**************************************************************!*\ + !*** ./src/assets/javascripts/integrations/instant/index.ts ***! + \**************************************************************/ +/*! exports provided: setupInstantLoading */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupInstantLoading\", function() { return setupInstantLoading; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_ajax__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs//ajax */ \"./node_modules/rxjs/dist/esm5/ajax/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set up instant loading\n *\n * When fetching, theoretically, we could use `responseType: \"document\"`, but\n * since all MkDocs links are relative, we need to make sure that the current\n * location matches the document we just loaded. Otherwise any relative links\n * in the document could use the old location.\n *\n * This is the reason why we need to synchronize history events and the process\n * of fetching the document for navigation changes (except `popstate` events):\n *\n * 1. Fetch document via `XMLHTTPRequest`\n * 2. Set new location via `history.pushState`\n * 3. Parse and emit fetched document\n *\n * For `popstate` events, we must not use `history.pushState`, or the forward\n * history will be irreversibly overwritten. In case the request fails, the\n * location change is dispatched regularly.\n *\n * @param options - Options\n */\nfunction setupInstantLoading(_a) {\n var document$ = _a.document$, viewport$ = _a.viewport$, location$ = _a.location$;\n /* Disable automatic scroll restoration */\n if (\"scrollRestoration\" in history)\n history.scrollRestoration = \"manual\";\n /* Hack: ensure that reloads restore viewport offset */\n Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"fromEvent\"])(window, \"beforeunload\")\n .subscribe(function () {\n history.scrollRestoration = \"auto\";\n });\n /* Hack: ensure absolute favicon link to omit 404s on document switch */\n var favicon = Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"getElement\"])(\"link[rel=\\\"shortcut icon\\\"]\");\n if (typeof favicon !== \"undefined\")\n favicon.href = favicon.href; // tslint:disable-line no-self-assignment\n /* Intercept link clicks and convert to state change */\n var state$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"fromEvent\"])(document.body, \"click\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"filter\"])(function (ev) { return !(ev.metaKey || ev.ctrlKey); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"switchMap\"])(function (ev) {\n if (ev.target instanceof HTMLElement) {\n var el = ev.target.closest(\"a\");\n if (el && !el.target && Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"isLocalLocation\"])(el)) {\n if (!Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"isAnchorLocation\"])(el))\n ev.preventDefault();\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"of\"])(el);\n }\n }\n return rxjs__WEBPACK_IMPORTED_MODULE_1__[\"NEVER\"];\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (el) { return ({ url: new URL(el.href) }); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"share\"])());\n /* Always close search on link click */\n state$.subscribe(function () {\n Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"setToggle\"])(\"search\", false);\n });\n /* Filter state changes to dispatch */\n var push$ = state$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"filter\"])(function (_a) {\n var url = _a.url;\n return !Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"isAnchorLocation\"])(url);\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"share\"])());\n /* Intercept popstate events (history back and forward) */\n var pop$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"fromEvent\"])(window, \"popstate\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"filter\"])(function (ev) { return ev.state !== null; }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (ev) { return ({\n url: new URL(location.href),\n offset: ev.state\n }); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"share\"])());\n /* Emit location change */\n Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"merge\"])(push$, pop$)\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"distinctUntilChanged\"])(function (prev, next) { return prev.url.href === next.url.href; }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"pluck\"])(\"url\"))\n .subscribe(location$);\n /* Fetch document on location change */\n var ajax$ = location$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"distinctUntilKeyChanged\"])(\"pathname\"), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"skip\"])(1), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"switchMap\"])(function (url) { return Object(rxjs_ajax__WEBPACK_IMPORTED_MODULE_2__[\"ajax\"])({\n url: url.href,\n responseType: \"text\",\n withCredentials: true\n })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"catchError\"])(function () {\n Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"setLocation\"])(url);\n return rxjs__WEBPACK_IMPORTED_MODULE_1__[\"NEVER\"];\n })); }));\n /* Set new location as soon as the document was fetched */\n push$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"sample\"])(ajax$))\n .subscribe(function (_a) {\n var url = _a.url;\n history.pushState({}, \"\", url.toString());\n });\n /* Parse and emit document */\n var dom = new DOMParser();\n ajax$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (_a) {\n var response = _a.response;\n return dom.parseFromString(response, \"text/html\");\n }))\n .subscribe(document$);\n /* Intercept instant loading */\n var instant$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"merge\"])(push$, pop$)\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"sample\"])(document$));\n // TODO: this must be combined with search scroll restoration on mobile\n instant$.subscribe(function (_a) {\n var url = _a.url, offset = _a.offset;\n if (url.hash && !offset) {\n Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"setLocationHash\"])(url.hash);\n }\n else {\n Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"setViewportOffset\"])(offset || { y: 0 });\n }\n });\n /* Replace document metadata */\n instant$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"withLatestFrom\"])(document$))\n .subscribe(function (_a) {\n var e_1, _b;\n var _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), _d = _c[1], title = _d.title, head = _d.head;\n document.dispatchEvent(new CustomEvent(\"DOMContentSwitch\"));\n document.title = title;\n try {\n /* Replace meta tags */\n for (var _e = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])([\n \"link[rel=\\\"canonical\\\"]\",\n \"meta[name=\\\"author\\\"]\",\n \"meta[name=\\\"description\\\"]\"\n ]), _f = _e.next(); !_f.done; _f = _e.next()) {\n var selector = _f.value;\n var next = Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"getElement\"])(selector, head);\n var prev = Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"getElement\"])(selector, document.head);\n if (typeof next !== \"undefined\" &&\n typeof prev !== \"undefined\") {\n Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"replaceElement\"])(prev, next);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_1) throw e_1.error; }\n }\n });\n /* Debounce update of viewport offset */\n viewport$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"debounceTime\"])(250), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"distinctUntilKeyChanged\"])(\"offset\"))\n .subscribe(function (_a) {\n var offset = _a.offset;\n history.replaceState(offset, \"\");\n });\n /* Set viewport offset from history */\n Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"merge\"])(state$, pop$)\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"bufferCount\"])(2, 1), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"filter\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), prev = _b[0], next = _b[1];\n return prev.url.pathname === next.url.pathname\n && !Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"isAnchorLocation\"])(next.url);\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), state = _b[1];\n return state;\n }))\n .subscribe(function (_a) {\n var offset = _a.offset;\n Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"setViewportOffset\"])(offset || { y: 0 });\n });\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/instant/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/keyboard/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/integrations/keyboard/index.ts ***! + \***************************************************************/ +/*! exports provided: setupKeyboard */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupKeyboard\", function() { return setupKeyboard; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! components */ \"./src/assets/javascripts/components/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set up keyboard\n *\n * This function will set up the keyboard handlers and ensure that keys are\n * correctly propagated. Currently there are two modes:\n *\n * - `global`: This mode is active when the search is closed. It is intended\n * to assign hotkeys to specific functions of the site. Currently the search,\n * previous and next page can be triggered.\n *\n * - `search`: This mode is active when the search is open. It maps certain\n * navigational keys to offer search results that can be entirely navigated\n * through keyboard input.\n *\n * The keyboard observable is returned and can be used to monitor the keyboard\n * in order toassign further hotkeys to custom functions.\n *\n * @return Keyboard observable\n */\nfunction setupKeyboard() {\n var keyboard$ = Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"watchKeyboard\"])()\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (key) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({ mode: Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"getToggle\"])(\"search\") ? \"search\" : \"global\" }, key)); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(function (_a) {\n var mode = _a.mode;\n if (mode === \"global\") {\n var active = Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"getActiveElement\"])();\n if (typeof active !== \"undefined\")\n return !Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"isSusceptibleToKeyboard\"])(active);\n }\n return true;\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"share\"])());\n /* Set up search keyboard handlers */\n keyboard$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(function (_a) {\n var mode = _a.mode;\n return mode === \"search\";\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"withLatestFrom\"])(Object(components__WEBPACK_IMPORTED_MODULE_3__[\"useComponent\"])(\"search-query\"), Object(components__WEBPACK_IMPORTED_MODULE_3__[\"useComponent\"])(\"search-result\")))\n .subscribe(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 3), key = _b[0], query = _b[1], result = _b[2];\n var active = Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"getActiveElement\"])();\n switch (key.type) {\n /* Enter: prevent form submission */\n case \"Enter\":\n if (active === query)\n key.claim();\n break;\n /* Escape or Tab: close search */\n case \"Escape\":\n case \"Tab\":\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"setToggle\"])(\"search\", false);\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"setElementFocus\"])(query, false);\n break;\n /* Vertical arrows: select previous or next search result */\n case \"ArrowUp\":\n case \"ArrowDown\":\n if (typeof active === \"undefined\") {\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"setElementFocus\"])(query);\n }\n else {\n var els = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])([query], Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"getElements\"])(\"[href]\", result));\n var i = Math.max(0, (Math.max(0, els.indexOf(active)) + els.length + (key.type === \"ArrowUp\" ? -1 : +1)) % els.length);\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"setElementFocus\"])(els[i]);\n }\n /* Prevent scrolling of page */\n key.claim();\n break;\n /* All other keys: hand to search query */\n default:\n if (query !== Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"getActiveElement\"])())\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"setElementFocus\"])(query);\n }\n });\n /* Set up global keyboard handlers */\n keyboard$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(function (_a) {\n var mode = _a.mode;\n return mode === \"global\";\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"withLatestFrom\"])(Object(components__WEBPACK_IMPORTED_MODULE_3__[\"useComponent\"])(\"search-query\")))\n .subscribe(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), key = _b[0], query = _b[1];\n switch (key.type) {\n /* Open search and select query */\n case \"f\":\n case \"s\":\n case \"/\":\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"setElementFocus\"])(query);\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"setElementSelection\"])(query);\n key.claim();\n break;\n /* Go to previous page */\n case \"p\":\n case \",\":\n var prev = Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"getElement\"])(\"[href][rel=prev]\");\n if (typeof prev !== \"undefined\")\n prev.click();\n break;\n /* Go to next page */\n case \"n\":\n case \".\":\n var next = Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"getElement\"])(\"[href][rel=next]\");\n if (typeof next !== \"undefined\")\n next.click();\n break;\n }\n });\n /* Return keyboard */\n return keyboard$;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/keyboard/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/_/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/_/index.ts ***! + \***************************************************************/ +/*! exports provided: Search */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Search\", function() { return Search; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _document__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../document */ \"./src/assets/javascripts/integrations/search/document/index.ts\");\n/* harmony import */ var _highlighter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../highlighter */ \"./src/assets/javascripts/integrations/search/highlighter/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Class\n * ------------------------------------------------------------------------- */\n/**\n * Search\n *\n * Note that `lunr` is injected via Webpack, as it will otherwise also be\n * bundled in the application bundle.\n */\nvar Search = /** @class */ (function () {\n /**\n * Create the search integration\n *\n * @param data - Search index\n */\n function Search(_a) {\n var config = _a.config, docs = _a.docs, pipeline = _a.pipeline, index = _a.index;\n this.documents = Object(_document__WEBPACK_IMPORTED_MODULE_1__[\"setupSearchDocumentMap\"])(docs);\n this.highlight = Object(_highlighter__WEBPACK_IMPORTED_MODULE_2__[\"setupSearchHighlighter\"])(config);\n /* If no index was given, create it */\n if (typeof index === \"undefined\") {\n this.index = lunr(function () {\n var e_1, _a, _b, e_2, _c;\n pipeline = pipeline || [\"trimmer\", \"stopWordFilter\"];\n /* Set up pipeline according to configuration */\n this.pipeline.reset();\n try {\n for (var pipeline_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(pipeline), pipeline_1_1 = pipeline_1.next(); !pipeline_1_1.done; pipeline_1_1 = pipeline_1.next()) {\n var fn = pipeline_1_1.value;\n this.pipeline.add(lunr[fn]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (pipeline_1_1 && !pipeline_1_1.done && (_a = pipeline_1.return)) _a.call(pipeline_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n /* Set up alternate search languages */\n if (config.lang.length === 1 && config.lang[0] !== \"en\") {\n this.use(lunr[config.lang[0]]);\n }\n else if (config.lang.length > 1) {\n this.use((_b = lunr).multiLanguage.apply(_b, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(config.lang)));\n }\n /* Set up fields and reference */\n this.field(\"title\", { boost: 1000 });\n this.field(\"text\");\n this.ref(\"location\");\n try {\n /* Index documents */\n for (var docs_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(docs), docs_1_1 = docs_1.next(); !docs_1_1.done; docs_1_1 = docs_1.next()) {\n var doc = docs_1_1.value;\n this.add(doc);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (docs_1_1 && !docs_1_1.done && (_c = docs_1.return)) _c.call(docs_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n });\n /* Prebuilt or serialized index */\n }\n else {\n this.index = lunr.Index.load(typeof index === \"string\"\n ? JSON.parse(index)\n : index);\n }\n }\n /**\n * Search for matching documents\n *\n * The search index which MkDocs provides is divided up into articles, which\n * contain the whole content of the individual pages, and sections, which only\n * contain the contents of the subsections obtained by breaking the individual\n * pages up at `h1` ... `h6`. As there may be many sections on different pages\n * with identical titles (for example within this very project, e.g. \"Usage\"\n * or \"Installation\"), they need to be put into the context of the containing\n * page. For this reason, section results are grouped within their respective\n * articles which are the top-level results that are returned.\n *\n * @param value - Query value\n *\n * @return Search results\n */\n Search.prototype.query = function (value) {\n var _this = this;\n if (value) {\n try {\n /* Group sections by containing article */\n var groups = this.index.search(value)\n .reduce(function (results, result) {\n var document = _this.documents.get(result.ref);\n if (typeof document !== \"undefined\") {\n if (\"parent\" in document) {\n var ref = document.parent.location;\n results.set(ref, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(results.get(ref) || [], [result]));\n }\n else {\n var ref = document.location;\n results.set(ref, results.get(ref) || []);\n }\n }\n return results;\n }, new Map());\n /* Create highlighter for query */\n var fn_1 = this.highlight(value);\n /* Map groups to search documents */\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(groups).map(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), ref = _b[0], sections = _b[1];\n return ({\n article: fn_1(_this.documents.get(ref)),\n sections: sections.map(function (section) {\n return fn_1(_this.documents.get(section.ref));\n })\n });\n });\n /* Log errors to console (for now) */\n }\n catch (err) {\n // tslint:disable-next-line no-console\n console.warn(\"Invalid query: \" + value + \" \\u2013 see https://bit.ly/2s3ChXG\");\n }\n }\n /* Return nothing in case of error or empty query */\n return [];\n };\n return Search;\n}());\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/document/index.ts": +/*!**********************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/document/index.ts ***! + \**********************************************************************/ +/*! exports provided: setupSearchDocumentMap */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupSearchDocumentMap\", function() { return setupSearchDocumentMap; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var escape_html__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! escape-html */ \"./node_modules/escape-html/index.js\");\n/* harmony import */ var escape_html__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(escape_html__WEBPACK_IMPORTED_MODULE_1__);\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Create a search document mapping\n *\n * @param docs - Search index documents\n *\n * @return Search document map\n */\nfunction setupSearchDocumentMap(docs) {\n var e_1, _a;\n var documents = new Map();\n try {\n for (var docs_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(docs), docs_1_1 = docs_1.next(); !docs_1_1.done; docs_1_1 = docs_1.next()) {\n var doc = docs_1_1.value;\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(doc.location.split(\"#\"), 2), path = _b[0], hash = _b[1];\n /* Extract location and title */\n var location = doc.location;\n var title = doc.title;\n /* Escape and cleanup text */\n var text = escape_html__WEBPACK_IMPORTED_MODULE_1__(doc.text)\n .replace(/\\s+(?=[,.:;!?])/g, \"\")\n .replace(/\\s+/g, \" \");\n /* Handle section */\n if (hash) {\n var parent = documents.get(path);\n /* Ignore first section, override article */\n if (!parent.linked) {\n parent.title = doc.title;\n parent.text = text;\n parent.linked = true;\n /* Add subsequent section */\n }\n else {\n documents.set(location, {\n location: location,\n title: title,\n text: text,\n parent: parent\n });\n }\n /* Add article */\n }\n else {\n documents.set(location, {\n location: location,\n title: title,\n text: text,\n linked: false\n });\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (docs_1_1 && !docs_1_1.done && (_a = docs_1.return)) _a.call(docs_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return documents;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/document/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/highlighter/index.ts": +/*!*************************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/highlighter/index.ts ***! + \*************************************************************************/ +/*! exports provided: setupSearchHighlighter */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupSearchHighlighter\", function() { return setupSearchHighlighter; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Create a search highlighter\n *\n * @param config - Search index configuration\n *\n * @return Search highlight factory function\n */\nfunction setupSearchHighlighter(config) {\n var separator = new RegExp(config.separator, \"img\");\n var highlight = function (_, data, term) {\n return data + \"\" + term + \"\";\n };\n /* Return factory function */\n return function (value) {\n value = value\n .replace(/[\\s*+-:~^]+/g, \" \")\n .trim();\n /* Create search term match expression */\n var match = new RegExp(\"(^|\" + config.separator + \")(\" + value\n .replace(/[|\\\\{}()[\\]^$+*?.-]/g, \"\\\\$&\")\n .replace(separator, \"|\") + \")\", \"img\");\n /* Highlight document */\n return function (document) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({}, document), { title: document.title.replace(match, highlight), text: document.text.replace(match, highlight) })); };\n };\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/highlighter/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/index.ts": +/*!*************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/index.ts ***! + \*************************************************************/ +/*! exports provided: Search, setupSearchDocumentMap, setupSearchHighlighter, defaultTransform, setupSearchWorker, SearchMessageType, isSearchSetupMessage, isSearchReadyMessage, isSearchQueryMessage, isSearchResultMessage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/integrations/search/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Search\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"Search\"]; });\n\n/* harmony import */ var _document__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./document */ \"./src/assets/javascripts/integrations/search/document/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupSearchDocumentMap\", function() { return _document__WEBPACK_IMPORTED_MODULE_1__[\"setupSearchDocumentMap\"]; });\n\n/* harmony import */ var _highlighter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./highlighter */ \"./src/assets/javascripts/integrations/search/highlighter/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupSearchHighlighter\", function() { return _highlighter__WEBPACK_IMPORTED_MODULE_2__[\"setupSearchHighlighter\"]; });\n\n/* harmony import */ var _transform__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./transform */ \"./src/assets/javascripts/integrations/search/transform/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"defaultTransform\", function() { return _transform__WEBPACK_IMPORTED_MODULE_3__[\"defaultTransform\"]; });\n\n/* harmony import */ var _worker__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./worker */ \"./src/assets/javascripts/integrations/search/worker/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupSearchWorker\", function() { return _worker__WEBPACK_IMPORTED_MODULE_4__[\"setupSearchWorker\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SearchMessageType\", function() { return _worker__WEBPACK_IMPORTED_MODULE_4__[\"SearchMessageType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchSetupMessage\", function() { return _worker__WEBPACK_IMPORTED_MODULE_4__[\"isSearchSetupMessage\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchReadyMessage\", function() { return _worker__WEBPACK_IMPORTED_MODULE_4__[\"isSearchReadyMessage\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchQueryMessage\", function() { return _worker__WEBPACK_IMPORTED_MODULE_4__[\"isSearchQueryMessage\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchResultMessage\", function() { return _worker__WEBPACK_IMPORTED_MODULE_4__[\"isSearchResultMessage\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/transform/index.ts": +/*!***********************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/transform/index.ts ***! + \***********************************************************************/ +/*! exports provided: defaultTransform */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultTransform\", function() { return defaultTransform; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Default transformation function\n *\n * Rogue control characters are filtered before handing the query to the\n * search index, as `lunr` will throw otherwise.\n *\n * @param value - Query value\n *\n * @return Transformed query value\n */\nfunction defaultTransform(value) {\n return value\n .replace(/(?:^|\\s+)[*+-:^~]+(?=\\s+|$)/g, \"\")\n .trim()\n .replace(/\\s+|\\b$/g, \"* \");\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/transform/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/worker/_/index.ts": +/*!**********************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/worker/_/index.ts ***! + \**********************************************************************/ +/*! exports provided: setupSearchWorker */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupSearchWorker\", function() { return setupSearchWorker; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/index.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/* harmony import */ var _message__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../message */ \"./src/assets/javascripts/integrations/search/worker/message/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n/**\n * Set up search index\n *\n * @param data - Search index\n *\n * @return Search index\n */\nfunction setupSearchIndex(_a) {\n var config = _a.config, docs = _a.docs, index = _a.index;\n /* Override default language with value from translation */\n if (config.lang.length === 1 && config.lang[0] === \"en\")\n config.lang = [Object(utilities__WEBPACK_IMPORTED_MODULE_5__[\"translate\"])(\"search.config.lang\")];\n /* Override default separator with value from translation */\n if (config.separator === \"[\\s\\-]+\")\n config.separator = Object(utilities__WEBPACK_IMPORTED_MODULE_5__[\"translate\"])(\"search.config.separator\");\n /* Set pipeline from translation */\n var pipeline = Object(utilities__WEBPACK_IMPORTED_MODULE_5__[\"translate\"])(\"search.config.pipeline\")\n .split(/\\s*,\\s*/)\n .filter(ramda__WEBPACK_IMPORTED_MODULE_1__[\"identity\"]);\n /* Return search index after defaulting */\n return { config: config, docs: docs, index: index, pipeline: pipeline };\n}\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set up search web worker\n *\n * This function will create a web worker to set up and query the search index\n * which is done using `lunr`. The index must be passed as an observable to\n * enable hacks like _localsearch_ via search index embedding as JSON.\n *\n * @param url - Worker URL\n * @param options - Options\n *\n * @return Worker handler\n */\nfunction setupSearchWorker(url, _a) {\n var index$ = _a.index$, base$ = _a.base$;\n var worker = new Worker(url);\n /* Create communication channels and resolve relative links */\n var tx$ = new rxjs__WEBPACK_IMPORTED_MODULE_2__[\"Subject\"]();\n var rx$ = Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"watchWorker\"])(worker, { tx$: tx$ })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"withLatestFrom\"])(base$), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (_a) {\n var e_1, _b, e_2, _c;\n var _d = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), message = _d[0], base = _d[1];\n if (Object(_message__WEBPACK_IMPORTED_MODULE_6__[\"isSearchResultMessage\"])(message)) {\n try {\n for (var _e = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(message.data), _f = _e.next(); !_f.done; _f = _e.next()) {\n var _g = _f.value, article = _g.article, sections = _g.sections;\n article.location = base + \"/\" + article.location;\n try {\n for (var sections_1 = (e_2 = void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(sections)), sections_1_1 = sections_1.next(); !sections_1_1.done; sections_1_1 = sections_1.next()) {\n var section = sections_1_1.value;\n section.location = base + \"/\" + section.location;\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (sections_1_1 && !sections_1_1.done && (_c = sections_1.return)) _c.call(sections_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n return message;\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"shareReplay\"])(1));\n /* Set up search index */\n index$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (index) { return ({\n type: _message__WEBPACK_IMPORTED_MODULE_6__[\"SearchMessageType\"].SETUP,\n data: setupSearchIndex(index)\n }); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"asyncScheduler\"]))\n .subscribe(tx$.next.bind(tx$));\n /* Return worker handler */\n return { tx$: tx$, rx$: rx$ };\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/worker/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/worker/index.ts": +/*!********************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/worker/index.ts ***! + \********************************************************************/ +/*! exports provided: setupSearchWorker, SearchMessageType, isSearchSetupMessage, isSearchReadyMessage, isSearchQueryMessage, isSearchResultMessage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/integrations/search/worker/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupSearchWorker\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"setupSearchWorker\"]; });\n\n/* harmony import */ var _message__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./message */ \"./src/assets/javascripts/integrations/search/worker/message/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SearchMessageType\", function() { return _message__WEBPACK_IMPORTED_MODULE_1__[\"SearchMessageType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchSetupMessage\", function() { return _message__WEBPACK_IMPORTED_MODULE_1__[\"isSearchSetupMessage\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchReadyMessage\", function() { return _message__WEBPACK_IMPORTED_MODULE_1__[\"isSearchReadyMessage\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchQueryMessage\", function() { return _message__WEBPACK_IMPORTED_MODULE_1__[\"isSearchQueryMessage\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchResultMessage\", function() { return _message__WEBPACK_IMPORTED_MODULE_1__[\"isSearchResultMessage\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/worker/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/worker/message/index.ts": +/*!****************************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/worker/message/index.ts ***! + \****************************************************************************/ +/*! exports provided: SearchMessageType, isSearchSetupMessage, isSearchReadyMessage, isSearchQueryMessage, isSearchResultMessage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SearchMessageType\", function() { return SearchMessageType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSearchSetupMessage\", function() { return isSearchSetupMessage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSearchReadyMessage\", function() { return isSearchReadyMessage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSearchQueryMessage\", function() { return isSearchQueryMessage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSearchResultMessage\", function() { return isSearchResultMessage; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n/**\n * Search message type\n */\nvar SearchMessageType;\n(function (SearchMessageType) {\n SearchMessageType[SearchMessageType[\"SETUP\"] = 0] = \"SETUP\";\n SearchMessageType[SearchMessageType[\"READY\"] = 1] = \"READY\";\n SearchMessageType[SearchMessageType[\"QUERY\"] = 2] = \"QUERY\";\n SearchMessageType[SearchMessageType[\"RESULT\"] = 3] = \"RESULT\"; /* Search results */\n})(SearchMessageType || (SearchMessageType = {}));\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Type guard for search setup messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nfunction isSearchSetupMessage(message) {\n return message.type === SearchMessageType.SETUP;\n}\n/**\n * Type guard for search ready messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nfunction isSearchReadyMessage(message) {\n return message.type === SearchMessageType.READY;\n}\n/**\n * Type guard for search query messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nfunction isSearchQueryMessage(message) {\n return message.type === SearchMessageType.QUERY;\n}\n/**\n * Type guard for search result messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nfunction isSearchResultMessage(message) {\n return message.type === SearchMessageType.RESULT;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/worker/message/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/patches/details/index.ts": +/*!*********************************************************!*\ + !*** ./src/assets/javascripts/patches/details/index.ts ***! + \*********************************************************/ +/*! exports provided: patchDetails */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"patchDetails\", function() { return patchDetails; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/index.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Patch all `details` elements\n *\n * This function will ensure that all `details` tags are opened prior to\n * printing, so the whole content of the page is included, and on anchor jumps.\n *\n * @param options - Options\n */\nfunction patchDetails(_a) {\n var document$ = _a.document$, hash$ = _a.hash$;\n var els$ = document$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function () { return Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"getElements\"])(\"details\"); }));\n /* Open all details before printing */\n Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"merge\"])(Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"watchMedia\"])(\"print\").pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"filter\"])(ramda__WEBPACK_IMPORTED_MODULE_1__[\"identity\"])), /* Webkit */ Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"fromEvent\"])(window, \"beforeprint\") /* IE, FF */)\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"switchMapTo\"])(els$))\n .subscribe(function (els) {\n var e_1, _a;\n try {\n for (var els_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(els), els_1_1 = els_1.next(); !els_1_1.done; els_1_1 = els_1.next()) {\n var el = els_1_1.value;\n el.setAttribute(\"open\", \"\");\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (els_1_1 && !els_1_1.done && (_a = els_1.return)) _a.call(els_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n });\n /* Open parent details and fix anchor jump */\n hash$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (id) { return Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"getElement\"])(\"[id=\\\"\" + id + \"\\\"]\"); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"filter\"])(function (el) { return typeof el !== \"undefined\"; }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"tap\"])(function (el) {\n var details = el.closest(\"details\");\n if (details && !details.open)\n details.setAttribute(\"open\", \"\");\n }))\n .subscribe(function (el) { return el.scrollIntoView(); });\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/patches/details/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/patches/index.ts": +/*!*************************************************!*\ + !*** ./src/assets/javascripts/patches/index.ts ***! + \*************************************************/ +/*! exports provided: patchDetails, patchScripts, patchScrollfix, patchSource, patchTables */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _details__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./details */ \"./src/assets/javascripts/patches/details/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"patchDetails\", function() { return _details__WEBPACK_IMPORTED_MODULE_0__[\"patchDetails\"]; });\n\n/* harmony import */ var _script__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./script */ \"./src/assets/javascripts/patches/script/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"patchScripts\", function() { return _script__WEBPACK_IMPORTED_MODULE_1__[\"patchScripts\"]; });\n\n/* harmony import */ var _scrollfix__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./scrollfix */ \"./src/assets/javascripts/patches/scrollfix/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"patchScrollfix\", function() { return _scrollfix__WEBPACK_IMPORTED_MODULE_2__[\"patchScrollfix\"]; });\n\n/* harmony import */ var _source__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./source */ \"./src/assets/javascripts/patches/source/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"patchSource\", function() { return _source__WEBPACK_IMPORTED_MODULE_3__[\"patchSource\"]; });\n\n/* harmony import */ var _table__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./table */ \"./src/assets/javascripts/patches/table/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"patchTables\", function() { return _table__WEBPACK_IMPORTED_MODULE_4__[\"patchTables\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/patches/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/patches/script/index.ts": +/*!********************************************************!*\ + !*** ./src/assets/javascripts/patches/script/index.ts ***! + \********************************************************/ +/*! exports provided: patchScripts */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"patchScripts\", function() { return patchScripts; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! components */ \"./src/assets/javascripts/components/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Patch all `script` elements\n *\n * This function must be run after a document switch, which means the first\n * emission must be ignored.\n *\n * @param options - Options\n */\nfunction patchScripts(_a) {\n var document$ = _a.document$;\n var els$ = document$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"skip\"])(1), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"withLatestFrom\"])(Object(components__WEBPACK_IMPORTED_MODULE_3__[\"useComponent\"])(\"container\")), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), el = _b[1];\n return Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"getElements\"])(\"script\", el);\n }));\n /* Evaluate all scripts via replacement */\n els$.subscribe(function (els) {\n var e_1, _a;\n try {\n for (var els_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(els), els_1_1 = els_1.next(); !els_1_1.done; els_1_1 = els_1.next()) {\n var el = els_1_1.value;\n if (el.src || /(^|\\/javascript)$/i.test(el.type)) {\n var script = Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"])(\"script\");\n var key = el.src ? \"src\" : \"textContent\";\n script[key] = el[key];\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"replaceElement\"])(el, script);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (els_1_1 && !els_1_1.done && (_a = els_1.return)) _a.call(els_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n });\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/patches/script/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/patches/scrollfix/index.ts": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/patches/scrollfix/index.ts ***! + \***********************************************************/ +/*! exports provided: patchScrollfix */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"patchScrollfix\", function() { return patchScrollfix; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n/**\n * Check whether the given device is an Apple device\n *\n * @return Test result\n */\nfunction isAppleDevice() {\n return /(iPad|iPhone|iPod)/.test(navigator.userAgent);\n}\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Patch all elements with `data-md-scrollfix` attributes\n *\n * This is a year-old patch which ensures that overflow scrolling works at the\n * top and bottom of containers on iOS by ensuring a `1px` scroll offset upon\n * the start of a touch event.\n *\n * @see https://bit.ly/2SCtAOO - Original source\n *\n * @param options - Options\n */\nfunction patchScrollfix(_a) {\n var document$ = _a.document$;\n var els$ = document$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function () { return Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElements\"])(\"[data-md-scrollfix]\"); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"shareReplay\"])(1));\n /* Remove marker attribute, so we'll only add the fix once */\n els$.subscribe(function (els) {\n var e_1, _a;\n try {\n for (var els_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(els), els_1_1 = els_1.next(); !els_1_1.done; els_1_1 = els_1.next()) {\n var el = els_1_1.value;\n el.removeAttribute(\"data-md-scrollfix\");\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (els_1_1 && !els_1_1.done && (_a = els_1.return)) _a.call(els_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n });\n /* Patch overflow scrolling on touch start */\n Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"iif\"])(isAppleDevice, els$, rxjs__WEBPACK_IMPORTED_MODULE_1__[\"NEVER\"])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (els) { return rxjs__WEBPACK_IMPORTED_MODULE_1__[\"merge\"].apply(void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(els.map(function (el) { return (Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"fromEvent\"])(el, \"touchstart\", { passive: true })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"mapTo\"])(el))); }))); }))\n .subscribe(function (el) {\n var top = el.scrollTop;\n /* We're at the top of the container */\n if (top === 0) {\n el.scrollTop = 1;\n /* We're at the bottom of the container */\n }\n else if (top + el.offsetHeight === el.scrollHeight) {\n el.scrollTop = top - 1;\n }\n });\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/patches/scrollfix/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/patches/source/github/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/patches/source/github/index.ts ***! + \***************************************************************/ +/*! exports provided: fetchSourceFactsFromGitHub */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fetchSourceFactsFromGitHub\", function() { return fetchSourceFactsFromGitHub; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_ajax__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/ajax */ \"./node_modules/rxjs/dist/esm5/ajax/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Fetch GitHub source facts\n *\n * @param user - GitHub user\n * @param repo - GitHub repository\n *\n * @return Source facts observable\n */\nfunction fetchSourceFactsFromGitHub(user, repo) {\n return Object(rxjs_ajax__WEBPACK_IMPORTED_MODULE_1__[\"ajax\"])({\n url: typeof repo !== \"undefined\"\n ? \"https://api.github.com/repos/\" + user + \"/\" + repo\n : \"https://api.github.com/users/\" + user,\n responseType: \"json\"\n })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"filter\"])(function (_a) {\n var status = _a.status;\n return status === 200;\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"pluck\"])(\"response\"), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (data) {\n /* GitHub repository */\n if (typeof repo !== \"undefined\") {\n var stargazers_count = data.stargazers_count, forks_count = data.forks_count;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"of\"])([\n Object(utilities__WEBPACK_IMPORTED_MODULE_3__[\"round\"])(stargazers_count || 0) + \" Stars\",\n Object(utilities__WEBPACK_IMPORTED_MODULE_3__[\"round\"])(forks_count || 0) + \" Forks\"\n ]);\n /* GitHub user/organization */\n }\n else {\n var public_repos = data.public_repos;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"of\"])([\n Object(utilities__WEBPACK_IMPORTED_MODULE_3__[\"round\"])(public_repos || 0) + \" Repositories\"\n ]);\n }\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/patches/source/github/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/patches/source/gitlab/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/patches/source/gitlab/index.ts ***! + \***************************************************************/ +/*! exports provided: fetchSourceFactsFromGitLab */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fetchSourceFactsFromGitLab\", function() { return fetchSourceFactsFromGitLab; });\n/* harmony import */ var rxjs_ajax__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs/ajax */ \"./node_modules/rxjs/dist/esm5/ajax/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Fetch GitLab source facts\n *\n * @param base - GitLab base\n * @param project - GitLab project\n *\n * @return Source facts observable\n */\nfunction fetchSourceFactsFromGitLab(base, project) {\n return Object(rxjs_ajax__WEBPACK_IMPORTED_MODULE_0__[\"ajax\"])({\n url: \"https://\" + base + \"/api/v4/projects/\" + encodeURIComponent(project),\n responseType: \"json\"\n })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(function (_a) {\n var status = _a.status;\n return status === 200;\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"pluck\"])(\"response\"), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (_a) {\n var star_count = _a.star_count, forks_count = _a.forks_count;\n return ([\n Object(utilities__WEBPACK_IMPORTED_MODULE_2__[\"round\"])(star_count) + \" Stars\",\n Object(utilities__WEBPACK_IMPORTED_MODULE_2__[\"round\"])(forks_count) + \" Forks\"\n ]);\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/patches/source/gitlab/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/patches/source/index.ts": +/*!********************************************************!*\ + !*** ./src/assets/javascripts/patches/source/index.ts ***! + \********************************************************/ +/*! exports provided: patchSource */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"patchSource\", function() { return patchSource; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var templates__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! templates */ \"./src/assets/javascripts/templates/index.ts\");\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/* harmony import */ var _github__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./github */ \"./src/assets/javascripts/patches/source/github/index.ts\");\n/* harmony import */ var _gitlab__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./gitlab */ \"./src/assets/javascripts/patches/source/gitlab/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n/**\n * Fetch source facts\n *\n * @param url - Source repository URL\n *\n * @return Source facts observable\n */\nfunction fetchSourceFacts(url) {\n var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(url.match(/(git(?:hub|lab))/i) || [], 1), type = _a[0];\n switch (type.toLowerCase()) {\n /* GitHub repository */\n case \"github\":\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(url.match(/^.+github\\.com\\/([^\\/]+)\\/?([^\\/]+)/i), 3), user = _b[1], repo = _b[2];\n return Object(_github__WEBPACK_IMPORTED_MODULE_6__[\"fetchSourceFactsFromGitHub\"])(user, repo);\n /* GitLab repository */\n case \"gitlab\":\n var _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(url.match(/^.+?([^\\/]*gitlab[^\\/]+)\\/(.+?)\\/?$/i), 3), base = _c[1], slug = _c[2];\n return Object(_gitlab__WEBPACK_IMPORTED_MODULE_7__[\"fetchSourceFactsFromGitLab\"])(base, slug);\n /* Everything else */\n default:\n return rxjs__WEBPACK_IMPORTED_MODULE_1__[\"NEVER\"];\n }\n}\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Patch elements containing repository information\n *\n * This function will retrieve the URL from the repository link and try to\n * query data from integrated source code platforms like GitHub or GitLab.\n *\n * @param options - Options\n */\nfunction patchSource(_a) {\n var document$ = _a.document$;\n document$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function () { return Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElementOrThrow\"])(\".md-source[href]\"); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (_a) {\n var href = _a.href;\n return (Object(utilities__WEBPACK_IMPORTED_MODULE_5__[\"cache\"])(\"\" + Object(utilities__WEBPACK_IMPORTED_MODULE_5__[\"hash\"])(href), function () { return fetchSourceFacts(href); }));\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"catchError\"])(function () { return rxjs__WEBPACK_IMPORTED_MODULE_1__[\"NEVER\"]; }))\n .subscribe(function (facts) {\n var e_1, _a;\n try {\n for (var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElements\"])(\".md-source__repository\")), _c = _b.next(); !_c.done; _c = _b.next()) {\n var el = _c.value;\n if (!el.hasAttribute(\"data-md-state\")) {\n el.setAttribute(\"data-md-state\", \"done\");\n el.appendChild(Object(templates__WEBPACK_IMPORTED_MODULE_4__[\"renderSource\"])(facts));\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n });\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/patches/source/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/patches/table/index.ts": +/*!*******************************************************!*\ + !*** ./src/assets/javascripts/patches/table/index.ts ***! + \*******************************************************/ +/*! exports provided: patchTables */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"patchTables\", function() { return patchTables; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var templates__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! templates */ \"./src/assets/javascripts/templates/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Patch all `table` elements\n *\n * This function will re-render all tables by wrapping them to improve overflow\n * scrolling on smaller screen sizes.\n *\n * @param options - Options\n */\nfunction patchTables(_a) {\n var document$ = _a.document$;\n var sentinel = Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"])(\"table\");\n document$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function () { return Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"getElements\"])(\"table:not([class])\"); }))\n .subscribe(function (els) {\n var e_1, _a;\n try {\n for (var els_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(els), els_1_1 = els_1.next(); !els_1_1.done; els_1_1 = els_1.next()) {\n var el = els_1_1.value;\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"replaceElement\"])(el, sentinel);\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"replaceElement\"])(sentinel, Object(templates__WEBPACK_IMPORTED_MODULE_3__[\"renderTable\"])(el));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (els_1_1 && !els_1_1.done && (_a = els_1.return)) _a.call(els_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n });\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/patches/table/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/templates/clipboard/index.tsx": +/*!**************************************************************!*\ + !*** ./src/assets/javascripts/templates/clipboard/index.tsx ***! + \**************************************************************/ +/*! exports provided: renderClipboardButton */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"renderClipboardButton\", function() { return renderClipboardButton; });\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n/**\n * CSS classes\n */\nvar css = {\n container: \"md-clipboard md-icon\"\n};\n/* ------------------------------------------------------------------------- */\n/**\n * Path of `file-search-outline` icon\n */\nvar path = \"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 \" +\n \"21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\";\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Render a 'copy-to-clipboard' button\n *\n * @param id - Unique identifier\n *\n * @return Element\n */\nfunction renderClipboardButton(id) {\n return (Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"h\"])(\"button\", { class: css.container, title: Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"translate\"])(\"clipboard.copy\"), \"data-clipboard-target\": \"#\" + id + \" > code\" },\n Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"h\"])(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 24 24\" },\n Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"h\"])(\"path\", { d: path }))));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/templates/clipboard/index.tsx?"); + +/***/ }), + +/***/ "./src/assets/javascripts/templates/index.ts": +/*!***************************************************!*\ + !*** ./src/assets/javascripts/templates/index.ts ***! + \***************************************************/ +/*! exports provided: renderClipboardButton, renderSearchResult, renderSource, renderTable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _clipboard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./clipboard */ \"./src/assets/javascripts/templates/clipboard/index.tsx\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"renderClipboardButton\", function() { return _clipboard__WEBPACK_IMPORTED_MODULE_0__[\"renderClipboardButton\"]; });\n\n/* harmony import */ var _search__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./search */ \"./src/assets/javascripts/templates/search/index.tsx\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"renderSearchResult\", function() { return _search__WEBPACK_IMPORTED_MODULE_1__[\"renderSearchResult\"]; });\n\n/* harmony import */ var _source__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./source */ \"./src/assets/javascripts/templates/source/index.tsx\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"renderSource\", function() { return _source__WEBPACK_IMPORTED_MODULE_2__[\"renderSource\"]; });\n\n/* harmony import */ var _table__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./table */ \"./src/assets/javascripts/templates/table/index.tsx\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"renderTable\", function() { return _table__WEBPACK_IMPORTED_MODULE_3__[\"renderTable\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/templates/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/templates/search/index.tsx": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/templates/search/index.tsx ***! + \***********************************************************/ +/*! exports provided: renderSearchResult */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"renderSearchResult\", function() { return renderSearchResult; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n/**\n * CSS classes\n */\nvar css = {\n item: \"md-search-result__item\",\n link: \"md-search-result__link\",\n article: \"md-search-result__article md-search-result__article--document\",\n section: \"md-search-result__article\",\n title: \"md-search-result__title\",\n teaser: \"md-search-result__teaser\"\n};\n/* ------------------------------------------------------------------------- */\n/**\n * Path of `content-copy` icon\n */\nvar path = \"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H13C12.59,21.75 12.2,21.44 \" +\n \"11.86,21.1C11.53,20.77 11.25,20.4 11,20H6V4H13V9H18V10.18C18.71,10.34 \" +\n \"19.39,10.61 20,11V8L14,2M20.31,18.9C21.64,16.79 21,14 \" +\n \"18.91,12.68C16.8,11.35 14,12 12.69,14.08C11.35,16.19 12,18.97 \" +\n \"14.09,20.3C15.55,21.23 17.41,21.23 \" +\n \"18.88,20.32L22,23.39L23.39,22L20.31,18.9M16.5,19A2.5,2.5 0 0,1 \" +\n \"14,16.5A2.5,2.5 0 0,1 16.5,14A2.5,2.5 0 0,1 19,16.5A2.5,2.5 0 0,1 16.5,19Z\";\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Render a search result\n *\n * @param result - Search result\n *\n * @return Element\n */\nfunction renderSearchResult(_a) {\n var article = _a.article, sections = _a.sections;\n /* Render icon */\n var icon = (Object(utilities__WEBPACK_IMPORTED_MODULE_1__[\"h\"])(\"div\", { class: \"md-search-result__icon md-icon\" },\n Object(utilities__WEBPACK_IMPORTED_MODULE_1__[\"h\"])(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 24 24\" },\n Object(utilities__WEBPACK_IMPORTED_MODULE_1__[\"h\"])(\"path\", { d: path }))));\n /* Render article and sections */\n var children = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])([article], sections).map(function (document) {\n var location = document.location, title = document.title, text = document.text;\n return (Object(utilities__WEBPACK_IMPORTED_MODULE_1__[\"h\"])(\"a\", { href: location, class: css.link, tabIndex: -1 },\n Object(utilities__WEBPACK_IMPORTED_MODULE_1__[\"h\"])(\"article\", { class: \"parent\" in document ? css.section : css.article },\n !(\"parent\" in document) && icon,\n Object(utilities__WEBPACK_IMPORTED_MODULE_1__[\"h\"])(\"h1\", { class: css.title }, title),\n text.length > 0 && Object(utilities__WEBPACK_IMPORTED_MODULE_1__[\"h\"])(\"p\", { class: css.teaser }, Object(utilities__WEBPACK_IMPORTED_MODULE_1__[\"truncate\"])(text, 320)))));\n });\n /* Render search result */\n return (Object(utilities__WEBPACK_IMPORTED_MODULE_1__[\"h\"])(\"li\", { class: css.item }, children));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/templates/search/index.tsx?"); + +/***/ }), + +/***/ "./src/assets/javascripts/templates/source/index.tsx": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/templates/source/index.tsx ***! + \***********************************************************/ +/*! exports provided: renderSource */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"renderSource\", function() { return renderSource; });\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n/**\n * CSS classes\n */\nvar css = {\n facts: \"md-source__facts\",\n fact: \"md-source__fact\"\n};\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Render source facts\n *\n * @param facts - Source facts\n *\n * @return Element\n */\nfunction renderSource(facts) {\n var children = facts.map(function (fact) { return (Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"h\"])(\"li\", { class: css.fact }, fact)); });\n return (Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"h\"])(\"ul\", { class: css.facts }, children));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/templates/source/index.tsx?"); + +/***/ }), + +/***/ "./src/assets/javascripts/templates/table/index.tsx": +/*!**********************************************************!*\ + !*** ./src/assets/javascripts/templates/table/index.tsx ***! + \**********************************************************/ +/*! exports provided: renderTable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"renderTable\", function() { return renderTable; });\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n/**\n * CSS classes\n */\nvar css = {\n wrapper: \"md-typeset__scrollwrap\",\n table: \"md-typeset__table\"\n};\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Render a table inside a wrapper to improve scrolling on mobile\n *\n * @param table - Table element\n *\n * @return Element\n */\nfunction renderTable(table) {\n return (Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"h\"])(\"div\", { class: css.wrapper },\n Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"h\"])(\"div\", { class: css.table }, table)));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/templates/table/index.tsx?"); + +/***/ }), + +/***/ "./src/assets/javascripts/utilities/config/index.ts": +/*!**********************************************************!*\ + !*** ./src/assets/javascripts/utilities/config/index.ts ***! + \**********************************************************/ +/*! exports provided: isConfig */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isConfig\", function() { return isConfig; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Ensure that the given value is a valid configuration\n *\n * We could use `jsonschema` or any other schema validation framework, but that\n * would just add more bloat to the bundle, so we'll keep it plain and simple.\n *\n * @param config - Configuration\n *\n * @return Test result\n */\nfunction isConfig(config) {\n return typeof config === \"object\"\n && typeof config.base === \"string\"\n && typeof config.features === \"object\"\n && typeof config.search === \"object\";\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/utilities/config/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/utilities/index.ts": +/*!***************************************************!*\ + !*** ./src/assets/javascripts/utilities/index.ts ***! + \***************************************************/ +/*! exports provided: isConfig, h, cache, translate, truncate, round, hash */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./config */ \"./src/assets/javascripts/utilities/config/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isConfig\", function() { return _config__WEBPACK_IMPORTED_MODULE_0__[\"isConfig\"]; });\n\n/* harmony import */ var _jsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./jsx */ \"./src/assets/javascripts/utilities/jsx/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return _jsx__WEBPACK_IMPORTED_MODULE_1__[\"h\"]; });\n\n/* harmony import */ var _rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./rxjs */ \"./src/assets/javascripts/utilities/rxjs/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cache\", function() { return _rxjs__WEBPACK_IMPORTED_MODULE_2__[\"cache\"]; });\n\n/* harmony import */ var _string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./string */ \"./src/assets/javascripts/utilities/string/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"translate\", function() { return _string__WEBPACK_IMPORTED_MODULE_3__[\"translate\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"truncate\", function() { return _string__WEBPACK_IMPORTED_MODULE_3__[\"truncate\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"round\", function() { return _string__WEBPACK_IMPORTED_MODULE_3__[\"round\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hash\", function() { return _string__WEBPACK_IMPORTED_MODULE_3__[\"hash\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/utilities/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/utilities/jsx/index.ts": +/*!*******************************************************!*\ + !*** ./src/assets/javascripts/utilities/jsx/index.ts ***! + \*******************************************************/ +/*! exports provided: h */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return h; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n/**\n * Create an element\n *\n * @param tagName - HTML or SVG tag\n *\n * @return Element\n */\nfunction createElement(tagName) {\n switch (tagName) {\n /* SVG elements */\n case \"svg\":\n case \"path\":\n return document.createElementNS(\"http://www.w3.org/2000/svg\", tagName);\n /* HTML elements */\n default:\n return document.createElement(tagName);\n }\n}\n/**\n * Set an attribute\n *\n * @param el - Element\n * @param name - Attribute name\n * @param value - Attribute value\n */\nfunction setAttribute(el, name, value) {\n switch (name) {\n /* Attributes to be ignored */\n case \"xmlns\":\n break;\n /* Attributes of SVG elements */\n case \"viewBox\":\n case \"d\":\n if (typeof value !== \"boolean\")\n el.setAttributeNS(null, name, value);\n else if (value)\n el.setAttributeNS(null, name, \"\");\n break;\n /* Attributes of HTML elements */\n default:\n if (typeof value !== \"boolean\")\n el.setAttribute(name, value);\n else if (value)\n el.setAttribute(name, \"\");\n }\n}\n/**\n * Append a child node to an element\n *\n * @param el - Element\n * @param child - Child node(s)\n */\nfunction appendChild(el, child) {\n var e_1, _a;\n /* Handle primitive types (including raw HTML) */\n if (typeof child === \"string\" || typeof child === \"number\") {\n el.innerHTML += child.toString();\n /* Handle nodes */\n }\n else if (child instanceof Node) {\n el.appendChild(child);\n /* Handle nested children */\n }\n else if (Array.isArray(child)) {\n try {\n for (var child_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(child), child_1_1 = child_1.next(); !child_1_1.done; child_1_1 = child_1.next()) {\n var node = child_1_1.value;\n appendChild(el, node);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (child_1_1 && !child_1_1.done && (_a = child_1.return)) _a.call(child_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n}\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * JSX factory\n *\n * @param tagName - HTML or SVG tag\n * @param attributes - HTML attributes\n * @param children - Child elements\n *\n * @return Element\n */\nfunction h(tagName, attributes) {\n var e_2, _a, e_3, _b;\n var children = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n children[_i - 2] = arguments[_i];\n }\n var el = createElement(tagName);\n /* Set attributes, if any */\n if (attributes)\n try {\n for (var _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(Object(ramda__WEBPACK_IMPORTED_MODULE_1__[\"keys\"])(attributes)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var attr = _d.value;\n setAttribute(el, attr, attributes[attr]);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_2) throw e_2.error; }\n }\n try {\n /* Append child nodes */\n for (var children_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(children), children_1_1 = children_1.next(); !children_1_1.done; children_1_1 = children_1.next()) {\n var child = children_1_1.value;\n appendChild(el, child);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (children_1_1 && !children_1_1.done && (_b = children_1.return)) _b.call(children_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n /* Return element */\n return el;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/utilities/jsx/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/utilities/rxjs/index.ts": +/*!********************************************************!*\ + !*** ./src/assets/javascripts/utilities/rxjs/index.ts ***! + \********************************************************/ +/*! exports provided: cache */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cache\", function() { return cache; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Cache the last value emitted by an observable in session storage\n *\n * If the key is not found in session storage, the factory is executed and the\n * latest value emitted will automatically be persisted to sessions storage.\n * Note that the values emitted by the returned observable must be serializable\n * as `JSON`, or data will be lost.\n *\n * @template T - Value type\n *\n * @param key - Cache key\n * @param factory - Observable factory\n *\n * @return Value observable\n */\nfunction cache(key, factory) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"defer\"])(function () {\n var data = sessionStorage.getItem(key);\n if (data) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"of\"])(JSON.parse(data));\n /* Retrieve value from observable factory and write to storage */\n }\n else {\n var value$ = factory();\n value$.subscribe(function (value) {\n try {\n sessionStorage.setItem(key, JSON.stringify(value));\n }\n catch (err) {\n /* Uncritical, just swallow */\n }\n });\n /* Return value */\n return value$;\n }\n });\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/utilities/rxjs/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/utilities/string/index.ts": +/*!**********************************************************!*\ + !*** ./src/assets/javascripts/utilities/string/index.ts ***! + \**********************************************************/ +/*! exports provided: translate, truncate, round, hash */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"translate\", function() { return translate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"truncate\", function() { return truncate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"round\", function() { return round; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hash\", function() { return hash; });\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n/**\n * Translations\n */\nvar lang;\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Translate the given key\n *\n * @param key - Key to be translated\n * @param value - Value to be replaced\n *\n * @return Translation\n */\nfunction translate(key, value) {\n if (typeof lang === \"undefined\") {\n var el = Object(browser__WEBPACK_IMPORTED_MODULE_0__[\"getElementOrThrow\"])(\"#__lang\");\n lang = JSON.parse(el.textContent);\n }\n if (typeof lang[key] === \"undefined\") {\n throw new ReferenceError(\"Invalid translation: \" + key);\n }\n return typeof value !== \"undefined\"\n ? lang[key].replace(\"#\", value)\n : lang[key];\n}\n/**\n * Truncate a string after the given number of characters\n *\n * This is not a very reasonable approach, since the summaries kind of suck.\n * It would be better to create something more intelligent, highlighting the\n * search occurrences and making a better summary out of it, but this note was\n * written three years ago, so who knows if we'll ever fix it.\n *\n * @param value - Value to be truncated\n * @param n - Number of characters\n *\n * @return Truncated value\n */\nfunction truncate(value, n) {\n var i = n;\n if (value.length > i) {\n while (value[i] !== \" \" && --i > 0)\n ; // tslint:disable-line\n return value.substring(0, i) + \"...\";\n }\n return value;\n}\n/**\n * Round a number for display with source facts\n *\n * This is a reverse engineered version of GitHub's weird rounding algorithm\n * for stars, forks and all other numbers. While all numbers below `1,000` are\n * returned as-is, bigger numbers are converted to fixed numbers:\n *\n * - `1,049` => `1k`\n * - `1,050` => `1.1k`\n * - `1,949` => `1.9k`\n * - `1,950` => `2k`\n *\n * @param value - Original value\n *\n * @return Rounded value\n */\nfunction round(value) {\n if (value > 999) {\n var digits = +((value - 950) % 1000 > 99);\n return ((value + 0.000001) / 1000).toFixed(digits) + \"k\";\n }\n else {\n return value.toString();\n }\n}\n/**\n * Simple hash function\n *\n * @see https://bit.ly/2wsVjJ4 - Original source\n *\n * @param value - Value to be hashed\n *\n * @return Hash as 32bit integer\n */\nfunction hash(value) {\n var h = 0;\n for (var i = 0, len = value.length; i < len; i++) {\n h = ((h << 5) - h) + value.charCodeAt(i);\n h |= 0; // Convert to 32bit integer\n }\n return h;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/utilities/string/index.ts?"); + +/***/ }) + +/******/ }))); \ No newline at end of file diff --git a/docs/assets/javascripts/lunr/min/lunr.ar.min.js b/docs/assets/javascripts/lunr/min/lunr.ar.min.js new file mode 100644 index 00000000..248ddc5d --- /dev/null +++ b/docs/assets/javascripts/lunr/min/lunr.ar.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ar=function(){this.pipeline.reset(),this.pipeline.add(e.ar.trimmer,e.ar.stopWordFilter,e.ar.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ar.stemmer))},e.ar.wordCharacters="ء-ٛٱـ",e.ar.trimmer=e.trimmerSupport.generateTrimmer(e.ar.wordCharacters),e.Pipeline.registerFunction(e.ar.trimmer,"trimmer-ar"),e.ar.stemmer=function(){var e=this;return e.result=!1,e.preRemoved=!1,e.sufRemoved=!1,e.pre={pre1:"ف ك ب و س ل ن ا ي ت",pre2:"ال لل",pre3:"بال وال فال تال كال ولل",pre4:"فبال كبال وبال وكال"},e.suf={suf1:"ه ك ت ن ا ي",suf2:"نك نه ها وك يا اه ون ين تن تم نا وا ان كم كن ني نن ما هم هن تك ته ات يه",suf3:"تين كهم نيه نهم ونه وها يهم ونا ونك وني وهم تكم تنا تها تني تهم كما كها ناه نكم هنا تان يها",suf4:"كموه ناها ونني ونهم تكما تموه تكاه كماه ناكم ناهم نيها وننا"},e.patterns=JSON.parse('{"pt43":[{"pt":[{"c":"ا","l":1}]},{"pt":[{"c":"ا,ت,ن,ي","l":0}],"mPt":[{"c":"ف","l":0,"m":1},{"c":"ع","l":1,"m":2},{"c":"ل","l":2,"m":3}]},{"pt":[{"c":"و","l":2}],"mPt":[{"c":"ف","l":0,"m":0},{"c":"ع","l":1,"m":1},{"c":"ل","l":2,"m":3}]},{"pt":[{"c":"ا","l":2}]},{"pt":[{"c":"ي","l":2}],"mPt":[{"c":"ف","l":0,"m":0},{"c":"ع","l":1,"m":1},{"c":"ا","l":2},{"c":"ل","l":3,"m":3}]},{"pt":[{"c":"م","l":0}]}],"pt53":[{"pt":[{"c":"ت","l":0},{"c":"ا","l":2}]},{"pt":[{"c":"ا,ن,ت,ي","l":0},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ت","l":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":0},{"c":"ا","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ع","l":2,"m":3},{"c":"ل","l":3,"m":4},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":0},{"c":"ا","l":3}],"mPt":[{"c":"ف","l":0,"m":1},{"c":"ع","l":1,"m":2},{"c":"ل","l":2,"m":4}]},{"pt":[{"c":"ا","l":3},{"c":"ن","l":4}]},{"pt":[{"c":"ت","l":0},{"c":"ي","l":3}]},{"pt":[{"c":"م","l":0},{"c":"و","l":3}]},{"pt":[{"c":"ا","l":1},{"c":"و","l":3}]},{"pt":[{"c":"و","l":1},{"c":"ا","l":2}]},{"pt":[{"c":"م","l":0},{"c":"ا","l":3}]},{"pt":[{"c":"م","l":0},{"c":"ي","l":3}]},{"pt":[{"c":"ا","l":2},{"c":"ن","l":3}]},{"pt":[{"c":"م","l":0},{"c":"ن","l":1}],"mPt":[{"c":"ا","l":0},{"c":"ن","l":1},{"c":"ف","l":2,"m":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"م","l":0},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ت","l":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"م","l":0},{"c":"ا","l":2}]},{"pt":[{"c":"م","l":1},{"c":"ا","l":3}]},{"pt":[{"c":"ي,ت,ا,ن","l":0},{"c":"ت","l":1}],"mPt":[{"c":"ف","l":0,"m":2},{"c":"ع","l":1,"m":3},{"c":"ا","l":2},{"c":"ل","l":3,"m":4}]},{"pt":[{"c":"ت,ي,ا,ن","l":0},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ت","l":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":2},{"c":"ي","l":3}]},{"pt":[{"c":"ا,ي,ت,ن","l":0},{"c":"ن","l":1}],"mPt":[{"c":"ا","l":0},{"c":"ن","l":1},{"c":"ف","l":2,"m":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":3},{"c":"ء","l":4}]}],"pt63":[{"pt":[{"c":"ا","l":0},{"c":"ت","l":2},{"c":"ا","l":4}]},{"pt":[{"c":"ا,ت,ن,ي","l":0},{"c":"س","l":1},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"س","l":1},{"c":"ت","l":2},{"c":"ف","l":3,"m":3},{"c":"ع","l":4,"m":4},{"c":"ا","l":5},{"c":"ل","l":6,"m":5}]},{"pt":[{"c":"ا,ن,ت,ي","l":0},{"c":"و","l":3}]},{"pt":[{"c":"م","l":0},{"c":"س","l":1},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"س","l":1},{"c":"ت","l":2},{"c":"ف","l":3,"m":3},{"c":"ع","l":4,"m":4},{"c":"ا","l":5},{"c":"ل","l":6,"m":5}]},{"pt":[{"c":"ي","l":1},{"c":"ي","l":3},{"c":"ا","l":4},{"c":"ء","l":5}]},{"pt":[{"c":"ا","l":0},{"c":"ن","l":1},{"c":"ا","l":4}]}],"pt54":[{"pt":[{"c":"ت","l":0}]},{"pt":[{"c":"ا,ي,ت,ن","l":0}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ع","l":2,"m":2},{"c":"ل","l":3,"m":3},{"c":"ر","l":4,"m":4},{"c":"ا","l":5},{"c":"ر","l":6,"m":4}]},{"pt":[{"c":"م","l":0}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ع","l":2,"m":2},{"c":"ل","l":3,"m":3},{"c":"ر","l":4,"m":4},{"c":"ا","l":5},{"c":"ر","l":6,"m":4}]},{"pt":[{"c":"ا","l":2}]},{"pt":[{"c":"ا","l":0},{"c":"ن","l":2}]}],"pt64":[{"pt":[{"c":"ا","l":0},{"c":"ا","l":4}]},{"pt":[{"c":"م","l":0},{"c":"ت","l":1}]}],"pt73":[{"pt":[{"c":"ا","l":0},{"c":"س","l":1},{"c":"ت","l":2},{"c":"ا","l":5}]}],"pt75":[{"pt":[{"c":"ا","l":0},{"c":"ا","l":5}]}]}'),e.execArray=["cleanWord","removeDiacritics","cleanAlef","removeStopWords","normalizeHamzaAndAlef","removeStartWaw","removePre432","removeEndTaa","wordCheck"],e.stem=function(){var r=0;for(e.result=!1,e.preRemoved=!1,e.sufRemoved=!1;r=0)return!0},e.normalizeHamzaAndAlef=function(){return e.word=e.word.replace("ؤ","ء"),e.word=e.word.replace("ئ","ء"),e.word=e.word.replace(/([\u0627])\1+/gi,"ا"),!1},e.removeEndTaa=function(){return!(e.word.length>2)||(e.word=e.word.replace(/[\u0627]$/,""),e.word=e.word.replace("ة",""),!1)},e.removeStartWaw=function(){return e.word.length>3&&"و"==e.word[0]&&"و"==e.word[1]&&(e.word=e.word.slice(1)),!1},e.removePre432=function(){var r=e.word;if(e.word.length>=7){var t=new RegExp("^("+e.pre.pre4.split(" ").join("|")+")");e.word=e.word.replace(t,"")}if(e.word==r&&e.word.length>=6){var c=new RegExp("^("+e.pre.pre3.split(" ").join("|")+")");e.word=e.word.replace(c,"")}if(e.word==r&&e.word.length>=5){var l=new RegExp("^("+e.pre.pre2.split(" ").join("|")+")");e.word=e.word.replace(l,"")}return r!=e.word&&(e.preRemoved=!0),!1},e.patternCheck=function(r){for(var t=0;t3){var t=new RegExp("^("+e.pre.pre1.split(" ").join("|")+")");e.word=e.word.replace(t,"")}return r!=e.word&&(e.preRemoved=!0),!1},e.removeSuf1=function(){var r=e.word;if(0==e.sufRemoved&&e.word.length>3){var t=new RegExp("("+e.suf.suf1.split(" ").join("|")+")$");e.word=e.word.replace(t,"")}return r!=e.word&&(e.sufRemoved=!0),!1},e.removeSuf432=function(){var r=e.word;if(e.word.length>=6){var t=new RegExp("("+e.suf.suf4.split(" ").join("|")+")$");e.word=e.word.replace(t,"")}if(e.word==r&&e.word.length>=5){var c=new RegExp("("+e.suf.suf3.split(" ").join("|")+")$");e.word=e.word.replace(c,"")}if(e.word==r&&e.word.length>=4){var l=new RegExp("("+e.suf.suf2.split(" ").join("|")+")$");e.word=e.word.replace(l,"")}return r!=e.word&&(e.sufRemoved=!0),!1},e.wordCheck=function(){for(var r=(e.word,[e.removeSuf432,e.removeSuf1,e.removePre1]),t=0,c=!1;e.word.length>=7&&!e.result&&t=f.limit)return;f.cursor++}for(;!f.out_grouping(w,97,248);){if(f.cursor>=f.limit)return;f.cursor++}d=f.cursor,d=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(c,32),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del();break;case 2:f.in_grouping_b(p,97,229)&&f.slice_del()}}function t(){var e,r=f.limit-f.cursor;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.find_among_b(l,4)?(f.bra=f.cursor,f.limit_backward=e,f.cursor=f.limit-r,f.cursor>f.limit_backward&&(f.cursor--,f.bra=f.cursor,f.slice_del())):f.limit_backward=e)}function s(){var e,r,i,n=f.limit-f.cursor;if(f.ket=f.cursor,f.eq_s_b(2,"st")&&(f.bra=f.cursor,f.eq_s_b(2,"ig")&&f.slice_del()),f.cursor=f.limit-n,f.cursor>=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(m,5),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del(),i=f.limit-f.cursor,t(),f.cursor=f.limit-i;break;case 2:f.slice_from("løs")}}function o(){var e;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.out_grouping_b(w,97,248)?(f.bra=f.cursor,u=f.slice_to(u),f.limit_backward=e,f.eq_v_b(u)&&f.slice_del()):f.limit_backward=e)}var a,d,u,c=[new r("hed",-1,1),new r("ethed",0,1),new r("ered",-1,1),new r("e",-1,1),new r("erede",3,1),new r("ende",3,1),new r("erende",5,1),new r("ene",3,1),new r("erne",3,1),new r("ere",3,1),new r("en",-1,1),new r("heden",10,1),new r("eren",10,1),new r("er",-1,1),new r("heder",13,1),new r("erer",13,1),new r("s",-1,2),new r("heds",16,1),new r("es",16,1),new r("endes",18,1),new r("erendes",19,1),new r("enes",18,1),new r("ernes",18,1),new r("eres",18,1),new r("ens",16,1),new r("hedens",24,1),new r("erens",24,1),new r("ers",16,1),new r("ets",16,1),new r("erets",28,1),new r("et",-1,1),new r("eret",30,1)],l=[new r("gd",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("elig",1,1),new r("els",-1,1),new r("løst",-1,2)],w=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],p=[239,254,42,3,0,0,0,0,0,0,0,0,0,0,0,0,16],f=new i;this.setCurrent=function(e){f.setCurrent(e)},this.getCurrent=function(){return f.getCurrent()},this.stem=function(){var r=f.cursor;return e(),f.limit_backward=r,f.cursor=f.limit,n(),f.cursor=f.limit,t(),f.cursor=f.limit,s(),f.cursor=f.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.da.stemmer,"stemmer-da"),e.da.stopWordFilter=e.generateStopWordFilter("ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været".split(" ")),e.Pipeline.registerFunction(e.da.stopWordFilter,"stopWordFilter-da")}}); \ No newline at end of file diff --git a/docs/assets/javascripts/lunr/min/lunr.de.min.js b/docs/assets/javascripts/lunr/min/lunr.de.min.js new file mode 100644 index 00000000..f3b5c108 --- /dev/null +++ b/docs/assets/javascripts/lunr/min/lunr.de.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `German` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.de=function(){this.pipeline.reset(),this.pipeline.add(e.de.trimmer,e.de.stopWordFilter,e.de.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.de.stemmer))},e.de.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.de.trimmer=e.trimmerSupport.generateTrimmer(e.de.wordCharacters),e.Pipeline.registerFunction(e.de.trimmer,"trimmer-de"),e.de.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(e,r,n){return!(!v.eq_s(1,e)||(v.ket=v.cursor,!v.in_grouping(p,97,252)))&&(v.slice_from(r),v.cursor=n,!0)}function i(){for(var r,n,i,s,t=v.cursor;;)if(r=v.cursor,v.bra=r,v.eq_s(1,"ß"))v.ket=v.cursor,v.slice_from("ss");else{if(r>=v.limit)break;v.cursor=r+1}for(v.cursor=t;;)for(n=v.cursor;;){if(i=v.cursor,v.in_grouping(p,97,252)){if(s=v.cursor,v.bra=s,e("u","U",i))break;if(v.cursor=s,e("y","Y",i))break}if(i>=v.limit)return void(v.cursor=n);v.cursor=i+1}}function s(){for(;!v.in_grouping(p,97,252);){if(v.cursor>=v.limit)return!0;v.cursor++}for(;!v.out_grouping(p,97,252);){if(v.cursor>=v.limit)return!0;v.cursor++}return!1}function t(){m=v.limit,l=m;var e=v.cursor+3;0<=e&&e<=v.limit&&(d=e,s()||(m=v.cursor,m=v.limit)return;v.cursor++}}}function c(){return m<=v.cursor}function u(){return l<=v.cursor}function a(){var e,r,n,i,s=v.limit-v.cursor;if(v.ket=v.cursor,(e=v.find_among_b(w,7))&&(v.bra=v.cursor,c()))switch(e){case 1:v.slice_del();break;case 2:v.slice_del(),v.ket=v.cursor,v.eq_s_b(1,"s")&&(v.bra=v.cursor,v.eq_s_b(3,"nis")&&v.slice_del());break;case 3:v.in_grouping_b(g,98,116)&&v.slice_del()}if(v.cursor=v.limit-s,v.ket=v.cursor,(e=v.find_among_b(f,4))&&(v.bra=v.cursor,c()))switch(e){case 1:v.slice_del();break;case 2:if(v.in_grouping_b(k,98,116)){var t=v.cursor-3;v.limit_backward<=t&&t<=v.limit&&(v.cursor=t,v.slice_del())}}if(v.cursor=v.limit-s,v.ket=v.cursor,(e=v.find_among_b(_,8))&&(v.bra=v.cursor,u()))switch(e){case 1:v.slice_del(),v.ket=v.cursor,v.eq_s_b(2,"ig")&&(v.bra=v.cursor,r=v.limit-v.cursor,v.eq_s_b(1,"e")||(v.cursor=v.limit-r,u()&&v.slice_del()));break;case 2:n=v.limit-v.cursor,v.eq_s_b(1,"e")||(v.cursor=v.limit-n,v.slice_del());break;case 3:if(v.slice_del(),v.ket=v.cursor,i=v.limit-v.cursor,!v.eq_s_b(2,"er")&&(v.cursor=v.limit-i,!v.eq_s_b(2,"en")))break;v.bra=v.cursor,c()&&v.slice_del();break;case 4:v.slice_del(),v.ket=v.cursor,e=v.find_among_b(b,2),e&&(v.bra=v.cursor,u()&&1==e&&v.slice_del())}}var d,l,m,h=[new r("",-1,6),new r("U",0,2),new r("Y",0,1),new r("ä",0,3),new r("ö",0,4),new r("ü",0,5)],w=[new r("e",-1,2),new r("em",-1,1),new r("en",-1,2),new r("ern",-1,1),new r("er",-1,1),new r("s",-1,3),new r("es",5,2)],f=[new r("en",-1,1),new r("er",-1,1),new r("st",-1,2),new r("est",2,1)],b=[new r("ig",-1,1),new r("lich",-1,1)],_=[new r("end",-1,1),new r("ig",-1,2),new r("ung",-1,1),new r("lich",-1,3),new r("isch",-1,2),new r("ik",-1,2),new r("heit",-1,3),new r("keit",-1,4)],p=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32,8],g=[117,30,5],k=[117,30,4],v=new n;this.setCurrent=function(e){v.setCurrent(e)},this.getCurrent=function(){return v.getCurrent()},this.stem=function(){var e=v.cursor;return i(),v.cursor=e,t(),v.limit_backward=e,v.cursor=v.limit,a(),v.cursor=v.limit_backward,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.de.stemmer,"stemmer-de"),e.de.stopWordFilter=e.generateStopWordFilter("aber alle allem allen aller alles als also am an ander andere anderem anderen anderer anderes anderm andern anderr anders auch auf aus bei bin bis bist da damit dann das dasselbe dazu daß dein deine deinem deinen deiner deines dem demselben den denn denselben der derer derselbe derselben des desselben dessen dich die dies diese dieselbe dieselben diesem diesen dieser dieses dir doch dort du durch ein eine einem einen einer eines einig einige einigem einigen einiger einiges einmal er es etwas euch euer eure eurem euren eurer eures für gegen gewesen hab habe haben hat hatte hatten hier hin hinter ich ihm ihn ihnen ihr ihre ihrem ihren ihrer ihres im in indem ins ist jede jedem jeden jeder jedes jene jenem jenen jener jenes jetzt kann kein keine keinem keinen keiner keines können könnte machen man manche manchem manchen mancher manches mein meine meinem meinen meiner meines mich mir mit muss musste nach nicht nichts noch nun nur ob oder ohne sehr sein seine seinem seinen seiner seines selbst sich sie sind so solche solchem solchen solcher solches soll sollte sondern sonst um und uns unse unsem unsen unser unses unter viel vom von vor war waren warst was weg weil weiter welche welchem welchen welcher welches wenn werde werden wie wieder will wir wird wirst wo wollen wollte während würde würden zu zum zur zwar zwischen über".split(" ")),e.Pipeline.registerFunction(e.de.stopWordFilter,"stopWordFilter-de")}}); \ No newline at end of file diff --git a/docs/assets/javascripts/lunr/min/lunr.du.min.js b/docs/assets/javascripts/lunr/min/lunr.du.min.js new file mode 100644 index 00000000..49a0f3f0 --- /dev/null +++ b/docs/assets/javascripts/lunr/min/lunr.du.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Dutch` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");console.warn('[Lunr Languages] Please use the "nl" instead of the "du". The "nl" code is the standard code for Dutch language, and "du" will be removed in the next major versions.'),e.du=function(){this.pipeline.reset(),this.pipeline.add(e.du.trimmer,e.du.stopWordFilter,e.du.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.du.stemmer))},e.du.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.du.trimmer=e.trimmerSupport.generateTrimmer(e.du.wordCharacters),e.Pipeline.registerFunction(e.du.trimmer,"trimmer-du"),e.du.stemmer=function(){var r=e.stemmerSupport.Among,i=e.stemmerSupport.SnowballProgram,n=new function(){function e(){for(var e,r,i,o=C.cursor;;){if(C.bra=C.cursor,e=C.find_among(b,11))switch(C.ket=C.cursor,e){case 1:C.slice_from("a");continue;case 2:C.slice_from("e");continue;case 3:C.slice_from("i");continue;case 4:C.slice_from("o");continue;case 5:C.slice_from("u");continue;case 6:if(C.cursor>=C.limit)break;C.cursor++;continue}break}for(C.cursor=o,C.bra=o,C.eq_s(1,"y")?(C.ket=C.cursor,C.slice_from("Y")):C.cursor=o;;)if(r=C.cursor,C.in_grouping(q,97,232)){if(i=C.cursor,C.bra=i,C.eq_s(1,"i"))C.ket=C.cursor,C.in_grouping(q,97,232)&&(C.slice_from("I"),C.cursor=r);else if(C.cursor=i,C.eq_s(1,"y"))C.ket=C.cursor,C.slice_from("Y"),C.cursor=r;else if(n(r))break}else if(n(r))break}function n(e){return C.cursor=e,e>=C.limit||(C.cursor++,!1)}function o(){_=C.limit,f=_,t()||(_=C.cursor,_<3&&(_=3),t()||(f=C.cursor))}function t(){for(;!C.in_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}for(;!C.out_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}return!1}function s(){for(var e;;)if(C.bra=C.cursor,e=C.find_among(p,3))switch(C.ket=C.cursor,e){case 1:C.slice_from("y");break;case 2:C.slice_from("i");break;case 3:if(C.cursor>=C.limit)return;C.cursor++}}function u(){return _<=C.cursor}function c(){return f<=C.cursor}function a(){var e=C.limit-C.cursor;C.find_among_b(g,3)&&(C.cursor=C.limit-e,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del()))}function l(){var e;w=!1,C.ket=C.cursor,C.eq_s_b(1,"e")&&(C.bra=C.cursor,u()&&(e=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-e,C.slice_del(),w=!0,a())))}function m(){var e;u()&&(e=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-e,C.eq_s_b(3,"gem")||(C.cursor=C.limit-e,C.slice_del(),a())))}function d(){var e,r,i,n,o,t,s=C.limit-C.cursor;if(C.ket=C.cursor,e=C.find_among_b(h,5))switch(C.bra=C.cursor,e){case 1:u()&&C.slice_from("heid");break;case 2:m();break;case 3:u()&&C.out_grouping_b(z,97,232)&&C.slice_del()}if(C.cursor=C.limit-s,l(),C.cursor=C.limit-s,C.ket=C.cursor,C.eq_s_b(4,"heid")&&(C.bra=C.cursor,c()&&(r=C.limit-C.cursor,C.eq_s_b(1,"c")||(C.cursor=C.limit-r,C.slice_del(),C.ket=C.cursor,C.eq_s_b(2,"en")&&(C.bra=C.cursor,m())))),C.cursor=C.limit-s,C.ket=C.cursor,e=C.find_among_b(k,6))switch(C.bra=C.cursor,e){case 1:if(c()){if(C.slice_del(),i=C.limit-C.cursor,C.ket=C.cursor,C.eq_s_b(2,"ig")&&(C.bra=C.cursor,c()&&(n=C.limit-C.cursor,!C.eq_s_b(1,"e")))){C.cursor=C.limit-n,C.slice_del();break}C.cursor=C.limit-i,a()}break;case 2:c()&&(o=C.limit-C.cursor,C.eq_s_b(1,"e")||(C.cursor=C.limit-o,C.slice_del()));break;case 3:c()&&(C.slice_del(),l());break;case 4:c()&&C.slice_del();break;case 5:c()&&w&&C.slice_del()}C.cursor=C.limit-s,C.out_grouping_b(j,73,232)&&(t=C.limit-C.cursor,C.find_among_b(v,4)&&C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-t,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del())))}var f,_,w,b=[new r("",-1,6),new r("á",0,1),new r("ä",0,1),new r("é",0,2),new r("ë",0,2),new r("í",0,3),new r("ï",0,3),new r("ó",0,4),new r("ö",0,4),new r("ú",0,5),new r("ü",0,5)],p=[new r("",-1,3),new r("I",0,2),new r("Y",0,1)],g=[new r("dd",-1,-1),new r("kk",-1,-1),new r("tt",-1,-1)],h=[new r("ene",-1,2),new r("se",-1,3),new r("en",-1,2),new r("heden",2,1),new r("s",-1,3)],k=[new r("end",-1,1),new r("ig",-1,2),new r("ing",-1,1),new r("lijk",-1,3),new r("baar",-1,4),new r("bar",-1,5)],v=[new r("aa",-1,-1),new r("ee",-1,-1),new r("oo",-1,-1),new r("uu",-1,-1)],q=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],j=[1,0,0,17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],z=[17,67,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],C=new i;this.setCurrent=function(e){C.setCurrent(e)},this.getCurrent=function(){return C.getCurrent()},this.stem=function(){var r=C.cursor;return e(),C.cursor=r,o(),C.limit_backward=r,C.cursor=C.limit,d(),C.cursor=C.limit_backward,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.du.stemmer,"stemmer-du"),e.du.stopWordFilter=e.generateStopWordFilter(" aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou".split(" ")),e.Pipeline.registerFunction(e.du.stopWordFilter,"stopWordFilter-du")}}); \ No newline at end of file diff --git a/docs/assets/javascripts/lunr/min/lunr.es.min.js b/docs/assets/javascripts/lunr/min/lunr.es.min.js new file mode 100644 index 00000000..2989d342 --- /dev/null +++ b/docs/assets/javascripts/lunr/min/lunr.es.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Spanish` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,s){"function"==typeof define&&define.amd?define(s):"object"==typeof exports?module.exports=s():s()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.es=function(){this.pipeline.reset(),this.pipeline.add(e.es.trimmer,e.es.stopWordFilter,e.es.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.es.stemmer))},e.es.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.es.trimmer=e.trimmerSupport.generateTrimmer(e.es.wordCharacters),e.Pipeline.registerFunction(e.es.trimmer,"trimmer-es"),e.es.stemmer=function(){var s=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,n=new function(){function e(){if(A.out_grouping(x,97,252)){for(;!A.in_grouping(x,97,252);){if(A.cursor>=A.limit)return!0;A.cursor++}return!1}return!0}function n(){if(A.in_grouping(x,97,252)){var s=A.cursor;if(e()){if(A.cursor=s,!A.in_grouping(x,97,252))return!0;for(;!A.out_grouping(x,97,252);){if(A.cursor>=A.limit)return!0;A.cursor++}}return!1}return!0}function i(){var s,r=A.cursor;if(n()){if(A.cursor=r,!A.out_grouping(x,97,252))return;if(s=A.cursor,e()){if(A.cursor=s,!A.in_grouping(x,97,252)||A.cursor>=A.limit)return;A.cursor++}}g=A.cursor}function a(){for(;!A.in_grouping(x,97,252);){if(A.cursor>=A.limit)return!1;A.cursor++}for(;!A.out_grouping(x,97,252);){if(A.cursor>=A.limit)return!1;A.cursor++}return!0}function t(){var e=A.cursor;g=A.limit,p=g,v=g,i(),A.cursor=e,a()&&(p=A.cursor,a()&&(v=A.cursor))}function o(){for(var e;;){if(A.bra=A.cursor,e=A.find_among(k,6))switch(A.ket=A.cursor,e){case 1:A.slice_from("a");continue;case 2:A.slice_from("e");continue;case 3:A.slice_from("i");continue;case 4:A.slice_from("o");continue;case 5:A.slice_from("u");continue;case 6:if(A.cursor>=A.limit)break;A.cursor++;continue}break}}function u(){return g<=A.cursor}function w(){return p<=A.cursor}function c(){return v<=A.cursor}function m(){var e;if(A.ket=A.cursor,A.find_among_b(y,13)&&(A.bra=A.cursor,(e=A.find_among_b(q,11))&&u()))switch(e){case 1:A.bra=A.cursor,A.slice_from("iendo");break;case 2:A.bra=A.cursor,A.slice_from("ando");break;case 3:A.bra=A.cursor,A.slice_from("ar");break;case 4:A.bra=A.cursor,A.slice_from("er");break;case 5:A.bra=A.cursor,A.slice_from("ir");break;case 6:A.slice_del();break;case 7:A.eq_s_b(1,"u")&&A.slice_del()}}function l(e,s){if(!c())return!0;A.slice_del(),A.ket=A.cursor;var r=A.find_among_b(e,s);return r&&(A.bra=A.cursor,1==r&&c()&&A.slice_del()),!1}function d(e){return!c()||(A.slice_del(),A.ket=A.cursor,A.eq_s_b(2,e)&&(A.bra=A.cursor,c()&&A.slice_del()),!1)}function b(){var e;if(A.ket=A.cursor,e=A.find_among_b(S,46)){switch(A.bra=A.cursor,e){case 1:if(!c())return!1;A.slice_del();break;case 2:if(d("ic"))return!1;break;case 3:if(!c())return!1;A.slice_from("log");break;case 4:if(!c())return!1;A.slice_from("u");break;case 5:if(!c())return!1;A.slice_from("ente");break;case 6:if(!w())return!1;A.slice_del(),A.ket=A.cursor,e=A.find_among_b(C,4),e&&(A.bra=A.cursor,c()&&(A.slice_del(),1==e&&(A.ket=A.cursor,A.eq_s_b(2,"at")&&(A.bra=A.cursor,c()&&A.slice_del()))));break;case 7:if(l(P,3))return!1;break;case 8:if(l(F,3))return!1;break;case 9:if(d("at"))return!1}return!0}return!1}function f(){var e,s;if(A.cursor>=g&&(s=A.limit_backward,A.limit_backward=g,A.ket=A.cursor,e=A.find_among_b(W,12),A.limit_backward=s,e)){if(A.bra=A.cursor,1==e){if(!A.eq_s_b(1,"u"))return!1;A.slice_del()}return!0}return!1}function _(){var e,s,r,n;if(A.cursor>=g&&(s=A.limit_backward,A.limit_backward=g,A.ket=A.cursor,e=A.find_among_b(L,96),A.limit_backward=s,e))switch(A.bra=A.cursor,e){case 1:r=A.limit-A.cursor,A.eq_s_b(1,"u")?(n=A.limit-A.cursor,A.eq_s_b(1,"g")?A.cursor=A.limit-n:A.cursor=A.limit-r):A.cursor=A.limit-r,A.bra=A.cursor;case 2:A.slice_del()}}function h(){var e,s;if(A.ket=A.cursor,e=A.find_among_b(z,8))switch(A.bra=A.cursor,e){case 1:u()&&A.slice_del();break;case 2:u()&&(A.slice_del(),A.ket=A.cursor,A.eq_s_b(1,"u")&&(A.bra=A.cursor,s=A.limit-A.cursor,A.eq_s_b(1,"g")&&(A.cursor=A.limit-s,u()&&A.slice_del())))}}var v,p,g,k=[new s("",-1,6),new s("á",0,1),new s("é",0,2),new s("í",0,3),new s("ó",0,4),new s("ú",0,5)],y=[new s("la",-1,-1),new s("sela",0,-1),new s("le",-1,-1),new s("me",-1,-1),new s("se",-1,-1),new s("lo",-1,-1),new s("selo",5,-1),new s("las",-1,-1),new s("selas",7,-1),new s("les",-1,-1),new s("los",-1,-1),new s("selos",10,-1),new s("nos",-1,-1)],q=[new s("ando",-1,6),new s("iendo",-1,6),new s("yendo",-1,7),new s("ándo",-1,2),new s("iéndo",-1,1),new s("ar",-1,6),new s("er",-1,6),new s("ir",-1,6),new s("ár",-1,3),new s("ér",-1,4),new s("ír",-1,5)],C=[new s("ic",-1,-1),new s("ad",-1,-1),new s("os",-1,-1),new s("iv",-1,1)],P=[new s("able",-1,1),new s("ible",-1,1),new s("ante",-1,1)],F=[new s("ic",-1,1),new s("abil",-1,1),new s("iv",-1,1)],S=[new s("ica",-1,1),new s("ancia",-1,2),new s("encia",-1,5),new s("adora",-1,2),new s("osa",-1,1),new s("ista",-1,1),new s("iva",-1,9),new s("anza",-1,1),new s("logía",-1,3),new s("idad",-1,8),new s("able",-1,1),new s("ible",-1,1),new s("ante",-1,2),new s("mente",-1,7),new s("amente",13,6),new s("ación",-1,2),new s("ución",-1,4),new s("ico",-1,1),new s("ismo",-1,1),new s("oso",-1,1),new s("amiento",-1,1),new s("imiento",-1,1),new s("ivo",-1,9),new s("ador",-1,2),new s("icas",-1,1),new s("ancias",-1,2),new s("encias",-1,5),new s("adoras",-1,2),new s("osas",-1,1),new s("istas",-1,1),new s("ivas",-1,9),new s("anzas",-1,1),new s("logías",-1,3),new s("idades",-1,8),new s("ables",-1,1),new s("ibles",-1,1),new s("aciones",-1,2),new s("uciones",-1,4),new s("adores",-1,2),new s("antes",-1,2),new s("icos",-1,1),new s("ismos",-1,1),new s("osos",-1,1),new s("amientos",-1,1),new s("imientos",-1,1),new s("ivos",-1,9)],W=[new s("ya",-1,1),new s("ye",-1,1),new s("yan",-1,1),new s("yen",-1,1),new s("yeron",-1,1),new s("yendo",-1,1),new s("yo",-1,1),new s("yas",-1,1),new s("yes",-1,1),new s("yais",-1,1),new s("yamos",-1,1),new s("yó",-1,1)],L=[new s("aba",-1,2),new s("ada",-1,2),new s("ida",-1,2),new s("ara",-1,2),new s("iera",-1,2),new s("ía",-1,2),new s("aría",5,2),new s("ería",5,2),new s("iría",5,2),new s("ad",-1,2),new s("ed",-1,2),new s("id",-1,2),new s("ase",-1,2),new s("iese",-1,2),new s("aste",-1,2),new s("iste",-1,2),new s("an",-1,2),new s("aban",16,2),new s("aran",16,2),new s("ieran",16,2),new s("ían",16,2),new s("arían",20,2),new s("erían",20,2),new s("irían",20,2),new s("en",-1,1),new s("asen",24,2),new s("iesen",24,2),new s("aron",-1,2),new s("ieron",-1,2),new s("arán",-1,2),new s("erán",-1,2),new s("irán",-1,2),new s("ado",-1,2),new s("ido",-1,2),new s("ando",-1,2),new s("iendo",-1,2),new s("ar",-1,2),new s("er",-1,2),new s("ir",-1,2),new s("as",-1,2),new s("abas",39,2),new s("adas",39,2),new s("idas",39,2),new s("aras",39,2),new s("ieras",39,2),new s("ías",39,2),new s("arías",45,2),new s("erías",45,2),new s("irías",45,2),new s("es",-1,1),new s("ases",49,2),new s("ieses",49,2),new s("abais",-1,2),new s("arais",-1,2),new s("ierais",-1,2),new s("íais",-1,2),new s("aríais",55,2),new s("eríais",55,2),new s("iríais",55,2),new s("aseis",-1,2),new s("ieseis",-1,2),new s("asteis",-1,2),new s("isteis",-1,2),new s("áis",-1,2),new s("éis",-1,1),new s("aréis",64,2),new s("eréis",64,2),new s("iréis",64,2),new s("ados",-1,2),new s("idos",-1,2),new s("amos",-1,2),new s("ábamos",70,2),new s("áramos",70,2),new s("iéramos",70,2),new s("íamos",70,2),new s("aríamos",74,2),new s("eríamos",74,2),new s("iríamos",74,2),new s("emos",-1,1),new s("aremos",78,2),new s("eremos",78,2),new s("iremos",78,2),new s("ásemos",78,2),new s("iésemos",78,2),new s("imos",-1,2),new s("arás",-1,2),new s("erás",-1,2),new s("irás",-1,2),new s("ís",-1,2),new s("ará",-1,2),new s("erá",-1,2),new s("irá",-1,2),new s("aré",-1,2),new s("eré",-1,2),new s("iré",-1,2),new s("ió",-1,2)],z=[new s("a",-1,1),new s("e",-1,2),new s("o",-1,1),new s("os",-1,1),new s("á",-1,1),new s("é",-1,2),new s("í",-1,1),new s("ó",-1,1)],x=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,17,4,10],A=new r;this.setCurrent=function(e){A.setCurrent(e)},this.getCurrent=function(){return A.getCurrent()},this.stem=function(){var e=A.cursor;return t(),A.limit_backward=e,A.cursor=A.limit,m(),A.cursor=A.limit,b()||(A.cursor=A.limit,f()||(A.cursor=A.limit,_())),A.cursor=A.limit,h(),A.cursor=A.limit_backward,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.es.stemmer,"stemmer-es"),e.es.stopWordFilter=e.generateStopWordFilter("a al algo algunas algunos ante antes como con contra cual cuando de del desde donde durante e el ella ellas ellos en entre era erais eran eras eres es esa esas ese eso esos esta estaba estabais estaban estabas estad estada estadas estado estados estamos estando estar estaremos estará estarán estarás estaré estaréis estaría estaríais estaríamos estarían estarías estas este estemos esto estos estoy estuve estuviera estuvierais estuvieran estuvieras estuvieron estuviese estuvieseis estuviesen estuvieses estuvimos estuviste estuvisteis estuviéramos estuviésemos estuvo está estábamos estáis están estás esté estéis estén estés fue fuera fuerais fueran fueras fueron fuese fueseis fuesen fueses fui fuimos fuiste fuisteis fuéramos fuésemos ha habida habidas habido habidos habiendo habremos habrá habrán habrás habré habréis habría habríais habríamos habrían habrías habéis había habíais habíamos habían habías han has hasta hay haya hayamos hayan hayas hayáis he hemos hube hubiera hubierais hubieran hubieras hubieron hubiese hubieseis hubiesen hubieses hubimos hubiste hubisteis hubiéramos hubiésemos hubo la las le les lo los me mi mis mucho muchos muy más mí mía mías mío míos nada ni no nos nosotras nosotros nuestra nuestras nuestro nuestros o os otra otras otro otros para pero poco por porque que quien quienes qué se sea seamos sean seas seremos será serán serás seré seréis sería seríais seríamos serían serías seáis sido siendo sin sobre sois somos son soy su sus suya suyas suyo suyos sí también tanto te tendremos tendrá tendrán tendrás tendré tendréis tendría tendríais tendríamos tendrían tendrías tened tenemos tenga tengamos tengan tengas tengo tengáis tenida tenidas tenido tenidos teniendo tenéis tenía teníais teníamos tenían tenías ti tiene tienen tienes todo todos tu tus tuve tuviera tuvierais tuvieran tuvieras tuvieron tuviese tuvieseis tuviesen tuvieses tuvimos tuviste tuvisteis tuviéramos tuviésemos tuvo tuya tuyas tuyo tuyos tú un una uno unos vosotras vosotros vuestra vuestras vuestro vuestros y ya yo él éramos".split(" ")),e.Pipeline.registerFunction(e.es.stopWordFilter,"stopWordFilter-es")}}); \ No newline at end of file diff --git a/docs/assets/javascripts/lunr/min/lunr.fi.min.js b/docs/assets/javascripts/lunr/min/lunr.fi.min.js new file mode 100644 index 00000000..29f5dfce --- /dev/null +++ b/docs/assets/javascripts/lunr/min/lunr.fi.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Finnish` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(i,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():e()(i.lunr)}(this,function(){return function(i){if(void 0===i)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===i.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");i.fi=function(){this.pipeline.reset(),this.pipeline.add(i.fi.trimmer,i.fi.stopWordFilter,i.fi.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(i.fi.stemmer))},i.fi.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",i.fi.trimmer=i.trimmerSupport.generateTrimmer(i.fi.wordCharacters),i.Pipeline.registerFunction(i.fi.trimmer,"trimmer-fi"),i.fi.stemmer=function(){var e=i.stemmerSupport.Among,r=i.stemmerSupport.SnowballProgram,n=new function(){function i(){f=A.limit,d=f,n()||(f=A.cursor,n()||(d=A.cursor))}function n(){for(var i;;){if(i=A.cursor,A.in_grouping(W,97,246))break;if(A.cursor=i,i>=A.limit)return!0;A.cursor++}for(A.cursor=i;!A.out_grouping(W,97,246);){if(A.cursor>=A.limit)return!0;A.cursor++}return!1}function t(){return d<=A.cursor}function s(){var i,e;if(A.cursor>=f)if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,i=A.find_among_b(h,10)){switch(A.bra=A.cursor,A.limit_backward=e,i){case 1:if(!A.in_grouping_b(x,97,246))return;break;case 2:if(!t())return}A.slice_del()}else A.limit_backward=e}function o(){var i,e,r;if(A.cursor>=f)if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,i=A.find_among_b(v,9))switch(A.bra=A.cursor,A.limit_backward=e,i){case 1:r=A.limit-A.cursor,A.eq_s_b(1,"k")||(A.cursor=A.limit-r,A.slice_del());break;case 2:A.slice_del(),A.ket=A.cursor,A.eq_s_b(3,"kse")&&(A.bra=A.cursor,A.slice_from("ksi"));break;case 3:A.slice_del();break;case 4:A.find_among_b(p,6)&&A.slice_del();break;case 5:A.find_among_b(g,6)&&A.slice_del();break;case 6:A.find_among_b(j,2)&&A.slice_del()}else A.limit_backward=e}function l(){return A.find_among_b(q,7)}function a(){return A.eq_s_b(1,"i")&&A.in_grouping_b(L,97,246)}function u(){var i,e,r;if(A.cursor>=f)if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,i=A.find_among_b(C,30)){switch(A.bra=A.cursor,A.limit_backward=e,i){case 1:if(!A.eq_s_b(1,"a"))return;break;case 2:case 9:if(!A.eq_s_b(1,"e"))return;break;case 3:if(!A.eq_s_b(1,"i"))return;break;case 4:if(!A.eq_s_b(1,"o"))return;break;case 5:if(!A.eq_s_b(1,"ä"))return;break;case 6:if(!A.eq_s_b(1,"ö"))return;break;case 7:if(r=A.limit-A.cursor,!l()&&(A.cursor=A.limit-r,!A.eq_s_b(2,"ie"))){A.cursor=A.limit-r;break}if(A.cursor=A.limit-r,A.cursor<=A.limit_backward){A.cursor=A.limit-r;break}A.cursor--,A.bra=A.cursor;break;case 8:if(!A.in_grouping_b(W,97,246)||!A.out_grouping_b(W,97,246))return}A.slice_del(),k=!0}else A.limit_backward=e}function c(){var i,e,r;if(A.cursor>=d)if(e=A.limit_backward,A.limit_backward=d,A.ket=A.cursor,i=A.find_among_b(P,14)){if(A.bra=A.cursor,A.limit_backward=e,1==i){if(r=A.limit-A.cursor,A.eq_s_b(2,"po"))return;A.cursor=A.limit-r}A.slice_del()}else A.limit_backward=e}function m(){var i;A.cursor>=f&&(i=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,A.find_among_b(F,2)?(A.bra=A.cursor,A.limit_backward=i,A.slice_del()):A.limit_backward=i)}function w(){var i,e,r,n,t,s;if(A.cursor>=f){if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,A.eq_s_b(1,"t")&&(A.bra=A.cursor,r=A.limit-A.cursor,A.in_grouping_b(W,97,246)&&(A.cursor=A.limit-r,A.slice_del(),A.limit_backward=e,n=A.limit-A.cursor,A.cursor>=d&&(A.cursor=d,t=A.limit_backward,A.limit_backward=A.cursor,A.cursor=A.limit-n,A.ket=A.cursor,i=A.find_among_b(S,2))))){if(A.bra=A.cursor,A.limit_backward=t,1==i){if(s=A.limit-A.cursor,A.eq_s_b(2,"po"))return;A.cursor=A.limit-s}return void A.slice_del()}A.limit_backward=e}}function _(){var i,e,r,n;if(A.cursor>=f){for(i=A.limit_backward,A.limit_backward=f,e=A.limit-A.cursor,l()&&(A.cursor=A.limit-e,A.ket=A.cursor,A.cursor>A.limit_backward&&(A.cursor--,A.bra=A.cursor,A.slice_del())),A.cursor=A.limit-e,A.ket=A.cursor,A.in_grouping_b(y,97,228)&&(A.bra=A.cursor,A.out_grouping_b(W,97,246)&&A.slice_del()),A.cursor=A.limit-e,A.ket=A.cursor,A.eq_s_b(1,"j")&&(A.bra=A.cursor,r=A.limit-A.cursor,A.eq_s_b(1,"o")?A.slice_del():(A.cursor=A.limit-r,A.eq_s_b(1,"u")&&A.slice_del())),A.cursor=A.limit-e,A.ket=A.cursor,A.eq_s_b(1,"o")&&(A.bra=A.cursor,A.eq_s_b(1,"j")&&A.slice_del()),A.cursor=A.limit-e,A.limit_backward=i;;){if(n=A.limit-A.cursor,A.out_grouping_b(W,97,246)){A.cursor=A.limit-n;break}if(A.cursor=A.limit-n,A.cursor<=A.limit_backward)return;A.cursor--}A.ket=A.cursor,A.cursor>A.limit_backward&&(A.cursor--,A.bra=A.cursor,b=A.slice_to(),A.eq_v_b(b)&&A.slice_del())}}var k,b,d,f,h=[new e("pa",-1,1),new e("sti",-1,2),new e("kaan",-1,1),new e("han",-1,1),new e("kin",-1,1),new e("hän",-1,1),new e("kään",-1,1),new e("ko",-1,1),new e("pä",-1,1),new e("kö",-1,1)],p=[new e("lla",-1,-1),new e("na",-1,-1),new e("ssa",-1,-1),new e("ta",-1,-1),new e("lta",3,-1),new e("sta",3,-1)],g=[new e("llä",-1,-1),new e("nä",-1,-1),new e("ssä",-1,-1),new e("tä",-1,-1),new e("ltä",3,-1),new e("stä",3,-1)],j=[new e("lle",-1,-1),new e("ine",-1,-1)],v=[new e("nsa",-1,3),new e("mme",-1,3),new e("nne",-1,3),new e("ni",-1,2),new e("si",-1,1),new e("an",-1,4),new e("en",-1,6),new e("än",-1,5),new e("nsä",-1,3)],q=[new e("aa",-1,-1),new e("ee",-1,-1),new e("ii",-1,-1),new e("oo",-1,-1),new e("uu",-1,-1),new e("ää",-1,-1),new e("öö",-1,-1)],C=[new e("a",-1,8),new e("lla",0,-1),new e("na",0,-1),new e("ssa",0,-1),new e("ta",0,-1),new e("lta",4,-1),new e("sta",4,-1),new e("tta",4,9),new e("lle",-1,-1),new e("ine",-1,-1),new e("ksi",-1,-1),new e("n",-1,7),new e("han",11,1),new e("den",11,-1,a),new e("seen",11,-1,l),new e("hen",11,2),new e("tten",11,-1,a),new e("hin",11,3),new e("siin",11,-1,a),new e("hon",11,4),new e("hän",11,5),new e("hön",11,6),new e("ä",-1,8),new e("llä",22,-1),new e("nä",22,-1),new e("ssä",22,-1),new e("tä",22,-1),new e("ltä",26,-1),new e("stä",26,-1),new e("ttä",26,9)],P=[new e("eja",-1,-1),new e("mma",-1,1),new e("imma",1,-1),new e("mpa",-1,1),new e("impa",3,-1),new e("mmi",-1,1),new e("immi",5,-1),new e("mpi",-1,1),new e("impi",7,-1),new e("ejä",-1,-1),new e("mmä",-1,1),new e("immä",10,-1),new e("mpä",-1,1),new e("impä",12,-1)],F=[new e("i",-1,-1),new e("j",-1,-1)],S=[new e("mma",-1,1),new e("imma",0,-1)],y=[17,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8],W=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],L=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],x=[17,97,24,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],A=new r;this.setCurrent=function(i){A.setCurrent(i)},this.getCurrent=function(){return A.getCurrent()},this.stem=function(){var e=A.cursor;return i(),k=!1,A.limit_backward=e,A.cursor=A.limit,s(),A.cursor=A.limit,o(),A.cursor=A.limit,u(),A.cursor=A.limit,c(),A.cursor=A.limit,k?(m(),A.cursor=A.limit):(A.cursor=A.limit,w(),A.cursor=A.limit),_(),!0}};return function(i){return"function"==typeof i.update?i.update(function(i){return n.setCurrent(i),n.stem(),n.getCurrent()}):(n.setCurrent(i),n.stem(),n.getCurrent())}}(),i.Pipeline.registerFunction(i.fi.stemmer,"stemmer-fi"),i.fi.stopWordFilter=i.generateStopWordFilter("ei eivät emme en et ette että he heidän heidät heihin heille heillä heiltä heissä heistä heitä hän häneen hänelle hänellä häneltä hänen hänessä hänestä hänet häntä itse ja johon joiden joihin joiksi joilla joille joilta joina joissa joista joita joka joksi jolla jolle jolta jona jonka jos jossa josta jota jotka kanssa keiden keihin keiksi keille keillä keiltä keinä keissä keistä keitä keneen keneksi kenelle kenellä keneltä kenen kenenä kenessä kenestä kenet ketkä ketkä ketä koska kuin kuka kun me meidän meidät meihin meille meillä meiltä meissä meistä meitä mihin miksi mikä mille millä miltä minkä minkä minua minulla minulle minulta minun minussa minusta minut minuun minä minä missä mistä mitkä mitä mukaan mutta ne niiden niihin niiksi niille niillä niiltä niin niin niinä niissä niistä niitä noiden noihin noiksi noilla noille noilta noin noina noissa noista noita nuo nyt näiden näihin näiksi näille näillä näiltä näinä näissä näistä näitä nämä ole olemme olen olet olette oli olimme olin olisi olisimme olisin olisit olisitte olisivat olit olitte olivat olla olleet ollut on ovat poikki se sekä sen siihen siinä siitä siksi sille sillä sillä siltä sinua sinulla sinulle sinulta sinun sinussa sinusta sinut sinuun sinä sinä sitä tai te teidän teidät teihin teille teillä teiltä teissä teistä teitä tuo tuohon tuoksi tuolla tuolle tuolta tuon tuona tuossa tuosta tuota tähän täksi tälle tällä tältä tämä tämän tänä tässä tästä tätä vaan vai vaikka yli".split(" ")),i.Pipeline.registerFunction(i.fi.stopWordFilter,"stopWordFilter-fi")}}); \ No newline at end of file diff --git a/docs/assets/javascripts/lunr/min/lunr.fr.min.js b/docs/assets/javascripts/lunr/min/lunr.fr.min.js new file mode 100644 index 00000000..68cd0094 --- /dev/null +++ b/docs/assets/javascripts/lunr/min/lunr.fr.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `French` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.fr=function(){this.pipeline.reset(),this.pipeline.add(e.fr.trimmer,e.fr.stopWordFilter,e.fr.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.fr.stemmer))},e.fr.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.fr.trimmer=e.trimmerSupport.generateTrimmer(e.fr.wordCharacters),e.Pipeline.registerFunction(e.fr.trimmer,"trimmer-fr"),e.fr.stemmer=function(){var r=e.stemmerSupport.Among,s=e.stemmerSupport.SnowballProgram,i=new function(){function e(e,r,s){return!(!W.eq_s(1,e)||(W.ket=W.cursor,!W.in_grouping(F,97,251)))&&(W.slice_from(r),W.cursor=s,!0)}function i(e,r,s){return!!W.eq_s(1,e)&&(W.ket=W.cursor,W.slice_from(r),W.cursor=s,!0)}function n(){for(var r,s;;){if(r=W.cursor,W.in_grouping(F,97,251)){if(W.bra=W.cursor,s=W.cursor,e("u","U",r))continue;if(W.cursor=s,e("i","I",r))continue;if(W.cursor=s,i("y","Y",r))continue}if(W.cursor=r,W.bra=r,!e("y","Y",r)){if(W.cursor=r,W.eq_s(1,"q")&&(W.bra=W.cursor,i("u","U",r)))continue;if(W.cursor=r,r>=W.limit)return;W.cursor++}}}function t(){for(;!W.in_grouping(F,97,251);){if(W.cursor>=W.limit)return!0;W.cursor++}for(;!W.out_grouping(F,97,251);){if(W.cursor>=W.limit)return!0;W.cursor++}return!1}function u(){var e=W.cursor;if(q=W.limit,g=q,p=q,W.in_grouping(F,97,251)&&W.in_grouping(F,97,251)&&W.cursor=W.limit){W.cursor=q;break}W.cursor++}while(!W.in_grouping(F,97,251))}q=W.cursor,W.cursor=e,t()||(g=W.cursor,t()||(p=W.cursor))}function o(){for(var e,r;;){if(r=W.cursor,W.bra=r,!(e=W.find_among(h,4)))break;switch(W.ket=W.cursor,e){case 1:W.slice_from("i");break;case 2:W.slice_from("u");break;case 3:W.slice_from("y");break;case 4:if(W.cursor>=W.limit)return;W.cursor++}}}function c(){return q<=W.cursor}function a(){return g<=W.cursor}function l(){return p<=W.cursor}function w(){var e,r;if(W.ket=W.cursor,e=W.find_among_b(C,43)){switch(W.bra=W.cursor,e){case 1:if(!l())return!1;W.slice_del();break;case 2:if(!l())return!1;W.slice_del(),W.ket=W.cursor,W.eq_s_b(2,"ic")&&(W.bra=W.cursor,l()?W.slice_del():W.slice_from("iqU"));break;case 3:if(!l())return!1;W.slice_from("log");break;case 4:if(!l())return!1;W.slice_from("u");break;case 5:if(!l())return!1;W.slice_from("ent");break;case 6:if(!c())return!1;if(W.slice_del(),W.ket=W.cursor,e=W.find_among_b(z,6))switch(W.bra=W.cursor,e){case 1:l()&&(W.slice_del(),W.ket=W.cursor,W.eq_s_b(2,"at")&&(W.bra=W.cursor,l()&&W.slice_del()));break;case 2:l()?W.slice_del():a()&&W.slice_from("eux");break;case 3:l()&&W.slice_del();break;case 4:c()&&W.slice_from("i")}break;case 7:if(!l())return!1;if(W.slice_del(),W.ket=W.cursor,e=W.find_among_b(y,3))switch(W.bra=W.cursor,e){case 1:l()?W.slice_del():W.slice_from("abl");break;case 2:l()?W.slice_del():W.slice_from("iqU");break;case 3:l()&&W.slice_del()}break;case 8:if(!l())return!1;if(W.slice_del(),W.ket=W.cursor,W.eq_s_b(2,"at")&&(W.bra=W.cursor,l()&&(W.slice_del(),W.ket=W.cursor,W.eq_s_b(2,"ic")))){W.bra=W.cursor,l()?W.slice_del():W.slice_from("iqU");break}break;case 9:W.slice_from("eau");break;case 10:if(!a())return!1;W.slice_from("al");break;case 11:if(l())W.slice_del();else{if(!a())return!1;W.slice_from("eux")}break;case 12:if(!a()||!W.out_grouping_b(F,97,251))return!1;W.slice_del();break;case 13:return c()&&W.slice_from("ant"),!1;case 14:return c()&&W.slice_from("ent"),!1;case 15:return r=W.limit-W.cursor,W.in_grouping_b(F,97,251)&&c()&&(W.cursor=W.limit-r,W.slice_del()),!1}return!0}return!1}function f(){var e,r;if(W.cursor=q){if(s=W.limit_backward,W.limit_backward=q,W.ket=W.cursor,e=W.find_among_b(P,7))switch(W.bra=W.cursor,e){case 1:if(l()){if(i=W.limit-W.cursor,!W.eq_s_b(1,"s")&&(W.cursor=W.limit-i,!W.eq_s_b(1,"t")))break;W.slice_del()}break;case 2:W.slice_from("i");break;case 3:W.slice_del();break;case 4:W.eq_s_b(2,"gu")&&W.slice_del()}W.limit_backward=s}}function b(){var e=W.limit-W.cursor;W.find_among_b(U,5)&&(W.cursor=W.limit-e,W.ket=W.cursor,W.cursor>W.limit_backward&&(W.cursor--,W.bra=W.cursor,W.slice_del()))}function d(){for(var e,r=1;W.out_grouping_b(F,97,251);)r--;if(r<=0){if(W.ket=W.cursor,e=W.limit-W.cursor,!W.eq_s_b(1,"é")&&(W.cursor=W.limit-e,!W.eq_s_b(1,"è")))return;W.bra=W.cursor,W.slice_from("e")}}function k(){if(!w()&&(W.cursor=W.limit,!f()&&(W.cursor=W.limit,!m())))return W.cursor=W.limit,void _();W.cursor=W.limit,W.ket=W.cursor,W.eq_s_b(1,"Y")?(W.bra=W.cursor,W.slice_from("i")):(W.cursor=W.limit,W.eq_s_b(1,"ç")&&(W.bra=W.cursor,W.slice_from("c")))}var p,g,q,v=[new r("col",-1,-1),new r("par",-1,-1),new r("tap",-1,-1)],h=[new r("",-1,4),new r("I",0,1),new r("U",0,2),new r("Y",0,3)],z=[new r("iqU",-1,3),new r("abl",-1,3),new r("Ièr",-1,4),new r("ièr",-1,4),new r("eus",-1,2),new r("iv",-1,1)],y=[new r("ic",-1,2),new r("abil",-1,1),new r("iv",-1,3)],C=[new r("iqUe",-1,1),new r("atrice",-1,2),new r("ance",-1,1),new r("ence",-1,5),new r("logie",-1,3),new r("able",-1,1),new r("isme",-1,1),new r("euse",-1,11),new r("iste",-1,1),new r("ive",-1,8),new r("if",-1,8),new r("usion",-1,4),new r("ation",-1,2),new r("ution",-1,4),new r("ateur",-1,2),new r("iqUes",-1,1),new r("atrices",-1,2),new r("ances",-1,1),new r("ences",-1,5),new r("logies",-1,3),new r("ables",-1,1),new r("ismes",-1,1),new r("euses",-1,11),new r("istes",-1,1),new r("ives",-1,8),new r("ifs",-1,8),new r("usions",-1,4),new r("ations",-1,2),new r("utions",-1,4),new r("ateurs",-1,2),new r("ments",-1,15),new r("ements",30,6),new r("issements",31,12),new r("ités",-1,7),new r("ment",-1,15),new r("ement",34,6),new r("issement",35,12),new r("amment",34,13),new r("emment",34,14),new r("aux",-1,10),new r("eaux",39,9),new r("eux",-1,1),new r("ité",-1,7)],x=[new r("ira",-1,1),new r("ie",-1,1),new r("isse",-1,1),new r("issante",-1,1),new r("i",-1,1),new r("irai",4,1),new r("ir",-1,1),new r("iras",-1,1),new r("ies",-1,1),new r("îmes",-1,1),new r("isses",-1,1),new r("issantes",-1,1),new r("îtes",-1,1),new r("is",-1,1),new r("irais",13,1),new r("issais",13,1),new r("irions",-1,1),new r("issions",-1,1),new r("irons",-1,1),new r("issons",-1,1),new r("issants",-1,1),new r("it",-1,1),new r("irait",21,1),new r("issait",21,1),new r("issant",-1,1),new r("iraIent",-1,1),new r("issaIent",-1,1),new r("irent",-1,1),new r("issent",-1,1),new r("iront",-1,1),new r("ît",-1,1),new r("iriez",-1,1),new r("issiez",-1,1),new r("irez",-1,1),new r("issez",-1,1)],I=[new r("a",-1,3),new r("era",0,2),new r("asse",-1,3),new r("ante",-1,3),new r("ée",-1,2),new r("ai",-1,3),new r("erai",5,2),new r("er",-1,2),new r("as",-1,3),new r("eras",8,2),new r("âmes",-1,3),new r("asses",-1,3),new r("antes",-1,3),new r("âtes",-1,3),new r("ées",-1,2),new r("ais",-1,3),new r("erais",15,2),new r("ions",-1,1),new r("erions",17,2),new r("assions",17,3),new r("erons",-1,2),new r("ants",-1,3),new r("és",-1,2),new r("ait",-1,3),new r("erait",23,2),new r("ant",-1,3),new r("aIent",-1,3),new r("eraIent",26,2),new r("èrent",-1,2),new r("assent",-1,3),new r("eront",-1,2),new r("ât",-1,3),new r("ez",-1,2),new r("iez",32,2),new r("eriez",33,2),new r("assiez",33,3),new r("erez",32,2),new r("é",-1,2)],P=[new r("e",-1,3),new r("Ière",0,2),new r("ière",0,2),new r("ion",-1,1),new r("Ier",-1,2),new r("ier",-1,2),new r("ë",-1,4)],U=[new r("ell",-1,-1),new r("eill",-1,-1),new r("enn",-1,-1),new r("onn",-1,-1),new r("ett",-1,-1)],F=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,128,130,103,8,5],S=[1,65,20,0,0,0,0,0,0,0,0,0,0,0,0,0,128],W=new s;this.setCurrent=function(e){W.setCurrent(e)},this.getCurrent=function(){return W.getCurrent()},this.stem=function(){var e=W.cursor;return n(),W.cursor=e,u(),W.limit_backward=e,W.cursor=W.limit,k(),W.cursor=W.limit,b(),W.cursor=W.limit,d(),W.cursor=W.limit_backward,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.fr.stemmer,"stemmer-fr"),e.fr.stopWordFilter=e.generateStopWordFilter("ai aie aient aies ait as au aura aurai auraient aurais aurait auras aurez auriez aurions aurons auront aux avaient avais avait avec avez aviez avions avons ayant ayez ayons c ce ceci celà ces cet cette d dans de des du elle en es est et eu eue eues eurent eus eusse eussent eusses eussiez eussions eut eux eûmes eût eûtes furent fus fusse fussent fusses fussiez fussions fut fûmes fût fûtes ici il ils j je l la le les leur leurs lui m ma mais me mes moi mon même n ne nos notre nous on ont ou par pas pour qu que quel quelle quelles quels qui s sa sans se sera serai seraient serais serait seras serez seriez serions serons seront ses soi soient sois soit sommes son sont soyez soyons suis sur t ta te tes toi ton tu un une vos votre vous y à étaient étais était étant étiez étions été étée étées étés êtes".split(" ")),e.Pipeline.registerFunction(e.fr.stopWordFilter,"stopWordFilter-fr")}}); \ No newline at end of file diff --git a/docs/assets/javascripts/lunr/min/lunr.hi.min.js b/docs/assets/javascripts/lunr/min/lunr.hi.min.js new file mode 100644 index 00000000..7dbc4140 --- /dev/null +++ b/docs/assets/javascripts/lunr/min/lunr.hi.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hi=function(){this.pipeline.reset(),this.pipeline.add(e.hi.trimmer,e.hi.stopWordFilter,e.hi.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.hi.stemmer))},e.hi.wordCharacters="ऀ-ःऄ-एऐ-टठ-यर-िी-ॏॐ-य़ॠ-९॰-ॿa-zA-Za-zA-Z0-90-9",e.hi.trimmer=e.trimmerSupport.generateTrimmer(e.hi.wordCharacters),e.Pipeline.registerFunction(e.hi.trimmer,"trimmer-hi"),e.hi.stopWordFilter=e.generateStopWordFilter("अत अपना अपनी अपने अभी अंदर आदि आप इत्यादि इन इनका इन्हीं इन्हें इन्हों इस इसका इसकी इसके इसमें इसी इसे उन उनका उनकी उनके उनको उन्हीं उन्हें उन्हों उस उसके उसी उसे एक एवं एस ऐसे और कई कर करता करते करना करने करें कहते कहा का काफ़ी कि कितना किन्हें किन्हों किया किर किस किसी किसे की कुछ कुल के को कोई कौन कौनसा गया घर जब जहाँ जा जितना जिन जिन्हें जिन्हों जिस जिसे जीधर जैसा जैसे जो तक तब तरह तिन तिन्हें तिन्हों तिस तिसे तो था थी थे दबारा दिया दुसरा दूसरे दो द्वारा न नके नहीं ना निहायत नीचे ने पर पहले पूरा पे फिर बनी बही बहुत बाद बाला बिलकुल भी भीतर मगर मानो मे में यदि यह यहाँ यही या यिह ये रखें रहा रहे ऱ्वासा लिए लिये लेकिन व वग़ैरह वर्ग वह वहाँ वहीं वाले वुह वे वो सकता सकते सबसे सभी साथ साबुत साभ सारा से सो संग ही हुआ हुई हुए है हैं हो होता होती होते होना होने".split(" ")),e.hi.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var r=e.wordcut;r.init(),e.hi.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(r){return isLunr2?new e.Token(r.toLowerCase()):r.toLowerCase()});var t=i.toString().toLowerCase().replace(/^\s+/,"");return r.cut(t).split("|")},e.Pipeline.registerFunction(e.hi.stemmer,"stemmer-hi"),e.Pipeline.registerFunction(e.hi.stopWordFilter,"stopWordFilter-hi")}}); \ No newline at end of file diff --git a/docs/assets/javascripts/lunr/min/lunr.hu.min.js b/docs/assets/javascripts/lunr/min/lunr.hu.min.js new file mode 100644 index 00000000..ed9d909f --- /dev/null +++ b/docs/assets/javascripts/lunr/min/lunr.hu.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Hungarian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hu=function(){this.pipeline.reset(),this.pipeline.add(e.hu.trimmer,e.hu.stopWordFilter,e.hu.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.hu.stemmer))},e.hu.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.hu.trimmer=e.trimmerSupport.generateTrimmer(e.hu.wordCharacters),e.Pipeline.registerFunction(e.hu.trimmer,"trimmer-hu"),e.hu.stemmer=function(){var n=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,i=new function(){function e(){var e,n=L.cursor;if(d=L.limit,L.in_grouping(W,97,252))for(;;){if(e=L.cursor,L.out_grouping(W,97,252))return L.cursor=e,L.find_among(g,8)||(L.cursor=e,e=L.limit)return void(d=e);L.cursor++}if(L.cursor=n,L.out_grouping(W,97,252)){for(;!L.in_grouping(W,97,252);){if(L.cursor>=L.limit)return;L.cursor++}d=L.cursor}}function i(){return d<=L.cursor}function a(){var e;if(L.ket=L.cursor,(e=L.find_among_b(h,2))&&(L.bra=L.cursor,i()))switch(e){case 1:L.slice_from("a");break;case 2:L.slice_from("e")}}function t(){var e=L.limit-L.cursor;return!!L.find_among_b(p,23)&&(L.cursor=L.limit-e,!0)}function s(){if(L.cursor>L.limit_backward){L.cursor--,L.ket=L.cursor;var e=L.cursor-1;L.limit_backward<=e&&e<=L.limit&&(L.cursor=e,L.bra=e,L.slice_del())}}function c(){var e;if(L.ket=L.cursor,(e=L.find_among_b(_,2))&&(L.bra=L.cursor,i())){if((1==e||2==e)&&!t())return;L.slice_del(),s()}}function o(){L.ket=L.cursor,L.find_among_b(v,44)&&(L.bra=L.cursor,i()&&(L.slice_del(),a()))}function w(){var e;if(L.ket=L.cursor,(e=L.find_among_b(z,3))&&(L.bra=L.cursor,i()))switch(e){case 1:L.slice_from("e");break;case 2:case 3:L.slice_from("a")}}function l(){var e;if(L.ket=L.cursor,(e=L.find_among_b(y,6))&&(L.bra=L.cursor,i()))switch(e){case 1:case 2:L.slice_del();break;case 3:L.slice_from("a");break;case 4:L.slice_from("e")}}function u(){var e;if(L.ket=L.cursor,(e=L.find_among_b(j,2))&&(L.bra=L.cursor,i())){if((1==e||2==e)&&!t())return;L.slice_del(),s()}}function m(){var e;if(L.ket=L.cursor,(e=L.find_among_b(C,7))&&(L.bra=L.cursor,i()))switch(e){case 1:L.slice_from("a");break;case 2:L.slice_from("e");break;case 3:case 4:case 5:case 6:case 7:L.slice_del()}}function k(){var e;if(L.ket=L.cursor,(e=L.find_among_b(P,12))&&(L.bra=L.cursor,i()))switch(e){case 1:case 4:case 7:case 9:L.slice_del();break;case 2:case 5:case 8:L.slice_from("e");break;case 3:case 6:L.slice_from("a")}}function f(){var e;if(L.ket=L.cursor,(e=L.find_among_b(F,31))&&(L.bra=L.cursor,i()))switch(e){case 1:case 4:case 7:case 8:case 9:case 12:case 13:case 16:case 17:case 18:L.slice_del();break;case 2:case 5:case 10:case 14:case 19:L.slice_from("a");break;case 3:case 6:case 11:case 15:case 20:L.slice_from("e")}}function b(){var e;if(L.ket=L.cursor,(e=L.find_among_b(S,42))&&(L.bra=L.cursor,i()))switch(e){case 1:case 4:case 5:case 6:case 9:case 10:case 11:case 14:case 15:case 16:case 17:case 20:case 21:case 24:case 25:case 26:case 29:L.slice_del();break;case 2:case 7:case 12:case 18:case 22:case 27:L.slice_from("a");break;case 3:case 8:case 13:case 19:case 23:case 28:L.slice_from("e")}}var d,g=[new n("cs",-1,-1),new n("dzs",-1,-1),new n("gy",-1,-1),new n("ly",-1,-1),new n("ny",-1,-1),new n("sz",-1,-1),new n("ty",-1,-1),new n("zs",-1,-1)],h=[new n("á",-1,1),new n("é",-1,2)],p=[new n("bb",-1,-1),new n("cc",-1,-1),new n("dd",-1,-1),new n("ff",-1,-1),new n("gg",-1,-1),new n("jj",-1,-1),new n("kk",-1,-1),new n("ll",-1,-1),new n("mm",-1,-1),new n("nn",-1,-1),new n("pp",-1,-1),new n("rr",-1,-1),new n("ccs",-1,-1),new n("ss",-1,-1),new n("zzs",-1,-1),new n("tt",-1,-1),new n("vv",-1,-1),new n("ggy",-1,-1),new n("lly",-1,-1),new n("nny",-1,-1),new n("tty",-1,-1),new n("ssz",-1,-1),new n("zz",-1,-1)],_=[new n("al",-1,1),new n("el",-1,2)],v=[new n("ba",-1,-1),new n("ra",-1,-1),new n("be",-1,-1),new n("re",-1,-1),new n("ig",-1,-1),new n("nak",-1,-1),new n("nek",-1,-1),new n("val",-1,-1),new n("vel",-1,-1),new n("ul",-1,-1),new n("nál",-1,-1),new n("nél",-1,-1),new n("ból",-1,-1),new n("ról",-1,-1),new n("tól",-1,-1),new n("bõl",-1,-1),new n("rõl",-1,-1),new n("tõl",-1,-1),new n("ül",-1,-1),new n("n",-1,-1),new n("an",19,-1),new n("ban",20,-1),new n("en",19,-1),new n("ben",22,-1),new n("képpen",22,-1),new n("on",19,-1),new n("ön",19,-1),new n("képp",-1,-1),new n("kor",-1,-1),new n("t",-1,-1),new n("at",29,-1),new n("et",29,-1),new n("ként",29,-1),new n("anként",32,-1),new n("enként",32,-1),new n("onként",32,-1),new n("ot",29,-1),new n("ért",29,-1),new n("öt",29,-1),new n("hez",-1,-1),new n("hoz",-1,-1),new n("höz",-1,-1),new n("vá",-1,-1),new n("vé",-1,-1)],z=[new n("án",-1,2),new n("én",-1,1),new n("ánként",-1,3)],y=[new n("stul",-1,2),new n("astul",0,1),new n("ástul",0,3),new n("stül",-1,2),new n("estül",3,1),new n("éstül",3,4)],j=[new n("á",-1,1),new n("é",-1,2)],C=[new n("k",-1,7),new n("ak",0,4),new n("ek",0,6),new n("ok",0,5),new n("ák",0,1),new n("ék",0,2),new n("ök",0,3)],P=[new n("éi",-1,7),new n("áéi",0,6),new n("ééi",0,5),new n("é",-1,9),new n("ké",3,4),new n("aké",4,1),new n("eké",4,1),new n("oké",4,1),new n("áké",4,3),new n("éké",4,2),new n("öké",4,1),new n("éé",3,8)],F=[new n("a",-1,18),new n("ja",0,17),new n("d",-1,16),new n("ad",2,13),new n("ed",2,13),new n("od",2,13),new n("ád",2,14),new n("éd",2,15),new n("öd",2,13),new n("e",-1,18),new n("je",9,17),new n("nk",-1,4),new n("unk",11,1),new n("ánk",11,2),new n("énk",11,3),new n("ünk",11,1),new n("uk",-1,8),new n("juk",16,7),new n("ájuk",17,5),new n("ük",-1,8),new n("jük",19,7),new n("éjük",20,6),new n("m",-1,12),new n("am",22,9),new n("em",22,9),new n("om",22,9),new n("ám",22,10),new n("ém",22,11),new n("o",-1,18),new n("á",-1,19),new n("é",-1,20)],S=[new n("id",-1,10),new n("aid",0,9),new n("jaid",1,6),new n("eid",0,9),new n("jeid",3,6),new n("áid",0,7),new n("éid",0,8),new n("i",-1,15),new n("ai",7,14),new n("jai",8,11),new n("ei",7,14),new n("jei",10,11),new n("ái",7,12),new n("éi",7,13),new n("itek",-1,24),new n("eitek",14,21),new n("jeitek",15,20),new n("éitek",14,23),new n("ik",-1,29),new n("aik",18,26),new n("jaik",19,25),new n("eik",18,26),new n("jeik",21,25),new n("áik",18,27),new n("éik",18,28),new n("ink",-1,20),new n("aink",25,17),new n("jaink",26,16),new n("eink",25,17),new n("jeink",28,16),new n("áink",25,18),new n("éink",25,19),new n("aitok",-1,21),new n("jaitok",32,20),new n("áitok",-1,22),new n("im",-1,5),new n("aim",35,4),new n("jaim",36,1),new n("eim",35,4),new n("jeim",38,1),new n("áim",35,2),new n("éim",35,3)],W=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,17,52,14],L=new r;this.setCurrent=function(e){L.setCurrent(e)},this.getCurrent=function(){return L.getCurrent()},this.stem=function(){var n=L.cursor;return e(),L.limit_backward=n,L.cursor=L.limit,c(),L.cursor=L.limit,o(),L.cursor=L.limit,w(),L.cursor=L.limit,l(),L.cursor=L.limit,u(),L.cursor=L.limit,k(),L.cursor=L.limit,f(),L.cursor=L.limit,b(),L.cursor=L.limit,m(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.hu.stemmer,"stemmer-hu"),e.hu.stopWordFilter=e.generateStopWordFilter("a abban ahhoz ahogy ahol aki akik akkor alatt amely amelyek amelyekben amelyeket amelyet amelynek ami amikor amit amolyan amíg annak arra arról az azok azon azonban azt aztán azután azzal azért be belül benne bár cikk cikkek cikkeket csak de e ebben eddig egy egyes egyetlen egyik egyre egyéb egész ehhez ekkor el ellen elsõ elég elõ elõször elõtt emilyen ennek erre ez ezek ezen ezt ezzel ezért fel felé hanem hiszen hogy hogyan igen ill ill. illetve ilyen ilyenkor ismét ison itt jobban jó jól kell kellett keressünk keresztül ki kívül között közül legalább legyen lehet lehetett lenne lenni lesz lett maga magát majd majd meg mellett mely melyek mert mi mikor milyen minden mindenki mindent mindig mint mintha mit mivel miért most már más másik még míg nagy nagyobb nagyon ne nekem neki nem nincs néha néhány nélkül olyan ott pedig persze rá s saját sem semmi sok sokat sokkal szemben szerint szinte számára talán tehát teljes tovább továbbá több ugyanis utolsó után utána vagy vagyis vagyok valaki valami valamint való van vannak vele vissza viszont volna volt voltak voltam voltunk által általában át én éppen és így õ õk õket össze úgy új újabb újra".split(" ")),e.Pipeline.registerFunction(e.hu.stopWordFilter,"stopWordFilter-hu")}}); \ No newline at end of file diff --git a/docs/assets/javascripts/lunr/min/lunr.it.min.js b/docs/assets/javascripts/lunr/min/lunr.it.min.js new file mode 100644 index 00000000..344b6a3c --- /dev/null +++ b/docs/assets/javascripts/lunr/min/lunr.it.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Italian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.it=function(){this.pipeline.reset(),this.pipeline.add(e.it.trimmer,e.it.stopWordFilter,e.it.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.it.stemmer))},e.it.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.it.trimmer=e.trimmerSupport.generateTrimmer(e.it.wordCharacters),e.Pipeline.registerFunction(e.it.trimmer,"trimmer-it"),e.it.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(e,r,n){return!(!x.eq_s(1,e)||(x.ket=x.cursor,!x.in_grouping(L,97,249)))&&(x.slice_from(r),x.cursor=n,!0)}function i(){for(var r,n,i,o,t=x.cursor;;){if(x.bra=x.cursor,r=x.find_among(h,7))switch(x.ket=x.cursor,r){case 1:x.slice_from("à");continue;case 2:x.slice_from("è");continue;case 3:x.slice_from("ì");continue;case 4:x.slice_from("ò");continue;case 5:x.slice_from("ù");continue;case 6:x.slice_from("qU");continue;case 7:if(x.cursor>=x.limit)break;x.cursor++;continue}break}for(x.cursor=t;;)for(n=x.cursor;;){if(i=x.cursor,x.in_grouping(L,97,249)){if(x.bra=x.cursor,o=x.cursor,e("u","U",i))break;if(x.cursor=o,e("i","I",i))break}if(x.cursor=i,x.cursor>=x.limit)return void(x.cursor=n);x.cursor++}}function o(e){if(x.cursor=e,!x.in_grouping(L,97,249))return!1;for(;!x.out_grouping(L,97,249);){if(x.cursor>=x.limit)return!1;x.cursor++}return!0}function t(){if(x.in_grouping(L,97,249)){var e=x.cursor;if(x.out_grouping(L,97,249)){for(;!x.in_grouping(L,97,249);){if(x.cursor>=x.limit)return o(e);x.cursor++}return!0}return o(e)}return!1}function s(){var e,r=x.cursor;if(!t()){if(x.cursor=r,!x.out_grouping(L,97,249))return;if(e=x.cursor,x.out_grouping(L,97,249)){for(;!x.in_grouping(L,97,249);){if(x.cursor>=x.limit)return x.cursor=e,void(x.in_grouping(L,97,249)&&x.cursor=x.limit)return;x.cursor++}k=x.cursor}function a(){for(;!x.in_grouping(L,97,249);){if(x.cursor>=x.limit)return!1;x.cursor++}for(;!x.out_grouping(L,97,249);){if(x.cursor>=x.limit)return!1;x.cursor++}return!0}function u(){var e=x.cursor;k=x.limit,p=k,g=k,s(),x.cursor=e,a()&&(p=x.cursor,a()&&(g=x.cursor))}function c(){for(var e;;){if(x.bra=x.cursor,!(e=x.find_among(q,3)))break;switch(x.ket=x.cursor,e){case 1:x.slice_from("i");break;case 2:x.slice_from("u");break;case 3:if(x.cursor>=x.limit)return;x.cursor++}}}function w(){return k<=x.cursor}function l(){return p<=x.cursor}function m(){return g<=x.cursor}function f(){var e;if(x.ket=x.cursor,x.find_among_b(C,37)&&(x.bra=x.cursor,(e=x.find_among_b(z,5))&&w()))switch(e){case 1:x.slice_del();break;case 2:x.slice_from("e")}}function v(){var e;if(x.ket=x.cursor,!(e=x.find_among_b(S,51)))return!1;switch(x.bra=x.cursor,e){case 1:if(!m())return!1;x.slice_del();break;case 2:if(!m())return!1;x.slice_del(),x.ket=x.cursor,x.eq_s_b(2,"ic")&&(x.bra=x.cursor,m()&&x.slice_del());break;case 3:if(!m())return!1;x.slice_from("log");break;case 4:if(!m())return!1;x.slice_from("u");break;case 5:if(!m())return!1;x.slice_from("ente");break;case 6:if(!w())return!1;x.slice_del();break;case 7:if(!l())return!1;x.slice_del(),x.ket=x.cursor,e=x.find_among_b(P,4),e&&(x.bra=x.cursor,m()&&(x.slice_del(),1==e&&(x.ket=x.cursor,x.eq_s_b(2,"at")&&(x.bra=x.cursor,m()&&x.slice_del()))));break;case 8:if(!m())return!1;x.slice_del(),x.ket=x.cursor,e=x.find_among_b(F,3),e&&(x.bra=x.cursor,1==e&&m()&&x.slice_del());break;case 9:if(!m())return!1;x.slice_del(),x.ket=x.cursor,x.eq_s_b(2,"at")&&(x.bra=x.cursor,m()&&(x.slice_del(),x.ket=x.cursor,x.eq_s_b(2,"ic")&&(x.bra=x.cursor,m()&&x.slice_del())))}return!0}function b(){var e,r;x.cursor>=k&&(r=x.limit_backward,x.limit_backward=k,x.ket=x.cursor,e=x.find_among_b(W,87),e&&(x.bra=x.cursor,1==e&&x.slice_del()),x.limit_backward=r)}function d(){var e=x.limit-x.cursor;if(x.ket=x.cursor,x.in_grouping_b(y,97,242)&&(x.bra=x.cursor,w()&&(x.slice_del(),x.ket=x.cursor,x.eq_s_b(1,"i")&&(x.bra=x.cursor,w()))))return void x.slice_del();x.cursor=x.limit-e}function _(){d(),x.ket=x.cursor,x.eq_s_b(1,"h")&&(x.bra=x.cursor,x.in_grouping_b(U,99,103)&&w()&&x.slice_del())}var g,p,k,h=[new r("",-1,7),new r("qu",0,6),new r("á",0,1),new r("é",0,2),new r("í",0,3),new r("ó",0,4),new r("ú",0,5)],q=[new r("",-1,3),new r("I",0,1),new r("U",0,2)],C=[new r("la",-1,-1),new r("cela",0,-1),new r("gliela",0,-1),new r("mela",0,-1),new r("tela",0,-1),new r("vela",0,-1),new r("le",-1,-1),new r("cele",6,-1),new r("gliele",6,-1),new r("mele",6,-1),new r("tele",6,-1),new r("vele",6,-1),new r("ne",-1,-1),new r("cene",12,-1),new r("gliene",12,-1),new r("mene",12,-1),new r("sene",12,-1),new r("tene",12,-1),new r("vene",12,-1),new r("ci",-1,-1),new r("li",-1,-1),new r("celi",20,-1),new r("glieli",20,-1),new r("meli",20,-1),new r("teli",20,-1),new r("veli",20,-1),new r("gli",20,-1),new r("mi",-1,-1),new r("si",-1,-1),new r("ti",-1,-1),new r("vi",-1,-1),new r("lo",-1,-1),new r("celo",31,-1),new r("glielo",31,-1),new r("melo",31,-1),new r("telo",31,-1),new r("velo",31,-1)],z=[new r("ando",-1,1),new r("endo",-1,1),new r("ar",-1,2),new r("er",-1,2),new r("ir",-1,2)],P=[new r("ic",-1,-1),new r("abil",-1,-1),new r("os",-1,-1),new r("iv",-1,1)],F=[new r("ic",-1,1),new r("abil",-1,1),new r("iv",-1,1)],S=[new r("ica",-1,1),new r("logia",-1,3),new r("osa",-1,1),new r("ista",-1,1),new r("iva",-1,9),new r("anza",-1,1),new r("enza",-1,5),new r("ice",-1,1),new r("atrice",7,1),new r("iche",-1,1),new r("logie",-1,3),new r("abile",-1,1),new r("ibile",-1,1),new r("usione",-1,4),new r("azione",-1,2),new r("uzione",-1,4),new r("atore",-1,2),new r("ose",-1,1),new r("ante",-1,1),new r("mente",-1,1),new r("amente",19,7),new r("iste",-1,1),new r("ive",-1,9),new r("anze",-1,1),new r("enze",-1,5),new r("ici",-1,1),new r("atrici",25,1),new r("ichi",-1,1),new r("abili",-1,1),new r("ibili",-1,1),new r("ismi",-1,1),new r("usioni",-1,4),new r("azioni",-1,2),new r("uzioni",-1,4),new r("atori",-1,2),new r("osi",-1,1),new r("anti",-1,1),new r("amenti",-1,6),new r("imenti",-1,6),new r("isti",-1,1),new r("ivi",-1,9),new r("ico",-1,1),new r("ismo",-1,1),new r("oso",-1,1),new r("amento",-1,6),new r("imento",-1,6),new r("ivo",-1,9),new r("ità",-1,8),new r("istà",-1,1),new r("istè",-1,1),new r("istì",-1,1)],W=[new r("isca",-1,1),new r("enda",-1,1),new r("ata",-1,1),new r("ita",-1,1),new r("uta",-1,1),new r("ava",-1,1),new r("eva",-1,1),new r("iva",-1,1),new r("erebbe",-1,1),new r("irebbe",-1,1),new r("isce",-1,1),new r("ende",-1,1),new r("are",-1,1),new r("ere",-1,1),new r("ire",-1,1),new r("asse",-1,1),new r("ate",-1,1),new r("avate",16,1),new r("evate",16,1),new r("ivate",16,1),new r("ete",-1,1),new r("erete",20,1),new r("irete",20,1),new r("ite",-1,1),new r("ereste",-1,1),new r("ireste",-1,1),new r("ute",-1,1),new r("erai",-1,1),new r("irai",-1,1),new r("isci",-1,1),new r("endi",-1,1),new r("erei",-1,1),new r("irei",-1,1),new r("assi",-1,1),new r("ati",-1,1),new r("iti",-1,1),new r("eresti",-1,1),new r("iresti",-1,1),new r("uti",-1,1),new r("avi",-1,1),new r("evi",-1,1),new r("ivi",-1,1),new r("isco",-1,1),new r("ando",-1,1),new r("endo",-1,1),new r("Yamo",-1,1),new r("iamo",-1,1),new r("avamo",-1,1),new r("evamo",-1,1),new r("ivamo",-1,1),new r("eremo",-1,1),new r("iremo",-1,1),new r("assimo",-1,1),new r("ammo",-1,1),new r("emmo",-1,1),new r("eremmo",54,1),new r("iremmo",54,1),new r("immo",-1,1),new r("ano",-1,1),new r("iscano",58,1),new r("avano",58,1),new r("evano",58,1),new r("ivano",58,1),new r("eranno",-1,1),new r("iranno",-1,1),new r("ono",-1,1),new r("iscono",65,1),new r("arono",65,1),new r("erono",65,1),new r("irono",65,1),new r("erebbero",-1,1),new r("irebbero",-1,1),new r("assero",-1,1),new r("essero",-1,1),new r("issero",-1,1),new r("ato",-1,1),new r("ito",-1,1),new r("uto",-1,1),new r("avo",-1,1),new r("evo",-1,1),new r("ivo",-1,1),new r("ar",-1,1),new r("ir",-1,1),new r("erà",-1,1),new r("irà",-1,1),new r("erò",-1,1),new r("irò",-1,1)],L=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2,1],y=[17,65,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2],U=[17],x=new n;this.setCurrent=function(e){x.setCurrent(e)},this.getCurrent=function(){return x.getCurrent()},this.stem=function(){var e=x.cursor;return i(),x.cursor=e,u(),x.limit_backward=e,x.cursor=x.limit,f(),x.cursor=x.limit,v()||(x.cursor=x.limit,b()),x.cursor=x.limit,_(),x.cursor=x.limit_backward,c(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.it.stemmer,"stemmer-it"),e.it.stopWordFilter=e.generateStopWordFilter("a abbia abbiamo abbiano abbiate ad agl agli ai al all alla alle allo anche avemmo avendo avesse avessero avessi avessimo aveste avesti avete aveva avevamo avevano avevate avevi avevo avrai avranno avrebbe avrebbero avrei avremmo avremo avreste avresti avrete avrà avrò avuta avute avuti avuto c che chi ci coi col come con contro cui da dagl dagli dai dal dall dalla dalle dallo degl degli dei del dell della delle dello di dov dove e ebbe ebbero ebbi ed era erano eravamo eravate eri ero essendo faccia facciamo facciano facciate faccio facemmo facendo facesse facessero facessi facessimo faceste facesti faceva facevamo facevano facevate facevi facevo fai fanno farai faranno farebbe farebbero farei faremmo faremo fareste faresti farete farà farò fece fecero feci fosse fossero fossi fossimo foste fosti fu fui fummo furono gli ha hai hanno ho i il in io l la le lei li lo loro lui ma mi mia mie miei mio ne negl negli nei nel nell nella nelle nello noi non nostra nostre nostri nostro o per perché più quale quanta quante quanti quanto quella quelle quelli quello questa queste questi questo sarai saranno sarebbe sarebbero sarei saremmo saremo sareste saresti sarete sarà sarò se sei si sia siamo siano siate siete sono sta stai stando stanno starai staranno starebbe starebbero starei staremmo staremo stareste staresti starete starà starò stava stavamo stavano stavate stavi stavo stemmo stesse stessero stessi stessimo steste stesti stette stettero stetti stia stiamo stiano stiate sto su sua sue sugl sugli sui sul sull sulla sulle sullo suo suoi ti tra tu tua tue tuo tuoi tutti tutto un una uno vi voi vostra vostre vostri vostro è".split(" ")),e.Pipeline.registerFunction(e.it.stopWordFilter,"stopWordFilter-it")}}); \ No newline at end of file diff --git a/docs/assets/javascripts/lunr/min/lunr.ja.min.js b/docs/assets/javascripts/lunr/min/lunr.ja.min.js new file mode 100644 index 00000000..5f254ebe --- /dev/null +++ b/docs/assets/javascripts/lunr/min/lunr.ja.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.ja=function(){this.pipeline.reset(),this.pipeline.add(e.ja.trimmer,e.ja.stopWordFilter,e.ja.stemmer),r?this.tokenizer=e.ja.tokenizer:(e.tokenizer&&(e.tokenizer=e.ja.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.ja.tokenizer))};var t=new e.TinySegmenter;e.ja.tokenizer=function(i){var n,o,s,p,a,u,m,l,c,f;if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t.toLowerCase()):t.toLowerCase()});for(o=i.toString().toLowerCase().replace(/^\s+/,""),n=o.length-1;n>=0;n--)if(/\S/.test(o.charAt(n))){o=o.substring(0,n+1);break}for(a=[],s=o.length,c=0,l=0;c<=s;c++)if(u=o.charAt(c),m=c-l,u.match(/\s/)||c==s){if(m>0)for(p=t.segment(o.slice(l,c)).filter(function(e){return!!e}),f=l,n=0;n=C.limit)break;C.cursor++;continue}break}for(C.cursor=o,C.bra=o,C.eq_s(1,"y")?(C.ket=C.cursor,C.slice_from("Y")):C.cursor=o;;)if(e=C.cursor,C.in_grouping(q,97,232)){if(i=C.cursor,C.bra=i,C.eq_s(1,"i"))C.ket=C.cursor,C.in_grouping(q,97,232)&&(C.slice_from("I"),C.cursor=e);else if(C.cursor=i,C.eq_s(1,"y"))C.ket=C.cursor,C.slice_from("Y"),C.cursor=e;else if(n(e))break}else if(n(e))break}function n(r){return C.cursor=r,r>=C.limit||(C.cursor++,!1)}function o(){_=C.limit,d=_,t()||(_=C.cursor,_<3&&(_=3),t()||(d=C.cursor))}function t(){for(;!C.in_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}for(;!C.out_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}return!1}function s(){for(var r;;)if(C.bra=C.cursor,r=C.find_among(p,3))switch(C.ket=C.cursor,r){case 1:C.slice_from("y");break;case 2:C.slice_from("i");break;case 3:if(C.cursor>=C.limit)return;C.cursor++}}function u(){return _<=C.cursor}function c(){return d<=C.cursor}function a(){var r=C.limit-C.cursor;C.find_among_b(g,3)&&(C.cursor=C.limit-r,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del()))}function l(){var r;w=!1,C.ket=C.cursor,C.eq_s_b(1,"e")&&(C.bra=C.cursor,u()&&(r=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-r,C.slice_del(),w=!0,a())))}function m(){var r;u()&&(r=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-r,C.eq_s_b(3,"gem")||(C.cursor=C.limit-r,C.slice_del(),a())))}function f(){var r,e,i,n,o,t,s=C.limit-C.cursor;if(C.ket=C.cursor,r=C.find_among_b(h,5))switch(C.bra=C.cursor,r){case 1:u()&&C.slice_from("heid");break;case 2:m();break;case 3:u()&&C.out_grouping_b(j,97,232)&&C.slice_del()}if(C.cursor=C.limit-s,l(),C.cursor=C.limit-s,C.ket=C.cursor,C.eq_s_b(4,"heid")&&(C.bra=C.cursor,c()&&(e=C.limit-C.cursor,C.eq_s_b(1,"c")||(C.cursor=C.limit-e,C.slice_del(),C.ket=C.cursor,C.eq_s_b(2,"en")&&(C.bra=C.cursor,m())))),C.cursor=C.limit-s,C.ket=C.cursor,r=C.find_among_b(k,6))switch(C.bra=C.cursor,r){case 1:if(c()){if(C.slice_del(),i=C.limit-C.cursor,C.ket=C.cursor,C.eq_s_b(2,"ig")&&(C.bra=C.cursor,c()&&(n=C.limit-C.cursor,!C.eq_s_b(1,"e")))){C.cursor=C.limit-n,C.slice_del();break}C.cursor=C.limit-i,a()}break;case 2:c()&&(o=C.limit-C.cursor,C.eq_s_b(1,"e")||(C.cursor=C.limit-o,C.slice_del()));break;case 3:c()&&(C.slice_del(),l());break;case 4:c()&&C.slice_del();break;case 5:c()&&w&&C.slice_del()}C.cursor=C.limit-s,C.out_grouping_b(z,73,232)&&(t=C.limit-C.cursor,C.find_among_b(v,4)&&C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-t,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del())))}var d,_,w,b=[new e("",-1,6),new e("á",0,1),new e("ä",0,1),new e("é",0,2),new e("ë",0,2),new e("í",0,3),new e("ï",0,3),new e("ó",0,4),new e("ö",0,4),new e("ú",0,5),new e("ü",0,5)],p=[new e("",-1,3),new e("I",0,2),new e("Y",0,1)],g=[new e("dd",-1,-1),new e("kk",-1,-1),new e("tt",-1,-1)],h=[new e("ene",-1,2),new e("se",-1,3),new e("en",-1,2),new e("heden",2,1),new e("s",-1,3)],k=[new e("end",-1,1),new e("ig",-1,2),new e("ing",-1,1),new e("lijk",-1,3),new e("baar",-1,4),new e("bar",-1,5)],v=[new e("aa",-1,-1),new e("ee",-1,-1),new e("oo",-1,-1),new e("uu",-1,-1)],q=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],z=[1,0,0,17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],j=[17,67,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],C=new i;this.setCurrent=function(r){C.setCurrent(r)},this.getCurrent=function(){return C.getCurrent()},this.stem=function(){var e=C.cursor;return r(),C.cursor=e,o(),C.limit_backward=e,C.cursor=C.limit,f(),C.cursor=C.limit_backward,s(),!0}};return function(r){return"function"==typeof r.update?r.update(function(r){return n.setCurrent(r),n.stem(),n.getCurrent()}):(n.setCurrent(r),n.stem(),n.getCurrent())}}(),r.Pipeline.registerFunction(r.nl.stemmer,"stemmer-nl"),r.nl.stopWordFilter=r.generateStopWordFilter(" aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou".split(" ")),r.Pipeline.registerFunction(r.nl.stopWordFilter,"stopWordFilter-nl")}}); \ No newline at end of file diff --git a/docs/assets/javascripts/lunr/min/lunr.no.min.js b/docs/assets/javascripts/lunr/min/lunr.no.min.js new file mode 100644 index 00000000..92bc7e4e --- /dev/null +++ b/docs/assets/javascripts/lunr/min/lunr.no.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Norwegian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.no=function(){this.pipeline.reset(),this.pipeline.add(e.no.trimmer,e.no.stopWordFilter,e.no.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.no.stemmer))},e.no.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.no.trimmer=e.trimmerSupport.generateTrimmer(e.no.wordCharacters),e.Pipeline.registerFunction(e.no.trimmer,"trimmer-no"),e.no.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(){var e,r=w.cursor+3;if(a=w.limit,0<=r||r<=w.limit){for(s=r;;){if(e=w.cursor,w.in_grouping(d,97,248)){w.cursor=e;break}if(e>=w.limit)return;w.cursor=e+1}for(;!w.out_grouping(d,97,248);){if(w.cursor>=w.limit)return;w.cursor++}a=w.cursor,a=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(m,29),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:n=w.limit-w.cursor,w.in_grouping_b(c,98,122)?w.slice_del():(w.cursor=w.limit-n,w.eq_s_b(1,"k")&&w.out_grouping_b(d,97,248)&&w.slice_del());break;case 3:w.slice_from("er")}}function t(){var e,r=w.limit-w.cursor;w.cursor>=a&&(e=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,w.find_among_b(u,2)?(w.bra=w.cursor,w.limit_backward=e,w.cursor=w.limit-r,w.cursor>w.limit_backward&&(w.cursor--,w.bra=w.cursor,w.slice_del())):w.limit_backward=e)}function o(){var e,r;w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(l,11),e?(w.bra=w.cursor,w.limit_backward=r,1==e&&w.slice_del()):w.limit_backward=r)}var s,a,m=[new r("a",-1,1),new r("e",-1,1),new r("ede",1,1),new r("ande",1,1),new r("ende",1,1),new r("ane",1,1),new r("ene",1,1),new r("hetene",6,1),new r("erte",1,3),new r("en",-1,1),new r("heten",9,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",12,1),new r("s",-1,2),new r("as",14,1),new r("es",14,1),new r("edes",16,1),new r("endes",16,1),new r("enes",16,1),new r("hetenes",19,1),new r("ens",14,1),new r("hetens",21,1),new r("ers",14,1),new r("ets",14,1),new r("et",-1,1),new r("het",25,1),new r("ert",-1,3),new r("ast",-1,1)],u=[new r("dt",-1,-1),new r("vt",-1,-1)],l=[new r("leg",-1,1),new r("eleg",0,1),new r("ig",-1,1),new r("eig",2,1),new r("lig",2,1),new r("elig",4,1),new r("els",-1,1),new r("lov",-1,1),new r("elov",7,1),new r("slov",7,1),new r("hetslov",9,1)],d=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],c=[119,125,149,1],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,i(),w.cursor=w.limit,t(),w.cursor=w.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.no.stemmer,"stemmer-no"),e.no.stopWordFilter=e.generateStopWordFilter("alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å".split(" ")),e.Pipeline.registerFunction(e.no.stopWordFilter,"stopWordFilter-no")}}); \ No newline at end of file diff --git a/docs/assets/javascripts/lunr/min/lunr.pt.min.js b/docs/assets/javascripts/lunr/min/lunr.pt.min.js new file mode 100644 index 00000000..6c16996d --- /dev/null +++ b/docs/assets/javascripts/lunr/min/lunr.pt.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Portuguese` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.pt=function(){this.pipeline.reset(),this.pipeline.add(e.pt.trimmer,e.pt.stopWordFilter,e.pt.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.pt.stemmer))},e.pt.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.pt.trimmer=e.trimmerSupport.generateTrimmer(e.pt.wordCharacters),e.Pipeline.registerFunction(e.pt.trimmer,"trimmer-pt"),e.pt.stemmer=function(){var r=e.stemmerSupport.Among,s=e.stemmerSupport.SnowballProgram,n=new function(){function e(){for(var e;;){if(z.bra=z.cursor,e=z.find_among(k,3))switch(z.ket=z.cursor,e){case 1:z.slice_from("a~");continue;case 2:z.slice_from("o~");continue;case 3:if(z.cursor>=z.limit)break;z.cursor++;continue}break}}function n(){if(z.out_grouping(y,97,250)){for(;!z.in_grouping(y,97,250);){if(z.cursor>=z.limit)return!0;z.cursor++}return!1}return!0}function i(){if(z.in_grouping(y,97,250))for(;!z.out_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}return g=z.cursor,!0}function o(){var e,r,s=z.cursor;if(z.in_grouping(y,97,250))if(e=z.cursor,n()){if(z.cursor=e,i())return}else g=z.cursor;if(z.cursor=s,z.out_grouping(y,97,250)){if(r=z.cursor,n()){if(z.cursor=r,!z.in_grouping(y,97,250)||z.cursor>=z.limit)return;z.cursor++}g=z.cursor}}function t(){for(;!z.in_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}for(;!z.out_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}return!0}function a(){var e=z.cursor;g=z.limit,b=g,h=g,o(),z.cursor=e,t()&&(b=z.cursor,t()&&(h=z.cursor))}function u(){for(var e;;){if(z.bra=z.cursor,e=z.find_among(q,3))switch(z.ket=z.cursor,e){case 1:z.slice_from("ã");continue;case 2:z.slice_from("õ");continue;case 3:if(z.cursor>=z.limit)break;z.cursor++;continue}break}}function w(){return g<=z.cursor}function m(){return b<=z.cursor}function c(){return h<=z.cursor}function l(){var e;if(z.ket=z.cursor,!(e=z.find_among_b(F,45)))return!1;switch(z.bra=z.cursor,e){case 1:if(!c())return!1;z.slice_del();break;case 2:if(!c())return!1;z.slice_from("log");break;case 3:if(!c())return!1;z.slice_from("u");break;case 4:if(!c())return!1;z.slice_from("ente");break;case 5:if(!m())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(j,4),e&&(z.bra=z.cursor,c()&&(z.slice_del(),1==e&&(z.ket=z.cursor,z.eq_s_b(2,"at")&&(z.bra=z.cursor,c()&&z.slice_del()))));break;case 6:if(!c())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(C,3),e&&(z.bra=z.cursor,1==e&&c()&&z.slice_del());break;case 7:if(!c())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(P,3),e&&(z.bra=z.cursor,1==e&&c()&&z.slice_del());break;case 8:if(!c())return!1;z.slice_del(),z.ket=z.cursor,z.eq_s_b(2,"at")&&(z.bra=z.cursor,c()&&z.slice_del());break;case 9:if(!w()||!z.eq_s_b(1,"e"))return!1;z.slice_from("ir")}return!0}function f(){var e,r;if(z.cursor>=g){if(r=z.limit_backward,z.limit_backward=g,z.ket=z.cursor,e=z.find_among_b(S,120))return z.bra=z.cursor,1==e&&z.slice_del(),z.limit_backward=r,!0;z.limit_backward=r}return!1}function d(){var e;z.ket=z.cursor,(e=z.find_among_b(W,7))&&(z.bra=z.cursor,1==e&&w()&&z.slice_del())}function v(e,r){if(z.eq_s_b(1,e)){z.bra=z.cursor;var s=z.limit-z.cursor;if(z.eq_s_b(1,r))return z.cursor=z.limit-s,w()&&z.slice_del(),!1}return!0}function p(){var e;if(z.ket=z.cursor,e=z.find_among_b(L,4))switch(z.bra=z.cursor,e){case 1:w()&&(z.slice_del(),z.ket=z.cursor,z.limit-z.cursor,v("u","g")&&v("i","c"));break;case 2:z.slice_from("c")}}function _(){if(!l()&&(z.cursor=z.limit,!f()))return z.cursor=z.limit,void d();z.cursor=z.limit,z.ket=z.cursor,z.eq_s_b(1,"i")&&(z.bra=z.cursor,z.eq_s_b(1,"c")&&(z.cursor=z.limit,w()&&z.slice_del()))}var h,b,g,k=[new r("",-1,3),new r("ã",0,1),new r("õ",0,2)],q=[new r("",-1,3),new r("a~",0,1),new r("o~",0,2)],j=[new r("ic",-1,-1),new r("ad",-1,-1),new r("os",-1,-1),new r("iv",-1,1)],C=[new r("ante",-1,1),new r("avel",-1,1),new r("ível",-1,1)],P=[new r("ic",-1,1),new r("abil",-1,1),new r("iv",-1,1)],F=[new r("ica",-1,1),new r("ância",-1,1),new r("ência",-1,4),new r("ira",-1,9),new r("adora",-1,1),new r("osa",-1,1),new r("ista",-1,1),new r("iva",-1,8),new r("eza",-1,1),new r("logía",-1,2),new r("idade",-1,7),new r("ante",-1,1),new r("mente",-1,6),new r("amente",12,5),new r("ável",-1,1),new r("ível",-1,1),new r("ución",-1,3),new r("ico",-1,1),new r("ismo",-1,1),new r("oso",-1,1),new r("amento",-1,1),new r("imento",-1,1),new r("ivo",-1,8),new r("aça~o",-1,1),new r("ador",-1,1),new r("icas",-1,1),new r("ências",-1,4),new r("iras",-1,9),new r("adoras",-1,1),new r("osas",-1,1),new r("istas",-1,1),new r("ivas",-1,8),new r("ezas",-1,1),new r("logías",-1,2),new r("idades",-1,7),new r("uciones",-1,3),new r("adores",-1,1),new r("antes",-1,1),new r("aço~es",-1,1),new r("icos",-1,1),new r("ismos",-1,1),new r("osos",-1,1),new r("amentos",-1,1),new r("imentos",-1,1),new r("ivos",-1,8)],S=[new r("ada",-1,1),new r("ida",-1,1),new r("ia",-1,1),new r("aria",2,1),new r("eria",2,1),new r("iria",2,1),new r("ara",-1,1),new r("era",-1,1),new r("ira",-1,1),new r("ava",-1,1),new r("asse",-1,1),new r("esse",-1,1),new r("isse",-1,1),new r("aste",-1,1),new r("este",-1,1),new r("iste",-1,1),new r("ei",-1,1),new r("arei",16,1),new r("erei",16,1),new r("irei",16,1),new r("am",-1,1),new r("iam",20,1),new r("ariam",21,1),new r("eriam",21,1),new r("iriam",21,1),new r("aram",20,1),new r("eram",20,1),new r("iram",20,1),new r("avam",20,1),new r("em",-1,1),new r("arem",29,1),new r("erem",29,1),new r("irem",29,1),new r("assem",29,1),new r("essem",29,1),new r("issem",29,1),new r("ado",-1,1),new r("ido",-1,1),new r("ando",-1,1),new r("endo",-1,1),new r("indo",-1,1),new r("ara~o",-1,1),new r("era~o",-1,1),new r("ira~o",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("ir",-1,1),new r("as",-1,1),new r("adas",47,1),new r("idas",47,1),new r("ias",47,1),new r("arias",50,1),new r("erias",50,1),new r("irias",50,1),new r("aras",47,1),new r("eras",47,1),new r("iras",47,1),new r("avas",47,1),new r("es",-1,1),new r("ardes",58,1),new r("erdes",58,1),new r("irdes",58,1),new r("ares",58,1),new r("eres",58,1),new r("ires",58,1),new r("asses",58,1),new r("esses",58,1),new r("isses",58,1),new r("astes",58,1),new r("estes",58,1),new r("istes",58,1),new r("is",-1,1),new r("ais",71,1),new r("eis",71,1),new r("areis",73,1),new r("ereis",73,1),new r("ireis",73,1),new r("áreis",73,1),new r("éreis",73,1),new r("íreis",73,1),new r("ásseis",73,1),new r("ésseis",73,1),new r("ísseis",73,1),new r("áveis",73,1),new r("íeis",73,1),new r("aríeis",84,1),new r("eríeis",84,1),new r("iríeis",84,1),new r("ados",-1,1),new r("idos",-1,1),new r("amos",-1,1),new r("áramos",90,1),new r("éramos",90,1),new r("íramos",90,1),new r("ávamos",90,1),new r("íamos",90,1),new r("aríamos",95,1),new r("eríamos",95,1),new r("iríamos",95,1),new r("emos",-1,1),new r("aremos",99,1),new r("eremos",99,1),new r("iremos",99,1),new r("ássemos",99,1),new r("êssemos",99,1),new r("íssemos",99,1),new r("imos",-1,1),new r("armos",-1,1),new r("ermos",-1,1),new r("irmos",-1,1),new r("ámos",-1,1),new r("arás",-1,1),new r("erás",-1,1),new r("irás",-1,1),new r("eu",-1,1),new r("iu",-1,1),new r("ou",-1,1),new r("ará",-1,1),new r("erá",-1,1),new r("irá",-1,1)],W=[new r("a",-1,1),new r("i",-1,1),new r("o",-1,1),new r("os",-1,1),new r("á",-1,1),new r("í",-1,1),new r("ó",-1,1)],L=[new r("e",-1,1),new r("ç",-1,2),new r("é",-1,1),new r("ê",-1,1)],y=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,3,19,12,2],z=new s;this.setCurrent=function(e){z.setCurrent(e)},this.getCurrent=function(){return z.getCurrent()},this.stem=function(){var r=z.cursor;return e(),z.cursor=r,a(),z.limit_backward=r,z.cursor=z.limit,_(),z.cursor=z.limit,p(),z.cursor=z.limit_backward,u(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.pt.stemmer,"stemmer-pt"),e.pt.stopWordFilter=e.generateStopWordFilter("a ao aos aquela aquelas aquele aqueles aquilo as até com como da das de dela delas dele deles depois do dos e ela elas ele eles em entre era eram essa essas esse esses esta estamos estas estava estavam este esteja estejam estejamos estes esteve estive estivemos estiver estivera estiveram estiverem estivermos estivesse estivessem estivéramos estivéssemos estou está estávamos estão eu foi fomos for fora foram forem formos fosse fossem fui fôramos fôssemos haja hajam hajamos havemos hei houve houvemos houver houvera houveram houverei houverem houveremos houveria houveriam houvermos houverá houverão houveríamos houvesse houvessem houvéramos houvéssemos há hão isso isto já lhe lhes mais mas me mesmo meu meus minha minhas muito na nas nem no nos nossa nossas nosso nossos num numa não nós o os ou para pela pelas pelo pelos por qual quando que quem se seja sejam sejamos sem serei seremos seria seriam será serão seríamos seu seus somos sou sua suas são só também te tem temos tenha tenham tenhamos tenho terei teremos teria teriam terá terão teríamos teu teus teve tinha tinham tive tivemos tiver tivera tiveram tiverem tivermos tivesse tivessem tivéramos tivéssemos tu tua tuas tém tínhamos um uma você vocês vos à às éramos".split(" ")),e.Pipeline.registerFunction(e.pt.stopWordFilter,"stopWordFilter-pt")}}); \ No newline at end of file diff --git a/docs/assets/javascripts/lunr/min/lunr.ro.min.js b/docs/assets/javascripts/lunr/min/lunr.ro.min.js new file mode 100644 index 00000000..72771401 --- /dev/null +++ b/docs/assets/javascripts/lunr/min/lunr.ro.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Romanian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ro=function(){this.pipeline.reset(),this.pipeline.add(e.ro.trimmer,e.ro.stopWordFilter,e.ro.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ro.stemmer))},e.ro.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.ro.trimmer=e.trimmerSupport.generateTrimmer(e.ro.wordCharacters),e.Pipeline.registerFunction(e.ro.trimmer,"trimmer-ro"),e.ro.stemmer=function(){var i=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,n=new function(){function e(e,i){L.eq_s(1,e)&&(L.ket=L.cursor,L.in_grouping(W,97,259)&&L.slice_from(i))}function n(){for(var i,r;;){if(i=L.cursor,L.in_grouping(W,97,259)&&(r=L.cursor,L.bra=r,e("u","U"),L.cursor=r,e("i","I")),L.cursor=i,L.cursor>=L.limit)break;L.cursor++}}function t(){if(L.out_grouping(W,97,259)){for(;!L.in_grouping(W,97,259);){if(L.cursor>=L.limit)return!0;L.cursor++}return!1}return!0}function a(){if(L.in_grouping(W,97,259))for(;!L.out_grouping(W,97,259);){if(L.cursor>=L.limit)return!0;L.cursor++}return!1}function o(){var e,i,r=L.cursor;if(L.in_grouping(W,97,259)){if(e=L.cursor,!t())return void(h=L.cursor);if(L.cursor=e,!a())return void(h=L.cursor)}L.cursor=r,L.out_grouping(W,97,259)&&(i=L.cursor,t()&&(L.cursor=i,L.in_grouping(W,97,259)&&L.cursor=L.limit)return!1;L.cursor++}for(;!L.out_grouping(W,97,259);){if(L.cursor>=L.limit)return!1;L.cursor++}return!0}function c(){var e=L.cursor;h=L.limit,k=h,g=h,o(),L.cursor=e,u()&&(k=L.cursor,u()&&(g=L.cursor))}function s(){for(var e;;){if(L.bra=L.cursor,e=L.find_among(z,3))switch(L.ket=L.cursor,e){case 1:L.slice_from("i");continue;case 2:L.slice_from("u");continue;case 3:if(L.cursor>=L.limit)break;L.cursor++;continue}break}}function w(){return h<=L.cursor}function m(){return k<=L.cursor}function l(){return g<=L.cursor}function f(){var e,i;if(L.ket=L.cursor,(e=L.find_among_b(C,16))&&(L.bra=L.cursor,m()))switch(e){case 1:L.slice_del();break;case 2:L.slice_from("a");break;case 3:L.slice_from("e");break;case 4:L.slice_from("i");break;case 5:i=L.limit-L.cursor,L.eq_s_b(2,"ab")||(L.cursor=L.limit-i,L.slice_from("i"));break;case 6:L.slice_from("at");break;case 7:L.slice_from("aţi")}}function p(){var e,i=L.limit-L.cursor;if(L.ket=L.cursor,(e=L.find_among_b(P,46))&&(L.bra=L.cursor,m())){switch(e){case 1:L.slice_from("abil");break;case 2:L.slice_from("ibil");break;case 3:L.slice_from("iv");break;case 4:L.slice_from("ic");break;case 5:L.slice_from("at");break;case 6:L.slice_from("it")}return _=!0,L.cursor=L.limit-i,!0}return!1}function d(){var e,i;for(_=!1;;)if(i=L.limit-L.cursor,!p()){L.cursor=L.limit-i;break}if(L.ket=L.cursor,(e=L.find_among_b(F,62))&&(L.bra=L.cursor,l())){switch(e){case 1:L.slice_del();break;case 2:L.eq_s_b(1,"ţ")&&(L.bra=L.cursor,L.slice_from("t"));break;case 3:L.slice_from("ist")}_=!0}}function b(){var e,i,r;if(L.cursor>=h){if(i=L.limit_backward,L.limit_backward=h,L.ket=L.cursor,e=L.find_among_b(q,94))switch(L.bra=L.cursor,e){case 1:if(r=L.limit-L.cursor,!L.out_grouping_b(W,97,259)&&(L.cursor=L.limit-r,!L.eq_s_b(1,"u")))break;case 2:L.slice_del()}L.limit_backward=i}}function v(){var e;L.ket=L.cursor,(e=L.find_among_b(S,5))&&(L.bra=L.cursor,w()&&1==e&&L.slice_del())}var _,g,k,h,z=[new i("",-1,3),new i("I",0,1),new i("U",0,2)],C=[new i("ea",-1,3),new i("aţia",-1,7),new i("aua",-1,2),new i("iua",-1,4),new i("aţie",-1,7),new i("ele",-1,3),new i("ile",-1,5),new i("iile",6,4),new i("iei",-1,4),new i("atei",-1,6),new i("ii",-1,4),new i("ului",-1,1),new i("ul",-1,1),new i("elor",-1,3),new i("ilor",-1,4),new i("iilor",14,4)],P=[new i("icala",-1,4),new i("iciva",-1,4),new i("ativa",-1,5),new i("itiva",-1,6),new i("icale",-1,4),new i("aţiune",-1,5),new i("iţiune",-1,6),new i("atoare",-1,5),new i("itoare",-1,6),new i("ătoare",-1,5),new i("icitate",-1,4),new i("abilitate",-1,1),new i("ibilitate",-1,2),new i("ivitate",-1,3),new i("icive",-1,4),new i("ative",-1,5),new i("itive",-1,6),new i("icali",-1,4),new i("atori",-1,5),new i("icatori",18,4),new i("itori",-1,6),new i("ători",-1,5),new i("icitati",-1,4),new i("abilitati",-1,1),new i("ivitati",-1,3),new i("icivi",-1,4),new i("ativi",-1,5),new i("itivi",-1,6),new i("icităi",-1,4),new i("abilităi",-1,1),new i("ivităi",-1,3),new i("icităţi",-1,4),new i("abilităţi",-1,1),new i("ivităţi",-1,3),new i("ical",-1,4),new i("ator",-1,5),new i("icator",35,4),new i("itor",-1,6),new i("ător",-1,5),new i("iciv",-1,4),new i("ativ",-1,5),new i("itiv",-1,6),new i("icală",-1,4),new i("icivă",-1,4),new i("ativă",-1,5),new i("itivă",-1,6)],F=[new i("ica",-1,1),new i("abila",-1,1),new i("ibila",-1,1),new i("oasa",-1,1),new i("ata",-1,1),new i("ita",-1,1),new i("anta",-1,1),new i("ista",-1,3),new i("uta",-1,1),new i("iva",-1,1),new i("ic",-1,1),new i("ice",-1,1),new i("abile",-1,1),new i("ibile",-1,1),new i("isme",-1,3),new i("iune",-1,2),new i("oase",-1,1),new i("ate",-1,1),new i("itate",17,1),new i("ite",-1,1),new i("ante",-1,1),new i("iste",-1,3),new i("ute",-1,1),new i("ive",-1,1),new i("ici",-1,1),new i("abili",-1,1),new i("ibili",-1,1),new i("iuni",-1,2),new i("atori",-1,1),new i("osi",-1,1),new i("ati",-1,1),new i("itati",30,1),new i("iti",-1,1),new i("anti",-1,1),new i("isti",-1,3),new i("uti",-1,1),new i("işti",-1,3),new i("ivi",-1,1),new i("ităi",-1,1),new i("oşi",-1,1),new i("ităţi",-1,1),new i("abil",-1,1),new i("ibil",-1,1),new i("ism",-1,3),new i("ator",-1,1),new i("os",-1,1),new i("at",-1,1),new i("it",-1,1),new i("ant",-1,1),new i("ist",-1,3),new i("ut",-1,1),new i("iv",-1,1),new i("ică",-1,1),new i("abilă",-1,1),new i("ibilă",-1,1),new i("oasă",-1,1),new i("ată",-1,1),new i("ită",-1,1),new i("antă",-1,1),new i("istă",-1,3),new i("ută",-1,1),new i("ivă",-1,1)],q=[new i("ea",-1,1),new i("ia",-1,1),new i("esc",-1,1),new i("ăsc",-1,1),new i("ind",-1,1),new i("ând",-1,1),new i("are",-1,1),new i("ere",-1,1),new i("ire",-1,1),new i("âre",-1,1),new i("se",-1,2),new i("ase",10,1),new i("sese",10,2),new i("ise",10,1),new i("use",10,1),new i("âse",10,1),new i("eşte",-1,1),new i("ăşte",-1,1),new i("eze",-1,1),new i("ai",-1,1),new i("eai",19,1),new i("iai",19,1),new i("sei",-1,2),new i("eşti",-1,1),new i("ăşti",-1,1),new i("ui",-1,1),new i("ezi",-1,1),new i("âi",-1,1),new i("aşi",-1,1),new i("seşi",-1,2),new i("aseşi",29,1),new i("seseşi",29,2),new i("iseşi",29,1),new i("useşi",29,1),new i("âseşi",29,1),new i("işi",-1,1),new i("uşi",-1,1),new i("âşi",-1,1),new i("aţi",-1,2),new i("eaţi",38,1),new i("iaţi",38,1),new i("eţi",-1,2),new i("iţi",-1,2),new i("âţi",-1,2),new i("arăţi",-1,1),new i("serăţi",-1,2),new i("aserăţi",45,1),new i("seserăţi",45,2),new i("iserăţi",45,1),new i("userăţi",45,1),new i("âserăţi",45,1),new i("irăţi",-1,1),new i("urăţi",-1,1),new i("ârăţi",-1,1),new i("am",-1,1),new i("eam",54,1),new i("iam",54,1),new i("em",-1,2),new i("asem",57,1),new i("sesem",57,2),new i("isem",57,1),new i("usem",57,1),new i("âsem",57,1),new i("im",-1,2),new i("âm",-1,2),new i("ăm",-1,2),new i("arăm",65,1),new i("serăm",65,2),new i("aserăm",67,1),new i("seserăm",67,2),new i("iserăm",67,1),new i("userăm",67,1),new i("âserăm",67,1),new i("irăm",65,1),new i("urăm",65,1),new i("ârăm",65,1),new i("au",-1,1),new i("eau",76,1),new i("iau",76,1),new i("indu",-1,1),new i("ându",-1,1),new i("ez",-1,1),new i("ească",-1,1),new i("ară",-1,1),new i("seră",-1,2),new i("aseră",84,1),new i("seseră",84,2),new i("iseră",84,1),new i("useră",84,1),new i("âseră",84,1),new i("iră",-1,1),new i("ură",-1,1),new i("âră",-1,1),new i("ează",-1,1)],S=[new i("a",-1,1),new i("e",-1,1),new i("ie",1,1),new i("i",-1,1),new i("ă",-1,1)],W=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,2,32,0,0,4],L=new r;this.setCurrent=function(e){L.setCurrent(e)},this.getCurrent=function(){return L.getCurrent()},this.stem=function(){var e=L.cursor;return n(),L.cursor=e,c(),L.limit_backward=e,L.cursor=L.limit,f(),L.cursor=L.limit,d(),L.cursor=L.limit,_||(L.cursor=L.limit,b(),L.cursor=L.limit),v(),L.cursor=L.limit_backward,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.ro.stemmer,"stemmer-ro"),e.ro.stopWordFilter=e.generateStopWordFilter("acea aceasta această aceea acei aceia acel acela acele acelea acest acesta aceste acestea aceşti aceştia acolo acord acum ai aia aibă aici al ale alea altceva altcineva am ar are asemenea asta astea astăzi asupra au avea avem aveţi azi aş aşadar aţi bine bucur bună ca care caut ce cel ceva chiar cinci cine cineva contra cu cum cumva curând curînd când cât câte câtva câţi cînd cît cîte cîtva cîţi că căci cărei căror cărui către da dacă dar datorită dată dau de deci deja deoarece departe deşi din dinaintea dintr- dintre doi doilea două drept după dă ea ei el ele eram este eu eşti face fata fi fie fiecare fii fim fiu fiţi frumos fără graţie halbă iar ieri la le li lor lui lângă lîngă mai mea mei mele mereu meu mi mie mine mult multă mulţi mulţumesc mâine mîine mă ne nevoie nici nicăieri nimeni nimeri nimic nişte noastre noastră noi noroc nostru nouă noştri nu opt ori oricare orice oricine oricum oricând oricât oricînd oricît oriunde patra patru patrulea pe pentru peste pic poate pot prea prima primul prin puţin puţina puţină până pînă rog sa sale sau se spate spre sub sunt suntem sunteţi sută sînt sîntem sînteţi să săi său ta tale te timp tine toate toată tot totuşi toţi trei treia treilea tu tăi tău un una unde undeva unei uneia unele uneori unii unor unora unu unui unuia unul vi voastre voastră voi vostru vouă voştri vreme vreo vreun vă zece zero zi zice îi îl îmi împotriva în înainte înaintea încotro încât încît între întrucât întrucît îţi ăla ălea ăsta ăstea ăştia şapte şase şi ştiu ţi ţie".split(" ")),e.Pipeline.registerFunction(e.ro.stopWordFilter,"stopWordFilter-ro")}}); \ No newline at end of file diff --git a/docs/assets/javascripts/lunr/min/lunr.ru.min.js b/docs/assets/javascripts/lunr/min/lunr.ru.min.js new file mode 100644 index 00000000..186cc485 --- /dev/null +++ b/docs/assets/javascripts/lunr/min/lunr.ru.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Russian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ru=function(){this.pipeline.reset(),this.pipeline.add(e.ru.trimmer,e.ru.stopWordFilter,e.ru.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ru.stemmer))},e.ru.wordCharacters="Ѐ-҄҇-ԯᴫᵸⷠ-ⷿꙀ-ꚟ︮︯",e.ru.trimmer=e.trimmerSupport.generateTrimmer(e.ru.wordCharacters),e.Pipeline.registerFunction(e.ru.trimmer,"trimmer-ru"),e.ru.stemmer=function(){var n=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,t=new function(){function e(){for(;!W.in_grouping(S,1072,1103);){if(W.cursor>=W.limit)return!1;W.cursor++}return!0}function t(){for(;!W.out_grouping(S,1072,1103);){if(W.cursor>=W.limit)return!1;W.cursor++}return!0}function w(){b=W.limit,_=b,e()&&(b=W.cursor,t()&&e()&&t()&&(_=W.cursor))}function i(){return _<=W.cursor}function u(e,n){var r,t;if(W.ket=W.cursor,r=W.find_among_b(e,n)){switch(W.bra=W.cursor,r){case 1:if(t=W.limit-W.cursor,!W.eq_s_b(1,"а")&&(W.cursor=W.limit-t,!W.eq_s_b(1,"я")))return!1;case 2:W.slice_del()}return!0}return!1}function o(){return u(h,9)}function s(e,n){var r;return W.ket=W.cursor,!!(r=W.find_among_b(e,n))&&(W.bra=W.cursor,1==r&&W.slice_del(),!0)}function c(){return s(g,26)}function m(){return!!c()&&(u(C,8),!0)}function f(){return s(k,2)}function l(){return u(P,46)}function a(){s(v,36)}function p(){var e;W.ket=W.cursor,(e=W.find_among_b(F,2))&&(W.bra=W.cursor,i()&&1==e&&W.slice_del())}function d(){var e;if(W.ket=W.cursor,e=W.find_among_b(q,4))switch(W.bra=W.cursor,e){case 1:if(W.slice_del(),W.ket=W.cursor,!W.eq_s_b(1,"н"))break;W.bra=W.cursor;case 2:if(!W.eq_s_b(1,"н"))break;case 3:W.slice_del()}}var _,b,h=[new n("в",-1,1),new n("ив",0,2),new n("ыв",0,2),new n("вши",-1,1),new n("ивши",3,2),new n("ывши",3,2),new n("вшись",-1,1),new n("ившись",6,2),new n("ывшись",6,2)],g=[new n("ее",-1,1),new n("ие",-1,1),new n("ое",-1,1),new n("ые",-1,1),new n("ими",-1,1),new n("ыми",-1,1),new n("ей",-1,1),new n("ий",-1,1),new n("ой",-1,1),new n("ый",-1,1),new n("ем",-1,1),new n("им",-1,1),new n("ом",-1,1),new n("ым",-1,1),new n("его",-1,1),new n("ого",-1,1),new n("ему",-1,1),new n("ому",-1,1),new n("их",-1,1),new n("ых",-1,1),new n("ею",-1,1),new n("ою",-1,1),new n("ую",-1,1),new n("юю",-1,1),new n("ая",-1,1),new n("яя",-1,1)],C=[new n("ем",-1,1),new n("нн",-1,1),new n("вш",-1,1),new n("ивш",2,2),new n("ывш",2,2),new n("щ",-1,1),new n("ющ",5,1),new n("ующ",6,2)],k=[new n("сь",-1,1),new n("ся",-1,1)],P=[new n("ла",-1,1),new n("ила",0,2),new n("ыла",0,2),new n("на",-1,1),new n("ена",3,2),new n("ете",-1,1),new n("ите",-1,2),new n("йте",-1,1),new n("ейте",7,2),new n("уйте",7,2),new n("ли",-1,1),new n("или",10,2),new n("ыли",10,2),new n("й",-1,1),new n("ей",13,2),new n("уй",13,2),new n("л",-1,1),new n("ил",16,2),new n("ыл",16,2),new n("ем",-1,1),new n("им",-1,2),new n("ым",-1,2),new n("н",-1,1),new n("ен",22,2),new n("ло",-1,1),new n("ило",24,2),new n("ыло",24,2),new n("но",-1,1),new n("ено",27,2),new n("нно",27,1),new n("ет",-1,1),new n("ует",30,2),new n("ит",-1,2),new n("ыт",-1,2),new n("ют",-1,1),new n("уют",34,2),new n("ят",-1,2),new n("ны",-1,1),new n("ены",37,2),new n("ть",-1,1),new n("ить",39,2),new n("ыть",39,2),new n("ешь",-1,1),new n("ишь",-1,2),new n("ю",-1,2),new n("ую",44,2)],v=[new n("а",-1,1),new n("ев",-1,1),new n("ов",-1,1),new n("е",-1,1),new n("ие",3,1),new n("ье",3,1),new n("и",-1,1),new n("еи",6,1),new n("ии",6,1),new n("ами",6,1),new n("ями",6,1),new n("иями",10,1),new n("й",-1,1),new n("ей",12,1),new n("ией",13,1),new n("ий",12,1),new n("ой",12,1),new n("ам",-1,1),new n("ем",-1,1),new n("ием",18,1),new n("ом",-1,1),new n("ям",-1,1),new n("иям",21,1),new n("о",-1,1),new n("у",-1,1),new n("ах",-1,1),new n("ях",-1,1),new n("иях",26,1),new n("ы",-1,1),new n("ь",-1,1),new n("ю",-1,1),new n("ию",30,1),new n("ью",30,1),new n("я",-1,1),new n("ия",33,1),new n("ья",33,1)],F=[new n("ост",-1,1),new n("ость",-1,1)],q=[new n("ейше",-1,1),new n("н",-1,2),new n("ейш",-1,1),new n("ь",-1,3)],S=[33,65,8,232],W=new r;this.setCurrent=function(e){W.setCurrent(e)},this.getCurrent=function(){return W.getCurrent()},this.stem=function(){return w(),W.cursor=W.limit,!(W.cursor=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},in_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},out_grouping:function(t,i,s){if(this.cursors||e>3]&1<<(7&e)))return this.cursor++,!0}return!1},out_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e>s||e>3]&1<<(7&e)))return this.cursor--,!0}return!1},eq_s:function(t,i){if(this.limit-this.cursor>1),f=0,l=o0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n+_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n+_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},find_among_b:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit_backward,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o=0;m--){if(n-l==u){f=-1;break}if(f=r.charCodeAt(n-1-l)-_.s[m])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n-_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n-_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},replace_s:function(t,i,s){var e=s.length-(i-t),n=r.substring(0,t),u=r.substring(i);return r=n+s+u,this.limit+=e,this.cursor>=i?this.cursor+=e:this.cursor>t&&(this.cursor=t),e},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>r.length)throw"faulty slice operation"},slice_from:function(r){this.slice_check(),this.replace_s(this.bra,this.ket,r)},slice_del:function(){this.slice_from("")},insert:function(r,t,i){var s=this.replace_s(r,t,i);r<=this.bra&&(this.bra+=s),r<=this.ket&&(this.ket+=s)},slice_to:function(){return this.slice_check(),r.substring(this.bra,this.ket)},eq_v_b:function(r){return this.eq_s_b(r.length,r)}}}},r.trimmerSupport={generateTrimmer:function(r){var t=new RegExp("^[^"+r+"]+"),i=new RegExp("[^"+r+"]+$");return function(r){return"function"==typeof r.update?r.update(function(r){return r.replace(t,"").replace(i,"")}):r.replace(t,"").replace(i,"")}}}}}); \ No newline at end of file diff --git a/docs/assets/javascripts/lunr/min/lunr.sv.min.js b/docs/assets/javascripts/lunr/min/lunr.sv.min.js new file mode 100644 index 00000000..3e5eb640 --- /dev/null +++ b/docs/assets/javascripts/lunr/min/lunr.sv.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Swedish` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.sv=function(){this.pipeline.reset(),this.pipeline.add(e.sv.trimmer,e.sv.stopWordFilter,e.sv.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.sv.stemmer))},e.sv.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.sv.trimmer=e.trimmerSupport.generateTrimmer(e.sv.wordCharacters),e.Pipeline.registerFunction(e.sv.trimmer,"trimmer-sv"),e.sv.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,t=new function(){function e(){var e,r=w.cursor+3;if(o=w.limit,0<=r||r<=w.limit){for(a=r;;){if(e=w.cursor,w.in_grouping(l,97,246)){w.cursor=e;break}if(w.cursor=e,w.cursor>=w.limit)return;w.cursor++}for(;!w.out_grouping(l,97,246);){if(w.cursor>=w.limit)return;w.cursor++}o=w.cursor,o=o&&(w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(u,37),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.in_grouping_b(d,98,121)&&w.slice_del()}}function i(){var e=w.limit_backward;w.cursor>=o&&(w.limit_backward=o,w.cursor=w.limit,w.find_among_b(c,7)&&(w.cursor=w.limit,w.ket=w.cursor,w.cursor>w.limit_backward&&(w.bra=--w.cursor,w.slice_del())),w.limit_backward=e)}function s(){var e,r;if(w.cursor>=o){if(r=w.limit_backward,w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(m,5))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.slice_from("lös");break;case 3:w.slice_from("full")}w.limit_backward=r}}var a,o,u=[new r("a",-1,1),new r("arna",0,1),new r("erna",0,1),new r("heterna",2,1),new r("orna",0,1),new r("ad",-1,1),new r("e",-1,1),new r("ade",6,1),new r("ande",6,1),new r("arne",6,1),new r("are",6,1),new r("aste",6,1),new r("en",-1,1),new r("anden",12,1),new r("aren",12,1),new r("heten",12,1),new r("ern",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",18,1),new r("or",-1,1),new r("s",-1,2),new r("as",21,1),new r("arnas",22,1),new r("ernas",22,1),new r("ornas",22,1),new r("es",21,1),new r("ades",26,1),new r("andes",26,1),new r("ens",21,1),new r("arens",29,1),new r("hetens",29,1),new r("erns",21,1),new r("at",-1,1),new r("andet",-1,1),new r("het",-1,1),new r("ast",-1,1)],c=[new r("dd",-1,-1),new r("gd",-1,-1),new r("nn",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1),new r("tt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("els",-1,1),new r("fullt",-1,3),new r("löst",-1,2)],l=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,24,0,32],d=[119,127,149],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,t(),w.cursor=w.limit,i(),w.cursor=w.limit,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return t.setCurrent(e),t.stem(),t.getCurrent()}):(t.setCurrent(e),t.stem(),t.getCurrent())}}(),e.Pipeline.registerFunction(e.sv.stemmer,"stemmer-sv"),e.sv.stopWordFilter=e.generateStopWordFilter("alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över".split(" ")),e.Pipeline.registerFunction(e.sv.stopWordFilter,"stopWordFilter-sv")}}); \ No newline at end of file diff --git a/docs/assets/javascripts/lunr/min/lunr.th.min.js b/docs/assets/javascripts/lunr/min/lunr.th.min.js new file mode 100644 index 00000000..dee3aac6 --- /dev/null +++ b/docs/assets/javascripts/lunr/min/lunr.th.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.th=function(){this.pipeline.reset(),this.pipeline.add(e.th.trimmer),r?this.tokenizer=e.th.tokenizer:(e.tokenizer&&(e.tokenizer=e.th.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.th.tokenizer))},e.th.wordCharacters="[฀-๿]",e.th.trimmer=e.trimmerSupport.generateTrimmer(e.th.wordCharacters),e.Pipeline.registerFunction(e.th.trimmer,"trimmer-th");var t=e.wordcut;t.init(),e.th.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t):t});var n=i.toString().replace(/^\s+/,"");return t.cut(n).split("|")}}}); \ No newline at end of file diff --git a/docs/assets/javascripts/lunr/min/lunr.tr.min.js b/docs/assets/javascripts/lunr/min/lunr.tr.min.js new file mode 100644 index 00000000..563f6ec1 --- /dev/null +++ b/docs/assets/javascripts/lunr/min/lunr.tr.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Turkish` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(r,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(r.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");r.tr=function(){this.pipeline.reset(),this.pipeline.add(r.tr.trimmer,r.tr.stopWordFilter,r.tr.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(r.tr.stemmer))},r.tr.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.tr.trimmer=r.trimmerSupport.generateTrimmer(r.tr.wordCharacters),r.Pipeline.registerFunction(r.tr.trimmer,"trimmer-tr"),r.tr.stemmer=function(){var i=r.stemmerSupport.Among,e=r.stemmerSupport.SnowballProgram,n=new function(){function r(r,i,e){for(;;){var n=Dr.limit-Dr.cursor;if(Dr.in_grouping_b(r,i,e)){Dr.cursor=Dr.limit-n;break}if(Dr.cursor=Dr.limit-n,Dr.cursor<=Dr.limit_backward)return!1;Dr.cursor--}return!0}function n(){var i,e;i=Dr.limit-Dr.cursor,r(Wr,97,305);for(var n=0;nDr.limit_backward&&(Dr.cursor--,e=Dr.limit-Dr.cursor,i()))?(Dr.cursor=Dr.limit-e,!0):(Dr.cursor=Dr.limit-n,r()?(Dr.cursor=Dr.limit-n,!1):(Dr.cursor=Dr.limit-n,!(Dr.cursor<=Dr.limit_backward)&&(Dr.cursor--,!!i()&&(Dr.cursor=Dr.limit-n,!0))))}function u(r){return t(r,function(){return Dr.in_grouping_b(Wr,97,305)})}function o(){return u(function(){return Dr.eq_s_b(1,"n")})}function s(){return u(function(){return Dr.eq_s_b(1,"s")})}function c(){return u(function(){return Dr.eq_s_b(1,"y")})}function l(){return t(function(){return Dr.in_grouping_b(Lr,105,305)},function(){return Dr.out_grouping_b(Wr,97,305)})}function a(){return Dr.find_among_b(ur,10)&&l()}function m(){return n()&&Dr.in_grouping_b(Lr,105,305)&&s()}function d(){return Dr.find_among_b(or,2)}function f(){return n()&&Dr.in_grouping_b(Lr,105,305)&&c()}function b(){return n()&&Dr.find_among_b(sr,4)}function w(){return n()&&Dr.find_among_b(cr,4)&&o()}function _(){return n()&&Dr.find_among_b(lr,2)&&c()}function k(){return n()&&Dr.find_among_b(ar,2)}function p(){return n()&&Dr.find_among_b(mr,4)}function g(){return n()&&Dr.find_among_b(dr,2)}function y(){return n()&&Dr.find_among_b(fr,4)}function z(){return n()&&Dr.find_among_b(br,2)}function v(){return n()&&Dr.find_among_b(wr,2)&&c()}function h(){return Dr.eq_s_b(2,"ki")}function q(){return n()&&Dr.find_among_b(_r,2)&&o()}function C(){return n()&&Dr.find_among_b(kr,4)&&c()}function P(){return n()&&Dr.find_among_b(pr,4)}function F(){return n()&&Dr.find_among_b(gr,4)&&c()}function S(){return Dr.find_among_b(yr,4)}function W(){return n()&&Dr.find_among_b(zr,2)}function L(){return n()&&Dr.find_among_b(vr,4)}function x(){return n()&&Dr.find_among_b(hr,8)}function A(){return Dr.find_among_b(qr,2)}function E(){return n()&&Dr.find_among_b(Cr,32)&&c()}function j(){return Dr.find_among_b(Pr,8)&&c()}function T(){return n()&&Dr.find_among_b(Fr,4)&&c()}function Z(){return Dr.eq_s_b(3,"ken")&&c()}function B(){var r=Dr.limit-Dr.cursor;return!(T()||(Dr.cursor=Dr.limit-r,E()||(Dr.cursor=Dr.limit-r,j()||(Dr.cursor=Dr.limit-r,Z()))))}function D(){if(A()){var r=Dr.limit-Dr.cursor;if(S()||(Dr.cursor=Dr.limit-r,W()||(Dr.cursor=Dr.limit-r,C()||(Dr.cursor=Dr.limit-r,P()||(Dr.cursor=Dr.limit-r,F()||(Dr.cursor=Dr.limit-r))))),T())return!1}return!0}function G(){if(W()){Dr.bra=Dr.cursor,Dr.slice_del();var r=Dr.limit-Dr.cursor;return Dr.ket=Dr.cursor,x()||(Dr.cursor=Dr.limit-r,E()||(Dr.cursor=Dr.limit-r,j()||(Dr.cursor=Dr.limit-r,T()||(Dr.cursor=Dr.limit-r)))),nr=!1,!1}return!0}function H(){if(!L())return!0;var r=Dr.limit-Dr.cursor;return!E()&&(Dr.cursor=Dr.limit-r,!j())}function I(){var r,i=Dr.limit-Dr.cursor;return!(S()||(Dr.cursor=Dr.limit-i,F()||(Dr.cursor=Dr.limit-i,P()||(Dr.cursor=Dr.limit-i,C()))))||(Dr.bra=Dr.cursor,Dr.slice_del(),r=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,T()||(Dr.cursor=Dr.limit-r),!1)}function J(){var r,i=Dr.limit-Dr.cursor;if(Dr.ket=Dr.cursor,nr=!0,B()&&(Dr.cursor=Dr.limit-i,D()&&(Dr.cursor=Dr.limit-i,G()&&(Dr.cursor=Dr.limit-i,H()&&(Dr.cursor=Dr.limit-i,I()))))){if(Dr.cursor=Dr.limit-i,!x())return;Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,r=Dr.limit-Dr.cursor,S()||(Dr.cursor=Dr.limit-r,W()||(Dr.cursor=Dr.limit-r,C()||(Dr.cursor=Dr.limit-r,P()||(Dr.cursor=Dr.limit-r,F()||(Dr.cursor=Dr.limit-r))))),T()||(Dr.cursor=Dr.limit-r)}Dr.bra=Dr.cursor,Dr.slice_del()}function K(){var r,i,e,n;if(Dr.ket=Dr.cursor,h()){if(r=Dr.limit-Dr.cursor,p())return Dr.bra=Dr.cursor,Dr.slice_del(),i=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,W()?(Dr.bra=Dr.cursor,Dr.slice_del(),K()):(Dr.cursor=Dr.limit-i,a()&&(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K()))),!0;if(Dr.cursor=Dr.limit-r,w()){if(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,e=Dr.limit-Dr.cursor,d())Dr.bra=Dr.cursor,Dr.slice_del();else{if(Dr.cursor=Dr.limit-e,Dr.ket=Dr.cursor,!a()&&(Dr.cursor=Dr.limit-e,!m()&&(Dr.cursor=Dr.limit-e,!K())))return!0;Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K())}return!0}if(Dr.cursor=Dr.limit-r,g()){if(n=Dr.limit-Dr.cursor,d())Dr.bra=Dr.cursor,Dr.slice_del();else if(Dr.cursor=Dr.limit-n,m())Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K());else if(Dr.cursor=Dr.limit-n,!K())return!1;return!0}}return!1}function M(r){if(Dr.ket=Dr.cursor,!g()&&(Dr.cursor=Dr.limit-r,!k()))return!1;var i=Dr.limit-Dr.cursor;if(d())Dr.bra=Dr.cursor,Dr.slice_del();else if(Dr.cursor=Dr.limit-i,m())Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K());else if(Dr.cursor=Dr.limit-i,!K())return!1;return!0}function N(r){if(Dr.ket=Dr.cursor,!z()&&(Dr.cursor=Dr.limit-r,!b()))return!1;var i=Dr.limit-Dr.cursor;return!(!m()&&(Dr.cursor=Dr.limit-i,!d()))&&(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K()),!0)}function O(){var r,i=Dr.limit-Dr.cursor;return Dr.ket=Dr.cursor,!(!w()&&(Dr.cursor=Dr.limit-i,!v()))&&(Dr.bra=Dr.cursor,Dr.slice_del(),r=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,!(!W()||(Dr.bra=Dr.cursor,Dr.slice_del(),!K()))||(Dr.cursor=Dr.limit-r,Dr.ket=Dr.cursor,!(a()||(Dr.cursor=Dr.limit-r,m()||(Dr.cursor=Dr.limit-r,K())))||(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K()),!0)))}function Q(){var r,i,e=Dr.limit-Dr.cursor;if(Dr.ket=Dr.cursor,!p()&&(Dr.cursor=Dr.limit-e,!f()&&(Dr.cursor=Dr.limit-e,!_())))return!1;if(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,r=Dr.limit-Dr.cursor,a())Dr.bra=Dr.cursor,Dr.slice_del(),i=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,W()||(Dr.cursor=Dr.limit-i);else if(Dr.cursor=Dr.limit-r,!W())return!0;return Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,K(),!0}function R(){var r,i,e=Dr.limit-Dr.cursor;if(Dr.ket=Dr.cursor,W())return Dr.bra=Dr.cursor,Dr.slice_del(),void K();if(Dr.cursor=Dr.limit-e,Dr.ket=Dr.cursor,q())if(Dr.bra=Dr.cursor,Dr.slice_del(),r=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,d())Dr.bra=Dr.cursor,Dr.slice_del();else{if(Dr.cursor=Dr.limit-r,Dr.ket=Dr.cursor,!a()&&(Dr.cursor=Dr.limit-r,!m())){if(Dr.cursor=Dr.limit-r,Dr.ket=Dr.cursor,!W())return;if(Dr.bra=Dr.cursor,Dr.slice_del(),!K())return}Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K())}else if(Dr.cursor=Dr.limit-e,!M(e)&&(Dr.cursor=Dr.limit-e,!N(e))){if(Dr.cursor=Dr.limit-e,Dr.ket=Dr.cursor,y())return Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,i=Dr.limit-Dr.cursor,void(a()?(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K())):(Dr.cursor=Dr.limit-i,W()?(Dr.bra=Dr.cursor,Dr.slice_del(),K()):(Dr.cursor=Dr.limit-i,K())));if(Dr.cursor=Dr.limit-e,!O()){if(Dr.cursor=Dr.limit-e,d())return Dr.bra=Dr.cursor,void Dr.slice_del();Dr.cursor=Dr.limit-e,K()||(Dr.cursor=Dr.limit-e,Q()||(Dr.cursor=Dr.limit-e,Dr.ket=Dr.cursor,(a()||(Dr.cursor=Dr.limit-e,m()))&&(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K()))))}}}function U(){var r;if(Dr.ket=Dr.cursor,r=Dr.find_among_b(Sr,4))switch(Dr.bra=Dr.cursor,r){case 1:Dr.slice_from("p");break;case 2:Dr.slice_from("ç");break;case 3:Dr.slice_from("t");break;case 4:Dr.slice_from("k")}}function V(){for(;;){var r=Dr.limit-Dr.cursor;if(Dr.in_grouping_b(Wr,97,305)){Dr.cursor=Dr.limit-r;break}if(Dr.cursor=Dr.limit-r,Dr.cursor<=Dr.limit_backward)return!1;Dr.cursor--}return!0}function X(r,i,e){if(Dr.cursor=Dr.limit-r,V()){var n=Dr.limit-Dr.cursor;if(!Dr.eq_s_b(1,i)&&(Dr.cursor=Dr.limit-n,!Dr.eq_s_b(1,e)))return!0;Dr.cursor=Dr.limit-r;var t=Dr.cursor;return Dr.insert(Dr.cursor,Dr.cursor,e),Dr.cursor=t,!1}return!0}function Y(){var r=Dr.limit-Dr.cursor;(Dr.eq_s_b(1,"d")||(Dr.cursor=Dr.limit-r,Dr.eq_s_b(1,"g")))&&X(r,"a","ı")&&X(r,"e","i")&&X(r,"o","u")&&X(r,"ö","ü")}function $(){for(var r,i=Dr.cursor,e=2;;){for(r=Dr.cursor;!Dr.in_grouping(Wr,97,305);){if(Dr.cursor>=Dr.limit)return Dr.cursor=r,!(e>0)&&(Dr.cursor=i,!0);Dr.cursor++}e--}}function rr(r,i,e){for(;!Dr.eq_s(i,e);){if(Dr.cursor>=Dr.limit)return!0;Dr.cursor++}return(tr=i)!=Dr.limit||(Dr.cursor=r,!1)}function ir(){var r=Dr.cursor;return!rr(r,2,"ad")||(Dr.cursor=r,!rr(r,5,"soyad"))}function er(){var r=Dr.cursor;return!ir()&&(Dr.limit_backward=r,Dr.cursor=Dr.limit,Y(),Dr.cursor=Dr.limit,U(),!0)}var nr,tr,ur=[new i("m",-1,-1),new i("n",-1,-1),new i("miz",-1,-1),new i("niz",-1,-1),new i("muz",-1,-1),new i("nuz",-1,-1),new i("müz",-1,-1),new i("nüz",-1,-1),new i("mız",-1,-1),new i("nız",-1,-1)],or=[new i("leri",-1,-1),new i("ları",-1,-1)],sr=[new i("ni",-1,-1),new i("nu",-1,-1),new i("nü",-1,-1),new i("nı",-1,-1)],cr=[new i("in",-1,-1),new i("un",-1,-1),new i("ün",-1,-1),new i("ın",-1,-1)],lr=[new i("a",-1,-1),new i("e",-1,-1)],ar=[new i("na",-1,-1),new i("ne",-1,-1)],mr=[new i("da",-1,-1),new i("ta",-1,-1),new i("de",-1,-1),new i("te",-1,-1)],dr=[new i("nda",-1,-1),new i("nde",-1,-1)],fr=[new i("dan",-1,-1),new i("tan",-1,-1),new i("den",-1,-1),new i("ten",-1,-1)],br=[new i("ndan",-1,-1),new i("nden",-1,-1)],wr=[new i("la",-1,-1),new i("le",-1,-1)],_r=[new i("ca",-1,-1),new i("ce",-1,-1)],kr=[new i("im",-1,-1),new i("um",-1,-1),new i("üm",-1,-1),new i("ım",-1,-1)],pr=[new i("sin",-1,-1),new i("sun",-1,-1),new i("sün",-1,-1),new i("sın",-1,-1)],gr=[new i("iz",-1,-1),new i("uz",-1,-1),new i("üz",-1,-1),new i("ız",-1,-1)],yr=[new i("siniz",-1,-1),new i("sunuz",-1,-1),new i("sünüz",-1,-1),new i("sınız",-1,-1)],zr=[new i("lar",-1,-1),new i("ler",-1,-1)],vr=[new i("niz",-1,-1),new i("nuz",-1,-1),new i("nüz",-1,-1),new i("nız",-1,-1)],hr=[new i("dir",-1,-1),new i("tir",-1,-1),new i("dur",-1,-1),new i("tur",-1,-1),new i("dür",-1,-1),new i("tür",-1,-1),new i("dır",-1,-1),new i("tır",-1,-1)],qr=[new i("casına",-1,-1),new i("cesine",-1,-1)],Cr=[new i("di",-1,-1),new i("ti",-1,-1),new i("dik",-1,-1),new i("tik",-1,-1),new i("duk",-1,-1),new i("tuk",-1,-1),new i("dük",-1,-1),new i("tük",-1,-1),new i("dık",-1,-1),new i("tık",-1,-1),new i("dim",-1,-1),new i("tim",-1,-1),new i("dum",-1,-1),new i("tum",-1,-1),new i("düm",-1,-1),new i("tüm",-1,-1),new i("dım",-1,-1),new i("tım",-1,-1),new i("din",-1,-1),new i("tin",-1,-1),new i("dun",-1,-1),new i("tun",-1,-1),new i("dün",-1,-1),new i("tün",-1,-1),new i("dın",-1,-1),new i("tın",-1,-1),new i("du",-1,-1),new i("tu",-1,-1),new i("dü",-1,-1),new i("tü",-1,-1),new i("dı",-1,-1),new i("tı",-1,-1)],Pr=[new i("sa",-1,-1),new i("se",-1,-1),new i("sak",-1,-1),new i("sek",-1,-1),new i("sam",-1,-1),new i("sem",-1,-1),new i("san",-1,-1),new i("sen",-1,-1)],Fr=[new i("miş",-1,-1),new i("muş",-1,-1),new i("müş",-1,-1),new i("mış",-1,-1)],Sr=[new i("b",-1,1),new i("c",-1,2),new i("d",-1,3),new i("ğ",-1,4)],Wr=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,0,0,0,0,0,0,1],Lr=[1,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,1],xr=[1,64,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],Ar=[17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,130],Er=[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],jr=[17],Tr=[65],Zr=[65],Br=[["a",xr,97,305],["e",Ar,101,252],["ı",Er,97,305],["i",jr,101,105],["o",Tr,111,117],["ö",Zr,246,252],["u",Tr,111,117]],Dr=new e;this.setCurrent=function(r){Dr.setCurrent(r)},this.getCurrent=function(){return Dr.getCurrent()},this.stem=function(){return!!($()&&(Dr.limit_backward=Dr.cursor,Dr.cursor=Dr.limit,J(),Dr.cursor=Dr.limit,nr&&(R(),Dr.cursor=Dr.limit_backward,er())))}};return function(r){return"function"==typeof r.update?r.update(function(r){return n.setCurrent(r),n.stem(),n.getCurrent()}):(n.setCurrent(r),n.stem(),n.getCurrent())}}(),r.Pipeline.registerFunction(r.tr.stemmer,"stemmer-tr"),r.tr.stopWordFilter=r.generateStopWordFilter("acaba altmış altı ama ancak arada aslında ayrıca bana bazı belki ben benden beni benim beri beş bile bin bir biri birkaç birkez birçok birşey birşeyi biz bizden bize bizi bizim bu buna bunda bundan bunlar bunları bunların bunu bunun burada böyle böylece da daha dahi de defa değil diye diğer doksan dokuz dolayı dolayısıyla dört edecek eden ederek edilecek ediliyor edilmesi ediyor elli en etmesi etti ettiği ettiğini eğer gibi göre halen hangi hatta hem henüz hep hepsi her herhangi herkesin hiç hiçbir iki ile ilgili ise itibaren itibariyle için işte kadar karşın katrilyon kendi kendilerine kendini kendisi kendisine kendisini kez ki kim kimden kime kimi kimse kırk milyar milyon mu mü mı nasıl ne neden nedenle nerde nerede nereye niye niçin o olan olarak oldu olduklarını olduğu olduğunu olmadı olmadığı olmak olması olmayan olmaz olsa olsun olup olur olursa oluyor on ona ondan onlar onlardan onları onların onu onun otuz oysa pek rağmen sadece sanki sekiz seksen sen senden seni senin siz sizden sizi sizin tarafından trilyon tüm var vardı ve veya ya yani yapacak yapmak yaptı yaptıkları yaptığı yaptığını yapılan yapılması yapıyor yedi yerine yetmiş yine yirmi yoksa yüz zaten çok çünkü öyle üzere üç şey şeyden şeyi şeyler şu şuna şunda şundan şunları şunu şöyle".split(" ")),r.Pipeline.registerFunction(r.tr.stopWordFilter,"stopWordFilter-tr")}}); \ No newline at end of file diff --git a/docs/assets/javascripts/lunr/min/lunr.vi.min.js b/docs/assets/javascripts/lunr/min/lunr.vi.min.js new file mode 100644 index 00000000..22aed28c --- /dev/null +++ b/docs/assets/javascripts/lunr/min/lunr.vi.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.vi=function(){this.pipeline.reset(),this.pipeline.add(e.vi.stopWordFilter,e.vi.trimmer)},e.vi.wordCharacters="[A-Za-ẓ̀͐́͑̉̃̓ÂâÊêÔôĂ-ăĐ-đƠ-ơƯ-ư]",e.vi.trimmer=e.trimmerSupport.generateTrimmer(e.vi.wordCharacters),e.Pipeline.registerFunction(e.vi.trimmer,"trimmer-vi"),e.vi.stopWordFilter=e.generateStopWordFilter("là cái nhưng mà".split(" "))}}); \ No newline at end of file diff --git a/docs/assets/javascripts/lunr/min/lunr.zh.min.js b/docs/assets/javascripts/lunr/min/lunr.zh.min.js new file mode 100644 index 00000000..7727bbe2 --- /dev/null +++ b/docs/assets/javascripts/lunr/min/lunr.zh.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r(require("nodejieba")):r()(e.lunr)}(this,function(e){return function(r,t){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var i="2"==r.version[0];r.zh=function(){this.pipeline.reset(),this.pipeline.add(r.zh.trimmer,r.zh.stopWordFilter,r.zh.stemmer),i?this.tokenizer=r.zh.tokenizer:(r.tokenizer&&(r.tokenizer=r.zh.tokenizer),this.tokenizerFn&&(this.tokenizerFn=r.zh.tokenizer))},r.zh.tokenizer=function(n){if(!arguments.length||null==n||void 0==n)return[];if(Array.isArray(n))return n.map(function(e){return i?new r.Token(e.toLowerCase()):e.toLowerCase()});t&&e.load(t);var o=n.toString().trim().toLowerCase(),s=[];e.cut(o,!0).forEach(function(e){s=s.concat(e.split(" "))}),s=s.filter(function(e){return!!e});var u=0;return s.map(function(e,t){if(i){var n=o.indexOf(e,u),s={};return s.position=[n,e.length],s.index=t,u=n,new r.Token(e,s)}return e})},r.zh.wordCharacters="\\w一-龥",r.zh.trimmer=r.trimmerSupport.generateTrimmer(r.zh.wordCharacters),r.Pipeline.registerFunction(r.zh.trimmer,"trimmer-zh"),r.zh.stemmer=function(){return function(e){return e}}(),r.Pipeline.registerFunction(r.zh.stemmer,"stemmer-zh"),r.zh.stopWordFilter=r.generateStopWordFilter("的 一 不 在 人 有 是 为 以 于 上 他 而 后 之 来 及 了 因 下 可 到 由 这 与 也 此 但 并 个 其 已 无 小 我 们 起 最 再 今 去 好 只 又 或 很 亦 某 把 那 你 乃 它 吧 被 比 别 趁 当 从 到 得 打 凡 儿 尔 该 各 给 跟 和 何 还 即 几 既 看 据 距 靠 啦 了 另 么 每 们 嘛 拿 哪 那 您 凭 且 却 让 仍 啥 如 若 使 谁 虽 随 同 所 她 哇 嗡 往 哪 些 向 沿 哟 用 于 咱 则 怎 曾 至 致 着 诸 自".split(" ")),r.Pipeline.registerFunction(r.zh.stopWordFilter,"stopWordFilter-zh")}}); \ No newline at end of file diff --git a/docs/assets/javascripts/lunr/tinyseg.js b/docs/assets/javascripts/lunr/tinyseg.js new file mode 100644 index 00000000..167fa6dd --- /dev/null +++ b/docs/assets/javascripts/lunr/tinyseg.js @@ -0,0 +1,206 @@ +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +;(function (root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function () { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + + return function(lunr) { + // TinySegmenter 0.1 -- Super compact Japanese tokenizer in Javascript + // (c) 2008 Taku Kudo + // TinySegmenter is freely distributable under the terms of a new BSD licence. + // For details, see http://chasen.org/~taku/software/TinySegmenter/LICENCE.txt + + function TinySegmenter() { + var patterns = { + "[一二三四五六七八九十百千万億兆]":"M", + "[一-龠々〆ヵヶ]":"H", + "[ぁ-ん]":"I", + "[ァ-ヴーア-ン゙ー]":"K", + "[a-zA-Za-zA-Z]":"A", + "[0-90-9]":"N" + } + this.chartype_ = []; + for (var i in patterns) { + var regexp = new RegExp(i); + this.chartype_.push([regexp, patterns[i]]); + } + + this.BIAS__ = -332 + this.BC1__ = {"HH":6,"II":2461,"KH":406,"OH":-1378}; + this.BC2__ = {"AA":-3267,"AI":2744,"AN":-878,"HH":-4070,"HM":-1711,"HN":4012,"HO":3761,"IA":1327,"IH":-1184,"II":-1332,"IK":1721,"IO":5492,"KI":3831,"KK":-8741,"MH":-3132,"MK":3334,"OO":-2920}; + this.BC3__ = {"HH":996,"HI":626,"HK":-721,"HN":-1307,"HO":-836,"IH":-301,"KK":2762,"MK":1079,"MM":4034,"OA":-1652,"OH":266}; + this.BP1__ = {"BB":295,"OB":304,"OO":-125,"UB":352}; + this.BP2__ = {"BO":60,"OO":-1762}; + this.BQ1__ = {"BHH":1150,"BHM":1521,"BII":-1158,"BIM":886,"BMH":1208,"BNH":449,"BOH":-91,"BOO":-2597,"OHI":451,"OIH":-296,"OKA":1851,"OKH":-1020,"OKK":904,"OOO":2965}; + this.BQ2__ = {"BHH":118,"BHI":-1159,"BHM":466,"BIH":-919,"BKK":-1720,"BKO":864,"OHH":-1139,"OHM":-181,"OIH":153,"UHI":-1146}; + this.BQ3__ = {"BHH":-792,"BHI":2664,"BII":-299,"BKI":419,"BMH":937,"BMM":8335,"BNN":998,"BOH":775,"OHH":2174,"OHM":439,"OII":280,"OKH":1798,"OKI":-793,"OKO":-2242,"OMH":-2402,"OOO":11699}; + this.BQ4__ = {"BHH":-3895,"BIH":3761,"BII":-4654,"BIK":1348,"BKK":-1806,"BMI":-3385,"BOO":-12396,"OAH":926,"OHH":266,"OHK":-2036,"ONN":-973}; + this.BW1__ = {",と":660,",同":727,"B1あ":1404,"B1同":542,"、と":660,"、同":727,"」と":1682,"あっ":1505,"いう":1743,"いっ":-2055,"いる":672,"うし":-4817,"うん":665,"から":3472,"がら":600,"こう":-790,"こと":2083,"こん":-1262,"さら":-4143,"さん":4573,"した":2641,"して":1104,"すで":-3399,"そこ":1977,"それ":-871,"たち":1122,"ため":601,"った":3463,"つい":-802,"てい":805,"てき":1249,"でき":1127,"です":3445,"では":844,"とい":-4915,"とみ":1922,"どこ":3887,"ない":5713,"なっ":3015,"など":7379,"なん":-1113,"にし":2468,"には":1498,"にも":1671,"に対":-912,"の一":-501,"の中":741,"ませ":2448,"まで":1711,"まま":2600,"まる":-2155,"やむ":-1947,"よっ":-2565,"れた":2369,"れで":-913,"をし":1860,"を見":731,"亡く":-1886,"京都":2558,"取り":-2784,"大き":-2604,"大阪":1497,"平方":-2314,"引き":-1336,"日本":-195,"本当":-2423,"毎日":-2113,"目指":-724,"B1あ":1404,"B1同":542,"」と":1682}; + this.BW2__ = {"..":-11822,"11":-669,"――":-5730,"−−":-13175,"いう":-1609,"うか":2490,"かし":-1350,"かも":-602,"から":-7194,"かれ":4612,"がい":853,"がら":-3198,"きた":1941,"くな":-1597,"こと":-8392,"この":-4193,"させ":4533,"され":13168,"さん":-3977,"しい":-1819,"しか":-545,"した":5078,"して":972,"しな":939,"その":-3744,"たい":-1253,"たた":-662,"ただ":-3857,"たち":-786,"たと":1224,"たは":-939,"った":4589,"って":1647,"っと":-2094,"てい":6144,"てき":3640,"てく":2551,"ては":-3110,"ても":-3065,"でい":2666,"でき":-1528,"でし":-3828,"です":-4761,"でも":-4203,"とい":1890,"とこ":-1746,"とと":-2279,"との":720,"とみ":5168,"とも":-3941,"ない":-2488,"なが":-1313,"など":-6509,"なの":2614,"なん":3099,"にお":-1615,"にし":2748,"にな":2454,"によ":-7236,"に対":-14943,"に従":-4688,"に関":-11388,"のか":2093,"ので":-7059,"のに":-6041,"のの":-6125,"はい":1073,"はが":-1033,"はず":-2532,"ばれ":1813,"まし":-1316,"まで":-6621,"まれ":5409,"めて":-3153,"もい":2230,"もの":-10713,"らか":-944,"らし":-1611,"らに":-1897,"りし":651,"りま":1620,"れた":4270,"れて":849,"れば":4114,"ろう":6067,"われ":7901,"を通":-11877,"んだ":728,"んな":-4115,"一人":602,"一方":-1375,"一日":970,"一部":-1051,"上が":-4479,"会社":-1116,"出て":2163,"分の":-7758,"同党":970,"同日":-913,"大阪":-2471,"委員":-1250,"少な":-1050,"年度":-8669,"年間":-1626,"府県":-2363,"手権":-1982,"新聞":-4066,"日新":-722,"日本":-7068,"日米":3372,"曜日":-601,"朝鮮":-2355,"本人":-2697,"東京":-1543,"然と":-1384,"社会":-1276,"立て":-990,"第に":-1612,"米国":-4268,"11":-669}; + this.BW3__ = {"あた":-2194,"あり":719,"ある":3846,"い.":-1185,"い。":-1185,"いい":5308,"いえ":2079,"いく":3029,"いた":2056,"いっ":1883,"いる":5600,"いわ":1527,"うち":1117,"うと":4798,"えと":1454,"か.":2857,"か。":2857,"かけ":-743,"かっ":-4098,"かに":-669,"から":6520,"かり":-2670,"が,":1816,"が、":1816,"がき":-4855,"がけ":-1127,"がっ":-913,"がら":-4977,"がり":-2064,"きた":1645,"けど":1374,"こと":7397,"この":1542,"ころ":-2757,"さい":-714,"さを":976,"し,":1557,"し、":1557,"しい":-3714,"した":3562,"して":1449,"しな":2608,"しま":1200,"す.":-1310,"す。":-1310,"する":6521,"ず,":3426,"ず、":3426,"ずに":841,"そう":428,"た.":8875,"た。":8875,"たい":-594,"たの":812,"たり":-1183,"たる":-853,"だ.":4098,"だ。":4098,"だっ":1004,"った":-4748,"って":300,"てい":6240,"てお":855,"ても":302,"です":1437,"でに":-1482,"では":2295,"とう":-1387,"とし":2266,"との":541,"とも":-3543,"どう":4664,"ない":1796,"なく":-903,"など":2135,"に,":-1021,"に、":-1021,"にし":1771,"にな":1906,"には":2644,"の,":-724,"の、":-724,"の子":-1000,"は,":1337,"は、":1337,"べき":2181,"まし":1113,"ます":6943,"まっ":-1549,"まで":6154,"まれ":-793,"らし":1479,"られ":6820,"るる":3818,"れ,":854,"れ、":854,"れた":1850,"れて":1375,"れば":-3246,"れる":1091,"われ":-605,"んだ":606,"んで":798,"カ月":990,"会議":860,"入り":1232,"大会":2217,"始め":1681,"市":965,"新聞":-5055,"日,":974,"日、":974,"社会":2024,"カ月":990}; + this.TC1__ = {"AAA":1093,"HHH":1029,"HHM":580,"HII":998,"HOH":-390,"HOM":-331,"IHI":1169,"IOH":-142,"IOI":-1015,"IOM":467,"MMH":187,"OOI":-1832}; + this.TC2__ = {"HHO":2088,"HII":-1023,"HMM":-1154,"IHI":-1965,"KKH":703,"OII":-2649}; + this.TC3__ = {"AAA":-294,"HHH":346,"HHI":-341,"HII":-1088,"HIK":731,"HOH":-1486,"IHH":128,"IHI":-3041,"IHO":-1935,"IIH":-825,"IIM":-1035,"IOI":-542,"KHH":-1216,"KKA":491,"KKH":-1217,"KOK":-1009,"MHH":-2694,"MHM":-457,"MHO":123,"MMH":-471,"NNH":-1689,"NNO":662,"OHO":-3393}; + this.TC4__ = {"HHH":-203,"HHI":1344,"HHK":365,"HHM":-122,"HHN":182,"HHO":669,"HIH":804,"HII":679,"HOH":446,"IHH":695,"IHO":-2324,"IIH":321,"III":1497,"IIO":656,"IOO":54,"KAK":4845,"KKA":3386,"KKK":3065,"MHH":-405,"MHI":201,"MMH":-241,"MMM":661,"MOM":841}; + this.TQ1__ = {"BHHH":-227,"BHHI":316,"BHIH":-132,"BIHH":60,"BIII":1595,"BNHH":-744,"BOHH":225,"BOOO":-908,"OAKK":482,"OHHH":281,"OHIH":249,"OIHI":200,"OIIH":-68}; + this.TQ2__ = {"BIHH":-1401,"BIII":-1033,"BKAK":-543,"BOOO":-5591}; + this.TQ3__ = {"BHHH":478,"BHHM":-1073,"BHIH":222,"BHII":-504,"BIIH":-116,"BIII":-105,"BMHI":-863,"BMHM":-464,"BOMH":620,"OHHH":346,"OHHI":1729,"OHII":997,"OHMH":481,"OIHH":623,"OIIH":1344,"OKAK":2792,"OKHH":587,"OKKA":679,"OOHH":110,"OOII":-685}; + this.TQ4__ = {"BHHH":-721,"BHHM":-3604,"BHII":-966,"BIIH":-607,"BIII":-2181,"OAAA":-2763,"OAKK":180,"OHHH":-294,"OHHI":2446,"OHHO":480,"OHIH":-1573,"OIHH":1935,"OIHI":-493,"OIIH":626,"OIII":-4007,"OKAK":-8156}; + this.TW1__ = {"につい":-4681,"東京都":2026}; + this.TW2__ = {"ある程":-2049,"いった":-1256,"ころが":-2434,"しょう":3873,"その後":-4430,"だって":-1049,"ていた":1833,"として":-4657,"ともに":-4517,"もので":1882,"一気に":-792,"初めて":-1512,"同時に":-8097,"大きな":-1255,"対して":-2721,"社会党":-3216}; + this.TW3__ = {"いただ":-1734,"してい":1314,"として":-4314,"につい":-5483,"にとっ":-5989,"に当た":-6247,"ので,":-727,"ので、":-727,"のもの":-600,"れから":-3752,"十二月":-2287}; + this.TW4__ = {"いう.":8576,"いう。":8576,"からな":-2348,"してい":2958,"たが,":1516,"たが、":1516,"ている":1538,"という":1349,"ました":5543,"ません":1097,"ようと":-4258,"よると":5865}; + this.UC1__ = {"A":484,"K":93,"M":645,"O":-505}; + this.UC2__ = {"A":819,"H":1059,"I":409,"M":3987,"N":5775,"O":646}; + this.UC3__ = {"A":-1370,"I":2311}; + this.UC4__ = {"A":-2643,"H":1809,"I":-1032,"K":-3450,"M":3565,"N":3876,"O":6646}; + this.UC5__ = {"H":313,"I":-1238,"K":-799,"M":539,"O":-831}; + this.UC6__ = {"H":-506,"I":-253,"K":87,"M":247,"O":-387}; + this.UP1__ = {"O":-214}; + this.UP2__ = {"B":69,"O":935}; + this.UP3__ = {"B":189}; + this.UQ1__ = {"BH":21,"BI":-12,"BK":-99,"BN":142,"BO":-56,"OH":-95,"OI":477,"OK":410,"OO":-2422}; + this.UQ2__ = {"BH":216,"BI":113,"OK":1759}; + this.UQ3__ = {"BA":-479,"BH":42,"BI":1913,"BK":-7198,"BM":3160,"BN":6427,"BO":14761,"OI":-827,"ON":-3212}; + this.UW1__ = {",":156,"、":156,"「":-463,"あ":-941,"う":-127,"が":-553,"き":121,"こ":505,"で":-201,"と":-547,"ど":-123,"に":-789,"の":-185,"は":-847,"も":-466,"や":-470,"よ":182,"ら":-292,"り":208,"れ":169,"を":-446,"ん":-137,"・":-135,"主":-402,"京":-268,"区":-912,"午":871,"国":-460,"大":561,"委":729,"市":-411,"日":-141,"理":361,"生":-408,"県":-386,"都":-718,"「":-463,"・":-135}; + this.UW2__ = {",":-829,"、":-829,"〇":892,"「":-645,"」":3145,"あ":-538,"い":505,"う":134,"お":-502,"か":1454,"が":-856,"く":-412,"こ":1141,"さ":878,"ざ":540,"し":1529,"す":-675,"せ":300,"そ":-1011,"た":188,"だ":1837,"つ":-949,"て":-291,"で":-268,"と":-981,"ど":1273,"な":1063,"に":-1764,"の":130,"は":-409,"ひ":-1273,"べ":1261,"ま":600,"も":-1263,"や":-402,"よ":1639,"り":-579,"る":-694,"れ":571,"を":-2516,"ん":2095,"ア":-587,"カ":306,"キ":568,"ッ":831,"三":-758,"不":-2150,"世":-302,"中":-968,"主":-861,"事":492,"人":-123,"会":978,"保":362,"入":548,"初":-3025,"副":-1566,"北":-3414,"区":-422,"大":-1769,"天":-865,"太":-483,"子":-1519,"学":760,"実":1023,"小":-2009,"市":-813,"年":-1060,"強":1067,"手":-1519,"揺":-1033,"政":1522,"文":-1355,"新":-1682,"日":-1815,"明":-1462,"最":-630,"朝":-1843,"本":-1650,"東":-931,"果":-665,"次":-2378,"民":-180,"気":-1740,"理":752,"発":529,"目":-1584,"相":-242,"県":-1165,"立":-763,"第":810,"米":509,"自":-1353,"行":838,"西":-744,"見":-3874,"調":1010,"議":1198,"込":3041,"開":1758,"間":-1257,"「":-645,"」":3145,"ッ":831,"ア":-587,"カ":306,"キ":568}; + this.UW3__ = {",":4889,"1":-800,"−":-1723,"、":4889,"々":-2311,"〇":5827,"」":2670,"〓":-3573,"あ":-2696,"い":1006,"う":2342,"え":1983,"お":-4864,"か":-1163,"が":3271,"く":1004,"け":388,"げ":401,"こ":-3552,"ご":-3116,"さ":-1058,"し":-395,"す":584,"せ":3685,"そ":-5228,"た":842,"ち":-521,"っ":-1444,"つ":-1081,"て":6167,"で":2318,"と":1691,"ど":-899,"な":-2788,"に":2745,"の":4056,"は":4555,"ひ":-2171,"ふ":-1798,"へ":1199,"ほ":-5516,"ま":-4384,"み":-120,"め":1205,"も":2323,"や":-788,"よ":-202,"ら":727,"り":649,"る":5905,"れ":2773,"わ":-1207,"を":6620,"ん":-518,"ア":551,"グ":1319,"ス":874,"ッ":-1350,"ト":521,"ム":1109,"ル":1591,"ロ":2201,"ン":278,"・":-3794,"一":-1619,"下":-1759,"世":-2087,"両":3815,"中":653,"主":-758,"予":-1193,"二":974,"人":2742,"今":792,"他":1889,"以":-1368,"低":811,"何":4265,"作":-361,"保":-2439,"元":4858,"党":3593,"全":1574,"公":-3030,"六":755,"共":-1880,"円":5807,"再":3095,"分":457,"初":2475,"別":1129,"前":2286,"副":4437,"力":365,"動":-949,"務":-1872,"化":1327,"北":-1038,"区":4646,"千":-2309,"午":-783,"協":-1006,"口":483,"右":1233,"各":3588,"合":-241,"同":3906,"和":-837,"員":4513,"国":642,"型":1389,"場":1219,"外":-241,"妻":2016,"学":-1356,"安":-423,"実":-1008,"家":1078,"小":-513,"少":-3102,"州":1155,"市":3197,"平":-1804,"年":2416,"広":-1030,"府":1605,"度":1452,"建":-2352,"当":-3885,"得":1905,"思":-1291,"性":1822,"戸":-488,"指":-3973,"政":-2013,"教":-1479,"数":3222,"文":-1489,"新":1764,"日":2099,"旧":5792,"昨":-661,"時":-1248,"曜":-951,"最":-937,"月":4125,"期":360,"李":3094,"村":364,"東":-805,"核":5156,"森":2438,"業":484,"氏":2613,"民":-1694,"決":-1073,"法":1868,"海":-495,"無":979,"物":461,"特":-3850,"生":-273,"用":914,"町":1215,"的":7313,"直":-1835,"省":792,"県":6293,"知":-1528,"私":4231,"税":401,"立":-960,"第":1201,"米":7767,"系":3066,"約":3663,"級":1384,"統":-4229,"総":1163,"線":1255,"者":6457,"能":725,"自":-2869,"英":785,"見":1044,"調":-562,"財":-733,"費":1777,"車":1835,"軍":1375,"込":-1504,"通":-1136,"選":-681,"郎":1026,"郡":4404,"部":1200,"金":2163,"長":421,"開":-1432,"間":1302,"関":-1282,"雨":2009,"電":-1045,"非":2066,"駅":1620,"1":-800,"」":2670,"・":-3794,"ッ":-1350,"ア":551,"グ":1319,"ス":874,"ト":521,"ム":1109,"ル":1591,"ロ":2201,"ン":278}; + this.UW4__ = {",":3930,".":3508,"―":-4841,"、":3930,"。":3508,"〇":4999,"「":1895,"」":3798,"〓":-5156,"あ":4752,"い":-3435,"う":-640,"え":-2514,"お":2405,"か":530,"が":6006,"き":-4482,"ぎ":-3821,"く":-3788,"け":-4376,"げ":-4734,"こ":2255,"ご":1979,"さ":2864,"し":-843,"じ":-2506,"す":-731,"ず":1251,"せ":181,"そ":4091,"た":5034,"だ":5408,"ち":-3654,"っ":-5882,"つ":-1659,"て":3994,"で":7410,"と":4547,"な":5433,"に":6499,"ぬ":1853,"ね":1413,"の":7396,"は":8578,"ば":1940,"ひ":4249,"び":-4134,"ふ":1345,"へ":6665,"べ":-744,"ほ":1464,"ま":1051,"み":-2082,"む":-882,"め":-5046,"も":4169,"ゃ":-2666,"や":2795,"ょ":-1544,"よ":3351,"ら":-2922,"り":-9726,"る":-14896,"れ":-2613,"ろ":-4570,"わ":-1783,"を":13150,"ん":-2352,"カ":2145,"コ":1789,"セ":1287,"ッ":-724,"ト":-403,"メ":-1635,"ラ":-881,"リ":-541,"ル":-856,"ン":-3637,"・":-4371,"ー":-11870,"一":-2069,"中":2210,"予":782,"事":-190,"井":-1768,"人":1036,"以":544,"会":950,"体":-1286,"作":530,"側":4292,"先":601,"党":-2006,"共":-1212,"内":584,"円":788,"初":1347,"前":1623,"副":3879,"力":-302,"動":-740,"務":-2715,"化":776,"区":4517,"協":1013,"参":1555,"合":-1834,"和":-681,"員":-910,"器":-851,"回":1500,"国":-619,"園":-1200,"地":866,"場":-1410,"塁":-2094,"士":-1413,"多":1067,"大":571,"子":-4802,"学":-1397,"定":-1057,"寺":-809,"小":1910,"屋":-1328,"山":-1500,"島":-2056,"川":-2667,"市":2771,"年":374,"庁":-4556,"後":456,"性":553,"感":916,"所":-1566,"支":856,"改":787,"政":2182,"教":704,"文":522,"方":-856,"日":1798,"時":1829,"最":845,"月":-9066,"木":-485,"来":-442,"校":-360,"業":-1043,"氏":5388,"民":-2716,"気":-910,"沢":-939,"済":-543,"物":-735,"率":672,"球":-1267,"生":-1286,"産":-1101,"田":-2900,"町":1826,"的":2586,"目":922,"省":-3485,"県":2997,"空":-867,"立":-2112,"第":788,"米":2937,"系":786,"約":2171,"経":1146,"統":-1169,"総":940,"線":-994,"署":749,"者":2145,"能":-730,"般":-852,"行":-792,"規":792,"警":-1184,"議":-244,"谷":-1000,"賞":730,"車":-1481,"軍":1158,"輪":-1433,"込":-3370,"近":929,"道":-1291,"選":2596,"郎":-4866,"都":1192,"野":-1100,"銀":-2213,"長":357,"間":-2344,"院":-2297,"際":-2604,"電":-878,"領":-1659,"題":-792,"館":-1984,"首":1749,"高":2120,"「":1895,"」":3798,"・":-4371,"ッ":-724,"ー":-11870,"カ":2145,"コ":1789,"セ":1287,"ト":-403,"メ":-1635,"ラ":-881,"リ":-541,"ル":-856,"ン":-3637}; + this.UW5__ = {",":465,".":-299,"1":-514,"E2":-32768,"]":-2762,"、":465,"。":-299,"「":363,"あ":1655,"い":331,"う":-503,"え":1199,"お":527,"か":647,"が":-421,"き":1624,"ぎ":1971,"く":312,"げ":-983,"さ":-1537,"し":-1371,"す":-852,"だ":-1186,"ち":1093,"っ":52,"つ":921,"て":-18,"で":-850,"と":-127,"ど":1682,"な":-787,"に":-1224,"の":-635,"は":-578,"べ":1001,"み":502,"め":865,"ゃ":3350,"ょ":854,"り":-208,"る":429,"れ":504,"わ":419,"を":-1264,"ん":327,"イ":241,"ル":451,"ン":-343,"中":-871,"京":722,"会":-1153,"党":-654,"務":3519,"区":-901,"告":848,"員":2104,"大":-1296,"学":-548,"定":1785,"嵐":-1304,"市":-2991,"席":921,"年":1763,"思":872,"所":-814,"挙":1618,"新":-1682,"日":218,"月":-4353,"査":932,"格":1356,"機":-1508,"氏":-1347,"田":240,"町":-3912,"的":-3149,"相":1319,"省":-1052,"県":-4003,"研":-997,"社":-278,"空":-813,"統":1955,"者":-2233,"表":663,"語":-1073,"議":1219,"選":-1018,"郎":-368,"長":786,"間":1191,"題":2368,"館":-689,"1":-514,"E2":-32768,"「":363,"イ":241,"ル":451,"ン":-343}; + this.UW6__ = {",":227,".":808,"1":-270,"E1":306,"、":227,"。":808,"あ":-307,"う":189,"か":241,"が":-73,"く":-121,"こ":-200,"じ":1782,"す":383,"た":-428,"っ":573,"て":-1014,"で":101,"と":-105,"な":-253,"に":-149,"の":-417,"は":-236,"も":-206,"り":187,"る":-135,"を":195,"ル":-673,"ン":-496,"一":-277,"中":201,"件":-800,"会":624,"前":302,"区":1792,"員":-1212,"委":798,"学":-960,"市":887,"広":-695,"後":535,"業":-697,"相":753,"社":-507,"福":974,"空":-822,"者":1811,"連":463,"郎":1082,"1":-270,"E1":306,"ル":-673,"ン":-496}; + + return this; + } + TinySegmenter.prototype.ctype_ = function(str) { + for (var i in this.chartype_) { + if (str.match(this.chartype_[i][0])) { + return this.chartype_[i][1]; + } + } + return "O"; + } + + TinySegmenter.prototype.ts_ = function(v) { + if (v) { return v; } + return 0; + } + + TinySegmenter.prototype.segment = function(input) { + if (input == null || input == undefined || input == "") { + return []; + } + var result = []; + var seg = ["B3","B2","B1"]; + var ctype = ["O","O","O"]; + var o = input.split(""); + for (i = 0; i < o.length; ++i) { + seg.push(o[i]); + ctype.push(this.ctype_(o[i])) + } + seg.push("E1"); + seg.push("E2"); + seg.push("E3"); + ctype.push("O"); + ctype.push("O"); + ctype.push("O"); + var word = seg[3]; + var p1 = "U"; + var p2 = "U"; + var p3 = "U"; + for (var i = 4; i < seg.length - 3; ++i) { + var score = this.BIAS__; + var w1 = seg[i-3]; + var w2 = seg[i-2]; + var w3 = seg[i-1]; + var w4 = seg[i]; + var w5 = seg[i+1]; + var w6 = seg[i+2]; + var c1 = ctype[i-3]; + var c2 = ctype[i-2]; + var c3 = ctype[i-1]; + var c4 = ctype[i]; + var c5 = ctype[i+1]; + var c6 = ctype[i+2]; + score += this.ts_(this.UP1__[p1]); + score += this.ts_(this.UP2__[p2]); + score += this.ts_(this.UP3__[p3]); + score += this.ts_(this.BP1__[p1 + p2]); + score += this.ts_(this.BP2__[p2 + p3]); + score += this.ts_(this.UW1__[w1]); + score += this.ts_(this.UW2__[w2]); + score += this.ts_(this.UW3__[w3]); + score += this.ts_(this.UW4__[w4]); + score += this.ts_(this.UW5__[w5]); + score += this.ts_(this.UW6__[w6]); + score += this.ts_(this.BW1__[w2 + w3]); + score += this.ts_(this.BW2__[w3 + w4]); + score += this.ts_(this.BW3__[w4 + w5]); + score += this.ts_(this.TW1__[w1 + w2 + w3]); + score += this.ts_(this.TW2__[w2 + w3 + w4]); + score += this.ts_(this.TW3__[w3 + w4 + w5]); + score += this.ts_(this.TW4__[w4 + w5 + w6]); + score += this.ts_(this.UC1__[c1]); + score += this.ts_(this.UC2__[c2]); + score += this.ts_(this.UC3__[c3]); + score += this.ts_(this.UC4__[c4]); + score += this.ts_(this.UC5__[c5]); + score += this.ts_(this.UC6__[c6]); + score += this.ts_(this.BC1__[c2 + c3]); + score += this.ts_(this.BC2__[c3 + c4]); + score += this.ts_(this.BC3__[c4 + c5]); + score += this.ts_(this.TC1__[c1 + c2 + c3]); + score += this.ts_(this.TC2__[c2 + c3 + c4]); + score += this.ts_(this.TC3__[c3 + c4 + c5]); + score += this.ts_(this.TC4__[c4 + c5 + c6]); + // score += this.ts_(this.TC5__[c4 + c5 + c6]); + score += this.ts_(this.UQ1__[p1 + c1]); + score += this.ts_(this.UQ2__[p2 + c2]); + score += this.ts_(this.UQ3__[p3 + c3]); + score += this.ts_(this.BQ1__[p2 + c2 + c3]); + score += this.ts_(this.BQ2__[p2 + c3 + c4]); + score += this.ts_(this.BQ3__[p3 + c2 + c3]); + score += this.ts_(this.BQ4__[p3 + c3 + c4]); + score += this.ts_(this.TQ1__[p2 + c1 + c2 + c3]); + score += this.ts_(this.TQ2__[p2 + c2 + c3 + c4]); + score += this.ts_(this.TQ3__[p3 + c1 + c2 + c3]); + score += this.ts_(this.TQ4__[p3 + c2 + c3 + c4]); + var p = "O"; + if (score > 0) { + result.push(word); + word = ""; + p = "B"; + } + p1 = p2; + p2 = p3; + p3 = p; + word += seg[i]; + } + result.push(word); + + return result; + } + + lunr.TinySegmenter = TinySegmenter; + }; + +})); \ No newline at end of file diff --git a/docs/assets/javascripts/lunr/tinyseg.min.js b/docs/assets/javascripts/lunr/tinyseg.min.js new file mode 100644 index 00000000..02c61e9c --- /dev/null +++ b/docs/assets/javascripts/lunr/tinyseg.min.js @@ -0,0 +1 @@ +!function(_,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(_.lunr)}(this,(function(){return function(_){function t(){var _={"[一二三四五六七八九十百千万億兆]":"M","[一-龠々〆ヵヶ]":"H","[ぁ-ん]":"I","[ァ-ヴーア-ン゙ー]":"K","[a-zA-Za-zA-Z]":"A","[0-90-9]":"N"};for(var t in this.chartype_=[],_){var H=new RegExp(t);this.chartype_.push([H,_[t]])}return this.BIAS__=-332,this.BC1__={HH:6,II:2461,KH:406,OH:-1378},this.BC2__={AA:-3267,AI:2744,AN:-878,HH:-4070,HM:-1711,HN:4012,HO:3761,IA:1327,IH:-1184,II:-1332,IK:1721,IO:5492,KI:3831,KK:-8741,MH:-3132,MK:3334,OO:-2920},this.BC3__={HH:996,HI:626,HK:-721,HN:-1307,HO:-836,IH:-301,KK:2762,MK:1079,MM:4034,OA:-1652,OH:266},this.BP1__={BB:295,OB:304,OO:-125,UB:352},this.BP2__={BO:60,OO:-1762},this.BQ1__={BHH:1150,BHM:1521,BII:-1158,BIM:886,BMH:1208,BNH:449,BOH:-91,BOO:-2597,OHI:451,OIH:-296,OKA:1851,OKH:-1020,OKK:904,OOO:2965},this.BQ2__={BHH:118,BHI:-1159,BHM:466,BIH:-919,BKK:-1720,BKO:864,OHH:-1139,OHM:-181,OIH:153,UHI:-1146},this.BQ3__={BHH:-792,BHI:2664,BII:-299,BKI:419,BMH:937,BMM:8335,BNN:998,BOH:775,OHH:2174,OHM:439,OII:280,OKH:1798,OKI:-793,OKO:-2242,OMH:-2402,OOO:11699},this.BQ4__={BHH:-3895,BIH:3761,BII:-4654,BIK:1348,BKK:-1806,BMI:-3385,BOO:-12396,OAH:926,OHH:266,OHK:-2036,ONN:-973},this.BW1__={",と":660,",同":727,B1あ:1404,B1同:542,"、と":660,"、同":727,"」と":1682,あっ:1505,いう:1743,いっ:-2055,いる:672,うし:-4817,うん:665,から:3472,がら:600,こう:-790,こと:2083,こん:-1262,さら:-4143,さん:4573,した:2641,して:1104,すで:-3399,そこ:1977,それ:-871,たち:1122,ため:601,った:3463,つい:-802,てい:805,てき:1249,でき:1127,です:3445,では:844,とい:-4915,とみ:1922,どこ:3887,ない:5713,なっ:3015,など:7379,なん:-1113,にし:2468,には:1498,にも:1671,に対:-912,の一:-501,の中:741,ませ:2448,まで:1711,まま:2600,まる:-2155,やむ:-1947,よっ:-2565,れた:2369,れで:-913,をし:1860,を見:731,亡く:-1886,京都:2558,取り:-2784,大き:-2604,大阪:1497,平方:-2314,引き:-1336,日本:-195,本当:-2423,毎日:-2113,目指:-724,B1あ:1404,B1同:542,"」と":1682},this.BW2__={"..":-11822,11:-669,"――":-5730,"−−":-13175,いう:-1609,うか:2490,かし:-1350,かも:-602,から:-7194,かれ:4612,がい:853,がら:-3198,きた:1941,くな:-1597,こと:-8392,この:-4193,させ:4533,され:13168,さん:-3977,しい:-1819,しか:-545,した:5078,して:972,しな:939,その:-3744,たい:-1253,たた:-662,ただ:-3857,たち:-786,たと:1224,たは:-939,った:4589,って:1647,っと:-2094,てい:6144,てき:3640,てく:2551,ては:-3110,ても:-3065,でい:2666,でき:-1528,でし:-3828,です:-4761,でも:-4203,とい:1890,とこ:-1746,とと:-2279,との:720,とみ:5168,とも:-3941,ない:-2488,なが:-1313,など:-6509,なの:2614,なん:3099,にお:-1615,にし:2748,にな:2454,によ:-7236,に対:-14943,に従:-4688,に関:-11388,のか:2093,ので:-7059,のに:-6041,のの:-6125,はい:1073,はが:-1033,はず:-2532,ばれ:1813,まし:-1316,まで:-6621,まれ:5409,めて:-3153,もい:2230,もの:-10713,らか:-944,らし:-1611,らに:-1897,りし:651,りま:1620,れた:4270,れて:849,れば:4114,ろう:6067,われ:7901,を通:-11877,んだ:728,んな:-4115,一人:602,一方:-1375,一日:970,一部:-1051,上が:-4479,会社:-1116,出て:2163,分の:-7758,同党:970,同日:-913,大阪:-2471,委員:-1250,少な:-1050,年度:-8669,年間:-1626,府県:-2363,手権:-1982,新聞:-4066,日新:-722,日本:-7068,日米:3372,曜日:-601,朝鮮:-2355,本人:-2697,東京:-1543,然と:-1384,社会:-1276,立て:-990,第に:-1612,米国:-4268,"11":-669},this.BW3__={あた:-2194,あり:719,ある:3846,"い.":-1185,"い。":-1185,いい:5308,いえ:2079,いく:3029,いた:2056,いっ:1883,いる:5600,いわ:1527,うち:1117,うと:4798,えと:1454,"か.":2857,"か。":2857,かけ:-743,かっ:-4098,かに:-669,から:6520,かり:-2670,"が,":1816,"が、":1816,がき:-4855,がけ:-1127,がっ:-913,がら:-4977,がり:-2064,きた:1645,けど:1374,こと:7397,この:1542,ころ:-2757,さい:-714,さを:976,"し,":1557,"し、":1557,しい:-3714,した:3562,して:1449,しな:2608,しま:1200,"す.":-1310,"す。":-1310,する:6521,"ず,":3426,"ず、":3426,ずに:841,そう:428,"た.":8875,"た。":8875,たい:-594,たの:812,たり:-1183,たる:-853,"だ.":4098,"だ。":4098,だっ:1004,った:-4748,って:300,てい:6240,てお:855,ても:302,です:1437,でに:-1482,では:2295,とう:-1387,とし:2266,との:541,とも:-3543,どう:4664,ない:1796,なく:-903,など:2135,"に,":-1021,"に、":-1021,にし:1771,にな:1906,には:2644,"の,":-724,"の、":-724,の子:-1e3,"は,":1337,"は、":1337,べき:2181,まし:1113,ます:6943,まっ:-1549,まで:6154,まれ:-793,らし:1479,られ:6820,るる:3818,"れ,":854,"れ、":854,れた:1850,れて:1375,れば:-3246,れる:1091,われ:-605,んだ:606,んで:798,カ月:990,会議:860,入り:1232,大会:2217,始め:1681,市:965,新聞:-5055,"日,":974,"日、":974,社会:2024,カ月:990},this.TC1__={AAA:1093,HHH:1029,HHM:580,HII:998,HOH:-390,HOM:-331,IHI:1169,IOH:-142,IOI:-1015,IOM:467,MMH:187,OOI:-1832},this.TC2__={HHO:2088,HII:-1023,HMM:-1154,IHI:-1965,KKH:703,OII:-2649},this.TC3__={AAA:-294,HHH:346,HHI:-341,HII:-1088,HIK:731,HOH:-1486,IHH:128,IHI:-3041,IHO:-1935,IIH:-825,IIM:-1035,IOI:-542,KHH:-1216,KKA:491,KKH:-1217,KOK:-1009,MHH:-2694,MHM:-457,MHO:123,MMH:-471,NNH:-1689,NNO:662,OHO:-3393},this.TC4__={HHH:-203,HHI:1344,HHK:365,HHM:-122,HHN:182,HHO:669,HIH:804,HII:679,HOH:446,IHH:695,IHO:-2324,IIH:321,III:1497,IIO:656,IOO:54,KAK:4845,KKA:3386,KKK:3065,MHH:-405,MHI:201,MMH:-241,MMM:661,MOM:841},this.TQ1__={BHHH:-227,BHHI:316,BHIH:-132,BIHH:60,BIII:1595,BNHH:-744,BOHH:225,BOOO:-908,OAKK:482,OHHH:281,OHIH:249,OIHI:200,OIIH:-68},this.TQ2__={BIHH:-1401,BIII:-1033,BKAK:-543,BOOO:-5591},this.TQ3__={BHHH:478,BHHM:-1073,BHIH:222,BHII:-504,BIIH:-116,BIII:-105,BMHI:-863,BMHM:-464,BOMH:620,OHHH:346,OHHI:1729,OHII:997,OHMH:481,OIHH:623,OIIH:1344,OKAK:2792,OKHH:587,OKKA:679,OOHH:110,OOII:-685},this.TQ4__={BHHH:-721,BHHM:-3604,BHII:-966,BIIH:-607,BIII:-2181,OAAA:-2763,OAKK:180,OHHH:-294,OHHI:2446,OHHO:480,OHIH:-1573,OIHH:1935,OIHI:-493,OIIH:626,OIII:-4007,OKAK:-8156},this.TW1__={につい:-4681,東京都:2026},this.TW2__={ある程:-2049,いった:-1256,ころが:-2434,しょう:3873,その後:-4430,だって:-1049,ていた:1833,として:-4657,ともに:-4517,もので:1882,一気に:-792,初めて:-1512,同時に:-8097,大きな:-1255,対して:-2721,社会党:-3216},this.TW3__={いただ:-1734,してい:1314,として:-4314,につい:-5483,にとっ:-5989,に当た:-6247,"ので,":-727,"ので、":-727,のもの:-600,れから:-3752,十二月:-2287},this.TW4__={"いう.":8576,"いう。":8576,からな:-2348,してい:2958,"たが,":1516,"たが、":1516,ている:1538,という:1349,ました:5543,ません:1097,ようと:-4258,よると:5865},this.UC1__={A:484,K:93,M:645,O:-505},this.UC2__={A:819,H:1059,I:409,M:3987,N:5775,O:646},this.UC3__={A:-1370,I:2311},this.UC4__={A:-2643,H:1809,I:-1032,K:-3450,M:3565,N:3876,O:6646},this.UC5__={H:313,I:-1238,K:-799,M:539,O:-831},this.UC6__={H:-506,I:-253,K:87,M:247,O:-387},this.UP1__={O:-214},this.UP2__={B:69,O:935},this.UP3__={B:189},this.UQ1__={BH:21,BI:-12,BK:-99,BN:142,BO:-56,OH:-95,OI:477,OK:410,OO:-2422},this.UQ2__={BH:216,BI:113,OK:1759},this.UQ3__={BA:-479,BH:42,BI:1913,BK:-7198,BM:3160,BN:6427,BO:14761,OI:-827,ON:-3212},this.UW1__={",":156,"、":156,"「":-463,あ:-941,う:-127,が:-553,き:121,こ:505,で:-201,と:-547,ど:-123,に:-789,の:-185,は:-847,も:-466,や:-470,よ:182,ら:-292,り:208,れ:169,を:-446,ん:-137,"・":-135,主:-402,京:-268,区:-912,午:871,国:-460,大:561,委:729,市:-411,日:-141,理:361,生:-408,県:-386,都:-718,"「":-463,"・":-135},this.UW2__={",":-829,"、":-829,〇:892,"「":-645,"」":3145,あ:-538,い:505,う:134,お:-502,か:1454,が:-856,く:-412,こ:1141,さ:878,ざ:540,し:1529,す:-675,せ:300,そ:-1011,た:188,だ:1837,つ:-949,て:-291,で:-268,と:-981,ど:1273,な:1063,に:-1764,の:130,は:-409,ひ:-1273,べ:1261,ま:600,も:-1263,や:-402,よ:1639,り:-579,る:-694,れ:571,を:-2516,ん:2095,ア:-587,カ:306,キ:568,ッ:831,三:-758,不:-2150,世:-302,中:-968,主:-861,事:492,人:-123,会:978,保:362,入:548,初:-3025,副:-1566,北:-3414,区:-422,大:-1769,天:-865,太:-483,子:-1519,学:760,実:1023,小:-2009,市:-813,年:-1060,強:1067,手:-1519,揺:-1033,政:1522,文:-1355,新:-1682,日:-1815,明:-1462,最:-630,朝:-1843,本:-1650,東:-931,果:-665,次:-2378,民:-180,気:-1740,理:752,発:529,目:-1584,相:-242,県:-1165,立:-763,第:810,米:509,自:-1353,行:838,西:-744,見:-3874,調:1010,議:1198,込:3041,開:1758,間:-1257,"「":-645,"」":3145,ッ:831,ア:-587,カ:306,キ:568},this.UW3__={",":4889,1:-800,"−":-1723,"、":4889,々:-2311,〇:5827,"」":2670,"〓":-3573,あ:-2696,い:1006,う:2342,え:1983,お:-4864,か:-1163,が:3271,く:1004,け:388,げ:401,こ:-3552,ご:-3116,さ:-1058,し:-395,す:584,せ:3685,そ:-5228,た:842,ち:-521,っ:-1444,つ:-1081,て:6167,で:2318,と:1691,ど:-899,な:-2788,に:2745,の:4056,は:4555,ひ:-2171,ふ:-1798,へ:1199,ほ:-5516,ま:-4384,み:-120,め:1205,も:2323,や:-788,よ:-202,ら:727,り:649,る:5905,れ:2773,わ:-1207,を:6620,ん:-518,ア:551,グ:1319,ス:874,ッ:-1350,ト:521,ム:1109,ル:1591,ロ:2201,ン:278,"・":-3794,一:-1619,下:-1759,世:-2087,両:3815,中:653,主:-758,予:-1193,二:974,人:2742,今:792,他:1889,以:-1368,低:811,何:4265,作:-361,保:-2439,元:4858,党:3593,全:1574,公:-3030,六:755,共:-1880,円:5807,再:3095,分:457,初:2475,別:1129,前:2286,副:4437,力:365,動:-949,務:-1872,化:1327,北:-1038,区:4646,千:-2309,午:-783,協:-1006,口:483,右:1233,各:3588,合:-241,同:3906,和:-837,員:4513,国:642,型:1389,場:1219,外:-241,妻:2016,学:-1356,安:-423,実:-1008,家:1078,小:-513,少:-3102,州:1155,市:3197,平:-1804,年:2416,広:-1030,府:1605,度:1452,建:-2352,当:-3885,得:1905,思:-1291,性:1822,戸:-488,指:-3973,政:-2013,教:-1479,数:3222,文:-1489,新:1764,日:2099,旧:5792,昨:-661,時:-1248,曜:-951,最:-937,月:4125,期:360,李:3094,村:364,東:-805,核:5156,森:2438,業:484,氏:2613,民:-1694,決:-1073,法:1868,海:-495,無:979,物:461,特:-3850,生:-273,用:914,町:1215,的:7313,直:-1835,省:792,県:6293,知:-1528,私:4231,税:401,立:-960,第:1201,米:7767,系:3066,約:3663,級:1384,統:-4229,総:1163,線:1255,者:6457,能:725,自:-2869,英:785,見:1044,調:-562,財:-733,費:1777,車:1835,軍:1375,込:-1504,通:-1136,選:-681,郎:1026,郡:4404,部:1200,金:2163,長:421,開:-1432,間:1302,関:-1282,雨:2009,電:-1045,非:2066,駅:1620,"1":-800,"」":2670,"・":-3794,ッ:-1350,ア:551,グ:1319,ス:874,ト:521,ム:1109,ル:1591,ロ:2201,ン:278},this.UW4__={",":3930,".":3508,"―":-4841,"、":3930,"。":3508,〇:4999,"「":1895,"」":3798,"〓":-5156,あ:4752,い:-3435,う:-640,え:-2514,お:2405,か:530,が:6006,き:-4482,ぎ:-3821,く:-3788,け:-4376,げ:-4734,こ:2255,ご:1979,さ:2864,し:-843,じ:-2506,す:-731,ず:1251,せ:181,そ:4091,た:5034,だ:5408,ち:-3654,っ:-5882,つ:-1659,て:3994,で:7410,と:4547,な:5433,に:6499,ぬ:1853,ね:1413,の:7396,は:8578,ば:1940,ひ:4249,び:-4134,ふ:1345,へ:6665,べ:-744,ほ:1464,ま:1051,み:-2082,む:-882,め:-5046,も:4169,ゃ:-2666,や:2795,ょ:-1544,よ:3351,ら:-2922,り:-9726,る:-14896,れ:-2613,ろ:-4570,わ:-1783,を:13150,ん:-2352,カ:2145,コ:1789,セ:1287,ッ:-724,ト:-403,メ:-1635,ラ:-881,リ:-541,ル:-856,ン:-3637,"・":-4371,ー:-11870,一:-2069,中:2210,予:782,事:-190,井:-1768,人:1036,以:544,会:950,体:-1286,作:530,側:4292,先:601,党:-2006,共:-1212,内:584,円:788,初:1347,前:1623,副:3879,力:-302,動:-740,務:-2715,化:776,区:4517,協:1013,参:1555,合:-1834,和:-681,員:-910,器:-851,回:1500,国:-619,園:-1200,地:866,場:-1410,塁:-2094,士:-1413,多:1067,大:571,子:-4802,学:-1397,定:-1057,寺:-809,小:1910,屋:-1328,山:-1500,島:-2056,川:-2667,市:2771,年:374,庁:-4556,後:456,性:553,感:916,所:-1566,支:856,改:787,政:2182,教:704,文:522,方:-856,日:1798,時:1829,最:845,月:-9066,木:-485,来:-442,校:-360,業:-1043,氏:5388,民:-2716,気:-910,沢:-939,済:-543,物:-735,率:672,球:-1267,生:-1286,産:-1101,田:-2900,町:1826,的:2586,目:922,省:-3485,県:2997,空:-867,立:-2112,第:788,米:2937,系:786,約:2171,経:1146,統:-1169,総:940,線:-994,署:749,者:2145,能:-730,般:-852,行:-792,規:792,警:-1184,議:-244,谷:-1e3,賞:730,車:-1481,軍:1158,輪:-1433,込:-3370,近:929,道:-1291,選:2596,郎:-4866,都:1192,野:-1100,銀:-2213,長:357,間:-2344,院:-2297,際:-2604,電:-878,領:-1659,題:-792,館:-1984,首:1749,高:2120,"「":1895,"」":3798,"・":-4371,ッ:-724,ー:-11870,カ:2145,コ:1789,セ:1287,ト:-403,メ:-1635,ラ:-881,リ:-541,ル:-856,ン:-3637},this.UW5__={",":465,".":-299,1:-514,E2:-32768,"]":-2762,"、":465,"。":-299,"「":363,あ:1655,い:331,う:-503,え:1199,お:527,か:647,が:-421,き:1624,ぎ:1971,く:312,げ:-983,さ:-1537,し:-1371,す:-852,だ:-1186,ち:1093,っ:52,つ:921,て:-18,で:-850,と:-127,ど:1682,な:-787,に:-1224,の:-635,は:-578,べ:1001,み:502,め:865,ゃ:3350,ょ:854,り:-208,る:429,れ:504,わ:419,を:-1264,ん:327,イ:241,ル:451,ン:-343,中:-871,京:722,会:-1153,党:-654,務:3519,区:-901,告:848,員:2104,大:-1296,学:-548,定:1785,嵐:-1304,市:-2991,席:921,年:1763,思:872,所:-814,挙:1618,新:-1682,日:218,月:-4353,査:932,格:1356,機:-1508,氏:-1347,田:240,町:-3912,的:-3149,相:1319,省:-1052,県:-4003,研:-997,社:-278,空:-813,統:1955,者:-2233,表:663,語:-1073,議:1219,選:-1018,郎:-368,長:786,間:1191,題:2368,館:-689,"1":-514,E2:-32768,"「":363,イ:241,ル:451,ン:-343},this.UW6__={",":227,".":808,1:-270,E1:306,"、":227,"。":808,あ:-307,う:189,か:241,が:-73,く:-121,こ:-200,じ:1782,す:383,た:-428,っ:573,て:-1014,で:101,と:-105,な:-253,に:-149,の:-417,は:-236,も:-206,り:187,る:-135,を:195,ル:-673,ン:-496,一:-277,中:201,件:-800,会:624,前:302,区:1792,員:-1212,委:798,学:-960,市:887,広:-695,後:535,業:-697,相:753,社:-507,福:974,空:-822,者:1811,連:463,郎:1082,"1":-270,E1:306,ル:-673,ン:-496},this}t.prototype.ctype_=function(_){for(var t in this.chartype_)if(_.match(this.chartype_[t][0]))return this.chartype_[t][1];return"O"},t.prototype.ts_=function(_){return _||0},t.prototype.segment=function(_){if(null==_||null==_||""==_)return[];var t=[],H=["B3","B2","B1"],s=["O","O","O"],h=_.split("");for(K=0;K0&&(t.push(i),i="",N="B"),I=O,O=B,B=N,i+=H[K]}return t.push(i),t},_.TinySegmenter=t}})); \ No newline at end of file diff --git a/docs/assets/javascripts/lunr/wordcut.js b/docs/assets/javascripts/lunr/wordcut.js new file mode 100644 index 00000000..146f4b44 --- /dev/null +++ b/docs/assets/javascripts/lunr/wordcut.js @@ -0,0 +1,6708 @@ +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}(g.lunr || (g.lunr = {})).wordcut = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 1; + }) + this.addWords(words, false) + } + if(finalize){ + this.finalizeDict(); + } + }, + + dictSeek: function (l, r, ch, strOffset, pos) { + var ans = null; + while (l <= r) { + var m = Math.floor((l + r) / 2), + dict_item = this.dict[m], + len = dict_item.length; + if (len <= strOffset) { + l = m + 1; + } else { + var ch_ = dict_item[strOffset]; + if (ch_ < ch) { + l = m + 1; + } else if (ch_ > ch) { + r = m - 1; + } else { + ans = m; + if (pos == LEFT) { + r = m - 1; + } else { + l = m + 1; + } + } + } + } + return ans; + }, + + isFinal: function (acceptor) { + return this.dict[acceptor.l].length == acceptor.strOffset; + }, + + createAcceptor: function () { + return { + l: 0, + r: this.dict.length - 1, + strOffset: 0, + isFinal: false, + dict: this, + transit: function (ch) { + return this.dict.transit(this, ch); + }, + isError: false, + tag: "DICT", + w: 1, + type: "DICT" + }; + }, + + transit: function (acceptor, ch) { + var l = this.dictSeek(acceptor.l, + acceptor.r, + ch, + acceptor.strOffset, + LEFT); + if (l !== null) { + var r = this.dictSeek(l, + acceptor.r, + ch, + acceptor.strOffset, + RIGHT); + acceptor.l = l; + acceptor.r = r; + acceptor.strOffset++; + acceptor.isFinal = this.isFinal(acceptor); + } else { + acceptor.isError = true; + } + return acceptor; + }, + + sortuniq: function(a){ + return a.sort().filter(function(item, pos, arr){ + return !pos || item != arr[pos - 1]; + }) + }, + + flatten: function(a){ + //[[1,2],[3]] -> [1,2,3] + return [].concat.apply([], a); + } +}; +module.exports = WordcutDict; + +}).call(this,"/dist/tmp") +},{"glob":16,"path":22}],3:[function(require,module,exports){ +var WordRule = { + createAcceptor: function(tag) { + if (tag["WORD_RULE"]) + return null; + + return {strOffset: 0, + isFinal: false, + transit: function(ch) { + var lch = ch.toLowerCase(); + if (lch >= "a" && lch <= "z") { + this.isFinal = true; + this.strOffset++; + } else { + this.isError = true; + } + return this; + }, + isError: false, + tag: "WORD_RULE", + type: "WORD_RULE", + w: 1}; + } +}; + +var NumberRule = { + createAcceptor: function(tag) { + if (tag["NUMBER_RULE"]) + return null; + + return {strOffset: 0, + isFinal: false, + transit: function(ch) { + if (ch >= "0" && ch <= "9") { + this.isFinal = true; + this.strOffset++; + } else { + this.isError = true; + } + return this; + }, + isError: false, + tag: "NUMBER_RULE", + type: "NUMBER_RULE", + w: 1}; + } +}; + +var SpaceRule = { + tag: "SPACE_RULE", + createAcceptor: function(tag) { + + if (tag["SPACE_RULE"]) + return null; + + return {strOffset: 0, + isFinal: false, + transit: function(ch) { + if (ch == " " || ch == "\t" || ch == "\r" || ch == "\n" || + ch == "\u00A0" || ch=="\u2003"//nbsp and emsp + ) { + this.isFinal = true; + this.strOffset++; + } else { + this.isError = true; + } + return this; + }, + isError: false, + tag: SpaceRule.tag, + w: 1, + type: "SPACE_RULE"}; + } +} + +var SingleSymbolRule = { + tag: "SINSYM", + createAcceptor: function(tag) { + return {strOffset: 0, + isFinal: false, + transit: function(ch) { + if (this.strOffset == 0 && ch.match(/^[\@\(\)\/\,\-\."`]$/)) { + this.isFinal = true; + this.strOffset++; + } else { + this.isError = true; + } + return this; + }, + isError: false, + tag: "SINSYM", + w: 1, + type: "SINSYM"}; + } +} + + +var LatinRules = [WordRule, SpaceRule, SingleSymbolRule, NumberRule]; + +module.exports = LatinRules; + +},{}],4:[function(require,module,exports){ +var _ = require("underscore") + , WordcutCore = require("./wordcut_core"); +var PathInfoBuilder = { + + /* + buildByPartAcceptors: function(path, acceptors, i) { + var + var genInfos = partAcceptors.reduce(function(genInfos, acceptor) { + + }, []); + + return genInfos; + } + */ + + buildByAcceptors: function(path, finalAcceptors, i) { + var self = this; + var infos = finalAcceptors.map(function(acceptor) { + var p = i - acceptor.strOffset + 1 + , _info = path[p]; + + var info = {p: p, + mw: _info.mw + (acceptor.mw === undefined ? 0 : acceptor.mw), + w: acceptor.w + _info.w, + unk: (acceptor.unk ? acceptor.unk : 0) + _info.unk, + type: acceptor.type}; + + if (acceptor.type == "PART") { + for(var j = p + 1; j <= i; j++) { + path[j].merge = p; + } + info.merge = p; + } + + return info; + }); + return infos.filter(function(info) { return info; }); + }, + + fallback: function(path, leftBoundary, text, i) { + var _info = path[leftBoundary]; + if (text[i].match(/[\u0E48-\u0E4E]/)) { + if (leftBoundary != 0) + leftBoundary = path[leftBoundary].p; + return {p: leftBoundary, + mw: 0, + w: 1 + _info.w, + unk: 1 + _info.unk, + type: "UNK"}; +/* } else if(leftBoundary > 0 && path[leftBoundary].type !== "UNK") { + leftBoundary = path[leftBoundary].p; + return {p: leftBoundary, + w: 1 + _info.w, + unk: 1 + _info.unk, + type: "UNK"}; */ + } else { + return {p: leftBoundary, + mw: _info.mw, + w: 1 + _info.w, + unk: 1 + _info.unk, + type: "UNK"}; + } + }, + + build: function(path, finalAcceptors, i, leftBoundary, text) { + var basicPathInfos = this.buildByAcceptors(path, finalAcceptors, i); + if (basicPathInfos.length > 0) { + return basicPathInfos; + } else { + return [this.fallback(path, leftBoundary, text, i)]; + } + } +}; + +module.exports = function() { + return _.clone(PathInfoBuilder); +} + +},{"./wordcut_core":8,"underscore":25}],5:[function(require,module,exports){ +var _ = require("underscore"); + + +var PathSelector = { + selectPath: function(paths) { + var path = paths.reduce(function(selectedPath, path) { + if (selectedPath == null) { + return path; + } else { + if (path.unk < selectedPath.unk) + return path; + if (path.unk == selectedPath.unk) { + if (path.mw < selectedPath.mw) + return path + if (path.mw == selectedPath.mw) { + if (path.w < selectedPath.w) + return path; + } + } + return selectedPath; + } + }, null); + return path; + }, + + createPath: function() { + return [{p:null, w:0, unk:0, type: "INIT", mw:0}]; + } +}; + +module.exports = function() { + return _.clone(PathSelector); +}; + +},{"underscore":25}],6:[function(require,module,exports){ +function isMatch(pat, offset, ch) { + if (pat.length <= offset) + return false; + var _ch = pat[offset]; + return _ch == ch || + (_ch.match(/[กข]/) && ch.match(/[ก-ฮ]/)) || + (_ch.match(/[มบ]/) && ch.match(/[ก-ฮ]/)) || + (_ch.match(/\u0E49/) && ch.match(/[\u0E48-\u0E4B]/)); +} + +var Rule0 = { + pat: "เหก็ม", + createAcceptor: function(tag) { + return {strOffset: 0, + isFinal: false, + transit: function(ch) { + if (isMatch(Rule0.pat, this.strOffset,ch)) { + this.isFinal = (this.strOffset + 1 == Rule0.pat.length); + this.strOffset++; + } else { + this.isError = true; + } + return this; + }, + isError: false, + tag: "THAI_RULE", + type: "THAI_RULE", + w: 1}; + } +}; + +var PartRule = { + createAcceptor: function(tag) { + return {strOffset: 0, + patterns: [ + "แก", "เก", "ก้", "กก์", "กา", "กี", "กิ", "กืก" + ], + isFinal: false, + transit: function(ch) { + var offset = this.strOffset; + this.patterns = this.patterns.filter(function(pat) { + return isMatch(pat, offset, ch); + }); + + if (this.patterns.length > 0) { + var len = 1 + offset; + this.isFinal = this.patterns.some(function(pat) { + return pat.length == len; + }); + this.strOffset++; + } else { + this.isError = true; + } + return this; + }, + isError: false, + tag: "PART", + type: "PART", + unk: 1, + w: 1}; + } +}; + +var ThaiRules = [Rule0, PartRule]; + +module.exports = ThaiRules; + +},{}],7:[function(require,module,exports){ +var sys = require("sys") + , WordcutDict = require("./dict") + , WordcutCore = require("./wordcut_core") + , PathInfoBuilder = require("./path_info_builder") + , PathSelector = require("./path_selector") + , Acceptors = require("./acceptors") + , latinRules = require("./latin_rules") + , thaiRules = require("./thai_rules") + , _ = require("underscore"); + + +var Wordcut = Object.create(WordcutCore); +Wordcut.defaultPathInfoBuilder = PathInfoBuilder; +Wordcut.defaultPathSelector = PathSelector; +Wordcut.defaultAcceptors = Acceptors; +Wordcut.defaultLatinRules = latinRules; +Wordcut.defaultThaiRules = thaiRules; +Wordcut.defaultDict = WordcutDict; + + +Wordcut.initNoDict = function(dict_path) { + var self = this; + self.pathInfoBuilder = new self.defaultPathInfoBuilder; + self.pathSelector = new self.defaultPathSelector; + self.acceptors = new self.defaultAcceptors; + self.defaultLatinRules.forEach(function(rule) { + self.acceptors.creators.push(rule); + }); + self.defaultThaiRules.forEach(function(rule) { + self.acceptors.creators.push(rule); + }); +}; + +Wordcut.init = function(dict_path, withDefault, additionalWords) { + withDefault = withDefault || false; + this.initNoDict(); + var dict = _.clone(this.defaultDict); + dict.init(dict_path, withDefault, additionalWords); + this.acceptors.creators.push(dict); +}; + +module.exports = Wordcut; + +},{"./acceptors":1,"./dict":2,"./latin_rules":3,"./path_info_builder":4,"./path_selector":5,"./thai_rules":6,"./wordcut_core":8,"sys":28,"underscore":25}],8:[function(require,module,exports){ +var WordcutCore = { + + buildPath: function(text) { + var self = this + , path = self.pathSelector.createPath() + , leftBoundary = 0; + self.acceptors.reset(); + for (var i = 0; i < text.length; i++) { + var ch = text[i]; + self.acceptors.transit(ch); + + var possiblePathInfos = self + .pathInfoBuilder + .build(path, + self.acceptors.getFinalAcceptors(), + i, + leftBoundary, + text); + var selectedPath = self.pathSelector.selectPath(possiblePathInfos) + + path.push(selectedPath); + if (selectedPath.type !== "UNK") { + leftBoundary = i; + } + } + return path; + }, + + pathToRanges: function(path) { + var e = path.length - 1 + , ranges = []; + + while (e > 0) { + var info = path[e] + , s = info.p; + + if (info.merge !== undefined && ranges.length > 0) { + var r = ranges[ranges.length - 1]; + r.s = info.merge; + s = r.s; + } else { + ranges.push({s:s, e:e}); + } + e = s; + } + return ranges.reverse(); + }, + + rangesToText: function(text, ranges, delimiter) { + return ranges.map(function(r) { + return text.substring(r.s, r.e); + }).join(delimiter); + }, + + cut: function(text, delimiter) { + var path = this.buildPath(text) + , ranges = this.pathToRanges(path); + return this + .rangesToText(text, ranges, + (delimiter === undefined ? "|" : delimiter)); + }, + + cutIntoRanges: function(text, noText) { + var path = this.buildPath(text) + , ranges = this.pathToRanges(path); + + if (!noText) { + ranges.forEach(function(r) { + r.text = text.substring(r.s, r.e); + }); + } + return ranges; + }, + + cutIntoArray: function(text) { + var path = this.buildPath(text) + , ranges = this.pathToRanges(path); + + return ranges.map(function(r) { + return text.substring(r.s, r.e) + }); + } +}; + +module.exports = WordcutCore; + +},{}],9:[function(require,module,exports){ +// http://wiki.commonjs.org/wiki/Unit_Testing/1.0 +// +// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8! +// +// Originally from narwhal.js (http://narwhaljs.org) +// Copyright (c) 2009 Thomas Robinson <280north.com> +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the 'Software'), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +// when used in node, this will actually load the util module we depend on +// versus loading the builtin util module as happens otherwise +// this is a bug in node module loading as far as I am concerned +var util = require('util/'); + +var pSlice = Array.prototype.slice; +var hasOwn = Object.prototype.hasOwnProperty; + +// 1. The assert module provides functions that throw +// AssertionError's when particular conditions are not met. The +// assert module must conform to the following interface. + +var assert = module.exports = ok; + +// 2. The AssertionError is defined in assert. +// new assert.AssertionError({ message: message, +// actual: actual, +// expected: expected }) + +assert.AssertionError = function AssertionError(options) { + this.name = 'AssertionError'; + this.actual = options.actual; + this.expected = options.expected; + this.operator = options.operator; + if (options.message) { + this.message = options.message; + this.generatedMessage = false; + } else { + this.message = getMessage(this); + this.generatedMessage = true; + } + var stackStartFunction = options.stackStartFunction || fail; + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, stackStartFunction); + } + else { + // non v8 browsers so we can have a stacktrace + var err = new Error(); + if (err.stack) { + var out = err.stack; + + // try to strip useless frames + var fn_name = stackStartFunction.name; + var idx = out.indexOf('\n' + fn_name); + if (idx >= 0) { + // once we have located the function frame + // we need to strip out everything before it (and its line) + var next_line = out.indexOf('\n', idx + 1); + out = out.substring(next_line + 1); + } + + this.stack = out; + } + } +}; + +// assert.AssertionError instanceof Error +util.inherits(assert.AssertionError, Error); + +function replacer(key, value) { + if (util.isUndefined(value)) { + return '' + value; + } + if (util.isNumber(value) && !isFinite(value)) { + return value.toString(); + } + if (util.isFunction(value) || util.isRegExp(value)) { + return value.toString(); + } + return value; +} + +function truncate(s, n) { + if (util.isString(s)) { + return s.length < n ? s : s.slice(0, n); + } else { + return s; + } +} + +function getMessage(self) { + return truncate(JSON.stringify(self.actual, replacer), 128) + ' ' + + self.operator + ' ' + + truncate(JSON.stringify(self.expected, replacer), 128); +} + +// At present only the three keys mentioned above are used and +// understood by the spec. Implementations or sub modules can pass +// other keys to the AssertionError's constructor - they will be +// ignored. + +// 3. All of the following functions must throw an AssertionError +// when a corresponding condition is not met, with a message that +// may be undefined if not provided. All assertion methods provide +// both the actual and expected values to the assertion error for +// display purposes. + +function fail(actual, expected, message, operator, stackStartFunction) { + throw new assert.AssertionError({ + message: message, + actual: actual, + expected: expected, + operator: operator, + stackStartFunction: stackStartFunction + }); +} + +// EXTENSION! allows for well behaved errors defined elsewhere. +assert.fail = fail; + +// 4. Pure assertion tests whether a value is truthy, as determined +// by !!guard. +// assert.ok(guard, message_opt); +// This statement is equivalent to assert.equal(true, !!guard, +// message_opt);. To test strictly for the value true, use +// assert.strictEqual(true, guard, message_opt);. + +function ok(value, message) { + if (!value) fail(value, true, message, '==', assert.ok); +} +assert.ok = ok; + +// 5. The equality assertion tests shallow, coercive equality with +// ==. +// assert.equal(actual, expected, message_opt); + +assert.equal = function equal(actual, expected, message) { + if (actual != expected) fail(actual, expected, message, '==', assert.equal); +}; + +// 6. The non-equality assertion tests for whether two objects are not equal +// with != assert.notEqual(actual, expected, message_opt); + +assert.notEqual = function notEqual(actual, expected, message) { + if (actual == expected) { + fail(actual, expected, message, '!=', assert.notEqual); + } +}; + +// 7. The equivalence assertion tests a deep equality relation. +// assert.deepEqual(actual, expected, message_opt); + +assert.deepEqual = function deepEqual(actual, expected, message) { + if (!_deepEqual(actual, expected)) { + fail(actual, expected, message, 'deepEqual', assert.deepEqual); + } +}; + +function _deepEqual(actual, expected) { + // 7.1. All identical values are equivalent, as determined by ===. + if (actual === expected) { + return true; + + } else if (util.isBuffer(actual) && util.isBuffer(expected)) { + if (actual.length != expected.length) return false; + + for (var i = 0; i < actual.length; i++) { + if (actual[i] !== expected[i]) return false; + } + + return true; + + // 7.2. If the expected value is a Date object, the actual value is + // equivalent if it is also a Date object that refers to the same time. + } else if (util.isDate(actual) && util.isDate(expected)) { + return actual.getTime() === expected.getTime(); + + // 7.3 If the expected value is a RegExp object, the actual value is + // equivalent if it is also a RegExp object with the same source and + // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`). + } else if (util.isRegExp(actual) && util.isRegExp(expected)) { + return actual.source === expected.source && + actual.global === expected.global && + actual.multiline === expected.multiline && + actual.lastIndex === expected.lastIndex && + actual.ignoreCase === expected.ignoreCase; + + // 7.4. Other pairs that do not both pass typeof value == 'object', + // equivalence is determined by ==. + } else if (!util.isObject(actual) && !util.isObject(expected)) { + return actual == expected; + + // 7.5 For all other Object pairs, including Array objects, equivalence is + // determined by having the same number of owned properties (as verified + // with Object.prototype.hasOwnProperty.call), the same set of keys + // (although not necessarily the same order), equivalent values for every + // corresponding key, and an identical 'prototype' property. Note: this + // accounts for both named and indexed properties on Arrays. + } else { + return objEquiv(actual, expected); + } +} + +function isArguments(object) { + return Object.prototype.toString.call(object) == '[object Arguments]'; +} + +function objEquiv(a, b) { + if (util.isNullOrUndefined(a) || util.isNullOrUndefined(b)) + return false; + // an identical 'prototype' property. + if (a.prototype !== b.prototype) return false; + // if one is a primitive, the other must be same + if (util.isPrimitive(a) || util.isPrimitive(b)) { + return a === b; + } + var aIsArgs = isArguments(a), + bIsArgs = isArguments(b); + if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs)) + return false; + if (aIsArgs) { + a = pSlice.call(a); + b = pSlice.call(b); + return _deepEqual(a, b); + } + var ka = objectKeys(a), + kb = objectKeys(b), + key, i; + // having the same number of owned properties (keys incorporates + // hasOwnProperty) + if (ka.length != kb.length) + return false; + //the same set of keys (although not necessarily the same order), + ka.sort(); + kb.sort(); + //~~~cheap key test + for (i = ka.length - 1; i >= 0; i--) { + if (ka[i] != kb[i]) + return false; + } + //equivalent values for every corresponding key, and + //~~~possibly expensive deep test + for (i = ka.length - 1; i >= 0; i--) { + key = ka[i]; + if (!_deepEqual(a[key], b[key])) return false; + } + return true; +} + +// 8. The non-equivalence assertion tests for any deep inequality. +// assert.notDeepEqual(actual, expected, message_opt); + +assert.notDeepEqual = function notDeepEqual(actual, expected, message) { + if (_deepEqual(actual, expected)) { + fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual); + } +}; + +// 9. The strict equality assertion tests strict equality, as determined by ===. +// assert.strictEqual(actual, expected, message_opt); + +assert.strictEqual = function strictEqual(actual, expected, message) { + if (actual !== expected) { + fail(actual, expected, message, '===', assert.strictEqual); + } +}; + +// 10. The strict non-equality assertion tests for strict inequality, as +// determined by !==. assert.notStrictEqual(actual, expected, message_opt); + +assert.notStrictEqual = function notStrictEqual(actual, expected, message) { + if (actual === expected) { + fail(actual, expected, message, '!==', assert.notStrictEqual); + } +}; + +function expectedException(actual, expected) { + if (!actual || !expected) { + return false; + } + + if (Object.prototype.toString.call(expected) == '[object RegExp]') { + return expected.test(actual); + } else if (actual instanceof expected) { + return true; + } else if (expected.call({}, actual) === true) { + return true; + } + + return false; +} + +function _throws(shouldThrow, block, expected, message) { + var actual; + + if (util.isString(expected)) { + message = expected; + expected = null; + } + + try { + block(); + } catch (e) { + actual = e; + } + + message = (expected && expected.name ? ' (' + expected.name + ').' : '.') + + (message ? ' ' + message : '.'); + + if (shouldThrow && !actual) { + fail(actual, expected, 'Missing expected exception' + message); + } + + if (!shouldThrow && expectedException(actual, expected)) { + fail(actual, expected, 'Got unwanted exception' + message); + } + + if ((shouldThrow && actual && expected && + !expectedException(actual, expected)) || (!shouldThrow && actual)) { + throw actual; + } +} + +// 11. Expected to throw an error: +// assert.throws(block, Error_opt, message_opt); + +assert.throws = function(block, /*optional*/error, /*optional*/message) { + _throws.apply(this, [true].concat(pSlice.call(arguments))); +}; + +// EXTENSION! This is annoying to write outside this module. +assert.doesNotThrow = function(block, /*optional*/message) { + _throws.apply(this, [false].concat(pSlice.call(arguments))); +}; + +assert.ifError = function(err) { if (err) {throw err;}}; + +var objectKeys = Object.keys || function (obj) { + var keys = []; + for (var key in obj) { + if (hasOwn.call(obj, key)) keys.push(key); + } + return keys; +}; + +},{"util/":28}],10:[function(require,module,exports){ +'use strict'; +module.exports = balanced; +function balanced(a, b, str) { + if (a instanceof RegExp) a = maybeMatch(a, str); + if (b instanceof RegExp) b = maybeMatch(b, str); + + var r = range(a, b, str); + + return r && { + start: r[0], + end: r[1], + pre: str.slice(0, r[0]), + body: str.slice(r[0] + a.length, r[1]), + post: str.slice(r[1] + b.length) + }; +} + +function maybeMatch(reg, str) { + var m = str.match(reg); + return m ? m[0] : null; +} + +balanced.range = range; +function range(a, b, str) { + var begs, beg, left, right, result; + var ai = str.indexOf(a); + var bi = str.indexOf(b, ai + 1); + var i = ai; + + if (ai >= 0 && bi > 0) { + begs = []; + left = str.length; + + while (i >= 0 && !result) { + if (i == ai) { + begs.push(i); + ai = str.indexOf(a, i + 1); + } else if (begs.length == 1) { + result = [ begs.pop(), bi ]; + } else { + beg = begs.pop(); + if (beg < left) { + left = beg; + right = bi; + } + + bi = str.indexOf(b, i + 1); + } + + i = ai < bi && ai >= 0 ? ai : bi; + } + + if (begs.length) { + result = [ left, right ]; + } + } + + return result; +} + +},{}],11:[function(require,module,exports){ +var concatMap = require('concat-map'); +var balanced = require('balanced-match'); + +module.exports = expandTop; + +var escSlash = '\0SLASH'+Math.random()+'\0'; +var escOpen = '\0OPEN'+Math.random()+'\0'; +var escClose = '\0CLOSE'+Math.random()+'\0'; +var escComma = '\0COMMA'+Math.random()+'\0'; +var escPeriod = '\0PERIOD'+Math.random()+'\0'; + +function numeric(str) { + return parseInt(str, 10) == str + ? parseInt(str, 10) + : str.charCodeAt(0); +} + +function escapeBraces(str) { + return str.split('\\\\').join(escSlash) + .split('\\{').join(escOpen) + .split('\\}').join(escClose) + .split('\\,').join(escComma) + .split('\\.').join(escPeriod); +} + +function unescapeBraces(str) { + return str.split(escSlash).join('\\') + .split(escOpen).join('{') + .split(escClose).join('}') + .split(escComma).join(',') + .split(escPeriod).join('.'); +} + + +// Basically just str.split(","), but handling cases +// where we have nested braced sections, which should be +// treated as individual members, like {a,{b,c},d} +function parseCommaParts(str) { + if (!str) + return ['']; + + var parts = []; + var m = balanced('{', '}', str); + + if (!m) + return str.split(','); + + var pre = m.pre; + var body = m.body; + var post = m.post; + var p = pre.split(','); + + p[p.length-1] += '{' + body + '}'; + var postParts = parseCommaParts(post); + if (post.length) { + p[p.length-1] += postParts.shift(); + p.push.apply(p, postParts); + } + + parts.push.apply(parts, p); + + return parts; +} + +function expandTop(str) { + if (!str) + return []; + + // I don't know why Bash 4.3 does this, but it does. + // Anything starting with {} will have the first two bytes preserved + // but *only* at the top level, so {},a}b will not expand to anything, + // but a{},b}c will be expanded to [a}c,abc]. + // One could argue that this is a bug in Bash, but since the goal of + // this module is to match Bash's rules, we escape a leading {} + if (str.substr(0, 2) === '{}') { + str = '\\{\\}' + str.substr(2); + } + + return expand(escapeBraces(str), true).map(unescapeBraces); +} + +function identity(e) { + return e; +} + +function embrace(str) { + return '{' + str + '}'; +} +function isPadded(el) { + return /^-?0\d/.test(el); +} + +function lte(i, y) { + return i <= y; +} +function gte(i, y) { + return i >= y; +} + +function expand(str, isTop) { + var expansions = []; + + var m = balanced('{', '}', str); + if (!m || /\$$/.test(m.pre)) return [str]; + + var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); + var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); + var isSequence = isNumericSequence || isAlphaSequence; + var isOptions = m.body.indexOf(',') >= 0; + if (!isSequence && !isOptions) { + // {a},b} + if (m.post.match(/,.*\}/)) { + str = m.pre + '{' + m.body + escClose + m.post; + return expand(str); + } + return [str]; + } + + var n; + if (isSequence) { + n = m.body.split(/\.\./); + } else { + n = parseCommaParts(m.body); + if (n.length === 1) { + // x{{a,b}}y ==> x{a}y x{b}y + n = expand(n[0], false).map(embrace); + if (n.length === 1) { + var post = m.post.length + ? expand(m.post, false) + : ['']; + return post.map(function(p) { + return m.pre + n[0] + p; + }); + } + } + } + + // at this point, n is the parts, and we know it's not a comma set + // with a single entry. + + // no need to expand pre, since it is guaranteed to be free of brace-sets + var pre = m.pre; + var post = m.post.length + ? expand(m.post, false) + : ['']; + + var N; + + if (isSequence) { + var x = numeric(n[0]); + var y = numeric(n[1]); + var width = Math.max(n[0].length, n[1].length) + var incr = n.length == 3 + ? Math.abs(numeric(n[2])) + : 1; + var test = lte; + var reverse = y < x; + if (reverse) { + incr *= -1; + test = gte; + } + var pad = n.some(isPadded); + + N = []; + + for (var i = x; test(i, y); i += incr) { + var c; + if (isAlphaSequence) { + c = String.fromCharCode(i); + if (c === '\\') + c = ''; + } else { + c = String(i); + if (pad) { + var need = width - c.length; + if (need > 0) { + var z = new Array(need + 1).join('0'); + if (i < 0) + c = '-' + z + c.slice(1); + else + c = z + c; + } + } + } + N.push(c); + } + } else { + N = concatMap(n, function(el) { return expand(el, false) }); + } + + for (var j = 0; j < N.length; j++) { + for (var k = 0; k < post.length; k++) { + var expansion = pre + N[j] + post[k]; + if (!isTop || isSequence || expansion) + expansions.push(expansion); + } + } + + return expansions; +} + + +},{"balanced-match":10,"concat-map":13}],12:[function(require,module,exports){ + +},{}],13:[function(require,module,exports){ +module.exports = function (xs, fn) { + var res = []; + for (var i = 0; i < xs.length; i++) { + var x = fn(xs[i], i); + if (isArray(x)) res.push.apply(res, x); + else res.push(x); + } + return res; +}; + +var isArray = Array.isArray || function (xs) { + return Object.prototype.toString.call(xs) === '[object Array]'; +}; + +},{}],14:[function(require,module,exports){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +function EventEmitter() { + this._events = this._events || {}; + this._maxListeners = this._maxListeners || undefined; +} +module.exports = EventEmitter; + +// Backwards-compat with node 0.10.x +EventEmitter.EventEmitter = EventEmitter; + +EventEmitter.prototype._events = undefined; +EventEmitter.prototype._maxListeners = undefined; + +// By default EventEmitters will print a warning if more than 10 listeners are +// added to it. This is a useful default which helps finding memory leaks. +EventEmitter.defaultMaxListeners = 10; + +// Obviously not all Emitters should be limited to 10. This function allows +// that to be increased. Set to zero for unlimited. +EventEmitter.prototype.setMaxListeners = function(n) { + if (!isNumber(n) || n < 0 || isNaN(n)) + throw TypeError('n must be a positive number'); + this._maxListeners = n; + return this; +}; + +EventEmitter.prototype.emit = function(type) { + var er, handler, len, args, i, listeners; + + if (!this._events) + this._events = {}; + + // If there is no 'error' event listener then throw. + if (type === 'error') { + if (!this._events.error || + (isObject(this._events.error) && !this._events.error.length)) { + er = arguments[1]; + if (er instanceof Error) { + throw er; // Unhandled 'error' event + } + throw TypeError('Uncaught, unspecified "error" event.'); + } + } + + handler = this._events[type]; + + if (isUndefined(handler)) + return false; + + if (isFunction(handler)) { + switch (arguments.length) { + // fast cases + case 1: + handler.call(this); + break; + case 2: + handler.call(this, arguments[1]); + break; + case 3: + handler.call(this, arguments[1], arguments[2]); + break; + // slower + default: + len = arguments.length; + args = new Array(len - 1); + for (i = 1; i < len; i++) + args[i - 1] = arguments[i]; + handler.apply(this, args); + } + } else if (isObject(handler)) { + len = arguments.length; + args = new Array(len - 1); + for (i = 1; i < len; i++) + args[i - 1] = arguments[i]; + + listeners = handler.slice(); + len = listeners.length; + for (i = 0; i < len; i++) + listeners[i].apply(this, args); + } + + return true; +}; + +EventEmitter.prototype.addListener = function(type, listener) { + var m; + + if (!isFunction(listener)) + throw TypeError('listener must be a function'); + + if (!this._events) + this._events = {}; + + // To avoid recursion in the case that type === "newListener"! Before + // adding it to the listeners, first emit "newListener". + if (this._events.newListener) + this.emit('newListener', type, + isFunction(listener.listener) ? + listener.listener : listener); + + if (!this._events[type]) + // Optimize the case of one listener. Don't need the extra array object. + this._events[type] = listener; + else if (isObject(this._events[type])) + // If we've already got an array, just append. + this._events[type].push(listener); + else + // Adding the second element, need to change to array. + this._events[type] = [this._events[type], listener]; + + // Check for listener leak + if (isObject(this._events[type]) && !this._events[type].warned) { + var m; + if (!isUndefined(this._maxListeners)) { + m = this._maxListeners; + } else { + m = EventEmitter.defaultMaxListeners; + } + + if (m && m > 0 && this._events[type].length > m) { + this._events[type].warned = true; + console.error('(node) warning: possible EventEmitter memory ' + + 'leak detected. %d listeners added. ' + + 'Use emitter.setMaxListeners() to increase limit.', + this._events[type].length); + if (typeof console.trace === 'function') { + // not supported in IE 10 + console.trace(); + } + } + } + + return this; +}; + +EventEmitter.prototype.on = EventEmitter.prototype.addListener; + +EventEmitter.prototype.once = function(type, listener) { + if (!isFunction(listener)) + throw TypeError('listener must be a function'); + + var fired = false; + + function g() { + this.removeListener(type, g); + + if (!fired) { + fired = true; + listener.apply(this, arguments); + } + } + + g.listener = listener; + this.on(type, g); + + return this; +}; + +// emits a 'removeListener' event iff the listener was removed +EventEmitter.prototype.removeListener = function(type, listener) { + var list, position, length, i; + + if (!isFunction(listener)) + throw TypeError('listener must be a function'); + + if (!this._events || !this._events[type]) + return this; + + list = this._events[type]; + length = list.length; + position = -1; + + if (list === listener || + (isFunction(list.listener) && list.listener === listener)) { + delete this._events[type]; + if (this._events.removeListener) + this.emit('removeListener', type, listener); + + } else if (isObject(list)) { + for (i = length; i-- > 0;) { + if (list[i] === listener || + (list[i].listener && list[i].listener === listener)) { + position = i; + break; + } + } + + if (position < 0) + return this; + + if (list.length === 1) { + list.length = 0; + delete this._events[type]; + } else { + list.splice(position, 1); + } + + if (this._events.removeListener) + this.emit('removeListener', type, listener); + } + + return this; +}; + +EventEmitter.prototype.removeAllListeners = function(type) { + var key, listeners; + + if (!this._events) + return this; + + // not listening for removeListener, no need to emit + if (!this._events.removeListener) { + if (arguments.length === 0) + this._events = {}; + else if (this._events[type]) + delete this._events[type]; + return this; + } + + // emit removeListener for all listeners on all events + if (arguments.length === 0) { + for (key in this._events) { + if (key === 'removeListener') continue; + this.removeAllListeners(key); + } + this.removeAllListeners('removeListener'); + this._events = {}; + return this; + } + + listeners = this._events[type]; + + if (isFunction(listeners)) { + this.removeListener(type, listeners); + } else { + // LIFO order + while (listeners.length) + this.removeListener(type, listeners[listeners.length - 1]); + } + delete this._events[type]; + + return this; +}; + +EventEmitter.prototype.listeners = function(type) { + var ret; + if (!this._events || !this._events[type]) + ret = []; + else if (isFunction(this._events[type])) + ret = [this._events[type]]; + else + ret = this._events[type].slice(); + return ret; +}; + +EventEmitter.listenerCount = function(emitter, type) { + var ret; + if (!emitter._events || !emitter._events[type]) + ret = 0; + else if (isFunction(emitter._events[type])) + ret = 1; + else + ret = emitter._events[type].length; + return ret; +}; + +function isFunction(arg) { + return typeof arg === 'function'; +} + +function isNumber(arg) { + return typeof arg === 'number'; +} + +function isObject(arg) { + return typeof arg === 'object' && arg !== null; +} + +function isUndefined(arg) { + return arg === void 0; +} + +},{}],15:[function(require,module,exports){ +(function (process){ +exports.alphasort = alphasort +exports.alphasorti = alphasorti +exports.setopts = setopts +exports.ownProp = ownProp +exports.makeAbs = makeAbs +exports.finish = finish +exports.mark = mark +exports.isIgnored = isIgnored +exports.childrenIgnored = childrenIgnored + +function ownProp (obj, field) { + return Object.prototype.hasOwnProperty.call(obj, field) +} + +var path = require("path") +var minimatch = require("minimatch") +var isAbsolute = require("path-is-absolute") +var Minimatch = minimatch.Minimatch + +function alphasorti (a, b) { + return a.toLowerCase().localeCompare(b.toLowerCase()) +} + +function alphasort (a, b) { + return a.localeCompare(b) +} + +function setupIgnores (self, options) { + self.ignore = options.ignore || [] + + if (!Array.isArray(self.ignore)) + self.ignore = [self.ignore] + + if (self.ignore.length) { + self.ignore = self.ignore.map(ignoreMap) + } +} + +function ignoreMap (pattern) { + var gmatcher = null + if (pattern.slice(-3) === '/**') { + var gpattern = pattern.replace(/(\/\*\*)+$/, '') + gmatcher = new Minimatch(gpattern) + } + + return { + matcher: new Minimatch(pattern), + gmatcher: gmatcher + } +} + +function setopts (self, pattern, options) { + if (!options) + options = {} + + // base-matching: just use globstar for that. + if (options.matchBase && -1 === pattern.indexOf("/")) { + if (options.noglobstar) { + throw new Error("base matching requires globstar") + } + pattern = "**/" + pattern + } + + self.silent = !!options.silent + self.pattern = pattern + self.strict = options.strict !== false + self.realpath = !!options.realpath + self.realpathCache = options.realpathCache || Object.create(null) + self.follow = !!options.follow + self.dot = !!options.dot + self.mark = !!options.mark + self.nodir = !!options.nodir + if (self.nodir) + self.mark = true + self.sync = !!options.sync + self.nounique = !!options.nounique + self.nonull = !!options.nonull + self.nosort = !!options.nosort + self.nocase = !!options.nocase + self.stat = !!options.stat + self.noprocess = !!options.noprocess + + self.maxLength = options.maxLength || Infinity + self.cache = options.cache || Object.create(null) + self.statCache = options.statCache || Object.create(null) + self.symlinks = options.symlinks || Object.create(null) + + setupIgnores(self, options) + + self.changedCwd = false + var cwd = process.cwd() + if (!ownProp(options, "cwd")) + self.cwd = cwd + else { + self.cwd = options.cwd + self.changedCwd = path.resolve(options.cwd) !== cwd + } + + self.root = options.root || path.resolve(self.cwd, "/") + self.root = path.resolve(self.root) + if (process.platform === "win32") + self.root = self.root.replace(/\\/g, "/") + + self.nomount = !!options.nomount + + // disable comments and negation unless the user explicitly + // passes in false as the option. + options.nonegate = options.nonegate === false ? false : true + options.nocomment = options.nocomment === false ? false : true + deprecationWarning(options) + + self.minimatch = new Minimatch(pattern, options) + self.options = self.minimatch.options +} + +// TODO(isaacs): remove entirely in v6 +// exported to reset in tests +exports.deprecationWarned +function deprecationWarning(options) { + if (!options.nonegate || !options.nocomment) { + if (process.noDeprecation !== true && !exports.deprecationWarned) { + var msg = 'glob WARNING: comments and negation will be disabled in v6' + if (process.throwDeprecation) + throw new Error(msg) + else if (process.traceDeprecation) + console.trace(msg) + else + console.error(msg) + + exports.deprecationWarned = true + } + } +} + +function finish (self) { + var nou = self.nounique + var all = nou ? [] : Object.create(null) + + for (var i = 0, l = self.matches.length; i < l; i ++) { + var matches = self.matches[i] + if (!matches || Object.keys(matches).length === 0) { + if (self.nonull) { + // do like the shell, and spit out the literal glob + var literal = self.minimatch.globSet[i] + if (nou) + all.push(literal) + else + all[literal] = true + } + } else { + // had matches + var m = Object.keys(matches) + if (nou) + all.push.apply(all, m) + else + m.forEach(function (m) { + all[m] = true + }) + } + } + + if (!nou) + all = Object.keys(all) + + if (!self.nosort) + all = all.sort(self.nocase ? alphasorti : alphasort) + + // at *some* point we statted all of these + if (self.mark) { + for (var i = 0; i < all.length; i++) { + all[i] = self._mark(all[i]) + } + if (self.nodir) { + all = all.filter(function (e) { + return !(/\/$/.test(e)) + }) + } + } + + if (self.ignore.length) + all = all.filter(function(m) { + return !isIgnored(self, m) + }) + + self.found = all +} + +function mark (self, p) { + var abs = makeAbs(self, p) + var c = self.cache[abs] + var m = p + if (c) { + var isDir = c === 'DIR' || Array.isArray(c) + var slash = p.slice(-1) === '/' + + if (isDir && !slash) + m += '/' + else if (!isDir && slash) + m = m.slice(0, -1) + + if (m !== p) { + var mabs = makeAbs(self, m) + self.statCache[mabs] = self.statCache[abs] + self.cache[mabs] = self.cache[abs] + } + } + + return m +} + +// lotta situps... +function makeAbs (self, f) { + var abs = f + if (f.charAt(0) === '/') { + abs = path.join(self.root, f) + } else if (isAbsolute(f) || f === '') { + abs = f + } else if (self.changedCwd) { + abs = path.resolve(self.cwd, f) + } else { + abs = path.resolve(f) + } + return abs +} + + +// Return true, if pattern ends with globstar '**', for the accompanying parent directory. +// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents +function isIgnored (self, path) { + if (!self.ignore.length) + return false + + return self.ignore.some(function(item) { + return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path)) + }) +} + +function childrenIgnored (self, path) { + if (!self.ignore.length) + return false + + return self.ignore.some(function(item) { + return !!(item.gmatcher && item.gmatcher.match(path)) + }) +} + +}).call(this,require('_process')) +},{"_process":24,"minimatch":20,"path":22,"path-is-absolute":23}],16:[function(require,module,exports){ +(function (process){ +// Approach: +// +// 1. Get the minimatch set +// 2. For each pattern in the set, PROCESS(pattern, false) +// 3. Store matches per-set, then uniq them +// +// PROCESS(pattern, inGlobStar) +// Get the first [n] items from pattern that are all strings +// Join these together. This is PREFIX. +// If there is no more remaining, then stat(PREFIX) and +// add to matches if it succeeds. END. +// +// If inGlobStar and PREFIX is symlink and points to dir +// set ENTRIES = [] +// else readdir(PREFIX) as ENTRIES +// If fail, END +// +// with ENTRIES +// If pattern[n] is GLOBSTAR +// // handle the case where the globstar match is empty +// // by pruning it out, and testing the resulting pattern +// PROCESS(pattern[0..n] + pattern[n+1 .. $], false) +// // handle other cases. +// for ENTRY in ENTRIES (not dotfiles) +// // attach globstar + tail onto the entry +// // Mark that this entry is a globstar match +// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true) +// +// else // not globstar +// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot) +// Test ENTRY against pattern[n] +// If fails, continue +// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $]) +// +// Caveat: +// Cache all stats and readdirs results to minimize syscall. Since all +// we ever care about is existence and directory-ness, we can just keep +// `true` for files, and [children,...] for directories, or `false` for +// things that don't exist. + +module.exports = glob + +var fs = require('fs') +var minimatch = require('minimatch') +var Minimatch = minimatch.Minimatch +var inherits = require('inherits') +var EE = require('events').EventEmitter +var path = require('path') +var assert = require('assert') +var isAbsolute = require('path-is-absolute') +var globSync = require('./sync.js') +var common = require('./common.js') +var alphasort = common.alphasort +var alphasorti = common.alphasorti +var setopts = common.setopts +var ownProp = common.ownProp +var inflight = require('inflight') +var util = require('util') +var childrenIgnored = common.childrenIgnored +var isIgnored = common.isIgnored + +var once = require('once') + +function glob (pattern, options, cb) { + if (typeof options === 'function') cb = options, options = {} + if (!options) options = {} + + if (options.sync) { + if (cb) + throw new TypeError('callback provided to sync glob') + return globSync(pattern, options) + } + + return new Glob(pattern, options, cb) +} + +glob.sync = globSync +var GlobSync = glob.GlobSync = globSync.GlobSync + +// old api surface +glob.glob = glob + +glob.hasMagic = function (pattern, options_) { + var options = util._extend({}, options_) + options.noprocess = true + + var g = new Glob(pattern, options) + var set = g.minimatch.set + if (set.length > 1) + return true + + for (var j = 0; j < set[0].length; j++) { + if (typeof set[0][j] !== 'string') + return true + } + + return false +} + +glob.Glob = Glob +inherits(Glob, EE) +function Glob (pattern, options, cb) { + if (typeof options === 'function') { + cb = options + options = null + } + + if (options && options.sync) { + if (cb) + throw new TypeError('callback provided to sync glob') + return new GlobSync(pattern, options) + } + + if (!(this instanceof Glob)) + return new Glob(pattern, options, cb) + + setopts(this, pattern, options) + this._didRealPath = false + + // process each pattern in the minimatch set + var n = this.minimatch.set.length + + // The matches are stored as {: true,...} so that + // duplicates are automagically pruned. + // Later, we do an Object.keys() on these. + // Keep them as a list so we can fill in when nonull is set. + this.matches = new Array(n) + + if (typeof cb === 'function') { + cb = once(cb) + this.on('error', cb) + this.on('end', function (matches) { + cb(null, matches) + }) + } + + var self = this + var n = this.minimatch.set.length + this._processing = 0 + this.matches = new Array(n) + + this._emitQueue = [] + this._processQueue = [] + this.paused = false + + if (this.noprocess) + return this + + if (n === 0) + return done() + + for (var i = 0; i < n; i ++) { + this._process(this.minimatch.set[i], i, false, done) + } + + function done () { + --self._processing + if (self._processing <= 0) + self._finish() + } +} + +Glob.prototype._finish = function () { + assert(this instanceof Glob) + if (this.aborted) + return + + if (this.realpath && !this._didRealpath) + return this._realpath() + + common.finish(this) + this.emit('end', this.found) +} + +Glob.prototype._realpath = function () { + if (this._didRealpath) + return + + this._didRealpath = true + + var n = this.matches.length + if (n === 0) + return this._finish() + + var self = this + for (var i = 0; i < this.matches.length; i++) + this._realpathSet(i, next) + + function next () { + if (--n === 0) + self._finish() + } +} + +Glob.prototype._realpathSet = function (index, cb) { + var matchset = this.matches[index] + if (!matchset) + return cb() + + var found = Object.keys(matchset) + var self = this + var n = found.length + + if (n === 0) + return cb() + + var set = this.matches[index] = Object.create(null) + found.forEach(function (p, i) { + // If there's a problem with the stat, then it means that + // one or more of the links in the realpath couldn't be + // resolved. just return the abs value in that case. + p = self._makeAbs(p) + fs.realpath(p, self.realpathCache, function (er, real) { + if (!er) + set[real] = true + else if (er.syscall === 'stat') + set[p] = true + else + self.emit('error', er) // srsly wtf right here + + if (--n === 0) { + self.matches[index] = set + cb() + } + }) + }) +} + +Glob.prototype._mark = function (p) { + return common.mark(this, p) +} + +Glob.prototype._makeAbs = function (f) { + return common.makeAbs(this, f) +} + +Glob.prototype.abort = function () { + this.aborted = true + this.emit('abort') +} + +Glob.prototype.pause = function () { + if (!this.paused) { + this.paused = true + this.emit('pause') + } +} + +Glob.prototype.resume = function () { + if (this.paused) { + this.emit('resume') + this.paused = false + if (this._emitQueue.length) { + var eq = this._emitQueue.slice(0) + this._emitQueue.length = 0 + for (var i = 0; i < eq.length; i ++) { + var e = eq[i] + this._emitMatch(e[0], e[1]) + } + } + if (this._processQueue.length) { + var pq = this._processQueue.slice(0) + this._processQueue.length = 0 + for (var i = 0; i < pq.length; i ++) { + var p = pq[i] + this._processing-- + this._process(p[0], p[1], p[2], p[3]) + } + } + } +} + +Glob.prototype._process = function (pattern, index, inGlobStar, cb) { + assert(this instanceof Glob) + assert(typeof cb === 'function') + + if (this.aborted) + return + + this._processing++ + if (this.paused) { + this._processQueue.push([pattern, index, inGlobStar, cb]) + return + } + + //console.error('PROCESS %d', this._processing, pattern) + + // Get the first [n] parts of pattern that are all strings. + var n = 0 + while (typeof pattern[n] === 'string') { + n ++ + } + // now n is the index of the first one that is *not* a string. + + // see if there's anything else + var prefix + switch (n) { + // if not, then this is rather simple + case pattern.length: + this._processSimple(pattern.join('/'), index, cb) + return + + case 0: + // pattern *starts* with some non-trivial item. + // going to readdir(cwd), but not include the prefix in matches. + prefix = null + break + + default: + // pattern has some string bits in the front. + // whatever it starts with, whether that's 'absolute' like /foo/bar, + // or 'relative' like '../baz' + prefix = pattern.slice(0, n).join('/') + break + } + + var remain = pattern.slice(n) + + // get the list of entries. + var read + if (prefix === null) + read = '.' + else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { + if (!prefix || !isAbsolute(prefix)) + prefix = '/' + prefix + read = prefix + } else + read = prefix + + var abs = this._makeAbs(read) + + //if ignored, skip _processing + if (childrenIgnored(this, read)) + return cb() + + var isGlobStar = remain[0] === minimatch.GLOBSTAR + if (isGlobStar) + this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb) + else + this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb) +} + +Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) { + var self = this + this._readdir(abs, inGlobStar, function (er, entries) { + return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb) + }) +} + +Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { + + // if the abs isn't a dir, then nothing can match! + if (!entries) + return cb() + + // It will only match dot entries if it starts with a dot, or if + // dot is set. Stuff like @(.foo|.bar) isn't allowed. + var pn = remain[0] + var negate = !!this.minimatch.negate + var rawGlob = pn._glob + var dotOk = this.dot || rawGlob.charAt(0) === '.' + + var matchedEntries = [] + for (var i = 0; i < entries.length; i++) { + var e = entries[i] + if (e.charAt(0) !== '.' || dotOk) { + var m + if (negate && !prefix) { + m = !e.match(pn) + } else { + m = e.match(pn) + } + if (m) + matchedEntries.push(e) + } + } + + //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries) + + var len = matchedEntries.length + // If there are no matched entries, then nothing matches. + if (len === 0) + return cb() + + // if this is the last remaining pattern bit, then no need for + // an additional stat *unless* the user has specified mark or + // stat explicitly. We know they exist, since readdir returned + // them. + + if (remain.length === 1 && !this.mark && !this.stat) { + if (!this.matches[index]) + this.matches[index] = Object.create(null) + + for (var i = 0; i < len; i ++) { + var e = matchedEntries[i] + if (prefix) { + if (prefix !== '/') + e = prefix + '/' + e + else + e = prefix + e + } + + if (e.charAt(0) === '/' && !this.nomount) { + e = path.join(this.root, e) + } + this._emitMatch(index, e) + } + // This was the last one, and no stats were needed + return cb() + } + + // now test all matched entries as stand-ins for that part + // of the pattern. + remain.shift() + for (var i = 0; i < len; i ++) { + var e = matchedEntries[i] + var newPattern + if (prefix) { + if (prefix !== '/') + e = prefix + '/' + e + else + e = prefix + e + } + this._process([e].concat(remain), index, inGlobStar, cb) + } + cb() +} + +Glob.prototype._emitMatch = function (index, e) { + if (this.aborted) + return + + if (this.matches[index][e]) + return + + if (isIgnored(this, e)) + return + + if (this.paused) { + this._emitQueue.push([index, e]) + return + } + + var abs = this._makeAbs(e) + + if (this.nodir) { + var c = this.cache[abs] + if (c === 'DIR' || Array.isArray(c)) + return + } + + if (this.mark) + e = this._mark(e) + + this.matches[index][e] = true + + var st = this.statCache[abs] + if (st) + this.emit('stat', e, st) + + this.emit('match', e) +} + +Glob.prototype._readdirInGlobStar = function (abs, cb) { + if (this.aborted) + return + + // follow all symlinked directories forever + // just proceed as if this is a non-globstar situation + if (this.follow) + return this._readdir(abs, false, cb) + + var lstatkey = 'lstat\0' + abs + var self = this + var lstatcb = inflight(lstatkey, lstatcb_) + + if (lstatcb) + fs.lstat(abs, lstatcb) + + function lstatcb_ (er, lstat) { + if (er) + return cb() + + var isSym = lstat.isSymbolicLink() + self.symlinks[abs] = isSym + + // If it's not a symlink or a dir, then it's definitely a regular file. + // don't bother doing a readdir in that case. + if (!isSym && !lstat.isDirectory()) { + self.cache[abs] = 'FILE' + cb() + } else + self._readdir(abs, false, cb) + } +} + +Glob.prototype._readdir = function (abs, inGlobStar, cb) { + if (this.aborted) + return + + cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb) + if (!cb) + return + + //console.error('RD %j %j', +inGlobStar, abs) + if (inGlobStar && !ownProp(this.symlinks, abs)) + return this._readdirInGlobStar(abs, cb) + + if (ownProp(this.cache, abs)) { + var c = this.cache[abs] + if (!c || c === 'FILE') + return cb() + + if (Array.isArray(c)) + return cb(null, c) + } + + var self = this + fs.readdir(abs, readdirCb(this, abs, cb)) +} + +function readdirCb (self, abs, cb) { + return function (er, entries) { + if (er) + self._readdirError(abs, er, cb) + else + self._readdirEntries(abs, entries, cb) + } +} + +Glob.prototype._readdirEntries = function (abs, entries, cb) { + if (this.aborted) + return + + // if we haven't asked to stat everything, then just + // assume that everything in there exists, so we can avoid + // having to stat it a second time. + if (!this.mark && !this.stat) { + for (var i = 0; i < entries.length; i ++) { + var e = entries[i] + if (abs === '/') + e = abs + e + else + e = abs + '/' + e + this.cache[e] = true + } + } + + this.cache[abs] = entries + return cb(null, entries) +} + +Glob.prototype._readdirError = function (f, er, cb) { + if (this.aborted) + return + + // handle errors, and cache the information + switch (er.code) { + case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 + case 'ENOTDIR': // totally normal. means it *does* exist. + this.cache[this._makeAbs(f)] = 'FILE' + break + + case 'ENOENT': // not terribly unusual + case 'ELOOP': + case 'ENAMETOOLONG': + case 'UNKNOWN': + this.cache[this._makeAbs(f)] = false + break + + default: // some unusual error. Treat as failure. + this.cache[this._makeAbs(f)] = false + if (this.strict) { + this.emit('error', er) + // If the error is handled, then we abort + // if not, we threw out of here + this.abort() + } + if (!this.silent) + console.error('glob error', er) + break + } + + return cb() +} + +Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) { + var self = this + this._readdir(abs, inGlobStar, function (er, entries) { + self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb) + }) +} + + +Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { + //console.error('pgs2', prefix, remain[0], entries) + + // no entries means not a dir, so it can never have matches + // foo.txt/** doesn't match foo.txt + if (!entries) + return cb() + + // test without the globstar, and with every child both below + // and replacing the globstar. + var remainWithoutGlobStar = remain.slice(1) + var gspref = prefix ? [ prefix ] : [] + var noGlobStar = gspref.concat(remainWithoutGlobStar) + + // the noGlobStar pattern exits the inGlobStar state + this._process(noGlobStar, index, false, cb) + + var isSym = this.symlinks[abs] + var len = entries.length + + // If it's a symlink, and we're in a globstar, then stop + if (isSym && inGlobStar) + return cb() + + for (var i = 0; i < len; i++) { + var e = entries[i] + if (e.charAt(0) === '.' && !this.dot) + continue + + // these two cases enter the inGlobStar state + var instead = gspref.concat(entries[i], remainWithoutGlobStar) + this._process(instead, index, true, cb) + + var below = gspref.concat(entries[i], remain) + this._process(below, index, true, cb) + } + + cb() +} + +Glob.prototype._processSimple = function (prefix, index, cb) { + // XXX review this. Shouldn't it be doing the mounting etc + // before doing stat? kinda weird? + var self = this + this._stat(prefix, function (er, exists) { + self._processSimple2(prefix, index, er, exists, cb) + }) +} +Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) { + + //console.error('ps2', prefix, exists) + + if (!this.matches[index]) + this.matches[index] = Object.create(null) + + // If it doesn't exist, then just mark the lack of results + if (!exists) + return cb() + + if (prefix && isAbsolute(prefix) && !this.nomount) { + var trail = /[\/\\]$/.test(prefix) + if (prefix.charAt(0) === '/') { + prefix = path.join(this.root, prefix) + } else { + prefix = path.resolve(this.root, prefix) + if (trail) + prefix += '/' + } + } + + if (process.platform === 'win32') + prefix = prefix.replace(/\\/g, '/') + + // Mark this as a match + this._emitMatch(index, prefix) + cb() +} + +// Returns either 'DIR', 'FILE', or false +Glob.prototype._stat = function (f, cb) { + var abs = this._makeAbs(f) + var needDir = f.slice(-1) === '/' + + if (f.length > this.maxLength) + return cb() + + if (!this.stat && ownProp(this.cache, abs)) { + var c = this.cache[abs] + + if (Array.isArray(c)) + c = 'DIR' + + // It exists, but maybe not how we need it + if (!needDir || c === 'DIR') + return cb(null, c) + + if (needDir && c === 'FILE') + return cb() + + // otherwise we have to stat, because maybe c=true + // if we know it exists, but not what it is. + } + + var exists + var stat = this.statCache[abs] + if (stat !== undefined) { + if (stat === false) + return cb(null, stat) + else { + var type = stat.isDirectory() ? 'DIR' : 'FILE' + if (needDir && type === 'FILE') + return cb() + else + return cb(null, type, stat) + } + } + + var self = this + var statcb = inflight('stat\0' + abs, lstatcb_) + if (statcb) + fs.lstat(abs, statcb) + + function lstatcb_ (er, lstat) { + if (lstat && lstat.isSymbolicLink()) { + // If it's a symlink, then treat it as the target, unless + // the target does not exist, then treat it as a file. + return fs.stat(abs, function (er, stat) { + if (er) + self._stat2(f, abs, null, lstat, cb) + else + self._stat2(f, abs, er, stat, cb) + }) + } else { + self._stat2(f, abs, er, lstat, cb) + } + } +} + +Glob.prototype._stat2 = function (f, abs, er, stat, cb) { + if (er) { + this.statCache[abs] = false + return cb() + } + + var needDir = f.slice(-1) === '/' + this.statCache[abs] = stat + + if (abs.slice(-1) === '/' && !stat.isDirectory()) + return cb(null, false, stat) + + var c = stat.isDirectory() ? 'DIR' : 'FILE' + this.cache[abs] = this.cache[abs] || c + + if (needDir && c !== 'DIR') + return cb() + + return cb(null, c, stat) +} + +}).call(this,require('_process')) +},{"./common.js":15,"./sync.js":17,"_process":24,"assert":9,"events":14,"fs":12,"inflight":18,"inherits":19,"minimatch":20,"once":21,"path":22,"path-is-absolute":23,"util":28}],17:[function(require,module,exports){ +(function (process){ +module.exports = globSync +globSync.GlobSync = GlobSync + +var fs = require('fs') +var minimatch = require('minimatch') +var Minimatch = minimatch.Minimatch +var Glob = require('./glob.js').Glob +var util = require('util') +var path = require('path') +var assert = require('assert') +var isAbsolute = require('path-is-absolute') +var common = require('./common.js') +var alphasort = common.alphasort +var alphasorti = common.alphasorti +var setopts = common.setopts +var ownProp = common.ownProp +var childrenIgnored = common.childrenIgnored + +function globSync (pattern, options) { + if (typeof options === 'function' || arguments.length === 3) + throw new TypeError('callback provided to sync glob\n'+ + 'See: https://github.com/isaacs/node-glob/issues/167') + + return new GlobSync(pattern, options).found +} + +function GlobSync (pattern, options) { + if (!pattern) + throw new Error('must provide pattern') + + if (typeof options === 'function' || arguments.length === 3) + throw new TypeError('callback provided to sync glob\n'+ + 'See: https://github.com/isaacs/node-glob/issues/167') + + if (!(this instanceof GlobSync)) + return new GlobSync(pattern, options) + + setopts(this, pattern, options) + + if (this.noprocess) + return this + + var n = this.minimatch.set.length + this.matches = new Array(n) + for (var i = 0; i < n; i ++) { + this._process(this.minimatch.set[i], i, false) + } + this._finish() +} + +GlobSync.prototype._finish = function () { + assert(this instanceof GlobSync) + if (this.realpath) { + var self = this + this.matches.forEach(function (matchset, index) { + var set = self.matches[index] = Object.create(null) + for (var p in matchset) { + try { + p = self._makeAbs(p) + var real = fs.realpathSync(p, self.realpathCache) + set[real] = true + } catch (er) { + if (er.syscall === 'stat') + set[self._makeAbs(p)] = true + else + throw er + } + } + }) + } + common.finish(this) +} + + +GlobSync.prototype._process = function (pattern, index, inGlobStar) { + assert(this instanceof GlobSync) + + // Get the first [n] parts of pattern that are all strings. + var n = 0 + while (typeof pattern[n] === 'string') { + n ++ + } + // now n is the index of the first one that is *not* a string. + + // See if there's anything else + var prefix + switch (n) { + // if not, then this is rather simple + case pattern.length: + this._processSimple(pattern.join('/'), index) + return + + case 0: + // pattern *starts* with some non-trivial item. + // going to readdir(cwd), but not include the prefix in matches. + prefix = null + break + + default: + // pattern has some string bits in the front. + // whatever it starts with, whether that's 'absolute' like /foo/bar, + // or 'relative' like '../baz' + prefix = pattern.slice(0, n).join('/') + break + } + + var remain = pattern.slice(n) + + // get the list of entries. + var read + if (prefix === null) + read = '.' + else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { + if (!prefix || !isAbsolute(prefix)) + prefix = '/' + prefix + read = prefix + } else + read = prefix + + var abs = this._makeAbs(read) + + //if ignored, skip processing + if (childrenIgnored(this, read)) + return + + var isGlobStar = remain[0] === minimatch.GLOBSTAR + if (isGlobStar) + this._processGlobStar(prefix, read, abs, remain, index, inGlobStar) + else + this._processReaddir(prefix, read, abs, remain, index, inGlobStar) +} + + +GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) { + var entries = this._readdir(abs, inGlobStar) + + // if the abs isn't a dir, then nothing can match! + if (!entries) + return + + // It will only match dot entries if it starts with a dot, or if + // dot is set. Stuff like @(.foo|.bar) isn't allowed. + var pn = remain[0] + var negate = !!this.minimatch.negate + var rawGlob = pn._glob + var dotOk = this.dot || rawGlob.charAt(0) === '.' + + var matchedEntries = [] + for (var i = 0; i < entries.length; i++) { + var e = entries[i] + if (e.charAt(0) !== '.' || dotOk) { + var m + if (negate && !prefix) { + m = !e.match(pn) + } else { + m = e.match(pn) + } + if (m) + matchedEntries.push(e) + } + } + + var len = matchedEntries.length + // If there are no matched entries, then nothing matches. + if (len === 0) + return + + // if this is the last remaining pattern bit, then no need for + // an additional stat *unless* the user has specified mark or + // stat explicitly. We know they exist, since readdir returned + // them. + + if (remain.length === 1 && !this.mark && !this.stat) { + if (!this.matches[index]) + this.matches[index] = Object.create(null) + + for (var i = 0; i < len; i ++) { + var e = matchedEntries[i] + if (prefix) { + if (prefix.slice(-1) !== '/') + e = prefix + '/' + e + else + e = prefix + e + } + + if (e.charAt(0) === '/' && !this.nomount) { + e = path.join(this.root, e) + } + this.matches[index][e] = true + } + // This was the last one, and no stats were needed + return + } + + // now test all matched entries as stand-ins for that part + // of the pattern. + remain.shift() + for (var i = 0; i < len; i ++) { + var e = matchedEntries[i] + var newPattern + if (prefix) + newPattern = [prefix, e] + else + newPattern = [e] + this._process(newPattern.concat(remain), index, inGlobStar) + } +} + + +GlobSync.prototype._emitMatch = function (index, e) { + var abs = this._makeAbs(e) + if (this.mark) + e = this._mark(e) + + if (this.matches[index][e]) + return + + if (this.nodir) { + var c = this.cache[this._makeAbs(e)] + if (c === 'DIR' || Array.isArray(c)) + return + } + + this.matches[index][e] = true + if (this.stat) + this._stat(e) +} + + +GlobSync.prototype._readdirInGlobStar = function (abs) { + // follow all symlinked directories forever + // just proceed as if this is a non-globstar situation + if (this.follow) + return this._readdir(abs, false) + + var entries + var lstat + var stat + try { + lstat = fs.lstatSync(abs) + } catch (er) { + // lstat failed, doesn't exist + return null + } + + var isSym = lstat.isSymbolicLink() + this.symlinks[abs] = isSym + + // If it's not a symlink or a dir, then it's definitely a regular file. + // don't bother doing a readdir in that case. + if (!isSym && !lstat.isDirectory()) + this.cache[abs] = 'FILE' + else + entries = this._readdir(abs, false) + + return entries +} + +GlobSync.prototype._readdir = function (abs, inGlobStar) { + var entries + + if (inGlobStar && !ownProp(this.symlinks, abs)) + return this._readdirInGlobStar(abs) + + if (ownProp(this.cache, abs)) { + var c = this.cache[abs] + if (!c || c === 'FILE') + return null + + if (Array.isArray(c)) + return c + } + + try { + return this._readdirEntries(abs, fs.readdirSync(abs)) + } catch (er) { + this._readdirError(abs, er) + return null + } +} + +GlobSync.prototype._readdirEntries = function (abs, entries) { + // if we haven't asked to stat everything, then just + // assume that everything in there exists, so we can avoid + // having to stat it a second time. + if (!this.mark && !this.stat) { + for (var i = 0; i < entries.length; i ++) { + var e = entries[i] + if (abs === '/') + e = abs + e + else + e = abs + '/' + e + this.cache[e] = true + } + } + + this.cache[abs] = entries + + // mark and cache dir-ness + return entries +} + +GlobSync.prototype._readdirError = function (f, er) { + // handle errors, and cache the information + switch (er.code) { + case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 + case 'ENOTDIR': // totally normal. means it *does* exist. + this.cache[this._makeAbs(f)] = 'FILE' + break + + case 'ENOENT': // not terribly unusual + case 'ELOOP': + case 'ENAMETOOLONG': + case 'UNKNOWN': + this.cache[this._makeAbs(f)] = false + break + + default: // some unusual error. Treat as failure. + this.cache[this._makeAbs(f)] = false + if (this.strict) + throw er + if (!this.silent) + console.error('glob error', er) + break + } +} + +GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) { + + var entries = this._readdir(abs, inGlobStar) + + // no entries means not a dir, so it can never have matches + // foo.txt/** doesn't match foo.txt + if (!entries) + return + + // test without the globstar, and with every child both below + // and replacing the globstar. + var remainWithoutGlobStar = remain.slice(1) + var gspref = prefix ? [ prefix ] : [] + var noGlobStar = gspref.concat(remainWithoutGlobStar) + + // the noGlobStar pattern exits the inGlobStar state + this._process(noGlobStar, index, false) + + var len = entries.length + var isSym = this.symlinks[abs] + + // If it's a symlink, and we're in a globstar, then stop + if (isSym && inGlobStar) + return + + for (var i = 0; i < len; i++) { + var e = entries[i] + if (e.charAt(0) === '.' && !this.dot) + continue + + // these two cases enter the inGlobStar state + var instead = gspref.concat(entries[i], remainWithoutGlobStar) + this._process(instead, index, true) + + var below = gspref.concat(entries[i], remain) + this._process(below, index, true) + } +} + +GlobSync.prototype._processSimple = function (prefix, index) { + // XXX review this. Shouldn't it be doing the mounting etc + // before doing stat? kinda weird? + var exists = this._stat(prefix) + + if (!this.matches[index]) + this.matches[index] = Object.create(null) + + // If it doesn't exist, then just mark the lack of results + if (!exists) + return + + if (prefix && isAbsolute(prefix) && !this.nomount) { + var trail = /[\/\\]$/.test(prefix) + if (prefix.charAt(0) === '/') { + prefix = path.join(this.root, prefix) + } else { + prefix = path.resolve(this.root, prefix) + if (trail) + prefix += '/' + } + } + + if (process.platform === 'win32') + prefix = prefix.replace(/\\/g, '/') + + // Mark this as a match + this.matches[index][prefix] = true +} + +// Returns either 'DIR', 'FILE', or false +GlobSync.prototype._stat = function (f) { + var abs = this._makeAbs(f) + var needDir = f.slice(-1) === '/' + + if (f.length > this.maxLength) + return false + + if (!this.stat && ownProp(this.cache, abs)) { + var c = this.cache[abs] + + if (Array.isArray(c)) + c = 'DIR' + + // It exists, but maybe not how we need it + if (!needDir || c === 'DIR') + return c + + if (needDir && c === 'FILE') + return false + + // otherwise we have to stat, because maybe c=true + // if we know it exists, but not what it is. + } + + var exists + var stat = this.statCache[abs] + if (!stat) { + var lstat + try { + lstat = fs.lstatSync(abs) + } catch (er) { + return false + } + + if (lstat.isSymbolicLink()) { + try { + stat = fs.statSync(abs) + } catch (er) { + stat = lstat + } + } else { + stat = lstat + } + } + + this.statCache[abs] = stat + + var c = stat.isDirectory() ? 'DIR' : 'FILE' + this.cache[abs] = this.cache[abs] || c + + if (needDir && c !== 'DIR') + return false + + return c +} + +GlobSync.prototype._mark = function (p) { + return common.mark(this, p) +} + +GlobSync.prototype._makeAbs = function (f) { + return common.makeAbs(this, f) +} + +}).call(this,require('_process')) +},{"./common.js":15,"./glob.js":16,"_process":24,"assert":9,"fs":12,"minimatch":20,"path":22,"path-is-absolute":23,"util":28}],18:[function(require,module,exports){ +(function (process){ +var wrappy = require('wrappy') +var reqs = Object.create(null) +var once = require('once') + +module.exports = wrappy(inflight) + +function inflight (key, cb) { + if (reqs[key]) { + reqs[key].push(cb) + return null + } else { + reqs[key] = [cb] + return makeres(key) + } +} + +function makeres (key) { + return once(function RES () { + var cbs = reqs[key] + var len = cbs.length + var args = slice(arguments) + + // XXX It's somewhat ambiguous whether a new callback added in this + // pass should be queued for later execution if something in the + // list of callbacks throws, or if it should just be discarded. + // However, it's such an edge case that it hardly matters, and either + // choice is likely as surprising as the other. + // As it happens, we do go ahead and schedule it for later execution. + try { + for (var i = 0; i < len; i++) { + cbs[i].apply(null, args) + } + } finally { + if (cbs.length > len) { + // added more in the interim. + // de-zalgo, just in case, but don't call again. + cbs.splice(0, len) + process.nextTick(function () { + RES.apply(null, args) + }) + } else { + delete reqs[key] + } + } + }) +} + +function slice (args) { + var length = args.length + var array = [] + + for (var i = 0; i < length; i++) array[i] = args[i] + return array +} + +}).call(this,require('_process')) +},{"_process":24,"once":21,"wrappy":29}],19:[function(require,module,exports){ +if (typeof Object.create === 'function') { + // implementation from standard node.js 'util' module + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + }; +} else { + // old school shim for old browsers + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + var TempCtor = function () {} + TempCtor.prototype = superCtor.prototype + ctor.prototype = new TempCtor() + ctor.prototype.constructor = ctor + } +} + +},{}],20:[function(require,module,exports){ +module.exports = minimatch +minimatch.Minimatch = Minimatch + +var path = { sep: '/' } +try { + path = require('path') +} catch (er) {} + +var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {} +var expand = require('brace-expansion') + +var plTypes = { + '!': { open: '(?:(?!(?:', close: '))[^/]*?)'}, + '?': { open: '(?:', close: ')?' }, + '+': { open: '(?:', close: ')+' }, + '*': { open: '(?:', close: ')*' }, + '@': { open: '(?:', close: ')' } +} + +// any single thing other than / +// don't need to escape / when using new RegExp() +var qmark = '[^/]' + +// * => any number of characters +var star = qmark + '*?' + +// ** when dots are allowed. Anything goes, except .. and . +// not (^ or / followed by one or two dots followed by $ or /), +// followed by anything, any number of times. +var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?' + +// not a ^ or / followed by a dot, +// followed by anything, any number of times. +var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?' + +// characters that need to be escaped in RegExp. +var reSpecials = charSet('().*{}+?[]^$\\!') + +// "abc" -> { a:true, b:true, c:true } +function charSet (s) { + return s.split('').reduce(function (set, c) { + set[c] = true + return set + }, {}) +} + +// normalizes slashes. +var slashSplit = /\/+/ + +minimatch.filter = filter +function filter (pattern, options) { + options = options || {} + return function (p, i, list) { + return minimatch(p, pattern, options) + } +} + +function ext (a, b) { + a = a || {} + b = b || {} + var t = {} + Object.keys(b).forEach(function (k) { + t[k] = b[k] + }) + Object.keys(a).forEach(function (k) { + t[k] = a[k] + }) + return t +} + +minimatch.defaults = function (def) { + if (!def || !Object.keys(def).length) return minimatch + + var orig = minimatch + + var m = function minimatch (p, pattern, options) { + return orig.minimatch(p, pattern, ext(def, options)) + } + + m.Minimatch = function Minimatch (pattern, options) { + return new orig.Minimatch(pattern, ext(def, options)) + } + + return m +} + +Minimatch.defaults = function (def) { + if (!def || !Object.keys(def).length) return Minimatch + return minimatch.defaults(def).Minimatch +} + +function minimatch (p, pattern, options) { + if (typeof pattern !== 'string') { + throw new TypeError('glob pattern string required') + } + + if (!options) options = {} + + // shortcut: comments match nothing. + if (!options.nocomment && pattern.charAt(0) === '#') { + return false + } + + // "" only matches "" + if (pattern.trim() === '') return p === '' + + return new Minimatch(pattern, options).match(p) +} + +function Minimatch (pattern, options) { + if (!(this instanceof Minimatch)) { + return new Minimatch(pattern, options) + } + + if (typeof pattern !== 'string') { + throw new TypeError('glob pattern string required') + } + + if (!options) options = {} + pattern = pattern.trim() + + // windows support: need to use /, not \ + if (path.sep !== '/') { + pattern = pattern.split(path.sep).join('/') + } + + this.options = options + this.set = [] + this.pattern = pattern + this.regexp = null + this.negate = false + this.comment = false + this.empty = false + + // make the set of regexps etc. + this.make() +} + +Minimatch.prototype.debug = function () {} + +Minimatch.prototype.make = make +function make () { + // don't do it more than once. + if (this._made) return + + var pattern = this.pattern + var options = this.options + + // empty patterns and comments match nothing. + if (!options.nocomment && pattern.charAt(0) === '#') { + this.comment = true + return + } + if (!pattern) { + this.empty = true + return + } + + // step 1: figure out negation, etc. + this.parseNegate() + + // step 2: expand braces + var set = this.globSet = this.braceExpand() + + if (options.debug) this.debug = console.error + + this.debug(this.pattern, set) + + // step 3: now we have a set, so turn each one into a series of path-portion + // matching patterns. + // These will be regexps, except in the case of "**", which is + // set to the GLOBSTAR object for globstar behavior, + // and will not contain any / characters + set = this.globParts = set.map(function (s) { + return s.split(slashSplit) + }) + + this.debug(this.pattern, set) + + // glob --> regexps + set = set.map(function (s, si, set) { + return s.map(this.parse, this) + }, this) + + this.debug(this.pattern, set) + + // filter out everything that didn't compile properly. + set = set.filter(function (s) { + return s.indexOf(false) === -1 + }) + + this.debug(this.pattern, set) + + this.set = set +} + +Minimatch.prototype.parseNegate = parseNegate +function parseNegate () { + var pattern = this.pattern + var negate = false + var options = this.options + var negateOffset = 0 + + if (options.nonegate) return + + for (var i = 0, l = pattern.length + ; i < l && pattern.charAt(i) === '!' + ; i++) { + negate = !negate + negateOffset++ + } + + if (negateOffset) this.pattern = pattern.substr(negateOffset) + this.negate = negate +} + +// Brace expansion: +// a{b,c}d -> abd acd +// a{b,}c -> abc ac +// a{0..3}d -> a0d a1d a2d a3d +// a{b,c{d,e}f}g -> abg acdfg acefg +// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg +// +// Invalid sets are not expanded. +// a{2..}b -> a{2..}b +// a{b}c -> a{b}c +minimatch.braceExpand = function (pattern, options) { + return braceExpand(pattern, options) +} + +Minimatch.prototype.braceExpand = braceExpand + +function braceExpand (pattern, options) { + if (!options) { + if (this instanceof Minimatch) { + options = this.options + } else { + options = {} + } + } + + pattern = typeof pattern === 'undefined' + ? this.pattern : pattern + + if (typeof pattern === 'undefined') { + throw new TypeError('undefined pattern') + } + + if (options.nobrace || + !pattern.match(/\{.*\}/)) { + // shortcut. no need to expand. + return [pattern] + } + + return expand(pattern) +} + +// parse a component of the expanded set. +// At this point, no pattern may contain "/" in it +// so we're going to return a 2d array, where each entry is the full +// pattern, split on '/', and then turned into a regular expression. +// A regexp is made at the end which joins each array with an +// escaped /, and another full one which joins each regexp with |. +// +// Following the lead of Bash 4.1, note that "**" only has special meaning +// when it is the *only* thing in a path portion. Otherwise, any series +// of * is equivalent to a single *. Globstar behavior is enabled by +// default, and can be disabled by setting options.noglobstar. +Minimatch.prototype.parse = parse +var SUBPARSE = {} +function parse (pattern, isSub) { + if (pattern.length > 1024 * 64) { + throw new TypeError('pattern is too long') + } + + var options = this.options + + // shortcuts + if (!options.noglobstar && pattern === '**') return GLOBSTAR + if (pattern === '') return '' + + var re = '' + var hasMagic = !!options.nocase + var escaping = false + // ? => one single character + var patternListStack = [] + var negativeLists = [] + var stateChar + var inClass = false + var reClassStart = -1 + var classStart = -1 + // . and .. never match anything that doesn't start with ., + // even when options.dot is set. + var patternStart = pattern.charAt(0) === '.' ? '' // anything + // not (start or / followed by . or .. followed by / or end) + : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))' + : '(?!\\.)' + var self = this + + function clearStateChar () { + if (stateChar) { + // we had some state-tracking character + // that wasn't consumed by this pass. + switch (stateChar) { + case '*': + re += star + hasMagic = true + break + case '?': + re += qmark + hasMagic = true + break + default: + re += '\\' + stateChar + break + } + self.debug('clearStateChar %j %j', stateChar, re) + stateChar = false + } + } + + for (var i = 0, len = pattern.length, c + ; (i < len) && (c = pattern.charAt(i)) + ; i++) { + this.debug('%s\t%s %s %j', pattern, i, re, c) + + // skip over any that are escaped. + if (escaping && reSpecials[c]) { + re += '\\' + c + escaping = false + continue + } + + switch (c) { + case '/': + // completely not allowed, even escaped. + // Should already be path-split by now. + return false + + case '\\': + clearStateChar() + escaping = true + continue + + // the various stateChar values + // for the "extglob" stuff. + case '?': + case '*': + case '+': + case '@': + case '!': + this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c) + + // all of those are literals inside a class, except that + // the glob [!a] means [^a] in regexp + if (inClass) { + this.debug(' in class') + if (c === '!' && i === classStart + 1) c = '^' + re += c + continue + } + + // if we already have a stateChar, then it means + // that there was something like ** or +? in there. + // Handle the stateChar, then proceed with this one. + self.debug('call clearStateChar %j', stateChar) + clearStateChar() + stateChar = c + // if extglob is disabled, then +(asdf|foo) isn't a thing. + // just clear the statechar *now*, rather than even diving into + // the patternList stuff. + if (options.noext) clearStateChar() + continue + + case '(': + if (inClass) { + re += '(' + continue + } + + if (!stateChar) { + re += '\\(' + continue + } + + patternListStack.push({ + type: stateChar, + start: i - 1, + reStart: re.length, + open: plTypes[stateChar].open, + close: plTypes[stateChar].close + }) + // negation is (?:(?!js)[^/]*) + re += stateChar === '!' ? '(?:(?!(?:' : '(?:' + this.debug('plType %j %j', stateChar, re) + stateChar = false + continue + + case ')': + if (inClass || !patternListStack.length) { + re += '\\)' + continue + } + + clearStateChar() + hasMagic = true + var pl = patternListStack.pop() + // negation is (?:(?!js)[^/]*) + // The others are (?:) + re += pl.close + if (pl.type === '!') { + negativeLists.push(pl) + } + pl.reEnd = re.length + continue + + case '|': + if (inClass || !patternListStack.length || escaping) { + re += '\\|' + escaping = false + continue + } + + clearStateChar() + re += '|' + continue + + // these are mostly the same in regexp and glob + case '[': + // swallow any state-tracking char before the [ + clearStateChar() + + if (inClass) { + re += '\\' + c + continue + } + + inClass = true + classStart = i + reClassStart = re.length + re += c + continue + + case ']': + // a right bracket shall lose its special + // meaning and represent itself in + // a bracket expression if it occurs + // first in the list. -- POSIX.2 2.8.3.2 + if (i === classStart + 1 || !inClass) { + re += '\\' + c + escaping = false + continue + } + + // handle the case where we left a class open. + // "[z-a]" is valid, equivalent to "\[z-a\]" + if (inClass) { + // split where the last [ was, make sure we don't have + // an invalid re. if so, re-walk the contents of the + // would-be class to re-translate any characters that + // were passed through as-is + // TODO: It would probably be faster to determine this + // without a try/catch and a new RegExp, but it's tricky + // to do safely. For now, this is safe and works. + var cs = pattern.substring(classStart + 1, i) + try { + RegExp('[' + cs + ']') + } catch (er) { + // not a valid class! + var sp = this.parse(cs, SUBPARSE) + re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]' + hasMagic = hasMagic || sp[1] + inClass = false + continue + } + } + + // finish up the class. + hasMagic = true + inClass = false + re += c + continue + + default: + // swallow any state char that wasn't consumed + clearStateChar() + + if (escaping) { + // no need + escaping = false + } else if (reSpecials[c] + && !(c === '^' && inClass)) { + re += '\\' + } + + re += c + + } // switch + } // for + + // handle the case where we left a class open. + // "[abc" is valid, equivalent to "\[abc" + if (inClass) { + // split where the last [ was, and escape it + // this is a huge pita. We now have to re-walk + // the contents of the would-be class to re-translate + // any characters that were passed through as-is + cs = pattern.substr(classStart + 1) + sp = this.parse(cs, SUBPARSE) + re = re.substr(0, reClassStart) + '\\[' + sp[0] + hasMagic = hasMagic || sp[1] + } + + // handle the case where we had a +( thing at the *end* + // of the pattern. + // each pattern list stack adds 3 chars, and we need to go through + // and escape any | chars that were passed through as-is for the regexp. + // Go through and escape them, taking care not to double-escape any + // | chars that were already escaped. + for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) { + var tail = re.slice(pl.reStart + pl.open.length) + this.debug('setting tail', re, pl) + // maybe some even number of \, then maybe 1 \, followed by a | + tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, function (_, $1, $2) { + if (!$2) { + // the | isn't already escaped, so escape it. + $2 = '\\' + } + + // need to escape all those slashes *again*, without escaping the + // one that we need for escaping the | character. As it works out, + // escaping an even number of slashes can be done by simply repeating + // it exactly after itself. That's why this trick works. + // + // I am sorry that you have to see this. + return $1 + $1 + $2 + '|' + }) + + this.debug('tail=%j\n %s', tail, tail, pl, re) + var t = pl.type === '*' ? star + : pl.type === '?' ? qmark + : '\\' + pl.type + + hasMagic = true + re = re.slice(0, pl.reStart) + t + '\\(' + tail + } + + // handle trailing things that only matter at the very end. + clearStateChar() + if (escaping) { + // trailing \\ + re += '\\\\' + } + + // only need to apply the nodot start if the re starts with + // something that could conceivably capture a dot + var addPatternStart = false + switch (re.charAt(0)) { + case '.': + case '[': + case '(': addPatternStart = true + } + + // Hack to work around lack of negative lookbehind in JS + // A pattern like: *.!(x).!(y|z) needs to ensure that a name + // like 'a.xyz.yz' doesn't match. So, the first negative + // lookahead, has to look ALL the way ahead, to the end of + // the pattern. + for (var n = negativeLists.length - 1; n > -1; n--) { + var nl = negativeLists[n] + + var nlBefore = re.slice(0, nl.reStart) + var nlFirst = re.slice(nl.reStart, nl.reEnd - 8) + var nlLast = re.slice(nl.reEnd - 8, nl.reEnd) + var nlAfter = re.slice(nl.reEnd) + + nlLast += nlAfter + + // Handle nested stuff like *(*.js|!(*.json)), where open parens + // mean that we should *not* include the ) in the bit that is considered + // "after" the negated section. + var openParensBefore = nlBefore.split('(').length - 1 + var cleanAfter = nlAfter + for (i = 0; i < openParensBefore; i++) { + cleanAfter = cleanAfter.replace(/\)[+*?]?/, '') + } + nlAfter = cleanAfter + + var dollar = '' + if (nlAfter === '' && isSub !== SUBPARSE) { + dollar = '$' + } + var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast + re = newRe + } + + // if the re is not "" at this point, then we need to make sure + // it doesn't match against an empty path part. + // Otherwise a/* will match a/, which it should not. + if (re !== '' && hasMagic) { + re = '(?=.)' + re + } + + if (addPatternStart) { + re = patternStart + re + } + + // parsing just a piece of a larger pattern. + if (isSub === SUBPARSE) { + return [re, hasMagic] + } + + // skip the regexp for non-magical patterns + // unescape anything in it, though, so that it'll be + // an exact match against a file etc. + if (!hasMagic) { + return globUnescape(pattern) + } + + var flags = options.nocase ? 'i' : '' + try { + var regExp = new RegExp('^' + re + '$', flags) + } catch (er) { + // If it was an invalid regular expression, then it can't match + // anything. This trick looks for a character after the end of + // the string, which is of course impossible, except in multi-line + // mode, but it's not a /m regex. + return new RegExp('$.') + } + + regExp._glob = pattern + regExp._src = re + + return regExp +} + +minimatch.makeRe = function (pattern, options) { + return new Minimatch(pattern, options || {}).makeRe() +} + +Minimatch.prototype.makeRe = makeRe +function makeRe () { + if (this.regexp || this.regexp === false) return this.regexp + + // at this point, this.set is a 2d array of partial + // pattern strings, or "**". + // + // It's better to use .match(). This function shouldn't + // be used, really, but it's pretty convenient sometimes, + // when you just want to work with a regex. + var set = this.set + + if (!set.length) { + this.regexp = false + return this.regexp + } + var options = this.options + + var twoStar = options.noglobstar ? star + : options.dot ? twoStarDot + : twoStarNoDot + var flags = options.nocase ? 'i' : '' + + var re = set.map(function (pattern) { + return pattern.map(function (p) { + return (p === GLOBSTAR) ? twoStar + : (typeof p === 'string') ? regExpEscape(p) + : p._src + }).join('\\\/') + }).join('|') + + // must match entire pattern + // ending in a * or ** will make it less strict. + re = '^(?:' + re + ')$' + + // can match anything, as long as it's not this. + if (this.negate) re = '^(?!' + re + ').*$' + + try { + this.regexp = new RegExp(re, flags) + } catch (ex) { + this.regexp = false + } + return this.regexp +} + +minimatch.match = function (list, pattern, options) { + options = options || {} + var mm = new Minimatch(pattern, options) + list = list.filter(function (f) { + return mm.match(f) + }) + if (mm.options.nonull && !list.length) { + list.push(pattern) + } + return list +} + +Minimatch.prototype.match = match +function match (f, partial) { + this.debug('match', f, this.pattern) + // short-circuit in the case of busted things. + // comments, etc. + if (this.comment) return false + if (this.empty) return f === '' + + if (f === '/' && partial) return true + + var options = this.options + + // windows: need to use /, not \ + if (path.sep !== '/') { + f = f.split(path.sep).join('/') + } + + // treat the test path as a set of pathparts. + f = f.split(slashSplit) + this.debug(this.pattern, 'split', f) + + // just ONE of the pattern sets in this.set needs to match + // in order for it to be valid. If negating, then just one + // match means that we have failed. + // Either way, return on the first hit. + + var set = this.set + this.debug(this.pattern, 'set', set) + + // Find the basename of the path by looking for the last non-empty segment + var filename + var i + for (i = f.length - 1; i >= 0; i--) { + filename = f[i] + if (filename) break + } + + for (i = 0; i < set.length; i++) { + var pattern = set[i] + var file = f + if (options.matchBase && pattern.length === 1) { + file = [filename] + } + var hit = this.matchOne(file, pattern, partial) + if (hit) { + if (options.flipNegate) return true + return !this.negate + } + } + + // didn't get any hits. this is success if it's a negative + // pattern, failure otherwise. + if (options.flipNegate) return false + return this.negate +} + +// set partial to true to test if, for example, +// "/a/b" matches the start of "/*/b/*/d" +// Partial means, if you run out of file before you run +// out of pattern, then that's fine, as long as all +// the parts match. +Minimatch.prototype.matchOne = function (file, pattern, partial) { + var options = this.options + + this.debug('matchOne', + { 'this': this, file: file, pattern: pattern }) + + this.debug('matchOne', file.length, pattern.length) + + for (var fi = 0, + pi = 0, + fl = file.length, + pl = pattern.length + ; (fi < fl) && (pi < pl) + ; fi++, pi++) { + this.debug('matchOne loop') + var p = pattern[pi] + var f = file[fi] + + this.debug(pattern, p, f) + + // should be impossible. + // some invalid regexp stuff in the set. + if (p === false) return false + + if (p === GLOBSTAR) { + this.debug('GLOBSTAR', [pattern, p, f]) + + // "**" + // a/**/b/**/c would match the following: + // a/b/x/y/z/c + // a/x/y/z/b/c + // a/b/x/b/x/c + // a/b/c + // To do this, take the rest of the pattern after + // the **, and see if it would match the file remainder. + // If so, return success. + // If not, the ** "swallows" a segment, and try again. + // This is recursively awful. + // + // a/**/b/**/c matching a/b/x/y/z/c + // - a matches a + // - doublestar + // - matchOne(b/x/y/z/c, b/**/c) + // - b matches b + // - doublestar + // - matchOne(x/y/z/c, c) -> no + // - matchOne(y/z/c, c) -> no + // - matchOne(z/c, c) -> no + // - matchOne(c, c) yes, hit + var fr = fi + var pr = pi + 1 + if (pr === pl) { + this.debug('** at the end') + // a ** at the end will just swallow the rest. + // We have found a match. + // however, it will not swallow /.x, unless + // options.dot is set. + // . and .. are *never* matched by **, for explosively + // exponential reasons. + for (; fi < fl; fi++) { + if (file[fi] === '.' || file[fi] === '..' || + (!options.dot && file[fi].charAt(0) === '.')) return false + } + return true + } + + // ok, let's see if we can swallow whatever we can. + while (fr < fl) { + var swallowee = file[fr] + + this.debug('\nglobstar while', file, fr, pattern, pr, swallowee) + + // XXX remove this slice. Just pass the start index. + if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { + this.debug('globstar found match!', fr, fl, swallowee) + // found a match. + return true + } else { + // can't swallow "." or ".." ever. + // can only swallow ".foo" when explicitly asked. + if (swallowee === '.' || swallowee === '..' || + (!options.dot && swallowee.charAt(0) === '.')) { + this.debug('dot detected!', file, fr, pattern, pr) + break + } + + // ** swallows a segment, and continue. + this.debug('globstar swallow a segment, and continue') + fr++ + } + } + + // no match was found. + // However, in partial mode, we can't say this is necessarily over. + // If there's more *pattern* left, then + if (partial) { + // ran out of file + this.debug('\n>>> no match, partial?', file, fr, pattern, pr) + if (fr === fl) return true + } + return false + } + + // something other than ** + // non-magic patterns just have to match exactly + // patterns with magic have been turned into regexps. + var hit + if (typeof p === 'string') { + if (options.nocase) { + hit = f.toLowerCase() === p.toLowerCase() + } else { + hit = f === p + } + this.debug('string match', p, f, hit) + } else { + hit = f.match(p) + this.debug('pattern match', p, f, hit) + } + + if (!hit) return false + } + + // Note: ending in / means that we'll get a final "" + // at the end of the pattern. This can only match a + // corresponding "" at the end of the file. + // If the file ends in /, then it can only match a + // a pattern that ends in /, unless the pattern just + // doesn't have any more for it. But, a/b/ should *not* + // match "a/b/*", even though "" matches against the + // [^/]*? pattern, except in partial mode, where it might + // simply not be reached yet. + // However, a/b/ should still satisfy a/* + + // now either we fell off the end of the pattern, or we're done. + if (fi === fl && pi === pl) { + // ran out of pattern and filename at the same time. + // an exact hit! + return true + } else if (fi === fl) { + // ran out of file, but still had pattern left. + // this is ok if we're doing the match as part of + // a glob fs traversal. + return partial + } else if (pi === pl) { + // ran out of pattern, still have file left. + // this is only acceptable if we're on the very last + // empty segment of a file with a trailing slash. + // a/* should match a/b/ + var emptyFileEnd = (fi === fl - 1) && (file[fi] === '') + return emptyFileEnd + } + + // should be unreachable. + throw new Error('wtf?') +} + +// replace stuff like \* with * +function globUnescape (s) { + return s.replace(/\\(.)/g, '$1') +} + +function regExpEscape (s) { + return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&') +} + +},{"brace-expansion":11,"path":22}],21:[function(require,module,exports){ +var wrappy = require('wrappy') +module.exports = wrappy(once) +module.exports.strict = wrappy(onceStrict) + +once.proto = once(function () { + Object.defineProperty(Function.prototype, 'once', { + value: function () { + return once(this) + }, + configurable: true + }) + + Object.defineProperty(Function.prototype, 'onceStrict', { + value: function () { + return onceStrict(this) + }, + configurable: true + }) +}) + +function once (fn) { + var f = function () { + if (f.called) return f.value + f.called = true + return f.value = fn.apply(this, arguments) + } + f.called = false + return f +} + +function onceStrict (fn) { + var f = function () { + if (f.called) + throw new Error(f.onceError) + f.called = true + return f.value = fn.apply(this, arguments) + } + var name = fn.name || 'Function wrapped with `once`' + f.onceError = name + " shouldn't be called more than once" + f.called = false + return f +} + +},{"wrappy":29}],22:[function(require,module,exports){ +(function (process){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// resolves . and .. elements in a path array with directory names there +// must be no slashes, empty elements, or device names (c:\) in the array +// (so also no leading and trailing slashes - it does not distinguish +// relative and absolute paths) +function normalizeArray(parts, allowAboveRoot) { + // if the path tries to go above the root, `up` ends up > 0 + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === '.') { + parts.splice(i, 1); + } else if (last === '..') { + parts.splice(i, 1); + up++; + } else if (up) { + parts.splice(i, 1); + up--; + } + } + + // if the path is allowed to go above the root, restore leading ..s + if (allowAboveRoot) { + for (; up--; up) { + parts.unshift('..'); + } + } + + return parts; +} + +// Split a filename into [root, dir, basename, ext], unix version +// 'root' is just a slash, or nothing. +var splitPathRe = + /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; +var splitPath = function(filename) { + return splitPathRe.exec(filename).slice(1); +}; + +// path.resolve([from ...], to) +// posix version +exports.resolve = function() { + var resolvedPath = '', + resolvedAbsolute = false; + + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = (i >= 0) ? arguments[i] : process.cwd(); + + // Skip empty and invalid entries + if (typeof path !== 'string') { + throw new TypeError('Arguments to path.resolve must be strings'); + } else if (!path) { + continue; + } + + resolvedPath = path + '/' + resolvedPath; + resolvedAbsolute = path.charAt(0) === '/'; + } + + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + + // Normalize the path + resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) { + return !!p; + }), !resolvedAbsolute).join('/'); + + return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; +}; + +// path.normalize(path) +// posix version +exports.normalize = function(path) { + var isAbsolute = exports.isAbsolute(path), + trailingSlash = substr(path, -1) === '/'; + + // Normalize the path + path = normalizeArray(filter(path.split('/'), function(p) { + return !!p; + }), !isAbsolute).join('/'); + + if (!path && !isAbsolute) { + path = '.'; + } + if (path && trailingSlash) { + path += '/'; + } + + return (isAbsolute ? '/' : '') + path; +}; + +// posix version +exports.isAbsolute = function(path) { + return path.charAt(0) === '/'; +}; + +// posix version +exports.join = function() { + var paths = Array.prototype.slice.call(arguments, 0); + return exports.normalize(filter(paths, function(p, index) { + if (typeof p !== 'string') { + throw new TypeError('Arguments to path.join must be strings'); + } + return p; + }).join('/')); +}; + + +// path.relative(from, to) +// posix version +exports.relative = function(from, to) { + from = exports.resolve(from).substr(1); + to = exports.resolve(to).substr(1); + + function trim(arr) { + var start = 0; + for (; start < arr.length; start++) { + if (arr[start] !== '') break; + } + + var end = arr.length - 1; + for (; end >= 0; end--) { + if (arr[end] !== '') break; + } + + if (start > end) return []; + return arr.slice(start, end - start + 1); + } + + var fromParts = trim(from.split('/')); + var toParts = trim(to.split('/')); + + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break; + } + } + + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push('..'); + } + + outputParts = outputParts.concat(toParts.slice(samePartsLength)); + + return outputParts.join('/'); +}; + +exports.sep = '/'; +exports.delimiter = ':'; + +exports.dirname = function(path) { + var result = splitPath(path), + root = result[0], + dir = result[1]; + + if (!root && !dir) { + // No dirname whatsoever + return '.'; + } + + if (dir) { + // It has a dirname, strip trailing slash + dir = dir.substr(0, dir.length - 1); + } + + return root + dir; +}; + + +exports.basename = function(path, ext) { + var f = splitPath(path)[2]; + // TODO: make this comparison case-insensitive on windows? + if (ext && f.substr(-1 * ext.length) === ext) { + f = f.substr(0, f.length - ext.length); + } + return f; +}; + + +exports.extname = function(path) { + return splitPath(path)[3]; +}; + +function filter (xs, f) { + if (xs.filter) return xs.filter(f); + var res = []; + for (var i = 0; i < xs.length; i++) { + if (f(xs[i], i, xs)) res.push(xs[i]); + } + return res; +} + +// String.prototype.substr - negative index don't work in IE8 +var substr = 'ab'.substr(-1) === 'b' + ? function (str, start, len) { return str.substr(start, len) } + : function (str, start, len) { + if (start < 0) start = str.length + start; + return str.substr(start, len); + } +; + +}).call(this,require('_process')) +},{"_process":24}],23:[function(require,module,exports){ +(function (process){ +'use strict'; + +function posix(path) { + return path.charAt(0) === '/'; +} + +function win32(path) { + // https://github.com/nodejs/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56 + var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/; + var result = splitDeviceRe.exec(path); + var device = result[1] || ''; + var isUnc = Boolean(device && device.charAt(1) !== ':'); + + // UNC paths are always absolute + return Boolean(result[2] || isUnc); +} + +module.exports = process.platform === 'win32' ? win32 : posix; +module.exports.posix = posix; +module.exports.win32 = win32; + +}).call(this,require('_process')) +},{"_process":24}],24:[function(require,module,exports){ +// shim for using process in browser +var process = module.exports = {}; + +// cached from whatever global is present so that test runners that stub it +// don't break things. But we need to wrap it in a try catch in case it is +// wrapped in strict mode code which doesn't define any globals. It's inside a +// function because try/catches deoptimize in certain engines. + +var cachedSetTimeout; +var cachedClearTimeout; + +function defaultSetTimout() { + throw new Error('setTimeout has not been defined'); +} +function defaultClearTimeout () { + throw new Error('clearTimeout has not been defined'); +} +(function () { + try { + if (typeof setTimeout === 'function') { + cachedSetTimeout = setTimeout; + } else { + cachedSetTimeout = defaultSetTimout; + } + } catch (e) { + cachedSetTimeout = defaultSetTimout; + } + try { + if (typeof clearTimeout === 'function') { + cachedClearTimeout = clearTimeout; + } else { + cachedClearTimeout = defaultClearTimeout; + } + } catch (e) { + cachedClearTimeout = defaultClearTimeout; + } +} ()) +function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + //normal enviroments in sane situations + return setTimeout(fun, 0); + } + // if setTimeout wasn't available but was latter defined + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedSetTimeout(fun, 0); + } catch(e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedSetTimeout.call(null, fun, 0); + } catch(e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error + return cachedSetTimeout.call(this, fun, 0); + } + } + + +} +function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + //normal enviroments in sane situations + return clearTimeout(marker); + } + // if clearTimeout wasn't available but was latter defined + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedClearTimeout(marker); + } catch (e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedClearTimeout.call(null, marker); + } catch (e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. + // Some versions of I.E. have different rules for clearTimeout vs setTimeout + return cachedClearTimeout.call(this, marker); + } + } + + + +} +var queue = []; +var draining = false; +var currentQueue; +var queueIndex = -1; + +function cleanUpNextTick() { + if (!draining || !currentQueue) { + return; + } + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) { + drainQueue(); + } +} + +function drainQueue() { + if (draining) { + return; + } + var timeout = runTimeout(cleanUpNextTick); + draining = true; + + var len = queue.length; + while(len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run(); + } + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + runClearTimeout(timeout); +} + +process.nextTick = function (fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } +}; + +// v8 likes predictible objects +function Item(fun, array) { + this.fun = fun; + this.array = array; +} +Item.prototype.run = function () { + this.fun.apply(null, this.array); +}; +process.title = 'browser'; +process.browser = true; +process.env = {}; +process.argv = []; +process.version = ''; // empty string to avoid regexp issues +process.versions = {}; + +function noop() {} + +process.on = noop; +process.addListener = noop; +process.once = noop; +process.off = noop; +process.removeListener = noop; +process.removeAllListeners = noop; +process.emit = noop; +process.prependListener = noop; +process.prependOnceListener = noop; + +process.listeners = function (name) { return [] } + +process.binding = function (name) { + throw new Error('process.binding is not supported'); +}; + +process.cwd = function () { return '/' }; +process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); +}; +process.umask = function() { return 0; }; + +},{}],25:[function(require,module,exports){ +// Underscore.js 1.8.3 +// http://underscorejs.org +// (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors +// Underscore may be freely distributed under the MIT license. + +(function() { + + // Baseline setup + // -------------- + + // Establish the root object, `window` in the browser, or `exports` on the server. + var root = this; + + // Save the previous value of the `_` variable. + var previousUnderscore = root._; + + // Save bytes in the minified (but not gzipped) version: + var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype; + + // Create quick reference variables for speed access to core prototypes. + var + push = ArrayProto.push, + slice = ArrayProto.slice, + toString = ObjProto.toString, + hasOwnProperty = ObjProto.hasOwnProperty; + + // All **ECMAScript 5** native function implementations that we hope to use + // are declared here. + var + nativeIsArray = Array.isArray, + nativeKeys = Object.keys, + nativeBind = FuncProto.bind, + nativeCreate = Object.create; + + // Naked function reference for surrogate-prototype-swapping. + var Ctor = function(){}; + + // Create a safe reference to the Underscore object for use below. + var _ = function(obj) { + if (obj instanceof _) return obj; + if (!(this instanceof _)) return new _(obj); + this._wrapped = obj; + }; + + // Export the Underscore object for **Node.js**, with + // backwards-compatibility for the old `require()` API. If we're in + // the browser, add `_` as a global object. + if (typeof exports !== 'undefined') { + if (typeof module !== 'undefined' && module.exports) { + exports = module.exports = _; + } + exports._ = _; + } else { + root._ = _; + } + + // Current version. + _.VERSION = '1.8.3'; + + // Internal function that returns an efficient (for current engines) version + // of the passed-in callback, to be repeatedly applied in other Underscore + // functions. + var optimizeCb = function(func, context, argCount) { + if (context === void 0) return func; + switch (argCount == null ? 3 : argCount) { + case 1: return function(value) { + return func.call(context, value); + }; + case 2: return function(value, other) { + return func.call(context, value, other); + }; + case 3: return function(value, index, collection) { + return func.call(context, value, index, collection); + }; + case 4: return function(accumulator, value, index, collection) { + return func.call(context, accumulator, value, index, collection); + }; + } + return function() { + return func.apply(context, arguments); + }; + }; + + // A mostly-internal function to generate callbacks that can be applied + // to each element in a collection, returning the desired result — either + // identity, an arbitrary callback, a property matcher, or a property accessor. + var cb = function(value, context, argCount) { + if (value == null) return _.identity; + if (_.isFunction(value)) return optimizeCb(value, context, argCount); + if (_.isObject(value)) return _.matcher(value); + return _.property(value); + }; + _.iteratee = function(value, context) { + return cb(value, context, Infinity); + }; + + // An internal function for creating assigner functions. + var createAssigner = function(keysFunc, undefinedOnly) { + return function(obj) { + var length = arguments.length; + if (length < 2 || obj == null) return obj; + for (var index = 1; index < length; index++) { + var source = arguments[index], + keys = keysFunc(source), + l = keys.length; + for (var i = 0; i < l; i++) { + var key = keys[i]; + if (!undefinedOnly || obj[key] === void 0) obj[key] = source[key]; + } + } + return obj; + }; + }; + + // An internal function for creating a new object that inherits from another. + var baseCreate = function(prototype) { + if (!_.isObject(prototype)) return {}; + if (nativeCreate) return nativeCreate(prototype); + Ctor.prototype = prototype; + var result = new Ctor; + Ctor.prototype = null; + return result; + }; + + var property = function(key) { + return function(obj) { + return obj == null ? void 0 : obj[key]; + }; + }; + + // Helper for collection methods to determine whether a collection + // should be iterated as an array or as an object + // Related: http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength + // Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094 + var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1; + var getLength = property('length'); + var isArrayLike = function(collection) { + var length = getLength(collection); + return typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX; + }; + + // Collection Functions + // -------------------- + + // The cornerstone, an `each` implementation, aka `forEach`. + // Handles raw objects in addition to array-likes. Treats all + // sparse array-likes as if they were dense. + _.each = _.forEach = function(obj, iteratee, context) { + iteratee = optimizeCb(iteratee, context); + var i, length; + if (isArrayLike(obj)) { + for (i = 0, length = obj.length; i < length; i++) { + iteratee(obj[i], i, obj); + } + } else { + var keys = _.keys(obj); + for (i = 0, length = keys.length; i < length; i++) { + iteratee(obj[keys[i]], keys[i], obj); + } + } + return obj; + }; + + // Return the results of applying the iteratee to each element. + _.map = _.collect = function(obj, iteratee, context) { + iteratee = cb(iteratee, context); + var keys = !isArrayLike(obj) && _.keys(obj), + length = (keys || obj).length, + results = Array(length); + for (var index = 0; index < length; index++) { + var currentKey = keys ? keys[index] : index; + results[index] = iteratee(obj[currentKey], currentKey, obj); + } + return results; + }; + + // Create a reducing function iterating left or right. + function createReduce(dir) { + // Optimized iterator function as using arguments.length + // in the main function will deoptimize the, see #1991. + function iterator(obj, iteratee, memo, keys, index, length) { + for (; index >= 0 && index < length; index += dir) { + var currentKey = keys ? keys[index] : index; + memo = iteratee(memo, obj[currentKey], currentKey, obj); + } + return memo; + } + + return function(obj, iteratee, memo, context) { + iteratee = optimizeCb(iteratee, context, 4); + var keys = !isArrayLike(obj) && _.keys(obj), + length = (keys || obj).length, + index = dir > 0 ? 0 : length - 1; + // Determine the initial value if none is provided. + if (arguments.length < 3) { + memo = obj[keys ? keys[index] : index]; + index += dir; + } + return iterator(obj, iteratee, memo, keys, index, length); + }; + } + + // **Reduce** builds up a single result from a list of values, aka `inject`, + // or `foldl`. + _.reduce = _.foldl = _.inject = createReduce(1); + + // The right-associative version of reduce, also known as `foldr`. + _.reduceRight = _.foldr = createReduce(-1); + + // Return the first value which passes a truth test. Aliased as `detect`. + _.find = _.detect = function(obj, predicate, context) { + var key; + if (isArrayLike(obj)) { + key = _.findIndex(obj, predicate, context); + } else { + key = _.findKey(obj, predicate, context); + } + if (key !== void 0 && key !== -1) return obj[key]; + }; + + // Return all the elements that pass a truth test. + // Aliased as `select`. + _.filter = _.select = function(obj, predicate, context) { + var results = []; + predicate = cb(predicate, context); + _.each(obj, function(value, index, list) { + if (predicate(value, index, list)) results.push(value); + }); + return results; + }; + + // Return all the elements for which a truth test fails. + _.reject = function(obj, predicate, context) { + return _.filter(obj, _.negate(cb(predicate)), context); + }; + + // Determine whether all of the elements match a truth test. + // Aliased as `all`. + _.every = _.all = function(obj, predicate, context) { + predicate = cb(predicate, context); + var keys = !isArrayLike(obj) && _.keys(obj), + length = (keys || obj).length; + for (var index = 0; index < length; index++) { + var currentKey = keys ? keys[index] : index; + if (!predicate(obj[currentKey], currentKey, obj)) return false; + } + return true; + }; + + // Determine if at least one element in the object matches a truth test. + // Aliased as `any`. + _.some = _.any = function(obj, predicate, context) { + predicate = cb(predicate, context); + var keys = !isArrayLike(obj) && _.keys(obj), + length = (keys || obj).length; + for (var index = 0; index < length; index++) { + var currentKey = keys ? keys[index] : index; + if (predicate(obj[currentKey], currentKey, obj)) return true; + } + return false; + }; + + // Determine if the array or object contains a given item (using `===`). + // Aliased as `includes` and `include`. + _.contains = _.includes = _.include = function(obj, item, fromIndex, guard) { + if (!isArrayLike(obj)) obj = _.values(obj); + if (typeof fromIndex != 'number' || guard) fromIndex = 0; + return _.indexOf(obj, item, fromIndex) >= 0; + }; + + // Invoke a method (with arguments) on every item in a collection. + _.invoke = function(obj, method) { + var args = slice.call(arguments, 2); + var isFunc = _.isFunction(method); + return _.map(obj, function(value) { + var func = isFunc ? method : value[method]; + return func == null ? func : func.apply(value, args); + }); + }; + + // Convenience version of a common use case of `map`: fetching a property. + _.pluck = function(obj, key) { + return _.map(obj, _.property(key)); + }; + + // Convenience version of a common use case of `filter`: selecting only objects + // containing specific `key:value` pairs. + _.where = function(obj, attrs) { + return _.filter(obj, _.matcher(attrs)); + }; + + // Convenience version of a common use case of `find`: getting the first object + // containing specific `key:value` pairs. + _.findWhere = function(obj, attrs) { + return _.find(obj, _.matcher(attrs)); + }; + + // Return the maximum element (or element-based computation). + _.max = function(obj, iteratee, context) { + var result = -Infinity, lastComputed = -Infinity, + value, computed; + if (iteratee == null && obj != null) { + obj = isArrayLike(obj) ? obj : _.values(obj); + for (var i = 0, length = obj.length; i < length; i++) { + value = obj[i]; + if (value > result) { + result = value; + } + } + } else { + iteratee = cb(iteratee, context); + _.each(obj, function(value, index, list) { + computed = iteratee(value, index, list); + if (computed > lastComputed || computed === -Infinity && result === -Infinity) { + result = value; + lastComputed = computed; + } + }); + } + return result; + }; + + // Return the minimum element (or element-based computation). + _.min = function(obj, iteratee, context) { + var result = Infinity, lastComputed = Infinity, + value, computed; + if (iteratee == null && obj != null) { + obj = isArrayLike(obj) ? obj : _.values(obj); + for (var i = 0, length = obj.length; i < length; i++) { + value = obj[i]; + if (value < result) { + result = value; + } + } + } else { + iteratee = cb(iteratee, context); + _.each(obj, function(value, index, list) { + computed = iteratee(value, index, list); + if (computed < lastComputed || computed === Infinity && result === Infinity) { + result = value; + lastComputed = computed; + } + }); + } + return result; + }; + + // Shuffle a collection, using the modern version of the + // [Fisher-Yates shuffle](http://en.wikipedia.org/wiki/Fisher–Yates_shuffle). + _.shuffle = function(obj) { + var set = isArrayLike(obj) ? obj : _.values(obj); + var length = set.length; + var shuffled = Array(length); + for (var index = 0, rand; index < length; index++) { + rand = _.random(0, index); + if (rand !== index) shuffled[index] = shuffled[rand]; + shuffled[rand] = set[index]; + } + return shuffled; + }; + + // Sample **n** random values from a collection. + // If **n** is not specified, returns a single random element. + // The internal `guard` argument allows it to work with `map`. + _.sample = function(obj, n, guard) { + if (n == null || guard) { + if (!isArrayLike(obj)) obj = _.values(obj); + return obj[_.random(obj.length - 1)]; + } + return _.shuffle(obj).slice(0, Math.max(0, n)); + }; + + // Sort the object's values by a criterion produced by an iteratee. + _.sortBy = function(obj, iteratee, context) { + iteratee = cb(iteratee, context); + return _.pluck(_.map(obj, function(value, index, list) { + return { + value: value, + index: index, + criteria: iteratee(value, index, list) + }; + }).sort(function(left, right) { + var a = left.criteria; + var b = right.criteria; + if (a !== b) { + if (a > b || a === void 0) return 1; + if (a < b || b === void 0) return -1; + } + return left.index - right.index; + }), 'value'); + }; + + // An internal function used for aggregate "group by" operations. + var group = function(behavior) { + return function(obj, iteratee, context) { + var result = {}; + iteratee = cb(iteratee, context); + _.each(obj, function(value, index) { + var key = iteratee(value, index, obj); + behavior(result, value, key); + }); + return result; + }; + }; + + // Groups the object's values by a criterion. Pass either a string attribute + // to group by, or a function that returns the criterion. + _.groupBy = group(function(result, value, key) { + if (_.has(result, key)) result[key].push(value); else result[key] = [value]; + }); + + // Indexes the object's values by a criterion, similar to `groupBy`, but for + // when you know that your index values will be unique. + _.indexBy = group(function(result, value, key) { + result[key] = value; + }); + + // Counts instances of an object that group by a certain criterion. Pass + // either a string attribute to count by, or a function that returns the + // criterion. + _.countBy = group(function(result, value, key) { + if (_.has(result, key)) result[key]++; else result[key] = 1; + }); + + // Safely create a real, live array from anything iterable. + _.toArray = function(obj) { + if (!obj) return []; + if (_.isArray(obj)) return slice.call(obj); + if (isArrayLike(obj)) return _.map(obj, _.identity); + return _.values(obj); + }; + + // Return the number of elements in an object. + _.size = function(obj) { + if (obj == null) return 0; + return isArrayLike(obj) ? obj.length : _.keys(obj).length; + }; + + // Split a collection into two arrays: one whose elements all satisfy the given + // predicate, and one whose elements all do not satisfy the predicate. + _.partition = function(obj, predicate, context) { + predicate = cb(predicate, context); + var pass = [], fail = []; + _.each(obj, function(value, key, obj) { + (predicate(value, key, obj) ? pass : fail).push(value); + }); + return [pass, fail]; + }; + + // Array Functions + // --------------- + + // Get the first element of an array. Passing **n** will return the first N + // values in the array. Aliased as `head` and `take`. The **guard** check + // allows it to work with `_.map`. + _.first = _.head = _.take = function(array, n, guard) { + if (array == null) return void 0; + if (n == null || guard) return array[0]; + return _.initial(array, array.length - n); + }; + + // Returns everything but the last entry of the array. Especially useful on + // the arguments object. Passing **n** will return all the values in + // the array, excluding the last N. + _.initial = function(array, n, guard) { + return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n))); + }; + + // Get the last element of an array. Passing **n** will return the last N + // values in the array. + _.last = function(array, n, guard) { + if (array == null) return void 0; + if (n == null || guard) return array[array.length - 1]; + return _.rest(array, Math.max(0, array.length - n)); + }; + + // Returns everything but the first entry of the array. Aliased as `tail` and `drop`. + // Especially useful on the arguments object. Passing an **n** will return + // the rest N values in the array. + _.rest = _.tail = _.drop = function(array, n, guard) { + return slice.call(array, n == null || guard ? 1 : n); + }; + + // Trim out all falsy values from an array. + _.compact = function(array) { + return _.filter(array, _.identity); + }; + + // Internal implementation of a recursive `flatten` function. + var flatten = function(input, shallow, strict, startIndex) { + var output = [], idx = 0; + for (var i = startIndex || 0, length = getLength(input); i < length; i++) { + var value = input[i]; + if (isArrayLike(value) && (_.isArray(value) || _.isArguments(value))) { + //flatten current level of array or arguments object + if (!shallow) value = flatten(value, shallow, strict); + var j = 0, len = value.length; + output.length += len; + while (j < len) { + output[idx++] = value[j++]; + } + } else if (!strict) { + output[idx++] = value; + } + } + return output; + }; + + // Flatten out an array, either recursively (by default), or just one level. + _.flatten = function(array, shallow) { + return flatten(array, shallow, false); + }; + + // Return a version of the array that does not contain the specified value(s). + _.without = function(array) { + return _.difference(array, slice.call(arguments, 1)); + }; + + // Produce a duplicate-free version of the array. If the array has already + // been sorted, you have the option of using a faster algorithm. + // Aliased as `unique`. + _.uniq = _.unique = function(array, isSorted, iteratee, context) { + if (!_.isBoolean(isSorted)) { + context = iteratee; + iteratee = isSorted; + isSorted = false; + } + if (iteratee != null) iteratee = cb(iteratee, context); + var result = []; + var seen = []; + for (var i = 0, length = getLength(array); i < length; i++) { + var value = array[i], + computed = iteratee ? iteratee(value, i, array) : value; + if (isSorted) { + if (!i || seen !== computed) result.push(value); + seen = computed; + } else if (iteratee) { + if (!_.contains(seen, computed)) { + seen.push(computed); + result.push(value); + } + } else if (!_.contains(result, value)) { + result.push(value); + } + } + return result; + }; + + // Produce an array that contains the union: each distinct element from all of + // the passed-in arrays. + _.union = function() { + return _.uniq(flatten(arguments, true, true)); + }; + + // Produce an array that contains every item shared between all the + // passed-in arrays. + _.intersection = function(array) { + var result = []; + var argsLength = arguments.length; + for (var i = 0, length = getLength(array); i < length; i++) { + var item = array[i]; + if (_.contains(result, item)) continue; + for (var j = 1; j < argsLength; j++) { + if (!_.contains(arguments[j], item)) break; + } + if (j === argsLength) result.push(item); + } + return result; + }; + + // Take the difference between one array and a number of other arrays. + // Only the elements present in just the first array will remain. + _.difference = function(array) { + var rest = flatten(arguments, true, true, 1); + return _.filter(array, function(value){ + return !_.contains(rest, value); + }); + }; + + // Zip together multiple lists into a single array -- elements that share + // an index go together. + _.zip = function() { + return _.unzip(arguments); + }; + + // Complement of _.zip. Unzip accepts an array of arrays and groups + // each array's elements on shared indices + _.unzip = function(array) { + var length = array && _.max(array, getLength).length || 0; + var result = Array(length); + + for (var index = 0; index < length; index++) { + result[index] = _.pluck(array, index); + } + return result; + }; + + // Converts lists into objects. Pass either a single array of `[key, value]` + // pairs, or two parallel arrays of the same length -- one of keys, and one of + // the corresponding values. + _.object = function(list, values) { + var result = {}; + for (var i = 0, length = getLength(list); i < length; i++) { + if (values) { + result[list[i]] = values[i]; + } else { + result[list[i][0]] = list[i][1]; + } + } + return result; + }; + + // Generator function to create the findIndex and findLastIndex functions + function createPredicateIndexFinder(dir) { + return function(array, predicate, context) { + predicate = cb(predicate, context); + var length = getLength(array); + var index = dir > 0 ? 0 : length - 1; + for (; index >= 0 && index < length; index += dir) { + if (predicate(array[index], index, array)) return index; + } + return -1; + }; + } + + // Returns the first index on an array-like that passes a predicate test + _.findIndex = createPredicateIndexFinder(1); + _.findLastIndex = createPredicateIndexFinder(-1); + + // Use a comparator function to figure out the smallest index at which + // an object should be inserted so as to maintain order. Uses binary search. + _.sortedIndex = function(array, obj, iteratee, context) { + iteratee = cb(iteratee, context, 1); + var value = iteratee(obj); + var low = 0, high = getLength(array); + while (low < high) { + var mid = Math.floor((low + high) / 2); + if (iteratee(array[mid]) < value) low = mid + 1; else high = mid; + } + return low; + }; + + // Generator function to create the indexOf and lastIndexOf functions + function createIndexFinder(dir, predicateFind, sortedIndex) { + return function(array, item, idx) { + var i = 0, length = getLength(array); + if (typeof idx == 'number') { + if (dir > 0) { + i = idx >= 0 ? idx : Math.max(idx + length, i); + } else { + length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1; + } + } else if (sortedIndex && idx && length) { + idx = sortedIndex(array, item); + return array[idx] === item ? idx : -1; + } + if (item !== item) { + idx = predicateFind(slice.call(array, i, length), _.isNaN); + return idx >= 0 ? idx + i : -1; + } + for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) { + if (array[idx] === item) return idx; + } + return -1; + }; + } + + // Return the position of the first occurrence of an item in an array, + // or -1 if the item is not included in the array. + // If the array is large and already in sort order, pass `true` + // for **isSorted** to use binary search. + _.indexOf = createIndexFinder(1, _.findIndex, _.sortedIndex); + _.lastIndexOf = createIndexFinder(-1, _.findLastIndex); + + // Generate an integer Array containing an arithmetic progression. A port of + // the native Python `range()` function. See + // [the Python documentation](http://docs.python.org/library/functions.html#range). + _.range = function(start, stop, step) { + if (stop == null) { + stop = start || 0; + start = 0; + } + step = step || 1; + + var length = Math.max(Math.ceil((stop - start) / step), 0); + var range = Array(length); + + for (var idx = 0; idx < length; idx++, start += step) { + range[idx] = start; + } + + return range; + }; + + // Function (ahem) Functions + // ------------------ + + // Determines whether to execute a function as a constructor + // or a normal function with the provided arguments + var executeBound = function(sourceFunc, boundFunc, context, callingContext, args) { + if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args); + var self = baseCreate(sourceFunc.prototype); + var result = sourceFunc.apply(self, args); + if (_.isObject(result)) return result; + return self; + }; + + // Create a function bound to a given object (assigning `this`, and arguments, + // optionally). Delegates to **ECMAScript 5**'s native `Function.bind` if + // available. + _.bind = function(func, context) { + if (nativeBind && func.bind === nativeBind) return nativeBind.apply(func, slice.call(arguments, 1)); + if (!_.isFunction(func)) throw new TypeError('Bind must be called on a function'); + var args = slice.call(arguments, 2); + var bound = function() { + return executeBound(func, bound, context, this, args.concat(slice.call(arguments))); + }; + return bound; + }; + + // Partially apply a function by creating a version that has had some of its + // arguments pre-filled, without changing its dynamic `this` context. _ acts + // as a placeholder, allowing any combination of arguments to be pre-filled. + _.partial = function(func) { + var boundArgs = slice.call(arguments, 1); + var bound = function() { + var position = 0, length = boundArgs.length; + var args = Array(length); + for (var i = 0; i < length; i++) { + args[i] = boundArgs[i] === _ ? arguments[position++] : boundArgs[i]; + } + while (position < arguments.length) args.push(arguments[position++]); + return executeBound(func, bound, this, this, args); + }; + return bound; + }; + + // Bind a number of an object's methods to that object. Remaining arguments + // are the method names to be bound. Useful for ensuring that all callbacks + // defined on an object belong to it. + _.bindAll = function(obj) { + var i, length = arguments.length, key; + if (length <= 1) throw new Error('bindAll must be passed function names'); + for (i = 1; i < length; i++) { + key = arguments[i]; + obj[key] = _.bind(obj[key], obj); + } + return obj; + }; + + // Memoize an expensive function by storing its results. + _.memoize = function(func, hasher) { + var memoize = function(key) { + var cache = memoize.cache; + var address = '' + (hasher ? hasher.apply(this, arguments) : key); + if (!_.has(cache, address)) cache[address] = func.apply(this, arguments); + return cache[address]; + }; + memoize.cache = {}; + return memoize; + }; + + // Delays a function for the given number of milliseconds, and then calls + // it with the arguments supplied. + _.delay = function(func, wait) { + var args = slice.call(arguments, 2); + return setTimeout(function(){ + return func.apply(null, args); + }, wait); + }; + + // Defers a function, scheduling it to run after the current call stack has + // cleared. + _.defer = _.partial(_.delay, _, 1); + + // Returns a function, that, when invoked, will only be triggered at most once + // during a given window of time. Normally, the throttled function will run + // as much as it can, without ever going more than once per `wait` duration; + // but if you'd like to disable the execution on the leading edge, pass + // `{leading: false}`. To disable execution on the trailing edge, ditto. + _.throttle = function(func, wait, options) { + var context, args, result; + var timeout = null; + var previous = 0; + if (!options) options = {}; + var later = function() { + previous = options.leading === false ? 0 : _.now(); + timeout = null; + result = func.apply(context, args); + if (!timeout) context = args = null; + }; + return function() { + var now = _.now(); + if (!previous && options.leading === false) previous = now; + var remaining = wait - (now - previous); + context = this; + args = arguments; + if (remaining <= 0 || remaining > wait) { + if (timeout) { + clearTimeout(timeout); + timeout = null; + } + previous = now; + result = func.apply(context, args); + if (!timeout) context = args = null; + } else if (!timeout && options.trailing !== false) { + timeout = setTimeout(later, remaining); + } + return result; + }; + }; + + // Returns a function, that, as long as it continues to be invoked, will not + // be triggered. The function will be called after it stops being called for + // N milliseconds. If `immediate` is passed, trigger the function on the + // leading edge, instead of the trailing. + _.debounce = function(func, wait, immediate) { + var timeout, args, context, timestamp, result; + + var later = function() { + var last = _.now() - timestamp; + + if (last < wait && last >= 0) { + timeout = setTimeout(later, wait - last); + } else { + timeout = null; + if (!immediate) { + result = func.apply(context, args); + if (!timeout) context = args = null; + } + } + }; + + return function() { + context = this; + args = arguments; + timestamp = _.now(); + var callNow = immediate && !timeout; + if (!timeout) timeout = setTimeout(later, wait); + if (callNow) { + result = func.apply(context, args); + context = args = null; + } + + return result; + }; + }; + + // Returns the first function passed as an argument to the second, + // allowing you to adjust arguments, run code before and after, and + // conditionally execute the original function. + _.wrap = function(func, wrapper) { + return _.partial(wrapper, func); + }; + + // Returns a negated version of the passed-in predicate. + _.negate = function(predicate) { + return function() { + return !predicate.apply(this, arguments); + }; + }; + + // Returns a function that is the composition of a list of functions, each + // consuming the return value of the function that follows. + _.compose = function() { + var args = arguments; + var start = args.length - 1; + return function() { + var i = start; + var result = args[start].apply(this, arguments); + while (i--) result = args[i].call(this, result); + return result; + }; + }; + + // Returns a function that will only be executed on and after the Nth call. + _.after = function(times, func) { + return function() { + if (--times < 1) { + return func.apply(this, arguments); + } + }; + }; + + // Returns a function that will only be executed up to (but not including) the Nth call. + _.before = function(times, func) { + var memo; + return function() { + if (--times > 0) { + memo = func.apply(this, arguments); + } + if (times <= 1) func = null; + return memo; + }; + }; + + // Returns a function that will be executed at most one time, no matter how + // often you call it. Useful for lazy initialization. + _.once = _.partial(_.before, 2); + + // Object Functions + // ---------------- + + // Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed. + var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString'); + var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString', + 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; + + function collectNonEnumProps(obj, keys) { + var nonEnumIdx = nonEnumerableProps.length; + var constructor = obj.constructor; + var proto = (_.isFunction(constructor) && constructor.prototype) || ObjProto; + + // Constructor is a special case. + var prop = 'constructor'; + if (_.has(obj, prop) && !_.contains(keys, prop)) keys.push(prop); + + while (nonEnumIdx--) { + prop = nonEnumerableProps[nonEnumIdx]; + if (prop in obj && obj[prop] !== proto[prop] && !_.contains(keys, prop)) { + keys.push(prop); + } + } + } + + // Retrieve the names of an object's own properties. + // Delegates to **ECMAScript 5**'s native `Object.keys` + _.keys = function(obj) { + if (!_.isObject(obj)) return []; + if (nativeKeys) return nativeKeys(obj); + var keys = []; + for (var key in obj) if (_.has(obj, key)) keys.push(key); + // Ahem, IE < 9. + if (hasEnumBug) collectNonEnumProps(obj, keys); + return keys; + }; + + // Retrieve all the property names of an object. + _.allKeys = function(obj) { + if (!_.isObject(obj)) return []; + var keys = []; + for (var key in obj) keys.push(key); + // Ahem, IE < 9. + if (hasEnumBug) collectNonEnumProps(obj, keys); + return keys; + }; + + // Retrieve the values of an object's properties. + _.values = function(obj) { + var keys = _.keys(obj); + var length = keys.length; + var values = Array(length); + for (var i = 0; i < length; i++) { + values[i] = obj[keys[i]]; + } + return values; + }; + + // Returns the results of applying the iteratee to each element of the object + // In contrast to _.map it returns an object + _.mapObject = function(obj, iteratee, context) { + iteratee = cb(iteratee, context); + var keys = _.keys(obj), + length = keys.length, + results = {}, + currentKey; + for (var index = 0; index < length; index++) { + currentKey = keys[index]; + results[currentKey] = iteratee(obj[currentKey], currentKey, obj); + } + return results; + }; + + // Convert an object into a list of `[key, value]` pairs. + _.pairs = function(obj) { + var keys = _.keys(obj); + var length = keys.length; + var pairs = Array(length); + for (var i = 0; i < length; i++) { + pairs[i] = [keys[i], obj[keys[i]]]; + } + return pairs; + }; + + // Invert the keys and values of an object. The values must be serializable. + _.invert = function(obj) { + var result = {}; + var keys = _.keys(obj); + for (var i = 0, length = keys.length; i < length; i++) { + result[obj[keys[i]]] = keys[i]; + } + return result; + }; + + // Return a sorted list of the function names available on the object. + // Aliased as `methods` + _.functions = _.methods = function(obj) { + var names = []; + for (var key in obj) { + if (_.isFunction(obj[key])) names.push(key); + } + return names.sort(); + }; + + // Extend a given object with all the properties in passed-in object(s). + _.extend = createAssigner(_.allKeys); + + // Assigns a given object with all the own properties in the passed-in object(s) + // (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) + _.extendOwn = _.assign = createAssigner(_.keys); + + // Returns the first key on an object that passes a predicate test + _.findKey = function(obj, predicate, context) { + predicate = cb(predicate, context); + var keys = _.keys(obj), key; + for (var i = 0, length = keys.length; i < length; i++) { + key = keys[i]; + if (predicate(obj[key], key, obj)) return key; + } + }; + + // Return a copy of the object only containing the whitelisted properties. + _.pick = function(object, oiteratee, context) { + var result = {}, obj = object, iteratee, keys; + if (obj == null) return result; + if (_.isFunction(oiteratee)) { + keys = _.allKeys(obj); + iteratee = optimizeCb(oiteratee, context); + } else { + keys = flatten(arguments, false, false, 1); + iteratee = function(value, key, obj) { return key in obj; }; + obj = Object(obj); + } + for (var i = 0, length = keys.length; i < length; i++) { + var key = keys[i]; + var value = obj[key]; + if (iteratee(value, key, obj)) result[key] = value; + } + return result; + }; + + // Return a copy of the object without the blacklisted properties. + _.omit = function(obj, iteratee, context) { + if (_.isFunction(iteratee)) { + iteratee = _.negate(iteratee); + } else { + var keys = _.map(flatten(arguments, false, false, 1), String); + iteratee = function(value, key) { + return !_.contains(keys, key); + }; + } + return _.pick(obj, iteratee, context); + }; + + // Fill in a given object with default properties. + _.defaults = createAssigner(_.allKeys, true); + + // Creates an object that inherits from the given prototype object. + // If additional properties are provided then they will be added to the + // created object. + _.create = function(prototype, props) { + var result = baseCreate(prototype); + if (props) _.extendOwn(result, props); + return result; + }; + + // Create a (shallow-cloned) duplicate of an object. + _.clone = function(obj) { + if (!_.isObject(obj)) return obj; + return _.isArray(obj) ? obj.slice() : _.extend({}, obj); + }; + + // Invokes interceptor with the obj, and then returns obj. + // The primary purpose of this method is to "tap into" a method chain, in + // order to perform operations on intermediate results within the chain. + _.tap = function(obj, interceptor) { + interceptor(obj); + return obj; + }; + + // Returns whether an object has a given set of `key:value` pairs. + _.isMatch = function(object, attrs) { + var keys = _.keys(attrs), length = keys.length; + if (object == null) return !length; + var obj = Object(object); + for (var i = 0; i < length; i++) { + var key = keys[i]; + if (attrs[key] !== obj[key] || !(key in obj)) return false; + } + return true; + }; + + + // Internal recursive comparison function for `isEqual`. + var eq = function(a, b, aStack, bStack) { + // Identical objects are equal. `0 === -0`, but they aren't identical. + // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal). + if (a === b) return a !== 0 || 1 / a === 1 / b; + // A strict comparison is necessary because `null == undefined`. + if (a == null || b == null) return a === b; + // Unwrap any wrapped objects. + if (a instanceof _) a = a._wrapped; + if (b instanceof _) b = b._wrapped; + // Compare `[[Class]]` names. + var className = toString.call(a); + if (className !== toString.call(b)) return false; + switch (className) { + // Strings, numbers, regular expressions, dates, and booleans are compared by value. + case '[object RegExp]': + // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i') + case '[object String]': + // Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is + // equivalent to `new String("5")`. + return '' + a === '' + b; + case '[object Number]': + // `NaN`s are equivalent, but non-reflexive. + // Object(NaN) is equivalent to NaN + if (+a !== +a) return +b !== +b; + // An `egal` comparison is performed for other numeric values. + return +a === 0 ? 1 / +a === 1 / b : +a === +b; + case '[object Date]': + case '[object Boolean]': + // Coerce dates and booleans to numeric primitive values. Dates are compared by their + // millisecond representations. Note that invalid dates with millisecond representations + // of `NaN` are not equivalent. + return +a === +b; + } + + var areArrays = className === '[object Array]'; + if (!areArrays) { + if (typeof a != 'object' || typeof b != 'object') return false; + + // Objects with different constructors are not equivalent, but `Object`s or `Array`s + // from different frames are. + var aCtor = a.constructor, bCtor = b.constructor; + if (aCtor !== bCtor && !(_.isFunction(aCtor) && aCtor instanceof aCtor && + _.isFunction(bCtor) && bCtor instanceof bCtor) + && ('constructor' in a && 'constructor' in b)) { + return false; + } + } + // Assume equality for cyclic structures. The algorithm for detecting cyclic + // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`. + + // Initializing stack of traversed objects. + // It's done here since we only need them for objects and arrays comparison. + aStack = aStack || []; + bStack = bStack || []; + var length = aStack.length; + while (length--) { + // Linear search. Performance is inversely proportional to the number of + // unique nested structures. + if (aStack[length] === a) return bStack[length] === b; + } + + // Add the first object to the stack of traversed objects. + aStack.push(a); + bStack.push(b); + + // Recursively compare objects and arrays. + if (areArrays) { + // Compare array lengths to determine if a deep comparison is necessary. + length = a.length; + if (length !== b.length) return false; + // Deep compare the contents, ignoring non-numeric properties. + while (length--) { + if (!eq(a[length], b[length], aStack, bStack)) return false; + } + } else { + // Deep compare objects. + var keys = _.keys(a), key; + length = keys.length; + // Ensure that both objects contain the same number of properties before comparing deep equality. + if (_.keys(b).length !== length) return false; + while (length--) { + // Deep compare each member + key = keys[length]; + if (!(_.has(b, key) && eq(a[key], b[key], aStack, bStack))) return false; + } + } + // Remove the first object from the stack of traversed objects. + aStack.pop(); + bStack.pop(); + return true; + }; + + // Perform a deep comparison to check if two objects are equal. + _.isEqual = function(a, b) { + return eq(a, b); + }; + + // Is a given array, string, or object empty? + // An "empty" object has no enumerable own-properties. + _.isEmpty = function(obj) { + if (obj == null) return true; + if (isArrayLike(obj) && (_.isArray(obj) || _.isString(obj) || _.isArguments(obj))) return obj.length === 0; + return _.keys(obj).length === 0; + }; + + // Is a given value a DOM element? + _.isElement = function(obj) { + return !!(obj && obj.nodeType === 1); + }; + + // Is a given value an array? + // Delegates to ECMA5's native Array.isArray + _.isArray = nativeIsArray || function(obj) { + return toString.call(obj) === '[object Array]'; + }; + + // Is a given variable an object? + _.isObject = function(obj) { + var type = typeof obj; + return type === 'function' || type === 'object' && !!obj; + }; + + // Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError. + _.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error'], function(name) { + _['is' + name] = function(obj) { + return toString.call(obj) === '[object ' + name + ']'; + }; + }); + + // Define a fallback version of the method in browsers (ahem, IE < 9), where + // there isn't any inspectable "Arguments" type. + if (!_.isArguments(arguments)) { + _.isArguments = function(obj) { + return _.has(obj, 'callee'); + }; + } + + // Optimize `isFunction` if appropriate. Work around some typeof bugs in old v8, + // IE 11 (#1621), and in Safari 8 (#1929). + if (typeof /./ != 'function' && typeof Int8Array != 'object') { + _.isFunction = function(obj) { + return typeof obj == 'function' || false; + }; + } + + // Is a given object a finite number? + _.isFinite = function(obj) { + return isFinite(obj) && !isNaN(parseFloat(obj)); + }; + + // Is the given value `NaN`? (NaN is the only number which does not equal itself). + _.isNaN = function(obj) { + return _.isNumber(obj) && obj !== +obj; + }; + + // Is a given value a boolean? + _.isBoolean = function(obj) { + return obj === true || obj === false || toString.call(obj) === '[object Boolean]'; + }; + + // Is a given value equal to null? + _.isNull = function(obj) { + return obj === null; + }; + + // Is a given variable undefined? + _.isUndefined = function(obj) { + return obj === void 0; + }; + + // Shortcut function for checking if an object has a given property directly + // on itself (in other words, not on a prototype). + _.has = function(obj, key) { + return obj != null && hasOwnProperty.call(obj, key); + }; + + // Utility Functions + // ----------------- + + // Run Underscore.js in *noConflict* mode, returning the `_` variable to its + // previous owner. Returns a reference to the Underscore object. + _.noConflict = function() { + root._ = previousUnderscore; + return this; + }; + + // Keep the identity function around for default iteratees. + _.identity = function(value) { + return value; + }; + + // Predicate-generating functions. Often useful outside of Underscore. + _.constant = function(value) { + return function() { + return value; + }; + }; + + _.noop = function(){}; + + _.property = property; + + // Generates a function for a given object that returns a given property. + _.propertyOf = function(obj) { + return obj == null ? function(){} : function(key) { + return obj[key]; + }; + }; + + // Returns a predicate for checking whether an object has a given set of + // `key:value` pairs. + _.matcher = _.matches = function(attrs) { + attrs = _.extendOwn({}, attrs); + return function(obj) { + return _.isMatch(obj, attrs); + }; + }; + + // Run a function **n** times. + _.times = function(n, iteratee, context) { + var accum = Array(Math.max(0, n)); + iteratee = optimizeCb(iteratee, context, 1); + for (var i = 0; i < n; i++) accum[i] = iteratee(i); + return accum; + }; + + // Return a random integer between min and max (inclusive). + _.random = function(min, max) { + if (max == null) { + max = min; + min = 0; + } + return min + Math.floor(Math.random() * (max - min + 1)); + }; + + // A (possibly faster) way to get the current timestamp as an integer. + _.now = Date.now || function() { + return new Date().getTime(); + }; + + // List of HTML entities for escaping. + var escapeMap = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''', + '`': '`' + }; + var unescapeMap = _.invert(escapeMap); + + // Functions for escaping and unescaping strings to/from HTML interpolation. + var createEscaper = function(map) { + var escaper = function(match) { + return map[match]; + }; + // Regexes for identifying a key that needs to be escaped + var source = '(?:' + _.keys(map).join('|') + ')'; + var testRegexp = RegExp(source); + var replaceRegexp = RegExp(source, 'g'); + return function(string) { + string = string == null ? '' : '' + string; + return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string; + }; + }; + _.escape = createEscaper(escapeMap); + _.unescape = createEscaper(unescapeMap); + + // If the value of the named `property` is a function then invoke it with the + // `object` as context; otherwise, return it. + _.result = function(object, property, fallback) { + var value = object == null ? void 0 : object[property]; + if (value === void 0) { + value = fallback; + } + return _.isFunction(value) ? value.call(object) : value; + }; + + // Generate a unique integer id (unique within the entire client session). + // Useful for temporary DOM ids. + var idCounter = 0; + _.uniqueId = function(prefix) { + var id = ++idCounter + ''; + return prefix ? prefix + id : id; + }; + + // By default, Underscore uses ERB-style template delimiters, change the + // following template settings to use alternative delimiters. + _.templateSettings = { + evaluate : /<%([\s\S]+?)%>/g, + interpolate : /<%=([\s\S]+?)%>/g, + escape : /<%-([\s\S]+?)%>/g + }; + + // When customizing `templateSettings`, if you don't want to define an + // interpolation, evaluation or escaping regex, we need one that is + // guaranteed not to match. + var noMatch = /(.)^/; + + // Certain characters need to be escaped so that they can be put into a + // string literal. + var escapes = { + "'": "'", + '\\': '\\', + '\r': 'r', + '\n': 'n', + '\u2028': 'u2028', + '\u2029': 'u2029' + }; + + var escaper = /\\|'|\r|\n|\u2028|\u2029/g; + + var escapeChar = function(match) { + return '\\' + escapes[match]; + }; + + // JavaScript micro-templating, similar to John Resig's implementation. + // Underscore templating handles arbitrary delimiters, preserves whitespace, + // and correctly escapes quotes within interpolated code. + // NB: `oldSettings` only exists for backwards compatibility. + _.template = function(text, settings, oldSettings) { + if (!settings && oldSettings) settings = oldSettings; + settings = _.defaults({}, settings, _.templateSettings); + + // Combine delimiters into one regular expression via alternation. + var matcher = RegExp([ + (settings.escape || noMatch).source, + (settings.interpolate || noMatch).source, + (settings.evaluate || noMatch).source + ].join('|') + '|$', 'g'); + + // Compile the template source, escaping string literals appropriately. + var index = 0; + var source = "__p+='"; + text.replace(matcher, function(match, escape, interpolate, evaluate, offset) { + source += text.slice(index, offset).replace(escaper, escapeChar); + index = offset + match.length; + + if (escape) { + source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'"; + } else if (interpolate) { + source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'"; + } else if (evaluate) { + source += "';\n" + evaluate + "\n__p+='"; + } + + // Adobe VMs need the match returned to produce the correct offest. + return match; + }); + source += "';\n"; + + // If a variable is not specified, place data values in local scope. + if (!settings.variable) source = 'with(obj||{}){\n' + source + '}\n'; + + source = "var __t,__p='',__j=Array.prototype.join," + + "print=function(){__p+=__j.call(arguments,'');};\n" + + source + 'return __p;\n'; + + try { + var render = new Function(settings.variable || 'obj', '_', source); + } catch (e) { + e.source = source; + throw e; + } + + var template = function(data) { + return render.call(this, data, _); + }; + + // Provide the compiled source as a convenience for precompilation. + var argument = settings.variable || 'obj'; + template.source = 'function(' + argument + '){\n' + source + '}'; + + return template; + }; + + // Add a "chain" function. Start chaining a wrapped Underscore object. + _.chain = function(obj) { + var instance = _(obj); + instance._chain = true; + return instance; + }; + + // OOP + // --------------- + // If Underscore is called as a function, it returns a wrapped object that + // can be used OO-style. This wrapper holds altered versions of all the + // underscore functions. Wrapped objects may be chained. + + // Helper function to continue chaining intermediate results. + var result = function(instance, obj) { + return instance._chain ? _(obj).chain() : obj; + }; + + // Add your own custom functions to the Underscore object. + _.mixin = function(obj) { + _.each(_.functions(obj), function(name) { + var func = _[name] = obj[name]; + _.prototype[name] = function() { + var args = [this._wrapped]; + push.apply(args, arguments); + return result(this, func.apply(_, args)); + }; + }); + }; + + // Add all of the Underscore functions to the wrapper object. + _.mixin(_); + + // Add all mutator Array functions to the wrapper. + _.each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) { + var method = ArrayProto[name]; + _.prototype[name] = function() { + var obj = this._wrapped; + method.apply(obj, arguments); + if ((name === 'shift' || name === 'splice') && obj.length === 0) delete obj[0]; + return result(this, obj); + }; + }); + + // Add all accessor Array functions to the wrapper. + _.each(['concat', 'join', 'slice'], function(name) { + var method = ArrayProto[name]; + _.prototype[name] = function() { + return result(this, method.apply(this._wrapped, arguments)); + }; + }); + + // Extracts the result from a wrapped and chained object. + _.prototype.value = function() { + return this._wrapped; + }; + + // Provide unwrapping proxy for some methods used in engine operations + // such as arithmetic and JSON stringification. + _.prototype.valueOf = _.prototype.toJSON = _.prototype.value; + + _.prototype.toString = function() { + return '' + this._wrapped; + }; + + // AMD registration happens at the end for compatibility with AMD loaders + // that may not enforce next-turn semantics on modules. Even though general + // practice for AMD registration is to be anonymous, underscore registers + // as a named module because, like jQuery, it is a base library that is + // popular enough to be bundled in a third party lib, but not be part of + // an AMD load request. Those cases could generate an error when an + // anonymous define() is called outside of a loader request. + if (typeof define === 'function' && define.amd) { + define('underscore', [], function() { + return _; + }); + } +}.call(this)); + +},{}],26:[function(require,module,exports){ +arguments[4][19][0].apply(exports,arguments) +},{"dup":19}],27:[function(require,module,exports){ +module.exports = function isBuffer(arg) { + return arg && typeof arg === 'object' + && typeof arg.copy === 'function' + && typeof arg.fill === 'function' + && typeof arg.readUInt8 === 'function'; +} +},{}],28:[function(require,module,exports){ +(function (process,global){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +var formatRegExp = /%[sdj%]/g; +exports.format = function(f) { + if (!isString(f)) { + var objects = []; + for (var i = 0; i < arguments.length; i++) { + objects.push(inspect(arguments[i])); + } + return objects.join(' '); + } + + var i = 1; + var args = arguments; + var len = args.length; + var str = String(f).replace(formatRegExp, function(x) { + if (x === '%%') return '%'; + if (i >= len) return x; + switch (x) { + case '%s': return String(args[i++]); + case '%d': return Number(args[i++]); + case '%j': + try { + return JSON.stringify(args[i++]); + } catch (_) { + return '[Circular]'; + } + default: + return x; + } + }); + for (var x = args[i]; i < len; x = args[++i]) { + if (isNull(x) || !isObject(x)) { + str += ' ' + x; + } else { + str += ' ' + inspect(x); + } + } + return str; +}; + + +// Mark that a method should not be used. +// Returns a modified function which warns once by default. +// If --no-deprecation is set, then it is a no-op. +exports.deprecate = function(fn, msg) { + // Allow for deprecating things in the process of starting up. + if (isUndefined(global.process)) { + return function() { + return exports.deprecate(fn, msg).apply(this, arguments); + }; + } + + if (process.noDeprecation === true) { + return fn; + } + + var warned = false; + function deprecated() { + if (!warned) { + if (process.throwDeprecation) { + throw new Error(msg); + } else if (process.traceDeprecation) { + console.trace(msg); + } else { + console.error(msg); + } + warned = true; + } + return fn.apply(this, arguments); + } + + return deprecated; +}; + + +var debugs = {}; +var debugEnviron; +exports.debuglog = function(set) { + if (isUndefined(debugEnviron)) + debugEnviron = process.env.NODE_DEBUG || ''; + set = set.toUpperCase(); + if (!debugs[set]) { + if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { + var pid = process.pid; + debugs[set] = function() { + var msg = exports.format.apply(exports, arguments); + console.error('%s %d: %s', set, pid, msg); + }; + } else { + debugs[set] = function() {}; + } + } + return debugs[set]; +}; + + +/** + * Echos the value of a value. Trys to print the value out + * in the best way possible given the different types. + * + * @param {Object} obj The object to print out. + * @param {Object} opts Optional options object that alters the output. + */ +/* legacy: obj, showHidden, depth, colors*/ +function inspect(obj, opts) { + // default options + var ctx = { + seen: [], + stylize: stylizeNoColor + }; + // legacy... + if (arguments.length >= 3) ctx.depth = arguments[2]; + if (arguments.length >= 4) ctx.colors = arguments[3]; + if (isBoolean(opts)) { + // legacy... + ctx.showHidden = opts; + } else if (opts) { + // got an "options" object + exports._extend(ctx, opts); + } + // set default options + if (isUndefined(ctx.showHidden)) ctx.showHidden = false; + if (isUndefined(ctx.depth)) ctx.depth = 2; + if (isUndefined(ctx.colors)) ctx.colors = false; + if (isUndefined(ctx.customInspect)) ctx.customInspect = true; + if (ctx.colors) ctx.stylize = stylizeWithColor; + return formatValue(ctx, obj, ctx.depth); +} +exports.inspect = inspect; + + +// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics +inspect.colors = { + 'bold' : [1, 22], + 'italic' : [3, 23], + 'underline' : [4, 24], + 'inverse' : [7, 27], + 'white' : [37, 39], + 'grey' : [90, 39], + 'black' : [30, 39], + 'blue' : [34, 39], + 'cyan' : [36, 39], + 'green' : [32, 39], + 'magenta' : [35, 39], + 'red' : [31, 39], + 'yellow' : [33, 39] +}; + +// Don't use 'blue' not visible on cmd.exe +inspect.styles = { + 'special': 'cyan', + 'number': 'yellow', + 'boolean': 'yellow', + 'undefined': 'grey', + 'null': 'bold', + 'string': 'green', + 'date': 'magenta', + // "name": intentionally not styling + 'regexp': 'red' +}; + + +function stylizeWithColor(str, styleType) { + var style = inspect.styles[styleType]; + + if (style) { + return '\u001b[' + inspect.colors[style][0] + 'm' + str + + '\u001b[' + inspect.colors[style][1] + 'm'; + } else { + return str; + } +} + + +function stylizeNoColor(str, styleType) { + return str; +} + + +function arrayToHash(array) { + var hash = {}; + + array.forEach(function(val, idx) { + hash[val] = true; + }); + + return hash; +} + + +function formatValue(ctx, value, recurseTimes) { + // Provide a hook for user-specified inspect functions. + // Check that value is an object with an inspect function on it + if (ctx.customInspect && + value && + isFunction(value.inspect) && + // Filter out the util module, it's inspect function is special + value.inspect !== exports.inspect && + // Also filter out any prototype objects using the circular check. + !(value.constructor && value.constructor.prototype === value)) { + var ret = value.inspect(recurseTimes, ctx); + if (!isString(ret)) { + ret = formatValue(ctx, ret, recurseTimes); + } + return ret; + } + + // Primitive types cannot have properties + var primitive = formatPrimitive(ctx, value); + if (primitive) { + return primitive; + } + + // Look up the keys of the object. + var keys = Object.keys(value); + var visibleKeys = arrayToHash(keys); + + if (ctx.showHidden) { + keys = Object.getOwnPropertyNames(value); + } + + // IE doesn't make error fields non-enumerable + // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx + if (isError(value) + && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) { + return formatError(value); + } + + // Some type of object without properties can be shortcutted. + if (keys.length === 0) { + if (isFunction(value)) { + var name = value.name ? ': ' + value.name : ''; + return ctx.stylize('[Function' + name + ']', 'special'); + } + if (isRegExp(value)) { + return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); + } + if (isDate(value)) { + return ctx.stylize(Date.prototype.toString.call(value), 'date'); + } + if (isError(value)) { + return formatError(value); + } + } + + var base = '', array = false, braces = ['{', '}']; + + // Make Array say that they are Array + if (isArray(value)) { + array = true; + braces = ['[', ']']; + } + + // Make functions say that they are functions + if (isFunction(value)) { + var n = value.name ? ': ' + value.name : ''; + base = ' [Function' + n + ']'; + } + + // Make RegExps say that they are RegExps + if (isRegExp(value)) { + base = ' ' + RegExp.prototype.toString.call(value); + } + + // Make dates with properties first say the date + if (isDate(value)) { + base = ' ' + Date.prototype.toUTCString.call(value); + } + + // Make error with message first say the error + if (isError(value)) { + base = ' ' + formatError(value); + } + + if (keys.length === 0 && (!array || value.length == 0)) { + return braces[0] + base + braces[1]; + } + + if (recurseTimes < 0) { + if (isRegExp(value)) { + return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); + } else { + return ctx.stylize('[Object]', 'special'); + } + } + + ctx.seen.push(value); + + var output; + if (array) { + output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); + } else { + output = keys.map(function(key) { + return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); + }); + } + + ctx.seen.pop(); + + return reduceToSingleString(output, base, braces); +} + + +function formatPrimitive(ctx, value) { + if (isUndefined(value)) + return ctx.stylize('undefined', 'undefined'); + if (isString(value)) { + var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') + .replace(/'/g, "\\'") + .replace(/\\"/g, '"') + '\''; + return ctx.stylize(simple, 'string'); + } + if (isNumber(value)) + return ctx.stylize('' + value, 'number'); + if (isBoolean(value)) + return ctx.stylize('' + value, 'boolean'); + // For some reason typeof null is "object", so special case here. + if (isNull(value)) + return ctx.stylize('null', 'null'); +} + + +function formatError(value) { + return '[' + Error.prototype.toString.call(value) + ']'; +} + + +function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { + var output = []; + for (var i = 0, l = value.length; i < l; ++i) { + if (hasOwnProperty(value, String(i))) { + output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, + String(i), true)); + } else { + output.push(''); + } + } + keys.forEach(function(key) { + if (!key.match(/^\d+$/)) { + output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, + key, true)); + } + }); + return output; +} + + +function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { + var name, str, desc; + desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; + if (desc.get) { + if (desc.set) { + str = ctx.stylize('[Getter/Setter]', 'special'); + } else { + str = ctx.stylize('[Getter]', 'special'); + } + } else { + if (desc.set) { + str = ctx.stylize('[Setter]', 'special'); + } + } + if (!hasOwnProperty(visibleKeys, key)) { + name = '[' + key + ']'; + } + if (!str) { + if (ctx.seen.indexOf(desc.value) < 0) { + if (isNull(recurseTimes)) { + str = formatValue(ctx, desc.value, null); + } else { + str = formatValue(ctx, desc.value, recurseTimes - 1); + } + if (str.indexOf('\n') > -1) { + if (array) { + str = str.split('\n').map(function(line) { + return ' ' + line; + }).join('\n').substr(2); + } else { + str = '\n' + str.split('\n').map(function(line) { + return ' ' + line; + }).join('\n'); + } + } + } else { + str = ctx.stylize('[Circular]', 'special'); + } + } + if (isUndefined(name)) { + if (array && key.match(/^\d+$/)) { + return str; + } + name = JSON.stringify('' + key); + if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { + name = name.substr(1, name.length - 2); + name = ctx.stylize(name, 'name'); + } else { + name = name.replace(/'/g, "\\'") + .replace(/\\"/g, '"') + .replace(/(^"|"$)/g, "'"); + name = ctx.stylize(name, 'string'); + } + } + + return name + ': ' + str; +} + + +function reduceToSingleString(output, base, braces) { + var numLinesEst = 0; + var length = output.reduce(function(prev, cur) { + numLinesEst++; + if (cur.indexOf('\n') >= 0) numLinesEst++; + return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; + }, 0); + + if (length > 60) { + return braces[0] + + (base === '' ? '' : base + '\n ') + + ' ' + + output.join(',\n ') + + ' ' + + braces[1]; + } + + return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; +} + + +// NOTE: These type checking functions intentionally don't use `instanceof` +// because it is fragile and can be easily faked with `Object.create()`. +function isArray(ar) { + return Array.isArray(ar); +} +exports.isArray = isArray; + +function isBoolean(arg) { + return typeof arg === 'boolean'; +} +exports.isBoolean = isBoolean; + +function isNull(arg) { + return arg === null; +} +exports.isNull = isNull; + +function isNullOrUndefined(arg) { + return arg == null; +} +exports.isNullOrUndefined = isNullOrUndefined; + +function isNumber(arg) { + return typeof arg === 'number'; +} +exports.isNumber = isNumber; + +function isString(arg) { + return typeof arg === 'string'; +} +exports.isString = isString; + +function isSymbol(arg) { + return typeof arg === 'symbol'; +} +exports.isSymbol = isSymbol; + +function isUndefined(arg) { + return arg === void 0; +} +exports.isUndefined = isUndefined; + +function isRegExp(re) { + return isObject(re) && objectToString(re) === '[object RegExp]'; +} +exports.isRegExp = isRegExp; + +function isObject(arg) { + return typeof arg === 'object' && arg !== null; +} +exports.isObject = isObject; + +function isDate(d) { + return isObject(d) && objectToString(d) === '[object Date]'; +} +exports.isDate = isDate; + +function isError(e) { + return isObject(e) && + (objectToString(e) === '[object Error]' || e instanceof Error); +} +exports.isError = isError; + +function isFunction(arg) { + return typeof arg === 'function'; +} +exports.isFunction = isFunction; + +function isPrimitive(arg) { + return arg === null || + typeof arg === 'boolean' || + typeof arg === 'number' || + typeof arg === 'string' || + typeof arg === 'symbol' || // ES6 symbol + typeof arg === 'undefined'; +} +exports.isPrimitive = isPrimitive; + +exports.isBuffer = require('./support/isBuffer'); + +function objectToString(o) { + return Object.prototype.toString.call(o); +} + + +function pad(n) { + return n < 10 ? '0' + n.toString(10) : n.toString(10); +} + + +var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec']; + +// 26 Feb 16:19:34 +function timestamp() { + var d = new Date(); + var time = [pad(d.getHours()), + pad(d.getMinutes()), + pad(d.getSeconds())].join(':'); + return [d.getDate(), months[d.getMonth()], time].join(' '); +} + + +// log is just a thin wrapper to console.log that prepends a timestamp +exports.log = function() { + console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); +}; + + +/** + * Inherit the prototype methods from one constructor into another. + * + * The Function.prototype.inherits from lang.js rewritten as a standalone + * function (not on Function.prototype). NOTE: If this file is to be loaded + * during bootstrapping this function needs to be rewritten using some native + * functions as prototype setup using normal JavaScript does not work as + * expected during bootstrapping (see mirror.js in r114903). + * + * @param {function} ctor Constructor function which needs to inherit the + * prototype. + * @param {function} superCtor Constructor function to inherit prototype from. + */ +exports.inherits = require('inherits'); + +exports._extend = function(origin, add) { + // Don't do anything if add isn't an object + if (!add || !isObject(add)) return origin; + + var keys = Object.keys(add); + var i = keys.length; + while (i--) { + origin[keys[i]] = add[keys[i]]; + } + return origin; +}; + +function hasOwnProperty(obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); +} + +}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"./support/isBuffer":27,"_process":24,"inherits":26}],29:[function(require,module,exports){ +// Returns a wrapper function that returns a wrapped callback +// The wrapper function should do some stuff, and return a +// presumably different callback function. +// This makes sure that own properties are retained, so that +// decorations and such are not lost along the way. +module.exports = wrappy +function wrappy (fn, cb) { + if (fn && cb) return wrappy(fn)(cb) + + if (typeof fn !== 'function') + throw new TypeError('need wrapper function') + + Object.keys(fn).forEach(function (k) { + wrapper[k] = fn[k] + }) + + return wrapper + + function wrapper() { + var args = new Array(arguments.length) + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i] + } + var ret = fn.apply(this, args) + var cb = args[args.length-1] + if (typeof ret === 'function' && ret !== cb) { + Object.keys(cb).forEach(function (k) { + ret[k] = cb[k] + }) + } + return ret + } +} + +},{}]},{},[7])(7) +}); \ No newline at end of file diff --git a/docs/assets/javascripts/vendor.8caa27b7.min.js b/docs/assets/javascripts/vendor.8caa27b7.min.js new file mode 100644 index 00000000..56d11de4 --- /dev/null +++ b/docs/assets/javascripts/vendor.8caa27b7.min.js @@ -0,0 +1,31 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[1],[function(t,e,n){"use strict";n.d(e,"f",(function(){return i})),n.d(e,"a",(function(){return o})),n.d(e,"e",(function(){return s})),n.d(e,"g",(function(){return u})),n.d(e,"k",(function(){return c})),n.d(e,"h",(function(){return a})),n.d(e,"i",(function(){return f})),n.d(e,"j",(function(){return h})),n.d(e,"d",(function(){return l})),n.d(e,"b",(function(){return p})),n.d(e,"c",(function(){return d})); +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */ +var r=function(t,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function i(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var o=function(){return(o=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function a(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var r,i,o=n.call(t),s=[];try{for(;(void 0===e||e-- >0)&&!(r=o.next()).done;)s.push(r.value)}catch(t){i={error:t}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return s}function f(){for(var t=[],e=0;e1||u(t,e)}))})}function u(t,e){try{(n=i[t](e)).value instanceof l?Promise.resolve(n.value.v).then(c,a):f(o[0][2],n)}catch(t){f(o[0][3],t)}var n}function c(t){u("next",t)}function a(t){u("throw",t)}function f(t,e){t(e),o.shift(),o.length&&u(o[0][0],o[0][1])}}function d(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,n=t[Symbol.asyncIterator];return n?n.call(t):(t=c(t),e={},r("next"),r("throw"),r("return"),e[Symbol.asyncIterator]=function(){return this},e);function r(n){e[n]=t[n]&&function(e){return new Promise((function(r,i){(function(t,e,n,r){Promise.resolve(r).then((function(e){t({value:e,done:n})}),e)})(r,i,(e=t[n](e)).done,e.value)}))}}}},,,function(t,e,n){"use strict";n.d(e,"a",(function(){return f}));var r=n(0),i=n(15),o=n(40),s=n(8),u=n(32),c=n(12),a=n(22),f=function(t){function e(n,r,i){var s=t.call(this)||this;switch(s.syncErrorValue=null,s.syncErrorThrown=!1,s.syncErrorThrowable=!1,s.isStopped=!1,arguments.length){case 0:s.destination=o.a;break;case 1:if(!n){s.destination=o.a;break}if("object"==typeof n){n instanceof e?(s.syncErrorThrowable=n.syncErrorThrowable,s.destination=n,n.add(s)):(s.syncErrorThrowable=!0,s.destination=new h(s,n));break}default:s.syncErrorThrowable=!0,s.destination=new h(s,n,r,i)}return s}return Object(r.f)(e,t),e.prototype[u.a]=function(){return this},e.create=function(t,n,r){var i=new e(t,n,r);return i.syncErrorThrowable=!1,i},e.prototype.next=function(t){this.isStopped||this._next(t)},e.prototype.error=function(t){this.isStopped||(this.isStopped=!0,this._error(t))},e.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},e.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,t.prototype.unsubscribe.call(this))},e.prototype._next=function(t){this.destination.next(t)},e.prototype._error=function(t){this.destination.error(t),this.unsubscribe()},e.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},e.prototype._unsubscribeAndRecycle=function(){var t=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=t,this},e}(s.a),h=function(t){function e(e,n,r,s){var u,c=t.call(this)||this;c._parentSubscriber=e;var a=c;return Object(i.a)(n)?u=n:n&&(u=n.next,r=n.error,s=n.complete,n!==o.a&&(a=Object.create(n),Object(i.a)(a.unsubscribe)&&c.add(a.unsubscribe.bind(a)),a.unsubscribe=c.unsubscribe.bind(c))),c._context=a,c._next=u,c._error=r,c._complete=s,c}return Object(r.f)(e,t),e.prototype.next=function(t){if(!this.isStopped&&this._next){var e=this._parentSubscriber;c.a.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?this.__tryOrSetError(e,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}},e.prototype.error=function(t){if(!this.isStopped){var e=this._parentSubscriber,n=c.a.useDeprecatedSynchronousErrorHandling;if(this._error)n&&e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else if(e.syncErrorThrowable)n?(e.syncErrorValue=t,e.syncErrorThrown=!0):Object(a.a)(t),this.unsubscribe();else{if(this.unsubscribe(),n)throw t;Object(a.a)(t)}}},e.prototype.complete=function(){var t=this;if(!this.isStopped){var e=this._parentSubscriber;if(this._complete){var n=function(){return t._complete.call(t._context)};c.a.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}},e.prototype.__tryOrUnsub=function(t,e){try{t.call(this._context,e)}catch(t){if(this.unsubscribe(),c.a.useDeprecatedSynchronousErrorHandling)throw t;Object(a.a)(t)}},e.prototype.__tryOrSetError=function(t,e,n){if(!c.a.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{e.call(this._context,n)}catch(e){return c.a.useDeprecatedSynchronousErrorHandling?(t.syncErrorValue=e,t.syncErrorThrown=!0,!0):(Object(a.a)(e),!0)}return!1},e.prototype._unsubscribe=function(){var t=this._parentSubscriber;this._context=null,this._parentSubscriber=null,t.unsubscribe()},e}(f)},,,function(t,e,n){"use strict";n.d(e,"a",(function(){return l}));var r=n(3);var i=n(32),o=n(40);var s=n(17),u=n(45),c=n(12),a=n(0),f=function(){var t=this;this.resolve=null,this.reject=null,this.promise=new Promise((function(e,n){t.resolve=e,t.reject=n}))};function h(t){return function(t){return Object(a.b)(this,arguments,(function(){var e,n,r,i,o,s,u,c;return Object(a.g)(this,(function(h){switch(h.label){case 0:e=[],n=[],r=!1,i=null,o=!1,s=t.subscribe({next:function(t){e.length>0?e.shift().resolve({value:t,done:!1}):n.push(t)},error:function(t){for(r=!0,i=t;e.length>0;)e.shift().reject(t)},complete:function(){for(o=!0;e.length>0;)e.shift().resolve({value:void 0,done:!0})}}),h.label=1;case 1:h.trys.push([1,16,17,18]),h.label=2;case 2:return n.length>0?[4,Object(a.d)(n.shift())]:[3,5];case 3:return[4,h.sent()];case 4:return h.sent(),[3,14];case 5:return o?[4,Object(a.d)(void 0)]:[3,7];case 6:return[2,h.sent()];case 7:if(!r)return[3,8];throw i;case 8:return u=new f,e.push(u),[4,Object(a.d)(u.promise)];case 9:return(c=h.sent()).done?[4,Object(a.d)(void 0)]:[3,11];case 10:return[2,h.sent()];case 11:return[4,Object(a.d)(c.value)];case 12:return[4,h.sent()];case 13:h.sent(),h.label=14;case 14:return[3,2];case 15:return[3,18];case 16:throw h.sent();case 17:return s.unsubscribe(),[7];case 18:return[2]}}))}))}(t)}var l=function(){function t(t){this._isScalar=!1,t&&(this._subscribe=t)}return t.prototype.lift=function(e){var n=new t;return n.source=this,n.operator=e,n},t.prototype.subscribe=function(t,e,n){var s=this.operator,u=function(t,e,n){if(t){if(t instanceof r.a)return t;if(t[i.a])return t[i.a]()}return t||e||n?new r.a(t,e,n):new r.a(o.a)}(t,e,n);if(s?u.add(s.call(u,this.source)):u.add(this.source||c.a.useDeprecatedSynchronousErrorHandling&&!u.syncErrorThrowable?this._subscribe(u):this._trySubscribe(u)),c.a.useDeprecatedSynchronousErrorHandling&&u.syncErrorThrowable&&(u.syncErrorThrowable=!1,u.syncErrorThrown))throw u.syncErrorValue;return u},t.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(e){c.a.useDeprecatedSynchronousErrorHandling&&(t.syncErrorThrown=!0,t.syncErrorValue=e),!function(t){for(;t;){var e=t,n=e.closed,i=e.destination,o=e.isStopped;if(n||o)return!1;t=i&&i instanceof r.a?i:null}return!0}(t)?console.warn(e):t.error(e)}},t.prototype.forEach=function(t,e){var n=this;return new(e=p(e))((function(e,r){var i;i=n.subscribe((function(e){try{t(e)}catch(t){r(t),i&&i.unsubscribe()}}),r,e)}))},t.prototype._subscribe=function(t){var e=this.source;return e&&e.subscribe(t)},t.prototype[s.a]=function(){return this},t.prototype.pipe=function(){for(var t=[],e=0;e0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},e}(o.a),h=n(49);function l(t){return void 0===t&&(t=Number.POSITIVE_INFINITY),function t(e,n,r){return void 0===r&&(r=Number.POSITIVE_INFINITY),"function"==typeof n?function(i){return i.pipe(t((function(t,r){return Object(c.a)(e(t,r)).pipe(Object(u.a)((function(e,i){return n(t,e,r,i)})))}),r))}:("number"==typeof n&&(r=n),function(t){return t.lift(new a(e,r))})}(h.a,t)}},function(t,e,n){"use strict";n.d(e,"b",(function(){return s})),n.d(e,"a",(function(){return c}));var r=n(0),i=n(3),o=n(41);function s(t,e){return void 0===e&&(e=0),function(n){return n.lift(new u(t,e))}}var u=function(){function t(t,e){void 0===e&&(e=0),this.scheduler=t,this.delay=e}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.scheduler,this.delay))},t}(),c=function(t){function e(e,n,r){void 0===r&&(r=0);var i=t.call(this,e)||this;return i.scheduler=n,i.delay=r,i}return Object(r.f)(e,t),e.dispatch=function(t){var e=t.notification,n=t.destination;e.observe(n),this.unsubscribe()},e.prototype.scheduleMessage=function(t){this.destination.add(this.scheduler.schedule(e.dispatch,this.delay,new a(t,this.destination)))},e.prototype._next=function(t){this.scheduleMessage(o.a.createNext(t))},e.prototype._error=function(t){this.scheduleMessage(o.a.createError(t)),this.unsubscribe()},e.prototype._complete=function(){this.scheduleMessage(o.a.createComplete()),this.unsubscribe()},e}(i.a),a=function(t,e){this.notification=t,this.destination=e}},,function(t,e,n){ +/*! + * clipboard.js v2.0.6 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */ +var r;r=function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=6)}([function(t,e){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var r=window.getSelection(),i=document.createRange();i.selectNodeContents(t),r.removeAllRanges(),r.addRange(i),e=r.toString()}return e}},function(t,e){function n(){}n.prototype={on:function(t,e,n){var r=this.e||(this.e={});return(r[t]||(r[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var r=this;function i(){r.off(t,i),e.apply(n,arguments)}return i._=e,this.on(t,i,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),r=0,i=n.length;r0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=i()(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=i()(this.target),this.copyText()}},{key:"copyText",value:function(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),document.activeElement.blur(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":o(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),t}(),c=n(1),a=n.n(c),f=n(2),h=n.n(f),l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},p=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===l(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=h()(t,"click",(function(t){return e.onClick(t)}))}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new u({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return b("action",t)}},{key:"defaultTarget",value:function(t){var e=b("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return b("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach((function(t){n=n&&!!document.queryCommandSupported(t)})),n}}]),e}(a.a);function b(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}e.default=d}]).default},t.exports=r()},function(t,e,n){"use strict";n.d(e,"a",(function(){return f}));var r=n(0),i=n(25),o=n(24),s=n(11),u=n(10),c=n(35),a={};function f(){for(var t=[],e=0;e0},t.prototype.connect_=function(){r&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),u?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},t.prototype.disconnect_=function(){r&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},t.prototype.onTransitionEnd_=function(t){var e=t.propertyName,n=void 0===e?"":e;s.some((function(t){return!!~n.indexOf(t)}))&&this.refresh()},t.getInstance=function(){return this.instance_||(this.instance_=new t),this.instance_},t.instance_=null,t}(),a=function(t,e){for(var n=0,r=Object.keys(e);n0},t}(),g="undefined"!=typeof WeakMap?new WeakMap:new n,O=function t(e){if(!(this instanceof t))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=c.getInstance(),r=new _(e,n,this);g.set(this,r)};["observe","unobserve","disconnect"].forEach((function(t){O.prototype[t]=function(){var e;return(e=g.get(this))[t].apply(e,arguments)}}));var x=void 0!==i.ResizeObserver?i.ResizeObserver:O;e.a=x}).call(this,n(60))},function(t,e,n){"use strict"; +/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var r=/["'&<>]/;t.exports=function(t){var e,n=""+t,i=r.exec(n);if(!i)return n;var o="",s=0,u=0;for(s=i.index;s0?t.prototype.schedule.call(this,e,n):(this.delay=n,this.state=e,this.scheduler.flush(this),this)},e.prototype.execute=function(e,n){return n>0||this.closed?t.prototype.execute.call(this,e,n):this._execute(e,n)},e.prototype.requestAsyncId=function(e,n,r){return void 0===r&&(r=0),null!==r&&r>0||null===r&&this.delay>0?t.prototype.requestAsyncId.call(this,e,n,r):e.flush(this)},e}(n(38).a),s=new(function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(r.f)(e,t),e}(n(37).a))(o),u=n(8),c=n(56),a=n(19),f=n(48),h=function(t){function e(e,n,r){void 0===e&&(e=Number.POSITIVE_INFINITY),void 0===n&&(n=Number.POSITIVE_INFINITY);var i=t.call(this)||this;return i.scheduler=r,i._events=[],i._infiniteTimeWindow=!1,i._bufferSize=e<1?1:e,i._windowTime=n<1?1:n,n===Number.POSITIVE_INFINITY?(i._infiniteTimeWindow=!0,i.next=i.nextInfiniteTimeWindow):i.next=i.nextTimeWindow,i}return Object(r.f)(e,t),e.prototype.nextInfiniteTimeWindow=function(e){var n=this._events;n.push(e),n.length>this._bufferSize&&n.shift(),t.prototype.next.call(this,e)},e.prototype.nextTimeWindow=function(e){this._events.push(new l(this._getNow(),e)),this._trimBufferThenGetEvents(),t.prototype.next.call(this,e)},e.prototype._subscribe=function(t){var e,n=this._infiniteTimeWindow,r=n?this._events:this._trimBufferThenGetEvents(),i=this.scheduler,o=r.length;if(this.closed)throw new a.a;if(this.isStopped||this.hasError?e=u.a.EMPTY:(this.observers.push(t),e=new f.a(this,t)),i&&t.add(t=new c.a(t,i)),n)for(var s=0;se&&(o=Math.max(o,i-e)),o>0&&r.splice(0,o),r},e}(i.a),l=function(t,e){this.time=t,this.value=e}},function(t,e,n){"use strict";var r=n(21);function i(t,e){return Object.prototype.hasOwnProperty.call(e,t)}var o=Object.prototype.toString,s=function(){return"[object Arguments]"===o.call(arguments)?function(t){return"[object Arguments]"===o.call(t)}:function(t){return i("callee",t)}}(),u=!{toString:null}.propertyIsEnumerable("toString"),c=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],a=function(){return arguments.propertyIsEnumerable("length")}(),f=function(t,e){for(var n=0;n=0;)i(e=c[n],t)&&!f(r,e)&&(r[r.length]=e),n-=1;return r})):Object(r.a)((function(t){return Object(t)!==t?[]:Object.keys(t)}));e.a=h},function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var r=n(0),i=n(3),o=n(16),s=n(15);function u(t,e,n){return function(r){return r.lift(new c(t,e,n))}}var c=function(){function t(t,e,n){this.nextOrObserver=t,this.error=e,this.complete=n}return t.prototype.call=function(t,e){return e.subscribe(new a(t,this.nextOrObserver,this.error,this.complete))},t}(),a=function(t){function e(e,n,r,i){var u=t.call(this,e)||this;return u._tapNext=o.a,u._tapError=o.a,u._tapComplete=o.a,u._tapError=r||o.a,u._tapComplete=i||o.a,Object(s.a)(n)?(u._context=u,u._tapNext=n):n&&(u._context=n,u._tapNext=n.next||o.a,u._tapError=n.error||o.a,u._tapComplete=n.complete||o.a),u}return Object(r.f)(e,t),e.prototype._next=function(t){try{this._tapNext.call(this._context,t)}catch(t){return void this.destination.error(t)}this.destination.next(t)},e.prototype._error=function(t){try{this._tapError.call(this._context,t)}catch(t){return void this.destination.error(t)}this.destination.error(t)},e.prototype._complete=function(){try{this._tapComplete.call(this._context)}catch(t){return void this.destination.error(t)}return this.destination.complete()},e}(i.a)},function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var r=n(0),i=n(3);function o(t,e){var n=!1;return arguments.length>=2&&(n=!0),function(r){return r.lift(new s(t,e,n))}}var s=function(){function t(t,e,n){void 0===n&&(n=!1),this.accumulator=t,this.seed=e,this.hasSeed=n}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.accumulator,this.seed,this.hasSeed))},t}(),u=function(t){function e(e,n,r,i){var o=t.call(this,e)||this;return o.accumulator=n,o._state=r,o._hasState=i,o.index=0,o}return Object(r.f)(e,t),e.prototype._next=function(t){var e=this.destination;if(this._hasState){var n=this.index++,r=void 0;try{r=this.accumulator(this._state,t,n)}catch(t){return void e.error(t)}this._state=r,e.next(r)}else this._state=t,this._hasState=!0,e.next(t)},e}(i.a)},function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var r=n(0),i=n(3),o=n(8);function s(t){return function(e){return e.lift(new u(t))}}var u=function(){function t(t){this.callback=t}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.callback))},t}(),c=function(t){function e(e,n){var r=t.call(this,e)||this;return r.add(new o.a(n)),r}return Object(r.f)(e,t),e}(i.a)},function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var r=n(0),i=function(t){function e(e,n){var r=t.call(this,e,n)||this;return r.scheduler=e,r.work=n,r}return Object(r.f)(e,t),e.prototype.requestAsyncId=function(e,n,r){return void 0===r&&(r=0),null!==r&&r>0?t.prototype.requestAsyncId.call(this,e,n,r):(e.actions.push(this),e.scheduled||(e.scheduled=requestAnimationFrame((function(){return e.flush(void 0)}))))},e.prototype.recycleAsyncId=function(e,n,r){if(void 0===r&&(r=0),null!==r&&r>0||null===r&&this.delay>0)return t.prototype.recycleAsyncId.call(this,e,n,r);0===e.actions.length&&(cancelAnimationFrame(n),e.scheduled=void 0)},e}(n(38).a),o=new(function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(r.f)(e,t),e.prototype.flush=function(t){this.active=!0,this.scheduled=void 0;var e,n=this.actions,r=-1,i=n.length;t=t||n.shift();do{if(e=t.execute(t.state,t.delay))break}while(++r0){var s=o.indexOf(n);-1!==s&&o.splice(s,1)}},e.prototype.notifyComplete=function(){},e.prototype._next=function(t){if(0===this.toRespond.length){var e=Object(r.j)([t],this.values);this.project?this._tryProject(e):this.destination.next(e)}},e.prototype._tryProject=function(t){var e;try{e=this.project.apply(this,t)}catch(t){return void this.destination.error(t)}this.destination.next(e)},e}(i.a)},function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var r=n(0),i=n(3);function o(t,e){return void 0===e&&(e=null),function(n){return n.lift(new s(t,e))}}var s=function(){function t(t,e){this.bufferSize=t,this.startBufferEvery=e,this.subscriberClass=e&&t!==e?c:u}return t.prototype.call=function(t,e){return e.subscribe(new this.subscriberClass(t,this.bufferSize,this.startBufferEvery))},t}(),u=function(t){function e(e,n){var r=t.call(this,e)||this;return r.bufferSize=n,r.buffer=[],r}return Object(r.f)(e,t),e.prototype._next=function(t){var e=this.buffer;e.push(t),e.length==this.bufferSize&&(this.destination.next(e),this.buffer=[])},e.prototype._complete=function(){var e=this.buffer;e.length>0&&this.destination.next(e),t.prototype._complete.call(this)},e}(i.a),c=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.bufferSize=n,i.startBufferEvery=r,i.buffers=[],i.count=0,i}return Object(r.f)(e,t),e.prototype._next=function(t){var e=this.bufferSize,n=this.startBufferEvery,r=this.buffers,i=this.count;this.count++,i%n==0&&r.push([]);for(var o=r.length;o--;){var s=r[o];s.push(t),s.length===e&&(r.splice(o,1),this.destination.next(s))}},e.prototype._complete=function(){for(var e=this.buffers,n=this.destination;e.length>0;){var r=e.shift();r.length>0&&n.next(r)}t.prototype._complete.call(this)},e}(i.a)},function(t,e,n){"use strict";n.d(e,"a",(function(){return c}));var r=n(39),i=n(55);function o(){return Object(i.a)(1)}function s(){for(var t=[],e=0;e1?r.next(Array.prototype.slice.call(arguments)):r.next(t)}),r,n)}))}},function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var r=n(0),i=n(3);function o(t){return function(e){return e.lift(new s(t))}}var s=function(){function t(t){this.value=t}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.value))},t}(),u=function(t){function e(e,n){var r=t.call(this,e)||this;return r.value=n,r}return Object(r.f)(e,t),e.prototype._next=function(t){this.destination.next(this.value)},e}(i.a)},function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var r=n(6),i=n(25),o=n(55),s=n(35);function u(){for(var t=[],e=0;e1&&"number"==typeof t[t.length-1]&&(n=t.pop())):"number"==typeof c&&(n=t.pop()),!u&&1===t.length&&t[0]instanceof r.a?t[0]:Object(o.a)(n)(Object(s.a)(t,u))}},function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var r=n(6),i=n(24),o=n(15),s=n(9);function u(t,e,n){return n?u(t,e).pipe(Object(s.a)((function(t){return Object(i.a)(t)?n.apply(void 0,t):n(t)}))):new r.a((function(n){var r,i=function(){for(var t=[],e=0;ethis.total&&this.destination.next(t)},e}(i.a)},function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var r=n(0),i=n(11),o=n(28),s=n(10);function u(t){return function(e){var n=new c(t),r=e.lift(n);return n.caught=r}}var c=function(){function t(t){this.selector=t}return t.prototype.call=function(t,e){return e.subscribe(new a(t,this.selector,this.caught))},t}(),a=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.selector=n,i.caught=r,i}return Object(r.f)(e,t),e.prototype.error=function(e){if(!this.isStopped){var n=void 0;try{n=this.selector(e,this.caught)}catch(e){return void t.prototype.error.call(this,e)}this._unsubscribeAndRecycle();var r=new o.a(this,void 0,void 0);this.add(r);var i=Object(s.a)(this,n,void 0,void 0,r);i!==r&&this.add(i)}},e}(i.a)},function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var r=n(0),i=n(3),o=n(53);function s(t,e){return void 0===e&&(e=o.a),function(n){return n.lift(new u(t,e))}}var u=function(){function t(t,e){this.dueTime=t,this.scheduler=e}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.dueTime,this.scheduler))},t}(),c=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.dueTime=n,i.scheduler=r,i.debouncedSubscription=null,i.lastValue=null,i.hasValue=!1,i}return Object(r.f)(e,t),e.prototype._next=function(t){this.clearDebounce(),this.lastValue=t,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(a,this.dueTime,this))},e.prototype._complete=function(){this.debouncedNext(),this.destination.complete()},e.prototype.debouncedNext=function(){if(this.clearDebounce(),this.hasValue){var t=this.lastValue;this.lastValue=null,this.hasValue=!1,this.destination.next(t)}},e.prototype.clearDebounce=function(){var t=this.debouncedSubscription;null!==t&&(this.remove(t),t.unsubscribe(),this.debouncedSubscription=null)},e}(i.a);function a(t){t.debouncedNext()}},function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var r=n(76),i=n(18);function o(t,e,n){return void 0===e&&(e=i.a),void 0===n&&(n=i.a),Object(r.a)((function(){return t()?e:n}))}},function(t,e,n){"use strict";var r=n(21),i=n(78),o=Object(r.a)((function(t){for(var e=Object(i.a)(t),n=e.length,r=[],o=0;o1)this.connection=null;else{var n=this.connection,r=t._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null},e}(s.a),l=function(t){function e(e,n){var r=t.call(this)||this;return r.source=e,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return Object(r.f)(e,t),e.prototype._subscribe=function(t){return this.getSubject().subscribe(t)},e.prototype.getSubject=function(){var t=this._subject;return t&&!t.isStopped||(this._subject=this.subjectFactory()),this._subject},e.prototype.connect=function(){var t=this._connection;return t||(this._isComplete=!1,(t=this._connection=new u.a).add(this.source.subscribe(new d(this.getSubject(),this))),t.closed&&(this._connection=null,t=u.a.EMPTY)),t},e.prototype.refCount=function(){return c()(this)},e}(o.a),p={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:(a=l.prototype)._subscribe},_isComplete:{value:a._isComplete,writable:!0},getSubject:{value:a.getSubject},connect:{value:a.connect},refCount:{value:a.refCount}},d=function(t){function e(e,n){var r=t.call(this,e)||this;return r.connectable=n,r}return Object(r.f)(e,t),e.prototype._error=function(e){this._unsubscribe(),t.prototype._error.call(this,e)},e.prototype._complete=function(){this.connectable._isComplete=!0,this._unsubscribe(),t.prototype._complete.call(this)},e.prototype._unsubscribe=function(){var t=this.connectable;if(t){this.connectable=null;var e=t._connection;t._refCount=0,t._subject=null,t._connection=null,e&&e.unsubscribe()}},e}(i.b),b=(function(){function t(t){this.connectable=t}t.prototype.call=function(t,e){var n=this.connectable;n._refCount++;var r=new b(t,n),i=e.subscribe(r);return r.closed||(r.connection=n.connect()),i}}(),function(t){function e(e,n){var r=t.call(this,e)||this;return r.connectable=n,r}return Object(r.f)(e,t),e.prototype._unsubscribe=function(){var t=this.connectable;if(t){this.connectable=null;var e=t._refCount;if(e<=0)this.connection=null;else if(t._refCount=e-1,e>1)this.connection=null;else{var n=this.connection,r=t._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null},e}(s.a));var v=function(){function t(t,e){this.subjectFactory=t,this.selector=e}return t.prototype.call=function(t,e){var n=this.selector,r=this.subjectFactory(),i=n(r).subscribe(t);return i.add(e.subscribe(r)),i},t}();function y(){return new i.a}function m(){return function(t){return c()((e=y,function(t){var r;if(r="function"==typeof e?e:function(){return e},"function"==typeof n)return t.lift(new v(r,n));var i=Object.create(t,p);return i.source=t,i.subjectFactory=r,i})(t));var e,n}}},function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var r=n(0),i=n(3),o=function(){function t(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}return t.prototype=Object.create(Error.prototype),t}(),s=n(18);function u(t){return function(e){return 0===t?s.a:e.lift(new c(t))}}var c=function(){function t(t){if(this.total=t,this.total<0)throw new o}return t.prototype.call=function(t,e){return e.subscribe(new a(t,this.total))},t}(),a=function(t){function e(e,n){var r=t.call(this,e)||this;return r.total=n,r.count=0,r}return Object(r.f)(e,t),e.prototype._next=function(t){var e=this.total,n=++this.count;n<=e&&(this.destination.next(t),n===e&&(this.destination.complete(),this.unsubscribe()))},e}(i.a)},function(t,e,n){"use strict";var r=n(21);function i(t){return t}var o=Object(r.a)(i);e.a=o},function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var r=n(0),i=n(53);var o=n(3),s=n(41);function u(t,e){void 0===e&&(e=i.a);var n,r=(n=t)instanceof Date&&!isNaN(+n)?+t-e.now():Math.abs(t);return function(t){return t.lift(new c(r,e))}}var c=function(){function t(t,e){this.delay=t,this.scheduler=e}return t.prototype.call=function(t,e){return e.subscribe(new a(t,this.delay,this.scheduler))},t}(),a=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.delay=n,i.scheduler=r,i.queue=[],i.active=!1,i.errored=!1,i}return Object(r.f)(e,t),e.dispatch=function(t){for(var e=t.source,n=e.queue,r=t.scheduler,i=t.destination;n.length>0&&n[0].time-r.now()<=0;)n.shift().notification.observe(i);if(n.length>0){var o=Math.max(0,n[0].time-r.now());this.schedule(t,o)}else e.isStopped?(e.destination.complete(),e.active=!1):(this.unsubscribe(),e.active=!1)},e.prototype._schedule=function(t){this.active=!0,this.destination.add(t.schedule(e.dispatch,this.delay,{source:this,destination:this.destination,scheduler:t}))},e.prototype.scheduleNotification=function(t){if(!0!==this.errored){var e=this.scheduler,n=new f(e.now()+this.delay,t);this.queue.push(n),!1===this.active&&this._schedule(e)}},e.prototype._next=function(t){this.scheduleNotification(s.a.createNext(t))},e.prototype._error=function(t){this.errored=!0,this.queue=[],this.destination.error(t),this.unsubscribe()},e.prototype._complete=function(){0===this.queue.length&&this.destination.complete(),this.unsubscribe()},e}(o.a),f=function(t,e){this.time=t,this.notification=e}},function(t,e,n){"use strict";n.d(e,"a",(function(){return g}));var r=n(0),i=n(13),o=n(6),s=n(3),u=n(9);function c(t,e){return new b({method:"GET",url:t,headers:e})}function a(t,e,n){return new b({method:"POST",url:t,body:e,headers:n})}function f(t,e){return new b({method:"DELETE",url:t,headers:e})}function h(t,e,n){return new b({method:"PUT",url:t,body:e,headers:n})}function l(t,e,n){return new b({method:"PATCH",url:t,body:e,headers:n})}var p=Object(u.a)((function(t,e){return t.response}));function d(t,e){return p(new b({method:"GET",url:t,responseType:"json",headers:e}))}var b=function(t){function e(e){var n=t.call(this)||this,r={async:!0,createXHR:function(){return this.crossDomain?function(){if(i.a.XMLHttpRequest)return new i.a.XMLHttpRequest;if(i.a.XDomainRequest)return new i.a.XDomainRequest;throw new Error("CORS is not supported by your browser")}():function(){if(i.a.XMLHttpRequest)return new i.a.XMLHttpRequest;var t=void 0;try{for(var e=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],n=0;n<3;n++)try{if(t=e[n],new i.a.ActiveXObject(t))break}catch(t){}return new i.a.ActiveXObject(t)}catch(t){throw new Error("XMLHttpRequest is not supported by your browser")}}()},crossDomain:!0,withCredentials:!1,headers:{},method:"GET",responseType:"json",timeout:0};if("string"==typeof e)r.url=e;else for(var o in e)e.hasOwnProperty(o)&&(r[o]=e[o]);return n.request=r,n}var n;return Object(r.f)(e,t),e.prototype._subscribe=function(t){return new v(t,this.request)},e.create=((n=function(t){return new e(t)}).get=c,n.post=a,n.delete=f,n.put=h,n.patch=l,n.getJSON=d,n),e}(o.a),v=function(t){function e(e,n){var r=t.call(this,e)||this;r.request=n,r.done=!1;var o=n.headers=n.headers||{};return n.crossDomain||r.getHeader(o,"X-Requested-With")||(o["X-Requested-With"]="XMLHttpRequest"),r.getHeader(o,"Content-Type")||i.a.FormData&&n.body instanceof i.a.FormData||void 0===n.body||(o["Content-Type"]="application/x-www-form-urlencoded; charset=UTF-8"),n.body=r.serializeBody(n.body,r.getHeader(n.headers,"Content-Type")),r.send(),r}return Object(r.f)(e,t),e.prototype.next=function(t){this.done=!0;var e,n=this.xhr,r=this.request,i=this.destination;try{e=new y(t,n,r)}catch(t){return i.error(t)}i.next(e)},e.prototype.send=function(){var t=this.request,e=this.request,n=e.user,r=e.method,i=e.url,o=e.async,s=e.password,u=e.headers,c=e.body;try{var a=this.xhr=t.createXHR();this.setupEvents(a,t),n?a.open(r,i,o,n,s):a.open(r,i,o),o&&(a.timeout=t.timeout,a.responseType=t.responseType),"withCredentials"in a&&(a.withCredentials=!!t.withCredentials),this.setHeaders(a,u),c?a.send(c):a.send()}catch(t){this.error(t)}},e.prototype.serializeBody=function(t,e){if(!t||"string"==typeof t)return t;if(i.a.FormData&&t instanceof i.a.FormData)return t;if(e){var n=e.indexOf(";");-1!==n&&(e=e.substring(0,n))}switch(e){case"application/x-www-form-urlencoded":return Object.keys(t).map((function(e){return encodeURIComponent(e)+"="+encodeURIComponent(t[e])})).join("&");case"application/json":return JSON.stringify(t);default:return t}},e.prototype.setHeaders=function(t,e){for(var n in e)e.hasOwnProperty(n)&&t.setRequestHeader(n,e[n])},e.prototype.getHeader=function(t,e){for(var n in t)if(n.toLowerCase()===e.toLowerCase())return t[n]},e.prototype.setupEvents=function(t,e){var n=e.progressSubscriber;function r(t){var e,n=r,i=n.subscriber,o=n.progressSubscriber,s=n.request;o&&o.error(t);try{e=new _(this,s)}catch(t){e=t}i.error(e)}if(t.ontimeout=r,r.request=e,r.subscriber=this,r.progressSubscriber=n,t.upload&&"withCredentials"in t){var o,s;if(n)o=function(t){o.progressSubscriber.next(t)},i.a.XDomainRequest?t.onprogress=o:t.upload.onprogress=o,o.progressSubscriber=n;s=function(t){var e,n=s,r=n.progressSubscriber,i=n.subscriber,o=n.request;r&&r.error(t);try{e=new m("ajax error",this,o)}catch(t){e=t}i.error(e)},t.onerror=s,s.request=e,s.subscriber=this,s.progressSubscriber=n}function u(t){}function c(t){var e=c,n=e.subscriber,r=e.progressSubscriber,i=e.request;if(4===this.readyState){var o=1223===this.status?204:this.status,s="text"===this.responseType?this.response||this.responseText:this.response;if(0===o&&(o=s?200:0),o<400)r&&r.complete(),n.next(t),n.complete();else{r&&r.error(t);var u=void 0;try{u=new m("ajax error "+o,this,i)}catch(t){u=t}n.error(u)}}}t.onreadystatechange=u,u.subscriber=this,u.progressSubscriber=n,u.request=e,t.onload=c,c.subscriber=this,c.progressSubscriber=n,c.request=e},e.prototype.unsubscribe=function(){var e=this.done,n=this.xhr;!e&&n&&4!==n.readyState&&"function"==typeof n.abort&&n.abort(),t.prototype.unsubscribe.call(this)},e}(s.a),y=function(t,e,n){this.originalEvent=t,this.xhr=e,this.request=n,this.status=e.status,this.responseType=e.responseType||n.responseType,this.response=w(this.responseType,e)},m=function(){function t(t,e,n){return Error.call(this),this.message=t,this.name="AjaxError",this.xhr=e,this.request=n,this.status=e.status,this.responseType=e.responseType||n.responseType,this.response=w(this.responseType,e),this}return t.prototype=Object.create(Error.prototype),t}();function w(t,e){switch(t){case"json":return function(t){return"response"in t?t.responseType?t.response:JSON.parse(t.response||t.responseText||"null"):JSON.parse(t.responseText||"null")}(e);case"xml":return e.responseXML;case"text":default:return"response"in e?e.response:e.responseText}}var _=function(){function t(t,e){return m.call(this,"ajax timeout",t,e),this.name="AjaxTimeoutError",this}return t.prototype=Object.create(m.prototype),t}(),g=b.create}]]); +//# sourceMappingURL=vendor.8caa27b7.min.js.map \ No newline at end of file diff --git a/docs/assets/javascripts/vendor.8caa27b7.min.js.map b/docs/assets/javascripts/vendor.8caa27b7.min.js.map new file mode 100644 index 00000000..c3816018 --- /dev/null +++ b/docs/assets/javascripts/vendor.8caa27b7.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./node_modules/rxjs/dist/esm5/internal/Subscriber.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/deferred.js","webpack:///./node_modules/rxjs/dist/esm5/internal/asyncIteratorFrom.js","webpack:///./node_modules/rxjs/dist/esm5/internal/Observable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/toSubscriber.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/canReportError.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js","webpack:///./node_modules/rxjs/dist/esm5/internal/Subscription.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/map.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js","webpack:///./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js","webpack:///./node_modules/rxjs/dist/esm5/internal/config.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/root.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isFunction.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/noop.js","webpack:///./node_modules/rxjs/dist/esm5/internal/symbol/observable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/empty.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js","webpack:///./node_modules/ramda/es/internal/_isPlaceholder.js","webpack:///./node_modules/ramda/es/internal/_curry1.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/hostReportError.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isArray.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js","webpack:///./node_modules/rxjs/dist/esm5/internal/Subject.js","webpack:///./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js","webpack:///./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js","webpack:///./node_modules/rxjs/dist/esm5/internal/symbol/rxSubscriber.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/fromArray.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isIterable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/from.js","webpack:///./node_modules/rxjs/dist/esm5/internal/Scheduler.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/Action.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/of.js","webpack:///./node_modules/rxjs/dist/esm5/internal/Observer.js","webpack:///./node_modules/rxjs/dist/esm5/internal/Notification.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/throwError.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/pipe.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isObject.js","webpack:///./node_modules/rxjs/dist/esm5/internal/SubjectSubscription.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/identity.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToArray.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isPromise.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/async.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToAsyncIterable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeTo.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToObservable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToPromise.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToIterable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/observeOn.js","webpack:///./node_modules/clipboard/dist/clipboard.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack:///./node_modules/escape-html/index.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/defer.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/QueueAction.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/queue.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/QueueScheduler.js","webpack:///./node_modules/rxjs/dist/esm5/internal/ReplaySubject.js","webpack:///./node_modules/ramda/es/internal/_has.js","webpack:///./node_modules/ramda/es/internal/_isArguments.js","webpack:///./node_modules/ramda/es/keys.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/tap.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/scan.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/finalize.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameAction.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/animationFrame.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameScheduler.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/shareReplay.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilKeyChanged.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/bufferCount.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/concatAll.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/concat.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/startWith.js","webpack:///./node_modules/ramda/es/reverse.js","webpack:///./node_modules/ramda/es/internal/_isString.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mapTo.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/merge.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/fromEventPattern.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/filter.js","webpack:///./node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/pluck.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/throttle.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/switchMapTo.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/sample.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/never.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/skip.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/catchError.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/iif.js","webpack:///./node_modules/ramda/es/values.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/refCount.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/ConnectableObservable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/multicast.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/share.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/take.js","webpack:///./node_modules/ramda/es/internal/_identity.js","webpack:///./node_modules/ramda/es/identity.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/delay.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isDate.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/dom/AjaxObservable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/dom/ajax.js"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","TypeError","pop","push","__values","o","m","__read","r","ar","error","__spread","concat","__spreadArrays","il","k","a","j","jl","__await","__asyncGenerator","asyncIterator","q","resume","fulfill","settle","shift","__asyncValues","Subscriber","_super","destinationOrNext","complete","_this","syncErrorValue","syncErrorThrown","syncErrorThrowable","isStopped","destination","add","SafeSubscriber","subscriber","_next","err","_error","_complete","unsubscribe","closed","_unsubscribeAndRecycle","_parentOrParents","_parentSubscriber","observerOrNext","context","bind","_context","useDeprecatedSynchronousErrorHandling","__tryOrSetError","__tryOrUnsub","wrappedComplete","fn","parent","Error","_unsubscribe","Deferred","promise","asyncIteratorFrom","source","deferreds","values","hasError","completed","subs","_a","subscribe","undefined","coroutine","Observable","_isScalar","_subscribe","lift","operator","observable","sink","nextOrObserver","rxSubscriber","toSubscriber","config","_trySubscribe","observer","closed_1","canReportError","console","warn","forEach","promiseCtor","getPromiseCtor","subscription","pipe","operations","_i","toPromise","x","UnsubscriptionError","UnsubscriptionErrorImpl","errors","message","map","toString","join","name","Subscription","_subscriptions","empty","remove","index","isFunction","flattenUnsubscriptionErrors","isArray","len","sub","isObject","teardown","EMPTY","tmp","indexOf","subscriptions","subscriptionIndex","splice","reduce","errs","project","MapOperator","MapSubscriber","count","subscribeToResult","outerSubscriber","outerValue","outerIndex","innerSubscriber","OuterSubscriber","notifyNext","innerValue","innerIndex","innerSub","notifyError","notifyComplete","_enable_super_gross_mode_that_will_cause_bad_things","stack","log","__window","window","__self","self","WorkerGlobalScope","_root","global","noop","ObjectUnsubscribedError","ObjectUnsubscribedErrorImpl","_isPlaceholder","_curry1","f1","hostReportError","setTimeout","isScheduler","schedule","SubjectSubscriber","Subject","observers","thrownError","subject","AnonymousSubject","copy","slice","asObservable","InnerSubscriber","Math","random","switchMap","resultSelector","ii","SwitchMapOperator","SwitchMapSubscriber","_innerSub","innerSubscription","scheduleArray","input","scheduler","fromArray","scheduled","isInteropObservable","scheduleObservable","isPromise","schedulePromise","isArrayLike","isIterable","return","scheduleIterable","scheduleAsyncIterable","from","subscribeTo","Scheduler","SchedulerAction","now","work","delay","state","Date","AsyncScheduler","delegate","actions","active","flush","action","execute","AsyncAction","pending","id","recycleAsyncId","requestAsyncId","setInterval","clearInterval","_execute","errored","errorValue","Action","of","args","NotificationKind","dispatch","Notification","kind","hasValue","observe","do","accept","toObservable","createNext","undefinedValueNotification","createError","createComplete","completeNotification","fns","pipeFromArray","prev","distinctUntilChanged","compare","keySelector","DistinctUntilChangedOperator","DistinctUntilChangedSubscriber","hasKey","key","SubjectSubscription","subscriberIndex","identity","subscribeToArray","array","async","subscribeToAsyncIterable","asyncIterable","asyncIterable_1","asyncIterable_1_1","e_1","e_1_1","_b","process","catch","obj","obs","iterable","item","MergeMapOperator","concurrent","Number","POSITIVE_INFINITY","MergeMapSubscriber","hasCompleted","buffer","_tryNext","ish","mergeAll","mergeMap","observeOn","ObserveOnOperator","ObserveOnSubscriber","arg","notification","scheduleMessage","ObserveOnMessage","factory","modules","installedModules","__webpack_require__","moduleId","exports","module","l","c","getter","defineProperty","enumerable","get","toStringTag","mode","__esModule","ns","object","property","element","selectedText","nodeName","focus","isReadOnly","hasAttribute","setAttribute","select","setSelectionRange","removeAttribute","selection","getSelection","range","document","createRange","selectNodeContents","removeAllRanges","addRange","E","on","callback","ctx","once","listener","off","emit","data","evtArr","evts","liveEvents","TinyEmitter","is","target","type","string","node","addEventListener","destroy","removeEventListener","listenNode","nodeList","listenNodeList","selector","listenSelector","HTMLElement","nodeType","String","closest","_delegate","useCapture","listenerFn","delegateTarget","elements","querySelectorAll","Element","matches","proto","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","parentNode","__webpack_exports__","src_select","select_default","_typeof","_createClass","defineProperties","props","descriptor","configurable","writable","Constructor","protoProps","staticProps","clipboard_action","ClipboardAction","options","instance","_classCallCheck","resolveOptions","initSelection","container","emitter","text","trigger","selectFake","selectTarget","isRTL","documentElement","getAttribute","removeFake","fakeHandlerCallback","fakeHandler","fakeElem","createElement","style","fontSize","border","padding","margin","position","yPosition","pageYOffset","scrollTop","top","appendChild","copyText","removeChild","succeeded","execCommand","handleResult","clearSelection","activeElement","blur","set","_action","_target","tiny_emitter","tiny_emitter_default","listen","listen_default","clipboard_typeof","clipboard_createClass","clipboard_Clipboard","_Emitter","Clipboard","clipboard_classCallCheck","ReferenceError","_possibleConstructorReturn","getPrototypeOf","listenClick","subClass","superClass","_inherits","defaultAction","defaultTarget","defaultText","_this2","onClick","currentTarget","clipboardAction","getAttributeValue","querySelector","support","queryCommandSupported","suffix","attribute","NONE","combineLatest","observables","CombineLatestOperator","CombineLatestSubscriber","toRespond","unused","oldVal","_tryResultSelector","Function","MapShim","Map","getIndex","arr","some","entry","class_1","__entries__","delete","entries","has","clear","isBrowser","global$1","requestAnimationFrame$1","requestAnimationFrame","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","leadingCall","trailingCall","lastCallTime","resolvePending","proxy","timeoutCallback","timeStamp","throttle","addObserver","connect_","removeObserver","disconnect_","updateObservers_","activeObservers","filter","gatherActive","hasActive","broadcastActive","attributes","childList","characterData","subtree","disconnect","propertyName","getInstance","instance_","defineConfigurable","keys","getWindowOf","ownerDocument","defaultView","emptyRect","createRectInit","toFloat","parseFloat","getBordersSize","styles","positions","size","getHTMLElementContentRect","clientWidth","clientHeight","getComputedStyle","paddings","positions_1","getPaddings","horizPad","left","right","vertPad","bottom","width","height","boxSizing","round","isDocumentElement","vertScrollbar","horizScrollbar","abs","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","rect","broadcastRect","ResizeObserverEntry","rectInit","Constr","contentRect","DOMRectReadOnly","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","unobserve","clearActive","observation","WeakMap","ResizeObserver","method","matchHtmlRegExp","escape","str","match","exec","html","lastIndex","charCodeAt","substring","defer","observableFactory","QueueAction","queue","QueueScheduler","ReplaySubject","bufferSize","windowTime","_events","_infiniteTimeWindow","_bufferSize","_windowTime","nextInfiniteTimeWindow","nextTimeWindow","ReplayEvent","_getNow","_trimBufferThenGetEvents","eventsCount","spliceCount","time","max","_has","prop","hasEnumBug","propertyIsEnumerable","nonEnumerableProps","hasArgsEnumBug","contains","list","idx","nIdx","ks","checkArgsLength","tap","DoOperator","TapSubscriber","_tapNext","_tapError","_tapComplete","scan","accumulator","seed","hasSeed","ScanOperator","ScanSubscriber","_state","_hasState","finalize","FinallyOperator","FinallySubscriber","AnimationFrameAction","cancelAnimationFrame","animationFrame","AnimationFrameScheduler","shareReplay","configOrBufferSize","refCount","_c","useRefCount","isComplete","shareReplayOperator","distinctUntilKeyChanged","withLatestFrom","WithLatestFromOperator","WithLatestFromSubscriber","found","_tryProject","bufferCount","startBufferEvery","BufferCountOperator","subscriberClass","BufferSkipCountSubscriber","BufferCountSubscriber","buffers","concatAll","startWith","split","reverse","fromEvent","eventName","setupSubscription","sourceObj","handler","isEventTarget","source_1","isJQueryStyleEventEmitter","source_2","addListener","removeListener","isNodeStyleEventEmitter","source_3","mapTo","MapToOperator","MapToSubscriber","merge","last","fromEventPattern","addHandler","removeHandler","retValue","predicate","FilterOperator","FilterSubscriber","BehaviorSubject","_value","getValue","pluck","properties","currentProp","defaultThrottleConfig","leading","trailing","durationSelector","ThrottleOperator","ThrottleSubscriber","_leading","_trailing","_sendValue","_hasValue","_throttled","send","duration","tryDurationSelector","throttlingDone","switchMapTo","innerObservable","sample","notifier","SampleOperator","sampleSubscriber","SampleSubscriber","emitValue","NEVER","skip","SkipOperator","total","SkipSubscriber","catchError","CatchOperator","caught","CatchSubscriber","err2","debounceTime","dueTime","DebounceTimeOperator","DebounceTimeSubscriber","debouncedSubscription","lastValue","clearDebounce","dispatchNext","debouncedNext","iif","condition","trueResult","falseResult","vals","RefCountOperator","connectableProto","connectable","_refCount","refCounter","connection","connect","RefCountSubscriber","sharedConnection","_connection","ConnectableObservable","subjectFactory","_isComplete","getSubject","_subject","connectableObservableDescriptor","ConnectableSubscriber","MulticastOperator","shareSubjectFactory","share","subjectOrSubjectFactory","ArgumentOutOfRangeError","ArgumentOutOfRangeErrorImpl","take","TakeOperator","TakeSubscriber","_identity","delayFor","isNaN","DelayOperator","DelaySubscriber","delay_1","_schedule","scheduleNotification","DelayMessage","ajaxGet","url","headers","ajaxPost","ajaxDelete","ajaxPut","ajaxPatch","mapResponse","response","ajaxGetJSON","responseType","AjaxObservable","urlOrRequest","request","createXHR","crossDomain","root","XMLHttpRequest","XDomainRequest","getCORSRequest","progId","progIds","ActiveXObject","getXMLHttpRequest","withCredentials","timeout","post","put","patch","getJSON","AjaxSubscriber","getHeader","FormData","serializeBody","xhr","AjaxResponse","user","password","setupEvents","open","setHeaders","contentType","splitIndex","encodeURIComponent","JSON","stringify","setRequestHeader","headerName","toLowerCase","progressSubscriber","xhrTimeout","AjaxTimeoutError","ontimeout","upload","xhrProgress_1","xhrError_1","onprogress","AjaxError","onerror","xhrReadyStateChange","xhrLoad","readyState","status_1","status","responseText","onreadystatechange","onload","abort","originalEvent","parseXhrResponse","AjaxErrorImpl","parse","parseJson","responseXML","AjaxTimeoutErrorImpl","ajax"],"mappings":"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","file":"assets/javascripts/vendor.8caa27b7.min.js","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __extends } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destinationOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this.syncErrorValue = null;\n _this.syncErrorThrown = false;\n _this.syncErrorThrowable = false;\n _this.isStopped = false;\n switch (arguments.length) {\n case 0:\n _this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n _this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n _this.destination = destinationOrNext;\n destinationOrNext.add(_this);\n }\n else {\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext);\n }\n break;\n }\n default:\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);\n break;\n }\n return _this;\n }\n Subscriber.prototype[rxSubscriberSymbol] = function () { return this; };\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _parentOrParents = this._parentOrParents;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this._parentSubscriber = _parentSubscriber;\n var next;\n var context = _this;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n _this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = _this.unsubscribe.bind(_this);\n }\n }\n _this._context = context;\n _this._next = next;\n _this._error = error;\n _this._complete = complete;\n return _this;\n }\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n var useDeprecatedSynchronousErrorHandling = config.useDeprecatedSynchronousErrorHandling;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._complete) {\n var wrappedComplete = function () { return _this._complete.call(_this._context); };\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n }\n };\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n };\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n };\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\n//# sourceMappingURL=Subscriber.js.map","var Deferred = (function () {\n function Deferred() {\n var _this = this;\n this.resolve = null;\n this.reject = null;\n this.promise = new Promise(function (a, b) {\n _this.resolve = a;\n _this.reject = b;\n });\n }\n return Deferred;\n}());\nexport { Deferred };\n//# sourceMappingURL=deferred.js.map","import { __asyncGenerator, __await, __generator } from \"tslib\";\nimport { Deferred } from './util/deferred';\nexport function asyncIteratorFrom(source) {\n return coroutine(source);\n}\nfunction coroutine(source) {\n return __asyncGenerator(this, arguments, function coroutine_1() {\n var deferreds, values, hasError, error, completed, subs, d, result, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n deferreds = [];\n values = [];\n hasError = false;\n error = null;\n completed = false;\n subs = source.subscribe({\n next: function (value) {\n if (deferreds.length > 0) {\n deferreds.shift().resolve({ value: value, done: false });\n }\n else {\n values.push(value);\n }\n },\n error: function (err) {\n hasError = true;\n error = err;\n while (deferreds.length > 0) {\n deferreds.shift().reject(err);\n }\n },\n complete: function () {\n completed = true;\n while (deferreds.length > 0) {\n deferreds.shift().resolve({ value: undefined, done: true });\n }\n },\n });\n _a.label = 1;\n case 1:\n _a.trys.push([1, 16, 17, 18]);\n _a.label = 2;\n case 2:\n if (!true) return [3, 15];\n if (!(values.length > 0)) return [3, 5];\n return [4, __await(values.shift())];\n case 3: return [4, _a.sent()];\n case 4:\n _a.sent();\n return [3, 14];\n case 5:\n if (!completed) return [3, 7];\n return [4, __await(void 0)];\n case 6: return [2, _a.sent()];\n case 7:\n if (!hasError) return [3, 8];\n throw error;\n case 8:\n d = new Deferred();\n deferreds.push(d);\n return [4, __await(d.promise)];\n case 9:\n result = _a.sent();\n if (!result.done) return [3, 11];\n return [4, __await(void 0)];\n case 10: return [2, _a.sent()];\n case 11: return [4, __await(result.value)];\n case 12: return [4, _a.sent()];\n case 13:\n _a.sent();\n _a.label = 14;\n case 14: return [3, 2];\n case 15: return [3, 18];\n case 16:\n err_1 = _a.sent();\n throw err_1;\n case 17:\n subs.unsubscribe();\n return [7];\n case 18: return [2];\n }\n });\n });\n}\n//# sourceMappingURL=asyncIteratorFrom.js.map","import { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { asyncIteratorFrom } from './asyncIteratorFrom';\nvar Observable = (function () {\n function Observable(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var operator = this.operator;\n var sink = toSubscriber(observerOrNext, error, complete);\n if (operator) {\n sink.add(operator.call(sink, this.source));\n }\n else {\n sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError(sink)) {\n sink.error(err);\n }\n else {\n console.warn(err);\n }\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscription;\n subscription = _this.subscribe(function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var source = this.source;\n return source && source.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n if (operations.length === 0) {\n return this;\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n(function () {\n if (Symbol && Symbol.asyncIterator) {\n Observable.prototype[Symbol.asyncIterator] = function () {\n return asyncIteratorFrom(this);\n };\n }\n})();\n//# sourceMappingURL=Observable.js.map","import { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nexport function toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n return new Subscriber(nextOrObserver, error, complete);\n}\n//# sourceMappingURL=toSubscriber.js.map","import { Subscriber } from '../Subscriber';\nexport function canReportError(observer) {\n while (observer) {\n var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped;\n if (closed_1 || isStopped) {\n return false;\n }\n else if (destination && destination instanceof Subscriber) {\n observer = destination;\n }\n else {\n observer = null;\n }\n }\n return true;\n}\n//# sourceMappingURL=canReportError.js.map","var UnsubscriptionErrorImpl = (function () {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ') : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n})();\nexport var UnsubscriptionError = UnsubscriptionErrorImpl;\n//# sourceMappingURL=UnsubscriptionError.js.map","import { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nvar Subscription = (function () {\n function Subscription(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._unsubscribe = unsubscribe;\n }\n }\n Subscription.prototype.unsubscribe = function () {\n var errors;\n if (this.closed) {\n return;\n }\n var _a = this, _parentOrParents = _a._parentOrParents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (var index = 0; index < _parentOrParents.length; ++index) {\n var parent_1 = _parentOrParents[index];\n parent_1.remove(this);\n }\n }\n if (isFunction(_unsubscribe)) {\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (isArray(_subscriptions)) {\n var index = -1;\n var len = _subscriptions.length;\n while (++index < len) {\n var sub = _subscriptions[index];\n if (isObject(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n };\n Subscription.prototype.add = function (teardown) {\n var subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n var tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n var _parentOrParents = subscription._parentOrParents;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n var subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n };\n Subscription.prototype.remove = function (subscription) {\n var subscriptions = this._subscriptions;\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n Subscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n return Subscription;\n}());\nexport { Subscription };\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError) ? err.errors : err); }, []);\n}\n//# sourceMappingURL=Subscription.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nvar MapOperator = (function () {\n function MapOperator(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n MapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n };\n return MapOperator;\n}());\nexport { MapOperator };\nvar MapSubscriber = (function (_super) {\n __extends(MapSubscriber, _super);\n function MapSubscriber(destination, project, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.count = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n MapSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return MapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=map.js.map","import { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeTo } from './subscribeTo';\nimport { Observable } from '../Observable';\nexport function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, innerSubscriber) {\n if (innerSubscriber === void 0) { innerSubscriber = new InnerSubscriber(outerSubscriber, outerValue, outerIndex); }\n if (innerSubscriber.closed) {\n return undefined;\n }\n if (result instanceof Observable) {\n return result.subscribe(innerSubscriber);\n }\n return subscribeTo(result)(innerSubscriber);\n}\n//# sourceMappingURL=subscribeToResult.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from './Subscriber';\nvar OuterSubscriber = (function (_super) {\n __extends(OuterSubscriber, _super);\n function OuterSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n OuterSubscriber.prototype.notifyError = function (error, innerSub) {\n this.destination.error(error);\n };\n OuterSubscriber.prototype.notifyComplete = function (innerSub) {\n this.destination.complete();\n };\n return OuterSubscriber;\n}(Subscriber));\nexport { OuterSubscriber };\n//# sourceMappingURL=OuterSubscriber.js.map","var _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport var config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n var error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n//# sourceMappingURL=config.js.map","var __window = typeof window !== 'undefined' && window;\nvar __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self;\nvar __global = typeof global !== 'undefined' && global;\nvar _root = __window || __global || __self;\n(function () {\n if (!_root) {\n throw new Error('RxJS could not find any global context (window, self, global)');\n }\n})();\nexport { _root as root };\n//# sourceMappingURL=root.js.map","export function isFunction(x) {\n return typeof x === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","export var observable = (function () { return typeof Symbol === 'function' && Symbol.observable || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","import { Observable } from '../Observable';\nexport var EMPTY = new Observable(function (subscriber) { return subscriber.complete(); });\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.js.map","var ObjectUnsubscribedErrorImpl = (function () {\n function ObjectUnsubscribedErrorImpl() {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n }\n ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\n return ObjectUnsubscribedErrorImpl;\n})();\nexport var ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","export function hostReportError(err) {\n setTimeout(function () { throw err; }, 0);\n}\n//# sourceMappingURL=hostReportError.js.map","export var isArray = (function () { return Array.isArray || (function (x) { return x && typeof x.length === 'number'; }); })();\n//# sourceMappingURL=isArray.js.map","export function isScheduler(value) {\n return value && typeof value.schedule === 'function';\n}\n//# sourceMappingURL=isScheduler.js.map","import { __extends } from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nvar SubjectSubscriber = (function (_super) {\n __extends(SubjectSubscriber, _super);\n function SubjectSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n return _this;\n }\n return SubjectSubscriber;\n}(Subscriber));\nexport { SubjectSubscriber };\nvar Subject = (function (_super) {\n __extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.observers = [];\n _this.closed = false;\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype[rxSubscriberSymbol] = function () {\n return new SubjectSubscriber(this);\n };\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype.next = function (value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n };\n Subject.prototype.error = function (err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n };\n Subject.prototype.complete = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n };\n Subject.prototype._trySubscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return _super.prototype._trySubscribe.call(this, subscriber);\n }\n };\n Subject.prototype._subscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = (function (_super) {\n __extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var destination = this.destination;\n if (destination && destination.next) {\n destination.next(value);\n }\n };\n AnonymousSubject.prototype.error = function (err) {\n var destination = this.destination;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n };\n AnonymousSubject.prototype.complete = function () {\n var destination = this.destination;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var source = this.source;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription.EMPTY;\n }\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = getSymbolIterator();\nexport var $$iterator = iterator;\n//# sourceMappingURL=iterator.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from './Subscriber';\nvar InnerSubscriber = (function (_super) {\n __extends(InnerSubscriber, _super);\n function InnerSubscriber(parent, outerValue, outerIndex) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.outerValue = outerValue;\n _this.outerIndex = outerIndex;\n _this.index = 0;\n return _this;\n }\n InnerSubscriber.prototype._next = function (value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n };\n InnerSubscriber.prototype._error = function (error) {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n };\n InnerSubscriber.prototype._complete = function () {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n };\n return InnerSubscriber;\n}(Subscriber));\nexport { InnerSubscriber };\n//# sourceMappingURL=InnerSubscriber.js.map","export var rxSubscriber = (function () {\n return typeof Symbol === 'function'\n ? Symbol('rxSubscriber')\n : '@@rxSubscriber_' + Math.random();\n})();\nexport var $$rxSubscriber = rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map","import { __extends } from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function switchMap(project, resultSelector) {\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(switchMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };\n }\n return function (source) { return source.lift(new SwitchMapOperator(project)); };\n}\nvar SwitchMapOperator = (function () {\n function SwitchMapOperator(project) {\n this.project = project;\n }\n SwitchMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));\n };\n return SwitchMapOperator;\n}());\nvar SwitchMapSubscriber = (function (_super) {\n __extends(SwitchMapSubscriber, _super);\n function SwitchMapSubscriber(destination, project) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.index = 0;\n return _this;\n }\n SwitchMapSubscriber.prototype._next = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (error) {\n this.destination.error(error);\n return;\n }\n this._innerSub(result, value, index);\n };\n SwitchMapSubscriber.prototype._innerSub = function (result, value, index) {\n var innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n var innerSubscriber = new InnerSubscriber(this, value, index);\n var destination = this.destination;\n destination.add(innerSubscriber);\n this.innerSubscription = subscribeToResult(this, result, undefined, undefined, innerSubscriber);\n if (this.innerSubscription !== innerSubscriber) {\n destination.add(this.innerSubscription);\n }\n };\n SwitchMapSubscriber.prototype._complete = function () {\n var innerSubscription = this.innerSubscription;\n if (!innerSubscription || innerSubscription.closed) {\n _super.prototype._complete.call(this);\n }\n this.unsubscribe();\n };\n SwitchMapSubscriber.prototype._unsubscribe = function () {\n this.innerSubscription = null;\n };\n SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var destination = this.destination;\n destination.remove(innerSub);\n this.innerSubscription = null;\n if (this.isStopped) {\n _super.prototype._complete.call(this);\n }\n };\n SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n return SwitchMapSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=switchMap.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function scheduleArray(input, scheduler) {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n var i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleArray.js.map","import { Observable } from '../Observable';\nimport { subscribeToArray } from '../util/subscribeToArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function fromArray(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToArray(input));\n }\n else {\n return scheduleArray(input, scheduler);\n }\n}\n//# sourceMappingURL=fromArray.js.map","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n else if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n else if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n else if (isIterable(input) || typeof input === 'string') {\n return scheduleIterable(input, scheduler);\n }\n else if (Symbol && Symbol.asyncIterator && typeof input[Symbol.asyncIterator] === 'function') {\n return scheduleAsyncIterable(input, scheduler);\n }\n }\n throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n//# sourceMappingURL=scheduled.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nexport function isInteropObservable(input) {\n return input && typeof input[Symbol_observable] === 'function';\n}\n//# sourceMappingURL=isInteropObservable.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function scheduleObservable(input, scheduler) {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n sub.add(scheduler.schedule(function () {\n var observable = input[Symbol_observable]();\n sub.add(observable.subscribe({\n next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); },\n error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); },\n complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); },\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleObservable.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function schedulePromise(input, scheduler) {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n sub.add(scheduler.schedule(function () { return input.then(function (value) {\n sub.add(scheduler.schedule(function () {\n subscriber.next(value);\n sub.add(scheduler.schedule(function () { return subscriber.complete(); }));\n }));\n }, function (err) {\n sub.add(scheduler.schedule(function () { return subscriber.error(err); }));\n }); }));\n return sub;\n });\n}\n//# sourceMappingURL=schedulePromise.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function isIterable(input) {\n return input && typeof input[Symbol_iterator] === 'function';\n}\n//# sourceMappingURL=isIterable.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function scheduleIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n var iterator;\n sub.add(function () {\n if (iterator && typeof iterator.return === 'function') {\n iterator.return();\n }\n });\n sub.add(scheduler.schedule(function () {\n iterator = input[Symbol_iterator]();\n sub.add(scheduler.schedule(function () {\n if (subscriber.closed) {\n return;\n }\n var value;\n var done;\n try {\n var result = iterator.next();\n value = result.value;\n done = result.done;\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n this.schedule();\n }\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleIterable.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function scheduleAsyncIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n sub.add(scheduler.schedule(function () {\n var iterator = input[Symbol.asyncIterator]();\n sub.add(scheduler.schedule(function () {\n var _this = this;\n iterator.next().then(function (result) {\n if (result.done) {\n subscriber.complete();\n }\n else {\n subscriber.next(result.value);\n _this.schedule();\n }\n });\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleAsyncIterable.js.map","import { Observable } from '../Observable';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { scheduled } from '../scheduled/scheduled';\nexport function from(input, scheduler) {\n if (!scheduler) {\n if (input instanceof Observable) {\n return input;\n }\n return new Observable(subscribeTo(input));\n }\n else {\n return scheduled(input, scheduler);\n }\n}\n//# sourceMappingURL=from.js.map","var Scheduler = (function () {\n function Scheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n this.SchedulerAction = SchedulerAction;\n this.now = now;\n }\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n return new this.SchedulerAction(this, work).schedule(state, delay);\n };\n Scheduler.now = function () { return Date.now(); };\n return Scheduler;\n}());\nexport { Scheduler };\n//# sourceMappingURL=Scheduler.js.map","import { __extends } from \"tslib\";\nimport { Scheduler } from '../Scheduler';\nvar AsyncScheduler = (function (_super) {\n __extends(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n var _this = _super.call(this, SchedulerAction, function () {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) {\n return AsyncScheduler.delegate.now();\n }\n else {\n return now();\n }\n }) || this;\n _this.actions = [];\n _this.active = false;\n _this.scheduled = undefined;\n return _this;\n }\n AsyncScheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.schedule(work, delay, state);\n }\n else {\n return _super.prototype.schedule.call(this, work, delay, state);\n }\n };\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this.active) {\n actions.push(action);\n return;\n }\n var error;\n this.active = true;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift());\n this.active = false;\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(Scheduler));\nexport { AsyncScheduler };\n//# sourceMappingURL=AsyncScheduler.js.map","import { __extends } from \"tslib\";\nimport { Action } from './Action';\nvar AsyncAction = (function (_super) {\n __extends(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (this.closed) {\n return this;\n }\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n return setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && this.delay === delay && this.pending === false) {\n return id;\n }\n clearInterval(id);\n return undefined;\n };\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, delay) {\n var errored = false;\n var errorValue = undefined;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = !!e && e || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype._unsubscribe = function () {\n var id = this.id;\n var scheduler = this.scheduler;\n var actions = scheduler.actions;\n var index = actions.indexOf(this);\n this.work = null;\n this.state = null;\n this.pending = false;\n this.scheduler = null;\n if (index !== -1) {\n actions.splice(index, 1);\n }\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n };\n return AsyncAction;\n}(Action));\nexport { AsyncAction };\n//# sourceMappingURL=AsyncAction.js.map","import { __extends } from \"tslib\";\nimport { Subscription } from '../Subscription';\nvar Action = (function (_super) {\n __extends(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n return this;\n };\n return Action;\n}(Subscription));\nexport { Action };\n//# sourceMappingURL=Action.js.map","import { isScheduler } from '../util/isScheduler';\nimport { fromArray } from './fromArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function of() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = args[args.length - 1];\n if (isScheduler(scheduler)) {\n args.pop();\n return scheduleArray(args, scheduler);\n }\n else {\n return fromArray(args);\n }\n}\n//# sourceMappingURL=of.js.map","import { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport var empty = {\n closed: true,\n next: function (value) { },\n error: function (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n },\n complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map","import { EMPTY } from './observable/empty';\nimport { of } from './observable/of';\nimport { throwError } from './observable/throwError';\nexport var NotificationKind;\n(function (NotificationKind) {\n NotificationKind[\"NEXT\"] = \"N\";\n NotificationKind[\"ERROR\"] = \"E\";\n NotificationKind[\"COMPLETE\"] = \"C\";\n})(NotificationKind || (NotificationKind = {}));\nvar Notification = (function () {\n function Notification(kind, value, error) {\n this.kind = kind;\n this.value = value;\n this.error = error;\n this.hasValue = kind === 'N';\n }\n Notification.prototype.observe = function (observer) {\n switch (this.kind) {\n case 'N':\n return observer.next && observer.next(this.value);\n case 'E':\n return observer.error && observer.error(this.error);\n case 'C':\n return observer.complete && observer.complete();\n }\n };\n Notification.prototype.do = function (next, error, complete) {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return next && next(this.value);\n case 'E':\n return error && error(this.error);\n case 'C':\n return complete && complete();\n }\n };\n Notification.prototype.accept = function (nextOrObserver, error, complete) {\n if (nextOrObserver && typeof nextOrObserver.next === 'function') {\n return this.observe(nextOrObserver);\n }\n else {\n return this.do(nextOrObserver, error, complete);\n }\n };\n Notification.prototype.toObservable = function () {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return of(this.value);\n case 'E':\n return throwError(this.error);\n case 'C':\n return EMPTY;\n }\n throw new Error('unexpected notification kind value');\n };\n Notification.createNext = function (value) {\n if (typeof value !== 'undefined') {\n return new Notification('N', value);\n }\n return Notification.undefinedValueNotification;\n };\n Notification.createError = function (err) {\n return new Notification('E', undefined, err);\n };\n Notification.createComplete = function () {\n return Notification.completeNotification;\n };\n Notification.completeNotification = new Notification('C');\n Notification.undefinedValueNotification = new Notification('N', undefined);\n return Notification;\n}());\nexport { Notification };\n//# sourceMappingURL=Notification.js.map","import { Observable } from '../Observable';\nexport function throwError(error, scheduler) {\n if (!scheduler) {\n return new Observable(function (subscriber) { return subscriber.error(error); });\n }\n else {\n return new Observable(function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); });\n }\n}\nfunction dispatch(_a) {\n var error = _a.error, subscriber = _a.subscriber;\n subscriber.error(error);\n}\n//# sourceMappingURL=throwError.js.map","import { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function distinctUntilChanged(compare, keySelector) {\n return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); };\n}\nvar DistinctUntilChangedOperator = (function () {\n function DistinctUntilChangedOperator(compare, keySelector) {\n this.compare = compare;\n this.keySelector = keySelector;\n }\n DistinctUntilChangedOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));\n };\n return DistinctUntilChangedOperator;\n}());\nvar DistinctUntilChangedSubscriber = (function (_super) {\n __extends(DistinctUntilChangedSubscriber, _super);\n function DistinctUntilChangedSubscriber(destination, compare, keySelector) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.hasKey = false;\n if (typeof compare === 'function') {\n _this.compare = compare;\n }\n return _this;\n }\n DistinctUntilChangedSubscriber.prototype.compare = function (x, y) {\n return x === y;\n };\n DistinctUntilChangedSubscriber.prototype._next = function (value) {\n var key;\n try {\n var keySelector = this.keySelector;\n key = keySelector ? keySelector(value) : value;\n }\n catch (err) {\n return this.destination.error(err);\n }\n var result = false;\n if (this.hasKey) {\n try {\n var compare = this.compare;\n result = compare(this.key, key);\n }\n catch (err) {\n return this.destination.error(err);\n }\n }\n else {\n this.hasKey = true;\n }\n if (!result) {\n this.key = key;\n this.destination.next(value);\n }\n };\n return DistinctUntilChangedSubscriber;\n}(Subscriber));\n//# sourceMappingURL=distinctUntilChanged.js.map","export function isObject(x) {\n return x !== null && typeof x === 'object';\n}\n//# sourceMappingURL=isObject.js.map","import { __extends } from \"tslib\";\nimport { Subscription } from './Subscription';\nvar SubjectSubscription = (function (_super) {\n __extends(SubjectSubscription, _super);\n function SubjectSubscription(subject, subscriber) {\n var _this = _super.call(this) || this;\n _this.subject = subject;\n _this.subscriber = subscriber;\n _this.closed = false;\n return _this;\n }\n SubjectSubscription.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.closed = true;\n var subject = this.subject;\n var observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n var subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n };\n return SubjectSubscription;\n}(Subscription));\nexport { SubjectSubscription };\n//# sourceMappingURL=SubjectSubscription.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","export var subscribeToArray = function (array) { return function (subscriber) {\n for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n}; };\n//# sourceMappingURL=subscribeToArray.js.map","export var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map","export function isPromise(value) {\n return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n//# sourceMappingURL=isPromise.js.map","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport var async = new AsyncScheduler(AsyncAction);\n//# sourceMappingURL=async.js.map","import { __asyncValues, __awaiter, __generator } from \"tslib\";\nexport function subscribeToAsyncIterable(asyncIterable) {\n return function (subscriber) {\n process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); });\n };\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_1, _a;\n return __awaiter(this, void 0, void 0, function () {\n var value, e_1_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 11]);\n asyncIterable_1 = __asyncValues(asyncIterable);\n _b.label = 1;\n case 1: return [4, asyncIterable_1.next()];\n case 2:\n if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4];\n value = asyncIterable_1_1.value;\n subscriber.next(value);\n _b.label = 3;\n case 3: return [3, 1];\n case 4: return [3, 11];\n case 5:\n e_1_1 = _b.sent();\n e_1 = { error: e_1_1 };\n return [3, 11];\n case 6:\n _b.trys.push([6, , 9, 10]);\n if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8];\n return [4, _a.call(asyncIterable_1)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [3, 10];\n case 9:\n if (e_1) throw e_1.error;\n return [7];\n case 10: return [7];\n case 11:\n subscriber.complete();\n return [2];\n }\n });\n });\n}\n//# sourceMappingURL=subscribeToAsyncIterable.js.map","import { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { subscribeToAsyncIterable } from './subscribeToAsyncIterable';\nexport var subscribeTo = function (result) {\n if (!!result && typeof result[Symbol_observable] === 'function') {\n return subscribeToObservable(result);\n }\n else if (isArrayLike(result)) {\n return subscribeToArray(result);\n }\n else if (isPromise(result)) {\n return subscribeToPromise(result);\n }\n else if (!!result && typeof result[Symbol_iterator] === 'function') {\n return subscribeToIterable(result);\n }\n else if (Symbol && Symbol.asyncIterator &&\n !!result && typeof result[Symbol.asyncIterator] === 'function') {\n return subscribeToAsyncIterable(result);\n }\n else {\n var value = isObject(result) ? 'an invalid object' : \"'\" + result + \"'\";\n var msg = \"You provided \" + value + \" where a stream was expected.\"\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n//# sourceMappingURL=subscribeTo.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeToObservable = function (obj) { return function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (typeof obs.subscribe !== 'function') {\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n }\n else {\n return obs.subscribe(subscriber);\n }\n}; };\n//# sourceMappingURL=subscribeToObservable.js.map","import { hostReportError } from './hostReportError';\nexport var subscribeToPromise = function (promise) { return function (subscriber) {\n promise.then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, hostReportError);\n return subscriber;\n}; };\n//# sourceMappingURL=subscribeToPromise.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport var subscribeToIterable = function (iterable) { return function (subscriber) {\n var iterator = iterable[Symbol_iterator]();\n do {\n var item = iterator.next();\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n if (typeof iterator.return === 'function') {\n subscriber.add(function () {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n return subscriber;\n}; };\n//# sourceMappingURL=subscribeToIterable.js.map","import { __extends } from \"tslib\";\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function mergeMap(project, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(mergeMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); };\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); };\n}\nvar MergeMapOperator = (function () {\n function MergeMapOperator(project, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n this.project = project;\n this.concurrent = concurrent;\n }\n MergeMapOperator.prototype.call = function (observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n };\n return MergeMapOperator;\n}());\nexport { MergeMapOperator };\nvar MergeMapSubscriber = (function (_super) {\n __extends(MergeMapSubscriber, _super);\n function MergeMapSubscriber(destination, project, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.concurrent = concurrent;\n _this.hasCompleted = false;\n _this.buffer = [];\n _this.active = 0;\n _this.index = 0;\n return _this;\n }\n MergeMapSubscriber.prototype._next = function (value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n }\n else {\n this.buffer.push(value);\n }\n };\n MergeMapSubscriber.prototype._tryNext = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result, value, index);\n };\n MergeMapSubscriber.prototype._innerSub = function (ish, value, index) {\n var innerSubscriber = new InnerSubscriber(this, value, index);\n var destination = this.destination;\n destination.add(innerSubscriber);\n var innerSubscription = subscribeToResult(this, ish, undefined, undefined, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n };\n MergeMapSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n MergeMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var buffer = this.buffer;\n this.remove(innerSub);\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n };\n return MergeMapSubscriber;\n}(OuterSubscriber));\nexport { MergeMapSubscriber };\n//# sourceMappingURL=mergeMap.js.map","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function observeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return function observeOnOperatorFunction(source) {\n return source.lift(new ObserveOnOperator(scheduler, delay));\n };\n}\nvar ObserveOnOperator = (function () {\n function ObserveOnOperator(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n this.scheduler = scheduler;\n this.delay = delay;\n }\n ObserveOnOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n };\n return ObserveOnOperator;\n}());\nexport { ObserveOnOperator };\nvar ObserveOnSubscriber = (function (_super) {\n __extends(ObserveOnSubscriber, _super);\n function ObserveOnSubscriber(destination, scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n var _this = _super.call(this, destination) || this;\n _this.scheduler = scheduler;\n _this.delay = delay;\n return _this;\n }\n ObserveOnSubscriber.dispatch = function (arg) {\n var notification = arg.notification, destination = arg.destination;\n notification.observe(destination);\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype.scheduleMessage = function (notification) {\n var destination = this.destination;\n destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));\n };\n ObserveOnSubscriber.prototype._next = function (value) {\n this.scheduleMessage(Notification.createNext(value));\n };\n ObserveOnSubscriber.prototype._error = function (err) {\n this.scheduleMessage(Notification.createError(err));\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype._complete = function () {\n this.scheduleMessage(Notification.createComplete());\n this.unsubscribe();\n };\n return ObserveOnSubscriber;\n}(Subscriber));\nexport { ObserveOnSubscriber };\nvar ObserveOnMessage = (function () {\n function ObserveOnMessage(notification, destination) {\n this.notification = notification;\n this.destination = destination;\n }\n return ObserveOnMessage;\n}());\nexport { ObserveOnMessage };\n//# sourceMappingURL=observeOn.js.map","/*!\n * clipboard.js v2.0.6\n * https://clipboardjs.com/\n * \n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 6);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar is = __webpack_require__(3);\nvar delegate = __webpack_require__(4);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar closest = __webpack_require__(5);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(0);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n\n// CONCATENATED MODULE: ./src/clipboard-action.js\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\n/**\n * Inner class which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n */\n\nvar clipboard_action_ClipboardAction = function () {\n /**\n * @param {Object} options\n */\n function ClipboardAction(options) {\n _classCallCheck(this, ClipboardAction);\n\n this.resolveOptions(options);\n this.initSelection();\n }\n\n /**\n * Defines base properties passed from constructor.\n * @param {Object} options\n */\n\n\n _createClass(ClipboardAction, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = options.action;\n this.container = options.container;\n this.emitter = options.emitter;\n this.target = options.target;\n this.text = options.text;\n this.trigger = options.trigger;\n\n this.selectedText = '';\n }\n\n /**\n * Decides which selection strategy is going to be applied based\n * on the existence of `text` and `target` properties.\n */\n\n }, {\n key: 'initSelection',\n value: function initSelection() {\n if (this.text) {\n this.selectFake();\n } else if (this.target) {\n this.selectTarget();\n }\n }\n\n /**\n * Creates a fake textarea element, sets its value from `text` property,\n * and makes a selection on it.\n */\n\n }, {\n key: 'selectFake',\n value: function selectFake() {\n var _this = this;\n\n var isRTL = document.documentElement.getAttribute('dir') == 'rtl';\n\n this.removeFake();\n\n this.fakeHandlerCallback = function () {\n return _this.removeFake();\n };\n this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;\n\n this.fakeElem = document.createElement('textarea');\n // Prevent zooming on iOS\n this.fakeElem.style.fontSize = '12pt';\n // Reset box model\n this.fakeElem.style.border = '0';\n this.fakeElem.style.padding = '0';\n this.fakeElem.style.margin = '0';\n // Move element out of screen horizontally\n this.fakeElem.style.position = 'absolute';\n this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';\n // Move element to the same position vertically\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n this.fakeElem.style.top = yPosition + 'px';\n\n this.fakeElem.setAttribute('readonly', '');\n this.fakeElem.value = this.text;\n\n this.container.appendChild(this.fakeElem);\n\n this.selectedText = select_default()(this.fakeElem);\n this.copyText();\n }\n\n /**\n * Only removes the fake element after another click event, that way\n * a user can hit `Ctrl+C` to copy because selection still exists.\n */\n\n }, {\n key: 'removeFake',\n value: function removeFake() {\n if (this.fakeHandler) {\n this.container.removeEventListener('click', this.fakeHandlerCallback);\n this.fakeHandler = null;\n this.fakeHandlerCallback = null;\n }\n\n if (this.fakeElem) {\n this.container.removeChild(this.fakeElem);\n this.fakeElem = null;\n }\n }\n\n /**\n * Selects the content from element passed on `target` property.\n */\n\n }, {\n key: 'selectTarget',\n value: function selectTarget() {\n this.selectedText = select_default()(this.target);\n this.copyText();\n }\n\n /**\n * Executes the copy operation based on the current selection.\n */\n\n }, {\n key: 'copyText',\n value: function copyText() {\n var succeeded = void 0;\n\n try {\n succeeded = document.execCommand(this.action);\n } catch (err) {\n succeeded = false;\n }\n\n this.handleResult(succeeded);\n }\n\n /**\n * Fires an event based on the copy operation result.\n * @param {Boolean} succeeded\n */\n\n }, {\n key: 'handleResult',\n value: function handleResult(succeeded) {\n this.emitter.emit(succeeded ? 'success' : 'error', {\n action: this.action,\n text: this.selectedText,\n trigger: this.trigger,\n clearSelection: this.clearSelection.bind(this)\n });\n }\n\n /**\n * Moves focus away from `target` and back to the trigger, removes current selection.\n */\n\n }, {\n key: 'clearSelection',\n value: function clearSelection() {\n if (this.trigger) {\n this.trigger.focus();\n }\n document.activeElement.blur();\n window.getSelection().removeAllRanges();\n }\n\n /**\n * Sets the `action` to be performed which can be either 'copy' or 'cut'.\n * @param {String} action\n */\n\n }, {\n key: 'destroy',\n\n\n /**\n * Destroy lifecycle.\n */\n value: function destroy() {\n this.removeFake();\n }\n }, {\n key: 'action',\n set: function set() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';\n\n this._action = action;\n\n if (this._action !== 'copy' && this._action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n }\n }\n\n /**\n * Gets the `action` property.\n * @return {String}\n */\n ,\n get: function get() {\n return this._action;\n }\n\n /**\n * Sets the `target` property using an element\n * that will be have its content copied.\n * @param {Element} target\n */\n\n }, {\n key: 'target',\n set: function set(target) {\n if (target !== undefined) {\n if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {\n if (this.action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n\n this._target = target;\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n }\n }\n\n /**\n * Gets the `target` property.\n * @return {String|HTMLElement}\n */\n ,\n get: function get() {\n return this._target;\n }\n }]);\n\n return ClipboardAction;\n}();\n\n/* harmony default export */ var clipboard_action = (clipboard_action_ClipboardAction);\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(1);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(2);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n\n// CONCATENATED MODULE: ./src/clipboard.js\nvar clipboard_typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar clipboard_createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction clipboard_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\nvar clipboard_Clipboard = function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n clipboard_classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));\n\n _this.resolveOptions(options);\n _this.listenClick(trigger);\n return _this;\n }\n\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n clipboard_createClass(Clipboard, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: 'listenClick',\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: 'onClick',\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n\n if (this.clipboardAction) {\n this.clipboardAction = null;\n }\n\n this.clipboardAction = new clipboard_action({\n action: this.action(trigger),\n target: this.target(trigger),\n text: this.text(trigger),\n container: this.container,\n trigger: trigger,\n emitter: this\n });\n }\n\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: 'defaultAction',\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: 'defaultTarget',\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: 'defaultText',\n\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: 'destroy',\n value: function destroy() {\n this.listener.destroy();\n\n if (this.clipboardAction) {\n this.clipboardAction.destroy();\n this.clipboardAction = null;\n }\n }\n }], [{\n key: 'isSupported',\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n\n return support;\n }\n }]);\n\n return Clipboard;\n}(tiny_emitter_default.a);\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\n\nfunction getAttributeValue(suffix, element) {\n var attribute = 'data-clipboard-' + suffix;\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n\n/* harmony default export */ var clipboard = __webpack_exports__[\"default\"] = (clipboard_Clipboard);\n\n/***/ })\n/******/ ])[\"default\"];\n});","import { __extends } from \"tslib\";\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { fromArray } from './fromArray';\nvar NONE = {};\nexport function combineLatest() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var resultSelector = undefined;\n var scheduler = undefined;\n if (isScheduler(observables[observables.length - 1])) {\n scheduler = observables.pop();\n }\n if (typeof observables[observables.length - 1] === 'function') {\n resultSelector = observables.pop();\n }\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0];\n }\n return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector));\n}\nvar CombineLatestOperator = (function () {\n function CombineLatestOperator(resultSelector) {\n this.resultSelector = resultSelector;\n }\n CombineLatestOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));\n };\n return CombineLatestOperator;\n}());\nexport { CombineLatestOperator };\nvar CombineLatestSubscriber = (function (_super) {\n __extends(CombineLatestSubscriber, _super);\n function CombineLatestSubscriber(destination, resultSelector) {\n var _this = _super.call(this, destination) || this;\n _this.resultSelector = resultSelector;\n _this.active = 0;\n _this.values = [];\n _this.observables = [];\n return _this;\n }\n CombineLatestSubscriber.prototype._next = function (observable) {\n this.values.push(NONE);\n this.observables.push(observable);\n };\n CombineLatestSubscriber.prototype._complete = function () {\n var observables = this.observables;\n var len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n this.active = len;\n this.toRespond = len;\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n this.add(subscribeToResult(this, observable, observable, i));\n }\n }\n };\n CombineLatestSubscriber.prototype.notifyComplete = function (unused) {\n if ((this.active -= 1) === 0) {\n this.destination.complete();\n }\n };\n CombineLatestSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var values = this.values;\n var oldVal = values[outerIndex];\n var toRespond = !this.toRespond\n ? 0\n : oldVal === NONE ? --this.toRespond : this.toRespond;\n values[outerIndex] = innerValue;\n if (toRespond === 0) {\n if (this.resultSelector) {\n this._tryResultSelector(values);\n }\n else {\n this.destination.next(values.slice());\n }\n }\n };\n CombineLatestSubscriber.prototype._tryResultSelector = function (values) {\n var result;\n try {\n result = this.resultSelector.apply(this, values);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return CombineLatestSubscriber;\n}(OuterSubscriber));\nexport { CombineLatestSubscriber };\n//# sourceMappingURL=combineLatest.js.map","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n","import { Observable } from '../Observable';\nimport { from } from './from';\nimport { EMPTY } from './empty';\nexport function defer(observableFactory) {\n return new Observable(function (subscriber) {\n var input;\n try {\n input = observableFactory();\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var source = input ? from(input) : EMPTY;\n return source.subscribe(subscriber);\n });\n}\n//# sourceMappingURL=defer.js.map","import { __extends } from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar QueueAction = (function (_super) {\n __extends(QueueAction, _super);\n function QueueAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n QueueAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay > 0) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n };\n QueueAction.prototype.execute = function (state, delay) {\n return (delay > 0 || this.closed) ?\n _super.prototype.execute.call(this, state, delay) :\n this._execute(state, delay);\n };\n QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n return scheduler.flush(this);\n };\n return QueueAction;\n}(AsyncAction));\nexport { QueueAction };\n//# sourceMappingURL=QueueAction.js.map","import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\nexport var queue = new QueueScheduler(QueueAction);\n//# sourceMappingURL=queue.js.map","import { __extends } from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar QueueScheduler = (function (_super) {\n __extends(QueueScheduler, _super);\n function QueueScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return QueueScheduler;\n}(AsyncScheduler));\nexport { QueueScheduler };\n//# sourceMappingURL=QueueScheduler.js.map","import { __extends } from \"tslib\";\nimport { Subject } from './Subject';\nimport { queue } from './scheduler/queue';\nimport { Subscription } from './Subscription';\nimport { ObserveOnSubscriber } from './operators/observeOn';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nvar ReplaySubject = (function (_super) {\n __extends(ReplaySubject, _super);\n function ReplaySubject(bufferSize, windowTime, scheduler) {\n if (bufferSize === void 0) { bufferSize = Number.POSITIVE_INFINITY; }\n if (windowTime === void 0) { windowTime = Number.POSITIVE_INFINITY; }\n var _this = _super.call(this) || this;\n _this.scheduler = scheduler;\n _this._events = [];\n _this._infiniteTimeWindow = false;\n _this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n _this._windowTime = windowTime < 1 ? 1 : windowTime;\n if (windowTime === Number.POSITIVE_INFINITY) {\n _this._infiniteTimeWindow = true;\n _this.next = _this.nextInfiniteTimeWindow;\n }\n else {\n _this.next = _this.nextTimeWindow;\n }\n return _this;\n }\n ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) {\n var _events = this._events;\n _events.push(value);\n if (_events.length > this._bufferSize) {\n _events.shift();\n }\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype.nextTimeWindow = function (value) {\n this._events.push(new ReplayEvent(this._getNow(), value));\n this._trimBufferThenGetEvents();\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype._subscribe = function (subscriber) {\n var _infiniteTimeWindow = this._infiniteTimeWindow;\n var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();\n var scheduler = this.scheduler;\n var len = _events.length;\n var subscription;\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.isStopped || this.hasError) {\n subscription = Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n subscription = new SubjectSubscription(this, subscriber);\n }\n if (scheduler) {\n subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler));\n }\n if (_infiniteTimeWindow) {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i]);\n }\n }\n else {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i].value);\n }\n }\n if (this.hasError) {\n subscriber.error(this.thrownError);\n }\n else if (this.isStopped) {\n subscriber.complete();\n }\n return subscription;\n };\n ReplaySubject.prototype._getNow = function () {\n return (this.scheduler || queue).now();\n };\n ReplaySubject.prototype._trimBufferThenGetEvents = function () {\n var now = this._getNow();\n var _bufferSize = this._bufferSize;\n var _windowTime = this._windowTime;\n var _events = this._events;\n var eventsCount = _events.length;\n var spliceCount = 0;\n while (spliceCount < eventsCount) {\n if ((now - _events[spliceCount].time) < _windowTime) {\n break;\n }\n spliceCount++;\n }\n if (eventsCount > _bufferSize) {\n spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n }\n if (spliceCount > 0) {\n _events.splice(0, spliceCount);\n }\n return _events;\n };\n return ReplaySubject;\n}(Subject));\nexport { ReplaySubject };\nvar ReplayEvent = (function () {\n function ReplayEvent(time, value) {\n this.time = time;\n this.value = value;\n }\n return ReplayEvent;\n}());\n//# sourceMappingURL=ReplaySubject.js.map","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import _has from \"./_has.js\";\nvar toString = Object.prototype.toString;\n\nvar _isArguments =\n/*#__PURE__*/\nfunction () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\n\nexport default _isArguments;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\nimport _isArguments from \"./internal/_isArguments.js\"; // cover IE < 9 keys issues\n\nvar hasEnumBug = !\n/*#__PURE__*/\n{\n toString: null\n}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; // Safari bug\n\nvar hasArgsEnumBug =\n/*#__PURE__*/\nfunction () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n};\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\n\n\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ?\n/*#__PURE__*/\n_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) :\n/*#__PURE__*/\n_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n\n var prop, nIdx;\n var ks = [];\n\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n\n nIdx -= 1;\n }\n }\n\n return ks;\n});\nexport default keys;","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { noop } from '../util/noop';\nimport { isFunction } from '../util/isFunction';\nexport function tap(nextOrObserver, error, complete) {\n return function tapOperatorFunction(source) {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\nvar DoOperator = (function () {\n function DoOperator(nextOrObserver, error, complete) {\n this.nextOrObserver = nextOrObserver;\n this.error = error;\n this.complete = complete;\n }\n DoOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n };\n return DoOperator;\n}());\nvar TapSubscriber = (function (_super) {\n __extends(TapSubscriber, _super);\n function TapSubscriber(destination, observerOrNext, error, complete) {\n var _this = _super.call(this, destination) || this;\n _this._tapNext = noop;\n _this._tapError = noop;\n _this._tapComplete = noop;\n _this._tapError = error || noop;\n _this._tapComplete = complete || noop;\n if (isFunction(observerOrNext)) {\n _this._context = _this;\n _this._tapNext = observerOrNext;\n }\n else if (observerOrNext) {\n _this._context = observerOrNext;\n _this._tapNext = observerOrNext.next || noop;\n _this._tapError = observerOrNext.error || noop;\n _this._tapComplete = observerOrNext.complete || noop;\n }\n return _this;\n }\n TapSubscriber.prototype._next = function (value) {\n try {\n this._tapNext.call(this._context, value);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(value);\n };\n TapSubscriber.prototype._error = function (err) {\n try {\n this._tapError.call(this._context, err);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.error(err);\n };\n TapSubscriber.prototype._complete = function () {\n try {\n this._tapComplete.call(this._context);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n return this.destination.complete();\n };\n return TapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=tap.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function scan(accumulator, seed) {\n var hasSeed = false;\n if (arguments.length >= 2) {\n hasSeed = true;\n }\n return function scanOperatorFunction(source) {\n return source.lift(new ScanOperator(accumulator, seed, hasSeed));\n };\n}\nvar ScanOperator = (function () {\n function ScanOperator(accumulator, seed, hasSeed) {\n if (hasSeed === void 0) { hasSeed = false; }\n this.accumulator = accumulator;\n this.seed = seed;\n this.hasSeed = hasSeed;\n }\n ScanOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));\n };\n return ScanOperator;\n}());\nvar ScanSubscriber = (function (_super) {\n __extends(ScanSubscriber, _super);\n function ScanSubscriber(destination, accumulator, _state, _hasState) {\n var _this = _super.call(this, destination) || this;\n _this.accumulator = accumulator;\n _this._state = _state;\n _this._hasState = _hasState;\n _this.index = 0;\n return _this;\n }\n ScanSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n if (!this._hasState) {\n this._state = value;\n this._hasState = true;\n destination.next(value);\n }\n else {\n var index = this.index++;\n var result = void 0;\n try {\n result = this.accumulator(this._state, value, index);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this._state = result;\n destination.next(result);\n }\n };\n return ScanSubscriber;\n}(Subscriber));\n//# sourceMappingURL=scan.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nexport function finalize(callback) {\n return function (source) { return source.lift(new FinallyOperator(callback)); };\n}\nvar FinallyOperator = (function () {\n function FinallyOperator(callback) {\n this.callback = callback;\n }\n FinallyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FinallySubscriber(subscriber, this.callback));\n };\n return FinallyOperator;\n}());\nvar FinallySubscriber = (function (_super) {\n __extends(FinallySubscriber, _super);\n function FinallySubscriber(destination, callback) {\n var _this = _super.call(this, destination) || this;\n _this.add(new Subscription(callback));\n return _this;\n }\n return FinallySubscriber;\n}(Subscriber));\n//# sourceMappingURL=finalize.js.map","import { __extends } from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar AnimationFrameAction = (function (_super) {\n __extends(AnimationFrameAction, _super);\n function AnimationFrameAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () { return scheduler.flush(undefined); }));\n };\n AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n cancelAnimationFrame(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n };\n return AnimationFrameAction;\n}(AsyncAction));\nexport { AnimationFrameAction };\n//# sourceMappingURL=AnimationFrameAction.js.map","import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nexport var animationFrame = new AnimationFrameScheduler(AnimationFrameAction);\n//# sourceMappingURL=animationFrame.js.map","import { __extends } from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AnimationFrameScheduler = (function (_super) {\n __extends(AnimationFrameScheduler, _super);\n function AnimationFrameScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AnimationFrameScheduler.prototype.flush = function (action) {\n this.active = true;\n this.scheduled = undefined;\n var actions = this.actions;\n var error;\n var index = -1;\n var count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AnimationFrameScheduler;\n}(AsyncScheduler));\nexport { AnimationFrameScheduler };\n//# sourceMappingURL=AnimationFrameScheduler.js.map","import { ReplaySubject } from '../ReplaySubject';\nexport function shareReplay(configOrBufferSize, windowTime, scheduler) {\n var config;\n if (configOrBufferSize && typeof configOrBufferSize === 'object') {\n config = configOrBufferSize;\n }\n else {\n config = {\n bufferSize: configOrBufferSize,\n windowTime: windowTime,\n refCount: false,\n scheduler: scheduler\n };\n }\n return function (source) { return source.lift(shareReplayOperator(config)); };\n}\nfunction shareReplayOperator(_a) {\n var _b = _a.bufferSize, bufferSize = _b === void 0 ? Number.POSITIVE_INFINITY : _b, _c = _a.windowTime, windowTime = _c === void 0 ? Number.POSITIVE_INFINITY : _c, useRefCount = _a.refCount, scheduler = _a.scheduler;\n var subject;\n var refCount = 0;\n var subscription;\n var hasError = false;\n var isComplete = false;\n return function shareReplayOperation(source) {\n refCount++;\n if (!subject || hasError) {\n hasError = false;\n subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n subscription = source.subscribe({\n next: function (value) { subject.next(value); },\n error: function (err) {\n hasError = true;\n subject.error(err);\n },\n complete: function () {\n isComplete = true;\n subscription = undefined;\n subject.complete();\n },\n });\n }\n var innerSub = subject.subscribe(this);\n this.add(function () {\n refCount--;\n innerSub.unsubscribe();\n if (subscription && !isComplete && useRefCount && refCount === 0) {\n subscription.unsubscribe();\n subscription = undefined;\n subject = undefined;\n }\n });\n };\n}\n//# sourceMappingURL=shareReplay.js.map","import { distinctUntilChanged } from './distinctUntilChanged';\nexport function distinctUntilKeyChanged(key, compare) {\n return distinctUntilChanged(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; });\n}\n//# sourceMappingURL=distinctUntilKeyChanged.js.map","import { __extends, __spreadArrays } from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function withLatestFrom() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return function (source) {\n var project;\n if (typeof args[args.length - 1] === 'function') {\n project = args.pop();\n }\n var observables = args;\n return source.lift(new WithLatestFromOperator(observables, project));\n };\n}\nvar WithLatestFromOperator = (function () {\n function WithLatestFromOperator(observables, project) {\n this.observables = observables;\n this.project = project;\n }\n WithLatestFromOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));\n };\n return WithLatestFromOperator;\n}());\nvar WithLatestFromSubscriber = (function (_super) {\n __extends(WithLatestFromSubscriber, _super);\n function WithLatestFromSubscriber(destination, observables, project) {\n var _this = _super.call(this, destination) || this;\n _this.observables = observables;\n _this.project = project;\n _this.toRespond = [];\n var len = observables.length;\n _this.values = new Array(len);\n for (var i = 0; i < len; i++) {\n _this.toRespond.push(i);\n }\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n _this.add(subscribeToResult(_this, observable, observable, i));\n }\n return _this;\n }\n WithLatestFromSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.values[outerIndex] = innerValue;\n var toRespond = this.toRespond;\n if (toRespond.length > 0) {\n var found = toRespond.indexOf(outerIndex);\n if (found !== -1) {\n toRespond.splice(found, 1);\n }\n }\n };\n WithLatestFromSubscriber.prototype.notifyComplete = function () {\n };\n WithLatestFromSubscriber.prototype._next = function (value) {\n if (this.toRespond.length === 0) {\n var args = __spreadArrays([value], this.values);\n if (this.project) {\n this._tryProject(args);\n }\n else {\n this.destination.next(args);\n }\n }\n };\n WithLatestFromSubscriber.prototype._tryProject = function (args) {\n var result;\n try {\n result = this.project.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return WithLatestFromSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=withLatestFrom.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function bufferCount(bufferSize, startBufferEvery) {\n if (startBufferEvery === void 0) { startBufferEvery = null; }\n return function bufferCountOperatorFunction(source) {\n return source.lift(new BufferCountOperator(bufferSize, startBufferEvery));\n };\n}\nvar BufferCountOperator = (function () {\n function BufferCountOperator(bufferSize, startBufferEvery) {\n this.bufferSize = bufferSize;\n this.startBufferEvery = startBufferEvery;\n if (!startBufferEvery || bufferSize === startBufferEvery) {\n this.subscriberClass = BufferCountSubscriber;\n }\n else {\n this.subscriberClass = BufferSkipCountSubscriber;\n }\n }\n BufferCountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery));\n };\n return BufferCountOperator;\n}());\nvar BufferCountSubscriber = (function (_super) {\n __extends(BufferCountSubscriber, _super);\n function BufferCountSubscriber(destination, bufferSize) {\n var _this = _super.call(this, destination) || this;\n _this.bufferSize = bufferSize;\n _this.buffer = [];\n return _this;\n }\n BufferCountSubscriber.prototype._next = function (value) {\n var buffer = this.buffer;\n buffer.push(value);\n if (buffer.length == this.bufferSize) {\n this.destination.next(buffer);\n this.buffer = [];\n }\n };\n BufferCountSubscriber.prototype._complete = function () {\n var buffer = this.buffer;\n if (buffer.length > 0) {\n this.destination.next(buffer);\n }\n _super.prototype._complete.call(this);\n };\n return BufferCountSubscriber;\n}(Subscriber));\nvar BufferSkipCountSubscriber = (function (_super) {\n __extends(BufferSkipCountSubscriber, _super);\n function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) {\n var _this = _super.call(this, destination) || this;\n _this.bufferSize = bufferSize;\n _this.startBufferEvery = startBufferEvery;\n _this.buffers = [];\n _this.count = 0;\n return _this;\n }\n BufferSkipCountSubscriber.prototype._next = function (value) {\n var _a = this, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers, count = _a.count;\n this.count++;\n if (count % startBufferEvery === 0) {\n buffers.push([]);\n }\n for (var i = buffers.length; i--;) {\n var buffer = buffers[i];\n buffer.push(value);\n if (buffer.length === bufferSize) {\n buffers.splice(i, 1);\n this.destination.next(buffer);\n }\n }\n };\n BufferSkipCountSubscriber.prototype._complete = function () {\n var _a = this, buffers = _a.buffers, destination = _a.destination;\n while (buffers.length > 0) {\n var buffer = buffers.shift();\n if (buffer.length > 0) {\n destination.next(buffer);\n }\n }\n _super.prototype._complete.call(this);\n };\n return BufferSkipCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=bufferCount.js.map","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n//# sourceMappingURL=concatAll.js.map","import { of } from './of';\nimport { concatAll } from '../operators/concatAll';\nexport function concat() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return concatAll()(of.apply(void 0, observables));\n}\n//# sourceMappingURL=concat.js.map","import { concat } from '../observable/concat';\nimport { isScheduler } from '../util/isScheduler';\nexport function startWith() {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n var scheduler = values[values.length - 1];\n if (isScheduler(scheduler)) {\n values.pop();\n return function (source) { return concat(values, source, scheduler); };\n }\n else {\n return function (source) { return concat(values, source); };\n }\n}\n//# sourceMappingURL=startWith.js.map","import _curry1 from \"./internal/_curry1.js\";\nimport _isString from \"./internal/_isString.js\";\n/**\n * Returns a new list or string with the elements or characters in reverse\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {Array|String} list\n * @return {Array|String}\n * @example\n *\n * R.reverse([1, 2, 3]); //=> [3, 2, 1]\n * R.reverse([1, 2]); //=> [2, 1]\n * R.reverse([1]); //=> [1]\n * R.reverse([]); //=> []\n *\n * R.reverse('abc'); //=> 'cba'\n * R.reverse('ab'); //=> 'ba'\n * R.reverse('a'); //=> 'a'\n * R.reverse(''); //=> ''\n */\n\nvar reverse =\n/*#__PURE__*/\n_curry1(function reverse(list) {\n return _isString(list) ? list.split('').reverse().join('') : Array.prototype.slice.call(list, 0).reverse();\n});\n\nexport default reverse;","export default function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new Observable(function (subscriber) {\n function handler(e) {\n if (arguments.length > 1) {\n subscriber.next(Array.prototype.slice.call(arguments));\n }\n else {\n subscriber.next(e);\n }\n }\n setupSubscription(target, eventName, handler, subscriber, options);\n });\n}\nfunction setupSubscription(sourceObj, eventName, handler, subscriber, options) {\n var unsubscribe;\n if (isEventTarget(sourceObj)) {\n var source_1 = sourceObj;\n sourceObj.addEventListener(eventName, handler, options);\n unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); };\n }\n else if (isJQueryStyleEventEmitter(sourceObj)) {\n var source_2 = sourceObj;\n sourceObj.on(eventName, handler);\n unsubscribe = function () { return source_2.off(eventName, handler); };\n }\n else if (isNodeStyleEventEmitter(sourceObj)) {\n var source_3 = sourceObj;\n sourceObj.addListener(eventName, handler);\n unsubscribe = function () { return source_3.removeListener(eventName, handler); };\n }\n else if (sourceObj && sourceObj.length) {\n for (var i = 0, len = sourceObj.length; i < len; i++) {\n setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n }\n }\n else {\n throw new TypeError('Invalid event target');\n }\n subscriber.add(unsubscribe);\n}\nfunction isNodeStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\nfunction isJQueryStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\nfunction isEventTarget(sourceObj) {\n return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n//# sourceMappingURL=fromEvent.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function mapTo(value) {\n return function (source) { return source.lift(new MapToOperator(value)); };\n}\nvar MapToOperator = (function () {\n function MapToOperator(value) {\n this.value = value;\n }\n MapToOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapToSubscriber(subscriber, this.value));\n };\n return MapToOperator;\n}());\nvar MapToSubscriber = (function (_super) {\n __extends(MapToSubscriber, _super);\n function MapToSubscriber(destination, value) {\n var _this = _super.call(this, destination) || this;\n _this.value = value;\n return _this;\n }\n MapToSubscriber.prototype._next = function (x) {\n this.destination.next(this.value);\n };\n return MapToSubscriber;\n}(Subscriber));\n//# sourceMappingURL=mapTo.js.map","import { Observable } from '../Observable';\nimport { isScheduler } from '../util/isScheduler';\nimport { mergeAll } from '../operators/mergeAll';\nimport { fromArray } from './fromArray';\nexport function merge() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var concurrent = Number.POSITIVE_INFINITY;\n var scheduler = undefined;\n var last = observables[observables.length - 1];\n if (isScheduler(last)) {\n scheduler = observables.pop();\n if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n concurrent = observables.pop();\n }\n }\n else if (typeof last === 'number') {\n concurrent = observables.pop();\n }\n if (!scheduler && observables.length === 1 && observables[0] instanceof Observable) {\n return observables[0];\n }\n return mergeAll(concurrent)(fromArray(observables, scheduler));\n}\n//# sourceMappingURL=merge.js.map","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nexport function fromEventPattern(addHandler, removeHandler, resultSelector) {\n if (resultSelector) {\n return fromEventPattern(addHandler, removeHandler).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new Observable(function (subscriber) {\n var handler = function () {\n var e = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n e[_i] = arguments[_i];\n }\n return subscriber.next(e.length === 1 ? e[0] : e);\n };\n var retValue;\n try {\n retValue = addHandler(handler);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!isFunction(removeHandler)) {\n return undefined;\n }\n return function () { return removeHandler(handler, retValue); };\n });\n}\n//# sourceMappingURL=fromEventPattern.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\nvar FilterOperator = (function () {\n function FilterOperator(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n FilterOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n };\n return FilterOperator;\n}());\nvar FilterSubscriber = (function (_super) {\n __extends(FilterSubscriber, _super);\n function FilterSubscriber(destination, predicate, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.thisArg = thisArg;\n _this.count = 0;\n return _this;\n }\n FilterSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n };\n return FilterSubscriber;\n}(Subscriber));\n//# sourceMappingURL=filter.js.map","import { __extends } from \"tslib\";\nimport { Subject } from './Subject';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nvar BehaviorSubject = (function (_super) {\n __extends(BehaviorSubject, _super);\n function BehaviorSubject(_value) {\n var _this = _super.call(this) || this;\n _this._value = _value;\n return _this;\n }\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: true,\n configurable: true\n });\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n if (subscription && !subscription.closed) {\n subscriber.next(this._value);\n }\n return subscription;\n };\n BehaviorSubject.prototype.getValue = function () {\n if (this.hasError) {\n throw this.thrownError;\n }\n else if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return this._value;\n }\n };\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, this._value = value);\n };\n return BehaviorSubject;\n}(Subject));\nexport { BehaviorSubject };\n//# sourceMappingURL=BehaviorSubject.js.map","import { map } from './map';\nexport function pluck() {\n var properties = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n properties[_i] = arguments[_i];\n }\n var length = properties.length;\n if (length === 0) {\n throw new Error('list of properties cannot be empty.');\n }\n return map(function (x) {\n var currentProp = x;\n for (var i = 0; i < length; i++) {\n var p = currentProp[properties[i]];\n if (typeof p !== 'undefined') {\n currentProp = p;\n }\n else {\n return undefined;\n }\n }\n return currentProp;\n });\n}\n//# sourceMappingURL=pluck.js.map","import { __extends } from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport var defaultThrottleConfig = {\n leading: true,\n trailing: false\n};\nexport function throttle(durationSelector, config) {\n if (config === void 0) { config = defaultThrottleConfig; }\n return function (source) { return source.lift(new ThrottleOperator(durationSelector, !!config.leading, !!config.trailing)); };\n}\nvar ThrottleOperator = (function () {\n function ThrottleOperator(durationSelector, leading, trailing) {\n this.durationSelector = durationSelector;\n this.leading = leading;\n this.trailing = trailing;\n }\n ThrottleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing));\n };\n return ThrottleOperator;\n}());\nvar ThrottleSubscriber = (function (_super) {\n __extends(ThrottleSubscriber, _super);\n function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.durationSelector = durationSelector;\n _this._leading = _leading;\n _this._trailing = _trailing;\n _this._sendValue = null;\n _this._hasValue = false;\n return _this;\n }\n ThrottleSubscriber.prototype._next = function (value) {\n this._hasValue = true;\n this._sendValue = value;\n if (!this._throttled) {\n if (this._leading) {\n this.send();\n }\n else {\n this.throttle(value);\n }\n }\n };\n ThrottleSubscriber.prototype.send = function () {\n var _a = this, _hasValue = _a._hasValue, _sendValue = _a._sendValue;\n if (_hasValue) {\n this.destination.next(_sendValue);\n this.throttle(_sendValue);\n }\n this._hasValue = false;\n this._sendValue = null;\n };\n ThrottleSubscriber.prototype.throttle = function (value) {\n var duration = this.tryDurationSelector(value);\n if (!!duration) {\n this.add(this._throttled = subscribeToResult(this, duration));\n }\n };\n ThrottleSubscriber.prototype.tryDurationSelector = function (value) {\n try {\n return this.durationSelector(value);\n }\n catch (err) {\n this.destination.error(err);\n return null;\n }\n };\n ThrottleSubscriber.prototype.throttlingDone = function () {\n var _a = this, _throttled = _a._throttled, _trailing = _a._trailing;\n if (_throttled) {\n _throttled.unsubscribe();\n }\n this._throttled = null;\n if (_trailing) {\n this.send();\n }\n };\n ThrottleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.throttlingDone();\n };\n ThrottleSubscriber.prototype.notifyComplete = function () {\n this.throttlingDone();\n };\n return ThrottleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=throttle.js.map","import { switchMap } from './switchMap';\nexport function switchMapTo(innerObservable, resultSelector) {\n return resultSelector ? switchMap(function () { return innerObservable; }, resultSelector) : switchMap(function () { return innerObservable; });\n}\n//# sourceMappingURL=switchMapTo.js.map","import { __extends } from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function sample(notifier) {\n return function (source) { return source.lift(new SampleOperator(notifier)); };\n}\nvar SampleOperator = (function () {\n function SampleOperator(notifier) {\n this.notifier = notifier;\n }\n SampleOperator.prototype.call = function (subscriber, source) {\n var sampleSubscriber = new SampleSubscriber(subscriber);\n var subscription = source.subscribe(sampleSubscriber);\n subscription.add(subscribeToResult(sampleSubscriber, this.notifier));\n return subscription;\n };\n return SampleOperator;\n}());\nvar SampleSubscriber = (function (_super) {\n __extends(SampleSubscriber, _super);\n function SampleSubscriber() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.hasValue = false;\n return _this;\n }\n SampleSubscriber.prototype._next = function (value) {\n this.value = value;\n this.hasValue = true;\n };\n SampleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.emitValue();\n };\n SampleSubscriber.prototype.notifyComplete = function () {\n this.emitValue();\n };\n SampleSubscriber.prototype.emitValue = function () {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.value);\n }\n };\n return SampleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=sample.js.map","import { Observable } from '../Observable';\nimport { noop } from '../util/noop';\nexport var NEVER = new Observable(noop);\nexport function never() {\n return NEVER;\n}\n//# sourceMappingURL=never.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function skip(count) {\n return function (source) { return source.lift(new SkipOperator(count)); };\n}\nvar SkipOperator = (function () {\n function SkipOperator(total) {\n this.total = total;\n }\n SkipOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SkipSubscriber(subscriber, this.total));\n };\n return SkipOperator;\n}());\nvar SkipSubscriber = (function (_super) {\n __extends(SkipSubscriber, _super);\n function SkipSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n SkipSubscriber.prototype._next = function (x) {\n if (++this.count > this.total) {\n this.destination.next(x);\n }\n };\n return SkipSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skip.js.map","import { __extends } from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function catchError(selector) {\n return function catchErrorOperatorFunction(source) {\n var operator = new CatchOperator(selector);\n var caught = source.lift(operator);\n return (operator.caught = caught);\n };\n}\nvar CatchOperator = (function () {\n function CatchOperator(selector) {\n this.selector = selector;\n }\n CatchOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));\n };\n return CatchOperator;\n}());\nvar CatchSubscriber = (function (_super) {\n __extends(CatchSubscriber, _super);\n function CatchSubscriber(destination, selector, caught) {\n var _this = _super.call(this, destination) || this;\n _this.selector = selector;\n _this.caught = caught;\n return _this;\n }\n CatchSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var result = void 0;\n try {\n result = this.selector(err, this.caught);\n }\n catch (err2) {\n _super.prototype.error.call(this, err2);\n return;\n }\n this._unsubscribeAndRecycle();\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n this.add(innerSubscriber);\n var innerSubscription = subscribeToResult(this, result, undefined, undefined, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n this.add(innerSubscription);\n }\n }\n };\n return CatchSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=catchError.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nexport function debounceTime(dueTime, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return function (source) { return source.lift(new DebounceTimeOperator(dueTime, scheduler)); };\n}\nvar DebounceTimeOperator = (function () {\n function DebounceTimeOperator(dueTime, scheduler) {\n this.dueTime = dueTime;\n this.scheduler = scheduler;\n }\n DebounceTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler));\n };\n return DebounceTimeOperator;\n}());\nvar DebounceTimeSubscriber = (function (_super) {\n __extends(DebounceTimeSubscriber, _super);\n function DebounceTimeSubscriber(destination, dueTime, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.dueTime = dueTime;\n _this.scheduler = scheduler;\n _this.debouncedSubscription = null;\n _this.lastValue = null;\n _this.hasValue = false;\n return _this;\n }\n DebounceTimeSubscriber.prototype._next = function (value) {\n this.clearDebounce();\n this.lastValue = value;\n this.hasValue = true;\n this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this));\n };\n DebounceTimeSubscriber.prototype._complete = function () {\n this.debouncedNext();\n this.destination.complete();\n };\n DebounceTimeSubscriber.prototype.debouncedNext = function () {\n this.clearDebounce();\n if (this.hasValue) {\n var lastValue = this.lastValue;\n this.lastValue = null;\n this.hasValue = false;\n this.destination.next(lastValue);\n }\n };\n DebounceTimeSubscriber.prototype.clearDebounce = function () {\n var debouncedSubscription = this.debouncedSubscription;\n if (debouncedSubscription !== null) {\n this.remove(debouncedSubscription);\n debouncedSubscription.unsubscribe();\n this.debouncedSubscription = null;\n }\n };\n return DebounceTimeSubscriber;\n}(Subscriber));\nfunction dispatchNext(subscriber) {\n subscriber.debouncedNext();\n}\n//# sourceMappingURL=debounceTime.js.map","import { defer } from './defer';\nimport { EMPTY } from './empty';\nexport function iif(condition, trueResult, falseResult) {\n if (trueResult === void 0) { trueResult = EMPTY; }\n if (falseResult === void 0) { falseResult = EMPTY; }\n return defer(function () { return condition() ? trueResult : falseResult; });\n}\n//# sourceMappingURL=iif.js.map","import _curry1 from \"./internal/_curry1.js\";\nimport keys from \"./keys.js\";\n/**\n * Returns a list of all the enumerable own properties of the supplied object.\n * Note that the order of the output array is not guaranteed across different\n * JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own properties.\n * @see R.valuesIn, R.keys\n * @example\n *\n * R.values({a: 1, b: 2, c: 3}); //=> [1, 2, 3]\n */\n\nvar values =\n/*#__PURE__*/\n_curry1(function values(obj) {\n var props = keys(obj);\n var len = props.length;\n var vals = [];\n var idx = 0;\n\n while (idx < len) {\n vals[idx] = obj[props[idx]];\n idx += 1;\n }\n\n return vals;\n});\n\nexport default values;","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function refCount() {\n return function refCountOperatorFunction(source) {\n return source.lift(new RefCountOperator(source));\n };\n}\nvar RefCountOperator = (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n __extends(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n _this.connection = null;\n return _this;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=refCount.js.map","import { __extends } from \"tslib\";\nimport { SubjectSubscriber } from '../Subject';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nvar ConnectableObservable = (function (_super) {\n __extends(ConnectableObservable, _super);\n function ConnectableObservable(source, subjectFactory) {\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.subjectFactory = subjectFactory;\n _this._refCount = 0;\n _this._isComplete = false;\n return _this;\n }\n ConnectableObservable.prototype._subscribe = function (subscriber) {\n return this.getSubject().subscribe(subscriber);\n };\n ConnectableObservable.prototype.getSubject = function () {\n var subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n };\n ConnectableObservable.prototype.connect = function () {\n var connection = this._connection;\n if (!connection) {\n this._isComplete = false;\n connection = this._connection = new Subscription();\n connection.add(this.source\n .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n }\n return connection;\n };\n ConnectableObservable.prototype.refCount = function () {\n return higherOrderRefCount()(this);\n };\n return ConnectableObservable;\n}(Observable));\nexport { ConnectableObservable };\nexport var connectableObservableDescriptor = (function () {\n var connectableProto = ConnectableObservable.prototype;\n return {\n operator: { value: null },\n _refCount: { value: 0, writable: true },\n _subject: { value: null, writable: true },\n _connection: { value: null, writable: true },\n _subscribe: { value: connectableProto._subscribe },\n _isComplete: { value: connectableProto._isComplete, writable: true },\n getSubject: { value: connectableProto.getSubject },\n connect: { value: connectableProto.connect },\n refCount: { value: connectableProto.refCount }\n };\n})();\nvar ConnectableSubscriber = (function (_super) {\n __extends(ConnectableSubscriber, _super);\n function ConnectableSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n ConnectableSubscriber.prototype._error = function (err) {\n this._unsubscribe();\n _super.prototype._error.call(this, err);\n };\n ConnectableSubscriber.prototype._complete = function () {\n this.connectable._isComplete = true;\n this._unsubscribe();\n _super.prototype._complete.call(this);\n };\n ConnectableSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (connectable) {\n this.connectable = null;\n var connection = connectable._connection;\n connectable._refCount = 0;\n connectable._subject = null;\n connectable._connection = null;\n if (connection) {\n connection.unsubscribe();\n }\n }\n };\n return ConnectableSubscriber;\n}(SubjectSubscriber));\nvar RefCountOperator = (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n __extends(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=ConnectableObservable.js.map","import { connectableObservableDescriptor } from '../observable/ConnectableObservable';\nexport function multicast(subjectOrSubjectFactory, selector) {\n return function multicastOperatorFunction(source) {\n var subjectFactory;\n if (typeof subjectOrSubjectFactory === 'function') {\n subjectFactory = subjectOrSubjectFactory;\n }\n else {\n subjectFactory = function subjectFactory() {\n return subjectOrSubjectFactory;\n };\n }\n if (typeof selector === 'function') {\n return source.lift(new MulticastOperator(subjectFactory, selector));\n }\n var connectable = Object.create(source, connectableObservableDescriptor);\n connectable.source = source;\n connectable.subjectFactory = subjectFactory;\n return connectable;\n };\n}\nvar MulticastOperator = (function () {\n function MulticastOperator(subjectFactory, selector) {\n this.subjectFactory = subjectFactory;\n this.selector = selector;\n }\n MulticastOperator.prototype.call = function (subscriber, source) {\n var selector = this.selector;\n var subject = this.subjectFactory();\n var subscription = selector(subject).subscribe(subscriber);\n subscription.add(source.subscribe(subject));\n return subscription;\n };\n return MulticastOperator;\n}());\nexport { MulticastOperator };\n//# sourceMappingURL=multicast.js.map","import { multicast } from './multicast';\nimport { refCount } from './refCount';\nimport { Subject } from '../Subject';\nfunction shareSubjectFactory() {\n return new Subject();\n}\nexport function share() {\n return function (source) { return refCount()(multicast(shareSubjectFactory)(source)); };\n}\n//# sourceMappingURL=share.js.map","var ArgumentOutOfRangeErrorImpl = (function () {\n function ArgumentOutOfRangeErrorImpl() {\n Error.call(this);\n this.message = 'argument out of range';\n this.name = 'ArgumentOutOfRangeError';\n return this;\n }\n ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);\n return ArgumentOutOfRangeErrorImpl;\n})();\nexport var ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;\n//# sourceMappingURL=ArgumentOutOfRangeError.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { EMPTY } from '../observable/empty';\nexport function take(count) {\n return function (source) {\n if (count === 0) {\n return EMPTY;\n }\n else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\nvar TakeOperator = (function () {\n function TakeOperator(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n TakeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n };\n return TakeOperator;\n}());\nvar TakeSubscriber = (function (_super) {\n __extends(TakeSubscriber, _super);\n function TakeSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n TakeSubscriber.prototype._next = function (value) {\n var total = this.total;\n var count = ++this.count;\n if (count <= total) {\n this.destination.next(value);\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n };\n return TakeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=take.js.map","export default function _identity(x) {\n return x;\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _identity from \"./internal/_identity.js\";\n/**\n * A function that does nothing but return the parameter supplied to it. Good\n * as a default or placeholder function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> a\n * @param {*} x The value to return.\n * @return {*} The input value, `x`.\n * @example\n *\n * R.identity(1); //=> 1\n *\n * const obj = {};\n * R.identity(obj) === obj; //=> true\n * @symb R.identity(a) = a\n */\n\nvar identity =\n/*#__PURE__*/\n_curry1(_identity);\n\nexport default identity;","import { __extends } from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function delay(delay, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n var absoluteDelay = isDate(delay);\n var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);\n return function (source) { return source.lift(new DelayOperator(delayFor, scheduler)); };\n}\nvar DelayOperator = (function () {\n function DelayOperator(delay, scheduler) {\n this.delay = delay;\n this.scheduler = scheduler;\n }\n DelayOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));\n };\n return DelayOperator;\n}());\nvar DelaySubscriber = (function (_super) {\n __extends(DelaySubscriber, _super);\n function DelaySubscriber(destination, delay, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.delay = delay;\n _this.scheduler = scheduler;\n _this.queue = [];\n _this.active = false;\n _this.errored = false;\n return _this;\n }\n DelaySubscriber.dispatch = function (state) {\n var source = state.source;\n var queue = source.queue;\n var scheduler = state.scheduler;\n var destination = state.destination;\n while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {\n queue.shift().notification.observe(destination);\n }\n if (queue.length > 0) {\n var delay_1 = Math.max(0, queue[0].time - scheduler.now());\n this.schedule(state, delay_1);\n }\n else if (source.isStopped) {\n source.destination.complete();\n source.active = false;\n }\n else {\n this.unsubscribe();\n source.active = false;\n }\n };\n DelaySubscriber.prototype._schedule = function (scheduler) {\n this.active = true;\n var destination = this.destination;\n destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {\n source: this, destination: this.destination, scheduler: scheduler\n }));\n };\n DelaySubscriber.prototype.scheduleNotification = function (notification) {\n if (this.errored === true) {\n return;\n }\n var scheduler = this.scheduler;\n var message = new DelayMessage(scheduler.now() + this.delay, notification);\n this.queue.push(message);\n if (this.active === false) {\n this._schedule(scheduler);\n }\n };\n DelaySubscriber.prototype._next = function (value) {\n this.scheduleNotification(Notification.createNext(value));\n };\n DelaySubscriber.prototype._error = function (err) {\n this.errored = true;\n this.queue = [];\n this.destination.error(err);\n this.unsubscribe();\n };\n DelaySubscriber.prototype._complete = function () {\n if (this.queue.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n return DelaySubscriber;\n}(Subscriber));\nvar DelayMessage = (function () {\n function DelayMessage(time, notification) {\n this.time = time;\n this.notification = notification;\n }\n return DelayMessage;\n}());\n//# sourceMappingURL=delay.js.map","export function isDate(value) {\n return value instanceof Date && !isNaN(+value);\n}\n//# sourceMappingURL=isDate.js.map","import { __extends } from \"tslib\";\nimport { root } from '../../util/root';\nimport { Observable } from '../../Observable';\nimport { Subscriber } from '../../Subscriber';\nimport { map } from '../../operators/map';\nfunction getCORSRequest() {\n if (root.XMLHttpRequest) {\n return new root.XMLHttpRequest();\n }\n else if (!!root.XDomainRequest) {\n return new root.XDomainRequest();\n }\n else {\n throw new Error('CORS is not supported by your browser');\n }\n}\nfunction getXMLHttpRequest() {\n if (root.XMLHttpRequest) {\n return new root.XMLHttpRequest();\n }\n else {\n var progId = void 0;\n try {\n var progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];\n for (var i = 0; i < 3; i++) {\n try {\n progId = progIds[i];\n if (new root.ActiveXObject(progId)) {\n break;\n }\n }\n catch (e) {\n }\n }\n return new root.ActiveXObject(progId);\n }\n catch (e) {\n throw new Error('XMLHttpRequest is not supported by your browser');\n }\n }\n}\nexport function ajaxGet(url, headers) {\n return new AjaxObservable({ method: 'GET', url: url, headers: headers });\n}\nexport function ajaxPost(url, body, headers) {\n return new AjaxObservable({ method: 'POST', url: url, body: body, headers: headers });\n}\nexport function ajaxDelete(url, headers) {\n return new AjaxObservable({ method: 'DELETE', url: url, headers: headers });\n}\nexport function ajaxPut(url, body, headers) {\n return new AjaxObservable({ method: 'PUT', url: url, body: body, headers: headers });\n}\nexport function ajaxPatch(url, body, headers) {\n return new AjaxObservable({ method: 'PATCH', url: url, body: body, headers: headers });\n}\nvar mapResponse = map(function (x, index) { return x.response; });\nexport function ajaxGetJSON(url, headers) {\n return mapResponse(new AjaxObservable({\n method: 'GET',\n url: url,\n responseType: 'json',\n headers: headers\n }));\n}\nvar AjaxObservable = (function (_super) {\n __extends(AjaxObservable, _super);\n function AjaxObservable(urlOrRequest) {\n var _this = _super.call(this) || this;\n var request = {\n async: true,\n createXHR: function () {\n return this.crossDomain ? getCORSRequest() : getXMLHttpRequest();\n },\n crossDomain: true,\n withCredentials: false,\n headers: {},\n method: 'GET',\n responseType: 'json',\n timeout: 0\n };\n if (typeof urlOrRequest === 'string') {\n request.url = urlOrRequest;\n }\n else {\n for (var prop in urlOrRequest) {\n if (urlOrRequest.hasOwnProperty(prop)) {\n request[prop] = urlOrRequest[prop];\n }\n }\n }\n _this.request = request;\n return _this;\n }\n AjaxObservable.prototype._subscribe = function (subscriber) {\n return new AjaxSubscriber(subscriber, this.request);\n };\n AjaxObservable.create = (function () {\n var create = function (urlOrRequest) {\n return new AjaxObservable(urlOrRequest);\n };\n create.get = ajaxGet;\n create.post = ajaxPost;\n create.delete = ajaxDelete;\n create.put = ajaxPut;\n create.patch = ajaxPatch;\n create.getJSON = ajaxGetJSON;\n return create;\n })();\n return AjaxObservable;\n}(Observable));\nexport { AjaxObservable };\nvar AjaxSubscriber = (function (_super) {\n __extends(AjaxSubscriber, _super);\n function AjaxSubscriber(destination, request) {\n var _this = _super.call(this, destination) || this;\n _this.request = request;\n _this.done = false;\n var headers = request.headers = request.headers || {};\n if (!request.crossDomain && !_this.getHeader(headers, 'X-Requested-With')) {\n headers['X-Requested-With'] = 'XMLHttpRequest';\n }\n var contentTypeHeader = _this.getHeader(headers, 'Content-Type');\n if (!contentTypeHeader && !(root.FormData && request.body instanceof root.FormData) && typeof request.body !== 'undefined') {\n headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';\n }\n request.body = _this.serializeBody(request.body, _this.getHeader(request.headers, 'Content-Type'));\n _this.send();\n return _this;\n }\n AjaxSubscriber.prototype.next = function (e) {\n this.done = true;\n var _a = this, xhr = _a.xhr, request = _a.request, destination = _a.destination;\n var result;\n try {\n result = new AjaxResponse(e, xhr, request);\n }\n catch (err) {\n return destination.error(err);\n }\n destination.next(result);\n };\n AjaxSubscriber.prototype.send = function () {\n var _a = this, request = _a.request, _b = _a.request, user = _b.user, method = _b.method, url = _b.url, async = _b.async, password = _b.password, headers = _b.headers, body = _b.body;\n try {\n var xhr = this.xhr = request.createXHR();\n this.setupEvents(xhr, request);\n if (user) {\n xhr.open(method, url, async, user, password);\n }\n else {\n xhr.open(method, url, async);\n }\n if (async) {\n xhr.timeout = request.timeout;\n xhr.responseType = request.responseType;\n }\n if ('withCredentials' in xhr) {\n xhr.withCredentials = !!request.withCredentials;\n }\n this.setHeaders(xhr, headers);\n if (body) {\n xhr.send(body);\n }\n else {\n xhr.send();\n }\n }\n catch (err) {\n this.error(err);\n }\n };\n AjaxSubscriber.prototype.serializeBody = function (body, contentType) {\n if (!body || typeof body === 'string') {\n return body;\n }\n else if (root.FormData && body instanceof root.FormData) {\n return body;\n }\n if (contentType) {\n var splitIndex = contentType.indexOf(';');\n if (splitIndex !== -1) {\n contentType = contentType.substring(0, splitIndex);\n }\n }\n switch (contentType) {\n case 'application/x-www-form-urlencoded':\n return Object.keys(body).map(function (key) { return encodeURIComponent(key) + \"=\" + encodeURIComponent(body[key]); }).join('&');\n case 'application/json':\n return JSON.stringify(body);\n default:\n return body;\n }\n };\n AjaxSubscriber.prototype.setHeaders = function (xhr, headers) {\n for (var key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n };\n AjaxSubscriber.prototype.getHeader = function (headers, headerName) {\n for (var key in headers) {\n if (key.toLowerCase() === headerName.toLowerCase()) {\n return headers[key];\n }\n }\n return undefined;\n };\n AjaxSubscriber.prototype.setupEvents = function (xhr, request) {\n var progressSubscriber = request.progressSubscriber;\n function xhrTimeout(e) {\n var _a = xhrTimeout, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var error;\n try {\n error = new AjaxTimeoutError(this, request);\n }\n catch (err) {\n error = err;\n }\n subscriber.error(error);\n }\n xhr.ontimeout = xhrTimeout;\n xhrTimeout.request = request;\n xhrTimeout.subscriber = this;\n xhrTimeout.progressSubscriber = progressSubscriber;\n if (xhr.upload && 'withCredentials' in xhr) {\n if (progressSubscriber) {\n var xhrProgress_1;\n xhrProgress_1 = function (e) {\n var progressSubscriber = xhrProgress_1.progressSubscriber;\n progressSubscriber.next(e);\n };\n if (root.XDomainRequest) {\n xhr.onprogress = xhrProgress_1;\n }\n else {\n xhr.upload.onprogress = xhrProgress_1;\n }\n xhrProgress_1.progressSubscriber = progressSubscriber;\n }\n var xhrError_1;\n xhrError_1 = function (e) {\n var _a = xhrError_1, progressSubscriber = _a.progressSubscriber, subscriber = _a.subscriber, request = _a.request;\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var error;\n try {\n error = new AjaxError('ajax error', this, request);\n }\n catch (err) {\n error = err;\n }\n subscriber.error(error);\n };\n xhr.onerror = xhrError_1;\n xhrError_1.request = request;\n xhrError_1.subscriber = this;\n xhrError_1.progressSubscriber = progressSubscriber;\n }\n function xhrReadyStateChange(e) {\n return;\n }\n xhr.onreadystatechange = xhrReadyStateChange;\n xhrReadyStateChange.subscriber = this;\n xhrReadyStateChange.progressSubscriber = progressSubscriber;\n xhrReadyStateChange.request = request;\n function xhrLoad(e) {\n var _a = xhrLoad, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n if (this.readyState === 4) {\n var status_1 = this.status === 1223 ? 204 : this.status;\n var response = (this.responseType === 'text' ? (this.response || this.responseText) : this.response);\n if (status_1 === 0) {\n status_1 = response ? 200 : 0;\n }\n if (status_1 < 400) {\n if (progressSubscriber) {\n progressSubscriber.complete();\n }\n subscriber.next(e);\n subscriber.complete();\n }\n else {\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var error = void 0;\n try {\n error = new AjaxError('ajax error ' + status_1, this, request);\n }\n catch (err) {\n error = err;\n }\n subscriber.error(error);\n }\n }\n }\n xhr.onload = xhrLoad;\n xhrLoad.subscriber = this;\n xhrLoad.progressSubscriber = progressSubscriber;\n xhrLoad.request = request;\n };\n AjaxSubscriber.prototype.unsubscribe = function () {\n var _a = this, done = _a.done, xhr = _a.xhr;\n if (!done && xhr && xhr.readyState !== 4 && typeof xhr.abort === 'function') {\n xhr.abort();\n }\n _super.prototype.unsubscribe.call(this);\n };\n return AjaxSubscriber;\n}(Subscriber));\nexport { AjaxSubscriber };\nvar AjaxResponse = (function () {\n function AjaxResponse(originalEvent, xhr, request) {\n this.originalEvent = originalEvent;\n this.xhr = xhr;\n this.request = request;\n this.status = xhr.status;\n this.responseType = xhr.responseType || request.responseType;\n this.response = parseXhrResponse(this.responseType, xhr);\n }\n return AjaxResponse;\n}());\nexport { AjaxResponse };\nvar AjaxErrorImpl = (function () {\n function AjaxErrorImpl(message, xhr, request) {\n Error.call(this);\n this.message = message;\n this.name = 'AjaxError';\n this.xhr = xhr;\n this.request = request;\n this.status = xhr.status;\n this.responseType = xhr.responseType || request.responseType;\n this.response = parseXhrResponse(this.responseType, xhr);\n return this;\n }\n AjaxErrorImpl.prototype = Object.create(Error.prototype);\n return AjaxErrorImpl;\n})();\nexport var AjaxError = AjaxErrorImpl;\nfunction parseJson(xhr) {\n if ('response' in xhr) {\n return xhr.responseType ? xhr.response : JSON.parse(xhr.response || xhr.responseText || 'null');\n }\n else {\n return JSON.parse(xhr.responseText || 'null');\n }\n}\nfunction parseXhrResponse(responseType, xhr) {\n switch (responseType) {\n case 'json':\n return parseJson(xhr);\n case 'xml':\n return xhr.responseXML;\n case 'text':\n default:\n return ('response' in xhr) ? xhr.response : xhr.responseText;\n }\n}\nvar AjaxTimeoutErrorImpl = (function () {\n function AjaxTimeoutErrorImpl(xhr, request) {\n AjaxError.call(this, 'ajax timeout', xhr, request);\n this.name = 'AjaxTimeoutError';\n return this;\n }\n AjaxTimeoutErrorImpl.prototype = Object.create(AjaxError.prototype);\n return AjaxTimeoutErrorImpl;\n})();\nexport var AjaxTimeoutError = AjaxTimeoutErrorImpl;\n//# sourceMappingURL=AjaxObservable.js.map","import { AjaxObservable } from './AjaxObservable';\nexport var ajax = (function () { return AjaxObservable.create; })();\n//# sourceMappingURL=ajax.js.map"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/assets/javascripts/vendor.js b/docs/assets/javascripts/vendor.js new file mode 100644 index 00000000..3a57da57 --- /dev/null +++ b/docs/assets/javascripts/vendor.js @@ -0,0 +1,6565 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["assets/javascripts/vendor"],{ + +/***/ "./node_modules/clipboard/dist/clipboard.js": +/*!**************************************************!*\ + !*** ./node_modules/clipboard/dist/clipboard.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("/*!\n * clipboard.js v2.0.6\n * https://clipboardjs.com/\n * \n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory();\n\telse {}\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 6);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar is = __webpack_require__(3);\nvar delegate = __webpack_require__(4);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar closest = __webpack_require__(5);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(0);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n\n// CONCATENATED MODULE: ./src/clipboard-action.js\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\n/**\n * Inner class which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n */\n\nvar clipboard_action_ClipboardAction = function () {\n /**\n * @param {Object} options\n */\n function ClipboardAction(options) {\n _classCallCheck(this, ClipboardAction);\n\n this.resolveOptions(options);\n this.initSelection();\n }\n\n /**\n * Defines base properties passed from constructor.\n * @param {Object} options\n */\n\n\n _createClass(ClipboardAction, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = options.action;\n this.container = options.container;\n this.emitter = options.emitter;\n this.target = options.target;\n this.text = options.text;\n this.trigger = options.trigger;\n\n this.selectedText = '';\n }\n\n /**\n * Decides which selection strategy is going to be applied based\n * on the existence of `text` and `target` properties.\n */\n\n }, {\n key: 'initSelection',\n value: function initSelection() {\n if (this.text) {\n this.selectFake();\n } else if (this.target) {\n this.selectTarget();\n }\n }\n\n /**\n * Creates a fake textarea element, sets its value from `text` property,\n * and makes a selection on it.\n */\n\n }, {\n key: 'selectFake',\n value: function selectFake() {\n var _this = this;\n\n var isRTL = document.documentElement.getAttribute('dir') == 'rtl';\n\n this.removeFake();\n\n this.fakeHandlerCallback = function () {\n return _this.removeFake();\n };\n this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;\n\n this.fakeElem = document.createElement('textarea');\n // Prevent zooming on iOS\n this.fakeElem.style.fontSize = '12pt';\n // Reset box model\n this.fakeElem.style.border = '0';\n this.fakeElem.style.padding = '0';\n this.fakeElem.style.margin = '0';\n // Move element out of screen horizontally\n this.fakeElem.style.position = 'absolute';\n this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';\n // Move element to the same position vertically\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n this.fakeElem.style.top = yPosition + 'px';\n\n this.fakeElem.setAttribute('readonly', '');\n this.fakeElem.value = this.text;\n\n this.container.appendChild(this.fakeElem);\n\n this.selectedText = select_default()(this.fakeElem);\n this.copyText();\n }\n\n /**\n * Only removes the fake element after another click event, that way\n * a user can hit `Ctrl+C` to copy because selection still exists.\n */\n\n }, {\n key: 'removeFake',\n value: function removeFake() {\n if (this.fakeHandler) {\n this.container.removeEventListener('click', this.fakeHandlerCallback);\n this.fakeHandler = null;\n this.fakeHandlerCallback = null;\n }\n\n if (this.fakeElem) {\n this.container.removeChild(this.fakeElem);\n this.fakeElem = null;\n }\n }\n\n /**\n * Selects the content from element passed on `target` property.\n */\n\n }, {\n key: 'selectTarget',\n value: function selectTarget() {\n this.selectedText = select_default()(this.target);\n this.copyText();\n }\n\n /**\n * Executes the copy operation based on the current selection.\n */\n\n }, {\n key: 'copyText',\n value: function copyText() {\n var succeeded = void 0;\n\n try {\n succeeded = document.execCommand(this.action);\n } catch (err) {\n succeeded = false;\n }\n\n this.handleResult(succeeded);\n }\n\n /**\n * Fires an event based on the copy operation result.\n * @param {Boolean} succeeded\n */\n\n }, {\n key: 'handleResult',\n value: function handleResult(succeeded) {\n this.emitter.emit(succeeded ? 'success' : 'error', {\n action: this.action,\n text: this.selectedText,\n trigger: this.trigger,\n clearSelection: this.clearSelection.bind(this)\n });\n }\n\n /**\n * Moves focus away from `target` and back to the trigger, removes current selection.\n */\n\n }, {\n key: 'clearSelection',\n value: function clearSelection() {\n if (this.trigger) {\n this.trigger.focus();\n }\n document.activeElement.blur();\n window.getSelection().removeAllRanges();\n }\n\n /**\n * Sets the `action` to be performed which can be either 'copy' or 'cut'.\n * @param {String} action\n */\n\n }, {\n key: 'destroy',\n\n\n /**\n * Destroy lifecycle.\n */\n value: function destroy() {\n this.removeFake();\n }\n }, {\n key: 'action',\n set: function set() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';\n\n this._action = action;\n\n if (this._action !== 'copy' && this._action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n }\n }\n\n /**\n * Gets the `action` property.\n * @return {String}\n */\n ,\n get: function get() {\n return this._action;\n }\n\n /**\n * Sets the `target` property using an element\n * that will be have its content copied.\n * @param {Element} target\n */\n\n }, {\n key: 'target',\n set: function set(target) {\n if (target !== undefined) {\n if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {\n if (this.action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n\n this._target = target;\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n }\n }\n\n /**\n * Gets the `target` property.\n * @return {String|HTMLElement}\n */\n ,\n get: function get() {\n return this._target;\n }\n }]);\n\n return ClipboardAction;\n}();\n\n/* harmony default export */ var clipboard_action = (clipboard_action_ClipboardAction);\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(1);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(2);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n\n// CONCATENATED MODULE: ./src/clipboard.js\nvar clipboard_typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar clipboard_createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction clipboard_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\nvar clipboard_Clipboard = function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n clipboard_classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));\n\n _this.resolveOptions(options);\n _this.listenClick(trigger);\n return _this;\n }\n\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n clipboard_createClass(Clipboard, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: 'listenClick',\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: 'onClick',\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n\n if (this.clipboardAction) {\n this.clipboardAction = null;\n }\n\n this.clipboardAction = new clipboard_action({\n action: this.action(trigger),\n target: this.target(trigger),\n text: this.text(trigger),\n container: this.container,\n trigger: trigger,\n emitter: this\n });\n }\n\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: 'defaultAction',\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: 'defaultTarget',\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: 'defaultText',\n\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: 'destroy',\n value: function destroy() {\n this.listener.destroy();\n\n if (this.clipboardAction) {\n this.clipboardAction.destroy();\n this.clipboardAction = null;\n }\n }\n }], [{\n key: 'isSupported',\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n\n return support;\n }\n }]);\n\n return Clipboard;\n}(tiny_emitter_default.a);\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\n\nfunction getAttributeValue(suffix, element) {\n var attribute = 'data-clipboard-' + suffix;\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n\n/* harmony default export */ var clipboard = __webpack_exports__[\"default\"] = (clipboard_Clipboard);\n\n/***/ })\n/******/ ])[\"default\"];\n});\n\n//# sourceURL=webpack:///./node_modules/clipboard/dist/clipboard.js?"); + +/***/ }), + +/***/ "./node_modules/escape-html/index.js": +/*!*******************************************!*\ + !*** ./node_modules/escape-html/index.js ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n\n\n//# sourceURL=webpack:///./node_modules/escape-html/index.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/F.js": +/*!************************************!*\ + !*** ./node_modules/ramda/es/F.js ***! + \************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * A function that always returns `false`. Any passed in parameters are ignored.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig * -> Boolean\n * @param {*}\n * @return {Boolean}\n * @see R.T\n * @example\n *\n * R.F(); //=> false\n */\nvar F = function () {\n return false;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (F);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/F.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/T.js": +/*!************************************!*\ + !*** ./node_modules/ramda/es/T.js ***! + \************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * A function that always returns `true`. Any passed in parameters are ignored.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig * -> Boolean\n * @param {*}\n * @return {Boolean}\n * @see R.F\n * @example\n *\n * R.T(); //=> true\n */\nvar T = function () {\n return true;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (T);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/T.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/__.js": +/*!*************************************!*\ + !*** ./node_modules/ramda/es/__.js ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * A special placeholder value used to specify \"gaps\" within curried functions,\n * allowing partial application of any combination of arguments, regardless of\n * their positions.\n *\n * If `g` is a curried ternary function and `_` is `R.__`, the following are\n * equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2, _)(1, 3)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @name __\n * @constant\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @example\n *\n * const greet = R.replace('{name}', R.__, 'Hello, {name}!');\n * greet('Alice'); //=> 'Hello, Alice!'\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n '@@functional/placeholder': true\n});\n\n//# sourceURL=webpack:///./node_modules/ramda/es/__.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/add.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/add.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Adds two values.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a\n * @param {Number} b\n * @return {Number}\n * @see R.subtract\n * @example\n *\n * R.add(2, 3); //=> 5\n * R.add(7)(10); //=> 17\n */\n\nvar add =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function add(a, b) {\n return Number(a) + Number(b);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (add);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/add.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/addIndex.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/addIndex.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n\n\n\n/**\n * Creates a new list iteration function from an existing one by adding two new\n * parameters to its callback function: the current index, and the entire list.\n *\n * This would turn, for instance, [`R.map`](#map) function into one that\n * more closely resembles `Array.prototype.map`. Note that this will only work\n * for functions in which the iteration callback function is the first\n * parameter, and where the list is the last parameter. (This latter might be\n * unimportant if the list parameter is not used.)\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Function\n * @category List\n * @sig ((a ... -> b) ... -> [a] -> *) -> ((a ..., Int, [a] -> b) ... -> [a] -> *)\n * @param {Function} fn A list iteration function that does not pass index or list to its callback\n * @return {Function} An altered list iteration function that passes (item, index, list) to its callback\n * @example\n *\n * const mapIndexed = R.addIndex(R.map);\n * mapIndexed((val, idx) => idx + '-' + val, ['f', 'o', 'o', 'b', 'a', 'r']);\n * //=> ['0-f', '1-o', '2-o', '3-b', '4-a', '5-r']\n */\n\nvar addIndex =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function addIndex(fn) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(fn.length, function () {\n var idx = 0;\n var origFn = arguments[0];\n var list = arguments[arguments.length - 1];\n var args = Array.prototype.slice.call(arguments, 0);\n\n args[0] = function () {\n var result = origFn.apply(this, Object(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arguments, [idx, list]));\n idx += 1;\n return result;\n };\n\n return fn.apply(this, args);\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (addIndex);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/addIndex.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/adjust.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/adjust.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n\n/**\n * Applies a function to the value at the given index of an array, returning a\n * new copy of the array with the element at the given index replaced with the\n * result of the function application.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig Number -> (a -> a) -> [a] -> [a]\n * @param {Number} idx The index.\n * @param {Function} fn The function to apply.\n * @param {Array|Arguments} list An array-like object whose value\n * at the supplied index will be replaced.\n * @return {Array} A copy of the supplied array-like object with\n * the element at index `idx` replaced with the value\n * returned by applying `fn` to the existing element.\n * @see R.update\n * @example\n *\n * R.adjust(1, R.toUpper, ['a', 'b', 'c', 'd']); //=> ['a', 'B', 'c', 'd']\n * R.adjust(-1, R.toUpper, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c', 'D']\n * @symb R.adjust(-1, f, [a, b]) = [a, f(b)]\n * @symb R.adjust(0, f, [a, b]) = [f(a), b]\n */\n\nvar adjust =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function adjust(idx, fn, list) {\n if (idx >= list.length || idx < -list.length) {\n return list;\n }\n\n var start = idx < 0 ? list.length : 0;\n\n var _idx = start + idx;\n\n var _list = Object(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(list);\n\n _list[_idx] = fn(list[_idx]);\n return _list;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (adjust);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/adjust.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/all.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/all.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xall_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xall.js */ \"./node_modules/ramda/es/internal/_xall.js\");\n\n\n\n/**\n * Returns `true` if all elements of the list match the predicate, `false` if\n * there are any that don't.\n *\n * Dispatches to the `all` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is satisfied by every element, `false`\n * otherwise.\n * @see R.any, R.none, R.transduce\n * @example\n *\n * const equals3 = R.equals(3);\n * R.all(equals3)([3, 3, 3, 3]); //=> true\n * R.all(equals3)([3, 3, 1, 3]); //=> false\n */\n\nvar all =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['all'], _internal_xall_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function all(fn, list) {\n var idx = 0;\n\n while (idx < list.length) {\n if (!fn(list[idx])) {\n return false;\n }\n\n idx += 1;\n }\n\n return true;\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (all);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/all.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/allPass.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/allPass.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./max.js */ \"./node_modules/ramda/es/max.js\");\n/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pluck.js */ \"./node_modules/ramda/es/pluck.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n\n\n\n\n\n/**\n * Takes a list of predicates and returns a predicate that returns true for a\n * given list of arguments if every one of the provided predicates is satisfied\n * by those arguments.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Logic\n * @sig [(*... -> Boolean)] -> (*... -> Boolean)\n * @param {Array} predicates An array of predicates to check\n * @return {Function} The combined predicate\n * @see R.anyPass\n * @example\n *\n * const isQueen = R.propEq('rank', 'Q');\n * const isSpade = R.propEq('suit', '♠︎');\n * const isQueenOfSpades = R.allPass([isQueen, isSpade]);\n *\n * isQueenOfSpades({rank: 'Q', suit: '♣︎'}); //=> false\n * isQueenOfSpades({rank: 'Q', suit: '♠︎'}); //=> true\n */\n\nvar allPass =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function allPass(preds) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_reduce_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(_max_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], 0, Object(_pluck_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])('length', preds)), function () {\n var idx = 0;\n var len = preds.length;\n\n while (idx < len) {\n if (!preds[idx].apply(this, arguments)) {\n return false;\n }\n\n idx += 1;\n }\n\n return true;\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (allPass);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/allPass.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/always.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/always.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Returns a function that always returns the given value. Note that for\n * non-primitives the value returned is a reference to the original value.\n *\n * This function is known as `const`, `constant`, or `K` (for K combinator) in\n * other languages and libraries.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> (* -> a)\n * @param {*} val The value to wrap in a function\n * @return {Function} A Function :: * -> val.\n * @example\n *\n * const t = R.always('Tee');\n * t(); //=> 'Tee'\n */\n\nvar always =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function always(val) {\n return function () {\n return val;\n };\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (always);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/always.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/and.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/and.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns `true` if both arguments are `true`; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {Any} a\n * @param {Any} b\n * @return {Any} the first argument if it is falsy, otherwise the second argument.\n * @see R.both, R.xor\n * @example\n *\n * R.and(true, true); //=> true\n * R.and(true, false); //=> false\n * R.and(false, true); //=> false\n * R.and(false, false); //=> false\n */\n\nvar and =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function and(a, b) {\n return a && b;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (and);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/and.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/andThen.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/andThen.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_assertPromise_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_assertPromise.js */ \"./node_modules/ramda/es/internal/_assertPromise.js\");\n\n\n/**\n * Returns the result of applying the onSuccess function to the value inside\n * a successfully resolved promise. This is useful for working with promises\n * inside function compositions.\n *\n * @func\n * @memberOf R\n * @since v0.27.0\n * @category Function\n * @sig (a -> b) -> (Promise e a) -> (Promise e b)\n * @sig (a -> (Promise e b)) -> (Promise e a) -> (Promise e b)\n * @param {Function} onSuccess The function to apply. Can return a value or a promise of a value.\n * @param {Promise} p\n * @return {Promise} The result of calling `p.then(onSuccess)`\n * @see R.otherwise\n * @example\n *\n * var makeQuery = (email) => ({ query: { email }});\n *\n * //getMemberName :: String -> Promise ({firstName, lastName})\n * var getMemberName = R.pipe(\n * makeQuery,\n * fetchMember,\n * R.andThen(R.pick(['firstName', 'lastName']))\n * );\n */\n\nvar andThen =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function andThen(f, p) {\n Object(_internal_assertPromise_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])('andThen', p);\n\n return p.then(f);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (andThen);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/andThen.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/any.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/any.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xany_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xany.js */ \"./node_modules/ramda/es/internal/_xany.js\");\n\n\n\n/**\n * Returns `true` if at least one of the elements of the list match the predicate,\n * `false` otherwise.\n *\n * Dispatches to the `any` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is satisfied by at least one element, `false`\n * otherwise.\n * @see R.all, R.none, R.transduce\n * @example\n *\n * const lessThan0 = R.flip(R.lt)(0);\n * const lessThan2 = R.flip(R.lt)(2);\n * R.any(lessThan0)([1, 2]); //=> false\n * R.any(lessThan2)([1, 2]); //=> true\n */\n\nvar any =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['any'], _internal_xany_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function any(fn, list) {\n var idx = 0;\n\n while (idx < list.length) {\n if (fn(list[idx])) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (any);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/any.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/anyPass.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/anyPass.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./max.js */ \"./node_modules/ramda/es/max.js\");\n/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pluck.js */ \"./node_modules/ramda/es/pluck.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n\n\n\n\n\n/**\n * Takes a list of predicates and returns a predicate that returns true for a\n * given list of arguments if at least one of the provided predicates is\n * satisfied by those arguments.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Logic\n * @sig [(*... -> Boolean)] -> (*... -> Boolean)\n * @param {Array} predicates An array of predicates to check\n * @return {Function} The combined predicate\n * @see R.allPass\n * @example\n *\n * const isClub = R.propEq('suit', '♣');\n * const isSpade = R.propEq('suit', '♠');\n * const isBlackCard = R.anyPass([isClub, isSpade]);\n *\n * isBlackCard({rank: '10', suit: '♣'}); //=> true\n * isBlackCard({rank: 'Q', suit: '♠'}); //=> true\n * isBlackCard({rank: 'Q', suit: '♦'}); //=> false\n */\n\nvar anyPass =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function anyPass(preds) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_reduce_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(_max_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], 0, Object(_pluck_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])('length', preds)), function () {\n var idx = 0;\n var len = preds.length;\n\n while (idx < len) {\n if (preds[idx].apply(this, arguments)) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (anyPass);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/anyPass.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/ap.js": +/*!*************************************!*\ + !*** ./node_modules/ramda/es/ap.js ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n\n\n\n\n/**\n * ap applies a list of functions to a list of values.\n *\n * Dispatches to the `ap` method of the second argument, if present. Also\n * treats curried functions as applicatives.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig [a -> b] -> [a] -> [b]\n * @sig Apply f => f (a -> b) -> f a -> f b\n * @sig (r -> a -> b) -> (r -> a) -> (r -> b)\n * @param {*} applyF\n * @param {*} applyX\n * @return {*}\n * @example\n *\n * R.ap([R.multiply(2), R.add(3)], [1,2,3]); //=> [2, 4, 6, 4, 5, 6]\n * R.ap([R.concat('tasty '), R.toUpper], ['pizza', 'salad']); //=> [\"tasty pizza\", \"tasty salad\", \"PIZZA\", \"SALAD\"]\n *\n * // R.ap can also be used as S combinator\n * // when only two functions are passed\n * R.ap(R.concat, R.toUpper)('Ramda') //=> 'RamdaRAMDA'\n * @symb R.ap([f, g], [a, b]) = [f(a), f(b), g(a), g(b)]\n */\n\nvar ap =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function ap(applyF, applyX) {\n return typeof applyX['fantasy-land/ap'] === 'function' ? applyX['fantasy-land/ap'](applyF) : typeof applyF.ap === 'function' ? applyF.ap(applyX) : typeof applyF === 'function' ? function (x) {\n return applyF(x)(applyX(x));\n } : Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(function (acc, f) {\n return Object(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(acc, Object(_map_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(f, applyX));\n }, [], applyF);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ap);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/ap.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/aperture.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/aperture.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_aperture_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_aperture.js */ \"./node_modules/ramda/es/internal/_aperture.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xaperture_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_xaperture.js */ \"./node_modules/ramda/es/internal/_xaperture.js\");\n\n\n\n\n/**\n * Returns a new list, composed of n-tuples of consecutive elements. If `n` is\n * greater than the length of the list, an empty list is returned.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig Number -> [a] -> [[a]]\n * @param {Number} n The size of the tuples to create\n * @param {Array} list The list to split into `n`-length tuples\n * @return {Array} The resulting list of `n`-length tuples\n * @see R.transduce\n * @example\n *\n * R.aperture(2, [1, 2, 3, 4, 5]); //=> [[1, 2], [2, 3], [3, 4], [4, 5]]\n * R.aperture(3, [1, 2, 3, 4, 5]); //=> [[1, 2, 3], [2, 3, 4], [3, 4, 5]]\n * R.aperture(7, [1, 2, 3, 4, 5]); //=> []\n */\n\nvar aperture =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])([], _internal_xaperture_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], _internal_aperture_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (aperture);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/aperture.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/append.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/append.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Returns a new list containing the contents of the given list, followed by\n * the given element.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} el The element to add to the end of the new list.\n * @param {Array} list The list of elements to add a new item to.\n * list.\n * @return {Array} A new list containing the elements of the old list followed by `el`.\n * @see R.prepend\n * @example\n *\n * R.append('tests', ['write', 'more']); //=> ['write', 'more', 'tests']\n * R.append('tests', []); //=> ['tests']\n * R.append(['tests'], ['write', 'more']); //=> ['write', 'more', ['tests']]\n */\n\nvar append =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function append(el, list) {\n return Object(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(list, [el]);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (append);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/append.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/apply.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/apply.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Applies function `fn` to the argument list `args`. This is useful for\n * creating a fixed-arity function from a variadic function. `fn` should be a\n * bound function if context is significant.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig (*... -> a) -> [*] -> a\n * @param {Function} fn The function which will be called with `args`\n * @param {Array} args The arguments to call `fn` with\n * @return {*} result The result, equivalent to `fn(...args)`\n * @see R.call, R.unapply\n * @example\n *\n * const nums = [1, 2, 3, -99, 42, 6, 7];\n * R.apply(Math.max, nums); //=> 42\n * @symb R.apply(f, [a, b, c]) = f(a, b, c)\n */\n\nvar apply =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function apply(fn, args) {\n return fn.apply(this, args);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (apply);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/apply.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/applySpec.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/applySpec.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _apply_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./apply.js */ \"./node_modules/ramda/es/apply.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./max.js */ \"./node_modules/ramda/es/max.js\");\n/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pluck.js */ \"./node_modules/ramda/es/pluck.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/ramda/es/keys.js\");\n/* harmony import */ var _values_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./values.js */ \"./node_modules/ramda/es/values.js\");\n\n\n\n\n\n\n\n // Use custom mapValues function to avoid issues with specs that include a \"map\" key and R.map\n// delegating calls to .map\n\nfunction mapValues(fn, obj) {\n return Object(_keys_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(obj).reduce(function (acc, key) {\n acc[key] = fn(obj[key]);\n return acc;\n }, {});\n}\n/**\n * Given a spec object recursively mapping properties to functions, creates a\n * function producing an object of the same structure, by mapping each property\n * to the result of calling its associated function with the supplied arguments.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Function\n * @sig {k: ((a, b, ..., m) -> v)} -> ((a, b, ..., m) -> {k: v})\n * @param {Object} spec an object recursively mapping properties to functions for\n * producing the values for these properties.\n * @return {Function} A function that returns an object of the same structure\n * as `spec', with each property set to the value returned by calling its\n * associated function with the supplied arguments.\n * @see R.converge, R.juxt\n * @example\n *\n * const getMetrics = R.applySpec({\n * sum: R.add,\n * nested: { mul: R.multiply }\n * });\n * getMetrics(2, 4); // => { sum: 6, nested: { mul: 8 } }\n * @symb R.applySpec({ x: f, y: { z: g } })(a, b) = { x: f(a, b), y: { z: g(a, b) } }\n */\n\n\nvar applySpec =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function applySpec(spec) {\n spec = mapValues(function (v) {\n return typeof v == 'function' ? v : applySpec(v);\n }, spec);\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Object(_reduce_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(_max_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], 0, Object(_pluck_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])('length', Object(_values_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(spec))), function () {\n var args = arguments;\n return mapValues(function (f) {\n return Object(_apply_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(f, args);\n }, spec);\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (applySpec);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/applySpec.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/applyTo.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/applyTo.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Takes a value and applies a function to it.\n *\n * This function is also known as the `thrush` combinator.\n *\n * @func\n * @memberOf R\n * @since v0.25.0\n * @category Function\n * @sig a -> (a -> b) -> b\n * @param {*} x The value\n * @param {Function} f The function to apply\n * @return {*} The result of applying `f` to `x`\n * @example\n *\n * const t42 = R.applyTo(42);\n * t42(R.identity); //=> 42\n * t42(R.add(1)); //=> 43\n */\n\nvar applyTo =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function applyTo(x, f) {\n return f(x);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (applyTo);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/applyTo.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/ascend.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/ascend.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Makes an ascending comparator function out of a function that returns a value\n * that can be compared with `<` and `>`.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Function\n * @sig Ord b => (a -> b) -> a -> a -> Number\n * @param {Function} fn A function of arity one that returns a value that can be compared\n * @param {*} a The first item to be compared.\n * @param {*} b The second item to be compared.\n * @return {Number} `-1` if fn(a) < fn(b), `1` if fn(b) < fn(a), otherwise `0`\n * @see R.descend\n * @example\n *\n * const byAge = R.ascend(R.prop('age'));\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByYoungestFirst = R.sort(byAge, people);\n * //=> [{ name: 'Mikhail', age: 62 },{ name: 'Emma', age: 70 }, { name: 'Peter', age: 78 }]\n */\n\nvar ascend =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function ascend(fn, a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ascend);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/ascend.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/assoc.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/assoc.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Makes a shallow clone of an object, setting or overriding the specified\n * property with the given value. Note that this copies and flattens prototype\n * properties onto the new object as well. All non-primitive properties are\n * copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @sig String -> a -> {k: v} -> {k: v}\n * @param {String} prop The property name to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except for the changed property.\n * @see R.dissoc, R.pick\n * @example\n *\n * R.assoc('c', 3, {a: 1, b: 2}); //=> {a: 1, b: 2, c: 3}\n */\n\nvar assoc =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function assoc(prop, val, obj) {\n var result = {};\n\n for (var p in obj) {\n result[p] = obj[p];\n }\n\n result[prop] = val;\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (assoc);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/assoc.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/assocPath.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/assocPath.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n/* harmony import */ var _internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isArray.js */ \"./node_modules/ramda/es/internal/_isArray.js\");\n/* harmony import */ var _internal_isInteger_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_isInteger.js */ \"./node_modules/ramda/es/internal/_isInteger.js\");\n/* harmony import */ var _assoc_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./assoc.js */ \"./node_modules/ramda/es/assoc.js\");\n/* harmony import */ var _isNil_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./isNil.js */ \"./node_modules/ramda/es/isNil.js\");\n\n\n\n\n\n\n/**\n * Makes a shallow clone of an object, setting or overriding the nodes required\n * to create the given path, and placing the specific value at the tail end of\n * that path. Note that this copies and flattens prototype properties onto the\n * new object as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> a -> {a} -> {a}\n * @param {Array} path the path to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except along the specified path.\n * @see R.dissocPath\n * @example\n *\n * R.assocPath(['a', 'b', 'c'], 42, {a: {b: {c: 0}}}); //=> {a: {b: {c: 42}}}\n *\n * // Any missing or non-object keys in path will be overridden\n * R.assocPath(['a', 'b', 'c'], 42, {a: 5}); //=> {a: {b: {c: 42}}}\n */\n\nvar assocPath =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function assocPath(path, val, obj) {\n if (path.length === 0) {\n return val;\n }\n\n var idx = path[0];\n\n if (path.length > 1) {\n var nextObj = !Object(_isNil_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(obj) && Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(idx, obj) ? obj[idx] : Object(_internal_isInteger_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(path[1]) ? [] : {};\n val = assocPath(Array.prototype.slice.call(path, 1), val, nextObj);\n }\n\n if (Object(_internal_isInteger_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(idx) && Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(obj)) {\n var arr = [].concat(obj);\n arr[idx] = val;\n return arr;\n } else {\n return Object(_assoc_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(idx, val, obj);\n }\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (assocPath);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/assocPath.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/binary.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/binary.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _nAry_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./nAry.js */ \"./node_modules/ramda/es/nAry.js\");\n\n\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly 2 parameters. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Function\n * @sig (* -> c) -> (a, b -> c)\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity 2.\n * @see R.nAry, R.unary\n * @example\n *\n * const takesThreeArgs = function(a, b, c) {\n * return [a, b, c];\n * };\n * takesThreeArgs.length; //=> 3\n * takesThreeArgs(1, 2, 3); //=> [1, 2, 3]\n *\n * const takesTwoArgs = R.binary(takesThreeArgs);\n * takesTwoArgs.length; //=> 2\n * // Only 2 arguments are passed to the wrapped function\n * takesTwoArgs(1, 2, 3); //=> [1, 2, undefined]\n * @symb R.binary(f)(a, b, c) = f(a, b)\n */\n\nvar binary =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function binary(fn) {\n return Object(_nAry_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(2, fn);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (binary);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/binary.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/bind.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/bind.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Creates a function that is bound to a context.\n * Note: `R.bind` does not provide the additional argument-binding capabilities of\n * [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @category Object\n * @sig (* -> *) -> {*} -> (* -> *)\n * @param {Function} fn The function to bind to context\n * @param {Object} thisObj The context to bind `fn` to\n * @return {Function} A function that will execute in the context of `thisObj`.\n * @see R.partial\n * @example\n *\n * const log = R.bind(console.log, console);\n * R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}\n * // logs {a: 2}\n * @symb R.bind(f, o)(a, b) = f.call(o, a, b)\n */\n\nvar bind =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function bind(fn, thisObj) {\n return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (bind);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/bind.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/both.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/both.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isFunction.js */ \"./node_modules/ramda/es/internal/_isFunction.js\");\n/* harmony import */ var _and_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./and.js */ \"./node_modules/ramda/es/and.js\");\n/* harmony import */ var _lift_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lift.js */ \"./node_modules/ramda/es/lift.js\");\n\n\n\n\n/**\n * A function which calls the two provided functions and returns the `&&`\n * of the results.\n * It returns the result of the first function if it is false-y and the result\n * of the second function otherwise. Note that this is short-circuited,\n * meaning that the second function will not be invoked if the first returns a\n * false-y value.\n *\n * In addition to functions, `R.both` also accepts any fantasy-land compatible\n * applicative functor.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> Boolean) -> (*... -> Boolean)\n * @param {Function} f A predicate\n * @param {Function} g Another predicate\n * @return {Function} a function that applies its arguments to `f` and `g` and `&&`s their outputs together.\n * @see R.and\n * @example\n *\n * const gt10 = R.gt(R.__, 10)\n * const lt20 = R.lt(R.__, 20)\n * const f = R.both(gt10, lt20);\n * f(15); //=> true\n * f(30); //=> false\n *\n * R.both(Maybe.Just(false), Maybe.Just(55)); // => Maybe.Just(false)\n * R.both([false, false, 'a'], [11]); //=> [false, false, 11]\n */\n\nvar both =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function both(f, g) {\n return Object(_internal_isFunction_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(f) ? function _both() {\n return f.apply(this, arguments) && g.apply(this, arguments);\n } : Object(_lift_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_and_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(f, g);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (both);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/both.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/call.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/call.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./curry.js */ \"./node_modules/ramda/es/curry.js\");\n\n/**\n * Returns the result of calling its first argument with the remaining\n * arguments. This is occasionally useful as a converging function for\n * [`R.converge`](#converge): the first branch can produce a function while the\n * remaining branches produce values to be passed to that function as its\n * arguments.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig (*... -> a),*... -> a\n * @param {Function} fn The function to apply to the remaining arguments.\n * @param {...*} args Any number of positional arguments.\n * @return {*}\n * @see R.apply\n * @example\n *\n * R.call(R.add, 1, 2); //=> 3\n *\n * const indentN = R.pipe(R.repeat(' '),\n * R.join(''),\n * R.replace(/^(?!$)/gm));\n *\n * const format = R.converge(R.call, [\n * R.pipe(R.prop('indent'), indentN),\n * R.prop('value')\n * ]);\n *\n * format({indent: 2, value: 'foo\\nbar\\nbaz\\n'}); //=> ' foo\\n bar\\n baz\\n'\n * @symb R.call(f, a, b) = f(a, b)\n */\n\nvar call =\n/*#__PURE__*/\nObject(_curry_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function call(fn) {\n return fn.apply(this, Array.prototype.slice.call(arguments, 1));\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (call);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/call.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/chain.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/chain.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_makeFlat_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_makeFlat.js */ \"./node_modules/ramda/es/internal/_makeFlat.js\");\n/* harmony import */ var _internal_xchain_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_xchain.js */ \"./node_modules/ramda/es/internal/_xchain.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n\n\n\n\n\n/**\n * `chain` maps a function over a list and concatenates the results. `chain`\n * is also known as `flatMap` in some libraries.\n *\n * Dispatches to the `chain` method of the second argument, if present,\n * according to the [FantasyLand Chain spec](https://github.com/fantasyland/fantasy-land#chain).\n *\n * If second argument is a function, `chain(f, g)(x)` is equivalent to `f(g(x), x)`.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig Chain m => (a -> m b) -> m a -> m b\n * @param {Function} fn The function to map with\n * @param {Array} list The list to map over\n * @return {Array} The result of flat-mapping `list` with `fn`\n * @example\n *\n * const duplicate = n => [n, n];\n * R.chain(duplicate, [1, 2, 3]); //=> [1, 1, 2, 2, 3, 3]\n *\n * R.chain(R.append, R.head)([1, 2, 3]); //=> [1, 2, 3, 1]\n */\n\nvar chain =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['fantasy-land/chain', 'chain'], _internal_xchain_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], function chain(fn, monad) {\n if (typeof monad === 'function') {\n return function (x) {\n return fn(monad(x))(x);\n };\n }\n\n return Object(_internal_makeFlat_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(false)(Object(_map_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(fn, monad));\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (chain);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/chain.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/clamp.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/clamp.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Restricts a number to be within a range.\n *\n * Also works for other ordered types such as Strings and Dates.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Relation\n * @sig Ord a => a -> a -> a -> a\n * @param {Number} minimum The lower limit of the clamp (inclusive)\n * @param {Number} maximum The upper limit of the clamp (inclusive)\n * @param {Number} value Value to be clamped\n * @return {Number} Returns `minimum` when `val < minimum`, `maximum` when `val > maximum`, returns `val` otherwise\n * @example\n *\n * R.clamp(1, 10, -5) // => 1\n * R.clamp(1, 10, 15) // => 10\n * R.clamp(1, 10, 4) // => 4\n */\n\nvar clamp =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function clamp(min, max, value) {\n if (min > max) {\n throw new Error('min must not be greater than max in clamp(min, max, value)');\n }\n\n return value < min ? min : value > max ? max : value;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (clamp);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/clamp.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/clone.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/clone.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_clone_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_clone.js */ \"./node_modules/ramda/es/internal/_clone.js\");\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n\n/**\n * Creates a deep copy of the value which may contain (nested) `Array`s and\n * `Object`s, `Number`s, `String`s, `Boolean`s and `Date`s. `Function`s are\n * assigned by reference rather than copied\n *\n * Dispatches to a `clone` method if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {*} -> {*}\n * @param {*} value The object or array to clone\n * @return {*} A deeply cloned copy of `val`\n * @example\n *\n * const objects = [{}, {}, {}];\n * const objectsClone = R.clone(objects);\n * objects === objectsClone; //=> false\n * objects[0] === objectsClone[0]; //=> false\n */\n\nvar clone =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function clone(value) {\n return value != null && typeof value.clone === 'function' ? value.clone() : Object(_internal_clone_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value, [], [], true);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (clone);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/clone.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/comparator.js": +/*!*********************************************!*\ + !*** ./node_modules/ramda/es/comparator.js ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Makes a comparator function out of a function that reports whether the first\n * element is less than the second.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((a, b) -> Boolean) -> ((a, b) -> Number)\n * @param {Function} pred A predicate function of arity two which will return `true` if the first argument\n * is less than the second, `false` otherwise\n * @return {Function} A Function :: a -> b -> Int that returns `-1` if a < b, `1` if b < a, otherwise `0`\n * @example\n *\n * const byAge = R.comparator((a, b) => a.age < b.age);\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByIncreasingAge = R.sort(byAge, people);\n * //=> [{ name: 'Mikhail', age: 62 },{ name: 'Emma', age: 70 }, { name: 'Peter', age: 78 }]\n */\n\nvar comparator =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function comparator(pred) {\n return function (a, b) {\n return pred(a, b) ? -1 : pred(b, a) ? 1 : 0;\n };\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (comparator);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/comparator.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/complement.js": +/*!*********************************************!*\ + !*** ./node_modules/ramda/es/complement.js ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _lift_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lift.js */ \"./node_modules/ramda/es/lift.js\");\n/* harmony import */ var _not_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./not.js */ \"./node_modules/ramda/es/not.js\");\n\n\n/**\n * Takes a function `f` and returns a function `g` such that if called with the same arguments\n * when `f` returns a \"truthy\" value, `g` returns `false` and when `f` returns a \"falsy\" value `g` returns `true`.\n *\n * `R.complement` may be applied to any functor\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> *) -> (*... -> Boolean)\n * @param {Function} f\n * @return {Function}\n * @see R.not\n * @example\n *\n * const isNotNil = R.complement(R.isNil);\n * isNil(null); //=> true\n * isNotNil(null); //=> false\n * isNil(7); //=> false\n * isNotNil(7); //=> true\n */\n\nvar complement =\n/*#__PURE__*/\nObject(_lift_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_not_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (complement);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/complement.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/compose.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/compose.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return compose; });\n/* harmony import */ var _pipe_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pipe.js */ \"./node_modules/ramda/es/pipe.js\");\n/* harmony import */ var _reverse_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reverse.js */ \"./node_modules/ramda/es/reverse.js\");\n\n\n/**\n * Performs right-to-left function composition. The last argument may have\n * any arity; the remaining arguments must be unary.\n *\n * **Note:** The result of compose is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((y -> z), (x -> y), ..., (o -> p), ((a, b, ..., n) -> o)) -> ((a, b, ..., n) -> z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.pipe\n * @example\n *\n * const classyGreeting = (firstName, lastName) => \"The name's \" + lastName + \", \" + firstName + \" \" + lastName\n * const yellGreeting = R.compose(R.toUpper, classyGreeting);\n * yellGreeting('James', 'Bond'); //=> \"THE NAME'S BOND, JAMES BOND\"\n *\n * R.compose(Math.abs, R.add(1), R.multiply(2))(-4) //=> 7\n *\n * @symb R.compose(f, g, h)(a, b) = f(g(h(a, b)))\n */\n\nfunction compose() {\n if (arguments.length === 0) {\n throw new Error('compose requires at least one argument');\n }\n\n return _pipe_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].apply(this, Object(_reverse_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(arguments));\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/compose.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/composeK.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/composeK.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return composeK; });\n/* harmony import */ var _chain_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./chain.js */ \"./node_modules/ramda/es/chain.js\");\n/* harmony import */ var _compose_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./compose.js */ \"./node_modules/ramda/es/compose.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n\n\n\n/**\n * Returns the right-to-left Kleisli composition of the provided functions,\n * each of which must return a value of a type supported by [`chain`](#chain).\n *\n * `R.composeK(h, g, f)` is equivalent to `R.compose(R.chain(h), R.chain(g), f)`.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Function\n * @sig Chain m => ((y -> m z), (x -> m y), ..., (a -> m b)) -> (a -> m z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.pipeK\n * @deprecated since v0.26.0\n * @example\n *\n * // get :: String -> Object -> Maybe *\n * const get = R.curry((propName, obj) => Maybe(obj[propName]))\n *\n * // getStateCode :: Maybe String -> Maybe String\n * const getStateCode = R.composeK(\n * R.compose(Maybe.of, R.toUpper),\n * get('state'),\n * get('address'),\n * get('user'),\n * );\n * getStateCode({\"user\":{\"address\":{\"state\":\"ny\"}}}); //=> Maybe.Just(\"NY\")\n * getStateCode({}); //=> Maybe.Nothing()\n * @symb R.composeK(f, g, h)(a) = R.chain(f, R.chain(g, h(a)))\n */\n\nfunction composeK() {\n if (arguments.length === 0) {\n throw new Error('composeK requires at least one argument');\n }\n\n var init = Array.prototype.slice.call(arguments);\n var last = init.pop();\n return Object(_compose_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_compose_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].apply(this, Object(_map_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_chain_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], init)), last);\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/composeK.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/composeP.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/composeP.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return composeP; });\n/* harmony import */ var _pipeP_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pipeP.js */ \"./node_modules/ramda/es/pipeP.js\");\n/* harmony import */ var _reverse_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reverse.js */ \"./node_modules/ramda/es/reverse.js\");\n\n\n/**\n * Performs right-to-left composition of one or more Promise-returning\n * functions. The last arguments may have any arity; the remaining\n * arguments must be unary.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((y -> Promise z), (x -> Promise y), ..., (a -> Promise b)) -> (a -> Promise z)\n * @param {...Function} functions The functions to compose\n * @return {Function}\n * @see R.pipeP\n * @deprecated since v0.26.0\n * @example\n *\n * const db = {\n * users: {\n * JOE: {\n * name: 'Joe',\n * followers: ['STEVE', 'SUZY']\n * }\n * }\n * }\n *\n * // We'll pretend to do a db lookup which returns a promise\n * const lookupUser = (userId) => Promise.resolve(db.users[userId])\n * const lookupFollowers = (user) => Promise.resolve(user.followers)\n * lookupUser('JOE').then(lookupFollowers)\n *\n * // followersForUser :: String -> Promise [UserId]\n * const followersForUser = R.composeP(lookupFollowers, lookupUser);\n * followersForUser('JOE').then(followers => console.log('Followers:', followers))\n * // Followers: [\"STEVE\",\"SUZY\"]\n */\n\nfunction composeP() {\n if (arguments.length === 0) {\n throw new Error('composeP requires at least one argument');\n }\n\n return _pipeP_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].apply(this, Object(_reverse_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(arguments));\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/composeP.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/composeWith.js": +/*!**********************************************!*\ + !*** ./node_modules/ramda/es/composeWith.js ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _pipeWith_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pipeWith.js */ \"./node_modules/ramda/es/pipeWith.js\");\n/* harmony import */ var _reverse_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reverse.js */ \"./node_modules/ramda/es/reverse.js\");\n\n\n\n/**\n * Performs right-to-left function composition using transforming function. The last argument may have\n * any arity; the remaining arguments must be unary.\n *\n * **Note:** The result of compose is not automatically curried. Transforming function is not used on the\n * last argument.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig ((* -> *), [(y -> z), (x -> y), ..., (o -> p), ((a, b, ..., n) -> o)]) -> ((a, b, ..., n) -> z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.compose, R.pipeWith\n * @example\n *\n * const composeWhileNotNil = R.composeWith((f, res) => R.isNil(res) ? res : f(res));\n *\n * composeWhileNotNil([R.inc, R.prop('age')])({age: 1}) //=> 2\n * composeWhileNotNil([R.inc, R.prop('age')])({}) //=> undefined\n *\n * @symb R.composeWith(f)([g, h, i])(...args) = f(g, f(h, i(...args)))\n */\n\nvar composeWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function composeWith(xf, list) {\n return _pipeWith_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].apply(this, [xf, Object(_reverse_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(list)]);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (composeWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/composeWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/concat.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/concat.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isArray.js */ \"./node_modules/ramda/es/internal/_isArray.js\");\n/* harmony import */ var _internal_isFunction_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isFunction.js */ \"./node_modules/ramda/es/internal/_isFunction.js\");\n/* harmony import */ var _internal_isString_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_isString.js */ \"./node_modules/ramda/es/internal/_isString.js\");\n/* harmony import */ var _toString_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./toString.js */ \"./node_modules/ramda/es/toString.js\");\n\n\n\n\n\n/**\n * Returns the result of concatenating the given lists or strings.\n *\n * Note: `R.concat` expects both arguments to be of the same type,\n * unlike the native `Array.prototype.concat` method. It will throw\n * an error if you `concat` an Array with a non-Array value.\n *\n * Dispatches to the `concat` method of the first argument, if present.\n * Can also concatenate two members of a [fantasy-land\n * compatible semigroup](https://github.com/fantasyland/fantasy-land#semigroup).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a] -> [a]\n * @sig String -> String -> String\n * @param {Array|String} firstList The first list\n * @param {Array|String} secondList The second list\n * @return {Array|String} A list consisting of the elements of `firstList` followed by the elements of\n * `secondList`.\n *\n * @example\n *\n * R.concat('ABC', 'DEF'); // 'ABCDEF'\n * R.concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n * R.concat([], []); //=> []\n */\n\nvar concat =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function concat(a, b) {\n if (Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(a)) {\n if (Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(b)) {\n return a.concat(b);\n }\n\n throw new TypeError(Object(_toString_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(b) + ' is not an array');\n }\n\n if (Object(_internal_isString_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(a)) {\n if (Object(_internal_isString_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(b)) {\n return a + b;\n }\n\n throw new TypeError(Object(_toString_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(b) + ' is not a string');\n }\n\n if (a != null && Object(_internal_isFunction_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a['fantasy-land/concat'])) {\n return a['fantasy-land/concat'](b);\n }\n\n if (a != null && Object(_internal_isFunction_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a.concat)) {\n return a.concat(b);\n }\n\n throw new TypeError(Object(_toString_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(a) + ' does not have a method named \"concat\" or \"fantasy-land/concat\"');\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (concat);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/concat.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/cond.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/cond.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./max.js */ \"./node_modules/ramda/es/max.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n\n\n\n\n\n/**\n * Returns a function, `fn`, which encapsulates `if/else, if/else, ...` logic.\n * `R.cond` takes a list of [predicate, transformer] pairs. All of the arguments\n * to `fn` are applied to each of the predicates in turn until one returns a\n * \"truthy\" value, at which point `fn` returns the result of applying its\n * arguments to the corresponding transformer. If none of the predicates\n * matches, `fn` returns undefined.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Logic\n * @sig [[(*... -> Boolean),(*... -> *)]] -> (*... -> *)\n * @param {Array} pairs A list of [predicate, transformer]\n * @return {Function}\n * @see R.ifElse, R.unless, R.when\n * @example\n *\n * const fn = R.cond([\n * [R.equals(0), R.always('water freezes at 0°C')],\n * [R.equals(100), R.always('water boils at 100°C')],\n * [R.T, temp => 'nothing special happens at ' + temp + '°C']\n * ]);\n * fn(0); //=> 'water freezes at 0°C'\n * fn(50); //=> 'nothing special happens at 50°C'\n * fn(100); //=> 'water boils at 100°C'\n */\n\nvar cond =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function cond(pairs) {\n var arity = Object(_reduce_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(_max_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], 0, Object(_map_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(function (pair) {\n return pair[0].length;\n }, pairs));\n return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arity, function () {\n var idx = 0;\n\n while (idx < pairs.length) {\n if (pairs[idx][0].apply(this, arguments)) {\n return pairs[idx][1].apply(this, arguments);\n }\n\n idx += 1;\n }\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cond);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/cond.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/construct.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/construct.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _constructN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constructN.js */ \"./node_modules/ramda/es/constructN.js\");\n\n\n/**\n * Wraps a constructor function inside a curried function that can be called\n * with the same arguments and returns the same type.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (* -> {*}) -> (* -> {*})\n * @param {Function} fn The constructor function to wrap.\n * @return {Function} A wrapped, curried constructor function.\n * @see R.invoker\n * @example\n *\n * // Constructor function\n * function Animal(kind) {\n * this.kind = kind;\n * };\n * Animal.prototype.sighting = function() {\n * return \"It's a \" + this.kind + \"!\";\n * }\n *\n * const AnimalConstructor = R.construct(Animal)\n *\n * // Notice we no longer need the 'new' keyword:\n * AnimalConstructor('Pig'); //=> {\"kind\": \"Pig\", \"sighting\": function (){...}};\n *\n * const animalTypes = [\"Lion\", \"Tiger\", \"Bear\"];\n * const animalSighting = R.invoker(0, 'sighting');\n * const sightNewAnimal = R.compose(animalSighting, AnimalConstructor);\n * R.map(sightNewAnimal, animalTypes); //=> [\"It's a Lion!\", \"It's a Tiger!\", \"It's a Bear!\"]\n */\n\nvar construct =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function construct(Fn) {\n return Object(_constructN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Fn.length, Fn);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (construct);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/construct.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/constructN.js": +/*!*********************************************!*\ + !*** ./node_modules/ramda/es/constructN.js ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _curry_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curry.js */ \"./node_modules/ramda/es/curry.js\");\n/* harmony import */ var _nAry_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nAry.js */ \"./node_modules/ramda/es/nAry.js\");\n\n\n\n/**\n * Wraps a constructor function inside a curried function that can be called\n * with the same arguments and returns the same type. The arity of the function\n * returned is specified to allow using variadic constructor functions.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Function\n * @sig Number -> (* -> {*}) -> (* -> {*})\n * @param {Number} n The arity of the constructor function.\n * @param {Function} Fn The constructor function to wrap.\n * @return {Function} A wrapped, curried constructor function.\n * @example\n *\n * // Variadic Constructor function\n * function Salad() {\n * this.ingredients = arguments;\n * }\n *\n * Salad.prototype.recipe = function() {\n * const instructions = R.map(ingredient => 'Add a dollop of ' + ingredient, this.ingredients);\n * return R.join('\\n', instructions);\n * };\n *\n * const ThreeLayerSalad = R.constructN(3, Salad);\n *\n * // Notice we no longer need the 'new' keyword, and the constructor is curried for 3 arguments.\n * const salad = ThreeLayerSalad('Mayonnaise')('Potato Chips')('Ketchup');\n *\n * console.log(salad.recipe());\n * // Add a dollop of Mayonnaise\n * // Add a dollop of Potato Chips\n * // Add a dollop of Ketchup\n */\n\nvar constructN =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function constructN(n, Fn) {\n if (n > 10) {\n throw new Error('Constructor with greater than ten arguments');\n }\n\n if (n === 0) {\n return function () {\n return new Fn();\n };\n }\n\n return Object(_curry_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_nAry_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(n, function ($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {\n switch (arguments.length) {\n case 1:\n return new Fn($0);\n\n case 2:\n return new Fn($0, $1);\n\n case 3:\n return new Fn($0, $1, $2);\n\n case 4:\n return new Fn($0, $1, $2, $3);\n\n case 5:\n return new Fn($0, $1, $2, $3, $4);\n\n case 6:\n return new Fn($0, $1, $2, $3, $4, $5);\n\n case 7:\n return new Fn($0, $1, $2, $3, $4, $5, $6);\n\n case 8:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7);\n\n case 9:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7, $8);\n\n case 10:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7, $8, $9);\n }\n }));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (constructN);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/constructN.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/contains.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/contains.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_includes.js */ \"./node_modules/ramda/es/internal/_includes.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Returns `true` if the specified value is equal, in [`R.equals`](#equals)\n * terms, to at least one element of the given list; `false` otherwise.\n * Works also with strings.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Boolean\n * @param {Object} a The item to compare against.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if an equivalent item is in the list, `false` otherwise.\n * @see R.includes\n * @deprecated since v0.26.0\n * @example\n *\n * R.contains(3, [1, 2, 3]); //=> true\n * R.contains(4, [1, 2, 3]); //=> false\n * R.contains({ name: 'Fred' }, [{ name: 'Fred' }]); //=> true\n * R.contains([42], [[42]]); //=> true\n * R.contains('ba', 'banana'); //=>true\n */\n\nvar contains =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_internal_includes_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (contains);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/contains.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/converge.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/converge.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_map.js */ \"./node_modules/ramda/es/internal/_map.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./max.js */ \"./node_modules/ramda/es/max.js\");\n/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pluck.js */ \"./node_modules/ramda/es/pluck.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n\n\n\n\n\n\n/**\n * Accepts a converging function and a list of branching functions and returns\n * a new function. The arity of the new function is the same as the arity of\n * the longest branching function. When invoked, this new function is applied\n * to some arguments, and each branching function is applied to those same\n * arguments. The results of each branching function are passed as arguments\n * to the converging function to produce the return value.\n *\n * @func\n * @memberOf R\n * @since v0.4.2\n * @category Function\n * @sig ((x1, x2, ...) -> z) -> [((a, b, ...) -> x1), ((a, b, ...) -> x2), ...] -> (a -> b -> ... -> z)\n * @param {Function} after A function. `after` will be invoked with the return values of\n * `fn1` and `fn2` as its arguments.\n * @param {Array} functions A list of functions.\n * @return {Function} A new function.\n * @see R.useWith\n * @example\n *\n * const average = R.converge(R.divide, [R.sum, R.length])\n * average([1, 2, 3, 4, 5, 6, 7]) //=> 4\n *\n * const strangeConcat = R.converge(R.concat, [R.toUpper, R.toLower])\n * strangeConcat(\"Yodel\") //=> \"YODELyodel\"\n *\n * @symb R.converge(f, [g, h])(a, b) = f(g(a, b), h(a, b))\n */\n\nvar converge =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function converge(after, fns) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Object(_reduce_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(_max_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], 0, Object(_pluck_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])('length', fns)), function () {\n var args = arguments;\n var context = this;\n return after.apply(context, Object(_internal_map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (fn) {\n return fn.apply(context, args);\n }, fns));\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (converge);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/converge.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/countBy.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/countBy.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _reduceBy_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reduceBy.js */ \"./node_modules/ramda/es/reduceBy.js\");\n\n/**\n * Counts the elements of a list according to how many match each value of a\n * key generated by the supplied function. Returns an object mapping the keys\n * produced by `fn` to the number of occurrences in the list. Note that all\n * keys are coerced to strings because of how JavaScript objects work.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig (a -> String) -> [a] -> {*}\n * @param {Function} fn The function used to map values to keys.\n * @param {Array} list The list to count elements from.\n * @return {Object} An object mapping keys to number of occurrences in the list.\n * @example\n *\n * const numbers = [1.0, 1.1, 1.2, 2.0, 3.0, 2.2];\n * R.countBy(Math.floor)(numbers); //=> {'1': 3, '2': 2, '3': 1}\n *\n * const letters = ['a', 'b', 'A', 'a', 'B', 'c'];\n * R.countBy(R.toLower)(letters); //=> {'a': 3, 'b': 2, 'c': 1}\n */\n\nvar countBy =\n/*#__PURE__*/\nObject(_reduceBy_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (acc, elem) {\n return acc + 1;\n}, 0);\n/* harmony default export */ __webpack_exports__[\"default\"] = (countBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/countBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/curry.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/curry.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n\n\n/**\n * Returns a curried equivalent of the provided function. The curried function\n * has two unusual capabilities. First, its arguments needn't be provided one\n * at a time. If `f` is a ternary function and `g` is `R.curry(f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (* -> a) -> (* -> a)\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curryN, R.partial\n * @example\n *\n * const addFourNumbers = (a, b, c, d) => a + b + c + d;\n *\n * const curriedAddFourNumbers = R.curry(addFourNumbers);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\n\nvar curry =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function curry(fn) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(fn.length, fn);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (curry);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/curry.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/curryN.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/curryN.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_curryN_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_curryN.js */ \"./node_modules/ramda/es/internal/_curryN.js\");\n\n\n\n\n/**\n * Returns a curried equivalent of the provided function, with the specified\n * arity. The curried function has two unusual capabilities. First, its\n * arguments needn't be provided one at a time. If `g` is `R.curryN(3, f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.5.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curry\n * @example\n *\n * const sumArgs = (...args) => R.sum(args);\n *\n * const curriedAddFourNumbers = R.curryN(4, sumArgs);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\n\nvar curryN =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(function curryN(length, fn) {\n if (length === 1) {\n return Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(fn);\n }\n\n return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(length, Object(_internal_curryN_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(length, [], fn));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (curryN);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/curryN.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/dec.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/dec.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _add_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./add.js */ \"./node_modules/ramda/es/add.js\");\n\n/**\n * Decrements its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number} n - 1\n * @see R.inc\n * @example\n *\n * R.dec(42); //=> 41\n */\n\nvar dec =\n/*#__PURE__*/\nObject(_add_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(-1);\n/* harmony default export */ __webpack_exports__[\"default\"] = (dec);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/dec.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/defaultTo.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/defaultTo.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns the second argument if it is not `null`, `undefined` or `NaN`;\n * otherwise the first argument is returned.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {a} default The default value.\n * @param {b} val `val` will be returned instead of `default` unless `val` is `null`, `undefined` or `NaN`.\n * @return {*} The second value if it is not `null`, `undefined` or `NaN`, otherwise the default value\n * @example\n *\n * const defaultTo42 = R.defaultTo(42);\n *\n * defaultTo42(null); //=> 42\n * defaultTo42(undefined); //=> 42\n * defaultTo42(false); //=> false\n * defaultTo42('Ramda'); //=> 'Ramda'\n * // parseInt('string') results in NaN\n * defaultTo42(parseInt('string')); //=> 42\n */\n\nvar defaultTo =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function defaultTo(d, v) {\n return v == null || v !== v ? d : v;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (defaultTo);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/defaultTo.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/descend.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/descend.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Makes a descending comparator function out of a function that returns a value\n * that can be compared with `<` and `>`.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Function\n * @sig Ord b => (a -> b) -> a -> a -> Number\n * @param {Function} fn A function of arity one that returns a value that can be compared\n * @param {*} a The first item to be compared.\n * @param {*} b The second item to be compared.\n * @return {Number} `-1` if fn(a) > fn(b), `1` if fn(b) > fn(a), otherwise `0`\n * @see R.ascend\n * @example\n *\n * const byAge = R.descend(R.prop('age'));\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByOldestFirst = R.sort(byAge, people);\n * //=> [{ name: 'Peter', age: 78 }, { name: 'Emma', age: 70 }, { name: 'Mikhail', age: 62 }]\n */\n\nvar descend =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function descend(fn, a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa > bb ? -1 : aa < bb ? 1 : 0;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (descend);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/descend.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/difference.js": +/*!*********************************************!*\ + !*** ./node_modules/ramda/es/difference.js ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_Set_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_Set.js */ \"./node_modules/ramda/es/internal/_Set.js\");\n\n\n/**\n * Finds the set (i.e. no duplicates) of all elements in the first list not\n * contained in the second list. Objects and Arrays are compared in terms of\n * value equality, not reference equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` that are not in `list2`.\n * @see R.differenceWith, R.symmetricDifference, R.symmetricDifferenceWith, R.without\n * @example\n *\n * R.difference([1,2,3,4], [7,6,5,4,3]); //=> [1,2]\n * R.difference([7,6,5,4,3], [1,2,3,4]); //=> [7,6,5]\n * R.difference([{a: 1}, {b: 2}], [{a: 1}, {c: 3}]) //=> [{b: 2}]\n */\n\nvar difference =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function difference(first, second) {\n var out = [];\n var idx = 0;\n var firstLen = first.length;\n var secondLen = second.length;\n var toFilterOut = new _internal_Set_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]();\n\n for (var i = 0; i < secondLen; i += 1) {\n toFilterOut.add(second[i]);\n }\n\n while (idx < firstLen) {\n if (toFilterOut.add(first[idx])) {\n out[out.length] = first[idx];\n }\n\n idx += 1;\n }\n\n return out;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (difference);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/difference.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/differenceWith.js": +/*!*************************************************!*\ + !*** ./node_modules/ramda/es/differenceWith.js ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_includesWith_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_includesWith.js */ \"./node_modules/ramda/es/internal/_includesWith.js\");\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n\n/**\n * Finds the set (i.e. no duplicates) of all elements in the first list not\n * contained in the second list. Duplication is determined according to the\n * value returned by applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [a] -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` that are not in `list2`.\n * @see R.difference, R.symmetricDifference, R.symmetricDifferenceWith\n * @example\n *\n * const cmp = (x, y) => x.a === y.a;\n * const l1 = [{a: 1}, {a: 2}, {a: 3}];\n * const l2 = [{a: 3}, {a: 4}];\n * R.differenceWith(cmp, l1, l2); //=> [{a: 1}, {a: 2}]\n */\n\nvar differenceWith =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function differenceWith(pred, first, second) {\n var out = [];\n var idx = 0;\n var firstLen = first.length;\n\n while (idx < firstLen) {\n if (!Object(_internal_includesWith_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(pred, first[idx], second) && !Object(_internal_includesWith_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(pred, first[idx], out)) {\n out.push(first[idx]);\n }\n\n idx += 1;\n }\n\n return out;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (differenceWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/differenceWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/dissoc.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/dissoc.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns a new object that does not contain a `prop` property.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Object\n * @sig String -> {k: v} -> {k: v}\n * @param {String} prop The name of the property to dissociate\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original but without the specified property\n * @see R.assoc, R.omit\n * @example\n *\n * R.dissoc('b', {a: 1, b: 2, c: 3}); //=> {a: 1, c: 3}\n */\n\nvar dissoc =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function dissoc(prop, obj) {\n var result = {};\n\n for (var p in obj) {\n result[p] = obj[p];\n }\n\n delete result[prop];\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (dissoc);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/dissoc.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/dissocPath.js": +/*!*********************************************!*\ + !*** ./node_modules/ramda/es/dissocPath.js ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isInteger.js */ \"./node_modules/ramda/es/internal/_isInteger.js\");\n/* harmony import */ var _internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isArray.js */ \"./node_modules/ramda/es/internal/_isArray.js\");\n/* harmony import */ var _assoc_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./assoc.js */ \"./node_modules/ramda/es/assoc.js\");\n/* harmony import */ var _dissoc_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dissoc.js */ \"./node_modules/ramda/es/dissoc.js\");\n/* harmony import */ var _remove_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./remove.js */ \"./node_modules/ramda/es/remove.js\");\n/* harmony import */ var _update_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./update.js */ \"./node_modules/ramda/es/update.js\");\n\n\n\n\n\n\n\n/**\n * Makes a shallow clone of an object, omitting the property at the given path.\n * Note that this copies and flattens prototype properties onto the new object\n * as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.11.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {k: v} -> {k: v}\n * @param {Array} path The path to the value to omit\n * @param {Object} obj The object to clone\n * @return {Object} A new object without the property at path\n * @see R.assocPath\n * @example\n *\n * R.dissocPath(['a', 'b', 'c'], {a: {b: {c: 42}}}); //=> {a: {b: {}}}\n */\n\nvar dissocPath =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function dissocPath(path, obj) {\n switch (path.length) {\n case 0:\n return obj;\n\n case 1:\n return Object(_internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(path[0]) && Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(obj) ? Object(_remove_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(path[0], 1, obj) : Object(_dissoc_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(path[0], obj);\n\n default:\n var head = path[0];\n var tail = Array.prototype.slice.call(path, 1);\n\n if (obj[head] == null) {\n return obj;\n } else if (Object(_internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(head) && Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(obj)) {\n return Object(_update_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(head, dissocPath(tail, obj[head]), obj);\n } else {\n return Object(_assoc_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(head, dissocPath(tail, obj[head]), obj);\n }\n\n }\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (dissocPath);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/dissocPath.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/divide.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/divide.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Divides two numbers. Equivalent to `a / b`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a / b`.\n * @see R.multiply\n * @example\n *\n * R.divide(71, 100); //=> 0.71\n *\n * const half = R.divide(R.__, 2);\n * half(42); //=> 21\n *\n * const reciprocal = R.divide(1);\n * reciprocal(4); //=> 0.25\n */\n\nvar divide =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function divide(a, b) {\n return a / b;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (divide);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/divide.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/drop.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/drop.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xdrop_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xdrop.js */ \"./node_modules/ramda/es/internal/_xdrop.js\");\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n\n\n\n\n/**\n * Returns all but the first `n` elements of the given list, string, or\n * transducer/transformer (or object with a `drop` method).\n *\n * Dispatches to the `drop` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n\n * @param {*} list\n * @return {*} A copy of list without the first `n` elements\n * @see R.take, R.transduce, R.dropLast, R.dropWhile\n * @example\n *\n * R.drop(1, ['foo', 'bar', 'baz']); //=> ['bar', 'baz']\n * R.drop(2, ['foo', 'bar', 'baz']); //=> ['baz']\n * R.drop(3, ['foo', 'bar', 'baz']); //=> []\n * R.drop(4, ['foo', 'bar', 'baz']); //=> []\n * R.drop(3, 'ramda'); //=> 'da'\n */\n\nvar drop =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['drop'], _internal_xdrop_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function drop(n, xs) {\n return Object(_slice_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(Math.max(0, n), Infinity, xs);\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (drop);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/drop.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/dropLast.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/dropLast.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_dropLast_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_dropLast.js */ \"./node_modules/ramda/es/internal/_dropLast.js\");\n/* harmony import */ var _internal_xdropLast_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_xdropLast.js */ \"./node_modules/ramda/es/internal/_xdropLast.js\");\n\n\n\n\n/**\n * Returns a list containing all but the last `n` elements of the given `list`.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n The number of elements of `list` to skip.\n * @param {Array} list The list of elements to consider.\n * @return {Array} A copy of the list with only the first `list.length - n` elements\n * @see R.takeLast, R.drop, R.dropWhile, R.dropLastWhile\n * @example\n *\n * R.dropLast(1, ['foo', 'bar', 'baz']); //=> ['foo', 'bar']\n * R.dropLast(2, ['foo', 'bar', 'baz']); //=> ['foo']\n * R.dropLast(3, ['foo', 'bar', 'baz']); //=> []\n * R.dropLast(4, ['foo', 'bar', 'baz']); //=> []\n * R.dropLast(3, 'ramda'); //=> 'ra'\n */\n\nvar dropLast =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([], _internal_xdropLast_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], _internal_dropLast_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (dropLast);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/dropLast.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/dropLastWhile.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/dropLastWhile.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_dropLastWhile_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_dropLastWhile.js */ \"./node_modules/ramda/es/internal/_dropLastWhile.js\");\n/* harmony import */ var _internal_xdropLastWhile_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_xdropLastWhile.js */ \"./node_modules/ramda/es/internal/_xdropLastWhile.js\");\n\n\n\n\n/**\n * Returns a new list excluding all the tailing elements of a given list which\n * satisfy the supplied predicate function. It passes each value from the right\n * to the supplied predicate function, skipping elements until the predicate\n * function returns a `falsy` value. The predicate function is applied to one argument:\n * *(value)*.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} predicate The function to be called on each element\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array without any trailing elements that return `falsy` values from the `predicate`.\n * @see R.takeLastWhile, R.addIndex, R.drop, R.dropWhile\n * @example\n *\n * const lteThree = x => x <= 3;\n *\n * R.dropLastWhile(lteThree, [1, 2, 3, 4, 3, 2, 1]); //=> [1, 2, 3, 4]\n *\n * R.dropLastWhile(x => x !== 'd' , 'Ramda'); //=> 'Ramd'\n */\n\nvar dropLastWhile =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([], _internal_xdropLastWhile_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], _internal_dropLastWhile_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (dropLastWhile);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/dropLastWhile.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/dropRepeats.js": +/*!**********************************************!*\ + !*** ./node_modules/ramda/es/dropRepeats.js ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xdropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xdropRepeatsWith.js */ \"./node_modules/ramda/es/internal/_xdropRepeatsWith.js\");\n/* harmony import */ var _dropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dropRepeatsWith.js */ \"./node_modules/ramda/es/dropRepeatsWith.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n\n\n\n\n\n/**\n * Returns a new list without any consecutively repeating elements.\n * [`R.equals`](#equals) is used to determine equality.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig [a] -> [a]\n * @param {Array} list The array to consider.\n * @return {Array} `list` without repeating elements.\n * @see R.transduce\n * @example\n *\n * R.dropRepeats([1, 1, 1, 2, 3, 4, 4, 2, 2]); //=> [1, 2, 3, 4, 2]\n */\n\nvar dropRepeats =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([],\n/*#__PURE__*/\nObject(_internal_xdropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_equals_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n/*#__PURE__*/\nObject(_dropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_equals_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (dropRepeats);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/dropRepeats.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/dropRepeatsWith.js": +/*!**************************************************!*\ + !*** ./node_modules/ramda/es/dropRepeatsWith.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xdropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xdropRepeatsWith.js */ \"./node_modules/ramda/es/internal/_xdropRepeatsWith.js\");\n/* harmony import */ var _last_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./last.js */ \"./node_modules/ramda/es/last.js\");\n\n\n\n\n/**\n * Returns a new list without any consecutively repeating elements. Equality is\n * determined by applying the supplied predicate to each pair of consecutive elements. The\n * first element in a series of equal elements will be preserved.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig ((a, a) -> Boolean) -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list The array to consider.\n * @return {Array} `list` without repeating elements.\n * @see R.transduce\n * @example\n *\n * const l = [1, -1, 1, 3, 4, -4, -4, -5, 5, 3, 3];\n * R.dropRepeatsWith(R.eqBy(Math.abs), l); //=> [1, 3, 4, -5, 3]\n */\n\nvar dropRepeatsWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([], _internal_xdropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function dropRepeatsWith(pred, list) {\n var result = [];\n var idx = 1;\n var len = list.length;\n\n if (len !== 0) {\n result[0] = list[0];\n\n while (idx < len) {\n if (!pred(Object(_last_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(result), list[idx])) {\n result[result.length] = list[idx];\n }\n\n idx += 1;\n }\n }\n\n return result;\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (dropRepeatsWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/dropRepeatsWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/dropWhile.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/dropWhile.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xdropWhile_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xdropWhile.js */ \"./node_modules/ramda/es/internal/_xdropWhile.js\");\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n\n\n\n\n/**\n * Returns a new list excluding the leading elements of a given list which\n * satisfy the supplied predicate function. It passes each value to the supplied\n * predicate function, skipping elements while the predicate function returns\n * `true`. The predicate function is applied to one argument: *(value)*.\n *\n * Dispatches to the `dropWhile` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} fn The function called per iteration.\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array.\n * @see R.takeWhile, R.transduce, R.addIndex\n * @example\n *\n * const lteTwo = x => x <= 2;\n *\n * R.dropWhile(lteTwo, [1, 2, 3, 4, 3, 2, 1]); //=> [3, 4, 3, 2, 1]\n *\n * R.dropWhile(x => x !== 'd' , 'Ramda'); //=> 'da'\n */\n\nvar dropWhile =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['dropWhile'], _internal_xdropWhile_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function dropWhile(pred, xs) {\n var idx = 0;\n var len = xs.length;\n\n while (idx < len && pred(xs[idx])) {\n idx += 1;\n }\n\n return Object(_slice_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(idx, Infinity, xs);\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (dropWhile);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/dropWhile.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/either.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/either.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isFunction.js */ \"./node_modules/ramda/es/internal/_isFunction.js\");\n/* harmony import */ var _lift_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lift.js */ \"./node_modules/ramda/es/lift.js\");\n/* harmony import */ var _or_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./or.js */ \"./node_modules/ramda/es/or.js\");\n\n\n\n\n/**\n * A function wrapping calls to the two functions in an `||` operation,\n * returning the result of the first function if it is truth-y and the result\n * of the second function otherwise. Note that this is short-circuited,\n * meaning that the second function will not be invoked if the first returns a\n * truth-y value.\n *\n * In addition to functions, `R.either` also accepts any fantasy-land compatible\n * applicative functor.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> Boolean) -> (*... -> Boolean)\n * @param {Function} f a predicate\n * @param {Function} g another predicate\n * @return {Function} a function that applies its arguments to `f` and `g` and `||`s their outputs together.\n * @see R.or\n * @example\n *\n * const gt10 = x => x > 10;\n * const even = x => x % 2 === 0;\n * const f = R.either(gt10, even);\n * f(101); //=> true\n * f(8); //=> true\n *\n * R.either(Maybe.Just(false), Maybe.Just(55)); // => Maybe.Just(55)\n * R.either([false, false, 'a'], [11]) // => [11, 11, \"a\"]\n */\n\nvar either =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function either(f, g) {\n return Object(_internal_isFunction_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(f) ? function _either() {\n return f.apply(this, arguments) || g.apply(this, arguments);\n } : Object(_lift_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_or_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(f, g);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (either);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/either.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/empty.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/empty.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_isArguments_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isArguments.js */ \"./node_modules/ramda/es/internal/_isArguments.js\");\n/* harmony import */ var _internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isArray.js */ \"./node_modules/ramda/es/internal/_isArray.js\");\n/* harmony import */ var _internal_isObject_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_isObject.js */ \"./node_modules/ramda/es/internal/_isObject.js\");\n/* harmony import */ var _internal_isString_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./internal/_isString.js */ \"./node_modules/ramda/es/internal/_isString.js\");\n\n\n\n\n\n/**\n * Returns the empty value of its argument's type. Ramda defines the empty\n * value of Array (`[]`), Object (`{}`), String (`''`), and Arguments. Other\n * types are supported if they define `.empty`,\n * `.prototype.empty` or implement the\n * [FantasyLand Monoid spec](https://github.com/fantasyland/fantasy-land#monoid).\n *\n * Dispatches to the `empty` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> a\n * @param {*} x\n * @return {*}\n * @example\n *\n * R.empty(Just(42)); //=> Nothing()\n * R.empty([1, 2, 3]); //=> []\n * R.empty('unicorns'); //=> ''\n * R.empty({x: 1, y: 2}); //=> {}\n */\n\nvar empty =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function empty(x) {\n return x != null && typeof x['fantasy-land/empty'] === 'function' ? x['fantasy-land/empty']() : x != null && x.constructor != null && typeof x.constructor['fantasy-land/empty'] === 'function' ? x.constructor['fantasy-land/empty']() : x != null && typeof x.empty === 'function' ? x.empty() : x != null && x.constructor != null && typeof x.constructor.empty === 'function' ? x.constructor.empty() : Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(x) ? [] : Object(_internal_isString_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(x) ? '' : Object(_internal_isObject_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(x) ? {} : Object(_internal_isArguments_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(x) ? function () {\n return arguments;\n }() : void 0 // else\n ;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (empty);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/empty.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/endsWith.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/endsWith.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n/* harmony import */ var _takeLast_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./takeLast.js */ \"./node_modules/ramda/es/takeLast.js\");\n\n\n\n/**\n * Checks if a list ends with the provided sublist.\n *\n * Similarly, checks if a string ends with the provided substring.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category List\n * @sig [a] -> [a] -> Boolean\n * @sig String -> String -> Boolean\n * @param {*} suffix\n * @param {*} list\n * @return {Boolean}\n * @see R.startsWith\n * @example\n *\n * R.endsWith('c', 'abc') //=> true\n * R.endsWith('b', 'abc') //=> false\n * R.endsWith(['c'], ['a', 'b', 'c']) //=> true\n * R.endsWith(['b'], ['a', 'b', 'c']) //=> false\n */\n\nvar endsWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (suffix, list) {\n return Object(_equals_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_takeLast_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(suffix.length, list), suffix);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (endsWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/endsWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/eqBy.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/eqBy.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n\n\n/**\n * Takes a function and two values in its domain and returns `true` if the\n * values map to the same value in the codomain; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Relation\n * @sig (a -> b) -> a -> a -> Boolean\n * @param {Function} f\n * @param {*} x\n * @param {*} y\n * @return {Boolean}\n * @example\n *\n * R.eqBy(Math.abs, 5, -5); //=> true\n */\n\nvar eqBy =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function eqBy(f, x, y) {\n return Object(_equals_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(f(x), f(y));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (eqBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/eqBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/eqProps.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/eqProps.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n\n\n/**\n * Reports whether two objects have the same value, in [`R.equals`](#equals)\n * terms, for the specified property. Useful as a curried predicate.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig k -> {k: v} -> {k: v} -> Boolean\n * @param {String} prop The name of the property to compare\n * @param {Object} obj1\n * @param {Object} obj2\n * @return {Boolean}\n *\n * @example\n *\n * const o1 = { a: 1, b: 2, c: 3, d: 4 };\n * const o2 = { a: 10, b: 20, c: 3, d: 40 };\n * R.eqProps('a', o1, o2); //=> false\n * R.eqProps('c', o1, o2); //=> true\n */\n\nvar eqProps =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function eqProps(prop, obj1, obj2) {\n return Object(_equals_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(obj1[prop], obj2[prop]);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (eqProps);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/eqProps.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/equals.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/equals.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_equals.js */ \"./node_modules/ramda/es/internal/_equals.js\");\n\n\n/**\n * Returns `true` if its arguments are equivalent, `false` otherwise. Handles\n * cyclical data structures.\n *\n * Dispatches symmetrically to the `equals` methods of both arguments, if\n * present.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> b -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * R.equals(1, 1); //=> true\n * R.equals(1, '1'); //=> false\n * R.equals([1, 2, 3], [1, 2, 3]); //=> true\n *\n * const a = {}; a.v = a;\n * const b = {}; b.v = b;\n * R.equals(a, b); //=> true\n */\n\nvar equals =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function equals(a, b) {\n return Object(_internal_equals_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(a, b, [], []);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (equals);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/equals.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/evolve.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/evolve.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Creates a new object by recursively evolving a shallow copy of `object`,\n * according to the `transformation` functions. All non-primitive properties\n * are copied by reference.\n *\n * A `transformation` function will not be invoked if its corresponding key\n * does not exist in the evolved object.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {k: (v -> v)} -> {k: v} -> {k: v}\n * @param {Object} transformations The object specifying transformation functions to apply\n * to the object.\n * @param {Object} object The object to be transformed.\n * @return {Object} The transformed object.\n * @example\n *\n * const tomato = {firstName: ' Tomato ', data: {elapsed: 100, remaining: 1400}, id:123};\n * const transformations = {\n * firstName: R.trim,\n * lastName: R.trim, // Will not get invoked.\n * data: {elapsed: R.add(1), remaining: R.add(-1)}\n * };\n * R.evolve(transformations, tomato); //=> {firstName: 'Tomato', data: {elapsed: 101, remaining: 1399}, id:123}\n */\n\nvar evolve =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function evolve(transformations, object) {\n var result = object instanceof Array ? [] : {};\n var transformation, key, type;\n\n for (key in object) {\n transformation = transformations[key];\n type = typeof transformation;\n result[key] = type === 'function' ? transformation(object[key]) : transformation && type === 'object' ? evolve(transformation, object[key]) : object[key];\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (evolve);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/evolve.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/filter.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/filter.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_filter.js */ \"./node_modules/ramda/es/internal/_filter.js\");\n/* harmony import */ var _internal_isObject_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_isObject.js */ \"./node_modules/ramda/es/internal/_isObject.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _internal_xfilter_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./internal/_xfilter.js */ \"./node_modules/ramda/es/internal/_xfilter.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/ramda/es/keys.js\");\n\n\n\n\n\n\n\n/**\n * Takes a predicate and a `Filterable`, and returns a new filterable of the\n * same type containing the members of the given filterable which satisfy the\n * given predicate. Filterable objects include plain objects or any object\n * that has a filter method such as `Array`.\n *\n * Dispatches to the `filter` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array} Filterable\n * @see R.reject, R.transduce, R.addIndex\n * @example\n *\n * const isEven = n => n % 2 === 0;\n *\n * R.filter(isEven, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.filter(isEven, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\n\nvar filter =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['filter'], _internal_xfilter_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"], function (pred, filterable) {\n return Object(_internal_isObject_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(filterable) ? Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(function (acc, key) {\n if (pred(filterable[key])) {\n acc[key] = filterable[key];\n }\n\n return acc;\n }, {}, Object(_keys_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(filterable)) : // else\n Object(_internal_filter_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(pred, filterable);\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (filter);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/filter.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/find.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/find.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xfind_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xfind.js */ \"./node_modules/ramda/es/internal/_xfind.js\");\n\n\n\n/**\n * Returns the first element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Dispatches to the `find` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.find(R.propEq('a', 2))(xs); //=> {a: 2}\n * R.find(R.propEq('a', 4))(xs); //=> undefined\n */\n\nvar find =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['find'], _internal_xfind_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function find(fn, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (fn(list[idx])) {\n return list[idx];\n }\n\n idx += 1;\n }\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (find);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/find.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/findIndex.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/findIndex.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xfindIndex_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xfindIndex.js */ \"./node_modules/ramda/es/internal/_xfindIndex.js\");\n\n\n\n/**\n * Returns the index of the first element of the list which matches the\n * predicate, or `-1` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> Number\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Number} The index of the element found, or `-1`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.findIndex(R.propEq('a', 2))(xs); //=> 1\n * R.findIndex(R.propEq('a', 4))(xs); //=> -1\n */\n\nvar findIndex =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([], _internal_xfindIndex_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function findIndex(fn, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (fn(list[idx])) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (findIndex);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/findIndex.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/findLast.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/findLast.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xfindLast_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xfindLast.js */ \"./node_modules/ramda/es/internal/_xfindLast.js\");\n\n\n\n/**\n * Returns the last element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1, b: 0}, {a:1, b: 1}];\n * R.findLast(R.propEq('a', 1))(xs); //=> {a: 1, b: 1}\n * R.findLast(R.propEq('a', 4))(xs); //=> undefined\n */\n\nvar findLast =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([], _internal_xfindLast_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function findLast(fn, list) {\n var idx = list.length - 1;\n\n while (idx >= 0) {\n if (fn(list[idx])) {\n return list[idx];\n }\n\n idx -= 1;\n }\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (findLast);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/findLast.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/findLastIndex.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/findLastIndex.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xfindLastIndex_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xfindLastIndex.js */ \"./node_modules/ramda/es/internal/_xfindLastIndex.js\");\n\n\n\n/**\n * Returns the index of the last element of the list which matches the\n * predicate, or `-1` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> Number\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Number} The index of the element found, or `-1`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1, b: 0}, {a:1, b: 1}];\n * R.findLastIndex(R.propEq('a', 1))(xs); //=> 1\n * R.findLastIndex(R.propEq('a', 4))(xs); //=> -1\n */\n\nvar findLastIndex =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([], _internal_xfindLastIndex_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function findLastIndex(fn, list) {\n var idx = list.length - 1;\n\n while (idx >= 0) {\n if (fn(list[idx])) {\n return idx;\n }\n\n idx -= 1;\n }\n\n return -1;\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (findLastIndex);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/findLastIndex.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/flatten.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/flatten.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_makeFlat_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_makeFlat.js */ \"./node_modules/ramda/es/internal/_makeFlat.js\");\n\n\n/**\n * Returns a new list by pulling every item out of it (and all its sub-arrays)\n * and putting them in a new array, depth-first.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b]\n * @param {Array} list The array to consider.\n * @return {Array} The flattened list.\n * @see R.unnest\n * @example\n *\n * R.flatten([1, 2, [3, 4], 5, [6, [7, 8, [9, [10, 11], 12]]]]);\n * //=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]\n */\n\nvar flatten =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_makeFlat_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(true));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (flatten);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/flatten.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/flip.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/flip.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n\n\n/**\n * Returns a new function much like the supplied one, except that the first two\n * arguments' order is reversed.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((a, b, c, ...) -> z) -> (b -> a -> c -> ... -> z)\n * @param {Function} fn The function to invoke with its first two parameters reversed.\n * @return {*} The result of invoking `fn` with its first two parameters' order reversed.\n * @example\n *\n * const mergeThree = (a, b, c) => [].concat(a, b, c);\n *\n * mergeThree(1, 2, 3); //=> [1, 2, 3]\n *\n * R.flip(mergeThree)(1, 2, 3); //=> [2, 1, 3]\n * @symb R.flip(f)(a, b, c) = f(b, a, c)\n */\n\nvar flip =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function flip(fn) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(fn.length, function (a, b) {\n var args = Array.prototype.slice.call(arguments, 0);\n args[0] = b;\n args[1] = a;\n return fn.apply(this, args);\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (flip);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/flip.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/forEach.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/forEach.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_checkForMethod.js */ \"./node_modules/ramda/es/internal/_checkForMethod.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Iterate over an input `list`, calling a provided function `fn` for each\n * element in the list.\n *\n * `fn` receives one argument: *(value)*.\n *\n * Note: `R.forEach` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.forEach` method. For more\n * details on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach#Description\n *\n * Also note that, unlike `Array.prototype.forEach`, Ramda's `forEach` returns\n * the original array. In some libraries this function is named `each`.\n *\n * Dispatches to the `forEach` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> *) -> [a] -> [a]\n * @param {Function} fn The function to invoke. Receives one argument, `value`.\n * @param {Array} list The list to iterate over.\n * @return {Array} The original list.\n * @see R.addIndex\n * @example\n *\n * const printXPlusFive = x => console.log(x + 5);\n * R.forEach(printXPlusFive, [1, 2, 3]); //=> [1, 2, 3]\n * // logs 6\n * // logs 7\n * // logs 8\n * @symb R.forEach(f, [a, b, c]) = [a, b, c]\n */\n\nvar forEach =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('forEach', function forEach(fn, list) {\n var len = list.length;\n var idx = 0;\n\n while (idx < len) {\n fn(list[idx]);\n idx += 1;\n }\n\n return list;\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (forEach);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/forEach.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/forEachObjIndexed.js": +/*!****************************************************!*\ + !*** ./node_modules/ramda/es/forEachObjIndexed.js ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/ramda/es/keys.js\");\n\n\n/**\n * Iterate over an input `object`, calling a provided function `fn` for each\n * key and value in the object.\n *\n * `fn` receives three argument: *(value, key, obj)*.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Object\n * @sig ((a, String, StrMap a) -> Any) -> StrMap a -> StrMap a\n * @param {Function} fn The function to invoke. Receives three argument, `value`, `key`, `obj`.\n * @param {Object} obj The object to iterate over.\n * @return {Object} The original object.\n * @example\n *\n * const printKeyConcatValue = (value, key) => console.log(key + ':' + value);\n * R.forEachObjIndexed(printKeyConcatValue, {x: 1, y: 2}); //=> {x: 1, y: 2}\n * // logs x:1\n * // logs y:2\n * @symb R.forEachObjIndexed(f, {x: a, y: b}) = {x: a, y: b}\n */\n\nvar forEachObjIndexed =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function forEachObjIndexed(fn, obj) {\n var keyList = Object(_keys_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(obj);\n var idx = 0;\n\n while (idx < keyList.length) {\n var key = keyList[idx];\n fn(obj[key], key, obj);\n idx += 1;\n }\n\n return obj;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (forEachObjIndexed);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/forEachObjIndexed.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/fromPairs.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/fromPairs.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Creates a new object from a list key-value pairs. If a key appears in\n * multiple pairs, the rightmost pair is included in the object.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [[k,v]] -> {k: v}\n * @param {Array} pairs An array of two-element arrays that will be the keys and values of the output object.\n * @return {Object} The object made by pairing up `keys` and `values`.\n * @see R.toPairs, R.pair\n * @example\n *\n * R.fromPairs([['a', 1], ['b', 2], ['c', 3]]); //=> {a: 1, b: 2, c: 3}\n */\n\nvar fromPairs =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function fromPairs(pairs) {\n var result = {};\n var idx = 0;\n\n while (idx < pairs.length) {\n result[pairs[idx][0]] = pairs[idx][1];\n idx += 1;\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (fromPairs);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/fromPairs.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/groupBy.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/groupBy.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_checkForMethod.js */ \"./node_modules/ramda/es/internal/_checkForMethod.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _reduceBy_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reduceBy.js */ \"./node_modules/ramda/es/reduceBy.js\");\n\n\n\n/**\n * Splits a list into sub-lists stored in an object, based on the result of\n * calling a String-returning function on each element, and grouping the\n * results according to values returned.\n *\n * Dispatches to the `groupBy` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> String) -> [a] -> {String: [a]}\n * @param {Function} fn Function :: a -> String\n * @param {Array} list The array to group\n * @return {Object} An object with the output of `fn` for keys, mapped to arrays of elements\n * that produced that key when passed to `fn`.\n * @see R.reduceBy, R.transduce\n * @example\n *\n * const byGrade = R.groupBy(function(student) {\n * const score = student.score;\n * return score < 65 ? 'F' :\n * score < 70 ? 'D' :\n * score < 80 ? 'C' :\n * score < 90 ? 'B' : 'A';\n * });\n * const students = [{name: 'Abby', score: 84},\n * {name: 'Eddy', score: 58},\n * // ...\n * {name: 'Jack', score: 69}];\n * byGrade(students);\n * // {\n * // 'A': [{name: 'Dianne', score: 99}],\n * // 'B': [{name: 'Abby', score: 84}]\n * // // ...,\n * // 'F': [{name: 'Eddy', score: 58}]\n * // }\n */\n\nvar groupBy =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('groupBy',\n/*#__PURE__*/\nObject(_reduceBy_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(function (acc, item) {\n if (acc == null) {\n acc = [];\n }\n\n acc.push(item);\n return acc;\n}, null)));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (groupBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/groupBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/groupWith.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/groupWith.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Takes a list and returns a list of lists where each sublist's elements are\n * all satisfied pairwise comparison according to the provided function.\n * Only adjacent elements are passed to the comparison function.\n *\n * @func\n * @memberOf R\n * @since v0.21.0\n * @category List\n * @sig ((a, a) → Boolean) → [a] → [[a]]\n * @param {Function} fn Function for determining whether two given (adjacent)\n * elements should be in the same group\n * @param {Array} list The array to group. Also accepts a string, which will be\n * treated as a list of characters.\n * @return {List} A list that contains sublists of elements,\n * whose concatenations are equal to the original list.\n * @example\n *\n * R.groupWith(R.equals, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0], [1, 1], [2], [3], [5], [8], [13], [21]]\n *\n * R.groupWith((a, b) => a + 1 === b, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0, 1], [1, 2, 3], [5], [8], [13], [21]]\n *\n * R.groupWith((a, b) => a % 2 === b % 2, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0], [1, 1], [2], [3, 5], [8], [13, 21]]\n *\n * R.groupWith(R.eqBy(isVowel), 'aestiou')\n * //=> ['ae', 'st', 'iou']\n */\n\nvar groupWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (fn, list) {\n var res = [];\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n var nextidx = idx + 1;\n\n while (nextidx < len && fn(list[nextidx - 1], list[nextidx])) {\n nextidx += 1;\n }\n\n res.push(list.slice(idx, nextidx));\n idx = nextidx;\n }\n\n return res;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (groupWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/groupWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/gt.js": +/*!*************************************!*\ + !*** ./node_modules/ramda/es/gt.js ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns `true` if the first argument is greater than the second; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @see R.lt\n * @example\n *\n * R.gt(2, 1); //=> true\n * R.gt(2, 2); //=> false\n * R.gt(2, 3); //=> false\n * R.gt('a', 'z'); //=> false\n * R.gt('z', 'a'); //=> true\n */\n\nvar gt =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function gt(a, b) {\n return a > b;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (gt);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/gt.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/gte.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/gte.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns `true` if the first argument is greater than or equal to the second;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {Number} a\n * @param {Number} b\n * @return {Boolean}\n * @see R.lte\n * @example\n *\n * R.gte(2, 1); //=> true\n * R.gte(2, 2); //=> true\n * R.gte(2, 3); //=> false\n * R.gte('a', 'z'); //=> false\n * R.gte('z', 'a'); //=> true\n */\n\nvar gte =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function gte(a, b) {\n return a >= b;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (gte);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/gte.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/has.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/has.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _hasPath_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hasPath.js */ \"./node_modules/ramda/es/hasPath.js\");\n\n\n/**\n * Returns whether or not an object has an own property with the specified name\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Object\n * @sig s -> {s: x} -> Boolean\n * @param {String} prop The name of the property to check for.\n * @param {Object} obj The object to query.\n * @return {Boolean} Whether the property exists.\n * @example\n *\n * const hasName = R.has('name');\n * hasName({name: 'alice'}); //=> true\n * hasName({name: 'bob'}); //=> true\n * hasName({}); //=> false\n *\n * const point = {x: 0, y: 0};\n * const pointHas = R.has(R.__, point);\n * pointHas('x'); //=> true\n * pointHas('y'); //=> true\n * pointHas('z'); //=> false\n */\n\nvar has =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function has(prop, obj) {\n return Object(_hasPath_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([prop], obj);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (has);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/has.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/hasIn.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/hasIn.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns whether or not an object or its prototype chain has a property with\n * the specified name\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Object\n * @sig s -> {s: x} -> Boolean\n * @param {String} prop The name of the property to check for.\n * @param {Object} obj The object to query.\n * @return {Boolean} Whether the property exists.\n * @example\n *\n * function Rectangle(width, height) {\n * this.width = width;\n * this.height = height;\n * }\n * Rectangle.prototype.area = function() {\n * return this.width * this.height;\n * };\n *\n * const square = new Rectangle(2, 2);\n * R.hasIn('width', square); //=> true\n * R.hasIn('area', square); //=> true\n */\n\nvar hasIn =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function hasIn(prop, obj) {\n return prop in obj;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (hasIn);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/hasIn.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/hasPath.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/hasPath.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n/* harmony import */ var _isNil_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isNil.js */ \"./node_modules/ramda/es/isNil.js\");\n\n\n\n/**\n * Returns whether or not a path exists in an object. Only the object's\n * own properties are checked.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {a} -> Boolean\n * @param {Array} path The path to use.\n * @param {Object} obj The object to check the path in.\n * @return {Boolean} Whether the path exists.\n * @see R.has\n * @example\n *\n * R.hasPath(['a', 'b'], {a: {b: 2}}); // => true\n * R.hasPath(['a', 'b'], {a: {b: undefined}}); // => true\n * R.hasPath(['a', 'b'], {a: {c: 2}}); // => false\n * R.hasPath(['a', 'b'], {}); // => false\n */\n\nvar hasPath =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function hasPath(_path, obj) {\n if (_path.length === 0 || Object(_isNil_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(obj)) {\n return false;\n }\n\n var val = obj;\n var idx = 0;\n\n while (idx < _path.length) {\n if (!Object(_isNil_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(val) && Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_path[idx], val)) {\n val = val[_path[idx]];\n idx += 1;\n } else {\n return false;\n }\n }\n\n return true;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (hasPath);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/hasPath.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/head.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/head.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nth_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./nth.js */ \"./node_modules/ramda/es/nth.js\");\n\n/**\n * Returns the first element of the given list or string. In some libraries\n * this function is named `first`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {Array|String} list\n * @return {*}\n * @see R.tail, R.init, R.last\n * @example\n *\n * R.head(['fi', 'fo', 'fum']); //=> 'fi'\n * R.head([]); //=> undefined\n *\n * R.head('abc'); //=> 'a'\n * R.head(''); //=> ''\n */\n\nvar head =\n/*#__PURE__*/\nObject(_nth_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(0);\n/* harmony default export */ __webpack_exports__[\"default\"] = (head);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/head.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/identical.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/identical.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_objectIs_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_objectIs.js */ \"./node_modules/ramda/es/internal/_objectIs.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Returns true if its arguments are identical, false otherwise. Values are\n * identical if they reference the same memory. `NaN` is identical to `NaN`;\n * `0` and `-0` are not identical.\n *\n * Note this is merely a curried version of ES6 `Object.is`.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * const o = {};\n * R.identical(o, o); //=> true\n * R.identical(1, 1); //=> true\n * R.identical(1, '1'); //=> false\n * R.identical([], []); //=> false\n * R.identical(0, -0); //=> false\n * R.identical(NaN, NaN); //=> true\n */\n\nvar identical =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_internal_objectIs_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (identical);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/identical.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/identity.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/identity.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_identity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_identity.js */ \"./node_modules/ramda/es/internal/_identity.js\");\n\n\n/**\n * A function that does nothing but return the parameter supplied to it. Good\n * as a default or placeholder function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> a\n * @param {*} x The value to return.\n * @return {*} The input value, `x`.\n * @example\n *\n * R.identity(1); //=> 1\n *\n * const obj = {};\n * R.identity(obj) === obj; //=> true\n * @symb R.identity(a) = a\n */\n\nvar identity =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_internal_identity_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (identity);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/identity.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/ifElse.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/ifElse.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n\n\n/**\n * Creates a function that will process either the `onTrue` or the `onFalse`\n * function depending upon the result of the `condition` predicate.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> *) -> (*... -> *) -> (*... -> *)\n * @param {Function} condition A predicate function\n * @param {Function} onTrue A function to invoke when the `condition` evaluates to a truthy value.\n * @param {Function} onFalse A function to invoke when the `condition` evaluates to a falsy value.\n * @return {Function} A new function that will process either the `onTrue` or the `onFalse`\n * function depending upon the result of the `condition` predicate.\n * @see R.unless, R.when, R.cond\n * @example\n *\n * const incCount = R.ifElse(\n * R.has('count'),\n * R.over(R.lensProp('count'), R.inc),\n * R.assoc('count', 1)\n * );\n * incCount({}); //=> { count: 1 }\n * incCount({ count: 1 }); //=> { count: 2 }\n */\n\nvar ifElse =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function ifElse(condition, onTrue, onFalse) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Math.max(condition.length, onTrue.length, onFalse.length), function _ifElse() {\n return condition.apply(this, arguments) ? onTrue.apply(this, arguments) : onFalse.apply(this, arguments);\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ifElse);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/ifElse.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/inc.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/inc.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _add_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./add.js */ \"./node_modules/ramda/es/add.js\");\n\n/**\n * Increments its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number} n + 1\n * @see R.dec\n * @example\n *\n * R.inc(42); //=> 43\n */\n\nvar inc =\n/*#__PURE__*/\nObject(_add_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(1);\n/* harmony default export */ __webpack_exports__[\"default\"] = (inc);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/inc.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/includes.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/includes.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_includes.js */ \"./node_modules/ramda/es/internal/_includes.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Returns `true` if the specified value is equal, in [`R.equals`](#equals)\n * terms, to at least one element of the given list; `false` otherwise.\n * Works also with strings.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category List\n * @sig a -> [a] -> Boolean\n * @param {Object} a The item to compare against.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if an equivalent item is in the list, `false` otherwise.\n * @see R.any\n * @example\n *\n * R.includes(3, [1, 2, 3]); //=> true\n * R.includes(4, [1, 2, 3]); //=> false\n * R.includes({ name: 'Fred' }, [{ name: 'Fred' }]); //=> true\n * R.includes([42], [[42]]); //=> true\n * R.includes('ba', 'banana'); //=>true\n */\n\nvar includes =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_internal_includes_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (includes);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/includes.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/index.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/index.js ***! + \****************************************/ +/*! exports provided: F, T, __, add, addIndex, adjust, all, allPass, always, and, any, anyPass, ap, aperture, append, apply, applySpec, applyTo, ascend, assoc, assocPath, binary, bind, both, call, chain, clamp, clone, comparator, complement, compose, composeK, composeP, composeWith, concat, cond, construct, constructN, contains, converge, countBy, curry, curryN, dec, defaultTo, descend, difference, differenceWith, dissoc, dissocPath, divide, drop, dropLast, dropLastWhile, dropRepeats, dropRepeatsWith, dropWhile, either, empty, endsWith, eqBy, eqProps, equals, evolve, filter, find, findIndex, findLast, findLastIndex, flatten, flip, forEach, forEachObjIndexed, fromPairs, groupBy, groupWith, gt, gte, has, hasIn, hasPath, head, identical, identity, ifElse, inc, includes, indexBy, indexOf, init, innerJoin, insert, insertAll, intersection, intersperse, into, invert, invertObj, invoker, is, isEmpty, isNil, join, juxt, keys, keysIn, last, lastIndexOf, length, lens, lensIndex, lensPath, lensProp, lift, liftN, lt, lte, map, mapAccum, mapAccumRight, mapObjIndexed, match, mathMod, max, maxBy, mean, median, memoizeWith, merge, mergeAll, mergeDeepLeft, mergeDeepRight, mergeDeepWith, mergeDeepWithKey, mergeLeft, mergeRight, mergeWith, mergeWithKey, min, minBy, modulo, move, multiply, nAry, negate, none, not, nth, nthArg, o, objOf, of, omit, once, or, otherwise, over, pair, partial, partialRight, partition, path, paths, pathEq, pathOr, pathSatisfies, pick, pickAll, pickBy, pipe, pipeK, pipeP, pipeWith, pluck, prepend, product, project, prop, propEq, propIs, propOr, propSatisfies, props, range, reduce, reduceBy, reduceRight, reduceWhile, reduced, reject, remove, repeat, replace, reverse, scan, sequence, set, slice, sort, sortBy, sortWith, split, splitAt, splitEvery, splitWhen, startsWith, subtract, sum, symmetricDifference, symmetricDifferenceWith, tail, take, takeLast, takeLastWhile, takeWhile, tap, test, andThen, times, toLower, toPairs, toPairsIn, toString, toUpper, transduce, transpose, traverse, trim, tryCatch, type, unapply, unary, uncurryN, unfold, union, unionWith, uniq, uniqBy, uniqWith, unless, unnest, until, update, useWith, values, valuesIn, view, when, where, whereEq, without, xor, xprod, zip, zipObj, zipWith, thunkify */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _F_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./F.js */ \"./node_modules/ramda/es/F.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"F\", function() { return _F_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _T_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./T.js */ \"./node_modules/ramda/es/T.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"T\", function() { return _T_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./__.js */ \"./node_modules/ramda/es/__.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"__\", function() { return _js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _add_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./add.js */ \"./node_modules/ramda/es/add.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"add\", function() { return _add_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _addIndex_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./addIndex.js */ \"./node_modules/ramda/es/addIndex.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"addIndex\", function() { return _addIndex_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _adjust_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./adjust.js */ \"./node_modules/ramda/es/adjust.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"adjust\", function() { return _adjust_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _all_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./all.js */ \"./node_modules/ramda/es/all.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"all\", function() { return _all_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony import */ var _allPass_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./allPass.js */ \"./node_modules/ramda/es/allPass.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"allPass\", function() { return _allPass_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n/* harmony import */ var _always_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./always.js */ \"./node_modules/ramda/es/always.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"always\", function() { return _always_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* harmony import */ var _and_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./and.js */ \"./node_modules/ramda/es/and.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"and\", function() { return _and_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/* harmony import */ var _any_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./any.js */ \"./node_modules/ramda/es/any.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"any\", function() { return _any_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n\n/* harmony import */ var _anyPass_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./anyPass.js */ \"./node_modules/ramda/es/anyPass.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"anyPass\", function() { return _anyPass_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; });\n\n/* harmony import */ var _ap_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./ap.js */ \"./node_modules/ramda/es/ap.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ap\", function() { return _ap_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"]; });\n\n/* harmony import */ var _aperture_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./aperture.js */ \"./node_modules/ramda/es/aperture.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"aperture\", function() { return _aperture_js__WEBPACK_IMPORTED_MODULE_13__[\"default\"]; });\n\n/* harmony import */ var _append_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./append.js */ \"./node_modules/ramda/es/append.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"append\", function() { return _append_js__WEBPACK_IMPORTED_MODULE_14__[\"default\"]; });\n\n/* harmony import */ var _apply_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./apply.js */ \"./node_modules/ramda/es/apply.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"apply\", function() { return _apply_js__WEBPACK_IMPORTED_MODULE_15__[\"default\"]; });\n\n/* harmony import */ var _applySpec_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./applySpec.js */ \"./node_modules/ramda/es/applySpec.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applySpec\", function() { return _applySpec_js__WEBPACK_IMPORTED_MODULE_16__[\"default\"]; });\n\n/* harmony import */ var _applyTo_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./applyTo.js */ \"./node_modules/ramda/es/applyTo.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyTo\", function() { return _applyTo_js__WEBPACK_IMPORTED_MODULE_17__[\"default\"]; });\n\n/* harmony import */ var _ascend_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./ascend.js */ \"./node_modules/ramda/es/ascend.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ascend\", function() { return _ascend_js__WEBPACK_IMPORTED_MODULE_18__[\"default\"]; });\n\n/* harmony import */ var _assoc_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./assoc.js */ \"./node_modules/ramda/es/assoc.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"assoc\", function() { return _assoc_js__WEBPACK_IMPORTED_MODULE_19__[\"default\"]; });\n\n/* harmony import */ var _assocPath_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./assocPath.js */ \"./node_modules/ramda/es/assocPath.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"assocPath\", function() { return _assocPath_js__WEBPACK_IMPORTED_MODULE_20__[\"default\"]; });\n\n/* harmony import */ var _binary_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./binary.js */ \"./node_modules/ramda/es/binary.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"binary\", function() { return _binary_js__WEBPACK_IMPORTED_MODULE_21__[\"default\"]; });\n\n/* harmony import */ var _bind_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./bind.js */ \"./node_modules/ramda/es/bind.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bind\", function() { return _bind_js__WEBPACK_IMPORTED_MODULE_22__[\"default\"]; });\n\n/* harmony import */ var _both_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./both.js */ \"./node_modules/ramda/es/both.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"both\", function() { return _both_js__WEBPACK_IMPORTED_MODULE_23__[\"default\"]; });\n\n/* harmony import */ var _call_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./call.js */ \"./node_modules/ramda/es/call.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"call\", function() { return _call_js__WEBPACK_IMPORTED_MODULE_24__[\"default\"]; });\n\n/* harmony import */ var _chain_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./chain.js */ \"./node_modules/ramda/es/chain.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"chain\", function() { return _chain_js__WEBPACK_IMPORTED_MODULE_25__[\"default\"]; });\n\n/* harmony import */ var _clamp_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./clamp.js */ \"./node_modules/ramda/es/clamp.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"clamp\", function() { return _clamp_js__WEBPACK_IMPORTED_MODULE_26__[\"default\"]; });\n\n/* harmony import */ var _clone_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./clone.js */ \"./node_modules/ramda/es/clone.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"clone\", function() { return _clone_js__WEBPACK_IMPORTED_MODULE_27__[\"default\"]; });\n\n/* harmony import */ var _comparator_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./comparator.js */ \"./node_modules/ramda/es/comparator.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"comparator\", function() { return _comparator_js__WEBPACK_IMPORTED_MODULE_28__[\"default\"]; });\n\n/* harmony import */ var _complement_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./complement.js */ \"./node_modules/ramda/es/complement.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"complement\", function() { return _complement_js__WEBPACK_IMPORTED_MODULE_29__[\"default\"]; });\n\n/* harmony import */ var _compose_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./compose.js */ \"./node_modules/ramda/es/compose.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"compose\", function() { return _compose_js__WEBPACK_IMPORTED_MODULE_30__[\"default\"]; });\n\n/* harmony import */ var _composeK_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./composeK.js */ \"./node_modules/ramda/es/composeK.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"composeK\", function() { return _composeK_js__WEBPACK_IMPORTED_MODULE_31__[\"default\"]; });\n\n/* harmony import */ var _composeP_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./composeP.js */ \"./node_modules/ramda/es/composeP.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"composeP\", function() { return _composeP_js__WEBPACK_IMPORTED_MODULE_32__[\"default\"]; });\n\n/* harmony import */ var _composeWith_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./composeWith.js */ \"./node_modules/ramda/es/composeWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"composeWith\", function() { return _composeWith_js__WEBPACK_IMPORTED_MODULE_33__[\"default\"]; });\n\n/* harmony import */ var _concat_js__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./concat.js */ \"./node_modules/ramda/es/concat.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"concat\", function() { return _concat_js__WEBPACK_IMPORTED_MODULE_34__[\"default\"]; });\n\n/* harmony import */ var _cond_js__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./cond.js */ \"./node_modules/ramda/es/cond.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cond\", function() { return _cond_js__WEBPACK_IMPORTED_MODULE_35__[\"default\"]; });\n\n/* harmony import */ var _construct_js__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./construct.js */ \"./node_modules/ramda/es/construct.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"construct\", function() { return _construct_js__WEBPACK_IMPORTED_MODULE_36__[\"default\"]; });\n\n/* harmony import */ var _constructN_js__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./constructN.js */ \"./node_modules/ramda/es/constructN.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"constructN\", function() { return _constructN_js__WEBPACK_IMPORTED_MODULE_37__[\"default\"]; });\n\n/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./contains.js */ \"./node_modules/ramda/es/contains.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"contains\", function() { return _contains_js__WEBPACK_IMPORTED_MODULE_38__[\"default\"]; });\n\n/* harmony import */ var _converge_js__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./converge.js */ \"./node_modules/ramda/es/converge.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"converge\", function() { return _converge_js__WEBPACK_IMPORTED_MODULE_39__[\"default\"]; });\n\n/* harmony import */ var _countBy_js__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./countBy.js */ \"./node_modules/ramda/es/countBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"countBy\", function() { return _countBy_js__WEBPACK_IMPORTED_MODULE_40__[\"default\"]; });\n\n/* harmony import */ var _curry_js__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./curry.js */ \"./node_modules/ramda/es/curry.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"curry\", function() { return _curry_js__WEBPACK_IMPORTED_MODULE_41__[\"default\"]; });\n\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"curryN\", function() { return _curryN_js__WEBPACK_IMPORTED_MODULE_42__[\"default\"]; });\n\n/* harmony import */ var _dec_js__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./dec.js */ \"./node_modules/ramda/es/dec.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dec\", function() { return _dec_js__WEBPACK_IMPORTED_MODULE_43__[\"default\"]; });\n\n/* harmony import */ var _defaultTo_js__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./defaultTo.js */ \"./node_modules/ramda/es/defaultTo.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"defaultTo\", function() { return _defaultTo_js__WEBPACK_IMPORTED_MODULE_44__[\"default\"]; });\n\n/* harmony import */ var _descend_js__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./descend.js */ \"./node_modules/ramda/es/descend.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"descend\", function() { return _descend_js__WEBPACK_IMPORTED_MODULE_45__[\"default\"]; });\n\n/* harmony import */ var _difference_js__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./difference.js */ \"./node_modules/ramda/es/difference.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"difference\", function() { return _difference_js__WEBPACK_IMPORTED_MODULE_46__[\"default\"]; });\n\n/* harmony import */ var _differenceWith_js__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./differenceWith.js */ \"./node_modules/ramda/es/differenceWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"differenceWith\", function() { return _differenceWith_js__WEBPACK_IMPORTED_MODULE_47__[\"default\"]; });\n\n/* harmony import */ var _dissoc_js__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./dissoc.js */ \"./node_modules/ramda/es/dissoc.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dissoc\", function() { return _dissoc_js__WEBPACK_IMPORTED_MODULE_48__[\"default\"]; });\n\n/* harmony import */ var _dissocPath_js__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./dissocPath.js */ \"./node_modules/ramda/es/dissocPath.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dissocPath\", function() { return _dissocPath_js__WEBPACK_IMPORTED_MODULE_49__[\"default\"]; });\n\n/* harmony import */ var _divide_js__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./divide.js */ \"./node_modules/ramda/es/divide.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"divide\", function() { return _divide_js__WEBPACK_IMPORTED_MODULE_50__[\"default\"]; });\n\n/* harmony import */ var _drop_js__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./drop.js */ \"./node_modules/ramda/es/drop.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"drop\", function() { return _drop_js__WEBPACK_IMPORTED_MODULE_51__[\"default\"]; });\n\n/* harmony import */ var _dropLast_js__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./dropLast.js */ \"./node_modules/ramda/es/dropLast.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dropLast\", function() { return _dropLast_js__WEBPACK_IMPORTED_MODULE_52__[\"default\"]; });\n\n/* harmony import */ var _dropLastWhile_js__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./dropLastWhile.js */ \"./node_modules/ramda/es/dropLastWhile.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dropLastWhile\", function() { return _dropLastWhile_js__WEBPACK_IMPORTED_MODULE_53__[\"default\"]; });\n\n/* harmony import */ var _dropRepeats_js__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./dropRepeats.js */ \"./node_modules/ramda/es/dropRepeats.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dropRepeats\", function() { return _dropRepeats_js__WEBPACK_IMPORTED_MODULE_54__[\"default\"]; });\n\n/* harmony import */ var _dropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./dropRepeatsWith.js */ \"./node_modules/ramda/es/dropRepeatsWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dropRepeatsWith\", function() { return _dropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_55__[\"default\"]; });\n\n/* harmony import */ var _dropWhile_js__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./dropWhile.js */ \"./node_modules/ramda/es/dropWhile.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dropWhile\", function() { return _dropWhile_js__WEBPACK_IMPORTED_MODULE_56__[\"default\"]; });\n\n/* harmony import */ var _either_js__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./either.js */ \"./node_modules/ramda/es/either.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"either\", function() { return _either_js__WEBPACK_IMPORTED_MODULE_57__[\"default\"]; });\n\n/* harmony import */ var _empty_js__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./empty.js */ \"./node_modules/ramda/es/empty.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"empty\", function() { return _empty_js__WEBPACK_IMPORTED_MODULE_58__[\"default\"]; });\n\n/* harmony import */ var _endsWith_js__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./endsWith.js */ \"./node_modules/ramda/es/endsWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"endsWith\", function() { return _endsWith_js__WEBPACK_IMPORTED_MODULE_59__[\"default\"]; });\n\n/* harmony import */ var _eqBy_js__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./eqBy.js */ \"./node_modules/ramda/es/eqBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"eqBy\", function() { return _eqBy_js__WEBPACK_IMPORTED_MODULE_60__[\"default\"]; });\n\n/* harmony import */ var _eqProps_js__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ./eqProps.js */ \"./node_modules/ramda/es/eqProps.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"eqProps\", function() { return _eqProps_js__WEBPACK_IMPORTED_MODULE_61__[\"default\"]; });\n\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"equals\", function() { return _equals_js__WEBPACK_IMPORTED_MODULE_62__[\"default\"]; });\n\n/* harmony import */ var _evolve_js__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ./evolve.js */ \"./node_modules/ramda/es/evolve.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"evolve\", function() { return _evolve_js__WEBPACK_IMPORTED_MODULE_63__[\"default\"]; });\n\n/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./filter.js */ \"./node_modules/ramda/es/filter.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"filter\", function() { return _filter_js__WEBPACK_IMPORTED_MODULE_64__[\"default\"]; });\n\n/* harmony import */ var _find_js__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./find.js */ \"./node_modules/ramda/es/find.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"find\", function() { return _find_js__WEBPACK_IMPORTED_MODULE_65__[\"default\"]; });\n\n/* harmony import */ var _findIndex_js__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./findIndex.js */ \"./node_modules/ramda/es/findIndex.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"findIndex\", function() { return _findIndex_js__WEBPACK_IMPORTED_MODULE_66__[\"default\"]; });\n\n/* harmony import */ var _findLast_js__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./findLast.js */ \"./node_modules/ramda/es/findLast.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"findLast\", function() { return _findLast_js__WEBPACK_IMPORTED_MODULE_67__[\"default\"]; });\n\n/* harmony import */ var _findLastIndex_js__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./findLastIndex.js */ \"./node_modules/ramda/es/findLastIndex.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"findLastIndex\", function() { return _findLastIndex_js__WEBPACK_IMPORTED_MODULE_68__[\"default\"]; });\n\n/* harmony import */ var _flatten_js__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./flatten.js */ \"./node_modules/ramda/es/flatten.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"flatten\", function() { return _flatten_js__WEBPACK_IMPORTED_MODULE_69__[\"default\"]; });\n\n/* harmony import */ var _flip_js__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./flip.js */ \"./node_modules/ramda/es/flip.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"flip\", function() { return _flip_js__WEBPACK_IMPORTED_MODULE_70__[\"default\"]; });\n\n/* harmony import */ var _forEach_js__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./forEach.js */ \"./node_modules/ramda/es/forEach.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"forEach\", function() { return _forEach_js__WEBPACK_IMPORTED_MODULE_71__[\"default\"]; });\n\n/* harmony import */ var _forEachObjIndexed_js__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ./forEachObjIndexed.js */ \"./node_modules/ramda/es/forEachObjIndexed.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"forEachObjIndexed\", function() { return _forEachObjIndexed_js__WEBPACK_IMPORTED_MODULE_72__[\"default\"]; });\n\n/* harmony import */ var _fromPairs_js__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ./fromPairs.js */ \"./node_modules/ramda/es/fromPairs.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"fromPairs\", function() { return _fromPairs_js__WEBPACK_IMPORTED_MODULE_73__[\"default\"]; });\n\n/* harmony import */ var _groupBy_js__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ./groupBy.js */ \"./node_modules/ramda/es/groupBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"groupBy\", function() { return _groupBy_js__WEBPACK_IMPORTED_MODULE_74__[\"default\"]; });\n\n/* harmony import */ var _groupWith_js__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ./groupWith.js */ \"./node_modules/ramda/es/groupWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"groupWith\", function() { return _groupWith_js__WEBPACK_IMPORTED_MODULE_75__[\"default\"]; });\n\n/* harmony import */ var _gt_js__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ./gt.js */ \"./node_modules/ramda/es/gt.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"gt\", function() { return _gt_js__WEBPACK_IMPORTED_MODULE_76__[\"default\"]; });\n\n/* harmony import */ var _gte_js__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ./gte.js */ \"./node_modules/ramda/es/gte.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"gte\", function() { return _gte_js__WEBPACK_IMPORTED_MODULE_77__[\"default\"]; });\n\n/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ./has.js */ \"./node_modules/ramda/es/has.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"has\", function() { return _has_js__WEBPACK_IMPORTED_MODULE_78__[\"default\"]; });\n\n/* harmony import */ var _hasIn_js__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ./hasIn.js */ \"./node_modules/ramda/es/hasIn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasIn\", function() { return _hasIn_js__WEBPACK_IMPORTED_MODULE_79__[\"default\"]; });\n\n/* harmony import */ var _hasPath_js__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ./hasPath.js */ \"./node_modules/ramda/es/hasPath.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasPath\", function() { return _hasPath_js__WEBPACK_IMPORTED_MODULE_80__[\"default\"]; });\n\n/* harmony import */ var _head_js__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ./head.js */ \"./node_modules/ramda/es/head.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"head\", function() { return _head_js__WEBPACK_IMPORTED_MODULE_81__[\"default\"]; });\n\n/* harmony import */ var _identical_js__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ./identical.js */ \"./node_modules/ramda/es/identical.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"identical\", function() { return _identical_js__WEBPACK_IMPORTED_MODULE_82__[\"default\"]; });\n\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ./identity.js */ \"./node_modules/ramda/es/identity.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"identity\", function() { return _identity_js__WEBPACK_IMPORTED_MODULE_83__[\"default\"]; });\n\n/* harmony import */ var _ifElse_js__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ./ifElse.js */ \"./node_modules/ramda/es/ifElse.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ifElse\", function() { return _ifElse_js__WEBPACK_IMPORTED_MODULE_84__[\"default\"]; });\n\n/* harmony import */ var _inc_js__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ./inc.js */ \"./node_modules/ramda/es/inc.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"inc\", function() { return _inc_js__WEBPACK_IMPORTED_MODULE_85__[\"default\"]; });\n\n/* harmony import */ var _includes_js__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ./includes.js */ \"./node_modules/ramda/es/includes.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"includes\", function() { return _includes_js__WEBPACK_IMPORTED_MODULE_86__[\"default\"]; });\n\n/* harmony import */ var _indexBy_js__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ./indexBy.js */ \"./node_modules/ramda/es/indexBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"indexBy\", function() { return _indexBy_js__WEBPACK_IMPORTED_MODULE_87__[\"default\"]; });\n\n/* harmony import */ var _indexOf_js__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ./indexOf.js */ \"./node_modules/ramda/es/indexOf.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"indexOf\", function() { return _indexOf_js__WEBPACK_IMPORTED_MODULE_88__[\"default\"]; });\n\n/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ./init.js */ \"./node_modules/ramda/es/init.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"init\", function() { return _init_js__WEBPACK_IMPORTED_MODULE_89__[\"default\"]; });\n\n/* harmony import */ var _innerJoin_js__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ./innerJoin.js */ \"./node_modules/ramda/es/innerJoin.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"innerJoin\", function() { return _innerJoin_js__WEBPACK_IMPORTED_MODULE_90__[\"default\"]; });\n\n/* harmony import */ var _insert_js__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ./insert.js */ \"./node_modules/ramda/es/insert.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"insert\", function() { return _insert_js__WEBPACK_IMPORTED_MODULE_91__[\"default\"]; });\n\n/* harmony import */ var _insertAll_js__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ./insertAll.js */ \"./node_modules/ramda/es/insertAll.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"insertAll\", function() { return _insertAll_js__WEBPACK_IMPORTED_MODULE_92__[\"default\"]; });\n\n/* harmony import */ var _intersection_js__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ./intersection.js */ \"./node_modules/ramda/es/intersection.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"intersection\", function() { return _intersection_js__WEBPACK_IMPORTED_MODULE_93__[\"default\"]; });\n\n/* harmony import */ var _intersperse_js__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ./intersperse.js */ \"./node_modules/ramda/es/intersperse.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"intersperse\", function() { return _intersperse_js__WEBPACK_IMPORTED_MODULE_94__[\"default\"]; });\n\n/* harmony import */ var _into_js__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ./into.js */ \"./node_modules/ramda/es/into.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"into\", function() { return _into_js__WEBPACK_IMPORTED_MODULE_95__[\"default\"]; });\n\n/* harmony import */ var _invert_js__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ./invert.js */ \"./node_modules/ramda/es/invert.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"invert\", function() { return _invert_js__WEBPACK_IMPORTED_MODULE_96__[\"default\"]; });\n\n/* harmony import */ var _invertObj_js__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(/*! ./invertObj.js */ \"./node_modules/ramda/es/invertObj.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"invertObj\", function() { return _invertObj_js__WEBPACK_IMPORTED_MODULE_97__[\"default\"]; });\n\n/* harmony import */ var _invoker_js__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(/*! ./invoker.js */ \"./node_modules/ramda/es/invoker.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"invoker\", function() { return _invoker_js__WEBPACK_IMPORTED_MODULE_98__[\"default\"]; });\n\n/* harmony import */ var _is_js__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(/*! ./is.js */ \"./node_modules/ramda/es/is.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"is\", function() { return _is_js__WEBPACK_IMPORTED_MODULE_99__[\"default\"]; });\n\n/* harmony import */ var _isEmpty_js__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(/*! ./isEmpty.js */ \"./node_modules/ramda/es/isEmpty.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isEmpty\", function() { return _isEmpty_js__WEBPACK_IMPORTED_MODULE_100__[\"default\"]; });\n\n/* harmony import */ var _isNil_js__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(/*! ./isNil.js */ \"./node_modules/ramda/es/isNil.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isNil\", function() { return _isNil_js__WEBPACK_IMPORTED_MODULE_101__[\"default\"]; });\n\n/* harmony import */ var _join_js__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(/*! ./join.js */ \"./node_modules/ramda/es/join.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"join\", function() { return _join_js__WEBPACK_IMPORTED_MODULE_102__[\"default\"]; });\n\n/* harmony import */ var _juxt_js__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(/*! ./juxt.js */ \"./node_modules/ramda/es/juxt.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"juxt\", function() { return _juxt_js__WEBPACK_IMPORTED_MODULE_103__[\"default\"]; });\n\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/ramda/es/keys.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"keys\", function() { return _keys_js__WEBPACK_IMPORTED_MODULE_104__[\"default\"]; });\n\n/* harmony import */ var _keysIn_js__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(/*! ./keysIn.js */ \"./node_modules/ramda/es/keysIn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"keysIn\", function() { return _keysIn_js__WEBPACK_IMPORTED_MODULE_105__[\"default\"]; });\n\n/* harmony import */ var _last_js__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(/*! ./last.js */ \"./node_modules/ramda/es/last.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"last\", function() { return _last_js__WEBPACK_IMPORTED_MODULE_106__[\"default\"]; });\n\n/* harmony import */ var _lastIndexOf_js__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(/*! ./lastIndexOf.js */ \"./node_modules/ramda/es/lastIndexOf.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lastIndexOf\", function() { return _lastIndexOf_js__WEBPACK_IMPORTED_MODULE_107__[\"default\"]; });\n\n/* harmony import */ var _length_js__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(/*! ./length.js */ \"./node_modules/ramda/es/length.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"length\", function() { return _length_js__WEBPACK_IMPORTED_MODULE_108__[\"default\"]; });\n\n/* harmony import */ var _lens_js__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(/*! ./lens.js */ \"./node_modules/ramda/es/lens.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lens\", function() { return _lens_js__WEBPACK_IMPORTED_MODULE_109__[\"default\"]; });\n\n/* harmony import */ var _lensIndex_js__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(/*! ./lensIndex.js */ \"./node_modules/ramda/es/lensIndex.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lensIndex\", function() { return _lensIndex_js__WEBPACK_IMPORTED_MODULE_110__[\"default\"]; });\n\n/* harmony import */ var _lensPath_js__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(/*! ./lensPath.js */ \"./node_modules/ramda/es/lensPath.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lensPath\", function() { return _lensPath_js__WEBPACK_IMPORTED_MODULE_111__[\"default\"]; });\n\n/* harmony import */ var _lensProp_js__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(/*! ./lensProp.js */ \"./node_modules/ramda/es/lensProp.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lensProp\", function() { return _lensProp_js__WEBPACK_IMPORTED_MODULE_112__[\"default\"]; });\n\n/* harmony import */ var _lift_js__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(/*! ./lift.js */ \"./node_modules/ramda/es/lift.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lift\", function() { return _lift_js__WEBPACK_IMPORTED_MODULE_113__[\"default\"]; });\n\n/* harmony import */ var _liftN_js__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(/*! ./liftN.js */ \"./node_modules/ramda/es/liftN.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"liftN\", function() { return _liftN_js__WEBPACK_IMPORTED_MODULE_114__[\"default\"]; });\n\n/* harmony import */ var _lt_js__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(/*! ./lt.js */ \"./node_modules/ramda/es/lt.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lt\", function() { return _lt_js__WEBPACK_IMPORTED_MODULE_115__[\"default\"]; });\n\n/* harmony import */ var _lte_js__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(/*! ./lte.js */ \"./node_modules/ramda/es/lte.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lte\", function() { return _lte_js__WEBPACK_IMPORTED_MODULE_116__[\"default\"]; });\n\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"map\", function() { return _map_js__WEBPACK_IMPORTED_MODULE_117__[\"default\"]; });\n\n/* harmony import */ var _mapAccum_js__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(/*! ./mapAccum.js */ \"./node_modules/ramda/es/mapAccum.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mapAccum\", function() { return _mapAccum_js__WEBPACK_IMPORTED_MODULE_118__[\"default\"]; });\n\n/* harmony import */ var _mapAccumRight_js__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(/*! ./mapAccumRight.js */ \"./node_modules/ramda/es/mapAccumRight.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mapAccumRight\", function() { return _mapAccumRight_js__WEBPACK_IMPORTED_MODULE_119__[\"default\"]; });\n\n/* harmony import */ var _mapObjIndexed_js__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(/*! ./mapObjIndexed.js */ \"./node_modules/ramda/es/mapObjIndexed.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mapObjIndexed\", function() { return _mapObjIndexed_js__WEBPACK_IMPORTED_MODULE_120__[\"default\"]; });\n\n/* harmony import */ var _match_js__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ./match.js */ \"./node_modules/ramda/es/match.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"match\", function() { return _match_js__WEBPACK_IMPORTED_MODULE_121__[\"default\"]; });\n\n/* harmony import */ var _mathMod_js__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(/*! ./mathMod.js */ \"./node_modules/ramda/es/mathMod.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mathMod\", function() { return _mathMod_js__WEBPACK_IMPORTED_MODULE_122__[\"default\"]; });\n\n/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(/*! ./max.js */ \"./node_modules/ramda/es/max.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"max\", function() { return _max_js__WEBPACK_IMPORTED_MODULE_123__[\"default\"]; });\n\n/* harmony import */ var _maxBy_js__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(/*! ./maxBy.js */ \"./node_modules/ramda/es/maxBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"maxBy\", function() { return _maxBy_js__WEBPACK_IMPORTED_MODULE_124__[\"default\"]; });\n\n/* harmony import */ var _mean_js__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(/*! ./mean.js */ \"./node_modules/ramda/es/mean.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mean\", function() { return _mean_js__WEBPACK_IMPORTED_MODULE_125__[\"default\"]; });\n\n/* harmony import */ var _median_js__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(/*! ./median.js */ \"./node_modules/ramda/es/median.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"median\", function() { return _median_js__WEBPACK_IMPORTED_MODULE_126__[\"default\"]; });\n\n/* harmony import */ var _memoizeWith_js__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(/*! ./memoizeWith.js */ \"./node_modules/ramda/es/memoizeWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"memoizeWith\", function() { return _memoizeWith_js__WEBPACK_IMPORTED_MODULE_127__[\"default\"]; });\n\n/* harmony import */ var _merge_js__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(/*! ./merge.js */ \"./node_modules/ramda/es/merge.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"merge\", function() { return _merge_js__WEBPACK_IMPORTED_MODULE_128__[\"default\"]; });\n\n/* harmony import */ var _mergeAll_js__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(/*! ./mergeAll.js */ \"./node_modules/ramda/es/mergeAll.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeAll\", function() { return _mergeAll_js__WEBPACK_IMPORTED_MODULE_129__[\"default\"]; });\n\n/* harmony import */ var _mergeDeepLeft_js__WEBPACK_IMPORTED_MODULE_130__ = __webpack_require__(/*! ./mergeDeepLeft.js */ \"./node_modules/ramda/es/mergeDeepLeft.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeDeepLeft\", function() { return _mergeDeepLeft_js__WEBPACK_IMPORTED_MODULE_130__[\"default\"]; });\n\n/* harmony import */ var _mergeDeepRight_js__WEBPACK_IMPORTED_MODULE_131__ = __webpack_require__(/*! ./mergeDeepRight.js */ \"./node_modules/ramda/es/mergeDeepRight.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeDeepRight\", function() { return _mergeDeepRight_js__WEBPACK_IMPORTED_MODULE_131__[\"default\"]; });\n\n/* harmony import */ var _mergeDeepWith_js__WEBPACK_IMPORTED_MODULE_132__ = __webpack_require__(/*! ./mergeDeepWith.js */ \"./node_modules/ramda/es/mergeDeepWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeDeepWith\", function() { return _mergeDeepWith_js__WEBPACK_IMPORTED_MODULE_132__[\"default\"]; });\n\n/* harmony import */ var _mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_133__ = __webpack_require__(/*! ./mergeDeepWithKey.js */ \"./node_modules/ramda/es/mergeDeepWithKey.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeDeepWithKey\", function() { return _mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_133__[\"default\"]; });\n\n/* harmony import */ var _mergeLeft_js__WEBPACK_IMPORTED_MODULE_134__ = __webpack_require__(/*! ./mergeLeft.js */ \"./node_modules/ramda/es/mergeLeft.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeLeft\", function() { return _mergeLeft_js__WEBPACK_IMPORTED_MODULE_134__[\"default\"]; });\n\n/* harmony import */ var _mergeRight_js__WEBPACK_IMPORTED_MODULE_135__ = __webpack_require__(/*! ./mergeRight.js */ \"./node_modules/ramda/es/mergeRight.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeRight\", function() { return _mergeRight_js__WEBPACK_IMPORTED_MODULE_135__[\"default\"]; });\n\n/* harmony import */ var _mergeWith_js__WEBPACK_IMPORTED_MODULE_136__ = __webpack_require__(/*! ./mergeWith.js */ \"./node_modules/ramda/es/mergeWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeWith\", function() { return _mergeWith_js__WEBPACK_IMPORTED_MODULE_136__[\"default\"]; });\n\n/* harmony import */ var _mergeWithKey_js__WEBPACK_IMPORTED_MODULE_137__ = __webpack_require__(/*! ./mergeWithKey.js */ \"./node_modules/ramda/es/mergeWithKey.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeWithKey\", function() { return _mergeWithKey_js__WEBPACK_IMPORTED_MODULE_137__[\"default\"]; });\n\n/* harmony import */ var _min_js__WEBPACK_IMPORTED_MODULE_138__ = __webpack_require__(/*! ./min.js */ \"./node_modules/ramda/es/min.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"min\", function() { return _min_js__WEBPACK_IMPORTED_MODULE_138__[\"default\"]; });\n\n/* harmony import */ var _minBy_js__WEBPACK_IMPORTED_MODULE_139__ = __webpack_require__(/*! ./minBy.js */ \"./node_modules/ramda/es/minBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"minBy\", function() { return _minBy_js__WEBPACK_IMPORTED_MODULE_139__[\"default\"]; });\n\n/* harmony import */ var _modulo_js__WEBPACK_IMPORTED_MODULE_140__ = __webpack_require__(/*! ./modulo.js */ \"./node_modules/ramda/es/modulo.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"modulo\", function() { return _modulo_js__WEBPACK_IMPORTED_MODULE_140__[\"default\"]; });\n\n/* harmony import */ var _move_js__WEBPACK_IMPORTED_MODULE_141__ = __webpack_require__(/*! ./move.js */ \"./node_modules/ramda/es/move.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"move\", function() { return _move_js__WEBPACK_IMPORTED_MODULE_141__[\"default\"]; });\n\n/* harmony import */ var _multiply_js__WEBPACK_IMPORTED_MODULE_142__ = __webpack_require__(/*! ./multiply.js */ \"./node_modules/ramda/es/multiply.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"multiply\", function() { return _multiply_js__WEBPACK_IMPORTED_MODULE_142__[\"default\"]; });\n\n/* harmony import */ var _nAry_js__WEBPACK_IMPORTED_MODULE_143__ = __webpack_require__(/*! ./nAry.js */ \"./node_modules/ramda/es/nAry.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"nAry\", function() { return _nAry_js__WEBPACK_IMPORTED_MODULE_143__[\"default\"]; });\n\n/* harmony import */ var _negate_js__WEBPACK_IMPORTED_MODULE_144__ = __webpack_require__(/*! ./negate.js */ \"./node_modules/ramda/es/negate.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"negate\", function() { return _negate_js__WEBPACK_IMPORTED_MODULE_144__[\"default\"]; });\n\n/* harmony import */ var _none_js__WEBPACK_IMPORTED_MODULE_145__ = __webpack_require__(/*! ./none.js */ \"./node_modules/ramda/es/none.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"none\", function() { return _none_js__WEBPACK_IMPORTED_MODULE_145__[\"default\"]; });\n\n/* harmony import */ var _not_js__WEBPACK_IMPORTED_MODULE_146__ = __webpack_require__(/*! ./not.js */ \"./node_modules/ramda/es/not.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"not\", function() { return _not_js__WEBPACK_IMPORTED_MODULE_146__[\"default\"]; });\n\n/* harmony import */ var _nth_js__WEBPACK_IMPORTED_MODULE_147__ = __webpack_require__(/*! ./nth.js */ \"./node_modules/ramda/es/nth.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"nth\", function() { return _nth_js__WEBPACK_IMPORTED_MODULE_147__[\"default\"]; });\n\n/* harmony import */ var _nthArg_js__WEBPACK_IMPORTED_MODULE_148__ = __webpack_require__(/*! ./nthArg.js */ \"./node_modules/ramda/es/nthArg.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"nthArg\", function() { return _nthArg_js__WEBPACK_IMPORTED_MODULE_148__[\"default\"]; });\n\n/* harmony import */ var _o_js__WEBPACK_IMPORTED_MODULE_149__ = __webpack_require__(/*! ./o.js */ \"./node_modules/ramda/es/o.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"o\", function() { return _o_js__WEBPACK_IMPORTED_MODULE_149__[\"default\"]; });\n\n/* harmony import */ var _objOf_js__WEBPACK_IMPORTED_MODULE_150__ = __webpack_require__(/*! ./objOf.js */ \"./node_modules/ramda/es/objOf.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"objOf\", function() { return _objOf_js__WEBPACK_IMPORTED_MODULE_150__[\"default\"]; });\n\n/* harmony import */ var _of_js__WEBPACK_IMPORTED_MODULE_151__ = __webpack_require__(/*! ./of.js */ \"./node_modules/ramda/es/of.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"of\", function() { return _of_js__WEBPACK_IMPORTED_MODULE_151__[\"default\"]; });\n\n/* harmony import */ var _omit_js__WEBPACK_IMPORTED_MODULE_152__ = __webpack_require__(/*! ./omit.js */ \"./node_modules/ramda/es/omit.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"omit\", function() { return _omit_js__WEBPACK_IMPORTED_MODULE_152__[\"default\"]; });\n\n/* harmony import */ var _once_js__WEBPACK_IMPORTED_MODULE_153__ = __webpack_require__(/*! ./once.js */ \"./node_modules/ramda/es/once.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"once\", function() { return _once_js__WEBPACK_IMPORTED_MODULE_153__[\"default\"]; });\n\n/* harmony import */ var _or_js__WEBPACK_IMPORTED_MODULE_154__ = __webpack_require__(/*! ./or.js */ \"./node_modules/ramda/es/or.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"or\", function() { return _or_js__WEBPACK_IMPORTED_MODULE_154__[\"default\"]; });\n\n/* harmony import */ var _otherwise_js__WEBPACK_IMPORTED_MODULE_155__ = __webpack_require__(/*! ./otherwise.js */ \"./node_modules/ramda/es/otherwise.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"otherwise\", function() { return _otherwise_js__WEBPACK_IMPORTED_MODULE_155__[\"default\"]; });\n\n/* harmony import */ var _over_js__WEBPACK_IMPORTED_MODULE_156__ = __webpack_require__(/*! ./over.js */ \"./node_modules/ramda/es/over.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"over\", function() { return _over_js__WEBPACK_IMPORTED_MODULE_156__[\"default\"]; });\n\n/* harmony import */ var _pair_js__WEBPACK_IMPORTED_MODULE_157__ = __webpack_require__(/*! ./pair.js */ \"./node_modules/ramda/es/pair.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pair\", function() { return _pair_js__WEBPACK_IMPORTED_MODULE_157__[\"default\"]; });\n\n/* harmony import */ var _partial_js__WEBPACK_IMPORTED_MODULE_158__ = __webpack_require__(/*! ./partial.js */ \"./node_modules/ramda/es/partial.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"partial\", function() { return _partial_js__WEBPACK_IMPORTED_MODULE_158__[\"default\"]; });\n\n/* harmony import */ var _partialRight_js__WEBPACK_IMPORTED_MODULE_159__ = __webpack_require__(/*! ./partialRight.js */ \"./node_modules/ramda/es/partialRight.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"partialRight\", function() { return _partialRight_js__WEBPACK_IMPORTED_MODULE_159__[\"default\"]; });\n\n/* harmony import */ var _partition_js__WEBPACK_IMPORTED_MODULE_160__ = __webpack_require__(/*! ./partition.js */ \"./node_modules/ramda/es/partition.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"partition\", function() { return _partition_js__WEBPACK_IMPORTED_MODULE_160__[\"default\"]; });\n\n/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_161__ = __webpack_require__(/*! ./path.js */ \"./node_modules/ramda/es/path.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"path\", function() { return _path_js__WEBPACK_IMPORTED_MODULE_161__[\"default\"]; });\n\n/* harmony import */ var _paths_js__WEBPACK_IMPORTED_MODULE_162__ = __webpack_require__(/*! ./paths.js */ \"./node_modules/ramda/es/paths.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"paths\", function() { return _paths_js__WEBPACK_IMPORTED_MODULE_162__[\"default\"]; });\n\n/* harmony import */ var _pathEq_js__WEBPACK_IMPORTED_MODULE_163__ = __webpack_require__(/*! ./pathEq.js */ \"./node_modules/ramda/es/pathEq.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pathEq\", function() { return _pathEq_js__WEBPACK_IMPORTED_MODULE_163__[\"default\"]; });\n\n/* harmony import */ var _pathOr_js__WEBPACK_IMPORTED_MODULE_164__ = __webpack_require__(/*! ./pathOr.js */ \"./node_modules/ramda/es/pathOr.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pathOr\", function() { return _pathOr_js__WEBPACK_IMPORTED_MODULE_164__[\"default\"]; });\n\n/* harmony import */ var _pathSatisfies_js__WEBPACK_IMPORTED_MODULE_165__ = __webpack_require__(/*! ./pathSatisfies.js */ \"./node_modules/ramda/es/pathSatisfies.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pathSatisfies\", function() { return _pathSatisfies_js__WEBPACK_IMPORTED_MODULE_165__[\"default\"]; });\n\n/* harmony import */ var _pick_js__WEBPACK_IMPORTED_MODULE_166__ = __webpack_require__(/*! ./pick.js */ \"./node_modules/ramda/es/pick.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pick\", function() { return _pick_js__WEBPACK_IMPORTED_MODULE_166__[\"default\"]; });\n\n/* harmony import */ var _pickAll_js__WEBPACK_IMPORTED_MODULE_167__ = __webpack_require__(/*! ./pickAll.js */ \"./node_modules/ramda/es/pickAll.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pickAll\", function() { return _pickAll_js__WEBPACK_IMPORTED_MODULE_167__[\"default\"]; });\n\n/* harmony import */ var _pickBy_js__WEBPACK_IMPORTED_MODULE_168__ = __webpack_require__(/*! ./pickBy.js */ \"./node_modules/ramda/es/pickBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pickBy\", function() { return _pickBy_js__WEBPACK_IMPORTED_MODULE_168__[\"default\"]; });\n\n/* harmony import */ var _pipe_js__WEBPACK_IMPORTED_MODULE_169__ = __webpack_require__(/*! ./pipe.js */ \"./node_modules/ramda/es/pipe.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pipe\", function() { return _pipe_js__WEBPACK_IMPORTED_MODULE_169__[\"default\"]; });\n\n/* harmony import */ var _pipeK_js__WEBPACK_IMPORTED_MODULE_170__ = __webpack_require__(/*! ./pipeK.js */ \"./node_modules/ramda/es/pipeK.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pipeK\", function() { return _pipeK_js__WEBPACK_IMPORTED_MODULE_170__[\"default\"]; });\n\n/* harmony import */ var _pipeP_js__WEBPACK_IMPORTED_MODULE_171__ = __webpack_require__(/*! ./pipeP.js */ \"./node_modules/ramda/es/pipeP.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pipeP\", function() { return _pipeP_js__WEBPACK_IMPORTED_MODULE_171__[\"default\"]; });\n\n/* harmony import */ var _pipeWith_js__WEBPACK_IMPORTED_MODULE_172__ = __webpack_require__(/*! ./pipeWith.js */ \"./node_modules/ramda/es/pipeWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pipeWith\", function() { return _pipeWith_js__WEBPACK_IMPORTED_MODULE_172__[\"default\"]; });\n\n/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_173__ = __webpack_require__(/*! ./pluck.js */ \"./node_modules/ramda/es/pluck.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pluck\", function() { return _pluck_js__WEBPACK_IMPORTED_MODULE_173__[\"default\"]; });\n\n/* harmony import */ var _prepend_js__WEBPACK_IMPORTED_MODULE_174__ = __webpack_require__(/*! ./prepend.js */ \"./node_modules/ramda/es/prepend.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"prepend\", function() { return _prepend_js__WEBPACK_IMPORTED_MODULE_174__[\"default\"]; });\n\n/* harmony import */ var _product_js__WEBPACK_IMPORTED_MODULE_175__ = __webpack_require__(/*! ./product.js */ \"./node_modules/ramda/es/product.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"product\", function() { return _product_js__WEBPACK_IMPORTED_MODULE_175__[\"default\"]; });\n\n/* harmony import */ var _project_js__WEBPACK_IMPORTED_MODULE_176__ = __webpack_require__(/*! ./project.js */ \"./node_modules/ramda/es/project.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"project\", function() { return _project_js__WEBPACK_IMPORTED_MODULE_176__[\"default\"]; });\n\n/* harmony import */ var _prop_js__WEBPACK_IMPORTED_MODULE_177__ = __webpack_require__(/*! ./prop.js */ \"./node_modules/ramda/es/prop.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"prop\", function() { return _prop_js__WEBPACK_IMPORTED_MODULE_177__[\"default\"]; });\n\n/* harmony import */ var _propEq_js__WEBPACK_IMPORTED_MODULE_178__ = __webpack_require__(/*! ./propEq.js */ \"./node_modules/ramda/es/propEq.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"propEq\", function() { return _propEq_js__WEBPACK_IMPORTED_MODULE_178__[\"default\"]; });\n\n/* harmony import */ var _propIs_js__WEBPACK_IMPORTED_MODULE_179__ = __webpack_require__(/*! ./propIs.js */ \"./node_modules/ramda/es/propIs.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"propIs\", function() { return _propIs_js__WEBPACK_IMPORTED_MODULE_179__[\"default\"]; });\n\n/* harmony import */ var _propOr_js__WEBPACK_IMPORTED_MODULE_180__ = __webpack_require__(/*! ./propOr.js */ \"./node_modules/ramda/es/propOr.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"propOr\", function() { return _propOr_js__WEBPACK_IMPORTED_MODULE_180__[\"default\"]; });\n\n/* harmony import */ var _propSatisfies_js__WEBPACK_IMPORTED_MODULE_181__ = __webpack_require__(/*! ./propSatisfies.js */ \"./node_modules/ramda/es/propSatisfies.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"propSatisfies\", function() { return _propSatisfies_js__WEBPACK_IMPORTED_MODULE_181__[\"default\"]; });\n\n/* harmony import */ var _props_js__WEBPACK_IMPORTED_MODULE_182__ = __webpack_require__(/*! ./props.js */ \"./node_modules/ramda/es/props.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"props\", function() { return _props_js__WEBPACK_IMPORTED_MODULE_182__[\"default\"]; });\n\n/* harmony import */ var _range_js__WEBPACK_IMPORTED_MODULE_183__ = __webpack_require__(/*! ./range.js */ \"./node_modules/ramda/es/range.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"range\", function() { return _range_js__WEBPACK_IMPORTED_MODULE_183__[\"default\"]; });\n\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_184__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reduce\", function() { return _reduce_js__WEBPACK_IMPORTED_MODULE_184__[\"default\"]; });\n\n/* harmony import */ var _reduceBy_js__WEBPACK_IMPORTED_MODULE_185__ = __webpack_require__(/*! ./reduceBy.js */ \"./node_modules/ramda/es/reduceBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reduceBy\", function() { return _reduceBy_js__WEBPACK_IMPORTED_MODULE_185__[\"default\"]; });\n\n/* harmony import */ var _reduceRight_js__WEBPACK_IMPORTED_MODULE_186__ = __webpack_require__(/*! ./reduceRight.js */ \"./node_modules/ramda/es/reduceRight.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reduceRight\", function() { return _reduceRight_js__WEBPACK_IMPORTED_MODULE_186__[\"default\"]; });\n\n/* harmony import */ var _reduceWhile_js__WEBPACK_IMPORTED_MODULE_187__ = __webpack_require__(/*! ./reduceWhile.js */ \"./node_modules/ramda/es/reduceWhile.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reduceWhile\", function() { return _reduceWhile_js__WEBPACK_IMPORTED_MODULE_187__[\"default\"]; });\n\n/* harmony import */ var _reduced_js__WEBPACK_IMPORTED_MODULE_188__ = __webpack_require__(/*! ./reduced.js */ \"./node_modules/ramda/es/reduced.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reduced\", function() { return _reduced_js__WEBPACK_IMPORTED_MODULE_188__[\"default\"]; });\n\n/* harmony import */ var _reject_js__WEBPACK_IMPORTED_MODULE_189__ = __webpack_require__(/*! ./reject.js */ \"./node_modules/ramda/es/reject.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reject\", function() { return _reject_js__WEBPACK_IMPORTED_MODULE_189__[\"default\"]; });\n\n/* harmony import */ var _remove_js__WEBPACK_IMPORTED_MODULE_190__ = __webpack_require__(/*! ./remove.js */ \"./node_modules/ramda/es/remove.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"remove\", function() { return _remove_js__WEBPACK_IMPORTED_MODULE_190__[\"default\"]; });\n\n/* harmony import */ var _repeat_js__WEBPACK_IMPORTED_MODULE_191__ = __webpack_require__(/*! ./repeat.js */ \"./node_modules/ramda/es/repeat.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"repeat\", function() { return _repeat_js__WEBPACK_IMPORTED_MODULE_191__[\"default\"]; });\n\n/* harmony import */ var _replace_js__WEBPACK_IMPORTED_MODULE_192__ = __webpack_require__(/*! ./replace.js */ \"./node_modules/ramda/es/replace.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"replace\", function() { return _replace_js__WEBPACK_IMPORTED_MODULE_192__[\"default\"]; });\n\n/* harmony import */ var _reverse_js__WEBPACK_IMPORTED_MODULE_193__ = __webpack_require__(/*! ./reverse.js */ \"./node_modules/ramda/es/reverse.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reverse\", function() { return _reverse_js__WEBPACK_IMPORTED_MODULE_193__[\"default\"]; });\n\n/* harmony import */ var _scan_js__WEBPACK_IMPORTED_MODULE_194__ = __webpack_require__(/*! ./scan.js */ \"./node_modules/ramda/es/scan.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scan\", function() { return _scan_js__WEBPACK_IMPORTED_MODULE_194__[\"default\"]; });\n\n/* harmony import */ var _sequence_js__WEBPACK_IMPORTED_MODULE_195__ = __webpack_require__(/*! ./sequence.js */ \"./node_modules/ramda/es/sequence.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sequence\", function() { return _sequence_js__WEBPACK_IMPORTED_MODULE_195__[\"default\"]; });\n\n/* harmony import */ var _set_js__WEBPACK_IMPORTED_MODULE_196__ = __webpack_require__(/*! ./set.js */ \"./node_modules/ramda/es/set.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"set\", function() { return _set_js__WEBPACK_IMPORTED_MODULE_196__[\"default\"]; });\n\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_197__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"slice\", function() { return _slice_js__WEBPACK_IMPORTED_MODULE_197__[\"default\"]; });\n\n/* harmony import */ var _sort_js__WEBPACK_IMPORTED_MODULE_198__ = __webpack_require__(/*! ./sort.js */ \"./node_modules/ramda/es/sort.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sort\", function() { return _sort_js__WEBPACK_IMPORTED_MODULE_198__[\"default\"]; });\n\n/* harmony import */ var _sortBy_js__WEBPACK_IMPORTED_MODULE_199__ = __webpack_require__(/*! ./sortBy.js */ \"./node_modules/ramda/es/sortBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sortBy\", function() { return _sortBy_js__WEBPACK_IMPORTED_MODULE_199__[\"default\"]; });\n\n/* harmony import */ var _sortWith_js__WEBPACK_IMPORTED_MODULE_200__ = __webpack_require__(/*! ./sortWith.js */ \"./node_modules/ramda/es/sortWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sortWith\", function() { return _sortWith_js__WEBPACK_IMPORTED_MODULE_200__[\"default\"]; });\n\n/* harmony import */ var _split_js__WEBPACK_IMPORTED_MODULE_201__ = __webpack_require__(/*! ./split.js */ \"./node_modules/ramda/es/split.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"split\", function() { return _split_js__WEBPACK_IMPORTED_MODULE_201__[\"default\"]; });\n\n/* harmony import */ var _splitAt_js__WEBPACK_IMPORTED_MODULE_202__ = __webpack_require__(/*! ./splitAt.js */ \"./node_modules/ramda/es/splitAt.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"splitAt\", function() { return _splitAt_js__WEBPACK_IMPORTED_MODULE_202__[\"default\"]; });\n\n/* harmony import */ var _splitEvery_js__WEBPACK_IMPORTED_MODULE_203__ = __webpack_require__(/*! ./splitEvery.js */ \"./node_modules/ramda/es/splitEvery.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"splitEvery\", function() { return _splitEvery_js__WEBPACK_IMPORTED_MODULE_203__[\"default\"]; });\n\n/* harmony import */ var _splitWhen_js__WEBPACK_IMPORTED_MODULE_204__ = __webpack_require__(/*! ./splitWhen.js */ \"./node_modules/ramda/es/splitWhen.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"splitWhen\", function() { return _splitWhen_js__WEBPACK_IMPORTED_MODULE_204__[\"default\"]; });\n\n/* harmony import */ var _startsWith_js__WEBPACK_IMPORTED_MODULE_205__ = __webpack_require__(/*! ./startsWith.js */ \"./node_modules/ramda/es/startsWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"startsWith\", function() { return _startsWith_js__WEBPACK_IMPORTED_MODULE_205__[\"default\"]; });\n\n/* harmony import */ var _subtract_js__WEBPACK_IMPORTED_MODULE_206__ = __webpack_require__(/*! ./subtract.js */ \"./node_modules/ramda/es/subtract.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"subtract\", function() { return _subtract_js__WEBPACK_IMPORTED_MODULE_206__[\"default\"]; });\n\n/* harmony import */ var _sum_js__WEBPACK_IMPORTED_MODULE_207__ = __webpack_require__(/*! ./sum.js */ \"./node_modules/ramda/es/sum.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sum\", function() { return _sum_js__WEBPACK_IMPORTED_MODULE_207__[\"default\"]; });\n\n/* harmony import */ var _symmetricDifference_js__WEBPACK_IMPORTED_MODULE_208__ = __webpack_require__(/*! ./symmetricDifference.js */ \"./node_modules/ramda/es/symmetricDifference.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"symmetricDifference\", function() { return _symmetricDifference_js__WEBPACK_IMPORTED_MODULE_208__[\"default\"]; });\n\n/* harmony import */ var _symmetricDifferenceWith_js__WEBPACK_IMPORTED_MODULE_209__ = __webpack_require__(/*! ./symmetricDifferenceWith.js */ \"./node_modules/ramda/es/symmetricDifferenceWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"symmetricDifferenceWith\", function() { return _symmetricDifferenceWith_js__WEBPACK_IMPORTED_MODULE_209__[\"default\"]; });\n\n/* harmony import */ var _tail_js__WEBPACK_IMPORTED_MODULE_210__ = __webpack_require__(/*! ./tail.js */ \"./node_modules/ramda/es/tail.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tail\", function() { return _tail_js__WEBPACK_IMPORTED_MODULE_210__[\"default\"]; });\n\n/* harmony import */ var _take_js__WEBPACK_IMPORTED_MODULE_211__ = __webpack_require__(/*! ./take.js */ \"./node_modules/ramda/es/take.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"take\", function() { return _take_js__WEBPACK_IMPORTED_MODULE_211__[\"default\"]; });\n\n/* harmony import */ var _takeLast_js__WEBPACK_IMPORTED_MODULE_212__ = __webpack_require__(/*! ./takeLast.js */ \"./node_modules/ramda/es/takeLast.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"takeLast\", function() { return _takeLast_js__WEBPACK_IMPORTED_MODULE_212__[\"default\"]; });\n\n/* harmony import */ var _takeLastWhile_js__WEBPACK_IMPORTED_MODULE_213__ = __webpack_require__(/*! ./takeLastWhile.js */ \"./node_modules/ramda/es/takeLastWhile.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"takeLastWhile\", function() { return _takeLastWhile_js__WEBPACK_IMPORTED_MODULE_213__[\"default\"]; });\n\n/* harmony import */ var _takeWhile_js__WEBPACK_IMPORTED_MODULE_214__ = __webpack_require__(/*! ./takeWhile.js */ \"./node_modules/ramda/es/takeWhile.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"takeWhile\", function() { return _takeWhile_js__WEBPACK_IMPORTED_MODULE_214__[\"default\"]; });\n\n/* harmony import */ var _tap_js__WEBPACK_IMPORTED_MODULE_215__ = __webpack_require__(/*! ./tap.js */ \"./node_modules/ramda/es/tap.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tap\", function() { return _tap_js__WEBPACK_IMPORTED_MODULE_215__[\"default\"]; });\n\n/* harmony import */ var _test_js__WEBPACK_IMPORTED_MODULE_216__ = __webpack_require__(/*! ./test.js */ \"./node_modules/ramda/es/test.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"test\", function() { return _test_js__WEBPACK_IMPORTED_MODULE_216__[\"default\"]; });\n\n/* harmony import */ var _andThen_js__WEBPACK_IMPORTED_MODULE_217__ = __webpack_require__(/*! ./andThen.js */ \"./node_modules/ramda/es/andThen.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"andThen\", function() { return _andThen_js__WEBPACK_IMPORTED_MODULE_217__[\"default\"]; });\n\n/* harmony import */ var _times_js__WEBPACK_IMPORTED_MODULE_218__ = __webpack_require__(/*! ./times.js */ \"./node_modules/ramda/es/times.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"times\", function() { return _times_js__WEBPACK_IMPORTED_MODULE_218__[\"default\"]; });\n\n/* harmony import */ var _toLower_js__WEBPACK_IMPORTED_MODULE_219__ = __webpack_require__(/*! ./toLower.js */ \"./node_modules/ramda/es/toLower.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toLower\", function() { return _toLower_js__WEBPACK_IMPORTED_MODULE_219__[\"default\"]; });\n\n/* harmony import */ var _toPairs_js__WEBPACK_IMPORTED_MODULE_220__ = __webpack_require__(/*! ./toPairs.js */ \"./node_modules/ramda/es/toPairs.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toPairs\", function() { return _toPairs_js__WEBPACK_IMPORTED_MODULE_220__[\"default\"]; });\n\n/* harmony import */ var _toPairsIn_js__WEBPACK_IMPORTED_MODULE_221__ = __webpack_require__(/*! ./toPairsIn.js */ \"./node_modules/ramda/es/toPairsIn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toPairsIn\", function() { return _toPairsIn_js__WEBPACK_IMPORTED_MODULE_221__[\"default\"]; });\n\n/* harmony import */ var _toString_js__WEBPACK_IMPORTED_MODULE_222__ = __webpack_require__(/*! ./toString.js */ \"./node_modules/ramda/es/toString.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toString\", function() { return _toString_js__WEBPACK_IMPORTED_MODULE_222__[\"default\"]; });\n\n/* harmony import */ var _toUpper_js__WEBPACK_IMPORTED_MODULE_223__ = __webpack_require__(/*! ./toUpper.js */ \"./node_modules/ramda/es/toUpper.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toUpper\", function() { return _toUpper_js__WEBPACK_IMPORTED_MODULE_223__[\"default\"]; });\n\n/* harmony import */ var _transduce_js__WEBPACK_IMPORTED_MODULE_224__ = __webpack_require__(/*! ./transduce.js */ \"./node_modules/ramda/es/transduce.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"transduce\", function() { return _transduce_js__WEBPACK_IMPORTED_MODULE_224__[\"default\"]; });\n\n/* harmony import */ var _transpose_js__WEBPACK_IMPORTED_MODULE_225__ = __webpack_require__(/*! ./transpose.js */ \"./node_modules/ramda/es/transpose.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"transpose\", function() { return _transpose_js__WEBPACK_IMPORTED_MODULE_225__[\"default\"]; });\n\n/* harmony import */ var _traverse_js__WEBPACK_IMPORTED_MODULE_226__ = __webpack_require__(/*! ./traverse.js */ \"./node_modules/ramda/es/traverse.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"traverse\", function() { return _traverse_js__WEBPACK_IMPORTED_MODULE_226__[\"default\"]; });\n\n/* harmony import */ var _trim_js__WEBPACK_IMPORTED_MODULE_227__ = __webpack_require__(/*! ./trim.js */ \"./node_modules/ramda/es/trim.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"trim\", function() { return _trim_js__WEBPACK_IMPORTED_MODULE_227__[\"default\"]; });\n\n/* harmony import */ var _tryCatch_js__WEBPACK_IMPORTED_MODULE_228__ = __webpack_require__(/*! ./tryCatch.js */ \"./node_modules/ramda/es/tryCatch.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tryCatch\", function() { return _tryCatch_js__WEBPACK_IMPORTED_MODULE_228__[\"default\"]; });\n\n/* harmony import */ var _type_js__WEBPACK_IMPORTED_MODULE_229__ = __webpack_require__(/*! ./type.js */ \"./node_modules/ramda/es/type.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"type\", function() { return _type_js__WEBPACK_IMPORTED_MODULE_229__[\"default\"]; });\n\n/* harmony import */ var _unapply_js__WEBPACK_IMPORTED_MODULE_230__ = __webpack_require__(/*! ./unapply.js */ \"./node_modules/ramda/es/unapply.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unapply\", function() { return _unapply_js__WEBPACK_IMPORTED_MODULE_230__[\"default\"]; });\n\n/* harmony import */ var _unary_js__WEBPACK_IMPORTED_MODULE_231__ = __webpack_require__(/*! ./unary.js */ \"./node_modules/ramda/es/unary.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unary\", function() { return _unary_js__WEBPACK_IMPORTED_MODULE_231__[\"default\"]; });\n\n/* harmony import */ var _uncurryN_js__WEBPACK_IMPORTED_MODULE_232__ = __webpack_require__(/*! ./uncurryN.js */ \"./node_modules/ramda/es/uncurryN.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"uncurryN\", function() { return _uncurryN_js__WEBPACK_IMPORTED_MODULE_232__[\"default\"]; });\n\n/* harmony import */ var _unfold_js__WEBPACK_IMPORTED_MODULE_233__ = __webpack_require__(/*! ./unfold.js */ \"./node_modules/ramda/es/unfold.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unfold\", function() { return _unfold_js__WEBPACK_IMPORTED_MODULE_233__[\"default\"]; });\n\n/* harmony import */ var _union_js__WEBPACK_IMPORTED_MODULE_234__ = __webpack_require__(/*! ./union.js */ \"./node_modules/ramda/es/union.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"union\", function() { return _union_js__WEBPACK_IMPORTED_MODULE_234__[\"default\"]; });\n\n/* harmony import */ var _unionWith_js__WEBPACK_IMPORTED_MODULE_235__ = __webpack_require__(/*! ./unionWith.js */ \"./node_modules/ramda/es/unionWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unionWith\", function() { return _unionWith_js__WEBPACK_IMPORTED_MODULE_235__[\"default\"]; });\n\n/* harmony import */ var _uniq_js__WEBPACK_IMPORTED_MODULE_236__ = __webpack_require__(/*! ./uniq.js */ \"./node_modules/ramda/es/uniq.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"uniq\", function() { return _uniq_js__WEBPACK_IMPORTED_MODULE_236__[\"default\"]; });\n\n/* harmony import */ var _uniqBy_js__WEBPACK_IMPORTED_MODULE_237__ = __webpack_require__(/*! ./uniqBy.js */ \"./node_modules/ramda/es/uniqBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"uniqBy\", function() { return _uniqBy_js__WEBPACK_IMPORTED_MODULE_237__[\"default\"]; });\n\n/* harmony import */ var _uniqWith_js__WEBPACK_IMPORTED_MODULE_238__ = __webpack_require__(/*! ./uniqWith.js */ \"./node_modules/ramda/es/uniqWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"uniqWith\", function() { return _uniqWith_js__WEBPACK_IMPORTED_MODULE_238__[\"default\"]; });\n\n/* harmony import */ var _unless_js__WEBPACK_IMPORTED_MODULE_239__ = __webpack_require__(/*! ./unless.js */ \"./node_modules/ramda/es/unless.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unless\", function() { return _unless_js__WEBPACK_IMPORTED_MODULE_239__[\"default\"]; });\n\n/* harmony import */ var _unnest_js__WEBPACK_IMPORTED_MODULE_240__ = __webpack_require__(/*! ./unnest.js */ \"./node_modules/ramda/es/unnest.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unnest\", function() { return _unnest_js__WEBPACK_IMPORTED_MODULE_240__[\"default\"]; });\n\n/* harmony import */ var _until_js__WEBPACK_IMPORTED_MODULE_241__ = __webpack_require__(/*! ./until.js */ \"./node_modules/ramda/es/until.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"until\", function() { return _until_js__WEBPACK_IMPORTED_MODULE_241__[\"default\"]; });\n\n/* harmony import */ var _update_js__WEBPACK_IMPORTED_MODULE_242__ = __webpack_require__(/*! ./update.js */ \"./node_modules/ramda/es/update.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"update\", function() { return _update_js__WEBPACK_IMPORTED_MODULE_242__[\"default\"]; });\n\n/* harmony import */ var _useWith_js__WEBPACK_IMPORTED_MODULE_243__ = __webpack_require__(/*! ./useWith.js */ \"./node_modules/ramda/es/useWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useWith\", function() { return _useWith_js__WEBPACK_IMPORTED_MODULE_243__[\"default\"]; });\n\n/* harmony import */ var _values_js__WEBPACK_IMPORTED_MODULE_244__ = __webpack_require__(/*! ./values.js */ \"./node_modules/ramda/es/values.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"values\", function() { return _values_js__WEBPACK_IMPORTED_MODULE_244__[\"default\"]; });\n\n/* harmony import */ var _valuesIn_js__WEBPACK_IMPORTED_MODULE_245__ = __webpack_require__(/*! ./valuesIn.js */ \"./node_modules/ramda/es/valuesIn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"valuesIn\", function() { return _valuesIn_js__WEBPACK_IMPORTED_MODULE_245__[\"default\"]; });\n\n/* harmony import */ var _view_js__WEBPACK_IMPORTED_MODULE_246__ = __webpack_require__(/*! ./view.js */ \"./node_modules/ramda/es/view.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"view\", function() { return _view_js__WEBPACK_IMPORTED_MODULE_246__[\"default\"]; });\n\n/* harmony import */ var _when_js__WEBPACK_IMPORTED_MODULE_247__ = __webpack_require__(/*! ./when.js */ \"./node_modules/ramda/es/when.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"when\", function() { return _when_js__WEBPACK_IMPORTED_MODULE_247__[\"default\"]; });\n\n/* harmony import */ var _where_js__WEBPACK_IMPORTED_MODULE_248__ = __webpack_require__(/*! ./where.js */ \"./node_modules/ramda/es/where.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"where\", function() { return _where_js__WEBPACK_IMPORTED_MODULE_248__[\"default\"]; });\n\n/* harmony import */ var _whereEq_js__WEBPACK_IMPORTED_MODULE_249__ = __webpack_require__(/*! ./whereEq.js */ \"./node_modules/ramda/es/whereEq.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"whereEq\", function() { return _whereEq_js__WEBPACK_IMPORTED_MODULE_249__[\"default\"]; });\n\n/* harmony import */ var _without_js__WEBPACK_IMPORTED_MODULE_250__ = __webpack_require__(/*! ./without.js */ \"./node_modules/ramda/es/without.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"without\", function() { return _without_js__WEBPACK_IMPORTED_MODULE_250__[\"default\"]; });\n\n/* harmony import */ var _xor_js__WEBPACK_IMPORTED_MODULE_251__ = __webpack_require__(/*! ./xor.js */ \"./node_modules/ramda/es/xor.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"xor\", function() { return _xor_js__WEBPACK_IMPORTED_MODULE_251__[\"default\"]; });\n\n/* harmony import */ var _xprod_js__WEBPACK_IMPORTED_MODULE_252__ = __webpack_require__(/*! ./xprod.js */ \"./node_modules/ramda/es/xprod.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"xprod\", function() { return _xprod_js__WEBPACK_IMPORTED_MODULE_252__[\"default\"]; });\n\n/* harmony import */ var _zip_js__WEBPACK_IMPORTED_MODULE_253__ = __webpack_require__(/*! ./zip.js */ \"./node_modules/ramda/es/zip.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zip\", function() { return _zip_js__WEBPACK_IMPORTED_MODULE_253__[\"default\"]; });\n\n/* harmony import */ var _zipObj_js__WEBPACK_IMPORTED_MODULE_254__ = __webpack_require__(/*! ./zipObj.js */ \"./node_modules/ramda/es/zipObj.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zipObj\", function() { return _zipObj_js__WEBPACK_IMPORTED_MODULE_254__[\"default\"]; });\n\n/* harmony import */ var _zipWith_js__WEBPACK_IMPORTED_MODULE_255__ = __webpack_require__(/*! ./zipWith.js */ \"./node_modules/ramda/es/zipWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zipWith\", function() { return _zipWith_js__WEBPACK_IMPORTED_MODULE_255__[\"default\"]; });\n\n/* harmony import */ var _thunkify_js__WEBPACK_IMPORTED_MODULE_256__ = __webpack_require__(/*! ./thunkify.js */ \"./node_modules/ramda/es/thunkify.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"thunkify\", function() { return _thunkify_js__WEBPACK_IMPORTED_MODULE_256__[\"default\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./node_modules/ramda/es/index.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/indexBy.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/indexBy.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _reduceBy_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reduceBy.js */ \"./node_modules/ramda/es/reduceBy.js\");\n\n/**\n * Given a function that generates a key, turns a list of objects into an\n * object indexing the objects by the given key. Note that if multiple\n * objects generate the same value for the indexing key only the last value\n * will be included in the generated object.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (a -> String) -> [{k: v}] -> {k: {k: v}}\n * @param {Function} fn Function :: a -> String\n * @param {Array} array The array of objects to index\n * @return {Object} An object indexing each array element by the given property.\n * @example\n *\n * const list = [{id: 'xyz', title: 'A'}, {id: 'abc', title: 'B'}];\n * R.indexBy(R.prop('id'), list);\n * //=> {abc: {id: 'abc', title: 'B'}, xyz: {id: 'xyz', title: 'A'}}\n */\n\nvar indexBy =\n/*#__PURE__*/\nObject(_reduceBy_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (acc, elem) {\n return elem;\n}, null);\n/* harmony default export */ __webpack_exports__[\"default\"] = (indexBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/indexBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/indexOf.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/indexOf.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_indexOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_indexOf.js */ \"./node_modules/ramda/es/internal/_indexOf.js\");\n/* harmony import */ var _internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isArray.js */ \"./node_modules/ramda/es/internal/_isArray.js\");\n\n\n\n/**\n * Returns the position of the first occurrence of an item in an array, or -1\n * if the item is not included in the array. [`R.equals`](#equals) is used to\n * determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Number\n * @param {*} target The item to find.\n * @param {Array} xs The array to search in.\n * @return {Number} the index of the target, or -1 if the target is not found.\n * @see R.lastIndexOf\n * @example\n *\n * R.indexOf(3, [1,2,3,4]); //=> 2\n * R.indexOf(10, [1,2,3,4]); //=> -1\n */\n\nvar indexOf =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function indexOf(target, xs) {\n return typeof xs.indexOf === 'function' && !Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(xs) ? xs.indexOf(target) : Object(_internal_indexOf_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(xs, target, 0);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (indexOf);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/indexOf.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/init.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/init.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n\n/**\n * Returns all but the last element of the given list or string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.last, R.head, R.tail\n * @example\n *\n * R.init([1, 2, 3]); //=> [1, 2]\n * R.init([1, 2]); //=> [1]\n * R.init([1]); //=> []\n * R.init([]); //=> []\n *\n * R.init('abc'); //=> 'ab'\n * R.init('ab'); //=> 'a'\n * R.init('a'); //=> ''\n * R.init(''); //=> ''\n */\n\nvar init =\n/*#__PURE__*/\nObject(_slice_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(0, -1);\n/* harmony default export */ __webpack_exports__[\"default\"] = (init);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/init.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/innerJoin.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/innerJoin.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_includesWith_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_includesWith.js */ \"./node_modules/ramda/es/internal/_includesWith.js\");\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _internal_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_filter.js */ \"./node_modules/ramda/es/internal/_filter.js\");\n\n\n\n/**\n * Takes a predicate `pred`, a list `xs`, and a list `ys`, and returns a list\n * `xs'` comprising each of the elements of `xs` which is equal to one or more\n * elements of `ys` according to `pred`.\n *\n * `pred` must be a binary function expecting an element from each list.\n *\n * `xs`, `ys`, and `xs'` are treated as sets, semantically, so ordering should\n * not be significant, but since `xs'` is ordered the implementation guarantees\n * that its values are in the same order as they appear in `xs`. Duplicates are\n * not removed, so `xs'` may contain duplicates if `xs` contains duplicates.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Relation\n * @sig ((a, b) -> Boolean) -> [a] -> [b] -> [a]\n * @param {Function} pred\n * @param {Array} xs\n * @param {Array} ys\n * @return {Array}\n * @see R.intersection\n * @example\n *\n * R.innerJoin(\n * (record, id) => record.id === id,\n * [{id: 824, name: 'Richie Furay'},\n * {id: 956, name: 'Dewey Martin'},\n * {id: 313, name: 'Bruce Palmer'},\n * {id: 456, name: 'Stephen Stills'},\n * {id: 177, name: 'Neil Young'}],\n * [177, 456, 999]\n * );\n * //=> [{id: 456, name: 'Stephen Stills'}, {id: 177, name: 'Neil Young'}]\n */\n\nvar innerJoin =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function innerJoin(pred, xs, ys) {\n return Object(_internal_filter_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(function (x) {\n return Object(_internal_includesWith_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(pred, x, ys);\n }, xs);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (innerJoin);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/innerJoin.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/insert.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/insert.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Inserts the supplied element into the list, at the specified `index`. _Note that\n\n * this is not destructive_: it returns a copy of the list with the changes.\n * No lists have been harmed in the application of this function.\n *\n * @func\n * @memberOf R\n * @since v0.2.2\n * @category List\n * @sig Number -> a -> [a] -> [a]\n * @param {Number} index The position to insert the element\n * @param {*} elt The element to insert into the Array\n * @param {Array} list The list to insert into\n * @return {Array} A new Array with `elt` inserted at `index`.\n * @example\n *\n * R.insert(2, 'x', [1,2,3,4]); //=> [1,2,'x',3,4]\n */\n\nvar insert =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function insert(idx, elt, list) {\n idx = idx < list.length && idx >= 0 ? idx : list.length;\n var result = Array.prototype.slice.call(list, 0);\n result.splice(idx, 0, elt);\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (insert);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/insert.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/insertAll.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/insertAll.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Inserts the sub-list into the list, at the specified `index`. _Note that this is not\n * destructive_: it returns a copy of the list with the changes.\n * No lists have been harmed in the application of this function.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig Number -> [a] -> [a] -> [a]\n * @param {Number} index The position to insert the sub-list\n * @param {Array} elts The sub-list to insert into the Array\n * @param {Array} list The list to insert the sub-list into\n * @return {Array} A new Array with `elts` inserted starting at `index`.\n * @example\n *\n * R.insertAll(2, ['x','y','z'], [1,2,3,4]); //=> [1,2,'x','y','z',3,4]\n */\n\nvar insertAll =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function insertAll(idx, elts, list) {\n idx = idx < list.length && idx >= 0 ? idx : list.length;\n return [].concat(Array.prototype.slice.call(list, 0, idx), elts, Array.prototype.slice.call(list, idx));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (insertAll);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/insertAll.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_Set.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/internal/_Set.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_includes.js */ \"./node_modules/ramda/es/internal/_includes.js\");\n\n\nvar _Set =\n/*#__PURE__*/\nfunction () {\n function _Set() {\n /* globals Set */\n this._nativeSet = typeof Set === 'function' ? new Set() : null;\n this._items = {};\n }\n\n // until we figure out why jsdoc chokes on this\n // @param item The item to add to the Set\n // @returns {boolean} true if the item did not exist prior, otherwise false\n //\n _Set.prototype.add = function (item) {\n return !hasOrAdd(item, true, this);\n }; //\n // @param item The item to check for existence in the Set\n // @returns {boolean} true if the item exists in the Set, otherwise false\n //\n\n\n _Set.prototype.has = function (item) {\n return hasOrAdd(item, false, this);\n }; //\n // Combines the logic for checking whether an item is a member of the set and\n // for adding a new item to the set.\n //\n // @param item The item to check or add to the Set instance.\n // @param shouldAdd If true, the item will be added to the set if it doesn't\n // already exist.\n // @param set The set instance to check or add to.\n // @return {boolean} true if the item already existed, otherwise false.\n //\n\n\n return _Set;\n}();\n\nfunction hasOrAdd(item, shouldAdd, set) {\n var type = typeof item;\n var prevSize, newSize;\n\n switch (type) {\n case 'string':\n case 'number':\n // distinguish between +0 and -0\n if (item === 0 && 1 / item === -Infinity) {\n if (set._items['-0']) {\n return true;\n } else {\n if (shouldAdd) {\n set._items['-0'] = true;\n }\n\n return false;\n }\n } // these types can all utilise the native Set\n\n\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n\n set._nativeSet.add(item);\n\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = {};\n set._items[type][item] = true;\n }\n\n return false;\n } else if (item in set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][item] = true;\n }\n\n return false;\n }\n }\n\n case 'boolean':\n // set._items['boolean'] holds a two element array\n // representing [ falseExists, trueExists ]\n if (type in set._items) {\n var bIdx = item ? 1 : 0;\n\n if (set._items[type][bIdx]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][bIdx] = true;\n }\n\n return false;\n }\n } else {\n if (shouldAdd) {\n set._items[type] = item ? [false, true] : [true, false];\n }\n\n return false;\n }\n\n case 'function':\n // compare functions for reference equality\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n\n set._nativeSet.add(item);\n\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n\n return false;\n }\n\n if (!Object(_includes_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n\n return false;\n }\n\n return true;\n }\n\n case 'undefined':\n if (set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type] = true;\n }\n\n return false;\n }\n\n case 'object':\n if (item === null) {\n if (!set._items['null']) {\n if (shouldAdd) {\n set._items['null'] = true;\n }\n\n return false;\n }\n\n return true;\n }\n\n /* falls through */\n\n default:\n // reduce the search size of heterogeneous sets by creating buckets\n // for each type.\n type = Object.prototype.toString.call(item);\n\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n\n return false;\n } // scan through all previously applied items\n\n\n if (!Object(_includes_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n\n return false;\n }\n\n return true;\n }\n} // A simple Set type that honours R.equals semantics\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_Set);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_Set.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_aperture.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_aperture.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _aperture; });\nfunction _aperture(n, list) {\n var idx = 0;\n var limit = list.length - (n - 1);\n var acc = new Array(limit >= 0 ? limit : 0);\n\n while (idx < limit) {\n acc[idx] = Array.prototype.slice.call(list, idx, idx + n);\n idx += 1;\n }\n\n return acc;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_aperture.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_arity.js": +/*!**************************************************!*\ + !*** ./node_modules/ramda/es/internal/_arity.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _arity; });\nfunction _arity(n, fn) {\n /* eslint-disable no-unused-vars */\n switch (n) {\n case 0:\n return function () {\n return fn.apply(this, arguments);\n };\n\n case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\n };\n\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.apply(this, arguments);\n };\n\n default:\n throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\n }\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_arity.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_arrayFromIterator.js": +/*!**************************************************************!*\ + !*** ./node_modules/ramda/es/internal/_arrayFromIterator.js ***! + \**************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _arrayFromIterator; });\nfunction _arrayFromIterator(iter) {\n var list = [];\n var next;\n\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n\n return list;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_arrayFromIterator.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_assertPromise.js": +/*!**********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_assertPromise.js ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _assertPromise; });\n/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isFunction.js */ \"./node_modules/ramda/es/internal/_isFunction.js\");\n/* harmony import */ var _toString_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_toString.js */ \"./node_modules/ramda/es/internal/_toString.js\");\n\n\nfunction _assertPromise(name, p) {\n if (p == null || !Object(_isFunction_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(p.then)) {\n throw new TypeError('`' + name + '` expected a Promise, received ' + Object(_toString_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(p, []));\n }\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_assertPromise.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_checkForMethod.js": +/*!***********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_checkForMethod.js ***! + \***********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _checkForMethod; });\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArray.js */ \"./node_modules/ramda/es/internal/_isArray.js\");\n\n/**\n * This checks whether a function has a [methodname] function. If it isn't an\n * array it will execute that function otherwise it will default to the ramda\n * implementation.\n *\n * @private\n * @param {Function} fn ramda implemtation\n * @param {String} methodname property to check for a custom implementation\n * @return {Object} Whatever the return value of the method is.\n */\n\nfunction _checkForMethod(methodname, fn) {\n return function () {\n var length = arguments.length;\n\n if (length === 0) {\n return fn();\n }\n\n var obj = arguments[length - 1];\n return Object(_isArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(obj) || typeof obj[methodname] !== 'function' ? fn.apply(this, arguments) : obj[methodname].apply(obj, Array.prototype.slice.call(arguments, 0, length - 1));\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_checkForMethod.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_clone.js": +/*!**************************************************!*\ + !*** ./node_modules/ramda/es/internal/_clone.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _clone; });\n/* harmony import */ var _cloneRegExp_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cloneRegExp.js */ \"./node_modules/ramda/es/internal/_cloneRegExp.js\");\n/* harmony import */ var _type_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../type.js */ \"./node_modules/ramda/es/type.js\");\n\n\n/**\n * Copies an object.\n *\n * @private\n * @param {*} value The value to be copied\n * @param {Array} refFrom Array containing the source references\n * @param {Array} refTo Array containing the copied source references\n * @param {Boolean} deep Whether or not to perform deep cloning.\n * @return {*} The copied value.\n */\n\nfunction _clone(value, refFrom, refTo, deep) {\n var copy = function copy(copiedValue) {\n var len = refFrom.length;\n var idx = 0;\n\n while (idx < len) {\n if (value === refFrom[idx]) {\n return refTo[idx];\n }\n\n idx += 1;\n }\n\n refFrom[idx + 1] = value;\n refTo[idx + 1] = copiedValue;\n\n for (var key in value) {\n copiedValue[key] = deep ? _clone(value[key], refFrom, refTo, true) : value[key];\n }\n\n return copiedValue;\n };\n\n switch (Object(_type_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value)) {\n case 'Object':\n return copy({});\n\n case 'Array':\n return copy([]);\n\n case 'Date':\n return new Date(value.valueOf());\n\n case 'RegExp':\n return Object(_cloneRegExp_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value);\n\n default:\n return value;\n }\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_clone.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_cloneRegExp.js": +/*!********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_cloneRegExp.js ***! + \********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _cloneRegExp; });\nfunction _cloneRegExp(pattern) {\n return new RegExp(pattern.source, (pattern.global ? 'g' : '') + (pattern.ignoreCase ? 'i' : '') + (pattern.multiline ? 'm' : '') + (pattern.sticky ? 'y' : '') + (pattern.unicode ? 'u' : ''));\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_cloneRegExp.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_complement.js": +/*!*******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_complement.js ***! + \*******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _complement; });\nfunction _complement(f) {\n return function () {\n return !f.apply(this, arguments);\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_complement.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_concat.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_concat.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _concat; });\n/**\n * Private `concat` function to merge two array-like objects.\n *\n * @private\n * @param {Array|Arguments} [set1=[]] An array-like object.\n * @param {Array|Arguments} [set2=[]] An array-like object.\n * @return {Array} A new, merged array.\n * @example\n *\n * _concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n */\nfunction _concat(set1, set2) {\n set1 = set1 || [];\n set2 = set2 || [];\n var idx;\n var len1 = set1.length;\n var len2 = set2.length;\n var result = [];\n idx = 0;\n\n while (idx < len1) {\n result[result.length] = set1[idx];\n idx += 1;\n }\n\n idx = 0;\n\n while (idx < len2) {\n result[result.length] = set2[idx];\n idx += 1;\n }\n\n return result;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_concat.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_createPartialApplicator.js": +/*!********************************************************************!*\ + !*** ./node_modules/ramda/es/internal/_createPartialApplicator.js ***! + \********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _createPartialApplicator; });\n/* harmony import */ var _arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\nfunction _createPartialApplicator(concat) {\n return Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (fn, args) {\n return Object(_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Math.max(0, fn.length - args.length), function () {\n return fn.apply(this, concat(args, arguments));\n });\n });\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_createPartialApplicator.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_curry1.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_curry1.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _curry1; });\n/* harmony import */ var _isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isPlaceholder.js */ \"./node_modules/ramda/es/internal/_isPlaceholder.js\");\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nfunction _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_curry1.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_curry2.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_curry2.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _curry2; });\n/* harmony import */ var _curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isPlaceholder.js */ \"./node_modules/ramda/es/internal/_isPlaceholder.js\");\n\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nfunction _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n\n case 1:\n return Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(a) ? f2 : Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (_b) {\n return fn(a, _b);\n });\n\n default:\n return Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(a) && Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(b) ? f2 : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(a) ? Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (_a) {\n return fn(_a, b);\n }) : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(b) ? Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_curry2.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_curry3.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_curry3.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _curry3; });\n/* harmony import */ var _curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_isPlaceholder.js */ \"./node_modules/ramda/es/internal/_isPlaceholder.js\");\n\n\n\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nfunction _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n\n case 1:\n return Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a) ? f3 : Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (_b, _c) {\n return fn(a, _b, _c);\n });\n\n case 2:\n return Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a) && Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(b) ? f3 : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a) ? Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (_a, _c) {\n return fn(_a, b, _c);\n }) : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(b) ? Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (_b, _c) {\n return fn(a, _b, _c);\n }) : Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (_c) {\n return fn(a, b, _c);\n });\n\n default:\n return Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a) && Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(b) && Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(c) ? f3 : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a) && Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(b) ? Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (_a, _b) {\n return fn(_a, _b, c);\n }) : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a) && Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(c) ? Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (_a, _c) {\n return fn(_a, b, _c);\n }) : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(b) && Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(c) ? Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (_b, _c) {\n return fn(a, _b, _c);\n }) : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a) ? Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (_a) {\n return fn(_a, b, c);\n }) : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(b) ? Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (_b) {\n return fn(a, _b, c);\n }) : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(c) ? Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_curry3.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_curryN.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_curryN.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _curryN; });\n/* harmony import */ var _arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isPlaceholder.js */ \"./node_modules/ramda/es/internal/_isPlaceholder.js\");\n\n\n/**\n * Internal curryN function.\n *\n * @private\n * @category Function\n * @param {Number} length The arity of the curried function.\n * @param {Array} received An array of arguments received thus far.\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nfunction _curryN(length, received, fn) {\n return function () {\n var combined = [];\n var argsIdx = 0;\n var left = length;\n var combinedIdx = 0;\n\n while (combinedIdx < received.length || argsIdx < arguments.length) {\n var result;\n\n if (combinedIdx < received.length && (!Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(received[combinedIdx]) || argsIdx >= arguments.length)) {\n result = received[combinedIdx];\n } else {\n result = arguments[argsIdx];\n argsIdx += 1;\n }\n\n combined[combinedIdx] = result;\n\n if (!Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(result)) {\n left -= 1;\n }\n\n combinedIdx += 1;\n }\n\n return left <= 0 ? fn.apply(this, combined) : Object(_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(left, _curryN(length, combined, fn));\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_curryN.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_dispatchable.js": +/*!*********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_dispatchable.js ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _dispatchable; });\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArray.js */ \"./node_modules/ramda/es/internal/_isArray.js\");\n/* harmony import */ var _isTransformer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isTransformer.js */ \"./node_modules/ramda/es/internal/_isTransformer.js\");\n\n\n/**\n * Returns a function that dispatches with different strategies based on the\n * object in list position (last argument). If it is an array, executes [fn].\n * Otherwise, if it has a function with one of the given method names, it will\n * execute that function (functor case). Otherwise, if it is a transformer,\n * uses transducer [xf] to return a new transformer (transducer case).\n * Otherwise, it will default to executing [fn].\n *\n * @private\n * @param {Array} methodNames properties to check for a custom implementation\n * @param {Function} xf transducer to initialize if object is transformer\n * @param {Function} fn default ramda implementation\n * @return {Function} A function that dispatches on object in list position\n */\n\nfunction _dispatchable(methodNames, xf, fn) {\n return function () {\n if (arguments.length === 0) {\n return fn();\n }\n\n var args = Array.prototype.slice.call(arguments, 0);\n var obj = args.pop();\n\n if (!Object(_isArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(obj)) {\n var idx = 0;\n\n while (idx < methodNames.length) {\n if (typeof obj[methodNames[idx]] === 'function') {\n return obj[methodNames[idx]].apply(obj, args);\n }\n\n idx += 1;\n }\n\n if (Object(_isTransformer_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(obj)) {\n var transducer = xf.apply(null, args);\n return transducer(obj);\n }\n }\n\n return fn.apply(this, arguments);\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_dispatchable.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_dropLast.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_dropLast.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return dropLast; });\n/* harmony import */ var _take_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../take.js */ \"./node_modules/ramda/es/take.js\");\n\nfunction dropLast(n, xs) {\n return Object(_take_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(n < xs.length ? xs.length - n : 0, xs);\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_dropLast.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_dropLastWhile.js": +/*!**********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_dropLastWhile.js ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return dropLastWhile; });\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../slice.js */ \"./node_modules/ramda/es/slice.js\");\n\nfunction dropLastWhile(pred, xs) {\n var idx = xs.length - 1;\n\n while (idx >= 0 && pred(xs[idx])) {\n idx -= 1;\n }\n\n return Object(_slice_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(0, idx + 1, xs);\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_dropLastWhile.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_equals.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_equals.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _equals; });\n/* harmony import */ var _arrayFromIterator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_arrayFromIterator.js */ \"./node_modules/ramda/es/internal/_arrayFromIterator.js\");\n/* harmony import */ var _includesWith_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_includesWith.js */ \"./node_modules/ramda/es/internal/_includesWith.js\");\n/* harmony import */ var _functionName_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_functionName.js */ \"./node_modules/ramda/es/internal/_functionName.js\");\n/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n/* harmony import */ var _objectIs_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_objectIs.js */ \"./node_modules/ramda/es/internal/_objectIs.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../keys.js */ \"./node_modules/ramda/es/keys.js\");\n/* harmony import */ var _type_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../type.js */ \"./node_modules/ramda/es/type.js\");\n\n\n\n\n\n\n\n/**\n * private _uniqContentEquals function.\n * That function is checking equality of 2 iterator contents with 2 assumptions\n * - iterators lengths are the same\n * - iterators values are unique\n *\n * false-positive result will be returned for comparision of, e.g.\n * - [1,2,3] and [1,2,3,4]\n * - [1,1,1] and [1,2,3]\n * */\n\nfunction _uniqContentEquals(aIterator, bIterator, stackA, stackB) {\n var a = Object(_arrayFromIterator_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(aIterator);\n\n var b = Object(_arrayFromIterator_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(bIterator);\n\n function eq(_a, _b) {\n return _equals(_a, _b, stackA.slice(), stackB.slice());\n } // if *a* array contains any element that is not included in *b*\n\n\n return !Object(_includesWith_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (b, aItem) {\n return !Object(_includesWith_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(eq, aItem, b);\n }, b, a);\n}\n\nfunction _equals(a, b, stackA, stackB) {\n if (Object(_objectIs_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(a, b)) {\n return true;\n }\n\n var typeA = Object(_type_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(a);\n\n if (typeA !== Object(_type_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(b)) {\n return false;\n }\n\n if (a == null || b == null) {\n return false;\n }\n\n if (typeof a['fantasy-land/equals'] === 'function' || typeof b['fantasy-land/equals'] === 'function') {\n return typeof a['fantasy-land/equals'] === 'function' && a['fantasy-land/equals'](b) && typeof b['fantasy-land/equals'] === 'function' && b['fantasy-land/equals'](a);\n }\n\n if (typeof a.equals === 'function' || typeof b.equals === 'function') {\n return typeof a.equals === 'function' && a.equals(b) && typeof b.equals === 'function' && b.equals(a);\n }\n\n switch (typeA) {\n case 'Arguments':\n case 'Array':\n case 'Object':\n if (typeof a.constructor === 'function' && Object(_functionName_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a.constructor) === 'Promise') {\n return a === b;\n }\n\n break;\n\n case 'Boolean':\n case 'Number':\n case 'String':\n if (!(typeof a === typeof b && Object(_objectIs_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(a.valueOf(), b.valueOf()))) {\n return false;\n }\n\n break;\n\n case 'Date':\n if (!Object(_objectIs_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(a.valueOf(), b.valueOf())) {\n return false;\n }\n\n break;\n\n case 'Error':\n return a.name === b.name && a.message === b.message;\n\n case 'RegExp':\n if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) {\n return false;\n }\n\n break;\n }\n\n var idx = stackA.length - 1;\n\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n\n idx -= 1;\n }\n\n switch (typeA) {\n case 'Map':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));\n\n case 'Set':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));\n\n case 'Arguments':\n case 'Array':\n case 'Object':\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'Error':\n case 'RegExp':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'ArrayBuffer':\n break;\n\n default:\n // Values of other types are only equal if identical.\n return false;\n }\n\n var keysA = Object(_keys_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(a);\n\n if (keysA.length !== Object(_keys_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(b).length) {\n return false;\n }\n\n var extendedStackA = stackA.concat([a]);\n var extendedStackB = stackB.concat([b]);\n idx = keysA.length - 1;\n\n while (idx >= 0) {\n var key = keysA[idx];\n\n if (!(Object(_has_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n\n idx -= 1;\n }\n\n return true;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_equals.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_filter.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_filter.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _filter; });\nfunction _filter(fn, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n\n while (idx < len) {\n if (fn(list[idx])) {\n result[result.length] = list[idx];\n }\n\n idx += 1;\n }\n\n return result;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_filter.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_flatCat.js": +/*!****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_flatCat.js ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _forceReduced_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_forceReduced.js */ \"./node_modules/ramda/es/internal/_forceReduced.js\");\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isArrayLike.js */ \"./node_modules/ramda/es/internal/_isArrayLike.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\n\nvar preservingReduced = function (xf) {\n return {\n '@@transducer/init': _xfBase_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].init,\n '@@transducer/result': function (result) {\n return xf['@@transducer/result'](result);\n },\n '@@transducer/step': function (result, input) {\n var ret = xf['@@transducer/step'](result, input);\n return ret['@@transducer/reduced'] ? Object(_forceReduced_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(ret) : ret;\n }\n };\n};\n\nvar _flatCat = function _xcat(xf) {\n var rxf = preservingReduced(xf);\n return {\n '@@transducer/init': _xfBase_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].init,\n '@@transducer/result': function (result) {\n return rxf['@@transducer/result'](result);\n },\n '@@transducer/step': function (result, input) {\n return !Object(_isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(input) ? Object(_reduce_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(rxf, result, [input]) : Object(_reduce_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(rxf, result, input);\n }\n };\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_flatCat);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_flatCat.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_forceReduced.js": +/*!*********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_forceReduced.js ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _forceReduced; });\nfunction _forceReduced(x) {\n return {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_forceReduced.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_functionName.js": +/*!*********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_functionName.js ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _functionName; });\nfunction _functionName(f) {\n // String(x => x) evaluates to \"x => x\", so the pattern may not match.\n var match = String(f).match(/^function (\\w*)/);\n return match == null ? '' : match[1];\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_functionName.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_has.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/internal/_has.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _has; });\nfunction _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_has.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_identity.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_identity.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _identity; });\nfunction _identity(x) {\n return x;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_identity.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_includes.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_includes.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _includes; });\n/* harmony import */ var _indexOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_indexOf.js */ \"./node_modules/ramda/es/internal/_indexOf.js\");\n\nfunction _includes(a, list) {\n return Object(_indexOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(list, a, 0) >= 0;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_includes.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_includesWith.js": +/*!*********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_includesWith.js ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _includesWith; });\nfunction _includesWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_includesWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_indexOf.js": +/*!****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_indexOf.js ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _indexOf; });\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../equals.js */ \"./node_modules/ramda/es/equals.js\");\n\nfunction _indexOf(list, a, idx) {\n var inf, item; // Array.prototype.indexOf doesn't exist below IE9\n\n if (typeof list.indexOf === 'function') {\n switch (typeof a) {\n case 'number':\n if (a === 0) {\n // manually crawl the list to distinguish between +0 and -0\n inf = 1 / a;\n\n while (idx < list.length) {\n item = list[idx];\n\n if (item === 0 && 1 / item === inf) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n } else if (a !== a) {\n // NaN\n while (idx < list.length) {\n item = list[idx];\n\n if (typeof item === 'number' && item !== item) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n } // non-zero numbers can utilise Set\n\n\n return list.indexOf(a, idx);\n // all these types can utilise Set\n\n case 'string':\n case 'boolean':\n case 'function':\n case 'undefined':\n return list.indexOf(a, idx);\n\n case 'object':\n if (a === null) {\n // null can utilise Set\n return list.indexOf(a, idx);\n }\n\n }\n } // anything else not covered above, defer to R.equals\n\n\n while (idx < list.length) {\n if (Object(_equals_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(list[idx], a)) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_indexOf.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isArguments.js": +/*!********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isArguments.js ***! + \********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n\nvar toString = Object.prototype.toString;\n\nvar _isArguments =\n/*#__PURE__*/\nfunction () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return Object(_has_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('callee', x);\n };\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_isArguments);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isArguments.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isArray.js": +/*!****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isArray.js ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = (Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n});\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isArray.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isArrayLike.js": +/*!********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isArrayLike.js ***! + \********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isArray.js */ \"./node_modules/ramda/es/internal/_isArray.js\");\n/* harmony import */ var _isString_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_isString.js */ \"./node_modules/ramda/es/internal/_isString.js\");\n\n\n\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @private\n * @category Type\n * @category List\n * @sig * -> Boolean\n * @param {*} x The object to test.\n * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise.\n * @example\n *\n * _isArrayLike([]); //=> true\n * _isArrayLike(true); //=> false\n * _isArrayLike({}); //=> false\n * _isArrayLike({length: 10}); //=> false\n * _isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n */\n\nvar _isArrayLike =\n/*#__PURE__*/\nObject(_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function isArrayLike(x) {\n if (Object(_isArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(x)) {\n return true;\n }\n\n if (!x) {\n return false;\n }\n\n if (typeof x !== 'object') {\n return false;\n }\n\n if (Object(_isString_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(x)) {\n return false;\n }\n\n if (x.nodeType === 1) {\n return !!x.length;\n }\n\n if (x.length === 0) {\n return true;\n }\n\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n\n return false;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_isArrayLike);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isArrayLike.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isFunction.js": +/*!*******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isFunction.js ***! + \*******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _isFunction; });\nfunction _isFunction(x) {\n var type = Object.prototype.toString.call(x);\n return type === '[object Function]' || type === '[object AsyncFunction]' || type === '[object GeneratorFunction]' || type === '[object AsyncGeneratorFunction]';\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isFunction.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isInteger.js": +/*!******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isInteger.js ***! + \******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = (Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n});\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isInteger.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isNumber.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isNumber.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _isNumber; });\nfunction _isNumber(x) {\n return Object.prototype.toString.call(x) === '[object Number]';\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isNumber.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isObject.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isObject.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _isObject; });\nfunction _isObject(x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isObject.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isPlaceholder.js": +/*!**********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isPlaceholder.js ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _isPlaceholder; });\nfunction _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isPlaceholder.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isRegExp.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isRegExp.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _isRegExp; });\nfunction _isRegExp(x) {\n return Object.prototype.toString.call(x) === '[object RegExp]';\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isRegExp.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isString.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isString.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _isString; });\nfunction _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isString.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isTransformer.js": +/*!**********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isTransformer.js ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _isTransformer; });\nfunction _isTransformer(obj) {\n return obj != null && typeof obj['@@transducer/step'] === 'function';\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isTransformer.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_makeFlat.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_makeFlat.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _makeFlat; });\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArrayLike.js */ \"./node_modules/ramda/es/internal/_isArrayLike.js\");\n\n/**\n * `_makeFlat` is a helper function that returns a one-level or fully recursive\n * function based on the flag passed in.\n *\n * @private\n */\n\nfunction _makeFlat(recursive) {\n return function flatt(list) {\n var value, jlen, j;\n var result = [];\n var idx = 0;\n var ilen = list.length;\n\n while (idx < ilen) {\n if (Object(_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(list[idx])) {\n value = recursive ? flatt(list[idx]) : list[idx];\n j = 0;\n jlen = value.length;\n\n while (j < jlen) {\n result[result.length] = value[j];\n j += 1;\n }\n } else {\n result[result.length] = list[idx];\n }\n\n idx += 1;\n }\n\n return result;\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_makeFlat.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_map.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/internal/_map.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _map; });\nfunction _map(fn, functor) {\n var idx = 0;\n var len = functor.length;\n var result = Array(len);\n\n while (idx < len) {\n result[idx] = fn(functor[idx]);\n idx += 1;\n }\n\n return result;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_map.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_objectAssign.js": +/*!*********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_objectAssign.js ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n // Based on https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n\nfunction _objectAssign(target) {\n if (target == null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n var idx = 1;\n var length = arguments.length;\n\n while (idx < length) {\n var source = arguments[idx];\n\n if (source != null) {\n for (var nextKey in source) {\n if (Object(_has_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(nextKey, source)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n\n idx += 1;\n }\n\n return output;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (typeof Object.assign === 'function' ? Object.assign : _objectAssign);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_objectAssign.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_objectIs.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_objectIs.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction _objectIs(a, b) {\n // SameValue algorithm\n if (a === b) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return a !== 0 || 1 / a === 1 / b;\n } else {\n // Step 6.a: NaN == NaN\n return a !== a && b !== b;\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (typeof Object.is === 'function' ? Object.is : _objectIs);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_objectIs.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_of.js": +/*!***********************************************!*\ + !*** ./node_modules/ramda/es/internal/_of.js ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _of; });\nfunction _of(x) {\n return [x];\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_of.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_pipe.js": +/*!*************************************************!*\ + !*** ./node_modules/ramda/es/internal/_pipe.js ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _pipe; });\nfunction _pipe(f, g) {\n return function () {\n return g.call(this, f.apply(this, arguments));\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_pipe.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_pipeP.js": +/*!**************************************************!*\ + !*** ./node_modules/ramda/es/internal/_pipeP.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _pipeP; });\nfunction _pipeP(f, g) {\n return function () {\n var ctx = this;\n return f.apply(ctx, arguments).then(function (x) {\n return g.call(ctx, x);\n });\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_pipeP.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_quote.js": +/*!**************************************************!*\ + !*** ./node_modules/ramda/es/internal/_quote.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _quote; });\nfunction _quote(s) {\n var escaped = s.replace(/\\\\/g, '\\\\\\\\').replace(/[\\b]/g, '\\\\b') // \\b matches word boundary; [\\b] matches backspace\n .replace(/\\f/g, '\\\\f').replace(/\\n/g, '\\\\n').replace(/\\r/g, '\\\\r').replace(/\\t/g, '\\\\t').replace(/\\v/g, '\\\\v').replace(/\\0/g, '\\\\0');\n return '\"' + escaped.replace(/\"/g, '\\\\\"') + '\"';\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_quote.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_reduce.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_reduce.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _reduce; });\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArrayLike.js */ \"./node_modules/ramda/es/internal/_isArrayLike.js\");\n/* harmony import */ var _xwrap_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xwrap.js */ \"./node_modules/ramda/es/internal/_xwrap.js\");\n/* harmony import */ var _bind_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../bind.js */ \"./node_modules/ramda/es/bind.js\");\n\n\n\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n idx += 1;\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n step = iter.next();\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](Object(_bind_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\nfunction _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = Object(_xwrap_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(fn);\n }\n\n if (Object(_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(list)) {\n return _arrayReduce(fn, acc, list);\n }\n\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_reduce.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_reduced.js": +/*!****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_reduced.js ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _reduced; });\nfunction _reduced(x) {\n return x && x['@@transducer/reduced'] ? x : {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_reduced.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_stepCat.js": +/*!****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_stepCat.js ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _stepCat; });\n/* harmony import */ var _objectAssign_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_objectAssign.js */ \"./node_modules/ramda/es/internal/_objectAssign.js\");\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_identity.js */ \"./node_modules/ramda/es/internal/_identity.js\");\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_isArrayLike.js */ \"./node_modules/ramda/es/internal/_isArrayLike.js\");\n/* harmony import */ var _isTransformer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_isTransformer.js */ \"./node_modules/ramda/es/internal/_isTransformer.js\");\n/* harmony import */ var _objOf_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../objOf.js */ \"./node_modules/ramda/es/objOf.js\");\n\n\n\n\n\nvar _stepCatArray = {\n '@@transducer/init': Array,\n '@@transducer/step': function (xs, x) {\n xs.push(x);\n return xs;\n },\n '@@transducer/result': _identity_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n};\nvar _stepCatString = {\n '@@transducer/init': String,\n '@@transducer/step': function (a, b) {\n return a + b;\n },\n '@@transducer/result': _identity_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n};\nvar _stepCatObject = {\n '@@transducer/init': Object,\n '@@transducer/step': function (result, input) {\n return Object(_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(result, Object(_isArrayLike_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(input) ? Object(_objOf_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(input[0], input[1]) : input);\n },\n '@@transducer/result': _identity_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n};\nfunction _stepCat(obj) {\n if (Object(_isTransformer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(obj)) {\n return obj;\n }\n\n if (Object(_isArrayLike_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(obj)) {\n return _stepCatArray;\n }\n\n if (typeof obj === 'string') {\n return _stepCatString;\n }\n\n if (typeof obj === 'object') {\n return _stepCatObject;\n }\n\n throw new Error('Cannot create transformer for ' + obj);\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_stepCat.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_toISOString.js": +/*!********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_toISOString.js ***! + \********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Polyfill from .\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\n\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_toISOString);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_toISOString.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_toString.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_toString.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _toString; });\n/* harmony import */ var _includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_includes.js */ \"./node_modules/ramda/es/internal/_includes.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_map.js */ \"./node_modules/ramda/es/internal/_map.js\");\n/* harmony import */ var _quote_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_quote.js */ \"./node_modules/ramda/es/internal/_quote.js\");\n/* harmony import */ var _toISOString_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_toISOString.js */ \"./node_modules/ramda/es/internal/_toISOString.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../keys.js */ \"./node_modules/ramda/es/keys.js\");\n/* harmony import */ var _reject_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../reject.js */ \"./node_modules/ramda/es/reject.js\");\n\n\n\n\n\n\nfunction _toString(x, seen) {\n var recur = function recur(y) {\n var xs = seen.concat([x]);\n return Object(_includes_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(y, xs) ? '' : _toString(y, xs);\n }; // mapPairs :: (Object, [String]) -> [String]\n\n\n var mapPairs = function (obj, keys) {\n return Object(_map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (k) {\n return Object(_quote_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(k) + ': ' + recur(obj[k]);\n }, keys.slice().sort());\n };\n\n switch (Object.prototype.toString.call(x)) {\n case '[object Arguments]':\n return '(function() { return arguments; }(' + Object(_map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(recur, x).join(', ') + '))';\n\n case '[object Array]':\n return '[' + Object(_map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(recur, x).concat(mapPairs(x, Object(_reject_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(function (k) {\n return /^\\d+$/.test(k);\n }, Object(_keys_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(x)))).join(', ') + ']';\n\n case '[object Boolean]':\n return typeof x === 'object' ? 'new Boolean(' + recur(x.valueOf()) + ')' : x.toString();\n\n case '[object Date]':\n return 'new Date(' + (isNaN(x.valueOf()) ? recur(NaN) : Object(_quote_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Object(_toISOString_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(x))) + ')';\n\n case '[object Null]':\n return 'null';\n\n case '[object Number]':\n return typeof x === 'object' ? 'new Number(' + recur(x.valueOf()) + ')' : 1 / x === -Infinity ? '-0' : x.toString(10);\n\n case '[object String]':\n return typeof x === 'object' ? 'new String(' + recur(x.valueOf()) + ')' : Object(_quote_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(x);\n\n case '[object Undefined]':\n return 'undefined';\n\n default:\n if (typeof x.toString === 'function') {\n var repr = x.toString();\n\n if (repr !== '[object Object]') {\n return repr;\n }\n }\n\n return '{' + mapPairs(x, Object(_keys_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(x)).join(', ') + '}';\n }\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_toString.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xall.js": +/*!*************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xall.js ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _reduced_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_reduced.js */ \"./node_modules/ramda/es/internal/_reduced.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\nvar XAll =\n/*#__PURE__*/\nfunction () {\n function XAll(f, xf) {\n this.xf = xf;\n this.f = f;\n this.all = true;\n }\n\n XAll.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init;\n\n XAll.prototype['@@transducer/result'] = function (result) {\n if (this.all) {\n result = this.xf['@@transducer/step'](result, true);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XAll.prototype['@@transducer/step'] = function (result, input) {\n if (!this.f(input)) {\n this.all = false;\n result = Object(_reduced_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this.xf['@@transducer/step'](result, false));\n }\n\n return result;\n };\n\n return XAll;\n}();\n\nvar _xall =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xall(f, xf) {\n return new XAll(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xall);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xall.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xany.js": +/*!*************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xany.js ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _reduced_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_reduced.js */ \"./node_modules/ramda/es/internal/_reduced.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\nvar XAny =\n/*#__PURE__*/\nfunction () {\n function XAny(f, xf) {\n this.xf = xf;\n this.f = f;\n this.any = false;\n }\n\n XAny.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init;\n\n XAny.prototype['@@transducer/result'] = function (result) {\n if (!this.any) {\n result = this.xf['@@transducer/step'](result, false);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XAny.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.any = true;\n result = Object(_reduced_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this.xf['@@transducer/step'](result, true));\n }\n\n return result;\n };\n\n return XAny;\n}();\n\nvar _xany =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xany(f, xf) {\n return new XAny(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xany);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xany.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xaperture.js": +/*!******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xaperture.js ***! + \******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\nvar XAperture =\n/*#__PURE__*/\nfunction () {\n function XAperture(n, xf) {\n this.xf = xf;\n this.pos = 0;\n this.full = false;\n this.acc = new Array(n);\n }\n\n XAperture.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init;\n\n XAperture.prototype['@@transducer/result'] = function (result) {\n this.acc = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XAperture.prototype['@@transducer/step'] = function (result, input) {\n this.store(input);\n return this.full ? this.xf['@@transducer/step'](result, this.getCopy()) : result;\n };\n\n XAperture.prototype.store = function (input) {\n this.acc[this.pos] = input;\n this.pos += 1;\n\n if (this.pos === this.acc.length) {\n this.pos = 0;\n this.full = true;\n }\n };\n\n XAperture.prototype.getCopy = function () {\n return Object(_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Array.prototype.slice.call(this.acc, this.pos), Array.prototype.slice.call(this.acc, 0, this.pos));\n };\n\n return XAperture;\n}();\n\nvar _xaperture =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function _xaperture(n, xf) {\n return new XAperture(n, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xaperture);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xaperture.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xchain.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xchain.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _flatCat_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_flatCat.js */ \"./node_modules/ramda/es/internal/_flatCat.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../map.js */ \"./node_modules/ramda/es/map.js\");\n\n\n\n\nvar _xchain =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xchain(f, xf) {\n return Object(_map_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(f, Object(_flatCat_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(xf));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xchain);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xchain.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xdrop.js": +/*!**************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xdrop.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\nvar XDrop =\n/*#__PURE__*/\nfunction () {\n function XDrop(n, xf) {\n this.xf = xf;\n this.n = n;\n }\n\n XDrop.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n XDrop.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].result;\n\n XDrop.prototype['@@transducer/step'] = function (result, input) {\n if (this.n > 0) {\n this.n -= 1;\n return result;\n }\n\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XDrop;\n}();\n\nvar _xdrop =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xdrop(n, xf) {\n return new XDrop(n, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xdrop);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xdrop.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xdropLast.js": +/*!******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xdropLast.js ***! + \******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\nvar XDropLast =\n/*#__PURE__*/\nfunction () {\n function XDropLast(n, xf) {\n this.xf = xf;\n this.pos = 0;\n this.full = false;\n this.acc = new Array(n);\n }\n\n XDropLast.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n\n XDropLast.prototype['@@transducer/result'] = function (result) {\n this.acc = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XDropLast.prototype['@@transducer/step'] = function (result, input) {\n if (this.full) {\n result = this.xf['@@transducer/step'](result, this.acc[this.pos]);\n }\n\n this.store(input);\n return result;\n };\n\n XDropLast.prototype.store = function (input) {\n this.acc[this.pos] = input;\n this.pos += 1;\n\n if (this.pos === this.acc.length) {\n this.pos = 0;\n this.full = true;\n }\n };\n\n return XDropLast;\n}();\n\nvar _xdropLast =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xdropLast(n, xf) {\n return new XDropLast(n, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xdropLast);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xdropLast.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xdropLastWhile.js": +/*!***********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xdropLastWhile.js ***! + \***********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\nvar XDropLastWhile =\n/*#__PURE__*/\nfunction () {\n function XDropLastWhile(fn, xf) {\n this.f = fn;\n this.retained = [];\n this.xf = xf;\n }\n\n XDropLastWhile.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init;\n\n XDropLastWhile.prototype['@@transducer/result'] = function (result) {\n this.retained = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XDropLastWhile.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.retain(result, input) : this.flush(result, input);\n };\n\n XDropLastWhile.prototype.flush = function (result, input) {\n result = Object(_reduce_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this.xf['@@transducer/step'], result, this.retained);\n this.retained = [];\n return this.xf['@@transducer/step'](result, input);\n };\n\n XDropLastWhile.prototype.retain = function (result, input) {\n this.retained.push(input);\n return result;\n };\n\n return XDropLastWhile;\n}();\n\nvar _xdropLastWhile =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xdropLastWhile(fn, xf) {\n return new XDropLastWhile(fn, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xdropLastWhile);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xdropLastWhile.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xdropRepeatsWith.js": +/*!*************************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xdropRepeatsWith.js ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\nvar XDropRepeatsWith =\n/*#__PURE__*/\nfunction () {\n function XDropRepeatsWith(pred, xf) {\n this.xf = xf;\n this.pred = pred;\n this.lastValue = undefined;\n this.seenFirstValue = false;\n }\n\n XDropRepeatsWith.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n XDropRepeatsWith.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].result;\n\n XDropRepeatsWith.prototype['@@transducer/step'] = function (result, input) {\n var sameAsLast = false;\n\n if (!this.seenFirstValue) {\n this.seenFirstValue = true;\n } else if (this.pred(this.lastValue, input)) {\n sameAsLast = true;\n }\n\n this.lastValue = input;\n return sameAsLast ? result : this.xf['@@transducer/step'](result, input);\n };\n\n return XDropRepeatsWith;\n}();\n\nvar _xdropRepeatsWith =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xdropRepeatsWith(pred, xf) {\n return new XDropRepeatsWith(pred, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xdropRepeatsWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xdropRepeatsWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xdropWhile.js": +/*!*******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xdropWhile.js ***! + \*******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\nvar XDropWhile =\n/*#__PURE__*/\nfunction () {\n function XDropWhile(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XDropWhile.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n XDropWhile.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].result;\n\n XDropWhile.prototype['@@transducer/step'] = function (result, input) {\n if (this.f) {\n if (this.f(input)) {\n return result;\n }\n\n this.f = null;\n }\n\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XDropWhile;\n}();\n\nvar _xdropWhile =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xdropWhile(f, xf) {\n return new XDropWhile(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xdropWhile);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xdropWhile.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xfBase.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xfBase.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n init: function () {\n return this.xf['@@transducer/init']();\n },\n result: function (result) {\n return this.xf['@@transducer/result'](result);\n }\n});\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xfBase.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xfilter.js": +/*!****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xfilter.js ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\nvar XFilter =\n/*#__PURE__*/\nfunction () {\n function XFilter(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XFilter.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n XFilter.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].result;\n\n XFilter.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : result;\n };\n\n return XFilter;\n}();\n\nvar _xfilter =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xfilter(f, xf) {\n return new XFilter(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xfilter);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xfilter.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xfind.js": +/*!**************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xfind.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _reduced_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_reduced.js */ \"./node_modules/ramda/es/internal/_reduced.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\nvar XFind =\n/*#__PURE__*/\nfunction () {\n function XFind(f, xf) {\n this.xf = xf;\n this.f = f;\n this.found = false;\n }\n\n XFind.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init;\n\n XFind.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, void 0);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XFind.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.found = true;\n result = Object(_reduced_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this.xf['@@transducer/step'](result, input));\n }\n\n return result;\n };\n\n return XFind;\n}();\n\nvar _xfind =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xfind(f, xf) {\n return new XFind(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xfind);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xfind.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xfindIndex.js": +/*!*******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xfindIndex.js ***! + \*******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _reduced_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_reduced.js */ \"./node_modules/ramda/es/internal/_reduced.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\nvar XFindIndex =\n/*#__PURE__*/\nfunction () {\n function XFindIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.found = false;\n }\n\n XFindIndex.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init;\n\n XFindIndex.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, -1);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XFindIndex.prototype['@@transducer/step'] = function (result, input) {\n this.idx += 1;\n\n if (this.f(input)) {\n this.found = true;\n result = Object(_reduced_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this.xf['@@transducer/step'](result, this.idx));\n }\n\n return result;\n };\n\n return XFindIndex;\n}();\n\nvar _xfindIndex =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xfindIndex(f, xf) {\n return new XFindIndex(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xfindIndex);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xfindIndex.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xfindLast.js": +/*!******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xfindLast.js ***! + \******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\nvar XFindLast =\n/*#__PURE__*/\nfunction () {\n function XFindLast(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XFindLast.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n\n XFindLast.prototype['@@transducer/result'] = function (result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.last));\n };\n\n XFindLast.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.last = input;\n }\n\n return result;\n };\n\n return XFindLast;\n}();\n\nvar _xfindLast =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xfindLast(f, xf) {\n return new XFindLast(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xfindLast);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xfindLast.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xfindLastIndex.js": +/*!***********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xfindLastIndex.js ***! + \***********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\nvar XFindLastIndex =\n/*#__PURE__*/\nfunction () {\n function XFindLastIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.lastIdx = -1;\n }\n\n XFindLastIndex.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n\n XFindLastIndex.prototype['@@transducer/result'] = function (result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.lastIdx));\n };\n\n XFindLastIndex.prototype['@@transducer/step'] = function (result, input) {\n this.idx += 1;\n\n if (this.f(input)) {\n this.lastIdx = this.idx;\n }\n\n return result;\n };\n\n return XFindLastIndex;\n}();\n\nvar _xfindLastIndex =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xfindLastIndex(f, xf) {\n return new XFindLastIndex(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xfindLastIndex);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xfindLastIndex.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xmap.js": +/*!*************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xmap.js ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\nvar XMap =\n/*#__PURE__*/\nfunction () {\n function XMap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XMap.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n XMap.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].result;\n\n XMap.prototype['@@transducer/step'] = function (result, input) {\n return this.xf['@@transducer/step'](result, this.f(input));\n };\n\n return XMap;\n}();\n\nvar _xmap =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xmap(f, xf) {\n return new XMap(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xmap);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xmap.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xreduceBy.js": +/*!******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xreduceBy.js ***! + \******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curryN.js */ \"./node_modules/ramda/es/internal/_curryN.js\");\n/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\nvar XReduceBy =\n/*#__PURE__*/\nfunction () {\n function XReduceBy(valueFn, valueAcc, keyFn, xf) {\n this.valueFn = valueFn;\n this.valueAcc = valueAcc;\n this.keyFn = keyFn;\n this.xf = xf;\n this.inputs = {};\n }\n\n XReduceBy.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init;\n\n XReduceBy.prototype['@@transducer/result'] = function (result) {\n var key;\n\n for (key in this.inputs) {\n if (Object(_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(key, this.inputs)) {\n result = this.xf['@@transducer/step'](result, this.inputs[key]);\n\n if (result['@@transducer/reduced']) {\n result = result['@@transducer/value'];\n break;\n }\n }\n }\n\n this.inputs = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XReduceBy.prototype['@@transducer/step'] = function (result, input) {\n var key = this.keyFn(input);\n this.inputs[key] = this.inputs[key] || [key, this.valueAcc];\n this.inputs[key][1] = this.valueFn(this.inputs[key][1], input);\n return result;\n };\n\n return XReduceBy;\n}();\n\nvar _xreduceBy =\n/*#__PURE__*/\nObject(_curryN_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(4, [], function _xreduceBy(valueFn, valueAcc, keyFn, xf) {\n return new XReduceBy(valueFn, valueAcc, keyFn, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xreduceBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xreduceBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xtake.js": +/*!**************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xtake.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _reduced_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_reduced.js */ \"./node_modules/ramda/es/internal/_reduced.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\nvar XTake =\n/*#__PURE__*/\nfunction () {\n function XTake(n, xf) {\n this.xf = xf;\n this.n = n;\n this.i = 0;\n }\n\n XTake.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init;\n XTake.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].result;\n\n XTake.prototype['@@transducer/step'] = function (result, input) {\n this.i += 1;\n var ret = this.n === 0 ? result : this.xf['@@transducer/step'](result, input);\n return this.n >= 0 && this.i >= this.n ? Object(_reduced_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(ret) : ret;\n };\n\n return XTake;\n}();\n\nvar _xtake =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xtake(n, xf) {\n return new XTake(n, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xtake);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xtake.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xtakeWhile.js": +/*!*******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xtakeWhile.js ***! + \*******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _reduced_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_reduced.js */ \"./node_modules/ramda/es/internal/_reduced.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\nvar XTakeWhile =\n/*#__PURE__*/\nfunction () {\n function XTakeWhile(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XTakeWhile.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init;\n XTakeWhile.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].result;\n\n XTakeWhile.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : Object(_reduced_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(result);\n };\n\n return XTakeWhile;\n}();\n\nvar _xtakeWhile =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xtakeWhile(f, xf) {\n return new XTakeWhile(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xtakeWhile);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xtakeWhile.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xtap.js": +/*!*************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xtap.js ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\nvar XTap =\n/*#__PURE__*/\nfunction () {\n function XTap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XTap.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n XTap.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].result;\n\n XTap.prototype['@@transducer/step'] = function (result, input) {\n this.f(input);\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XTap;\n}();\n\nvar _xtap =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xtap(f, xf) {\n return new XTap(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xtap);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xtap.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xwrap.js": +/*!**************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xwrap.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _xwrap; });\nvar XWrap =\n/*#__PURE__*/\nfunction () {\n function XWrap(fn) {\n this.f = fn;\n }\n\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n\n return XWrap;\n}();\n\nfunction _xwrap(fn) {\n return new XWrap(fn);\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xwrap.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/intersection.js": +/*!***********************************************!*\ + !*** ./node_modules/ramda/es/intersection.js ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_includes.js */ \"./node_modules/ramda/es/internal/_includes.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_filter.js */ \"./node_modules/ramda/es/internal/_filter.js\");\n/* harmony import */ var _flip_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./flip.js */ \"./node_modules/ramda/es/flip.js\");\n/* harmony import */ var _uniq_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./uniq.js */ \"./node_modules/ramda/es/uniq.js\");\n\n\n\n\n\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of those\n * elements common to both lists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The list of elements found in both `list1` and `list2`.\n * @see R.innerJoin\n * @example\n *\n * R.intersection([1,2,3,4], [7,6,5,4,3]); //=> [4, 3]\n */\n\nvar intersection =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function intersection(list1, list2) {\n var lookupList, filteredList;\n\n if (list1.length > list2.length) {\n lookupList = list1;\n filteredList = list2;\n } else {\n lookupList = list2;\n filteredList = list1;\n }\n\n return Object(_uniq_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(Object(_internal_filter_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Object(_flip_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_internal_includes_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(lookupList), filteredList));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (intersection);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/intersection.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/intersperse.js": +/*!**********************************************!*\ + !*** ./node_modules/ramda/es/intersperse.js ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_checkForMethod.js */ \"./node_modules/ramda/es/internal/_checkForMethod.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Creates a new list with the separator interposed between elements.\n *\n * Dispatches to the `intersperse` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} separator The element to add to the list.\n * @param {Array} list The list to be interposed.\n * @return {Array} The new list.\n * @example\n *\n * R.intersperse('a', ['b', 'n', 'n', 's']); //=> ['b', 'a', 'n', 'a', 'n', 'a', 's']\n */\n\nvar intersperse =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('intersperse', function intersperse(separator, list) {\n var out = [];\n var idx = 0;\n var length = list.length;\n\n while (idx < length) {\n if (idx === length - 1) {\n out.push(list[idx]);\n } else {\n out.push(list[idx], separator);\n }\n\n idx += 1;\n }\n\n return out;\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (intersperse);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/intersperse.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/into.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/into.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_clone_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_clone.js */ \"./node_modules/ramda/es/internal/_clone.js\");\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _internal_isTransformer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isTransformer.js */ \"./node_modules/ramda/es/internal/_isTransformer.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _internal_stepCat_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./internal/_stepCat.js */ \"./node_modules/ramda/es/internal/_stepCat.js\");\n\n\n\n\n\n/**\n * Transforms the items of the list with the transducer and appends the\n * transformed items to the accumulator using an appropriate iterator function\n * based on the accumulator type.\n *\n * The accumulator can be an array, string, object or a transformer. Iterated\n * items will be appended to arrays and concatenated to strings. Objects will\n * be merged directly or 2-item arrays will be merged as key, value pairs.\n *\n * The accumulator can also be a transformer object that provides a 2-arity\n * reducing iterator function, step, 0-arity initial value function, init, and\n * 1-arity result extraction function result. The step function is used as the\n * iterator function in reduce. The result function is used to convert the\n * final accumulator into the return type and in most cases is R.identity. The\n * init function is used to provide the initial accumulator.\n *\n * The iteration is performed with [`R.reduce`](#reduce) after initializing the\n * transducer.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig a -> (b -> b) -> [c] -> a\n * @param {*} acc The initial accumulator value.\n * @param {Function} xf The transducer function. Receives a transformer and returns a transformer.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.transduce\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const transducer = R.compose(R.map(R.add(1)), R.take(2));\n *\n * R.into([], transducer, numbers); //=> [2, 3]\n *\n * const intoArray = R.into([]);\n * intoArray(transducer, numbers); //=> [2, 3]\n */\n\nvar into =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function into(acc, xf, list) {\n return Object(_internal_isTransformer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(acc) ? Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(xf(acc), acc['@@transducer/init'](), list) : Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(xf(Object(_internal_stepCat_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(acc)), Object(_internal_clone_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(acc, [], [], false), list);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (into);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/into.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/invert.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/invert.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/ramda/es/keys.js\");\n\n\n\n/**\n * Same as [`R.invertObj`](#invertObj), however this accounts for objects with\n * duplicate values by putting the values into an array.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {s: x} -> {x: [ s, ... ]}\n * @param {Object} obj The object or array to invert\n * @return {Object} out A new object with keys in an array.\n * @see R.invertObj\n * @example\n *\n * const raceResultsByFirstName = {\n * first: 'alice',\n * second: 'jake',\n * third: 'alice',\n * };\n * R.invert(raceResultsByFirstName);\n * //=> { 'alice': ['first', 'third'], 'jake':['second'] }\n */\n\nvar invert =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function invert(obj) {\n var props = Object(_keys_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(obj);\n var len = props.length;\n var idx = 0;\n var out = {};\n\n while (idx < len) {\n var key = props[idx];\n var val = obj[key];\n var list = Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(val, out) ? out[val] : out[val] = [];\n list[list.length] = key;\n idx += 1;\n }\n\n return out;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (invert);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/invert.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/invertObj.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/invertObj.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/ramda/es/keys.js\");\n\n\n/**\n * Returns a new object with the keys of the given object as values, and the\n * values of the given object, which are coerced to strings, as keys. Note\n * that the last key found is preferred when handling the same value.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {s: x} -> {x: s}\n * @param {Object} obj The object or array to invert\n * @return {Object} out A new object\n * @see R.invert\n * @example\n *\n * const raceResults = {\n * first: 'alice',\n * second: 'jake'\n * };\n * R.invertObj(raceResults);\n * //=> { 'alice': 'first', 'jake':'second' }\n *\n * // Alternatively:\n * const raceResults = ['alice', 'jake'];\n * R.invertObj(raceResults);\n * //=> { 'alice': '0', 'jake':'1' }\n */\n\nvar invertObj =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function invertObj(obj) {\n var props = Object(_keys_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(obj);\n var len = props.length;\n var idx = 0;\n var out = {};\n\n while (idx < len) {\n var key = props[idx];\n out[obj[key]] = key;\n idx += 1;\n }\n\n return out;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (invertObj);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/invertObj.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/invoker.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/invoker.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isFunction.js */ \"./node_modules/ramda/es/internal/_isFunction.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony import */ var _toString_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./toString.js */ \"./node_modules/ramda/es/toString.js\");\n\n\n\n\n/**\n * Turns a named method with a specified arity into a function that can be\n * called directly supplied with arguments and a target object.\n *\n * The returned function is curried and accepts `arity + 1` parameters where\n * the final parameter is the target object.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig Number -> String -> (a -> b -> ... -> n -> Object -> *)\n * @param {Number} arity Number of arguments the returned function should take\n * before the target object.\n * @param {String} method Name of any of the target object's methods to call.\n * @return {Function} A new curried function.\n * @see R.construct\n * @example\n *\n * const sliceFrom = R.invoker(1, 'slice');\n * sliceFrom(6, 'abcdefghijklm'); //=> 'ghijklm'\n * const sliceFrom6 = R.invoker(2, 'slice')(6);\n * sliceFrom6(8, 'abcdefghijklm'); //=> 'gh'\n *\n * const dog = {\n * speak: async () => 'Woof!'\n * };\n * const speak = R.invoker(0, 'speak');\n * speak(dog).then(console.log) //~> 'Woof!'\n *\n * @symb R.invoker(0, 'method')(o) = o['method']()\n * @symb R.invoker(1, 'method')(a, o) = o['method'](a)\n * @symb R.invoker(2, 'method')(a, b, o) = o['method'](a, b)\n */\n\nvar invoker =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function invoker(arity, method) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(arity + 1, function () {\n var target = arguments[arity];\n\n if (target != null && Object(_internal_isFunction_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(target[method])) {\n return target[method].apply(target, Array.prototype.slice.call(arguments, 0, arity));\n }\n\n throw new TypeError(Object(_toString_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(target) + ' does not have a method named \"' + method + '\"');\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (invoker);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/invoker.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/is.js": +/*!*************************************!*\ + !*** ./node_modules/ramda/es/is.js ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * See if an object (`val`) is an instance of the supplied constructor. This\n * function will check up the inheritance chain, if any.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Type\n * @sig (* -> {*}) -> a -> Boolean\n * @param {Object} ctor A constructor\n * @param {*} val The value to test\n * @return {Boolean}\n * @example\n *\n * R.is(Object, {}); //=> true\n * R.is(Number, 1); //=> true\n * R.is(Object, 1); //=> false\n * R.is(String, 's'); //=> true\n * R.is(String, new String('')); //=> true\n * R.is(Object, new String('')); //=> true\n * R.is(Object, 's'); //=> false\n * R.is(Number, {}); //=> false\n */\n\nvar is =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function is(Ctor, val) {\n return val != null && val.constructor === Ctor || val instanceof Ctor;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (is);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/is.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/isEmpty.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/isEmpty.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _empty_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./empty.js */ \"./node_modules/ramda/es/empty.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n\n\n\n/**\n * Returns `true` if the given value is its type's empty value; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> Boolean\n * @param {*} x\n * @return {Boolean}\n * @see R.empty\n * @example\n *\n * R.isEmpty([1, 2, 3]); //=> false\n * R.isEmpty([]); //=> true\n * R.isEmpty(''); //=> true\n * R.isEmpty(null); //=> false\n * R.isEmpty({}); //=> true\n * R.isEmpty({length: 0}); //=> false\n */\n\nvar isEmpty =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function isEmpty(x) {\n return x != null && Object(_equals_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(x, Object(_empty_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(x));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isEmpty);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/isEmpty.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/isNil.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/isNil.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Checks if the input value is `null` or `undefined`.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Type\n * @sig * -> Boolean\n * @param {*} x The value to test.\n * @return {Boolean} `true` if `x` is `undefined` or `null`, otherwise `false`.\n * @example\n *\n * R.isNil(null); //=> true\n * R.isNil(undefined); //=> true\n * R.isNil(0); //=> false\n * R.isNil([]); //=> false\n */\n\nvar isNil =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function isNil(x) {\n return x == null;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isNil);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/isNil.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/join.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/join.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _invoker_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./invoker.js */ \"./node_modules/ramda/es/invoker.js\");\n\n/**\n * Returns a string made by inserting the `separator` between each element and\n * concatenating all the elements into a single string.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig String -> [a] -> String\n * @param {Number|String} separator The string used to separate the elements.\n * @param {Array} xs The elements to join into a string.\n * @return {String} str The string made by concatenating `xs` with `separator`.\n * @see R.split\n * @example\n *\n * const spacer = R.join(' ');\n * spacer(['a', 2, 3.4]); //=> 'a 2 3.4'\n * R.join('|', [1, 2, 3]); //=> '1|2|3'\n */\n\nvar join =\n/*#__PURE__*/\nObject(_invoker_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(1, 'join');\n/* harmony default export */ __webpack_exports__[\"default\"] = (join);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/join.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/juxt.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/juxt.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _converge_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./converge.js */ \"./node_modules/ramda/es/converge.js\");\n\n\n/**\n * juxt applies a list of functions to a list of values.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Function\n * @sig [(a, b, ..., m) -> n] -> ((a, b, ..., m) -> [n])\n * @param {Array} fns An array of functions\n * @return {Function} A function that returns a list of values after applying each of the original `fns` to its parameters.\n * @see R.applySpec\n * @example\n *\n * const getRange = R.juxt([Math.min, Math.max]);\n * getRange(3, 4, 9, -3); //=> [-3, 9]\n * @symb R.juxt([f, g, h])(a, b) = [f(a, b), g(a, b), h(a, b)]\n */\n\nvar juxt =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function juxt(fns) {\n return Object(_converge_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function () {\n return Array.prototype.slice.call(arguments, 0);\n }, fns);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (juxt);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/juxt.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/keys.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/keys.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n/* harmony import */ var _internal_isArguments_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isArguments.js */ \"./node_modules/ramda/es/internal/_isArguments.js\");\n\n\n // cover IE < 9 keys issues\n\nvar hasEnumBug = !\n/*#__PURE__*/\n{\n toString: null\n}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; // Safari bug\n\nvar hasArgsEnumBug =\n/*#__PURE__*/\nfunction () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n};\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\n\n\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ?\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) :\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n\n var prop, nIdx;\n var ks = [];\n\n var checkArgsLength = hasArgsEnumBug && Object(_internal_isArguments_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(obj);\n\n for (prop in obj) {\n if (Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n\n if (Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n\n nIdx -= 1;\n }\n }\n\n return ks;\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (keys);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/keys.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/keysIn.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/keysIn.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Returns a list containing the names of all the properties of the supplied\n * object, including prototype properties.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own and prototype properties.\n * @see R.keys, R.valuesIn\n * @example\n *\n * const F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * const f = new F();\n * R.keysIn(f); //=> ['x', 'y']\n */\n\nvar keysIn =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function keysIn(obj) {\n var prop;\n var ks = [];\n\n for (prop in obj) {\n ks[ks.length] = prop;\n }\n\n return ks;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (keysIn);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/keysIn.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/last.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/last.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nth_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./nth.js */ \"./node_modules/ramda/es/nth.js\");\n\n/**\n * Returns the last element of the given list or string.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.init, R.head, R.tail\n * @example\n *\n * R.last(['fi', 'fo', 'fum']); //=> 'fum'\n * R.last([]); //=> undefined\n *\n * R.last('abc'); //=> 'c'\n * R.last(''); //=> ''\n */\n\nvar last =\n/*#__PURE__*/\nObject(_nth_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(-1);\n/* harmony default export */ __webpack_exports__[\"default\"] = (last);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/last.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/lastIndexOf.js": +/*!**********************************************!*\ + !*** ./node_modules/ramda/es/lastIndexOf.js ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isArray.js */ \"./node_modules/ramda/es/internal/_isArray.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n\n\n\n/**\n * Returns the position of the last occurrence of an item in an array, or -1 if\n * the item is not included in the array. [`R.equals`](#equals) is used to\n * determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Number\n * @param {*} target The item to find.\n * @param {Array} xs The array to search in.\n * @return {Number} the index of the target, or -1 if the target is not found.\n * @see R.indexOf\n * @example\n *\n * R.lastIndexOf(3, [-1,3,3,0,1,2,3,4]); //=> 6\n * R.lastIndexOf(10, [1,2,3,4]); //=> -1\n */\n\nvar lastIndexOf =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function lastIndexOf(target, xs) {\n if (typeof xs.lastIndexOf === 'function' && !Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(xs)) {\n return xs.lastIndexOf(target);\n } else {\n var idx = xs.length - 1;\n\n while (idx >= 0) {\n if (Object(_equals_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(xs[idx], target)) {\n return idx;\n }\n\n idx -= 1;\n }\n\n return -1;\n }\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (lastIndexOf);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/lastIndexOf.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/length.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/length.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_isNumber_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isNumber.js */ \"./node_modules/ramda/es/internal/_isNumber.js\");\n\n\n/**\n * Returns the number of elements in the array by returning `list.length`.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [a] -> Number\n * @param {Array} list The array to inspect.\n * @return {Number} The length of the array.\n * @example\n *\n * R.length([]); //=> 0\n * R.length([1, 2, 3]); //=> 3\n */\n\nvar length =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function length(list) {\n return list != null && Object(_internal_isNumber_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(list.length) ? list.length : NaN;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (length);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/length.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/lens.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/lens.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n\n\n/**\n * Returns a lens for the given getter and setter functions. The getter \"gets\"\n * the value of the focus; the setter \"sets\" the value of the focus. The setter\n * should not mutate the data structure.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig (s -> a) -> ((a, s) -> s) -> Lens s a\n * @param {Function} getter\n * @param {Function} setter\n * @return {Lens}\n * @see R.view, R.set, R.over, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lens(R.prop('x'), R.assoc('x'));\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.over(xLens, R.negate, {x: 1, y: 2}); //=> {x: -1, y: 2}\n */\n\nvar lens =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function lens(getter, setter) {\n return function (toFunctorFn) {\n return function (target) {\n return Object(_map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (focus) {\n return setter(focus, target);\n }, toFunctorFn(getter(target)));\n };\n };\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (lens);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/lens.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/lensIndex.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/lensIndex.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _lens_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lens.js */ \"./node_modules/ramda/es/lens.js\");\n/* harmony import */ var _nth_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nth.js */ \"./node_modules/ramda/es/nth.js\");\n/* harmony import */ var _update_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./update.js */ \"./node_modules/ramda/es/update.js\");\n\n\n\n\n/**\n * Returns a lens whose focus is the specified index.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Number -> Lens s a\n * @param {Number} n\n * @return {Lens}\n * @see R.view, R.set, R.over, R.nth\n * @example\n *\n * const headLens = R.lensIndex(0);\n *\n * R.view(headLens, ['a', 'b', 'c']); //=> 'a'\n * R.set(headLens, 'x', ['a', 'b', 'c']); //=> ['x', 'b', 'c']\n * R.over(headLens, R.toUpper, ['a', 'b', 'c']); //=> ['A', 'b', 'c']\n */\n\nvar lensIndex =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function lensIndex(n) {\n return Object(_lens_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_nth_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(n), Object(_update_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(n));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (lensIndex);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/lensIndex.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/lensPath.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/lensPath.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _assocPath_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assocPath.js */ \"./node_modules/ramda/es/assocPath.js\");\n/* harmony import */ var _lens_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lens.js */ \"./node_modules/ramda/es/lens.js\");\n/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./path.js */ \"./node_modules/ramda/es/path.js\");\n\n\n\n\n/**\n * Returns a lens whose focus is the specified path.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @typedefn Idx = String | Int\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig [Idx] -> Lens s a\n * @param {Array} path The path to use.\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * const xHeadYLens = R.lensPath(['x', 0, 'y']);\n *\n * R.view(xHeadYLens, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> 2\n * R.set(xHeadYLens, 1, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> {x: [{y: 1, z: 3}, {y: 4, z: 5}]}\n * R.over(xHeadYLens, R.negate, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> {x: [{y: -2, z: 3}, {y: 4, z: 5}]}\n */\n\nvar lensPath =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function lensPath(p) {\n return Object(_lens_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Object(_path_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(p), Object(_assocPath_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(p));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (lensPath);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/lensPath.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/lensProp.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/lensProp.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _assoc_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assoc.js */ \"./node_modules/ramda/es/assoc.js\");\n/* harmony import */ var _lens_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lens.js */ \"./node_modules/ramda/es/lens.js\");\n/* harmony import */ var _prop_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./prop.js */ \"./node_modules/ramda/es/prop.js\");\n\n\n\n\n/**\n * Returns a lens whose focus is the specified property.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig String -> Lens s a\n * @param {String} k\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.over(xLens, R.negate, {x: 1, y: 2}); //=> {x: -1, y: 2}\n */\n\nvar lensProp =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function lensProp(k) {\n return Object(_lens_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Object(_prop_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(k), Object(_assoc_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(k));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (lensProp);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/lensProp.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/lift.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/lift.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _liftN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./liftN.js */ \"./node_modules/ramda/es/liftN.js\");\n\n\n/**\n * \"lifts\" a function of arity > 1 so that it may \"map over\" a list, Function or other\n * object that satisfies the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.liftN\n * @example\n *\n * const madd3 = R.lift((a, b, c) => a + b + c);\n *\n * madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]\n *\n * const madd5 = R.lift((a, b, c, d, e) => a + b + c + d + e);\n *\n * madd5([1,2], [3], [4, 5], [6], [7, 8]); //=> [21, 22, 22, 23, 22, 23, 23, 24]\n */\n\nvar lift =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function lift(fn) {\n return Object(_liftN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(fn.length, fn);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (lift);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/lift.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/liftN.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/liftN.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _ap_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ap.js */ \"./node_modules/ramda/es/ap.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n\n\n\n\n\n/**\n * \"lifts\" a function to be the specified arity, so that it may \"map over\" that\n * many lists, Functions or other objects that satisfy the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig Number -> (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.lift, R.ap\n * @example\n *\n * const madd3 = R.liftN(3, (...args) => R.sum(args));\n * madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]\n */\n\nvar liftN =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function liftN(arity, fn) {\n var lifted = Object(_curryN_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(arity, fn);\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(arity, function () {\n return Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_ap_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], Object(_map_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(lifted, arguments[0]), Array.prototype.slice.call(arguments, 1));\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (liftN);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/liftN.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/lt.js": +/*!*************************************!*\ + !*** ./node_modules/ramda/es/lt.js ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns `true` if the first argument is less than the second; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @see R.gt\n * @example\n *\n * R.lt(2, 1); //=> false\n * R.lt(2, 2); //=> false\n * R.lt(2, 3); //=> true\n * R.lt('a', 'z'); //=> true\n * R.lt('z', 'a'); //=> false\n */\n\nvar lt =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function lt(a, b) {\n return a < b;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (lt);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/lt.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/lte.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/lte.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns `true` if the first argument is less than or equal to the second;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {Number} a\n * @param {Number} b\n * @return {Boolean}\n * @see R.gte\n * @example\n *\n * R.lte(2, 1); //=> false\n * R.lte(2, 2); //=> true\n * R.lte(2, 3); //=> true\n * R.lte('a', 'z'); //=> true\n * R.lte('z', 'a'); //=> false\n */\n\nvar lte =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function lte(a, b) {\n return a <= b;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (lte);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/lte.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/map.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/map.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_map.js */ \"./node_modules/ramda/es/internal/_map.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _internal_xmap_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./internal/_xmap.js */ \"./node_modules/ramda/es/internal/_xmap.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/ramda/es/keys.js\");\n\n\n\n\n\n\n\n/**\n * Takes a function and\n * a [functor](https://github.com/fantasyland/fantasy-land#functor),\n * applies the function to each of the functor's values, and returns\n * a functor of the same shape.\n *\n * Ramda provides suitable `map` implementations for `Array` and `Object`,\n * so this function may be applied to `[1, 2, 3]` or `{x: 1, y: 2, z: 3}`.\n *\n * Dispatches to the `map` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * Also treats functions as functors and will compose them together.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => (a -> b) -> f a -> f b\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {Array} list The list to be iterated over.\n * @return {Array} The new list.\n * @see R.transduce, R.addIndex\n * @example\n *\n * const double = x => x * 2;\n *\n * R.map(double, [1, 2, 3]); //=> [2, 4, 6]\n *\n * R.map(double, {x: 1, y: 2, z: 3}); //=> {x: 2, y: 4, z: 6}\n * @symb R.map(f, [a, b]) = [f(a), f(b)]\n * @symb R.map(f, { x: a, y: b }) = { x: f(a), y: f(b) }\n * @symb R.map(f, functor_o) = functor_o.map(f)\n */\n\nvar map =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['fantasy-land/map', 'map'], _internal_xmap_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"], function map(fn, functor) {\n switch (Object.prototype.toString.call(functor)) {\n case '[object Function]':\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(functor.length, function () {\n return fn.call(this, functor.apply(this, arguments));\n });\n\n case '[object Object]':\n return Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(function (acc, key) {\n acc[key] = fn(functor[key]);\n return acc;\n }, {}, Object(_keys_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(functor));\n\n default:\n return Object(_internal_map_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(fn, functor);\n }\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (map);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/map.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mapAccum.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/mapAccum.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * The `mapAccum` function behaves like a combination of map and reduce; it\n * applies a function to each element of a list, passing an accumulating\n * parameter from left to right, and returning a final value of this\n * accumulator together with the new list.\n *\n * The iterator function receives two arguments, *acc* and *value*, and should\n * return a tuple *[acc, value]*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig ((acc, x) -> (acc, y)) -> acc -> [x] -> (acc, [y])\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.scan, R.addIndex, R.mapAccumRight\n * @example\n *\n * const digits = ['1', '2', '3', '4'];\n * const appender = (a, b) => [a + b, a + b];\n *\n * R.mapAccum(appender, 0, digits); //=> ['01234', ['01', '012', '0123', '01234']]\n * @symb R.mapAccum(f, a, [b, c, d]) = [\n * f(f(f(a, b)[0], c)[0], d)[0],\n * [\n * f(a, b)[1],\n * f(f(a, b)[0], c)[1],\n * f(f(f(a, b)[0], c)[0], d)[1]\n * ]\n * ]\n */\n\nvar mapAccum =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mapAccum(fn, acc, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n var tuple = [acc];\n\n while (idx < len) {\n tuple = fn(tuple[0], list[idx]);\n result[idx] = tuple[1];\n idx += 1;\n }\n\n return [tuple[0], result];\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mapAccum);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mapAccum.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mapAccumRight.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/mapAccumRight.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * The `mapAccumRight` function behaves like a combination of map and reduce; it\n * applies a function to each element of a list, passing an accumulating\n * parameter from right to left, and returning a final value of this\n * accumulator together with the new list.\n *\n * Similar to [`mapAccum`](#mapAccum), except moves through the input list from\n * the right to the left.\n *\n * The iterator function receives two arguments, *acc* and *value*, and should\n * return a tuple *[acc, value]*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig ((acc, x) -> (acc, y)) -> acc -> [x] -> (acc, [y])\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.addIndex, R.mapAccum\n * @example\n *\n * const digits = ['1', '2', '3', '4'];\n * const appender = (a, b) => [b + a, b + a];\n *\n * R.mapAccumRight(appender, 5, digits); //=> ['12345', ['12345', '2345', '345', '45']]\n * @symb R.mapAccumRight(f, a, [b, c, d]) = [\n * f(f(f(a, d)[0], c)[0], b)[0],\n * [\n * f(a, d)[1],\n * f(f(a, d)[0], c)[1],\n * f(f(f(a, d)[0], c)[0], b)[1]\n * ]\n * ]\n */\n\nvar mapAccumRight =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mapAccumRight(fn, acc, list) {\n var idx = list.length - 1;\n var result = [];\n var tuple = [acc];\n\n while (idx >= 0) {\n tuple = fn(tuple[0], list[idx]);\n result[idx] = tuple[1];\n idx -= 1;\n }\n\n return [tuple[0], result];\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mapAccumRight);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mapAccumRight.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mapObjIndexed.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/mapObjIndexed.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/ramda/es/keys.js\");\n\n\n\n/**\n * An Object-specific version of [`map`](#map). The function is applied to three\n * arguments: *(value, key, obj)*. If only the value is significant, use\n * [`map`](#map) instead.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig ((*, String, Object) -> *) -> Object -> Object\n * @param {Function} fn\n * @param {Object} obj\n * @return {Object}\n * @see R.map\n * @example\n *\n * const xyz = { x: 1, y: 2, z: 3 };\n * const prependKeyAndDouble = (num, key, obj) => key + (num * 2);\n *\n * R.mapObjIndexed(prependKeyAndDouble, xyz); //=> { x: 'x2', y: 'y4', z: 'z6' }\n */\n\nvar mapObjIndexed =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mapObjIndexed(fn, obj) {\n return Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (acc, key) {\n acc[key] = fn(obj[key], key, obj);\n return acc;\n }, {}, Object(_keys_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(obj));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mapObjIndexed);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mapObjIndexed.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/match.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/match.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Tests a regular expression against a String. Note that this function will\n * return an empty array when there are no matches. This differs from\n * [`String.prototype.match`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match)\n * which returns `null` when there are no matches.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category String\n * @sig RegExp -> String -> [String | Undefined]\n * @param {RegExp} rx A regular expression.\n * @param {String} str The string to match against\n * @return {Array} The list of matches or empty array.\n * @see R.test\n * @example\n *\n * R.match(/([a-z]a)/g, 'bananas'); //=> ['ba', 'na', 'na']\n * R.match(/a/, 'b'); //=> []\n * R.match(/a/, null); //=> TypeError: null does not have a method named \"match\"\n */\n\nvar match =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function match(rx, str) {\n return str.match(rx) || [];\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (match);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/match.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mathMod.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/mathMod.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isInteger.js */ \"./node_modules/ramda/es/internal/_isInteger.js\");\n\n\n/**\n * `mathMod` behaves like the modulo operator should mathematically, unlike the\n * `%` operator (and by extension, [`R.modulo`](#modulo)). So while\n * `-17 % 5` is `-2`, `mathMod(-17, 5)` is `3`. `mathMod` requires Integer\n * arguments, and returns NaN when the modulus is zero or negative.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} m The dividend.\n * @param {Number} p the modulus.\n * @return {Number} The result of `b mod a`.\n * @see R.modulo\n * @example\n *\n * R.mathMod(-17, 5); //=> 3\n * R.mathMod(17, 5); //=> 2\n * R.mathMod(17, -5); //=> NaN\n * R.mathMod(17, 0); //=> NaN\n * R.mathMod(17.2, 5); //=> NaN\n * R.mathMod(17, 5.3); //=> NaN\n *\n * const clock = R.mathMod(R.__, 12);\n * clock(15); //=> 3\n * clock(24); //=> 0\n *\n * const seventeenMod = R.mathMod(17);\n * seventeenMod(3); //=> 2\n * seventeenMod(4); //=> 1\n * seventeenMod(10); //=> 7\n */\n\nvar mathMod =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mathMod(m, p) {\n if (!Object(_internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(m)) {\n return NaN;\n }\n\n if (!Object(_internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(p) || p < 1) {\n return NaN;\n }\n\n return (m % p + p) % p;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mathMod);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mathMod.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/max.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/max.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns the larger of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.maxBy, R.min\n * @example\n *\n * R.max(789, 123); //=> 789\n * R.max('a', 'b'); //=> 'b'\n */\n\nvar max =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function max(a, b) {\n return b > a ? b : a;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (max);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/max.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/maxBy.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/maxBy.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Takes a function and two values, and returns whichever value produces the\n * larger result when passed to the provided function.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Relation\n * @sig Ord b => (a -> b) -> a -> a -> a\n * @param {Function} f\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.max, R.minBy\n * @example\n *\n * // square :: Number -> Number\n * const square = n => n * n;\n *\n * R.maxBy(square, -3, 2); //=> -3\n *\n * R.reduce(R.maxBy(square), 0, [3, -5, 4, 1, -2]); //=> -5\n * R.reduce(R.maxBy(square), 0, []); //=> 0\n */\n\nvar maxBy =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function maxBy(f, a, b) {\n return f(b) > f(a) ? b : a;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (maxBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/maxBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mean.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/mean.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _sum_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sum.js */ \"./node_modules/ramda/es/sum.js\");\n\n\n/**\n * Returns the mean of the given list of numbers.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list\n * @return {Number}\n * @see R.median\n * @example\n *\n * R.mean([2, 7, 9]); //=> 6\n * R.mean([]); //=> NaN\n */\n\nvar mean =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mean(list) {\n return Object(_sum_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(list) / list.length;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mean);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mean.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/median.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/median.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _mean_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mean.js */ \"./node_modules/ramda/es/mean.js\");\n\n\n/**\n * Returns the median of the given list of numbers.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list\n * @return {Number}\n * @see R.mean\n * @example\n *\n * R.median([2, 9, 7]); //=> 7\n * R.median([7, 2, 10, 9]); //=> 8\n * R.median([]); //=> NaN\n */\n\nvar median =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function median(list) {\n var len = list.length;\n\n if (len === 0) {\n return NaN;\n }\n\n var width = 2 - len % 2;\n var idx = (len - width) / 2;\n return Object(_mean_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Array.prototype.slice.call(list, 0).sort(function (a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n }).slice(idx, idx + width));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (median);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/median.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/memoizeWith.js": +/*!**********************************************!*\ + !*** ./node_modules/ramda/es/memoizeWith.js ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n\n\n\n/**\n * Creates a new function that, when invoked, caches the result of calling `fn`\n * for a given argument set and returns the result. Subsequent calls to the\n * memoized `fn` with the same argument set will not result in an additional\n * call to `fn`; instead, the cached result for that set of arguments will be\n * returned.\n *\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Function\n * @sig (*... -> String) -> (*... -> a) -> (*... -> a)\n * @param {Function} fn The function to generate the cache key.\n * @param {Function} fn The function to memoize.\n * @return {Function} Memoized version of `fn`.\n * @example\n *\n * let count = 0;\n * const factorial = R.memoizeWith(R.identity, n => {\n * count += 1;\n * return R.product(R.range(1, n + 1));\n * });\n * factorial(5); //=> 120\n * factorial(5); //=> 120\n * factorial(5); //=> 120\n * count; //=> 1\n */\n\nvar memoizeWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function memoizeWith(mFn, fn) {\n var cache = {};\n return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(fn.length, function () {\n var key = mFn.apply(this, arguments);\n\n if (!Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(key, cache)) {\n cache[key] = fn.apply(this, arguments);\n }\n\n return cache[key];\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (memoizeWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/memoizeWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/merge.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/merge.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_objectAssign.js */ \"./node_modules/ramda/es/internal/_objectAssign.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeRight, R.mergeDeepRight, R.mergeWith, R.mergeWithKey\n * @deprecated since v0.26.0\n * @example\n *\n * R.merge({ 'name': 'fred', 'age': 10 }, { 'age': 40 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const withDefaults = R.merge({x: 0, y: 0});\n * withDefaults({y: 2}); //=> {x: 0, y: 2}\n * @symb R.merge(a, b) = {...a, ...b}\n */\n\nvar merge =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function merge(l, r) {\n return Object(_internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, l, r);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (merge);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/merge.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mergeAll.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/mergeAll.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_objectAssign.js */ \"./node_modules/ramda/es/internal/_objectAssign.js\");\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n\n/**\n * Merges a list of objects together into one object.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig [{k: v}] -> {k: v}\n * @param {Array} list An array of objects\n * @return {Object} A merged object.\n * @see R.reduce\n * @example\n *\n * R.mergeAll([{foo:1},{bar:2},{baz:3}]); //=> {foo:1,bar:2,baz:3}\n * R.mergeAll([{foo:1},{foo:2},{bar:2}]); //=> {foo:2,bar:2}\n * @symb R.mergeAll([{ x: 1 }, { y: 2 }, { z: 3 }]) = { x: 1, y: 2, z: 3 }\n */\n\nvar mergeAll =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function mergeAll(list) {\n return _internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].apply(null, [{}].concat(list));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mergeAll);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mergeAll.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mergeDeepLeft.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/mergeDeepLeft.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mergeDeepWithKey.js */ \"./node_modules/ramda/es/mergeDeepWithKey.js\");\n\n\n/**\n * Creates a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects:\n * - and both values are objects, the two values will be recursively merged\n * - otherwise the value from the first object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig {a} -> {a} -> {a}\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.merge, R.mergeDeepRight, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepLeft({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 10, contact: { email: 'moo@example.com' }}\n */\n\nvar mergeDeepLeft =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mergeDeepLeft(lObj, rObj) {\n return Object(_mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (k, lVal, rVal) {\n return lVal;\n }, lObj, rObj);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mergeDeepLeft);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mergeDeepLeft.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mergeDeepRight.js": +/*!*************************************************!*\ + !*** ./node_modules/ramda/es/mergeDeepRight.js ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mergeDeepWithKey.js */ \"./node_modules/ramda/es/mergeDeepWithKey.js\");\n\n\n/**\n * Creates a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects:\n * - and both values are objects, the two values will be recursively merged\n * - otherwise the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig {a} -> {a} -> {a}\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.merge, R.mergeDeepLeft, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepRight({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 40, contact: { email: 'baa@example.com' }}\n */\n\nvar mergeDeepRight =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mergeDeepRight(lObj, rObj) {\n return Object(_mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (k, lVal, rVal) {\n return rVal;\n }, lObj, rObj);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mergeDeepRight);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mergeDeepRight.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mergeDeepWith.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/mergeDeepWith.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mergeDeepWithKey.js */ \"./node_modules/ramda/es/mergeDeepWithKey.js\");\n\n\n/**\n * Creates a new object with the own properties of the two provided objects.\n * If a key exists in both objects:\n * - and both associated values are also objects then the values will be\n * recursively merged.\n * - otherwise the provided function is applied to associated values using the\n * resulting value as the new value associated with the key.\n * If a key only exists in one object, the value will be associated with the key\n * of the resulting object.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig ((a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.mergeWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepWith(R.concat,\n * { a: true, c: { values: [10, 20] }},\n * { b: true, c: { values: [15, 35] }});\n * //=> { a: true, b: true, c: { values: [10, 20, 15, 35] }}\n */\n\nvar mergeDeepWith =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mergeDeepWith(fn, lObj, rObj) {\n return Object(_mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (k, lVal, rVal) {\n return fn(lVal, rVal);\n }, lObj, rObj);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mergeDeepWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mergeDeepWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mergeDeepWithKey.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/mergeDeepWithKey.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _internal_isObject_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isObject.js */ \"./node_modules/ramda/es/internal/_isObject.js\");\n/* harmony import */ var _mergeWithKey_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mergeWithKey.js */ \"./node_modules/ramda/es/mergeWithKey.js\");\n\n\n\n/**\n * Creates a new object with the own properties of the two provided objects.\n * If a key exists in both objects:\n * - and both associated values are also objects then the values will be\n * recursively merged.\n * - otherwise the provided function is applied to the key and associated values\n * using the resulting value as the new value associated with the key.\n * If a key only exists in one object, the value will be associated with the key\n * of the resulting object.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.mergeWithKey, R.mergeDeepWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeDeepWithKey(concatValues,\n * { a: true, c: { thing: 'foo', values: [10, 20] }},\n * { b: true, c: { thing: 'bar', values: [15, 35] }});\n * //=> { a: true, b: true, c: { thing: 'bar', values: [10, 20, 15, 35] }}\n */\n\nvar mergeDeepWithKey =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mergeDeepWithKey(fn, lObj, rObj) {\n return Object(_mergeWithKey_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(function (k, lVal, rVal) {\n if (Object(_internal_isObject_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(lVal) && Object(_internal_isObject_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(rVal)) {\n return mergeDeepWithKey(fn, lVal, rVal);\n } else {\n return fn(k, lVal, rVal);\n }\n }, lObj, rObj);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mergeDeepWithKey);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mergeDeepWithKey.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mergeLeft.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/mergeLeft.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_objectAssign.js */ \"./node_modules/ramda/es/internal/_objectAssign.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the first object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeRight, R.mergeDeepLeft, R.mergeWith, R.mergeWithKey\n * @example\n *\n * R.mergeLeft({ 'age': 40 }, { 'name': 'fred', 'age': 10 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const resetToDefault = R.mergeLeft({x: 0});\n * resetToDefault({x: 5, y: 2}); //=> {x: 0, y: 2}\n * @symb R.mergeLeft(a, b) = {...b, ...a}\n */\n\nvar mergeLeft =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function mergeLeft(l, r) {\n return Object(_internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, r, l);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mergeLeft);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mergeLeft.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mergeRight.js": +/*!*********************************************!*\ + !*** ./node_modules/ramda/es/mergeRight.js ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_objectAssign.js */ \"./node_modules/ramda/es/internal/_objectAssign.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeLeft, R.mergeDeepRight, R.mergeWith, R.mergeWithKey\n * @example\n *\n * R.mergeRight({ 'name': 'fred', 'age': 10 }, { 'age': 40 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const withDefaults = R.mergeRight({x: 0, y: 0});\n * withDefaults({y: 2}); //=> {x: 0, y: 2}\n * @symb R.mergeRight(a, b) = {...a, ...b}\n */\n\nvar mergeRight =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function mergeRight(l, r) {\n return Object(_internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, l, r);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mergeRight);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mergeRight.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mergeWith.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/mergeWith.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _mergeWithKey_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mergeWithKey.js */ \"./node_modules/ramda/es/mergeWithKey.js\");\n\n\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the values\n * associated with the key in each object, with the result being used as the\n * value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWith, R.merge, R.mergeWithKey\n * @example\n *\n * R.mergeWith(R.concat,\n * { a: true, values: [10, 20] },\n * { b: true, values: [15, 35] });\n * //=> { a: true, b: true, values: [10, 20, 15, 35] }\n */\n\nvar mergeWith =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mergeWith(fn, l, r) {\n return Object(_mergeWithKey_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (_, _l, _r) {\n return fn(_l, _r);\n }, l, r);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mergeWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mergeWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mergeWithKey.js": +/*!***********************************************!*\ + !*** ./node_modules/ramda/es/mergeWithKey.js ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n\n\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the key\n * and the values associated with the key in each object, with the result being\n * used as the value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWithKey, R.merge, R.mergeWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeWithKey(concatValues,\n * { a: true, thing: 'foo', values: [10, 20] },\n * { b: true, thing: 'bar', values: [15, 35] });\n * //=> { a: true, b: true, thing: 'bar', values: [10, 20, 15, 35] }\n * @symb R.mergeWithKey(f, { x: 1, y: 2 }, { y: 5, z: 3 }) = { x: 1, y: f('y', 2, 5), z: 3 }\n */\n\nvar mergeWithKey =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mergeWithKey(fn, l, r) {\n var result = {};\n var k;\n\n for (k in l) {\n if (Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(k, l)) {\n result[k] = Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(k, r) ? fn(k, l[k], r[k]) : l[k];\n }\n }\n\n for (k in r) {\n if (Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(k, r) && !Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(k, result)) {\n result[k] = r[k];\n }\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mergeWithKey);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mergeWithKey.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/min.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/min.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns the smaller of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.minBy, R.max\n * @example\n *\n * R.min(789, 123); //=> 123\n * R.min('a', 'b'); //=> 'a'\n */\n\nvar min =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function min(a, b) {\n return b < a ? b : a;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (min);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/min.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/minBy.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/minBy.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Takes a function and two values, and returns whichever value produces the\n * smaller result when passed to the provided function.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Relation\n * @sig Ord b => (a -> b) -> a -> a -> a\n * @param {Function} f\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.min, R.maxBy\n * @example\n *\n * // square :: Number -> Number\n * const square = n => n * n;\n *\n * R.minBy(square, -3, 2); //=> 2\n *\n * R.reduce(R.minBy(square), Infinity, [3, -5, 4, 1, -2]); //=> 1\n * R.reduce(R.minBy(square), Infinity, []); //=> Infinity\n */\n\nvar minBy =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function minBy(f, a, b) {\n return f(b) < f(a) ? b : a;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (minBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/minBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/modulo.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/modulo.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Divides the first parameter by the second and returns the remainder. Note\n * that this function preserves the JavaScript-style behavior for modulo. For\n * mathematical modulo see [`mathMod`](#mathMod).\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The value to the divide.\n * @param {Number} b The pseudo-modulus\n * @return {Number} The result of `b % a`.\n * @see R.mathMod\n * @example\n *\n * R.modulo(17, 3); //=> 2\n * // JS behavior:\n * R.modulo(-17, 3); //=> -2\n * R.modulo(17, -3); //=> 2\n *\n * const isOdd = R.modulo(R.__, 2);\n * isOdd(42); //=> 0\n * isOdd(21); //=> 1\n */\n\nvar modulo =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function modulo(a, b) {\n return a % b;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (modulo);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/modulo.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/move.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/move.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Move an item, at index `from`, to index `to`, in a list of elements.\n * A new list will be created containing the new elements order.\n *\n * @func\n * @memberOf R\n * @since v0.27.0\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @param {Number} from The source index\n * @param {Number} to The destination index\n * @param {Array} list The list which will serve to realise the move\n * @return {Array} The new list reordered\n * @example\n *\n * R.move(0, 2, ['a', 'b', 'c', 'd', 'e', 'f']); //=> ['b', 'c', 'a', 'd', 'e', 'f']\n * R.move(-1, 0, ['a', 'b', 'c', 'd', 'e', 'f']); //=> ['f', 'a', 'b', 'c', 'd', 'e'] list rotation\n */\n\nvar move =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (from, to, list) {\n var length = list.length;\n var result = list.slice();\n var positiveFrom = from < 0 ? length + from : from;\n var positiveTo = to < 0 ? length + to : to;\n var item = result.splice(positiveFrom, 1);\n return positiveFrom < 0 || positiveFrom >= list.length || positiveTo < 0 || positiveTo >= list.length ? list : [].concat(result.slice(0, positiveTo)).concat(item).concat(result.slice(positiveTo, list.length));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (move);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/move.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/multiply.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/multiply.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Multiplies two numbers. Equivalent to `a * b` but curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a * b`.\n * @see R.divide\n * @example\n *\n * const double = R.multiply(2);\n * const triple = R.multiply(3);\n * double(3); //=> 6\n * triple(4); //=> 12\n * R.multiply(2, 5); //=> 10\n */\n\nvar multiply =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function multiply(a, b) {\n return a * b;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (multiply);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/multiply.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/nAry.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/nAry.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly `n` parameters. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} n The desired arity of the new function.\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity `n`.\n * @see R.binary, R.unary\n * @example\n *\n * const takesTwoArgs = (a, b) => [a, b];\n *\n * takesTwoArgs.length; //=> 2\n * takesTwoArgs(1, 2); //=> [1, 2]\n *\n * const takesOneArg = R.nAry(1, takesTwoArgs);\n * takesOneArg.length; //=> 1\n * // Only `n` arguments are passed to the wrapped function\n * takesOneArg(1, 2); //=> [1, undefined]\n * @symb R.nAry(0, f)(a, b) = f()\n * @symb R.nAry(1, f)(a, b) = f(a)\n * @symb R.nAry(2, f)(a, b) = f(a, b)\n */\n\nvar nAry =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function nAry(n, fn) {\n switch (n) {\n case 0:\n return function () {\n return fn.call(this);\n };\n\n case 1:\n return function (a0) {\n return fn.call(this, a0);\n };\n\n case 2:\n return function (a0, a1) {\n return fn.call(this, a0, a1);\n };\n\n case 3:\n return function (a0, a1, a2) {\n return fn.call(this, a0, a1, a2);\n };\n\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.call(this, a0, a1, a2, a3);\n };\n\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.call(this, a0, a1, a2, a3, a4);\n };\n\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.call(this, a0, a1, a2, a3, a4, a5);\n };\n\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6);\n };\n\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7);\n };\n\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7, a8);\n };\n\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);\n };\n\n default:\n throw new Error('First argument to nAry must be a non-negative integer no greater than ten');\n }\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (nAry);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/nAry.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/negate.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/negate.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Negates its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number}\n * @example\n *\n * R.negate(42); //=> -42\n */\n\nvar negate =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function negate(n) {\n return -n;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (negate);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/negate.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/none.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/none.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_complement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_complement.js */ \"./node_modules/ramda/es/internal/_complement.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _all_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./all.js */ \"./node_modules/ramda/es/all.js\");\n\n\n\n/**\n * Returns `true` if no elements of the list match the predicate, `false`\n * otherwise.\n *\n * Dispatches to the `all` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is not satisfied by every element, `false` otherwise.\n * @see R.all, R.any\n * @example\n *\n * const isEven = n => n % 2 === 0;\n * const isOdd = n => n % 2 === 1;\n *\n * R.none(isEven, [1, 3, 5, 7, 9, 11]); //=> true\n * R.none(isOdd, [1, 3, 5, 7, 8, 11]); //=> false\n */\n\nvar none =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function none(fn, input) {\n return Object(_all_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Object(_internal_complement_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(fn), input);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (none);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/none.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/not.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/not.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * A function that returns the `!` of its argument. It will return `true` when\n * passed false-y value, and `false` when passed a truth-y one.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig * -> Boolean\n * @param {*} a any value\n * @return {Boolean} the logical inverse of passed argument.\n * @see R.complement\n * @example\n *\n * R.not(true); //=> false\n * R.not(false); //=> true\n * R.not(0); //=> true\n * R.not(1); //=> false\n */\n\nvar not =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function not(a) {\n return !a;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (not);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/not.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/nth.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/nth.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isString_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isString.js */ \"./node_modules/ramda/es/internal/_isString.js\");\n\n\n/**\n * Returns the nth element of the given list or string. If n is negative the\n * element at index length + n is returned.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> a | Undefined\n * @sig Number -> String -> String\n * @param {Number} offset\n * @param {*} list\n * @return {*}\n * @example\n *\n * const list = ['foo', 'bar', 'baz', 'quux'];\n * R.nth(1, list); //=> 'bar'\n * R.nth(-1, list); //=> 'quux'\n * R.nth(-99, list); //=> undefined\n *\n * R.nth(2, 'abc'); //=> 'c'\n * R.nth(3, 'abc'); //=> ''\n * @symb R.nth(-1, [a, b, c]) = c\n * @symb R.nth(0, [a, b, c]) = a\n * @symb R.nth(1, [a, b, c]) = b\n */\n\nvar nth =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function nth(offset, list) {\n var idx = offset < 0 ? list.length + offset : offset;\n return Object(_internal_isString_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(list) ? list.charAt(idx) : list[idx];\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (nth);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/nth.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/nthArg.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/nthArg.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony import */ var _nth_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nth.js */ \"./node_modules/ramda/es/nth.js\");\n\n\n\n/**\n * Returns a function which returns its nth argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig Number -> *... -> *\n * @param {Number} n\n * @return {Function}\n * @example\n *\n * R.nthArg(1)('a', 'b', 'c'); //=> 'b'\n * R.nthArg(-1)('a', 'b', 'c'); //=> 'c'\n * @symb R.nthArg(-1)(a, b, c) = c\n * @symb R.nthArg(0)(a, b, c) = a\n * @symb R.nthArg(1)(a, b, c) = b\n */\n\nvar nthArg =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function nthArg(n) {\n var arity = n < 0 ? 1 : n + 1;\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(arity, function () {\n return Object(_nth_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(n, arguments);\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (nthArg);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/nthArg.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/o.js": +/*!************************************!*\ + !*** ./node_modules/ramda/es/o.js ***! + \************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * `o` is a curried composition function that returns a unary function.\n * Like [`compose`](#compose), `o` performs right-to-left function composition.\n * Unlike [`compose`](#compose), the rightmost function passed to `o` will be\n * invoked with only one argument. Also, unlike [`compose`](#compose), `o` is\n * limited to accepting only 2 unary functions. The name o was chosen because\n * of its similarity to the mathematical composition operator ∘.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Function\n * @sig (b -> c) -> (a -> b) -> a -> c\n * @param {Function} f\n * @param {Function} g\n * @return {Function}\n * @see R.compose, R.pipe\n * @example\n *\n * const classyGreeting = name => \"The name's \" + name.last + \", \" + name.first + \" \" + name.last\n * const yellGreeting = R.o(R.toUpper, classyGreeting);\n * yellGreeting({first: 'James', last: 'Bond'}); //=> \"THE NAME'S BOND, JAMES BOND\"\n *\n * R.o(R.multiply(10), R.add(10))(-4) //=> 60\n *\n * @symb R.o(f, g, x) = f(g(x))\n */\n\nvar o =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function o(f, g, x) {\n return f(g(x));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (o);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/o.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/objOf.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/objOf.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Creates an object containing a single key:value pair.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Object\n * @sig String -> a -> {String:a}\n * @param {String} key\n * @param {*} val\n * @return {Object}\n * @see R.pair\n * @example\n *\n * const matchPhrases = R.compose(\n * R.objOf('must'),\n * R.map(R.objOf('match_phrase'))\n * );\n * matchPhrases(['foo', 'bar', 'baz']); //=> {must: [{match_phrase: 'foo'}, {match_phrase: 'bar'}, {match_phrase: 'baz'}]}\n */\n\nvar objOf =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function objOf(key, val) {\n var obj = {};\n obj[key] = val;\n return obj;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (objOf);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/objOf.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/of.js": +/*!*************************************!*\ + !*** ./node_modules/ramda/es/of.js ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_of_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_of.js */ \"./node_modules/ramda/es/internal/_of.js\");\n\n\n/**\n * Returns a singleton array containing the value provided.\n *\n * Note this `of` is different from the ES6 `of`; See\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> [a]\n * @param {*} x any value\n * @return {Array} An array wrapping `x`.\n * @example\n *\n * R.of(null); //=> [null]\n * R.of([42]); //=> [[42]]\n */\n\nvar of =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_internal_of_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (of);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/of.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/omit.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/omit.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns a partial copy of an object omitting the keys specified.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [String] -> {String: *} -> {String: *}\n * @param {Array} names an array of String property names to omit from the new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with properties from `names` not on it.\n * @see R.pick\n * @example\n *\n * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}\n */\n\nvar omit =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function omit(names, obj) {\n var result = {};\n var index = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n index[names[idx]] = 1;\n idx += 1;\n }\n\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (omit);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/omit.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/once.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/once.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n\n/**\n * Accepts a function `fn` and returns a function that guards invocation of\n * `fn` such that `fn` can only ever be called once, no matter how many times\n * the returned function is invoked. The first value calculated is returned in\n * subsequent invocations.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (a... -> b) -> (a... -> b)\n * @param {Function} fn The function to wrap in a call-only-once wrapper.\n * @return {Function} The wrapped function.\n * @example\n *\n * const addOneOnce = R.once(x => x + 1);\n * addOneOnce(10); //=> 11\n * addOneOnce(addOneOnce(50)); //=> 11\n */\n\nvar once =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function once(fn) {\n var called = false;\n var result;\n return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(fn.length, function () {\n if (called) {\n return result;\n }\n\n called = true;\n result = fn.apply(this, arguments);\n return result;\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (once);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/once.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/or.js": +/*!*************************************!*\ + !*** ./node_modules/ramda/es/or.js ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns `true` if one or both of its arguments are `true`. Returns `false`\n * if both arguments are `false`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {Any} a\n * @param {Any} b\n * @return {Any} the first argument if truthy, otherwise the second argument.\n * @see R.either, R.xor\n * @example\n *\n * R.or(true, true); //=> true\n * R.or(true, false); //=> true\n * R.or(false, true); //=> true\n * R.or(false, false); //=> false\n */\n\nvar or =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function or(a, b) {\n return a || b;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (or);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/or.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/otherwise.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/otherwise.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_assertPromise_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_assertPromise.js */ \"./node_modules/ramda/es/internal/_assertPromise.js\");\n\n\n/**\n * Returns the result of applying the onFailure function to the value inside\n * a failed promise. This is useful for handling rejected promises\n * inside function compositions.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig (e -> b) -> (Promise e a) -> (Promise e b)\n * @sig (e -> (Promise f b)) -> (Promise e a) -> (Promise f b)\n * @param {Function} onFailure The function to apply. Can return a value or a promise of a value.\n * @param {Promise} p\n * @return {Promise} The result of calling `p.then(null, onFailure)`\n * @see R.then\n * @example\n *\n * var failedFetch = (id) => Promise.reject('bad ID');\n * var useDefault = () => ({ firstName: 'Bob', lastName: 'Loblaw' })\n *\n * //recoverFromFailure :: String -> Promise ({firstName, lastName})\n * var recoverFromFailure = R.pipe(\n * failedFetch,\n * R.otherwise(useDefault),\n * R.then(R.pick(['firstName', 'lastName'])),\n * );\n * recoverFromFailure(12345).then(console.log)\n */\n\nvar otherwise =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function otherwise(f, p) {\n Object(_internal_assertPromise_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])('otherwise', p);\n\n return p.then(null, f);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (otherwise);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/otherwise.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/over.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/over.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n // `Identity` is a functor that holds a single value, where `map` simply\n// transforms the held value with the provided function.\n\nvar Identity = function (x) {\n return {\n value: x,\n map: function (f) {\n return Identity(f(x));\n }\n };\n};\n/**\n * Returns the result of \"setting\" the portion of the given data structure\n * focused by the given lens to the result of applying the given function to\n * the focused value.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> (a -> a) -> s -> s\n * @param {Lens} lens\n * @param {*} v\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const headLens = R.lensIndex(0);\n *\n * R.over(headLens, R.toUpper, ['foo', 'bar', 'baz']); //=> ['FOO', 'bar', 'baz']\n */\n\n\nvar over =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function over(lens, f, x) {\n // The value returned by the getter function is first transformed with `f`,\n // then set as the value of an `Identity`. This is then mapped over with the\n // setter function of the lens.\n return lens(function (y) {\n return Identity(f(y));\n })(x).value;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (over);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/over.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pair.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/pair.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Takes two arguments, `fst` and `snd`, and returns `[fst, snd]`.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category List\n * @sig a -> b -> (a,b)\n * @param {*} fst\n * @param {*} snd\n * @return {Array}\n * @see R.objOf, R.of\n * @example\n *\n * R.pair('foo', 'bar'); //=> ['foo', 'bar']\n */\n\nvar pair =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function pair(fst, snd) {\n return [fst, snd];\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pair);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pair.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/partial.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/partial.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_createPartialApplicator_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_createPartialApplicator.js */ \"./node_modules/ramda/es/internal/_createPartialApplicator.js\");\n\n\n/**\n * Takes a function `f` and a list of arguments, and returns a function `g`.\n * When applied, `g` returns the result of applying `f` to the arguments\n * provided initially followed by the arguments provided to `g`.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a, b, c, ..., n) -> x) -> [a, b, c, ...] -> ((d, e, f, ..., n) -> x)\n * @param {Function} f\n * @param {Array} args\n * @return {Function}\n * @see R.partialRight, R.curry\n * @example\n *\n * const multiply2 = (a, b) => a * b;\n * const double = R.partial(multiply2, [2]);\n * double(2); //=> 4\n *\n * const greet = (salutation, title, firstName, lastName) =>\n * salutation + ', ' + title + ' ' + firstName + ' ' + lastName + '!';\n *\n * const sayHello = R.partial(greet, ['Hello']);\n * const sayHelloToMs = R.partial(sayHello, ['Ms.']);\n * sayHelloToMs('Jane', 'Jones'); //=> 'Hello, Ms. Jane Jones!'\n * @symb R.partial(f, [a, b])(c, d) = f(a, b, c, d)\n */\n\nvar partial =\n/*#__PURE__*/\nObject(_internal_createPartialApplicator_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (partial);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/partial.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/partialRight.js": +/*!***********************************************!*\ + !*** ./node_modules/ramda/es/partialRight.js ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_createPartialApplicator_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_createPartialApplicator.js */ \"./node_modules/ramda/es/internal/_createPartialApplicator.js\");\n/* harmony import */ var _flip_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./flip.js */ \"./node_modules/ramda/es/flip.js\");\n\n\n\n/**\n * Takes a function `f` and a list of arguments, and returns a function `g`.\n * When applied, `g` returns the result of applying `f` to the arguments\n * provided to `g` followed by the arguments provided initially.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a, b, c, ..., n) -> x) -> [d, e, f, ..., n] -> ((a, b, c, ...) -> x)\n * @param {Function} f\n * @param {Array} args\n * @return {Function}\n * @see R.partial\n * @example\n *\n * const greet = (salutation, title, firstName, lastName) =>\n * salutation + ', ' + title + ' ' + firstName + ' ' + lastName + '!';\n *\n * const greetMsJaneJones = R.partialRight(greet, ['Ms.', 'Jane', 'Jones']);\n *\n * greetMsJaneJones('Hello'); //=> 'Hello, Ms. Jane Jones!'\n * @symb R.partialRight(f, [a, b])(c, d) = f(c, d, a, b)\n */\n\nvar partialRight =\n/*#__PURE__*/\nObject(_internal_createPartialApplicator_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n/*#__PURE__*/\nObject(_flip_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (partialRight);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/partialRight.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/partition.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/partition.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./filter.js */ \"./node_modules/ramda/es/filter.js\");\n/* harmony import */ var _juxt_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./juxt.js */ \"./node_modules/ramda/es/juxt.js\");\n/* harmony import */ var _reject_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reject.js */ \"./node_modules/ramda/es/reject.js\");\n\n\n\n/**\n * Takes a predicate and a list or other `Filterable` object and returns the\n * pair of filterable objects of the same type of elements which do and do not\n * satisfy, the predicate, respectively. Filterable objects include plain objects or any object\n * that has a filter method such as `Array`.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> [f a, f a]\n * @param {Function} pred A predicate to determine which side the element belongs to.\n * @param {Array} filterable the list (or other filterable) to partition.\n * @return {Array} An array, containing first the subset of elements that satisfy the\n * predicate, and second the subset of elements that do not satisfy.\n * @see R.filter, R.reject\n * @example\n *\n * R.partition(R.includes('s'), ['sss', 'ttt', 'foo', 'bars']);\n * // => [ [ 'sss', 'bars' ], [ 'ttt', 'foo' ] ]\n *\n * R.partition(R.includes('s'), { a: 'sss', b: 'ttt', foo: 'bars' });\n * // => [ { a: 'sss', foo: 'bars' }, { b: 'ttt' } ]\n */\n\nvar partition =\n/*#__PURE__*/\nObject(_juxt_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([_filter_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], _reject_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (partition);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/partition.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/path.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/path.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _paths_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./paths.js */ \"./node_modules/ramda/es/paths.js\");\n\n\n/**\n * Retrieve the value at a given path.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {a} -> a | Undefined\n * @param {Array} path The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path`.\n * @see R.prop, R.nth\n * @example\n *\n * R.path(['a', 'b'], {a: {b: 2}}); //=> 2\n * R.path(['a', 'b'], {c: {b: 2}}); //=> undefined\n * R.path(['a', 'b', 0], {a: {b: [1, 2, 3]}}); //=> 1\n * R.path(['a', 'b', -2], {a: {b: [1, 2, 3]}}); //=> 2\n */\n\nvar path =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function path(pathAr, obj) {\n return Object(_paths_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([pathAr], obj)[0];\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (path);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/path.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pathEq.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/pathEq.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./path.js */ \"./node_modules/ramda/es/path.js\");\n\n\n\n/**\n * Determines whether a nested path on an object has a specific value, in\n * [`R.equals`](#equals) terms. Most likely used to filter a list.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Relation\n * @typedefn Idx = String | Int\n * @sig [Idx] -> a -> {a} -> Boolean\n * @param {Array} path The path of the nested property to use\n * @param {*} val The value to compare the nested property with\n * @param {Object} obj The object to check the nested property in\n * @return {Boolean} `true` if the value equals the nested object property,\n * `false` otherwise.\n * @example\n *\n * const user1 = { address: { zipCode: 90210 } };\n * const user2 = { address: { zipCode: 55555 } };\n * const user3 = { name: 'Bob' };\n * const users = [ user1, user2, user3 ];\n * const isFamous = R.pathEq(['address', 'zipCode'], 90210);\n * R.filter(isFamous, users); //=> [ user1 ]\n */\n\nvar pathEq =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function pathEq(_path, val, obj) {\n return Object(_equals_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_path_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_path, obj), val);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pathEq);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pathEq.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pathOr.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/pathOr.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _defaultTo_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultTo.js */ \"./node_modules/ramda/es/defaultTo.js\");\n/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./path.js */ \"./node_modules/ramda/es/path.js\");\n\n\n\n/**\n * If the given, non-null object has a value at the given path, returns the\n * value at that path. Otherwise returns the provided default value.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig a -> [Idx] -> {a} -> a\n * @param {*} d The default value.\n * @param {Array} p The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path` of the supplied object or the default value.\n * @example\n *\n * R.pathOr('N/A', ['a', 'b'], {a: {b: 2}}); //=> 2\n * R.pathOr('N/A', ['a', 'b'], {c: {b: 2}}); //=> \"N/A\"\n */\n\nvar pathOr =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function pathOr(d, p, obj) {\n return Object(_defaultTo_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(d, Object(_path_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(p, obj));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pathOr);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pathOr.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pathSatisfies.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/pathSatisfies.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./path.js */ \"./node_modules/ramda/es/path.js\");\n\n\n/**\n * Returns `true` if the specified object property at given path satisfies the\n * given predicate; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Logic\n * @typedefn Idx = String | Int\n * @sig (a -> Boolean) -> [Idx] -> {a} -> Boolean\n * @param {Function} pred\n * @param {Array} propPath\n * @param {*} obj\n * @return {Boolean}\n * @see R.propSatisfies, R.path\n * @example\n *\n * R.pathSatisfies(y => y > 0, ['x', 'y'], {x: {y: 2}}); //=> true\n * R.pathSatisfies(R.is(Object), [], {x: {y: 2}}); //=> true\n */\n\nvar pathSatisfies =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function pathSatisfies(pred, propPath, obj) {\n return pred(Object(_path_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(propPath, obj));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pathSatisfies);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pathSatisfies.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/paths.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/paths.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isInteger.js */ \"./node_modules/ramda/es/internal/_isInteger.js\");\n/* harmony import */ var _nth_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nth.js */ \"./node_modules/ramda/es/nth.js\");\n\n\n\n/**\n * Retrieves the values at given paths of an object.\n *\n * @func\n * @memberOf R\n * @since v0.27.0\n * @category Object\n * @typedefn Idx = [String | Int]\n * @sig [Idx] -> {a} -> [a | Undefined]\n * @param {Array} pathsArray The array of paths to be fetched.\n * @param {Object} obj The object to retrieve the nested properties from.\n * @return {Array} A list consisting of values at paths specified by \"pathsArray\".\n * @see R.path\n * @example\n *\n * R.paths([['a', 'b'], ['p', 0, 'q']], {a: {b: 2}, p: [{q: 3}]}); //=> [2, 3]\n * R.paths([['a', 'b'], ['p', 'r']], {a: {b: 2}, p: [{q: 3}]}); //=> [2, undefined]\n */\n\nvar paths =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function paths(pathsArray, obj) {\n return pathsArray.map(function (paths) {\n var val = obj;\n var idx = 0;\n var p;\n\n while (idx < paths.length) {\n if (val == null) {\n return;\n }\n\n p = paths[idx];\n val = Object(_internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(p) ? Object(_nth_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(p, val) : val[p];\n idx += 1;\n }\n\n return val;\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (paths);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/paths.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pick.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/pick.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns a partial copy of an object containing only the keys specified. If\n * the key does not exist, the property is ignored.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> {k: v}\n * @param {Array} names an array of String property names to copy onto a new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties from `names` on it.\n * @see R.omit, R.props\n * @example\n *\n * R.pick(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}\n * R.pick(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1}\n */\n\nvar pick =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function pick(names, obj) {\n var result = {};\n var idx = 0;\n\n while (idx < names.length) {\n if (names[idx] in obj) {\n result[names[idx]] = obj[names[idx]];\n }\n\n idx += 1;\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pick);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pick.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pickAll.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/pickAll.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Similar to `pick` except that this one includes a `key: undefined` pair for\n * properties that don't exist.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> {k: v}\n * @param {Array} names an array of String property names to copy onto a new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties from `names` on it.\n * @see R.pick\n * @example\n *\n * R.pickAll(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}\n * R.pickAll(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, e: undefined, f: undefined}\n */\n\nvar pickAll =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function pickAll(names, obj) {\n var result = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n var name = names[idx];\n result[name] = obj[name];\n idx += 1;\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pickAll);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pickAll.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pickBy.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/pickBy.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns a partial copy of an object containing only the keys that satisfy\n * the supplied predicate.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @sig ((v, k) -> Boolean) -> {k: v} -> {k: v}\n * @param {Function} pred A predicate to determine whether or not a key\n * should be included on the output object.\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties that satisfy `pred`\n * on it.\n * @see R.pick, R.filter\n * @example\n *\n * const isUpperCase = (val, key) => key.toUpperCase() === key;\n * R.pickBy(isUpperCase, {a: 1, b: 2, A: 3, B: 4}); //=> {A: 3, B: 4}\n */\n\nvar pickBy =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function pickBy(test, obj) {\n var result = {};\n\n for (var prop in obj) {\n if (test(obj[prop], prop, obj)) {\n result[prop] = obj[prop];\n }\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pickBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pickBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pipe.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/pipe.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return pipe; });\n/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _internal_pipe_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_pipe.js */ \"./node_modules/ramda/es/internal/_pipe.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n/* harmony import */ var _tail_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./tail.js */ \"./node_modules/ramda/es/tail.js\");\n\n\n\n\n/**\n * Performs left-to-right function composition. The first argument may have\n * any arity; the remaining arguments must be unary.\n *\n * In some libraries this function is named `sequence`.\n *\n * **Note:** The result of pipe is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)) -> ((a, b, ..., n) -> z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.compose\n * @example\n *\n * const f = R.pipe(Math.pow, R.negate, R.inc);\n *\n * f(3, 4); // -(3^4) + 1\n * @symb R.pipe(f, g, h)(a, b) = h(g(f(a, b)))\n */\n\nfunction pipe() {\n if (arguments.length === 0) {\n throw new Error('pipe requires at least one argument');\n }\n\n return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arguments[0].length, Object(_reduce_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_internal_pipe_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], arguments[0], Object(_tail_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(arguments)));\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pipe.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pipeK.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/pipeK.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return pipeK; });\n/* harmony import */ var _composeK_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./composeK.js */ \"./node_modules/ramda/es/composeK.js\");\n/* harmony import */ var _reverse_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reverse.js */ \"./node_modules/ramda/es/reverse.js\");\n\n\n/**\n * Returns the left-to-right Kleisli composition of the provided functions,\n * each of which must return a value of a type supported by [`chain`](#chain).\n *\n * `R.pipeK(f, g, h)` is equivalent to `R.pipe(f, R.chain(g), R.chain(h))`.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Function\n * @sig Chain m => ((a -> m b), (b -> m c), ..., (y -> m z)) -> (a -> m z)\n * @param {...Function}\n * @return {Function}\n * @see R.composeK\n * @deprecated since v0.26.0\n * @example\n *\n * // parseJson :: String -> Maybe *\n * // get :: String -> Object -> Maybe *\n *\n * // getStateCode :: Maybe String -> Maybe String\n * const getStateCode = R.pipeK(\n * parseJson,\n * get('user'),\n * get('address'),\n * get('state'),\n * R.compose(Maybe.of, R.toUpper)\n * );\n *\n * getStateCode('{\"user\":{\"address\":{\"state\":\"ny\"}}}');\n * //=> Just('NY')\n * getStateCode('[Invalid JSON]');\n * //=> Nothing()\n * @symb R.pipeK(f, g, h)(a) = R.chain(h, R.chain(g, f(a)))\n */\n\nfunction pipeK() {\n if (arguments.length === 0) {\n throw new Error('pipeK requires at least one argument');\n }\n\n return _composeK_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].apply(this, Object(_reverse_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(arguments));\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pipeK.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pipeP.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/pipeP.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return pipeP; });\n/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _internal_pipeP_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_pipeP.js */ \"./node_modules/ramda/es/internal/_pipeP.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n/* harmony import */ var _tail_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./tail.js */ \"./node_modules/ramda/es/tail.js\");\n\n\n\n\n/**\n * Performs left-to-right composition of one or more Promise-returning\n * functions. The first argument may have any arity; the remaining arguments\n * must be unary.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a -> Promise b), (b -> Promise c), ..., (y -> Promise z)) -> (a -> Promise z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.composeP\n * @deprecated since v0.26.0\n * @example\n *\n * // followersForUser :: String -> Promise [User]\n * const followersForUser = R.pipeP(db.getUserById, db.getFollowers);\n */\n\nfunction pipeP() {\n if (arguments.length === 0) {\n throw new Error('pipeP requires at least one argument');\n }\n\n return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arguments[0].length, Object(_reduce_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_internal_pipeP_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], arguments[0], Object(_tail_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(arguments)));\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pipeP.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pipeWith.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/pipeWith.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _head_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./head.js */ \"./node_modules/ramda/es/head.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _tail_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./tail.js */ \"./node_modules/ramda/es/tail.js\");\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./identity.js */ \"./node_modules/ramda/es/identity.js\");\n\n\n\n\n\n\n/**\n * Performs left-to-right function composition using transforming function. The first argument may have\n * any arity; the remaining arguments must be unary.\n *\n * **Note:** The result of pipeWith is not automatically curried. Transforming function is not used on the\n * first argument.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig ((* -> *), [((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)]) -> ((a, b, ..., n) -> z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.composeWith, R.pipe\n * @example\n *\n * const pipeWhileNotNil = R.pipeWith((f, res) => R.isNil(res) ? res : f(res));\n * const f = pipeWhileNotNil([Math.pow, R.negate, R.inc])\n *\n * f(3, 4); // -(3^4) + 1\n * @symb R.pipeWith(f)([g, h, i])(...args) = f(i, f(h, g(...args)))\n */\n\nvar pipeWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function pipeWith(xf, list) {\n if (list.length <= 0) {\n return _identity_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"];\n }\n\n var headList = Object(_head_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(list);\n var tailList = Object(_tail_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(list);\n return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(headList.length, function () {\n return Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(function (result, f) {\n return xf.call(this, f, result);\n }, headList.apply(this, arguments), tailList);\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pipeWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pipeWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pluck.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/pluck.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n/* harmony import */ var _prop_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./prop.js */ \"./node_modules/ramda/es/prop.js\");\n\n\n\n/**\n * Returns a new list by plucking the same named property off all objects in\n * the list supplied.\n *\n * `pluck` will work on\n * any [functor](https://github.com/fantasyland/fantasy-land#functor) in\n * addition to arrays, as it is equivalent to `R.map(R.prop(k), f)`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => k -> f {k: v} -> f v\n * @param {Number|String} key The key name to pluck off of each object.\n * @param {Array} f The array or functor to consider.\n * @return {Array} The list of values for the given key.\n * @see R.props\n * @example\n *\n * var getAges = R.pluck('age');\n * getAges([{name: 'fred', age: 29}, {name: 'wilma', age: 27}]); //=> [29, 27]\n *\n * R.pluck(0, [[1, 2], [3, 4]]); //=> [1, 3]\n * R.pluck('val', {a: {val: 3}, b: {val: 5}}); //=> {a: 3, b: 5}\n * @symb R.pluck('x', [{x: 1, y: 2}, {x: 3, y: 4}, {x: 5, y: 6}]) = [1, 3, 5]\n * @symb R.pluck(0, [[1, 2], [3, 4], [5, 6]]) = [1, 3, 5]\n */\n\nvar pluck =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function pluck(p, list) {\n return Object(_map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_prop_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(p), list);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pluck);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pluck.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/prepend.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/prepend.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Returns a new list with the given element at the front, followed by the\n * contents of the list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} el The item to add to the head of the output list.\n * @param {Array} list The array to add to the tail of the output list.\n * @return {Array} A new array.\n * @see R.append\n * @example\n *\n * R.prepend('fee', ['fi', 'fo', 'fum']); //=> ['fee', 'fi', 'fo', 'fum']\n */\n\nvar prepend =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function prepend(el, list) {\n return Object(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])([el], list);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (prepend);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/prepend.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/product.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/product.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _multiply_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./multiply.js */ \"./node_modules/ramda/es/multiply.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n\n\n/**\n * Multiplies together all the elements of a list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list An array of numbers\n * @return {Number} The product of all the numbers in the list.\n * @see R.reduce\n * @example\n *\n * R.product([2,4,6,8,100,1]); //=> 38400\n */\n\nvar product =\n/*#__PURE__*/\nObject(_reduce_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_multiply_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], 1);\n/* harmony default export */ __webpack_exports__[\"default\"] = (product);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/product.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/project.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/project.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_map_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_map.js */ \"./node_modules/ramda/es/internal/_map.js\");\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./identity.js */ \"./node_modules/ramda/es/identity.js\");\n/* harmony import */ var _pickAll_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pickAll.js */ \"./node_modules/ramda/es/pickAll.js\");\n/* harmony import */ var _useWith_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./useWith.js */ \"./node_modules/ramda/es/useWith.js\");\n\n\n\n\n/**\n * Reasonable analog to SQL `select` statement.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @category Relation\n * @sig [k] -> [{k: v}] -> [{k: v}]\n * @param {Array} props The property names to project\n * @param {Array} objs The objects to query\n * @return {Array} An array of objects with just the `props` properties.\n * @example\n *\n * const abby = {name: 'Abby', age: 7, hair: 'blond', grade: 2};\n * const fred = {name: 'Fred', age: 12, hair: 'brown', grade: 7};\n * const kids = [abby, fred];\n * R.project(['name', 'grade'], kids); //=> [{name: 'Abby', grade: 2}, {name: 'Fred', grade: 7}]\n */\n\nvar project =\n/*#__PURE__*/\nObject(_useWith_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_internal_map_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], [_pickAll_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], _identity_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]]); // passing `identity` gives correct arity\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (project);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/project.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/prop.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/prop.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./path.js */ \"./node_modules/ramda/es/path.js\");\n\n\n/**\n * Returns a function that when supplied an object returns the indicated\n * property of that object, if it exists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig Idx -> {s: a} -> a | Undefined\n * @param {String|Number} p The property name or array index\n * @param {Object} obj The object to query\n * @return {*} The value at `obj.p`.\n * @see R.path, R.nth\n * @example\n *\n * R.prop('x', {x: 100}); //=> 100\n * R.prop('x', {}); //=> undefined\n * R.prop(0, [100]); //=> 100\n * R.compose(R.inc, R.prop('x'))({ x: 3 }) //=> 4\n */\n\nvar prop =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function prop(p, obj) {\n return Object(_path_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([p], obj);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (prop);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/prop.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/propEq.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/propEq.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n\n\n/**\n * Returns `true` if the specified object property is equal, in\n * [`R.equals`](#equals) terms, to the given value; `false` otherwise.\n * You can test multiple properties with [`R.whereEq`](#whereEq).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig String -> a -> Object -> Boolean\n * @param {String} name\n * @param {*} val\n * @param {*} obj\n * @return {Boolean}\n * @see R.whereEq, R.propSatisfies, R.equals\n * @example\n *\n * const abby = {name: 'Abby', age: 7, hair: 'blond'};\n * const fred = {name: 'Fred', age: 12, hair: 'brown'};\n * const rusty = {name: 'Rusty', age: 10, hair: 'brown'};\n * const alois = {name: 'Alois', age: 15, disposition: 'surly'};\n * const kids = [abby, fred, rusty, alois];\n * const hasBrownHair = R.propEq('hair', 'brown');\n * R.filter(hasBrownHair, kids); //=> [fred, rusty]\n */\n\nvar propEq =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function propEq(name, val, obj) {\n return Object(_equals_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(val, obj[name]);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (propEq);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/propEq.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/propIs.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/propIs.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _is_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./is.js */ \"./node_modules/ramda/es/is.js\");\n\n\n/**\n * Returns `true` if the specified object property is of the given type;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Type\n * @sig Type -> String -> Object -> Boolean\n * @param {Function} type\n * @param {String} name\n * @param {*} obj\n * @return {Boolean}\n * @see R.is, R.propSatisfies\n * @example\n *\n * R.propIs(Number, 'x', {x: 1, y: 2}); //=> true\n * R.propIs(Number, 'x', {x: 'foo'}); //=> false\n * R.propIs(Number, 'x', {}); //=> false\n */\n\nvar propIs =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function propIs(type, name, obj) {\n return Object(_is_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(type, obj[name]);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (propIs);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/propIs.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/propOr.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/propOr.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _pathOr_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pathOr.js */ \"./node_modules/ramda/es/pathOr.js\");\n\n\n/**\n * If the given, non-null object has an own property with the specified name,\n * returns the value of that property. Otherwise returns the provided default\n * value.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Object\n * @sig a -> String -> Object -> a\n * @param {*} val The default value.\n * @param {String} p The name of the property to return.\n * @param {Object} obj The object to query.\n * @return {*} The value of given property of the supplied object or the default value.\n * @example\n *\n * const alice = {\n * name: 'ALICE',\n * age: 101\n * };\n * const favorite = R.prop('favoriteLibrary');\n * const favoriteWithDefault = R.propOr('Ramda', 'favoriteLibrary');\n *\n * favorite(alice); //=> undefined\n * favoriteWithDefault(alice); //=> 'Ramda'\n */\n\nvar propOr =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function propOr(val, p, obj) {\n return Object(_pathOr_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(val, [p], obj);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (propOr);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/propOr.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/propSatisfies.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/propSatisfies.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Returns `true` if the specified object property satisfies the given\n * predicate; `false` otherwise. You can test multiple properties with\n * [`R.where`](#where).\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Logic\n * @sig (a -> Boolean) -> String -> {String: a} -> Boolean\n * @param {Function} pred\n * @param {String} name\n * @param {*} obj\n * @return {Boolean}\n * @see R.where, R.propEq, R.propIs\n * @example\n *\n * R.propSatisfies(x => x > 0, 'x', {x: 1, y: 2}); //=> true\n */\n\nvar propSatisfies =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function propSatisfies(pred, name, obj) {\n return pred(obj[name]);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (propSatisfies);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/propSatisfies.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/props.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/props.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./path.js */ \"./node_modules/ramda/es/path.js\");\n\n\n/**\n * Acts as multiple `prop`: array of keys in, array of values out. Preserves\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> [v]\n * @param {Array} ps The property names to fetch\n * @param {Object} obj The object to query\n * @return {Array} The corresponding values or partially applied function.\n * @example\n *\n * R.props(['x', 'y'], {x: 1, y: 2}); //=> [1, 2]\n * R.props(['c', 'a', 'b'], {b: 2, a: 1}); //=> [undefined, 1, 2]\n *\n * const fullName = R.compose(R.join(' '), R.props(['first', 'last']));\n * fullName({last: 'Bullet-Tooth', age: 33, first: 'Tony'}); //=> 'Tony Bullet-Tooth'\n */\n\nvar props =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function props(ps, obj) {\n return ps.map(function (p) {\n return Object(_path_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([p], obj);\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (props);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/props.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/range.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/range.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isNumber_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isNumber.js */ \"./node_modules/ramda/es/internal/_isNumber.js\");\n\n\n/**\n * Returns a list of numbers from `from` (inclusive) to `to` (exclusive).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> Number -> [Number]\n * @param {Number} from The first number in the list.\n * @param {Number} to One more than the last number in the list.\n * @return {Array} The list of numbers in the set `[a, b)`.\n * @example\n *\n * R.range(1, 5); //=> [1, 2, 3, 4]\n * R.range(50, 53); //=> [50, 51, 52]\n */\n\nvar range =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function range(from, to) {\n if (!(Object(_internal_isNumber_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(from) && Object(_internal_isNumber_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(to))) {\n throw new TypeError('Both arguments to range must be numbers');\n }\n\n var result = [];\n var n = from;\n\n while (n < to) {\n result.push(n);\n n += 1;\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (range);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/range.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/reduce.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/reduce.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n\n\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It may use\n * [`R.reduced`](#reduced) to shortcut the iteration.\n *\n * The arguments' order of [`reduceRight`](#reduceRight)'s iterator function\n * is *(value, acc)*.\n *\n * Note: `R.reduce` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduce` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Description\n *\n * Dispatches to the `reduce` method of the third argument, if present. When\n * doing so, it is up to the user to handle the [`R.reduced`](#reduced)\n * shortcuting, as this is not implemented by `reduce`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduced, R.addIndex, R.reduceRight\n * @example\n *\n * R.reduce(R.subtract, 0, [1, 2, 3, 4]) // => ((((0 - 1) - 2) - 3) - 4) = -10\n * // - -10\n * // / \\ / \\\n * // - 4 -6 4\n * // / \\ / \\\n * // - 3 ==> -3 3\n * // / \\ / \\\n * // - 2 -1 2\n * // / \\ / \\\n * // 0 1 0 1\n *\n * @symb R.reduce(f, a, [b, c, d]) = f(f(f(a, b), c), d)\n */\n\nvar reduce =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (reduce);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/reduce.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/reduceBy.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/reduceBy.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_clone_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_clone.js */ \"./node_modules/ramda/es/internal/_clone.js\");\n/* harmony import */ var _internal_curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curryN.js */ \"./node_modules/ramda/es/internal/_curryN.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _internal_xreduceBy_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./internal/_xreduceBy.js */ \"./node_modules/ramda/es/internal/_xreduceBy.js\");\n\n\n\n\n\n\n/**\n * Groups the elements of the list according to the result of calling\n * the String-returning function `keyFn` on each element and reduces the elements\n * of each group to a single value via the reducer function `valueFn`.\n *\n * This function is basically a more general [`groupBy`](#groupBy) function.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category List\n * @sig ((a, b) -> a) -> a -> (b -> String) -> [b] -> {String: a}\n * @param {Function} valueFn The function that reduces the elements of each group to a single\n * value. Receives two values, accumulator for a particular group and the current element.\n * @param {*} acc The (initial) accumulator value for each group.\n * @param {Function} keyFn The function that maps the list's element into a key.\n * @param {Array} list The array to group.\n * @return {Object} An object with the output of `keyFn` for keys, mapped to the output of\n * `valueFn` for elements which produced that key when passed to `keyFn`.\n * @see R.groupBy, R.reduce\n * @example\n *\n * const groupNames = (acc, {name}) => acc.concat(name)\n * const toGrade = ({score}) =>\n * score < 65 ? 'F' :\n * score < 70 ? 'D' :\n * score < 80 ? 'C' :\n * score < 90 ? 'B' : 'A'\n *\n * var students = [\n * {name: 'Abby', score: 83},\n * {name: 'Bart', score: 62},\n * {name: 'Curt', score: 88},\n * {name: 'Dora', score: 92},\n * ]\n *\n * reduceBy(groupNames, [], toGrade, students)\n * //=> {\"A\": [\"Dora\"], \"B\": [\"Abby\", \"Curt\"], \"F\": [\"Bart\"]}\n */\n\nvar reduceBy =\n/*#__PURE__*/\nObject(_internal_curryN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(4, [],\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])([], _internal_xreduceBy_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"], function reduceBy(valueFn, valueAcc, keyFn, list) {\n return Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(function (acc, elt) {\n var key = keyFn(elt);\n acc[key] = valueFn(Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(key, acc) ? acc[key] : Object(_internal_clone_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(valueAcc, [], [], false), elt);\n return acc;\n }, {}, list);\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (reduceBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/reduceBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/reduceRight.js": +/*!**********************************************!*\ + !*** ./node_modules/ramda/es/reduceRight.js ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * Similar to [`reduce`](#reduce), except moves through the input list from the\n * right to the left.\n *\n * The iterator function receives two values: *(value, acc)*, while the arguments'\n * order of `reduce`'s iterator function is *(acc, value)*.\n *\n * Note: `R.reduceRight` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduceRight` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduceRight#Description\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> b) -> b -> [a] -> b\n * @param {Function} fn The iterator function. Receives two values, the current element from the array\n * and the accumulator.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.addIndex\n * @example\n *\n * R.reduceRight(R.subtract, 0, [1, 2, 3, 4]) // => (1 - (2 - (3 - (4 - 0)))) = -2\n * // - -2\n * // / \\ / \\\n * // 1 - 1 3\n * // / \\ / \\\n * // 2 - ==> 2 -1\n * // / \\ / \\\n * // 3 - 3 4\n * // / \\ / \\\n * // 4 0 4 0\n *\n * @symb R.reduceRight(f, a, [b, c, d]) = f(b, f(c, f(d, a)))\n */\n\nvar reduceRight =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function reduceRight(fn, acc, list) {\n var idx = list.length - 1;\n\n while (idx >= 0) {\n acc = fn(list[idx], acc);\n idx -= 1;\n }\n\n return acc;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (reduceRight);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/reduceRight.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/reduceWhile.js": +/*!**********************************************!*\ + !*** ./node_modules/ramda/es/reduceWhile.js ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curryN_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curryN.js */ \"./node_modules/ramda/es/internal/_curryN.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _internal_reduced_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_reduced.js */ \"./node_modules/ramda/es/internal/_reduced.js\");\n\n\n\n/**\n * Like [`reduce`](#reduce), `reduceWhile` returns a single item by iterating\n * through the list, successively calling the iterator function. `reduceWhile`\n * also takes a predicate that is evaluated before each step. If the predicate\n * returns `false`, it \"short-circuits\" the iteration and returns the current\n * value of the accumulator.\n *\n * @func\n * @memberOf R\n * @since v0.22.0\n * @category List\n * @sig ((a, b) -> Boolean) -> ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} pred The predicate. It is passed the accumulator and the\n * current element.\n * @param {Function} fn The iterator function. Receives two values, the\n * accumulator and the current element.\n * @param {*} a The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.reduced\n * @example\n *\n * const isOdd = (acc, x) => x % 2 === 1;\n * const xs = [1, 3, 5, 60, 777, 800];\n * R.reduceWhile(isOdd, R.add, 0, xs); //=> 9\n *\n * const ys = [2, 4, 6]\n * R.reduceWhile(isOdd, R.add, 111, ys); //=> 111\n */\n\nvar reduceWhile =\n/*#__PURE__*/\nObject(_internal_curryN_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(4, [], function _reduceWhile(pred, fn, a, list) {\n return Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (acc, x) {\n return pred(acc, x) ? fn(acc, x) : Object(_internal_reduced_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(acc);\n }, a, list);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (reduceWhile);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/reduceWhile.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/reduced.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/reduced.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_reduced_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_reduced.js */ \"./node_modules/ramda/es/internal/_reduced.js\");\n\n\n/**\n * Returns a value wrapped to indicate that it is the final value of the reduce\n * and transduce functions. The returned value should be considered a black\n * box: the internal structure is not guaranteed to be stable.\n *\n * Note: this optimization is only available to the below functions:\n * - [`reduce`](#reduce)\n * - [`reduceWhile`](#reduceWhile)\n * - [`transduce`](#transduce)\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category List\n * @sig a -> *\n * @param {*} x The final value of the reduce.\n * @return {*} The wrapped value.\n * @see R.reduce, R.reduceWhile, R.transduce\n * @example\n *\n * R.reduce(\n * (acc, item) => item > 3 ? R.reduced(acc) : acc.concat(item),\n * [],\n * [1, 2, 3, 4, 5]) // [1, 2, 3]\n */\n\nvar reduced =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_internal_reduced_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (reduced);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/reduced.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/reject.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/reject.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_complement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_complement.js */ \"./node_modules/ramda/es/internal/_complement.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./filter.js */ \"./node_modules/ramda/es/filter.js\");\n\n\n\n/**\n * The complement of [`filter`](#filter).\n *\n * Acts as a transducer if a transformer is given in list position. Filterable\n * objects include plain objects or any object that has a filter method such\n * as `Array`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array}\n * @see R.filter, R.transduce, R.addIndex\n * @example\n *\n * const isOdd = (n) => n % 2 === 1;\n *\n * R.reject(isOdd, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.reject(isOdd, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\n\nvar reject =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function reject(pred, filterable) {\n return Object(_filter_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Object(_internal_complement_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(pred), filterable);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (reject);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/reject.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/remove.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/remove.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Removes the sub-list of `list` starting at index `start` and containing\n * `count` elements. _Note that this is not destructive_: it returns a copy of\n * the list with the changes.\n * No lists have been harmed in the application of this function.\n *\n * @func\n * @memberOf R\n * @since v0.2.2\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @param {Number} start The position to start removing elements\n * @param {Number} count The number of elements to remove\n * @param {Array} list The list to remove from\n * @return {Array} A new Array with `count` elements from `start` removed.\n * @see R.without\n * @example\n *\n * R.remove(2, 3, [1,2,3,4,5,6,7,8]); //=> [1,2,6,7,8]\n */\n\nvar remove =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function remove(start, count, list) {\n var result = Array.prototype.slice.call(list, 0);\n result.splice(start, count);\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (remove);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/remove.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/repeat.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/repeat.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _always_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./always.js */ \"./node_modules/ramda/es/always.js\");\n/* harmony import */ var _times_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./times.js */ \"./node_modules/ramda/es/times.js\");\n\n\n\n/**\n * Returns a fixed list of size `n` containing a specified identical value.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig a -> n -> [a]\n * @param {*} value The value to repeat.\n * @param {Number} n The desired size of the output list.\n * @return {Array} A new array containing `n` `value`s.\n * @see R.times\n * @example\n *\n * R.repeat('hi', 5); //=> ['hi', 'hi', 'hi', 'hi', 'hi']\n *\n * const obj = {};\n * const repeatedObjs = R.repeat(obj, 5); //=> [{}, {}, {}, {}, {}]\n * repeatedObjs[0] === repeatedObjs[1]; //=> true\n * @symb R.repeat(a, 0) = []\n * @symb R.repeat(a, 1) = [a]\n * @symb R.repeat(a, 2) = [a, a]\n */\n\nvar repeat =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function repeat(value, n) {\n return Object(_times_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Object(_always_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value), n);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (repeat);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/repeat.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/replace.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/replace.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Replace a substring or regex match in a string with a replacement.\n *\n * The first two parameters correspond to the parameters of the\n * `String.prototype.replace()` function, so the second parameter can also be a\n * function.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category String\n * @sig RegExp|String -> String -> String -> String\n * @param {RegExp|String} pattern A regular expression or a substring to match.\n * @param {String} replacement The string to replace the matches with.\n * @param {String} str The String to do the search and replacement in.\n * @return {String} The result.\n * @example\n *\n * R.replace('foo', 'bar', 'foo foo foo'); //=> 'bar foo foo'\n * R.replace(/foo/, 'bar', 'foo foo foo'); //=> 'bar foo foo'\n *\n * // Use the \"g\" (global) flag to replace all occurrences:\n * R.replace(/foo/g, 'bar', 'foo foo foo'); //=> 'bar bar bar'\n */\n\nvar replace =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function replace(regex, replacement, str) {\n return str.replace(regex, replacement);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (replace);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/replace.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/reverse.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/reverse.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_isString_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isString.js */ \"./node_modules/ramda/es/internal/_isString.js\");\n\n\n/**\n * Returns a new list or string with the elements or characters in reverse\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {Array|String} list\n * @return {Array|String}\n * @example\n *\n * R.reverse([1, 2, 3]); //=> [3, 2, 1]\n * R.reverse([1, 2]); //=> [2, 1]\n * R.reverse([1]); //=> [1]\n * R.reverse([]); //=> []\n *\n * R.reverse('abc'); //=> 'cba'\n * R.reverse('ab'); //=> 'ba'\n * R.reverse('a'); //=> 'a'\n * R.reverse(''); //=> ''\n */\n\nvar reverse =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function reverse(list) {\n return Object(_internal_isString_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(list) ? list.split('').reverse().join('') : Array.prototype.slice.call(list, 0).reverse();\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (reverse);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/reverse.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/scan.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/scan.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Scan is similar to [`reduce`](#reduce), but returns a list of successively\n * reduced values from the left\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> [a]\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {Array} A list of all intermediately reduced values.\n * @see R.reduce, R.mapAccum\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const factorials = R.scan(R.multiply, 1, numbers); //=> [1, 1, 2, 6, 24]\n * @symb R.scan(f, a, [b, c]) = [a, f(a, b), f(f(a, b), c)]\n */\n\nvar scan =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function scan(fn, acc, list) {\n var idx = 0;\n var len = list.length;\n var result = [acc];\n\n while (idx < len) {\n acc = fn(acc, list[idx]);\n result[idx + 1] = acc;\n idx += 1;\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (scan);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/scan.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/sequence.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/sequence.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _ap_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ap.js */ \"./node_modules/ramda/es/ap.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n/* harmony import */ var _prepend_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./prepend.js */ \"./node_modules/ramda/es/prepend.js\");\n/* harmony import */ var _reduceRight_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./reduceRight.js */ \"./node_modules/ramda/es/reduceRight.js\");\n\n\n\n\n\n/**\n * Transforms a [Traversable](https://github.com/fantasyland/fantasy-land#traversable)\n * of [Applicative](https://github.com/fantasyland/fantasy-land#applicative) into an\n * Applicative of Traversable.\n *\n * Dispatches to the `sequence` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (Applicative f, Traversable t) => (a -> f a) -> t (f a) -> f (t a)\n * @param {Function} of\n * @param {*} traversable\n * @return {*}\n * @see R.traverse\n * @example\n *\n * R.sequence(Maybe.of, [Just(1), Just(2), Just(3)]); //=> Just([1, 2, 3])\n * R.sequence(Maybe.of, [Just(1), Just(2), Nothing()]); //=> Nothing()\n *\n * R.sequence(R.of, Just([1, 2, 3])); //=> [Just(1), Just(2), Just(3)]\n * R.sequence(R.of, Nothing()); //=> [Nothing()]\n */\n\nvar sequence =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function sequence(of, traversable) {\n return typeof traversable.sequence === 'function' ? traversable.sequence(of) : Object(_reduceRight_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(function (x, acc) {\n return Object(_ap_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_map_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_prepend_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], x), acc);\n }, of([]), traversable);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (sequence);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/sequence.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/set.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/set.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _always_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./always.js */ \"./node_modules/ramda/es/always.js\");\n/* harmony import */ var _over_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./over.js */ \"./node_modules/ramda/es/over.js\");\n\n\n\n/**\n * Returns the result of \"setting\" the portion of the given data structure\n * focused by the given lens to the given value.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> a -> s -> s\n * @param {Lens} lens\n * @param {*} v\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.set(xLens, 8, {x: 1, y: 2}); //=> {x: 8, y: 2}\n */\n\nvar set =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function set(lens, v, x) {\n return Object(_over_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(lens, Object(_always_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(v), x);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (set);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/set.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/slice.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/slice.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_checkForMethod.js */ \"./node_modules/ramda/es/internal/_checkForMethod.js\");\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n\n/**\n * Returns the elements of the given list or string (or object with a `slice`\n * method) from `fromIndex` (inclusive) to `toIndex` (exclusive).\n *\n * Dispatches to the `slice` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @sig Number -> Number -> String -> String\n * @param {Number} fromIndex The start index (inclusive).\n * @param {Number} toIndex The end index (exclusive).\n * @param {*} list\n * @return {*}\n * @example\n *\n * R.slice(1, 3, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(1, Infinity, ['a', 'b', 'c', 'd']); //=> ['b', 'c', 'd']\n * R.slice(0, -1, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c']\n * R.slice(-3, -1, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(0, 3, 'ramda'); //=> 'ram'\n */\n\nvar slice =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('slice', function slice(fromIndex, toIndex, list) {\n return Array.prototype.slice.call(list, fromIndex, toIndex);\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (slice);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/slice.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/sort.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/sort.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns a copy of the list, sorted according to the comparator function,\n * which should accept two values at a time and return a negative number if the\n * first value is smaller, a positive number if it's larger, and zero if they\n * are equal. Please note that this is a **copy** of the list. It does not\n * modify the original.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, a) -> Number) -> [a] -> [a]\n * @param {Function} comparator A sorting function :: a -> b -> Int\n * @param {Array} list The list to sort\n * @return {Array} a new array with its elements sorted by the comparator function.\n * @example\n *\n * const diff = function(a, b) { return a - b; };\n * R.sort(diff, [4,2,7,5]); //=> [2, 4, 5, 7]\n */\n\nvar sort =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function sort(comparator, list) {\n return Array.prototype.slice.call(list, 0).sort(comparator);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (sort);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/sort.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/sortBy.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/sortBy.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Sorts the list according to the supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord b => (a -> b) -> [a] -> [a]\n * @param {Function} fn\n * @param {Array} list The list to sort.\n * @return {Array} A new list sorted by the keys generated by `fn`.\n * @example\n *\n * const sortByFirstItem = R.sortBy(R.prop(0));\n * const pairs = [[-1, 1], [-2, 2], [-3, 3]];\n * sortByFirstItem(pairs); //=> [[-3, 3], [-2, 2], [-1, 1]]\n *\n * const sortByNameCaseInsensitive = R.sortBy(R.compose(R.toLower, R.prop('name')));\n * const alice = {\n * name: 'ALICE',\n * age: 101\n * };\n * const bob = {\n * name: 'Bob',\n * age: -10\n * };\n * const clara = {\n * name: 'clara',\n * age: 314.159\n * };\n * const people = [clara, bob, alice];\n * sortByNameCaseInsensitive(people); //=> [alice, bob, clara]\n */\n\nvar sortBy =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function sortBy(fn, list) {\n return Array.prototype.slice.call(list, 0).sort(function (a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (sortBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/sortBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/sortWith.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/sortWith.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Sorts a list according to a list of comparators.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Relation\n * @sig [(a, a) -> Number] -> [a] -> [a]\n * @param {Array} functions A list of comparator functions.\n * @param {Array} list The list to sort.\n * @return {Array} A new list sorted according to the comarator functions.\n * @example\n *\n * const alice = {\n * name: 'alice',\n * age: 40\n * };\n * const bob = {\n * name: 'bob',\n * age: 30\n * };\n * const clara = {\n * name: 'clara',\n * age: 40\n * };\n * const people = [clara, bob, alice];\n * const ageNameSort = R.sortWith([\n * R.descend(R.prop('age')),\n * R.ascend(R.prop('name'))\n * ]);\n * ageNameSort(people); //=> [alice, clara, bob]\n */\n\nvar sortWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function sortWith(fns, list) {\n return Array.prototype.slice.call(list, 0).sort(function (a, b) {\n var result = 0;\n var i = 0;\n\n while (result === 0 && i < fns.length) {\n result = fns[i](a, b);\n i += 1;\n }\n\n return result;\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (sortWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/sortWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/split.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/split.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _invoker_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./invoker.js */ \"./node_modules/ramda/es/invoker.js\");\n\n/**\n * Splits a string into an array of strings based on the given\n * separator.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category String\n * @sig (String | RegExp) -> String -> [String]\n * @param {String|RegExp} sep The pattern.\n * @param {String} str The string to separate into an array.\n * @return {Array} The array of strings from `str` separated by `sep`.\n * @see R.join\n * @example\n *\n * const pathComponents = R.split('/');\n * R.tail(pathComponents('/usr/local/bin/node')); //=> ['usr', 'local', 'bin', 'node']\n *\n * R.split('.', 'a.b.c.xyz.d'); //=> ['a', 'b', 'c', 'xyz', 'd']\n */\n\nvar split =\n/*#__PURE__*/\nObject(_invoker_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(1, 'split');\n/* harmony default export */ __webpack_exports__[\"default\"] = (split);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/split.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/splitAt.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/splitAt.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _length_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./length.js */ \"./node_modules/ramda/es/length.js\");\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n\n\n\n/**\n * Splits a given list or string at a given index.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig Number -> [a] -> [[a], [a]]\n * @sig Number -> String -> [String, String]\n * @param {Number} index The index where the array/string is split.\n * @param {Array|String} array The array/string to be split.\n * @return {Array}\n * @example\n *\n * R.splitAt(1, [1, 2, 3]); //=> [[1], [2, 3]]\n * R.splitAt(5, 'hello world'); //=> ['hello', ' world']\n * R.splitAt(-1, 'foobar'); //=> ['fooba', 'r']\n */\n\nvar splitAt =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function splitAt(index, array) {\n return [Object(_slice_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(0, index, array), Object(_slice_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(index, Object(_length_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(array), array)];\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (splitAt);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/splitAt.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/splitEvery.js": +/*!*********************************************!*\ + !*** ./node_modules/ramda/es/splitEvery.js ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n\n\n/**\n * Splits a collection into slices of the specified length.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [[a]]\n * @sig Number -> String -> [String]\n * @param {Number} n\n * @param {Array} list\n * @return {Array}\n * @example\n *\n * R.splitEvery(3, [1, 2, 3, 4, 5, 6, 7]); //=> [[1, 2, 3], [4, 5, 6], [7]]\n * R.splitEvery(3, 'foobarbaz'); //=> ['foo', 'bar', 'baz']\n */\n\nvar splitEvery =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function splitEvery(n, list) {\n if (n <= 0) {\n throw new Error('First argument to splitEvery must be a positive integer');\n }\n\n var result = [];\n var idx = 0;\n\n while (idx < list.length) {\n result.push(Object(_slice_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(idx, idx += n, list));\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (splitEvery);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/splitEvery.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/splitWhen.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/splitWhen.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Takes a list and a predicate and returns a pair of lists with the following properties:\n *\n * - the result of concatenating the two output lists is equivalent to the input list;\n * - none of the elements of the first output list satisfies the predicate; and\n * - if the second output list is non-empty, its first element satisfies the predicate.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [[a], [a]]\n * @param {Function} pred The predicate that determines where the array is split.\n * @param {Array} list The array to be split.\n * @return {Array}\n * @example\n *\n * R.splitWhen(R.equals(2), [1, 2, 3, 1, 2, 3]); //=> [[1], [2, 3, 1, 2, 3]]\n */\n\nvar splitWhen =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function splitWhen(pred, list) {\n var idx = 0;\n var len = list.length;\n var prefix = [];\n\n while (idx < len && !pred(list[idx])) {\n prefix.push(list[idx]);\n idx += 1;\n }\n\n return [prefix, Array.prototype.slice.call(list, idx)];\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (splitWhen);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/splitWhen.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/startsWith.js": +/*!*********************************************!*\ + !*** ./node_modules/ramda/es/startsWith.js ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n/* harmony import */ var _take_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./take.js */ \"./node_modules/ramda/es/take.js\");\n\n\n\n/**\n * Checks if a list starts with the provided sublist.\n *\n * Similarly, checks if a string starts with the provided substring.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category List\n * @sig [a] -> [a] -> Boolean\n * @sig String -> String -> Boolean\n * @param {*} prefix\n * @param {*} list\n * @return {Boolean}\n * @see R.endsWith\n * @example\n *\n * R.startsWith('a', 'abc') //=> true\n * R.startsWith('b', 'abc') //=> false\n * R.startsWith(['a'], ['a', 'b', 'c']) //=> true\n * R.startsWith(['b'], ['a', 'b', 'c']) //=> false\n */\n\nvar startsWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (prefix, list) {\n return Object(_equals_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_take_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(prefix.length, list), prefix);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (startsWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/startsWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/subtract.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/subtract.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Subtracts its second argument from its first argument.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a - b`.\n * @see R.add\n * @example\n *\n * R.subtract(10, 8); //=> 2\n *\n * const minus5 = R.subtract(R.__, 5);\n * minus5(17); //=> 12\n *\n * const complementaryAngle = R.subtract(90);\n * complementaryAngle(30); //=> 60\n * complementaryAngle(72); //=> 18\n */\n\nvar subtract =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function subtract(a, b) {\n return Number(a) - Number(b);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (subtract);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/subtract.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/sum.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/sum.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _add_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./add.js */ \"./node_modules/ramda/es/add.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n\n\n/**\n * Adds together all the elements of a list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list An array of numbers\n * @return {Number} The sum of all the numbers in the list.\n * @see R.reduce\n * @example\n *\n * R.sum([2,4,6,8,100,1]); //=> 121\n */\n\nvar sum =\n/*#__PURE__*/\nObject(_reduce_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_add_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], 0);\n/* harmony default export */ __webpack_exports__[\"default\"] = (sum);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/sum.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/symmetricDifference.js": +/*!******************************************************!*\ + !*** ./node_modules/ramda/es/symmetricDifference.js ***! + \******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _concat_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./concat.js */ \"./node_modules/ramda/es/concat.js\");\n/* harmony import */ var _difference_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./difference.js */ \"./node_modules/ramda/es/difference.js\");\n\n\n\n/**\n * Finds the set (i.e. no duplicates) of all elements contained in the first or\n * second list, but not both.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` or `list2`, but not both.\n * @see R.symmetricDifferenceWith, R.difference, R.differenceWith\n * @example\n *\n * R.symmetricDifference([1,2,3,4], [7,6,5,4,3]); //=> [1,2,7,6,5]\n * R.symmetricDifference([7,6,5,4,3], [1,2,3,4]); //=> [7,6,5,1,2]\n */\n\nvar symmetricDifference =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function symmetricDifference(list1, list2) {\n return Object(_concat_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_difference_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(list1, list2), Object(_difference_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(list2, list1));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (symmetricDifference);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/symmetricDifference.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/symmetricDifferenceWith.js": +/*!**********************************************************!*\ + !*** ./node_modules/ramda/es/symmetricDifferenceWith.js ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _concat_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./concat.js */ \"./node_modules/ramda/es/concat.js\");\n/* harmony import */ var _differenceWith_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./differenceWith.js */ \"./node_modules/ramda/es/differenceWith.js\");\n\n\n\n/**\n * Finds the set (i.e. no duplicates) of all elements contained in the first or\n * second list, but not both. Duplication is determined according to the value\n * returned by applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [a] -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` or `list2`, but not both.\n * @see R.symmetricDifference, R.difference, R.differenceWith\n * @example\n *\n * const eqA = R.eqBy(R.prop('a'));\n * const l1 = [{a: 1}, {a: 2}, {a: 3}, {a: 4}];\n * const l2 = [{a: 3}, {a: 4}, {a: 5}, {a: 6}];\n * R.symmetricDifferenceWith(eqA, l1, l2); //=> [{a: 1}, {a: 2}, {a: 5}, {a: 6}]\n */\n\nvar symmetricDifferenceWith =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function symmetricDifferenceWith(pred, list1, list2) {\n return Object(_concat_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_differenceWith_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(pred, list1, list2), Object(_differenceWith_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(pred, list2, list1));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (symmetricDifferenceWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/symmetricDifferenceWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/tail.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/tail.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_checkForMethod.js */ \"./node_modules/ramda/es/internal/_checkForMethod.js\");\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n\n\n\n/**\n * Returns all but the first element of the given list or string (or object\n * with a `tail` method).\n *\n * Dispatches to the `slice` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.head, R.init, R.last\n * @example\n *\n * R.tail([1, 2, 3]); //=> [2, 3]\n * R.tail([1, 2]); //=> [2]\n * R.tail([1]); //=> []\n * R.tail([]); //=> []\n *\n * R.tail('abc'); //=> 'bc'\n * R.tail('ab'); //=> 'b'\n * R.tail('a'); //=> ''\n * R.tail(''); //=> ''\n */\n\nvar tail =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('tail',\n/*#__PURE__*/\nObject(_slice_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(1, Infinity)));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (tail);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/tail.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/take.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/take.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xtake_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xtake.js */ \"./node_modules/ramda/es/internal/_xtake.js\");\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n\n\n\n\n/**\n * Returns the first `n` elements of the given list, string, or\n * transducer/transformer (or object with a `take` method).\n *\n * Dispatches to the `take` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n\n * @param {*} list\n * @return {*}\n * @see R.drop\n * @example\n *\n * R.take(1, ['foo', 'bar', 'baz']); //=> ['foo']\n * R.take(2, ['foo', 'bar', 'baz']); //=> ['foo', 'bar']\n * R.take(3, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.take(4, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.take(3, 'ramda'); //=> 'ram'\n *\n * const personnel = [\n * 'Dave Brubeck',\n * 'Paul Desmond',\n * 'Eugene Wright',\n * 'Joe Morello',\n * 'Gerry Mulligan',\n * 'Bob Bates',\n * 'Joe Dodge',\n * 'Ron Crotty'\n * ];\n *\n * const takeFive = R.take(5);\n * takeFive(personnel);\n * //=> ['Dave Brubeck', 'Paul Desmond', 'Eugene Wright', 'Joe Morello', 'Gerry Mulligan']\n * @symb R.take(-1, [a, b]) = [a, b]\n * @symb R.take(0, [a, b]) = []\n * @symb R.take(1, [a, b]) = [a]\n * @symb R.take(2, [a, b]) = [a, b]\n */\n\nvar take =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['take'], _internal_xtake_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function take(n, xs) {\n return Object(_slice_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(0, n < 0 ? Infinity : n, xs);\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (take);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/take.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/takeLast.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/takeLast.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _drop_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./drop.js */ \"./node_modules/ramda/es/drop.js\");\n\n\n/**\n * Returns a new list containing the last `n` elements of the given list.\n * If `n > list.length`, returns a list of `list.length` elements.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n The number of elements to return.\n * @param {Array} xs The collection to consider.\n * @return {Array}\n * @see R.dropLast\n * @example\n *\n * R.takeLast(1, ['foo', 'bar', 'baz']); //=> ['baz']\n * R.takeLast(2, ['foo', 'bar', 'baz']); //=> ['bar', 'baz']\n * R.takeLast(3, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.takeLast(4, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.takeLast(3, 'ramda'); //=> 'mda'\n */\n\nvar takeLast =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function takeLast(n, xs) {\n return Object(_drop_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(n >= 0 ? xs.length - n : 0, xs);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (takeLast);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/takeLast.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/takeLastWhile.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/takeLastWhile.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n\n\n/**\n * Returns a new list containing the last `n` elements of a given list, passing\n * each value to the supplied predicate function, and terminating when the\n * predicate function returns `false`. Excludes the element that caused the\n * predicate function to fail. The predicate function is passed one argument:\n * *(value)*.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} fn The function called per iteration.\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array.\n * @see R.dropLastWhile, R.addIndex\n * @example\n *\n * const isNotOne = x => x !== 1;\n *\n * R.takeLastWhile(isNotOne, [1, 2, 3, 4]); //=> [2, 3, 4]\n *\n * R.takeLastWhile(x => x !== 'R' , 'Ramda'); //=> 'amda'\n */\n\nvar takeLastWhile =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function takeLastWhile(fn, xs) {\n var idx = xs.length - 1;\n\n while (idx >= 0 && fn(xs[idx])) {\n idx -= 1;\n }\n\n return Object(_slice_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(idx + 1, Infinity, xs);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (takeLastWhile);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/takeLastWhile.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/takeWhile.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/takeWhile.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xtakeWhile_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xtakeWhile.js */ \"./node_modules/ramda/es/internal/_xtakeWhile.js\");\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n\n\n\n\n/**\n * Returns a new list containing the first `n` elements of a given list,\n * passing each value to the supplied predicate function, and terminating when\n * the predicate function returns `false`. Excludes the element that caused the\n * predicate function to fail. The predicate function is passed one argument:\n * *(value)*.\n *\n * Dispatches to the `takeWhile` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} fn The function called per iteration.\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array.\n * @see R.dropWhile, R.transduce, R.addIndex\n * @example\n *\n * const isNotFour = x => x !== 4;\n *\n * R.takeWhile(isNotFour, [1, 2, 3, 4, 3, 2, 1]); //=> [1, 2, 3]\n *\n * R.takeWhile(x => x !== 'd' , 'Ramda'); //=> 'Ram'\n */\n\nvar takeWhile =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['takeWhile'], _internal_xtakeWhile_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function takeWhile(fn, xs) {\n var idx = 0;\n var len = xs.length;\n\n while (idx < len && fn(xs[idx])) {\n idx += 1;\n }\n\n return Object(_slice_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(0, idx, xs);\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (takeWhile);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/takeWhile.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/tap.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/tap.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xtap_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xtap.js */ \"./node_modules/ramda/es/internal/_xtap.js\");\n\n\n\n/**\n * Runs the given function with the supplied object, then returns the object.\n *\n * Acts as a transducer if a transformer is given as second parameter.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (a -> *) -> a -> a\n * @param {Function} fn The function to call with `x`. The return value of `fn` will be thrown away.\n * @param {*} x\n * @return {*} `x`.\n * @example\n *\n * const sayX = x => console.log('x is ' + x);\n * R.tap(sayX, 100); //=> 100\n * // logs 'x is 100'\n * @symb R.tap(f, a) = a\n */\n\nvar tap =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([], _internal_xtap_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function tap(fn, x) {\n fn(x);\n return x;\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (tap);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/tap.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/test.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/test.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_cloneRegExp_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_cloneRegExp.js */ \"./node_modules/ramda/es/internal/_cloneRegExp.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isRegExp_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isRegExp.js */ \"./node_modules/ramda/es/internal/_isRegExp.js\");\n/* harmony import */ var _toString_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./toString.js */ \"./node_modules/ramda/es/toString.js\");\n\n\n\n\n/**\n * Determines whether a given string matches a given regular expression.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category String\n * @sig RegExp -> String -> Boolean\n * @param {RegExp} pattern\n * @param {String} str\n * @return {Boolean}\n * @see R.match\n * @example\n *\n * R.test(/^x/, 'xyz'); //=> true\n * R.test(/^y/, 'xyz'); //=> false\n */\n\nvar test =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function test(pattern, str) {\n if (!Object(_internal_isRegExp_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(pattern)) {\n throw new TypeError('‘test’ requires a value of type RegExp as its first argument; received ' + Object(_toString_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(pattern));\n }\n\n return Object(_internal_cloneRegExp_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(pattern).test(str);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (test);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/test.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/thunkify.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/thunkify.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n\n/**\n * Creates a thunk out of a function. A thunk delays a calculation until\n * its result is needed, providing lazy evaluation of arguments.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig ((a, b, ..., j) -> k) -> (a, b, ..., j) -> (() -> k)\n * @param {Function} fn A function to wrap in a thunk\n * @return {Function} Expects arguments for `fn` and returns a new function\n * that, when called, applies those arguments to `fn`.\n * @see R.partial, R.partialRight\n * @example\n *\n * R.thunkify(R.identity)(42)(); //=> 42\n * R.thunkify((a, b) => a + b)(25, 17)(); //=> 42\n */\n\nvar thunkify =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function thunkify(fn) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(fn.length, function createThunk() {\n var fnArgs = arguments;\n return function invokeThunk() {\n return fn.apply(this, fnArgs);\n };\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (thunkify);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/thunkify.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/times.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/times.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Calls an input function `n` times, returning an array containing the results\n * of those function calls.\n *\n * `fn` is passed one argument: The current value of `n`, which begins at `0`\n * and is gradually incremented to `n - 1`.\n *\n * @func\n * @memberOf R\n * @since v0.2.3\n * @category List\n * @sig (Number -> a) -> Number -> [a]\n * @param {Function} fn The function to invoke. Passed one argument, the current value of `n`.\n * @param {Number} n A value between `0` and `n - 1`. Increments after each function call.\n * @return {Array} An array containing the return values of all calls to `fn`.\n * @see R.repeat\n * @example\n *\n * R.times(R.identity, 5); //=> [0, 1, 2, 3, 4]\n * @symb R.times(f, 0) = []\n * @symb R.times(f, 1) = [f(0)]\n * @symb R.times(f, 2) = [f(0), f(1)]\n */\n\nvar times =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function times(fn, n) {\n var len = Number(n);\n var idx = 0;\n var list;\n\n if (len < 0 || isNaN(len)) {\n throw new RangeError('n must be a non-negative number');\n }\n\n list = new Array(len);\n\n while (idx < len) {\n list[idx] = fn(idx);\n idx += 1;\n }\n\n return list;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (times);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/times.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/toLower.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/toLower.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _invoker_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./invoker.js */ \"./node_modules/ramda/es/invoker.js\");\n\n/**\n * The lower case version of a string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to lower case.\n * @return {String} The lower case version of `str`.\n * @see R.toUpper\n * @example\n *\n * R.toLower('XYZ'); //=> 'xyz'\n */\n\nvar toLower =\n/*#__PURE__*/\nObject(_invoker_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(0, 'toLowerCase');\n/* harmony default export */ __webpack_exports__[\"default\"] = (toLower);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/toLower.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/toPairs.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/toPairs.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n\n\n/**\n * Converts an object into an array of key, value arrays. Only the object's\n * own properties are used.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Object\n * @sig {String: *} -> [[String,*]]\n * @param {Object} obj The object to extract from\n * @return {Array} An array of key, value arrays from the object's own properties.\n * @see R.fromPairs\n * @example\n *\n * R.toPairs({a: 1, b: 2, c: 3}); //=> [['a', 1], ['b', 2], ['c', 3]]\n */\n\nvar toPairs =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function toPairs(obj) {\n var pairs = [];\n\n for (var prop in obj) {\n if (Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(prop, obj)) {\n pairs[pairs.length] = [prop, obj[prop]];\n }\n }\n\n return pairs;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (toPairs);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/toPairs.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/toPairsIn.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/toPairsIn.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Converts an object into an array of key, value arrays. The object's own\n * properties and prototype properties are used. Note that the order of the\n * output array is not guaranteed to be consistent across different JS\n * platforms.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Object\n * @sig {String: *} -> [[String,*]]\n * @param {Object} obj The object to extract from\n * @return {Array} An array of key, value arrays from the object's own\n * and prototype properties.\n * @example\n *\n * const F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * const f = new F();\n * R.toPairsIn(f); //=> [['x','X'], ['y','Y']]\n */\n\nvar toPairsIn =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function toPairsIn(obj) {\n var pairs = [];\n\n for (var prop in obj) {\n pairs[pairs.length] = [prop, obj[prop]];\n }\n\n return pairs;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (toPairsIn);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/toPairsIn.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/toString.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/toString.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_toString_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_toString.js */ \"./node_modules/ramda/es/internal/_toString.js\");\n\n\n/**\n * Returns the string representation of the given value. `eval`'ing the output\n * should result in a value equivalent to the input value. Many of the built-in\n * `toString` methods do not satisfy this requirement.\n *\n * If the given value is an `[object Object]` with a `toString` method other\n * than `Object.prototype.toString`, this method is invoked with no arguments\n * to produce the return value. This means user-defined constructor functions\n * can provide a suitable `toString` method. For example:\n *\n * function Point(x, y) {\n * this.x = x;\n * this.y = y;\n * }\n *\n * Point.prototype.toString = function() {\n * return 'new Point(' + this.x + ', ' + this.y + ')';\n * };\n *\n * R.toString(new Point(1, 2)); //=> 'new Point(1, 2)'\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category String\n * @sig * -> String\n * @param {*} val\n * @return {String}\n * @example\n *\n * R.toString(42); //=> '42'\n * R.toString('abc'); //=> '\"abc\"'\n * R.toString([1, 2, 3]); //=> '[1, 2, 3]'\n * R.toString({foo: 1, bar: 2, baz: 3}); //=> '{\"bar\": 2, \"baz\": 3, \"foo\": 1}'\n * R.toString(new Date('2001-02-03T04:05:06Z')); //=> 'new Date(\"2001-02-03T04:05:06.000Z\")'\n */\n\nvar toString =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function toString(val) {\n return Object(_internal_toString_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(val, []);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (toString);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/toString.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/toUpper.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/toUpper.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _invoker_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./invoker.js */ \"./node_modules/ramda/es/invoker.js\");\n\n/**\n * The upper case version of a string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to upper case.\n * @return {String} The upper case version of `str`.\n * @see R.toLower\n * @example\n *\n * R.toUpper('abc'); //=> 'ABC'\n */\n\nvar toUpper =\n/*#__PURE__*/\nObject(_invoker_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(0, 'toUpperCase');\n/* harmony default export */ __webpack_exports__[\"default\"] = (toUpper);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/toUpper.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/transduce.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/transduce.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _internal_xwrap_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_xwrap.js */ \"./node_modules/ramda/es/internal/_xwrap.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n\n\n\n/**\n * Initializes a transducer using supplied iterator function. Returns a single\n * item by iterating through the list, successively calling the transformed\n * iterator function and passing it an accumulator value and the current value\n * from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It will be\n * wrapped as a transformer to initialize the transducer. A transformer can be\n * passed directly in place of an iterator function. In both cases, iteration\n * may be stopped early with the [`R.reduced`](#reduced) function.\n *\n * A transducer is a function that accepts a transformer and returns a\n * transformer and can be composed directly.\n *\n * A transformer is an an object that provides a 2-arity reducing iterator\n * function, step, 0-arity initial value function, init, and 1-arity result\n * extraction function, result. The step function is used as the iterator\n * function in reduce. The result function is used to convert the final\n * accumulator into the return type and in most cases is\n * [`R.identity`](#identity). The init function can be used to provide an\n * initial accumulator, but is ignored by transduce.\n *\n * The iteration is performed with [`R.reduce`](#reduce) after initializing the transducer.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig (c -> c) -> ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} xf The transducer function. Receives a transformer and returns a transformer.\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array. Wrapped as transformer, if necessary, and used to\n * initialize the transducer\n * @param {*} acc The initial accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.reduced, R.into\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const transducer = R.compose(R.map(R.add(1)), R.take(2));\n * R.transduce(transducer, R.flip(R.append), [], numbers); //=> [2, 3]\n *\n * const isOdd = (x) => x % 2 === 1;\n * const firstOddTransducer = R.compose(R.filter(isOdd), R.take(1));\n * R.transduce(firstOddTransducer, R.flip(R.append), [], R.range(0, 100)); //=> [1]\n */\n\nvar transduce =\n/*#__PURE__*/\nObject(_curryN_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(4, function transduce(xf, fn, acc, list) {\n return Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(xf(typeof fn === 'function' ? Object(_internal_xwrap_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(fn) : fn), acc, list);\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (transduce);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/transduce.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/transpose.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/transpose.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Transposes the rows and columns of a 2D list.\n * When passed a list of `n` lists of length `x`,\n * returns a list of `x` lists of length `n`.\n *\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig [[a]] -> [[a]]\n * @param {Array} list A 2D list\n * @return {Array} A 2D list\n * @example\n *\n * R.transpose([[1, 'a'], [2, 'b'], [3, 'c']]) //=> [[1, 2, 3], ['a', 'b', 'c']]\n * R.transpose([[1, 2, 3], ['a', 'b', 'c']]) //=> [[1, 'a'], [2, 'b'], [3, 'c']]\n *\n * // If some of the rows are shorter than the following rows, their elements are skipped:\n * R.transpose([[10, 11], [20], [], [30, 31, 32]]) //=> [[10, 20, 30], [11, 31], [32]]\n * @symb R.transpose([[a], [b], [c]]) = [a, b, c]\n * @symb R.transpose([[a, b], [c, d]]) = [[a, c], [b, d]]\n * @symb R.transpose([[a, b], [c]]) = [[a, c], [b]]\n */\n\nvar transpose =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function transpose(outerlist) {\n var i = 0;\n var result = [];\n\n while (i < outerlist.length) {\n var innerlist = outerlist[i];\n var j = 0;\n\n while (j < innerlist.length) {\n if (typeof result[j] === 'undefined') {\n result[j] = [];\n }\n\n result[j].push(innerlist[j]);\n j += 1;\n }\n\n i += 1;\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (transpose);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/transpose.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/traverse.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/traverse.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n/* harmony import */ var _sequence_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./sequence.js */ \"./node_modules/ramda/es/sequence.js\");\n\n\n\n/**\n * Maps an [Applicative](https://github.com/fantasyland/fantasy-land#applicative)-returning\n * function over a [Traversable](https://github.com/fantasyland/fantasy-land#traversable),\n * then uses [`sequence`](#sequence) to transform the resulting Traversable of Applicative\n * into an Applicative of Traversable.\n *\n * Dispatches to the `traverse` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (Applicative f, Traversable t) => (a -> f a) -> (a -> f b) -> t a -> f (t b)\n * @param {Function} of\n * @param {Function} f\n * @param {*} traversable\n * @return {*}\n * @see R.sequence\n * @example\n *\n * // Returns `Maybe.Nothing` if the given divisor is `0`\n * const safeDiv = n => d => d === 0 ? Maybe.Nothing() : Maybe.Just(n / d)\n *\n * R.traverse(Maybe.of, safeDiv(10), [2, 4, 5]); //=> Maybe.Just([5, 2.5, 2])\n * R.traverse(Maybe.of, safeDiv(10), [2, 0, 5]); //=> Maybe.Nothing\n */\n\nvar traverse =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function traverse(of, f, traversable) {\n return typeof traversable['fantasy-land/traverse'] === 'function' ? traversable['fantasy-land/traverse'](f, of) : Object(_sequence_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(of, Object(_map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(f, traversable));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (traverse);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/traverse.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/trim.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/trim.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' + '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' + '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar hasProtoTrim = typeof String.prototype.trim === 'function';\n/**\n * Removes (strips) whitespace from both ends of the string.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to trim.\n * @return {String} Trimmed version of `str`.\n * @example\n *\n * R.trim(' xyz '); //=> 'xyz'\n * R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']\n */\n\nvar trim = !hasProtoTrim ||\n/*#__PURE__*/\nws.trim() || !\n/*#__PURE__*/\nzeroWidth.trim() ?\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n}) :\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function trim(str) {\n return str.trim();\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (trim);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/trim.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/tryCatch.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/tryCatch.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n\n/**\n * `tryCatch` takes two functions, a `tryer` and a `catcher`. The returned\n * function evaluates the `tryer`; if it does not throw, it simply returns the\n * result. If the `tryer` *does* throw, the returned function evaluates the\n * `catcher` function and returns its result. Note that for effective\n * composition with this function, both the `tryer` and `catcher` functions\n * must return the same type of results.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Function\n * @sig (...x -> a) -> ((e, ...x) -> a) -> (...x -> a)\n * @param {Function} tryer The function that may throw.\n * @param {Function} catcher The function that will be evaluated if `tryer` throws.\n * @return {Function} A new function that will catch exceptions and send then to the catcher.\n * @example\n *\n * R.tryCatch(R.prop('x'), R.F)({x: true}); //=> true\n * R.tryCatch(() => { throw 'foo'}, R.always('catched'))('bar') // => 'catched'\n * R.tryCatch(R.times(R.identity), R.always([]))('s') // => []\n * R.tryCatch(() => { throw 'this is not a valid value'}, (err, value)=>({error : err, value }))('bar') // => {'error': 'this is not a valid value', 'value': 'bar'}\n */\n\nvar tryCatch =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(function _tryCatch(tryer, catcher) {\n return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(tryer.length, function () {\n try {\n return tryer.apply(this, arguments);\n } catch (e) {\n return catcher.apply(this, Object(_internal_concat_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([e], arguments));\n }\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (tryCatch);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/tryCatch.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/type.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/type.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig (* -> {*}) -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n * R.type(() => {}); //=> \"Function\"\n * R.type(undefined); //=> \"Undefined\"\n */\n\nvar type =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (type);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/type.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/unapply.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/unapply.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Takes a function `fn`, which takes a single array argument, and returns a\n * function which:\n *\n * - takes any number of positional arguments;\n * - passes these arguments to `fn` as an array; and\n * - returns the result.\n *\n * In other words, `R.unapply` derives a variadic function from a function which\n * takes an array. `R.unapply` is the inverse of [`R.apply`](#apply).\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Function\n * @sig ([*...] -> a) -> (*... -> a)\n * @param {Function} fn\n * @return {Function}\n * @see R.apply\n * @example\n *\n * R.unapply(JSON.stringify)(1, 2, 3); //=> '[1,2,3]'\n * @symb R.unapply(f)(a, b) = f([a, b])\n */\n\nvar unapply =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function unapply(fn) {\n return function () {\n return fn(Array.prototype.slice.call(arguments, 0));\n };\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (unapply);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/unapply.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/unary.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/unary.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _nAry_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./nAry.js */ \"./node_modules/ramda/es/nAry.js\");\n\n\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly 1 parameter. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Function\n * @sig (* -> b) -> (a -> b)\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity 1.\n * @see R.binary, R.nAry\n * @example\n *\n * const takesTwoArgs = function(a, b) {\n * return [a, b];\n * };\n * takesTwoArgs.length; //=> 2\n * takesTwoArgs(1, 2); //=> [1, 2]\n *\n * const takesOneArg = R.unary(takesTwoArgs);\n * takesOneArg.length; //=> 1\n * // Only 1 argument is passed to the wrapped function\n * takesOneArg(1, 2); //=> [1, undefined]\n * @symb R.unary(f)(a, b, c) = f(a)\n */\n\nvar unary =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function unary(fn) {\n return Object(_nAry_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(1, fn);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (unary);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/unary.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/uncurryN.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/uncurryN.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n\n\n/**\n * Returns a function of arity `n` from a (manually) curried function.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Function\n * @sig Number -> (a -> b) -> (a -> c)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to uncurry.\n * @return {Function} A new function.\n * @see R.curry\n * @example\n *\n * const addFour = a => b => c => d => a + b + c + d;\n *\n * const uncurriedAddFour = R.uncurryN(4, addFour);\n * uncurriedAddFour(1, 2, 3, 4); //=> 10\n */\n\nvar uncurryN =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function uncurryN(depth, fn) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(depth, function () {\n var currentDepth = 1;\n var value = fn;\n var idx = 0;\n var endIdx;\n\n while (currentDepth <= depth && typeof value === 'function') {\n endIdx = currentDepth === depth ? arguments.length : idx + value.length;\n value = value.apply(this, Array.prototype.slice.call(arguments, idx, endIdx));\n currentDepth += 1;\n idx = endIdx;\n }\n\n return value;\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (uncurryN);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/uncurryN.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/unfold.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/unfold.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Builds a list from a seed value. Accepts an iterator function, which returns\n * either false to stop iteration or an array of length 2 containing the value\n * to add to the resulting list and the seed to be used in the next call to the\n * iterator function.\n *\n * The iterator function receives one argument: *(seed)*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig (a -> [b]) -> * -> [b]\n * @param {Function} fn The iterator function. receives one argument, `seed`, and returns\n * either false to quit iteration or an array of length two to proceed. The element\n * at index 0 of this array will be added to the resulting array, and the element\n * at index 1 will be passed to the next call to `fn`.\n * @param {*} seed The seed value.\n * @return {Array} The final list.\n * @example\n *\n * const f = n => n > 50 ? false : [-n, n + 10];\n * R.unfold(f, 10); //=> [-10, -20, -30, -40, -50]\n * @symb R.unfold(f, x) = [f(x)[0], f(f(x)[1])[0], f(f(f(x)[1])[1])[0], ...]\n */\n\nvar unfold =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function unfold(fn, seed) {\n var pair = fn(seed);\n var result = [];\n\n while (pair && pair.length) {\n result[result.length] = pair[0];\n pair = fn(pair[1]);\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (unfold);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/unfold.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/union.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/union.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _compose_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./compose.js */ \"./node_modules/ramda/es/compose.js\");\n/* harmony import */ var _uniq_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./uniq.js */ \"./node_modules/ramda/es/uniq.js\");\n\n\n\n\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of the elements\n * of each list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} as The first list.\n * @param {Array} bs The second list.\n * @return {Array} The first and second lists concatenated, with\n * duplicates removed.\n * @example\n *\n * R.union([1, 2, 3], [2, 3, 4]); //=> [1, 2, 3, 4]\n */\n\nvar union =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n/*#__PURE__*/\nObject(_compose_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_uniq_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (union);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/union.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/unionWith.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/unionWith.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _uniqWith_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./uniqWith.js */ \"./node_modules/ramda/es/uniqWith.js\");\n\n\n\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of the elements\n * of each list. Duplication is determined according to the value returned by\n * applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [*] -> [*] -> [*]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The first and second lists concatenated, with\n * duplicates removed.\n * @see R.union\n * @example\n *\n * const l1 = [{a: 1}, {a: 2}];\n * const l2 = [{a: 1}, {a: 4}];\n * R.unionWith(R.eqBy(R.prop('a')), l1, l2); //=> [{a: 1}, {a: 2}, {a: 4}]\n */\n\nvar unionWith =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function unionWith(pred, list1, list2) {\n return Object(_uniqWith_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(pred, Object(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(list1, list2));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (unionWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/unionWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/uniq.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/uniq.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./identity.js */ \"./node_modules/ramda/es/identity.js\");\n/* harmony import */ var _uniqBy_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uniqBy.js */ \"./node_modules/ramda/es/uniqBy.js\");\n\n\n/**\n * Returns a new list containing only one copy of each element in the original\n * list. [`R.equals`](#equals) is used to determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniq([1, 1, 2, 1]); //=> [1, 2]\n * R.uniq([1, '1']); //=> [1, '1']\n * R.uniq([[42], [42]]); //=> [[42]]\n */\n\nvar uniq =\n/*#__PURE__*/\nObject(_uniqBy_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_identity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (uniq);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/uniq.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/uniqBy.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/uniqBy.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_Set_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_Set.js */ \"./node_modules/ramda/es/internal/_Set.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Returns a new list containing only one copy of each element in the original\n * list, based upon the value returned by applying the supplied function to\n * each list element. Prefers the first item if the supplied function produces\n * the same value on two items. [`R.equals`](#equals) is used for comparison.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> b) -> [a] -> [a]\n * @param {Function} fn A function used to produce a value to use during comparisons.\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniqBy(Math.abs, [-1, -5, 2, 10, 1, 2]); //=> [-1, -5, 2, 10]\n */\n\nvar uniqBy =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function uniqBy(fn, list) {\n var set = new _internal_Set_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]();\n var result = [];\n var idx = 0;\n var appliedItem, item;\n\n while (idx < list.length) {\n item = list[idx];\n appliedItem = fn(item);\n\n if (set.add(appliedItem)) {\n result.push(item);\n }\n\n idx += 1;\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (uniqBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/uniqBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/uniqWith.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/uniqWith.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_includesWith_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_includesWith.js */ \"./node_modules/ramda/es/internal/_includesWith.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Returns a new list containing only one copy of each element in the original\n * list, based upon the value returned by applying the supplied predicate to\n * two list elements. Prefers the first item if two items compare equal based\n * on the predicate.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category List\n * @sig ((a, a) -> Boolean) -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * const strEq = R.eqBy(String);\n * R.uniqWith(strEq)([1, '1', 2, 1]); //=> [1, 2]\n * R.uniqWith(strEq)([{}, {}]); //=> [{}]\n * R.uniqWith(strEq)([1, '1', 1]); //=> [1]\n * R.uniqWith(strEq)(['1', 1, 1]); //=> ['1']\n */\n\nvar uniqWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function uniqWith(pred, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n var item;\n\n while (idx < len) {\n item = list[idx];\n\n if (!Object(_internal_includesWith_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(pred, item, result)) {\n result[result.length] = item;\n }\n\n idx += 1;\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (uniqWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/uniqWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/unless.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/unless.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Tests the final argument by passing it to the given predicate function. If\n * the predicate is not satisfied, the function will return the result of\n * calling the `whenFalseFn` function with the same argument. If the predicate\n * is satisfied, the argument is returned as is.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} whenFalseFn A function to invoke when the `pred` evaluates\n * to a falsy value.\n * @param {*} x An object to test with the `pred` function and\n * pass to `whenFalseFn` if necessary.\n * @return {*} Either `x` or the result of applying `x` to `whenFalseFn`.\n * @see R.ifElse, R.when, R.cond\n * @example\n *\n * let safeInc = R.unless(R.isNil, R.inc);\n * safeInc(null); //=> null\n * safeInc(1); //=> 2\n */\n\nvar unless =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function unless(pred, whenFalseFn, x) {\n return pred(x) ? x : whenFalseFn(x);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (unless);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/unless.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/unnest.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/unnest.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_identity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_identity.js */ \"./node_modules/ramda/es/internal/_identity.js\");\n/* harmony import */ var _chain_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./chain.js */ \"./node_modules/ramda/es/chain.js\");\n\n\n/**\n * Shorthand for `R.chain(R.identity)`, which removes one level of nesting from\n * any [Chain](https://github.com/fantasyland/fantasy-land#chain).\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig Chain c => c (c a) -> c a\n * @param {*} list\n * @return {*}\n * @see R.flatten, R.chain\n * @example\n *\n * R.unnest([1, [2], [[3]]]); //=> [1, 2, [3]]\n * R.unnest([[1, 2], [3, 4], [5, 6]]); //=> [1, 2, 3, 4, 5, 6]\n */\n\nvar unnest =\n/*#__PURE__*/\nObject(_chain_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_internal_identity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (unnest);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/unnest.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/until.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/until.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Takes a predicate, a transformation function, and an initial value,\n * and returns a value of the same type as the initial value.\n * It does so by applying the transformation until the predicate is satisfied,\n * at which point it returns the satisfactory value.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} fn The iterator function\n * @param {*} init Initial value\n * @return {*} Final value that satisfies predicate\n * @example\n *\n * R.until(R.gt(R.__, 100), R.multiply(2))(1) // => 128\n */\n\nvar until =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function until(pred, fn, init) {\n var val = init;\n\n while (!pred(val)) {\n val = fn(val);\n }\n\n return val;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (until);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/until.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/update.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/update.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _adjust_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./adjust.js */ \"./node_modules/ramda/es/adjust.js\");\n/* harmony import */ var _always_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./always.js */ \"./node_modules/ramda/es/always.js\");\n\n\n\n/**\n * Returns a new copy of the array with the element at the provided index\n * replaced with the given value.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig Number -> a -> [a] -> [a]\n * @param {Number} idx The index to update.\n * @param {*} x The value to exist at the given index of the returned array.\n * @param {Array|Arguments} list The source array-like object to be updated.\n * @return {Array} A copy of `list` with the value at index `idx` replaced with `x`.\n * @see R.adjust\n * @example\n *\n * R.update(1, '_', ['a', 'b', 'c']); //=> ['a', '_', 'c']\n * R.update(-1, '_', ['a', 'b', 'c']); //=> ['a', 'b', '_']\n * @symb R.update(-1, a, [b, c]) = [b, a]\n * @symb R.update(0, a, [b, c]) = [a, c]\n * @symb R.update(1, a, [b, c]) = [b, a]\n */\n\nvar update =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function update(idx, x, list) {\n return Object(_adjust_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(idx, Object(_always_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(x), list);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (update);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/update.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/useWith.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/useWith.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n\n\n/**\n * Accepts a function `fn` and a list of transformer functions and returns a\n * new curried function. When the new function is invoked, it calls the\n * function `fn` with parameters consisting of the result of calling each\n * supplied handler on successive arguments to the new function.\n *\n * If more arguments are passed to the returned function than transformer\n * functions, those arguments are passed directly to `fn` as additional\n * parameters. If you expect additional arguments that don't need to be\n * transformed, although you can ignore them, it's best to pass an identity\n * function so that the new function reports the correct arity.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((x1, x2, ...) -> z) -> [(a -> x1), (b -> x2), ...] -> (a -> b -> ... -> z)\n * @param {Function} fn The function to wrap.\n * @param {Array} transformers A list of transformer functions\n * @return {Function} The wrapped function.\n * @see R.converge\n * @example\n *\n * R.useWith(Math.pow, [R.identity, R.identity])(3, 4); //=> 81\n * R.useWith(Math.pow, [R.identity, R.identity])(3)(4); //=> 81\n * R.useWith(Math.pow, [R.dec, R.inc])(3, 4); //=> 32\n * R.useWith(Math.pow, [R.dec, R.inc])(3)(4); //=> 32\n * @symb R.useWith(f, [g, h])(a, b) = f(g(a), h(b))\n */\n\nvar useWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function useWith(fn, transformers) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(transformers.length, function () {\n var args = [];\n var idx = 0;\n\n while (idx < transformers.length) {\n args.push(transformers[idx].call(this, arguments[idx]));\n idx += 1;\n }\n\n return fn.apply(this, args.concat(Array.prototype.slice.call(arguments, transformers.length)));\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (useWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/useWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/values.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/values.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/ramda/es/keys.js\");\n\n\n/**\n * Returns a list of all the enumerable own properties of the supplied object.\n * Note that the order of the output array is not guaranteed across different\n * JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own properties.\n * @see R.valuesIn, R.keys\n * @example\n *\n * R.values({a: 1, b: 2, c: 3}); //=> [1, 2, 3]\n */\n\nvar values =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function values(obj) {\n var props = Object(_keys_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(obj);\n var len = props.length;\n var vals = [];\n var idx = 0;\n\n while (idx < len) {\n vals[idx] = obj[props[idx]];\n idx += 1;\n }\n\n return vals;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (values);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/values.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/valuesIn.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/valuesIn.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Returns a list of all the properties, including prototype properties, of the\n * supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own and prototype properties.\n * @see R.values, R.keysIn\n * @example\n *\n * const F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * const f = new F();\n * R.valuesIn(f); //=> ['X', 'Y']\n */\n\nvar valuesIn =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function valuesIn(obj) {\n var prop;\n var vs = [];\n\n for (prop in obj) {\n vs[vs.length] = obj[prop];\n }\n\n return vs;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (valuesIn);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/valuesIn.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/view.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/view.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n // `Const` is a functor that effectively ignores the function given to `map`.\n\nvar Const = function (x) {\n return {\n value: x,\n 'fantasy-land/map': function () {\n return this;\n }\n };\n};\n/**\n * Returns a \"view\" of the given data structure, determined by the given lens.\n * The lens's focus determines which portion of the data structure is visible.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> s -> a\n * @param {Lens} lens\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.view(xLens, {x: 4, y: 2}); //=> 4\n */\n\n\nvar view =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function view(lens, x) {\n // Using `Const` effectively ignores the setter function of the `lens`,\n // leaving the value returned by the getter function unmodified.\n return lens(Const)(x).value;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (view);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/view.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/when.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/when.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Tests the final argument by passing it to the given predicate function. If\n * the predicate is satisfied, the function will return the result of calling\n * the `whenTrueFn` function with the same argument. If the predicate is not\n * satisfied, the argument is returned as is.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} whenTrueFn A function to invoke when the `condition`\n * evaluates to a truthy value.\n * @param {*} x An object to test with the `pred` function and\n * pass to `whenTrueFn` if necessary.\n * @return {*} Either `x` or the result of applying `x` to `whenTrueFn`.\n * @see R.ifElse, R.unless, R.cond\n * @example\n *\n * // truncate :: String -> String\n * const truncate = R.when(\n * R.propSatisfies(R.gt(R.__, 10), 'length'),\n * R.pipe(R.take(10), R.append('…'), R.join(''))\n * );\n * truncate('12345'); //=> '12345'\n * truncate('0123456789ABC'); //=> '0123456789…'\n */\n\nvar when =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function when(pred, whenTrueFn, x) {\n return pred(x) ? whenTrueFn(x) : x;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (when);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/when.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/where.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/where.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n\n\n/**\n * Takes a spec object and a test object; returns true if the test satisfies\n * the spec. Each of the spec's own properties must be a predicate function.\n * Each predicate is applied to the value of the corresponding property of the\n * test object. `where` returns true if all the predicates return true, false\n * otherwise.\n *\n * `where` is well suited to declaratively expressing constraints for other\n * functions such as [`filter`](#filter) and [`find`](#find).\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category Object\n * @sig {String: (* -> Boolean)} -> {String: *} -> Boolean\n * @param {Object} spec\n * @param {Object} testObj\n * @return {Boolean}\n * @see R.propSatisfies, R.whereEq\n * @example\n *\n * // pred :: Object -> Boolean\n * const pred = R.where({\n * a: R.equals('foo'),\n * b: R.complement(R.equals('bar')),\n * x: R.gt(R.__, 10),\n * y: R.lt(R.__, 20)\n * });\n *\n * pred({a: 'foo', b: 'xxx', x: 11, y: 19}); //=> true\n * pred({a: 'xxx', b: 'xxx', x: 11, y: 19}); //=> false\n * pred({a: 'foo', b: 'bar', x: 11, y: 19}); //=> false\n * pred({a: 'foo', b: 'xxx', x: 10, y: 19}); //=> false\n * pred({a: 'foo', b: 'xxx', x: 11, y: 20}); //=> false\n */\n\nvar where =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function where(spec, testObj) {\n for (var prop in spec) {\n if (Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(prop, spec) && !spec[prop](testObj[prop])) {\n return false;\n }\n }\n\n return true;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (where);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/where.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/whereEq.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/whereEq.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n/* harmony import */ var _where_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./where.js */ \"./node_modules/ramda/es/where.js\");\n\n\n\n\n/**\n * Takes a spec object and a test object; returns true if the test satisfies\n * the spec, false otherwise. An object satisfies the spec if, for each of the\n * spec's own properties, accessing that property of the object gives the same\n * value (in [`R.equals`](#equals) terms) as accessing that property of the\n * spec.\n *\n * `whereEq` is a specialization of [`where`](#where).\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @sig {String: *} -> {String: *} -> Boolean\n * @param {Object} spec\n * @param {Object} testObj\n * @return {Boolean}\n * @see R.propEq, R.where\n * @example\n *\n * // pred :: Object -> Boolean\n * const pred = R.whereEq({a: 1, b: 2});\n *\n * pred({a: 1}); //=> false\n * pred({a: 1, b: 2}); //=> true\n * pred({a: 1, b: 2, c: 3}); //=> true\n * pred({a: 1, b: 1}); //=> false\n */\n\nvar whereEq =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function whereEq(spec, testObj) {\n return Object(_where_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(Object(_map_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_equals_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], spec), testObj);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (whereEq);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/whereEq.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/without.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/without.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_includes.js */ \"./node_modules/ramda/es/internal/_includes.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _flip_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./flip.js */ \"./node_modules/ramda/es/flip.js\");\n/* harmony import */ var _reject_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./reject.js */ \"./node_modules/ramda/es/reject.js\");\n\n\n\n\n/**\n * Returns a new list without values in the first argument.\n * [`R.equals`](#equals) is used to determine equality.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig [a] -> [a] -> [a]\n * @param {Array} list1 The values to be removed from `list2`.\n * @param {Array} list2 The array to remove values from.\n * @return {Array} The new array without values in `list1`.\n * @see R.transduce, R.difference, R.remove\n * @example\n *\n * R.without([1, 2], [1, 2, 1, 3, 4]); //=> [3, 4]\n */\n\nvar without =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (xs, list) {\n return Object(_reject_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(Object(_flip_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_internal_includes_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(xs), list);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (without);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/without.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/xor.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/xor.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Exclusive disjunction logical operation.\n * Returns `true` if one of the arguments is truthy and the other is falsy.\n * Otherwise, it returns `false`.\n *\n * @func\n * @memberOf R\n * @since v0.27.0\n * @category Logic\n * @sig a -> b -> Boolean\n * @param {Any} a\n * @param {Any} b\n * @return {Boolean} true if one of the arguments is truthy and the other is falsy\n * @see R.or, R.and\n * @example\n *\n * R.xor(true, true); //=> false\n * R.xor(true, false); //=> true\n * R.xor(false, true); //=> true\n * R.xor(false, false); //=> false\n */\n\nvar xor =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function xor(a, b) {\n return Boolean(!a ^ !b);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (xor);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/xor.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/xprod.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/xprod.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Creates a new list out of the two supplied by creating each possible pair\n * from the lists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b] -> [[a,b]]\n * @param {Array} as The first list.\n * @param {Array} bs The second list.\n * @return {Array} The list made by combining each possible pair from\n * `as` and `bs` into pairs (`[a, b]`).\n * @example\n *\n * R.xprod([1, 2], ['a', 'b']); //=> [[1, 'a'], [1, 'b'], [2, 'a'], [2, 'b']]\n * @symb R.xprod([a, b], [c, d]) = [[a, c], [a, d], [b, c], [b, d]]\n */\n\nvar xprod =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function xprod(a, b) {\n // = xprodWith(prepend); (takes about 3 times as long...)\n var idx = 0;\n var ilen = a.length;\n var j;\n var jlen = b.length;\n var result = [];\n\n while (idx < ilen) {\n j = 0;\n\n while (j < jlen) {\n result[result.length] = [a[idx], b[j]];\n j += 1;\n }\n\n idx += 1;\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (xprod);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/xprod.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/zip.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/zip.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Creates a new list out of the two supplied by pairing up equally-positioned\n * items from both lists. The returned list is truncated to the length of the\n * shorter of the two input lists.\n * Note: `zip` is equivalent to `zipWith(function(a, b) { return [a, b] })`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b] -> [[a,b]]\n * @param {Array} list1 The first array to consider.\n * @param {Array} list2 The second array to consider.\n * @return {Array} The list made by pairing up same-indexed elements of `list1` and `list2`.\n * @example\n *\n * R.zip([1, 2, 3], ['a', 'b', 'c']); //=> [[1, 'a'], [2, 'b'], [3, 'c']]\n * @symb R.zip([a, b, c], [d, e, f]) = [[a, d], [b, e], [c, f]]\n */\n\nvar zip =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function zip(a, b) {\n var rv = [];\n var idx = 0;\n var len = Math.min(a.length, b.length);\n\n while (idx < len) {\n rv[idx] = [a[idx], b[idx]];\n idx += 1;\n }\n\n return rv;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (zip);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/zip.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/zipObj.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/zipObj.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Creates a new object out of a list of keys and a list of values.\n * Key/value pairing is truncated to the length of the shorter of the two lists.\n * Note: `zipObj` is equivalent to `pipe(zip, fromPairs)`.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [String] -> [*] -> {String: *}\n * @param {Array} keys The array that will be properties on the output object.\n * @param {Array} values The list of values on the output object.\n * @return {Object} The object made by pairing up same-indexed elements of `keys` and `values`.\n * @example\n *\n * R.zipObj(['a', 'b', 'c'], [1, 2, 3]); //=> {a: 1, b: 2, c: 3}\n */\n\nvar zipObj =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function zipObj(keys, values) {\n var idx = 0;\n var len = Math.min(keys.length, values.length);\n var out = {};\n\n while (idx < len) {\n out[keys[idx]] = values[idx];\n idx += 1;\n }\n\n return out;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (zipObj);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/zipObj.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/zipWith.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/zipWith.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Creates a new list out of the two supplied by applying the function to each\n * equally-positioned pair in the lists. The returned list is truncated to the\n * length of the shorter of the two input lists.\n *\n * @function\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> c) -> [a] -> [b] -> [c]\n * @param {Function} fn The function used to combine the two elements into one value.\n * @param {Array} list1 The first array to consider.\n * @param {Array} list2 The second array to consider.\n * @return {Array} The list made by combining same-indexed elements of `list1` and `list2`\n * using `fn`.\n * @example\n *\n * const f = (x, y) => {\n * // ...\n * };\n * R.zipWith(f, [1, 2, 3], ['a', 'b', 'c']);\n * //=> [f(1, 'a'), f(2, 'b'), f(3, 'c')]\n * @symb R.zipWith(fn, [a, b, c], [d, e, f]) = [fn(a, d), fn(b, e), fn(c, f)]\n */\n\nvar zipWith =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function zipWith(fn, a, b) {\n var rv = [];\n var idx = 0;\n var len = Math.min(a.length, b.length);\n\n while (idx < len) {\n rv[idx] = fn(a[idx], b[idx]);\n idx += 1;\n }\n\n return rv;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (zipWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/zipWith.js?"); + +/***/ }), + +/***/ "./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js": +/*!*************************************************************************!*\ + !*** ./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js ***! + \*************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (index);\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/ajax/index.js": +/*!***************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/ajax/index.js ***! + \***************************************************/ +/*! exports provided: ajax, AjaxResponse, AjaxError, AjaxTimeoutError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_observable_dom_ajax__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../internal/observable/dom/ajax */ \"./node_modules/rxjs/dist/esm5/internal/observable/dom/ajax.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ajax\", function() { return _internal_observable_dom_ajax__WEBPACK_IMPORTED_MODULE_0__[\"ajax\"]; });\n\n/* harmony import */ var _internal_observable_dom_AjaxObservable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../internal/observable/dom/AjaxObservable */ \"./node_modules/rxjs/dist/esm5/internal/observable/dom/AjaxObservable.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AjaxResponse\", function() { return _internal_observable_dom_AjaxObservable__WEBPACK_IMPORTED_MODULE_1__[\"AjaxResponse\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AjaxError\", function() { return _internal_observable_dom_AjaxObservable__WEBPACK_IMPORTED_MODULE_1__[\"AjaxError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AjaxTimeoutError\", function() { return _internal_observable_dom_AjaxObservable__WEBPACK_IMPORTED_MODULE_1__[\"AjaxTimeoutError\"]; });\n\n\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/ajax/index.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/index.js": +/*!**********************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/index.js ***! + \**********************************************/ +/*! exports provided: Observable, ConnectableObservable, GroupedObservable, observable, animationFrames, Subject, BehaviorSubject, ReplaySubject, AsyncSubject, asapScheduler, asyncScheduler, queueScheduler, animationFrameScheduler, VirtualTimeScheduler, VirtualAction, Scheduler, Subscription, Subscriber, Notification, NotificationKind, pipe, noop, identity, isObservable, lastValueFrom, firstValueFrom, ArgumentOutOfRangeError, EmptyError, ObjectUnsubscribedError, UnsubscriptionError, TimeoutError, bindCallback, bindNodeCallback, combineLatest, concat, defer, empty, forkJoin, from, fromEvent, fromEventPattern, generate, iif, interval, merge, never, of, onErrorResumeNext, pairs, partition, race, range, throwError, timer, using, zip, scheduled, EMPTY, NEVER, config */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Observable\", function() { return _internal_Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"]; });\n\n/* harmony import */ var _internal_observable_ConnectableObservable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/observable/ConnectableObservable */ \"./node_modules/rxjs/dist/esm5/internal/observable/ConnectableObservable.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ConnectableObservable\", function() { return _internal_observable_ConnectableObservable__WEBPACK_IMPORTED_MODULE_1__[\"ConnectableObservable\"]; });\n\n/* harmony import */ var _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/operators/groupBy */ \"./node_modules/rxjs/dist/esm5/internal/operators/groupBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"GroupedObservable\", function() { return _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_2__[\"GroupedObservable\"]; });\n\n/* harmony import */ var _internal_symbol_observable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/symbol/observable */ \"./node_modules/rxjs/dist/esm5/internal/symbol/observable.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"observable\", function() { return _internal_symbol_observable__WEBPACK_IMPORTED_MODULE_3__[\"observable\"]; });\n\n/* harmony import */ var _internal_observable_dom_animationFrames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./internal/observable/dom/animationFrames */ \"./node_modules/rxjs/dist/esm5/internal/observable/dom/animationFrames.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"animationFrames\", function() { return _internal_observable_dom_animationFrames__WEBPACK_IMPORTED_MODULE_4__[\"animationFrames\"]; });\n\n/* harmony import */ var _internal_Subject__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./internal/Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Subject\", function() { return _internal_Subject__WEBPACK_IMPORTED_MODULE_5__[\"Subject\"]; });\n\n/* harmony import */ var _internal_BehaviorSubject__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./internal/BehaviorSubject */ \"./node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BehaviorSubject\", function() { return _internal_BehaviorSubject__WEBPACK_IMPORTED_MODULE_6__[\"BehaviorSubject\"]; });\n\n/* harmony import */ var _internal_ReplaySubject__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./internal/ReplaySubject */ \"./node_modules/rxjs/dist/esm5/internal/ReplaySubject.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ReplaySubject\", function() { return _internal_ReplaySubject__WEBPACK_IMPORTED_MODULE_7__[\"ReplaySubject\"]; });\n\n/* harmony import */ var _internal_AsyncSubject__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./internal/AsyncSubject */ \"./node_modules/rxjs/dist/esm5/internal/AsyncSubject.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AsyncSubject\", function() { return _internal_AsyncSubject__WEBPACK_IMPORTED_MODULE_8__[\"AsyncSubject\"]; });\n\n/* harmony import */ var _internal_scheduler_asap__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./internal/scheduler/asap */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/asap.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"asapScheduler\", function() { return _internal_scheduler_asap__WEBPACK_IMPORTED_MODULE_9__[\"asap\"]; });\n\n/* harmony import */ var _internal_scheduler_async__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./internal/scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"asyncScheduler\", function() { return _internal_scheduler_async__WEBPACK_IMPORTED_MODULE_10__[\"async\"]; });\n\n/* harmony import */ var _internal_scheduler_queue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./internal/scheduler/queue */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/queue.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"queueScheduler\", function() { return _internal_scheduler_queue__WEBPACK_IMPORTED_MODULE_11__[\"queue\"]; });\n\n/* harmony import */ var _internal_scheduler_animationFrame__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./internal/scheduler/animationFrame */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/animationFrame.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"animationFrameScheduler\", function() { return _internal_scheduler_animationFrame__WEBPACK_IMPORTED_MODULE_12__[\"animationFrame\"]; });\n\n/* harmony import */ var _internal_scheduler_VirtualTimeScheduler__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./internal/scheduler/VirtualTimeScheduler */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/VirtualTimeScheduler.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"VirtualTimeScheduler\", function() { return _internal_scheduler_VirtualTimeScheduler__WEBPACK_IMPORTED_MODULE_13__[\"VirtualTimeScheduler\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"VirtualAction\", function() { return _internal_scheduler_VirtualTimeScheduler__WEBPACK_IMPORTED_MODULE_13__[\"VirtualAction\"]; });\n\n/* harmony import */ var _internal_Scheduler__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./internal/Scheduler */ \"./node_modules/rxjs/dist/esm5/internal/Scheduler.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Scheduler\", function() { return _internal_Scheduler__WEBPACK_IMPORTED_MODULE_14__[\"Scheduler\"]; });\n\n/* harmony import */ var _internal_Subscription__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./internal/Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Subscription\", function() { return _internal_Subscription__WEBPACK_IMPORTED_MODULE_15__[\"Subscription\"]; });\n\n/* harmony import */ var _internal_Subscriber__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./internal/Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Subscriber\", function() { return _internal_Subscriber__WEBPACK_IMPORTED_MODULE_16__[\"Subscriber\"]; });\n\n/* harmony import */ var _internal_Notification__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./internal/Notification */ \"./node_modules/rxjs/dist/esm5/internal/Notification.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Notification\", function() { return _internal_Notification__WEBPACK_IMPORTED_MODULE_17__[\"Notification\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NotificationKind\", function() { return _internal_Notification__WEBPACK_IMPORTED_MODULE_17__[\"NotificationKind\"]; });\n\n/* harmony import */ var _internal_util_pipe__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./internal/util/pipe */ \"./node_modules/rxjs/dist/esm5/internal/util/pipe.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pipe\", function() { return _internal_util_pipe__WEBPACK_IMPORTED_MODULE_18__[\"pipe\"]; });\n\n/* harmony import */ var _internal_util_noop__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./internal/util/noop */ \"./node_modules/rxjs/dist/esm5/internal/util/noop.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"noop\", function() { return _internal_util_noop__WEBPACK_IMPORTED_MODULE_19__[\"noop\"]; });\n\n/* harmony import */ var _internal_util_identity__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./internal/util/identity */ \"./node_modules/rxjs/dist/esm5/internal/util/identity.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"identity\", function() { return _internal_util_identity__WEBPACK_IMPORTED_MODULE_20__[\"identity\"]; });\n\n/* harmony import */ var _internal_util_isObservable__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./internal/util/isObservable */ \"./node_modules/rxjs/dist/esm5/internal/util/isObservable.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isObservable\", function() { return _internal_util_isObservable__WEBPACK_IMPORTED_MODULE_21__[\"isObservable\"]; });\n\n/* harmony import */ var _internal_lastValueFrom__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./internal/lastValueFrom */ \"./node_modules/rxjs/dist/esm5/internal/lastValueFrom.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lastValueFrom\", function() { return _internal_lastValueFrom__WEBPACK_IMPORTED_MODULE_22__[\"lastValueFrom\"]; });\n\n/* harmony import */ var _internal_firstValueFrom__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./internal/firstValueFrom */ \"./node_modules/rxjs/dist/esm5/internal/firstValueFrom.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"firstValueFrom\", function() { return _internal_firstValueFrom__WEBPACK_IMPORTED_MODULE_23__[\"firstValueFrom\"]; });\n\n/* harmony import */ var _internal_util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./internal/util/ArgumentOutOfRangeError */ \"./node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ArgumentOutOfRangeError\", function() { return _internal_util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_24__[\"ArgumentOutOfRangeError\"]; });\n\n/* harmony import */ var _internal_util_EmptyError__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./internal/util/EmptyError */ \"./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EmptyError\", function() { return _internal_util_EmptyError__WEBPACK_IMPORTED_MODULE_25__[\"EmptyError\"]; });\n\n/* harmony import */ var _internal_util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./internal/util/ObjectUnsubscribedError */ \"./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ObjectUnsubscribedError\", function() { return _internal_util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_26__[\"ObjectUnsubscribedError\"]; });\n\n/* harmony import */ var _internal_util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./internal/util/UnsubscriptionError */ \"./node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"UnsubscriptionError\", function() { return _internal_util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_27__[\"UnsubscriptionError\"]; });\n\n/* harmony import */ var _internal_util_TimeoutError__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./internal/util/TimeoutError */ \"./node_modules/rxjs/dist/esm5/internal/util/TimeoutError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TimeoutError\", function() { return _internal_util_TimeoutError__WEBPACK_IMPORTED_MODULE_28__[\"TimeoutError\"]; });\n\n/* harmony import */ var _internal_observable_bindCallback__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./internal/observable/bindCallback */ \"./node_modules/rxjs/dist/esm5/internal/observable/bindCallback.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bindCallback\", function() { return _internal_observable_bindCallback__WEBPACK_IMPORTED_MODULE_29__[\"bindCallback\"]; });\n\n/* harmony import */ var _internal_observable_bindNodeCallback__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./internal/observable/bindNodeCallback */ \"./node_modules/rxjs/dist/esm5/internal/observable/bindNodeCallback.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bindNodeCallback\", function() { return _internal_observable_bindNodeCallback__WEBPACK_IMPORTED_MODULE_30__[\"bindNodeCallback\"]; });\n\n/* harmony import */ var _internal_observable_combineLatest__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./internal/observable/combineLatest */ \"./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"combineLatest\", function() { return _internal_observable_combineLatest__WEBPACK_IMPORTED_MODULE_31__[\"combineLatest\"]; });\n\n/* harmony import */ var _internal_observable_concat__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./internal/observable/concat */ \"./node_modules/rxjs/dist/esm5/internal/observable/concat.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"concat\", function() { return _internal_observable_concat__WEBPACK_IMPORTED_MODULE_32__[\"concat\"]; });\n\n/* harmony import */ var _internal_observable_defer__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./internal/observable/defer */ \"./node_modules/rxjs/dist/esm5/internal/observable/defer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"defer\", function() { return _internal_observable_defer__WEBPACK_IMPORTED_MODULE_33__[\"defer\"]; });\n\n/* harmony import */ var _internal_observable_empty__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./internal/observable/empty */ \"./node_modules/rxjs/dist/esm5/internal/observable/empty.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"empty\", function() { return _internal_observable_empty__WEBPACK_IMPORTED_MODULE_34__[\"empty\"]; });\n\n/* harmony import */ var _internal_observable_forkJoin__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./internal/observable/forkJoin */ \"./node_modules/rxjs/dist/esm5/internal/observable/forkJoin.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"forkJoin\", function() { return _internal_observable_forkJoin__WEBPACK_IMPORTED_MODULE_35__[\"forkJoin\"]; });\n\n/* harmony import */ var _internal_observable_from__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./internal/observable/from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"from\", function() { return _internal_observable_from__WEBPACK_IMPORTED_MODULE_36__[\"from\"]; });\n\n/* harmony import */ var _internal_observable_fromEvent__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./internal/observable/fromEvent */ \"./node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"fromEvent\", function() { return _internal_observable_fromEvent__WEBPACK_IMPORTED_MODULE_37__[\"fromEvent\"]; });\n\n/* harmony import */ var _internal_observable_fromEventPattern__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./internal/observable/fromEventPattern */ \"./node_modules/rxjs/dist/esm5/internal/observable/fromEventPattern.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"fromEventPattern\", function() { return _internal_observable_fromEventPattern__WEBPACK_IMPORTED_MODULE_38__[\"fromEventPattern\"]; });\n\n/* harmony import */ var _internal_observable_generate__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./internal/observable/generate */ \"./node_modules/rxjs/dist/esm5/internal/observable/generate.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"generate\", function() { return _internal_observable_generate__WEBPACK_IMPORTED_MODULE_39__[\"generate\"]; });\n\n/* harmony import */ var _internal_observable_iif__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./internal/observable/iif */ \"./node_modules/rxjs/dist/esm5/internal/observable/iif.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"iif\", function() { return _internal_observable_iif__WEBPACK_IMPORTED_MODULE_40__[\"iif\"]; });\n\n/* harmony import */ var _internal_observable_interval__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./internal/observable/interval */ \"./node_modules/rxjs/dist/esm5/internal/observable/interval.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interval\", function() { return _internal_observable_interval__WEBPACK_IMPORTED_MODULE_41__[\"interval\"]; });\n\n/* harmony import */ var _internal_observable_merge__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./internal/observable/merge */ \"./node_modules/rxjs/dist/esm5/internal/observable/merge.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"merge\", function() { return _internal_observable_merge__WEBPACK_IMPORTED_MODULE_42__[\"merge\"]; });\n\n/* harmony import */ var _internal_observable_never__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./internal/observable/never */ \"./node_modules/rxjs/dist/esm5/internal/observable/never.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"never\", function() { return _internal_observable_never__WEBPACK_IMPORTED_MODULE_43__[\"never\"]; });\n\n/* harmony import */ var _internal_observable_of__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./internal/observable/of */ \"./node_modules/rxjs/dist/esm5/internal/observable/of.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"of\", function() { return _internal_observable_of__WEBPACK_IMPORTED_MODULE_44__[\"of\"]; });\n\n/* harmony import */ var _internal_observable_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./internal/observable/onErrorResumeNext */ \"./node_modules/rxjs/dist/esm5/internal/observable/onErrorResumeNext.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"onErrorResumeNext\", function() { return _internal_observable_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_45__[\"onErrorResumeNext\"]; });\n\n/* harmony import */ var _internal_observable_pairs__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./internal/observable/pairs */ \"./node_modules/rxjs/dist/esm5/internal/observable/pairs.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pairs\", function() { return _internal_observable_pairs__WEBPACK_IMPORTED_MODULE_46__[\"pairs\"]; });\n\n/* harmony import */ var _internal_observable_partition__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./internal/observable/partition */ \"./node_modules/rxjs/dist/esm5/internal/observable/partition.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"partition\", function() { return _internal_observable_partition__WEBPACK_IMPORTED_MODULE_47__[\"partition\"]; });\n\n/* harmony import */ var _internal_observable_race__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./internal/observable/race */ \"./node_modules/rxjs/dist/esm5/internal/observable/race.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"race\", function() { return _internal_observable_race__WEBPACK_IMPORTED_MODULE_48__[\"race\"]; });\n\n/* harmony import */ var _internal_observable_range__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./internal/observable/range */ \"./node_modules/rxjs/dist/esm5/internal/observable/range.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"range\", function() { return _internal_observable_range__WEBPACK_IMPORTED_MODULE_49__[\"range\"]; });\n\n/* harmony import */ var _internal_observable_throwError__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./internal/observable/throwError */ \"./node_modules/rxjs/dist/esm5/internal/observable/throwError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"throwError\", function() { return _internal_observable_throwError__WEBPACK_IMPORTED_MODULE_50__[\"throwError\"]; });\n\n/* harmony import */ var _internal_observable_timer__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./internal/observable/timer */ \"./node_modules/rxjs/dist/esm5/internal/observable/timer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timer\", function() { return _internal_observable_timer__WEBPACK_IMPORTED_MODULE_51__[\"timer\"]; });\n\n/* harmony import */ var _internal_observable_using__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./internal/observable/using */ \"./node_modules/rxjs/dist/esm5/internal/observable/using.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"using\", function() { return _internal_observable_using__WEBPACK_IMPORTED_MODULE_52__[\"using\"]; });\n\n/* harmony import */ var _internal_observable_zip__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./internal/observable/zip */ \"./node_modules/rxjs/dist/esm5/internal/observable/zip.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zip\", function() { return _internal_observable_zip__WEBPACK_IMPORTED_MODULE_53__[\"zip\"]; });\n\n/* harmony import */ var _internal_scheduled_scheduled__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./internal/scheduled/scheduled */ \"./node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scheduled\", function() { return _internal_scheduled_scheduled__WEBPACK_IMPORTED_MODULE_54__[\"scheduled\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EMPTY\", function() { return _internal_observable_empty__WEBPACK_IMPORTED_MODULE_34__[\"EMPTY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NEVER\", function() { return _internal_observable_never__WEBPACK_IMPORTED_MODULE_43__[\"NEVER\"]; });\n\n/* harmony import */ var _internal_config__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./internal/config */ \"./node_modules/rxjs/dist/esm5/internal/config.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"config\", function() { return _internal_config__WEBPACK_IMPORTED_MODULE_55__[\"config\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/index.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/AsyncSubject.js": +/*!**************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/AsyncSubject.js ***! + \**************************************************************/ +/*! exports provided: AsyncSubject */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AsyncSubject\", function() { return AsyncSubject; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n\n\n\nvar AsyncSubject = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AsyncSubject, _super);\n function AsyncSubject() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.value = null;\n _this.hasNext = false;\n _this.hasCompleted = false;\n return _this;\n }\n AsyncSubject.prototype._subscribe = function (subscriber) {\n if (this.hasError) {\n subscriber.error(this.thrownError);\n return _Subscription__WEBPACK_IMPORTED_MODULE_2__[\"Subscription\"].EMPTY;\n }\n else if (this.hasCompleted && this.hasNext) {\n subscriber.next(this.value);\n subscriber.complete();\n return _Subscription__WEBPACK_IMPORTED_MODULE_2__[\"Subscription\"].EMPTY;\n }\n return _super.prototype._subscribe.call(this, subscriber);\n };\n AsyncSubject.prototype.next = function (value) {\n if (!this.hasCompleted) {\n this.value = value;\n this.hasNext = true;\n }\n };\n AsyncSubject.prototype.error = function (error) {\n if (!this.hasCompleted) {\n _super.prototype.error.call(this, error);\n }\n };\n AsyncSubject.prototype.complete = function () {\n this.hasCompleted = true;\n if (this.hasNext) {\n _super.prototype.next.call(this, this.value);\n }\n _super.prototype.complete.call(this);\n };\n return AsyncSubject;\n}(_Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]));\n\n//# sourceMappingURL=AsyncSubject.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/AsyncSubject.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js ***! + \*****************************************************************/ +/*! exports provided: BehaviorSubject */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BehaviorSubject\", function() { return BehaviorSubject; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/ObjectUnsubscribedError */ \"./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js\");\n\n\n\nvar BehaviorSubject = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(BehaviorSubject, _super);\n function BehaviorSubject(_value) {\n var _this = _super.call(this) || this;\n _this._value = _value;\n return _this;\n }\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: true,\n configurable: true\n });\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n if (subscription && !subscription.closed) {\n subscriber.next(this._value);\n }\n return subscription;\n };\n BehaviorSubject.prototype.getValue = function () {\n if (this.hasError) {\n throw this.thrownError;\n }\n else if (this.closed) {\n throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_2__[\"ObjectUnsubscribedError\"]();\n }\n else {\n return this._value;\n }\n };\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, this._value = value);\n };\n return BehaviorSubject;\n}(_Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]));\n\n//# sourceMappingURL=BehaviorSubject.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js ***! + \*****************************************************************/ +/*! exports provided: InnerSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"InnerSubscriber\", function() { return InnerSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nvar InnerSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(InnerSubscriber, _super);\n function InnerSubscriber(parent, outerValue, outerIndex) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.outerValue = outerValue;\n _this.outerIndex = outerIndex;\n _this.index = 0;\n return _this;\n }\n InnerSubscriber.prototype._next = function (value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n };\n InnerSubscriber.prototype._error = function (error) {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n };\n InnerSubscriber.prototype._complete = function () {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n };\n return InnerSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n\n//# sourceMappingURL=InnerSubscriber.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/Notification.js": +/*!**************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/Notification.js ***! + \**************************************************************/ +/*! exports provided: NotificationKind, Notification */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NotificationKind\", function() { return NotificationKind; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Notification\", function() { return Notification; });\n/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./observable/empty */ \"./node_modules/rxjs/dist/esm5/internal/observable/empty.js\");\n/* harmony import */ var _observable_of__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./observable/of */ \"./node_modules/rxjs/dist/esm5/internal/observable/of.js\");\n/* harmony import */ var _observable_throwError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./observable/throwError */ \"./node_modules/rxjs/dist/esm5/internal/observable/throwError.js\");\n\n\n\nvar NotificationKind;\n(function (NotificationKind) {\n NotificationKind[\"NEXT\"] = \"N\";\n NotificationKind[\"ERROR\"] = \"E\";\n NotificationKind[\"COMPLETE\"] = \"C\";\n})(NotificationKind || (NotificationKind = {}));\nvar Notification = (function () {\n function Notification(kind, value, error) {\n this.kind = kind;\n this.value = value;\n this.error = error;\n this.hasValue = kind === 'N';\n }\n Notification.prototype.observe = function (observer) {\n switch (this.kind) {\n case 'N':\n return observer.next && observer.next(this.value);\n case 'E':\n return observer.error && observer.error(this.error);\n case 'C':\n return observer.complete && observer.complete();\n }\n };\n Notification.prototype.do = function (next, error, complete) {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return next && next(this.value);\n case 'E':\n return error && error(this.error);\n case 'C':\n return complete && complete();\n }\n };\n Notification.prototype.accept = function (nextOrObserver, error, complete) {\n if (nextOrObserver && typeof nextOrObserver.next === 'function') {\n return this.observe(nextOrObserver);\n }\n else {\n return this.do(nextOrObserver, error, complete);\n }\n };\n Notification.prototype.toObservable = function () {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return Object(_observable_of__WEBPACK_IMPORTED_MODULE_1__[\"of\"])(this.value);\n case 'E':\n return Object(_observable_throwError__WEBPACK_IMPORTED_MODULE_2__[\"throwError\"])(this.error);\n case 'C':\n return _observable_empty__WEBPACK_IMPORTED_MODULE_0__[\"EMPTY\"];\n }\n throw new Error('unexpected notification kind value');\n };\n Notification.createNext = function (value) {\n if (typeof value !== 'undefined') {\n return new Notification('N', value);\n }\n return Notification.undefinedValueNotification;\n };\n Notification.createError = function (err) {\n return new Notification('E', undefined, err);\n };\n Notification.createComplete = function () {\n return Notification.completeNotification;\n };\n Notification.completeNotification = new Notification('C');\n Notification.undefinedValueNotification = new Notification('N', undefined);\n return Notification;\n}());\n\n//# sourceMappingURL=Notification.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/Notification.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/Observable.js": +/*!************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/Observable.js ***! + \************************************************************/ +/*! exports provided: Observable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Observable\", function() { return Observable; });\n/* harmony import */ var _util_canReportError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/canReportError */ \"./node_modules/rxjs/dist/esm5/internal/util/canReportError.js\");\n/* harmony import */ var _util_toSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/toSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/util/toSubscriber.js\");\n/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./symbol/observable */ \"./node_modules/rxjs/dist/esm5/internal/symbol/observable.js\");\n/* harmony import */ var _util_pipe__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util/pipe */ \"./node_modules/rxjs/dist/esm5/internal/util/pipe.js\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./config */ \"./node_modules/rxjs/dist/esm5/internal/config.js\");\n/* harmony import */ var _asyncIteratorFrom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./asyncIteratorFrom */ \"./node_modules/rxjs/dist/esm5/internal/asyncIteratorFrom.js\");\n\n\n\n\n\n\nvar Observable = (function () {\n function Observable(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var operator = this.operator;\n var sink = Object(_util_toSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"toSubscriber\"])(observerOrNext, error, complete);\n if (operator) {\n sink.add(operator.call(sink, this.source));\n }\n else {\n sink.add(this.source || (_config__WEBPACK_IMPORTED_MODULE_4__[\"config\"].useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (_config__WEBPACK_IMPORTED_MODULE_4__[\"config\"].useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (_config__WEBPACK_IMPORTED_MODULE_4__[\"config\"].useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (Object(_util_canReportError__WEBPACK_IMPORTED_MODULE_0__[\"canReportError\"])(sink)) {\n sink.error(err);\n }\n else {\n console.warn(err);\n }\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscription;\n subscription = _this.subscribe(function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var source = this.source;\n return source && source.subscribe(subscriber);\n };\n Observable.prototype[_symbol_observable__WEBPACK_IMPORTED_MODULE_2__[\"observable\"]] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n if (operations.length === 0) {\n return this;\n }\n return Object(_util_pipe__WEBPACK_IMPORTED_MODULE_3__[\"pipeFromArray\"])(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\n\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = _config__WEBPACK_IMPORTED_MODULE_4__[\"config\"].Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n(function () {\n if (Symbol && Symbol.asyncIterator) {\n Observable.prototype[Symbol.asyncIterator] = function () {\n return Object(_asyncIteratorFrom__WEBPACK_IMPORTED_MODULE_5__[\"asyncIteratorFrom\"])(this);\n };\n }\n})();\n//# sourceMappingURL=Observable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/Observable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/Observer.js": +/*!**********************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/Observer.js ***! + \**********************************************************/ +/*! exports provided: empty */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"empty\", function() { return empty; });\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./config */ \"./node_modules/rxjs/dist/esm5/internal/config.js\");\n/* harmony import */ var _util_hostReportError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/hostReportError */ \"./node_modules/rxjs/dist/esm5/internal/util/hostReportError.js\");\n\n\nvar empty = {\n closed: true,\n next: function (value) { },\n error: function (err) {\n if (_config__WEBPACK_IMPORTED_MODULE_0__[\"config\"].useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_1__[\"hostReportError\"])(err);\n }\n },\n complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/Observer.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js ***! + \*****************************************************************/ +/*! exports provided: OuterSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"OuterSubscriber\", function() { return OuterSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nvar OuterSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(OuterSubscriber, _super);\n function OuterSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n OuterSubscriber.prototype.notifyError = function (error, innerSub) {\n this.destination.error(error);\n };\n OuterSubscriber.prototype.notifyComplete = function (innerSub) {\n this.destination.complete();\n };\n return OuterSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n\n//# sourceMappingURL=OuterSubscriber.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/ReplaySubject.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/ReplaySubject.js ***! + \***************************************************************/ +/*! exports provided: ReplaySubject */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ReplaySubject\", function() { return ReplaySubject; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _scheduler_queue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./scheduler/queue */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/queue.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _operators_observeOn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./operators/observeOn */ \"./node_modules/rxjs/dist/esm5/internal/operators/observeOn.js\");\n/* harmony import */ var _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./util/ObjectUnsubscribedError */ \"./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js\");\n/* harmony import */ var _SubjectSubscription__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./SubjectSubscription */ \"./node_modules/rxjs/dist/esm5/internal/SubjectSubscription.js\");\n\n\n\n\n\n\n\nvar ReplaySubject = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ReplaySubject, _super);\n function ReplaySubject(bufferSize, windowTime, scheduler) {\n if (bufferSize === void 0) { bufferSize = Number.POSITIVE_INFINITY; }\n if (windowTime === void 0) { windowTime = Number.POSITIVE_INFINITY; }\n var _this = _super.call(this) || this;\n _this.scheduler = scheduler;\n _this._events = [];\n _this._infiniteTimeWindow = false;\n _this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n _this._windowTime = windowTime < 1 ? 1 : windowTime;\n if (windowTime === Number.POSITIVE_INFINITY) {\n _this._infiniteTimeWindow = true;\n _this.next = _this.nextInfiniteTimeWindow;\n }\n else {\n _this.next = _this.nextTimeWindow;\n }\n return _this;\n }\n ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) {\n var _events = this._events;\n _events.push(value);\n if (_events.length > this._bufferSize) {\n _events.shift();\n }\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype.nextTimeWindow = function (value) {\n this._events.push(new ReplayEvent(this._getNow(), value));\n this._trimBufferThenGetEvents();\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype._subscribe = function (subscriber) {\n var _infiniteTimeWindow = this._infiniteTimeWindow;\n var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();\n var scheduler = this.scheduler;\n var len = _events.length;\n var subscription;\n if (this.closed) {\n throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_5__[\"ObjectUnsubscribedError\"]();\n }\n else if (this.isStopped || this.hasError) {\n subscription = _Subscription__WEBPACK_IMPORTED_MODULE_3__[\"Subscription\"].EMPTY;\n }\n else {\n this.observers.push(subscriber);\n subscription = new _SubjectSubscription__WEBPACK_IMPORTED_MODULE_6__[\"SubjectSubscription\"](this, subscriber);\n }\n if (scheduler) {\n subscriber.add(subscriber = new _operators_observeOn__WEBPACK_IMPORTED_MODULE_4__[\"ObserveOnSubscriber\"](subscriber, scheduler));\n }\n if (_infiniteTimeWindow) {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i]);\n }\n }\n else {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i].value);\n }\n }\n if (this.hasError) {\n subscriber.error(this.thrownError);\n }\n else if (this.isStopped) {\n subscriber.complete();\n }\n return subscription;\n };\n ReplaySubject.prototype._getNow = function () {\n return (this.scheduler || _scheduler_queue__WEBPACK_IMPORTED_MODULE_2__[\"queue\"]).now();\n };\n ReplaySubject.prototype._trimBufferThenGetEvents = function () {\n var now = this._getNow();\n var _bufferSize = this._bufferSize;\n var _windowTime = this._windowTime;\n var _events = this._events;\n var eventsCount = _events.length;\n var spliceCount = 0;\n while (spliceCount < eventsCount) {\n if ((now - _events[spliceCount].time) < _windowTime) {\n break;\n }\n spliceCount++;\n }\n if (eventsCount > _bufferSize) {\n spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n }\n if (spliceCount > 0) {\n _events.splice(0, spliceCount);\n }\n return _events;\n };\n return ReplaySubject;\n}(_Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]));\n\nvar ReplayEvent = (function () {\n function ReplayEvent(time, value) {\n this.time = time;\n this.value = value;\n }\n return ReplayEvent;\n}());\n//# sourceMappingURL=ReplaySubject.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/ReplaySubject.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/Scheduler.js": +/*!***********************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/Scheduler.js ***! + \***********************************************************/ +/*! exports provided: Scheduler */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Scheduler\", function() { return Scheduler; });\nvar Scheduler = (function () {\n function Scheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n this.SchedulerAction = SchedulerAction;\n this.now = now;\n }\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n return new this.SchedulerAction(this, work).schedule(state, delay);\n };\n Scheduler.now = function () { return Date.now(); };\n return Scheduler;\n}());\n\n//# sourceMappingURL=Scheduler.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/Scheduler.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/Subject.js": +/*!*********************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/Subject.js ***! + \*********************************************************/ +/*! exports provided: SubjectSubscriber, Subject, AnonymousSubject */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SubjectSubscriber\", function() { return SubjectSubscriber; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Subject\", function() { return Subject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AnonymousSubject\", function() { return AnonymousSubject; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./util/ObjectUnsubscribedError */ \"./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js\");\n/* harmony import */ var _SubjectSubscription__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./SubjectSubscription */ \"./node_modules/rxjs/dist/esm5/internal/SubjectSubscription.js\");\n/* harmony import */ var _internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../internal/symbol/rxSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/symbol/rxSubscriber.js\");\n\n\n\n\n\n\n\nvar SubjectSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SubjectSubscriber, _super);\n function SubjectSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n return _this;\n }\n return SubjectSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_2__[\"Subscriber\"]));\n\nvar Subject = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.observers = [];\n _this.closed = false;\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype[_internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_6__[\"rxSubscriber\"]] = function () {\n return new SubjectSubscriber(this);\n };\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype.next = function (value) {\n if (this.closed) {\n throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__[\"ObjectUnsubscribedError\"]();\n }\n if (!this.isStopped) {\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n };\n Subject.prototype.error = function (err) {\n if (this.closed) {\n throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__[\"ObjectUnsubscribedError\"]();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n };\n Subject.prototype.complete = function () {\n if (this.closed) {\n throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__[\"ObjectUnsubscribedError\"]();\n }\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n };\n Subject.prototype._trySubscribe = function (subscriber) {\n if (this.closed) {\n throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__[\"ObjectUnsubscribedError\"]();\n }\n else {\n return _super.prototype._trySubscribe.call(this, subscriber);\n }\n };\n Subject.prototype._subscribe = function (subscriber) {\n if (this.closed) {\n throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__[\"ObjectUnsubscribedError\"]();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return _Subscription__WEBPACK_IMPORTED_MODULE_3__[\"Subscription\"].EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return _Subscription__WEBPACK_IMPORTED_MODULE_3__[\"Subscription\"].EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new _SubjectSubscription__WEBPACK_IMPORTED_MODULE_5__[\"SubjectSubscription\"](this, subscriber);\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new _Observable__WEBPACK_IMPORTED_MODULE_1__[\"Observable\"]();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(_Observable__WEBPACK_IMPORTED_MODULE_1__[\"Observable\"]));\n\nvar AnonymousSubject = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var destination = this.destination;\n if (destination && destination.next) {\n destination.next(value);\n }\n };\n AnonymousSubject.prototype.error = function (err) {\n var destination = this.destination;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n };\n AnonymousSubject.prototype.complete = function () {\n var destination = this.destination;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var source = this.source;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return _Subscription__WEBPACK_IMPORTED_MODULE_3__[\"Subscription\"].EMPTY;\n }\n };\n return AnonymousSubject;\n}(Subject));\n\n//# sourceMappingURL=Subject.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/Subject.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/SubjectSubscription.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/SubjectSubscription.js ***! + \*********************************************************************/ +/*! exports provided: SubjectSubscription */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SubjectSubscription\", function() { return SubjectSubscription; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n\n\nvar SubjectSubscription = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SubjectSubscription, _super);\n function SubjectSubscription(subject, subscriber) {\n var _this = _super.call(this) || this;\n _this.subject = subject;\n _this.subscriber = subscriber;\n _this.closed = false;\n return _this;\n }\n SubjectSubscription.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.closed = true;\n var subject = this.subject;\n var observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n var subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n };\n return SubjectSubscription;\n}(_Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]));\n\n//# sourceMappingURL=SubjectSubscription.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/SubjectSubscription.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/Subscriber.js": +/*!************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/Subscriber.js ***! + \************************************************************/ +/*! exports provided: Subscriber, SafeSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Subscriber\", function() { return Subscriber; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SafeSubscriber\", function() { return SafeSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/isFunction */ \"./node_modules/rxjs/dist/esm5/internal/util/isFunction.js\");\n/* harmony import */ var _Observer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Observer */ \"./node_modules/rxjs/dist/esm5/internal/Observer.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../internal/symbol/rxSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/symbol/rxSubscriber.js\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./config */ \"./node_modules/rxjs/dist/esm5/internal/config.js\");\n/* harmony import */ var _util_hostReportError__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./util/hostReportError */ \"./node_modules/rxjs/dist/esm5/internal/util/hostReportError.js\");\n\n\n\n\n\n\n\nvar Subscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(Subscriber, _super);\n function Subscriber(destinationOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this.syncErrorValue = null;\n _this.syncErrorThrown = false;\n _this.syncErrorThrowable = false;\n _this.isStopped = false;\n switch (arguments.length) {\n case 0:\n _this.destination = _Observer__WEBPACK_IMPORTED_MODULE_2__[\"empty\"];\n break;\n case 1:\n if (!destinationOrNext) {\n _this.destination = _Observer__WEBPACK_IMPORTED_MODULE_2__[\"empty\"];\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n _this.destination = destinationOrNext;\n destinationOrNext.add(_this);\n }\n else {\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext);\n }\n break;\n }\n default:\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);\n break;\n }\n return _this;\n }\n Subscriber.prototype[_internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_4__[\"rxSubscriber\"]] = function () { return this; };\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _parentOrParents = this._parentOrParents;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n };\n return Subscriber;\n}(_Subscription__WEBPACK_IMPORTED_MODULE_3__[\"Subscription\"]));\n\nvar SafeSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SafeSubscriber, _super);\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this._parentSubscriber = _parentSubscriber;\n var next;\n var context = _this;\n if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_1__[\"isFunction\"])(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== _Observer__WEBPACK_IMPORTED_MODULE_2__[\"empty\"]) {\n context = Object.create(observerOrNext);\n if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_1__[\"isFunction\"])(context.unsubscribe)) {\n _this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = _this.unsubscribe.bind(_this);\n }\n }\n _this._context = context;\n _this._next = next;\n _this._error = error;\n _this._complete = complete;\n return _this;\n }\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n if (!_config__WEBPACK_IMPORTED_MODULE_5__[\"config\"].useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n var useDeprecatedSynchronousErrorHandling = _config__WEBPACK_IMPORTED_MODULE_5__[\"config\"].useDeprecatedSynchronousErrorHandling;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_6__[\"hostReportError\"])(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_6__[\"hostReportError\"])(err);\n }\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._complete) {\n var wrappedComplete = function () { return _this._complete.call(_this._context); };\n if (!_config__WEBPACK_IMPORTED_MODULE_5__[\"config\"].useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (_config__WEBPACK_IMPORTED_MODULE_5__[\"config\"].useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_6__[\"hostReportError\"])(err);\n }\n }\n };\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n if (!_config__WEBPACK_IMPORTED_MODULE_5__[\"config\"].useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (_config__WEBPACK_IMPORTED_MODULE_5__[\"config\"].useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_6__[\"hostReportError\"])(err);\n return true;\n }\n }\n return false;\n };\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n };\n return SafeSubscriber;\n}(Subscriber));\n\n//# sourceMappingURL=Subscriber.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/Subscriber.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/Subscription.js": +/*!**************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/Subscription.js ***! + \**************************************************************/ +/*! exports provided: Subscription */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Subscription\", function() { return Subscription; });\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _util_isObject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/isObject */ \"./node_modules/rxjs/dist/esm5/internal/util/isObject.js\");\n/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/isFunction */ \"./node_modules/rxjs/dist/esm5/internal/util/isFunction.js\");\n/* harmony import */ var _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util/UnsubscriptionError */ \"./node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js\");\n\n\n\n\nvar Subscription = (function () {\n function Subscription(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._unsubscribe = unsubscribe;\n }\n }\n Subscription.prototype.unsubscribe = function () {\n var errors;\n if (this.closed) {\n return;\n }\n var _a = this, _parentOrParents = _a._parentOrParents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (var index = 0; index < _parentOrParents.length; ++index) {\n var parent_1 = _parentOrParents[index];\n parent_1.remove(this);\n }\n }\n if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_2__[\"isFunction\"])(_unsubscribe)) {\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_3__[\"UnsubscriptionError\"] ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (Object(_util_isArray__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(_subscriptions)) {\n var index = -1;\n var len = _subscriptions.length;\n while (++index < len) {\n var sub = _subscriptions[index];\n if (Object(_util_isObject__WEBPACK_IMPORTED_MODULE_1__[\"isObject\"])(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_3__[\"UnsubscriptionError\"]) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_3__[\"UnsubscriptionError\"](errors);\n }\n };\n Subscription.prototype.add = function (teardown) {\n var subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n var tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n var _parentOrParents = subscription._parentOrParents;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n var subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n };\n Subscription.prototype.remove = function (subscription) {\n var subscriptions = this._subscriptions;\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n Subscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n return Subscription;\n}());\n\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce(function (errs, err) { return errs.concat((err instanceof _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_3__[\"UnsubscriptionError\"]) ? err.errors : err); }, []);\n}\n//# sourceMappingURL=Subscription.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/Subscription.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/asyncIteratorFrom.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/asyncIteratorFrom.js ***! + \*******************************************************************/ +/*! exports provided: asyncIteratorFrom */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asyncIteratorFrom\", function() { return asyncIteratorFrom; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_deferred__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/deferred */ \"./node_modules/rxjs/dist/esm5/internal/util/deferred.js\");\n\n\nfunction asyncIteratorFrom(source) {\n return coroutine(source);\n}\nfunction coroutine(source) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__asyncGenerator\"])(this, arguments, function coroutine_1() {\n var deferreds, values, hasError, error, completed, subs, d, result, err_1;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n deferreds = [];\n values = [];\n hasError = false;\n error = null;\n completed = false;\n subs = source.subscribe({\n next: function (value) {\n if (deferreds.length > 0) {\n deferreds.shift().resolve({ value: value, done: false });\n }\n else {\n values.push(value);\n }\n },\n error: function (err) {\n hasError = true;\n error = err;\n while (deferreds.length > 0) {\n deferreds.shift().reject(err);\n }\n },\n complete: function () {\n completed = true;\n while (deferreds.length > 0) {\n deferreds.shift().resolve({ value: undefined, done: true });\n }\n },\n });\n _a.label = 1;\n case 1:\n _a.trys.push([1, 16, 17, 18]);\n _a.label = 2;\n case 2:\n if (false) {}\n if (!(values.length > 0)) return [3, 5];\n return [4, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__await\"])(values.shift())];\n case 3: return [4, _a.sent()];\n case 4:\n _a.sent();\n return [3, 14];\n case 5:\n if (!completed) return [3, 7];\n return [4, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__await\"])(void 0)];\n case 6: return [2, _a.sent()];\n case 7:\n if (!hasError) return [3, 8];\n throw error;\n case 8:\n d = new _util_deferred__WEBPACK_IMPORTED_MODULE_1__[\"Deferred\"]();\n deferreds.push(d);\n return [4, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__await\"])(d.promise)];\n case 9:\n result = _a.sent();\n if (!result.done) return [3, 11];\n return [4, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__await\"])(void 0)];\n case 10: return [2, _a.sent()];\n case 11: return [4, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__await\"])(result.value)];\n case 12: return [4, _a.sent()];\n case 13:\n _a.sent();\n _a.label = 14;\n case 14: return [3, 2];\n case 15: return [3, 18];\n case 16:\n err_1 = _a.sent();\n throw err_1;\n case 17:\n subs.unsubscribe();\n return [7];\n case 18: return [2];\n }\n });\n });\n}\n//# sourceMappingURL=asyncIteratorFrom.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/asyncIteratorFrom.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/config.js": +/*!********************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/config.js ***! + \********************************************************/ +/*! exports provided: config */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"config\", function() { return config; });\nvar _enable_super_gross_mode_that_will_cause_bad_things = false;\nvar config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n var error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n//# sourceMappingURL=config.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/config.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/firstValueFrom.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/firstValueFrom.js ***! + \****************************************************************/ +/*! exports provided: firstValueFrom */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"firstValueFrom\", function() { return firstValueFrom; });\n/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/EmptyError */ \"./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n\n\nfunction firstValueFrom(source$) {\n return new Promise(function (resolve, reject) {\n var subs = new _Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]();\n subs.add(source$.subscribe({\n next: function (value) {\n resolve(value);\n subs.unsubscribe();\n },\n error: reject,\n complete: function () {\n reject(new _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__[\"EmptyError\"]());\n },\n }));\n });\n}\n//# sourceMappingURL=firstValueFrom.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/firstValueFrom.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/lastValueFrom.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/lastValueFrom.js ***! + \***************************************************************/ +/*! exports provided: lastValueFrom */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"lastValueFrom\", function() { return lastValueFrom; });\n/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/EmptyError */ \"./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js\");\n\nfunction lastValueFrom(source) {\n return new Promise(function (resolve, reject) {\n var _hasValue = false;\n var _value;\n source.subscribe({\n next: function (value) {\n _value = value;\n _hasValue = true;\n },\n error: reject,\n complete: function () {\n if (_hasValue) {\n resolve(_value);\n }\n else {\n reject(new _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__[\"EmptyError\"]());\n }\n },\n });\n });\n}\n//# sourceMappingURL=lastValueFrom.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/lastValueFrom.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/ConnectableObservable.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/ConnectableObservable.js ***! + \**********************************************************************************/ +/*! exports provided: ConnectableObservable, connectableObservableDescriptor */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ConnectableObservable\", function() { return ConnectableObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"connectableObservableDescriptor\", function() { return connectableObservableDescriptor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _operators_refCount__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../operators/refCount */ \"./node_modules/rxjs/dist/esm5/internal/operators/refCount.js\");\n\n\n\n\n\n\nvar ConnectableObservable = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ConnectableObservable, _super);\n function ConnectableObservable(source, subjectFactory) {\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.subjectFactory = subjectFactory;\n _this._refCount = 0;\n _this._isComplete = false;\n return _this;\n }\n ConnectableObservable.prototype._subscribe = function (subscriber) {\n return this.getSubject().subscribe(subscriber);\n };\n ConnectableObservable.prototype.getSubject = function () {\n var subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n };\n ConnectableObservable.prototype.connect = function () {\n var connection = this._connection;\n if (!connection) {\n this._isComplete = false;\n connection = this._connection = new _Subscription__WEBPACK_IMPORTED_MODULE_4__[\"Subscription\"]();\n connection.add(this.source\n .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n if (connection.closed) {\n this._connection = null;\n connection = _Subscription__WEBPACK_IMPORTED_MODULE_4__[\"Subscription\"].EMPTY;\n }\n }\n return connection;\n };\n ConnectableObservable.prototype.refCount = function () {\n return Object(_operators_refCount__WEBPACK_IMPORTED_MODULE_5__[\"refCount\"])()(this);\n };\n return ConnectableObservable;\n}(_Observable__WEBPACK_IMPORTED_MODULE_2__[\"Observable\"]));\n\nvar connectableObservableDescriptor = (function () {\n var connectableProto = ConnectableObservable.prototype;\n return {\n operator: { value: null },\n _refCount: { value: 0, writable: true },\n _subject: { value: null, writable: true },\n _connection: { value: null, writable: true },\n _subscribe: { value: connectableProto._subscribe },\n _isComplete: { value: connectableProto._isComplete, writable: true },\n getSubject: { value: connectableProto.getSubject },\n connect: { value: connectableProto.connect },\n refCount: { value: connectableProto.refCount }\n };\n})();\nvar ConnectableSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ConnectableSubscriber, _super);\n function ConnectableSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n ConnectableSubscriber.prototype._error = function (err) {\n this._unsubscribe();\n _super.prototype._error.call(this, err);\n };\n ConnectableSubscriber.prototype._complete = function () {\n this.connectable._isComplete = true;\n this._unsubscribe();\n _super.prototype._complete.call(this);\n };\n ConnectableSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (connectable) {\n this.connectable = null;\n var connection = connectable._connection;\n connectable._refCount = 0;\n connectable._subject = null;\n connectable._connection = null;\n if (connection) {\n connection.unsubscribe();\n }\n }\n };\n return ConnectableSubscriber;\n}(_Subject__WEBPACK_IMPORTED_MODULE_1__[\"SubjectSubscriber\"]));\nvar RefCountOperator = (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__[\"Subscriber\"]));\n//# sourceMappingURL=ConnectableObservable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/ConnectableObservable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/SubscribeOnObservable.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/SubscribeOnObservable.js ***! + \**********************************************************************************/ +/*! exports provided: SubscribeOnObservable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SubscribeOnObservable\", function() { return SubscribeOnObservable; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _scheduler_asap__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduler/asap */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/asap.js\");\n/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/isNumeric */ \"./node_modules/rxjs/dist/esm5/internal/util/isNumeric.js\");\n\n\n\n\nvar SubscribeOnObservable = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SubscribeOnObservable, _super);\n function SubscribeOnObservable(source, delayTime, scheduler) {\n if (delayTime === void 0) { delayTime = 0; }\n if (scheduler === void 0) { scheduler = _scheduler_asap__WEBPACK_IMPORTED_MODULE_2__[\"asap\"]; }\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.delayTime = delayTime;\n _this.scheduler = scheduler;\n if (!Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_3__[\"isNumeric\"])(delayTime) || delayTime < 0) {\n _this.delayTime = 0;\n }\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n _this.scheduler = _scheduler_asap__WEBPACK_IMPORTED_MODULE_2__[\"asap\"];\n }\n return _this;\n }\n SubscribeOnObservable.create = function (source, delay, scheduler) {\n if (delay === void 0) { delay = 0; }\n if (scheduler === void 0) { scheduler = _scheduler_asap__WEBPACK_IMPORTED_MODULE_2__[\"asap\"]; }\n return new SubscribeOnObservable(source, delay, scheduler);\n };\n SubscribeOnObservable.dispatch = function (arg) {\n var source = arg.source, subscriber = arg.subscriber;\n return this.add(source.subscribe(subscriber));\n };\n SubscribeOnObservable.prototype._subscribe = function (subscriber) {\n var delay = this.delayTime;\n var source = this.source;\n var scheduler = this.scheduler;\n return scheduler.schedule(SubscribeOnObservable.dispatch, delay, {\n source: source, subscriber: subscriber\n });\n };\n return SubscribeOnObservable;\n}(_Observable__WEBPACK_IMPORTED_MODULE_1__[\"Observable\"]));\n\n//# sourceMappingURL=SubscribeOnObservable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/SubscribeOnObservable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/bindCallback.js": +/*!*************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/bindCallback.js ***! + \*************************************************************************/ +/*! exports provided: bindCallback */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bindCallback\", function() { return bindCallback; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _AsyncSubject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../AsyncSubject */ \"./node_modules/rxjs/dist/esm5/internal/AsyncSubject.js\");\n/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../operators/map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n/* harmony import */ var _util_canReportError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/canReportError */ \"./node_modules/rxjs/dist/esm5/internal/util/canReportError.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n\n\n\n\n\n\n\nfunction bindCallback(callbackFunc, resultSelector, scheduler) {\n if (resultSelector) {\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_6__[\"isScheduler\"])(resultSelector)) {\n scheduler = resultSelector;\n }\n else {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return bindCallback(callbackFunc, scheduler).apply(void 0, args).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_5__[\"isArray\"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n };\n }\n }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var context = this;\n var subject;\n var params = {\n context: context,\n subject: undefined,\n callbackFunc: callbackFunc,\n scheduler: scheduler,\n };\n return new _Observable__WEBPACK_IMPORTED_MODULE_1__[\"Observable\"](function (subscriber) {\n if (!scheduler) {\n if (!subject) {\n subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_2__[\"AsyncSubject\"]();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n subject.complete();\n };\n try {\n callbackFunc.apply(context, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])(args, [handler]));\n }\n catch (err) {\n if (Object(_util_canReportError__WEBPACK_IMPORTED_MODULE_4__[\"canReportError\"])(subject)) {\n subject.error(err);\n }\n else {\n console.warn(err);\n }\n }\n }\n return subject.subscribe(subscriber);\n }\n else {\n var state = {\n args: args, subscriber: subscriber, params: params,\n };\n return scheduler.schedule(dispatch, 0, state);\n }\n });\n };\n}\nfunction dispatch(state) {\n var _this = this;\n var self = this;\n var args = state.args, subscriber = state.subscriber, params = state.params;\n var callbackFunc = params.callbackFunc, context = params.context, scheduler = params.scheduler;\n var subject = params.subject;\n if (!subject) {\n subject = params.subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_2__[\"AsyncSubject\"]();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));\n };\n try {\n callbackFunc.apply(context, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])(args, [handler]));\n }\n catch (err) {\n subject.error(err);\n }\n }\n this.add(subject.subscribe(subscriber));\n}\nfunction dispatchNext(state) {\n var value = state.value, subject = state.subject;\n subject.next(value);\n subject.complete();\n}\nfunction dispatchError(state) {\n var err = state.err, subject = state.subject;\n subject.error(err);\n}\n//# sourceMappingURL=bindCallback.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/bindCallback.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/bindNodeCallback.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/bindNodeCallback.js ***! + \*****************************************************************************/ +/*! exports provided: bindNodeCallback */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bindNodeCallback\", function() { return bindNodeCallback; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _AsyncSubject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../AsyncSubject */ \"./node_modules/rxjs/dist/esm5/internal/AsyncSubject.js\");\n/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../operators/map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n/* harmony import */ var _util_canReportError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/canReportError */ \"./node_modules/rxjs/dist/esm5/internal/util/canReportError.js\");\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n\n\n\n\n\n\n\nfunction bindNodeCallback(callbackFunc, resultSelector, scheduler) {\n if (resultSelector) {\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_5__[\"isScheduler\"])(resultSelector)) {\n scheduler = resultSelector;\n }\n else {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return bindNodeCallback(callbackFunc, scheduler).apply(void 0, args).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_6__[\"isArray\"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n };\n }\n }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var params = {\n subject: undefined,\n args: args,\n callbackFunc: callbackFunc,\n scheduler: scheduler,\n context: this,\n };\n return new _Observable__WEBPACK_IMPORTED_MODULE_1__[\"Observable\"](function (subscriber) {\n var context = params.context;\n var subject = params.subject;\n if (!scheduler) {\n if (!subject) {\n subject = params.subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_2__[\"AsyncSubject\"]();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n var err = innerArgs.shift();\n if (err) {\n subject.error(err);\n return;\n }\n subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n subject.complete();\n };\n try {\n callbackFunc.apply(context, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])(args, [handler]));\n }\n catch (err) {\n if (Object(_util_canReportError__WEBPACK_IMPORTED_MODULE_4__[\"canReportError\"])(subject)) {\n subject.error(err);\n }\n else {\n console.warn(err);\n }\n }\n }\n return subject.subscribe(subscriber);\n }\n else {\n return scheduler.schedule(dispatch, 0, { params: params, subscriber: subscriber, context: context });\n }\n });\n };\n}\nfunction dispatch(state) {\n var _this = this;\n var params = state.params, subscriber = state.subscriber, context = state.context;\n var callbackFunc = params.callbackFunc, args = params.args, scheduler = params.scheduler;\n var subject = params.subject;\n if (!subject) {\n subject = params.subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_2__[\"AsyncSubject\"]();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n var err = innerArgs.shift();\n if (err) {\n _this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));\n }\n else {\n var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));\n }\n };\n try {\n callbackFunc.apply(context, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])(args, [handler]));\n }\n catch (err) {\n this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));\n }\n }\n this.add(subject.subscribe(subscriber));\n}\nfunction dispatchNext(arg) {\n var value = arg.value, subject = arg.subject;\n subject.next(value);\n subject.complete();\n}\nfunction dispatchError(arg) {\n var err = arg.err, subject = arg.subject;\n subject.error(err);\n}\n//# sourceMappingURL=bindNodeCallback.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/bindNodeCallback.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js ***! + \**************************************************************************/ +/*! exports provided: combineLatest, CombineLatestOperator, CombineLatestSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"combineLatest\", function() { return combineLatest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CombineLatestOperator\", function() { return CombineLatestOperator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CombineLatestSubscriber\", function() { return CombineLatestSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./fromArray */ \"./node_modules/rxjs/dist/esm5/internal/observable/fromArray.js\");\n\n\n\n\n\n\nvar NONE = {};\nfunction combineLatest() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var resultSelector = undefined;\n var scheduler = undefined;\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_1__[\"isScheduler\"])(observables[observables.length - 1])) {\n scheduler = observables.pop();\n }\n if (typeof observables[observables.length - 1] === 'function') {\n resultSelector = observables.pop();\n }\n if (observables.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__[\"isArray\"])(observables[0])) {\n observables = observables[0];\n }\n return Object(_fromArray__WEBPACK_IMPORTED_MODULE_5__[\"fromArray\"])(observables, scheduler).lift(new CombineLatestOperator(resultSelector));\n}\nvar CombineLatestOperator = (function () {\n function CombineLatestOperator(resultSelector) {\n this.resultSelector = resultSelector;\n }\n CombineLatestOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));\n };\n return CombineLatestOperator;\n}());\n\nvar CombineLatestSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(CombineLatestSubscriber, _super);\n function CombineLatestSubscriber(destination, resultSelector) {\n var _this = _super.call(this, destination) || this;\n _this.resultSelector = resultSelector;\n _this.active = 0;\n _this.values = [];\n _this.observables = [];\n return _this;\n }\n CombineLatestSubscriber.prototype._next = function (observable) {\n this.values.push(NONE);\n this.observables.push(observable);\n };\n CombineLatestSubscriber.prototype._complete = function () {\n var observables = this.observables;\n var len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n this.active = len;\n this.toRespond = len;\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__[\"subscribeToResult\"])(this, observable, observable, i));\n }\n }\n };\n CombineLatestSubscriber.prototype.notifyComplete = function (unused) {\n if ((this.active -= 1) === 0) {\n this.destination.complete();\n }\n };\n CombineLatestSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var values = this.values;\n var oldVal = values[outerIndex];\n var toRespond = !this.toRespond\n ? 0\n : oldVal === NONE ? --this.toRespond : this.toRespond;\n values[outerIndex] = innerValue;\n if (toRespond === 0) {\n if (this.resultSelector) {\n this._tryResultSelector(values);\n }\n else {\n this.destination.next(values.slice());\n }\n }\n };\n CombineLatestSubscriber.prototype._tryResultSelector = function (values) {\n var result;\n try {\n result = this.resultSelector.apply(this, values);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return CombineLatestSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__[\"OuterSubscriber\"]));\n\n//# sourceMappingURL=combineLatest.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/concat.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/concat.js ***! + \*******************************************************************/ +/*! exports provided: concat */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"concat\", function() { return concat; });\n/* harmony import */ var _of__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./of */ \"./node_modules/rxjs/dist/esm5/internal/observable/of.js\");\n/* harmony import */ var _operators_concatAll__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../operators/concatAll */ \"./node_modules/rxjs/dist/esm5/internal/operators/concatAll.js\");\n\n\nfunction concat() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return Object(_operators_concatAll__WEBPACK_IMPORTED_MODULE_1__[\"concatAll\"])()(_of__WEBPACK_IMPORTED_MODULE_0__[\"of\"].apply(void 0, observables));\n}\n//# sourceMappingURL=concat.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/concat.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/defer.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/defer.js ***! + \******************************************************************/ +/*! exports provided: defer */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defer\", function() { return defer; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./empty */ \"./node_modules/rxjs/dist/esm5/internal/observable/empty.js\");\n\n\n\nfunction defer(observableFactory) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var input;\n try {\n input = observableFactory();\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var source = input ? Object(_from__WEBPACK_IMPORTED_MODULE_1__[\"from\"])(input) : _empty__WEBPACK_IMPORTED_MODULE_2__[\"EMPTY\"];\n return source.subscribe(subscriber);\n });\n}\n//# sourceMappingURL=defer.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/defer.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/dom/AjaxObservable.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/dom/AjaxObservable.js ***! + \*******************************************************************************/ +/*! exports provided: ajaxGet, ajaxPost, ajaxDelete, ajaxPut, ajaxPatch, ajaxGetJSON, AjaxObservable, AjaxSubscriber, AjaxResponse, AjaxError, AjaxTimeoutError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ajaxGet\", function() { return ajaxGet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ajaxPost\", function() { return ajaxPost; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ajaxDelete\", function() { return ajaxDelete; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ajaxPut\", function() { return ajaxPut; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ajaxPatch\", function() { return ajaxPatch; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ajaxGetJSON\", function() { return ajaxGetJSON; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AjaxObservable\", function() { return AjaxObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AjaxSubscriber\", function() { return AjaxSubscriber; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AjaxResponse\", function() { return AjaxResponse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AjaxError\", function() { return AjaxError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AjaxTimeoutError\", function() { return AjaxTimeoutError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_root__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/root */ \"./node_modules/rxjs/dist/esm5/internal/util/root.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../operators/map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n\n\n\n\n\nfunction getCORSRequest() {\n if (_util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].XMLHttpRequest) {\n return new _util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].XMLHttpRequest();\n }\n else if (!!_util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].XDomainRequest) {\n return new _util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].XDomainRequest();\n }\n else {\n throw new Error('CORS is not supported by your browser');\n }\n}\nfunction getXMLHttpRequest() {\n if (_util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].XMLHttpRequest) {\n return new _util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].XMLHttpRequest();\n }\n else {\n var progId = void 0;\n try {\n var progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];\n for (var i = 0; i < 3; i++) {\n try {\n progId = progIds[i];\n if (new _util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].ActiveXObject(progId)) {\n break;\n }\n }\n catch (e) {\n }\n }\n return new _util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].ActiveXObject(progId);\n }\n catch (e) {\n throw new Error('XMLHttpRequest is not supported by your browser');\n }\n }\n}\nfunction ajaxGet(url, headers) {\n return new AjaxObservable({ method: 'GET', url: url, headers: headers });\n}\nfunction ajaxPost(url, body, headers) {\n return new AjaxObservable({ method: 'POST', url: url, body: body, headers: headers });\n}\nfunction ajaxDelete(url, headers) {\n return new AjaxObservable({ method: 'DELETE', url: url, headers: headers });\n}\nfunction ajaxPut(url, body, headers) {\n return new AjaxObservable({ method: 'PUT', url: url, body: body, headers: headers });\n}\nfunction ajaxPatch(url, body, headers) {\n return new AjaxObservable({ method: 'PATCH', url: url, body: body, headers: headers });\n}\nvar mapResponse = Object(_operators_map__WEBPACK_IMPORTED_MODULE_4__[\"map\"])(function (x, index) { return x.response; });\nfunction ajaxGetJSON(url, headers) {\n return mapResponse(new AjaxObservable({\n method: 'GET',\n url: url,\n responseType: 'json',\n headers: headers\n }));\n}\nvar AjaxObservable = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AjaxObservable, _super);\n function AjaxObservable(urlOrRequest) {\n var _this = _super.call(this) || this;\n var request = {\n async: true,\n createXHR: function () {\n return this.crossDomain ? getCORSRequest() : getXMLHttpRequest();\n },\n crossDomain: true,\n withCredentials: false,\n headers: {},\n method: 'GET',\n responseType: 'json',\n timeout: 0\n };\n if (typeof urlOrRequest === 'string') {\n request.url = urlOrRequest;\n }\n else {\n for (var prop in urlOrRequest) {\n if (urlOrRequest.hasOwnProperty(prop)) {\n request[prop] = urlOrRequest[prop];\n }\n }\n }\n _this.request = request;\n return _this;\n }\n AjaxObservable.prototype._subscribe = function (subscriber) {\n return new AjaxSubscriber(subscriber, this.request);\n };\n AjaxObservable.create = (function () {\n var create = function (urlOrRequest) {\n return new AjaxObservable(urlOrRequest);\n };\n create.get = ajaxGet;\n create.post = ajaxPost;\n create.delete = ajaxDelete;\n create.put = ajaxPut;\n create.patch = ajaxPatch;\n create.getJSON = ajaxGetJSON;\n return create;\n })();\n return AjaxObservable;\n}(_Observable__WEBPACK_IMPORTED_MODULE_2__[\"Observable\"]));\n\nvar AjaxSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AjaxSubscriber, _super);\n function AjaxSubscriber(destination, request) {\n var _this = _super.call(this, destination) || this;\n _this.request = request;\n _this.done = false;\n var headers = request.headers = request.headers || {};\n if (!request.crossDomain && !_this.getHeader(headers, 'X-Requested-With')) {\n headers['X-Requested-With'] = 'XMLHttpRequest';\n }\n var contentTypeHeader = _this.getHeader(headers, 'Content-Type');\n if (!contentTypeHeader && !(_util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].FormData && request.body instanceof _util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].FormData) && typeof request.body !== 'undefined') {\n headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';\n }\n request.body = _this.serializeBody(request.body, _this.getHeader(request.headers, 'Content-Type'));\n _this.send();\n return _this;\n }\n AjaxSubscriber.prototype.next = function (e) {\n this.done = true;\n var _a = this, xhr = _a.xhr, request = _a.request, destination = _a.destination;\n var result;\n try {\n result = new AjaxResponse(e, xhr, request);\n }\n catch (err) {\n return destination.error(err);\n }\n destination.next(result);\n };\n AjaxSubscriber.prototype.send = function () {\n var _a = this, request = _a.request, _b = _a.request, user = _b.user, method = _b.method, url = _b.url, async = _b.async, password = _b.password, headers = _b.headers, body = _b.body;\n try {\n var xhr = this.xhr = request.createXHR();\n this.setupEvents(xhr, request);\n if (user) {\n xhr.open(method, url, async, user, password);\n }\n else {\n xhr.open(method, url, async);\n }\n if (async) {\n xhr.timeout = request.timeout;\n xhr.responseType = request.responseType;\n }\n if ('withCredentials' in xhr) {\n xhr.withCredentials = !!request.withCredentials;\n }\n this.setHeaders(xhr, headers);\n if (body) {\n xhr.send(body);\n }\n else {\n xhr.send();\n }\n }\n catch (err) {\n this.error(err);\n }\n };\n AjaxSubscriber.prototype.serializeBody = function (body, contentType) {\n if (!body || typeof body === 'string') {\n return body;\n }\n else if (_util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].FormData && body instanceof _util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].FormData) {\n return body;\n }\n if (contentType) {\n var splitIndex = contentType.indexOf(';');\n if (splitIndex !== -1) {\n contentType = contentType.substring(0, splitIndex);\n }\n }\n switch (contentType) {\n case 'application/x-www-form-urlencoded':\n return Object.keys(body).map(function (key) { return encodeURIComponent(key) + \"=\" + encodeURIComponent(body[key]); }).join('&');\n case 'application/json':\n return JSON.stringify(body);\n default:\n return body;\n }\n };\n AjaxSubscriber.prototype.setHeaders = function (xhr, headers) {\n for (var key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n };\n AjaxSubscriber.prototype.getHeader = function (headers, headerName) {\n for (var key in headers) {\n if (key.toLowerCase() === headerName.toLowerCase()) {\n return headers[key];\n }\n }\n return undefined;\n };\n AjaxSubscriber.prototype.setupEvents = function (xhr, request) {\n var progressSubscriber = request.progressSubscriber;\n function xhrTimeout(e) {\n var _a = xhrTimeout, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var error;\n try {\n error = new AjaxTimeoutError(this, request);\n }\n catch (err) {\n error = err;\n }\n subscriber.error(error);\n }\n xhr.ontimeout = xhrTimeout;\n xhrTimeout.request = request;\n xhrTimeout.subscriber = this;\n xhrTimeout.progressSubscriber = progressSubscriber;\n if (xhr.upload && 'withCredentials' in xhr) {\n if (progressSubscriber) {\n var xhrProgress_1;\n xhrProgress_1 = function (e) {\n var progressSubscriber = xhrProgress_1.progressSubscriber;\n progressSubscriber.next(e);\n };\n if (_util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].XDomainRequest) {\n xhr.onprogress = xhrProgress_1;\n }\n else {\n xhr.upload.onprogress = xhrProgress_1;\n }\n xhrProgress_1.progressSubscriber = progressSubscriber;\n }\n var xhrError_1;\n xhrError_1 = function (e) {\n var _a = xhrError_1, progressSubscriber = _a.progressSubscriber, subscriber = _a.subscriber, request = _a.request;\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var error;\n try {\n error = new AjaxError('ajax error', this, request);\n }\n catch (err) {\n error = err;\n }\n subscriber.error(error);\n };\n xhr.onerror = xhrError_1;\n xhrError_1.request = request;\n xhrError_1.subscriber = this;\n xhrError_1.progressSubscriber = progressSubscriber;\n }\n function xhrReadyStateChange(e) {\n return;\n }\n xhr.onreadystatechange = xhrReadyStateChange;\n xhrReadyStateChange.subscriber = this;\n xhrReadyStateChange.progressSubscriber = progressSubscriber;\n xhrReadyStateChange.request = request;\n function xhrLoad(e) {\n var _a = xhrLoad, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n if (this.readyState === 4) {\n var status_1 = this.status === 1223 ? 204 : this.status;\n var response = (this.responseType === 'text' ? (this.response || this.responseText) : this.response);\n if (status_1 === 0) {\n status_1 = response ? 200 : 0;\n }\n if (status_1 < 400) {\n if (progressSubscriber) {\n progressSubscriber.complete();\n }\n subscriber.next(e);\n subscriber.complete();\n }\n else {\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var error = void 0;\n try {\n error = new AjaxError('ajax error ' + status_1, this, request);\n }\n catch (err) {\n error = err;\n }\n subscriber.error(error);\n }\n }\n }\n xhr.onload = xhrLoad;\n xhrLoad.subscriber = this;\n xhrLoad.progressSubscriber = progressSubscriber;\n xhrLoad.request = request;\n };\n AjaxSubscriber.prototype.unsubscribe = function () {\n var _a = this, done = _a.done, xhr = _a.xhr;\n if (!done && xhr && xhr.readyState !== 4 && typeof xhr.abort === 'function') {\n xhr.abort();\n }\n _super.prototype.unsubscribe.call(this);\n };\n return AjaxSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__[\"Subscriber\"]));\n\nvar AjaxResponse = (function () {\n function AjaxResponse(originalEvent, xhr, request) {\n this.originalEvent = originalEvent;\n this.xhr = xhr;\n this.request = request;\n this.status = xhr.status;\n this.responseType = xhr.responseType || request.responseType;\n this.response = parseXhrResponse(this.responseType, xhr);\n }\n return AjaxResponse;\n}());\n\nvar AjaxErrorImpl = (function () {\n function AjaxErrorImpl(message, xhr, request) {\n Error.call(this);\n this.message = message;\n this.name = 'AjaxError';\n this.xhr = xhr;\n this.request = request;\n this.status = xhr.status;\n this.responseType = xhr.responseType || request.responseType;\n this.response = parseXhrResponse(this.responseType, xhr);\n return this;\n }\n AjaxErrorImpl.prototype = Object.create(Error.prototype);\n return AjaxErrorImpl;\n})();\nvar AjaxError = AjaxErrorImpl;\nfunction parseJson(xhr) {\n if ('response' in xhr) {\n return xhr.responseType ? xhr.response : JSON.parse(xhr.response || xhr.responseText || 'null');\n }\n else {\n return JSON.parse(xhr.responseText || 'null');\n }\n}\nfunction parseXhrResponse(responseType, xhr) {\n switch (responseType) {\n case 'json':\n return parseJson(xhr);\n case 'xml':\n return xhr.responseXML;\n case 'text':\n default:\n return ('response' in xhr) ? xhr.response : xhr.responseText;\n }\n}\nvar AjaxTimeoutErrorImpl = (function () {\n function AjaxTimeoutErrorImpl(xhr, request) {\n AjaxError.call(this, 'ajax timeout', xhr, request);\n this.name = 'AjaxTimeoutError';\n return this;\n }\n AjaxTimeoutErrorImpl.prototype = Object.create(AjaxError.prototype);\n return AjaxTimeoutErrorImpl;\n})();\nvar AjaxTimeoutError = AjaxTimeoutErrorImpl;\n//# sourceMappingURL=AjaxObservable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/dom/AjaxObservable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/dom/ajax.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/dom/ajax.js ***! + \*********************************************************************/ +/*! exports provided: ajax */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ajax\", function() { return ajax; });\n/* harmony import */ var _AjaxObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AjaxObservable */ \"./node_modules/rxjs/dist/esm5/internal/observable/dom/AjaxObservable.js\");\n\nvar ajax = (function () { return _AjaxObservable__WEBPACK_IMPORTED_MODULE_0__[\"AjaxObservable\"].create; })();\n//# sourceMappingURL=ajax.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/dom/ajax.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/dom/animationFrames.js": +/*!********************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/dom/animationFrames.js ***! + \********************************************************************************/ +/*! exports provided: animationFrames */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"animationFrames\", function() { return animationFrames; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n\nfunction animationFrames(timestampProvider) {\n if (timestampProvider === void 0) { timestampProvider = Date; }\n return timestampProvider === Date ? DEFAULT_ANIMATION_FRAMES : animationFramesFactory(timestampProvider);\n}\nfunction animationFramesFactory(timestampProvider) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var id;\n var start = timestampProvider.now();\n var run = function () {\n subscriber.next(timestampProvider.now() - start);\n if (!subscriber.closed) {\n id = requestAnimationFrame(run);\n }\n };\n id = requestAnimationFrame(run);\n return function () { return cancelAnimationFrame(id); };\n });\n}\nvar DEFAULT_ANIMATION_FRAMES = animationFramesFactory(Date);\n//# sourceMappingURL=animationFrames.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/dom/animationFrames.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/empty.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/empty.js ***! + \******************************************************************/ +/*! exports provided: EMPTY, empty */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EMPTY\", function() { return EMPTY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"empty\", function() { return empty; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n\nvar EMPTY = new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) { return subscriber.complete(); });\nfunction empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/empty.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/forkJoin.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/forkJoin.js ***! + \*********************************************************************/ +/*! exports provided: forkJoin */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"forkJoin\", function() { return forkJoin; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../operators/map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n/* harmony import */ var _util_isObject__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/isObject */ \"./node_modules/rxjs/dist/esm5/internal/util/isObject.js\");\n/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n\n\n\n\n\nfunction forkJoin() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n if (sources.length === 1) {\n var first_1 = sources[0];\n if (Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__[\"isArray\"])(first_1)) {\n return forkJoinInternal(first_1, null);\n }\n if (Object(_util_isObject__WEBPACK_IMPORTED_MODULE_3__[\"isObject\"])(first_1) && Object.getPrototypeOf(first_1) === Object.prototype) {\n var keys = Object.keys(first_1);\n return forkJoinInternal(keys.map(function (key) { return first_1[key]; }), keys);\n }\n }\n if (typeof sources[sources.length - 1] === 'function') {\n var resultSelector_1 = sources.pop();\n sources = (sources.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__[\"isArray\"])(sources[0])) ? sources[0] : sources;\n return forkJoinInternal(sources, null).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (args) { return resultSelector_1.apply(void 0, args); }));\n }\n return forkJoinInternal(sources, null);\n}\nfunction forkJoinInternal(sources, keys) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var len = sources.length;\n if (len === 0) {\n subscriber.complete();\n return;\n }\n var values = new Array(len);\n var completed = 0;\n var emitted = 0;\n var _loop_1 = function (i) {\n var source = Object(_from__WEBPACK_IMPORTED_MODULE_4__[\"from\"])(sources[i]);\n var hasValue = false;\n subscriber.add(source.subscribe({\n next: function (value) {\n if (!hasValue) {\n hasValue = true;\n emitted++;\n }\n values[i] = value;\n },\n error: function (err) { return subscriber.error(err); },\n complete: function () {\n completed++;\n if (completed === len || !hasValue) {\n if (emitted === len) {\n subscriber.next(keys ?\n keys.reduce(function (result, key, i) { return (result[key] = values[i], result); }, {}) :\n values);\n }\n subscriber.complete();\n }\n }\n }));\n };\n for (var i = 0; i < len; i++) {\n _loop_1(i);\n }\n });\n}\n//# sourceMappingURL=forkJoin.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/forkJoin.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/from.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/from.js ***! + \*****************************************************************/ +/*! exports provided: from */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"from\", function() { return from; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _util_subscribeTo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/subscribeTo */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeTo.js\");\n/* harmony import */ var _scheduled_scheduled__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduled/scheduled */ \"./node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js\");\n\n\n\nfunction from(input, scheduler) {\n if (!scheduler) {\n if (input instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"]) {\n return input;\n }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](Object(_util_subscribeTo__WEBPACK_IMPORTED_MODULE_1__[\"subscribeTo\"])(input));\n }\n else {\n return Object(_scheduled_scheduled__WEBPACK_IMPORTED_MODULE_2__[\"scheduled\"])(input, scheduler);\n }\n}\n//# sourceMappingURL=from.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/from.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/fromArray.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/fromArray.js ***! + \**********************************************************************/ +/*! exports provided: fromArray */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fromArray\", function() { return fromArray; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _util_subscribeToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/subscribeToArray */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToArray.js\");\n/* harmony import */ var _scheduled_scheduleArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduled/scheduleArray */ \"./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js\");\n\n\n\nfunction fromArray(input, scheduler) {\n if (!scheduler) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](Object(_util_subscribeToArray__WEBPACK_IMPORTED_MODULE_1__[\"subscribeToArray\"])(input));\n }\n else {\n return Object(_scheduled_scheduleArray__WEBPACK_IMPORTED_MODULE_2__[\"scheduleArray\"])(input, scheduler);\n }\n}\n//# sourceMappingURL=fromArray.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/fromArray.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js ***! + \**********************************************************************/ +/*! exports provided: fromEvent */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fromEvent\", function() { return fromEvent; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isFunction */ \"./node_modules/rxjs/dist/esm5/internal/util/isFunction.js\");\n/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../operators/map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n\n\n\n\nfunction fromEvent(target, eventName, options, resultSelector) {\n if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_2__[\"isFunction\"])(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__[\"isArray\"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n function handler(e) {\n if (arguments.length > 1) {\n subscriber.next(Array.prototype.slice.call(arguments));\n }\n else {\n subscriber.next(e);\n }\n }\n setupSubscription(target, eventName, handler, subscriber, options);\n });\n}\nfunction setupSubscription(sourceObj, eventName, handler, subscriber, options) {\n var unsubscribe;\n if (isEventTarget(sourceObj)) {\n var source_1 = sourceObj;\n sourceObj.addEventListener(eventName, handler, options);\n unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); };\n }\n else if (isJQueryStyleEventEmitter(sourceObj)) {\n var source_2 = sourceObj;\n sourceObj.on(eventName, handler);\n unsubscribe = function () { return source_2.off(eventName, handler); };\n }\n else if (isNodeStyleEventEmitter(sourceObj)) {\n var source_3 = sourceObj;\n sourceObj.addListener(eventName, handler);\n unsubscribe = function () { return source_3.removeListener(eventName, handler); };\n }\n else if (sourceObj && sourceObj.length) {\n for (var i = 0, len = sourceObj.length; i < len; i++) {\n setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n }\n }\n else {\n throw new TypeError('Invalid event target');\n }\n subscriber.add(unsubscribe);\n}\nfunction isNodeStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\nfunction isJQueryStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\nfunction isEventTarget(sourceObj) {\n return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n//# sourceMappingURL=fromEvent.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/fromEventPattern.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/fromEventPattern.js ***! + \*****************************************************************************/ +/*! exports provided: fromEventPattern */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fromEventPattern\", function() { return fromEventPattern; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isFunction */ \"./node_modules/rxjs/dist/esm5/internal/util/isFunction.js\");\n/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../operators/map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n\n\n\n\nfunction fromEventPattern(addHandler, removeHandler, resultSelector) {\n if (resultSelector) {\n return fromEventPattern(addHandler, removeHandler).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__[\"isArray\"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var handler = function () {\n var e = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n e[_i] = arguments[_i];\n }\n return subscriber.next(e.length === 1 ? e[0] : e);\n };\n var retValue;\n try {\n retValue = addHandler(handler);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_2__[\"isFunction\"])(removeHandler)) {\n return undefined;\n }\n return function () { return removeHandler(handler, retValue); };\n });\n}\n//# sourceMappingURL=fromEventPattern.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/fromEventPattern.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/generate.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/generate.js ***! + \*********************************************************************/ +/*! exports provided: generate */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"generate\", function() { return generate; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/identity */ \"./node_modules/rxjs/dist/esm5/internal/util/identity.js\");\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n\n\n\nfunction generate(initialStateOrOptions, condition, iterate, resultSelectorOrScheduler, scheduler) {\n var resultSelector;\n var initialState;\n if (arguments.length == 1) {\n var options = initialStateOrOptions;\n initialState = options.initialState;\n condition = options.condition;\n iterate = options.iterate;\n resultSelector = options.resultSelector || _util_identity__WEBPACK_IMPORTED_MODULE_1__[\"identity\"];\n scheduler = options.scheduler;\n }\n else if (resultSelectorOrScheduler === undefined || Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_2__[\"isScheduler\"])(resultSelectorOrScheduler)) {\n initialState = initialStateOrOptions;\n resultSelector = _util_identity__WEBPACK_IMPORTED_MODULE_1__[\"identity\"];\n scheduler = resultSelectorOrScheduler;\n }\n else {\n initialState = initialStateOrOptions;\n resultSelector = resultSelectorOrScheduler;\n }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var state = initialState;\n if (scheduler) {\n return scheduler.schedule(dispatch, 0, {\n subscriber: subscriber,\n iterate: iterate,\n condition: condition,\n resultSelector: resultSelector,\n state: state\n });\n }\n do {\n if (condition) {\n var conditionResult = void 0;\n try {\n conditionResult = condition(state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!conditionResult) {\n subscriber.complete();\n break;\n }\n }\n var value = void 0;\n try {\n value = resultSelector(state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n subscriber.next(value);\n if (subscriber.closed) {\n break;\n }\n try {\n state = iterate(state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n } while (true);\n return undefined;\n });\n}\nfunction dispatch(state) {\n var subscriber = state.subscriber, condition = state.condition;\n if (subscriber.closed) {\n return undefined;\n }\n if (state.needIterate) {\n try {\n state.state = state.iterate(state.state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n }\n else {\n state.needIterate = true;\n }\n if (condition) {\n var conditionResult = void 0;\n try {\n conditionResult = condition(state.state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!conditionResult) {\n subscriber.complete();\n return undefined;\n }\n if (subscriber.closed) {\n return undefined;\n }\n }\n var value;\n try {\n value = state.resultSelector(state.state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (subscriber.closed) {\n return undefined;\n }\n subscriber.next(value);\n if (subscriber.closed) {\n return undefined;\n }\n return this.schedule(state);\n}\n//# sourceMappingURL=generate.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/generate.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/iif.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/iif.js ***! + \****************************************************************/ +/*! exports provided: iif */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"iif\", function() { return iif; });\n/* harmony import */ var _defer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defer */ \"./node_modules/rxjs/dist/esm5/internal/observable/defer.js\");\n/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./empty */ \"./node_modules/rxjs/dist/esm5/internal/observable/empty.js\");\n\n\nfunction iif(condition, trueResult, falseResult) {\n if (trueResult === void 0) { trueResult = _empty__WEBPACK_IMPORTED_MODULE_1__[\"EMPTY\"]; }\n if (falseResult === void 0) { falseResult = _empty__WEBPACK_IMPORTED_MODULE_1__[\"EMPTY\"]; }\n return Object(_defer__WEBPACK_IMPORTED_MODULE_0__[\"defer\"])(function () { return condition() ? trueResult : falseResult; });\n}\n//# sourceMappingURL=iif.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/iif.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/interval.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/interval.js ***! + \*********************************************************************/ +/*! exports provided: interval */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"interval\", function() { return interval; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isNumeric */ \"./node_modules/rxjs/dist/esm5/internal/util/isNumeric.js\");\n\n\n\nfunction interval(period, scheduler) {\n if (period === void 0) { period = 0; }\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__[\"async\"]; }\n if (!Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_2__[\"isNumeric\"])(period) || period < 0) {\n period = 0;\n }\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__[\"async\"];\n }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n subscriber.add(scheduler.schedule(dispatch, period, { subscriber: subscriber, counter: 0, period: period }));\n return subscriber;\n });\n}\nfunction dispatch(state) {\n var subscriber = state.subscriber, counter = state.counter, period = state.period;\n subscriber.next(counter);\n this.schedule({ subscriber: subscriber, counter: counter + 1, period: period }, period);\n}\n//# sourceMappingURL=interval.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/interval.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/merge.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/merge.js ***! + \******************************************************************/ +/*! exports provided: merge */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"merge\", function() { return merge; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n/* harmony import */ var _operators_mergeAll__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../operators/mergeAll */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js\");\n/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fromArray */ \"./node_modules/rxjs/dist/esm5/internal/observable/fromArray.js\");\n\n\n\n\nfunction merge() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var concurrent = Number.POSITIVE_INFINITY;\n var scheduler = undefined;\n var last = observables[observables.length - 1];\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_1__[\"isScheduler\"])(last)) {\n scheduler = observables.pop();\n if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n concurrent = observables.pop();\n }\n }\n else if (typeof last === 'number') {\n concurrent = observables.pop();\n }\n if (!scheduler && observables.length === 1 && observables[0] instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"]) {\n return observables[0];\n }\n return Object(_operators_mergeAll__WEBPACK_IMPORTED_MODULE_2__[\"mergeAll\"])(concurrent)(Object(_fromArray__WEBPACK_IMPORTED_MODULE_3__[\"fromArray\"])(observables, scheduler));\n}\n//# sourceMappingURL=merge.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/merge.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/never.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/never.js ***! + \******************************************************************/ +/*! exports provided: NEVER, never */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NEVER\", function() { return NEVER; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"never\", function() { return never; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _util_noop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/noop */ \"./node_modules/rxjs/dist/esm5/internal/util/noop.js\");\n\n\nvar NEVER = new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](_util_noop__WEBPACK_IMPORTED_MODULE_1__[\"noop\"]);\nfunction never() {\n return NEVER;\n}\n//# sourceMappingURL=never.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/never.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/of.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/of.js ***! + \***************************************************************/ +/*! exports provided: of */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"of\", function() { return of; });\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./fromArray */ \"./node_modules/rxjs/dist/esm5/internal/observable/fromArray.js\");\n/* harmony import */ var _scheduled_scheduleArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduled/scheduleArray */ \"./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js\");\n\n\n\nfunction of() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = args[args.length - 1];\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_0__[\"isScheduler\"])(scheduler)) {\n args.pop();\n return Object(_scheduled_scheduleArray__WEBPACK_IMPORTED_MODULE_2__[\"scheduleArray\"])(args, scheduler);\n }\n else {\n return Object(_fromArray__WEBPACK_IMPORTED_MODULE_1__[\"fromArray\"])(args);\n }\n}\n//# sourceMappingURL=of.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/of.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/onErrorResumeNext.js": +/*!******************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/onErrorResumeNext.js ***! + \******************************************************************************/ +/*! exports provided: onErrorResumeNext */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onErrorResumeNext\", function() { return onErrorResumeNext; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./empty */ \"./node_modules/rxjs/dist/esm5/internal/observable/empty.js\");\n\n\n\n\nfunction onErrorResumeNext() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n if (sources.length === 0) {\n return _empty__WEBPACK_IMPORTED_MODULE_3__[\"EMPTY\"];\n }\n var first = sources[0], remainder = sources.slice(1);\n if (sources.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__[\"isArray\"])(first)) {\n return onErrorResumeNext.apply(void 0, first);\n }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var subNext = function () { return subscriber.add(onErrorResumeNext.apply(void 0, remainder).subscribe(subscriber)); };\n return Object(_from__WEBPACK_IMPORTED_MODULE_1__[\"from\"])(first).subscribe({\n next: function (value) { subscriber.next(value); },\n error: subNext,\n complete: subNext,\n });\n });\n}\n//# sourceMappingURL=onErrorResumeNext.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/onErrorResumeNext.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/pairs.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/pairs.js ***! + \******************************************************************/ +/*! exports provided: pairs, dispatch */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pairs\", function() { return pairs; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dispatch\", function() { return dispatch; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n\n\nfunction pairs(obj, scheduler) {\n if (!scheduler) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length && !subscriber.closed; i++) {\n var key = keys[i];\n if (obj.hasOwnProperty(key)) {\n subscriber.next([key, obj[key]]);\n }\n }\n subscriber.complete();\n });\n }\n else {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var keys = Object.keys(obj);\n var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]();\n subscription.add(scheduler.schedule(dispatch, 0, { keys: keys, index: 0, subscriber: subscriber, subscription: subscription, obj: obj }));\n return subscription;\n });\n }\n}\nfunction dispatch(state) {\n var keys = state.keys, index = state.index, subscriber = state.subscriber, subscription = state.subscription, obj = state.obj;\n if (!subscriber.closed) {\n if (index < keys.length) {\n var key = keys[index];\n subscriber.next([key, obj[key]]);\n subscription.add(this.schedule({ keys: keys, index: index + 1, subscriber: subscriber, subscription: subscription, obj: obj }));\n }\n else {\n subscriber.complete();\n }\n }\n}\n//# sourceMappingURL=pairs.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/pairs.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/partition.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/partition.js ***! + \**********************************************************************/ +/*! exports provided: partition */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"partition\", function() { return partition; });\n/* harmony import */ var _util_not__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/not */ \"./node_modules/rxjs/dist/esm5/internal/util/not.js\");\n/* harmony import */ var _util_subscribeTo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/subscribeTo */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeTo.js\");\n/* harmony import */ var _operators_filter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../operators/filter */ \"./node_modules/rxjs/dist/esm5/internal/operators/filter.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n\n\n\n\nfunction partition(source, predicate, thisArg) {\n return [\n Object(_operators_filter__WEBPACK_IMPORTED_MODULE_2__[\"filter\"])(predicate, thisArg)(new _Observable__WEBPACK_IMPORTED_MODULE_3__[\"Observable\"](Object(_util_subscribeTo__WEBPACK_IMPORTED_MODULE_1__[\"subscribeTo\"])(source))),\n Object(_operators_filter__WEBPACK_IMPORTED_MODULE_2__[\"filter\"])(Object(_util_not__WEBPACK_IMPORTED_MODULE_0__[\"not\"])(predicate, thisArg))(new _Observable__WEBPACK_IMPORTED_MODULE_3__[\"Observable\"](Object(_util_subscribeTo__WEBPACK_IMPORTED_MODULE_1__[\"subscribeTo\"])(source)))\n ];\n}\n//# sourceMappingURL=partition.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/partition.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/race.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/race.js ***! + \*****************************************************************/ +/*! exports provided: race, RaceOperator, RaceSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"race\", function() { return race; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RaceOperator\", function() { return RaceOperator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RaceSubscriber\", function() { return RaceSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fromArray */ \"./node_modules/rxjs/dist/esm5/internal/observable/fromArray.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\n\n\nfunction race() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n if (observables.length === 1) {\n if (Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__[\"isArray\"])(observables[0])) {\n observables = observables[0];\n }\n else {\n return Object(_from__WEBPACK_IMPORTED_MODULE_2__[\"from\"])(observables[0]);\n }\n }\n return Object(_fromArray__WEBPACK_IMPORTED_MODULE_3__[\"fromArray\"])(observables, undefined).lift(new RaceOperator());\n}\nvar RaceOperator = (function () {\n function RaceOperator() {\n }\n RaceOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RaceSubscriber(subscriber));\n };\n return RaceOperator;\n}());\n\nvar RaceSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(RaceSubscriber, _super);\n function RaceSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.hasFirst = false;\n _this.observables = [];\n _this.subscriptions = [];\n return _this;\n }\n RaceSubscriber.prototype._next = function (observable) {\n this.observables.push(observable);\n };\n RaceSubscriber.prototype._complete = function () {\n var observables = this.observables;\n var len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n for (var i = 0; i < len && !this.hasFirst; i++) {\n var observable = observables[i];\n var subscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__[\"subscribeToResult\"])(this, observable, observable, i);\n if (this.subscriptions) {\n this.subscriptions.push(subscription);\n }\n this.add(subscription);\n }\n this.observables = null;\n }\n };\n RaceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n if (!this.hasFirst) {\n this.hasFirst = true;\n for (var i = 0; i < this.subscriptions.length; i++) {\n if (i !== outerIndex) {\n var subscription = this.subscriptions[i];\n subscription.unsubscribe();\n this.remove(subscription);\n }\n }\n this.subscriptions = null;\n }\n this.destination.next(innerValue);\n };\n RaceSubscriber.prototype.notifyComplete = function (innerSub) {\n this.hasFirst = true;\n _super.prototype.notifyComplete.call(this, innerSub);\n };\n RaceSubscriber.prototype.notifyError = function (error, innerSub) {\n this.hasFirst = true;\n _super.prototype.notifyError.call(this, error, innerSub);\n };\n return RaceSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__[\"OuterSubscriber\"]));\n\n//# sourceMappingURL=race.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/race.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/range.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/range.js ***! + \******************************************************************/ +/*! exports provided: range, dispatch */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"range\", function() { return range; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dispatch\", function() { return dispatch; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n\nfunction range(start, count, scheduler) {\n if (start === void 0) { start = 0; }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n if (count === undefined) {\n count = start;\n start = 0;\n }\n var index = 0;\n var current = start;\n if (scheduler) {\n return scheduler.schedule(dispatch, 0, {\n index: index, count: count, start: start, subscriber: subscriber\n });\n }\n else {\n do {\n if (index++ >= count) {\n subscriber.complete();\n break;\n }\n subscriber.next(current++);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n }\n return undefined;\n });\n}\nfunction dispatch(state) {\n var start = state.start, index = state.index, count = state.count, subscriber = state.subscriber;\n if (index >= count) {\n subscriber.complete();\n return;\n }\n subscriber.next(start);\n if (subscriber.closed) {\n return;\n }\n state.index = index + 1;\n state.start = start + 1;\n this.schedule(state);\n}\n//# sourceMappingURL=range.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/range.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/throwError.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/throwError.js ***! + \***********************************************************************/ +/*! exports provided: throwError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"throwError\", function() { return throwError; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n\nfunction throwError(error, scheduler) {\n if (!scheduler) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) { return subscriber.error(error); });\n }\n else {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); });\n }\n}\nfunction dispatch(_a) {\n var error = _a.error, subscriber = _a.subscriber;\n subscriber.error(error);\n}\n//# sourceMappingURL=throwError.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/throwError.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/timer.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/timer.js ***! + \******************************************************************/ +/*! exports provided: timer */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timer\", function() { return timer; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isNumeric */ \"./node_modules/rxjs/dist/esm5/internal/util/isNumeric.js\");\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n\n\n\n\nfunction timer(dueTime, periodOrScheduler, scheduler) {\n if (dueTime === void 0) { dueTime = 0; }\n var period = -1;\n if (Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_2__[\"isNumeric\"])(periodOrScheduler)) {\n period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler);\n }\n else if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_3__[\"isScheduler\"])(periodOrScheduler)) {\n scheduler = periodOrScheduler;\n }\n if (!Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_3__[\"isScheduler\"])(scheduler)) {\n scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__[\"async\"];\n }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var due = Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_2__[\"isNumeric\"])(dueTime)\n ? dueTime\n : (+dueTime - scheduler.now());\n return scheduler.schedule(dispatch, due, {\n index: 0, period: period, subscriber: subscriber\n });\n });\n}\nfunction dispatch(state) {\n var index = state.index, period = state.period, subscriber = state.subscriber;\n subscriber.next(index);\n if (subscriber.closed) {\n return;\n }\n else if (period === -1) {\n return subscriber.complete();\n }\n state.index = index + 1;\n this.schedule(state, period);\n}\n//# sourceMappingURL=timer.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/timer.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/using.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/using.js ***! + \******************************************************************/ +/*! exports provided: using */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"using\", function() { return using; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./empty */ \"./node_modules/rxjs/dist/esm5/internal/observable/empty.js\");\n\n\n\nfunction using(resourceFactory, observableFactory) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var resource;\n try {\n resource = resourceFactory();\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var result;\n try {\n result = observableFactory(resource);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var source = result ? Object(_from__WEBPACK_IMPORTED_MODULE_1__[\"from\"])(result) : _empty__WEBPACK_IMPORTED_MODULE_2__[\"EMPTY\"];\n var subscription = source.subscribe(subscriber);\n return function () {\n subscription.unsubscribe();\n if (resource) {\n resource.unsubscribe();\n }\n };\n });\n}\n//# sourceMappingURL=using.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/using.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/zip.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/zip.js ***! + \****************************************************************/ +/*! exports provided: zip, ZipOperator, ZipSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"zip\", function() { return zip; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ZipOperator\", function() { return ZipOperator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ZipSubscriber\", function() { return ZipSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./fromArray */ \"./node_modules/rxjs/dist/esm5/internal/observable/fromArray.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n/* harmony import */ var _internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../internal/symbol/iterator */ \"./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js\");\n\n\n\n\n\n\n\nfunction zip() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var last = observables[observables.length - 1];\n var resultSelector = undefined;\n if (typeof last === 'function') {\n resultSelector = observables.pop();\n }\n return Object(_fromArray__WEBPACK_IMPORTED_MODULE_1__[\"fromArray\"])(observables, undefined).lift(new ZipOperator(resultSelector));\n}\nvar ZipOperator = (function () {\n function ZipOperator(resultSelector) {\n this.resultSelector = resultSelector;\n }\n ZipOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector));\n };\n return ZipOperator;\n}());\n\nvar ZipSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ZipSubscriber, _super);\n function ZipSubscriber(destination, resultSelector, values) {\n if (values === void 0) { values = Object.create(null); }\n var _this = _super.call(this, destination) || this;\n _this.iterators = [];\n _this.active = 0;\n _this.resultSelector = resultSelector;\n _this.values = values;\n return _this;\n }\n ZipSubscriber.prototype._next = function (value) {\n var iterators = this.iterators;\n if (Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__[\"isArray\"])(value)) {\n iterators.push(new StaticArrayIterator(value));\n }\n else if (typeof value[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__[\"iterator\"]] === 'function') {\n iterators.push(new StaticIterator(value[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__[\"iterator\"]]()));\n }\n else {\n iterators.push(new ZipBufferIterator(this.destination, this, value));\n }\n };\n ZipSubscriber.prototype._complete = function () {\n var iterators = this.iterators;\n var len = iterators.length;\n this.unsubscribe();\n if (len === 0) {\n this.destination.complete();\n return;\n }\n this.active = len;\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n if (iterator.stillUnsubscribed) {\n var destination = this.destination;\n destination.add(iterator.subscribe(iterator, i));\n }\n else {\n this.active--;\n }\n }\n };\n ZipSubscriber.prototype.notifyInactive = function () {\n this.active--;\n if (this.active === 0) {\n this.destination.complete();\n }\n };\n ZipSubscriber.prototype.checkIterators = function () {\n var iterators = this.iterators;\n var len = iterators.length;\n var destination = this.destination;\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) {\n return;\n }\n }\n var shouldComplete = false;\n var args = [];\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n var result = iterator.next();\n if (iterator.hasCompleted()) {\n shouldComplete = true;\n }\n if (result.done) {\n destination.complete();\n return;\n }\n args.push(result.value);\n }\n if (this.resultSelector) {\n this._tryresultSelector(args);\n }\n else {\n destination.next(args);\n }\n if (shouldComplete) {\n destination.complete();\n }\n };\n ZipSubscriber.prototype._tryresultSelector = function (args) {\n var result;\n try {\n result = this.resultSelector.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return ZipSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__[\"Subscriber\"]));\n\nvar StaticIterator = (function () {\n function StaticIterator(iterator) {\n this.iterator = iterator;\n this.nextResult = iterator.next();\n }\n StaticIterator.prototype.hasValue = function () {\n return true;\n };\n StaticIterator.prototype.next = function () {\n var result = this.nextResult;\n this.nextResult = this.iterator.next();\n return result;\n };\n StaticIterator.prototype.hasCompleted = function () {\n var nextResult = this.nextResult;\n return nextResult && !!nextResult.done;\n };\n return StaticIterator;\n}());\nvar StaticArrayIterator = (function () {\n function StaticArrayIterator(array) {\n this.array = array;\n this.index = 0;\n this.length = 0;\n this.length = array.length;\n }\n StaticArrayIterator.prototype[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__[\"iterator\"]] = function () {\n return this;\n };\n StaticArrayIterator.prototype.next = function (value) {\n var i = this.index++;\n var array = this.array;\n return i < this.length ? { value: array[i], done: false } : { value: null, done: true };\n };\n StaticArrayIterator.prototype.hasValue = function () {\n return this.array.length > this.index;\n };\n StaticArrayIterator.prototype.hasCompleted = function () {\n return this.array.length === this.index;\n };\n return StaticArrayIterator;\n}());\nvar ZipBufferIterator = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ZipBufferIterator, _super);\n function ZipBufferIterator(destination, parent, observable) {\n var _this = _super.call(this, destination) || this;\n _this.parent = parent;\n _this.observable = observable;\n _this.stillUnsubscribed = true;\n _this.buffer = [];\n _this.isComplete = false;\n return _this;\n }\n ZipBufferIterator.prototype[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__[\"iterator\"]] = function () {\n return this;\n };\n ZipBufferIterator.prototype.next = function () {\n var buffer = this.buffer;\n if (buffer.length === 0 && this.isComplete) {\n return { value: null, done: true };\n }\n else {\n return { value: buffer.shift(), done: false };\n }\n };\n ZipBufferIterator.prototype.hasValue = function () {\n return this.buffer.length > 0;\n };\n ZipBufferIterator.prototype.hasCompleted = function () {\n return this.buffer.length === 0 && this.isComplete;\n };\n ZipBufferIterator.prototype.notifyComplete = function () {\n if (this.buffer.length > 0) {\n this.isComplete = true;\n this.parent.notifyInactive();\n }\n else {\n this.destination.complete();\n }\n };\n ZipBufferIterator.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.buffer.push(innerValue);\n this.parent.checkIterators();\n };\n ZipBufferIterator.prototype.subscribe = function (value, index) {\n return Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__[\"subscribeToResult\"])(this, this.observable, this, index);\n };\n return ZipBufferIterator;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__[\"OuterSubscriber\"]));\n//# sourceMappingURL=zip.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/zip.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/audit.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/audit.js ***! + \*****************************************************************/ +/*! exports provided: audit */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"audit\", function() { return audit; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nfunction audit(durationSelector) {\n return function auditOperatorFunction(source) {\n return source.lift(new AuditOperator(durationSelector));\n };\n}\nvar AuditOperator = (function () {\n function AuditOperator(durationSelector) {\n this.durationSelector = durationSelector;\n }\n AuditOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector));\n };\n return AuditOperator;\n}());\nvar AuditSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AuditSubscriber, _super);\n function AuditSubscriber(destination, durationSelector) {\n var _this = _super.call(this, destination) || this;\n _this.durationSelector = durationSelector;\n _this.value = null;\n _this.hasValue = false;\n _this.throttled = null;\n return _this;\n }\n AuditSubscriber.prototype._next = function (value) {\n this.value = value;\n this.hasValue = true;\n if (!this.throttled) {\n var duration = void 0;\n try {\n var durationSelector = this.durationSelector;\n duration = durationSelector(value);\n }\n catch (err) {\n return this.destination.error(err);\n }\n var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(this, duration);\n if (!innerSubscription || innerSubscription.closed) {\n this.clearThrottle();\n }\n else {\n this.add(this.throttled = innerSubscription);\n }\n }\n };\n AuditSubscriber.prototype.clearThrottle = function () {\n var _a = this, value = _a.value, hasValue = _a.hasValue, throttled = _a.throttled;\n if (throttled) {\n this.remove(throttled);\n this.throttled = null;\n throttled.unsubscribe();\n }\n if (hasValue) {\n this.value = null;\n this.hasValue = false;\n this.destination.next(value);\n }\n };\n AuditSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex) {\n this.clearThrottle();\n };\n AuditSubscriber.prototype.notifyComplete = function () {\n this.clearThrottle();\n };\n return AuditSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=audit.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/audit.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/auditTime.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/auditTime.js ***! + \*********************************************************************/ +/*! exports provided: auditTime */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"auditTime\", function() { return auditTime; });\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _audit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./audit */ \"./node_modules/rxjs/dist/esm5/internal/operators/audit.js\");\n/* harmony import */ var _observable_timer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../observable/timer */ \"./node_modules/rxjs/dist/esm5/internal/observable/timer.js\");\n\n\n\nfunction auditTime(duration, scheduler) {\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__[\"async\"]; }\n return Object(_audit__WEBPACK_IMPORTED_MODULE_1__[\"audit\"])(function () { return Object(_observable_timer__WEBPACK_IMPORTED_MODULE_2__[\"timer\"])(duration, scheduler); });\n}\n//# sourceMappingURL=auditTime.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/auditTime.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/buffer.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/buffer.js ***! + \******************************************************************/ +/*! exports provided: buffer */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"buffer\", function() { return buffer; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nfunction buffer(closingNotifier) {\n return function bufferOperatorFunction(source) {\n return source.lift(new BufferOperator(closingNotifier));\n };\n}\nvar BufferOperator = (function () {\n function BufferOperator(closingNotifier) {\n this.closingNotifier = closingNotifier;\n }\n BufferOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier));\n };\n return BufferOperator;\n}());\nvar BufferSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(BufferSubscriber, _super);\n function BufferSubscriber(destination, closingNotifier) {\n var _this = _super.call(this, destination) || this;\n _this.buffer = [];\n _this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(_this, closingNotifier));\n return _this;\n }\n BufferSubscriber.prototype._next = function (value) {\n this.buffer.push(value);\n };\n BufferSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var buffer = this.buffer;\n this.buffer = [];\n this.destination.next(buffer);\n };\n return BufferSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=buffer.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/buffer.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/bufferCount.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/bufferCount.js ***! + \***********************************************************************/ +/*! exports provided: bufferCount */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bufferCount\", function() { return bufferCount; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction bufferCount(bufferSize, startBufferEvery) {\n if (startBufferEvery === void 0) { startBufferEvery = null; }\n return function bufferCountOperatorFunction(source) {\n return source.lift(new BufferCountOperator(bufferSize, startBufferEvery));\n };\n}\nvar BufferCountOperator = (function () {\n function BufferCountOperator(bufferSize, startBufferEvery) {\n this.bufferSize = bufferSize;\n this.startBufferEvery = startBufferEvery;\n if (!startBufferEvery || bufferSize === startBufferEvery) {\n this.subscriberClass = BufferCountSubscriber;\n }\n else {\n this.subscriberClass = BufferSkipCountSubscriber;\n }\n }\n BufferCountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery));\n };\n return BufferCountOperator;\n}());\nvar BufferCountSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(BufferCountSubscriber, _super);\n function BufferCountSubscriber(destination, bufferSize) {\n var _this = _super.call(this, destination) || this;\n _this.bufferSize = bufferSize;\n _this.buffer = [];\n return _this;\n }\n BufferCountSubscriber.prototype._next = function (value) {\n var buffer = this.buffer;\n buffer.push(value);\n if (buffer.length == this.bufferSize) {\n this.destination.next(buffer);\n this.buffer = [];\n }\n };\n BufferCountSubscriber.prototype._complete = function () {\n var buffer = this.buffer;\n if (buffer.length > 0) {\n this.destination.next(buffer);\n }\n _super.prototype._complete.call(this);\n };\n return BufferCountSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\nvar BufferSkipCountSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(BufferSkipCountSubscriber, _super);\n function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) {\n var _this = _super.call(this, destination) || this;\n _this.bufferSize = bufferSize;\n _this.startBufferEvery = startBufferEvery;\n _this.buffers = [];\n _this.count = 0;\n return _this;\n }\n BufferSkipCountSubscriber.prototype._next = function (value) {\n var _a = this, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers, count = _a.count;\n this.count++;\n if (count % startBufferEvery === 0) {\n buffers.push([]);\n }\n for (var i = buffers.length; i--;) {\n var buffer = buffers[i];\n buffer.push(value);\n if (buffer.length === bufferSize) {\n buffers.splice(i, 1);\n this.destination.next(buffer);\n }\n }\n };\n BufferSkipCountSubscriber.prototype._complete = function () {\n var _a = this, buffers = _a.buffers, destination = _a.destination;\n while (buffers.length > 0) {\n var buffer = buffers.shift();\n if (buffer.length > 0) {\n destination.next(buffer);\n }\n }\n _super.prototype._complete.call(this);\n };\n return BufferSkipCountSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=bufferCount.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/bufferCount.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/bufferTime.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/bufferTime.js ***! + \**********************************************************************/ +/*! exports provided: bufferTime */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bufferTime\", function() { return bufferTime; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n\n\n\n\nfunction bufferTime(bufferTimeSpan) {\n var length = arguments.length;\n var scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__[\"async\"];\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_3__[\"isScheduler\"])(arguments[arguments.length - 1])) {\n scheduler = arguments[arguments.length - 1];\n length--;\n }\n var bufferCreationInterval = null;\n if (length >= 2) {\n bufferCreationInterval = arguments[1];\n }\n var maxBufferSize = Number.POSITIVE_INFINITY;\n if (length >= 3) {\n maxBufferSize = arguments[2];\n }\n return function bufferTimeOperatorFunction(source) {\n return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler));\n };\n}\nvar BufferTimeOperator = (function () {\n function BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n this.bufferTimeSpan = bufferTimeSpan;\n this.bufferCreationInterval = bufferCreationInterval;\n this.maxBufferSize = maxBufferSize;\n this.scheduler = scheduler;\n }\n BufferTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferTimeSubscriber(subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler));\n };\n return BufferTimeOperator;\n}());\nvar Context = (function () {\n function Context() {\n this.buffer = [];\n }\n return Context;\n}());\nvar BufferTimeSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(BufferTimeSubscriber, _super);\n function BufferTimeSubscriber(destination, bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.bufferTimeSpan = bufferTimeSpan;\n _this.bufferCreationInterval = bufferCreationInterval;\n _this.maxBufferSize = maxBufferSize;\n _this.scheduler = scheduler;\n _this.contexts = [];\n var context = _this.openContext();\n _this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0;\n if (_this.timespanOnly) {\n var timeSpanOnlyState = { subscriber: _this, context: context, bufferTimeSpan: bufferTimeSpan };\n _this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n }\n else {\n var closeState = { subscriber: _this, context: context };\n var creationState = { bufferTimeSpan: bufferTimeSpan, bufferCreationInterval: bufferCreationInterval, subscriber: _this, scheduler: scheduler };\n _this.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState));\n _this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState));\n }\n return _this;\n }\n BufferTimeSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n var len = contexts.length;\n var filledBufferContext;\n for (var i = 0; i < len; i++) {\n var context_1 = contexts[i];\n var buffer = context_1.buffer;\n buffer.push(value);\n if (buffer.length == this.maxBufferSize) {\n filledBufferContext = context_1;\n }\n }\n if (filledBufferContext) {\n this.onBufferFull(filledBufferContext);\n }\n };\n BufferTimeSubscriber.prototype._error = function (err) {\n this.contexts.length = 0;\n _super.prototype._error.call(this, err);\n };\n BufferTimeSubscriber.prototype._complete = function () {\n var _a = this, contexts = _a.contexts, destination = _a.destination;\n while (contexts.length > 0) {\n var context_2 = contexts.shift();\n destination.next(context_2.buffer);\n }\n _super.prototype._complete.call(this);\n };\n BufferTimeSubscriber.prototype._unsubscribe = function () {\n this.contexts = null;\n };\n BufferTimeSubscriber.prototype.onBufferFull = function (context) {\n this.closeContext(context);\n var closeAction = context.closeAction;\n closeAction.unsubscribe();\n this.remove(closeAction);\n if (!this.closed && this.timespanOnly) {\n context = this.openContext();\n var bufferTimeSpan = this.bufferTimeSpan;\n var timeSpanOnlyState = { subscriber: this, context: context, bufferTimeSpan: bufferTimeSpan };\n this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n }\n };\n BufferTimeSubscriber.prototype.openContext = function () {\n var context = new Context();\n this.contexts.push(context);\n return context;\n };\n BufferTimeSubscriber.prototype.closeContext = function (context) {\n this.destination.next(context.buffer);\n var contexts = this.contexts;\n var spliceIndex = contexts ? contexts.indexOf(context) : -1;\n if (spliceIndex >= 0) {\n contexts.splice(contexts.indexOf(context), 1);\n }\n };\n return BufferTimeSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_2__[\"Subscriber\"]));\nfunction dispatchBufferTimeSpanOnly(state) {\n var subscriber = state.subscriber;\n var prevContext = state.context;\n if (prevContext) {\n subscriber.closeContext(prevContext);\n }\n if (!subscriber.closed) {\n state.context = subscriber.openContext();\n state.context.closeAction = this.schedule(state, state.bufferTimeSpan);\n }\n}\nfunction dispatchBufferCreation(state) {\n var bufferCreationInterval = state.bufferCreationInterval, bufferTimeSpan = state.bufferTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler;\n var context = subscriber.openContext();\n var action = this;\n if (!subscriber.closed) {\n subscriber.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, { subscriber: subscriber, context: context }));\n action.schedule(state, bufferCreationInterval);\n }\n}\nfunction dispatchBufferClose(arg) {\n var subscriber = arg.subscriber, context = arg.context;\n subscriber.closeContext(context);\n}\n//# sourceMappingURL=bufferTime.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/bufferTime.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/bufferToggle.js": +/*!************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/bufferToggle.js ***! + \************************************************************************/ +/*! exports provided: bufferToggle */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bufferToggle\", function() { return bufferToggle; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n\n\n\n\nfunction bufferToggle(openings, closingSelector) {\n return function bufferToggleOperatorFunction(source) {\n return source.lift(new BufferToggleOperator(openings, closingSelector));\n };\n}\nvar BufferToggleOperator = (function () {\n function BufferToggleOperator(openings, closingSelector) {\n this.openings = openings;\n this.closingSelector = closingSelector;\n }\n BufferToggleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector));\n };\n return BufferToggleOperator;\n}());\nvar BufferToggleSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(BufferToggleSubscriber, _super);\n function BufferToggleSubscriber(destination, openings, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.openings = openings;\n _this.closingSelector = closingSelector;\n _this.contexts = [];\n _this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(_this, openings));\n return _this;\n }\n BufferToggleSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n var len = contexts.length;\n for (var i = 0; i < len; i++) {\n contexts[i].buffer.push(value);\n }\n };\n BufferToggleSubscriber.prototype._error = function (err) {\n var contexts = this.contexts;\n while (contexts.length > 0) {\n var context_1 = contexts.shift();\n context_1.subscription.unsubscribe();\n context_1.buffer = null;\n context_1.subscription = null;\n }\n this.contexts = null;\n _super.prototype._error.call(this, err);\n };\n BufferToggleSubscriber.prototype._complete = function () {\n var contexts = this.contexts;\n while (contexts.length > 0) {\n var context_2 = contexts.shift();\n this.destination.next(context_2.buffer);\n context_2.subscription.unsubscribe();\n context_2.buffer = null;\n context_2.subscription = null;\n }\n this.contexts = null;\n _super.prototype._complete.call(this);\n };\n BufferToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue);\n };\n BufferToggleSubscriber.prototype.notifyComplete = function (innerSub) {\n this.closeBuffer(innerSub.context);\n };\n BufferToggleSubscriber.prototype.openBuffer = function (value) {\n try {\n var closingSelector = this.closingSelector;\n var closingNotifier = closingSelector.call(this, value);\n if (closingNotifier) {\n this.trySubscribe(closingNotifier);\n }\n }\n catch (err) {\n this._error(err);\n }\n };\n BufferToggleSubscriber.prototype.closeBuffer = function (context) {\n var contexts = this.contexts;\n if (contexts && context) {\n var buffer = context.buffer, subscription = context.subscription;\n this.destination.next(buffer);\n contexts.splice(contexts.indexOf(context), 1);\n this.remove(subscription);\n subscription.unsubscribe();\n }\n };\n BufferToggleSubscriber.prototype.trySubscribe = function (closingNotifier) {\n var contexts = this.contexts;\n var buffer = [];\n var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]();\n var context = { buffer: buffer, subscription: subscription };\n contexts.push(context);\n var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(this, closingNotifier, context);\n if (!innerSubscription || innerSubscription.closed) {\n this.closeBuffer(context);\n }\n else {\n innerSubscription.context = context;\n this.add(innerSubscription);\n subscription.add(innerSubscription);\n }\n };\n return BufferToggleSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__[\"OuterSubscriber\"]));\n//# sourceMappingURL=bufferToggle.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/bufferToggle.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/bufferWhen.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/bufferWhen.js ***! + \**********************************************************************/ +/*! exports provided: bufferWhen */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bufferWhen\", function() { return bufferWhen; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\nfunction bufferWhen(closingSelector) {\n return function (source) {\n return source.lift(new BufferWhenOperator(closingSelector));\n };\n}\nvar BufferWhenOperator = (function () {\n function BufferWhenOperator(closingSelector) {\n this.closingSelector = closingSelector;\n }\n BufferWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector));\n };\n return BufferWhenOperator;\n}());\nvar BufferWhenSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(BufferWhenSubscriber, _super);\n function BufferWhenSubscriber(destination, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.closingSelector = closingSelector;\n _this.subscribing = false;\n _this.openBuffer();\n return _this;\n }\n BufferWhenSubscriber.prototype._next = function (value) {\n this.buffer.push(value);\n };\n BufferWhenSubscriber.prototype._complete = function () {\n var buffer = this.buffer;\n if (buffer) {\n this.destination.next(buffer);\n }\n _super.prototype._complete.call(this);\n };\n BufferWhenSubscriber.prototype._unsubscribe = function () {\n this.buffer = null;\n this.subscribing = false;\n };\n BufferWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.openBuffer();\n };\n BufferWhenSubscriber.prototype.notifyComplete = function () {\n if (this.subscribing) {\n this.complete();\n }\n else {\n this.openBuffer();\n }\n };\n BufferWhenSubscriber.prototype.openBuffer = function () {\n var closingSubscription = this.closingSubscription;\n if (closingSubscription) {\n this.remove(closingSubscription);\n closingSubscription.unsubscribe();\n }\n var buffer = this.buffer;\n if (this.buffer) {\n this.destination.next(buffer);\n }\n this.buffer = [];\n var closingNotifier;\n try {\n var closingSelector = this.closingSelector;\n closingNotifier = closingSelector();\n }\n catch (err) {\n return this.error(err);\n }\n closingSubscription = new _Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]();\n this.closingSubscription = closingSubscription;\n this.add(closingSubscription);\n this.subscribing = true;\n closingSubscription.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToResult\"])(this, closingNotifier));\n this.subscribing = false;\n };\n return BufferWhenSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"OuterSubscriber\"]));\n//# sourceMappingURL=bufferWhen.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/bufferWhen.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/catchError.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/catchError.js ***! + \**********************************************************************/ +/*! exports provided: catchError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"catchError\", function() { return catchError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../InnerSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\nfunction catchError(selector) {\n return function catchErrorOperatorFunction(source) {\n var operator = new CatchOperator(selector);\n var caught = source.lift(operator);\n return (operator.caught = caught);\n };\n}\nvar CatchOperator = (function () {\n function CatchOperator(selector) {\n this.selector = selector;\n }\n CatchOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));\n };\n return CatchOperator;\n}());\nvar CatchSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(CatchSubscriber, _super);\n function CatchSubscriber(destination, selector, caught) {\n var _this = _super.call(this, destination) || this;\n _this.selector = selector;\n _this.caught = caught;\n return _this;\n }\n CatchSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var result = void 0;\n try {\n result = this.selector(err, this.caught);\n }\n catch (err2) {\n _super.prototype.error.call(this, err2);\n return;\n }\n this._unsubscribeAndRecycle();\n var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"InnerSubscriber\"](this, undefined, undefined);\n this.add(innerSubscriber);\n var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToResult\"])(this, result, undefined, undefined, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n this.add(innerSubscription);\n }\n }\n };\n return CatchSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=catchError.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/catchError.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/combineAll.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/combineAll.js ***! + \**********************************************************************/ +/*! exports provided: combineAll */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"combineAll\", function() { return combineAll; });\n/* harmony import */ var _observable_combineLatest__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../observable/combineLatest */ \"./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js\");\n\nfunction combineAll(project) {\n return function (source) { return source.lift(new _observable_combineLatest__WEBPACK_IMPORTED_MODULE_0__[\"CombineLatestOperator\"](project)); };\n}\n//# sourceMappingURL=combineAll.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/combineAll.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/combineLatestWith.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/combineLatestWith.js ***! + \*****************************************************************************/ +/*! exports provided: combineLatest, combineLatestWith */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"combineLatest\", function() { return combineLatest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"combineLatestWith\", function() { return combineLatestWith; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _observable_combineLatest__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../observable/combineLatest */ \"./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js\");\n/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../observable/from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n\n\n\n\nfunction combineLatest() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var project = undefined;\n if (typeof observables[observables.length - 1] === 'function') {\n project = observables.pop();\n }\n if (observables.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__[\"isArray\"])(observables[0])) {\n observables = observables[0].slice();\n }\n return function (source) { return source.lift.call(Object(_observable_from__WEBPACK_IMPORTED_MODULE_3__[\"from\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])([source], observables)), new _observable_combineLatest__WEBPACK_IMPORTED_MODULE_2__[\"CombineLatestOperator\"](project)); };\n}\nfunction combineLatestWith() {\n var otherSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n otherSources[_i] = arguments[_i];\n }\n return combineLatest.apply(void 0, otherSources);\n}\n//# sourceMappingURL=combineLatestWith.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/combineLatestWith.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/concat.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/concat.js ***! + \******************************************************************/ +/*! exports provided: concat */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"concat\", function() { return concat; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _observable_concat__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../observable/concat */ \"./node_modules/rxjs/dist/esm5/internal/observable/concat.js\");\n\n\nfunction concat() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function (source) { return source.lift.call(_observable_concat__WEBPACK_IMPORTED_MODULE_1__[\"concat\"].apply(void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])([source], observables)), undefined); };\n}\n//# sourceMappingURL=concat.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/concat.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/concatAll.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/concatAll.js ***! + \*********************************************************************/ +/*! exports provided: concatAll */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"concatAll\", function() { return concatAll; });\n/* harmony import */ var _mergeAll__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mergeAll */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js\");\n\nfunction concatAll() {\n return Object(_mergeAll__WEBPACK_IMPORTED_MODULE_0__[\"mergeAll\"])(1);\n}\n//# sourceMappingURL=concatAll.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/concatAll.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/concatMap.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/concatMap.js ***! + \*********************************************************************/ +/*! exports provided: concatMap */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"concatMap\", function() { return concatMap; });\n/* harmony import */ var _mergeMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mergeMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js\");\n\nfunction concatMap(project, resultSelector) {\n if (typeof resultSelector === 'function') {\n return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__[\"mergeMap\"])(project, resultSelector, 1);\n }\n return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__[\"mergeMap\"])(project, 1);\n}\n//# sourceMappingURL=concatMap.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/concatMap.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/concatMapTo.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/concatMapTo.js ***! + \***********************************************************************/ +/*! exports provided: concatMapTo */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"concatMapTo\", function() { return concatMapTo; });\n/* harmony import */ var _concatMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./concatMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/concatMap.js\");\n\nfunction concatMapTo(innerObservable, resultSelector) {\n if (typeof resultSelector === 'function') {\n return Object(_concatMap__WEBPACK_IMPORTED_MODULE_0__[\"concatMap\"])(function () { return innerObservable; }, resultSelector);\n }\n return Object(_concatMap__WEBPACK_IMPORTED_MODULE_0__[\"concatMap\"])(function () { return innerObservable; });\n}\n//# sourceMappingURL=concatMapTo.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/concatMapTo.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/concatWith.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/concatWith.js ***! + \**********************************************************************/ +/*! exports provided: concatWith */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"concatWith\", function() { return concatWith; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _observable_concat__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../observable/concat */ \"./node_modules/rxjs/dist/esm5/internal/observable/concat.js\");\n\n\nfunction concatWith() {\n var otherSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n otherSources[_i] = arguments[_i];\n }\n return function (source) { return source.lift.call(_observable_concat__WEBPACK_IMPORTED_MODULE_1__[\"concat\"].apply(void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])([source], otherSources)), undefined); };\n}\n//# sourceMappingURL=concatWith.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/concatWith.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/count.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/count.js ***! + \*****************************************************************/ +/*! exports provided: count */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"count\", function() { return count; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction count(predicate) {\n return function (source) { return source.lift(new CountOperator(predicate, source)); };\n}\nvar CountOperator = (function () {\n function CountOperator(predicate, source) {\n this.predicate = predicate;\n this.source = source;\n }\n CountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source));\n };\n return CountOperator;\n}());\nvar CountSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(CountSubscriber, _super);\n function CountSubscriber(destination, predicate, source) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.source = source;\n _this.count = 0;\n _this.index = 0;\n return _this;\n }\n CountSubscriber.prototype._next = function (value) {\n if (this.predicate) {\n this._tryPredicate(value);\n }\n else {\n this.count++;\n }\n };\n CountSubscriber.prototype._tryPredicate = function (value) {\n var result;\n try {\n result = this.predicate(value, this.index++, this.source);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.count++;\n }\n };\n CountSubscriber.prototype._complete = function () {\n this.destination.next(this.count);\n this.destination.complete();\n };\n return CountSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=count.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/count.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/debounce.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/debounce.js ***! + \********************************************************************/ +/*! exports provided: debounce */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"debounce\", function() { return debounce; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nfunction debounce(durationSelector) {\n return function (source) { return source.lift(new DebounceOperator(durationSelector)); };\n}\nvar DebounceOperator = (function () {\n function DebounceOperator(durationSelector) {\n this.durationSelector = durationSelector;\n }\n DebounceOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector));\n };\n return DebounceOperator;\n}());\nvar DebounceSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(DebounceSubscriber, _super);\n function DebounceSubscriber(destination, durationSelector) {\n var _this = _super.call(this, destination) || this;\n _this.durationSelector = durationSelector;\n _this.value = null;\n _this.hasValue = false;\n _this.durationSubscription = null;\n return _this;\n }\n DebounceSubscriber.prototype._next = function (value) {\n try {\n var result = this.durationSelector.call(this, value);\n if (result) {\n this._tryNext(value, result);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n DebounceSubscriber.prototype._complete = function () {\n this.emitValue();\n this.destination.complete();\n };\n DebounceSubscriber.prototype._tryNext = function (value, duration) {\n var subscription = this.durationSubscription;\n this.value = value;\n this.hasValue = true;\n if (subscription) {\n subscription.unsubscribe();\n this.remove(subscription);\n }\n subscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(this, duration);\n if (subscription && !subscription.closed) {\n this.add(this.durationSubscription = subscription);\n }\n };\n DebounceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.emitValue();\n };\n DebounceSubscriber.prototype.notifyComplete = function () {\n this.emitValue();\n };\n DebounceSubscriber.prototype.emitValue = function () {\n if (this.hasValue) {\n var value = this.value;\n var subscription = this.durationSubscription;\n if (subscription) {\n this.durationSubscription = null;\n subscription.unsubscribe();\n this.remove(subscription);\n }\n this.value = null;\n this.hasValue = false;\n _super.prototype._next.call(this, value);\n }\n };\n return DebounceSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=debounce.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/debounce.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js": +/*!************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js ***! + \************************************************************************/ +/*! exports provided: debounceTime */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"debounceTime\", function() { return debounceTime; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n\n\n\nfunction debounceTime(dueTime, scheduler) {\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_2__[\"async\"]; }\n return function (source) { return source.lift(new DebounceTimeOperator(dueTime, scheduler)); };\n}\nvar DebounceTimeOperator = (function () {\n function DebounceTimeOperator(dueTime, scheduler) {\n this.dueTime = dueTime;\n this.scheduler = scheduler;\n }\n DebounceTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler));\n };\n return DebounceTimeOperator;\n}());\nvar DebounceTimeSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(DebounceTimeSubscriber, _super);\n function DebounceTimeSubscriber(destination, dueTime, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.dueTime = dueTime;\n _this.scheduler = scheduler;\n _this.debouncedSubscription = null;\n _this.lastValue = null;\n _this.hasValue = false;\n return _this;\n }\n DebounceTimeSubscriber.prototype._next = function (value) {\n this.clearDebounce();\n this.lastValue = value;\n this.hasValue = true;\n this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this));\n };\n DebounceTimeSubscriber.prototype._complete = function () {\n this.debouncedNext();\n this.destination.complete();\n };\n DebounceTimeSubscriber.prototype.debouncedNext = function () {\n this.clearDebounce();\n if (this.hasValue) {\n var lastValue = this.lastValue;\n this.lastValue = null;\n this.hasValue = false;\n this.destination.next(lastValue);\n }\n };\n DebounceTimeSubscriber.prototype.clearDebounce = function () {\n var debouncedSubscription = this.debouncedSubscription;\n if (debouncedSubscription !== null) {\n this.remove(debouncedSubscription);\n debouncedSubscription.unsubscribe();\n this.debouncedSubscription = null;\n }\n };\n return DebounceTimeSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\nfunction dispatchNext(subscriber) {\n subscriber.debouncedNext();\n}\n//# sourceMappingURL=debounceTime.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js ***! + \**************************************************************************/ +/*! exports provided: defaultIfEmpty */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultIfEmpty\", function() { return defaultIfEmpty; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction defaultIfEmpty(defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n return function (source) { return source.lift(new DefaultIfEmptyOperator(defaultValue)); };\n}\nvar DefaultIfEmptyOperator = (function () {\n function DefaultIfEmptyOperator(defaultValue) {\n this.defaultValue = defaultValue;\n }\n DefaultIfEmptyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));\n };\n return DefaultIfEmptyOperator;\n}());\nvar DefaultIfEmptySubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(DefaultIfEmptySubscriber, _super);\n function DefaultIfEmptySubscriber(destination, defaultValue) {\n var _this = _super.call(this, destination) || this;\n _this.defaultValue = defaultValue;\n _this.isEmpty = true;\n return _this;\n }\n DefaultIfEmptySubscriber.prototype._next = function (value) {\n this.isEmpty = false;\n this.destination.next(value);\n };\n DefaultIfEmptySubscriber.prototype._complete = function () {\n if (this.isEmpty) {\n this.destination.next(this.defaultValue);\n }\n this.destination.complete();\n };\n return DefaultIfEmptySubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=defaultIfEmpty.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/delay.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/delay.js ***! + \*****************************************************************/ +/*! exports provided: delay */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"delay\", function() { return delay; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _util_isDate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isDate */ \"./node_modules/rxjs/dist/esm5/internal/util/isDate.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _Notification__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Notification */ \"./node_modules/rxjs/dist/esm5/internal/Notification.js\");\n\n\n\n\n\nfunction delay(delay, scheduler) {\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__[\"async\"]; }\n var absoluteDelay = Object(_util_isDate__WEBPACK_IMPORTED_MODULE_2__[\"isDate\"])(delay);\n var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);\n return function (source) { return source.lift(new DelayOperator(delayFor, scheduler)); };\n}\nvar DelayOperator = (function () {\n function DelayOperator(delay, scheduler) {\n this.delay = delay;\n this.scheduler = scheduler;\n }\n DelayOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));\n };\n return DelayOperator;\n}());\nvar DelaySubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(DelaySubscriber, _super);\n function DelaySubscriber(destination, delay, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.delay = delay;\n _this.scheduler = scheduler;\n _this.queue = [];\n _this.active = false;\n _this.errored = false;\n return _this;\n }\n DelaySubscriber.dispatch = function (state) {\n var source = state.source;\n var queue = source.queue;\n var scheduler = state.scheduler;\n var destination = state.destination;\n while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {\n queue.shift().notification.observe(destination);\n }\n if (queue.length > 0) {\n var delay_1 = Math.max(0, queue[0].time - scheduler.now());\n this.schedule(state, delay_1);\n }\n else if (source.isStopped) {\n source.destination.complete();\n source.active = false;\n }\n else {\n this.unsubscribe();\n source.active = false;\n }\n };\n DelaySubscriber.prototype._schedule = function (scheduler) {\n this.active = true;\n var destination = this.destination;\n destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {\n source: this, destination: this.destination, scheduler: scheduler\n }));\n };\n DelaySubscriber.prototype.scheduleNotification = function (notification) {\n if (this.errored === true) {\n return;\n }\n var scheduler = this.scheduler;\n var message = new DelayMessage(scheduler.now() + this.delay, notification);\n this.queue.push(message);\n if (this.active === false) {\n this._schedule(scheduler);\n }\n };\n DelaySubscriber.prototype._next = function (value) {\n this.scheduleNotification(_Notification__WEBPACK_IMPORTED_MODULE_4__[\"Notification\"].createNext(value));\n };\n DelaySubscriber.prototype._error = function (err) {\n this.errored = true;\n this.queue = [];\n this.destination.error(err);\n this.unsubscribe();\n };\n DelaySubscriber.prototype._complete = function () {\n if (this.queue.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n return DelaySubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__[\"Subscriber\"]));\nvar DelayMessage = (function () {\n function DelayMessage(time, notification) {\n this.time = time;\n this.notification = notification;\n }\n return DelayMessage;\n}());\n//# sourceMappingURL=delay.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/delay.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/delayWhen.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/delayWhen.js ***! + \*********************************************************************/ +/*! exports provided: delayWhen */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"delayWhen\", function() { return delayWhen; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\n\nfunction delayWhen(delayDurationSelector, subscriptionDelay) {\n if (subscriptionDelay) {\n return function (source) {\n return new SubscriptionDelayObservable(source, subscriptionDelay)\n .lift(new DelayWhenOperator(delayDurationSelector));\n };\n }\n return function (source) { return source.lift(new DelayWhenOperator(delayDurationSelector)); };\n}\nvar DelayWhenOperator = (function () {\n function DelayWhenOperator(delayDurationSelector) {\n this.delayDurationSelector = delayDurationSelector;\n }\n DelayWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector));\n };\n return DelayWhenOperator;\n}());\nvar DelayWhenSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(DelayWhenSubscriber, _super);\n function DelayWhenSubscriber(destination, delayDurationSelector) {\n var _this = _super.call(this, destination) || this;\n _this.delayDurationSelector = delayDurationSelector;\n _this.completed = false;\n _this.delayNotifierSubscriptions = [];\n _this.index = 0;\n return _this;\n }\n DelayWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(outerValue);\n this.removeSubscription(innerSub);\n this.tryComplete();\n };\n DelayWhenSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n DelayWhenSubscriber.prototype.notifyComplete = function (innerSub) {\n var value = this.removeSubscription(innerSub);\n if (value) {\n this.destination.next(value);\n }\n this.tryComplete();\n };\n DelayWhenSubscriber.prototype._next = function (value) {\n var index = this.index++;\n try {\n var delayNotifier = this.delayDurationSelector(value, index);\n if (delayNotifier) {\n this.tryDelay(delayNotifier, value);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n DelayWhenSubscriber.prototype._complete = function () {\n this.completed = true;\n this.tryComplete();\n this.unsubscribe();\n };\n DelayWhenSubscriber.prototype.removeSubscription = function (subscription) {\n subscription.unsubscribe();\n var subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription);\n if (subscriptionIdx !== -1) {\n this.delayNotifierSubscriptions.splice(subscriptionIdx, 1);\n }\n return subscription.outerValue;\n };\n DelayWhenSubscriber.prototype.tryDelay = function (delayNotifier, value) {\n var notifierSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__[\"subscribeToResult\"])(this, delayNotifier, value);\n if (notifierSubscription && !notifierSubscription.closed) {\n var destination = this.destination;\n destination.add(notifierSubscription);\n this.delayNotifierSubscriptions.push(notifierSubscription);\n }\n };\n DelayWhenSubscriber.prototype.tryComplete = function () {\n if (this.completed && this.delayNotifierSubscriptions.length === 0) {\n this.destination.complete();\n }\n };\n return DelayWhenSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__[\"OuterSubscriber\"]));\nvar SubscriptionDelayObservable = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SubscriptionDelayObservable, _super);\n function SubscriptionDelayObservable(source, subscriptionDelay) {\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.subscriptionDelay = subscriptionDelay;\n return _this;\n }\n SubscriptionDelayObservable.prototype._subscribe = function (subscriber) {\n this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source));\n };\n return SubscriptionDelayObservable;\n}(_Observable__WEBPACK_IMPORTED_MODULE_2__[\"Observable\"]));\nvar SubscriptionDelaySubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SubscriptionDelaySubscriber, _super);\n function SubscriptionDelaySubscriber(parent, source) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.source = source;\n _this.sourceSubscribed = false;\n return _this;\n }\n SubscriptionDelaySubscriber.prototype._next = function (unused) {\n this.subscribeToSource();\n };\n SubscriptionDelaySubscriber.prototype._error = function (err) {\n this.unsubscribe();\n this.parent.error(err);\n };\n SubscriptionDelaySubscriber.prototype._complete = function () {\n this.unsubscribe();\n this.subscribeToSource();\n };\n SubscriptionDelaySubscriber.prototype.subscribeToSource = function () {\n if (!this.sourceSubscribed) {\n this.sourceSubscribed = true;\n this.unsubscribe();\n this.source.subscribe(this.parent);\n }\n };\n return SubscriptionDelaySubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=delayWhen.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/delayWhen.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/dematerialize.js": +/*!*************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/dematerialize.js ***! + \*************************************************************************/ +/*! exports provided: dematerialize */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dematerialize\", function() { return dematerialize; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction dematerialize() {\n return function dematerializeOperatorFunction(source) {\n return source.lift(new DeMaterializeOperator());\n };\n}\nvar DeMaterializeOperator = (function () {\n function DeMaterializeOperator() {\n }\n DeMaterializeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DeMaterializeSubscriber(subscriber));\n };\n return DeMaterializeOperator;\n}());\nvar DeMaterializeSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(DeMaterializeSubscriber, _super);\n function DeMaterializeSubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n DeMaterializeSubscriber.prototype._next = function (value) {\n value.observe(this.destination);\n };\n return DeMaterializeSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=dematerialize.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/dematerialize.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/distinct.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/distinct.js ***! + \********************************************************************/ +/*! exports provided: distinct, DistinctSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"distinct\", function() { return distinct; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DistinctSubscriber\", function() { return DistinctSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nfunction distinct(keySelector, flushes) {\n return function (source) { return source.lift(new DistinctOperator(keySelector, flushes)); };\n}\nvar DistinctOperator = (function () {\n function DistinctOperator(keySelector, flushes) {\n this.keySelector = keySelector;\n this.flushes = flushes;\n }\n DistinctOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes));\n };\n return DistinctOperator;\n}());\nvar DistinctSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(DistinctSubscriber, _super);\n function DistinctSubscriber(destination, keySelector, flushes) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.values = new Set();\n if (flushes) {\n _this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(_this, flushes));\n }\n return _this;\n }\n DistinctSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.values.clear();\n };\n DistinctSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n DistinctSubscriber.prototype._next = function (value) {\n if (this.keySelector) {\n this._useKeySelector(value);\n }\n else {\n this._finalizeNext(value, value);\n }\n };\n DistinctSubscriber.prototype._useKeySelector = function (value) {\n var key;\n var destination = this.destination;\n try {\n key = this.keySelector(value);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this._finalizeNext(key, value);\n };\n DistinctSubscriber.prototype._finalizeNext = function (key, value) {\n var values = this.values;\n if (!values.has(key)) {\n values.add(key);\n this.destination.next(value);\n }\n };\n return DistinctSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n\n//# sourceMappingURL=distinct.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/distinct.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js": +/*!********************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js ***! + \********************************************************************************/ +/*! exports provided: distinctUntilChanged */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"distinctUntilChanged\", function() { return distinctUntilChanged; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction distinctUntilChanged(compare, keySelector) {\n return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); };\n}\nvar DistinctUntilChangedOperator = (function () {\n function DistinctUntilChangedOperator(compare, keySelector) {\n this.compare = compare;\n this.keySelector = keySelector;\n }\n DistinctUntilChangedOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));\n };\n return DistinctUntilChangedOperator;\n}());\nvar DistinctUntilChangedSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(DistinctUntilChangedSubscriber, _super);\n function DistinctUntilChangedSubscriber(destination, compare, keySelector) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.hasKey = false;\n if (typeof compare === 'function') {\n _this.compare = compare;\n }\n return _this;\n }\n DistinctUntilChangedSubscriber.prototype.compare = function (x, y) {\n return x === y;\n };\n DistinctUntilChangedSubscriber.prototype._next = function (value) {\n var key;\n try {\n var keySelector = this.keySelector;\n key = keySelector ? keySelector(value) : value;\n }\n catch (err) {\n return this.destination.error(err);\n }\n var result = false;\n if (this.hasKey) {\n try {\n var compare = this.compare;\n result = compare(this.key, key);\n }\n catch (err) {\n return this.destination.error(err);\n }\n }\n else {\n this.hasKey = true;\n }\n if (!result) {\n this.key = key;\n this.destination.next(value);\n }\n };\n return DistinctUntilChangedSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=distinctUntilChanged.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilKeyChanged.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilKeyChanged.js ***! + \***********************************************************************************/ +/*! exports provided: distinctUntilKeyChanged */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"distinctUntilKeyChanged\", function() { return distinctUntilKeyChanged; });\n/* harmony import */ var _distinctUntilChanged__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./distinctUntilChanged */ \"./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js\");\n\nfunction distinctUntilKeyChanged(key, compare) {\n return Object(_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_0__[\"distinctUntilChanged\"])(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; });\n}\n//# sourceMappingURL=distinctUntilKeyChanged.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilKeyChanged.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/elementAt.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/elementAt.js ***! + \*********************************************************************/ +/*! exports provided: elementAt */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"elementAt\", function() { return elementAt; });\n/* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/ArgumentOutOfRangeError */ \"./node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js\");\n/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./filter */ \"./node_modules/rxjs/dist/esm5/internal/operators/filter.js\");\n/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./throwIfEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js\");\n/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./defaultIfEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js\");\n/* harmony import */ var _take__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./take */ \"./node_modules/rxjs/dist/esm5/internal/operators/take.js\");\n\n\n\n\n\nfunction elementAt(index, defaultValue) {\n if (index < 0) {\n throw new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_0__[\"ArgumentOutOfRangeError\"]();\n }\n var hasDefaultValue = arguments.length >= 2;\n return function (source) { return source.pipe(Object(_filter__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(function (v, i) { return i === index; }), Object(_take__WEBPACK_IMPORTED_MODULE_4__[\"take\"])(1), hasDefaultValue\n ? Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__[\"defaultIfEmpty\"])(defaultValue)\n : Object(_throwIfEmpty__WEBPACK_IMPORTED_MODULE_2__[\"throwIfEmpty\"])(function () { return new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_0__[\"ArgumentOutOfRangeError\"](); })); };\n}\n//# sourceMappingURL=elementAt.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/elementAt.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/endWith.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/endWith.js ***! + \*******************************************************************/ +/*! exports provided: endWith */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"endWith\", function() { return endWith; });\n/* harmony import */ var _observable_concat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../observable/concat */ \"./node_modules/rxjs/dist/esm5/internal/observable/concat.js\");\n/* harmony import */ var _observable_of__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../observable/of */ \"./node_modules/rxjs/dist/esm5/internal/observable/of.js\");\n\n\nfunction endWith() {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n return function (source) { return Object(_observable_concat__WEBPACK_IMPORTED_MODULE_0__[\"concat\"])(source, _observable_of__WEBPACK_IMPORTED_MODULE_1__[\"of\"].apply(void 0, values)); };\n}\n//# sourceMappingURL=endWith.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/endWith.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/every.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/every.js ***! + \*****************************************************************/ +/*! exports provided: every */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"every\", function() { return every; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction every(predicate, thisArg) {\n return function (source) { return source.lift(new EveryOperator(predicate, thisArg, source)); };\n}\nvar EveryOperator = (function () {\n function EveryOperator(predicate, thisArg, source) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n this.source = source;\n }\n EveryOperator.prototype.call = function (observer, source) {\n return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source));\n };\n return EveryOperator;\n}());\nvar EverySubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(EverySubscriber, _super);\n function EverySubscriber(destination, predicate, thisArg, source) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.thisArg = thisArg;\n _this.source = source;\n _this.index = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n EverySubscriber.prototype.notifyComplete = function (everyValueMatch) {\n this.destination.next(everyValueMatch);\n this.destination.complete();\n };\n EverySubscriber.prototype._next = function (value) {\n var result = false;\n try {\n result = this.predicate.call(this.thisArg, value, this.index++, this.source);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (!result) {\n this.notifyComplete(false);\n }\n };\n EverySubscriber.prototype._complete = function () {\n this.notifyComplete(true);\n };\n return EverySubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=every.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/every.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/exhaust.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/exhaust.js ***! + \*******************************************************************/ +/*! exports provided: exhaust */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"exhaust\", function() { return exhaust; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nfunction exhaust() {\n return function (source) { return source.lift(new SwitchFirstOperator()); };\n}\nvar SwitchFirstOperator = (function () {\n function SwitchFirstOperator() {\n }\n SwitchFirstOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchFirstSubscriber(subscriber));\n };\n return SwitchFirstOperator;\n}());\nvar SwitchFirstSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SwitchFirstSubscriber, _super);\n function SwitchFirstSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.hasCompleted = false;\n _this.hasSubscription = false;\n return _this;\n }\n SwitchFirstSubscriber.prototype._next = function (value) {\n if (!this.hasSubscription) {\n this.hasSubscription = true;\n this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(this, value));\n }\n };\n SwitchFirstSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (!this.hasSubscription) {\n this.destination.complete();\n }\n };\n SwitchFirstSubscriber.prototype.notifyComplete = function (innerSub) {\n this.remove(innerSub);\n this.hasSubscription = false;\n if (this.hasCompleted) {\n this.destination.complete();\n }\n };\n return SwitchFirstSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=exhaust.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/exhaust.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/exhaustMap.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/exhaustMap.js ***! + \**********************************************************************/ +/*! exports provided: exhaustMap */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"exhaustMap\", function() { return exhaustMap; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../InnerSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../observable/from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n\n\n\n\n\n\nfunction exhaustMap(project, resultSelector) {\n if (resultSelector) {\n return function (source) { return source.pipe(exhaustMap(function (a, i) { return Object(_observable_from__WEBPACK_IMPORTED_MODULE_5__[\"from\"])(project(a, i)).pipe(Object(_map__WEBPACK_IMPORTED_MODULE_4__[\"map\"])(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };\n }\n return function (source) {\n return source.lift(new ExhaustMapOperator(project));\n };\n}\nvar ExhaustMapOperator = (function () {\n function ExhaustMapOperator(project) {\n this.project = project;\n }\n ExhaustMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project));\n };\n return ExhaustMapOperator;\n}());\nvar ExhaustMapSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ExhaustMapSubscriber, _super);\n function ExhaustMapSubscriber(destination, project) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.hasSubscription = false;\n _this.hasCompleted = false;\n _this.index = 0;\n return _this;\n }\n ExhaustMapSubscriber.prototype._next = function (value) {\n if (!this.hasSubscription) {\n this.tryNext(value);\n }\n };\n ExhaustMapSubscriber.prototype.tryNext = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.hasSubscription = true;\n this._innerSub(result, value, index);\n };\n ExhaustMapSubscriber.prototype._innerSub = function (result, value, index) {\n var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"InnerSubscriber\"](this, value, index);\n var destination = this.destination;\n destination.add(innerSubscriber);\n var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToResult\"])(this, result, undefined, undefined, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n };\n ExhaustMapSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (!this.hasSubscription) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n ExhaustMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n ExhaustMapSubscriber.prototype.notifyError = function (err) {\n this.destination.error(err);\n };\n ExhaustMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var destination = this.destination;\n destination.remove(innerSub);\n this.hasSubscription = false;\n if (this.hasCompleted) {\n this.destination.complete();\n }\n };\n return ExhaustMapSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=exhaustMap.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/exhaustMap.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/expand.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/expand.js ***! + \******************************************************************/ +/*! exports provided: expand, ExpandOperator, ExpandSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"expand\", function() { return expand; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ExpandOperator\", function() { return ExpandOperator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ExpandSubscriber\", function() { return ExpandSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nfunction expand(project, concurrent, scheduler) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent;\n return function (source) { return source.lift(new ExpandOperator(project, concurrent, scheduler)); };\n}\nvar ExpandOperator = (function () {\n function ExpandOperator(project, concurrent, scheduler) {\n this.project = project;\n this.concurrent = concurrent;\n this.scheduler = scheduler;\n }\n ExpandOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler));\n };\n return ExpandOperator;\n}());\n\nvar ExpandSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ExpandSubscriber, _super);\n function ExpandSubscriber(destination, project, concurrent, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.concurrent = concurrent;\n _this.scheduler = scheduler;\n _this.index = 0;\n _this.active = 0;\n _this.hasCompleted = false;\n if (concurrent < Number.POSITIVE_INFINITY) {\n _this.buffer = [];\n }\n return _this;\n }\n ExpandSubscriber.dispatch = function (arg) {\n var subscriber = arg.subscriber, result = arg.result, value = arg.value, index = arg.index;\n subscriber.subscribeToProjection(result, value, index);\n };\n ExpandSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n if (destination.closed) {\n this._complete();\n return;\n }\n var index = this.index++;\n if (this.active < this.concurrent) {\n destination.next(value);\n try {\n var project = this.project;\n var result = project(value, index);\n if (!this.scheduler) {\n this.subscribeToProjection(result, value, index);\n }\n else {\n var state = { subscriber: this, result: result, value: value, index: index };\n var destination_1 = this.destination;\n destination_1.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state));\n }\n }\n catch (e) {\n destination.error(e);\n }\n }\n else {\n this.buffer.push(value);\n }\n };\n ExpandSubscriber.prototype.subscribeToProjection = function (result, value, index) {\n this.active++;\n var destination = this.destination;\n destination.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(this, result, value, index));\n };\n ExpandSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.hasCompleted && this.active === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n ExpandSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this._next(innerValue);\n };\n ExpandSubscriber.prototype.notifyComplete = function (innerSub) {\n var buffer = this.buffer;\n var destination = this.destination;\n destination.remove(innerSub);\n this.active--;\n if (buffer && buffer.length > 0) {\n this._next(buffer.shift());\n }\n if (this.hasCompleted && this.active === 0) {\n this.destination.complete();\n }\n };\n return ExpandSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n\n//# sourceMappingURL=expand.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/expand.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/filter.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/filter.js ***! + \******************************************************************/ +/*! exports provided: filter */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"filter\", function() { return filter; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\nvar FilterOperator = (function () {\n function FilterOperator(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n FilterOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n };\n return FilterOperator;\n}());\nvar FilterSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(FilterSubscriber, _super);\n function FilterSubscriber(destination, predicate, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.thisArg = thisArg;\n _this.count = 0;\n return _this;\n }\n FilterSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n };\n return FilterSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=filter.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/filter.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/finalize.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/finalize.js ***! + \********************************************************************/ +/*! exports provided: finalize */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"finalize\", function() { return finalize; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n\n\n\nfunction finalize(callback) {\n return function (source) { return source.lift(new FinallyOperator(callback)); };\n}\nvar FinallyOperator = (function () {\n function FinallyOperator(callback) {\n this.callback = callback;\n }\n FinallyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FinallySubscriber(subscriber, this.callback));\n };\n return FinallyOperator;\n}());\nvar FinallySubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(FinallySubscriber, _super);\n function FinallySubscriber(destination, callback) {\n var _this = _super.call(this, destination) || this;\n _this.add(new _Subscription__WEBPACK_IMPORTED_MODULE_2__[\"Subscription\"](callback));\n return _this;\n }\n return FinallySubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=finalize.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/finalize.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/find.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/find.js ***! + \****************************************************************/ +/*! exports provided: find, FindValueOperator, FindValueSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"find\", function() { return find; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FindValueOperator\", function() { return FindValueOperator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FindValueSubscriber\", function() { return FindValueSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction find(predicate, thisArg) {\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate is not a function');\n }\n return function (source) { return source.lift(new FindValueOperator(predicate, source, false, thisArg)); };\n}\nvar FindValueOperator = (function () {\n function FindValueOperator(predicate, source, yieldIndex, thisArg) {\n this.predicate = predicate;\n this.source = source;\n this.yieldIndex = yieldIndex;\n this.thisArg = thisArg;\n }\n FindValueOperator.prototype.call = function (observer, source) {\n return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg));\n };\n return FindValueOperator;\n}());\n\nvar FindValueSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(FindValueSubscriber, _super);\n function FindValueSubscriber(destination, predicate, source, yieldIndex, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.source = source;\n _this.yieldIndex = yieldIndex;\n _this.thisArg = thisArg;\n _this.index = 0;\n return _this;\n }\n FindValueSubscriber.prototype.notifyComplete = function (value) {\n var destination = this.destination;\n destination.next(value);\n destination.complete();\n this.unsubscribe();\n };\n FindValueSubscriber.prototype._next = function (value) {\n var _a = this, predicate = _a.predicate, thisArg = _a.thisArg;\n var index = this.index++;\n try {\n var result = predicate.call(thisArg || this, value, index, this.source);\n if (result) {\n this.notifyComplete(this.yieldIndex ? index : value);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n FindValueSubscriber.prototype._complete = function () {\n this.notifyComplete(this.yieldIndex ? -1 : undefined);\n };\n return FindValueSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n\n//# sourceMappingURL=find.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/find.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/findIndex.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/findIndex.js ***! + \*********************************************************************/ +/*! exports provided: findIndex */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"findIndex\", function() { return findIndex; });\n/* harmony import */ var _operators_find__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../operators/find */ \"./node_modules/rxjs/dist/esm5/internal/operators/find.js\");\n\nfunction findIndex(predicate, thisArg) {\n return function (source) { return source.lift(new _operators_find__WEBPACK_IMPORTED_MODULE_0__[\"FindValueOperator\"](predicate, source, true, thisArg)); };\n}\n//# sourceMappingURL=findIndex.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/findIndex.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/first.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/first.js ***! + \*****************************************************************/ +/*! exports provided: first */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"first\", function() { return first; });\n/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/EmptyError */ \"./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js\");\n/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./filter */ \"./node_modules/rxjs/dist/esm5/internal/operators/filter.js\");\n/* harmony import */ var _take__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./take */ \"./node_modules/rxjs/dist/esm5/internal/operators/take.js\");\n/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./defaultIfEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js\");\n/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./throwIfEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js\");\n/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/identity */ \"./node_modules/rxjs/dist/esm5/internal/util/identity.js\");\n\n\n\n\n\n\nfunction first(predicate, defaultValue) {\n var hasDefaultValue = arguments.length >= 2;\n return function (source) { return source.pipe(predicate ? Object(_filter__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(function (v, i) { return predicate(v, i, source); }) : _util_identity__WEBPACK_IMPORTED_MODULE_5__[\"identity\"], Object(_take__WEBPACK_IMPORTED_MODULE_2__[\"take\"])(1), hasDefaultValue ? Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__[\"defaultIfEmpty\"])(defaultValue) : Object(_throwIfEmpty__WEBPACK_IMPORTED_MODULE_4__[\"throwIfEmpty\"])(function () { return new _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__[\"EmptyError\"](); })); };\n}\n//# sourceMappingURL=first.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/first.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/groupBy.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/groupBy.js ***! + \*******************************************************************/ +/*! exports provided: groupBy, GroupedObservable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"groupBy\", function() { return groupBy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GroupedObservable\", function() { return GroupedObservable; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n\n\n\n\n\nfunction groupBy(keySelector, elementSelector, durationSelector, subjectSelector) {\n return function (source) {\n return source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector));\n };\n}\nvar GroupByOperator = (function () {\n function GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector) {\n this.keySelector = keySelector;\n this.elementSelector = elementSelector;\n this.durationSelector = durationSelector;\n this.subjectSelector = subjectSelector;\n }\n GroupByOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector));\n };\n return GroupByOperator;\n}());\nvar GroupBySubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(GroupBySubscriber, _super);\n function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.elementSelector = elementSelector;\n _this.durationSelector = durationSelector;\n _this.subjectSelector = subjectSelector;\n _this.groups = null;\n _this.attemptedToUnsubscribe = false;\n _this.count = 0;\n return _this;\n }\n GroupBySubscriber.prototype._next = function (value) {\n var key;\n try {\n key = this.keySelector(value);\n }\n catch (err) {\n this.error(err);\n return;\n }\n this._group(value, key);\n };\n GroupBySubscriber.prototype._group = function (value, key) {\n var groups = this.groups;\n if (!groups) {\n groups = this.groups = new Map();\n }\n var group = groups.get(key);\n var element;\n if (this.elementSelector) {\n try {\n element = this.elementSelector(value);\n }\n catch (err) {\n this.error(err);\n }\n }\n else {\n element = value;\n }\n if (!group) {\n group = (this.subjectSelector ? this.subjectSelector() : new _Subject__WEBPACK_IMPORTED_MODULE_4__[\"Subject\"]());\n groups.set(key, group);\n var groupedObservable = new GroupedObservable(key, group, this);\n this.destination.next(groupedObservable);\n if (this.durationSelector) {\n var duration = void 0;\n try {\n duration = this.durationSelector(new GroupedObservable(key, group));\n }\n catch (err) {\n this.error(err);\n return;\n }\n this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this)));\n }\n }\n if (!group.closed) {\n group.next(element);\n }\n };\n GroupBySubscriber.prototype._error = function (err) {\n var groups = this.groups;\n if (groups) {\n groups.forEach(function (group, key) {\n group.error(err);\n });\n groups.clear();\n }\n this.destination.error(err);\n };\n GroupBySubscriber.prototype._complete = function () {\n var groups = this.groups;\n if (groups) {\n groups.forEach(function (group, key) {\n group.complete();\n });\n groups.clear();\n }\n this.destination.complete();\n };\n GroupBySubscriber.prototype.removeGroup = function (key) {\n this.groups.delete(key);\n };\n GroupBySubscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.attemptedToUnsubscribe = true;\n if (this.count === 0) {\n _super.prototype.unsubscribe.call(this);\n }\n }\n };\n return GroupBySubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\nvar GroupDurationSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(GroupDurationSubscriber, _super);\n function GroupDurationSubscriber(key, group, parent) {\n var _this = _super.call(this, group) || this;\n _this.key = key;\n _this.group = group;\n _this.parent = parent;\n return _this;\n }\n GroupDurationSubscriber.prototype._next = function (value) {\n this.complete();\n };\n GroupDurationSubscriber.prototype._unsubscribe = function () {\n var _a = this, parent = _a.parent, key = _a.key;\n this.key = this.parent = null;\n if (parent) {\n parent.removeGroup(key);\n }\n };\n return GroupDurationSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\nvar GroupedObservable = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(GroupedObservable, _super);\n function GroupedObservable(key, groupSubject, refCountSubscription) {\n var _this = _super.call(this) || this;\n _this.key = key;\n _this.groupSubject = groupSubject;\n _this.refCountSubscription = refCountSubscription;\n return _this;\n }\n GroupedObservable.prototype._subscribe = function (subscriber) {\n var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_2__[\"Subscription\"]();\n var _a = this, refCountSubscription = _a.refCountSubscription, groupSubject = _a.groupSubject;\n if (refCountSubscription && !refCountSubscription.closed) {\n subscription.add(new InnerRefCountSubscription(refCountSubscription));\n }\n subscription.add(groupSubject.subscribe(subscriber));\n return subscription;\n };\n return GroupedObservable;\n}(_Observable__WEBPACK_IMPORTED_MODULE_3__[\"Observable\"]));\n\nvar InnerRefCountSubscription = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(InnerRefCountSubscription, _super);\n function InnerRefCountSubscription(parent) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n parent.count++;\n return _this;\n }\n InnerRefCountSubscription.prototype.unsubscribe = function () {\n var parent = this.parent;\n if (!parent.closed && !this.closed) {\n _super.prototype.unsubscribe.call(this);\n parent.count -= 1;\n if (parent.count === 0 && parent.attemptedToUnsubscribe) {\n parent.unsubscribe();\n }\n }\n };\n return InnerRefCountSubscription;\n}(_Subscription__WEBPACK_IMPORTED_MODULE_2__[\"Subscription\"]));\n//# sourceMappingURL=groupBy.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/groupBy.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/ignoreElements.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/ignoreElements.js ***! + \**************************************************************************/ +/*! exports provided: ignoreElements */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ignoreElements\", function() { return ignoreElements; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction ignoreElements() {\n return function ignoreElementsOperatorFunction(source) {\n return source.lift(new IgnoreElementsOperator());\n };\n}\nvar IgnoreElementsOperator = (function () {\n function IgnoreElementsOperator() {\n }\n IgnoreElementsOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new IgnoreElementsSubscriber(subscriber));\n };\n return IgnoreElementsOperator;\n}());\nvar IgnoreElementsSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(IgnoreElementsSubscriber, _super);\n function IgnoreElementsSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n IgnoreElementsSubscriber.prototype._next = function (unused) {\n };\n return IgnoreElementsSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=ignoreElements.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/ignoreElements.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/isEmpty.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/isEmpty.js ***! + \*******************************************************************/ +/*! exports provided: isEmpty */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isEmpty\", function() { return isEmpty; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction isEmpty() {\n return function (source) { return source.lift(new IsEmptyOperator()); };\n}\nvar IsEmptyOperator = (function () {\n function IsEmptyOperator() {\n }\n IsEmptyOperator.prototype.call = function (observer, source) {\n return source.subscribe(new IsEmptySubscriber(observer));\n };\n return IsEmptyOperator;\n}());\nvar IsEmptySubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(IsEmptySubscriber, _super);\n function IsEmptySubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n IsEmptySubscriber.prototype.notifyComplete = function (isEmpty) {\n var destination = this.destination;\n destination.next(isEmpty);\n destination.complete();\n };\n IsEmptySubscriber.prototype._next = function (value) {\n this.notifyComplete(false);\n };\n IsEmptySubscriber.prototype._complete = function () {\n this.notifyComplete(true);\n };\n return IsEmptySubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=isEmpty.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/isEmpty.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/last.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/last.js ***! + \****************************************************************/ +/*! exports provided: last */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"last\", function() { return last; });\n/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/EmptyError */ \"./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js\");\n/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./filter */ \"./node_modules/rxjs/dist/esm5/internal/operators/filter.js\");\n/* harmony import */ var _takeLast__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./takeLast */ \"./node_modules/rxjs/dist/esm5/internal/operators/takeLast.js\");\n/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./throwIfEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js\");\n/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./defaultIfEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js\");\n/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/identity */ \"./node_modules/rxjs/dist/esm5/internal/util/identity.js\");\n\n\n\n\n\n\nfunction last(predicate, defaultValue) {\n var hasDefaultValue = arguments.length >= 2;\n return function (source) { return source.pipe(predicate ? Object(_filter__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(function (v, i) { return predicate(v, i, source); }) : _util_identity__WEBPACK_IMPORTED_MODULE_5__[\"identity\"], Object(_takeLast__WEBPACK_IMPORTED_MODULE_2__[\"takeLast\"])(1), hasDefaultValue ? Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_4__[\"defaultIfEmpty\"])(defaultValue) : Object(_throwIfEmpty__WEBPACK_IMPORTED_MODULE_3__[\"throwIfEmpty\"])(function () { return new _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__[\"EmptyError\"](); })); };\n}\n//# sourceMappingURL=last.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/last.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/map.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/map.js ***! + \***************************************************************/ +/*! exports provided: map, MapOperator */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"map\", function() { return map; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MapOperator\", function() { return MapOperator; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nvar MapOperator = (function () {\n function MapOperator(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n MapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n };\n return MapOperator;\n}());\n\nvar MapSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(MapSubscriber, _super);\n function MapSubscriber(destination, project, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.count = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n MapSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return MapSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=map.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/map.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/mapTo.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/mapTo.js ***! + \*****************************************************************/ +/*! exports provided: mapTo */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mapTo\", function() { return mapTo; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction mapTo(value) {\n return function (source) { return source.lift(new MapToOperator(value)); };\n}\nvar MapToOperator = (function () {\n function MapToOperator(value) {\n this.value = value;\n }\n MapToOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapToSubscriber(subscriber, this.value));\n };\n return MapToOperator;\n}());\nvar MapToSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(MapToSubscriber, _super);\n function MapToSubscriber(destination, value) {\n var _this = _super.call(this, destination) || this;\n _this.value = value;\n return _this;\n }\n MapToSubscriber.prototype._next = function (x) {\n this.destination.next(this.value);\n };\n return MapToSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=mapTo.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mapTo.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/materialize.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/materialize.js ***! + \***********************************************************************/ +/*! exports provided: materialize */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"materialize\", function() { return materialize; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _Notification__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Notification */ \"./node_modules/rxjs/dist/esm5/internal/Notification.js\");\n\n\n\nfunction materialize() {\n return function materializeOperatorFunction(source) {\n return source.lift(new MaterializeOperator());\n };\n}\nvar MaterializeOperator = (function () {\n function MaterializeOperator() {\n }\n MaterializeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MaterializeSubscriber(subscriber));\n };\n return MaterializeOperator;\n}());\nvar MaterializeSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(MaterializeSubscriber, _super);\n function MaterializeSubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n MaterializeSubscriber.prototype._next = function (value) {\n this.destination.next(_Notification__WEBPACK_IMPORTED_MODULE_2__[\"Notification\"].createNext(value));\n };\n MaterializeSubscriber.prototype._error = function (err) {\n var destination = this.destination;\n destination.next(_Notification__WEBPACK_IMPORTED_MODULE_2__[\"Notification\"].createError(err));\n destination.complete();\n };\n MaterializeSubscriber.prototype._complete = function () {\n var destination = this.destination;\n destination.next(_Notification__WEBPACK_IMPORTED_MODULE_2__[\"Notification\"].createComplete());\n destination.complete();\n };\n return MaterializeSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=materialize.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/materialize.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/max.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/max.js ***! + \***************************************************************/ +/*! exports provided: max */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"max\", function() { return max; });\n/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reduce */ \"./node_modules/rxjs/dist/esm5/internal/operators/reduce.js\");\n\nfunction max(comparer) {\n var max = (typeof comparer === 'function')\n ? function (x, y) { return comparer(x, y) > 0 ? x : y; }\n : function (x, y) { return x > y ? x : y; };\n return Object(_reduce__WEBPACK_IMPORTED_MODULE_0__[\"reduce\"])(max);\n}\n//# sourceMappingURL=max.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/max.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js ***! + \********************************************************************/ +/*! exports provided: mergeAll */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeAll\", function() { return mergeAll; });\n/* harmony import */ var _mergeMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mergeMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js\");\n/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/identity */ \"./node_modules/rxjs/dist/esm5/internal/util/identity.js\");\n\n\nfunction mergeAll(concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__[\"mergeMap\"])(_util_identity__WEBPACK_IMPORTED_MODULE_1__[\"identity\"], concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js ***! + \********************************************************************/ +/*! exports provided: mergeMap, MergeMapOperator, MergeMapSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeMap\", function() { return mergeMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MergeMapOperator\", function() { return MergeMapOperator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MergeMapSubscriber\", function() { return MergeMapSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../InnerSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js\");\n/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../observable/from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n\n\n\n\n\n\nfunction mergeMap(project, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(mergeMap(function (a, i) { return Object(_observable_from__WEBPACK_IMPORTED_MODULE_5__[\"from\"])(project(a, i)).pipe(Object(_map__WEBPACK_IMPORTED_MODULE_4__[\"map\"])(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); };\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); };\n}\nvar MergeMapOperator = (function () {\n function MergeMapOperator(project, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n this.project = project;\n this.concurrent = concurrent;\n }\n MergeMapOperator.prototype.call = function (observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n };\n return MergeMapOperator;\n}());\n\nvar MergeMapSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(MergeMapSubscriber, _super);\n function MergeMapSubscriber(destination, project, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.concurrent = concurrent;\n _this.hasCompleted = false;\n _this.buffer = [];\n _this.active = 0;\n _this.index = 0;\n return _this;\n }\n MergeMapSubscriber.prototype._next = function (value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n }\n else {\n this.buffer.push(value);\n }\n };\n MergeMapSubscriber.prototype._tryNext = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result, value, index);\n };\n MergeMapSubscriber.prototype._innerSub = function (ish, value, index) {\n var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_3__[\"InnerSubscriber\"](this, value, index);\n var destination = this.destination;\n destination.add(innerSubscriber);\n var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__[\"subscribeToResult\"])(this, ish, undefined, undefined, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n };\n MergeMapSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n MergeMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var buffer = this.buffer;\n this.remove(innerSub);\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n };\n return MergeMapSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"OuterSubscriber\"]));\n\n//# sourceMappingURL=mergeMap.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/mergeMapTo.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/mergeMapTo.js ***! + \**********************************************************************/ +/*! exports provided: mergeMapTo */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeMapTo\", function() { return mergeMapTo; });\n/* harmony import */ var _mergeMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mergeMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js\");\n\nfunction mergeMapTo(innerObservable, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n if (typeof resultSelector === 'function') {\n return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__[\"mergeMap\"])(function () { return innerObservable; }, resultSelector, concurrent);\n }\n if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__[\"mergeMap\"])(function () { return innerObservable; }, concurrent);\n}\n//# sourceMappingURL=mergeMapTo.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mergeMapTo.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/mergeScan.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/mergeScan.js ***! + \*********************************************************************/ +/*! exports provided: mergeScan, MergeScanOperator, MergeScanSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeScan\", function() { return mergeScan; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MergeScanOperator\", function() { return MergeScanOperator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MergeScanSubscriber\", function() { return MergeScanSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../InnerSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js\");\n\n\n\n\nfunction mergeScan(accumulator, seed, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n return function (source) { return source.lift(new MergeScanOperator(accumulator, seed, concurrent)); };\n}\nvar MergeScanOperator = (function () {\n function MergeScanOperator(accumulator, seed, concurrent) {\n this.accumulator = accumulator;\n this.seed = seed;\n this.concurrent = concurrent;\n }\n MergeScanOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MergeScanSubscriber(subscriber, this.accumulator, this.seed, this.concurrent));\n };\n return MergeScanOperator;\n}());\n\nvar MergeScanSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(MergeScanSubscriber, _super);\n function MergeScanSubscriber(destination, accumulator, acc, concurrent) {\n var _this = _super.call(this, destination) || this;\n _this.accumulator = accumulator;\n _this.acc = acc;\n _this.concurrent = concurrent;\n _this.hasValue = false;\n _this.hasCompleted = false;\n _this.buffer = [];\n _this.active = 0;\n _this.index = 0;\n return _this;\n }\n MergeScanSubscriber.prototype._next = function (value) {\n if (this.active < this.concurrent) {\n var index = this.index++;\n var destination = this.destination;\n var ish = void 0;\n try {\n var accumulator = this.accumulator;\n ish = accumulator(this.acc, value, index);\n }\n catch (e) {\n return destination.error(e);\n }\n this.active++;\n this._innerSub(ish, value, index);\n }\n else {\n this.buffer.push(value);\n }\n };\n MergeScanSubscriber.prototype._innerSub = function (ish, value, index) {\n var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_3__[\"InnerSubscriber\"](this, value, index);\n var destination = this.destination;\n destination.add(innerSubscriber);\n var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__[\"subscribeToResult\"])(this, ish, undefined, undefined, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n };\n MergeScanSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n if (this.hasValue === false) {\n this.destination.next(this.acc);\n }\n this.destination.complete();\n }\n this.unsubscribe();\n };\n MergeScanSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var destination = this.destination;\n this.acc = innerValue;\n this.hasValue = true;\n destination.next(innerValue);\n };\n MergeScanSubscriber.prototype.notifyComplete = function (innerSub) {\n var buffer = this.buffer;\n var destination = this.destination;\n destination.remove(innerSub);\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n if (this.hasValue === false) {\n this.destination.next(this.acc);\n }\n this.destination.complete();\n }\n };\n return MergeScanSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"OuterSubscriber\"]));\n\n//# sourceMappingURL=mergeScan.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mergeScan.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/mergeWith.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/mergeWith.js ***! + \*********************************************************************/ +/*! exports provided: merge, mergeWith */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"merge\", function() { return merge; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeWith\", function() { return mergeWith; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _observable_merge__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../observable/merge */ \"./node_modules/rxjs/dist/esm5/internal/observable/merge.js\");\n\n\nfunction merge() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function (source) { return source.lift.call(_observable_merge__WEBPACK_IMPORTED_MODULE_1__[\"merge\"].apply(void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])([source], observables)), undefined); };\n}\nfunction mergeWith() {\n var otherSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n otherSources[_i] = arguments[_i];\n }\n return merge.apply(void 0, otherSources);\n}\n//# sourceMappingURL=mergeWith.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mergeWith.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/min.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/min.js ***! + \***************************************************************/ +/*! exports provided: min */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"min\", function() { return min; });\n/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reduce */ \"./node_modules/rxjs/dist/esm5/internal/operators/reduce.js\");\n\nfunction min(comparer) {\n var min = (typeof comparer === 'function')\n ? function (x, y) { return comparer(x, y) < 0 ? x : y; }\n : function (x, y) { return x < y ? x : y; };\n return Object(_reduce__WEBPACK_IMPORTED_MODULE_0__[\"reduce\"])(min);\n}\n//# sourceMappingURL=min.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/min.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/multicast.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/multicast.js ***! + \*********************************************************************/ +/*! exports provided: multicast, MulticastOperator */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"multicast\", function() { return multicast; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MulticastOperator\", function() { return MulticastOperator; });\n/* harmony import */ var _observable_ConnectableObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../observable/ConnectableObservable */ \"./node_modules/rxjs/dist/esm5/internal/observable/ConnectableObservable.js\");\n\nfunction multicast(subjectOrSubjectFactory, selector) {\n return function multicastOperatorFunction(source) {\n var subjectFactory;\n if (typeof subjectOrSubjectFactory === 'function') {\n subjectFactory = subjectOrSubjectFactory;\n }\n else {\n subjectFactory = function subjectFactory() {\n return subjectOrSubjectFactory;\n };\n }\n if (typeof selector === 'function') {\n return source.lift(new MulticastOperator(subjectFactory, selector));\n }\n var connectable = Object.create(source, _observable_ConnectableObservable__WEBPACK_IMPORTED_MODULE_0__[\"connectableObservableDescriptor\"]);\n connectable.source = source;\n connectable.subjectFactory = subjectFactory;\n return connectable;\n };\n}\nvar MulticastOperator = (function () {\n function MulticastOperator(subjectFactory, selector) {\n this.subjectFactory = subjectFactory;\n this.selector = selector;\n }\n MulticastOperator.prototype.call = function (subscriber, source) {\n var selector = this.selector;\n var subject = this.subjectFactory();\n var subscription = selector(subject).subscribe(subscriber);\n subscription.add(source.subscribe(subject));\n return subscription;\n };\n return MulticastOperator;\n}());\n\n//# sourceMappingURL=multicast.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/multicast.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/observeOn.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/observeOn.js ***! + \*********************************************************************/ +/*! exports provided: observeOn, ObserveOnOperator, ObserveOnSubscriber, ObserveOnMessage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observeOn\", function() { return observeOn; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObserveOnOperator\", function() { return ObserveOnOperator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObserveOnSubscriber\", function() { return ObserveOnSubscriber; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObserveOnMessage\", function() { return ObserveOnMessage; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _Notification__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Notification */ \"./node_modules/rxjs/dist/esm5/internal/Notification.js\");\n\n\n\nfunction observeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return function observeOnOperatorFunction(source) {\n return source.lift(new ObserveOnOperator(scheduler, delay));\n };\n}\nvar ObserveOnOperator = (function () {\n function ObserveOnOperator(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n this.scheduler = scheduler;\n this.delay = delay;\n }\n ObserveOnOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n };\n return ObserveOnOperator;\n}());\n\nvar ObserveOnSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ObserveOnSubscriber, _super);\n function ObserveOnSubscriber(destination, scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n var _this = _super.call(this, destination) || this;\n _this.scheduler = scheduler;\n _this.delay = delay;\n return _this;\n }\n ObserveOnSubscriber.dispatch = function (arg) {\n var notification = arg.notification, destination = arg.destination;\n notification.observe(destination);\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype.scheduleMessage = function (notification) {\n var destination = this.destination;\n destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));\n };\n ObserveOnSubscriber.prototype._next = function (value) {\n this.scheduleMessage(_Notification__WEBPACK_IMPORTED_MODULE_2__[\"Notification\"].createNext(value));\n };\n ObserveOnSubscriber.prototype._error = function (err) {\n this.scheduleMessage(_Notification__WEBPACK_IMPORTED_MODULE_2__[\"Notification\"].createError(err));\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype._complete = function () {\n this.scheduleMessage(_Notification__WEBPACK_IMPORTED_MODULE_2__[\"Notification\"].createComplete());\n this.unsubscribe();\n };\n return ObserveOnSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n\nvar ObserveOnMessage = (function () {\n function ObserveOnMessage(notification, destination) {\n this.notification = notification;\n this.destination = destination;\n }\n return ObserveOnMessage;\n}());\n\n//# sourceMappingURL=observeOn.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/observeOn.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/onErrorResumeNext.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/onErrorResumeNext.js ***! + \*****************************************************************************/ +/*! exports provided: onErrorResumeNext, onErrorResumeNextStatic */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onErrorResumeNext\", function() { return onErrorResumeNext; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onErrorResumeNextStatic\", function() { return onErrorResumeNextStatic; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../observable/from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../InnerSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\n\n\nfunction onErrorResumeNext() {\n var nextSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nextSources[_i] = arguments[_i];\n }\n if (nextSources.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__[\"isArray\"])(nextSources[0])) {\n nextSources = nextSources[0];\n }\n return function (source) { return source.lift(new OnErrorResumeNextOperator(nextSources)); };\n}\nfunction onErrorResumeNextStatic() {\n var nextSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nextSources[_i] = arguments[_i];\n }\n var source = null;\n if (nextSources.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__[\"isArray\"])(nextSources[0])) {\n nextSources = nextSources[0];\n }\n source = nextSources.shift();\n return Object(_observable_from__WEBPACK_IMPORTED_MODULE_1__[\"from\"])(source, null).lift(new OnErrorResumeNextOperator(nextSources));\n}\nvar OnErrorResumeNextOperator = (function () {\n function OnErrorResumeNextOperator(nextSources) {\n this.nextSources = nextSources;\n }\n OnErrorResumeNextOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources));\n };\n return OnErrorResumeNextOperator;\n}());\nvar OnErrorResumeNextSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(OnErrorResumeNextSubscriber, _super);\n function OnErrorResumeNextSubscriber(destination, nextSources) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.nextSources = nextSources;\n return _this;\n }\n OnErrorResumeNextSubscriber.prototype.notifyError = function (error, innerSub) {\n this.subscribeToNextSource();\n };\n OnErrorResumeNextSubscriber.prototype.notifyComplete = function (innerSub) {\n this.subscribeToNextSource();\n };\n OnErrorResumeNextSubscriber.prototype._error = function (err) {\n this.subscribeToNextSource();\n this.unsubscribe();\n };\n OnErrorResumeNextSubscriber.prototype._complete = function () {\n this.subscribeToNextSource();\n this.unsubscribe();\n };\n OnErrorResumeNextSubscriber.prototype.subscribeToNextSource = function () {\n var next = this.nextSources.shift();\n if (!!next) {\n var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_4__[\"InnerSubscriber\"](this, undefined, undefined);\n var destination = this.destination;\n destination.add(innerSubscriber);\n var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__[\"subscribeToResult\"])(this, next, undefined, undefined, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n }\n else {\n this.destination.complete();\n }\n };\n return OnErrorResumeNextSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__[\"OuterSubscriber\"]));\n//# sourceMappingURL=onErrorResumeNext.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/onErrorResumeNext.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/pairwise.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/pairwise.js ***! + \********************************************************************/ +/*! exports provided: pairwise */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pairwise\", function() { return pairwise; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction pairwise() {\n return function (source) { return source.lift(new PairwiseOperator()); };\n}\nvar PairwiseOperator = (function () {\n function PairwiseOperator() {\n }\n PairwiseOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new PairwiseSubscriber(subscriber));\n };\n return PairwiseOperator;\n}());\nvar PairwiseSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(PairwiseSubscriber, _super);\n function PairwiseSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.hasPrev = false;\n return _this;\n }\n PairwiseSubscriber.prototype._next = function (value) {\n var pair;\n if (this.hasPrev) {\n pair = [this.prev, value];\n }\n else {\n this.hasPrev = true;\n }\n this.prev = value;\n if (pair) {\n this.destination.next(pair);\n }\n };\n return PairwiseSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=pairwise.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/pairwise.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/partition.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/partition.js ***! + \*********************************************************************/ +/*! exports provided: partition */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"partition\", function() { return partition; });\n/* harmony import */ var _util_not__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/not */ \"./node_modules/rxjs/dist/esm5/internal/util/not.js\");\n/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./filter */ \"./node_modules/rxjs/dist/esm5/internal/operators/filter.js\");\n\n\nfunction partition(predicate, thisArg) {\n return function (source) { return [\n Object(_filter__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(predicate, thisArg)(source),\n Object(_filter__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(Object(_util_not__WEBPACK_IMPORTED_MODULE_0__[\"not\"])(predicate, thisArg))(source)\n ]; };\n}\n//# sourceMappingURL=partition.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/partition.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/pluck.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/pluck.js ***! + \*****************************************************************/ +/*! exports provided: pluck */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pluck\", function() { return pluck; });\n/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n\nfunction pluck() {\n var properties = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n properties[_i] = arguments[_i];\n }\n var length = properties.length;\n if (length === 0) {\n throw new Error('list of properties cannot be empty.');\n }\n return Object(_map__WEBPACK_IMPORTED_MODULE_0__[\"map\"])(function (x) {\n var currentProp = x;\n for (var i = 0; i < length; i++) {\n var p = currentProp[properties[i]];\n if (typeof p !== 'undefined') {\n currentProp = p;\n }\n else {\n return undefined;\n }\n }\n return currentProp;\n });\n}\n//# sourceMappingURL=pluck.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/pluck.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/publish.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/publish.js ***! + \*******************************************************************/ +/*! exports provided: publish */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"publish\", function() { return publish; });\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./multicast */ \"./node_modules/rxjs/dist/esm5/internal/operators/multicast.js\");\n\n\nfunction publish(selector) {\n return selector ?\n Object(_multicast__WEBPACK_IMPORTED_MODULE_1__[\"multicast\"])(function () { return new _Subject__WEBPACK_IMPORTED_MODULE_0__[\"Subject\"](); }, selector) :\n Object(_multicast__WEBPACK_IMPORTED_MODULE_1__[\"multicast\"])(new _Subject__WEBPACK_IMPORTED_MODULE_0__[\"Subject\"]());\n}\n//# sourceMappingURL=publish.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/publish.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/publishBehavior.js": +/*!***************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/publishBehavior.js ***! + \***************************************************************************/ +/*! exports provided: publishBehavior */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"publishBehavior\", function() { return publishBehavior; });\n/* harmony import */ var _BehaviorSubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../BehaviorSubject */ \"./node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js\");\n/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./multicast */ \"./node_modules/rxjs/dist/esm5/internal/operators/multicast.js\");\n\n\nfunction publishBehavior(value) {\n return function (source) { return Object(_multicast__WEBPACK_IMPORTED_MODULE_1__[\"multicast\"])(new _BehaviorSubject__WEBPACK_IMPORTED_MODULE_0__[\"BehaviorSubject\"](value))(source); };\n}\n//# sourceMappingURL=publishBehavior.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/publishBehavior.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/publishLast.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/publishLast.js ***! + \***********************************************************************/ +/*! exports provided: publishLast */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"publishLast\", function() { return publishLast; });\n/* harmony import */ var _AsyncSubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../AsyncSubject */ \"./node_modules/rxjs/dist/esm5/internal/AsyncSubject.js\");\n/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./multicast */ \"./node_modules/rxjs/dist/esm5/internal/operators/multicast.js\");\n\n\nfunction publishLast() {\n return function (source) { return Object(_multicast__WEBPACK_IMPORTED_MODULE_1__[\"multicast\"])(new _AsyncSubject__WEBPACK_IMPORTED_MODULE_0__[\"AsyncSubject\"]())(source); };\n}\n//# sourceMappingURL=publishLast.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/publishLast.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/publishReplay.js": +/*!*************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/publishReplay.js ***! + \*************************************************************************/ +/*! exports provided: publishReplay */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"publishReplay\", function() { return publishReplay; });\n/* harmony import */ var _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ReplaySubject */ \"./node_modules/rxjs/dist/esm5/internal/ReplaySubject.js\");\n/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./multicast */ \"./node_modules/rxjs/dist/esm5/internal/operators/multicast.js\");\n\n\nfunction publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) {\n if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') {\n scheduler = selectorOrScheduler;\n }\n var selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined;\n var subject = new _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__[\"ReplaySubject\"](bufferSize, windowTime, scheduler);\n return function (source) { return Object(_multicast__WEBPACK_IMPORTED_MODULE_1__[\"multicast\"])(function () { return subject; }, selector)(source); };\n}\n//# sourceMappingURL=publishReplay.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/publishReplay.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/race.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/race.js ***! + \****************************************************************/ +/*! exports provided: race */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"race\", function() { return race; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _observable_race__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../observable/race */ \"./node_modules/rxjs/dist/esm5/internal/observable/race.js\");\n\n\n\nfunction race() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function raceOperatorFunction(source) {\n if (observables.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__[\"isArray\"])(observables[0])) {\n observables = observables[0];\n }\n return source.lift.call(_observable_race__WEBPACK_IMPORTED_MODULE_2__[\"race\"].apply(void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])([source], observables)), undefined);\n };\n}\n//# sourceMappingURL=race.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/race.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/reduce.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/reduce.js ***! + \******************************************************************/ +/*! exports provided: reduce */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reduce\", function() { return reduce; });\n/* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./scan */ \"./node_modules/rxjs/dist/esm5/internal/operators/scan.js\");\n/* harmony import */ var _takeLast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./takeLast */ \"./node_modules/rxjs/dist/esm5/internal/operators/takeLast.js\");\n/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./defaultIfEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js\");\n/* harmony import */ var _util_pipe__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/pipe */ \"./node_modules/rxjs/dist/esm5/internal/util/pipe.js\");\n\n\n\n\nfunction reduce(accumulator, seed) {\n if (arguments.length >= 2) {\n return function reduceOperatorFunctionWithSeed(source) {\n return Object(_util_pipe__WEBPACK_IMPORTED_MODULE_3__[\"pipe\"])(Object(_scan__WEBPACK_IMPORTED_MODULE_0__[\"scan\"])(accumulator, seed), Object(_takeLast__WEBPACK_IMPORTED_MODULE_1__[\"takeLast\"])(1), Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_2__[\"defaultIfEmpty\"])(seed))(source);\n };\n }\n return function reduceOperatorFunction(source) {\n return Object(_util_pipe__WEBPACK_IMPORTED_MODULE_3__[\"pipe\"])(Object(_scan__WEBPACK_IMPORTED_MODULE_0__[\"scan\"])(function (acc, value, index) { return accumulator(acc, value, index + 1); }), Object(_takeLast__WEBPACK_IMPORTED_MODULE_1__[\"takeLast\"])(1))(source);\n };\n}\n//# sourceMappingURL=reduce.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/reduce.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/refCount.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/refCount.js ***! + \********************************************************************/ +/*! exports provided: refCount */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"refCount\", function() { return refCount; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction refCount() {\n return function refCountOperatorFunction(source) {\n return source.lift(new RefCountOperator(source));\n };\n}\nvar RefCountOperator = (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n _this.connection = null;\n return _this;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=refCount.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/refCount.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/repeat.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/repeat.js ***! + \******************************************************************/ +/*! exports provided: repeat */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"repeat\", function() { return repeat; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../observable/empty */ \"./node_modules/rxjs/dist/esm5/internal/observable/empty.js\");\n\n\n\nfunction repeat(count) {\n if (count === void 0) { count = -1; }\n return function (source) {\n if (count === 0) {\n return _observable_empty__WEBPACK_IMPORTED_MODULE_2__[\"EMPTY\"];\n }\n else if (count < 0) {\n return source.lift(new RepeatOperator(-1, source));\n }\n else {\n return source.lift(new RepeatOperator(count - 1, source));\n }\n };\n}\nvar RepeatOperator = (function () {\n function RepeatOperator(count, source) {\n this.count = count;\n this.source = source;\n }\n RepeatOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source));\n };\n return RepeatOperator;\n}());\nvar RepeatSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(RepeatSubscriber, _super);\n function RepeatSubscriber(destination, count, source) {\n var _this = _super.call(this, destination) || this;\n _this.count = count;\n _this.source = source;\n return _this;\n }\n RepeatSubscriber.prototype.complete = function () {\n if (!this.isStopped) {\n var _a = this, source = _a.source, count = _a.count;\n if (count === 0) {\n return _super.prototype.complete.call(this);\n }\n else if (count > -1) {\n this.count = count - 1;\n }\n source.subscribe(this._unsubscribeAndRecycle());\n }\n };\n return RepeatSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=repeat.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/repeat.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/repeatWhen.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/repeatWhen.js ***! + \**********************************************************************/ +/*! exports provided: repeatWhen */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"repeatWhen\", function() { return repeatWhen; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\nfunction repeatWhen(notifier) {\n return function (source) { return source.lift(new RepeatWhenOperator(notifier)); };\n}\nvar RepeatWhenOperator = (function () {\n function RepeatWhenOperator(notifier) {\n this.notifier = notifier;\n }\n RepeatWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source));\n };\n return RepeatWhenOperator;\n}());\nvar RepeatWhenSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(RepeatWhenSubscriber, _super);\n function RepeatWhenSubscriber(destination, notifier, source) {\n var _this = _super.call(this, destination) || this;\n _this.notifier = notifier;\n _this.source = source;\n _this.notifications = null;\n _this.retries = null;\n _this.retriesSubscription = null;\n _this.sourceIsBeingSubscribedTo = true;\n return _this;\n }\n RepeatWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.sourceIsBeingSubscribedTo = true;\n this.source.subscribe(this);\n };\n RepeatWhenSubscriber.prototype.notifyComplete = function (innerSub) {\n if (this.sourceIsBeingSubscribedTo === false) {\n return _super.prototype.complete.call(this);\n }\n };\n RepeatWhenSubscriber.prototype.complete = function () {\n this.sourceIsBeingSubscribedTo = false;\n if (!this.isStopped) {\n if (!this.retries) {\n this.subscribeToRetries();\n }\n if (!this.retriesSubscription || this.retriesSubscription.closed) {\n return _super.prototype.complete.call(this);\n }\n this._unsubscribeAndRecycle();\n this.notifications.next();\n }\n };\n RepeatWhenSubscriber.prototype._unsubscribe = function () {\n var _a = this, notifications = _a.notifications, retriesSubscription = _a.retriesSubscription;\n if (notifications) {\n notifications.unsubscribe();\n this.notifications = null;\n }\n if (retriesSubscription) {\n retriesSubscription.unsubscribe();\n this.retriesSubscription = null;\n }\n this.retries = null;\n };\n RepeatWhenSubscriber.prototype._unsubscribeAndRecycle = function () {\n var _unsubscribe = this._unsubscribe;\n this._unsubscribe = null;\n _super.prototype._unsubscribeAndRecycle.call(this);\n this._unsubscribe = _unsubscribe;\n return this;\n };\n RepeatWhenSubscriber.prototype.subscribeToRetries = function () {\n this.notifications = new _Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]();\n var retries;\n try {\n var notifier = this.notifier;\n retries = notifier(this.notifications);\n }\n catch (e) {\n return _super.prototype.complete.call(this);\n }\n this.retries = retries;\n this.retriesSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToResult\"])(this, retries);\n };\n return RepeatWhenSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"OuterSubscriber\"]));\n//# sourceMappingURL=repeatWhen.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/repeatWhen.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/retry.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/retry.js ***! + \*****************************************************************/ +/*! exports provided: retry */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"retry\", function() { return retry; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction retry(configOrCount) {\n if (configOrCount === void 0) { configOrCount = -1; }\n var config;\n if (configOrCount && typeof configOrCount === 'object') {\n config = configOrCount;\n }\n else {\n config = {\n count: configOrCount\n };\n }\n return function (source) { return source.lift(new RetryOperator(config.count, !!config.resetOnSuccess, source)); };\n}\nvar RetryOperator = (function () {\n function RetryOperator(count, resetOnSuccess, source) {\n this.count = count;\n this.resetOnSuccess = resetOnSuccess;\n this.source = source;\n }\n RetryOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RetrySubscriber(subscriber, this.count, this.resetOnSuccess, this.source));\n };\n return RetryOperator;\n}());\nvar RetrySubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(RetrySubscriber, _super);\n function RetrySubscriber(destination, count, resetOnSuccess, source) {\n var _this = _super.call(this, destination) || this;\n _this.count = count;\n _this.resetOnSuccess = resetOnSuccess;\n _this.source = source;\n _this.initialCount = _this.count;\n return _this;\n }\n RetrySubscriber.prototype.next = function (value) {\n _super.prototype.next.call(this, value);\n if (this.resetOnSuccess) {\n this.count = this.initialCount;\n }\n };\n RetrySubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _a = this, source = _a.source, count = _a.count;\n if (count === 0) {\n return _super.prototype.error.call(this, err);\n }\n else if (count > -1) {\n this.count = count - 1;\n }\n source.subscribe(this._unsubscribeAndRecycle());\n }\n };\n return RetrySubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=retry.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/retry.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/retryWhen.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/retryWhen.js ***! + \*********************************************************************/ +/*! exports provided: retryWhen */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"retryWhen\", function() { return retryWhen; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\nfunction retryWhen(notifier) {\n return function (source) { return source.lift(new RetryWhenOperator(notifier, source)); };\n}\nvar RetryWhenOperator = (function () {\n function RetryWhenOperator(notifier, source) {\n this.notifier = notifier;\n this.source = source;\n }\n RetryWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source));\n };\n return RetryWhenOperator;\n}());\nvar RetryWhenSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(RetryWhenSubscriber, _super);\n function RetryWhenSubscriber(destination, notifier, source) {\n var _this = _super.call(this, destination) || this;\n _this.notifier = notifier;\n _this.source = source;\n _this.errors = null;\n _this.retries = null;\n _this.retriesSubscription = null;\n return _this;\n }\n RetryWhenSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var errors = this.errors;\n var retries = this.retries;\n var retriesSubscription = this.retriesSubscription;\n if (!retries) {\n errors = new _Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]();\n try {\n var notifier = this.notifier;\n retries = notifier(errors);\n }\n catch (e) {\n return _super.prototype.error.call(this, e);\n }\n retriesSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToResult\"])(this, retries);\n }\n else {\n this.errors = null;\n this.retriesSubscription = null;\n }\n this._unsubscribeAndRecycle();\n this.errors = errors;\n this.retries = retries;\n this.retriesSubscription = retriesSubscription;\n errors.next(err);\n }\n };\n RetryWhenSubscriber.prototype._unsubscribe = function () {\n var _a = this, errors = _a.errors, retriesSubscription = _a.retriesSubscription;\n if (errors) {\n errors.unsubscribe();\n this.errors = null;\n }\n if (retriesSubscription) {\n retriesSubscription.unsubscribe();\n this.retriesSubscription = null;\n }\n this.retries = null;\n };\n RetryWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var _unsubscribe = this._unsubscribe;\n this._unsubscribe = null;\n this._unsubscribeAndRecycle();\n this._unsubscribe = _unsubscribe;\n this.source.subscribe(this);\n };\n return RetryWhenSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"OuterSubscriber\"]));\n//# sourceMappingURL=retryWhen.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/retryWhen.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/sample.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/sample.js ***! + \******************************************************************/ +/*! exports provided: sample */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sample\", function() { return sample; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nfunction sample(notifier) {\n return function (source) { return source.lift(new SampleOperator(notifier)); };\n}\nvar SampleOperator = (function () {\n function SampleOperator(notifier) {\n this.notifier = notifier;\n }\n SampleOperator.prototype.call = function (subscriber, source) {\n var sampleSubscriber = new SampleSubscriber(subscriber);\n var subscription = source.subscribe(sampleSubscriber);\n subscription.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(sampleSubscriber, this.notifier));\n return subscription;\n };\n return SampleOperator;\n}());\nvar SampleSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SampleSubscriber, _super);\n function SampleSubscriber() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.hasValue = false;\n return _this;\n }\n SampleSubscriber.prototype._next = function (value) {\n this.value = value;\n this.hasValue = true;\n };\n SampleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.emitValue();\n };\n SampleSubscriber.prototype.notifyComplete = function () {\n this.emitValue();\n };\n SampleSubscriber.prototype.emitValue = function () {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.value);\n }\n };\n return SampleSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=sample.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/sample.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/sampleTime.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/sampleTime.js ***! + \**********************************************************************/ +/*! exports provided: sampleTime */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sampleTime\", function() { return sampleTime; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n\n\n\nfunction sampleTime(period, scheduler) {\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_2__[\"async\"]; }\n return function (source) { return source.lift(new SampleTimeOperator(period, scheduler)); };\n}\nvar SampleTimeOperator = (function () {\n function SampleTimeOperator(period, scheduler) {\n this.period = period;\n this.scheduler = scheduler;\n }\n SampleTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler));\n };\n return SampleTimeOperator;\n}());\nvar SampleTimeSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SampleTimeSubscriber, _super);\n function SampleTimeSubscriber(destination, period, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.period = period;\n _this.scheduler = scheduler;\n _this.hasValue = false;\n _this.add(scheduler.schedule(dispatchNotification, period, { subscriber: _this, period: period }));\n return _this;\n }\n SampleTimeSubscriber.prototype._next = function (value) {\n this.lastValue = value;\n this.hasValue = true;\n };\n SampleTimeSubscriber.prototype.notifyNext = function () {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.lastValue);\n }\n };\n return SampleTimeSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\nfunction dispatchNotification(state) {\n var subscriber = state.subscriber, period = state.period;\n subscriber.notifyNext();\n this.schedule(state, period);\n}\n//# sourceMappingURL=sampleTime.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/sampleTime.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/scan.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/scan.js ***! + \****************************************************************/ +/*! exports provided: scan */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scan\", function() { return scan; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction scan(accumulator, seed) {\n var hasSeed = false;\n if (arguments.length >= 2) {\n hasSeed = true;\n }\n return function scanOperatorFunction(source) {\n return source.lift(new ScanOperator(accumulator, seed, hasSeed));\n };\n}\nvar ScanOperator = (function () {\n function ScanOperator(accumulator, seed, hasSeed) {\n if (hasSeed === void 0) { hasSeed = false; }\n this.accumulator = accumulator;\n this.seed = seed;\n this.hasSeed = hasSeed;\n }\n ScanOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));\n };\n return ScanOperator;\n}());\nvar ScanSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ScanSubscriber, _super);\n function ScanSubscriber(destination, accumulator, _state, _hasState) {\n var _this = _super.call(this, destination) || this;\n _this.accumulator = accumulator;\n _this._state = _state;\n _this._hasState = _hasState;\n _this.index = 0;\n return _this;\n }\n ScanSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n if (!this._hasState) {\n this._state = value;\n this._hasState = true;\n destination.next(value);\n }\n else {\n var index = this.index++;\n var result = void 0;\n try {\n result = this.accumulator(this._state, value, index);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this._state = result;\n destination.next(result);\n }\n };\n return ScanSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=scan.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/scan.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/sequenceEqual.js": +/*!*************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/sequenceEqual.js ***! + \*************************************************************************/ +/*! exports provided: sequenceEqual, SequenceEqualOperator, SequenceEqualSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sequenceEqual\", function() { return sequenceEqual; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SequenceEqualOperator\", function() { return SequenceEqualOperator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SequenceEqualSubscriber\", function() { return SequenceEqualSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction sequenceEqual(compareTo, comparator) {\n return function (source) { return source.lift(new SequenceEqualOperator(compareTo, comparator)); };\n}\nvar SequenceEqualOperator = (function () {\n function SequenceEqualOperator(compareTo, comparator) {\n this.compareTo = compareTo;\n this.comparator = comparator;\n }\n SequenceEqualOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparator));\n };\n return SequenceEqualOperator;\n}());\n\nvar SequenceEqualSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SequenceEqualSubscriber, _super);\n function SequenceEqualSubscriber(destination, compareTo, comparator) {\n var _this = _super.call(this, destination) || this;\n _this.compareTo = compareTo;\n _this.comparator = comparator;\n _this._a = [];\n _this._b = [];\n _this._oneComplete = false;\n _this.destination.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this)));\n return _this;\n }\n SequenceEqualSubscriber.prototype._next = function (value) {\n if (this._oneComplete && this._b.length === 0) {\n this.emit(false);\n }\n else {\n this._a.push(value);\n this.checkValues();\n }\n };\n SequenceEqualSubscriber.prototype._complete = function () {\n if (this._oneComplete) {\n this.emit(this._a.length === 0 && this._b.length === 0);\n }\n else {\n this._oneComplete = true;\n }\n this.unsubscribe();\n };\n SequenceEqualSubscriber.prototype.checkValues = function () {\n var _c = this, _a = _c._a, _b = _c._b, comparator = _c.comparator;\n while (_a.length > 0 && _b.length > 0) {\n var a = _a.shift();\n var b = _b.shift();\n var areEqual = false;\n try {\n areEqual = comparator ? comparator(a, b) : a === b;\n }\n catch (e) {\n this.destination.error(e);\n }\n if (!areEqual) {\n this.emit(false);\n }\n }\n };\n SequenceEqualSubscriber.prototype.emit = function (value) {\n var destination = this.destination;\n destination.next(value);\n destination.complete();\n };\n SequenceEqualSubscriber.prototype.nextB = function (value) {\n if (this._oneComplete && this._a.length === 0) {\n this.emit(false);\n }\n else {\n this._b.push(value);\n this.checkValues();\n }\n };\n SequenceEqualSubscriber.prototype.completeB = function () {\n if (this._oneComplete) {\n this.emit(this._a.length === 0 && this._b.length === 0);\n }\n else {\n this._oneComplete = true;\n }\n };\n return SequenceEqualSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n\nvar SequenceEqualCompareToSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SequenceEqualCompareToSubscriber, _super);\n function SequenceEqualCompareToSubscriber(destination, parent) {\n var _this = _super.call(this, destination) || this;\n _this.parent = parent;\n return _this;\n }\n SequenceEqualCompareToSubscriber.prototype._next = function (value) {\n this.parent.nextB(value);\n };\n SequenceEqualCompareToSubscriber.prototype._error = function (err) {\n this.parent.error(err);\n this.unsubscribe();\n };\n SequenceEqualCompareToSubscriber.prototype._complete = function () {\n this.parent.completeB();\n this.unsubscribe();\n };\n return SequenceEqualCompareToSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=sequenceEqual.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/sequenceEqual.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/share.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/share.js ***! + \*****************************************************************/ +/*! exports provided: share */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"share\", function() { return share; });\n/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./multicast */ \"./node_modules/rxjs/dist/esm5/internal/operators/multicast.js\");\n/* harmony import */ var _refCount__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./refCount */ \"./node_modules/rxjs/dist/esm5/internal/operators/refCount.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n\n\n\nfunction shareSubjectFactory() {\n return new _Subject__WEBPACK_IMPORTED_MODULE_2__[\"Subject\"]();\n}\nfunction share() {\n return function (source) { return Object(_refCount__WEBPACK_IMPORTED_MODULE_1__[\"refCount\"])()(Object(_multicast__WEBPACK_IMPORTED_MODULE_0__[\"multicast\"])(shareSubjectFactory)(source)); };\n}\n//# sourceMappingURL=share.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/share.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/shareReplay.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/shareReplay.js ***! + \***********************************************************************/ +/*! exports provided: shareReplay */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"shareReplay\", function() { return shareReplay; });\n/* harmony import */ var _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ReplaySubject */ \"./node_modules/rxjs/dist/esm5/internal/ReplaySubject.js\");\n\nfunction shareReplay(configOrBufferSize, windowTime, scheduler) {\n var config;\n if (configOrBufferSize && typeof configOrBufferSize === 'object') {\n config = configOrBufferSize;\n }\n else {\n config = {\n bufferSize: configOrBufferSize,\n windowTime: windowTime,\n refCount: false,\n scheduler: scheduler\n };\n }\n return function (source) { return source.lift(shareReplayOperator(config)); };\n}\nfunction shareReplayOperator(_a) {\n var _b = _a.bufferSize, bufferSize = _b === void 0 ? Number.POSITIVE_INFINITY : _b, _c = _a.windowTime, windowTime = _c === void 0 ? Number.POSITIVE_INFINITY : _c, useRefCount = _a.refCount, scheduler = _a.scheduler;\n var subject;\n var refCount = 0;\n var subscription;\n var hasError = false;\n var isComplete = false;\n return function shareReplayOperation(source) {\n refCount++;\n if (!subject || hasError) {\n hasError = false;\n subject = new _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__[\"ReplaySubject\"](bufferSize, windowTime, scheduler);\n subscription = source.subscribe({\n next: function (value) { subject.next(value); },\n error: function (err) {\n hasError = true;\n subject.error(err);\n },\n complete: function () {\n isComplete = true;\n subscription = undefined;\n subject.complete();\n },\n });\n }\n var innerSub = subject.subscribe(this);\n this.add(function () {\n refCount--;\n innerSub.unsubscribe();\n if (subscription && !isComplete && useRefCount && refCount === 0) {\n subscription.unsubscribe();\n subscription = undefined;\n subject = undefined;\n }\n });\n };\n}\n//# sourceMappingURL=shareReplay.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/shareReplay.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/single.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/single.js ***! + \******************************************************************/ +/*! exports provided: single */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"single\", function() { return single; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/EmptyError */ \"./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js\");\n\n\n\nfunction single(predicate) {\n return function (source) { return source.lift(new SingleOperator(predicate, source)); };\n}\nvar SingleOperator = (function () {\n function SingleOperator(predicate, source) {\n this.predicate = predicate;\n this.source = source;\n }\n SingleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source));\n };\n return SingleOperator;\n}());\nvar SingleSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SingleSubscriber, _super);\n function SingleSubscriber(destination, predicate, source) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.source = source;\n _this.seenValue = false;\n _this.index = 0;\n return _this;\n }\n SingleSubscriber.prototype.applySingleValue = function (value) {\n if (this.seenValue) {\n this.destination.error('Sequence contains more than one element');\n }\n else {\n this.seenValue = true;\n this.singleValue = value;\n }\n };\n SingleSubscriber.prototype._next = function (value) {\n var index = this.index++;\n if (this.predicate) {\n this.tryNext(value, index);\n }\n else {\n this.applySingleValue(value);\n }\n };\n SingleSubscriber.prototype.tryNext = function (value, index) {\n try {\n if (this.predicate(value, index, this.source)) {\n this.applySingleValue(value);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n SingleSubscriber.prototype._complete = function () {\n var destination = this.destination;\n if (this.index > 0) {\n destination.next(this.seenValue ? this.singleValue : undefined);\n destination.complete();\n }\n else {\n destination.error(new _util_EmptyError__WEBPACK_IMPORTED_MODULE_2__[\"EmptyError\"]);\n }\n };\n return SingleSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=single.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/single.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/skip.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/skip.js ***! + \****************************************************************/ +/*! exports provided: skip */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"skip\", function() { return skip; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction skip(count) {\n return function (source) { return source.lift(new SkipOperator(count)); };\n}\nvar SkipOperator = (function () {\n function SkipOperator(total) {\n this.total = total;\n }\n SkipOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SkipSubscriber(subscriber, this.total));\n };\n return SkipOperator;\n}());\nvar SkipSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SkipSubscriber, _super);\n function SkipSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n SkipSubscriber.prototype._next = function (x) {\n if (++this.count > this.total) {\n this.destination.next(x);\n }\n };\n return SkipSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=skip.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/skip.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/skipLast.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/skipLast.js ***! + \********************************************************************/ +/*! exports provided: skipLast */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"skipLast\", function() { return skipLast; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/ArgumentOutOfRangeError */ \"./node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js\");\n\n\n\nfunction skipLast(count) {\n return function (source) { return source.lift(new SkipLastOperator(count)); };\n}\nvar SkipLastOperator = (function () {\n function SkipLastOperator(_skipCount) {\n this._skipCount = _skipCount;\n if (this._skipCount < 0) {\n throw new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__[\"ArgumentOutOfRangeError\"];\n }\n }\n SkipLastOperator.prototype.call = function (subscriber, source) {\n if (this._skipCount === 0) {\n return source.subscribe(new _Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"](subscriber));\n }\n else {\n return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount));\n }\n };\n return SkipLastOperator;\n}());\nvar SkipLastSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SkipLastSubscriber, _super);\n function SkipLastSubscriber(destination, _skipCount) {\n var _this = _super.call(this, destination) || this;\n _this._skipCount = _skipCount;\n _this._count = 0;\n _this._ring = new Array(_skipCount);\n return _this;\n }\n SkipLastSubscriber.prototype._next = function (value) {\n var skipCount = this._skipCount;\n var count = this._count++;\n if (count < skipCount) {\n this._ring[count] = value;\n }\n else {\n var currentIndex = count % skipCount;\n var ring = this._ring;\n var oldValue = ring[currentIndex];\n ring[currentIndex] = value;\n this.destination.next(oldValue);\n }\n };\n return SkipLastSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=skipLast.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/skipLast.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/skipUntil.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/skipUntil.js ***! + \*********************************************************************/ +/*! exports provided: skipUntil */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"skipUntil\", function() { return skipUntil; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../InnerSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\nfunction skipUntil(notifier) {\n return function (source) { return source.lift(new SkipUntilOperator(notifier)); };\n}\nvar SkipUntilOperator = (function () {\n function SkipUntilOperator(notifier) {\n this.notifier = notifier;\n }\n SkipUntilOperator.prototype.call = function (destination, source) {\n return source.subscribe(new SkipUntilSubscriber(destination, this.notifier));\n };\n return SkipUntilOperator;\n}());\nvar SkipUntilSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SkipUntilSubscriber, _super);\n function SkipUntilSubscriber(destination, notifier) {\n var _this = _super.call(this, destination) || this;\n _this.hasValue = false;\n var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"InnerSubscriber\"](_this, undefined, undefined);\n _this.add(innerSubscriber);\n _this.innerSubscription = innerSubscriber;\n var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToResult\"])(_this, notifier, undefined, undefined, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n _this.add(innerSubscription);\n _this.innerSubscription = innerSubscription;\n }\n return _this;\n }\n SkipUntilSubscriber.prototype._next = function (value) {\n if (this.hasValue) {\n _super.prototype._next.call(this, value);\n }\n };\n SkipUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.hasValue = true;\n if (this.innerSubscription) {\n this.innerSubscription.unsubscribe();\n }\n };\n SkipUntilSubscriber.prototype.notifyComplete = function () {\n };\n return SkipUntilSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=skipUntil.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/skipUntil.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/skipWhile.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/skipWhile.js ***! + \*********************************************************************/ +/*! exports provided: skipWhile */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"skipWhile\", function() { return skipWhile; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction skipWhile(predicate) {\n return function (source) { return source.lift(new SkipWhileOperator(predicate)); };\n}\nvar SkipWhileOperator = (function () {\n function SkipWhileOperator(predicate) {\n this.predicate = predicate;\n }\n SkipWhileOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate));\n };\n return SkipWhileOperator;\n}());\nvar SkipWhileSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SkipWhileSubscriber, _super);\n function SkipWhileSubscriber(destination, predicate) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.skipping = true;\n _this.index = 0;\n return _this;\n }\n SkipWhileSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n if (this.skipping) {\n this.tryCallPredicate(value);\n }\n if (!this.skipping) {\n destination.next(value);\n }\n };\n SkipWhileSubscriber.prototype.tryCallPredicate = function (value) {\n try {\n var result = this.predicate(value, this.index++);\n this.skipping = Boolean(result);\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n return SkipWhileSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=skipWhile.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/skipWhile.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/startWith.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/startWith.js ***! + \*********************************************************************/ +/*! exports provided: startWith */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"startWith\", function() { return startWith; });\n/* harmony import */ var _observable_concat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../observable/concat */ \"./node_modules/rxjs/dist/esm5/internal/observable/concat.js\");\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n\n\nfunction startWith() {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n var scheduler = values[values.length - 1];\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_1__[\"isScheduler\"])(scheduler)) {\n values.pop();\n return function (source) { return Object(_observable_concat__WEBPACK_IMPORTED_MODULE_0__[\"concat\"])(values, source, scheduler); };\n }\n else {\n return function (source) { return Object(_observable_concat__WEBPACK_IMPORTED_MODULE_0__[\"concat\"])(values, source); };\n }\n}\n//# sourceMappingURL=startWith.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/startWith.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js ***! + \***********************************************************************/ +/*! exports provided: subscribeOn */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subscribeOn\", function() { return subscribeOn; });\n/* harmony import */ var _observable_SubscribeOnObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../observable/SubscribeOnObservable */ \"./node_modules/rxjs/dist/esm5/internal/observable/SubscribeOnObservable.js\");\n\nfunction subscribeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return function subscribeOnOperatorFunction(source) {\n return source.lift(new SubscribeOnOperator(scheduler, delay));\n };\n}\nvar SubscribeOnOperator = (function () {\n function SubscribeOnOperator(scheduler, delay) {\n this.scheduler = scheduler;\n this.delay = delay;\n }\n SubscribeOnOperator.prototype.call = function (subscriber, source) {\n return new _observable_SubscribeOnObservable__WEBPACK_IMPORTED_MODULE_0__[\"SubscribeOnObservable\"](source, this.delay, this.scheduler).subscribe(subscriber);\n };\n return SubscribeOnOperator;\n}());\n//# sourceMappingURL=subscribeOn.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/switchAll.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/switchAll.js ***! + \*********************************************************************/ +/*! exports provided: switchAll */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"switchAll\", function() { return switchAll; });\n/* harmony import */ var _switchMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./switchMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js\");\n/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/identity */ \"./node_modules/rxjs/dist/esm5/internal/util/identity.js\");\n\n\nfunction switchAll() {\n return Object(_switchMap__WEBPACK_IMPORTED_MODULE_0__[\"switchMap\"])(_util_identity__WEBPACK_IMPORTED_MODULE_1__[\"identity\"]);\n}\n//# sourceMappingURL=switchAll.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/switchAll.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js ***! + \*********************************************************************/ +/*! exports provided: switchMap */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"switchMap\", function() { return switchMap; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../InnerSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../observable/from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n\n\n\n\n\n\nfunction switchMap(project, resultSelector) {\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(switchMap(function (a, i) { return Object(_observable_from__WEBPACK_IMPORTED_MODULE_5__[\"from\"])(project(a, i)).pipe(Object(_map__WEBPACK_IMPORTED_MODULE_4__[\"map\"])(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };\n }\n return function (source) { return source.lift(new SwitchMapOperator(project)); };\n}\nvar SwitchMapOperator = (function () {\n function SwitchMapOperator(project) {\n this.project = project;\n }\n SwitchMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));\n };\n return SwitchMapOperator;\n}());\nvar SwitchMapSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SwitchMapSubscriber, _super);\n function SwitchMapSubscriber(destination, project) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.index = 0;\n return _this;\n }\n SwitchMapSubscriber.prototype._next = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (error) {\n this.destination.error(error);\n return;\n }\n this._innerSub(result, value, index);\n };\n SwitchMapSubscriber.prototype._innerSub = function (result, value, index) {\n var innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"InnerSubscriber\"](this, value, index);\n var destination = this.destination;\n destination.add(innerSubscriber);\n this.innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToResult\"])(this, result, undefined, undefined, innerSubscriber);\n if (this.innerSubscription !== innerSubscriber) {\n destination.add(this.innerSubscription);\n }\n };\n SwitchMapSubscriber.prototype._complete = function () {\n var innerSubscription = this.innerSubscription;\n if (!innerSubscription || innerSubscription.closed) {\n _super.prototype._complete.call(this);\n }\n this.unsubscribe();\n };\n SwitchMapSubscriber.prototype._unsubscribe = function () {\n this.innerSubscription = null;\n };\n SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var destination = this.destination;\n destination.remove(innerSub);\n this.innerSubscription = null;\n if (this.isStopped) {\n _super.prototype._complete.call(this);\n }\n };\n SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n return SwitchMapSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=switchMap.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/switchMapTo.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/switchMapTo.js ***! + \***********************************************************************/ +/*! exports provided: switchMapTo */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"switchMapTo\", function() { return switchMapTo; });\n/* harmony import */ var _switchMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./switchMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js\");\n\nfunction switchMapTo(innerObservable, resultSelector) {\n return resultSelector ? Object(_switchMap__WEBPACK_IMPORTED_MODULE_0__[\"switchMap\"])(function () { return innerObservable; }, resultSelector) : Object(_switchMap__WEBPACK_IMPORTED_MODULE_0__[\"switchMap\"])(function () { return innerObservable; });\n}\n//# sourceMappingURL=switchMapTo.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/switchMapTo.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/take.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/take.js ***! + \****************************************************************/ +/*! exports provided: take */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"take\", function() { return take; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/ArgumentOutOfRangeError */ \"./node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js\");\n/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../observable/empty */ \"./node_modules/rxjs/dist/esm5/internal/observable/empty.js\");\n\n\n\n\nfunction take(count) {\n return function (source) {\n if (count === 0) {\n return _observable_empty__WEBPACK_IMPORTED_MODULE_3__[\"EMPTY\"];\n }\n else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\nvar TakeOperator = (function () {\n function TakeOperator(total) {\n this.total = total;\n if (this.total < 0) {\n throw new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__[\"ArgumentOutOfRangeError\"];\n }\n }\n TakeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n };\n return TakeOperator;\n}());\nvar TakeSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(TakeSubscriber, _super);\n function TakeSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n TakeSubscriber.prototype._next = function (value) {\n var total = this.total;\n var count = ++this.count;\n if (count <= total) {\n this.destination.next(value);\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n };\n return TakeSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=take.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/take.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/takeLast.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/takeLast.js ***! + \********************************************************************/ +/*! exports provided: takeLast */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"takeLast\", function() { return takeLast; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/ArgumentOutOfRangeError */ \"./node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js\");\n/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../observable/empty */ \"./node_modules/rxjs/dist/esm5/internal/observable/empty.js\");\n\n\n\n\nfunction takeLast(count) {\n return function takeLastOperatorFunction(source) {\n if (count === 0) {\n return _observable_empty__WEBPACK_IMPORTED_MODULE_3__[\"EMPTY\"];\n }\n else {\n return source.lift(new TakeLastOperator(count));\n }\n };\n}\nvar TakeLastOperator = (function () {\n function TakeLastOperator(total) {\n this.total = total;\n if (this.total < 0) {\n throw new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__[\"ArgumentOutOfRangeError\"];\n }\n }\n TakeLastOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeLastSubscriber(subscriber, this.total));\n };\n return TakeLastOperator;\n}());\nvar TakeLastSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(TakeLastSubscriber, _super);\n function TakeLastSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.ring = new Array();\n _this.count = 0;\n return _this;\n }\n TakeLastSubscriber.prototype._next = function (value) {\n var ring = this.ring;\n var total = this.total;\n var count = this.count++;\n if (ring.length < total) {\n ring.push(value);\n }\n else {\n var index = count % total;\n ring[index] = value;\n }\n };\n TakeLastSubscriber.prototype._complete = function () {\n var destination = this.destination;\n var count = this.count;\n if (count > 0) {\n var total = this.count >= this.total ? this.total : this.count;\n var ring = this.ring;\n for (var i = 0; i < total; i++) {\n var idx = (count++) % total;\n destination.next(ring[idx]);\n }\n }\n destination.complete();\n };\n return TakeLastSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=takeLast.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/takeLast.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js ***! + \*********************************************************************/ +/*! exports provided: takeUntil */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"takeUntil\", function() { return takeUntil; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nfunction takeUntil(notifier) {\n return function (source) { return source.lift(new TakeUntilOperator(notifier)); };\n}\nvar TakeUntilOperator = (function () {\n function TakeUntilOperator(notifier) {\n this.notifier = notifier;\n }\n TakeUntilOperator.prototype.call = function (subscriber, source) {\n var takeUntilSubscriber = new TakeUntilSubscriber(subscriber);\n var notifierSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(takeUntilSubscriber, this.notifier);\n if (notifierSubscription && !takeUntilSubscriber.seenValue) {\n takeUntilSubscriber.add(notifierSubscription);\n return source.subscribe(takeUntilSubscriber);\n }\n return takeUntilSubscriber;\n };\n return TakeUntilOperator;\n}());\nvar TakeUntilSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(TakeUntilSubscriber, _super);\n function TakeUntilSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.seenValue = false;\n return _this;\n }\n TakeUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.seenValue = true;\n this.complete();\n };\n TakeUntilSubscriber.prototype.notifyComplete = function () {\n };\n return TakeUntilSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=takeUntil.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/takeWhile.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/takeWhile.js ***! + \*********************************************************************/ +/*! exports provided: takeWhile */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"takeWhile\", function() { return takeWhile; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction takeWhile(predicate, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return function (source) {\n return source.lift(new TakeWhileOperator(predicate, inclusive));\n };\n}\nvar TakeWhileOperator = (function () {\n function TakeWhileOperator(predicate, inclusive) {\n this.predicate = predicate;\n this.inclusive = inclusive;\n }\n TakeWhileOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive));\n };\n return TakeWhileOperator;\n}());\nvar TakeWhileSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(TakeWhileSubscriber, _super);\n function TakeWhileSubscriber(destination, predicate, inclusive) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.inclusive = inclusive;\n _this.index = 0;\n return _this;\n }\n TakeWhileSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n var result;\n try {\n result = this.predicate(value, this.index++);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this.nextOrComplete(value, result);\n };\n TakeWhileSubscriber.prototype.nextOrComplete = function (value, predicateResult) {\n var destination = this.destination;\n if (Boolean(predicateResult)) {\n destination.next(value);\n }\n else {\n if (this.inclusive) {\n destination.next(value);\n }\n destination.complete();\n }\n };\n return TakeWhileSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=takeWhile.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/takeWhile.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/tap.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/tap.js ***! + \***************************************************************/ +/*! exports provided: tap */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tap\", function() { return tap; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _util_noop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/noop */ \"./node_modules/rxjs/dist/esm5/internal/util/noop.js\");\n/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/isFunction */ \"./node_modules/rxjs/dist/esm5/internal/util/isFunction.js\");\n\n\n\n\nfunction tap(nextOrObserver, error, complete) {\n return function tapOperatorFunction(source) {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\nvar DoOperator = (function () {\n function DoOperator(nextOrObserver, error, complete) {\n this.nextOrObserver = nextOrObserver;\n this.error = error;\n this.complete = complete;\n }\n DoOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n };\n return DoOperator;\n}());\nvar TapSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(TapSubscriber, _super);\n function TapSubscriber(destination, observerOrNext, error, complete) {\n var _this = _super.call(this, destination) || this;\n _this._tapNext = _util_noop__WEBPACK_IMPORTED_MODULE_2__[\"noop\"];\n _this._tapError = _util_noop__WEBPACK_IMPORTED_MODULE_2__[\"noop\"];\n _this._tapComplete = _util_noop__WEBPACK_IMPORTED_MODULE_2__[\"noop\"];\n _this._tapError = error || _util_noop__WEBPACK_IMPORTED_MODULE_2__[\"noop\"];\n _this._tapComplete = complete || _util_noop__WEBPACK_IMPORTED_MODULE_2__[\"noop\"];\n if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_3__[\"isFunction\"])(observerOrNext)) {\n _this._context = _this;\n _this._tapNext = observerOrNext;\n }\n else if (observerOrNext) {\n _this._context = observerOrNext;\n _this._tapNext = observerOrNext.next || _util_noop__WEBPACK_IMPORTED_MODULE_2__[\"noop\"];\n _this._tapError = observerOrNext.error || _util_noop__WEBPACK_IMPORTED_MODULE_2__[\"noop\"];\n _this._tapComplete = observerOrNext.complete || _util_noop__WEBPACK_IMPORTED_MODULE_2__[\"noop\"];\n }\n return _this;\n }\n TapSubscriber.prototype._next = function (value) {\n try {\n this._tapNext.call(this._context, value);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(value);\n };\n TapSubscriber.prototype._error = function (err) {\n try {\n this._tapError.call(this._context, err);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.error(err);\n };\n TapSubscriber.prototype._complete = function () {\n try {\n this._tapComplete.call(this._context);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n return this.destination.complete();\n };\n return TapSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=tap.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/tap.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/throttle.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/throttle.js ***! + \********************************************************************/ +/*! exports provided: defaultThrottleConfig, throttle */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultThrottleConfig\", function() { return defaultThrottleConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"throttle\", function() { return throttle; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nvar defaultThrottleConfig = {\n leading: true,\n trailing: false\n};\nfunction throttle(durationSelector, config) {\n if (config === void 0) { config = defaultThrottleConfig; }\n return function (source) { return source.lift(new ThrottleOperator(durationSelector, !!config.leading, !!config.trailing)); };\n}\nvar ThrottleOperator = (function () {\n function ThrottleOperator(durationSelector, leading, trailing) {\n this.durationSelector = durationSelector;\n this.leading = leading;\n this.trailing = trailing;\n }\n ThrottleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing));\n };\n return ThrottleOperator;\n}());\nvar ThrottleSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ThrottleSubscriber, _super);\n function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.durationSelector = durationSelector;\n _this._leading = _leading;\n _this._trailing = _trailing;\n _this._sendValue = null;\n _this._hasValue = false;\n return _this;\n }\n ThrottleSubscriber.prototype._next = function (value) {\n this._hasValue = true;\n this._sendValue = value;\n if (!this._throttled) {\n if (this._leading) {\n this.send();\n }\n else {\n this.throttle(value);\n }\n }\n };\n ThrottleSubscriber.prototype.send = function () {\n var _a = this, _hasValue = _a._hasValue, _sendValue = _a._sendValue;\n if (_hasValue) {\n this.destination.next(_sendValue);\n this.throttle(_sendValue);\n }\n this._hasValue = false;\n this._sendValue = null;\n };\n ThrottleSubscriber.prototype.throttle = function (value) {\n var duration = this.tryDurationSelector(value);\n if (!!duration) {\n this.add(this._throttled = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(this, duration));\n }\n };\n ThrottleSubscriber.prototype.tryDurationSelector = function (value) {\n try {\n return this.durationSelector(value);\n }\n catch (err) {\n this.destination.error(err);\n return null;\n }\n };\n ThrottleSubscriber.prototype.throttlingDone = function () {\n var _a = this, _throttled = _a._throttled, _trailing = _a._trailing;\n if (_throttled) {\n _throttled.unsubscribe();\n }\n this._throttled = null;\n if (_trailing) {\n this.send();\n }\n };\n ThrottleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.throttlingDone();\n };\n ThrottleSubscriber.prototype.notifyComplete = function () {\n this.throttlingDone();\n };\n return ThrottleSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=throttle.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/throttle.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/throttleTime.js": +/*!************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/throttleTime.js ***! + \************************************************************************/ +/*! exports provided: throttleTime */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"throttleTime\", function() { return throttleTime; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _throttle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./throttle */ \"./node_modules/rxjs/dist/esm5/internal/operators/throttle.js\");\n\n\n\n\nfunction throttleTime(duration, scheduler, config) {\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_2__[\"async\"]; }\n if (config === void 0) { config = _throttle__WEBPACK_IMPORTED_MODULE_3__[\"defaultThrottleConfig\"]; }\n return function (source) { return source.lift(new ThrottleTimeOperator(duration, scheduler, !!config.leading, !!config.trailing)); };\n}\nvar ThrottleTimeOperator = (function () {\n function ThrottleTimeOperator(duration, scheduler, leading, trailing) {\n this.duration = duration;\n this.scheduler = scheduler;\n this.leading = leading;\n this.trailing = trailing;\n }\n ThrottleTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing));\n };\n return ThrottleTimeOperator;\n}());\nvar ThrottleTimeSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ThrottleTimeSubscriber, _super);\n function ThrottleTimeSubscriber(destination, duration, scheduler, leading, trailing) {\n var _this = _super.call(this, destination) || this;\n _this.duration = duration;\n _this.scheduler = scheduler;\n _this.leading = leading;\n _this.trailing = trailing;\n _this.throttled = null;\n _this._hasTrailingValue = false;\n _this._trailingValue = null;\n return _this;\n }\n ThrottleTimeSubscriber.prototype._next = function (value) {\n if (this.throttled) {\n if (this.trailing) {\n this._trailingValue = value;\n this._hasTrailingValue = true;\n }\n }\n else {\n this.add(this.throttled = this.scheduler.schedule(dispatchNext, this.duration, { subscriber: this }));\n if (this.leading) {\n this.destination.next(value);\n }\n else if (this.trailing) {\n this._trailingValue = value;\n this._hasTrailingValue = true;\n }\n }\n };\n ThrottleTimeSubscriber.prototype._complete = function () {\n if (this._hasTrailingValue) {\n this.destination.next(this._trailingValue);\n this.destination.complete();\n }\n else {\n this.destination.complete();\n }\n };\n ThrottleTimeSubscriber.prototype.clearThrottle = function () {\n var throttled = this.throttled;\n if (throttled) {\n if (this.trailing && this._hasTrailingValue) {\n this.destination.next(this._trailingValue);\n this._trailingValue = null;\n this._hasTrailingValue = false;\n }\n throttled.unsubscribe();\n this.remove(throttled);\n this.throttled = null;\n }\n };\n return ThrottleTimeSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\nfunction dispatchNext(arg) {\n var subscriber = arg.subscriber;\n subscriber.clearThrottle();\n}\n//# sourceMappingURL=throttleTime.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/throttleTime.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js": +/*!************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js ***! + \************************************************************************/ +/*! exports provided: throwIfEmpty */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"throwIfEmpty\", function() { return throwIfEmpty; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/EmptyError */ \"./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\n\nfunction throwIfEmpty(errorFactory) {\n if (errorFactory === void 0) { errorFactory = defaultErrorFactory; }\n return function (source) {\n return source.lift(new ThrowIfEmptyOperator(errorFactory));\n };\n}\nvar ThrowIfEmptyOperator = (function () {\n function ThrowIfEmptyOperator(errorFactory) {\n this.errorFactory = errorFactory;\n }\n ThrowIfEmptyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory));\n };\n return ThrowIfEmptyOperator;\n}());\nvar ThrowIfEmptySubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ThrowIfEmptySubscriber, _super);\n function ThrowIfEmptySubscriber(destination, errorFactory) {\n var _this = _super.call(this, destination) || this;\n _this.errorFactory = errorFactory;\n _this.hasValue = false;\n return _this;\n }\n ThrowIfEmptySubscriber.prototype._next = function (value) {\n this.hasValue = true;\n this.destination.next(value);\n };\n ThrowIfEmptySubscriber.prototype._complete = function () {\n if (!this.hasValue) {\n var err = void 0;\n try {\n err = this.errorFactory();\n }\n catch (e) {\n err = e;\n }\n this.destination.error(err);\n }\n else {\n return this.destination.complete();\n }\n };\n return ThrowIfEmptySubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_2__[\"Subscriber\"]));\nfunction defaultErrorFactory() {\n return new _util_EmptyError__WEBPACK_IMPORTED_MODULE_1__[\"EmptyError\"]();\n}\n//# sourceMappingURL=throwIfEmpty.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/timeInterval.js": +/*!************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/timeInterval.js ***! + \************************************************************************/ +/*! exports provided: timeInterval, TimeInterval */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeInterval\", function() { return timeInterval; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TimeInterval\", function() { return TimeInterval; });\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./scan */ \"./node_modules/rxjs/dist/esm5/internal/operators/scan.js\");\n/* harmony import */ var _observable_defer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../observable/defer */ \"./node_modules/rxjs/dist/esm5/internal/observable/defer.js\");\n/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n\n\n\n\nfunction timeInterval(scheduler) {\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__[\"async\"]; }\n return function (source) { return Object(_observable_defer__WEBPACK_IMPORTED_MODULE_2__[\"defer\"])(function () {\n return source.pipe(Object(_scan__WEBPACK_IMPORTED_MODULE_1__[\"scan\"])(function (_a, value) {\n var current = _a.current;\n return ({ value: value, current: scheduler.now(), last: current });\n }, { current: scheduler.now(), value: undefined, last: undefined }), Object(_map__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (_a) {\n var current = _a.current, last = _a.last, value = _a.value;\n return new TimeInterval(value, current - last);\n }));\n }); };\n}\nvar TimeInterval = (function () {\n function TimeInterval(value, interval) {\n this.value = value;\n this.interval = interval;\n }\n return TimeInterval;\n}());\n\n//# sourceMappingURL=timeInterval.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/timeInterval.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/timeout.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/timeout.js ***! + \*******************************************************************/ +/*! exports provided: timeout */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeout\", function() { return timeout; });\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _util_TimeoutError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/TimeoutError */ \"./node_modules/rxjs/dist/esm5/internal/util/TimeoutError.js\");\n/* harmony import */ var _timeoutWith__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./timeoutWith */ \"./node_modules/rxjs/dist/esm5/internal/operators/timeoutWith.js\");\n/* harmony import */ var _observable_throwError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../observable/throwError */ \"./node_modules/rxjs/dist/esm5/internal/observable/throwError.js\");\n\n\n\n\nfunction timeout(due, scheduler) {\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__[\"async\"]; }\n return Object(_timeoutWith__WEBPACK_IMPORTED_MODULE_2__[\"timeoutWith\"])(due, Object(_observable_throwError__WEBPACK_IMPORTED_MODULE_3__[\"throwError\"])(new _util_TimeoutError__WEBPACK_IMPORTED_MODULE_1__[\"TimeoutError\"]()), scheduler);\n}\n//# sourceMappingURL=timeout.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/timeout.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/timeoutWith.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/timeoutWith.js ***! + \***********************************************************************/ +/*! exports provided: timeoutWith */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeoutWith\", function() { return timeoutWith; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _util_isDate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isDate */ \"./node_modules/rxjs/dist/esm5/internal/util/isDate.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\n\nfunction timeoutWith(due, withObservable, scheduler) {\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__[\"async\"]; }\n return function (source) {\n var absoluteTimeout = Object(_util_isDate__WEBPACK_IMPORTED_MODULE_2__[\"isDate\"])(due);\n var waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due);\n return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler));\n };\n}\nvar TimeoutWithOperator = (function () {\n function TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler) {\n this.waitFor = waitFor;\n this.absoluteTimeout = absoluteTimeout;\n this.withObservable = withObservable;\n this.scheduler = scheduler;\n }\n TimeoutWithOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TimeoutWithSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler));\n };\n return TimeoutWithOperator;\n}());\nvar TimeoutWithSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(TimeoutWithSubscriber, _super);\n function TimeoutWithSubscriber(destination, absoluteTimeout, waitFor, withObservable, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.absoluteTimeout = absoluteTimeout;\n _this.waitFor = waitFor;\n _this.withObservable = withObservable;\n _this.scheduler = scheduler;\n _this.action = null;\n _this.scheduleTimeout();\n return _this;\n }\n TimeoutWithSubscriber.dispatchTimeout = function (subscriber) {\n var withObservable = subscriber.withObservable;\n subscriber._unsubscribeAndRecycle();\n subscriber.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__[\"subscribeToResult\"])(subscriber, withObservable));\n };\n TimeoutWithSubscriber.prototype.scheduleTimeout = function () {\n var action = this.action;\n if (action) {\n this.action = action.schedule(this, this.waitFor);\n }\n else {\n this.add(this.action = this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this));\n }\n };\n TimeoutWithSubscriber.prototype._next = function (value) {\n if (!this.absoluteTimeout) {\n this.scheduleTimeout();\n }\n _super.prototype._next.call(this, value);\n };\n TimeoutWithSubscriber.prototype._unsubscribe = function () {\n this.action = null;\n this.scheduler = null;\n this.withObservable = null;\n };\n return TimeoutWithSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__[\"OuterSubscriber\"]));\n//# sourceMappingURL=timeoutWith.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/timeoutWith.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/timestamp.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/timestamp.js ***! + \*********************************************************************/ +/*! exports provided: timestamp, Timestamp */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timestamp\", function() { return timestamp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Timestamp\", function() { return Timestamp; });\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n\n\nfunction timestamp(scheduler) {\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__[\"async\"]; }\n return Object(_map__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (value) { return new Timestamp(value, scheduler.now()); });\n}\nvar Timestamp = (function () {\n function Timestamp(value, timestamp) {\n this.value = value;\n this.timestamp = timestamp;\n }\n return Timestamp;\n}());\n\n//# sourceMappingURL=timestamp.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/timestamp.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/toArray.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/toArray.js ***! + \*******************************************************************/ +/*! exports provided: toArray */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toArray\", function() { return toArray; });\n/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reduce */ \"./node_modules/rxjs/dist/esm5/internal/operators/reduce.js\");\n\nfunction toArrayReducer(arr, item, index) {\n if (index === 0) {\n return [item];\n }\n arr.push(item);\n return arr;\n}\nfunction toArray() {\n return Object(_reduce__WEBPACK_IMPORTED_MODULE_0__[\"reduce\"])(toArrayReducer, []);\n}\n//# sourceMappingURL=toArray.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/toArray.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/window.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/window.js ***! + \******************************************************************/ +/*! exports provided: window */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"window\", function() { return window; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\nfunction window(windowBoundaries) {\n return function windowOperatorFunction(source) {\n return source.lift(new WindowOperator(windowBoundaries));\n };\n}\nvar WindowOperator = (function () {\n function WindowOperator(windowBoundaries) {\n this.windowBoundaries = windowBoundaries;\n }\n WindowOperator.prototype.call = function (subscriber, source) {\n var windowSubscriber = new WindowSubscriber(subscriber);\n var sourceSubscription = source.subscribe(windowSubscriber);\n if (!sourceSubscription.closed) {\n windowSubscriber.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToResult\"])(windowSubscriber, this.windowBoundaries));\n }\n return sourceSubscription;\n };\n return WindowOperator;\n}());\nvar WindowSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(WindowSubscriber, _super);\n function WindowSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.window = new _Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]();\n destination.next(_this.window);\n return _this;\n }\n WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.openWindow();\n };\n WindowSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n WindowSubscriber.prototype.notifyComplete = function (innerSub) {\n this._complete();\n };\n WindowSubscriber.prototype._next = function (value) {\n this.window.next(value);\n };\n WindowSubscriber.prototype._error = function (err) {\n this.window.error(err);\n this.destination.error(err);\n };\n WindowSubscriber.prototype._complete = function () {\n this.window.complete();\n this.destination.complete();\n };\n WindowSubscriber.prototype._unsubscribe = function () {\n this.window = null;\n };\n WindowSubscriber.prototype.openWindow = function () {\n var prevWindow = this.window;\n if (prevWindow) {\n prevWindow.complete();\n }\n var destination = this.destination;\n var newWindow = this.window = new _Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]();\n destination.next(newWindow);\n };\n return WindowSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"OuterSubscriber\"]));\n//# sourceMappingURL=window.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/window.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/windowCount.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/windowCount.js ***! + \***********************************************************************/ +/*! exports provided: windowCount */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"windowCount\", function() { return windowCount; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n\n\n\nfunction windowCount(windowSize, startWindowEvery) {\n if (startWindowEvery === void 0) { startWindowEvery = 0; }\n return function windowCountOperatorFunction(source) {\n return source.lift(new WindowCountOperator(windowSize, startWindowEvery));\n };\n}\nvar WindowCountOperator = (function () {\n function WindowCountOperator(windowSize, startWindowEvery) {\n this.windowSize = windowSize;\n this.startWindowEvery = startWindowEvery;\n }\n WindowCountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery));\n };\n return WindowCountOperator;\n}());\nvar WindowCountSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(WindowCountSubscriber, _super);\n function WindowCountSubscriber(destination, windowSize, startWindowEvery) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.windowSize = windowSize;\n _this.startWindowEvery = startWindowEvery;\n _this.windows = [new _Subject__WEBPACK_IMPORTED_MODULE_2__[\"Subject\"]()];\n _this.count = 0;\n destination.next(_this.windows[0]);\n return _this;\n }\n WindowCountSubscriber.prototype._next = function (value) {\n var startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize;\n var destination = this.destination;\n var windowSize = this.windowSize;\n var windows = this.windows;\n var len = windows.length;\n for (var i = 0; i < len && !this.closed; i++) {\n windows[i].next(value);\n }\n var c = this.count - windowSize + 1;\n if (c >= 0 && c % startWindowEvery === 0 && !this.closed) {\n windows.shift().complete();\n }\n if (++this.count % startWindowEvery === 0 && !this.closed) {\n var window_1 = new _Subject__WEBPACK_IMPORTED_MODULE_2__[\"Subject\"]();\n windows.push(window_1);\n destination.next(window_1);\n }\n };\n WindowCountSubscriber.prototype._error = function (err) {\n var windows = this.windows;\n if (windows) {\n while (windows.length > 0 && !this.closed) {\n windows.shift().error(err);\n }\n }\n this.destination.error(err);\n };\n WindowCountSubscriber.prototype._complete = function () {\n var windows = this.windows;\n if (windows) {\n while (windows.length > 0 && !this.closed) {\n windows.shift().complete();\n }\n }\n this.destination.complete();\n };\n WindowCountSubscriber.prototype._unsubscribe = function () {\n this.count = 0;\n this.windows = null;\n };\n return WindowCountSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=windowCount.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/windowCount.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/windowTime.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/windowTime.js ***! + \**********************************************************************/ +/*! exports provided: windowTime */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"windowTime\", function() { return windowTime; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/isNumeric */ \"./node_modules/rxjs/dist/esm5/internal/util/isNumeric.js\");\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n\n\n\n\n\n\nfunction windowTime(windowTimeSpan) {\n var scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_2__[\"async\"];\n var windowCreationInterval = null;\n var maxWindowSize = Number.POSITIVE_INFINITY;\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_5__[\"isScheduler\"])(arguments[3])) {\n scheduler = arguments[3];\n }\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_5__[\"isScheduler\"])(arguments[2])) {\n scheduler = arguments[2];\n }\n else if (Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_4__[\"isNumeric\"])(arguments[2])) {\n maxWindowSize = Number(arguments[2]);\n }\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_5__[\"isScheduler\"])(arguments[1])) {\n scheduler = arguments[1];\n }\n else if (Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_4__[\"isNumeric\"])(arguments[1])) {\n windowCreationInterval = Number(arguments[1]);\n }\n return function windowTimeOperatorFunction(source) {\n return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler));\n };\n}\nvar WindowTimeOperator = (function () {\n function WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {\n this.windowTimeSpan = windowTimeSpan;\n this.windowCreationInterval = windowCreationInterval;\n this.maxWindowSize = maxWindowSize;\n this.scheduler = scheduler;\n }\n WindowTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowTimeSubscriber(subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler));\n };\n return WindowTimeOperator;\n}());\nvar CountedSubject = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(CountedSubject, _super);\n function CountedSubject() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._numberOfNextedValues = 0;\n return _this;\n }\n CountedSubject.prototype.next = function (value) {\n this._numberOfNextedValues++;\n _super.prototype.next.call(this, value);\n };\n Object.defineProperty(CountedSubject.prototype, \"numberOfNextedValues\", {\n get: function () {\n return this._numberOfNextedValues;\n },\n enumerable: true,\n configurable: true\n });\n return CountedSubject;\n}(_Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]));\nvar WindowTimeSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(WindowTimeSubscriber, _super);\n function WindowTimeSubscriber(destination, windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.maxWindowSize = maxWindowSize;\n _this.windows = [];\n var window = _this.openWindow();\n if (windowCreationInterval !== null && windowCreationInterval >= 0) {\n var closeState = { subscriber: _this, window: window, context: null };\n var creationState = { windowTimeSpan: windowTimeSpan, windowCreationInterval: windowCreationInterval, subscriber: _this, scheduler: scheduler };\n _this.add(scheduler.schedule(dispatchWindowClose, windowTimeSpan, closeState));\n _this.add(scheduler.schedule(dispatchWindowCreation, windowCreationInterval, creationState));\n }\n else {\n var timeSpanOnlyState = { subscriber: _this, window: window, windowTimeSpan: windowTimeSpan };\n _this.add(scheduler.schedule(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState));\n }\n return _this;\n }\n WindowTimeSubscriber.prototype._next = function (value) {\n var windows = this.maxWindowSize < Number.POSITIVE_INFINITY ? this.windows.slice() : this.windows;\n var len = windows.length;\n for (var i = 0; i < len; i++) {\n var window_1 = windows[i];\n if (!window_1.closed) {\n window_1.next(value);\n if (this.maxWindowSize <= window_1.numberOfNextedValues) {\n this.closeWindow(window_1);\n }\n }\n }\n };\n WindowTimeSubscriber.prototype._error = function (err) {\n var windows = this.windows;\n while (windows.length > 0) {\n windows.shift().error(err);\n }\n this.destination.error(err);\n };\n WindowTimeSubscriber.prototype._complete = function () {\n var windows = this.windows;\n while (windows.length > 0) {\n windows.shift().complete();\n }\n this.destination.complete();\n };\n WindowTimeSubscriber.prototype.openWindow = function () {\n var window = new CountedSubject();\n this.windows.push(window);\n var destination = this.destination;\n destination.next(window);\n return window;\n };\n WindowTimeSubscriber.prototype.closeWindow = function (window) {\n var index = this.windows.indexOf(window);\n if (index >= 0) {\n window.complete();\n this.windows.splice(index, 1);\n }\n };\n return WindowTimeSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__[\"Subscriber\"]));\nfunction dispatchWindowTimeSpanOnly(state) {\n var subscriber = state.subscriber, windowTimeSpan = state.windowTimeSpan, window = state.window;\n if (window) {\n subscriber.closeWindow(window);\n }\n state.window = subscriber.openWindow();\n this.schedule(state, windowTimeSpan);\n}\nfunction dispatchWindowCreation(state) {\n var windowTimeSpan = state.windowTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler, windowCreationInterval = state.windowCreationInterval;\n var window = subscriber.openWindow();\n var action = this;\n var context = { action: action, subscription: null };\n var timeSpanState = { subscriber: subscriber, window: window, context: context };\n context.subscription = scheduler.schedule(dispatchWindowClose, windowTimeSpan, timeSpanState);\n action.add(context.subscription);\n action.schedule(state, windowCreationInterval);\n}\nfunction dispatchWindowClose(state) {\n var subscriber = state.subscriber, window = state.window, context = state.context;\n if (context && context.action && context.subscription) {\n context.action.remove(context.subscription);\n }\n subscriber.closeWindow(window);\n}\n//# sourceMappingURL=windowTime.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/windowTime.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/windowToggle.js": +/*!************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/windowToggle.js ***! + \************************************************************************/ +/*! exports provided: windowToggle */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"windowToggle\", function() { return windowToggle; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\n\nfunction windowToggle(openings, closingSelector) {\n return function (source) { return source.lift(new WindowToggleOperator(openings, closingSelector)); };\n}\nvar WindowToggleOperator = (function () {\n function WindowToggleOperator(openings, closingSelector) {\n this.openings = openings;\n this.closingSelector = closingSelector;\n }\n WindowToggleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowToggleSubscriber(subscriber, this.openings, this.closingSelector));\n };\n return WindowToggleOperator;\n}());\nvar WindowToggleSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(WindowToggleSubscriber, _super);\n function WindowToggleSubscriber(destination, openings, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.openings = openings;\n _this.closingSelector = closingSelector;\n _this.contexts = [];\n _this.add(_this.openSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__[\"subscribeToResult\"])(_this, openings, openings));\n return _this;\n }\n WindowToggleSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n if (contexts) {\n var len = contexts.length;\n for (var i = 0; i < len; i++) {\n contexts[i].window.next(value);\n }\n }\n };\n WindowToggleSubscriber.prototype._error = function (err) {\n var contexts = this.contexts;\n this.contexts = null;\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n while (++index < len) {\n var context_1 = contexts[index];\n context_1.window.error(err);\n context_1.subscription.unsubscribe();\n }\n }\n _super.prototype._error.call(this, err);\n };\n WindowToggleSubscriber.prototype._complete = function () {\n var contexts = this.contexts;\n this.contexts = null;\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n while (++index < len) {\n var context_2 = contexts[index];\n context_2.window.complete();\n context_2.subscription.unsubscribe();\n }\n }\n _super.prototype._complete.call(this);\n };\n WindowToggleSubscriber.prototype._unsubscribe = function () {\n var contexts = this.contexts;\n this.contexts = null;\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n while (++index < len) {\n var context_3 = contexts[index];\n context_3.window.unsubscribe();\n context_3.subscription.unsubscribe();\n }\n }\n };\n WindowToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n if (outerValue === this.openings) {\n var closingNotifier = void 0;\n try {\n var closingSelector = this.closingSelector;\n closingNotifier = closingSelector(innerValue);\n }\n catch (e) {\n return this.error(e);\n }\n var window_1 = new _Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]();\n var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_2__[\"Subscription\"]();\n var context_4 = { window: window_1, subscription: subscription };\n this.contexts.push(context_4);\n var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__[\"subscribeToResult\"])(this, closingNotifier, context_4);\n if (innerSubscription.closed) {\n this.closeWindow(this.contexts.length - 1);\n }\n else {\n innerSubscription.context = context_4;\n subscription.add(innerSubscription);\n }\n this.destination.next(window_1);\n }\n else {\n this.closeWindow(this.contexts.indexOf(outerValue));\n }\n };\n WindowToggleSubscriber.prototype.notifyError = function (err) {\n this.error(err);\n };\n WindowToggleSubscriber.prototype.notifyComplete = function (inner) {\n if (inner !== this.openSubscription) {\n this.closeWindow(this.contexts.indexOf(inner.context));\n }\n };\n WindowToggleSubscriber.prototype.closeWindow = function (index) {\n if (index === -1) {\n return;\n }\n var contexts = this.contexts;\n var context = contexts[index];\n var window = context.window, subscription = context.subscription;\n contexts.splice(index, 1);\n window.complete();\n subscription.unsubscribe();\n };\n return WindowToggleSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__[\"OuterSubscriber\"]));\n//# sourceMappingURL=windowToggle.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/windowToggle.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/windowWhen.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/windowWhen.js ***! + \**********************************************************************/ +/*! exports provided: windowWhen */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"windowWhen\", function() { return windowWhen; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\nfunction windowWhen(closingSelector) {\n return function windowWhenOperatorFunction(source) {\n return source.lift(new WindowOperator(closingSelector));\n };\n}\nvar WindowOperator = (function () {\n function WindowOperator(closingSelector) {\n this.closingSelector = closingSelector;\n }\n WindowOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector));\n };\n return WindowOperator;\n}());\nvar WindowSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(WindowSubscriber, _super);\n function WindowSubscriber(destination, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.closingSelector = closingSelector;\n _this.openWindow();\n return _this;\n }\n WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.openWindow(innerSub);\n };\n WindowSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n WindowSubscriber.prototype.notifyComplete = function (innerSub) {\n this.openWindow(innerSub);\n };\n WindowSubscriber.prototype._next = function (value) {\n this.window.next(value);\n };\n WindowSubscriber.prototype._error = function (err) {\n this.window.error(err);\n this.destination.error(err);\n this.unsubscribeClosingNotification();\n };\n WindowSubscriber.prototype._complete = function () {\n this.window.complete();\n this.destination.complete();\n this.unsubscribeClosingNotification();\n };\n WindowSubscriber.prototype.unsubscribeClosingNotification = function () {\n if (this.closingNotification) {\n this.closingNotification.unsubscribe();\n }\n };\n WindowSubscriber.prototype.openWindow = function (innerSub) {\n if (innerSub === void 0) { innerSub = null; }\n if (innerSub) {\n this.remove(innerSub);\n innerSub.unsubscribe();\n }\n var prevWindow = this.window;\n if (prevWindow) {\n prevWindow.complete();\n }\n var window = this.window = new _Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]();\n this.destination.next(window);\n var closingNotifier;\n try {\n var closingSelector = this.closingSelector;\n closingNotifier = closingSelector();\n }\n catch (e) {\n this.destination.error(e);\n this.window.error(e);\n return;\n }\n this.add(this.closingNotification = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToResult\"])(this, closingNotifier));\n };\n return WindowSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"OuterSubscriber\"]));\n//# sourceMappingURL=windowWhen.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/windowWhen.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js ***! + \**************************************************************************/ +/*! exports provided: withLatestFrom */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"withLatestFrom\", function() { return withLatestFrom; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nfunction withLatestFrom() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return function (source) {\n var project;\n if (typeof args[args.length - 1] === 'function') {\n project = args.pop();\n }\n var observables = args;\n return source.lift(new WithLatestFromOperator(observables, project));\n };\n}\nvar WithLatestFromOperator = (function () {\n function WithLatestFromOperator(observables, project) {\n this.observables = observables;\n this.project = project;\n }\n WithLatestFromOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));\n };\n return WithLatestFromOperator;\n}());\nvar WithLatestFromSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(WithLatestFromSubscriber, _super);\n function WithLatestFromSubscriber(destination, observables, project) {\n var _this = _super.call(this, destination) || this;\n _this.observables = observables;\n _this.project = project;\n _this.toRespond = [];\n var len = observables.length;\n _this.values = new Array(len);\n for (var i = 0; i < len; i++) {\n _this.toRespond.push(i);\n }\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n _this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(_this, observable, observable, i));\n }\n return _this;\n }\n WithLatestFromSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.values[outerIndex] = innerValue;\n var toRespond = this.toRespond;\n if (toRespond.length > 0) {\n var found = toRespond.indexOf(outerIndex);\n if (found !== -1) {\n toRespond.splice(found, 1);\n }\n }\n };\n WithLatestFromSubscriber.prototype.notifyComplete = function () {\n };\n WithLatestFromSubscriber.prototype._next = function (value) {\n if (this.toRespond.length === 0) {\n var args = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])([value], this.values);\n if (this.project) {\n this._tryProject(args);\n }\n else {\n this.destination.next(args);\n }\n }\n };\n WithLatestFromSubscriber.prototype._tryProject = function (args) {\n var result;\n try {\n result = this.project.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return WithLatestFromSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=withLatestFrom.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/zipAll.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/zipAll.js ***! + \******************************************************************/ +/*! exports provided: zipAll */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"zipAll\", function() { return zipAll; });\n/* harmony import */ var _observable_zip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../observable/zip */ \"./node_modules/rxjs/dist/esm5/internal/observable/zip.js\");\n\nfunction zipAll(project) {\n return function (source) { return source.lift(new _observable_zip__WEBPACK_IMPORTED_MODULE_0__[\"ZipOperator\"](project)); };\n}\n//# sourceMappingURL=zipAll.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/zipAll.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/zipWith.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/zipWith.js ***! + \*******************************************************************/ +/*! exports provided: zip, zipWith */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"zip\", function() { return zip; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"zipWith\", function() { return zipWith; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _observable_zip__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../observable/zip */ \"./node_modules/rxjs/dist/esm5/internal/observable/zip.js\");\n\n\nfunction zip() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function zipOperatorFunction(source) {\n return source.lift.call(_observable_zip__WEBPACK_IMPORTED_MODULE_1__[\"zip\"].apply(void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])([source], observables)), undefined);\n };\n}\nfunction zipWith() {\n var otherInputs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n otherInputs[_i] = arguments[_i];\n }\n return zip.apply(void 0, otherInputs);\n}\n//# sourceMappingURL=zipWith.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/zipWith.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js": +/*!*************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js ***! + \*************************************************************************/ +/*! exports provided: scheduleArray */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scheduleArray\", function() { return scheduleArray; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n\n\nfunction scheduleArray(input, scheduler) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]();\n var i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleArray.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js ***! + \*********************************************************************************/ +/*! exports provided: scheduleAsyncIterable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scheduleAsyncIterable\", function() { return scheduleAsyncIterable; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n\n\nfunction scheduleAsyncIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]();\n sub.add(scheduler.schedule(function () {\n var iterator = input[Symbol.asyncIterator]();\n sub.add(scheduler.schedule(function () {\n var _this = this;\n iterator.next().then(function (result) {\n if (result.done) {\n subscriber.complete();\n }\n else {\n subscriber.next(result.value);\n _this.schedule();\n }\n });\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleAsyncIterable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js": +/*!****************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js ***! + \****************************************************************************/ +/*! exports provided: scheduleIterable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scheduleIterable\", function() { return scheduleIterable; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../symbol/iterator */ \"./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js\");\n\n\n\nfunction scheduleIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]();\n var iterator;\n sub.add(function () {\n if (iterator && typeof iterator.return === 'function') {\n iterator.return();\n }\n });\n sub.add(scheduler.schedule(function () {\n iterator = input[_symbol_iterator__WEBPACK_IMPORTED_MODULE_2__[\"iterator\"]]();\n sub.add(scheduler.schedule(function () {\n if (subscriber.closed) {\n return;\n }\n var value;\n var done;\n try {\n var result = iterator.next();\n value = result.value;\n done = result.done;\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n this.schedule();\n }\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleIterable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js": +/*!******************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js ***! + \******************************************************************************/ +/*! exports provided: scheduleObservable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scheduleObservable\", function() { return scheduleObservable; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../symbol/observable */ \"./node_modules/rxjs/dist/esm5/internal/symbol/observable.js\");\n\n\n\nfunction scheduleObservable(input, scheduler) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]();\n sub.add(scheduler.schedule(function () {\n var observable = input[_symbol_observable__WEBPACK_IMPORTED_MODULE_2__[\"observable\"]]();\n sub.add(observable.subscribe({\n next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); },\n error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); },\n complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); },\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleObservable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js": +/*!***************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js ***! + \***************************************************************************/ +/*! exports provided: schedulePromise */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"schedulePromise\", function() { return schedulePromise; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n\n\nfunction schedulePromise(input, scheduler) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]();\n sub.add(scheduler.schedule(function () { return input.then(function (value) {\n sub.add(scheduler.schedule(function () {\n subscriber.next(value);\n sub.add(scheduler.schedule(function () { return subscriber.complete(); }));\n }));\n }, function (err) {\n sub.add(scheduler.schedule(function () { return subscriber.error(err); }));\n }); }));\n return sub;\n });\n}\n//# sourceMappingURL=schedulePromise.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js ***! + \*********************************************************************/ +/*! exports provided: scheduled */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scheduled\", function() { return scheduled; });\n/* harmony import */ var _scheduleObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./scheduleObservable */ \"./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js\");\n/* harmony import */ var _schedulePromise__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./schedulePromise */ \"./node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js\");\n/* harmony import */ var _scheduleArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./scheduleArray */ \"./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js\");\n/* harmony import */ var _scheduleIterable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./scheduleIterable */ \"./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js\");\n/* harmony import */ var _util_isInteropObservable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/isInteropObservable */ \"./node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js\");\n/* harmony import */ var _util_isPromise__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/isPromise */ \"./node_modules/rxjs/dist/esm5/internal/util/isPromise.js\");\n/* harmony import */ var _util_isArrayLike__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../util/isArrayLike */ \"./node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js\");\n/* harmony import */ var _util_isIterable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../util/isIterable */ \"./node_modules/rxjs/dist/esm5/internal/util/isIterable.js\");\n/* harmony import */ var _scheduleAsyncIterable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./scheduleAsyncIterable */ \"./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js\");\n\n\n\n\n\n\n\n\n\nfunction scheduled(input, scheduler) {\n if (input != null) {\n if (Object(_util_isInteropObservable__WEBPACK_IMPORTED_MODULE_4__[\"isInteropObservable\"])(input)) {\n return Object(_scheduleObservable__WEBPACK_IMPORTED_MODULE_0__[\"scheduleObservable\"])(input, scheduler);\n }\n else if (Object(_util_isPromise__WEBPACK_IMPORTED_MODULE_5__[\"isPromise\"])(input)) {\n return Object(_schedulePromise__WEBPACK_IMPORTED_MODULE_1__[\"schedulePromise\"])(input, scheduler);\n }\n else if (Object(_util_isArrayLike__WEBPACK_IMPORTED_MODULE_6__[\"isArrayLike\"])(input)) {\n return Object(_scheduleArray__WEBPACK_IMPORTED_MODULE_2__[\"scheduleArray\"])(input, scheduler);\n }\n else if (Object(_util_isIterable__WEBPACK_IMPORTED_MODULE_7__[\"isIterable\"])(input) || typeof input === 'string') {\n return Object(_scheduleIterable__WEBPACK_IMPORTED_MODULE_3__[\"scheduleIterable\"])(input, scheduler);\n }\n else if (Symbol && Symbol.asyncIterator && typeof input[Symbol.asyncIterator] === 'function') {\n return Object(_scheduleAsyncIterable__WEBPACK_IMPORTED_MODULE_8__[\"scheduleAsyncIterable\"])(input, scheduler);\n }\n }\n throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n//# sourceMappingURL=scheduled.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/Action.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/Action.js ***! + \******************************************************************/ +/*! exports provided: Action */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Action\", function() { return Action; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n\n\nvar Action = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n return this;\n };\n return Action;\n}(_Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]));\n\n//# sourceMappingURL=Action.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/Action.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameAction.js": +/*!********************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameAction.js ***! + \********************************************************************************/ +/*! exports provided: AnimationFrameAction */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AnimationFrameAction\", function() { return AnimationFrameAction; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncAction */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js\");\n\n\nvar AnimationFrameAction = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AnimationFrameAction, _super);\n function AnimationFrameAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () { return scheduler.flush(undefined); }));\n };\n AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n cancelAnimationFrame(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n };\n return AnimationFrameAction;\n}(_AsyncAction__WEBPACK_IMPORTED_MODULE_1__[\"AsyncAction\"]));\n\n//# sourceMappingURL=AnimationFrameAction.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameAction.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameScheduler.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameScheduler.js ***! + \***********************************************************************************/ +/*! exports provided: AnimationFrameScheduler */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AnimationFrameScheduler\", function() { return AnimationFrameScheduler; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncScheduler */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js\");\n\n\nvar AnimationFrameScheduler = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AnimationFrameScheduler, _super);\n function AnimationFrameScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AnimationFrameScheduler.prototype.flush = function (action) {\n this.active = true;\n this.scheduled = undefined;\n var actions = this.actions;\n var error;\n var index = -1;\n var count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AnimationFrameScheduler;\n}(_AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__[\"AsyncScheduler\"]));\n\n//# sourceMappingURL=AnimationFrameScheduler.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameScheduler.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/AsapAction.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/AsapAction.js ***! + \**********************************************************************/ +/*! exports provided: AsapAction */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AsapAction\", function() { return AsapAction; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_Immediate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/Immediate */ \"./node_modules/rxjs/dist/esm5/internal/util/Immediate.js\");\n/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AsyncAction */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js\");\n\n\n\nvar AsapAction = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AsapAction, _super);\n function AsapAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = _util_Immediate__WEBPACK_IMPORTED_MODULE_1__[\"Immediate\"].setImmediate(scheduler.flush.bind(scheduler, undefined)));\n };\n AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n _util_Immediate__WEBPACK_IMPORTED_MODULE_1__[\"Immediate\"].clearImmediate(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n };\n return AsapAction;\n}(_AsyncAction__WEBPACK_IMPORTED_MODULE_2__[\"AsyncAction\"]));\n\n//# sourceMappingURL=AsapAction.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AsapAction.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/AsapScheduler.js": +/*!*************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/AsapScheduler.js ***! + \*************************************************************************/ +/*! exports provided: AsapScheduler */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AsapScheduler\", function() { return AsapScheduler; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncScheduler */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js\");\n\n\nvar AsapScheduler = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AsapScheduler, _super);\n function AsapScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AsapScheduler.prototype.flush = function (action) {\n this.active = true;\n this.scheduled = undefined;\n var actions = this.actions;\n var error;\n var index = -1;\n var count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsapScheduler;\n}(_AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__[\"AsyncScheduler\"]));\n\n//# sourceMappingURL=AsapScheduler.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AsapScheduler.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js ***! + \***********************************************************************/ +/*! exports provided: AsyncAction */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AsyncAction\", function() { return AsyncAction; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Action__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Action */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/Action.js\");\n\n\nvar AsyncAction = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (this.closed) {\n return this;\n }\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n return setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && this.delay === delay && this.pending === false) {\n return id;\n }\n clearInterval(id);\n return undefined;\n };\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, delay) {\n var errored = false;\n var errorValue = undefined;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = !!e && e || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype._unsubscribe = function () {\n var id = this.id;\n var scheduler = this.scheduler;\n var actions = scheduler.actions;\n var index = actions.indexOf(this);\n this.work = null;\n this.state = null;\n this.pending = false;\n this.scheduler = null;\n if (index !== -1) {\n actions.splice(index, 1);\n }\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n };\n return AsyncAction;\n}(_Action__WEBPACK_IMPORTED_MODULE_1__[\"Action\"]));\n\n//# sourceMappingURL=AsyncAction.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js ***! + \**************************************************************************/ +/*! exports provided: AsyncScheduler */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AsyncScheduler\", function() { return AsyncScheduler; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Scheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Scheduler */ \"./node_modules/rxjs/dist/esm5/internal/Scheduler.js\");\n\n\nvar AsyncScheduler = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) { now = _Scheduler__WEBPACK_IMPORTED_MODULE_1__[\"Scheduler\"].now; }\n var _this = _super.call(this, SchedulerAction, function () {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) {\n return AsyncScheduler.delegate.now();\n }\n else {\n return now();\n }\n }) || this;\n _this.actions = [];\n _this.active = false;\n _this.scheduled = undefined;\n return _this;\n }\n AsyncScheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.schedule(work, delay, state);\n }\n else {\n return _super.prototype.schedule.call(this, work, delay, state);\n }\n };\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this.active) {\n actions.push(action);\n return;\n }\n var error;\n this.active = true;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift());\n this.active = false;\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(_Scheduler__WEBPACK_IMPORTED_MODULE_1__[\"Scheduler\"]));\n\n//# sourceMappingURL=AsyncScheduler.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/QueueAction.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/QueueAction.js ***! + \***********************************************************************/ +/*! exports provided: QueueAction */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QueueAction\", function() { return QueueAction; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncAction */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js\");\n\n\nvar QueueAction = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(QueueAction, _super);\n function QueueAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n QueueAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay > 0) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n };\n QueueAction.prototype.execute = function (state, delay) {\n return (delay > 0 || this.closed) ?\n _super.prototype.execute.call(this, state, delay) :\n this._execute(state, delay);\n };\n QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n return scheduler.flush(this);\n };\n return QueueAction;\n}(_AsyncAction__WEBPACK_IMPORTED_MODULE_1__[\"AsyncAction\"]));\n\n//# sourceMappingURL=QueueAction.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/QueueAction.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/QueueScheduler.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/QueueScheduler.js ***! + \**************************************************************************/ +/*! exports provided: QueueScheduler */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QueueScheduler\", function() { return QueueScheduler; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncScheduler */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js\");\n\n\nvar QueueScheduler = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(QueueScheduler, _super);\n function QueueScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return QueueScheduler;\n}(_AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__[\"AsyncScheduler\"]));\n\n//# sourceMappingURL=QueueScheduler.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/QueueScheduler.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/VirtualTimeScheduler.js": +/*!********************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/VirtualTimeScheduler.js ***! + \********************************************************************************/ +/*! exports provided: VirtualTimeScheduler, VirtualAction */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VirtualTimeScheduler\", function() { return VirtualTimeScheduler; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VirtualAction\", function() { return VirtualAction; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncAction */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js\");\n/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AsyncScheduler */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js\");\n\n\n\nvar VirtualTimeScheduler = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(VirtualTimeScheduler, _super);\n function VirtualTimeScheduler(SchedulerAction, maxFrames) {\n if (SchedulerAction === void 0) { SchedulerAction = VirtualAction; }\n if (maxFrames === void 0) { maxFrames = Number.POSITIVE_INFINITY; }\n var _this = _super.call(this, SchedulerAction, function () { return _this.frame; }) || this;\n _this.maxFrames = maxFrames;\n _this.frame = 0;\n _this.index = -1;\n return _this;\n }\n VirtualTimeScheduler.prototype.flush = function () {\n var _a = this, actions = _a.actions, maxFrames = _a.maxFrames;\n var error, action;\n while ((action = actions[0]) && action.delay <= maxFrames) {\n actions.shift();\n this.frame = action.delay;\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n }\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n VirtualTimeScheduler.frameTimeFactor = 10;\n return VirtualTimeScheduler;\n}(_AsyncScheduler__WEBPACK_IMPORTED_MODULE_2__[\"AsyncScheduler\"]));\n\nvar VirtualAction = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(VirtualAction, _super);\n function VirtualAction(scheduler, work, index) {\n if (index === void 0) { index = scheduler.index += 1; }\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.index = index;\n _this.active = true;\n _this.index = scheduler.index = index;\n return _this;\n }\n VirtualAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (!this.id) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.active = false;\n var action = new VirtualAction(this.scheduler, this.work);\n this.add(action);\n return action.schedule(state, delay);\n };\n VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n this.delay = scheduler.frame + delay;\n var actions = scheduler.actions;\n actions.push(this);\n actions.sort(VirtualAction.sortActions);\n return true;\n };\n VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n return undefined;\n };\n VirtualAction.prototype._execute = function (state, delay) {\n if (this.active === true) {\n return _super.prototype._execute.call(this, state, delay);\n }\n };\n VirtualAction.sortActions = function (a, b) {\n if (a.delay === b.delay) {\n if (a.index === b.index) {\n return 0;\n }\n else if (a.index > b.index) {\n return 1;\n }\n else {\n return -1;\n }\n }\n else if (a.delay > b.delay) {\n return 1;\n }\n else {\n return -1;\n }\n };\n return VirtualAction;\n}(_AsyncAction__WEBPACK_IMPORTED_MODULE_1__[\"AsyncAction\"]));\n\n//# sourceMappingURL=VirtualTimeScheduler.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/VirtualTimeScheduler.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/animationFrame.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/animationFrame.js ***! + \**************************************************************************/ +/*! exports provided: animationFrame */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"animationFrame\", function() { return animationFrame; });\n/* harmony import */ var _AnimationFrameAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AnimationFrameAction */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameAction.js\");\n/* harmony import */ var _AnimationFrameScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AnimationFrameScheduler */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameScheduler.js\");\n\n\nvar animationFrame = new _AnimationFrameScheduler__WEBPACK_IMPORTED_MODULE_1__[\"AnimationFrameScheduler\"](_AnimationFrameAction__WEBPACK_IMPORTED_MODULE_0__[\"AnimationFrameAction\"]);\n//# sourceMappingURL=animationFrame.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/animationFrame.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/asap.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/asap.js ***! + \****************************************************************/ +/*! exports provided: asap */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asap\", function() { return asap; });\n/* harmony import */ var _AsapAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AsapAction */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsapAction.js\");\n/* harmony import */ var _AsapScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsapScheduler */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsapScheduler.js\");\n\n\nvar asap = new _AsapScheduler__WEBPACK_IMPORTED_MODULE_1__[\"AsapScheduler\"](_AsapAction__WEBPACK_IMPORTED_MODULE_0__[\"AsapAction\"]);\n//# sourceMappingURL=asap.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/asap.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/async.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/async.js ***! + \*****************************************************************/ +/*! exports provided: async */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"async\", function() { return async; });\n/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AsyncAction */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js\");\n/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncScheduler */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js\");\n\n\nvar async = new _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__[\"AsyncScheduler\"](_AsyncAction__WEBPACK_IMPORTED_MODULE_0__[\"AsyncAction\"]);\n//# sourceMappingURL=async.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/async.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/queue.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/queue.js ***! + \*****************************************************************/ +/*! exports provided: queue */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"queue\", function() { return queue; });\n/* harmony import */ var _QueueAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./QueueAction */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/QueueAction.js\");\n/* harmony import */ var _QueueScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./QueueScheduler */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/QueueScheduler.js\");\n\n\nvar queue = new _QueueScheduler__WEBPACK_IMPORTED_MODULE_1__[\"QueueScheduler\"](_QueueAction__WEBPACK_IMPORTED_MODULE_0__[\"QueueAction\"]);\n//# sourceMappingURL=queue.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/queue.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js ***! + \*****************************************************************/ +/*! exports provided: getSymbolIterator, iterator, $$iterator */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getSymbolIterator\", function() { return getSymbolIterator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"iterator\", function() { return iterator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"$$iterator\", function() { return $$iterator; });\nfunction getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nvar iterator = getSymbolIterator();\nvar $$iterator = iterator;\n//# sourceMappingURL=iterator.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/symbol/observable.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/symbol/observable.js ***! + \*******************************************************************/ +/*! exports provided: observable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observable\", function() { return observable; });\nvar observable = (function () { return typeof Symbol === 'function' && Symbol.observable || '@@observable'; })();\n//# sourceMappingURL=observable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/symbol/observable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/symbol/rxSubscriber.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/symbol/rxSubscriber.js ***! + \*********************************************************************/ +/*! exports provided: rxSubscriber, $$rxSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rxSubscriber\", function() { return rxSubscriber; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"$$rxSubscriber\", function() { return $$rxSubscriber; });\nvar rxSubscriber = (function () {\n return typeof Symbol === 'function'\n ? Symbol('rxSubscriber')\n : '@@rxSubscriber_' + Math.random();\n})();\nvar $$rxSubscriber = rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/symbol/rxSubscriber.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js": +/*!******************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js ***! + \******************************************************************************/ +/*! exports provided: ArgumentOutOfRangeError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ArgumentOutOfRangeError\", function() { return ArgumentOutOfRangeError; });\nvar ArgumentOutOfRangeErrorImpl = (function () {\n function ArgumentOutOfRangeErrorImpl() {\n Error.call(this);\n this.message = 'argument out of range';\n this.name = 'ArgumentOutOfRangeError';\n return this;\n }\n ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);\n return ArgumentOutOfRangeErrorImpl;\n})();\nvar ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;\n//# sourceMappingURL=ArgumentOutOfRangeError.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js ***! + \*****************************************************************/ +/*! exports provided: EmptyError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EmptyError\", function() { return EmptyError; });\nvar EmptyErrorImpl = (function () {\n function EmptyErrorImpl() {\n Error.call(this);\n this.message = 'no elements in sequence';\n this.name = 'EmptyError';\n return this;\n }\n EmptyErrorImpl.prototype = Object.create(Error.prototype);\n return EmptyErrorImpl;\n})();\nvar EmptyError = EmptyErrorImpl;\n//# sourceMappingURL=EmptyError.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/Immediate.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/Immediate.js ***! + \****************************************************************/ +/*! exports provided: Immediate, TestTools */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Immediate\", function() { return Immediate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TestTools\", function() { return TestTools; });\nvar nextHandle = 1;\nvar resolved;\nvar activeHandles = {};\nfunction findAndClearHandle(handle) {\n if (handle in activeHandles) {\n delete activeHandles[handle];\n return true;\n }\n return false;\n}\nvar Immediate = {\n setImmediate: function (cb) {\n var handle = nextHandle++;\n activeHandles[handle] = true;\n if (!resolved) {\n resolved = Promise.resolve();\n }\n resolved.then(function () { return findAndClearHandle(handle) && cb(); });\n return handle;\n },\n clearImmediate: function (handle) {\n findAndClearHandle(handle);\n },\n};\nvar TestTools = {\n pending: function () {\n return Object.keys(activeHandles).length;\n }\n};\n//# sourceMappingURL=Immediate.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/Immediate.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js": +/*!******************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js ***! + \******************************************************************************/ +/*! exports provided: ObjectUnsubscribedError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObjectUnsubscribedError\", function() { return ObjectUnsubscribedError; });\nvar ObjectUnsubscribedErrorImpl = (function () {\n function ObjectUnsubscribedErrorImpl() {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n }\n ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\n return ObjectUnsubscribedErrorImpl;\n})();\nvar ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n//# sourceMappingURL=ObjectUnsubscribedError.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/TimeoutError.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/TimeoutError.js ***! + \*******************************************************************/ +/*! exports provided: TimeoutError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TimeoutError\", function() { return TimeoutError; });\nvar TimeoutErrorImpl = (function () {\n function TimeoutErrorImpl() {\n Error.call(this);\n this.message = 'Timeout has occurred';\n this.name = 'TimeoutError';\n return this;\n }\n TimeoutErrorImpl.prototype = Object.create(Error.prototype);\n return TimeoutErrorImpl;\n})();\nvar TimeoutError = TimeoutErrorImpl;\n//# sourceMappingURL=TimeoutError.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/TimeoutError.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js ***! + \**************************************************************************/ +/*! exports provided: UnsubscriptionError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UnsubscriptionError\", function() { return UnsubscriptionError; });\nvar UnsubscriptionErrorImpl = (function () {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ') : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n})();\nvar UnsubscriptionError = UnsubscriptionErrorImpl;\n//# sourceMappingURL=UnsubscriptionError.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/canReportError.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/canReportError.js ***! + \*********************************************************************/ +/*! exports provided: canReportError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"canReportError\", function() { return canReportError; });\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\nfunction canReportError(observer) {\n while (observer) {\n var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped;\n if (closed_1 || isStopped) {\n return false;\n }\n else if (destination && destination instanceof _Subscriber__WEBPACK_IMPORTED_MODULE_0__[\"Subscriber\"]) {\n observer = destination;\n }\n else {\n observer = null;\n }\n }\n return true;\n}\n//# sourceMappingURL=canReportError.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/canReportError.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/deferred.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/deferred.js ***! + \***************************************************************/ +/*! exports provided: Deferred */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Deferred\", function() { return Deferred; });\nvar Deferred = (function () {\n function Deferred() {\n var _this = this;\n this.resolve = null;\n this.reject = null;\n this.promise = new Promise(function (a, b) {\n _this.resolve = a;\n _this.reject = b;\n });\n }\n return Deferred;\n}());\n\n//# sourceMappingURL=deferred.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/deferred.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/hostReportError.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/hostReportError.js ***! + \**********************************************************************/ +/*! exports provided: hostReportError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hostReportError\", function() { return hostReportError; });\nfunction hostReportError(err) {\n setTimeout(function () { throw err; }, 0);\n}\n//# sourceMappingURL=hostReportError.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/hostReportError.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/identity.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/identity.js ***! + \***************************************************************/ +/*! exports provided: identity */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"identity\", function() { return identity; });\nfunction identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/identity.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isArray.js": +/*!**************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isArray.js ***! + \**************************************************************/ +/*! exports provided: isArray */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isArray\", function() { return isArray; });\nvar isArray = (function () { return Array.isArray || (function (x) { return x && typeof x.length === 'number'; }); })();\n//# sourceMappingURL=isArray.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isArray.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js ***! + \******************************************************************/ +/*! exports provided: isArrayLike */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isArrayLike\", function() { return isArrayLike; });\nvar isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isDate.js": +/*!*************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isDate.js ***! + \*************************************************************/ +/*! exports provided: isDate */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isDate\", function() { return isDate; });\nfunction isDate(value) {\n return value instanceof Date && !isNaN(+value);\n}\n//# sourceMappingURL=isDate.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isDate.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isFunction.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isFunction.js ***! + \*****************************************************************/ +/*! exports provided: isFunction */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFunction\", function() { return isFunction; });\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n//# sourceMappingURL=isFunction.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isFunction.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js ***! + \**************************************************************************/ +/*! exports provided: isInteropObservable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isInteropObservable\", function() { return isInteropObservable; });\n/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../symbol/observable */ \"./node_modules/rxjs/dist/esm5/internal/symbol/observable.js\");\n\nfunction isInteropObservable(input) {\n return input && typeof input[_symbol_observable__WEBPACK_IMPORTED_MODULE_0__[\"observable\"]] === 'function';\n}\n//# sourceMappingURL=isInteropObservable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isIterable.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isIterable.js ***! + \*****************************************************************/ +/*! exports provided: isIterable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isIterable\", function() { return isIterable; });\n/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../symbol/iterator */ \"./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js\");\n\nfunction isIterable(input) {\n return input && typeof input[_symbol_iterator__WEBPACK_IMPORTED_MODULE_0__[\"iterator\"]] === 'function';\n}\n//# sourceMappingURL=isIterable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isIterable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isNumeric.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isNumeric.js ***! + \****************************************************************/ +/*! exports provided: isNumeric */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isNumeric\", function() { return isNumeric; });\n/* harmony import */ var _isArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n\nfunction isNumeric(val) {\n return !Object(_isArray__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(val) && (val - parseFloat(val) + 1) >= 0;\n}\n//# sourceMappingURL=isNumeric.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isNumeric.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isObject.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isObject.js ***! + \***************************************************************/ +/*! exports provided: isObject */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObject\", function() { return isObject; });\nfunction isObject(x) {\n return x !== null && typeof x === 'object';\n}\n//# sourceMappingURL=isObject.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isObject.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isObservable.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isObservable.js ***! + \*******************************************************************/ +/*! exports provided: isObservable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservable\", function() { return isObservable; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n\nfunction isObservable(obj) {\n return !!obj && (obj instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"] || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function'));\n}\n//# sourceMappingURL=isObservable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isObservable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isPromise.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isPromise.js ***! + \****************************************************************/ +/*! exports provided: isPromise */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isPromise\", function() { return isPromise; });\nfunction isPromise(value) {\n return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n//# sourceMappingURL=isPromise.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isPromise.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js ***! + \******************************************************************/ +/*! exports provided: isScheduler */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isScheduler\", function() { return isScheduler; });\nfunction isScheduler(value) {\n return value && typeof value.schedule === 'function';\n}\n//# sourceMappingURL=isScheduler.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/noop.js": +/*!***********************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/noop.js ***! + \***********************************************************/ +/*! exports provided: noop */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"noop\", function() { return noop; });\nfunction noop() { }\n//# sourceMappingURL=noop.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/noop.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/not.js": +/*!**********************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/not.js ***! + \**********************************************************/ +/*! exports provided: not */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"not\", function() { return not; });\nfunction not(pred, thisArg) {\n function notPred() {\n return !(notPred.pred.apply(notPred.thisArg, arguments));\n }\n notPred.pred = pred;\n notPred.thisArg = thisArg;\n return notPred;\n}\n//# sourceMappingURL=not.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/not.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/pipe.js": +/*!***********************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/pipe.js ***! + \***********************************************************/ +/*! exports provided: pipe, pipeFromArray */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pipe\", function() { return pipe; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pipeFromArray\", function() { return pipeFromArray; });\n/* harmony import */ var _identity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./identity */ \"./node_modules/rxjs/dist/esm5/internal/util/identity.js\");\n\nfunction pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nfunction pipeFromArray(fns) {\n if (fns.length === 0) {\n return _identity__WEBPACK_IMPORTED_MODULE_0__[\"identity\"];\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/pipe.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/root.js": +/*!***********************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/root.js ***! + \***********************************************************/ +/*! exports provided: root */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"root\", function() { return _root; });\nvar __window = typeof window !== 'undefined' && window;\nvar __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self;\nvar __global = typeof global !== 'undefined' && global;\nvar _root = __window || __global || __self;\n(function () {\n if (!_root) {\n throw new Error('RxJS could not find any global context (window, self, global)');\n }\n})();\n\n//# sourceMappingURL=root.js.map\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/root.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/subscribeTo.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/subscribeTo.js ***! + \******************************************************************/ +/*! exports provided: subscribeTo */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subscribeTo\", function() { return subscribeTo; });\n/* harmony import */ var _subscribeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./subscribeToArray */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToArray.js\");\n/* harmony import */ var _subscribeToPromise__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./subscribeToPromise */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToPromise.js\");\n/* harmony import */ var _subscribeToIterable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./subscribeToIterable */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToIterable.js\");\n/* harmony import */ var _subscribeToObservable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./subscribeToObservable */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToObservable.js\");\n/* harmony import */ var _isArrayLike__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./isArrayLike */ \"./node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js\");\n/* harmony import */ var _isPromise__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./isPromise */ \"./node_modules/rxjs/dist/esm5/internal/util/isPromise.js\");\n/* harmony import */ var _isObject__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./isObject */ \"./node_modules/rxjs/dist/esm5/internal/util/isObject.js\");\n/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../symbol/iterator */ \"./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js\");\n/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../symbol/observable */ \"./node_modules/rxjs/dist/esm5/internal/symbol/observable.js\");\n/* harmony import */ var _subscribeToAsyncIterable__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./subscribeToAsyncIterable */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToAsyncIterable.js\");\n\n\n\n\n\n\n\n\n\n\nvar subscribeTo = function (result) {\n if (!!result && typeof result[_symbol_observable__WEBPACK_IMPORTED_MODULE_8__[\"observable\"]] === 'function') {\n return Object(_subscribeToObservable__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToObservable\"])(result);\n }\n else if (Object(_isArrayLike__WEBPACK_IMPORTED_MODULE_4__[\"isArrayLike\"])(result)) {\n return Object(_subscribeToArray__WEBPACK_IMPORTED_MODULE_0__[\"subscribeToArray\"])(result);\n }\n else if (Object(_isPromise__WEBPACK_IMPORTED_MODULE_5__[\"isPromise\"])(result)) {\n return Object(_subscribeToPromise__WEBPACK_IMPORTED_MODULE_1__[\"subscribeToPromise\"])(result);\n }\n else if (!!result && typeof result[_symbol_iterator__WEBPACK_IMPORTED_MODULE_7__[\"iterator\"]] === 'function') {\n return Object(_subscribeToIterable__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToIterable\"])(result);\n }\n else if (Symbol && Symbol.asyncIterator &&\n !!result && typeof result[Symbol.asyncIterator] === 'function') {\n return Object(_subscribeToAsyncIterable__WEBPACK_IMPORTED_MODULE_9__[\"subscribeToAsyncIterable\"])(result);\n }\n else {\n var value = Object(_isObject__WEBPACK_IMPORTED_MODULE_6__[\"isObject\"])(result) ? 'an invalid object' : \"'\" + result + \"'\";\n var msg = \"You provided \" + value + \" where a stream was expected.\"\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n//# sourceMappingURL=subscribeTo.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeTo.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/subscribeToArray.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/subscribeToArray.js ***! + \***********************************************************************/ +/*! exports provided: subscribeToArray */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subscribeToArray\", function() { return subscribeToArray; });\nvar subscribeToArray = function (array) { return function (subscriber) {\n for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n}; };\n//# sourceMappingURL=subscribeToArray.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToArray.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/subscribeToAsyncIterable.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/subscribeToAsyncIterable.js ***! + \*******************************************************************************/ +/*! exports provided: subscribeToAsyncIterable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subscribeToAsyncIterable\", function() { return subscribeToAsyncIterable; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\nfunction subscribeToAsyncIterable(asyncIterable) {\n return function (subscriber) {\n process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); });\n };\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_1, _a;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var value, e_1_1;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 11]);\n asyncIterable_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__asyncValues\"])(asyncIterable);\n _b.label = 1;\n case 1: return [4, asyncIterable_1.next()];\n case 2:\n if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4];\n value = asyncIterable_1_1.value;\n subscriber.next(value);\n _b.label = 3;\n case 3: return [3, 1];\n case 4: return [3, 11];\n case 5:\n e_1_1 = _b.sent();\n e_1 = { error: e_1_1 };\n return [3, 11];\n case 6:\n _b.trys.push([6, , 9, 10]);\n if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8];\n return [4, _a.call(asyncIterable_1)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [3, 10];\n case 9:\n if (e_1) throw e_1.error;\n return [7];\n case 10: return [7];\n case 11:\n subscriber.complete();\n return [2];\n }\n });\n });\n}\n//# sourceMappingURL=subscribeToAsyncIterable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToAsyncIterable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/subscribeToIterable.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/subscribeToIterable.js ***! + \**************************************************************************/ +/*! exports provided: subscribeToIterable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subscribeToIterable\", function() { return subscribeToIterable; });\n/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../symbol/iterator */ \"./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js\");\n\nvar subscribeToIterable = function (iterable) { return function (subscriber) {\n var iterator = iterable[_symbol_iterator__WEBPACK_IMPORTED_MODULE_0__[\"iterator\"]]();\n do {\n var item = iterator.next();\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n if (typeof iterator.return === 'function') {\n subscriber.add(function () {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n return subscriber;\n}; };\n//# sourceMappingURL=subscribeToIterable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToIterable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/subscribeToObservable.js": +/*!****************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/subscribeToObservable.js ***! + \****************************************************************************/ +/*! exports provided: subscribeToObservable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subscribeToObservable\", function() { return subscribeToObservable; });\n/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../symbol/observable */ \"./node_modules/rxjs/dist/esm5/internal/symbol/observable.js\");\n\nvar subscribeToObservable = function (obj) { return function (subscriber) {\n var obs = obj[_symbol_observable__WEBPACK_IMPORTED_MODULE_0__[\"observable\"]]();\n if (typeof obs.subscribe !== 'function') {\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n }\n else {\n return obs.subscribe(subscriber);\n }\n}; };\n//# sourceMappingURL=subscribeToObservable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToObservable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/subscribeToPromise.js": +/*!*************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/subscribeToPromise.js ***! + \*************************************************************************/ +/*! exports provided: subscribeToPromise */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subscribeToPromise\", function() { return subscribeToPromise; });\n/* harmony import */ var _hostReportError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hostReportError */ \"./node_modules/rxjs/dist/esm5/internal/util/hostReportError.js\");\n\nvar subscribeToPromise = function (promise) { return function (subscriber) {\n promise.then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, _hostReportError__WEBPACK_IMPORTED_MODULE_0__[\"hostReportError\"]);\n return subscriber;\n}; };\n//# sourceMappingURL=subscribeToPromise.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToPromise.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js": +/*!************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js ***! + \************************************************************************/ +/*! exports provided: subscribeToResult */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subscribeToResult\", function() { return subscribeToResult; });\n/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../InnerSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js\");\n/* harmony import */ var _subscribeTo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./subscribeTo */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeTo.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n\n\n\nfunction subscribeToResult(outerSubscriber, result, outerValue, outerIndex, innerSubscriber) {\n if (innerSubscriber === void 0) { innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_0__[\"InnerSubscriber\"](outerSubscriber, outerValue, outerIndex); }\n if (innerSubscriber.closed) {\n return undefined;\n }\n if (result instanceof _Observable__WEBPACK_IMPORTED_MODULE_2__[\"Observable\"]) {\n return result.subscribe(innerSubscriber);\n }\n return Object(_subscribeTo__WEBPACK_IMPORTED_MODULE_1__[\"subscribeTo\"])(result)(innerSubscriber);\n}\n//# sourceMappingURL=subscribeToResult.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/toSubscriber.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/toSubscriber.js ***! + \*******************************************************************/ +/*! exports provided: toSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toSubscriber\", function() { return toSubscriber; });\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../symbol/rxSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/symbol/rxSubscriber.js\");\n/* harmony import */ var _Observer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Observer */ \"./node_modules/rxjs/dist/esm5/internal/Observer.js\");\n\n\n\nfunction toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof _Subscriber__WEBPACK_IMPORTED_MODULE_0__[\"Subscriber\"]) {\n return nextOrObserver;\n }\n if (nextOrObserver[_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"rxSubscriber\"]]) {\n return nextOrObserver[_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"rxSubscriber\"]]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new _Subscriber__WEBPACK_IMPORTED_MODULE_0__[\"Subscriber\"](_Observer__WEBPACK_IMPORTED_MODULE_2__[\"empty\"]);\n }\n return new _Subscriber__WEBPACK_IMPORTED_MODULE_0__[\"Subscriber\"](nextOrObserver, error, complete);\n}\n//# sourceMappingURL=toSubscriber.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/toSubscriber.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/operators/index.js": +/*!********************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/operators/index.js ***! + \********************************************************/ +/*! exports provided: audit, auditTime, buffer, bufferCount, bufferTime, bufferToggle, bufferWhen, catchError, combineAll, combineLatest, combineLatestWith, concat, concatAll, concatMap, concatMapTo, concatWith, count, debounce, debounceTime, defaultIfEmpty, delay, delayWhen, dematerialize, distinct, distinctUntilChanged, distinctUntilKeyChanged, elementAt, endWith, every, exhaust, exhaustMap, expand, filter, finalize, find, findIndex, first, groupBy, ignoreElements, isEmpty, last, map, mapTo, materialize, max, mergeWith, merge, mergeAll, mergeMap, flatMap, mergeMapTo, mergeScan, min, multicast, observeOn, onErrorResumeNext, pairwise, partition, pluck, publish, publishBehavior, publishLast, publishReplay, race, reduce, repeat, repeatWhen, retry, retryWhen, refCount, sample, sampleTime, scan, sequenceEqual, share, shareReplay, single, skip, skipLast, skipUntil, skipWhile, startWith, subscribeOn, switchAll, switchMap, switchMapTo, take, takeLast, takeUntil, takeWhile, tap, throttle, throttleTime, throwIfEmpty, timeInterval, timeout, timeoutWith, timestamp, toArray, window, windowCount, windowTime, windowToggle, windowWhen, withLatestFrom, zip, zipWith, zipAll */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_operators_audit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../internal/operators/audit */ \"./node_modules/rxjs/dist/esm5/internal/operators/audit.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"audit\", function() { return _internal_operators_audit__WEBPACK_IMPORTED_MODULE_0__[\"audit\"]; });\n\n/* harmony import */ var _internal_operators_auditTime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../internal/operators/auditTime */ \"./node_modules/rxjs/dist/esm5/internal/operators/auditTime.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"auditTime\", function() { return _internal_operators_auditTime__WEBPACK_IMPORTED_MODULE_1__[\"auditTime\"]; });\n\n/* harmony import */ var _internal_operators_buffer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../internal/operators/buffer */ \"./node_modules/rxjs/dist/esm5/internal/operators/buffer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"buffer\", function() { return _internal_operators_buffer__WEBPACK_IMPORTED_MODULE_2__[\"buffer\"]; });\n\n/* harmony import */ var _internal_operators_bufferCount__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../internal/operators/bufferCount */ \"./node_modules/rxjs/dist/esm5/internal/operators/bufferCount.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bufferCount\", function() { return _internal_operators_bufferCount__WEBPACK_IMPORTED_MODULE_3__[\"bufferCount\"]; });\n\n/* harmony import */ var _internal_operators_bufferTime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../internal/operators/bufferTime */ \"./node_modules/rxjs/dist/esm5/internal/operators/bufferTime.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bufferTime\", function() { return _internal_operators_bufferTime__WEBPACK_IMPORTED_MODULE_4__[\"bufferTime\"]; });\n\n/* harmony import */ var _internal_operators_bufferToggle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../internal/operators/bufferToggle */ \"./node_modules/rxjs/dist/esm5/internal/operators/bufferToggle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bufferToggle\", function() { return _internal_operators_bufferToggle__WEBPACK_IMPORTED_MODULE_5__[\"bufferToggle\"]; });\n\n/* harmony import */ var _internal_operators_bufferWhen__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../internal/operators/bufferWhen */ \"./node_modules/rxjs/dist/esm5/internal/operators/bufferWhen.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bufferWhen\", function() { return _internal_operators_bufferWhen__WEBPACK_IMPORTED_MODULE_6__[\"bufferWhen\"]; });\n\n/* harmony import */ var _internal_operators_catchError__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../internal/operators/catchError */ \"./node_modules/rxjs/dist/esm5/internal/operators/catchError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"catchError\", function() { return _internal_operators_catchError__WEBPACK_IMPORTED_MODULE_7__[\"catchError\"]; });\n\n/* harmony import */ var _internal_operators_combineAll__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../internal/operators/combineAll */ \"./node_modules/rxjs/dist/esm5/internal/operators/combineAll.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"combineAll\", function() { return _internal_operators_combineAll__WEBPACK_IMPORTED_MODULE_8__[\"combineAll\"]; });\n\n/* harmony import */ var _internal_operators_combineLatestWith__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../internal/operators/combineLatestWith */ \"./node_modules/rxjs/dist/esm5/internal/operators/combineLatestWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"combineLatest\", function() { return _internal_operators_combineLatestWith__WEBPACK_IMPORTED_MODULE_9__[\"combineLatest\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"combineLatestWith\", function() { return _internal_operators_combineLatestWith__WEBPACK_IMPORTED_MODULE_9__[\"combineLatestWith\"]; });\n\n/* harmony import */ var _internal_operators_concat__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../internal/operators/concat */ \"./node_modules/rxjs/dist/esm5/internal/operators/concat.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"concat\", function() { return _internal_operators_concat__WEBPACK_IMPORTED_MODULE_10__[\"concat\"]; });\n\n/* harmony import */ var _internal_operators_concatAll__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../internal/operators/concatAll */ \"./node_modules/rxjs/dist/esm5/internal/operators/concatAll.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"concatAll\", function() { return _internal_operators_concatAll__WEBPACK_IMPORTED_MODULE_11__[\"concatAll\"]; });\n\n/* harmony import */ var _internal_operators_concatMap__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../internal/operators/concatMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/concatMap.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"concatMap\", function() { return _internal_operators_concatMap__WEBPACK_IMPORTED_MODULE_12__[\"concatMap\"]; });\n\n/* harmony import */ var _internal_operators_concatMapTo__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../internal/operators/concatMapTo */ \"./node_modules/rxjs/dist/esm5/internal/operators/concatMapTo.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"concatMapTo\", function() { return _internal_operators_concatMapTo__WEBPACK_IMPORTED_MODULE_13__[\"concatMapTo\"]; });\n\n/* harmony import */ var _internal_operators_concatWith__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../internal/operators/concatWith */ \"./node_modules/rxjs/dist/esm5/internal/operators/concatWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"concatWith\", function() { return _internal_operators_concatWith__WEBPACK_IMPORTED_MODULE_14__[\"concatWith\"]; });\n\n/* harmony import */ var _internal_operators_count__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../internal/operators/count */ \"./node_modules/rxjs/dist/esm5/internal/operators/count.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"count\", function() { return _internal_operators_count__WEBPACK_IMPORTED_MODULE_15__[\"count\"]; });\n\n/* harmony import */ var _internal_operators_debounce__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../internal/operators/debounce */ \"./node_modules/rxjs/dist/esm5/internal/operators/debounce.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"debounce\", function() { return _internal_operators_debounce__WEBPACK_IMPORTED_MODULE_16__[\"debounce\"]; });\n\n/* harmony import */ var _internal_operators_debounceTime__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../internal/operators/debounceTime */ \"./node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"debounceTime\", function() { return _internal_operators_debounceTime__WEBPACK_IMPORTED_MODULE_17__[\"debounceTime\"]; });\n\n/* harmony import */ var _internal_operators_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../internal/operators/defaultIfEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"defaultIfEmpty\", function() { return _internal_operators_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_18__[\"defaultIfEmpty\"]; });\n\n/* harmony import */ var _internal_operators_delay__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../internal/operators/delay */ \"./node_modules/rxjs/dist/esm5/internal/operators/delay.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"delay\", function() { return _internal_operators_delay__WEBPACK_IMPORTED_MODULE_19__[\"delay\"]; });\n\n/* harmony import */ var _internal_operators_delayWhen__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../internal/operators/delayWhen */ \"./node_modules/rxjs/dist/esm5/internal/operators/delayWhen.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"delayWhen\", function() { return _internal_operators_delayWhen__WEBPACK_IMPORTED_MODULE_20__[\"delayWhen\"]; });\n\n/* harmony import */ var _internal_operators_dematerialize__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../internal/operators/dematerialize */ \"./node_modules/rxjs/dist/esm5/internal/operators/dematerialize.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dematerialize\", function() { return _internal_operators_dematerialize__WEBPACK_IMPORTED_MODULE_21__[\"dematerialize\"]; });\n\n/* harmony import */ var _internal_operators_distinct__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../internal/operators/distinct */ \"./node_modules/rxjs/dist/esm5/internal/operators/distinct.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"distinct\", function() { return _internal_operators_distinct__WEBPACK_IMPORTED_MODULE_22__[\"distinct\"]; });\n\n/* harmony import */ var _internal_operators_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../internal/operators/distinctUntilChanged */ \"./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"distinctUntilChanged\", function() { return _internal_operators_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_23__[\"distinctUntilChanged\"]; });\n\n/* harmony import */ var _internal_operators_distinctUntilKeyChanged__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../internal/operators/distinctUntilKeyChanged */ \"./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilKeyChanged.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"distinctUntilKeyChanged\", function() { return _internal_operators_distinctUntilKeyChanged__WEBPACK_IMPORTED_MODULE_24__[\"distinctUntilKeyChanged\"]; });\n\n/* harmony import */ var _internal_operators_elementAt__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../internal/operators/elementAt */ \"./node_modules/rxjs/dist/esm5/internal/operators/elementAt.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"elementAt\", function() { return _internal_operators_elementAt__WEBPACK_IMPORTED_MODULE_25__[\"elementAt\"]; });\n\n/* harmony import */ var _internal_operators_endWith__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../internal/operators/endWith */ \"./node_modules/rxjs/dist/esm5/internal/operators/endWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"endWith\", function() { return _internal_operators_endWith__WEBPACK_IMPORTED_MODULE_26__[\"endWith\"]; });\n\n/* harmony import */ var _internal_operators_every__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../internal/operators/every */ \"./node_modules/rxjs/dist/esm5/internal/operators/every.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"every\", function() { return _internal_operators_every__WEBPACK_IMPORTED_MODULE_27__[\"every\"]; });\n\n/* harmony import */ var _internal_operators_exhaust__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../internal/operators/exhaust */ \"./node_modules/rxjs/dist/esm5/internal/operators/exhaust.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"exhaust\", function() { return _internal_operators_exhaust__WEBPACK_IMPORTED_MODULE_28__[\"exhaust\"]; });\n\n/* harmony import */ var _internal_operators_exhaustMap__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../internal/operators/exhaustMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/exhaustMap.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"exhaustMap\", function() { return _internal_operators_exhaustMap__WEBPACK_IMPORTED_MODULE_29__[\"exhaustMap\"]; });\n\n/* harmony import */ var _internal_operators_expand__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../internal/operators/expand */ \"./node_modules/rxjs/dist/esm5/internal/operators/expand.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"expand\", function() { return _internal_operators_expand__WEBPACK_IMPORTED_MODULE_30__[\"expand\"]; });\n\n/* harmony import */ var _internal_operators_filter__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ../internal/operators/filter */ \"./node_modules/rxjs/dist/esm5/internal/operators/filter.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"filter\", function() { return _internal_operators_filter__WEBPACK_IMPORTED_MODULE_31__[\"filter\"]; });\n\n/* harmony import */ var _internal_operators_finalize__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ../internal/operators/finalize */ \"./node_modules/rxjs/dist/esm5/internal/operators/finalize.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"finalize\", function() { return _internal_operators_finalize__WEBPACK_IMPORTED_MODULE_32__[\"finalize\"]; });\n\n/* harmony import */ var _internal_operators_find__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ../internal/operators/find */ \"./node_modules/rxjs/dist/esm5/internal/operators/find.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"find\", function() { return _internal_operators_find__WEBPACK_IMPORTED_MODULE_33__[\"find\"]; });\n\n/* harmony import */ var _internal_operators_findIndex__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ../internal/operators/findIndex */ \"./node_modules/rxjs/dist/esm5/internal/operators/findIndex.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"findIndex\", function() { return _internal_operators_findIndex__WEBPACK_IMPORTED_MODULE_34__[\"findIndex\"]; });\n\n/* harmony import */ var _internal_operators_first__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ../internal/operators/first */ \"./node_modules/rxjs/dist/esm5/internal/operators/first.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"first\", function() { return _internal_operators_first__WEBPACK_IMPORTED_MODULE_35__[\"first\"]; });\n\n/* harmony import */ var _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ../internal/operators/groupBy */ \"./node_modules/rxjs/dist/esm5/internal/operators/groupBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"groupBy\", function() { return _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_36__[\"groupBy\"]; });\n\n/* harmony import */ var _internal_operators_ignoreElements__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ../internal/operators/ignoreElements */ \"./node_modules/rxjs/dist/esm5/internal/operators/ignoreElements.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ignoreElements\", function() { return _internal_operators_ignoreElements__WEBPACK_IMPORTED_MODULE_37__[\"ignoreElements\"]; });\n\n/* harmony import */ var _internal_operators_isEmpty__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ../internal/operators/isEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/isEmpty.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isEmpty\", function() { return _internal_operators_isEmpty__WEBPACK_IMPORTED_MODULE_38__[\"isEmpty\"]; });\n\n/* harmony import */ var _internal_operators_last__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ../internal/operators/last */ \"./node_modules/rxjs/dist/esm5/internal/operators/last.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"last\", function() { return _internal_operators_last__WEBPACK_IMPORTED_MODULE_39__[\"last\"]; });\n\n/* harmony import */ var _internal_operators_map__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ../internal/operators/map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"map\", function() { return _internal_operators_map__WEBPACK_IMPORTED_MODULE_40__[\"map\"]; });\n\n/* harmony import */ var _internal_operators_mapTo__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ../internal/operators/mapTo */ \"./node_modules/rxjs/dist/esm5/internal/operators/mapTo.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mapTo\", function() { return _internal_operators_mapTo__WEBPACK_IMPORTED_MODULE_41__[\"mapTo\"]; });\n\n/* harmony import */ var _internal_operators_materialize__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ../internal/operators/materialize */ \"./node_modules/rxjs/dist/esm5/internal/operators/materialize.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"materialize\", function() { return _internal_operators_materialize__WEBPACK_IMPORTED_MODULE_42__[\"materialize\"]; });\n\n/* harmony import */ var _internal_operators_max__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ../internal/operators/max */ \"./node_modules/rxjs/dist/esm5/internal/operators/max.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"max\", function() { return _internal_operators_max__WEBPACK_IMPORTED_MODULE_43__[\"max\"]; });\n\n/* harmony import */ var _internal_operators_mergeWith__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ../internal/operators/mergeWith */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeWith\", function() { return _internal_operators_mergeWith__WEBPACK_IMPORTED_MODULE_44__[\"mergeWith\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"merge\", function() { return _internal_operators_mergeWith__WEBPACK_IMPORTED_MODULE_44__[\"merge\"]; });\n\n/* harmony import */ var _internal_operators_mergeAll__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ../internal/operators/mergeAll */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeAll\", function() { return _internal_operators_mergeAll__WEBPACK_IMPORTED_MODULE_45__[\"mergeAll\"]; });\n\n/* harmony import */ var _internal_operators_mergeMap__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ../internal/operators/mergeMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeMap\", function() { return _internal_operators_mergeMap__WEBPACK_IMPORTED_MODULE_46__[\"mergeMap\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"flatMap\", function() { return _internal_operators_mergeMap__WEBPACK_IMPORTED_MODULE_46__[\"mergeMap\"]; });\n\n/* harmony import */ var _internal_operators_mergeMapTo__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ../internal/operators/mergeMapTo */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeMapTo.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeMapTo\", function() { return _internal_operators_mergeMapTo__WEBPACK_IMPORTED_MODULE_47__[\"mergeMapTo\"]; });\n\n/* harmony import */ var _internal_operators_mergeScan__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ../internal/operators/mergeScan */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeScan.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeScan\", function() { return _internal_operators_mergeScan__WEBPACK_IMPORTED_MODULE_48__[\"mergeScan\"]; });\n\n/* harmony import */ var _internal_operators_min__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ../internal/operators/min */ \"./node_modules/rxjs/dist/esm5/internal/operators/min.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"min\", function() { return _internal_operators_min__WEBPACK_IMPORTED_MODULE_49__[\"min\"]; });\n\n/* harmony import */ var _internal_operators_multicast__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ../internal/operators/multicast */ \"./node_modules/rxjs/dist/esm5/internal/operators/multicast.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"multicast\", function() { return _internal_operators_multicast__WEBPACK_IMPORTED_MODULE_50__[\"multicast\"]; });\n\n/* harmony import */ var _internal_operators_observeOn__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ../internal/operators/observeOn */ \"./node_modules/rxjs/dist/esm5/internal/operators/observeOn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"observeOn\", function() { return _internal_operators_observeOn__WEBPACK_IMPORTED_MODULE_51__[\"observeOn\"]; });\n\n/* harmony import */ var _internal_operators_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ../internal/operators/onErrorResumeNext */ \"./node_modules/rxjs/dist/esm5/internal/operators/onErrorResumeNext.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"onErrorResumeNext\", function() { return _internal_operators_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_52__[\"onErrorResumeNext\"]; });\n\n/* harmony import */ var _internal_operators_pairwise__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ../internal/operators/pairwise */ \"./node_modules/rxjs/dist/esm5/internal/operators/pairwise.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pairwise\", function() { return _internal_operators_pairwise__WEBPACK_IMPORTED_MODULE_53__[\"pairwise\"]; });\n\n/* harmony import */ var _internal_operators_partition__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ../internal/operators/partition */ \"./node_modules/rxjs/dist/esm5/internal/operators/partition.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"partition\", function() { return _internal_operators_partition__WEBPACK_IMPORTED_MODULE_54__[\"partition\"]; });\n\n/* harmony import */ var _internal_operators_pluck__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ../internal/operators/pluck */ \"./node_modules/rxjs/dist/esm5/internal/operators/pluck.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pluck\", function() { return _internal_operators_pluck__WEBPACK_IMPORTED_MODULE_55__[\"pluck\"]; });\n\n/* harmony import */ var _internal_operators_publish__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ../internal/operators/publish */ \"./node_modules/rxjs/dist/esm5/internal/operators/publish.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"publish\", function() { return _internal_operators_publish__WEBPACK_IMPORTED_MODULE_56__[\"publish\"]; });\n\n/* harmony import */ var _internal_operators_publishBehavior__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ../internal/operators/publishBehavior */ \"./node_modules/rxjs/dist/esm5/internal/operators/publishBehavior.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"publishBehavior\", function() { return _internal_operators_publishBehavior__WEBPACK_IMPORTED_MODULE_57__[\"publishBehavior\"]; });\n\n/* harmony import */ var _internal_operators_publishLast__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ../internal/operators/publishLast */ \"./node_modules/rxjs/dist/esm5/internal/operators/publishLast.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"publishLast\", function() { return _internal_operators_publishLast__WEBPACK_IMPORTED_MODULE_58__[\"publishLast\"]; });\n\n/* harmony import */ var _internal_operators_publishReplay__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ../internal/operators/publishReplay */ \"./node_modules/rxjs/dist/esm5/internal/operators/publishReplay.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"publishReplay\", function() { return _internal_operators_publishReplay__WEBPACK_IMPORTED_MODULE_59__[\"publishReplay\"]; });\n\n/* harmony import */ var _internal_operators_race__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ../internal/operators/race */ \"./node_modules/rxjs/dist/esm5/internal/operators/race.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"race\", function() { return _internal_operators_race__WEBPACK_IMPORTED_MODULE_60__[\"race\"]; });\n\n/* harmony import */ var _internal_operators_reduce__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ../internal/operators/reduce */ \"./node_modules/rxjs/dist/esm5/internal/operators/reduce.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reduce\", function() { return _internal_operators_reduce__WEBPACK_IMPORTED_MODULE_61__[\"reduce\"]; });\n\n/* harmony import */ var _internal_operators_repeat__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ../internal/operators/repeat */ \"./node_modules/rxjs/dist/esm5/internal/operators/repeat.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"repeat\", function() { return _internal_operators_repeat__WEBPACK_IMPORTED_MODULE_62__[\"repeat\"]; });\n\n/* harmony import */ var _internal_operators_repeatWhen__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ../internal/operators/repeatWhen */ \"./node_modules/rxjs/dist/esm5/internal/operators/repeatWhen.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"repeatWhen\", function() { return _internal_operators_repeatWhen__WEBPACK_IMPORTED_MODULE_63__[\"repeatWhen\"]; });\n\n/* harmony import */ var _internal_operators_retry__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ../internal/operators/retry */ \"./node_modules/rxjs/dist/esm5/internal/operators/retry.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"retry\", function() { return _internal_operators_retry__WEBPACK_IMPORTED_MODULE_64__[\"retry\"]; });\n\n/* harmony import */ var _internal_operators_retryWhen__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ../internal/operators/retryWhen */ \"./node_modules/rxjs/dist/esm5/internal/operators/retryWhen.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"retryWhen\", function() { return _internal_operators_retryWhen__WEBPACK_IMPORTED_MODULE_65__[\"retryWhen\"]; });\n\n/* harmony import */ var _internal_operators_refCount__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ../internal/operators/refCount */ \"./node_modules/rxjs/dist/esm5/internal/operators/refCount.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"refCount\", function() { return _internal_operators_refCount__WEBPACK_IMPORTED_MODULE_66__[\"refCount\"]; });\n\n/* harmony import */ var _internal_operators_sample__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ../internal/operators/sample */ \"./node_modules/rxjs/dist/esm5/internal/operators/sample.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sample\", function() { return _internal_operators_sample__WEBPACK_IMPORTED_MODULE_67__[\"sample\"]; });\n\n/* harmony import */ var _internal_operators_sampleTime__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ../internal/operators/sampleTime */ \"./node_modules/rxjs/dist/esm5/internal/operators/sampleTime.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sampleTime\", function() { return _internal_operators_sampleTime__WEBPACK_IMPORTED_MODULE_68__[\"sampleTime\"]; });\n\n/* harmony import */ var _internal_operators_scan__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ../internal/operators/scan */ \"./node_modules/rxjs/dist/esm5/internal/operators/scan.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scan\", function() { return _internal_operators_scan__WEBPACK_IMPORTED_MODULE_69__[\"scan\"]; });\n\n/* harmony import */ var _internal_operators_sequenceEqual__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ../internal/operators/sequenceEqual */ \"./node_modules/rxjs/dist/esm5/internal/operators/sequenceEqual.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sequenceEqual\", function() { return _internal_operators_sequenceEqual__WEBPACK_IMPORTED_MODULE_70__[\"sequenceEqual\"]; });\n\n/* harmony import */ var _internal_operators_share__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ../internal/operators/share */ \"./node_modules/rxjs/dist/esm5/internal/operators/share.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"share\", function() { return _internal_operators_share__WEBPACK_IMPORTED_MODULE_71__[\"share\"]; });\n\n/* harmony import */ var _internal_operators_shareReplay__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ../internal/operators/shareReplay */ \"./node_modules/rxjs/dist/esm5/internal/operators/shareReplay.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"shareReplay\", function() { return _internal_operators_shareReplay__WEBPACK_IMPORTED_MODULE_72__[\"shareReplay\"]; });\n\n/* harmony import */ var _internal_operators_single__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ../internal/operators/single */ \"./node_modules/rxjs/dist/esm5/internal/operators/single.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"single\", function() { return _internal_operators_single__WEBPACK_IMPORTED_MODULE_73__[\"single\"]; });\n\n/* harmony import */ var _internal_operators_skip__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ../internal/operators/skip */ \"./node_modules/rxjs/dist/esm5/internal/operators/skip.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"skip\", function() { return _internal_operators_skip__WEBPACK_IMPORTED_MODULE_74__[\"skip\"]; });\n\n/* harmony import */ var _internal_operators_skipLast__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ../internal/operators/skipLast */ \"./node_modules/rxjs/dist/esm5/internal/operators/skipLast.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"skipLast\", function() { return _internal_operators_skipLast__WEBPACK_IMPORTED_MODULE_75__[\"skipLast\"]; });\n\n/* harmony import */ var _internal_operators_skipUntil__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ../internal/operators/skipUntil */ \"./node_modules/rxjs/dist/esm5/internal/operators/skipUntil.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"skipUntil\", function() { return _internal_operators_skipUntil__WEBPACK_IMPORTED_MODULE_76__[\"skipUntil\"]; });\n\n/* harmony import */ var _internal_operators_skipWhile__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ../internal/operators/skipWhile */ \"./node_modules/rxjs/dist/esm5/internal/operators/skipWhile.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"skipWhile\", function() { return _internal_operators_skipWhile__WEBPACK_IMPORTED_MODULE_77__[\"skipWhile\"]; });\n\n/* harmony import */ var _internal_operators_startWith__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ../internal/operators/startWith */ \"./node_modules/rxjs/dist/esm5/internal/operators/startWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"startWith\", function() { return _internal_operators_startWith__WEBPACK_IMPORTED_MODULE_78__[\"startWith\"]; });\n\n/* harmony import */ var _internal_operators_subscribeOn__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ../internal/operators/subscribeOn */ \"./node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"subscribeOn\", function() { return _internal_operators_subscribeOn__WEBPACK_IMPORTED_MODULE_79__[\"subscribeOn\"]; });\n\n/* harmony import */ var _internal_operators_switchAll__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ../internal/operators/switchAll */ \"./node_modules/rxjs/dist/esm5/internal/operators/switchAll.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"switchAll\", function() { return _internal_operators_switchAll__WEBPACK_IMPORTED_MODULE_80__[\"switchAll\"]; });\n\n/* harmony import */ var _internal_operators_switchMap__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ../internal/operators/switchMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"switchMap\", function() { return _internal_operators_switchMap__WEBPACK_IMPORTED_MODULE_81__[\"switchMap\"]; });\n\n/* harmony import */ var _internal_operators_switchMapTo__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ../internal/operators/switchMapTo */ \"./node_modules/rxjs/dist/esm5/internal/operators/switchMapTo.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"switchMapTo\", function() { return _internal_operators_switchMapTo__WEBPACK_IMPORTED_MODULE_82__[\"switchMapTo\"]; });\n\n/* harmony import */ var _internal_operators_take__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ../internal/operators/take */ \"./node_modules/rxjs/dist/esm5/internal/operators/take.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"take\", function() { return _internal_operators_take__WEBPACK_IMPORTED_MODULE_83__[\"take\"]; });\n\n/* harmony import */ var _internal_operators_takeLast__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ../internal/operators/takeLast */ \"./node_modules/rxjs/dist/esm5/internal/operators/takeLast.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"takeLast\", function() { return _internal_operators_takeLast__WEBPACK_IMPORTED_MODULE_84__[\"takeLast\"]; });\n\n/* harmony import */ var _internal_operators_takeUntil__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ../internal/operators/takeUntil */ \"./node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"takeUntil\", function() { return _internal_operators_takeUntil__WEBPACK_IMPORTED_MODULE_85__[\"takeUntil\"]; });\n\n/* harmony import */ var _internal_operators_takeWhile__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ../internal/operators/takeWhile */ \"./node_modules/rxjs/dist/esm5/internal/operators/takeWhile.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"takeWhile\", function() { return _internal_operators_takeWhile__WEBPACK_IMPORTED_MODULE_86__[\"takeWhile\"]; });\n\n/* harmony import */ var _internal_operators_tap__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ../internal/operators/tap */ \"./node_modules/rxjs/dist/esm5/internal/operators/tap.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tap\", function() { return _internal_operators_tap__WEBPACK_IMPORTED_MODULE_87__[\"tap\"]; });\n\n/* harmony import */ var _internal_operators_throttle__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ../internal/operators/throttle */ \"./node_modules/rxjs/dist/esm5/internal/operators/throttle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"throttle\", function() { return _internal_operators_throttle__WEBPACK_IMPORTED_MODULE_88__[\"throttle\"]; });\n\n/* harmony import */ var _internal_operators_throttleTime__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ../internal/operators/throttleTime */ \"./node_modules/rxjs/dist/esm5/internal/operators/throttleTime.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"throttleTime\", function() { return _internal_operators_throttleTime__WEBPACK_IMPORTED_MODULE_89__[\"throttleTime\"]; });\n\n/* harmony import */ var _internal_operators_throwIfEmpty__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ../internal/operators/throwIfEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"throwIfEmpty\", function() { return _internal_operators_throwIfEmpty__WEBPACK_IMPORTED_MODULE_90__[\"throwIfEmpty\"]; });\n\n/* harmony import */ var _internal_operators_timeInterval__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ../internal/operators/timeInterval */ \"./node_modules/rxjs/dist/esm5/internal/operators/timeInterval.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeInterval\", function() { return _internal_operators_timeInterval__WEBPACK_IMPORTED_MODULE_91__[\"timeInterval\"]; });\n\n/* harmony import */ var _internal_operators_timeout__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ../internal/operators/timeout */ \"./node_modules/rxjs/dist/esm5/internal/operators/timeout.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeout\", function() { return _internal_operators_timeout__WEBPACK_IMPORTED_MODULE_92__[\"timeout\"]; });\n\n/* harmony import */ var _internal_operators_timeoutWith__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ../internal/operators/timeoutWith */ \"./node_modules/rxjs/dist/esm5/internal/operators/timeoutWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeoutWith\", function() { return _internal_operators_timeoutWith__WEBPACK_IMPORTED_MODULE_93__[\"timeoutWith\"]; });\n\n/* harmony import */ var _internal_operators_timestamp__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ../internal/operators/timestamp */ \"./node_modules/rxjs/dist/esm5/internal/operators/timestamp.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timestamp\", function() { return _internal_operators_timestamp__WEBPACK_IMPORTED_MODULE_94__[\"timestamp\"]; });\n\n/* harmony import */ var _internal_operators_toArray__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ../internal/operators/toArray */ \"./node_modules/rxjs/dist/esm5/internal/operators/toArray.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toArray\", function() { return _internal_operators_toArray__WEBPACK_IMPORTED_MODULE_95__[\"toArray\"]; });\n\n/* harmony import */ var _internal_operators_window__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ../internal/operators/window */ \"./node_modules/rxjs/dist/esm5/internal/operators/window.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"window\", function() { return _internal_operators_window__WEBPACK_IMPORTED_MODULE_96__[\"window\"]; });\n\n/* harmony import */ var _internal_operators_windowCount__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(/*! ../internal/operators/windowCount */ \"./node_modules/rxjs/dist/esm5/internal/operators/windowCount.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"windowCount\", function() { return _internal_operators_windowCount__WEBPACK_IMPORTED_MODULE_97__[\"windowCount\"]; });\n\n/* harmony import */ var _internal_operators_windowTime__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(/*! ../internal/operators/windowTime */ \"./node_modules/rxjs/dist/esm5/internal/operators/windowTime.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"windowTime\", function() { return _internal_operators_windowTime__WEBPACK_IMPORTED_MODULE_98__[\"windowTime\"]; });\n\n/* harmony import */ var _internal_operators_windowToggle__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(/*! ../internal/operators/windowToggle */ \"./node_modules/rxjs/dist/esm5/internal/operators/windowToggle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"windowToggle\", function() { return _internal_operators_windowToggle__WEBPACK_IMPORTED_MODULE_99__[\"windowToggle\"]; });\n\n/* harmony import */ var _internal_operators_windowWhen__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(/*! ../internal/operators/windowWhen */ \"./node_modules/rxjs/dist/esm5/internal/operators/windowWhen.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"windowWhen\", function() { return _internal_operators_windowWhen__WEBPACK_IMPORTED_MODULE_100__[\"windowWhen\"]; });\n\n/* harmony import */ var _internal_operators_withLatestFrom__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(/*! ../internal/operators/withLatestFrom */ \"./node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"withLatestFrom\", function() { return _internal_operators_withLatestFrom__WEBPACK_IMPORTED_MODULE_101__[\"withLatestFrom\"]; });\n\n/* harmony import */ var _internal_operators_zipWith__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(/*! ../internal/operators/zipWith */ \"./node_modules/rxjs/dist/esm5/internal/operators/zipWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zip\", function() { return _internal_operators_zipWith__WEBPACK_IMPORTED_MODULE_102__[\"zip\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zipWith\", function() { return _internal_operators_zipWith__WEBPACK_IMPORTED_MODULE_102__[\"zipWith\"]; });\n\n/* harmony import */ var _internal_operators_zipAll__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(/*! ../internal/operators/zipAll */ \"./node_modules/rxjs/dist/esm5/internal/operators/zipAll.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zipAll\", function() { return _internal_operators_zipAll__WEBPACK_IMPORTED_MODULE_103__[\"zipAll\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/operators/index.js?"); + +/***/ }), + +/***/ "./node_modules/tslib/tslib.es6.js": +/*!*****************************************!*\ + !*** ./node_modules/tslib/tslib.es6.js ***! + \*****************************************/ +/*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault, __classPrivateFieldGet, __classPrivateFieldSet */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__extends\", function() { return __extends; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__assign\", function() { return __assign; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__rest\", function() { return __rest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__decorate\", function() { return __decorate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__param\", function() { return __param; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__metadata\", function() { return __metadata; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__awaiter\", function() { return __awaiter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__generator\", function() { return __generator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__exportStar\", function() { return __exportStar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__values\", function() { return __values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__read\", function() { return __read; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__spread\", function() { return __spread; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__spreadArrays\", function() { return __spreadArrays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__await\", function() { return __await; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncGenerator\", function() { return __asyncGenerator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncDelegator\", function() { return __asyncDelegator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncValues\", function() { return __asyncValues; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__makeTemplateObject\", function() { return __makeTemplateObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__importStar\", function() { return __importStar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__importDefault\", function() { return __importDefault; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__classPrivateFieldGet\", function() { return __classPrivateFieldGet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__classPrivateFieldSet\", function() { return __classPrivateFieldSet; });\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nfunction __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nfunction __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nfunction __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nfunction __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nfunction __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nfunction __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nfunction __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nfunction __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nfunction __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n\n\n//# sourceURL=webpack:///./node_modules/tslib/tslib.es6.js?"); + +/***/ }), + +/***/ "./node_modules/webpack/buildin/global.js": +/*!***********************************!*\ + !*** (webpack)/buildin/global.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n//# sourceURL=webpack:///(webpack)/buildin/global.js?"); + +/***/ }) + +}]); \ No newline at end of file diff --git a/docs/assets/javascripts/worker/search.37585f48.min.js b/docs/assets/javascripts/worker/search.37585f48.min.js new file mode 100644 index 00000000..edcf6ebf --- /dev/null +++ b/docs/assets/javascripts/worker/search.37585f48.min.js @@ -0,0 +1,59 @@ +!function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=4)}([function(e,t,r){"use strict"; +/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var n=/["'&<>]/;e.exports=function(e){var t,r=""+e,i=n.exec(r);if(!i)return r;var s="",o=0,a=0;for(o=i.index;o0){var u=I.utils.clone(t)||{};u.position=[o,a],u.index=i.length,i.push(new I.Token(r.slice(o,s),u))}o=s+1}}return i},I.tokenizer.separator=/[\s\-]+/ +/*! + * lunr.Pipeline + * Copyright (C) 2019 Oliver Nightingale + */,I.Pipeline=function(){this._stack=[]},I.Pipeline.registeredFunctions=Object.create(null),I.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&I.utils.warn("Overwriting existing registered function: "+t),e.label=t,I.Pipeline.registeredFunctions[e.label]=e},I.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||I.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},I.Pipeline.load=function(e){var t=new I.Pipeline;return e.forEach((function(e){var r=I.Pipeline.registeredFunctions[e];if(!r)throw new Error("Cannot load unregistered function: "+e);t.add(r)})),t},I.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach((function(e){I.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},I.Pipeline.prototype.after=function(e,t){I.Pipeline.warnIfFunctionNotRegistered(t);var r=this._stack.indexOf(e);if(-1==r)throw new Error("Cannot find existingFn");r+=1,this._stack.splice(r,0,t)},I.Pipeline.prototype.before=function(e,t){I.Pipeline.warnIfFunctionNotRegistered(t);var r=this._stack.indexOf(e);if(-1==r)throw new Error("Cannot find existingFn");this._stack.splice(r,0,t)},I.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},I.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=i),s!=e);)n=r-t,i=t+Math.floor(n/2),s=this.elements[2*i];return s==e||s>e?2*i:sa?l+=2:o==a&&(t+=r[u+1]*n[l+1],u+=2,l+=2);return t},I.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},I.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var s,o=i.str.charAt(0);o in i.node.edges?s=i.node.edges[o]:(s=new I.TokenSet,i.node.edges[o]=s),1==i.str.length&&(s.final=!0),n.push({node:s,editsRemaining:i.editsRemaining,str:i.str.slice(1)})}if(0!=i.editsRemaining){if("*"in i.node.edges)var a=i.node.edges["*"];else{a=new I.TokenSet;i.node.edges["*"]=a}if(0==i.str.length&&(a.final=!0),n.push({node:a,editsRemaining:i.editsRemaining-1,str:i.str}),i.str.length>1&&n.push({node:i.node,editsRemaining:i.editsRemaining-1,str:i.str.slice(1)}),1==i.str.length&&(i.node.final=!0),i.str.length>=1){if("*"in i.node.edges)var u=i.node.edges["*"];else{u=new I.TokenSet;i.node.edges["*"]=u}1==i.str.length&&(u.final=!0),n.push({node:u,editsRemaining:i.editsRemaining-1,str:i.str.slice(1)})}if(i.str.length>1){var l,c=i.str.charAt(0),h=i.str.charAt(1);h in i.node.edges?l=i.node.edges[h]:(l=new I.TokenSet,i.node.edges[h]=l),1==i.str.length&&(l.final=!0),n.push({node:l,editsRemaining:i.editsRemaining-1,str:c+i.str.slice(2)})}}}return r},I.TokenSet.fromString=function(e){for(var t=new I.TokenSet,r=t,n=0,i=e.length;n=e;t--){var r=this.uncheckedNodes[t],n=r.child.toString();n in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[n]:(r.child._str=n,this.minimizedNodes[n]=r.child),this.uncheckedNodes.pop()}} +/*! + * lunr.Index + * Copyright (C) 2019 Oliver Nightingale + */,I.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},I.Index.prototype.search=function(e){return this.query((function(t){new I.QueryParser(e,t).parse()}))},I.Index.prototype.query=function(e){for(var t=new I.Query(this.fields),r=Object.create(null),n=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=0;a1?1:e},I.Builder.prototype.k1=function(e){this._k1=e},I.Builder.prototype.add=function(e,t){var r=e[this._ref],n=Object.keys(this._fields);this._documents[r]=t||{},this.documentCount+=1;for(var i=0;i=this.length)return I.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},I.QueryLexer.prototype.width=function(){return this.pos-this.start},I.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},I.QueryLexer.prototype.backup=function(){this.pos-=1},I.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=I.QueryLexer.EOS&&this.backup()},I.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(I.QueryLexer.TERM)),e.ignore(),e.more())return I.QueryLexer.lexText},I.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(I.QueryLexer.EDIT_DISTANCE),I.QueryLexer.lexText},I.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(I.QueryLexer.BOOST),I.QueryLexer.lexText},I.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(I.QueryLexer.TERM)},I.QueryLexer.termSeparator=I.tokenizer.separator,I.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==I.QueryLexer.EOS)return I.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return I.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(I.QueryLexer.TERM),I.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(I.QueryLexer.TERM),I.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(I.QueryLexer.PRESENCE),I.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(I.QueryLexer.PRESENCE),I.QueryLexer.lexText;if(t.match(I.QueryLexer.termSeparator))return I.QueryLexer.lexTerm}else e.escapeCharacter()}},I.QueryParser=function(e,t){this.lexer=new I.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},I.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=I.QueryParser.parseClause;e;)e=e(this);return this.query},I.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},I.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},I.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},I.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case I.QueryLexer.PRESENCE:return I.QueryParser.parsePresence;case I.QueryLexer.FIELD:return I.QueryParser.parseField;case I.QueryLexer.TERM:return I.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(r+=" with value '"+t.str+"'"),new I.QueryParseError(r,t.start,t.end)}},I.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=I.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=I.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+t.str+"'";throw new I.QueryParseError(r,t.start,t.end)}var n=e.peekLexeme();if(null==n){r="expecting term or field, found nothing";throw new I.QueryParseError(r,t.start,t.end)}switch(n.type){case I.QueryLexer.FIELD:return I.QueryParser.parseField;case I.QueryLexer.TERM:return I.QueryParser.parseTerm;default:r="expecting term or field, found '"+n.type+"'";throw new I.QueryParseError(r,n.start,n.end)}}},I.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var r=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),n="unrecognised field '"+t.str+"', possible fields: "+r;throw new I.QueryParseError(n,t.start,t.end)}e.currentClause.fields=[t.str];var i=e.peekLexeme();if(null==i){n="expecting term, found nothing";throw new I.QueryParseError(n,t.start,t.end)}switch(i.type){case I.QueryLexer.TERM:return I.QueryParser.parseTerm;default:n="expecting term, found '"+i.type+"'";throw new I.QueryParseError(n,i.start,i.end)}}},I.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(null!=r)switch(r.type){case I.QueryLexer.TERM:return e.nextClause(),I.QueryParser.parseTerm;case I.QueryLexer.FIELD:return e.nextClause(),I.QueryParser.parseField;case I.QueryLexer.EDIT_DISTANCE:return I.QueryParser.parseEditDistance;case I.QueryLexer.BOOST:return I.QueryParser.parseBoost;case I.QueryLexer.PRESENCE:return e.nextClause(),I.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+r.type+"'";throw new I.QueryParseError(n,r.start,r.end)}else e.nextClause()}},I.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var r=parseInt(t.str,10);if(isNaN(r)){var n="edit distance must be numeric";throw new I.QueryParseError(n,t.start,t.end)}e.currentClause.editDistance=r;var i=e.peekLexeme();if(null!=i)switch(i.type){case I.QueryLexer.TERM:return e.nextClause(),I.QueryParser.parseTerm;case I.QueryLexer.FIELD:return e.nextClause(),I.QueryParser.parseField;case I.QueryLexer.EDIT_DISTANCE:return I.QueryParser.parseEditDistance;case I.QueryLexer.BOOST:return I.QueryParser.parseBoost;case I.QueryLexer.PRESENCE:return e.nextClause(),I.QueryParser.parsePresence;default:n="Unexpected lexeme type '"+i.type+"'";throw new I.QueryParseError(n,i.start,i.end)}else e.nextClause()}},I.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var r=parseInt(t.str,10);if(isNaN(r)){var n="boost must be numeric";throw new I.QueryParseError(n,t.start,t.end)}e.currentClause.boost=r;var i=e.peekLexeme();if(null!=i)switch(i.type){case I.QueryLexer.TERM:return e.nextClause(),I.QueryParser.parseTerm;case I.QueryLexer.FIELD:return e.nextClause(),I.QueryParser.parseField;case I.QueryLexer.EDIT_DISTANCE:return I.QueryParser.parseEditDistance;case I.QueryLexer.BOOST:return I.QueryParser.parseBoost;case I.QueryLexer.PRESENCE:return e.nextClause(),I.QueryParser.parsePresence;default:n="Unexpected lexeme type '"+i.type+"'";throw new I.QueryParseError(n,i.start,i.end)}else e.nextClause()}},void 0===(i="function"==typeof(n=function(){return I})?n.call(t,r,t,e):n)||(e.exports=i)}()},function(e,t,r){"use strict";r.r(t),r.d(t,"handler",(function(){return h}));var n=function(){return(n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function s(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,s=r.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(n=s.next()).done;)o.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=s.return)&&r.call(s)}finally{if(i)throw i.error}}return o}function o(){for(var e=[],t=0;t"+r+""};return function(i){i=i.replace(/[\s*+-:~^]+/g," ").trim();var s=new RegExp("(^|"+e.separator+")("+i.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(t,"|")+")","img");return function(e){return n(n({},e),{title:e.title.replace(s,r),text:e.text.replace(s,r)})}}}(t),this.index=void 0===l?lunr((function(){var e,n,s,a,l;u=u||["trimmer","stopWordFilter"],this.pipeline.reset();try{for(var c=i(u),h=c.next();!h.done;h=c.next()){var d=h.value;this.pipeline.add(lunr[d])}}catch(t){e={error:t}}finally{try{h&&!h.done&&(n=c.return)&&n.call(c)}finally{if(e)throw e.error}}1===t.lang.length&&"en"!==t.lang[0]?this.use(lunr[t.lang[0]]):t.lang.length>1&&this.use((s=lunr).multiLanguage.apply(s,o(t.lang))),this.field("title",{boost:1e3}),this.field("text"),this.ref("location");try{for(var f=i(r),p=f.next();!p.done;p=f.next()){var y=p.value;this.add(y)}}catch(e){a={error:e}}finally{try{p&&!p.done&&(l=f.return)&&l.call(f)}finally{if(a)throw a.error}}})):lunr.Index.load("string"==typeof l?JSON.parse(l):l)}return e.prototype.query=function(e){var t=this;if(e)try{var r=this.index.search(e).reduce((function(e,r){var n=t.documents.get(r.ref);if(void 0!==n)if("parent"in n){var i=n.parent.location;e.set(i,o(e.get(i)||[],[r]))}else{i=n.location;e.set(i,e.get(i)||[])}return e}),new Map),n=this.highlight(e);return o(r).map((function(e){var r=s(e,2),i=r[0],o=r[1];return{article:n(t.documents.get(i)),sections:o.map((function(e){return n(t.documents.get(e.ref))}))}}))}catch(t){console.warn("Invalid query: "+e+" – see https://bit.ly/2s3ChXG")}return[]},e}();function h(e){switch(e.type){case u.SETUP:return function(e){var t,r,n="../lunr",s=[];try{for(var a=i(e.lang),u=a.next();!u.done;u=a.next()){var l=u.value;"ja"===l&&s.push(n+"/tinyseg.min.js"),"en"!==l&&s.push(n+"/min/lunr."+l+".min.js")}}catch(e){t={error:e}}finally{try{u&&!u.done&&(r=a.return)&&r.call(a)}finally{if(t)throw t.error}}e.lang.length>1&&s.push(n+"/min/lunr.multi.min.js"),s.length&&importScripts.apply(void 0,o([n+"/min/lunr.stemmer.support.min.js"],s))}(e.data.config),l=new c(e.data),{type:u.READY};case u.QUERY:return{type:u.RESULT,data:l?l.query(e.data):[]};default:throw new TypeError("Invalid message type")}}!function(e){e[e.SETUP=0]="SETUP",e[e.READY=1]="READY",e[e.QUERY=2]="QUERY",e[e.RESULT=3]="RESULT"}(u||(u={})),addEventListener("message",(function(e){postMessage(h(e.data))}))}]); +//# sourceMappingURL=search.37585f48.min.js.map \ No newline at end of file diff --git a/docs/assets/javascripts/worker/search.37585f48.min.js.map b/docs/assets/javascripts/worker/search.37585f48.min.js.map new file mode 100644 index 00000000..884ad522 --- /dev/null +++ b/docs/assets/javascripts/worker/search.37585f48.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/escape-html/index.js","webpack:///./node_modules/lunr/lunr.js-exposed","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/lunr/lunr.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./src/assets/javascripts/integrations/search/_/index.ts","webpack:///./src/assets/javascripts/integrations/search/worker/message/index.ts","webpack:///./src/assets/javascripts/integrations/search/worker/main/index.ts","webpack:///./src/assets/javascripts/integrations/search/document/index.ts","webpack:///./src/assets/javascripts/integrations/search/highlighter/index.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","matchHtmlRegExp","string","escape","str","match","exec","html","index","lastIndex","length","charCodeAt","substring","g","this","Function","e","window","global","step2list","step3list","v","C","re_mgr0","re_mgr1","re_meq1","re_s_v","re_1a","re2_1a","re_1b","re2_1b","re_1b_2","re2_1b_2","re3_1b_2","re4_1b_2","re_1c","re_2","re_3","re_4","re2_4","re_5","re_5_1","re3_5","porterStemmer","lunr","config","builder","Builder","pipeline","add","trimmer","stopWordFilter","stemmer","searchPipeline","build","version","utils","warn","message","console","asString","obj","toString","clone","keys","val","Array","isArray","slice","TypeError","FieldRef","docRef","fieldName","stringValue","_stringValue","joiner","fromString","indexOf","fieldRef","undefined","Set","elements","complete","intersect","other","union","contains","empty","a","b","intersection","element","push","concat","idf","posting","documentCount","documentsWithTerm","x","Math","log","abs","Token","metadata","update","fn","tokenizer","map","toLowerCase","len","tokens","sliceEnd","sliceStart","sliceLength","charAt","separator","tokenMetadata","Pipeline","_stack","registeredFunctions","registerFunction","label","warnIfFunctionNotRegistered","load","serialised","forEach","fnName","Error","fns","arguments","after","existingFn","newFn","pos","splice","before","remove","run","stackLength","memo","j","result","k","runString","token","reset","toJSON","Vector","_magnitude","positionForIndex","start","end","pivotPoint","floor","pivotIndex","insert","insertIdx","upsert","position","magnitude","sumOfSquares","elementsLength","sqrt","dot","otherVector","dotProduct","aLen","bLen","aVal","bVal","similarity","toArray","output","RegExp","w","stem","suffix","firstch","re","re2","re3","re4","substr","toUpperCase","test","replace","fp","generateStopWordFilter","stopWords","words","reduce","stopWord","TokenSet","final","edges","id","_nextId","fromArray","arr","finish","root","fromClause","clause","fromFuzzyString","term","editDistance","stack","node","editsRemaining","frame","pop","noEditNode","char","insertionNode","substitutionNode","transposeNode","charA","charB","next","prefix","edge","_str","labels","sort","qNode","qEdges","qLen","nEdges","nLen","q","qEdge","nEdge","previousWord","uncheckedNodes","minimizedNodes","word","commonPrefix","minimize","child","nextNode","parent","downTo","childKey","Index","attrs","invertedIndex","fieldVectors","tokenSet","fields","search","queryString","query","QueryParser","parse","Query","matchingFields","queryVectors","termFieldCache","requiredMatches","prohibitedMatches","clauses","terms","clauseMatches","usePipeline","termTokenSet","expandedTerms","presence","REQUIRED","field","expandedTerm","termIndex","_index","fieldPosting","matchingDocumentRefs","termField","matchingDocumentsSet","PROHIBITED","boost","fieldMatch","matchingDocumentRef","matchingFieldRef","MatchData","allRequiredMatches","allProhibitedMatches","matchingFieldRefs","results","matches","isNegated","docMatch","fieldVector","score","matchData","combine","ref","serializedIndex","serializedVectors","serializedInvertedIndex","tokenSetBuilder","tuple","_ref","_fields","_documents","fieldTermFrequencies","fieldLengths","_b","_k1","metadataWhitelist","attributes","RangeError","number","k1","doc","extractor","fieldTerms","metadataKey","calculateAverageFieldLengths","fieldRefs","numberOfFields","accumulator","documentsWithField","averageFieldLength","createFieldVectors","fieldRefsLength","termIdfCache","fieldLength","termFrequencies","termsLength","fieldBoost","docBoost","scoreWithPrecision","tf","round","createTokenSet","use","args","unshift","apply","clonedMetadata","metadataKeys","otherMatchData","allFields","wildcard","String","NONE","LEADING","TRAILING","OPTIONAL","options","QueryParseError","QueryLexer","lexemes","escapeCharPositions","state","lexText","sliceString","subSlices","join","emit","type","escapeCharacter","EOS","width","ignore","backup","acceptDigitRun","charCode","more","FIELD","TERM","EDIT_DISTANCE","BOOST","PRESENCE","lexField","lexer","lexTerm","lexEditDistance","lexBoost","lexEOS","termSeparator","currentClause","lexemeIdx","parseClause","peekLexeme","consumeLexeme","lexeme","nextClause","completedClause","parser","parsePresence","parseField","parseTerm","errorMessage","nextLexeme","possibleFields","f","parseEditDistance","parseBoost","parseInt","isNaN","__assign","assign","__values","iterator","done","__read","ar","error","__spread","SearchMessageType","docs","documents","Map","path","hash","location","title","text","linked","set","setupSearchDocumentMap","highlight","_","data","trim","document","setupSearchHighlighter","lang","multiLanguage","JSON","groups","sections","article","section","err","handler","SETUP","base","scripts","importScripts","setupLunrLanguages","READY","QUERY","RESULT","addEventListener","ev","postMessage"],"mappings":"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C,GACtC,IAAIC,EAAQD,EAAUE,QAAO,SAAUnD,EAAMoD,GAE3C,OADApD,EAAKoD,GAAYA,EACVpD,IACN,IAEH,OAAO,SAAUK,GACf,GAAIA,GAAS6C,EAAM7C,EAAMlF,cAAgBkF,EAAMlF,WAAY,OAAOkF,IAiBtEpG,EAAKO,eAAiBP,EAAK+I,uBAAuB,CAChD,IACA,OACA,QACA,SACA,QACA,MACA,SACA,OACA,KACA,QACA,KACA,MACA,MACA,MACA,KACA,KACA,KACA,UACA,OACA,MACA,KACA,MACA,SACA,QACA,OACA,MACA,KACA,OACA,SACA,OACA,OACA,QACA,MACA,OACA,MACA,MACA,MACA,MACA,OACA,KACA,MACA,OACA,MACA,MACA,MACA,UACA,IACA,KACA,KACA,OACA,KACA,KACA,MACA,OACA,QACA,MACA,OACA,SACA,MACA,KACA,QACA,OACA,OACA,KACA,UACA,KACA,MACA,MACA,KACA,MACA,QACA,KACA,OACA,KACA,QACA,MACA,MACA,SACA,OACA,MACA,OACA,MACA,SACA,QACA,KACA,OACA,OACA,OACA,MACA,QACA,OACA,OACA,QACA,QACA,OACA,OACA,MACA,KACA,MACA,OACA,KACA,QACA,MACA,KACA,OACA,OACA,OACA,QACA,QACA,QACA,MACA,OACA,MACA,OACA,OACA,QACA,MACA,MACA,SAGF/I,EAAKyE,SAASG,iBAAiB5E,EAAKO,eAAgB;;;;IAqBpDP,EAAKM,QAAU,SAAU8F,GACvB,OAAOA,EAAMxC,QAAO,SAAUxG,GAC5B,OAAOA,EAAEyL,QAAQ,OAAQ,IAAIA,QAAQ,OAAQ,QAIjD7I,EAAKyE,SAASG,iBAAiB5E,EAAKM,QAAS;;;;IA2B7CN,EAAKoJ,SAAW,WACdlL,KAAKmL,OAAQ,EACbnL,KAAKoL,MAAQ,GACbpL,KAAKqL,GAAKvJ,EAAKoJ,SAASI,QACxBxJ,EAAKoJ,SAASI,SAAW,GAW3BxJ,EAAKoJ,SAASI,QAAU,EASxBxJ,EAAKoJ,SAASK,UAAY,SAAUC,GAGlC,IAFA,IAAIxJ,EAAU,IAAIF,EAAKoJ,SAASjJ,Q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","file":"assets/javascripts/worker/search.37585f48.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 4);\n","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n","module.exports = global[\"lunr\"] = require(\"-!./lunr.js\");","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/**\n * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.8\n * Copyright (C) 2019 Oliver Nightingale\n * @license MIT\n */\n\n;(function(){\n\n/**\n * A convenience function for configuring and constructing\n * a new lunr Index.\n *\n * A lunr.Builder instance is created and the pipeline setup\n * with a trimmer, stop word filter and stemmer.\n *\n * This builder object is yielded to the configuration function\n * that is passed as a parameter, allowing the list of fields\n * and other builder parameters to be customised.\n *\n * All documents _must_ be added within the passed config function.\n *\n * @example\n * var idx = lunr(function () {\n * this.field('title')\n * this.field('body')\n * this.ref('id')\n *\n * documents.forEach(function (doc) {\n * this.add(doc)\n * }, this)\n * })\n *\n * @see {@link lunr.Builder}\n * @see {@link lunr.Pipeline}\n * @see {@link lunr.trimmer}\n * @see {@link lunr.stopWordFilter}\n * @see {@link lunr.stemmer}\n * @namespace {function} lunr\n */\nvar lunr = function (config) {\n var builder = new lunr.Builder\n\n builder.pipeline.add(\n lunr.trimmer,\n lunr.stopWordFilter,\n lunr.stemmer\n )\n\n builder.searchPipeline.add(\n lunr.stemmer\n )\n\n config.call(builder, builder)\n return builder.build()\n}\n\nlunr.version = \"2.3.8\"\n/*!\n * lunr.utils\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A namespace containing utils for the rest of the lunr library\n * @namespace lunr.utils\n */\nlunr.utils = {}\n\n/**\n * Print a warning message to the console.\n *\n * @param {String} message The message to be printed.\n * @memberOf lunr.utils\n * @function\n */\nlunr.utils.warn = (function (global) {\n /* eslint-disable no-console */\n return function (message) {\n if (global.console && console.warn) {\n console.warn(message)\n }\n }\n /* eslint-enable no-console */\n})(this)\n\n/**\n * Convert an object to a string.\n *\n * In the case of `null` and `undefined` the function returns\n * the empty string, in all other cases the result of calling\n * `toString` on the passed object is returned.\n *\n * @param {Any} obj The object to convert to a string.\n * @return {String} string representation of the passed object.\n * @memberOf lunr.utils\n */\nlunr.utils.asString = function (obj) {\n if (obj === void 0 || obj === null) {\n return \"\"\n } else {\n return obj.toString()\n }\n}\n\n/**\n * Clones an object.\n *\n * Will create a copy of an existing object such that any mutations\n * on the copy cannot affect the original.\n *\n * Only shallow objects are supported, passing a nested object to this\n * function will cause a TypeError.\n *\n * Objects with primitives, and arrays of primitives are supported.\n *\n * @param {Object} obj The object to clone.\n * @return {Object} a clone of the passed object.\n * @throws {TypeError} when a nested object is passed.\n * @memberOf Utils\n */\nlunr.utils.clone = function (obj) {\n if (obj === null || obj === undefined) {\n return obj\n }\n\n var clone = Object.create(null),\n keys = Object.keys(obj)\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i],\n val = obj[key]\n\n if (Array.isArray(val)) {\n clone[key] = val.slice()\n continue\n }\n\n if (typeof val === 'string' ||\n typeof val === 'number' ||\n typeof val === 'boolean') {\n clone[key] = val\n continue\n }\n\n throw new TypeError(\"clone is not deep and does not support nested objects\")\n }\n\n return clone\n}\nlunr.FieldRef = function (docRef, fieldName, stringValue) {\n this.docRef = docRef\n this.fieldName = fieldName\n this._stringValue = stringValue\n}\n\nlunr.FieldRef.joiner = \"/\"\n\nlunr.FieldRef.fromString = function (s) {\n var n = s.indexOf(lunr.FieldRef.joiner)\n\n if (n === -1) {\n throw \"malformed field ref string\"\n }\n\n var fieldRef = s.slice(0, n),\n docRef = s.slice(n + 1)\n\n return new lunr.FieldRef (docRef, fieldRef, s)\n}\n\nlunr.FieldRef.prototype.toString = function () {\n if (this._stringValue == undefined) {\n this._stringValue = this.fieldName + lunr.FieldRef.joiner + this.docRef\n }\n\n return this._stringValue\n}\n/*!\n * lunr.Set\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A lunr set.\n *\n * @constructor\n */\nlunr.Set = function (elements) {\n this.elements = Object.create(null)\n\n if (elements) {\n this.length = elements.length\n\n for (var i = 0; i < this.length; i++) {\n this.elements[elements[i]] = true\n }\n } else {\n this.length = 0\n }\n}\n\n/**\n * A complete set that contains all elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.complete = {\n intersect: function (other) {\n return other\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return true\n }\n}\n\n/**\n * An empty set that contains no elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.empty = {\n intersect: function () {\n return this\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return false\n }\n}\n\n/**\n * Returns true if this set contains the specified object.\n *\n * @param {object} object - Object whose presence in this set is to be tested.\n * @returns {boolean} - True if this set contains the specified object.\n */\nlunr.Set.prototype.contains = function (object) {\n return !!this.elements[object]\n}\n\n/**\n * Returns a new set containing only the elements that are present in both\n * this set and the specified set.\n *\n * @param {lunr.Set} other - set to intersect with this set.\n * @returns {lunr.Set} a new set that is the intersection of this and the specified set.\n */\n\nlunr.Set.prototype.intersect = function (other) {\n var a, b, elements, intersection = []\n\n if (other === lunr.Set.complete) {\n return this\n }\n\n if (other === lunr.Set.empty) {\n return other\n }\n\n if (this.length < other.length) {\n a = this\n b = other\n } else {\n a = other\n b = this\n }\n\n elements = Object.keys(a.elements)\n\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i]\n if (element in b.elements) {\n intersection.push(element)\n }\n }\n\n return new lunr.Set (intersection)\n}\n\n/**\n * Returns a new set combining the elements of this and the specified set.\n *\n * @param {lunr.Set} other - set to union with this set.\n * @return {lunr.Set} a new set that is the union of this and the specified set.\n */\n\nlunr.Set.prototype.union = function (other) {\n if (other === lunr.Set.complete) {\n return lunr.Set.complete\n }\n\n if (other === lunr.Set.empty) {\n return this\n }\n\n return new lunr.Set(Object.keys(this.elements).concat(Object.keys(other.elements)))\n}\n/**\n * A function to calculate the inverse document frequency for\n * a posting. This is shared between the builder and the index\n *\n * @private\n * @param {object} posting - The posting for a given term\n * @param {number} documentCount - The total number of documents.\n */\nlunr.idf = function (posting, documentCount) {\n var documentsWithTerm = 0\n\n for (var fieldName in posting) {\n if (fieldName == '_index') continue // Ignore the term index, its not a field\n documentsWithTerm += Object.keys(posting[fieldName]).length\n }\n\n var x = (documentCount - documentsWithTerm + 0.5) / (documentsWithTerm + 0.5)\n\n return Math.log(1 + Math.abs(x))\n}\n\n/**\n * A token wraps a string representation of a token\n * as it is passed through the text processing pipeline.\n *\n * @constructor\n * @param {string} [str=''] - The string token being wrapped.\n * @param {object} [metadata={}] - Metadata associated with this token.\n */\nlunr.Token = function (str, metadata) {\n this.str = str || \"\"\n this.metadata = metadata || {}\n}\n\n/**\n * Returns the token string that is being wrapped by this object.\n *\n * @returns {string}\n */\nlunr.Token.prototype.toString = function () {\n return this.str\n}\n\n/**\n * A token update function is used when updating or optionally\n * when cloning a token.\n *\n * @callback lunr.Token~updateFunction\n * @param {string} str - The string representation of the token.\n * @param {Object} metadata - All metadata associated with this token.\n */\n\n/**\n * Applies the given function to the wrapped string token.\n *\n * @example\n * token.update(function (str, metadata) {\n * return str.toUpperCase()\n * })\n *\n * @param {lunr.Token~updateFunction} fn - A function to apply to the token string.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.update = function (fn) {\n this.str = fn(this.str, this.metadata)\n return this\n}\n\n/**\n * Creates a clone of this token. Optionally a function can be\n * applied to the cloned token.\n *\n * @param {lunr.Token~updateFunction} [fn] - An optional function to apply to the cloned token.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.clone = function (fn) {\n fn = fn || function (s) { return s }\n return new lunr.Token (fn(this.str, this.metadata), this.metadata)\n}\n/*!\n * lunr.tokenizer\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A function for splitting a string into tokens ready to be inserted into\n * the search index. Uses `lunr.tokenizer.separator` to split strings, change\n * the value of this property to change how strings are split into tokens.\n *\n * This tokenizer will convert its parameter to a string by calling `toString` and\n * then will split this string on the character in `lunr.tokenizer.separator`.\n * Arrays will have their elements converted to strings and wrapped in a lunr.Token.\n *\n * Optional metadata can be passed to the tokenizer, this metadata will be cloned and\n * added as metadata to every token that is created from the object to be tokenized.\n *\n * @static\n * @param {?(string|object|object[])} obj - The object to convert into tokens\n * @param {?object} metadata - Optional metadata to associate with every token\n * @returns {lunr.Token[]}\n * @see {@link lunr.Pipeline}\n */\nlunr.tokenizer = function (obj, metadata) {\n if (obj == null || obj == undefined) {\n return []\n }\n\n if (Array.isArray(obj)) {\n return obj.map(function (t) {\n return new lunr.Token(\n lunr.utils.asString(t).toLowerCase(),\n lunr.utils.clone(metadata)\n )\n })\n }\n\n var str = obj.toString().toLowerCase(),\n len = str.length,\n tokens = []\n\n for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {\n var char = str.charAt(sliceEnd),\n sliceLength = sliceEnd - sliceStart\n\n if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) {\n\n if (sliceLength > 0) {\n var tokenMetadata = lunr.utils.clone(metadata) || {}\n tokenMetadata[\"position\"] = [sliceStart, sliceLength]\n tokenMetadata[\"index\"] = tokens.length\n\n tokens.push(\n new lunr.Token (\n str.slice(sliceStart, sliceEnd),\n tokenMetadata\n )\n )\n }\n\n sliceStart = sliceEnd + 1\n }\n\n }\n\n return tokens\n}\n\n/**\n * The separator used to split a string into tokens. Override this property to change the behaviour of\n * `lunr.tokenizer` behaviour when tokenizing strings. By default this splits on whitespace and hyphens.\n *\n * @static\n * @see lunr.tokenizer\n */\nlunr.tokenizer.separator = /[\\s\\-]+/\n/*!\n * lunr.Pipeline\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.Pipelines maintain an ordered list of functions to be applied to all\n * tokens in documents entering the search index and queries being ran against\n * the index.\n *\n * An instance of lunr.Index created with the lunr shortcut will contain a\n * pipeline with a stop word filter and an English language stemmer. Extra\n * functions can be added before or after either of these functions or these\n * default functions can be removed.\n *\n * When run the pipeline will call each function in turn, passing a token, the\n * index of that token in the original list of all tokens and finally a list of\n * all the original tokens.\n *\n * The output of functions in the pipeline will be passed to the next function\n * in the pipeline. To exclude a token from entering the index the function\n * should return undefined, the rest of the pipeline will not be called with\n * this token.\n *\n * For serialisation of pipelines to work, all functions used in an instance of\n * a pipeline should be registered with lunr.Pipeline. Registered functions can\n * then be loaded. If trying to load a serialised pipeline that uses functions\n * that are not registered an error will be thrown.\n *\n * If not planning on serialising the pipeline then registering pipeline functions\n * is not necessary.\n *\n * @constructor\n */\nlunr.Pipeline = function () {\n this._stack = []\n}\n\nlunr.Pipeline.registeredFunctions = Object.create(null)\n\n/**\n * A pipeline function maps lunr.Token to lunr.Token. A lunr.Token contains the token\n * string as well as all known metadata. A pipeline function can mutate the token string\n * or mutate (or add) metadata for a given token.\n *\n * A pipeline function can indicate that the passed token should be discarded by returning\n * null, undefined or an empty string. This token will not be passed to any downstream pipeline\n * functions and will not be added to the index.\n *\n * Multiple tokens can be returned by returning an array of tokens. Each token will be passed\n * to any downstream pipeline functions and all will returned tokens will be added to the index.\n *\n * Any number of pipeline functions may be chained together using a lunr.Pipeline.\n *\n * @interface lunr.PipelineFunction\n * @param {lunr.Token} token - A token from the document being processed.\n * @param {number} i - The index of this token in the complete list of tokens for this document/field.\n * @param {lunr.Token[]} tokens - All tokens for this document/field.\n * @returns {(?lunr.Token|lunr.Token[])}\n */\n\n/**\n * Register a function with the pipeline.\n *\n * Functions that are used in the pipeline should be registered if the pipeline\n * needs to be serialised, or a serialised pipeline needs to be loaded.\n *\n * Registering a function does not add it to a pipeline, functions must still be\n * added to instances of the pipeline for them to be used when running a pipeline.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @param {String} label - The label to register this function with\n */\nlunr.Pipeline.registerFunction = function (fn, label) {\n if (label in this.registeredFunctions) {\n lunr.utils.warn('Overwriting existing registered function: ' + label)\n }\n\n fn.label = label\n lunr.Pipeline.registeredFunctions[fn.label] = fn\n}\n\n/**\n * Warns if the function is not registered as a Pipeline function.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @private\n */\nlunr.Pipeline.warnIfFunctionNotRegistered = function (fn) {\n var isRegistered = fn.label && (fn.label in this.registeredFunctions)\n\n if (!isRegistered) {\n lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\\n', fn)\n }\n}\n\n/**\n * Loads a previously serialised pipeline.\n *\n * All functions to be loaded must already be registered with lunr.Pipeline.\n * If any function from the serialised data has not been registered then an\n * error will be thrown.\n *\n * @param {Object} serialised - The serialised pipeline to load.\n * @returns {lunr.Pipeline}\n */\nlunr.Pipeline.load = function (serialised) {\n var pipeline = new lunr.Pipeline\n\n serialised.forEach(function (fnName) {\n var fn = lunr.Pipeline.registeredFunctions[fnName]\n\n if (fn) {\n pipeline.add(fn)\n } else {\n throw new Error('Cannot load unregistered function: ' + fnName)\n }\n })\n\n return pipeline\n}\n\n/**\n * Adds new functions to the end of the pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction[]} functions - Any number of functions to add to the pipeline.\n */\nlunr.Pipeline.prototype.add = function () {\n var fns = Array.prototype.slice.call(arguments)\n\n fns.forEach(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n this._stack.push(fn)\n }, this)\n}\n\n/**\n * Adds a single function after a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.after = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n pos = pos + 1\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Adds a single function before a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.before = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Removes a function from the pipeline.\n *\n * @param {lunr.PipelineFunction} fn The function to remove from the pipeline.\n */\nlunr.Pipeline.prototype.remove = function (fn) {\n var pos = this._stack.indexOf(fn)\n if (pos == -1) {\n return\n }\n\n this._stack.splice(pos, 1)\n}\n\n/**\n * Runs the current list of functions that make up the pipeline against the\n * passed tokens.\n *\n * @param {Array} tokens The tokens to run through the pipeline.\n * @returns {Array}\n */\nlunr.Pipeline.prototype.run = function (tokens) {\n var stackLength = this._stack.length\n\n for (var i = 0; i < stackLength; i++) {\n var fn = this._stack[i]\n var memo = []\n\n for (var j = 0; j < tokens.length; j++) {\n var result = fn(tokens[j], j, tokens)\n\n if (result === null || result === void 0 || result === '') continue\n\n if (Array.isArray(result)) {\n for (var k = 0; k < result.length; k++) {\n memo.push(result[k])\n }\n } else {\n memo.push(result)\n }\n }\n\n tokens = memo\n }\n\n return tokens\n}\n\n/**\n * Convenience method for passing a string through a pipeline and getting\n * strings out. This method takes care of wrapping the passed string in a\n * token and mapping the resulting tokens back to strings.\n *\n * @param {string} str - The string to pass through the pipeline.\n * @param {?object} metadata - Optional metadata to associate with the token\n * passed to the pipeline.\n * @returns {string[]}\n */\nlunr.Pipeline.prototype.runString = function (str, metadata) {\n var token = new lunr.Token (str, metadata)\n\n return this.run([token]).map(function (t) {\n return t.toString()\n })\n}\n\n/**\n * Resets the pipeline by removing any existing processors.\n *\n */\nlunr.Pipeline.prototype.reset = function () {\n this._stack = []\n}\n\n/**\n * Returns a representation of the pipeline ready for serialisation.\n *\n * Logs a warning if the function has not been registered.\n *\n * @returns {Array}\n */\nlunr.Pipeline.prototype.toJSON = function () {\n return this._stack.map(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n\n return fn.label\n })\n}\n/*!\n * lunr.Vector\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A vector is used to construct the vector space of documents and queries. These\n * vectors support operations to determine the similarity between two documents or\n * a document and a query.\n *\n * Normally no parameters are required for initializing a vector, but in the case of\n * loading a previously dumped vector the raw elements can be provided to the constructor.\n *\n * For performance reasons vectors are implemented with a flat array, where an elements\n * index is immediately followed by its value. E.g. [index, value, index, value]. This\n * allows the underlying array to be as sparse as possible and still offer decent\n * performance when being used for vector calculations.\n *\n * @constructor\n * @param {Number[]} [elements] - The flat list of element index and element value pairs.\n */\nlunr.Vector = function (elements) {\n this._magnitude = 0\n this.elements = elements || []\n}\n\n\n/**\n * Calculates the position within the vector to insert a given index.\n *\n * This is used internally by insert and upsert. If there are duplicate indexes then\n * the position is returned as if the value for that index were to be updated, but it\n * is the callers responsibility to check whether there is a duplicate at that index\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @returns {Number}\n */\nlunr.Vector.prototype.positionForIndex = function (index) {\n // For an empty vector the tuple can be inserted at the beginning\n if (this.elements.length == 0) {\n return 0\n }\n\n var start = 0,\n end = this.elements.length / 2,\n sliceLength = end - start,\n pivotPoint = Math.floor(sliceLength / 2),\n pivotIndex = this.elements[pivotPoint * 2]\n\n while (sliceLength > 1) {\n if (pivotIndex < index) {\n start = pivotPoint\n }\n\n if (pivotIndex > index) {\n end = pivotPoint\n }\n\n if (pivotIndex == index) {\n break\n }\n\n sliceLength = end - start\n pivotPoint = start + Math.floor(sliceLength / 2)\n pivotIndex = this.elements[pivotPoint * 2]\n }\n\n if (pivotIndex == index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex > index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex < index) {\n return (pivotPoint + 1) * 2\n }\n}\n\n/**\n * Inserts an element at an index within the vector.\n *\n * Does not allow duplicates, will throw an error if there is already an entry\n * for this index.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n */\nlunr.Vector.prototype.insert = function (insertIdx, val) {\n this.upsert(insertIdx, val, function () {\n throw \"duplicate index\"\n })\n}\n\n/**\n * Inserts or updates an existing index within the vector.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n * @param {function} fn - A function that is called for updates, the existing value and the\n * requested value are passed as arguments\n */\nlunr.Vector.prototype.upsert = function (insertIdx, val, fn) {\n this._magnitude = 0\n var position = this.positionForIndex(insertIdx)\n\n if (this.elements[position] == insertIdx) {\n this.elements[position + 1] = fn(this.elements[position + 1], val)\n } else {\n this.elements.splice(position, 0, insertIdx, val)\n }\n}\n\n/**\n * Calculates the magnitude of this vector.\n *\n * @returns {Number}\n */\nlunr.Vector.prototype.magnitude = function () {\n if (this._magnitude) return this._magnitude\n\n var sumOfSquares = 0,\n elementsLength = this.elements.length\n\n for (var i = 1; i < elementsLength; i += 2) {\n var val = this.elements[i]\n sumOfSquares += val * val\n }\n\n return this._magnitude = Math.sqrt(sumOfSquares)\n}\n\n/**\n * Calculates the dot product of this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The vector to compute the dot product with.\n * @returns {Number}\n */\nlunr.Vector.prototype.dot = function (otherVector) {\n var dotProduct = 0,\n a = this.elements, b = otherVector.elements,\n aLen = a.length, bLen = b.length,\n aVal = 0, bVal = 0,\n i = 0, j = 0\n\n while (i < aLen && j < bLen) {\n aVal = a[i], bVal = b[j]\n if (aVal < bVal) {\n i += 2\n } else if (aVal > bVal) {\n j += 2\n } else if (aVal == bVal) {\n dotProduct += a[i + 1] * b[j + 1]\n i += 2\n j += 2\n }\n }\n\n return dotProduct\n}\n\n/**\n * Calculates the similarity between this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The other vector to calculate the\n * similarity with.\n * @returns {Number}\n */\nlunr.Vector.prototype.similarity = function (otherVector) {\n return this.dot(otherVector) / this.magnitude() || 0\n}\n\n/**\n * Converts the vector to an array of the elements within the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toArray = function () {\n var output = new Array (this.elements.length / 2)\n\n for (var i = 1, j = 0; i < this.elements.length; i += 2, j++) {\n output[j] = this.elements[i]\n }\n\n return output\n}\n\n/**\n * A JSON serializable representation of the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toJSON = function () {\n return this.elements\n}\n/* eslint-disable */\n/*!\n * lunr.stemmer\n * Copyright (C) 2019 Oliver Nightingale\n * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt\n */\n\n/**\n * lunr.stemmer is an english language stemmer, this is a JavaScript\n * implementation of the PorterStemmer taken from http://tartarus.org/~martin\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token - The string to stem\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n * @function\n */\nlunr.stemmer = (function(){\n var step2list = {\n \"ational\" : \"ate\",\n \"tional\" : \"tion\",\n \"enci\" : \"ence\",\n \"anci\" : \"ance\",\n \"izer\" : \"ize\",\n \"bli\" : \"ble\",\n \"alli\" : \"al\",\n \"entli\" : \"ent\",\n \"eli\" : \"e\",\n \"ousli\" : \"ous\",\n \"ization\" : \"ize\",\n \"ation\" : \"ate\",\n \"ator\" : \"ate\",\n \"alism\" : \"al\",\n \"iveness\" : \"ive\",\n \"fulness\" : \"ful\",\n \"ousness\" : \"ous\",\n \"aliti\" : \"al\",\n \"iviti\" : \"ive\",\n \"biliti\" : \"ble\",\n \"logi\" : \"log\"\n },\n\n step3list = {\n \"icate\" : \"ic\",\n \"ative\" : \"\",\n \"alize\" : \"al\",\n \"iciti\" : \"ic\",\n \"ical\" : \"ic\",\n \"ful\" : \"\",\n \"ness\" : \"\"\n },\n\n c = \"[^aeiou]\", // consonant\n v = \"[aeiouy]\", // vowel\n C = c + \"[^aeiouy]*\", // consonant sequence\n V = v + \"[aeiou]*\", // vowel sequence\n\n mgr0 = \"^(\" + C + \")?\" + V + C, // [C]VC... is m>0\n meq1 = \"^(\" + C + \")?\" + V + C + \"(\" + V + \")?$\", // [C]VC[V] is m=1\n mgr1 = \"^(\" + C + \")?\" + V + C + V + C, // [C]VCVC... is m>1\n s_v = \"^(\" + C + \")?\" + v; // vowel in stem\n\n var re_mgr0 = new RegExp(mgr0);\n var re_mgr1 = new RegExp(mgr1);\n var re_meq1 = new RegExp(meq1);\n var re_s_v = new RegExp(s_v);\n\n var re_1a = /^(.+?)(ss|i)es$/;\n var re2_1a = /^(.+?)([^s])s$/;\n var re_1b = /^(.+?)eed$/;\n var re2_1b = /^(.+?)(ed|ing)$/;\n var re_1b_2 = /.$/;\n var re2_1b_2 = /(at|bl|iz)$/;\n var re3_1b_2 = new RegExp(\"([^aeiouylsz])\\\\1$\");\n var re4_1b_2 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var re_1c = /^(.+?[^aeiou])y$/;\n var re_2 = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;\n\n var re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;\n\n var re_4 = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;\n var re2_4 = /^(.+?)(s|t)(ion)$/;\n\n var re_5 = /^(.+?)e$/;\n var re_5_1 = /ll$/;\n var re3_5 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var porterStemmer = function porterStemmer(w) {\n var stem,\n suffix,\n firstch,\n re,\n re2,\n re3,\n re4;\n\n if (w.length < 3) { return w; }\n\n firstch = w.substr(0,1);\n if (firstch == \"y\") {\n w = firstch.toUpperCase() + w.substr(1);\n }\n\n // Step 1a\n re = re_1a\n re2 = re2_1a;\n\n if (re.test(w)) { w = w.replace(re,\"$1$2\"); }\n else if (re2.test(w)) { w = w.replace(re2,\"$1$2\"); }\n\n // Step 1b\n re = re_1b;\n re2 = re2_1b;\n if (re.test(w)) {\n var fp = re.exec(w);\n re = re_mgr0;\n if (re.test(fp[1])) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1];\n re2 = re_s_v;\n if (re2.test(stem)) {\n w = stem;\n re2 = re2_1b_2;\n re3 = re3_1b_2;\n re4 = re4_1b_2;\n if (re2.test(w)) { w = w + \"e\"; }\n else if (re3.test(w)) { re = re_1b_2; w = w.replace(re,\"\"); }\n else if (re4.test(w)) { w = w + \"e\"; }\n }\n }\n\n // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say)\n re = re_1c;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n w = stem + \"i\";\n }\n\n // Step 2\n re = re_2;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step2list[suffix];\n }\n }\n\n // Step 3\n re = re_3;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step3list[suffix];\n }\n }\n\n // Step 4\n re = re_4;\n re2 = re2_4;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n if (re.test(stem)) {\n w = stem;\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1] + fp[2];\n re2 = re_mgr1;\n if (re2.test(stem)) {\n w = stem;\n }\n }\n\n // Step 5\n re = re_5;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n re2 = re_meq1;\n re3 = re3_5;\n if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {\n w = stem;\n }\n }\n\n re = re_5_1;\n re2 = re_mgr1;\n if (re.test(w) && re2.test(w)) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n\n // and turn initial Y back to y\n\n if (firstch == \"y\") {\n w = firstch.toLowerCase() + w.substr(1);\n }\n\n return w;\n };\n\n return function (token) {\n return token.update(porterStemmer);\n }\n})();\n\nlunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer')\n/*!\n * lunr.stopWordFilter\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.generateStopWordFilter builds a stopWordFilter function from the provided\n * list of stop words.\n *\n * The built in lunr.stopWordFilter is built using this generator and can be used\n * to generate custom stopWordFilters for applications or non English languages.\n *\n * @function\n * @param {Array} token The token to pass through the filter\n * @returns {lunr.PipelineFunction}\n * @see lunr.Pipeline\n * @see lunr.stopWordFilter\n */\nlunr.generateStopWordFilter = function (stopWords) {\n var words = stopWords.reduce(function (memo, stopWord) {\n memo[stopWord] = stopWord\n return memo\n }, {})\n\n return function (token) {\n if (token && words[token.toString()] !== token.toString()) return token\n }\n}\n\n/**\n * lunr.stopWordFilter is an English language stop word list filter, any words\n * contained in the list will not be passed through the filter.\n *\n * This is intended to be used in the Pipeline. If the token does not pass the\n * filter then undefined will be returned.\n *\n * @function\n * @implements {lunr.PipelineFunction}\n * @params {lunr.Token} token - A token to check for being a stop word.\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n */\nlunr.stopWordFilter = lunr.generateStopWordFilter([\n 'a',\n 'able',\n 'about',\n 'across',\n 'after',\n 'all',\n 'almost',\n 'also',\n 'am',\n 'among',\n 'an',\n 'and',\n 'any',\n 'are',\n 'as',\n 'at',\n 'be',\n 'because',\n 'been',\n 'but',\n 'by',\n 'can',\n 'cannot',\n 'could',\n 'dear',\n 'did',\n 'do',\n 'does',\n 'either',\n 'else',\n 'ever',\n 'every',\n 'for',\n 'from',\n 'get',\n 'got',\n 'had',\n 'has',\n 'have',\n 'he',\n 'her',\n 'hers',\n 'him',\n 'his',\n 'how',\n 'however',\n 'i',\n 'if',\n 'in',\n 'into',\n 'is',\n 'it',\n 'its',\n 'just',\n 'least',\n 'let',\n 'like',\n 'likely',\n 'may',\n 'me',\n 'might',\n 'most',\n 'must',\n 'my',\n 'neither',\n 'no',\n 'nor',\n 'not',\n 'of',\n 'off',\n 'often',\n 'on',\n 'only',\n 'or',\n 'other',\n 'our',\n 'own',\n 'rather',\n 'said',\n 'say',\n 'says',\n 'she',\n 'should',\n 'since',\n 'so',\n 'some',\n 'than',\n 'that',\n 'the',\n 'their',\n 'them',\n 'then',\n 'there',\n 'these',\n 'they',\n 'this',\n 'tis',\n 'to',\n 'too',\n 'twas',\n 'us',\n 'wants',\n 'was',\n 'we',\n 'were',\n 'what',\n 'when',\n 'where',\n 'which',\n 'while',\n 'who',\n 'whom',\n 'why',\n 'will',\n 'with',\n 'would',\n 'yet',\n 'you',\n 'your'\n])\n\nlunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter')\n/*!\n * lunr.trimmer\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.trimmer is a pipeline function for trimming non word\n * characters from the beginning and end of tokens before they\n * enter the index.\n *\n * This implementation may not work correctly for non latin\n * characters and should either be removed or adapted for use\n * with languages with non-latin characters.\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token The token to pass through the filter\n * @returns {lunr.Token}\n * @see lunr.Pipeline\n */\nlunr.trimmer = function (token) {\n return token.update(function (s) {\n return s.replace(/^\\W+/, '').replace(/\\W+$/, '')\n })\n}\n\nlunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer')\n/*!\n * lunr.TokenSet\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A token set is used to store the unique list of all tokens\n * within an index. Token sets are also used to represent an\n * incoming query to the index, this query token set and index\n * token set are then intersected to find which tokens to look\n * up in the inverted index.\n *\n * A token set can hold multiple tokens, as in the case of the\n * index token set, or it can hold a single token as in the\n * case of a simple query token set.\n *\n * Additionally token sets are used to perform wildcard matching.\n * Leading, contained and trailing wildcards are supported, and\n * from this edit distance matching can also be provided.\n *\n * Token sets are implemented as a minimal finite state automata,\n * where both common prefixes and suffixes are shared between tokens.\n * This helps to reduce the space used for storing the token set.\n *\n * @constructor\n */\nlunr.TokenSet = function () {\n this.final = false\n this.edges = {}\n this.id = lunr.TokenSet._nextId\n lunr.TokenSet._nextId += 1\n}\n\n/**\n * Keeps track of the next, auto increment, identifier to assign\n * to a new tokenSet.\n *\n * TokenSets require a unique identifier to be correctly minimised.\n *\n * @private\n */\nlunr.TokenSet._nextId = 1\n\n/**\n * Creates a TokenSet instance from the given sorted array of words.\n *\n * @param {String[]} arr - A sorted array of strings to create the set from.\n * @returns {lunr.TokenSet}\n * @throws Will throw an error if the input array is not sorted.\n */\nlunr.TokenSet.fromArray = function (arr) {\n var builder = new lunr.TokenSet.Builder\n\n for (var i = 0, len = arr.length; i < len; i++) {\n builder.insert(arr[i])\n }\n\n builder.finish()\n return builder.root\n}\n\n/**\n * Creates a token set from a query clause.\n *\n * @private\n * @param {Object} clause - A single clause from lunr.Query.\n * @param {string} clause.term - The query clause term.\n * @param {number} [clause.editDistance] - The optional edit distance for the term.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromClause = function (clause) {\n if ('editDistance' in clause) {\n return lunr.TokenSet.fromFuzzyString(clause.term, clause.editDistance)\n } else {\n return lunr.TokenSet.fromString(clause.term)\n }\n}\n\n/**\n * Creates a token set representing a single string with a specified\n * edit distance.\n *\n * Insertions, deletions, substitutions and transpositions are each\n * treated as an edit distance of 1.\n *\n * Increasing the allowed edit distance will have a dramatic impact\n * on the performance of both creating and intersecting these TokenSets.\n * It is advised to keep the edit distance less than 3.\n *\n * @param {string} str - The string to create the token set from.\n * @param {number} editDistance - The allowed edit distance to match.\n * @returns {lunr.Vector}\n */\nlunr.TokenSet.fromFuzzyString = function (str, editDistance) {\n var root = new lunr.TokenSet\n\n var stack = [{\n node: root,\n editsRemaining: editDistance,\n str: str\n }]\n\n while (stack.length) {\n var frame = stack.pop()\n\n // no edit\n if (frame.str.length > 0) {\n var char = frame.str.charAt(0),\n noEditNode\n\n if (char in frame.node.edges) {\n noEditNode = frame.node.edges[char]\n } else {\n noEditNode = new lunr.TokenSet\n frame.node.edges[char] = noEditNode\n }\n\n if (frame.str.length == 1) {\n noEditNode.final = true\n }\n\n stack.push({\n node: noEditNode,\n editsRemaining: frame.editsRemaining,\n str: frame.str.slice(1)\n })\n }\n\n if (frame.editsRemaining == 0) {\n continue\n }\n\n // insertion\n if (\"*\" in frame.node.edges) {\n var insertionNode = frame.node.edges[\"*\"]\n } else {\n var insertionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = insertionNode\n }\n\n if (frame.str.length == 0) {\n insertionNode.final = true\n }\n\n stack.push({\n node: insertionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str\n })\n\n // deletion\n // can only do a deletion if we have enough edits remaining\n // and if there are characters left to delete in the string\n if (frame.str.length > 1) {\n stack.push({\n node: frame.node,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // deletion\n // just removing the last character from the str\n if (frame.str.length == 1) {\n frame.node.final = true\n }\n\n // substitution\n // can only do a substitution if we have enough edits remaining\n // and if there are characters left to substitute\n if (frame.str.length >= 1) {\n if (\"*\" in frame.node.edges) {\n var substitutionNode = frame.node.edges[\"*\"]\n } else {\n var substitutionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = substitutionNode\n }\n\n if (frame.str.length == 1) {\n substitutionNode.final = true\n }\n\n stack.push({\n node: substitutionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // transposition\n // can only do a transposition if there are edits remaining\n // and there are enough characters to transpose\n if (frame.str.length > 1) {\n var charA = frame.str.charAt(0),\n charB = frame.str.charAt(1),\n transposeNode\n\n if (charB in frame.node.edges) {\n transposeNode = frame.node.edges[charB]\n } else {\n transposeNode = new lunr.TokenSet\n frame.node.edges[charB] = transposeNode\n }\n\n if (frame.str.length == 1) {\n transposeNode.final = true\n }\n\n stack.push({\n node: transposeNode,\n editsRemaining: frame.editsRemaining - 1,\n str: charA + frame.str.slice(2)\n })\n }\n }\n\n return root\n}\n\n/**\n * Creates a TokenSet from a string.\n *\n * The string may contain one or more wildcard characters (*)\n * that will allow wildcard matching when intersecting with\n * another TokenSet.\n *\n * @param {string} str - The string to create a TokenSet from.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromString = function (str) {\n var node = new lunr.TokenSet,\n root = node\n\n /*\n * Iterates through all characters within the passed string\n * appending a node for each character.\n *\n * When a wildcard character is found then a self\n * referencing edge is introduced to continually match\n * any number of any characters.\n */\n for (var i = 0, len = str.length; i < len; i++) {\n var char = str[i],\n final = (i == len - 1)\n\n if (char == \"*\") {\n node.edges[char] = node\n node.final = final\n\n } else {\n var next = new lunr.TokenSet\n next.final = final\n\n node.edges[char] = next\n node = next\n }\n }\n\n return root\n}\n\n/**\n * Converts this TokenSet into an array of strings\n * contained within the TokenSet.\n *\n * This is not intended to be used on a TokenSet that\n * contains wildcards, in these cases the results are\n * undefined and are likely to cause an infinite loop.\n *\n * @returns {string[]}\n */\nlunr.TokenSet.prototype.toArray = function () {\n var words = []\n\n var stack = [{\n prefix: \"\",\n node: this\n }]\n\n while (stack.length) {\n var frame = stack.pop(),\n edges = Object.keys(frame.node.edges),\n len = edges.length\n\n if (frame.node.final) {\n /* In Safari, at this point the prefix is sometimes corrupted, see:\n * https://github.com/olivernn/lunr.js/issues/279 Calling any\n * String.prototype method forces Safari to \"cast\" this string to what\n * it's supposed to be, fixing the bug. */\n frame.prefix.charAt(0)\n words.push(frame.prefix)\n }\n\n for (var i = 0; i < len; i++) {\n var edge = edges[i]\n\n stack.push({\n prefix: frame.prefix.concat(edge),\n node: frame.node.edges[edge]\n })\n }\n }\n\n return words\n}\n\n/**\n * Generates a string representation of a TokenSet.\n *\n * This is intended to allow TokenSets to be used as keys\n * in objects, largely to aid the construction and minimisation\n * of a TokenSet. As such it is not designed to be a human\n * friendly representation of the TokenSet.\n *\n * @returns {string}\n */\nlunr.TokenSet.prototype.toString = function () {\n // NOTE: Using Object.keys here as this.edges is very likely\n // to enter 'hash-mode' with many keys being added\n //\n // avoiding a for-in loop here as it leads to the function\n // being de-optimised (at least in V8). From some simple\n // benchmarks the performance is comparable, but allowing\n // V8 to optimize may mean easy performance wins in the future.\n\n if (this._str) {\n return this._str\n }\n\n var str = this.final ? '1' : '0',\n labels = Object.keys(this.edges).sort(),\n len = labels.length\n\n for (var i = 0; i < len; i++) {\n var label = labels[i],\n node = this.edges[label]\n\n str = str + label + node.id\n }\n\n return str\n}\n\n/**\n * Returns a new TokenSet that is the intersection of\n * this TokenSet and the passed TokenSet.\n *\n * This intersection will take into account any wildcards\n * contained within the TokenSet.\n *\n * @param {lunr.TokenSet} b - An other TokenSet to intersect with.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.prototype.intersect = function (b) {\n var output = new lunr.TokenSet,\n frame = undefined\n\n var stack = [{\n qNode: b,\n output: output,\n node: this\n }]\n\n while (stack.length) {\n frame = stack.pop()\n\n // NOTE: As with the #toString method, we are using\n // Object.keys and a for loop instead of a for-in loop\n // as both of these objects enter 'hash' mode, causing\n // the function to be de-optimised in V8\n var qEdges = Object.keys(frame.qNode.edges),\n qLen = qEdges.length,\n nEdges = Object.keys(frame.node.edges),\n nLen = nEdges.length\n\n for (var q = 0; q < qLen; q++) {\n var qEdge = qEdges[q]\n\n for (var n = 0; n < nLen; n++) {\n var nEdge = nEdges[n]\n\n if (nEdge == qEdge || qEdge == '*') {\n var node = frame.node.edges[nEdge],\n qNode = frame.qNode.edges[qEdge],\n final = node.final && qNode.final,\n next = undefined\n\n if (nEdge in frame.output.edges) {\n // an edge already exists for this character\n // no need to create a new node, just set the finality\n // bit unless this node is already final\n next = frame.output.edges[nEdge]\n next.final = next.final || final\n\n } else {\n // no edge exists yet, must create one\n // set the finality bit and insert it\n // into the output\n next = new lunr.TokenSet\n next.final = final\n frame.output.edges[nEdge] = next\n }\n\n stack.push({\n qNode: qNode,\n output: next,\n node: node\n })\n }\n }\n }\n }\n\n return output\n}\nlunr.TokenSet.Builder = function () {\n this.previousWord = \"\"\n this.root = new lunr.TokenSet\n this.uncheckedNodes = []\n this.minimizedNodes = {}\n}\n\nlunr.TokenSet.Builder.prototype.insert = function (word) {\n var node,\n commonPrefix = 0\n\n if (word < this.previousWord) {\n throw new Error (\"Out of order word insertion\")\n }\n\n for (var i = 0; i < word.length && i < this.previousWord.length; i++) {\n if (word[i] != this.previousWord[i]) break\n commonPrefix++\n }\n\n this.minimize(commonPrefix)\n\n if (this.uncheckedNodes.length == 0) {\n node = this.root\n } else {\n node = this.uncheckedNodes[this.uncheckedNodes.length - 1].child\n }\n\n for (var i = commonPrefix; i < word.length; i++) {\n var nextNode = new lunr.TokenSet,\n char = word[i]\n\n node.edges[char] = nextNode\n\n this.uncheckedNodes.push({\n parent: node,\n char: char,\n child: nextNode\n })\n\n node = nextNode\n }\n\n node.final = true\n this.previousWord = word\n}\n\nlunr.TokenSet.Builder.prototype.finish = function () {\n this.minimize(0)\n}\n\nlunr.TokenSet.Builder.prototype.minimize = function (downTo) {\n for (var i = this.uncheckedNodes.length - 1; i >= downTo; i--) {\n var node = this.uncheckedNodes[i],\n childKey = node.child.toString()\n\n if (childKey in this.minimizedNodes) {\n node.parent.edges[node.char] = this.minimizedNodes[childKey]\n } else {\n // Cache the key for this node since\n // we know it can't change anymore\n node.child._str = childKey\n\n this.minimizedNodes[childKey] = node.child\n }\n\n this.uncheckedNodes.pop()\n }\n}\n/*!\n * lunr.Index\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * An index contains the built index of all documents and provides a query interface\n * to the index.\n *\n * Usually instances of lunr.Index will not be created using this constructor, instead\n * lunr.Builder should be used to construct new indexes, or lunr.Index.load should be\n * used to load previously built and serialized indexes.\n *\n * @constructor\n * @param {Object} attrs - The attributes of the built search index.\n * @param {Object} attrs.invertedIndex - An index of term/field to document reference.\n * @param {Object} attrs.fieldVectors - Field vectors\n * @param {lunr.TokenSet} attrs.tokenSet - An set of all corpus tokens.\n * @param {string[]} attrs.fields - The names of indexed document fields.\n * @param {lunr.Pipeline} attrs.pipeline - The pipeline to use for search terms.\n */\nlunr.Index = function (attrs) {\n this.invertedIndex = attrs.invertedIndex\n this.fieldVectors = attrs.fieldVectors\n this.tokenSet = attrs.tokenSet\n this.fields = attrs.fields\n this.pipeline = attrs.pipeline\n}\n\n/**\n * A result contains details of a document matching a search query.\n * @typedef {Object} lunr.Index~Result\n * @property {string} ref - The reference of the document this result represents.\n * @property {number} score - A number between 0 and 1 representing how similar this document is to the query.\n * @property {lunr.MatchData} matchData - Contains metadata about this match including which term(s) caused the match.\n */\n\n/**\n * Although lunr provides the ability to create queries using lunr.Query, it also provides a simple\n * query language which itself is parsed into an instance of lunr.Query.\n *\n * For programmatically building queries it is advised to directly use lunr.Query, the query language\n * is best used for human entered text rather than program generated text.\n *\n * At its simplest queries can just be a single term, e.g. `hello`, multiple terms are also supported\n * and will be combined with OR, e.g `hello world` will match documents that contain either 'hello'\n * or 'world', though those that contain both will rank higher in the results.\n *\n * Wildcards can be included in terms to match one or more unspecified characters, these wildcards can\n * be inserted anywhere within the term, and more than one wildcard can exist in a single term. Adding\n * wildcards will increase the number of documents that will be found but can also have a negative\n * impact on query performance, especially with wildcards at the beginning of a term.\n *\n * Terms can be restricted to specific fields, e.g. `title:hello`, only documents with the term\n * hello in the title field will match this query. Using a field not present in the index will lead\n * to an error being thrown.\n *\n * Modifiers can also be added to terms, lunr supports edit distance and boost modifiers on terms. A term\n * boost will make documents matching that term score higher, e.g. `foo^5`. Edit distance is also supported\n * to provide fuzzy matching, e.g. 'hello~2' will match documents with hello with an edit distance of 2.\n * Avoid large values for edit distance to improve query performance.\n *\n * Each term also supports a presence modifier. By default a term's presence in document is optional, however\n * this can be changed to either required or prohibited. For a term's presence to be required in a document the\n * term should be prefixed with a '+', e.g. `+foo bar` is a search for documents that must contain 'foo' and\n * optionally contain 'bar'. Conversely a leading '-' sets the terms presence to prohibited, i.e. it must not\n * appear in a document, e.g. `-foo bar` is a search for documents that do not contain 'foo' but may contain 'bar'.\n *\n * To escape special characters the backslash character '\\' can be used, this allows searches to include\n * characters that would normally be considered modifiers, e.g. `foo\\~2` will search for a term \"foo~2\" instead\n * of attempting to apply a boost of 2 to the search term \"foo\".\n *\n * @typedef {string} lunr.Index~QueryString\n * @example Simple single term query\n * hello\n * @example Multiple term query\n * hello world\n * @example term scoped to a field\n * title:hello\n * @example term with a boost of 10\n * hello^10\n * @example term with an edit distance of 2\n * hello~2\n * @example terms with presence modifiers\n * -foo +bar baz\n */\n\n/**\n * Performs a search against the index using lunr query syntax.\n *\n * Results will be returned sorted by their score, the most relevant results\n * will be returned first. For details on how the score is calculated, please see\n * the {@link https://lunrjs.com/guides/searching.html#scoring|guide}.\n *\n * For more programmatic querying use lunr.Index#query.\n *\n * @param {lunr.Index~QueryString} queryString - A string containing a lunr query.\n * @throws {lunr.QueryParseError} If the passed query string cannot be parsed.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.search = function (queryString) {\n return this.query(function (query) {\n var parser = new lunr.QueryParser(queryString, query)\n parser.parse()\n })\n}\n\n/**\n * A query builder callback provides a query object to be used to express\n * the query to perform on the index.\n *\n * @callback lunr.Index~queryBuilder\n * @param {lunr.Query} query - The query object to build up.\n * @this lunr.Query\n */\n\n/**\n * Performs a query against the index using the yielded lunr.Query object.\n *\n * If performing programmatic queries against the index, this method is preferred\n * over lunr.Index#search so as to avoid the additional query parsing overhead.\n *\n * A query object is yielded to the supplied function which should be used to\n * express the query to be run against the index.\n *\n * Note that although this function takes a callback parameter it is _not_ an\n * asynchronous operation, the callback is just yielded a query object to be\n * customized.\n *\n * @param {lunr.Index~queryBuilder} fn - A function that is used to build the query.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.query = function (fn) {\n // for each query clause\n // * process terms\n // * expand terms from token set\n // * find matching documents and metadata\n // * get document vectors\n // * score documents\n\n var query = new lunr.Query(this.fields),\n matchingFields = Object.create(null),\n queryVectors = Object.create(null),\n termFieldCache = Object.create(null),\n requiredMatches = Object.create(null),\n prohibitedMatches = Object.create(null)\n\n /*\n * To support field level boosts a query vector is created per\n * field. An empty vector is eagerly created to support negated\n * queries.\n */\n for (var i = 0; i < this.fields.length; i++) {\n queryVectors[this.fields[i]] = new lunr.Vector\n }\n\n fn.call(query, query)\n\n for (var i = 0; i < query.clauses.length; i++) {\n /*\n * Unless the pipeline has been disabled for this term, which is\n * the case for terms with wildcards, we need to pass the clause\n * term through the search pipeline. A pipeline returns an array\n * of processed terms. Pipeline functions may expand the passed\n * term, which means we may end up performing multiple index lookups\n * for a single query term.\n */\n var clause = query.clauses[i],\n terms = null,\n clauseMatches = lunr.Set.complete\n\n if (clause.usePipeline) {\n terms = this.pipeline.runString(clause.term, {\n fields: clause.fields\n })\n } else {\n terms = [clause.term]\n }\n\n for (var m = 0; m < terms.length; m++) {\n var term = terms[m]\n\n /*\n * Each term returned from the pipeline needs to use the same query\n * clause object, e.g. the same boost and or edit distance. The\n * simplest way to do this is to re-use the clause object but mutate\n * its term property.\n */\n clause.term = term\n\n /*\n * From the term in the clause we create a token set which will then\n * be used to intersect the indexes token set to get a list of terms\n * to lookup in the inverted index\n */\n var termTokenSet = lunr.TokenSet.fromClause(clause),\n expandedTerms = this.tokenSet.intersect(termTokenSet).toArray()\n\n /*\n * If a term marked as required does not exist in the tokenSet it is\n * impossible for the search to return any matches. We set all the field\n * scoped required matches set to empty and stop examining any further\n * clauses.\n */\n if (expandedTerms.length === 0 && clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = lunr.Set.empty\n }\n\n break\n }\n\n for (var j = 0; j < expandedTerms.length; j++) {\n /*\n * For each term get the posting and termIndex, this is required for\n * building the query vector.\n */\n var expandedTerm = expandedTerms[j],\n posting = this.invertedIndex[expandedTerm],\n termIndex = posting._index\n\n for (var k = 0; k < clause.fields.length; k++) {\n /*\n * For each field that this query term is scoped by (by default\n * all fields are in scope) we need to get all the document refs\n * that have this term in that field.\n *\n * The posting is the entry in the invertedIndex for the matching\n * term from above.\n */\n var field = clause.fields[k],\n fieldPosting = posting[field],\n matchingDocumentRefs = Object.keys(fieldPosting),\n termField = expandedTerm + \"/\" + field,\n matchingDocumentsSet = new lunr.Set(matchingDocumentRefs)\n\n /*\n * if the presence of this term is required ensure that the matching\n * documents are added to the set of required matches for this clause.\n *\n */\n if (clause.presence == lunr.Query.presence.REQUIRED) {\n clauseMatches = clauseMatches.union(matchingDocumentsSet)\n\n if (requiredMatches[field] === undefined) {\n requiredMatches[field] = lunr.Set.complete\n }\n }\n\n /*\n * if the presence of this term is prohibited ensure that the matching\n * documents are added to the set of prohibited matches for this field,\n * creating that set if it does not yet exist.\n */\n if (clause.presence == lunr.Query.presence.PROHIBITED) {\n if (prohibitedMatches[field] === undefined) {\n prohibitedMatches[field] = lunr.Set.empty\n }\n\n prohibitedMatches[field] = prohibitedMatches[field].union(matchingDocumentsSet)\n\n /*\n * Prohibited matches should not be part of the query vector used for\n * similarity scoring and no metadata should be extracted so we continue\n * to the next field\n */\n continue\n }\n\n /*\n * The query field vector is populated using the termIndex found for\n * the term and a unit value with the appropriate boost applied.\n * Using upsert because there could already be an entry in the vector\n * for the term we are working with. In that case we just add the scores\n * together.\n */\n queryVectors[field].upsert(termIndex, clause.boost, function (a, b) { return a + b })\n\n /**\n * If we've already seen this term, field combo then we've already collected\n * the matching documents and metadata, no need to go through all that again\n */\n if (termFieldCache[termField]) {\n continue\n }\n\n for (var l = 0; l < matchingDocumentRefs.length; l++) {\n /*\n * All metadata for this term/field/document triple\n * are then extracted and collected into an instance\n * of lunr.MatchData ready to be returned in the query\n * results\n */\n var matchingDocumentRef = matchingDocumentRefs[l],\n matchingFieldRef = new lunr.FieldRef (matchingDocumentRef, field),\n metadata = fieldPosting[matchingDocumentRef],\n fieldMatch\n\n if ((fieldMatch = matchingFields[matchingFieldRef]) === undefined) {\n matchingFields[matchingFieldRef] = new lunr.MatchData (expandedTerm, field, metadata)\n } else {\n fieldMatch.add(expandedTerm, field, metadata)\n }\n\n }\n\n termFieldCache[termField] = true\n }\n }\n }\n\n /**\n * If the presence was required we need to update the requiredMatches field sets.\n * We do this after all fields for the term have collected their matches because\n * the clause terms presence is required in _any_ of the fields not _all_ of the\n * fields.\n */\n if (clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = requiredMatches[field].intersect(clauseMatches)\n }\n }\n }\n\n /**\n * Need to combine the field scoped required and prohibited\n * matching documents into a global set of required and prohibited\n * matches\n */\n var allRequiredMatches = lunr.Set.complete,\n allProhibitedMatches = lunr.Set.empty\n\n for (var i = 0; i < this.fields.length; i++) {\n var field = this.fields[i]\n\n if (requiredMatches[field]) {\n allRequiredMatches = allRequiredMatches.intersect(requiredMatches[field])\n }\n\n if (prohibitedMatches[field]) {\n allProhibitedMatches = allProhibitedMatches.union(prohibitedMatches[field])\n }\n }\n\n var matchingFieldRefs = Object.keys(matchingFields),\n results = [],\n matches = Object.create(null)\n\n /*\n * If the query is negated (contains only prohibited terms)\n * we need to get _all_ fieldRefs currently existing in the\n * index. This is only done when we know that the query is\n * entirely prohibited terms to avoid any cost of getting all\n * fieldRefs unnecessarily.\n *\n * Additionally, blank MatchData must be created to correctly\n * populate the results.\n */\n if (query.isNegated()) {\n matchingFieldRefs = Object.keys(this.fieldVectors)\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n var matchingFieldRef = matchingFieldRefs[i]\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRef)\n matchingFields[matchingFieldRef] = new lunr.MatchData\n }\n }\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n /*\n * Currently we have document fields that match the query, but we\n * need to return documents. The matchData and scores are combined\n * from multiple fields belonging to the same document.\n *\n * Scores are calculated by field, using the query vectors created\n * above, and combined into a final document score using addition.\n */\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRefs[i]),\n docRef = fieldRef.docRef\n\n if (!allRequiredMatches.contains(docRef)) {\n continue\n }\n\n if (allProhibitedMatches.contains(docRef)) {\n continue\n }\n\n var fieldVector = this.fieldVectors[fieldRef],\n score = queryVectors[fieldRef.fieldName].similarity(fieldVector),\n docMatch\n\n if ((docMatch = matches[docRef]) !== undefined) {\n docMatch.score += score\n docMatch.matchData.combine(matchingFields[fieldRef])\n } else {\n var match = {\n ref: docRef,\n score: score,\n matchData: matchingFields[fieldRef]\n }\n matches[docRef] = match\n results.push(match)\n }\n }\n\n /*\n * Sort the results objects by score, highest first.\n */\n return results.sort(function (a, b) {\n return b.score - a.score\n })\n}\n\n/**\n * Prepares the index for JSON serialization.\n *\n * The schema for this JSON blob will be described in a\n * separate JSON schema file.\n *\n * @returns {Object}\n */\nlunr.Index.prototype.toJSON = function () {\n var invertedIndex = Object.keys(this.invertedIndex)\n .sort()\n .map(function (term) {\n return [term, this.invertedIndex[term]]\n }, this)\n\n var fieldVectors = Object.keys(this.fieldVectors)\n .map(function (ref) {\n return [ref, this.fieldVectors[ref].toJSON()]\n }, this)\n\n return {\n version: lunr.version,\n fields: this.fields,\n fieldVectors: fieldVectors,\n invertedIndex: invertedIndex,\n pipeline: this.pipeline.toJSON()\n }\n}\n\n/**\n * Loads a previously serialized lunr.Index\n *\n * @param {Object} serializedIndex - A previously serialized lunr.Index\n * @returns {lunr.Index}\n */\nlunr.Index.load = function (serializedIndex) {\n var attrs = {},\n fieldVectors = {},\n serializedVectors = serializedIndex.fieldVectors,\n invertedIndex = Object.create(null),\n serializedInvertedIndex = serializedIndex.invertedIndex,\n tokenSetBuilder = new lunr.TokenSet.Builder,\n pipeline = lunr.Pipeline.load(serializedIndex.pipeline)\n\n if (serializedIndex.version != lunr.version) {\n lunr.utils.warn(\"Version mismatch when loading serialised index. Current version of lunr '\" + lunr.version + \"' does not match serialized index '\" + serializedIndex.version + \"'\")\n }\n\n for (var i = 0; i < serializedVectors.length; i++) {\n var tuple = serializedVectors[i],\n ref = tuple[0],\n elements = tuple[1]\n\n fieldVectors[ref] = new lunr.Vector(elements)\n }\n\n for (var i = 0; i < serializedInvertedIndex.length; i++) {\n var tuple = serializedInvertedIndex[i],\n term = tuple[0],\n posting = tuple[1]\n\n tokenSetBuilder.insert(term)\n invertedIndex[term] = posting\n }\n\n tokenSetBuilder.finish()\n\n attrs.fields = serializedIndex.fields\n\n attrs.fieldVectors = fieldVectors\n attrs.invertedIndex = invertedIndex\n attrs.tokenSet = tokenSetBuilder.root\n attrs.pipeline = pipeline\n\n return new lunr.Index(attrs)\n}\n/*!\n * lunr.Builder\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.Builder performs indexing on a set of documents and\n * returns instances of lunr.Index ready for querying.\n *\n * All configuration of the index is done via the builder, the\n * fields to index, the document reference, the text processing\n * pipeline and document scoring parameters are all set on the\n * builder before indexing.\n *\n * @constructor\n * @property {string} _ref - Internal reference to the document reference field.\n * @property {string[]} _fields - Internal reference to the document fields to index.\n * @property {object} invertedIndex - The inverted index maps terms to document fields.\n * @property {object} documentTermFrequencies - Keeps track of document term frequencies.\n * @property {object} documentLengths - Keeps track of the length of documents added to the index.\n * @property {lunr.tokenizer} tokenizer - Function for splitting strings into tokens for indexing.\n * @property {lunr.Pipeline} pipeline - The pipeline performs text processing on tokens before indexing.\n * @property {lunr.Pipeline} searchPipeline - A pipeline for processing search terms before querying the index.\n * @property {number} documentCount - Keeps track of the total number of documents indexed.\n * @property {number} _b - A parameter to control field length normalization, setting this to 0 disabled normalization, 1 fully normalizes field lengths, the default value is 0.75.\n * @property {number} _k1 - A parameter to control how quickly an increase in term frequency results in term frequency saturation, the default value is 1.2.\n * @property {number} termIndex - A counter incremented for each unique term, used to identify a terms position in the vector space.\n * @property {array} metadataWhitelist - A list of metadata keys that have been whitelisted for entry in the index.\n */\nlunr.Builder = function () {\n this._ref = \"id\"\n this._fields = Object.create(null)\n this._documents = Object.create(null)\n this.invertedIndex = Object.create(null)\n this.fieldTermFrequencies = {}\n this.fieldLengths = {}\n this.tokenizer = lunr.tokenizer\n this.pipeline = new lunr.Pipeline\n this.searchPipeline = new lunr.Pipeline\n this.documentCount = 0\n this._b = 0.75\n this._k1 = 1.2\n this.termIndex = 0\n this.metadataWhitelist = []\n}\n\n/**\n * Sets the document field used as the document reference. Every document must have this field.\n * The type of this field in the document should be a string, if it is not a string it will be\n * coerced into a string by calling toString.\n *\n * The default ref is 'id'.\n *\n * The ref should _not_ be changed during indexing, it should be set before any documents are\n * added to the index. Changing it during indexing can lead to inconsistent results.\n *\n * @param {string} ref - The name of the reference field in the document.\n */\nlunr.Builder.prototype.ref = function (ref) {\n this._ref = ref\n}\n\n/**\n * A function that is used to extract a field from a document.\n *\n * Lunr expects a field to be at the top level of a document, if however the field\n * is deeply nested within a document an extractor function can be used to extract\n * the right field for indexing.\n *\n * @callback fieldExtractor\n * @param {object} doc - The document being added to the index.\n * @returns {?(string|object|object[])} obj - The object that will be indexed for this field.\n * @example Extracting a nested field\n * function (doc) { return doc.nested.field }\n */\n\n/**\n * Adds a field to the list of document fields that will be indexed. Every document being\n * indexed should have this field. Null values for this field in indexed documents will\n * not cause errors but will limit the chance of that document being retrieved by searches.\n *\n * All fields should be added before adding documents to the index. Adding fields after\n * a document has been indexed will have no effect on already indexed documents.\n *\n * Fields can be boosted at build time. This allows terms within that field to have more\n * importance when ranking search results. Use a field boost to specify that matches within\n * one field are more important than other fields.\n *\n * @param {string} fieldName - The name of a field to index in all documents.\n * @param {object} attributes - Optional attributes associated with this field.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this field.\n * @param {fieldExtractor} [attributes.extractor] - Function to extract a field from a document.\n * @throws {RangeError} fieldName cannot contain unsupported characters '/'\n */\nlunr.Builder.prototype.field = function (fieldName, attributes) {\n if (/\\//.test(fieldName)) {\n throw new RangeError (\"Field '\" + fieldName + \"' contains illegal character '/'\")\n }\n\n this._fields[fieldName] = attributes || {}\n}\n\n/**\n * A parameter to tune the amount of field length normalisation that is applied when\n * calculating relevance scores. A value of 0 will completely disable any normalisation\n * and a value of 1 will fully normalise field lengths. The default is 0.75. Values of b\n * will be clamped to the range 0 - 1.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.b = function (number) {\n if (number < 0) {\n this._b = 0\n } else if (number > 1) {\n this._b = 1\n } else {\n this._b = number\n }\n}\n\n/**\n * A parameter that controls the speed at which a rise in term frequency results in term\n * frequency saturation. The default value is 1.2. Setting this to a higher value will give\n * slower saturation levels, a lower value will result in quicker saturation.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.k1 = function (number) {\n this._k1 = number\n}\n\n/**\n * Adds a document to the index.\n *\n * Before adding fields to the index the index should have been fully setup, with the document\n * ref and all fields to index already having been specified.\n *\n * The document must have a field name as specified by the ref (by default this is 'id') and\n * it should have all fields defined for indexing, though null or undefined values will not\n * cause errors.\n *\n * Entire documents can be boosted at build time. Applying a boost to a document indicates that\n * this document should rank higher in search results than other documents.\n *\n * @param {object} doc - The document to add to the index.\n * @param {object} attributes - Optional attributes associated with this document.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this document.\n */\nlunr.Builder.prototype.add = function (doc, attributes) {\n var docRef = doc[this._ref],\n fields = Object.keys(this._fields)\n\n this._documents[docRef] = attributes || {}\n this.documentCount += 1\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i],\n extractor = this._fields[fieldName].extractor,\n field = extractor ? extractor(doc) : doc[fieldName],\n tokens = this.tokenizer(field, {\n fields: [fieldName]\n }),\n terms = this.pipeline.run(tokens),\n fieldRef = new lunr.FieldRef (docRef, fieldName),\n fieldTerms = Object.create(null)\n\n this.fieldTermFrequencies[fieldRef] = fieldTerms\n this.fieldLengths[fieldRef] = 0\n\n // store the length of this field for this document\n this.fieldLengths[fieldRef] += terms.length\n\n // calculate term frequencies for this field\n for (var j = 0; j < terms.length; j++) {\n var term = terms[j]\n\n if (fieldTerms[term] == undefined) {\n fieldTerms[term] = 0\n }\n\n fieldTerms[term] += 1\n\n // add to inverted index\n // create an initial posting if one doesn't exist\n if (this.invertedIndex[term] == undefined) {\n var posting = Object.create(null)\n posting[\"_index\"] = this.termIndex\n this.termIndex += 1\n\n for (var k = 0; k < fields.length; k++) {\n posting[fields[k]] = Object.create(null)\n }\n\n this.invertedIndex[term] = posting\n }\n\n // add an entry for this term/fieldName/docRef to the invertedIndex\n if (this.invertedIndex[term][fieldName][docRef] == undefined) {\n this.invertedIndex[term][fieldName][docRef] = Object.create(null)\n }\n\n // store all whitelisted metadata about this token in the\n // inverted index\n for (var l = 0; l < this.metadataWhitelist.length; l++) {\n var metadataKey = this.metadataWhitelist[l],\n metadata = term.metadata[metadataKey]\n\n if (this.invertedIndex[term][fieldName][docRef][metadataKey] == undefined) {\n this.invertedIndex[term][fieldName][docRef][metadataKey] = []\n }\n\n this.invertedIndex[term][fieldName][docRef][metadataKey].push(metadata)\n }\n }\n\n }\n}\n\n/**\n * Calculates the average document length for this index\n *\n * @private\n */\nlunr.Builder.prototype.calculateAverageFieldLengths = function () {\n\n var fieldRefs = Object.keys(this.fieldLengths),\n numberOfFields = fieldRefs.length,\n accumulator = {},\n documentsWithField = {}\n\n for (var i = 0; i < numberOfFields; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n field = fieldRef.fieldName\n\n documentsWithField[field] || (documentsWithField[field] = 0)\n documentsWithField[field] += 1\n\n accumulator[field] || (accumulator[field] = 0)\n accumulator[field] += this.fieldLengths[fieldRef]\n }\n\n var fields = Object.keys(this._fields)\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i]\n accumulator[fieldName] = accumulator[fieldName] / documentsWithField[fieldName]\n }\n\n this.averageFieldLength = accumulator\n}\n\n/**\n * Builds a vector space model of every document using lunr.Vector\n *\n * @private\n */\nlunr.Builder.prototype.createFieldVectors = function () {\n var fieldVectors = {},\n fieldRefs = Object.keys(this.fieldTermFrequencies),\n fieldRefsLength = fieldRefs.length,\n termIdfCache = Object.create(null)\n\n for (var i = 0; i < fieldRefsLength; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n fieldName = fieldRef.fieldName,\n fieldLength = this.fieldLengths[fieldRef],\n fieldVector = new lunr.Vector,\n termFrequencies = this.fieldTermFrequencies[fieldRef],\n terms = Object.keys(termFrequencies),\n termsLength = terms.length\n\n\n var fieldBoost = this._fields[fieldName].boost || 1,\n docBoost = this._documents[fieldRef.docRef].boost || 1\n\n for (var j = 0; j < termsLength; j++) {\n var term = terms[j],\n tf = termFrequencies[term],\n termIndex = this.invertedIndex[term]._index,\n idf, score, scoreWithPrecision\n\n if (termIdfCache[term] === undefined) {\n idf = lunr.idf(this.invertedIndex[term], this.documentCount)\n termIdfCache[term] = idf\n } else {\n idf = termIdfCache[term]\n }\n\n score = idf * ((this._k1 + 1) * tf) / (this._k1 * (1 - this._b + this._b * (fieldLength / this.averageFieldLength[fieldName])) + tf)\n score *= fieldBoost\n score *= docBoost\n scoreWithPrecision = Math.round(score * 1000) / 1000\n // Converts 1.23456789 to 1.234.\n // Reducing the precision so that the vectors take up less\n // space when serialised. Doing it now so that they behave\n // the same before and after serialisation. Also, this is\n // the fastest approach to reducing a number's precision in\n // JavaScript.\n\n fieldVector.insert(termIndex, scoreWithPrecision)\n }\n\n fieldVectors[fieldRef] = fieldVector\n }\n\n this.fieldVectors = fieldVectors\n}\n\n/**\n * Creates a token set of all tokens in the index using lunr.TokenSet\n *\n * @private\n */\nlunr.Builder.prototype.createTokenSet = function () {\n this.tokenSet = lunr.TokenSet.fromArray(\n Object.keys(this.invertedIndex).sort()\n )\n}\n\n/**\n * Builds the index, creating an instance of lunr.Index.\n *\n * This completes the indexing process and should only be called\n * once all documents have been added to the index.\n *\n * @returns {lunr.Index}\n */\nlunr.Builder.prototype.build = function () {\n this.calculateAverageFieldLengths()\n this.createFieldVectors()\n this.createTokenSet()\n\n return new lunr.Index({\n invertedIndex: this.invertedIndex,\n fieldVectors: this.fieldVectors,\n tokenSet: this.tokenSet,\n fields: Object.keys(this._fields),\n pipeline: this.searchPipeline\n })\n}\n\n/**\n * Applies a plugin to the index builder.\n *\n * A plugin is a function that is called with the index builder as its context.\n * Plugins can be used to customise or extend the behaviour of the index\n * in some way. A plugin is just a function, that encapsulated the custom\n * behaviour that should be applied when building the index.\n *\n * The plugin function will be called with the index builder as its argument, additional\n * arguments can also be passed when calling use. The function will be called\n * with the index builder as its context.\n *\n * @param {Function} plugin The plugin to apply.\n */\nlunr.Builder.prototype.use = function (fn) {\n var args = Array.prototype.slice.call(arguments, 1)\n args.unshift(this)\n fn.apply(this, args)\n}\n/**\n * Contains and collects metadata about a matching document.\n * A single instance of lunr.MatchData is returned as part of every\n * lunr.Index~Result.\n *\n * @constructor\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n * @property {object} metadata - A cloned collection of metadata associated with this document.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData = function (term, field, metadata) {\n var clonedMetadata = Object.create(null),\n metadataKeys = Object.keys(metadata || {})\n\n // Cloning the metadata to prevent the original\n // being mutated during match data combination.\n // Metadata is kept in an array within the inverted\n // index so cloning the data can be done with\n // Array#slice\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n clonedMetadata[key] = metadata[key].slice()\n }\n\n this.metadata = Object.create(null)\n\n if (term !== undefined) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = clonedMetadata\n }\n}\n\n/**\n * An instance of lunr.MatchData will be created for every term that matches a\n * document. However only one instance is required in a lunr.Index~Result. This\n * method combines metadata from another instance of lunr.MatchData with this\n * objects metadata.\n *\n * @param {lunr.MatchData} otherMatchData - Another instance of match data to merge with this one.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData.prototype.combine = function (otherMatchData) {\n var terms = Object.keys(otherMatchData.metadata)\n\n for (var i = 0; i < terms.length; i++) {\n var term = terms[i],\n fields = Object.keys(otherMatchData.metadata[term])\n\n if (this.metadata[term] == undefined) {\n this.metadata[term] = Object.create(null)\n }\n\n for (var j = 0; j < fields.length; j++) {\n var field = fields[j],\n keys = Object.keys(otherMatchData.metadata[term][field])\n\n if (this.metadata[term][field] == undefined) {\n this.metadata[term][field] = Object.create(null)\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k]\n\n if (this.metadata[term][field][key] == undefined) {\n this.metadata[term][field][key] = otherMatchData.metadata[term][field][key]\n } else {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(otherMatchData.metadata[term][field][key])\n }\n\n }\n }\n }\n}\n\n/**\n * Add metadata for a term/field pair to this instance of match data.\n *\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n */\nlunr.MatchData.prototype.add = function (term, field, metadata) {\n if (!(term in this.metadata)) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = metadata\n return\n }\n\n if (!(field in this.metadata[term])) {\n this.metadata[term][field] = metadata\n return\n }\n\n var metadataKeys = Object.keys(metadata)\n\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n\n if (key in this.metadata[term][field]) {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(metadata[key])\n } else {\n this.metadata[term][field][key] = metadata[key]\n }\n }\n}\n/**\n * A lunr.Query provides a programmatic way of defining queries to be performed\n * against a {@link lunr.Index}.\n *\n * Prefer constructing a lunr.Query using the {@link lunr.Index#query} method\n * so the query object is pre-initialized with the right index fields.\n *\n * @constructor\n * @property {lunr.Query~Clause[]} clauses - An array of query clauses.\n * @property {string[]} allFields - An array of all available fields in a lunr.Index.\n */\nlunr.Query = function (allFields) {\n this.clauses = []\n this.allFields = allFields\n}\n\n/**\n * Constants for indicating what kind of automatic wildcard insertion will be used when constructing a query clause.\n *\n * This allows wildcards to be added to the beginning and end of a term without having to manually do any string\n * concatenation.\n *\n * The wildcard constants can be bitwise combined to select both leading and trailing wildcards.\n *\n * @constant\n * @default\n * @property {number} wildcard.NONE - The term will have no wildcards inserted, this is the default behaviour\n * @property {number} wildcard.LEADING - Prepend the term with a wildcard, unless a leading wildcard already exists\n * @property {number} wildcard.TRAILING - Append a wildcard to the term, unless a trailing wildcard already exists\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with trailing wildcard\n * query.term('foo', { wildcard: lunr.Query.wildcard.TRAILING })\n * @example query term with leading and trailing wildcard\n * query.term('foo', {\n * wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING\n * })\n */\n\nlunr.Query.wildcard = new String (\"*\")\nlunr.Query.wildcard.NONE = 0\nlunr.Query.wildcard.LEADING = 1\nlunr.Query.wildcard.TRAILING = 2\n\n/**\n * Constants for indicating what kind of presence a term must have in matching documents.\n *\n * @constant\n * @enum {number}\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with required presence\n * query.term('foo', { presence: lunr.Query.presence.REQUIRED })\n */\nlunr.Query.presence = {\n /**\n * Term's presence in a document is optional, this is the default value.\n */\n OPTIONAL: 1,\n\n /**\n * Term's presence in a document is required, documents that do not contain\n * this term will not be returned.\n */\n REQUIRED: 2,\n\n /**\n * Term's presence in a document is prohibited, documents that do contain\n * this term will not be returned.\n */\n PROHIBITED: 3\n}\n\n/**\n * A single clause in a {@link lunr.Query} contains a term and details on how to\n * match that term against a {@link lunr.Index}.\n *\n * @typedef {Object} lunr.Query~Clause\n * @property {string[]} fields - The fields in an index this clause should be matched against.\n * @property {number} [boost=1] - Any boost that should be applied when matching this clause.\n * @property {number} [editDistance] - Whether the term should have fuzzy matching applied, and how fuzzy the match should be.\n * @property {boolean} [usePipeline] - Whether the term should be passed through the search pipeline.\n * @property {number} [wildcard=lunr.Query.wildcard.NONE] - Whether the term should have wildcards appended or prepended.\n * @property {number} [presence=lunr.Query.presence.OPTIONAL] - The terms presence in any matching documents.\n */\n\n/**\n * Adds a {@link lunr.Query~Clause} to this query.\n *\n * Unless the clause contains the fields to be matched all fields will be matched. In addition\n * a default boost of 1 is applied to the clause.\n *\n * @param {lunr.Query~Clause} clause - The clause to add to this query.\n * @see lunr.Query~Clause\n * @returns {lunr.Query}\n */\nlunr.Query.prototype.clause = function (clause) {\n if (!('fields' in clause)) {\n clause.fields = this.allFields\n }\n\n if (!('boost' in clause)) {\n clause.boost = 1\n }\n\n if (!('usePipeline' in clause)) {\n clause.usePipeline = true\n }\n\n if (!('wildcard' in clause)) {\n clause.wildcard = lunr.Query.wildcard.NONE\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.LEADING) && (clause.term.charAt(0) != lunr.Query.wildcard)) {\n clause.term = \"*\" + clause.term\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.TRAILING) && (clause.term.slice(-1) != lunr.Query.wildcard)) {\n clause.term = \"\" + clause.term + \"*\"\n }\n\n if (!('presence' in clause)) {\n clause.presence = lunr.Query.presence.OPTIONAL\n }\n\n this.clauses.push(clause)\n\n return this\n}\n\n/**\n * A negated query is one in which every clause has a presence of\n * prohibited. These queries require some special processing to return\n * the expected results.\n *\n * @returns boolean\n */\nlunr.Query.prototype.isNegated = function () {\n for (var i = 0; i < this.clauses.length; i++) {\n if (this.clauses[i].presence != lunr.Query.presence.PROHIBITED) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * Adds a term to the current query, under the covers this will create a {@link lunr.Query~Clause}\n * to the list of clauses that make up this query.\n *\n * The term is used as is, i.e. no tokenization will be performed by this method. Instead conversion\n * to a token or token-like string should be done before calling this method.\n *\n * The term will be converted to a string by calling `toString`. Multiple terms can be passed as an\n * array, each term in the array will share the same options.\n *\n * @param {object|object[]} term - The term(s) to add to the query.\n * @param {object} [options] - Any additional properties to add to the query clause.\n * @returns {lunr.Query}\n * @see lunr.Query#clause\n * @see lunr.Query~Clause\n * @example adding a single term to a query\n * query.term(\"foo\")\n * @example adding a single term to a query and specifying search fields, term boost and automatic trailing wildcard\n * query.term(\"foo\", {\n * fields: [\"title\"],\n * boost: 10,\n * wildcard: lunr.Query.wildcard.TRAILING\n * })\n * @example using lunr.tokenizer to convert a string to tokens before using them as terms\n * query.term(lunr.tokenizer(\"foo bar\"))\n */\nlunr.Query.prototype.term = function (term, options) {\n if (Array.isArray(term)) {\n term.forEach(function (t) { this.term(t, lunr.utils.clone(options)) }, this)\n return this\n }\n\n var clause = options || {}\n clause.term = term.toString()\n\n this.clause(clause)\n\n return this\n}\nlunr.QueryParseError = function (message, start, end) {\n this.name = \"QueryParseError\"\n this.message = message\n this.start = start\n this.end = end\n}\n\nlunr.QueryParseError.prototype = new Error\nlunr.QueryLexer = function (str) {\n this.lexemes = []\n this.str = str\n this.length = str.length\n this.pos = 0\n this.start = 0\n this.escapeCharPositions = []\n}\n\nlunr.QueryLexer.prototype.run = function () {\n var state = lunr.QueryLexer.lexText\n\n while (state) {\n state = state(this)\n }\n}\n\nlunr.QueryLexer.prototype.sliceString = function () {\n var subSlices = [],\n sliceStart = this.start,\n sliceEnd = this.pos\n\n for (var i = 0; i < this.escapeCharPositions.length; i++) {\n sliceEnd = this.escapeCharPositions[i]\n subSlices.push(this.str.slice(sliceStart, sliceEnd))\n sliceStart = sliceEnd + 1\n }\n\n subSlices.push(this.str.slice(sliceStart, this.pos))\n this.escapeCharPositions.length = 0\n\n return subSlices.join('')\n}\n\nlunr.QueryLexer.prototype.emit = function (type) {\n this.lexemes.push({\n type: type,\n str: this.sliceString(),\n start: this.start,\n end: this.pos\n })\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.escapeCharacter = function () {\n this.escapeCharPositions.push(this.pos - 1)\n this.pos += 1\n}\n\nlunr.QueryLexer.prototype.next = function () {\n if (this.pos >= this.length) {\n return lunr.QueryLexer.EOS\n }\n\n var char = this.str.charAt(this.pos)\n this.pos += 1\n return char\n}\n\nlunr.QueryLexer.prototype.width = function () {\n return this.pos - this.start\n}\n\nlunr.QueryLexer.prototype.ignore = function () {\n if (this.start == this.pos) {\n this.pos += 1\n }\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.backup = function () {\n this.pos -= 1\n}\n\nlunr.QueryLexer.prototype.acceptDigitRun = function () {\n var char, charCode\n\n do {\n char = this.next()\n charCode = char.charCodeAt(0)\n } while (charCode > 47 && charCode < 58)\n\n if (char != lunr.QueryLexer.EOS) {\n this.backup()\n }\n}\n\nlunr.QueryLexer.prototype.more = function () {\n return this.pos < this.length\n}\n\nlunr.QueryLexer.EOS = 'EOS'\nlunr.QueryLexer.FIELD = 'FIELD'\nlunr.QueryLexer.TERM = 'TERM'\nlunr.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE'\nlunr.QueryLexer.BOOST = 'BOOST'\nlunr.QueryLexer.PRESENCE = 'PRESENCE'\n\nlunr.QueryLexer.lexField = function (lexer) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.FIELD)\n lexer.ignore()\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexTerm = function (lexer) {\n if (lexer.width() > 1) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.TERM)\n }\n\n lexer.ignore()\n\n if (lexer.more()) {\n return lunr.QueryLexer.lexText\n }\n}\n\nlunr.QueryLexer.lexEditDistance = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.EDIT_DISTANCE)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexBoost = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.BOOST)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexEOS = function (lexer) {\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n}\n\n// This matches the separator used when tokenising fields\n// within a document. These should match otherwise it is\n// not possible to search for some tokens within a document.\n//\n// It is possible for the user to change the separator on the\n// tokenizer so it _might_ clash with any other of the special\n// characters already used within the search string, e.g. :.\n//\n// This means that it is possible to change the separator in\n// such a way that makes some words unsearchable using a search\n// string.\nlunr.QueryLexer.termSeparator = lunr.tokenizer.separator\n\nlunr.QueryLexer.lexText = function (lexer) {\n while (true) {\n var char = lexer.next()\n\n if (char == lunr.QueryLexer.EOS) {\n return lunr.QueryLexer.lexEOS\n }\n\n // Escape character is '\\'\n if (char.charCodeAt(0) == 92) {\n lexer.escapeCharacter()\n continue\n }\n\n if (char == \":\") {\n return lunr.QueryLexer.lexField\n }\n\n if (char == \"~\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexEditDistance\n }\n\n if (char == \"^\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexBoost\n }\n\n // \"+\" indicates term presence is required\n // checking for length to ensure that only\n // leading \"+\" are considered\n if (char == \"+\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n // \"-\" indicates term presence is prohibited\n // checking for length to ensure that only\n // leading \"-\" are considered\n if (char == \"-\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n if (char.match(lunr.QueryLexer.termSeparator)) {\n return lunr.QueryLexer.lexTerm\n }\n }\n}\n\nlunr.QueryParser = function (str, query) {\n this.lexer = new lunr.QueryLexer (str)\n this.query = query\n this.currentClause = {}\n this.lexemeIdx = 0\n}\n\nlunr.QueryParser.prototype.parse = function () {\n this.lexer.run()\n this.lexemes = this.lexer.lexemes\n\n var state = lunr.QueryParser.parseClause\n\n while (state) {\n state = state(this)\n }\n\n return this.query\n}\n\nlunr.QueryParser.prototype.peekLexeme = function () {\n return this.lexemes[this.lexemeIdx]\n}\n\nlunr.QueryParser.prototype.consumeLexeme = function () {\n var lexeme = this.peekLexeme()\n this.lexemeIdx += 1\n return lexeme\n}\n\nlunr.QueryParser.prototype.nextClause = function () {\n var completedClause = this.currentClause\n this.query.clause(completedClause)\n this.currentClause = {}\n}\n\nlunr.QueryParser.parseClause = function (parser) {\n var lexeme = parser.peekLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.type) {\n case lunr.QueryLexer.PRESENCE:\n return lunr.QueryParser.parsePresence\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expected either a field or a term, found \" + lexeme.type\n\n if (lexeme.str.length >= 1) {\n errorMessage += \" with value '\" + lexeme.str + \"'\"\n }\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n}\n\nlunr.QueryParser.parsePresence = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.str) {\n case \"-\":\n parser.currentClause.presence = lunr.Query.presence.PROHIBITED\n break\n case \"+\":\n parser.currentClause.presence = lunr.Query.presence.REQUIRED\n break\n default:\n var errorMessage = \"unrecognised presence operator'\" + lexeme.str + \"'\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term or field, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term or field, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseField = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n if (parser.query.allFields.indexOf(lexeme.str) == -1) {\n var possibleFields = parser.query.allFields.map(function (f) { return \"'\" + f + \"'\" }).join(', '),\n errorMessage = \"unrecognised field '\" + lexeme.str + \"', possible fields: \" + possibleFields\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.fields = [lexeme.str]\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseTerm = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n parser.currentClause.term = lexeme.str.toLowerCase()\n\n if (lexeme.str.indexOf(\"*\") != -1) {\n parser.currentClause.usePipeline = false\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseEditDistance = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var editDistance = parseInt(lexeme.str, 10)\n\n if (isNaN(editDistance)) {\n var errorMessage = \"edit distance must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.editDistance = editDistance\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseBoost = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var boost = parseInt(lexeme.str, 10)\n\n if (isNaN(boost)) {\n var errorMessage = \"boost must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.boost = boost\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\n /**\n * export the module via AMD, CommonJS or as a browser global\n * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js\n */\n ;(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory)\n } else if (typeof exports === 'object') {\n /**\n * Node. Does not work with strict CommonJS, but\n * only CommonJS-like enviroments that support module.exports,\n * like Node.\n */\n module.exports = factory()\n } else {\n // Browser globals (root is window)\n root.lunr = factory()\n }\n }(this, function () {\n /**\n * Just return a value to define the module export.\n * This example returns an object, but the module\n * can return a function as the exported value.\n */\n return lunr\n }))\n})();\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n ArticleDocument,\n SearchDocumentMap,\n SectionDocument,\n setupSearchDocumentMap\n} from \"../document\"\nimport {\n SearchHighlightFactoryFn,\n setupSearchHighlighter\n} from \"../highlighter\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search index configuration\n */\nexport interface SearchIndexConfig {\n lang: string[] /* Search languages */\n separator: string /* Search separator */\n}\n\n/**\n * Search index document\n */\nexport interface SearchIndexDocument {\n location: string /* Document location */\n title: string /* Document title */\n text: string /* Document text */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search index pipeline function\n */\nexport type SearchIndexPipelineFn =\n | \"stemmer\" /* Stemmer */\n | \"stopWordFilter\" /* Stop word filter */\n | \"trimmer\" /* Trimmer */\n\n/**\n * Search index pipeline\n */\nexport type SearchIndexPipeline = SearchIndexPipelineFn[]\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search index\n *\n * This interfaces describes the format of the `search_index.json` file which\n * is automatically built by the MkDocs search plugin.\n */\nexport interface SearchIndex {\n config: SearchIndexConfig /* Search index configuration */\n docs: SearchIndexDocument[] /* Search index documents */\n index?: object | string /* Prebuilt or serialized index */\n pipeline?: SearchIndexPipeline /* Search index pipeline */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search result\n */\nexport interface SearchResult {\n article: ArticleDocument /* Article document */\n sections: SectionDocument[] /* Section documents */\n}\n\n/* ----------------------------------------------------------------------------\n * Class\n * ------------------------------------------------------------------------- */\n\n/**\n * Search\n *\n * Note that `lunr` is injected via Webpack, as it will otherwise also be\n * bundled in the application bundle.\n */\nexport class Search {\n\n /**\n * Search document mapping\n *\n * A mapping of URLs (including hash fragments) to the actual articles and\n * sections of the documentation. The search document mapping must be created\n * regardless of whether the index was prebuilt or not, as `lunr` itself will\n * only store the actual index.\n */\n protected documents: SearchDocumentMap\n\n /**\n * Search highlight factory function\n */\n protected highlight: SearchHighlightFactoryFn\n\n /**\n * The `lunr` search index\n */\n protected index: lunr.Index\n\n /**\n * Create the search integration\n *\n * @param data - Search index\n */\n public constructor({ config, docs, pipeline, index }: SearchIndex) {\n this.documents = setupSearchDocumentMap(docs)\n this.highlight = setupSearchHighlighter(config)\n\n /* If no index was given, create it */\n if (typeof index === \"undefined\") {\n this.index = lunr(function() {\n pipeline = pipeline || [\"trimmer\", \"stopWordFilter\"]\n\n /* Set up pipeline according to configuration */\n this.pipeline.reset()\n for (const fn of pipeline)\n this.pipeline.add(lunr[fn])\n\n /* Set up alternate search languages */\n if (config.lang.length === 1 && config.lang[0] !== \"en\") {\n this.use((lunr as any)[config.lang[0]])\n } else if (config.lang.length > 1) {\n this.use((lunr as any).multiLanguage(...config.lang))\n }\n\n /* Set up fields and reference */\n this.field(\"title\", { boost: 1000 })\n this.field(\"text\")\n this.ref(\"location\")\n\n /* Index documents */\n for (const doc of docs)\n this.add(doc)\n })\n\n /* Prebuilt or serialized index */\n } else {\n this.index = lunr.Index.load(\n typeof index === \"string\"\n ? JSON.parse(index)\n : index\n )\n }\n }\n\n /**\n * Search for matching documents\n *\n * The search index which MkDocs provides is divided up into articles, which\n * contain the whole content of the individual pages, and sections, which only\n * contain the contents of the subsections obtained by breaking the individual\n * pages up at `h1` ... `h6`. As there may be many sections on different pages\n * with identical titles (for example within this very project, e.g. \"Usage\"\n * or \"Installation\"), they need to be put into the context of the containing\n * page. For this reason, section results are grouped within their respective\n * articles which are the top-level results that are returned.\n *\n * @param value - Query value\n *\n * @return Search results\n */\n public query(value: string): SearchResult[] {\n if (value) {\n try {\n\n /* Group sections by containing article */\n const groups = this.index.search(value)\n .reduce((results, result) => {\n const document = this.documents.get(result.ref)\n if (typeof document !== \"undefined\") {\n if (\"parent\" in document) {\n const ref = document.parent.location\n results.set(ref, [...results.get(ref) || [], result])\n } else {\n const ref = document.location\n results.set(ref, results.get(ref) || [])\n }\n }\n return results\n }, new Map())\n\n /* Create highlighter for query */\n const fn = this.highlight(value)\n\n /* Map groups to search documents */\n return [...groups].map(([ref, sections]) => ({\n article: fn(this.documents.get(ref) as ArticleDocument),\n sections: sections.map(section => {\n return fn(this.documents.get(section.ref) as SectionDocument)\n })\n }))\n\n /* Log errors to console (for now) */\n } catch (err) {\n // tslint:disable-next-line no-console\n console.warn(`Invalid query: ${value} – see https://bit.ly/2s3ChXG`)\n }\n }\n\n /* Return nothing in case of error or empty query */\n return []\n }\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SearchIndex, SearchResult } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search message type\n */\nexport const enum SearchMessageType {\n SETUP, /* Search index setup */\n READY, /* Search index ready */\n QUERY, /* Search query */\n RESULT /* Search results */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * A message containing the data necessary to setup the search index\n */\nexport interface SearchSetupMessage {\n type: SearchMessageType.SETUP /* Message type */\n data: SearchIndex /* Message data */\n}\n\n/**\n * A message indicating the search index is ready\n */\nexport interface SearchReadyMessage {\n type: SearchMessageType.READY /* Message type */\n}\n\n/**\n * A message containing a search query\n */\nexport interface SearchQueryMessage {\n type: SearchMessageType.QUERY /* Message type */\n data: string /* Message data */\n}\n\n/**\n * A message containing results for a search query\n */\nexport interface SearchResultMessage {\n type: SearchMessageType.RESULT /* Message type */\n data: SearchResult[] /* Message data */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * A message exchanged with the search worker\n */\nexport type SearchMessage =\n | SearchSetupMessage\n | SearchReadyMessage\n | SearchQueryMessage\n | SearchResultMessage\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Type guard for search setup messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchSetupMessage(\n message: SearchMessage\n): message is SearchSetupMessage {\n return message.type === SearchMessageType.SETUP\n}\n\n/**\n * Type guard for search ready messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchReadyMessage(\n message: SearchMessage\n): message is SearchReadyMessage {\n return message.type === SearchMessageType.READY\n}\n\n/**\n * Type guard for search query messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchQueryMessage(\n message: SearchMessage\n): message is SearchQueryMessage {\n return message.type === SearchMessageType.QUERY\n}\n\n/**\n * Type guard for search result messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchResultMessage(\n message: SearchMessage\n): message is SearchResultMessage {\n return message.type === SearchMessageType.RESULT\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport \"expose-loader?lunr!lunr\"\n\nimport { Search, SearchIndexConfig } from \"../../_\"\nimport { SearchMessage, SearchMessageType } from \"../message\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Search\n */\nlet search: Search\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up multi-language support through `lunr-languages`\n *\n * This function will automatically import the stemmers necessary to process\n * the languages which were given through the search index configuration.\n *\n * @param config - Search index configuration\n */\nfunction setupLunrLanguages(config: SearchIndexConfig): void {\n const base = \"../lunr\"\n\n /* Add scripts for languages */\n const scripts = []\n for (const lang of config.lang) {\n if (lang === \"ja\") scripts.push(`${base}/tinyseg.min.js`)\n if (lang !== \"en\") scripts.push(`${base}/min/lunr.${lang}.min.js`)\n }\n\n /* Add multi-language support */\n if (config.lang.length > 1)\n scripts.push(`${base}/min/lunr.multi.min.js`)\n\n /* Load scripts synchronously */\n if (scripts.length)\n importScripts(\n `${base}/min/lunr.stemmer.support.min.js`,\n ...scripts\n )\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Message handler\n *\n * @param message - Source message\n *\n * @return Target message\n */\nexport function handler(message: SearchMessage): SearchMessage {\n switch (message.type) {\n\n /* Search setup message */\n case SearchMessageType.SETUP:\n setupLunrLanguages(message.data.config)\n search = new Search(message.data)\n return {\n type: SearchMessageType.READY\n }\n\n /* Search query message */\n case SearchMessageType.QUERY:\n return {\n type: SearchMessageType.RESULT,\n data: search ? search.query(message.data) : []\n }\n\n /* All other messages */\n default:\n throw new TypeError(\"Invalid message type\")\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Worker\n * ------------------------------------------------------------------------- */\n\naddEventListener(\"message\", ev => {\n postMessage(handler(ev.data))\n})\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport * as escapeHTML from \"escape-html\"\n\nimport { SearchIndexDocument } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * A top-level article\n */\nexport interface ArticleDocument extends SearchIndexDocument {\n linked: boolean /* Whether the section was linked */\n}\n\n/**\n * A section of an article\n */\nexport interface SectionDocument extends SearchIndexDocument {\n parent: ArticleDocument /* Parent article */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search document\n */\nexport type SearchDocument =\n | ArticleDocument\n | SectionDocument\n\n/**\n * Search document mapping\n */\nexport type SearchDocumentMap = Map\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search document mapping\n *\n * @param docs - Search index documents\n *\n * @return Search document map\n */\nexport function setupSearchDocumentMap(\n docs: SearchIndexDocument[]\n): SearchDocumentMap {\n const documents = new Map()\n for (const doc of docs) {\n const [path, hash] = doc.location.split(\"#\")\n\n /* Extract location and title */\n const location = doc.location\n const title = doc.title\n\n /* Escape and cleanup text */\n const text = escapeHTML(doc.text)\n .replace(/\\s+(?=[,.:;!?])/g, \"\")\n .replace(/\\s+/g, \" \")\n\n /* Handle section */\n if (hash) {\n const parent = documents.get(path) as ArticleDocument\n\n /* Ignore first section, override article */\n if (!parent.linked) {\n parent.title = doc.title\n parent.text = text\n parent.linked = true\n\n /* Add subsequent section */\n } else {\n documents.set(location, {\n location,\n title,\n text,\n parent\n })\n }\n\n /* Add article */\n } else {\n documents.set(location, {\n location,\n title,\n text,\n linked: false\n })\n }\n }\n return documents\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SearchIndexConfig } from \"../_\"\nimport { SearchDocument } from \"../document\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search highlight function\n *\n * @template T - Search document type\n *\n * @param document - Search document\n *\n * @return Highlighted document\n */\nexport type SearchHighlightFn = <\n T extends SearchDocument\n>(document: Readonly) => T\n\n/**\n * Search highlight factory function\n *\n * @param value - Query value\n *\n * @return Search highlight function\n */\nexport type SearchHighlightFactoryFn = (value: string) => SearchHighlightFn\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search highlighter\n *\n * @param config - Search index configuration\n *\n * @return Search highlight factory function\n */\nexport function setupSearchHighlighter(\n config: SearchIndexConfig\n): SearchHighlightFactoryFn {\n const separator = new RegExp(config.separator, \"img\")\n const highlight = (_: unknown, data: string, term: string) => {\n return `${data}${term}`\n }\n\n /* Return factory function */\n return (value: string) => {\n value = value\n .replace(/[\\s*+-:~^]+/g, \" \")\n .trim()\n\n /* Create search term match expression */\n const match = new RegExp(`(^|${config.separator})(${\n value\n .replace(/[|\\\\{}()[\\]^$+*?.-]/g, \"\\\\$&\")\n .replace(separator, \"|\")\n })`, \"img\")\n\n /* Highlight document */\n return document => ({\n ...document,\n title: document.title.replace(match, highlight),\n text: document.text.replace(match, highlight)\n })\n }\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/assets/javascripts/worker/search.js b/docs/assets/javascripts/worker/search.js new file mode 100644 index 00000000..29f901a3 --- /dev/null +++ b/docs/assets/javascripts/worker/search.js @@ -0,0 +1,206 @@ +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "./src/assets/javascripts/integrations/search/worker/main/index.ts"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./node_modules/escape-html/index.js": +/*!*******************************************!*\ + !*** ./node_modules/escape-html/index.js ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n\n\n//# sourceURL=webpack:///./node_modules/escape-html/index.js?"); + +/***/ }), + +/***/ "./node_modules/expose-loader/index.js?lunr!./node_modules/lunr/lunr.js-exposed": +/*!*****************************************************************************!*\ + !*** ./node_modules/expose-loader?lunr!./node_modules/lunr/lunr.js-exposed ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* WEBPACK VAR INJECTION */(function(global) {module.exports = global[\"lunr\"] = __webpack_require__(/*! -!./lunr.js */ \"./node_modules/lunr/lunr.js\");\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/lunr/lunr.js-exposed?./node_modules/expose-loader?lunr"); + +/***/ }), + +/***/ "./node_modules/lunr/lunr.js": +/*!***********************************!*\ + !*** ./node_modules/lunr/lunr.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.8\n * Copyright (C) 2019 Oliver Nightingale\n * @license MIT\n */\n\n;(function(){\n\n/**\n * A convenience function for configuring and constructing\n * a new lunr Index.\n *\n * A lunr.Builder instance is created and the pipeline setup\n * with a trimmer, stop word filter and stemmer.\n *\n * This builder object is yielded to the configuration function\n * that is passed as a parameter, allowing the list of fields\n * and other builder parameters to be customised.\n *\n * All documents _must_ be added within the passed config function.\n *\n * @example\n * var idx = lunr(function () {\n * this.field('title')\n * this.field('body')\n * this.ref('id')\n *\n * documents.forEach(function (doc) {\n * this.add(doc)\n * }, this)\n * })\n *\n * @see {@link lunr.Builder}\n * @see {@link lunr.Pipeline}\n * @see {@link lunr.trimmer}\n * @see {@link lunr.stopWordFilter}\n * @see {@link lunr.stemmer}\n * @namespace {function} lunr\n */\nvar lunr = function (config) {\n var builder = new lunr.Builder\n\n builder.pipeline.add(\n lunr.trimmer,\n lunr.stopWordFilter,\n lunr.stemmer\n )\n\n builder.searchPipeline.add(\n lunr.stemmer\n )\n\n config.call(builder, builder)\n return builder.build()\n}\n\nlunr.version = \"2.3.8\"\n/*!\n * lunr.utils\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A namespace containing utils for the rest of the lunr library\n * @namespace lunr.utils\n */\nlunr.utils = {}\n\n/**\n * Print a warning message to the console.\n *\n * @param {String} message The message to be printed.\n * @memberOf lunr.utils\n * @function\n */\nlunr.utils.warn = (function (global) {\n /* eslint-disable no-console */\n return function (message) {\n if (global.console && console.warn) {\n console.warn(message)\n }\n }\n /* eslint-enable no-console */\n})(this)\n\n/**\n * Convert an object to a string.\n *\n * In the case of `null` and `undefined` the function returns\n * the empty string, in all other cases the result of calling\n * `toString` on the passed object is returned.\n *\n * @param {Any} obj The object to convert to a string.\n * @return {String} string representation of the passed object.\n * @memberOf lunr.utils\n */\nlunr.utils.asString = function (obj) {\n if (obj === void 0 || obj === null) {\n return \"\"\n } else {\n return obj.toString()\n }\n}\n\n/**\n * Clones an object.\n *\n * Will create a copy of an existing object such that any mutations\n * on the copy cannot affect the original.\n *\n * Only shallow objects are supported, passing a nested object to this\n * function will cause a TypeError.\n *\n * Objects with primitives, and arrays of primitives are supported.\n *\n * @param {Object} obj The object to clone.\n * @return {Object} a clone of the passed object.\n * @throws {TypeError} when a nested object is passed.\n * @memberOf Utils\n */\nlunr.utils.clone = function (obj) {\n if (obj === null || obj === undefined) {\n return obj\n }\n\n var clone = Object.create(null),\n keys = Object.keys(obj)\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i],\n val = obj[key]\n\n if (Array.isArray(val)) {\n clone[key] = val.slice()\n continue\n }\n\n if (typeof val === 'string' ||\n typeof val === 'number' ||\n typeof val === 'boolean') {\n clone[key] = val\n continue\n }\n\n throw new TypeError(\"clone is not deep and does not support nested objects\")\n }\n\n return clone\n}\nlunr.FieldRef = function (docRef, fieldName, stringValue) {\n this.docRef = docRef\n this.fieldName = fieldName\n this._stringValue = stringValue\n}\n\nlunr.FieldRef.joiner = \"/\"\n\nlunr.FieldRef.fromString = function (s) {\n var n = s.indexOf(lunr.FieldRef.joiner)\n\n if (n === -1) {\n throw \"malformed field ref string\"\n }\n\n var fieldRef = s.slice(0, n),\n docRef = s.slice(n + 1)\n\n return new lunr.FieldRef (docRef, fieldRef, s)\n}\n\nlunr.FieldRef.prototype.toString = function () {\n if (this._stringValue == undefined) {\n this._stringValue = this.fieldName + lunr.FieldRef.joiner + this.docRef\n }\n\n return this._stringValue\n}\n/*!\n * lunr.Set\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A lunr set.\n *\n * @constructor\n */\nlunr.Set = function (elements) {\n this.elements = Object.create(null)\n\n if (elements) {\n this.length = elements.length\n\n for (var i = 0; i < this.length; i++) {\n this.elements[elements[i]] = true\n }\n } else {\n this.length = 0\n }\n}\n\n/**\n * A complete set that contains all elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.complete = {\n intersect: function (other) {\n return other\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return true\n }\n}\n\n/**\n * An empty set that contains no elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.empty = {\n intersect: function () {\n return this\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return false\n }\n}\n\n/**\n * Returns true if this set contains the specified object.\n *\n * @param {object} object - Object whose presence in this set is to be tested.\n * @returns {boolean} - True if this set contains the specified object.\n */\nlunr.Set.prototype.contains = function (object) {\n return !!this.elements[object]\n}\n\n/**\n * Returns a new set containing only the elements that are present in both\n * this set and the specified set.\n *\n * @param {lunr.Set} other - set to intersect with this set.\n * @returns {lunr.Set} a new set that is the intersection of this and the specified set.\n */\n\nlunr.Set.prototype.intersect = function (other) {\n var a, b, elements, intersection = []\n\n if (other === lunr.Set.complete) {\n return this\n }\n\n if (other === lunr.Set.empty) {\n return other\n }\n\n if (this.length < other.length) {\n a = this\n b = other\n } else {\n a = other\n b = this\n }\n\n elements = Object.keys(a.elements)\n\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i]\n if (element in b.elements) {\n intersection.push(element)\n }\n }\n\n return new lunr.Set (intersection)\n}\n\n/**\n * Returns a new set combining the elements of this and the specified set.\n *\n * @param {lunr.Set} other - set to union with this set.\n * @return {lunr.Set} a new set that is the union of this and the specified set.\n */\n\nlunr.Set.prototype.union = function (other) {\n if (other === lunr.Set.complete) {\n return lunr.Set.complete\n }\n\n if (other === lunr.Set.empty) {\n return this\n }\n\n return new lunr.Set(Object.keys(this.elements).concat(Object.keys(other.elements)))\n}\n/**\n * A function to calculate the inverse document frequency for\n * a posting. This is shared between the builder and the index\n *\n * @private\n * @param {object} posting - The posting for a given term\n * @param {number} documentCount - The total number of documents.\n */\nlunr.idf = function (posting, documentCount) {\n var documentsWithTerm = 0\n\n for (var fieldName in posting) {\n if (fieldName == '_index') continue // Ignore the term index, its not a field\n documentsWithTerm += Object.keys(posting[fieldName]).length\n }\n\n var x = (documentCount - documentsWithTerm + 0.5) / (documentsWithTerm + 0.5)\n\n return Math.log(1 + Math.abs(x))\n}\n\n/**\n * A token wraps a string representation of a token\n * as it is passed through the text processing pipeline.\n *\n * @constructor\n * @param {string} [str=''] - The string token being wrapped.\n * @param {object} [metadata={}] - Metadata associated with this token.\n */\nlunr.Token = function (str, metadata) {\n this.str = str || \"\"\n this.metadata = metadata || {}\n}\n\n/**\n * Returns the token string that is being wrapped by this object.\n *\n * @returns {string}\n */\nlunr.Token.prototype.toString = function () {\n return this.str\n}\n\n/**\n * A token update function is used when updating or optionally\n * when cloning a token.\n *\n * @callback lunr.Token~updateFunction\n * @param {string} str - The string representation of the token.\n * @param {Object} metadata - All metadata associated with this token.\n */\n\n/**\n * Applies the given function to the wrapped string token.\n *\n * @example\n * token.update(function (str, metadata) {\n * return str.toUpperCase()\n * })\n *\n * @param {lunr.Token~updateFunction} fn - A function to apply to the token string.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.update = function (fn) {\n this.str = fn(this.str, this.metadata)\n return this\n}\n\n/**\n * Creates a clone of this token. Optionally a function can be\n * applied to the cloned token.\n *\n * @param {lunr.Token~updateFunction} [fn] - An optional function to apply to the cloned token.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.clone = function (fn) {\n fn = fn || function (s) { return s }\n return new lunr.Token (fn(this.str, this.metadata), this.metadata)\n}\n/*!\n * lunr.tokenizer\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A function for splitting a string into tokens ready to be inserted into\n * the search index. Uses `lunr.tokenizer.separator` to split strings, change\n * the value of this property to change how strings are split into tokens.\n *\n * This tokenizer will convert its parameter to a string by calling `toString` and\n * then will split this string on the character in `lunr.tokenizer.separator`.\n * Arrays will have their elements converted to strings and wrapped in a lunr.Token.\n *\n * Optional metadata can be passed to the tokenizer, this metadata will be cloned and\n * added as metadata to every token that is created from the object to be tokenized.\n *\n * @static\n * @param {?(string|object|object[])} obj - The object to convert into tokens\n * @param {?object} metadata - Optional metadata to associate with every token\n * @returns {lunr.Token[]}\n * @see {@link lunr.Pipeline}\n */\nlunr.tokenizer = function (obj, metadata) {\n if (obj == null || obj == undefined) {\n return []\n }\n\n if (Array.isArray(obj)) {\n return obj.map(function (t) {\n return new lunr.Token(\n lunr.utils.asString(t).toLowerCase(),\n lunr.utils.clone(metadata)\n )\n })\n }\n\n var str = obj.toString().toLowerCase(),\n len = str.length,\n tokens = []\n\n for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {\n var char = str.charAt(sliceEnd),\n sliceLength = sliceEnd - sliceStart\n\n if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) {\n\n if (sliceLength > 0) {\n var tokenMetadata = lunr.utils.clone(metadata) || {}\n tokenMetadata[\"position\"] = [sliceStart, sliceLength]\n tokenMetadata[\"index\"] = tokens.length\n\n tokens.push(\n new lunr.Token (\n str.slice(sliceStart, sliceEnd),\n tokenMetadata\n )\n )\n }\n\n sliceStart = sliceEnd + 1\n }\n\n }\n\n return tokens\n}\n\n/**\n * The separator used to split a string into tokens. Override this property to change the behaviour of\n * `lunr.tokenizer` behaviour when tokenizing strings. By default this splits on whitespace and hyphens.\n *\n * @static\n * @see lunr.tokenizer\n */\nlunr.tokenizer.separator = /[\\s\\-]+/\n/*!\n * lunr.Pipeline\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.Pipelines maintain an ordered list of functions to be applied to all\n * tokens in documents entering the search index and queries being ran against\n * the index.\n *\n * An instance of lunr.Index created with the lunr shortcut will contain a\n * pipeline with a stop word filter and an English language stemmer. Extra\n * functions can be added before or after either of these functions or these\n * default functions can be removed.\n *\n * When run the pipeline will call each function in turn, passing a token, the\n * index of that token in the original list of all tokens and finally a list of\n * all the original tokens.\n *\n * The output of functions in the pipeline will be passed to the next function\n * in the pipeline. To exclude a token from entering the index the function\n * should return undefined, the rest of the pipeline will not be called with\n * this token.\n *\n * For serialisation of pipelines to work, all functions used in an instance of\n * a pipeline should be registered with lunr.Pipeline. Registered functions can\n * then be loaded. If trying to load a serialised pipeline that uses functions\n * that are not registered an error will be thrown.\n *\n * If not planning on serialising the pipeline then registering pipeline functions\n * is not necessary.\n *\n * @constructor\n */\nlunr.Pipeline = function () {\n this._stack = []\n}\n\nlunr.Pipeline.registeredFunctions = Object.create(null)\n\n/**\n * A pipeline function maps lunr.Token to lunr.Token. A lunr.Token contains the token\n * string as well as all known metadata. A pipeline function can mutate the token string\n * or mutate (or add) metadata for a given token.\n *\n * A pipeline function can indicate that the passed token should be discarded by returning\n * null, undefined or an empty string. This token will not be passed to any downstream pipeline\n * functions and will not be added to the index.\n *\n * Multiple tokens can be returned by returning an array of tokens. Each token will be passed\n * to any downstream pipeline functions and all will returned tokens will be added to the index.\n *\n * Any number of pipeline functions may be chained together using a lunr.Pipeline.\n *\n * @interface lunr.PipelineFunction\n * @param {lunr.Token} token - A token from the document being processed.\n * @param {number} i - The index of this token in the complete list of tokens for this document/field.\n * @param {lunr.Token[]} tokens - All tokens for this document/field.\n * @returns {(?lunr.Token|lunr.Token[])}\n */\n\n/**\n * Register a function with the pipeline.\n *\n * Functions that are used in the pipeline should be registered if the pipeline\n * needs to be serialised, or a serialised pipeline needs to be loaded.\n *\n * Registering a function does not add it to a pipeline, functions must still be\n * added to instances of the pipeline for them to be used when running a pipeline.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @param {String} label - The label to register this function with\n */\nlunr.Pipeline.registerFunction = function (fn, label) {\n if (label in this.registeredFunctions) {\n lunr.utils.warn('Overwriting existing registered function: ' + label)\n }\n\n fn.label = label\n lunr.Pipeline.registeredFunctions[fn.label] = fn\n}\n\n/**\n * Warns if the function is not registered as a Pipeline function.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @private\n */\nlunr.Pipeline.warnIfFunctionNotRegistered = function (fn) {\n var isRegistered = fn.label && (fn.label in this.registeredFunctions)\n\n if (!isRegistered) {\n lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\\n', fn)\n }\n}\n\n/**\n * Loads a previously serialised pipeline.\n *\n * All functions to be loaded must already be registered with lunr.Pipeline.\n * If any function from the serialised data has not been registered then an\n * error will be thrown.\n *\n * @param {Object} serialised - The serialised pipeline to load.\n * @returns {lunr.Pipeline}\n */\nlunr.Pipeline.load = function (serialised) {\n var pipeline = new lunr.Pipeline\n\n serialised.forEach(function (fnName) {\n var fn = lunr.Pipeline.registeredFunctions[fnName]\n\n if (fn) {\n pipeline.add(fn)\n } else {\n throw new Error('Cannot load unregistered function: ' + fnName)\n }\n })\n\n return pipeline\n}\n\n/**\n * Adds new functions to the end of the pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction[]} functions - Any number of functions to add to the pipeline.\n */\nlunr.Pipeline.prototype.add = function () {\n var fns = Array.prototype.slice.call(arguments)\n\n fns.forEach(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n this._stack.push(fn)\n }, this)\n}\n\n/**\n * Adds a single function after a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.after = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n pos = pos + 1\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Adds a single function before a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.before = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Removes a function from the pipeline.\n *\n * @param {lunr.PipelineFunction} fn The function to remove from the pipeline.\n */\nlunr.Pipeline.prototype.remove = function (fn) {\n var pos = this._stack.indexOf(fn)\n if (pos == -1) {\n return\n }\n\n this._stack.splice(pos, 1)\n}\n\n/**\n * Runs the current list of functions that make up the pipeline against the\n * passed tokens.\n *\n * @param {Array} tokens The tokens to run through the pipeline.\n * @returns {Array}\n */\nlunr.Pipeline.prototype.run = function (tokens) {\n var stackLength = this._stack.length\n\n for (var i = 0; i < stackLength; i++) {\n var fn = this._stack[i]\n var memo = []\n\n for (var j = 0; j < tokens.length; j++) {\n var result = fn(tokens[j], j, tokens)\n\n if (result === null || result === void 0 || result === '') continue\n\n if (Array.isArray(result)) {\n for (var k = 0; k < result.length; k++) {\n memo.push(result[k])\n }\n } else {\n memo.push(result)\n }\n }\n\n tokens = memo\n }\n\n return tokens\n}\n\n/**\n * Convenience method for passing a string through a pipeline and getting\n * strings out. This method takes care of wrapping the passed string in a\n * token and mapping the resulting tokens back to strings.\n *\n * @param {string} str - The string to pass through the pipeline.\n * @param {?object} metadata - Optional metadata to associate with the token\n * passed to the pipeline.\n * @returns {string[]}\n */\nlunr.Pipeline.prototype.runString = function (str, metadata) {\n var token = new lunr.Token (str, metadata)\n\n return this.run([token]).map(function (t) {\n return t.toString()\n })\n}\n\n/**\n * Resets the pipeline by removing any existing processors.\n *\n */\nlunr.Pipeline.prototype.reset = function () {\n this._stack = []\n}\n\n/**\n * Returns a representation of the pipeline ready for serialisation.\n *\n * Logs a warning if the function has not been registered.\n *\n * @returns {Array}\n */\nlunr.Pipeline.prototype.toJSON = function () {\n return this._stack.map(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n\n return fn.label\n })\n}\n/*!\n * lunr.Vector\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A vector is used to construct the vector space of documents and queries. These\n * vectors support operations to determine the similarity between two documents or\n * a document and a query.\n *\n * Normally no parameters are required for initializing a vector, but in the case of\n * loading a previously dumped vector the raw elements can be provided to the constructor.\n *\n * For performance reasons vectors are implemented with a flat array, where an elements\n * index is immediately followed by its value. E.g. [index, value, index, value]. This\n * allows the underlying array to be as sparse as possible and still offer decent\n * performance when being used for vector calculations.\n *\n * @constructor\n * @param {Number[]} [elements] - The flat list of element index and element value pairs.\n */\nlunr.Vector = function (elements) {\n this._magnitude = 0\n this.elements = elements || []\n}\n\n\n/**\n * Calculates the position within the vector to insert a given index.\n *\n * This is used internally by insert and upsert. If there are duplicate indexes then\n * the position is returned as if the value for that index were to be updated, but it\n * is the callers responsibility to check whether there is a duplicate at that index\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @returns {Number}\n */\nlunr.Vector.prototype.positionForIndex = function (index) {\n // For an empty vector the tuple can be inserted at the beginning\n if (this.elements.length == 0) {\n return 0\n }\n\n var start = 0,\n end = this.elements.length / 2,\n sliceLength = end - start,\n pivotPoint = Math.floor(sliceLength / 2),\n pivotIndex = this.elements[pivotPoint * 2]\n\n while (sliceLength > 1) {\n if (pivotIndex < index) {\n start = pivotPoint\n }\n\n if (pivotIndex > index) {\n end = pivotPoint\n }\n\n if (pivotIndex == index) {\n break\n }\n\n sliceLength = end - start\n pivotPoint = start + Math.floor(sliceLength / 2)\n pivotIndex = this.elements[pivotPoint * 2]\n }\n\n if (pivotIndex == index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex > index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex < index) {\n return (pivotPoint + 1) * 2\n }\n}\n\n/**\n * Inserts an element at an index within the vector.\n *\n * Does not allow duplicates, will throw an error if there is already an entry\n * for this index.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n */\nlunr.Vector.prototype.insert = function (insertIdx, val) {\n this.upsert(insertIdx, val, function () {\n throw \"duplicate index\"\n })\n}\n\n/**\n * Inserts or updates an existing index within the vector.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n * @param {function} fn - A function that is called for updates, the existing value and the\n * requested value are passed as arguments\n */\nlunr.Vector.prototype.upsert = function (insertIdx, val, fn) {\n this._magnitude = 0\n var position = this.positionForIndex(insertIdx)\n\n if (this.elements[position] == insertIdx) {\n this.elements[position + 1] = fn(this.elements[position + 1], val)\n } else {\n this.elements.splice(position, 0, insertIdx, val)\n }\n}\n\n/**\n * Calculates the magnitude of this vector.\n *\n * @returns {Number}\n */\nlunr.Vector.prototype.magnitude = function () {\n if (this._magnitude) return this._magnitude\n\n var sumOfSquares = 0,\n elementsLength = this.elements.length\n\n for (var i = 1; i < elementsLength; i += 2) {\n var val = this.elements[i]\n sumOfSquares += val * val\n }\n\n return this._magnitude = Math.sqrt(sumOfSquares)\n}\n\n/**\n * Calculates the dot product of this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The vector to compute the dot product with.\n * @returns {Number}\n */\nlunr.Vector.prototype.dot = function (otherVector) {\n var dotProduct = 0,\n a = this.elements, b = otherVector.elements,\n aLen = a.length, bLen = b.length,\n aVal = 0, bVal = 0,\n i = 0, j = 0\n\n while (i < aLen && j < bLen) {\n aVal = a[i], bVal = b[j]\n if (aVal < bVal) {\n i += 2\n } else if (aVal > bVal) {\n j += 2\n } else if (aVal == bVal) {\n dotProduct += a[i + 1] * b[j + 1]\n i += 2\n j += 2\n }\n }\n\n return dotProduct\n}\n\n/**\n * Calculates the similarity between this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The other vector to calculate the\n * similarity with.\n * @returns {Number}\n */\nlunr.Vector.prototype.similarity = function (otherVector) {\n return this.dot(otherVector) / this.magnitude() || 0\n}\n\n/**\n * Converts the vector to an array of the elements within the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toArray = function () {\n var output = new Array (this.elements.length / 2)\n\n for (var i = 1, j = 0; i < this.elements.length; i += 2, j++) {\n output[j] = this.elements[i]\n }\n\n return output\n}\n\n/**\n * A JSON serializable representation of the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toJSON = function () {\n return this.elements\n}\n/* eslint-disable */\n/*!\n * lunr.stemmer\n * Copyright (C) 2019 Oliver Nightingale\n * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt\n */\n\n/**\n * lunr.stemmer is an english language stemmer, this is a JavaScript\n * implementation of the PorterStemmer taken from http://tartarus.org/~martin\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token - The string to stem\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n * @function\n */\nlunr.stemmer = (function(){\n var step2list = {\n \"ational\" : \"ate\",\n \"tional\" : \"tion\",\n \"enci\" : \"ence\",\n \"anci\" : \"ance\",\n \"izer\" : \"ize\",\n \"bli\" : \"ble\",\n \"alli\" : \"al\",\n \"entli\" : \"ent\",\n \"eli\" : \"e\",\n \"ousli\" : \"ous\",\n \"ization\" : \"ize\",\n \"ation\" : \"ate\",\n \"ator\" : \"ate\",\n \"alism\" : \"al\",\n \"iveness\" : \"ive\",\n \"fulness\" : \"ful\",\n \"ousness\" : \"ous\",\n \"aliti\" : \"al\",\n \"iviti\" : \"ive\",\n \"biliti\" : \"ble\",\n \"logi\" : \"log\"\n },\n\n step3list = {\n \"icate\" : \"ic\",\n \"ative\" : \"\",\n \"alize\" : \"al\",\n \"iciti\" : \"ic\",\n \"ical\" : \"ic\",\n \"ful\" : \"\",\n \"ness\" : \"\"\n },\n\n c = \"[^aeiou]\", // consonant\n v = \"[aeiouy]\", // vowel\n C = c + \"[^aeiouy]*\", // consonant sequence\n V = v + \"[aeiou]*\", // vowel sequence\n\n mgr0 = \"^(\" + C + \")?\" + V + C, // [C]VC... is m>0\n meq1 = \"^(\" + C + \")?\" + V + C + \"(\" + V + \")?$\", // [C]VC[V] is m=1\n mgr1 = \"^(\" + C + \")?\" + V + C + V + C, // [C]VCVC... is m>1\n s_v = \"^(\" + C + \")?\" + v; // vowel in stem\n\n var re_mgr0 = new RegExp(mgr0);\n var re_mgr1 = new RegExp(mgr1);\n var re_meq1 = new RegExp(meq1);\n var re_s_v = new RegExp(s_v);\n\n var re_1a = /^(.+?)(ss|i)es$/;\n var re2_1a = /^(.+?)([^s])s$/;\n var re_1b = /^(.+?)eed$/;\n var re2_1b = /^(.+?)(ed|ing)$/;\n var re_1b_2 = /.$/;\n var re2_1b_2 = /(at|bl|iz)$/;\n var re3_1b_2 = new RegExp(\"([^aeiouylsz])\\\\1$\");\n var re4_1b_2 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var re_1c = /^(.+?[^aeiou])y$/;\n var re_2 = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;\n\n var re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;\n\n var re_4 = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;\n var re2_4 = /^(.+?)(s|t)(ion)$/;\n\n var re_5 = /^(.+?)e$/;\n var re_5_1 = /ll$/;\n var re3_5 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var porterStemmer = function porterStemmer(w) {\n var stem,\n suffix,\n firstch,\n re,\n re2,\n re3,\n re4;\n\n if (w.length < 3) { return w; }\n\n firstch = w.substr(0,1);\n if (firstch == \"y\") {\n w = firstch.toUpperCase() + w.substr(1);\n }\n\n // Step 1a\n re = re_1a\n re2 = re2_1a;\n\n if (re.test(w)) { w = w.replace(re,\"$1$2\"); }\n else if (re2.test(w)) { w = w.replace(re2,\"$1$2\"); }\n\n // Step 1b\n re = re_1b;\n re2 = re2_1b;\n if (re.test(w)) {\n var fp = re.exec(w);\n re = re_mgr0;\n if (re.test(fp[1])) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1];\n re2 = re_s_v;\n if (re2.test(stem)) {\n w = stem;\n re2 = re2_1b_2;\n re3 = re3_1b_2;\n re4 = re4_1b_2;\n if (re2.test(w)) { w = w + \"e\"; }\n else if (re3.test(w)) { re = re_1b_2; w = w.replace(re,\"\"); }\n else if (re4.test(w)) { w = w + \"e\"; }\n }\n }\n\n // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say)\n re = re_1c;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n w = stem + \"i\";\n }\n\n // Step 2\n re = re_2;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step2list[suffix];\n }\n }\n\n // Step 3\n re = re_3;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step3list[suffix];\n }\n }\n\n // Step 4\n re = re_4;\n re2 = re2_4;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n if (re.test(stem)) {\n w = stem;\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1] + fp[2];\n re2 = re_mgr1;\n if (re2.test(stem)) {\n w = stem;\n }\n }\n\n // Step 5\n re = re_5;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n re2 = re_meq1;\n re3 = re3_5;\n if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {\n w = stem;\n }\n }\n\n re = re_5_1;\n re2 = re_mgr1;\n if (re.test(w) && re2.test(w)) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n\n // and turn initial Y back to y\n\n if (firstch == \"y\") {\n w = firstch.toLowerCase() + w.substr(1);\n }\n\n return w;\n };\n\n return function (token) {\n return token.update(porterStemmer);\n }\n})();\n\nlunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer')\n/*!\n * lunr.stopWordFilter\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.generateStopWordFilter builds a stopWordFilter function from the provided\n * list of stop words.\n *\n * The built in lunr.stopWordFilter is built using this generator and can be used\n * to generate custom stopWordFilters for applications or non English languages.\n *\n * @function\n * @param {Array} token The token to pass through the filter\n * @returns {lunr.PipelineFunction}\n * @see lunr.Pipeline\n * @see lunr.stopWordFilter\n */\nlunr.generateStopWordFilter = function (stopWords) {\n var words = stopWords.reduce(function (memo, stopWord) {\n memo[stopWord] = stopWord\n return memo\n }, {})\n\n return function (token) {\n if (token && words[token.toString()] !== token.toString()) return token\n }\n}\n\n/**\n * lunr.stopWordFilter is an English language stop word list filter, any words\n * contained in the list will not be passed through the filter.\n *\n * This is intended to be used in the Pipeline. If the token does not pass the\n * filter then undefined will be returned.\n *\n * @function\n * @implements {lunr.PipelineFunction}\n * @params {lunr.Token} token - A token to check for being a stop word.\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n */\nlunr.stopWordFilter = lunr.generateStopWordFilter([\n 'a',\n 'able',\n 'about',\n 'across',\n 'after',\n 'all',\n 'almost',\n 'also',\n 'am',\n 'among',\n 'an',\n 'and',\n 'any',\n 'are',\n 'as',\n 'at',\n 'be',\n 'because',\n 'been',\n 'but',\n 'by',\n 'can',\n 'cannot',\n 'could',\n 'dear',\n 'did',\n 'do',\n 'does',\n 'either',\n 'else',\n 'ever',\n 'every',\n 'for',\n 'from',\n 'get',\n 'got',\n 'had',\n 'has',\n 'have',\n 'he',\n 'her',\n 'hers',\n 'him',\n 'his',\n 'how',\n 'however',\n 'i',\n 'if',\n 'in',\n 'into',\n 'is',\n 'it',\n 'its',\n 'just',\n 'least',\n 'let',\n 'like',\n 'likely',\n 'may',\n 'me',\n 'might',\n 'most',\n 'must',\n 'my',\n 'neither',\n 'no',\n 'nor',\n 'not',\n 'of',\n 'off',\n 'often',\n 'on',\n 'only',\n 'or',\n 'other',\n 'our',\n 'own',\n 'rather',\n 'said',\n 'say',\n 'says',\n 'she',\n 'should',\n 'since',\n 'so',\n 'some',\n 'than',\n 'that',\n 'the',\n 'their',\n 'them',\n 'then',\n 'there',\n 'these',\n 'they',\n 'this',\n 'tis',\n 'to',\n 'too',\n 'twas',\n 'us',\n 'wants',\n 'was',\n 'we',\n 'were',\n 'what',\n 'when',\n 'where',\n 'which',\n 'while',\n 'who',\n 'whom',\n 'why',\n 'will',\n 'with',\n 'would',\n 'yet',\n 'you',\n 'your'\n])\n\nlunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter')\n/*!\n * lunr.trimmer\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.trimmer is a pipeline function for trimming non word\n * characters from the beginning and end of tokens before they\n * enter the index.\n *\n * This implementation may not work correctly for non latin\n * characters and should either be removed or adapted for use\n * with languages with non-latin characters.\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token The token to pass through the filter\n * @returns {lunr.Token}\n * @see lunr.Pipeline\n */\nlunr.trimmer = function (token) {\n return token.update(function (s) {\n return s.replace(/^\\W+/, '').replace(/\\W+$/, '')\n })\n}\n\nlunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer')\n/*!\n * lunr.TokenSet\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A token set is used to store the unique list of all tokens\n * within an index. Token sets are also used to represent an\n * incoming query to the index, this query token set and index\n * token set are then intersected to find which tokens to look\n * up in the inverted index.\n *\n * A token set can hold multiple tokens, as in the case of the\n * index token set, or it can hold a single token as in the\n * case of a simple query token set.\n *\n * Additionally token sets are used to perform wildcard matching.\n * Leading, contained and trailing wildcards are supported, and\n * from this edit distance matching can also be provided.\n *\n * Token sets are implemented as a minimal finite state automata,\n * where both common prefixes and suffixes are shared between tokens.\n * This helps to reduce the space used for storing the token set.\n *\n * @constructor\n */\nlunr.TokenSet = function () {\n this.final = false\n this.edges = {}\n this.id = lunr.TokenSet._nextId\n lunr.TokenSet._nextId += 1\n}\n\n/**\n * Keeps track of the next, auto increment, identifier to assign\n * to a new tokenSet.\n *\n * TokenSets require a unique identifier to be correctly minimised.\n *\n * @private\n */\nlunr.TokenSet._nextId = 1\n\n/**\n * Creates a TokenSet instance from the given sorted array of words.\n *\n * @param {String[]} arr - A sorted array of strings to create the set from.\n * @returns {lunr.TokenSet}\n * @throws Will throw an error if the input array is not sorted.\n */\nlunr.TokenSet.fromArray = function (arr) {\n var builder = new lunr.TokenSet.Builder\n\n for (var i = 0, len = arr.length; i < len; i++) {\n builder.insert(arr[i])\n }\n\n builder.finish()\n return builder.root\n}\n\n/**\n * Creates a token set from a query clause.\n *\n * @private\n * @param {Object} clause - A single clause from lunr.Query.\n * @param {string} clause.term - The query clause term.\n * @param {number} [clause.editDistance] - The optional edit distance for the term.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromClause = function (clause) {\n if ('editDistance' in clause) {\n return lunr.TokenSet.fromFuzzyString(clause.term, clause.editDistance)\n } else {\n return lunr.TokenSet.fromString(clause.term)\n }\n}\n\n/**\n * Creates a token set representing a single string with a specified\n * edit distance.\n *\n * Insertions, deletions, substitutions and transpositions are each\n * treated as an edit distance of 1.\n *\n * Increasing the allowed edit distance will have a dramatic impact\n * on the performance of both creating and intersecting these TokenSets.\n * It is advised to keep the edit distance less than 3.\n *\n * @param {string} str - The string to create the token set from.\n * @param {number} editDistance - The allowed edit distance to match.\n * @returns {lunr.Vector}\n */\nlunr.TokenSet.fromFuzzyString = function (str, editDistance) {\n var root = new lunr.TokenSet\n\n var stack = [{\n node: root,\n editsRemaining: editDistance,\n str: str\n }]\n\n while (stack.length) {\n var frame = stack.pop()\n\n // no edit\n if (frame.str.length > 0) {\n var char = frame.str.charAt(0),\n noEditNode\n\n if (char in frame.node.edges) {\n noEditNode = frame.node.edges[char]\n } else {\n noEditNode = new lunr.TokenSet\n frame.node.edges[char] = noEditNode\n }\n\n if (frame.str.length == 1) {\n noEditNode.final = true\n }\n\n stack.push({\n node: noEditNode,\n editsRemaining: frame.editsRemaining,\n str: frame.str.slice(1)\n })\n }\n\n if (frame.editsRemaining == 0) {\n continue\n }\n\n // insertion\n if (\"*\" in frame.node.edges) {\n var insertionNode = frame.node.edges[\"*\"]\n } else {\n var insertionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = insertionNode\n }\n\n if (frame.str.length == 0) {\n insertionNode.final = true\n }\n\n stack.push({\n node: insertionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str\n })\n\n // deletion\n // can only do a deletion if we have enough edits remaining\n // and if there are characters left to delete in the string\n if (frame.str.length > 1) {\n stack.push({\n node: frame.node,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // deletion\n // just removing the last character from the str\n if (frame.str.length == 1) {\n frame.node.final = true\n }\n\n // substitution\n // can only do a substitution if we have enough edits remaining\n // and if there are characters left to substitute\n if (frame.str.length >= 1) {\n if (\"*\" in frame.node.edges) {\n var substitutionNode = frame.node.edges[\"*\"]\n } else {\n var substitutionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = substitutionNode\n }\n\n if (frame.str.length == 1) {\n substitutionNode.final = true\n }\n\n stack.push({\n node: substitutionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // transposition\n // can only do a transposition if there are edits remaining\n // and there are enough characters to transpose\n if (frame.str.length > 1) {\n var charA = frame.str.charAt(0),\n charB = frame.str.charAt(1),\n transposeNode\n\n if (charB in frame.node.edges) {\n transposeNode = frame.node.edges[charB]\n } else {\n transposeNode = new lunr.TokenSet\n frame.node.edges[charB] = transposeNode\n }\n\n if (frame.str.length == 1) {\n transposeNode.final = true\n }\n\n stack.push({\n node: transposeNode,\n editsRemaining: frame.editsRemaining - 1,\n str: charA + frame.str.slice(2)\n })\n }\n }\n\n return root\n}\n\n/**\n * Creates a TokenSet from a string.\n *\n * The string may contain one or more wildcard characters (*)\n * that will allow wildcard matching when intersecting with\n * another TokenSet.\n *\n * @param {string} str - The string to create a TokenSet from.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromString = function (str) {\n var node = new lunr.TokenSet,\n root = node\n\n /*\n * Iterates through all characters within the passed string\n * appending a node for each character.\n *\n * When a wildcard character is found then a self\n * referencing edge is introduced to continually match\n * any number of any characters.\n */\n for (var i = 0, len = str.length; i < len; i++) {\n var char = str[i],\n final = (i == len - 1)\n\n if (char == \"*\") {\n node.edges[char] = node\n node.final = final\n\n } else {\n var next = new lunr.TokenSet\n next.final = final\n\n node.edges[char] = next\n node = next\n }\n }\n\n return root\n}\n\n/**\n * Converts this TokenSet into an array of strings\n * contained within the TokenSet.\n *\n * This is not intended to be used on a TokenSet that\n * contains wildcards, in these cases the results are\n * undefined and are likely to cause an infinite loop.\n *\n * @returns {string[]}\n */\nlunr.TokenSet.prototype.toArray = function () {\n var words = []\n\n var stack = [{\n prefix: \"\",\n node: this\n }]\n\n while (stack.length) {\n var frame = stack.pop(),\n edges = Object.keys(frame.node.edges),\n len = edges.length\n\n if (frame.node.final) {\n /* In Safari, at this point the prefix is sometimes corrupted, see:\n * https://github.com/olivernn/lunr.js/issues/279 Calling any\n * String.prototype method forces Safari to \"cast\" this string to what\n * it's supposed to be, fixing the bug. */\n frame.prefix.charAt(0)\n words.push(frame.prefix)\n }\n\n for (var i = 0; i < len; i++) {\n var edge = edges[i]\n\n stack.push({\n prefix: frame.prefix.concat(edge),\n node: frame.node.edges[edge]\n })\n }\n }\n\n return words\n}\n\n/**\n * Generates a string representation of a TokenSet.\n *\n * This is intended to allow TokenSets to be used as keys\n * in objects, largely to aid the construction and minimisation\n * of a TokenSet. As such it is not designed to be a human\n * friendly representation of the TokenSet.\n *\n * @returns {string}\n */\nlunr.TokenSet.prototype.toString = function () {\n // NOTE: Using Object.keys here as this.edges is very likely\n // to enter 'hash-mode' with many keys being added\n //\n // avoiding a for-in loop here as it leads to the function\n // being de-optimised (at least in V8). From some simple\n // benchmarks the performance is comparable, but allowing\n // V8 to optimize may mean easy performance wins in the future.\n\n if (this._str) {\n return this._str\n }\n\n var str = this.final ? '1' : '0',\n labels = Object.keys(this.edges).sort(),\n len = labels.length\n\n for (var i = 0; i < len; i++) {\n var label = labels[i],\n node = this.edges[label]\n\n str = str + label + node.id\n }\n\n return str\n}\n\n/**\n * Returns a new TokenSet that is the intersection of\n * this TokenSet and the passed TokenSet.\n *\n * This intersection will take into account any wildcards\n * contained within the TokenSet.\n *\n * @param {lunr.TokenSet} b - An other TokenSet to intersect with.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.prototype.intersect = function (b) {\n var output = new lunr.TokenSet,\n frame = undefined\n\n var stack = [{\n qNode: b,\n output: output,\n node: this\n }]\n\n while (stack.length) {\n frame = stack.pop()\n\n // NOTE: As with the #toString method, we are using\n // Object.keys and a for loop instead of a for-in loop\n // as both of these objects enter 'hash' mode, causing\n // the function to be de-optimised in V8\n var qEdges = Object.keys(frame.qNode.edges),\n qLen = qEdges.length,\n nEdges = Object.keys(frame.node.edges),\n nLen = nEdges.length\n\n for (var q = 0; q < qLen; q++) {\n var qEdge = qEdges[q]\n\n for (var n = 0; n < nLen; n++) {\n var nEdge = nEdges[n]\n\n if (nEdge == qEdge || qEdge == '*') {\n var node = frame.node.edges[nEdge],\n qNode = frame.qNode.edges[qEdge],\n final = node.final && qNode.final,\n next = undefined\n\n if (nEdge in frame.output.edges) {\n // an edge already exists for this character\n // no need to create a new node, just set the finality\n // bit unless this node is already final\n next = frame.output.edges[nEdge]\n next.final = next.final || final\n\n } else {\n // no edge exists yet, must create one\n // set the finality bit and insert it\n // into the output\n next = new lunr.TokenSet\n next.final = final\n frame.output.edges[nEdge] = next\n }\n\n stack.push({\n qNode: qNode,\n output: next,\n node: node\n })\n }\n }\n }\n }\n\n return output\n}\nlunr.TokenSet.Builder = function () {\n this.previousWord = \"\"\n this.root = new lunr.TokenSet\n this.uncheckedNodes = []\n this.minimizedNodes = {}\n}\n\nlunr.TokenSet.Builder.prototype.insert = function (word) {\n var node,\n commonPrefix = 0\n\n if (word < this.previousWord) {\n throw new Error (\"Out of order word insertion\")\n }\n\n for (var i = 0; i < word.length && i < this.previousWord.length; i++) {\n if (word[i] != this.previousWord[i]) break\n commonPrefix++\n }\n\n this.minimize(commonPrefix)\n\n if (this.uncheckedNodes.length == 0) {\n node = this.root\n } else {\n node = this.uncheckedNodes[this.uncheckedNodes.length - 1].child\n }\n\n for (var i = commonPrefix; i < word.length; i++) {\n var nextNode = new lunr.TokenSet,\n char = word[i]\n\n node.edges[char] = nextNode\n\n this.uncheckedNodes.push({\n parent: node,\n char: char,\n child: nextNode\n })\n\n node = nextNode\n }\n\n node.final = true\n this.previousWord = word\n}\n\nlunr.TokenSet.Builder.prototype.finish = function () {\n this.minimize(0)\n}\n\nlunr.TokenSet.Builder.prototype.minimize = function (downTo) {\n for (var i = this.uncheckedNodes.length - 1; i >= downTo; i--) {\n var node = this.uncheckedNodes[i],\n childKey = node.child.toString()\n\n if (childKey in this.minimizedNodes) {\n node.parent.edges[node.char] = this.minimizedNodes[childKey]\n } else {\n // Cache the key for this node since\n // we know it can't change anymore\n node.child._str = childKey\n\n this.minimizedNodes[childKey] = node.child\n }\n\n this.uncheckedNodes.pop()\n }\n}\n/*!\n * lunr.Index\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * An index contains the built index of all documents and provides a query interface\n * to the index.\n *\n * Usually instances of lunr.Index will not be created using this constructor, instead\n * lunr.Builder should be used to construct new indexes, or lunr.Index.load should be\n * used to load previously built and serialized indexes.\n *\n * @constructor\n * @param {Object} attrs - The attributes of the built search index.\n * @param {Object} attrs.invertedIndex - An index of term/field to document reference.\n * @param {Object} attrs.fieldVectors - Field vectors\n * @param {lunr.TokenSet} attrs.tokenSet - An set of all corpus tokens.\n * @param {string[]} attrs.fields - The names of indexed document fields.\n * @param {lunr.Pipeline} attrs.pipeline - The pipeline to use for search terms.\n */\nlunr.Index = function (attrs) {\n this.invertedIndex = attrs.invertedIndex\n this.fieldVectors = attrs.fieldVectors\n this.tokenSet = attrs.tokenSet\n this.fields = attrs.fields\n this.pipeline = attrs.pipeline\n}\n\n/**\n * A result contains details of a document matching a search query.\n * @typedef {Object} lunr.Index~Result\n * @property {string} ref - The reference of the document this result represents.\n * @property {number} score - A number between 0 and 1 representing how similar this document is to the query.\n * @property {lunr.MatchData} matchData - Contains metadata about this match including which term(s) caused the match.\n */\n\n/**\n * Although lunr provides the ability to create queries using lunr.Query, it also provides a simple\n * query language which itself is parsed into an instance of lunr.Query.\n *\n * For programmatically building queries it is advised to directly use lunr.Query, the query language\n * is best used for human entered text rather than program generated text.\n *\n * At its simplest queries can just be a single term, e.g. `hello`, multiple terms are also supported\n * and will be combined with OR, e.g `hello world` will match documents that contain either 'hello'\n * or 'world', though those that contain both will rank higher in the results.\n *\n * Wildcards can be included in terms to match one or more unspecified characters, these wildcards can\n * be inserted anywhere within the term, and more than one wildcard can exist in a single term. Adding\n * wildcards will increase the number of documents that will be found but can also have a negative\n * impact on query performance, especially with wildcards at the beginning of a term.\n *\n * Terms can be restricted to specific fields, e.g. `title:hello`, only documents with the term\n * hello in the title field will match this query. Using a field not present in the index will lead\n * to an error being thrown.\n *\n * Modifiers can also be added to terms, lunr supports edit distance and boost modifiers on terms. A term\n * boost will make documents matching that term score higher, e.g. `foo^5`. Edit distance is also supported\n * to provide fuzzy matching, e.g. 'hello~2' will match documents with hello with an edit distance of 2.\n * Avoid large values for edit distance to improve query performance.\n *\n * Each term also supports a presence modifier. By default a term's presence in document is optional, however\n * this can be changed to either required or prohibited. For a term's presence to be required in a document the\n * term should be prefixed with a '+', e.g. `+foo bar` is a search for documents that must contain 'foo' and\n * optionally contain 'bar'. Conversely a leading '-' sets the terms presence to prohibited, i.e. it must not\n * appear in a document, e.g. `-foo bar` is a search for documents that do not contain 'foo' but may contain 'bar'.\n *\n * To escape special characters the backslash character '\\' can be used, this allows searches to include\n * characters that would normally be considered modifiers, e.g. `foo\\~2` will search for a term \"foo~2\" instead\n * of attempting to apply a boost of 2 to the search term \"foo\".\n *\n * @typedef {string} lunr.Index~QueryString\n * @example Simple single term query\n * hello\n * @example Multiple term query\n * hello world\n * @example term scoped to a field\n * title:hello\n * @example term with a boost of 10\n * hello^10\n * @example term with an edit distance of 2\n * hello~2\n * @example terms with presence modifiers\n * -foo +bar baz\n */\n\n/**\n * Performs a search against the index using lunr query syntax.\n *\n * Results will be returned sorted by their score, the most relevant results\n * will be returned first. For details on how the score is calculated, please see\n * the {@link https://lunrjs.com/guides/searching.html#scoring|guide}.\n *\n * For more programmatic querying use lunr.Index#query.\n *\n * @param {lunr.Index~QueryString} queryString - A string containing a lunr query.\n * @throws {lunr.QueryParseError} If the passed query string cannot be parsed.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.search = function (queryString) {\n return this.query(function (query) {\n var parser = new lunr.QueryParser(queryString, query)\n parser.parse()\n })\n}\n\n/**\n * A query builder callback provides a query object to be used to express\n * the query to perform on the index.\n *\n * @callback lunr.Index~queryBuilder\n * @param {lunr.Query} query - The query object to build up.\n * @this lunr.Query\n */\n\n/**\n * Performs a query against the index using the yielded lunr.Query object.\n *\n * If performing programmatic queries against the index, this method is preferred\n * over lunr.Index#search so as to avoid the additional query parsing overhead.\n *\n * A query object is yielded to the supplied function which should be used to\n * express the query to be run against the index.\n *\n * Note that although this function takes a callback parameter it is _not_ an\n * asynchronous operation, the callback is just yielded a query object to be\n * customized.\n *\n * @param {lunr.Index~queryBuilder} fn - A function that is used to build the query.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.query = function (fn) {\n // for each query clause\n // * process terms\n // * expand terms from token set\n // * find matching documents and metadata\n // * get document vectors\n // * score documents\n\n var query = new lunr.Query(this.fields),\n matchingFields = Object.create(null),\n queryVectors = Object.create(null),\n termFieldCache = Object.create(null),\n requiredMatches = Object.create(null),\n prohibitedMatches = Object.create(null)\n\n /*\n * To support field level boosts a query vector is created per\n * field. An empty vector is eagerly created to support negated\n * queries.\n */\n for (var i = 0; i < this.fields.length; i++) {\n queryVectors[this.fields[i]] = new lunr.Vector\n }\n\n fn.call(query, query)\n\n for (var i = 0; i < query.clauses.length; i++) {\n /*\n * Unless the pipeline has been disabled for this term, which is\n * the case for terms with wildcards, we need to pass the clause\n * term through the search pipeline. A pipeline returns an array\n * of processed terms. Pipeline functions may expand the passed\n * term, which means we may end up performing multiple index lookups\n * for a single query term.\n */\n var clause = query.clauses[i],\n terms = null,\n clauseMatches = lunr.Set.complete\n\n if (clause.usePipeline) {\n terms = this.pipeline.runString(clause.term, {\n fields: clause.fields\n })\n } else {\n terms = [clause.term]\n }\n\n for (var m = 0; m < terms.length; m++) {\n var term = terms[m]\n\n /*\n * Each term returned from the pipeline needs to use the same query\n * clause object, e.g. the same boost and or edit distance. The\n * simplest way to do this is to re-use the clause object but mutate\n * its term property.\n */\n clause.term = term\n\n /*\n * From the term in the clause we create a token set which will then\n * be used to intersect the indexes token set to get a list of terms\n * to lookup in the inverted index\n */\n var termTokenSet = lunr.TokenSet.fromClause(clause),\n expandedTerms = this.tokenSet.intersect(termTokenSet).toArray()\n\n /*\n * If a term marked as required does not exist in the tokenSet it is\n * impossible for the search to return any matches. We set all the field\n * scoped required matches set to empty and stop examining any further\n * clauses.\n */\n if (expandedTerms.length === 0 && clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = lunr.Set.empty\n }\n\n break\n }\n\n for (var j = 0; j < expandedTerms.length; j++) {\n /*\n * For each term get the posting and termIndex, this is required for\n * building the query vector.\n */\n var expandedTerm = expandedTerms[j],\n posting = this.invertedIndex[expandedTerm],\n termIndex = posting._index\n\n for (var k = 0; k < clause.fields.length; k++) {\n /*\n * For each field that this query term is scoped by (by default\n * all fields are in scope) we need to get all the document refs\n * that have this term in that field.\n *\n * The posting is the entry in the invertedIndex for the matching\n * term from above.\n */\n var field = clause.fields[k],\n fieldPosting = posting[field],\n matchingDocumentRefs = Object.keys(fieldPosting),\n termField = expandedTerm + \"/\" + field,\n matchingDocumentsSet = new lunr.Set(matchingDocumentRefs)\n\n /*\n * if the presence of this term is required ensure that the matching\n * documents are added to the set of required matches for this clause.\n *\n */\n if (clause.presence == lunr.Query.presence.REQUIRED) {\n clauseMatches = clauseMatches.union(matchingDocumentsSet)\n\n if (requiredMatches[field] === undefined) {\n requiredMatches[field] = lunr.Set.complete\n }\n }\n\n /*\n * if the presence of this term is prohibited ensure that the matching\n * documents are added to the set of prohibited matches for this field,\n * creating that set if it does not yet exist.\n */\n if (clause.presence == lunr.Query.presence.PROHIBITED) {\n if (prohibitedMatches[field] === undefined) {\n prohibitedMatches[field] = lunr.Set.empty\n }\n\n prohibitedMatches[field] = prohibitedMatches[field].union(matchingDocumentsSet)\n\n /*\n * Prohibited matches should not be part of the query vector used for\n * similarity scoring and no metadata should be extracted so we continue\n * to the next field\n */\n continue\n }\n\n /*\n * The query field vector is populated using the termIndex found for\n * the term and a unit value with the appropriate boost applied.\n * Using upsert because there could already be an entry in the vector\n * for the term we are working with. In that case we just add the scores\n * together.\n */\n queryVectors[field].upsert(termIndex, clause.boost, function (a, b) { return a + b })\n\n /**\n * If we've already seen this term, field combo then we've already collected\n * the matching documents and metadata, no need to go through all that again\n */\n if (termFieldCache[termField]) {\n continue\n }\n\n for (var l = 0; l < matchingDocumentRefs.length; l++) {\n /*\n * All metadata for this term/field/document triple\n * are then extracted and collected into an instance\n * of lunr.MatchData ready to be returned in the query\n * results\n */\n var matchingDocumentRef = matchingDocumentRefs[l],\n matchingFieldRef = new lunr.FieldRef (matchingDocumentRef, field),\n metadata = fieldPosting[matchingDocumentRef],\n fieldMatch\n\n if ((fieldMatch = matchingFields[matchingFieldRef]) === undefined) {\n matchingFields[matchingFieldRef] = new lunr.MatchData (expandedTerm, field, metadata)\n } else {\n fieldMatch.add(expandedTerm, field, metadata)\n }\n\n }\n\n termFieldCache[termField] = true\n }\n }\n }\n\n /**\n * If the presence was required we need to update the requiredMatches field sets.\n * We do this after all fields for the term have collected their matches because\n * the clause terms presence is required in _any_ of the fields not _all_ of the\n * fields.\n */\n if (clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = requiredMatches[field].intersect(clauseMatches)\n }\n }\n }\n\n /**\n * Need to combine the field scoped required and prohibited\n * matching documents into a global set of required and prohibited\n * matches\n */\n var allRequiredMatches = lunr.Set.complete,\n allProhibitedMatches = lunr.Set.empty\n\n for (var i = 0; i < this.fields.length; i++) {\n var field = this.fields[i]\n\n if (requiredMatches[field]) {\n allRequiredMatches = allRequiredMatches.intersect(requiredMatches[field])\n }\n\n if (prohibitedMatches[field]) {\n allProhibitedMatches = allProhibitedMatches.union(prohibitedMatches[field])\n }\n }\n\n var matchingFieldRefs = Object.keys(matchingFields),\n results = [],\n matches = Object.create(null)\n\n /*\n * If the query is negated (contains only prohibited terms)\n * we need to get _all_ fieldRefs currently existing in the\n * index. This is only done when we know that the query is\n * entirely prohibited terms to avoid any cost of getting all\n * fieldRefs unnecessarily.\n *\n * Additionally, blank MatchData must be created to correctly\n * populate the results.\n */\n if (query.isNegated()) {\n matchingFieldRefs = Object.keys(this.fieldVectors)\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n var matchingFieldRef = matchingFieldRefs[i]\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRef)\n matchingFields[matchingFieldRef] = new lunr.MatchData\n }\n }\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n /*\n * Currently we have document fields that match the query, but we\n * need to return documents. The matchData and scores are combined\n * from multiple fields belonging to the same document.\n *\n * Scores are calculated by field, using the query vectors created\n * above, and combined into a final document score using addition.\n */\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRefs[i]),\n docRef = fieldRef.docRef\n\n if (!allRequiredMatches.contains(docRef)) {\n continue\n }\n\n if (allProhibitedMatches.contains(docRef)) {\n continue\n }\n\n var fieldVector = this.fieldVectors[fieldRef],\n score = queryVectors[fieldRef.fieldName].similarity(fieldVector),\n docMatch\n\n if ((docMatch = matches[docRef]) !== undefined) {\n docMatch.score += score\n docMatch.matchData.combine(matchingFields[fieldRef])\n } else {\n var match = {\n ref: docRef,\n score: score,\n matchData: matchingFields[fieldRef]\n }\n matches[docRef] = match\n results.push(match)\n }\n }\n\n /*\n * Sort the results objects by score, highest first.\n */\n return results.sort(function (a, b) {\n return b.score - a.score\n })\n}\n\n/**\n * Prepares the index for JSON serialization.\n *\n * The schema for this JSON blob will be described in a\n * separate JSON schema file.\n *\n * @returns {Object}\n */\nlunr.Index.prototype.toJSON = function () {\n var invertedIndex = Object.keys(this.invertedIndex)\n .sort()\n .map(function (term) {\n return [term, this.invertedIndex[term]]\n }, this)\n\n var fieldVectors = Object.keys(this.fieldVectors)\n .map(function (ref) {\n return [ref, this.fieldVectors[ref].toJSON()]\n }, this)\n\n return {\n version: lunr.version,\n fields: this.fields,\n fieldVectors: fieldVectors,\n invertedIndex: invertedIndex,\n pipeline: this.pipeline.toJSON()\n }\n}\n\n/**\n * Loads a previously serialized lunr.Index\n *\n * @param {Object} serializedIndex - A previously serialized lunr.Index\n * @returns {lunr.Index}\n */\nlunr.Index.load = function (serializedIndex) {\n var attrs = {},\n fieldVectors = {},\n serializedVectors = serializedIndex.fieldVectors,\n invertedIndex = Object.create(null),\n serializedInvertedIndex = serializedIndex.invertedIndex,\n tokenSetBuilder = new lunr.TokenSet.Builder,\n pipeline = lunr.Pipeline.load(serializedIndex.pipeline)\n\n if (serializedIndex.version != lunr.version) {\n lunr.utils.warn(\"Version mismatch when loading serialised index. Current version of lunr '\" + lunr.version + \"' does not match serialized index '\" + serializedIndex.version + \"'\")\n }\n\n for (var i = 0; i < serializedVectors.length; i++) {\n var tuple = serializedVectors[i],\n ref = tuple[0],\n elements = tuple[1]\n\n fieldVectors[ref] = new lunr.Vector(elements)\n }\n\n for (var i = 0; i < serializedInvertedIndex.length; i++) {\n var tuple = serializedInvertedIndex[i],\n term = tuple[0],\n posting = tuple[1]\n\n tokenSetBuilder.insert(term)\n invertedIndex[term] = posting\n }\n\n tokenSetBuilder.finish()\n\n attrs.fields = serializedIndex.fields\n\n attrs.fieldVectors = fieldVectors\n attrs.invertedIndex = invertedIndex\n attrs.tokenSet = tokenSetBuilder.root\n attrs.pipeline = pipeline\n\n return new lunr.Index(attrs)\n}\n/*!\n * lunr.Builder\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.Builder performs indexing on a set of documents and\n * returns instances of lunr.Index ready for querying.\n *\n * All configuration of the index is done via the builder, the\n * fields to index, the document reference, the text processing\n * pipeline and document scoring parameters are all set on the\n * builder before indexing.\n *\n * @constructor\n * @property {string} _ref - Internal reference to the document reference field.\n * @property {string[]} _fields - Internal reference to the document fields to index.\n * @property {object} invertedIndex - The inverted index maps terms to document fields.\n * @property {object} documentTermFrequencies - Keeps track of document term frequencies.\n * @property {object} documentLengths - Keeps track of the length of documents added to the index.\n * @property {lunr.tokenizer} tokenizer - Function for splitting strings into tokens for indexing.\n * @property {lunr.Pipeline} pipeline - The pipeline performs text processing on tokens before indexing.\n * @property {lunr.Pipeline} searchPipeline - A pipeline for processing search terms before querying the index.\n * @property {number} documentCount - Keeps track of the total number of documents indexed.\n * @property {number} _b - A parameter to control field length normalization, setting this to 0 disabled normalization, 1 fully normalizes field lengths, the default value is 0.75.\n * @property {number} _k1 - A parameter to control how quickly an increase in term frequency results in term frequency saturation, the default value is 1.2.\n * @property {number} termIndex - A counter incremented for each unique term, used to identify a terms position in the vector space.\n * @property {array} metadataWhitelist - A list of metadata keys that have been whitelisted for entry in the index.\n */\nlunr.Builder = function () {\n this._ref = \"id\"\n this._fields = Object.create(null)\n this._documents = Object.create(null)\n this.invertedIndex = Object.create(null)\n this.fieldTermFrequencies = {}\n this.fieldLengths = {}\n this.tokenizer = lunr.tokenizer\n this.pipeline = new lunr.Pipeline\n this.searchPipeline = new lunr.Pipeline\n this.documentCount = 0\n this._b = 0.75\n this._k1 = 1.2\n this.termIndex = 0\n this.metadataWhitelist = []\n}\n\n/**\n * Sets the document field used as the document reference. Every document must have this field.\n * The type of this field in the document should be a string, if it is not a string it will be\n * coerced into a string by calling toString.\n *\n * The default ref is 'id'.\n *\n * The ref should _not_ be changed during indexing, it should be set before any documents are\n * added to the index. Changing it during indexing can lead to inconsistent results.\n *\n * @param {string} ref - The name of the reference field in the document.\n */\nlunr.Builder.prototype.ref = function (ref) {\n this._ref = ref\n}\n\n/**\n * A function that is used to extract a field from a document.\n *\n * Lunr expects a field to be at the top level of a document, if however the field\n * is deeply nested within a document an extractor function can be used to extract\n * the right field for indexing.\n *\n * @callback fieldExtractor\n * @param {object} doc - The document being added to the index.\n * @returns {?(string|object|object[])} obj - The object that will be indexed for this field.\n * @example Extracting a nested field\n * function (doc) { return doc.nested.field }\n */\n\n/**\n * Adds a field to the list of document fields that will be indexed. Every document being\n * indexed should have this field. Null values for this field in indexed documents will\n * not cause errors but will limit the chance of that document being retrieved by searches.\n *\n * All fields should be added before adding documents to the index. Adding fields after\n * a document has been indexed will have no effect on already indexed documents.\n *\n * Fields can be boosted at build time. This allows terms within that field to have more\n * importance when ranking search results. Use a field boost to specify that matches within\n * one field are more important than other fields.\n *\n * @param {string} fieldName - The name of a field to index in all documents.\n * @param {object} attributes - Optional attributes associated with this field.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this field.\n * @param {fieldExtractor} [attributes.extractor] - Function to extract a field from a document.\n * @throws {RangeError} fieldName cannot contain unsupported characters '/'\n */\nlunr.Builder.prototype.field = function (fieldName, attributes) {\n if (/\\//.test(fieldName)) {\n throw new RangeError (\"Field '\" + fieldName + \"' contains illegal character '/'\")\n }\n\n this._fields[fieldName] = attributes || {}\n}\n\n/**\n * A parameter to tune the amount of field length normalisation that is applied when\n * calculating relevance scores. A value of 0 will completely disable any normalisation\n * and a value of 1 will fully normalise field lengths. The default is 0.75. Values of b\n * will be clamped to the range 0 - 1.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.b = function (number) {\n if (number < 0) {\n this._b = 0\n } else if (number > 1) {\n this._b = 1\n } else {\n this._b = number\n }\n}\n\n/**\n * A parameter that controls the speed at which a rise in term frequency results in term\n * frequency saturation. The default value is 1.2. Setting this to a higher value will give\n * slower saturation levels, a lower value will result in quicker saturation.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.k1 = function (number) {\n this._k1 = number\n}\n\n/**\n * Adds a document to the index.\n *\n * Before adding fields to the index the index should have been fully setup, with the document\n * ref and all fields to index already having been specified.\n *\n * The document must have a field name as specified by the ref (by default this is 'id') and\n * it should have all fields defined for indexing, though null or undefined values will not\n * cause errors.\n *\n * Entire documents can be boosted at build time. Applying a boost to a document indicates that\n * this document should rank higher in search results than other documents.\n *\n * @param {object} doc - The document to add to the index.\n * @param {object} attributes - Optional attributes associated with this document.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this document.\n */\nlunr.Builder.prototype.add = function (doc, attributes) {\n var docRef = doc[this._ref],\n fields = Object.keys(this._fields)\n\n this._documents[docRef] = attributes || {}\n this.documentCount += 1\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i],\n extractor = this._fields[fieldName].extractor,\n field = extractor ? extractor(doc) : doc[fieldName],\n tokens = this.tokenizer(field, {\n fields: [fieldName]\n }),\n terms = this.pipeline.run(tokens),\n fieldRef = new lunr.FieldRef (docRef, fieldName),\n fieldTerms = Object.create(null)\n\n this.fieldTermFrequencies[fieldRef] = fieldTerms\n this.fieldLengths[fieldRef] = 0\n\n // store the length of this field for this document\n this.fieldLengths[fieldRef] += terms.length\n\n // calculate term frequencies for this field\n for (var j = 0; j < terms.length; j++) {\n var term = terms[j]\n\n if (fieldTerms[term] == undefined) {\n fieldTerms[term] = 0\n }\n\n fieldTerms[term] += 1\n\n // add to inverted index\n // create an initial posting if one doesn't exist\n if (this.invertedIndex[term] == undefined) {\n var posting = Object.create(null)\n posting[\"_index\"] = this.termIndex\n this.termIndex += 1\n\n for (var k = 0; k < fields.length; k++) {\n posting[fields[k]] = Object.create(null)\n }\n\n this.invertedIndex[term] = posting\n }\n\n // add an entry for this term/fieldName/docRef to the invertedIndex\n if (this.invertedIndex[term][fieldName][docRef] == undefined) {\n this.invertedIndex[term][fieldName][docRef] = Object.create(null)\n }\n\n // store all whitelisted metadata about this token in the\n // inverted index\n for (var l = 0; l < this.metadataWhitelist.length; l++) {\n var metadataKey = this.metadataWhitelist[l],\n metadata = term.metadata[metadataKey]\n\n if (this.invertedIndex[term][fieldName][docRef][metadataKey] == undefined) {\n this.invertedIndex[term][fieldName][docRef][metadataKey] = []\n }\n\n this.invertedIndex[term][fieldName][docRef][metadataKey].push(metadata)\n }\n }\n\n }\n}\n\n/**\n * Calculates the average document length for this index\n *\n * @private\n */\nlunr.Builder.prototype.calculateAverageFieldLengths = function () {\n\n var fieldRefs = Object.keys(this.fieldLengths),\n numberOfFields = fieldRefs.length,\n accumulator = {},\n documentsWithField = {}\n\n for (var i = 0; i < numberOfFields; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n field = fieldRef.fieldName\n\n documentsWithField[field] || (documentsWithField[field] = 0)\n documentsWithField[field] += 1\n\n accumulator[field] || (accumulator[field] = 0)\n accumulator[field] += this.fieldLengths[fieldRef]\n }\n\n var fields = Object.keys(this._fields)\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i]\n accumulator[fieldName] = accumulator[fieldName] / documentsWithField[fieldName]\n }\n\n this.averageFieldLength = accumulator\n}\n\n/**\n * Builds a vector space model of every document using lunr.Vector\n *\n * @private\n */\nlunr.Builder.prototype.createFieldVectors = function () {\n var fieldVectors = {},\n fieldRefs = Object.keys(this.fieldTermFrequencies),\n fieldRefsLength = fieldRefs.length,\n termIdfCache = Object.create(null)\n\n for (var i = 0; i < fieldRefsLength; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n fieldName = fieldRef.fieldName,\n fieldLength = this.fieldLengths[fieldRef],\n fieldVector = new lunr.Vector,\n termFrequencies = this.fieldTermFrequencies[fieldRef],\n terms = Object.keys(termFrequencies),\n termsLength = terms.length\n\n\n var fieldBoost = this._fields[fieldName].boost || 1,\n docBoost = this._documents[fieldRef.docRef].boost || 1\n\n for (var j = 0; j < termsLength; j++) {\n var term = terms[j],\n tf = termFrequencies[term],\n termIndex = this.invertedIndex[term]._index,\n idf, score, scoreWithPrecision\n\n if (termIdfCache[term] === undefined) {\n idf = lunr.idf(this.invertedIndex[term], this.documentCount)\n termIdfCache[term] = idf\n } else {\n idf = termIdfCache[term]\n }\n\n score = idf * ((this._k1 + 1) * tf) / (this._k1 * (1 - this._b + this._b * (fieldLength / this.averageFieldLength[fieldName])) + tf)\n score *= fieldBoost\n score *= docBoost\n scoreWithPrecision = Math.round(score * 1000) / 1000\n // Converts 1.23456789 to 1.234.\n // Reducing the precision so that the vectors take up less\n // space when serialised. Doing it now so that they behave\n // the same before and after serialisation. Also, this is\n // the fastest approach to reducing a number's precision in\n // JavaScript.\n\n fieldVector.insert(termIndex, scoreWithPrecision)\n }\n\n fieldVectors[fieldRef] = fieldVector\n }\n\n this.fieldVectors = fieldVectors\n}\n\n/**\n * Creates a token set of all tokens in the index using lunr.TokenSet\n *\n * @private\n */\nlunr.Builder.prototype.createTokenSet = function () {\n this.tokenSet = lunr.TokenSet.fromArray(\n Object.keys(this.invertedIndex).sort()\n )\n}\n\n/**\n * Builds the index, creating an instance of lunr.Index.\n *\n * This completes the indexing process and should only be called\n * once all documents have been added to the index.\n *\n * @returns {lunr.Index}\n */\nlunr.Builder.prototype.build = function () {\n this.calculateAverageFieldLengths()\n this.createFieldVectors()\n this.createTokenSet()\n\n return new lunr.Index({\n invertedIndex: this.invertedIndex,\n fieldVectors: this.fieldVectors,\n tokenSet: this.tokenSet,\n fields: Object.keys(this._fields),\n pipeline: this.searchPipeline\n })\n}\n\n/**\n * Applies a plugin to the index builder.\n *\n * A plugin is a function that is called with the index builder as its context.\n * Plugins can be used to customise or extend the behaviour of the index\n * in some way. A plugin is just a function, that encapsulated the custom\n * behaviour that should be applied when building the index.\n *\n * The plugin function will be called with the index builder as its argument, additional\n * arguments can also be passed when calling use. The function will be called\n * with the index builder as its context.\n *\n * @param {Function} plugin The plugin to apply.\n */\nlunr.Builder.prototype.use = function (fn) {\n var args = Array.prototype.slice.call(arguments, 1)\n args.unshift(this)\n fn.apply(this, args)\n}\n/**\n * Contains and collects metadata about a matching document.\n * A single instance of lunr.MatchData is returned as part of every\n * lunr.Index~Result.\n *\n * @constructor\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n * @property {object} metadata - A cloned collection of metadata associated with this document.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData = function (term, field, metadata) {\n var clonedMetadata = Object.create(null),\n metadataKeys = Object.keys(metadata || {})\n\n // Cloning the metadata to prevent the original\n // being mutated during match data combination.\n // Metadata is kept in an array within the inverted\n // index so cloning the data can be done with\n // Array#slice\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n clonedMetadata[key] = metadata[key].slice()\n }\n\n this.metadata = Object.create(null)\n\n if (term !== undefined) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = clonedMetadata\n }\n}\n\n/**\n * An instance of lunr.MatchData will be created for every term that matches a\n * document. However only one instance is required in a lunr.Index~Result. This\n * method combines metadata from another instance of lunr.MatchData with this\n * objects metadata.\n *\n * @param {lunr.MatchData} otherMatchData - Another instance of match data to merge with this one.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData.prototype.combine = function (otherMatchData) {\n var terms = Object.keys(otherMatchData.metadata)\n\n for (var i = 0; i < terms.length; i++) {\n var term = terms[i],\n fields = Object.keys(otherMatchData.metadata[term])\n\n if (this.metadata[term] == undefined) {\n this.metadata[term] = Object.create(null)\n }\n\n for (var j = 0; j < fields.length; j++) {\n var field = fields[j],\n keys = Object.keys(otherMatchData.metadata[term][field])\n\n if (this.metadata[term][field] == undefined) {\n this.metadata[term][field] = Object.create(null)\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k]\n\n if (this.metadata[term][field][key] == undefined) {\n this.metadata[term][field][key] = otherMatchData.metadata[term][field][key]\n } else {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(otherMatchData.metadata[term][field][key])\n }\n\n }\n }\n }\n}\n\n/**\n * Add metadata for a term/field pair to this instance of match data.\n *\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n */\nlunr.MatchData.prototype.add = function (term, field, metadata) {\n if (!(term in this.metadata)) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = metadata\n return\n }\n\n if (!(field in this.metadata[term])) {\n this.metadata[term][field] = metadata\n return\n }\n\n var metadataKeys = Object.keys(metadata)\n\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n\n if (key in this.metadata[term][field]) {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(metadata[key])\n } else {\n this.metadata[term][field][key] = metadata[key]\n }\n }\n}\n/**\n * A lunr.Query provides a programmatic way of defining queries to be performed\n * against a {@link lunr.Index}.\n *\n * Prefer constructing a lunr.Query using the {@link lunr.Index#query} method\n * so the query object is pre-initialized with the right index fields.\n *\n * @constructor\n * @property {lunr.Query~Clause[]} clauses - An array of query clauses.\n * @property {string[]} allFields - An array of all available fields in a lunr.Index.\n */\nlunr.Query = function (allFields) {\n this.clauses = []\n this.allFields = allFields\n}\n\n/**\n * Constants for indicating what kind of automatic wildcard insertion will be used when constructing a query clause.\n *\n * This allows wildcards to be added to the beginning and end of a term without having to manually do any string\n * concatenation.\n *\n * The wildcard constants can be bitwise combined to select both leading and trailing wildcards.\n *\n * @constant\n * @default\n * @property {number} wildcard.NONE - The term will have no wildcards inserted, this is the default behaviour\n * @property {number} wildcard.LEADING - Prepend the term with a wildcard, unless a leading wildcard already exists\n * @property {number} wildcard.TRAILING - Append a wildcard to the term, unless a trailing wildcard already exists\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with trailing wildcard\n * query.term('foo', { wildcard: lunr.Query.wildcard.TRAILING })\n * @example query term with leading and trailing wildcard\n * query.term('foo', {\n * wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING\n * })\n */\n\nlunr.Query.wildcard = new String (\"*\")\nlunr.Query.wildcard.NONE = 0\nlunr.Query.wildcard.LEADING = 1\nlunr.Query.wildcard.TRAILING = 2\n\n/**\n * Constants for indicating what kind of presence a term must have in matching documents.\n *\n * @constant\n * @enum {number}\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with required presence\n * query.term('foo', { presence: lunr.Query.presence.REQUIRED })\n */\nlunr.Query.presence = {\n /**\n * Term's presence in a document is optional, this is the default value.\n */\n OPTIONAL: 1,\n\n /**\n * Term's presence in a document is required, documents that do not contain\n * this term will not be returned.\n */\n REQUIRED: 2,\n\n /**\n * Term's presence in a document is prohibited, documents that do contain\n * this term will not be returned.\n */\n PROHIBITED: 3\n}\n\n/**\n * A single clause in a {@link lunr.Query} contains a term and details on how to\n * match that term against a {@link lunr.Index}.\n *\n * @typedef {Object} lunr.Query~Clause\n * @property {string[]} fields - The fields in an index this clause should be matched against.\n * @property {number} [boost=1] - Any boost that should be applied when matching this clause.\n * @property {number} [editDistance] - Whether the term should have fuzzy matching applied, and how fuzzy the match should be.\n * @property {boolean} [usePipeline] - Whether the term should be passed through the search pipeline.\n * @property {number} [wildcard=lunr.Query.wildcard.NONE] - Whether the term should have wildcards appended or prepended.\n * @property {number} [presence=lunr.Query.presence.OPTIONAL] - The terms presence in any matching documents.\n */\n\n/**\n * Adds a {@link lunr.Query~Clause} to this query.\n *\n * Unless the clause contains the fields to be matched all fields will be matched. In addition\n * a default boost of 1 is applied to the clause.\n *\n * @param {lunr.Query~Clause} clause - The clause to add to this query.\n * @see lunr.Query~Clause\n * @returns {lunr.Query}\n */\nlunr.Query.prototype.clause = function (clause) {\n if (!('fields' in clause)) {\n clause.fields = this.allFields\n }\n\n if (!('boost' in clause)) {\n clause.boost = 1\n }\n\n if (!('usePipeline' in clause)) {\n clause.usePipeline = true\n }\n\n if (!('wildcard' in clause)) {\n clause.wildcard = lunr.Query.wildcard.NONE\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.LEADING) && (clause.term.charAt(0) != lunr.Query.wildcard)) {\n clause.term = \"*\" + clause.term\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.TRAILING) && (clause.term.slice(-1) != lunr.Query.wildcard)) {\n clause.term = \"\" + clause.term + \"*\"\n }\n\n if (!('presence' in clause)) {\n clause.presence = lunr.Query.presence.OPTIONAL\n }\n\n this.clauses.push(clause)\n\n return this\n}\n\n/**\n * A negated query is one in which every clause has a presence of\n * prohibited. These queries require some special processing to return\n * the expected results.\n *\n * @returns boolean\n */\nlunr.Query.prototype.isNegated = function () {\n for (var i = 0; i < this.clauses.length; i++) {\n if (this.clauses[i].presence != lunr.Query.presence.PROHIBITED) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * Adds a term to the current query, under the covers this will create a {@link lunr.Query~Clause}\n * to the list of clauses that make up this query.\n *\n * The term is used as is, i.e. no tokenization will be performed by this method. Instead conversion\n * to a token or token-like string should be done before calling this method.\n *\n * The term will be converted to a string by calling `toString`. Multiple terms can be passed as an\n * array, each term in the array will share the same options.\n *\n * @param {object|object[]} term - The term(s) to add to the query.\n * @param {object} [options] - Any additional properties to add to the query clause.\n * @returns {lunr.Query}\n * @see lunr.Query#clause\n * @see lunr.Query~Clause\n * @example adding a single term to a query\n * query.term(\"foo\")\n * @example adding a single term to a query and specifying search fields, term boost and automatic trailing wildcard\n * query.term(\"foo\", {\n * fields: [\"title\"],\n * boost: 10,\n * wildcard: lunr.Query.wildcard.TRAILING\n * })\n * @example using lunr.tokenizer to convert a string to tokens before using them as terms\n * query.term(lunr.tokenizer(\"foo bar\"))\n */\nlunr.Query.prototype.term = function (term, options) {\n if (Array.isArray(term)) {\n term.forEach(function (t) { this.term(t, lunr.utils.clone(options)) }, this)\n return this\n }\n\n var clause = options || {}\n clause.term = term.toString()\n\n this.clause(clause)\n\n return this\n}\nlunr.QueryParseError = function (message, start, end) {\n this.name = \"QueryParseError\"\n this.message = message\n this.start = start\n this.end = end\n}\n\nlunr.QueryParseError.prototype = new Error\nlunr.QueryLexer = function (str) {\n this.lexemes = []\n this.str = str\n this.length = str.length\n this.pos = 0\n this.start = 0\n this.escapeCharPositions = []\n}\n\nlunr.QueryLexer.prototype.run = function () {\n var state = lunr.QueryLexer.lexText\n\n while (state) {\n state = state(this)\n }\n}\n\nlunr.QueryLexer.prototype.sliceString = function () {\n var subSlices = [],\n sliceStart = this.start,\n sliceEnd = this.pos\n\n for (var i = 0; i < this.escapeCharPositions.length; i++) {\n sliceEnd = this.escapeCharPositions[i]\n subSlices.push(this.str.slice(sliceStart, sliceEnd))\n sliceStart = sliceEnd + 1\n }\n\n subSlices.push(this.str.slice(sliceStart, this.pos))\n this.escapeCharPositions.length = 0\n\n return subSlices.join('')\n}\n\nlunr.QueryLexer.prototype.emit = function (type) {\n this.lexemes.push({\n type: type,\n str: this.sliceString(),\n start: this.start,\n end: this.pos\n })\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.escapeCharacter = function () {\n this.escapeCharPositions.push(this.pos - 1)\n this.pos += 1\n}\n\nlunr.QueryLexer.prototype.next = function () {\n if (this.pos >= this.length) {\n return lunr.QueryLexer.EOS\n }\n\n var char = this.str.charAt(this.pos)\n this.pos += 1\n return char\n}\n\nlunr.QueryLexer.prototype.width = function () {\n return this.pos - this.start\n}\n\nlunr.QueryLexer.prototype.ignore = function () {\n if (this.start == this.pos) {\n this.pos += 1\n }\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.backup = function () {\n this.pos -= 1\n}\n\nlunr.QueryLexer.prototype.acceptDigitRun = function () {\n var char, charCode\n\n do {\n char = this.next()\n charCode = char.charCodeAt(0)\n } while (charCode > 47 && charCode < 58)\n\n if (char != lunr.QueryLexer.EOS) {\n this.backup()\n }\n}\n\nlunr.QueryLexer.prototype.more = function () {\n return this.pos < this.length\n}\n\nlunr.QueryLexer.EOS = 'EOS'\nlunr.QueryLexer.FIELD = 'FIELD'\nlunr.QueryLexer.TERM = 'TERM'\nlunr.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE'\nlunr.QueryLexer.BOOST = 'BOOST'\nlunr.QueryLexer.PRESENCE = 'PRESENCE'\n\nlunr.QueryLexer.lexField = function (lexer) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.FIELD)\n lexer.ignore()\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexTerm = function (lexer) {\n if (lexer.width() > 1) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.TERM)\n }\n\n lexer.ignore()\n\n if (lexer.more()) {\n return lunr.QueryLexer.lexText\n }\n}\n\nlunr.QueryLexer.lexEditDistance = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.EDIT_DISTANCE)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexBoost = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.BOOST)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexEOS = function (lexer) {\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n}\n\n// This matches the separator used when tokenising fields\n// within a document. These should match otherwise it is\n// not possible to search for some tokens within a document.\n//\n// It is possible for the user to change the separator on the\n// tokenizer so it _might_ clash with any other of the special\n// characters already used within the search string, e.g. :.\n//\n// This means that it is possible to change the separator in\n// such a way that makes some words unsearchable using a search\n// string.\nlunr.QueryLexer.termSeparator = lunr.tokenizer.separator\n\nlunr.QueryLexer.lexText = function (lexer) {\n while (true) {\n var char = lexer.next()\n\n if (char == lunr.QueryLexer.EOS) {\n return lunr.QueryLexer.lexEOS\n }\n\n // Escape character is '\\'\n if (char.charCodeAt(0) == 92) {\n lexer.escapeCharacter()\n continue\n }\n\n if (char == \":\") {\n return lunr.QueryLexer.lexField\n }\n\n if (char == \"~\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexEditDistance\n }\n\n if (char == \"^\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexBoost\n }\n\n // \"+\" indicates term presence is required\n // checking for length to ensure that only\n // leading \"+\" are considered\n if (char == \"+\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n // \"-\" indicates term presence is prohibited\n // checking for length to ensure that only\n // leading \"-\" are considered\n if (char == \"-\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n if (char.match(lunr.QueryLexer.termSeparator)) {\n return lunr.QueryLexer.lexTerm\n }\n }\n}\n\nlunr.QueryParser = function (str, query) {\n this.lexer = new lunr.QueryLexer (str)\n this.query = query\n this.currentClause = {}\n this.lexemeIdx = 0\n}\n\nlunr.QueryParser.prototype.parse = function () {\n this.lexer.run()\n this.lexemes = this.lexer.lexemes\n\n var state = lunr.QueryParser.parseClause\n\n while (state) {\n state = state(this)\n }\n\n return this.query\n}\n\nlunr.QueryParser.prototype.peekLexeme = function () {\n return this.lexemes[this.lexemeIdx]\n}\n\nlunr.QueryParser.prototype.consumeLexeme = function () {\n var lexeme = this.peekLexeme()\n this.lexemeIdx += 1\n return lexeme\n}\n\nlunr.QueryParser.prototype.nextClause = function () {\n var completedClause = this.currentClause\n this.query.clause(completedClause)\n this.currentClause = {}\n}\n\nlunr.QueryParser.parseClause = function (parser) {\n var lexeme = parser.peekLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.type) {\n case lunr.QueryLexer.PRESENCE:\n return lunr.QueryParser.parsePresence\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expected either a field or a term, found \" + lexeme.type\n\n if (lexeme.str.length >= 1) {\n errorMessage += \" with value '\" + lexeme.str + \"'\"\n }\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n}\n\nlunr.QueryParser.parsePresence = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.str) {\n case \"-\":\n parser.currentClause.presence = lunr.Query.presence.PROHIBITED\n break\n case \"+\":\n parser.currentClause.presence = lunr.Query.presence.REQUIRED\n break\n default:\n var errorMessage = \"unrecognised presence operator'\" + lexeme.str + \"'\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term or field, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term or field, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseField = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n if (parser.query.allFields.indexOf(lexeme.str) == -1) {\n var possibleFields = parser.query.allFields.map(function (f) { return \"'\" + f + \"'\" }).join(', '),\n errorMessage = \"unrecognised field '\" + lexeme.str + \"', possible fields: \" + possibleFields\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.fields = [lexeme.str]\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseTerm = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n parser.currentClause.term = lexeme.str.toLowerCase()\n\n if (lexeme.str.indexOf(\"*\") != -1) {\n parser.currentClause.usePipeline = false\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseEditDistance = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var editDistance = parseInt(lexeme.str, 10)\n\n if (isNaN(editDistance)) {\n var errorMessage = \"edit distance must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.editDistance = editDistance\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseBoost = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var boost = parseInt(lexeme.str, 10)\n\n if (isNaN(boost)) {\n var errorMessage = \"boost must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.boost = boost\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\n /**\n * export the module via AMD, CommonJS or as a browser global\n * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js\n */\n ;(function (root, factory) {\n if (true) {\n // AMD. Register as an anonymous module.\n !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))\n } else {}\n }(this, function () {\n /**\n * Just return a value to define the module export.\n * This example returns an object, but the module\n * can return a function as the exported value.\n */\n return lunr\n }))\n})();\n\n\n//# sourceURL=webpack:///./node_modules/lunr/lunr.js?"); + +/***/ }), + +/***/ "./node_modules/tslib/tslib.es6.js": +/*!*****************************************!*\ + !*** ./node_modules/tslib/tslib.es6.js ***! + \*****************************************/ +/*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault, __classPrivateFieldGet, __classPrivateFieldSet */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__extends\", function() { return __extends; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__assign\", function() { return __assign; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__rest\", function() { return __rest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__decorate\", function() { return __decorate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__param\", function() { return __param; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__metadata\", function() { return __metadata; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__awaiter\", function() { return __awaiter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__generator\", function() { return __generator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__exportStar\", function() { return __exportStar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__values\", function() { return __values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__read\", function() { return __read; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__spread\", function() { return __spread; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__spreadArrays\", function() { return __spreadArrays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__await\", function() { return __await; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncGenerator\", function() { return __asyncGenerator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncDelegator\", function() { return __asyncDelegator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncValues\", function() { return __asyncValues; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__makeTemplateObject\", function() { return __makeTemplateObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__importStar\", function() { return __importStar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__importDefault\", function() { return __importDefault; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__classPrivateFieldGet\", function() { return __classPrivateFieldGet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__classPrivateFieldSet\", function() { return __classPrivateFieldSet; });\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nfunction __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nfunction __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nfunction __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nfunction __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nfunction __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nfunction __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nfunction __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nfunction __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nfunction __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n\n\n//# sourceURL=webpack:///./node_modules/tslib/tslib.es6.js?"); + +/***/ }), + +/***/ "./node_modules/webpack/buildin/global.js": +/*!***********************************!*\ + !*** (webpack)/buildin/global.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n//# sourceURL=webpack:///(webpack)/buildin/global.js?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/_/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/_/index.ts ***! + \***************************************************************/ +/*! exports provided: Search */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Search\", function() { return Search; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _document__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../document */ \"./src/assets/javascripts/integrations/search/document/index.ts\");\n/* harmony import */ var _highlighter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../highlighter */ \"./src/assets/javascripts/integrations/search/highlighter/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Class\n * ------------------------------------------------------------------------- */\n/**\n * Search\n *\n * Note that `lunr` is injected via Webpack, as it will otherwise also be\n * bundled in the application bundle.\n */\nvar Search = /** @class */ (function () {\n /**\n * Create the search integration\n *\n * @param data - Search index\n */\n function Search(_a) {\n var config = _a.config, docs = _a.docs, pipeline = _a.pipeline, index = _a.index;\n this.documents = Object(_document__WEBPACK_IMPORTED_MODULE_1__[\"setupSearchDocumentMap\"])(docs);\n this.highlight = Object(_highlighter__WEBPACK_IMPORTED_MODULE_2__[\"setupSearchHighlighter\"])(config);\n /* If no index was given, create it */\n if (typeof index === \"undefined\") {\n this.index = lunr(function () {\n var e_1, _a, _b, e_2, _c;\n pipeline = pipeline || [\"trimmer\", \"stopWordFilter\"];\n /* Set up pipeline according to configuration */\n this.pipeline.reset();\n try {\n for (var pipeline_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(pipeline), pipeline_1_1 = pipeline_1.next(); !pipeline_1_1.done; pipeline_1_1 = pipeline_1.next()) {\n var fn = pipeline_1_1.value;\n this.pipeline.add(lunr[fn]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (pipeline_1_1 && !pipeline_1_1.done && (_a = pipeline_1.return)) _a.call(pipeline_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n /* Set up alternate search languages */\n if (config.lang.length === 1 && config.lang[0] !== \"en\") {\n this.use(lunr[config.lang[0]]);\n }\n else if (config.lang.length > 1) {\n this.use((_b = lunr).multiLanguage.apply(_b, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(config.lang)));\n }\n /* Set up fields and reference */\n this.field(\"title\", { boost: 1000 });\n this.field(\"text\");\n this.ref(\"location\");\n try {\n /* Index documents */\n for (var docs_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(docs), docs_1_1 = docs_1.next(); !docs_1_1.done; docs_1_1 = docs_1.next()) {\n var doc = docs_1_1.value;\n this.add(doc);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (docs_1_1 && !docs_1_1.done && (_c = docs_1.return)) _c.call(docs_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n });\n /* Prebuilt or serialized index */\n }\n else {\n this.index = lunr.Index.load(typeof index === \"string\"\n ? JSON.parse(index)\n : index);\n }\n }\n /**\n * Search for matching documents\n *\n * The search index which MkDocs provides is divided up into articles, which\n * contain the whole content of the individual pages, and sections, which only\n * contain the contents of the subsections obtained by breaking the individual\n * pages up at `h1` ... `h6`. As there may be many sections on different pages\n * with identical titles (for example within this very project, e.g. \"Usage\"\n * or \"Installation\"), they need to be put into the context of the containing\n * page. For this reason, section results are grouped within their respective\n * articles which are the top-level results that are returned.\n *\n * @param value - Query value\n *\n * @return Search results\n */\n Search.prototype.query = function (value) {\n var _this = this;\n if (value) {\n try {\n /* Group sections by containing article */\n var groups = this.index.search(value)\n .reduce(function (results, result) {\n var document = _this.documents.get(result.ref);\n if (typeof document !== \"undefined\") {\n if (\"parent\" in document) {\n var ref = document.parent.location;\n results.set(ref, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(results.get(ref) || [], [result]));\n }\n else {\n var ref = document.location;\n results.set(ref, results.get(ref) || []);\n }\n }\n return results;\n }, new Map());\n /* Create highlighter for query */\n var fn_1 = this.highlight(value);\n /* Map groups to search documents */\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(groups).map(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), ref = _b[0], sections = _b[1];\n return ({\n article: fn_1(_this.documents.get(ref)),\n sections: sections.map(function (section) {\n return fn_1(_this.documents.get(section.ref));\n })\n });\n });\n /* Log errors to console (for now) */\n }\n catch (err) {\n // tslint:disable-next-line no-console\n console.warn(\"Invalid query: \" + value + \" \\u2013 see https://bit.ly/2s3ChXG\");\n }\n }\n /* Return nothing in case of error or empty query */\n return [];\n };\n return Search;\n}());\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/document/index.ts": +/*!**********************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/document/index.ts ***! + \**********************************************************************/ +/*! exports provided: setupSearchDocumentMap */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupSearchDocumentMap\", function() { return setupSearchDocumentMap; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var escape_html__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! escape-html */ \"./node_modules/escape-html/index.js\");\n/* harmony import */ var escape_html__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(escape_html__WEBPACK_IMPORTED_MODULE_1__);\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Create a search document mapping\n *\n * @param docs - Search index documents\n *\n * @return Search document map\n */\nfunction setupSearchDocumentMap(docs) {\n var e_1, _a;\n var documents = new Map();\n try {\n for (var docs_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(docs), docs_1_1 = docs_1.next(); !docs_1_1.done; docs_1_1 = docs_1.next()) {\n var doc = docs_1_1.value;\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(doc.location.split(\"#\"), 2), path = _b[0], hash = _b[1];\n /* Extract location and title */\n var location = doc.location;\n var title = doc.title;\n /* Escape and cleanup text */\n var text = escape_html__WEBPACK_IMPORTED_MODULE_1__(doc.text)\n .replace(/\\s+(?=[,.:;!?])/g, \"\")\n .replace(/\\s+/g, \" \");\n /* Handle section */\n if (hash) {\n var parent = documents.get(path);\n /* Ignore first section, override article */\n if (!parent.linked) {\n parent.title = doc.title;\n parent.text = text;\n parent.linked = true;\n /* Add subsequent section */\n }\n else {\n documents.set(location, {\n location: location,\n title: title,\n text: text,\n parent: parent\n });\n }\n /* Add article */\n }\n else {\n documents.set(location, {\n location: location,\n title: title,\n text: text,\n linked: false\n });\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (docs_1_1 && !docs_1_1.done && (_a = docs_1.return)) _a.call(docs_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return documents;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/document/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/highlighter/index.ts": +/*!*************************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/highlighter/index.ts ***! + \*************************************************************************/ +/*! exports provided: setupSearchHighlighter */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupSearchHighlighter\", function() { return setupSearchHighlighter; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Create a search highlighter\n *\n * @param config - Search index configuration\n *\n * @return Search highlight factory function\n */\nfunction setupSearchHighlighter(config) {\n var separator = new RegExp(config.separator, \"img\");\n var highlight = function (_, data, term) {\n return data + \"\" + term + \"\";\n };\n /* Return factory function */\n return function (value) {\n value = value\n .replace(/[\\s*+-:~^]+/g, \" \")\n .trim();\n /* Create search term match expression */\n var match = new RegExp(\"(^|\" + config.separator + \")(\" + value\n .replace(/[|\\\\{}()[\\]^$+*?.-]/g, \"\\\\$&\")\n .replace(separator, \"|\") + \")\", \"img\");\n /* Highlight document */\n return function (document) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({}, document), { title: document.title.replace(match, highlight), text: document.text.replace(match, highlight) })); };\n };\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/highlighter/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/worker/main/index.ts": +/*!*************************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/worker/main/index.ts ***! + \*************************************************************************/ +/*! exports provided: handler */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"handler\", function() { return handler; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var expose_loader_lunr_lunr__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! expose-loader?lunr!lunr */ \"./node_modules/expose-loader/index.js?lunr!./node_modules/lunr/lunr.js-exposed\");\n/* harmony import */ var expose_loader_lunr_lunr__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(expose_loader_lunr_lunr__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_ */ \"./src/assets/javascripts/integrations/search/_/index.ts\");\n/* harmony import */ var _message__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../message */ \"./src/assets/javascripts/integrations/search/worker/message/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n/**\n * Search\n */\nvar search;\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n/**\n * Set up multi-language support through `lunr-languages`\n *\n * This function will automatically import the stemmers necessary to process\n * the languages which were given through the search index configuration.\n *\n * @param config - Search index configuration\n */\nfunction setupLunrLanguages(config) {\n var e_1, _a;\n var base = \"../lunr\";\n /* Add scripts for languages */\n var scripts = [];\n try {\n for (var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(config.lang), _c = _b.next(); !_c.done; _c = _b.next()) {\n var lang = _c.value;\n if (lang === \"ja\")\n scripts.push(base + \"/tinyseg.min.js\");\n if (lang !== \"en\")\n scripts.push(base + \"/min/lunr.\" + lang + \".min.js\");\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n /* Add multi-language support */\n if (config.lang.length > 1)\n scripts.push(base + \"/min/lunr.multi.min.js\");\n /* Load scripts synchronously */\n if (scripts.length)\n importScripts.apply(void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])([base + \"/min/lunr.stemmer.support.min.js\"], scripts));\n}\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Message handler\n *\n * @param message - Source message\n *\n * @return Target message\n */\nfunction handler(message) {\n switch (message.type) {\n /* Search setup message */\n case _message__WEBPACK_IMPORTED_MODULE_3__[\"SearchMessageType\"].SETUP:\n setupLunrLanguages(message.data.config);\n search = new ___WEBPACK_IMPORTED_MODULE_2__[\"Search\"](message.data);\n return {\n type: _message__WEBPACK_IMPORTED_MODULE_3__[\"SearchMessageType\"].READY\n };\n /* Search query message */\n case _message__WEBPACK_IMPORTED_MODULE_3__[\"SearchMessageType\"].QUERY:\n return {\n type: _message__WEBPACK_IMPORTED_MODULE_3__[\"SearchMessageType\"].RESULT,\n data: search ? search.query(message.data) : []\n };\n /* All other messages */\n default:\n throw new TypeError(\"Invalid message type\");\n }\n}\n/* ----------------------------------------------------------------------------\n * Worker\n * ------------------------------------------------------------------------- */\naddEventListener(\"message\", function (ev) {\n postMessage(handler(ev.data));\n});\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/worker/main/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/worker/message/index.ts": +/*!****************************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/worker/message/index.ts ***! + \****************************************************************************/ +/*! exports provided: SearchMessageType, isSearchSetupMessage, isSearchReadyMessage, isSearchQueryMessage, isSearchResultMessage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SearchMessageType\", function() { return SearchMessageType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSearchSetupMessage\", function() { return isSearchSetupMessage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSearchReadyMessage\", function() { return isSearchReadyMessage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSearchQueryMessage\", function() { return isSearchQueryMessage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSearchResultMessage\", function() { return isSearchResultMessage; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n/**\n * Search message type\n */\nvar SearchMessageType;\n(function (SearchMessageType) {\n SearchMessageType[SearchMessageType[\"SETUP\"] = 0] = \"SETUP\";\n SearchMessageType[SearchMessageType[\"READY\"] = 1] = \"READY\";\n SearchMessageType[SearchMessageType[\"QUERY\"] = 2] = \"QUERY\";\n SearchMessageType[SearchMessageType[\"RESULT\"] = 3] = \"RESULT\"; /* Search results */\n})(SearchMessageType || (SearchMessageType = {}));\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Type guard for search setup messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nfunction isSearchSetupMessage(message) {\n return message.type === SearchMessageType.SETUP;\n}\n/**\n * Type guard for search ready messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nfunction isSearchReadyMessage(message) {\n return message.type === SearchMessageType.READY;\n}\n/**\n * Type guard for search query messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nfunction isSearchQueryMessage(message) {\n return message.type === SearchMessageType.QUERY;\n}\n/**\n * Type guard for search result messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nfunction isSearchResultMessage(message) {\n return message.type === SearchMessageType.RESULT;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/worker/message/index.ts?"); + +/***/ }) + +/******/ }); \ No newline at end of file diff --git a/docs/assets/javascripts/workers/search.22074ed6.min.js b/docs/assets/javascripts/workers/search.22074ed6.min.js new file mode 100644 index 00000000..1134cf8b --- /dev/null +++ b/docs/assets/javascripts/workers/search.22074ed6.min.js @@ -0,0 +1,48 @@ +(()=>{var de=Object.create;var B=Object.defineProperty;var ge=Object.getOwnPropertyDescriptor;var ye=Object.getOwnPropertyNames,Y=Object.getOwnPropertySymbols,me=Object.getPrototypeOf,G=Object.prototype.hasOwnProperty,ve=Object.prototype.propertyIsEnumerable;var J=(t,e,r)=>e in t?B(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,X=(t,e)=>{for(var r in e||(e={}))G.call(e,r)&&J(t,r,e[r]);if(Y)for(var r of Y(e))ve.call(e,r)&&J(t,r,e[r]);return t};var xe=t=>B(t,"__esModule",{value:!0});var Z=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Se=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of ye(e))!G.call(t,i)&&(r||i!=="default")&&B(t,i,{get:()=>e[i],enumerable:!(n=ge(e,i))||n.enumerable});return t},U=(t,e)=>Se(xe(B(t!=null?de(me(t)):{},"default",!e&&t&&t.__esModule?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t);var z=(t,e,r)=>new Promise((n,i)=>{var s=u=>{try{a(r.next(u))}catch(c){i(c)}},o=u=>{try{a(r.throw(u))}catch(c){i(c)}},a=u=>u.done?n(u.value):Promise.resolve(u.value).then(s,o);a((r=r.apply(t,e)).next())});var te=Z((K,ee)=>{/** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale + * @license MIT + */(function(){var t=function(e){var r=new t.Builder;return r.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),r.searchPipeline.add(t.stemmer),e.call(r,r),r.build()};t.version="2.3.9";/*! + * lunr.utils + * Copyright (C) 2020 Oliver Nightingale + */t.utils={},t.utils.warn=function(e){return function(r){e.console&&console.warn&&console.warn(r)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var r=Object.create(null),n=Object.keys(e),i=0;i0){var h=t.utils.clone(r)||{};h.position=[a,c],h.index=s.length,s.push(new t.Token(n.slice(a,o),h))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;/*! + * lunr.Pipeline + * Copyright (C) 2020 Oliver Nightingale + */t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,r){r in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+r),e.label=r,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var r=e.label&&e.label in this.registeredFunctions;r||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. +`,e)},t.Pipeline.load=function(e){var r=new t.Pipeline;return e.forEach(function(n){var i=t.Pipeline.registeredFunctions[n];if(i)r.add(i);else throw new Error("Cannot load unregistered function: "+n)}),r},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(r){t.Pipeline.warnIfFunctionNotRegistered(r),this._stack.push(r)},this)},t.Pipeline.prototype.after=function(e,r){t.Pipeline.warnIfFunctionNotRegistered(r);var n=this._stack.indexOf(e);if(n==-1)throw new Error("Cannot find existingFn");n=n+1,this._stack.splice(n,0,r)},t.Pipeline.prototype.before=function(e,r){t.Pipeline.warnIfFunctionNotRegistered(r);var n=this._stack.indexOf(e);if(n==-1)throw new Error("Cannot find existingFn");this._stack.splice(n,0,r)},t.Pipeline.prototype.remove=function(e){var r=this._stack.indexOf(e);r!=-1&&this._stack.splice(r,1)},t.Pipeline.prototype.run=function(e){for(var r=this._stack.length,n=0;n1&&(oe&&(n=s),o!=e);)i=n-r,s=r+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ou?h+=2:a==u&&(r+=n[c+1]*i[h+1],c+=2,h+=2);return r},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),r=1,n=0;r0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}if(s.str.length==0&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}s.str.length==1&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var h=s.str.charAt(0),y=s.str.charAt(1),g;y in s.node.edges?g=s.node.edges[y]:(g=new t.TokenSet,s.node.edges[y]=g),s.str.length==1&&(g.final=!0),i.push({node:g,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return n},t.TokenSet.fromString=function(e){for(var r=new t.TokenSet,n=r,i=0,s=e.length;i=e;r--){var n=this.uncheckedNodes[r],i=n.child.toString();i in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[i]:(n.child._str=i,this.minimizedNodes[i]=n.child),this.uncheckedNodes.pop()}};/*! + * lunr.Index + * Copyright (C) 2020 Oliver Nightingale + */t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(r){var n=new t.QueryParser(e,r);n.parse()})},t.Index.prototype.query=function(e){for(var r=new t.Query(this.fields),n=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,r){var n=e[this._ref],i=Object.keys(this._fields);this._documents[n]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,r;do e=this.next(),r=e.charCodeAt(0);while(r>47&&r<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var r=e.next();if(r==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(r.charCodeAt(0)==92){e.escapeCharacter();continue}if(r==":")return t.QueryLexer.lexField;if(r=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(r=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(r=="+"&&e.width()===1||r=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(r.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,r){this.lexer=new t.QueryLexer(e),this.query=r,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var r=e.peekLexeme();if(r!=null)switch(r.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(n+=" with value '"+r.str+"'"),new t.QueryParseError(n,r.start,r.end)}},t.QueryParser.parsePresence=function(e){var r=e.consumeLexeme();if(r!=null){switch(r.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+r.str+"'";throw new t.QueryParseError(n,r.start,r.end)}var i=e.peekLexeme();if(i==null){var n="expecting term or field, found nothing";throw new t.QueryParseError(n,r.start,r.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var n="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(n,i.start,i.end)}}},t.QueryParser.parseField=function(e){var r=e.consumeLexeme();if(r!=null){if(e.query.allFields.indexOf(r.str)==-1){var n=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+r.str+"', possible fields: "+n;throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.fields=[r.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,r.start,r.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var r=e.consumeLexeme();if(r!=null){e.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(n==null){e.nextClause();return}switch(n.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+n.type+"'";throw new t.QueryParseError(i,n.start,n.end)}}},t.QueryParser.parseEditDistance=function(e){var r=e.consumeLexeme();if(r!=null){var n=parseInt(r.str,10);if(isNaN(n)){var i="edit distance must be numeric";throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.editDistance=n;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var r=e.consumeLexeme();if(r!=null){var n=parseInt(r.str,10);if(isNaN(n)){var i="boost must be numeric";throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.boost=n;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,r){typeof define=="function"&&define.amd?define(r):typeof K=="object"?ee.exports=r():e.lunr=r()}(this,function(){return t})})()});var W=Z((Te,re)=>{"use strict";/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var Qe=/["'&<>]/;re.exports=be;function be(t){var e=""+t,r=Qe.exec(e);if(!r)return e;var n,i="",s=0,o=0;for(s=r.index;s=0;r--){let n=t[r];typeof n!="object"?n=document.createTextNode(n):n.parentNode&&n.parentNode.removeChild(n),r?e.insertBefore(this.previousSibling,n):e.replaceChild(n,this)}}}));var ne=U(W());function ie(t){let e=new Map,r=new Set;for(let n of t){let[i,s]=n.location.split("#"),o=n.location,a=n.title,u=(0,ne.default)(n.text).replace(/\s+(?=[,.:;!?])/g,"").replace(/\s+/g," ");if(s){let c=e.get(i);r.has(c)?e.set(o,{location:o,title:a,text:u,parent:c}):(c.title=n.title,c.text=u,r.add(c))}else e.set(o,{location:o,title:a,text:u})}return e}var se=U(W());function oe(t,e){let r=new RegExp(t.separator,"img"),n=(i,s,o)=>`${s}${o}`;return i=>{i=i.replace(/[\s*+\-:~^]+/g," ").trim();let s=new RegExp(`(^|${t.separator})(${i.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(r,"|")})`,"img");return o=>(e?(0,se.default)(o):o).replace(s,n).replace(/<\/mark>(\s+)]*>/img,"$1")}}function ae(t){let e=new lunr.Query(["title","text"]);return new lunr.QueryParser(t,e).parse(),e.clauses}function ue(t,e){var i;let r=new Set(t),n={};for(let s=0;s!n.has(i)))]}var H=class{constructor({config:e,docs:r,options:n}){this.options=n,this.documents=ie(r),this.highlight=oe(e,!1),lunr.tokenizer.separator=new RegExp(e.separator),this.index=lunr(function(){e.lang.length===1&&e.lang[0]!=="en"?this.use(lunr[e.lang[0]]):e.lang.length>1&&this.use(lunr.multiLanguage(...e.lang));let i=Le(["trimmer","stopWordFilter","stemmer"],n.pipeline);for(let s of e.lang.map(o=>o==="en"?lunr:lunr[o]))for(let o of i)this.pipeline.remove(s[o]),this.searchPipeline.remove(s[o]);this.ref("location"),this.field("title",{boost:1e3}),this.field("text");for(let s of r)this.add(s)})}search(e){if(e)try{let r=this.highlight(e),n=ae(e).filter(o=>o.presence!==lunr.Query.presence.PROHIBITED),i=this.index.search(`${e}*`).reduce((o,{ref:a,score:u,matchData:c})=>{let h=this.documents.get(a);if(typeof h!="undefined"){let{location:y,title:g,text:b,parent:v}=h,Q=ue(n,Object.keys(c.metadata)),p=+!v+ +Object.values(Q).every(d=>d);o.push({location:y,title:r(g),text:r(b),score:u*(1+p),terms:Q})}return o},[]).sort((o,a)=>a.score-o.score).reduce((o,a)=>{let u=this.documents.get(a.location);if(typeof u!="undefined"){let c="parent"in u?u.parent.location:u.location;o.set(c,[...o.get(c)||[],a])}return o},new Map),s;if(this.options.suggestions){let o=this.index.query(a=>{for(let u of n)a.term(u.term,{fields:["title"],presence:lunr.Query.presence.REQUIRED,wildcard:lunr.Query.wildcard.TRAILING})});s=o.length?Object.keys(o[0].matchData.metadata):[]}return X({items:[...i.values()]},typeof s!="undefined"&&{suggestions:s})}catch(r){console.warn(`Invalid query: ${e} \u2013 see https://bit.ly/2s3ChXG`)}return{items:[]}}};var q;function we(t){return z(this,null,function*(){let e="../lunr";if(typeof parent!="undefined"&&"IFrameWorker"in parent){let n=document.querySelector("script[src]"),[i]=n.src.split("/worker");e=e.replace("..",i)}let r=[];for(let n of t.lang){switch(n){case"ja":r.push(`${e}/tinyseg.js`);break;case"hi":case"th":r.push(`${e}/wordcut.js`);break}n!=="en"&&r.push(`${e}/min/lunr.${n}.min.js`)}t.lang.length>1&&r.push(`${e}/min/lunr.multi.min.js`),r.length&&(yield importScripts(`${e}/min/lunr.stemmer.support.min.js`,...r))})}function Ee(t){return z(this,null,function*(){switch(t.type){case 0:return yield we(t.data.config),q=new H(t.data),{type:1};case 2:return{type:3,data:q?q.search(t.data):{items:[]}};default:throw new TypeError("Invalid message type")}})}self.lunr=ce.default;addEventListener("message",t=>z(void 0,null,function*(){postMessage(yield Ee(t.data))}));})(); +//# sourceMappingURL=search.22074ed6.min.js.map + diff --git a/docs/assets/javascripts/workers/search.22074ed6.min.js.map b/docs/assets/javascripts/workers/search.22074ed6.min.js.map new file mode 100644 index 00000000..0c9df50f --- /dev/null +++ b/docs/assets/javascripts/workers/search.22074ed6.min.js.map @@ -0,0 +1,8 @@ +{ + "version": 3, + "sources": ["node_modules/lunr/lunr.js", "node_modules/escape-html/index.js", "src/assets/javascripts/integrations/search/worker/main/index.ts", "src/assets/javascripts/polyfills/index.ts", "src/assets/javascripts/integrations/search/document/index.ts", "src/assets/javascripts/integrations/search/highlighter/index.ts", "src/assets/javascripts/integrations/search/query/_/index.ts", "src/assets/javascripts/integrations/search/_/index.ts"], + "sourceRoot": "../../../..", + "sourcesContent": ["/**\n * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9\n * Copyright (C) 2020 Oliver Nightingale\n * @license MIT\n */\n\n;(function(){\n\n/**\n * A convenience function for configuring and constructing\n * a new lunr Index.\n *\n * A lunr.Builder instance is created and the pipeline setup\n * with a trimmer, stop word filter and stemmer.\n *\n * This builder object is yielded to the configuration function\n * that is passed as a parameter, allowing the list of fields\n * and other builder parameters to be customised.\n *\n * All documents _must_ be added within the passed config function.\n *\n * @example\n * var idx = lunr(function () {\n * this.field('title')\n * this.field('body')\n * this.ref('id')\n *\n * documents.forEach(function (doc) {\n * this.add(doc)\n * }, this)\n * })\n *\n * @see {@link lunr.Builder}\n * @see {@link lunr.Pipeline}\n * @see {@link lunr.trimmer}\n * @see {@link lunr.stopWordFilter}\n * @see {@link lunr.stemmer}\n * @namespace {function} lunr\n */\nvar lunr = function (config) {\n var builder = new lunr.Builder\n\n builder.pipeline.add(\n lunr.trimmer,\n lunr.stopWordFilter,\n lunr.stemmer\n )\n\n builder.searchPipeline.add(\n lunr.stemmer\n )\n\n config.call(builder, builder)\n return builder.build()\n}\n\nlunr.version = \"2.3.9\"\n/*!\n * lunr.utils\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A namespace containing utils for the rest of the lunr library\n * @namespace lunr.utils\n */\nlunr.utils = {}\n\n/**\n * Print a warning message to the console.\n *\n * @param {String} message The message to be printed.\n * @memberOf lunr.utils\n * @function\n */\nlunr.utils.warn = (function (global) {\n /* eslint-disable no-console */\n return function (message) {\n if (global.console && console.warn) {\n console.warn(message)\n }\n }\n /* eslint-enable no-console */\n})(this)\n\n/**\n * Convert an object to a string.\n *\n * In the case of `null` and `undefined` the function returns\n * the empty string, in all other cases the result of calling\n * `toString` on the passed object is returned.\n *\n * @param {Any} obj The object to convert to a string.\n * @return {String} string representation of the passed object.\n * @memberOf lunr.utils\n */\nlunr.utils.asString = function (obj) {\n if (obj === void 0 || obj === null) {\n return \"\"\n } else {\n return obj.toString()\n }\n}\n\n/**\n * Clones an object.\n *\n * Will create a copy of an existing object such that any mutations\n * on the copy cannot affect the original.\n *\n * Only shallow objects are supported, passing a nested object to this\n * function will cause a TypeError.\n *\n * Objects with primitives, and arrays of primitives are supported.\n *\n * @param {Object} obj The object to clone.\n * @return {Object} a clone of the passed object.\n * @throws {TypeError} when a nested object is passed.\n * @memberOf Utils\n */\nlunr.utils.clone = function (obj) {\n if (obj === null || obj === undefined) {\n return obj\n }\n\n var clone = Object.create(null),\n keys = Object.keys(obj)\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i],\n val = obj[key]\n\n if (Array.isArray(val)) {\n clone[key] = val.slice()\n continue\n }\n\n if (typeof val === 'string' ||\n typeof val === 'number' ||\n typeof val === 'boolean') {\n clone[key] = val\n continue\n }\n\n throw new TypeError(\"clone is not deep and does not support nested objects\")\n }\n\n return clone\n}\nlunr.FieldRef = function (docRef, fieldName, stringValue) {\n this.docRef = docRef\n this.fieldName = fieldName\n this._stringValue = stringValue\n}\n\nlunr.FieldRef.joiner = \"/\"\n\nlunr.FieldRef.fromString = function (s) {\n var n = s.indexOf(lunr.FieldRef.joiner)\n\n if (n === -1) {\n throw \"malformed field ref string\"\n }\n\n var fieldRef = s.slice(0, n),\n docRef = s.slice(n + 1)\n\n return new lunr.FieldRef (docRef, fieldRef, s)\n}\n\nlunr.FieldRef.prototype.toString = function () {\n if (this._stringValue == undefined) {\n this._stringValue = this.fieldName + lunr.FieldRef.joiner + this.docRef\n }\n\n return this._stringValue\n}\n/*!\n * lunr.Set\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A lunr set.\n *\n * @constructor\n */\nlunr.Set = function (elements) {\n this.elements = Object.create(null)\n\n if (elements) {\n this.length = elements.length\n\n for (var i = 0; i < this.length; i++) {\n this.elements[elements[i]] = true\n }\n } else {\n this.length = 0\n }\n}\n\n/**\n * A complete set that contains all elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.complete = {\n intersect: function (other) {\n return other\n },\n\n union: function () {\n return this\n },\n\n contains: function () {\n return true\n }\n}\n\n/**\n * An empty set that contains no elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.empty = {\n intersect: function () {\n return this\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return false\n }\n}\n\n/**\n * Returns true if this set contains the specified object.\n *\n * @param {object} object - Object whose presence in this set is to be tested.\n * @returns {boolean} - True if this set contains the specified object.\n */\nlunr.Set.prototype.contains = function (object) {\n return !!this.elements[object]\n}\n\n/**\n * Returns a new set containing only the elements that are present in both\n * this set and the specified set.\n *\n * @param {lunr.Set} other - set to intersect with this set.\n * @returns {lunr.Set} a new set that is the intersection of this and the specified set.\n */\n\nlunr.Set.prototype.intersect = function (other) {\n var a, b, elements, intersection = []\n\n if (other === lunr.Set.complete) {\n return this\n }\n\n if (other === lunr.Set.empty) {\n return other\n }\n\n if (this.length < other.length) {\n a = this\n b = other\n } else {\n a = other\n b = this\n }\n\n elements = Object.keys(a.elements)\n\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i]\n if (element in b.elements) {\n intersection.push(element)\n }\n }\n\n return new lunr.Set (intersection)\n}\n\n/**\n * Returns a new set combining the elements of this and the specified set.\n *\n * @param {lunr.Set} other - set to union with this set.\n * @return {lunr.Set} a new set that is the union of this and the specified set.\n */\n\nlunr.Set.prototype.union = function (other) {\n if (other === lunr.Set.complete) {\n return lunr.Set.complete\n }\n\n if (other === lunr.Set.empty) {\n return this\n }\n\n return new lunr.Set(Object.keys(this.elements).concat(Object.keys(other.elements)))\n}\n/**\n * A function to calculate the inverse document frequency for\n * a posting. This is shared between the builder and the index\n *\n * @private\n * @param {object} posting - The posting for a given term\n * @param {number} documentCount - The total number of documents.\n */\nlunr.idf = function (posting, documentCount) {\n var documentsWithTerm = 0\n\n for (var fieldName in posting) {\n if (fieldName == '_index') continue // Ignore the term index, its not a field\n documentsWithTerm += Object.keys(posting[fieldName]).length\n }\n\n var x = (documentCount - documentsWithTerm + 0.5) / (documentsWithTerm + 0.5)\n\n return Math.log(1 + Math.abs(x))\n}\n\n/**\n * A token wraps a string representation of a token\n * as it is passed through the text processing pipeline.\n *\n * @constructor\n * @param {string} [str=''] - The string token being wrapped.\n * @param {object} [metadata={}] - Metadata associated with this token.\n */\nlunr.Token = function (str, metadata) {\n this.str = str || \"\"\n this.metadata = metadata || {}\n}\n\n/**\n * Returns the token string that is being wrapped by this object.\n *\n * @returns {string}\n */\nlunr.Token.prototype.toString = function () {\n return this.str\n}\n\n/**\n * A token update function is used when updating or optionally\n * when cloning a token.\n *\n * @callback lunr.Token~updateFunction\n * @param {string} str - The string representation of the token.\n * @param {Object} metadata - All metadata associated with this token.\n */\n\n/**\n * Applies the given function to the wrapped string token.\n *\n * @example\n * token.update(function (str, metadata) {\n * return str.toUpperCase()\n * })\n *\n * @param {lunr.Token~updateFunction} fn - A function to apply to the token string.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.update = function (fn) {\n this.str = fn(this.str, this.metadata)\n return this\n}\n\n/**\n * Creates a clone of this token. Optionally a function can be\n * applied to the cloned token.\n *\n * @param {lunr.Token~updateFunction} [fn] - An optional function to apply to the cloned token.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.clone = function (fn) {\n fn = fn || function (s) { return s }\n return new lunr.Token (fn(this.str, this.metadata), this.metadata)\n}\n/*!\n * lunr.tokenizer\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A function for splitting a string into tokens ready to be inserted into\n * the search index. Uses `lunr.tokenizer.separator` to split strings, change\n * the value of this property to change how strings are split into tokens.\n *\n * This tokenizer will convert its parameter to a string by calling `toString` and\n * then will split this string on the character in `lunr.tokenizer.separator`.\n * Arrays will have their elements converted to strings and wrapped in a lunr.Token.\n *\n * Optional metadata can be passed to the tokenizer, this metadata will be cloned and\n * added as metadata to every token that is created from the object to be tokenized.\n *\n * @static\n * @param {?(string|object|object[])} obj - The object to convert into tokens\n * @param {?object} metadata - Optional metadata to associate with every token\n * @returns {lunr.Token[]}\n * @see {@link lunr.Pipeline}\n */\nlunr.tokenizer = function (obj, metadata) {\n if (obj == null || obj == undefined) {\n return []\n }\n\n if (Array.isArray(obj)) {\n return obj.map(function (t) {\n return new lunr.Token(\n lunr.utils.asString(t).toLowerCase(),\n lunr.utils.clone(metadata)\n )\n })\n }\n\n var str = obj.toString().toLowerCase(),\n len = str.length,\n tokens = []\n\n for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {\n var char = str.charAt(sliceEnd),\n sliceLength = sliceEnd - sliceStart\n\n if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) {\n\n if (sliceLength > 0) {\n var tokenMetadata = lunr.utils.clone(metadata) || {}\n tokenMetadata[\"position\"] = [sliceStart, sliceLength]\n tokenMetadata[\"index\"] = tokens.length\n\n tokens.push(\n new lunr.Token (\n str.slice(sliceStart, sliceEnd),\n tokenMetadata\n )\n )\n }\n\n sliceStart = sliceEnd + 1\n }\n\n }\n\n return tokens\n}\n\n/**\n * The separator used to split a string into tokens. Override this property to change the behaviour of\n * `lunr.tokenizer` behaviour when tokenizing strings. By default this splits on whitespace and hyphens.\n *\n * @static\n * @see lunr.tokenizer\n */\nlunr.tokenizer.separator = /[\\s\\-]+/\n/*!\n * lunr.Pipeline\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * lunr.Pipelines maintain an ordered list of functions to be applied to all\n * tokens in documents entering the search index and queries being ran against\n * the index.\n *\n * An instance of lunr.Index created with the lunr shortcut will contain a\n * pipeline with a stop word filter and an English language stemmer. Extra\n * functions can be added before or after either of these functions or these\n * default functions can be removed.\n *\n * When run the pipeline will call each function in turn, passing a token, the\n * index of that token in the original list of all tokens and finally a list of\n * all the original tokens.\n *\n * The output of functions in the pipeline will be passed to the next function\n * in the pipeline. To exclude a token from entering the index the function\n * should return undefined, the rest of the pipeline will not be called with\n * this token.\n *\n * For serialisation of pipelines to work, all functions used in an instance of\n * a pipeline should be registered with lunr.Pipeline. Registered functions can\n * then be loaded. If trying to load a serialised pipeline that uses functions\n * that are not registered an error will be thrown.\n *\n * If not planning on serialising the pipeline then registering pipeline functions\n * is not necessary.\n *\n * @constructor\n */\nlunr.Pipeline = function () {\n this._stack = []\n}\n\nlunr.Pipeline.registeredFunctions = Object.create(null)\n\n/**\n * A pipeline function maps lunr.Token to lunr.Token. A lunr.Token contains the token\n * string as well as all known metadata. A pipeline function can mutate the token string\n * or mutate (or add) metadata for a given token.\n *\n * A pipeline function can indicate that the passed token should be discarded by returning\n * null, undefined or an empty string. This token will not be passed to any downstream pipeline\n * functions and will not be added to the index.\n *\n * Multiple tokens can be returned by returning an array of tokens. Each token will be passed\n * to any downstream pipeline functions and all will returned tokens will be added to the index.\n *\n * Any number of pipeline functions may be chained together using a lunr.Pipeline.\n *\n * @interface lunr.PipelineFunction\n * @param {lunr.Token} token - A token from the document being processed.\n * @param {number} i - The index of this token in the complete list of tokens for this document/field.\n * @param {lunr.Token[]} tokens - All tokens for this document/field.\n * @returns {(?lunr.Token|lunr.Token[])}\n */\n\n/**\n * Register a function with the pipeline.\n *\n * Functions that are used in the pipeline should be registered if the pipeline\n * needs to be serialised, or a serialised pipeline needs to be loaded.\n *\n * Registering a function does not add it to a pipeline, functions must still be\n * added to instances of the pipeline for them to be used when running a pipeline.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @param {String} label - The label to register this function with\n */\nlunr.Pipeline.registerFunction = function (fn, label) {\n if (label in this.registeredFunctions) {\n lunr.utils.warn('Overwriting existing registered function: ' + label)\n }\n\n fn.label = label\n lunr.Pipeline.registeredFunctions[fn.label] = fn\n}\n\n/**\n * Warns if the function is not registered as a Pipeline function.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @private\n */\nlunr.Pipeline.warnIfFunctionNotRegistered = function (fn) {\n var isRegistered = fn.label && (fn.label in this.registeredFunctions)\n\n if (!isRegistered) {\n lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\\n', fn)\n }\n}\n\n/**\n * Loads a previously serialised pipeline.\n *\n * All functions to be loaded must already be registered with lunr.Pipeline.\n * If any function from the serialised data has not been registered then an\n * error will be thrown.\n *\n * @param {Object} serialised - The serialised pipeline to load.\n * @returns {lunr.Pipeline}\n */\nlunr.Pipeline.load = function (serialised) {\n var pipeline = new lunr.Pipeline\n\n serialised.forEach(function (fnName) {\n var fn = lunr.Pipeline.registeredFunctions[fnName]\n\n if (fn) {\n pipeline.add(fn)\n } else {\n throw new Error('Cannot load unregistered function: ' + fnName)\n }\n })\n\n return pipeline\n}\n\n/**\n * Adds new functions to the end of the pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction[]} functions - Any number of functions to add to the pipeline.\n */\nlunr.Pipeline.prototype.add = function () {\n var fns = Array.prototype.slice.call(arguments)\n\n fns.forEach(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n this._stack.push(fn)\n }, this)\n}\n\n/**\n * Adds a single function after a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.after = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n pos = pos + 1\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Adds a single function before a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.before = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Removes a function from the pipeline.\n *\n * @param {lunr.PipelineFunction} fn The function to remove from the pipeline.\n */\nlunr.Pipeline.prototype.remove = function (fn) {\n var pos = this._stack.indexOf(fn)\n if (pos == -1) {\n return\n }\n\n this._stack.splice(pos, 1)\n}\n\n/**\n * Runs the current list of functions that make up the pipeline against the\n * passed tokens.\n *\n * @param {Array} tokens The tokens to run through the pipeline.\n * @returns {Array}\n */\nlunr.Pipeline.prototype.run = function (tokens) {\n var stackLength = this._stack.length\n\n for (var i = 0; i < stackLength; i++) {\n var fn = this._stack[i]\n var memo = []\n\n for (var j = 0; j < tokens.length; j++) {\n var result = fn(tokens[j], j, tokens)\n\n if (result === null || result === void 0 || result === '') continue\n\n if (Array.isArray(result)) {\n for (var k = 0; k < result.length; k++) {\n memo.push(result[k])\n }\n } else {\n memo.push(result)\n }\n }\n\n tokens = memo\n }\n\n return tokens\n}\n\n/**\n * Convenience method for passing a string through a pipeline and getting\n * strings out. This method takes care of wrapping the passed string in a\n * token and mapping the resulting tokens back to strings.\n *\n * @param {string} str - The string to pass through the pipeline.\n * @param {?object} metadata - Optional metadata to associate with the token\n * passed to the pipeline.\n * @returns {string[]}\n */\nlunr.Pipeline.prototype.runString = function (str, metadata) {\n var token = new lunr.Token (str, metadata)\n\n return this.run([token]).map(function (t) {\n return t.toString()\n })\n}\n\n/**\n * Resets the pipeline by removing any existing processors.\n *\n */\nlunr.Pipeline.prototype.reset = function () {\n this._stack = []\n}\n\n/**\n * Returns a representation of the pipeline ready for serialisation.\n *\n * Logs a warning if the function has not been registered.\n *\n * @returns {Array}\n */\nlunr.Pipeline.prototype.toJSON = function () {\n return this._stack.map(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n\n return fn.label\n })\n}\n/*!\n * lunr.Vector\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A vector is used to construct the vector space of documents and queries. These\n * vectors support operations to determine the similarity between two documents or\n * a document and a query.\n *\n * Normally no parameters are required for initializing a vector, but in the case of\n * loading a previously dumped vector the raw elements can be provided to the constructor.\n *\n * For performance reasons vectors are implemented with a flat array, where an elements\n * index is immediately followed by its value. E.g. [index, value, index, value]. This\n * allows the underlying array to be as sparse as possible and still offer decent\n * performance when being used for vector calculations.\n *\n * @constructor\n * @param {Number[]} [elements] - The flat list of element index and element value pairs.\n */\nlunr.Vector = function (elements) {\n this._magnitude = 0\n this.elements = elements || []\n}\n\n\n/**\n * Calculates the position within the vector to insert a given index.\n *\n * This is used internally by insert and upsert. If there are duplicate indexes then\n * the position is returned as if the value for that index were to be updated, but it\n * is the callers responsibility to check whether there is a duplicate at that index\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @returns {Number}\n */\nlunr.Vector.prototype.positionForIndex = function (index) {\n // For an empty vector the tuple can be inserted at the beginning\n if (this.elements.length == 0) {\n return 0\n }\n\n var start = 0,\n end = this.elements.length / 2,\n sliceLength = end - start,\n pivotPoint = Math.floor(sliceLength / 2),\n pivotIndex = this.elements[pivotPoint * 2]\n\n while (sliceLength > 1) {\n if (pivotIndex < index) {\n start = pivotPoint\n }\n\n if (pivotIndex > index) {\n end = pivotPoint\n }\n\n if (pivotIndex == index) {\n break\n }\n\n sliceLength = end - start\n pivotPoint = start + Math.floor(sliceLength / 2)\n pivotIndex = this.elements[pivotPoint * 2]\n }\n\n if (pivotIndex == index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex > index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex < index) {\n return (pivotPoint + 1) * 2\n }\n}\n\n/**\n * Inserts an element at an index within the vector.\n *\n * Does not allow duplicates, will throw an error if there is already an entry\n * for this index.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n */\nlunr.Vector.prototype.insert = function (insertIdx, val) {\n this.upsert(insertIdx, val, function () {\n throw \"duplicate index\"\n })\n}\n\n/**\n * Inserts or updates an existing index within the vector.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n * @param {function} fn - A function that is called for updates, the existing value and the\n * requested value are passed as arguments\n */\nlunr.Vector.prototype.upsert = function (insertIdx, val, fn) {\n this._magnitude = 0\n var position = this.positionForIndex(insertIdx)\n\n if (this.elements[position] == insertIdx) {\n this.elements[position + 1] = fn(this.elements[position + 1], val)\n } else {\n this.elements.splice(position, 0, insertIdx, val)\n }\n}\n\n/**\n * Calculates the magnitude of this vector.\n *\n * @returns {Number}\n */\nlunr.Vector.prototype.magnitude = function () {\n if (this._magnitude) return this._magnitude\n\n var sumOfSquares = 0,\n elementsLength = this.elements.length\n\n for (var i = 1; i < elementsLength; i += 2) {\n var val = this.elements[i]\n sumOfSquares += val * val\n }\n\n return this._magnitude = Math.sqrt(sumOfSquares)\n}\n\n/**\n * Calculates the dot product of this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The vector to compute the dot product with.\n * @returns {Number}\n */\nlunr.Vector.prototype.dot = function (otherVector) {\n var dotProduct = 0,\n a = this.elements, b = otherVector.elements,\n aLen = a.length, bLen = b.length,\n aVal = 0, bVal = 0,\n i = 0, j = 0\n\n while (i < aLen && j < bLen) {\n aVal = a[i], bVal = b[j]\n if (aVal < bVal) {\n i += 2\n } else if (aVal > bVal) {\n j += 2\n } else if (aVal == bVal) {\n dotProduct += a[i + 1] * b[j + 1]\n i += 2\n j += 2\n }\n }\n\n return dotProduct\n}\n\n/**\n * Calculates the similarity between this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The other vector to calculate the\n * similarity with.\n * @returns {Number}\n */\nlunr.Vector.prototype.similarity = function (otherVector) {\n return this.dot(otherVector) / this.magnitude() || 0\n}\n\n/**\n * Converts the vector to an array of the elements within the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toArray = function () {\n var output = new Array (this.elements.length / 2)\n\n for (var i = 1, j = 0; i < this.elements.length; i += 2, j++) {\n output[j] = this.elements[i]\n }\n\n return output\n}\n\n/**\n * A JSON serializable representation of the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toJSON = function () {\n return this.elements\n}\n/* eslint-disable */\n/*!\n * lunr.stemmer\n * Copyright (C) 2020 Oliver Nightingale\n * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt\n */\n\n/**\n * lunr.stemmer is an english language stemmer, this is a JavaScript\n * implementation of the PorterStemmer taken from http://tartarus.org/~martin\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token - The string to stem\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n * @function\n */\nlunr.stemmer = (function(){\n var step2list = {\n \"ational\" : \"ate\",\n \"tional\" : \"tion\",\n \"enci\" : \"ence\",\n \"anci\" : \"ance\",\n \"izer\" : \"ize\",\n \"bli\" : \"ble\",\n \"alli\" : \"al\",\n \"entli\" : \"ent\",\n \"eli\" : \"e\",\n \"ousli\" : \"ous\",\n \"ization\" : \"ize\",\n \"ation\" : \"ate\",\n \"ator\" : \"ate\",\n \"alism\" : \"al\",\n \"iveness\" : \"ive\",\n \"fulness\" : \"ful\",\n \"ousness\" : \"ous\",\n \"aliti\" : \"al\",\n \"iviti\" : \"ive\",\n \"biliti\" : \"ble\",\n \"logi\" : \"log\"\n },\n\n step3list = {\n \"icate\" : \"ic\",\n \"ative\" : \"\",\n \"alize\" : \"al\",\n \"iciti\" : \"ic\",\n \"ical\" : \"ic\",\n \"ful\" : \"\",\n \"ness\" : \"\"\n },\n\n c = \"[^aeiou]\", // consonant\n v = \"[aeiouy]\", // vowel\n C = c + \"[^aeiouy]*\", // consonant sequence\n V = v + \"[aeiou]*\", // vowel sequence\n\n mgr0 = \"^(\" + C + \")?\" + V + C, // [C]VC... is m>0\n meq1 = \"^(\" + C + \")?\" + V + C + \"(\" + V + \")?$\", // [C]VC[V] is m=1\n mgr1 = \"^(\" + C + \")?\" + V + C + V + C, // [C]VCVC... is m>1\n s_v = \"^(\" + C + \")?\" + v; // vowel in stem\n\n var re_mgr0 = new RegExp(mgr0);\n var re_mgr1 = new RegExp(mgr1);\n var re_meq1 = new RegExp(meq1);\n var re_s_v = new RegExp(s_v);\n\n var re_1a = /^(.+?)(ss|i)es$/;\n var re2_1a = /^(.+?)([^s])s$/;\n var re_1b = /^(.+?)eed$/;\n var re2_1b = /^(.+?)(ed|ing)$/;\n var re_1b_2 = /.$/;\n var re2_1b_2 = /(at|bl|iz)$/;\n var re3_1b_2 = new RegExp(\"([^aeiouylsz])\\\\1$\");\n var re4_1b_2 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var re_1c = /^(.+?[^aeiou])y$/;\n var re_2 = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;\n\n var re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;\n\n var re_4 = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;\n var re2_4 = /^(.+?)(s|t)(ion)$/;\n\n var re_5 = /^(.+?)e$/;\n var re_5_1 = /ll$/;\n var re3_5 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var porterStemmer = function porterStemmer(w) {\n var stem,\n suffix,\n firstch,\n re,\n re2,\n re3,\n re4;\n\n if (w.length < 3) { return w; }\n\n firstch = w.substr(0,1);\n if (firstch == \"y\") {\n w = firstch.toUpperCase() + w.substr(1);\n }\n\n // Step 1a\n re = re_1a\n re2 = re2_1a;\n\n if (re.test(w)) { w = w.replace(re,\"$1$2\"); }\n else if (re2.test(w)) { w = w.replace(re2,\"$1$2\"); }\n\n // Step 1b\n re = re_1b;\n re2 = re2_1b;\n if (re.test(w)) {\n var fp = re.exec(w);\n re = re_mgr0;\n if (re.test(fp[1])) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1];\n re2 = re_s_v;\n if (re2.test(stem)) {\n w = stem;\n re2 = re2_1b_2;\n re3 = re3_1b_2;\n re4 = re4_1b_2;\n if (re2.test(w)) { w = w + \"e\"; }\n else if (re3.test(w)) { re = re_1b_2; w = w.replace(re,\"\"); }\n else if (re4.test(w)) { w = w + \"e\"; }\n }\n }\n\n // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say)\n re = re_1c;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n w = stem + \"i\";\n }\n\n // Step 2\n re = re_2;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step2list[suffix];\n }\n }\n\n // Step 3\n re = re_3;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step3list[suffix];\n }\n }\n\n // Step 4\n re = re_4;\n re2 = re2_4;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n if (re.test(stem)) {\n w = stem;\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1] + fp[2];\n re2 = re_mgr1;\n if (re2.test(stem)) {\n w = stem;\n }\n }\n\n // Step 5\n re = re_5;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n re2 = re_meq1;\n re3 = re3_5;\n if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {\n w = stem;\n }\n }\n\n re = re_5_1;\n re2 = re_mgr1;\n if (re.test(w) && re2.test(w)) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n\n // and turn initial Y back to y\n\n if (firstch == \"y\") {\n w = firstch.toLowerCase() + w.substr(1);\n }\n\n return w;\n };\n\n return function (token) {\n return token.update(porterStemmer);\n }\n})();\n\nlunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer')\n/*!\n * lunr.stopWordFilter\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * lunr.generateStopWordFilter builds a stopWordFilter function from the provided\n * list of stop words.\n *\n * The built in lunr.stopWordFilter is built using this generator and can be used\n * to generate custom stopWordFilters for applications or non English languages.\n *\n * @function\n * @param {Array} token The token to pass through the filter\n * @returns {lunr.PipelineFunction}\n * @see lunr.Pipeline\n * @see lunr.stopWordFilter\n */\nlunr.generateStopWordFilter = function (stopWords) {\n var words = stopWords.reduce(function (memo, stopWord) {\n memo[stopWord] = stopWord\n return memo\n }, {})\n\n return function (token) {\n if (token && words[token.toString()] !== token.toString()) return token\n }\n}\n\n/**\n * lunr.stopWordFilter is an English language stop word list filter, any words\n * contained in the list will not be passed through the filter.\n *\n * This is intended to be used in the Pipeline. If the token does not pass the\n * filter then undefined will be returned.\n *\n * @function\n * @implements {lunr.PipelineFunction}\n * @params {lunr.Token} token - A token to check for being a stop word.\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n */\nlunr.stopWordFilter = lunr.generateStopWordFilter([\n 'a',\n 'able',\n 'about',\n 'across',\n 'after',\n 'all',\n 'almost',\n 'also',\n 'am',\n 'among',\n 'an',\n 'and',\n 'any',\n 'are',\n 'as',\n 'at',\n 'be',\n 'because',\n 'been',\n 'but',\n 'by',\n 'can',\n 'cannot',\n 'could',\n 'dear',\n 'did',\n 'do',\n 'does',\n 'either',\n 'else',\n 'ever',\n 'every',\n 'for',\n 'from',\n 'get',\n 'got',\n 'had',\n 'has',\n 'have',\n 'he',\n 'her',\n 'hers',\n 'him',\n 'his',\n 'how',\n 'however',\n 'i',\n 'if',\n 'in',\n 'into',\n 'is',\n 'it',\n 'its',\n 'just',\n 'least',\n 'let',\n 'like',\n 'likely',\n 'may',\n 'me',\n 'might',\n 'most',\n 'must',\n 'my',\n 'neither',\n 'no',\n 'nor',\n 'not',\n 'of',\n 'off',\n 'often',\n 'on',\n 'only',\n 'or',\n 'other',\n 'our',\n 'own',\n 'rather',\n 'said',\n 'say',\n 'says',\n 'she',\n 'should',\n 'since',\n 'so',\n 'some',\n 'than',\n 'that',\n 'the',\n 'their',\n 'them',\n 'then',\n 'there',\n 'these',\n 'they',\n 'this',\n 'tis',\n 'to',\n 'too',\n 'twas',\n 'us',\n 'wants',\n 'was',\n 'we',\n 'were',\n 'what',\n 'when',\n 'where',\n 'which',\n 'while',\n 'who',\n 'whom',\n 'why',\n 'will',\n 'with',\n 'would',\n 'yet',\n 'you',\n 'your'\n])\n\nlunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter')\n/*!\n * lunr.trimmer\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * lunr.trimmer is a pipeline function for trimming non word\n * characters from the beginning and end of tokens before they\n * enter the index.\n *\n * This implementation may not work correctly for non latin\n * characters and should either be removed or adapted for use\n * with languages with non-latin characters.\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token The token to pass through the filter\n * @returns {lunr.Token}\n * @see lunr.Pipeline\n */\nlunr.trimmer = function (token) {\n return token.update(function (s) {\n return s.replace(/^\\W+/, '').replace(/\\W+$/, '')\n })\n}\n\nlunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer')\n/*!\n * lunr.TokenSet\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A token set is used to store the unique list of all tokens\n * within an index. Token sets are also used to represent an\n * incoming query to the index, this query token set and index\n * token set are then intersected to find which tokens to look\n * up in the inverted index.\n *\n * A token set can hold multiple tokens, as in the case of the\n * index token set, or it can hold a single token as in the\n * case of a simple query token set.\n *\n * Additionally token sets are used to perform wildcard matching.\n * Leading, contained and trailing wildcards are supported, and\n * from this edit distance matching can also be provided.\n *\n * Token sets are implemented as a minimal finite state automata,\n * where both common prefixes and suffixes are shared between tokens.\n * This helps to reduce the space used for storing the token set.\n *\n * @constructor\n */\nlunr.TokenSet = function () {\n this.final = false\n this.edges = {}\n this.id = lunr.TokenSet._nextId\n lunr.TokenSet._nextId += 1\n}\n\n/**\n * Keeps track of the next, auto increment, identifier to assign\n * to a new tokenSet.\n *\n * TokenSets require a unique identifier to be correctly minimised.\n *\n * @private\n */\nlunr.TokenSet._nextId = 1\n\n/**\n * Creates a TokenSet instance from the given sorted array of words.\n *\n * @param {String[]} arr - A sorted array of strings to create the set from.\n * @returns {lunr.TokenSet}\n * @throws Will throw an error if the input array is not sorted.\n */\nlunr.TokenSet.fromArray = function (arr) {\n var builder = new lunr.TokenSet.Builder\n\n for (var i = 0, len = arr.length; i < len; i++) {\n builder.insert(arr[i])\n }\n\n builder.finish()\n return builder.root\n}\n\n/**\n * Creates a token set from a query clause.\n *\n * @private\n * @param {Object} clause - A single clause from lunr.Query.\n * @param {string} clause.term - The query clause term.\n * @param {number} [clause.editDistance] - The optional edit distance for the term.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromClause = function (clause) {\n if ('editDistance' in clause) {\n return lunr.TokenSet.fromFuzzyString(clause.term, clause.editDistance)\n } else {\n return lunr.TokenSet.fromString(clause.term)\n }\n}\n\n/**\n * Creates a token set representing a single string with a specified\n * edit distance.\n *\n * Insertions, deletions, substitutions and transpositions are each\n * treated as an edit distance of 1.\n *\n * Increasing the allowed edit distance will have a dramatic impact\n * on the performance of both creating and intersecting these TokenSets.\n * It is advised to keep the edit distance less than 3.\n *\n * @param {string} str - The string to create the token set from.\n * @param {number} editDistance - The allowed edit distance to match.\n * @returns {lunr.Vector}\n */\nlunr.TokenSet.fromFuzzyString = function (str, editDistance) {\n var root = new lunr.TokenSet\n\n var stack = [{\n node: root,\n editsRemaining: editDistance,\n str: str\n }]\n\n while (stack.length) {\n var frame = stack.pop()\n\n // no edit\n if (frame.str.length > 0) {\n var char = frame.str.charAt(0),\n noEditNode\n\n if (char in frame.node.edges) {\n noEditNode = frame.node.edges[char]\n } else {\n noEditNode = new lunr.TokenSet\n frame.node.edges[char] = noEditNode\n }\n\n if (frame.str.length == 1) {\n noEditNode.final = true\n }\n\n stack.push({\n node: noEditNode,\n editsRemaining: frame.editsRemaining,\n str: frame.str.slice(1)\n })\n }\n\n if (frame.editsRemaining == 0) {\n continue\n }\n\n // insertion\n if (\"*\" in frame.node.edges) {\n var insertionNode = frame.node.edges[\"*\"]\n } else {\n var insertionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = insertionNode\n }\n\n if (frame.str.length == 0) {\n insertionNode.final = true\n }\n\n stack.push({\n node: insertionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str\n })\n\n // deletion\n // can only do a deletion if we have enough edits remaining\n // and if there are characters left to delete in the string\n if (frame.str.length > 1) {\n stack.push({\n node: frame.node,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // deletion\n // just removing the last character from the str\n if (frame.str.length == 1) {\n frame.node.final = true\n }\n\n // substitution\n // can only do a substitution if we have enough edits remaining\n // and if there are characters left to substitute\n if (frame.str.length >= 1) {\n if (\"*\" in frame.node.edges) {\n var substitutionNode = frame.node.edges[\"*\"]\n } else {\n var substitutionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = substitutionNode\n }\n\n if (frame.str.length == 1) {\n substitutionNode.final = true\n }\n\n stack.push({\n node: substitutionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // transposition\n // can only do a transposition if there are edits remaining\n // and there are enough characters to transpose\n if (frame.str.length > 1) {\n var charA = frame.str.charAt(0),\n charB = frame.str.charAt(1),\n transposeNode\n\n if (charB in frame.node.edges) {\n transposeNode = frame.node.edges[charB]\n } else {\n transposeNode = new lunr.TokenSet\n frame.node.edges[charB] = transposeNode\n }\n\n if (frame.str.length == 1) {\n transposeNode.final = true\n }\n\n stack.push({\n node: transposeNode,\n editsRemaining: frame.editsRemaining - 1,\n str: charA + frame.str.slice(2)\n })\n }\n }\n\n return root\n}\n\n/**\n * Creates a TokenSet from a string.\n *\n * The string may contain one or more wildcard characters (*)\n * that will allow wildcard matching when intersecting with\n * another TokenSet.\n *\n * @param {string} str - The string to create a TokenSet from.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromString = function (str) {\n var node = new lunr.TokenSet,\n root = node\n\n /*\n * Iterates through all characters within the passed string\n * appending a node for each character.\n *\n * When a wildcard character is found then a self\n * referencing edge is introduced to continually match\n * any number of any characters.\n */\n for (var i = 0, len = str.length; i < len; i++) {\n var char = str[i],\n final = (i == len - 1)\n\n if (char == \"*\") {\n node.edges[char] = node\n node.final = final\n\n } else {\n var next = new lunr.TokenSet\n next.final = final\n\n node.edges[char] = next\n node = next\n }\n }\n\n return root\n}\n\n/**\n * Converts this TokenSet into an array of strings\n * contained within the TokenSet.\n *\n * This is not intended to be used on a TokenSet that\n * contains wildcards, in these cases the results are\n * undefined and are likely to cause an infinite loop.\n *\n * @returns {string[]}\n */\nlunr.TokenSet.prototype.toArray = function () {\n var words = []\n\n var stack = [{\n prefix: \"\",\n node: this\n }]\n\n while (stack.length) {\n var frame = stack.pop(),\n edges = Object.keys(frame.node.edges),\n len = edges.length\n\n if (frame.node.final) {\n /* In Safari, at this point the prefix is sometimes corrupted, see:\n * https://github.com/olivernn/lunr.js/issues/279 Calling any\n * String.prototype method forces Safari to \"cast\" this string to what\n * it's supposed to be, fixing the bug. */\n frame.prefix.charAt(0)\n words.push(frame.prefix)\n }\n\n for (var i = 0; i < len; i++) {\n var edge = edges[i]\n\n stack.push({\n prefix: frame.prefix.concat(edge),\n node: frame.node.edges[edge]\n })\n }\n }\n\n return words\n}\n\n/**\n * Generates a string representation of a TokenSet.\n *\n * This is intended to allow TokenSets to be used as keys\n * in objects, largely to aid the construction and minimisation\n * of a TokenSet. As such it is not designed to be a human\n * friendly representation of the TokenSet.\n *\n * @returns {string}\n */\nlunr.TokenSet.prototype.toString = function () {\n // NOTE: Using Object.keys here as this.edges is very likely\n // to enter 'hash-mode' with many keys being added\n //\n // avoiding a for-in loop here as it leads to the function\n // being de-optimised (at least in V8). From some simple\n // benchmarks the performance is comparable, but allowing\n // V8 to optimize may mean easy performance wins in the future.\n\n if (this._str) {\n return this._str\n }\n\n var str = this.final ? '1' : '0',\n labels = Object.keys(this.edges).sort(),\n len = labels.length\n\n for (var i = 0; i < len; i++) {\n var label = labels[i],\n node = this.edges[label]\n\n str = str + label + node.id\n }\n\n return str\n}\n\n/**\n * Returns a new TokenSet that is the intersection of\n * this TokenSet and the passed TokenSet.\n *\n * This intersection will take into account any wildcards\n * contained within the TokenSet.\n *\n * @param {lunr.TokenSet} b - An other TokenSet to intersect with.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.prototype.intersect = function (b) {\n var output = new lunr.TokenSet,\n frame = undefined\n\n var stack = [{\n qNode: b,\n output: output,\n node: this\n }]\n\n while (stack.length) {\n frame = stack.pop()\n\n // NOTE: As with the #toString method, we are using\n // Object.keys and a for loop instead of a for-in loop\n // as both of these objects enter 'hash' mode, causing\n // the function to be de-optimised in V8\n var qEdges = Object.keys(frame.qNode.edges),\n qLen = qEdges.length,\n nEdges = Object.keys(frame.node.edges),\n nLen = nEdges.length\n\n for (var q = 0; q < qLen; q++) {\n var qEdge = qEdges[q]\n\n for (var n = 0; n < nLen; n++) {\n var nEdge = nEdges[n]\n\n if (nEdge == qEdge || qEdge == '*') {\n var node = frame.node.edges[nEdge],\n qNode = frame.qNode.edges[qEdge],\n final = node.final && qNode.final,\n next = undefined\n\n if (nEdge in frame.output.edges) {\n // an edge already exists for this character\n // no need to create a new node, just set the finality\n // bit unless this node is already final\n next = frame.output.edges[nEdge]\n next.final = next.final || final\n\n } else {\n // no edge exists yet, must create one\n // set the finality bit and insert it\n // into the output\n next = new lunr.TokenSet\n next.final = final\n frame.output.edges[nEdge] = next\n }\n\n stack.push({\n qNode: qNode,\n output: next,\n node: node\n })\n }\n }\n }\n }\n\n return output\n}\nlunr.TokenSet.Builder = function () {\n this.previousWord = \"\"\n this.root = new lunr.TokenSet\n this.uncheckedNodes = []\n this.minimizedNodes = {}\n}\n\nlunr.TokenSet.Builder.prototype.insert = function (word) {\n var node,\n commonPrefix = 0\n\n if (word < this.previousWord) {\n throw new Error (\"Out of order word insertion\")\n }\n\n for (var i = 0; i < word.length && i < this.previousWord.length; i++) {\n if (word[i] != this.previousWord[i]) break\n commonPrefix++\n }\n\n this.minimize(commonPrefix)\n\n if (this.uncheckedNodes.length == 0) {\n node = this.root\n } else {\n node = this.uncheckedNodes[this.uncheckedNodes.length - 1].child\n }\n\n for (var i = commonPrefix; i < word.length; i++) {\n var nextNode = new lunr.TokenSet,\n char = word[i]\n\n node.edges[char] = nextNode\n\n this.uncheckedNodes.push({\n parent: node,\n char: char,\n child: nextNode\n })\n\n node = nextNode\n }\n\n node.final = true\n this.previousWord = word\n}\n\nlunr.TokenSet.Builder.prototype.finish = function () {\n this.minimize(0)\n}\n\nlunr.TokenSet.Builder.prototype.minimize = function (downTo) {\n for (var i = this.uncheckedNodes.length - 1; i >= downTo; i--) {\n var node = this.uncheckedNodes[i],\n childKey = node.child.toString()\n\n if (childKey in this.minimizedNodes) {\n node.parent.edges[node.char] = this.minimizedNodes[childKey]\n } else {\n // Cache the key for this node since\n // we know it can't change anymore\n node.child._str = childKey\n\n this.minimizedNodes[childKey] = node.child\n }\n\n this.uncheckedNodes.pop()\n }\n}\n/*!\n * lunr.Index\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * An index contains the built index of all documents and provides a query interface\n * to the index.\n *\n * Usually instances of lunr.Index will not be created using this constructor, instead\n * lunr.Builder should be used to construct new indexes, or lunr.Index.load should be\n * used to load previously built and serialized indexes.\n *\n * @constructor\n * @param {Object} attrs - The attributes of the built search index.\n * @param {Object} attrs.invertedIndex - An index of term/field to document reference.\n * @param {Object} attrs.fieldVectors - Field vectors\n * @param {lunr.TokenSet} attrs.tokenSet - An set of all corpus tokens.\n * @param {string[]} attrs.fields - The names of indexed document fields.\n * @param {lunr.Pipeline} attrs.pipeline - The pipeline to use for search terms.\n */\nlunr.Index = function (attrs) {\n this.invertedIndex = attrs.invertedIndex\n this.fieldVectors = attrs.fieldVectors\n this.tokenSet = attrs.tokenSet\n this.fields = attrs.fields\n this.pipeline = attrs.pipeline\n}\n\n/**\n * A result contains details of a document matching a search query.\n * @typedef {Object} lunr.Index~Result\n * @property {string} ref - The reference of the document this result represents.\n * @property {number} score - A number between 0 and 1 representing how similar this document is to the query.\n * @property {lunr.MatchData} matchData - Contains metadata about this match including which term(s) caused the match.\n */\n\n/**\n * Although lunr provides the ability to create queries using lunr.Query, it also provides a simple\n * query language which itself is parsed into an instance of lunr.Query.\n *\n * For programmatically building queries it is advised to directly use lunr.Query, the query language\n * is best used for human entered text rather than program generated text.\n *\n * At its simplest queries can just be a single term, e.g. `hello`, multiple terms are also supported\n * and will be combined with OR, e.g `hello world` will match documents that contain either 'hello'\n * or 'world', though those that contain both will rank higher in the results.\n *\n * Wildcards can be included in terms to match one or more unspecified characters, these wildcards can\n * be inserted anywhere within the term, and more than one wildcard can exist in a single term. Adding\n * wildcards will increase the number of documents that will be found but can also have a negative\n * impact on query performance, especially with wildcards at the beginning of a term.\n *\n * Terms can be restricted to specific fields, e.g. `title:hello`, only documents with the term\n * hello in the title field will match this query. Using a field not present in the index will lead\n * to an error being thrown.\n *\n * Modifiers can also be added to terms, lunr supports edit distance and boost modifiers on terms. A term\n * boost will make documents matching that term score higher, e.g. `foo^5`. Edit distance is also supported\n * to provide fuzzy matching, e.g. 'hello~2' will match documents with hello with an edit distance of 2.\n * Avoid large values for edit distance to improve query performance.\n *\n * Each term also supports a presence modifier. By default a term's presence in document is optional, however\n * this can be changed to either required or prohibited. For a term's presence to be required in a document the\n * term should be prefixed with a '+', e.g. `+foo bar` is a search for documents that must contain 'foo' and\n * optionally contain 'bar'. Conversely a leading '-' sets the terms presence to prohibited, i.e. it must not\n * appear in a document, e.g. `-foo bar` is a search for documents that do not contain 'foo' but may contain 'bar'.\n *\n * To escape special characters the backslash character '\\' can be used, this allows searches to include\n * characters that would normally be considered modifiers, e.g. `foo\\~2` will search for a term \"foo~2\" instead\n * of attempting to apply a boost of 2 to the search term \"foo\".\n *\n * @typedef {string} lunr.Index~QueryString\n * @example Simple single term query\n * hello\n * @example Multiple term query\n * hello world\n * @example term scoped to a field\n * title:hello\n * @example term with a boost of 10\n * hello^10\n * @example term with an edit distance of 2\n * hello~2\n * @example terms with presence modifiers\n * -foo +bar baz\n */\n\n/**\n * Performs a search against the index using lunr query syntax.\n *\n * Results will be returned sorted by their score, the most relevant results\n * will be returned first. For details on how the score is calculated, please see\n * the {@link https://lunrjs.com/guides/searching.html#scoring|guide}.\n *\n * For more programmatic querying use lunr.Index#query.\n *\n * @param {lunr.Index~QueryString} queryString - A string containing a lunr query.\n * @throws {lunr.QueryParseError} If the passed query string cannot be parsed.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.search = function (queryString) {\n return this.query(function (query) {\n var parser = new lunr.QueryParser(queryString, query)\n parser.parse()\n })\n}\n\n/**\n * A query builder callback provides a query object to be used to express\n * the query to perform on the index.\n *\n * @callback lunr.Index~queryBuilder\n * @param {lunr.Query} query - The query object to build up.\n * @this lunr.Query\n */\n\n/**\n * Performs a query against the index using the yielded lunr.Query object.\n *\n * If performing programmatic queries against the index, this method is preferred\n * over lunr.Index#search so as to avoid the additional query parsing overhead.\n *\n * A query object is yielded to the supplied function which should be used to\n * express the query to be run against the index.\n *\n * Note that although this function takes a callback parameter it is _not_ an\n * asynchronous operation, the callback is just yielded a query object to be\n * customized.\n *\n * @param {lunr.Index~queryBuilder} fn - A function that is used to build the query.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.query = function (fn) {\n // for each query clause\n // * process terms\n // * expand terms from token set\n // * find matching documents and metadata\n // * get document vectors\n // * score documents\n\n var query = new lunr.Query(this.fields),\n matchingFields = Object.create(null),\n queryVectors = Object.create(null),\n termFieldCache = Object.create(null),\n requiredMatches = Object.create(null),\n prohibitedMatches = Object.create(null)\n\n /*\n * To support field level boosts a query vector is created per\n * field. An empty vector is eagerly created to support negated\n * queries.\n */\n for (var i = 0; i < this.fields.length; i++) {\n queryVectors[this.fields[i]] = new lunr.Vector\n }\n\n fn.call(query, query)\n\n for (var i = 0; i < query.clauses.length; i++) {\n /*\n * Unless the pipeline has been disabled for this term, which is\n * the case for terms with wildcards, we need to pass the clause\n * term through the search pipeline. A pipeline returns an array\n * of processed terms. Pipeline functions may expand the passed\n * term, which means we may end up performing multiple index lookups\n * for a single query term.\n */\n var clause = query.clauses[i],\n terms = null,\n clauseMatches = lunr.Set.empty\n\n if (clause.usePipeline) {\n terms = this.pipeline.runString(clause.term, {\n fields: clause.fields\n })\n } else {\n terms = [clause.term]\n }\n\n for (var m = 0; m < terms.length; m++) {\n var term = terms[m]\n\n /*\n * Each term returned from the pipeline needs to use the same query\n * clause object, e.g. the same boost and or edit distance. The\n * simplest way to do this is to re-use the clause object but mutate\n * its term property.\n */\n clause.term = term\n\n /*\n * From the term in the clause we create a token set which will then\n * be used to intersect the indexes token set to get a list of terms\n * to lookup in the inverted index\n */\n var termTokenSet = lunr.TokenSet.fromClause(clause),\n expandedTerms = this.tokenSet.intersect(termTokenSet).toArray()\n\n /*\n * If a term marked as required does not exist in the tokenSet it is\n * impossible for the search to return any matches. We set all the field\n * scoped required matches set to empty and stop examining any further\n * clauses.\n */\n if (expandedTerms.length === 0 && clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = lunr.Set.empty\n }\n\n break\n }\n\n for (var j = 0; j < expandedTerms.length; j++) {\n /*\n * For each term get the posting and termIndex, this is required for\n * building the query vector.\n */\n var expandedTerm = expandedTerms[j],\n posting = this.invertedIndex[expandedTerm],\n termIndex = posting._index\n\n for (var k = 0; k < clause.fields.length; k++) {\n /*\n * For each field that this query term is scoped by (by default\n * all fields are in scope) we need to get all the document refs\n * that have this term in that field.\n *\n * The posting is the entry in the invertedIndex for the matching\n * term from above.\n */\n var field = clause.fields[k],\n fieldPosting = posting[field],\n matchingDocumentRefs = Object.keys(fieldPosting),\n termField = expandedTerm + \"/\" + field,\n matchingDocumentsSet = new lunr.Set(matchingDocumentRefs)\n\n /*\n * if the presence of this term is required ensure that the matching\n * documents are added to the set of required matches for this clause.\n *\n */\n if (clause.presence == lunr.Query.presence.REQUIRED) {\n clauseMatches = clauseMatches.union(matchingDocumentsSet)\n\n if (requiredMatches[field] === undefined) {\n requiredMatches[field] = lunr.Set.complete\n }\n }\n\n /*\n * if the presence of this term is prohibited ensure that the matching\n * documents are added to the set of prohibited matches for this field,\n * creating that set if it does not yet exist.\n */\n if (clause.presence == lunr.Query.presence.PROHIBITED) {\n if (prohibitedMatches[field] === undefined) {\n prohibitedMatches[field] = lunr.Set.empty\n }\n\n prohibitedMatches[field] = prohibitedMatches[field].union(matchingDocumentsSet)\n\n /*\n * Prohibited matches should not be part of the query vector used for\n * similarity scoring and no metadata should be extracted so we continue\n * to the next field\n */\n continue\n }\n\n /*\n * The query field vector is populated using the termIndex found for\n * the term and a unit value with the appropriate boost applied.\n * Using upsert because there could already be an entry in the vector\n * for the term we are working with. In that case we just add the scores\n * together.\n */\n queryVectors[field].upsert(termIndex, clause.boost, function (a, b) { return a + b })\n\n /**\n * If we've already seen this term, field combo then we've already collected\n * the matching documents and metadata, no need to go through all that again\n */\n if (termFieldCache[termField]) {\n continue\n }\n\n for (var l = 0; l < matchingDocumentRefs.length; l++) {\n /*\n * All metadata for this term/field/document triple\n * are then extracted and collected into an instance\n * of lunr.MatchData ready to be returned in the query\n * results\n */\n var matchingDocumentRef = matchingDocumentRefs[l],\n matchingFieldRef = new lunr.FieldRef (matchingDocumentRef, field),\n metadata = fieldPosting[matchingDocumentRef],\n fieldMatch\n\n if ((fieldMatch = matchingFields[matchingFieldRef]) === undefined) {\n matchingFields[matchingFieldRef] = new lunr.MatchData (expandedTerm, field, metadata)\n } else {\n fieldMatch.add(expandedTerm, field, metadata)\n }\n\n }\n\n termFieldCache[termField] = true\n }\n }\n }\n\n /**\n * If the presence was required we need to update the requiredMatches field sets.\n * We do this after all fields for the term have collected their matches because\n * the clause terms presence is required in _any_ of the fields not _all_ of the\n * fields.\n */\n if (clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = requiredMatches[field].intersect(clauseMatches)\n }\n }\n }\n\n /**\n * Need to combine the field scoped required and prohibited\n * matching documents into a global set of required and prohibited\n * matches\n */\n var allRequiredMatches = lunr.Set.complete,\n allProhibitedMatches = lunr.Set.empty\n\n for (var i = 0; i < this.fields.length; i++) {\n var field = this.fields[i]\n\n if (requiredMatches[field]) {\n allRequiredMatches = allRequiredMatches.intersect(requiredMatches[field])\n }\n\n if (prohibitedMatches[field]) {\n allProhibitedMatches = allProhibitedMatches.union(prohibitedMatches[field])\n }\n }\n\n var matchingFieldRefs = Object.keys(matchingFields),\n results = [],\n matches = Object.create(null)\n\n /*\n * If the query is negated (contains only prohibited terms)\n * we need to get _all_ fieldRefs currently existing in the\n * index. This is only done when we know that the query is\n * entirely prohibited terms to avoid any cost of getting all\n * fieldRefs unnecessarily.\n *\n * Additionally, blank MatchData must be created to correctly\n * populate the results.\n */\n if (query.isNegated()) {\n matchingFieldRefs = Object.keys(this.fieldVectors)\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n var matchingFieldRef = matchingFieldRefs[i]\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRef)\n matchingFields[matchingFieldRef] = new lunr.MatchData\n }\n }\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n /*\n * Currently we have document fields that match the query, but we\n * need to return documents. The matchData and scores are combined\n * from multiple fields belonging to the same document.\n *\n * Scores are calculated by field, using the query vectors created\n * above, and combined into a final document score using addition.\n */\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRefs[i]),\n docRef = fieldRef.docRef\n\n if (!allRequiredMatches.contains(docRef)) {\n continue\n }\n\n if (allProhibitedMatches.contains(docRef)) {\n continue\n }\n\n var fieldVector = this.fieldVectors[fieldRef],\n score = queryVectors[fieldRef.fieldName].similarity(fieldVector),\n docMatch\n\n if ((docMatch = matches[docRef]) !== undefined) {\n docMatch.score += score\n docMatch.matchData.combine(matchingFields[fieldRef])\n } else {\n var match = {\n ref: docRef,\n score: score,\n matchData: matchingFields[fieldRef]\n }\n matches[docRef] = match\n results.push(match)\n }\n }\n\n /*\n * Sort the results objects by score, highest first.\n */\n return results.sort(function (a, b) {\n return b.score - a.score\n })\n}\n\n/**\n * Prepares the index for JSON serialization.\n *\n * The schema for this JSON blob will be described in a\n * separate JSON schema file.\n *\n * @returns {Object}\n */\nlunr.Index.prototype.toJSON = function () {\n var invertedIndex = Object.keys(this.invertedIndex)\n .sort()\n .map(function (term) {\n return [term, this.invertedIndex[term]]\n }, this)\n\n var fieldVectors = Object.keys(this.fieldVectors)\n .map(function (ref) {\n return [ref, this.fieldVectors[ref].toJSON()]\n }, this)\n\n return {\n version: lunr.version,\n fields: this.fields,\n fieldVectors: fieldVectors,\n invertedIndex: invertedIndex,\n pipeline: this.pipeline.toJSON()\n }\n}\n\n/**\n * Loads a previously serialized lunr.Index\n *\n * @param {Object} serializedIndex - A previously serialized lunr.Index\n * @returns {lunr.Index}\n */\nlunr.Index.load = function (serializedIndex) {\n var attrs = {},\n fieldVectors = {},\n serializedVectors = serializedIndex.fieldVectors,\n invertedIndex = Object.create(null),\n serializedInvertedIndex = serializedIndex.invertedIndex,\n tokenSetBuilder = new lunr.TokenSet.Builder,\n pipeline = lunr.Pipeline.load(serializedIndex.pipeline)\n\n if (serializedIndex.version != lunr.version) {\n lunr.utils.warn(\"Version mismatch when loading serialised index. Current version of lunr '\" + lunr.version + \"' does not match serialized index '\" + serializedIndex.version + \"'\")\n }\n\n for (var i = 0; i < serializedVectors.length; i++) {\n var tuple = serializedVectors[i],\n ref = tuple[0],\n elements = tuple[1]\n\n fieldVectors[ref] = new lunr.Vector(elements)\n }\n\n for (var i = 0; i < serializedInvertedIndex.length; i++) {\n var tuple = serializedInvertedIndex[i],\n term = tuple[0],\n posting = tuple[1]\n\n tokenSetBuilder.insert(term)\n invertedIndex[term] = posting\n }\n\n tokenSetBuilder.finish()\n\n attrs.fields = serializedIndex.fields\n\n attrs.fieldVectors = fieldVectors\n attrs.invertedIndex = invertedIndex\n attrs.tokenSet = tokenSetBuilder.root\n attrs.pipeline = pipeline\n\n return new lunr.Index(attrs)\n}\n/*!\n * lunr.Builder\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * lunr.Builder performs indexing on a set of documents and\n * returns instances of lunr.Index ready for querying.\n *\n * All configuration of the index is done via the builder, the\n * fields to index, the document reference, the text processing\n * pipeline and document scoring parameters are all set on the\n * builder before indexing.\n *\n * @constructor\n * @property {string} _ref - Internal reference to the document reference field.\n * @property {string[]} _fields - Internal reference to the document fields to index.\n * @property {object} invertedIndex - The inverted index maps terms to document fields.\n * @property {object} documentTermFrequencies - Keeps track of document term frequencies.\n * @property {object} documentLengths - Keeps track of the length of documents added to the index.\n * @property {lunr.tokenizer} tokenizer - Function for splitting strings into tokens for indexing.\n * @property {lunr.Pipeline} pipeline - The pipeline performs text processing on tokens before indexing.\n * @property {lunr.Pipeline} searchPipeline - A pipeline for processing search terms before querying the index.\n * @property {number} documentCount - Keeps track of the total number of documents indexed.\n * @property {number} _b - A parameter to control field length normalization, setting this to 0 disabled normalization, 1 fully normalizes field lengths, the default value is 0.75.\n * @property {number} _k1 - A parameter to control how quickly an increase in term frequency results in term frequency saturation, the default value is 1.2.\n * @property {number} termIndex - A counter incremented for each unique term, used to identify a terms position in the vector space.\n * @property {array} metadataWhitelist - A list of metadata keys that have been whitelisted for entry in the index.\n */\nlunr.Builder = function () {\n this._ref = \"id\"\n this._fields = Object.create(null)\n this._documents = Object.create(null)\n this.invertedIndex = Object.create(null)\n this.fieldTermFrequencies = {}\n this.fieldLengths = {}\n this.tokenizer = lunr.tokenizer\n this.pipeline = new lunr.Pipeline\n this.searchPipeline = new lunr.Pipeline\n this.documentCount = 0\n this._b = 0.75\n this._k1 = 1.2\n this.termIndex = 0\n this.metadataWhitelist = []\n}\n\n/**\n * Sets the document field used as the document reference. Every document must have this field.\n * The type of this field in the document should be a string, if it is not a string it will be\n * coerced into a string by calling toString.\n *\n * The default ref is 'id'.\n *\n * The ref should _not_ be changed during indexing, it should be set before any documents are\n * added to the index. Changing it during indexing can lead to inconsistent results.\n *\n * @param {string} ref - The name of the reference field in the document.\n */\nlunr.Builder.prototype.ref = function (ref) {\n this._ref = ref\n}\n\n/**\n * A function that is used to extract a field from a document.\n *\n * Lunr expects a field to be at the top level of a document, if however the field\n * is deeply nested within a document an extractor function can be used to extract\n * the right field for indexing.\n *\n * @callback fieldExtractor\n * @param {object} doc - The document being added to the index.\n * @returns {?(string|object|object[])} obj - The object that will be indexed for this field.\n * @example Extracting a nested field\n * function (doc) { return doc.nested.field }\n */\n\n/**\n * Adds a field to the list of document fields that will be indexed. Every document being\n * indexed should have this field. Null values for this field in indexed documents will\n * not cause errors but will limit the chance of that document being retrieved by searches.\n *\n * All fields should be added before adding documents to the index. Adding fields after\n * a document has been indexed will have no effect on already indexed documents.\n *\n * Fields can be boosted at build time. This allows terms within that field to have more\n * importance when ranking search results. Use a field boost to specify that matches within\n * one field are more important than other fields.\n *\n * @param {string} fieldName - The name of a field to index in all documents.\n * @param {object} attributes - Optional attributes associated with this field.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this field.\n * @param {fieldExtractor} [attributes.extractor] - Function to extract a field from a document.\n * @throws {RangeError} fieldName cannot contain unsupported characters '/'\n */\nlunr.Builder.prototype.field = function (fieldName, attributes) {\n if (/\\//.test(fieldName)) {\n throw new RangeError (\"Field '\" + fieldName + \"' contains illegal character '/'\")\n }\n\n this._fields[fieldName] = attributes || {}\n}\n\n/**\n * A parameter to tune the amount of field length normalisation that is applied when\n * calculating relevance scores. A value of 0 will completely disable any normalisation\n * and a value of 1 will fully normalise field lengths. The default is 0.75. Values of b\n * will be clamped to the range 0 - 1.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.b = function (number) {\n if (number < 0) {\n this._b = 0\n } else if (number > 1) {\n this._b = 1\n } else {\n this._b = number\n }\n}\n\n/**\n * A parameter that controls the speed at which a rise in term frequency results in term\n * frequency saturation. The default value is 1.2. Setting this to a higher value will give\n * slower saturation levels, a lower value will result in quicker saturation.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.k1 = function (number) {\n this._k1 = number\n}\n\n/**\n * Adds a document to the index.\n *\n * Before adding fields to the index the index should have been fully setup, with the document\n * ref and all fields to index already having been specified.\n *\n * The document must have a field name as specified by the ref (by default this is 'id') and\n * it should have all fields defined for indexing, though null or undefined values will not\n * cause errors.\n *\n * Entire documents can be boosted at build time. Applying a boost to a document indicates that\n * this document should rank higher in search results than other documents.\n *\n * @param {object} doc - The document to add to the index.\n * @param {object} attributes - Optional attributes associated with this document.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this document.\n */\nlunr.Builder.prototype.add = function (doc, attributes) {\n var docRef = doc[this._ref],\n fields = Object.keys(this._fields)\n\n this._documents[docRef] = attributes || {}\n this.documentCount += 1\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i],\n extractor = this._fields[fieldName].extractor,\n field = extractor ? extractor(doc) : doc[fieldName],\n tokens = this.tokenizer(field, {\n fields: [fieldName]\n }),\n terms = this.pipeline.run(tokens),\n fieldRef = new lunr.FieldRef (docRef, fieldName),\n fieldTerms = Object.create(null)\n\n this.fieldTermFrequencies[fieldRef] = fieldTerms\n this.fieldLengths[fieldRef] = 0\n\n // store the length of this field for this document\n this.fieldLengths[fieldRef] += terms.length\n\n // calculate term frequencies for this field\n for (var j = 0; j < terms.length; j++) {\n var term = terms[j]\n\n if (fieldTerms[term] == undefined) {\n fieldTerms[term] = 0\n }\n\n fieldTerms[term] += 1\n\n // add to inverted index\n // create an initial posting if one doesn't exist\n if (this.invertedIndex[term] == undefined) {\n var posting = Object.create(null)\n posting[\"_index\"] = this.termIndex\n this.termIndex += 1\n\n for (var k = 0; k < fields.length; k++) {\n posting[fields[k]] = Object.create(null)\n }\n\n this.invertedIndex[term] = posting\n }\n\n // add an entry for this term/fieldName/docRef to the invertedIndex\n if (this.invertedIndex[term][fieldName][docRef] == undefined) {\n this.invertedIndex[term][fieldName][docRef] = Object.create(null)\n }\n\n // store all whitelisted metadata about this token in the\n // inverted index\n for (var l = 0; l < this.metadataWhitelist.length; l++) {\n var metadataKey = this.metadataWhitelist[l],\n metadata = term.metadata[metadataKey]\n\n if (this.invertedIndex[term][fieldName][docRef][metadataKey] == undefined) {\n this.invertedIndex[term][fieldName][docRef][metadataKey] = []\n }\n\n this.invertedIndex[term][fieldName][docRef][metadataKey].push(metadata)\n }\n }\n\n }\n}\n\n/**\n * Calculates the average document length for this index\n *\n * @private\n */\nlunr.Builder.prototype.calculateAverageFieldLengths = function () {\n\n var fieldRefs = Object.keys(this.fieldLengths),\n numberOfFields = fieldRefs.length,\n accumulator = {},\n documentsWithField = {}\n\n for (var i = 0; i < numberOfFields; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n field = fieldRef.fieldName\n\n documentsWithField[field] || (documentsWithField[field] = 0)\n documentsWithField[field] += 1\n\n accumulator[field] || (accumulator[field] = 0)\n accumulator[field] += this.fieldLengths[fieldRef]\n }\n\n var fields = Object.keys(this._fields)\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i]\n accumulator[fieldName] = accumulator[fieldName] / documentsWithField[fieldName]\n }\n\n this.averageFieldLength = accumulator\n}\n\n/**\n * Builds a vector space model of every document using lunr.Vector\n *\n * @private\n */\nlunr.Builder.prototype.createFieldVectors = function () {\n var fieldVectors = {},\n fieldRefs = Object.keys(this.fieldTermFrequencies),\n fieldRefsLength = fieldRefs.length,\n termIdfCache = Object.create(null)\n\n for (var i = 0; i < fieldRefsLength; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n fieldName = fieldRef.fieldName,\n fieldLength = this.fieldLengths[fieldRef],\n fieldVector = new lunr.Vector,\n termFrequencies = this.fieldTermFrequencies[fieldRef],\n terms = Object.keys(termFrequencies),\n termsLength = terms.length\n\n\n var fieldBoost = this._fields[fieldName].boost || 1,\n docBoost = this._documents[fieldRef.docRef].boost || 1\n\n for (var j = 0; j < termsLength; j++) {\n var term = terms[j],\n tf = termFrequencies[term],\n termIndex = this.invertedIndex[term]._index,\n idf, score, scoreWithPrecision\n\n if (termIdfCache[term] === undefined) {\n idf = lunr.idf(this.invertedIndex[term], this.documentCount)\n termIdfCache[term] = idf\n } else {\n idf = termIdfCache[term]\n }\n\n score = idf * ((this._k1 + 1) * tf) / (this._k1 * (1 - this._b + this._b * (fieldLength / this.averageFieldLength[fieldName])) + tf)\n score *= fieldBoost\n score *= docBoost\n scoreWithPrecision = Math.round(score * 1000) / 1000\n // Converts 1.23456789 to 1.234.\n // Reducing the precision so that the vectors take up less\n // space when serialised. Doing it now so that they behave\n // the same before and after serialisation. Also, this is\n // the fastest approach to reducing a number's precision in\n // JavaScript.\n\n fieldVector.insert(termIndex, scoreWithPrecision)\n }\n\n fieldVectors[fieldRef] = fieldVector\n }\n\n this.fieldVectors = fieldVectors\n}\n\n/**\n * Creates a token set of all tokens in the index using lunr.TokenSet\n *\n * @private\n */\nlunr.Builder.prototype.createTokenSet = function () {\n this.tokenSet = lunr.TokenSet.fromArray(\n Object.keys(this.invertedIndex).sort()\n )\n}\n\n/**\n * Builds the index, creating an instance of lunr.Index.\n *\n * This completes the indexing process and should only be called\n * once all documents have been added to the index.\n *\n * @returns {lunr.Index}\n */\nlunr.Builder.prototype.build = function () {\n this.calculateAverageFieldLengths()\n this.createFieldVectors()\n this.createTokenSet()\n\n return new lunr.Index({\n invertedIndex: this.invertedIndex,\n fieldVectors: this.fieldVectors,\n tokenSet: this.tokenSet,\n fields: Object.keys(this._fields),\n pipeline: this.searchPipeline\n })\n}\n\n/**\n * Applies a plugin to the index builder.\n *\n * A plugin is a function that is called with the index builder as its context.\n * Plugins can be used to customise or extend the behaviour of the index\n * in some way. A plugin is just a function, that encapsulated the custom\n * behaviour that should be applied when building the index.\n *\n * The plugin function will be called with the index builder as its argument, additional\n * arguments can also be passed when calling use. The function will be called\n * with the index builder as its context.\n *\n * @param {Function} plugin The plugin to apply.\n */\nlunr.Builder.prototype.use = function (fn) {\n var args = Array.prototype.slice.call(arguments, 1)\n args.unshift(this)\n fn.apply(this, args)\n}\n/**\n * Contains and collects metadata about a matching document.\n * A single instance of lunr.MatchData is returned as part of every\n * lunr.Index~Result.\n *\n * @constructor\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n * @property {object} metadata - A cloned collection of metadata associated with this document.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData = function (term, field, metadata) {\n var clonedMetadata = Object.create(null),\n metadataKeys = Object.keys(metadata || {})\n\n // Cloning the metadata to prevent the original\n // being mutated during match data combination.\n // Metadata is kept in an array within the inverted\n // index so cloning the data can be done with\n // Array#slice\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n clonedMetadata[key] = metadata[key].slice()\n }\n\n this.metadata = Object.create(null)\n\n if (term !== undefined) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = clonedMetadata\n }\n}\n\n/**\n * An instance of lunr.MatchData will be created for every term that matches a\n * document. However only one instance is required in a lunr.Index~Result. This\n * method combines metadata from another instance of lunr.MatchData with this\n * objects metadata.\n *\n * @param {lunr.MatchData} otherMatchData - Another instance of match data to merge with this one.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData.prototype.combine = function (otherMatchData) {\n var terms = Object.keys(otherMatchData.metadata)\n\n for (var i = 0; i < terms.length; i++) {\n var term = terms[i],\n fields = Object.keys(otherMatchData.metadata[term])\n\n if (this.metadata[term] == undefined) {\n this.metadata[term] = Object.create(null)\n }\n\n for (var j = 0; j < fields.length; j++) {\n var field = fields[j],\n keys = Object.keys(otherMatchData.metadata[term][field])\n\n if (this.metadata[term][field] == undefined) {\n this.metadata[term][field] = Object.create(null)\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k]\n\n if (this.metadata[term][field][key] == undefined) {\n this.metadata[term][field][key] = otherMatchData.metadata[term][field][key]\n } else {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(otherMatchData.metadata[term][field][key])\n }\n\n }\n }\n }\n}\n\n/**\n * Add metadata for a term/field pair to this instance of match data.\n *\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n */\nlunr.MatchData.prototype.add = function (term, field, metadata) {\n if (!(term in this.metadata)) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = metadata\n return\n }\n\n if (!(field in this.metadata[term])) {\n this.metadata[term][field] = metadata\n return\n }\n\n var metadataKeys = Object.keys(metadata)\n\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n\n if (key in this.metadata[term][field]) {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(metadata[key])\n } else {\n this.metadata[term][field][key] = metadata[key]\n }\n }\n}\n/**\n * A lunr.Query provides a programmatic way of defining queries to be performed\n * against a {@link lunr.Index}.\n *\n * Prefer constructing a lunr.Query using the {@link lunr.Index#query} method\n * so the query object is pre-initialized with the right index fields.\n *\n * @constructor\n * @property {lunr.Query~Clause[]} clauses - An array of query clauses.\n * @property {string[]} allFields - An array of all available fields in a lunr.Index.\n */\nlunr.Query = function (allFields) {\n this.clauses = []\n this.allFields = allFields\n}\n\n/**\n * Constants for indicating what kind of automatic wildcard insertion will be used when constructing a query clause.\n *\n * This allows wildcards to be added to the beginning and end of a term without having to manually do any string\n * concatenation.\n *\n * The wildcard constants can be bitwise combined to select both leading and trailing wildcards.\n *\n * @constant\n * @default\n * @property {number} wildcard.NONE - The term will have no wildcards inserted, this is the default behaviour\n * @property {number} wildcard.LEADING - Prepend the term with a wildcard, unless a leading wildcard already exists\n * @property {number} wildcard.TRAILING - Append a wildcard to the term, unless a trailing wildcard already exists\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with trailing wildcard\n * query.term('foo', { wildcard: lunr.Query.wildcard.TRAILING })\n * @example query term with leading and trailing wildcard\n * query.term('foo', {\n * wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING\n * })\n */\n\nlunr.Query.wildcard = new String (\"*\")\nlunr.Query.wildcard.NONE = 0\nlunr.Query.wildcard.LEADING = 1\nlunr.Query.wildcard.TRAILING = 2\n\n/**\n * Constants for indicating what kind of presence a term must have in matching documents.\n *\n * @constant\n * @enum {number}\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with required presence\n * query.term('foo', { presence: lunr.Query.presence.REQUIRED })\n */\nlunr.Query.presence = {\n /**\n * Term's presence in a document is optional, this is the default value.\n */\n OPTIONAL: 1,\n\n /**\n * Term's presence in a document is required, documents that do not contain\n * this term will not be returned.\n */\n REQUIRED: 2,\n\n /**\n * Term's presence in a document is prohibited, documents that do contain\n * this term will not be returned.\n */\n PROHIBITED: 3\n}\n\n/**\n * A single clause in a {@link lunr.Query} contains a term and details on how to\n * match that term against a {@link lunr.Index}.\n *\n * @typedef {Object} lunr.Query~Clause\n * @property {string[]} fields - The fields in an index this clause should be matched against.\n * @property {number} [boost=1] - Any boost that should be applied when matching this clause.\n * @property {number} [editDistance] - Whether the term should have fuzzy matching applied, and how fuzzy the match should be.\n * @property {boolean} [usePipeline] - Whether the term should be passed through the search pipeline.\n * @property {number} [wildcard=lunr.Query.wildcard.NONE] - Whether the term should have wildcards appended or prepended.\n * @property {number} [presence=lunr.Query.presence.OPTIONAL] - The terms presence in any matching documents.\n */\n\n/**\n * Adds a {@link lunr.Query~Clause} to this query.\n *\n * Unless the clause contains the fields to be matched all fields will be matched. In addition\n * a default boost of 1 is applied to the clause.\n *\n * @param {lunr.Query~Clause} clause - The clause to add to this query.\n * @see lunr.Query~Clause\n * @returns {lunr.Query}\n */\nlunr.Query.prototype.clause = function (clause) {\n if (!('fields' in clause)) {\n clause.fields = this.allFields\n }\n\n if (!('boost' in clause)) {\n clause.boost = 1\n }\n\n if (!('usePipeline' in clause)) {\n clause.usePipeline = true\n }\n\n if (!('wildcard' in clause)) {\n clause.wildcard = lunr.Query.wildcard.NONE\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.LEADING) && (clause.term.charAt(0) != lunr.Query.wildcard)) {\n clause.term = \"*\" + clause.term\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.TRAILING) && (clause.term.slice(-1) != lunr.Query.wildcard)) {\n clause.term = \"\" + clause.term + \"*\"\n }\n\n if (!('presence' in clause)) {\n clause.presence = lunr.Query.presence.OPTIONAL\n }\n\n this.clauses.push(clause)\n\n return this\n}\n\n/**\n * A negated query is one in which every clause has a presence of\n * prohibited. These queries require some special processing to return\n * the expected results.\n *\n * @returns boolean\n */\nlunr.Query.prototype.isNegated = function () {\n for (var i = 0; i < this.clauses.length; i++) {\n if (this.clauses[i].presence != lunr.Query.presence.PROHIBITED) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * Adds a term to the current query, under the covers this will create a {@link lunr.Query~Clause}\n * to the list of clauses that make up this query.\n *\n * The term is used as is, i.e. no tokenization will be performed by this method. Instead conversion\n * to a token or token-like string should be done before calling this method.\n *\n * The term will be converted to a string by calling `toString`. Multiple terms can be passed as an\n * array, each term in the array will share the same options.\n *\n * @param {object|object[]} term - The term(s) to add to the query.\n * @param {object} [options] - Any additional properties to add to the query clause.\n * @returns {lunr.Query}\n * @see lunr.Query#clause\n * @see lunr.Query~Clause\n * @example adding a single term to a query\n * query.term(\"foo\")\n * @example adding a single term to a query and specifying search fields, term boost and automatic trailing wildcard\n * query.term(\"foo\", {\n * fields: [\"title\"],\n * boost: 10,\n * wildcard: lunr.Query.wildcard.TRAILING\n * })\n * @example using lunr.tokenizer to convert a string to tokens before using them as terms\n * query.term(lunr.tokenizer(\"foo bar\"))\n */\nlunr.Query.prototype.term = function (term, options) {\n if (Array.isArray(term)) {\n term.forEach(function (t) { this.term(t, lunr.utils.clone(options)) }, this)\n return this\n }\n\n var clause = options || {}\n clause.term = term.toString()\n\n this.clause(clause)\n\n return this\n}\nlunr.QueryParseError = function (message, start, end) {\n this.name = \"QueryParseError\"\n this.message = message\n this.start = start\n this.end = end\n}\n\nlunr.QueryParseError.prototype = new Error\nlunr.QueryLexer = function (str) {\n this.lexemes = []\n this.str = str\n this.length = str.length\n this.pos = 0\n this.start = 0\n this.escapeCharPositions = []\n}\n\nlunr.QueryLexer.prototype.run = function () {\n var state = lunr.QueryLexer.lexText\n\n while (state) {\n state = state(this)\n }\n}\n\nlunr.QueryLexer.prototype.sliceString = function () {\n var subSlices = [],\n sliceStart = this.start,\n sliceEnd = this.pos\n\n for (var i = 0; i < this.escapeCharPositions.length; i++) {\n sliceEnd = this.escapeCharPositions[i]\n subSlices.push(this.str.slice(sliceStart, sliceEnd))\n sliceStart = sliceEnd + 1\n }\n\n subSlices.push(this.str.slice(sliceStart, this.pos))\n this.escapeCharPositions.length = 0\n\n return subSlices.join('')\n}\n\nlunr.QueryLexer.prototype.emit = function (type) {\n this.lexemes.push({\n type: type,\n str: this.sliceString(),\n start: this.start,\n end: this.pos\n })\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.escapeCharacter = function () {\n this.escapeCharPositions.push(this.pos - 1)\n this.pos += 1\n}\n\nlunr.QueryLexer.prototype.next = function () {\n if (this.pos >= this.length) {\n return lunr.QueryLexer.EOS\n }\n\n var char = this.str.charAt(this.pos)\n this.pos += 1\n return char\n}\n\nlunr.QueryLexer.prototype.width = function () {\n return this.pos - this.start\n}\n\nlunr.QueryLexer.prototype.ignore = function () {\n if (this.start == this.pos) {\n this.pos += 1\n }\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.backup = function () {\n this.pos -= 1\n}\n\nlunr.QueryLexer.prototype.acceptDigitRun = function () {\n var char, charCode\n\n do {\n char = this.next()\n charCode = char.charCodeAt(0)\n } while (charCode > 47 && charCode < 58)\n\n if (char != lunr.QueryLexer.EOS) {\n this.backup()\n }\n}\n\nlunr.QueryLexer.prototype.more = function () {\n return this.pos < this.length\n}\n\nlunr.QueryLexer.EOS = 'EOS'\nlunr.QueryLexer.FIELD = 'FIELD'\nlunr.QueryLexer.TERM = 'TERM'\nlunr.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE'\nlunr.QueryLexer.BOOST = 'BOOST'\nlunr.QueryLexer.PRESENCE = 'PRESENCE'\n\nlunr.QueryLexer.lexField = function (lexer) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.FIELD)\n lexer.ignore()\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexTerm = function (lexer) {\n if (lexer.width() > 1) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.TERM)\n }\n\n lexer.ignore()\n\n if (lexer.more()) {\n return lunr.QueryLexer.lexText\n }\n}\n\nlunr.QueryLexer.lexEditDistance = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.EDIT_DISTANCE)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexBoost = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.BOOST)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexEOS = function (lexer) {\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n}\n\n// This matches the separator used when tokenising fields\n// within a document. These should match otherwise it is\n// not possible to search for some tokens within a document.\n//\n// It is possible for the user to change the separator on the\n// tokenizer so it _might_ clash with any other of the special\n// characters already used within the search string, e.g. :.\n//\n// This means that it is possible to change the separator in\n// such a way that makes some words unsearchable using a search\n// string.\nlunr.QueryLexer.termSeparator = lunr.tokenizer.separator\n\nlunr.QueryLexer.lexText = function (lexer) {\n while (true) {\n var char = lexer.next()\n\n if (char == lunr.QueryLexer.EOS) {\n return lunr.QueryLexer.lexEOS\n }\n\n // Escape character is '\\'\n if (char.charCodeAt(0) == 92) {\n lexer.escapeCharacter()\n continue\n }\n\n if (char == \":\") {\n return lunr.QueryLexer.lexField\n }\n\n if (char == \"~\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexEditDistance\n }\n\n if (char == \"^\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexBoost\n }\n\n // \"+\" indicates term presence is required\n // checking for length to ensure that only\n // leading \"+\" are considered\n if (char == \"+\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n // \"-\" indicates term presence is prohibited\n // checking for length to ensure that only\n // leading \"-\" are considered\n if (char == \"-\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n if (char.match(lunr.QueryLexer.termSeparator)) {\n return lunr.QueryLexer.lexTerm\n }\n }\n}\n\nlunr.QueryParser = function (str, query) {\n this.lexer = new lunr.QueryLexer (str)\n this.query = query\n this.currentClause = {}\n this.lexemeIdx = 0\n}\n\nlunr.QueryParser.prototype.parse = function () {\n this.lexer.run()\n this.lexemes = this.lexer.lexemes\n\n var state = lunr.QueryParser.parseClause\n\n while (state) {\n state = state(this)\n }\n\n return this.query\n}\n\nlunr.QueryParser.prototype.peekLexeme = function () {\n return this.lexemes[this.lexemeIdx]\n}\n\nlunr.QueryParser.prototype.consumeLexeme = function () {\n var lexeme = this.peekLexeme()\n this.lexemeIdx += 1\n return lexeme\n}\n\nlunr.QueryParser.prototype.nextClause = function () {\n var completedClause = this.currentClause\n this.query.clause(completedClause)\n this.currentClause = {}\n}\n\nlunr.QueryParser.parseClause = function (parser) {\n var lexeme = parser.peekLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.type) {\n case lunr.QueryLexer.PRESENCE:\n return lunr.QueryParser.parsePresence\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expected either a field or a term, found \" + lexeme.type\n\n if (lexeme.str.length >= 1) {\n errorMessage += \" with value '\" + lexeme.str + \"'\"\n }\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n}\n\nlunr.QueryParser.parsePresence = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.str) {\n case \"-\":\n parser.currentClause.presence = lunr.Query.presence.PROHIBITED\n break\n case \"+\":\n parser.currentClause.presence = lunr.Query.presence.REQUIRED\n break\n default:\n var errorMessage = \"unrecognised presence operator'\" + lexeme.str + \"'\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term or field, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term or field, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseField = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n if (parser.query.allFields.indexOf(lexeme.str) == -1) {\n var possibleFields = parser.query.allFields.map(function (f) { return \"'\" + f + \"'\" }).join(', '),\n errorMessage = \"unrecognised field '\" + lexeme.str + \"', possible fields: \" + possibleFields\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.fields = [lexeme.str]\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseTerm = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n parser.currentClause.term = lexeme.str.toLowerCase()\n\n if (lexeme.str.indexOf(\"*\") != -1) {\n parser.currentClause.usePipeline = false\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseEditDistance = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var editDistance = parseInt(lexeme.str, 10)\n\n if (isNaN(editDistance)) {\n var errorMessage = \"edit distance must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.editDistance = editDistance\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseBoost = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var boost = parseInt(lexeme.str, 10)\n\n if (isNaN(boost)) {\n var errorMessage = \"boost must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.boost = boost\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\n /**\n * export the module via AMD, CommonJS or as a browser global\n * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js\n */\n ;(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory)\n } else if (typeof exports === 'object') {\n /**\n * Node. Does not work with strict CommonJS, but\n * only CommonJS-like enviroments that support module.exports,\n * like Node.\n */\n module.exports = factory()\n } else {\n // Browser globals (root is window)\n root.lunr = factory()\n }\n }(this, function () {\n /**\n * Just return a value to define the module export.\n * This example returns an object, but the module\n * can return a function as the exported value.\n */\n return lunr\n }))\n})();\n", "/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport lunr from \"lunr\"\n\nimport \"~/polyfills\"\n\nimport { Search, SearchIndexConfig } from \"../../_\"\nimport {\n SearchMessage,\n SearchMessageType\n} from \"../message\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Add support for usage with `iframe-worker` polyfill\n *\n * While `importScripts` is synchronous when executed inside of a web worker,\n * it's not possible to provide a synchronous polyfilled implementation. The\n * cool thing is that awaiting a non-Promise is a noop, so extending the type\n * definition to return a `Promise` shouldn't break anything.\n *\n * @see https://bit.ly/2PjDnXi - GitHub comment\n */\ndeclare global {\n function importScripts(...urls: string[]): Promise | void\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Search index\n */\nlet index: Search\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch (= import) multi-language support through `lunr-languages`\n *\n * This function automatically imports the stemmers necessary to process the\n * languages, which are defined through the search index configuration.\n *\n * If the worker runs inside of an `iframe` (when using `iframe-worker` as\n * a shim), the base URL for the stemmers to be loaded must be determined by\n * searching for the first `script` element with a `src` attribute, which will\n * contain the contents of this script.\n *\n * @param config - Search index configuration\n *\n * @returns Promise resolving with no result\n */\nasync function setupSearchLanguages(\n config: SearchIndexConfig\n): Promise {\n let base = \"../lunr\"\n\n /* Detect `iframe-worker` and fix base URL */\n if (typeof parent !== \"undefined\" && \"IFrameWorker\" in parent) {\n const worker = document.querySelector(\"script[src]\")!\n const [path] = worker.src.split(\"/worker\")\n\n /* Prefix base with path */\n base = base.replace(\"..\", path)\n }\n\n /* Add scripts for languages */\n const scripts = []\n for (const lang of config.lang) {\n switch (lang) {\n\n /* Add segmenter for Japanese */\n case \"ja\":\n scripts.push(`${base}/tinyseg.js`)\n break\n\n /* Add segmenter for Hindi and Thai */\n case \"hi\":\n case \"th\":\n scripts.push(`${base}/wordcut.js`)\n break\n }\n\n /* Add language support */\n if (lang !== \"en\")\n scripts.push(`${base}/min/lunr.${lang}.min.js`)\n }\n\n /* Add multi-language support */\n if (config.lang.length > 1)\n scripts.push(`${base}/min/lunr.multi.min.js`)\n\n /* Load scripts synchronously */\n if (scripts.length)\n await importScripts(\n `${base}/min/lunr.stemmer.support.min.js`,\n ...scripts\n )\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Message handler\n *\n * @param message - Source message\n *\n * @returns Target message\n */\nexport async function handler(\n message: SearchMessage\n): Promise {\n switch (message.type) {\n\n /* Search setup message */\n case SearchMessageType.SETUP:\n await setupSearchLanguages(message.data.config)\n index = new Search(message.data)\n return {\n type: SearchMessageType.READY\n }\n\n /* Search query message */\n case SearchMessageType.QUERY:\n return {\n type: SearchMessageType.RESULT,\n data: index ? index.search(message.data) : { items: [] }\n }\n\n /* All other messages */\n default:\n throw new TypeError(\"Invalid message type\")\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Worker\n * ------------------------------------------------------------------------- */\n\n/* @ts-expect-error - expose Lunr.js in global scope, or stemmers won't work */\nself.lunr = lunr\n\n/* Handle messages */\naddEventListener(\"message\", async ev => {\n postMessage(await handler(ev.data))\n})\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Polyfills\n * ------------------------------------------------------------------------- */\n\n/* Polyfill `Object.entries` */\nif (!Object.entries)\n Object.entries = function (obj: object) {\n const data: [string, string][] = []\n for (const key of Object.keys(obj))\n // @ts-expect-error - ignore property access warning\n data.push([key, obj[key]])\n\n /* Return entries */\n return data\n }\n\n/* Polyfill `Object.values` */\nif (!Object.values)\n Object.values = function (obj: object) {\n const data: string[] = []\n for (const key of Object.keys(obj))\n // @ts-expect-error - ignore property access warning\n data.push(obj[key])\n\n /* Return values */\n return data\n }\n\n/* ------------------------------------------------------------------------- */\n\n/* Polyfills for `Element` */\nif (typeof Element !== \"undefined\") {\n\n /* Polyfill `Element.scrollTo` */\n if (!Element.prototype.scrollTo)\n Element.prototype.scrollTo = function (\n x?: ScrollToOptions | number, y?: number\n ): void {\n if (typeof x === \"object\") {\n this.scrollLeft = x.left!\n this.scrollTop = x.top!\n } else {\n this.scrollLeft = x!\n this.scrollTop = y!\n }\n }\n\n /* Polyfill `Element.replaceWith` */\n if (!Element.prototype.replaceWith)\n Element.prototype.replaceWith = function (\n ...nodes: Array\n ): void {\n const parent = this.parentNode\n if (parent) {\n if (nodes.length === 0)\n parent.removeChild(this)\n\n /* Replace children and create text nodes */\n for (let i = nodes.length - 1; i >= 0; i--) {\n let node = nodes[i]\n if (typeof node !== \"object\")\n node = document.createTextNode(node)\n else if (node.parentNode)\n node.parentNode.removeChild(node)\n\n /* Replace child or insert before previous sibling */\n if (!i)\n parent.replaceChild(node, this)\n else\n parent.insertBefore(this.previousSibling!, node)\n }\n }\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport escapeHTML from \"escape-html\"\n\nimport { SearchIndexDocument } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search document\n */\nexport interface SearchDocument extends SearchIndexDocument {\n parent?: SearchIndexDocument /* Parent article */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search document mapping\n */\nexport type SearchDocumentMap = Map\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search document mapping\n *\n * @param docs - Search index documents\n *\n * @returns Search document map\n */\nexport function setupSearchDocumentMap(\n docs: SearchIndexDocument[]\n): SearchDocumentMap {\n const documents = new Map()\n const parents = new Set()\n for (const doc of docs) {\n const [path, hash] = doc.location.split(\"#\")\n\n /* Extract location and title */\n const location = doc.location\n const title = doc.title\n\n /* Escape and cleanup text */\n const text = escapeHTML(doc.text)\n .replace(/\\s+(?=[,.:;!?])/g, \"\")\n .replace(/\\s+/g, \" \")\n\n /* Handle section */\n if (hash) {\n const parent = documents.get(path)!\n\n /* Ignore first section, override article */\n if (!parents.has(parent)) {\n parent.title = doc.title\n parent.text = text\n\n /* Remember that we processed the article */\n parents.add(parent)\n\n /* Add subsequent section */\n } else {\n documents.set(location, {\n location,\n title,\n text,\n parent\n })\n }\n\n /* Add article */\n } else {\n documents.set(location, {\n location,\n title,\n text\n })\n }\n }\n return documents\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport escapeHTML from \"escape-html\"\n\nimport { SearchIndexConfig } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search highlight function\n *\n * @param value - Value\n *\n * @returns Highlighted value\n */\nexport type SearchHighlightFn = (value: string) => string\n\n/**\n * Search highlight factory function\n *\n * @param query - Query value\n *\n * @returns Search highlight function\n */\nexport type SearchHighlightFactoryFn = (query: string) => SearchHighlightFn\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search highlighter\n *\n * @param config - Search index configuration\n * @param escape - Whether to escape HTML\n *\n * @returns Search highlight factory function\n */\nexport function setupSearchHighlighter(\n config: SearchIndexConfig, escape: boolean\n): SearchHighlightFactoryFn {\n const separator = new RegExp(config.separator, \"img\")\n const highlight = (_: unknown, data: string, term: string) => {\n return `${data}${term}`\n }\n\n /* Return factory function */\n return (query: string) => {\n query = query\n .replace(/[\\s*+\\-:~^]+/g, \" \")\n .trim()\n\n /* Create search term match expression */\n const match = new RegExp(`(^|${config.separator})(${\n query\n .replace(/[|\\\\{}()[\\]^$+*?.-]/g, \"\\\\$&\")\n .replace(separator, \"|\")\n })`, \"img\")\n\n /* Highlight string value */\n return value => (\n escape\n ? escapeHTML(value)\n : value\n )\n .replace(match, highlight)\n .replace(/<\\/mark>(\\s+)]*>/img, \"$1\")\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search query clause\n */\nexport interface SearchQueryClause {\n presence: lunr.Query.presence /* Clause presence */\n term: string /* Clause term */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search query terms\n */\nexport type SearchQueryTerms = Record\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Parse a search query for analysis\n *\n * @param value - Query value\n *\n * @returns Search query clauses\n */\nexport function parseSearchQuery(\n value: string\n): SearchQueryClause[] {\n const query = new (lunr as any).Query([\"title\", \"text\"])\n const parser = new (lunr as any).QueryParser(value, query)\n\n /* Parse and return query clauses */\n parser.parse()\n return query.clauses\n}\n\n/**\n * Analyze the search query clauses in regard to the search terms found\n *\n * @param query - Search query clauses\n * @param terms - Search terms\n *\n * @returns Search query terms\n */\nexport function getSearchQueryTerms(\n query: SearchQueryClause[], terms: string[]\n): SearchQueryTerms {\n const clauses = new Set(query)\n\n /* Match query clauses against terms */\n const result: SearchQueryTerms = {}\n for (let t = 0; t < terms.length; t++)\n for (const clause of clauses)\n if (terms[t].startsWith(clause.term)) {\n result[clause.term] = true\n clauses.delete(clause)\n }\n\n /* Annotate unmatched non-stopword query clauses */\n for (const clause of clauses)\n if (lunr.stopWordFilter?.(clause.term as any))\n result[clause.term] = false\n\n /* Return query terms */\n return result\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n SearchDocument,\n SearchDocumentMap,\n setupSearchDocumentMap\n} from \"../document\"\nimport {\n SearchHighlightFactoryFn,\n setupSearchHighlighter\n} from \"../highlighter\"\nimport { SearchOptions } from \"../options\"\nimport {\n SearchQueryTerms,\n getSearchQueryTerms,\n parseSearchQuery\n} from \"../query\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search index configuration\n */\nexport interface SearchIndexConfig {\n lang: string[] /* Search languages */\n separator: string /* Search separator */\n}\n\n/**\n * Search index document\n */\nexport interface SearchIndexDocument {\n location: string /* Document location */\n title: string /* Document title */\n text: string /* Document text */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search index\n *\n * This interfaces describes the format of the `search_index.json` file which\n * is automatically built by the MkDocs search plugin.\n */\nexport interface SearchIndex {\n config: SearchIndexConfig /* Search index configuration */\n docs: SearchIndexDocument[] /* Search index documents */\n options: SearchOptions /* Search options */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search metadata\n */\nexport interface SearchMetadata {\n score: number /* Score (relevance) */\n terms: SearchQueryTerms /* Search query terms */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search result document\n */\nexport type SearchResultDocument = SearchDocument & SearchMetadata\n\n/**\n * Search result item\n */\nexport type SearchResultItem = SearchResultDocument[]\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search result\n */\nexport interface SearchResult {\n items: SearchResultItem[] /* Search result items */\n suggestions?: string[] /* Search suggestions */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Compute the difference of two lists of strings\n *\n * @param a - 1st list of strings\n * @param b - 2nd list of strings\n *\n * @returns Difference\n */\nfunction difference(a: string[], b: string[]): string[] {\n const [x, y] = [new Set(a), new Set(b)]\n return [\n ...new Set([...x].filter(value => !y.has(value)))\n ]\n}\n\n/* ----------------------------------------------------------------------------\n * Class\n * ------------------------------------------------------------------------- */\n\n/**\n * Search index\n */\nexport class Search {\n\n /**\n * Search document mapping\n *\n * A mapping of URLs (including hash fragments) to the actual articles and\n * sections of the documentation. The search document mapping must be created\n * regardless of whether the index was prebuilt or not, as Lunr.js itself\n * only stores the actual index.\n */\n protected documents: SearchDocumentMap\n\n /**\n * Search highlight factory function\n */\n protected highlight: SearchHighlightFactoryFn\n\n /**\n * The underlying Lunr.js search index\n */\n protected index: lunr.Index\n\n /**\n * Search options\n */\n protected options: SearchOptions\n\n /**\n * Create the search integration\n *\n * @param data - Search index\n */\n public constructor({ config, docs, options }: SearchIndex) {\n this.options = options\n\n /* Set up document map and highlighter factory */\n this.documents = setupSearchDocumentMap(docs)\n this.highlight = setupSearchHighlighter(config, false)\n\n /* Set separator for tokenizer */\n lunr.tokenizer.separator = new RegExp(config.separator)\n\n /* Create search index */\n this.index = lunr(function () {\n\n /* Set up multi-language support */\n if (config.lang.length === 1 && config.lang[0] !== \"en\") {\n this.use((lunr as any)[config.lang[0]])\n } else if (config.lang.length > 1) {\n this.use((lunr as any).multiLanguage(...config.lang))\n }\n\n /* Compute functions to be removed from the pipeline */\n const fns = difference([\n \"trimmer\", \"stopWordFilter\", \"stemmer\"\n ], options.pipeline)\n\n /* Remove functions from the pipeline for registered languages */\n for (const lang of config.lang.map(language => (\n language === \"en\" ? lunr : (lunr as any)[language]\n ))) {\n for (const fn of fns) {\n this.pipeline.remove(lang[fn])\n this.searchPipeline.remove(lang[fn])\n }\n }\n\n /* Set up reference */\n this.ref(\"location\")\n\n /* Set up fields */\n this.field(\"title\", { boost: 1e3 })\n this.field(\"text\")\n\n /* Index documents */\n for (const doc of docs)\n this.add(doc)\n })\n }\n\n /**\n * Search for matching documents\n *\n * The search index which MkDocs provides is divided up into articles, which\n * contain the whole content of the individual pages, and sections, which only\n * contain the contents of the subsections obtained by breaking the individual\n * pages up at `h1` ... `h6`. As there may be many sections on different pages\n * with identical titles (for example within this very project, e.g. \"Usage\"\n * or \"Installation\"), they need to be put into the context of the containing\n * page. For this reason, section results are grouped within their respective\n * articles which are the top-level results that are returned.\n *\n * @param query - Query value\n *\n * @returns Search results\n */\n public search(query: string): SearchResult {\n if (query) {\n try {\n const highlight = this.highlight(query)\n\n /* Parse query to extract clauses for analysis */\n const clauses = parseSearchQuery(query)\n .filter(clause => (\n clause.presence !== lunr.Query.presence.PROHIBITED\n ))\n\n /* Perform search and post-process results */\n const groups = this.index.search(`${query}*`)\n\n /* Apply post-query boosts based on title and search query terms */\n .reduce((item, { ref, score, matchData }) => {\n const document = this.documents.get(ref)\n if (typeof document !== \"undefined\") {\n const { location, title, text, parent } = document\n\n /* Compute and analyze search query terms */\n const terms = getSearchQueryTerms(\n clauses,\n Object.keys(matchData.metadata)\n )\n\n /* Highlight title and text and apply post-query boosts */\n const boost = +!parent + +Object.values(terms).every(t => t)\n item.push({\n location,\n title: highlight(title),\n text: highlight(text),\n score: score * (1 + boost),\n terms\n })\n }\n return item\n }, [])\n\n /* Sort search results again after applying boosts */\n .sort((a, b) => b.score - a.score)\n\n /* Group search results by page */\n .reduce((items, result) => {\n const document = this.documents.get(result.location)\n if (typeof document !== \"undefined\") {\n const ref = \"parent\" in document\n ? document.parent!.location\n : document.location\n items.set(ref, [...items.get(ref) || [], result])\n }\n return items\n }, new Map())\n\n /* Generate search suggestions, if desired */\n let suggestions: string[] | undefined\n if (this.options.suggestions) {\n const titles = this.index.query(builder => {\n for (const clause of clauses)\n builder.term(clause.term, {\n fields: [\"title\"],\n presence: lunr.Query.presence.REQUIRED,\n wildcard: lunr.Query.wildcard.TRAILING\n })\n })\n\n /* Retrieve suggestions for best match */\n suggestions = titles.length\n ? Object.keys(titles[0].matchData.metadata)\n : []\n }\n\n /* Return items and suggestions */\n return {\n items: [...groups.values()],\n ...typeof suggestions !== \"undefined\" && { suggestions }\n }\n\n /* Log errors to console (for now) */\n } catch {\n console.warn(`Invalid query: ${query} \u2013 see https://bit.ly/2s3ChXG`)\n }\n }\n\n /* Return nothing in case of error or empty query */\n return { items: [] }\n }\n}\n"], + "mappings": "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", + "names": [] +} diff --git a/docs/assets/manifest.json b/docs/assets/manifest.json new file mode 100644 index 00000000..234962d6 --- /dev/null +++ b/docs/assets/manifest.json @@ -0,0 +1,7 @@ +{ + "assets/javascripts/bundle.js": "assets/javascripts/bundle.js", + "assets/javascripts/vendor.js": "assets/javascripts/vendor.js", + "assets/javascripts/worker/search.js": "assets/javascripts/worker/search.js", + "assets/stylesheets/main.css": "assets/stylesheets/main.css", + "assets/stylesheets/palette.css": "assets/stylesheets/palette.css" +} \ No newline at end of file diff --git a/docs/assets/stylesheets/main.c8609f9b.min.css b/docs/assets/stylesheets/main.c8609f9b.min.css new file mode 100644 index 00000000..d3b3efa7 --- /dev/null +++ b/docs/assets/stylesheets/main.c8609f9b.min.css @@ -0,0 +1,3 @@ +html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none}body{margin:0}hr{box-sizing:content-box;overflow:visible}a,button,label,input{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}small{font-size:80%}sub,sup{position:relative;font-size:80%;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}table{border-collapse:separate;border-spacing:0}td,th{font-weight:normal;vertical-align:top}button{margin:0;padding:0;font-size:inherit;background:transparent;border:0}input{border:0;outline:0}:root{--md-default-fg-color: hsla(0, 0%, 0%, 0.87);--md-default-fg-color--light: hsla(0, 0%, 0%, 0.54);--md-default-fg-color--lighter: hsla(0, 0%, 0%, 0.26);--md-default-fg-color--lightest: hsla(0, 0%, 0%, 0.07);--md-default-bg-color: hsla(0, 0%, 100%, 1);--md-default-bg-color--light: hsla(0, 0%, 100%, 0.7);--md-default-bg-color--lighter: hsla(0, 0%, 100%, 0.3);--md-default-bg-color--lightest: hsla(0, 0%, 100%, 0.12);--md-primary-fg-color: hsla(231deg, 48%, 48%, 1);--md-primary-fg-color--light: hsla(230deg, 44%, 64%, 1);--md-primary-fg-color--dark: hsla(232deg, 54%, 41%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light);--md-accent-fg-color: hsla(231deg, 99%, 66%, 1);--md-accent-fg-color--transparent: hsla(231deg, 99%, 66%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light);--md-code-bg-color: hsla(0, 0%, 96%, 1);--md-code-fg-color: hsla(200, 18%, 26%, 1)}.md-icon svg{display:block;width:1.2rem;height:1.2rem;margin:0 auto;fill:currentColor}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,input{color:var(--md-default-fg-color);font-feature-settings:"kern","liga";font-family:-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif}code,pre,kbd{color:var(--md-default-fg-color);font-feature-settings:"kern";font-family:SFMono-Regular,Consolas,Menlo,monospace}.md-typeset{font-size:.8rem;line-height:1.6;-webkit-print-color-adjust:exact;color-adjust:exact}.md-typeset p,.md-typeset ul,.md-typeset ol,.md-typeset blockquote{margin:1em 0}.md-typeset h1{margin:0 0 2rem;color:var(--md-default-fg-color--light);font-weight:300;font-size:1.5625rem;line-height:1.3;letter-spacing:-0.01em}.md-typeset h2{margin:2rem 0 .8rem;font-weight:300;font-size:1.25rem;line-height:1.4;letter-spacing:-0.01em}.md-typeset h3{margin:1.6rem 0 .8rem;font-weight:400;font-size:1rem;line-height:1.5;letter-spacing:-0.01em}.md-typeset h2+h3{margin-top:.8rem}.md-typeset h4{margin:.8rem 0;font-weight:700;font-size:.8rem;letter-spacing:-0.01em}.md-typeset h5,.md-typeset h6{margin:.8rem 0;color:var(--md-default-fg-color--light);font-weight:700;font-size:.64rem;letter-spacing:-0.01em}.md-typeset h5{text-transform:uppercase}.md-typeset hr{margin:1.5em 0;border-bottom:.05rem dotted var(--md-default-fg-color--lighter)}.md-typeset a{color:var(--md-primary-fg-color);word-break:break-word}.md-typeset a,.md-typeset a::before{transition:color 125ms}.md-typeset a:focus,.md-typeset a:hover{color:var(--md-accent-fg-color)}.md-typeset code,.md-typeset pre,.md-typeset kbd{color:var(--md-code-fg-color);direction:ltr}@media print{.md-typeset code,.md-typeset pre,.md-typeset kbd{white-space:pre-wrap}}.md-typeset code{padding:0 .2941176471em;font-size:.85em;word-break:break-word;background-color:var(--md-code-bg-color);border-radius:.1rem;-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset h1 code,.md-typeset h2 code,.md-typeset h3 code,.md-typeset h4 code,.md-typeset h5 code,.md-typeset h6 code{margin:initial;padding:initial;background-color:transparent;box-shadow:none}.md-typeset a>code{color:currentColor}.md-typeset pre{position:relative;margin:1em 0;line-height:1.4}.md-typeset pre>code{display:block;margin:0;padding:.525rem 1.1764705882em;overflow:auto;word-break:normal;box-shadow:none;-webkit-box-decoration-break:slice;box-decoration-break:slice;touch-action:auto}.md-typeset pre>code::-webkit-scrollbar{width:.2rem;height:.2rem}.md-typeset pre>code::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-typeset pre>code::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@media screen and (max-width: 44.9375em){.md-typeset>pre{margin:1em -0.8rem}.md-typeset>pre code{border-radius:0}}.md-typeset kbd{display:inline-block;padding:0 .6666666667em;font-size:.75em;line-height:1.5;vertical-align:text-top;word-break:break-word;border-radius:.1rem;box-shadow:0 .1rem 0 .05rem var(--md-default-fg-color--lighter),0 .1rem 0 var(--md-default-fg-color--lighter),inset 0 -0.1rem .2rem var(--md-default-bg-color)}.md-typeset mark{padding:0 .25em;word-break:break-word;background-color:rgba(255,235,59,.5);border-radius:.1rem;-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset abbr{text-decoration:none;border-bottom:.05rem dotted var(--md-default-fg-color--light);cursor:help}.md-typeset small{opacity:.75}.md-typeset sup,.md-typeset sub{margin-left:.078125em}[dir=rtl] .md-typeset sup,[dir=rtl] .md-typeset sub{margin-right:.078125em;margin-left:initial}.md-typeset blockquote{padding-left:.6rem;color:var(--md-default-fg-color--light);border-left:.2rem solid var(--md-default-fg-color--lighter)}[dir=rtl] .md-typeset blockquote{padding-right:.6rem;padding-left:initial;border-right:.2rem solid var(--md-default-fg-color--lighter);border-left:initial}.md-typeset ul{list-style-type:disc}.md-typeset ul,.md-typeset ol{margin-left:.625em;padding:0}[dir=rtl] .md-typeset ul,[dir=rtl] .md-typeset ol{margin-right:.625em;margin-left:initial}.md-typeset ul ol,.md-typeset ol ol{list-style-type:lower-alpha}.md-typeset ul ol ol,.md-typeset ol ol ol{list-style-type:lower-roman}.md-typeset ul li,.md-typeset ol li{margin-bottom:.5em;margin-left:1.25em}[dir=rtl] .md-typeset ul li,[dir=rtl] .md-typeset ol li{margin-right:1.25em;margin-left:initial}.md-typeset ul li p,.md-typeset ul li blockquote,.md-typeset ol li p,.md-typeset ol li blockquote{margin:.5em 0}.md-typeset ul li:last-child,.md-typeset ol li:last-child{margin-bottom:0}.md-typeset ul li ul,.md-typeset ul li ol,.md-typeset ol li ul,.md-typeset ol li ol{margin:.5em 0 .5em .625em}[dir=rtl] .md-typeset ul li ul,[dir=rtl] .md-typeset ul li ol,[dir=rtl] .md-typeset ol li ul,[dir=rtl] .md-typeset ol li ol{margin-right:.625em;margin-left:initial}.md-typeset dd{margin:1em 0 1em 1.875em}[dir=rtl] .md-typeset dd{margin-right:1.875em;margin-left:initial}.md-typeset iframe,.md-typeset img,.md-typeset svg{max-width:100%;height:auto}.md-typeset table:not([class]){display:inline-block;max-width:100%;overflow:auto;font-size:.64rem;background:var(--md-default-bg-color);border-radius:.1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .05rem rgba(0,0,0,.1);touch-action:auto}.md-typeset table:not([class])+*{margin-top:1.5em}.md-typeset table:not([class]) th:not([align]),.md-typeset table:not([class]) td:not([align]){text-align:left}[dir=rtl] .md-typeset table:not([class]) th:not([align]),[dir=rtl] .md-typeset table:not([class]) td:not([align]){text-align:right}.md-typeset table:not([class]) th{min-width:5rem;padding:.6rem .8rem;color:var(--md-default-bg-color);vertical-align:top;background-color:var(--md-default-fg-color--light)}.md-typeset table:not([class]) td{padding:.6rem .8rem;vertical-align:top;border-top:.05rem solid var(--md-default-fg-color--lightest)}.md-typeset table:not([class]) tr{transition:background-color 125ms}.md-typeset table:not([class]) tr:hover{background-color:rgba(0,0,0,.035);box-shadow:0 .05rem 0 var(--md-default-bg-color) inset}.md-typeset table:not([class]) tr:first-child td{border-top:0}.md-typeset table:not([class]) a{word-break:normal}.md-typeset__scrollwrap{margin:1em -0.8rem;overflow-x:auto;touch-action:auto}.md-typeset__table{display:inline-block;margin-bottom:.5em;padding:0 .8rem}.md-typeset__table table{display:table;width:100%;margin:0;overflow:hidden}html{height:100%;overflow-x:hidden;font-size:125%;background-color:var(--md-default-bg-color)}@media screen and (min-width: 100em){html{font-size:137.5%}}@media screen and (min-width: 125em){html{font-size:150%}}body{position:relative;display:flex;flex-direction:column;width:100%;min-height:100%;font-size:.5rem}@media screen and (max-width: 59.9375em){body[data-md-state=lock]{position:fixed}}@media print{body{display:block}}hr{display:block;height:.05rem;padding:0;border:0}.md-grid{max-width:61rem;margin-right:auto;margin-left:auto}.md-container{display:flex;flex-direction:column;flex-grow:1}@media print{.md-container{display:block}}.md-main{flex-grow:1}.md-main__inner{display:flex;height:100%;margin-top:1.5rem}.md-ellipsis{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.md-toggle{display:none}.md-overlay{position:fixed;top:0;z-index:3;width:0;height:0;background-color:var(--md-default-fg-color--light);opacity:0;transition:width 0ms 250ms,height 0ms 250ms,opacity 250ms}@media screen and (max-width: 76.1875em){[data-md-toggle=drawer]:checked~.md-overlay{width:100%;height:100%;opacity:1;transition:width 0ms,height 0ms,opacity 250ms}}.md-skip{position:fixed;z-index:-1;margin:.5rem;padding:.3rem .5rem;color:var(--md-default-bg-color);font-size:.64rem;background-color:var(--md-default-fg-color);border-radius:.1rem;transform:translateY(0.4rem);opacity:0}.md-skip:focus{z-index:10;transform:translateY(0);opacity:1;transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1),opacity 175ms 75ms}@page{margin:25mm}.md-announce{overflow:auto;background-color:var(--md-default-fg-color)}.md-announce__inner{margin:.6rem auto;padding:0 .8rem;color:var(--md-default-bg-color);font-size:.7rem}@media print{.md-announce{display:none}}.md-typeset .md-button{display:inline-block;padding:.625em 2em;color:var(--md-primary-fg-color);font-weight:700;border:.1rem solid currentColor;border-radius:.1rem;transition:color 125ms,background-color 125ms,border-color 125ms}.md-typeset .md-button--primary{color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color);border-color:var(--md-primary-fg-color)}.md-typeset .md-button:focus,.md-typeset .md-button:hover{color:var(--md-accent-bg-color);background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color)}.md-clipboard{position:absolute;top:.4rem;right:.5em;z-index:1;width:1.5em;height:1.5em;color:var(--md-default-fg-color--lightest);border-radius:.1rem;cursor:pointer;transition:color 125ms}@media print{.md-clipboard{display:none}}.md-clipboard svg{width:1.125em;height:1.125em}pre:hover .md-clipboard{color:var(--md-default-fg-color--light)}pre .md-clipboard:focus,pre .md-clipboard:hover{color:var(--md-accent-fg-color)}.md-content{flex:1;max-width:100%}@media screen and (min-width: 60em)and (max-width: 76.1875em){.md-content{max-width:calc(100% - 12.1rem)}}@media screen and (min-width: 76.25em){.md-content{max-width:calc(100% - 12.1rem * 2)}}.md-content__inner{margin:0 .8rem 1.2rem;padding-top:.6rem}@media screen and (min-width: 76.25em){.md-content__inner{margin-right:1.2rem;margin-left:1.2rem}}.md-content__inner::before{display:block;height:.4rem;content:""}.md-content__inner>:last-child{margin-bottom:0}.md-content__button{float:right;margin:.4rem 0;margin-left:.4rem;padding:0}[dir=rtl] .md-content__button{float:left;margin-right:.4rem;margin-left:initial}[dir=rtl] .md-content__button svg{transform:scaleX(-1)}.md-typeset .md-content__button{color:var(--md-default-fg-color--lighter)}.md-content__button svg{display:inline;vertical-align:top}@media print{.md-content__button{display:none}}.md-dialog{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);position:fixed;right:.8rem;bottom:.8rem;left:initial;z-index:2;display:block;min-width:11.1rem;padding:.4rem .6rem;color:var(--md-default-bg-color);font-size:.7rem;background:var(--md-default-fg-color);border:none;border-radius:.1rem;transform:translateY(100%);opacity:0;transition:transform 0ms 400ms,opacity 400ms}[dir=rtl] .md-dialog{right:initial;left:.8rem}.md-dialog[data-md-state=open]{transform:translateY(0);opacity:1;transition:transform 400ms cubic-bezier(0.075, 0.85, 0.175, 1),opacity 400ms}@media print{.md-dialog{display:none}}.md-header{position:-webkit-sticky;position:sticky;top:0;right:0;left:0;z-index:2;height:2.4rem;color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color);box-shadow:0 0 .2rem rgba(0,0,0,0),0 .2rem .4rem rgba(0,0,0,0);transition:color 250ms,background-color 250ms}.no-js .md-header{box-shadow:none;transition:none}.md-header[data-md-state=shadow]{box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2);transition:color 250ms,background-color 250ms,box-shadow 250ms}@media print{.md-header{display:none}}.md-header-nav{display:flex;padding:0 .2rem}.md-header-nav__button{position:relative;z-index:1;margin:.2rem;padding:.4rem;cursor:pointer;transition:opacity 250ms}[dir=rtl] .md-header-nav__button svg{transform:scaleX(-1)}.md-header-nav__button:focus,.md-header-nav__button:hover{opacity:.7}.md-header-nav__button.md-logo{margin:.2rem;padding:.4rem}.md-header-nav__button.md-logo img,.md-header-nav__button.md-logo svg{display:block;width:1.2rem;height:1.2rem;fill:currentColor}.no-js .md-header-nav__button[for=__search]{display:none}@media screen and (min-width: 60em){.md-header-nav__button[for=__search]{display:none}}@media screen and (max-width: 76.1875em){.md-header-nav__button.md-logo{display:none}}@media screen and (min-width: 76.25em){.md-header-nav__button[for=__drawer]{display:none}}.md-header-nav__topic{position:absolute;width:100%;transition:transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 150ms}.md-header-nav__topic+.md-header-nav__topic{z-index:-1;transform:translateX(1.25rem);opacity:0;transition:transform 400ms cubic-bezier(1, 0.7, 0.1, 0.1),opacity 150ms;pointer-events:none}[dir=rtl] .md-header-nav__topic+.md-header-nav__topic{transform:translateX(-1.25rem)}.no-js .md-header-nav__topic{position:initial}.no-js .md-header-nav__topic+.md-header-nav__topic{display:none}.md-header-nav__title{flex-grow:1;padding:0 1rem;font-size:.9rem;line-height:2.4rem}.md-header-nav__title[data-md-state=active] .md-header-nav__topic{z-index:-1;transform:translateX(-1.25rem);opacity:0;transition:transform 400ms cubic-bezier(1, 0.7, 0.1, 0.1),opacity 150ms;pointer-events:none}[dir=rtl] .md-header-nav__title[data-md-state=active] .md-header-nav__topic{transform:translateX(1.25rem)}.md-header-nav__title[data-md-state=active] .md-header-nav__topic+.md-header-nav__topic{z-index:0;transform:translateX(0);opacity:1;transition:transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 150ms;pointer-events:initial}.md-header-nav__title>.md-header-nav__ellipsis{position:relative;width:100%;height:100%}.md-header-nav__source{display:none}@media screen and (min-width: 60em){.md-header-nav__source{display:block;width:11.7rem;max-width:11.7rem;margin-left:1rem}[dir=rtl] .md-header-nav__source{margin-right:1rem;margin-left:initial}}@media screen and (min-width: 76.25em){.md-header-nav__source{margin-left:1.4rem}[dir=rtl] .md-header-nav__source{margin-right:1.4rem}}.md-hero{overflow:hidden;color:var(--md-primary-bg-color);font-size:1rem;background-color:var(--md-primary-fg-color);transition:background 250ms}.md-hero__inner{margin-top:1rem;padding:.8rem .8rem .4rem;transition:transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 250ms;transition-delay:100ms}@media screen and (max-width: 76.1875em){.md-hero__inner{margin-top:2.4rem;margin-bottom:1.2rem}}[data-md-state=hidden] .md-hero__inner{transform:translateY(0.625rem);opacity:0;transition:transform 0ms 400ms,opacity 100ms 0ms;pointer-events:none}.md-hero--expand .md-hero__inner{margin-bottom:1.2rem}.md-footer{color:var(--md-default-bg-color);background-color:var(--md-default-fg-color)}@media print{.md-footer{display:none}}.md-footer-nav__inner{padding:.2rem;overflow:auto}.md-footer-nav__link{display:flex;padding-top:1.4rem;padding-bottom:.4rem;transition:opacity 250ms}@media screen and (min-width: 45em){.md-footer-nav__link{width:50%}}.md-footer-nav__link:focus,.md-footer-nav__link:hover{opacity:.7}.md-footer-nav__link--prev{float:left;width:25%}[dir=rtl] .md-footer-nav__link--prev{float:right}[dir=rtl] .md-footer-nav__link--prev svg{transform:scaleX(-1)}@media screen and (max-width: 44.9375em){.md-footer-nav__link--prev .md-footer-nav__title{display:none}}.md-footer-nav__link--next{float:right;width:75%;text-align:right}[dir=rtl] .md-footer-nav__link--next{float:left;text-align:left}[dir=rtl] .md-footer-nav__link--next svg{transform:scaleX(-1)}.md-footer-nav__title{position:relative;flex-grow:1;max-width:calc(100% - 2.4rem);padding:0 1rem;font-size:.9rem;line-height:2.4rem}.md-footer-nav__button{margin:.2rem;padding:.4rem}.md-footer-nav__direction{position:absolute;right:0;left:0;margin-top:-1rem;padding:0 1rem;color:var(--md-default-bg-color--light);font-size:.64rem}.md-footer-meta{background-color:var(--md-default-fg-color--lighter)}.md-footer-meta__inner{display:flex;flex-wrap:wrap;justify-content:space-between;padding:.2rem}html .md-footer-meta.md-typeset a{color:var(--md-default-bg-color--light)}html .md-footer-meta.md-typeset a:focus,html .md-footer-meta.md-typeset a:hover{color:var(--md-default-bg-color)}.md-footer-copyright{width:100%;margin:auto .6rem;padding:.4rem 0;color:var(--md-default-bg-color--lighter);font-size:.64rem}@media screen and (min-width: 45em){.md-footer-copyright{width:auto}}.md-footer-copyright__highlight{color:var(--md-default-bg-color--light)}.md-footer-social{margin:0 .4rem;padding:.2rem 0 .6rem}@media screen and (min-width: 45em){.md-footer-social{padding:.6rem 0}}.md-footer-social__link{display:inline-block;width:1.6rem;height:1.6rem;text-align:center}.md-footer-social__link::before{line-height:1.9}.md-footer-social__link svg{max-height:.8rem;vertical-align:-25%;fill:currentColor}.md-nav{font-size:.7rem;line-height:1.3}.md-nav__title{display:block;padding:0 .6rem;overflow:hidden;font-weight:700;text-overflow:ellipsis}.md-nav__title .md-nav__button{display:none}.md-nav__title .md-nav__button img{width:100%;height:auto}.md-nav__title .md-nav__button.md-logo img,.md-nav__title .md-nav__button.md-logo svg{display:block;width:2.4rem;height:2.4rem}.md-nav__title .md-nav__button.md-logo svg{fill:currentColor}.md-nav__list{margin:0;padding:0;list-style:none}.md-nav__item{padding:0 .6rem}.md-nav__item:last-child{padding-bottom:.6rem}.md-nav__item .md-nav__item{padding-right:0}[dir=rtl] .md-nav__item .md-nav__item{padding-right:.6rem;padding-left:0}.md-nav__item .md-nav__item:last-child{padding-bottom:0}.md-nav__link{display:block;margin-top:.625em;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:color 125ms;scroll-snap-align:start}html .md-nav__link[for=__toc]{display:none}html .md-nav__link[for=__toc]~.md-nav{display:none}.md-nav__link[data-md-state=blur]{color:var(--md-default-fg-color--light)}.md-nav__item .md-nav__link--active{color:var(--md-primary-fg-color)}.md-nav__item--nested>.md-nav__link{color:inherit}.md-nav__link:focus,.md-nav__link:hover{color:var(--md-accent-fg-color)}.md-nav__source{display:none}@media screen and (max-width: 76.1875em){.md-nav{background-color:var(--md-default-bg-color)}.md-nav--primary,.md-nav--primary .md-nav{position:absolute;top:0;right:0;left:0;z-index:1;display:flex;flex-direction:column;height:100%}.md-nav--primary .md-nav__title,.md-nav--primary .md-nav__item{font-size:.8rem;line-height:1.5}.md-nav--primary .md-nav__title{position:relative;height:5.6rem;padding:3rem .8rem .2rem;color:var(--md-default-fg-color--light);font-weight:400;line-height:2.4rem;white-space:nowrap;background-color:var(--md-default-fg-color--lightest);cursor:pointer}.md-nav--primary .md-nav__title .md-nav__icon{position:absolute;top:.4rem;left:.4rem;display:block;width:1.2rem;height:1.2rem;margin:.2rem}[dir=rtl] .md-nav--primary .md-nav__title .md-nav__icon{right:.4rem;left:initial}.md-nav--primary .md-nav__title~.md-nav__list{overflow-y:auto;background-color:var(--md-default-bg-color);box-shadow:inset 0 .05rem 0 var(--md-default-fg-color--lightest);-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;touch-action:pan-y}.md-nav--primary .md-nav__title~.md-nav__list>.md-nav__item:first-child{border-top:0}.md-nav--primary .md-nav__title[for=__drawer]{position:relative;color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color)}.md-nav--primary .md-nav__title[for=__drawer] .md-nav__button{position:absolute;top:.2rem;left:.2rem;display:block;margin:.2rem;padding:.4rem;font-size:2.4rem}html [dir=rtl] .md-nav--primary .md-nav__title[for=__drawer] .md-nav__button{right:.2rem;left:initial}.md-nav--primary .md-nav__list{flex:1}.md-nav--primary .md-nav__item{padding:0;border-top:.05rem solid var(--md-default-fg-color--lightest)}[dir=rtl] .md-nav--primary .md-nav__item{padding:0}.md-nav--primary .md-nav__item--nested>.md-nav__link{padding-right:2.4rem}[dir=rtl] .md-nav--primary .md-nav__item--nested>.md-nav__link{padding-right:.8rem;padding-left:2.4rem}.md-nav--primary .md-nav__item--active>.md-nav__link{color:var(--md-primary-fg-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:focus,.md-nav--primary .md-nav__item--active>.md-nav__link:hover{color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__link{position:relative;margin-top:0;padding:.6rem .8rem}.md-nav--primary .md-nav__link .md-nav__icon{position:absolute;top:50%;right:.6rem;margin-top:-0.6rem;color:inherit;font-size:1.2rem}[dir=rtl] .md-nav--primary .md-nav__link .md-nav__icon{right:initial;left:.6rem}[dir=rtl] .md-nav--primary .md-nav__icon svg{transform:scale(-1)}.md-nav--primary .md-nav--secondary .md-nav__link{position:static}.md-nav--primary .md-nav--secondary .md-nav{position:static;background-color:transparent}.md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-left:1.4rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-right:1.4rem;padding-left:initial}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-left:2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-right:2rem;padding-left:initial}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-left:2.6rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-right:2.6rem;padding-left:initial}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-left:3.2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-right:3.2rem;padding-left:initial}.md-nav__toggle~.md-nav{display:flex;transform:translateX(100%);opacity:0;transition:transform 250ms cubic-bezier(0.8, 0, 0.6, 1),opacity 125ms 50ms}[dir=rtl] .md-nav__toggle~.md-nav{transform:translateX(-100%)}.md-nav__toggle:checked~.md-nav{transform:translateX(0);opacity:1;transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1),opacity 125ms 125ms}.md-nav__toggle:checked~.md-nav>.md-nav__list{-webkit-backface-visibility:hidden;backface-visibility:hidden}}@media screen and (max-width: 59.9375em){html .md-nav__link[for=__toc]{display:block;padding-right:2.4rem}html .md-nav__link[for=__toc]+.md-nav__link{display:none}html .md-nav__link[for=__toc]~.md-nav{display:flex}html [dir=rtl] .md-nav__link{padding-right:.8rem;padding-left:2.4rem}.md-nav__source{display:block;padding:0 .2rem;color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color--dark)}}@media screen and (min-width: 60em){.md-nav--secondary .md-nav__title[for=__toc]{scroll-snap-align:start}.md-nav--secondary .md-nav__title .md-nav__icon{display:none}}@media screen and (min-width: 76.25em){.md-nav{transition:max-height 250ms cubic-bezier(0.86, 0, 0.07, 1)}.md-nav--primary .md-nav__title[for=__drawer]{scroll-snap-align:start}.md-nav--primary .md-nav__title .md-nav__icon{display:none}.md-nav__toggle~.md-nav{display:none}.md-nav__toggle:checked~.md-nav{display:block}.md-nav__item--nested>.md-nav>.md-nav__title{display:none}.md-nav__icon{float:right;height:.9rem;transition:transform 250ms}[dir=rtl] .md-nav__icon{float:left;transform:rotate(180deg)}.md-nav__icon svg{display:inline-block;width:.9rem;height:.9rem;vertical-align:-0.1rem}.md-nav__item--nested .md-nav__toggle:checked~.md-nav__link .md-nav__icon{transform:rotate(90deg)}}.md-search{position:relative}.no-js .md-search{display:none}@media screen and (min-width: 60em){.md-search{padding:.2rem 0}}.md-search__overlay{z-index:1;opacity:0}@media screen and (max-width: 59.9375em){.md-search__overlay{position:absolute;top:.2rem;left:-2.2rem;width:2rem;height:2rem;overflow:hidden;background-color:var(--md-default-bg-color);border-radius:1rem;transform-origin:center;transition:transform 300ms 100ms,opacity 200ms 200ms;pointer-events:none}[dir=rtl] .md-search__overlay{right:-2.2rem;left:initial}[data-md-toggle=search]:checked~.md-header .md-search__overlay{opacity:1;transition:transform 400ms,opacity 100ms}}@media screen and (max-width: 29.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(45)}}@media screen and (min-width: 30em)and (max-width: 44.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(60)}}@media screen and (min-width: 45em)and (max-width: 59.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(75)}}@media screen and (min-width: 60em){.md-search__overlay{position:fixed;top:0;left:0;width:0;height:0;background-color:var(--md-default-fg-color--light);cursor:pointer;transition:width 0ms 250ms,height 0ms 250ms,opacity 250ms}[dir=rtl] .md-search__overlay{right:0;left:initial}[data-md-toggle=search]:checked~.md-header .md-search__overlay{width:100%;height:100%;opacity:1;transition:width 0ms,height 0ms,opacity 250ms}}.md-search__inner{-webkit-backface-visibility:hidden;backface-visibility:hidden}@media screen and (max-width: 59.9375em){.md-search__inner{position:fixed;top:0;left:100%;z-index:2;width:100%;height:100%;transform:translateX(5%);opacity:0;transition:right 0ms 300ms,left 0ms 300ms,transform 150ms 150ms cubic-bezier(0.4, 0, 0.2, 1),opacity 150ms 150ms}[data-md-toggle=search]:checked~.md-header .md-search__inner{left:0;transform:translateX(0);opacity:1;transition:right 0ms 0ms,left 0ms 0ms,transform 150ms 150ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 150ms 150ms}[dir=rtl] [data-md-toggle=search]:checked~.md-header .md-search__inner{right:0;left:initial}html [dir=rtl] .md-search__inner{right:100%;left:initial;transform:translateX(-5%)}}@media screen and (min-width: 60em){.md-search__inner{position:relative;float:right;width:11.7rem;padding:.1rem 0;transition:width 250ms cubic-bezier(0.1, 0.7, 0.1, 1)}[dir=rtl] .md-search__inner{float:left}}@media screen and (min-width: 60em)and (max-width: 76.1875em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:23.4rem}}@media screen and (min-width: 76.25em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:34.4rem}}.md-search__form{position:relative}@media screen and (min-width: 60em){.md-search__form{border-radius:.1rem}}.md-search__input{position:relative;z-index:2;padding:0 2.2rem 0 3.6rem;text-overflow:ellipsis}[dir=rtl] .md-search__input{padding:0 3.6rem 0 2.2rem}.md-search__input::-webkit-input-placeholder{-webkit-transition:color 250ms;transition:color 250ms}.md-search__input::-moz-placeholder{-moz-transition:color 250ms;transition:color 250ms}.md-search__input::-ms-input-placeholder{-ms-transition:color 250ms;transition:color 250ms}.md-search__input::placeholder{transition:color 250ms}.md-search__input::-webkit-input-placeholder{color:var(--md-default-fg-color--light)}.md-search__input::-moz-placeholder{color:var(--md-default-fg-color--light)}.md-search__input::-ms-input-placeholder{color:var(--md-default-fg-color--light)}.md-search__input~.md-search__icon,.md-search__input::placeholder{color:var(--md-default-fg-color--light)}.md-search__input::-ms-clear{display:none}@media screen and (max-width: 59.9375em){.md-search__input{width:100%;height:2.4rem;font-size:.9rem}}@media screen and (min-width: 60em){.md-search__input{width:100%;height:1.8rem;padding-left:2.2rem;color:inherit;font-size:.8rem;background-color:var(--md-default-fg-color--lighter);border-radius:.1rem;transition:color 250ms,background-color 250ms}[dir=rtl] .md-search__input{padding-right:2.2rem}.md-search__input+.md-search__icon{color:var(--md-primary-bg-color)}.md-search__input::-webkit-input-placeholder{color:var(--md-primary-bg-color--light)}.md-search__input::-moz-placeholder{color:var(--md-primary-bg-color--light)}.md-search__input::-ms-input-placeholder{color:var(--md-primary-bg-color--light)}.md-search__input::placeholder{color:var(--md-primary-bg-color--light)}.md-search__input:hover{background-color:var(--md-default-bg-color--lightest)}[data-md-toggle=search]:checked~.md-header .md-search__input{color:var(--md-default-fg-color);text-overflow:clip;background-color:var(--md-default-bg-color);border-radius:.1rem .1rem 0 0}[data-md-toggle=search]:checked~.md-header .md-search__input::-webkit-input-placeholder{color:var(--md-default-fg-color--light)}[data-md-toggle=search]:checked~.md-header .md-search__input::-moz-placeholder{color:var(--md-default-fg-color--light)}[data-md-toggle=search]:checked~.md-header .md-search__input::-ms-input-placeholder{color:var(--md-default-fg-color--light)}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon,[data-md-toggle=search]:checked~.md-header .md-search__input::placeholder{color:var(--md-default-fg-color--light)}}.md-search__icon{position:absolute;z-index:2;width:1.2rem;height:1.2rem;cursor:pointer;transition:color 250ms,opacity 250ms}.md-search__icon:hover{opacity:.7}.md-search__icon[for=__search]{top:.3rem;left:.5rem}[dir=rtl] .md-search__icon[for=__search]{right:.5rem;left:initial}[dir=rtl] .md-search__icon[for=__search] svg{transform:scaleX(-1)}@media screen and (max-width: 59.9375em){.md-search__icon[for=__search]{top:.6rem;left:.8rem}[dir=rtl] .md-search__icon[for=__search]{right:.8rem;left:initial}.md-search__icon[for=__search] svg:first-child{display:none}}@media screen and (min-width: 60em){.md-search__icon[for=__search]{pointer-events:none}.md-search__icon[for=__search] svg:last-child{display:none}}.md-search__icon[type=reset]{top:.3rem;right:.5rem;transform:scale(0.75);opacity:0;transition:transform 150ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 150ms;pointer-events:none}[dir=rtl] .md-search__icon[type=reset]{right:initial;left:.5rem}@media screen and (max-width: 59.9375em){.md-search__icon[type=reset]{top:.6rem;right:.8rem}[dir=rtl] .md-search__icon[type=reset]{right:initial;left:.8rem}}[data-md-toggle=search]:checked~.md-header .md-search__input:not(:placeholder-shown)~.md-search__icon[type=reset]{transform:scale(1);opacity:1;pointer-events:initial}[data-md-toggle=search]:checked~.md-header .md-search__input:not(:placeholder-shown)~.md-search__icon[type=reset]:hover{opacity:.7}.md-search__output{position:absolute;z-index:1;width:100%;overflow:hidden;border-radius:0 0 .1rem .1rem}@media screen and (max-width: 59.9375em){.md-search__output{top:2.4rem;bottom:0}}@media screen and (min-width: 60em){.md-search__output{top:1.9rem;opacity:0;transition:opacity 400ms}[data-md-toggle=search]:checked~.md-header .md-search__output{box-shadow:0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.4);opacity:1}}.md-search__scrollwrap{height:100%;overflow-y:auto;background-color:var(--md-default-bg-color);box-shadow:inset 0 .05rem 0 var(--md-default-fg-color--lightest);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;touch-action:pan-y}@media(-webkit-max-device-pixel-ratio: 1), (max-resolution: 1dppx){.md-search__scrollwrap{transform:translateZ(0)}}@media screen and (min-width: 60em)and (max-width: 76.1875em){.md-search__scrollwrap{width:23.4rem}}@media screen and (min-width: 76.25em){.md-search__scrollwrap{width:34.4rem}}@media screen and (min-width: 60em){.md-search__scrollwrap{max-height:0}[data-md-toggle=search]:checked~.md-header .md-search__scrollwrap{max-height:75vh}.md-search__scrollwrap::-webkit-scrollbar{width:.2rem;height:.2rem}.md-search__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}}.md-search-result{color:var(--md-default-fg-color);word-break:break-word}.md-search-result__meta{padding:0 .8rem;color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.8rem;background-color:var(--md-default-fg-color--lightest);scroll-snap-align:start}@media screen and (min-width: 60em){.md-search-result__meta{padding-left:2.2rem}[dir=rtl] .md-search-result__meta{padding-right:2.2rem;padding-left:initial}}.md-search-result__list{margin:0;padding:0;list-style:none;border-top:.05rem solid var(--md-default-fg-color--lightest)}.md-search-result__item{box-shadow:0 -0.05rem 0 var(--md-default-fg-color--lightest)}.md-search-result__link{display:block;outline:0;transition:background 250ms;scroll-snap-align:start}.md-search-result__link:focus,.md-search-result__link:hover{background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:focus .md-search-result__article::before,.md-search-result__link:hover .md-search-result__article::before{opacity:.7}.md-search-result__link:last-child .md-search-result__teaser{margin-bottom:.6rem}.md-search-result__article{position:relative;padding:0 .8rem;overflow:hidden}@media screen and (min-width: 60em){.md-search-result__article{padding-left:2.2rem}[dir=rtl] .md-search-result__article{padding-right:2.2rem;padding-left:.8rem}}.md-search-result__article--document .md-search-result__title{margin:.55rem 0;font-weight:400;font-size:.8rem;line-height:1.4}.md-search-result__icon{position:absolute;left:0;margin:.1rem;padding:.4rem;color:var(--md-default-fg-color--light)}[dir=rtl] .md-search-result__icon{right:0;left:initial}[dir=rtl] .md-search-result__icon svg{transform:scaleX(-1)}@media screen and (max-width: 59.9375em){.md-search-result__icon{display:none}}.md-search-result__title{margin:.5em 0;font-weight:700;font-size:.64rem;line-height:1.4}.md-search-result__teaser{display:-webkit-box;max-height:1.65rem;margin:.5em 0;overflow:hidden;color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.4;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:2}@media screen and (max-width: 44.9375em){.md-search-result__teaser{max-height:2.5rem;-webkit-line-clamp:3}}@media screen and (min-width: 60em)and (max-width: 76.1875em){.md-search-result__teaser{max-height:2.5rem;-webkit-line-clamp:3}}.md-search-result em{font-weight:700;font-style:normal;text-decoration:underline}.md-sidebar{position:-webkit-sticky;position:sticky;top:2.4rem;width:12.1rem;padding:1.2rem 0;overflow:hidden}@media print{.md-sidebar{display:none}}@media screen and (max-width: 76.1875em){.md-sidebar--primary{position:fixed;top:0;left:-12.1rem;z-index:3;width:12.1rem;height:100%;background-color:var(--md-default-bg-color);transform:translateX(0);transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 250ms}[dir=rtl] .md-sidebar--primary{right:-12.1rem;left:initial}[data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{box-shadow:0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12),0 5px 5px -3px rgba(0,0,0,.4);transform:translateX(12.1rem)}[dir=rtl] [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{transform:translateX(-12.1rem)}.md-sidebar--primary .md-sidebar__scrollwrap{overflow:hidden}}.md-sidebar--secondary{display:none;order:2}@media screen and (min-width: 60em){.md-sidebar--secondary{display:block}.md-sidebar--secondary .md-sidebar__scrollwrap{touch-action:pan-y}}.md-sidebar__scrollwrap{max-height:100%;margin:0 .2rem;overflow-y:auto;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory}@media screen and (max-width: 76.1875em){.md-sidebar--primary .md-sidebar__scrollwrap{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;-webkit-scroll-snap-type:none;-ms-scroll-snap-type:none;scroll-snap-type:none}}.md-sidebar__scrollwrap::-webkit-scrollbar{width:.2rem;height:.2rem}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@-webkit-keyframes md-source__facts--done{0%{height:0}100%{height:.65rem}}@keyframes md-source__facts--done{0%{height:0}100%{height:.65rem}}@-webkit-keyframes md-source__fact--done{0%{transform:translateY(100%);opacity:0}50%{opacity:0}100%{transform:translateY(0%);opacity:1}}@keyframes md-source__fact--done{0%{transform:translateY(100%);opacity:0}50%{opacity:0}100%{transform:translateY(0%);opacity:1}}.md-source{display:block;font-size:.65rem;line-height:1.2;white-space:nowrap;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:opacity 250ms}.md-source:hover{opacity:.7}.md-source__icon{display:inline-block;width:2.4rem;height:2.4rem;vertical-align:middle}.md-source__icon svg{margin-top:.6rem;margin-left:.6rem}[dir=rtl] .md-source__icon svg{margin-right:.6rem;margin-left:initial}.md-source__icon+.md-source__repository{margin-left:-2rem;padding-left:2rem}[dir=rtl] .md-source__icon+.md-source__repository{margin-right:-2rem;margin-left:initial;padding-right:2rem;padding-left:initial}.md-source__repository{display:inline-block;max-width:calc(100% - 1.2rem);margin-left:.6rem;overflow:hidden;font-weight:700;text-overflow:ellipsis;vertical-align:middle}.md-source__facts{margin:0;padding:0;overflow:hidden;font-weight:700;font-size:.55rem;list-style-type:none;opacity:.75}[data-md-state=done] .md-source__facts{-webkit-animation:md-source__facts--done 250ms ease-in;animation:md-source__facts--done 250ms ease-in}.md-source__fact{float:left}[dir=rtl] .md-source__fact{float:right}[data-md-state=done] .md-source__fact{-webkit-animation:md-source__fact--done 400ms ease-out;animation:md-source__fact--done 400ms ease-out}.md-source__fact::before{margin:0 .1rem;content:"·"}.md-source__fact:first-child::before{display:none}.md-tabs{width:100%;overflow:auto;color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color);transition:background 250ms}.no-js .md-tabs{transition:none}@media screen and (max-width: 76.1875em){.md-tabs{display:none}}@media print{.md-tabs{display:none}}.md-tabs__list{margin:0;margin-left:.2rem;padding:0;white-space:nowrap;list-style:none;contain:content}[dir=rtl] .md-tabs__list{margin-right:.2rem;margin-left:initial}.md-tabs__item{display:inline-block;height:2.4rem;padding-right:.6rem;padding-left:.6rem}.md-tabs__link{display:block;margin-top:.8rem;font-size:.7rem;opacity:.7;transition:transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 250ms}.no-js .md-tabs__link{transition:none}.md-tabs__link--active,.md-tabs__link:hover{color:inherit;opacity:1}.md-tabs__item:nth-child(2) .md-tabs__link{transition-delay:20ms}.md-tabs__item:nth-child(3) .md-tabs__link{transition-delay:40ms}.md-tabs__item:nth-child(4) .md-tabs__link{transition-delay:60ms}.md-tabs__item:nth-child(5) .md-tabs__link{transition-delay:80ms}.md-tabs__item:nth-child(6) .md-tabs__link{transition-delay:100ms}.md-tabs__item:nth-child(7) .md-tabs__link{transition-delay:120ms}.md-tabs__item:nth-child(8) .md-tabs__link{transition-delay:140ms}.md-tabs__item:nth-child(9) .md-tabs__link{transition-delay:160ms}.md-tabs__item:nth-child(10) .md-tabs__link{transition-delay:180ms}.md-tabs__item:nth-child(11) .md-tabs__link{transition-delay:200ms}.md-tabs__item:nth-child(12) .md-tabs__link{transition-delay:220ms}.md-tabs__item:nth-child(13) .md-tabs__link{transition-delay:240ms}.md-tabs__item:nth-child(14) .md-tabs__link{transition-delay:260ms}.md-tabs__item:nth-child(15) .md-tabs__link{transition-delay:280ms}.md-tabs__item:nth-child(16) .md-tabs__link{transition-delay:300ms}.md-tabs[data-md-state=hidden]{pointer-events:none}.md-tabs[data-md-state=hidden] .md-tabs__link{transform:translateY(50%);opacity:0;transition:color 250ms,transform 0ms 400ms,opacity 100ms}@media screen and (min-width: 76.25em){.md-tabs~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--nested{display:none}.md-tabs--active~.md-main .md-nav--primary .md-nav__title{display:block;padding:0 .6rem;pointer-events:none;scroll-snap-align:start}.md-tabs--active~.md-main .md-nav--primary .md-nav__title[for=__drawer]{display:none}.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item{display:none}.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--active{display:block;padding:0}.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--active>.md-nav__link{display:none}.md-tabs--active~.md-main .md-nav[data-md-level="1"]{display:block}.md-tabs--active~.md-main .md-nav[data-md-level="1"]>.md-nav__list>.md-nav__item{padding:0 .6rem}.md-tabs--active~.md-main .md-nav[data-md-level="1"] .md-nav .md-nav__title{display:none}}:root{--md-admonition-icon--note: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--abstract: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--info: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--tip: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--success: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--question: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--warning: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--failure: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--danger: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--bug: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--example: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--quote: url('data:image/svg+xml;charset=utf-8,')}.md-typeset .admonition,.md-typeset details{margin:1.5625em 0;padding:0 .6rem;overflow:hidden;font-size:.64rem;page-break-inside:avoid;border-left:.2rem solid #448aff;border-radius:.1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .05rem rgba(0,0,0,.1)}[dir=rtl] .md-typeset .admonition,[dir=rtl] .md-typeset details{border-right:.2rem solid #448aff;border-left:none}@media print{.md-typeset .admonition,.md-typeset details{box-shadow:none}}html .md-typeset .admonition>:last-child,html .md-typeset details>:last-child{margin-bottom:.6rem}.md-typeset .admonition .admonition,.md-typeset details .admonition,.md-typeset .admonition details,.md-typeset details details{margin:1em 0}.md-typeset .admonition .md-typeset__scrollwrap,.md-typeset details .md-typeset__scrollwrap{margin:1em -0.6rem}.md-typeset .admonition .md-typeset__table,.md-typeset details .md-typeset__table{padding:0 .6rem}.md-typeset .admonition-title,.md-typeset summary{position:relative;margin:0 -0.6rem;padding:.4rem .6rem .4rem 2rem;font-weight:700;background-color:rgba(68,138,255,.1)}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{padding:.4rem 2rem .4rem .6rem}html .md-typeset .admonition-title:last-child,html .md-typeset summary:last-child{margin-bottom:0}.md-typeset .admonition-title::before,.md-typeset summary::before{position:absolute;left:.6rem;width:1rem;height:1rem;background-color:#448aff;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);content:""}[dir=rtl] .md-typeset .admonition-title::before,[dir=rtl] .md-typeset summary::before{right:.6rem;left:initial}.md-typeset .admonition-title code,.md-typeset summary code{margin:initial;padding:initial;color:currentColor;background-color:transparent;border-radius:initial;box-shadow:none}.md-typeset .admonition.note,.md-typeset details.note{border-color:#448aff}.md-typeset .note>.admonition-title,.md-typeset .note>summary{background-color:rgba(68,138,255,.1)}.md-typeset .note>.admonition-title::before,.md-typeset .note>summary::before{background-color:#448aff;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note)}.md-typeset .admonition.abstract,.md-typeset details.abstract,.md-typeset .admonition.tldr,.md-typeset details.tldr,.md-typeset .admonition.summary,.md-typeset details.summary{border-color:#00b0ff}.md-typeset .abstract>.admonition-title,.md-typeset .abstract>summary,.md-typeset .tldr>.admonition-title,.md-typeset .tldr>summary,.md-typeset .summary>.admonition-title,.md-typeset .summary>summary{background-color:rgba(0,176,255,.1)}.md-typeset .abstract>.admonition-title::before,.md-typeset .abstract>summary::before,.md-typeset .tldr>.admonition-title::before,.md-typeset .tldr>summary::before,.md-typeset .summary>.admonition-title::before,.md-typeset .summary>summary::before{background-color:#00b0ff;-webkit-mask-image:var(--md-admonition-icon--abstract);mask-image:var(--md-admonition-icon--abstract)}.md-typeset .admonition.info,.md-typeset details.info,.md-typeset .admonition.todo,.md-typeset details.todo{border-color:#00b8d4}.md-typeset .info>.admonition-title,.md-typeset .info>summary,.md-typeset .todo>.admonition-title,.md-typeset .todo>summary{background-color:rgba(0,184,212,.1)}.md-typeset .info>.admonition-title::before,.md-typeset .info>summary::before,.md-typeset .todo>.admonition-title::before,.md-typeset .todo>summary::before{background-color:#00b8d4;-webkit-mask-image:var(--md-admonition-icon--info);mask-image:var(--md-admonition-icon--info)}.md-typeset .admonition.tip,.md-typeset details.tip,.md-typeset .admonition.important,.md-typeset details.important,.md-typeset .admonition.hint,.md-typeset details.hint{border-color:#00bfa5}.md-typeset .tip>.admonition-title,.md-typeset .tip>summary,.md-typeset .important>.admonition-title,.md-typeset .important>summary,.md-typeset .hint>.admonition-title,.md-typeset .hint>summary{background-color:rgba(0,191,165,.1)}.md-typeset .tip>.admonition-title::before,.md-typeset .tip>summary::before,.md-typeset .important>.admonition-title::before,.md-typeset .important>summary::before,.md-typeset .hint>.admonition-title::before,.md-typeset .hint>summary::before{background-color:#00bfa5;-webkit-mask-image:var(--md-admonition-icon--tip);mask-image:var(--md-admonition-icon--tip)}.md-typeset .admonition.success,.md-typeset details.success,.md-typeset .admonition.done,.md-typeset details.done,.md-typeset .admonition.check,.md-typeset details.check{border-color:#00c853}.md-typeset .success>.admonition-title,.md-typeset .success>summary,.md-typeset .done>.admonition-title,.md-typeset .done>summary,.md-typeset .check>.admonition-title,.md-typeset .check>summary{background-color:rgba(0,200,83,.1)}.md-typeset .success>.admonition-title::before,.md-typeset .success>summary::before,.md-typeset .done>.admonition-title::before,.md-typeset .done>summary::before,.md-typeset .check>.admonition-title::before,.md-typeset .check>summary::before{background-color:#00c853;-webkit-mask-image:var(--md-admonition-icon--success);mask-image:var(--md-admonition-icon--success)}.md-typeset .admonition.question,.md-typeset details.question,.md-typeset .admonition.faq,.md-typeset details.faq,.md-typeset .admonition.help,.md-typeset details.help{border-color:#64dd17}.md-typeset .question>.admonition-title,.md-typeset .question>summary,.md-typeset .faq>.admonition-title,.md-typeset .faq>summary,.md-typeset .help>.admonition-title,.md-typeset .help>summary{background-color:rgba(100,221,23,.1)}.md-typeset .question>.admonition-title::before,.md-typeset .question>summary::before,.md-typeset .faq>.admonition-title::before,.md-typeset .faq>summary::before,.md-typeset .help>.admonition-title::before,.md-typeset .help>summary::before{background-color:#64dd17;-webkit-mask-image:var(--md-admonition-icon--question);mask-image:var(--md-admonition-icon--question)}.md-typeset .admonition.warning,.md-typeset details.warning,.md-typeset .admonition.attention,.md-typeset details.attention,.md-typeset .admonition.caution,.md-typeset details.caution{border-color:#ff9100}.md-typeset .warning>.admonition-title,.md-typeset .warning>summary,.md-typeset .attention>.admonition-title,.md-typeset .attention>summary,.md-typeset .caution>.admonition-title,.md-typeset .caution>summary{background-color:rgba(255,145,0,.1)}.md-typeset .warning>.admonition-title::before,.md-typeset .warning>summary::before,.md-typeset .attention>.admonition-title::before,.md-typeset .attention>summary::before,.md-typeset .caution>.admonition-title::before,.md-typeset .caution>summary::before{background-color:#ff9100;-webkit-mask-image:var(--md-admonition-icon--warning);mask-image:var(--md-admonition-icon--warning)}.md-typeset .admonition.failure,.md-typeset details.failure,.md-typeset .admonition.missing,.md-typeset details.missing,.md-typeset .admonition.fail,.md-typeset details.fail{border-color:#ff5252}.md-typeset .failure>.admonition-title,.md-typeset .failure>summary,.md-typeset .missing>.admonition-title,.md-typeset .missing>summary,.md-typeset .fail>.admonition-title,.md-typeset .fail>summary{background-color:rgba(255,82,82,.1)}.md-typeset .failure>.admonition-title::before,.md-typeset .failure>summary::before,.md-typeset .missing>.admonition-title::before,.md-typeset .missing>summary::before,.md-typeset .fail>.admonition-title::before,.md-typeset .fail>summary::before{background-color:#ff5252;-webkit-mask-image:var(--md-admonition-icon--failure);mask-image:var(--md-admonition-icon--failure)}.md-typeset .admonition.danger,.md-typeset details.danger,.md-typeset .admonition.error,.md-typeset details.error{border-color:#ff1744}.md-typeset .danger>.admonition-title,.md-typeset .danger>summary,.md-typeset .error>.admonition-title,.md-typeset .error>summary{background-color:rgba(255,23,68,.1)}.md-typeset .danger>.admonition-title::before,.md-typeset .danger>summary::before,.md-typeset .error>.admonition-title::before,.md-typeset .error>summary::before{background-color:#ff1744;-webkit-mask-image:var(--md-admonition-icon--danger);mask-image:var(--md-admonition-icon--danger)}.md-typeset .admonition.bug,.md-typeset details.bug{border-color:#f50057}.md-typeset .bug>.admonition-title,.md-typeset .bug>summary{background-color:rgba(245,0,87,.1)}.md-typeset .bug>.admonition-title::before,.md-typeset .bug>summary::before{background-color:#f50057;-webkit-mask-image:var(--md-admonition-icon--bug);mask-image:var(--md-admonition-icon--bug)}.md-typeset .admonition.example,.md-typeset details.example{border-color:#651fff}.md-typeset .example>.admonition-title,.md-typeset .example>summary{background-color:rgba(101,31,255,.1)}.md-typeset .example>.admonition-title::before,.md-typeset .example>summary::before{background-color:#651fff;-webkit-mask-image:var(--md-admonition-icon--example);mask-image:var(--md-admonition-icon--example)}.md-typeset .admonition.quote,.md-typeset details.quote,.md-typeset .admonition.cite,.md-typeset details.cite{border-color:#9e9e9e}.md-typeset .quote>.admonition-title,.md-typeset .quote>summary,.md-typeset .cite>.admonition-title,.md-typeset .cite>summary{background-color:rgba(158,158,158,.1)}.md-typeset .quote>.admonition-title::before,.md-typeset .quote>summary::before,.md-typeset .cite>.admonition-title::before,.md-typeset .cite>summary::before{background-color:#9e9e9e;-webkit-mask-image:var(--md-admonition-icon--quote);mask-image:var(--md-admonition-icon--quote)}.codehilite .o,.highlight .o{color:inherit}.codehilite .ow,.highlight .ow{color:inherit}.codehilite .ge,.highlight .ge{color:#000}.codehilite .gr,.highlight .gr{color:#a00}.codehilite .gh,.highlight .gh{color:#999}.codehilite .go,.highlight .go{color:#888}.codehilite .gp,.highlight .gp{color:#555}.codehilite .gs,.highlight .gs{color:inherit}.codehilite .gu,.highlight .gu{color:#aaa}.codehilite .gt,.highlight .gt{color:#a00}.codehilite .gd,.highlight .gd{background-color:#fdd}.codehilite .gi,.highlight .gi{background-color:#dfd}.codehilite .k,.highlight .k{color:#3b78e7}.codehilite .kc,.highlight .kc{color:#a71d5d}.codehilite .kd,.highlight .kd{color:#3b78e7}.codehilite .kn,.highlight .kn{color:#3b78e7}.codehilite .kp,.highlight .kp{color:#a71d5d}.codehilite .kr,.highlight .kr{color:#3e61a2}.codehilite .kt,.highlight .kt{color:#3e61a2}.codehilite .c,.highlight .c{color:#999}.codehilite .cm,.highlight .cm{color:#999}.codehilite .cp,.highlight .cp{color:#666}.codehilite .c1,.highlight .c1{color:#999}.codehilite .ch,.highlight .ch{color:#999}.codehilite .cs,.highlight .cs{color:#999}.codehilite .na,.highlight .na{color:#c2185b}.codehilite .nb,.highlight .nb{color:#c2185b}.codehilite .bp,.highlight .bp{color:#3e61a2}.codehilite .nc,.highlight .nc{color:#c2185b}.codehilite .no,.highlight .no{color:#3e61a2}.codehilite .nd,.highlight .nd{color:#666}.codehilite .ni,.highlight .ni{color:#666}.codehilite .ne,.highlight .ne{color:#c2185b}.codehilite .nf,.highlight .nf{color:#c2185b}.codehilite .nl,.highlight .nl{color:#3b5179}.codehilite .nn,.highlight .nn{color:#ec407a}.codehilite .nt,.highlight .nt{color:#3b78e7}.codehilite .nv,.highlight .nv{color:#3e61a2}.codehilite .vc,.highlight .vc{color:#3e61a2}.codehilite .vg,.highlight .vg{color:#3e61a2}.codehilite .vi,.highlight .vi{color:#3e61a2}.codehilite .nx,.highlight .nx{color:#ec407a}.codehilite .m,.highlight .m{color:#e74c3c}.codehilite .mf,.highlight .mf{color:#e74c3c}.codehilite .mh,.highlight .mh{color:#e74c3c}.codehilite .mi,.highlight .mi{color:#e74c3c}.codehilite .il,.highlight .il{color:#e74c3c}.codehilite .mo,.highlight .mo{color:#e74c3c}.codehilite .s,.highlight .s{color:#0d904f}.codehilite .sb,.highlight .sb{color:#0d904f}.codehilite .sc,.highlight .sc{color:#0d904f}.codehilite .sd,.highlight .sd{color:#999}.codehilite .s2,.highlight .s2{color:#0d904f}.codehilite .se,.highlight .se{color:#183691}.codehilite .sh,.highlight .sh{color:#183691}.codehilite .si,.highlight .si{color:#183691}.codehilite .sx,.highlight .sx{color:#183691}.codehilite .sr,.highlight .sr{color:#009926}.codehilite .s1,.highlight .s1{color:#0d904f}.codehilite .ss,.highlight .ss{color:#0d904f}.codehilite .err,.highlight .err{color:#a61717}.codehilite .w,.highlight .w{color:transparent}.codehilite .hll,.highlight .hll{display:block;margin:0 -1.1764705882em;padding:0 1.1764705882em;background-color:rgba(255,235,59,.5)}.codehilitetable,.highlighttable{display:block;overflow:hidden}.codehilitetable tbody,.highlighttable tbody,.codehilitetable td,.highlighttable td{display:block;padding:0}.codehilitetable tr,.highlighttable tr{display:flex}.codehilitetable pre,.highlighttable pre{margin:0}.codehilitetable .linenos,.highlighttable .linenos{padding:.525rem 1.1764705882em;padding-right:0;font-size:.85em;background-color:var(--md-code-bg-color);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.codehilitetable .linenodiv,.highlighttable .linenodiv{padding-right:.5882352941em;box-shadow:inset -0.05rem 0 var(--md-default-fg-color--lightest)}.codehilitetable .linenodiv pre,.highlighttable .linenodiv pre{color:var(--md-default-fg-color--lighter);text-align:right}.codehilitetable .code,.highlighttable .code{flex:1;overflow:hidden}.md-typeset .codehilitetable,.md-typeset .highlighttable{margin:1em 0;direction:ltr;border-radius:.1rem}.md-typeset .codehilitetable code,.md-typeset .highlighttable code{border-radius:0}@media screen and (max-width: 44.9375em){.md-typeset>.codehilite,.md-typeset>.highlight{margin:1em -0.8rem}.md-typeset>.codehilite .hll,.md-typeset>.highlight .hll{margin:0 -0.8rem;padding:0 .8rem}.md-typeset>.codehilite code,.md-typeset>.highlight code{border-radius:0}.md-typeset>.codehilitetable,.md-typeset>.highlighttable{margin:1em -0.8rem;border-radius:0}.md-typeset>.codehilitetable .hll,.md-typeset>.highlighttable .hll{margin:0 -0.8rem;padding:0 .8rem}}:root{--md-footnotes-icon: url('data:image/svg+xml;charset=utf-8,')}.md-typeset [id^="fnref:"]{display:inline-block}.md-typeset [id^="fnref:"]:target{margin-top:-3.8rem;padding-top:3.8rem;pointer-events:none}.md-typeset [id^="fn:"]::before{display:none;height:0;content:""}.md-typeset [id^="fn:"]:target::before{display:block;margin-top:-3.5rem;padding-top:3.5rem;pointer-events:none}.md-typeset .footnote{color:var(--md-default-fg-color--light);font-size:.64rem}.md-typeset .footnote ol{margin-left:0}.md-typeset .footnote li{transition:color 125ms}.md-typeset .footnote li:target{color:var(--md-default-fg-color)}.md-typeset .footnote li :first-child{margin-top:0}.md-typeset .footnote li:hover .footnote-backref,.md-typeset .footnote li:target .footnote-backref{transform:translateX(0);opacity:1}.md-typeset .footnote li:hover .footnote-backref:hover{color:var(--md-accent-fg-color)}.md-typeset .footnote-ref{display:inline-block;pointer-events:initial}.md-typeset .footnote-backref{display:inline-block;color:var(--md-primary-fg-color);font-size:0;vertical-align:text-bottom;transform:translateX(0.25rem);opacity:0;transition:color 250ms,transform 250ms 250ms,opacity 125ms 250ms}[dir=rtl] .md-typeset .footnote-backref{transform:translateX(-0.25rem)}.md-typeset .footnote-backref::before{display:inline-block;width:.8rem;height:.8rem;background-color:currentColor;-webkit-mask-image:var(--md-footnotes-icon);mask-image:var(--md-footnotes-icon);content:""}[dir=rtl] .md-typeset .footnote-backref::before svg{transform:scaleX(-1)}@media print{.md-typeset .footnote-backref{color:var(--md-primary-fg-color);transform:translateX(0);opacity:1}}.md-typeset .headerlink{display:inline-block;margin-left:.5rem;visibility:hidden;opacity:0;transition:color 250ms,visibility 0ms 500ms,opacity 125ms}[dir=rtl] .md-typeset .headerlink{margin-right:.5rem;margin-left:initial}html body .md-typeset .headerlink{color:var(--md-default-fg-color--lighter)}@media print{.md-typeset .headerlink{display:none}}.md-typeset :hover>.headerlink,.md-typeset :target>.headerlink,.md-typeset .headerlink:focus{visibility:visible;opacity:1;transition:color 250ms,visibility 0ms,opacity 125ms}.md-typeset :target>.headerlink,.md-typeset .headerlink:focus,.md-typeset .headerlink:hover{color:var(--md-accent-fg-color)}.md-typeset h3[id]::before,.md-typeset h2[id]::before,.md-typeset h1[id]::before{display:block;margin-top:-0.4rem;padding-top:.4rem;content:""}.md-typeset h3[id]:target::before,.md-typeset h2[id]:target::before,.md-typeset h1[id]:target::before{margin-top:-3.4rem;padding-top:3.4rem}.md-typeset h4[id]::before{display:block;margin-top:-0.45rem;padding-top:.45rem;content:""}.md-typeset h4[id]:target::before{margin-top:-3.45rem;padding-top:3.45rem}.md-typeset h6[id]::before,.md-typeset h5[id]::before{display:block;margin-top:-0.6rem;padding-top:.6rem;content:""}.md-typeset h6[id]:target::before,.md-typeset h5[id]:target::before{margin-top:-3.6rem;padding-top:3.6rem}.md-typeset .MJXc-display{margin:.75em 0;padding:.75em 0;overflow:auto;touch-action:auto}@media screen and (max-width: 44.9375em){.md-typeset>p>.MJXc-display{margin:.75em -0.8rem;padding:.25em .8rem}}.md-typeset .MathJax_CHTML{outline:0}.md-typeset del.critic,.md-typeset ins.critic,.md-typeset .critic.comment{padding:0 .25em;border-radius:.1rem;-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset del.critic{background-color:#fdd}.md-typeset ins.critic{background-color:#dfd}.md-typeset .critic.comment{color:#999}.md-typeset .critic.comment::before{content:"/* "}.md-typeset .critic.comment::after{content:" */"}.md-typeset .critic.block{display:block;margin:1em 0;padding-right:.8rem;padding-left:.8rem;overflow:auto;box-shadow:none}.md-typeset .critic.block :first-child{margin-top:.5em}.md-typeset .critic.block :last-child{margin-bottom:.5em}:root{--md-details-icon: url('data:image/svg+xml;charset=utf-8,')}.md-typeset details{display:block;padding-top:0;overflow:visible}.md-typeset details[open]>summary::after{transform:rotate(90deg)}.md-typeset details:not([open]){padding-bottom:0}.md-typeset details:not([open])>summary{border-bottom-right-radius:.1rem}.md-typeset details::after{display:table;content:""}.md-typeset summary{display:block;min-height:1rem;padding:.4rem 1.8rem .4rem 2rem;border-top-right-radius:.1rem;cursor:pointer}[dir=rtl] .md-typeset summary{padding:.4rem 2rem .4rem 1.8rem}.md-typeset summary::-webkit-details-marker{display:none}.md-typeset summary::after{position:absolute;top:.4rem;right:.4rem;width:1rem;height:1rem;background-color:currentColor;-webkit-mask-image:var(--md-details-icon);mask-image:var(--md-details-icon);transform:rotate(0deg);transition:transform 250ms;content:""}[dir=rtl] .md-typeset summary::after{right:initial;left:.4rem;transform:rotate(180deg)}.md-typeset img.emojione,.md-typeset img.twemoji,.md-typeset img.gemoji{width:1.125em;vertical-align:-15%}.md-typeset span.twemoji{display:inline-block;height:1.125em;vertical-align:text-top}.md-typeset span.twemoji svg{width:1.125em;fill:currentColor}.highlight [data-linenos]::before{position:-webkit-sticky;position:sticky;left:-1.1764705882em;float:left;margin-right:1.1764705882em;margin-left:-1.1764705882em;padding-left:1.1764705882em;color:var(--md-default-fg-color--lighter);background-color:var(--md-code-bg-color);box-shadow:inset -0.05rem 0 var(--md-default-fg-color--lightest);content:attr(data-linenos);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.md-typeset .tabbed-content{display:none;order:99;width:100%;box-shadow:0 -0.05rem var(--md-default-fg-color--lightest)}.md-typeset .tabbed-content>.codehilite:only-child pre,.md-typeset .tabbed-content>.codehilitetable:only-child,.md-typeset .tabbed-content>.highlight:only-child pre,.md-typeset .tabbed-content>.highlighttable:only-child{margin:0}.md-typeset .tabbed-content>.codehilite:only-child pre>code,.md-typeset .tabbed-content>.codehilitetable:only-child>code,.md-typeset .tabbed-content>.highlight:only-child pre>code,.md-typeset .tabbed-content>.highlighttable:only-child>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-content>.tabbed-set{margin:0}.md-typeset .tabbed-set{position:relative;display:flex;flex-wrap:wrap;margin:1em 0;border-radius:.1rem}.md-typeset .tabbed-set>input{display:none}.md-typeset .tabbed-set>input:checked+label{color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color)}.md-typeset .tabbed-set>input:checked+label+.tabbed-content{display:block}.md-typeset .tabbed-set>label{z-index:1;width:auto;padding:.6rem 1.25em .5rem;color:var(--md-default-fg-color--light);font-weight:700;font-size:.64rem;border-bottom:.1rem solid transparent;cursor:pointer;transition:color 125ms}html .md-typeset .tabbed-set>label:hover{color:var(--md-accent-fg-color)}:root{--md-tasklist-icon: url('data:image/svg+xml;charset=utf-8,');--md-tasklist-icon--checked: url('data:image/svg+xml;charset=utf-8,')}.md-typeset .task-list-item{position:relative;list-style-type:none}.md-typeset .task-list-item [type=checkbox]{position:absolute;top:.45em;left:-2em}[dir=rtl] .md-typeset .task-list-item [type=checkbox]{right:-2em;left:initial}.md-typeset .task-list-control .task-list-indicator::before{position:absolute;top:.15em;left:-1.5em;width:1.25em;height:1.25em;background-color:var(--md-default-fg-color--lightest);-webkit-mask-image:var(--md-tasklist-icon);mask-image:var(--md-tasklist-icon);content:""}[dir=rtl] .md-typeset .task-list-control .task-list-indicator::before{right:-1.5em;left:initial}.md-typeset .task-list-control [type=checkbox]:checked+.task-list-indicator::before{background-color:#00e676;-webkit-mask-image:var(--md-tasklist-icon--checked);mask-image:var(--md-tasklist-icon--checked)}.md-typeset .task-list-control [type=checkbox]{z-index:-1;opacity:0} + +/*# sourceMappingURL=main.c8609f9b.min.css.map*/ \ No newline at end of file diff --git a/docs/assets/stylesheets/main.c8609f9b.min.css.map b/docs/assets/stylesheets/main.c8609f9b.min.css.map new file mode 100644 index 00000000..694598a4 --- /dev/null +++ b/docs/assets/stylesheets/main.c8609f9b.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///main.scss","webpack:///./src/assets/stylesheets/base/_reset.scss","webpack:///./src/assets/stylesheets/base/_colors.scss","webpack:///./src/assets/stylesheets/base/_icons.scss","webpack:///./src/assets/stylesheets/base/_typeset.scss","webpack:///./src/assets/stylesheets/utilities/_break.scss","webpack:///./src/assets/stylesheets/layout/_base.scss","webpack:///./src/assets/stylesheets/layout/_announce.scss","webpack:///./src/assets/stylesheets/layout/_button.scss","webpack:///./src/assets/stylesheets/layout/_clipboard.scss","webpack:///./src/assets/stylesheets/layout/_content.scss","webpack:///./src/assets/stylesheets/layout/_dialog.scss","webpack:///./node_modules/material-shadows/material-shadows.scss","webpack:///./src/assets/stylesheets/layout/_header.scss","webpack:///./src/assets/stylesheets/layout/_hero.scss","webpack:///./src/assets/stylesheets/layout/_footer.scss","webpack:///./src/assets/stylesheets/layout/_nav.scss","webpack:///./src/assets/stylesheets/layout/_search.scss","webpack:///./src/assets/stylesheets/layout/_sidebar.scss","webpack:///./src/assets/stylesheets/layout/_source.scss","webpack:///./src/assets/stylesheets/layout/_tabs.scss","webpack:///./src/assets/stylesheets/extensions/_admonition.scss","webpack:///./node_modules/material-design-color/material-color.scss","webpack:///./src/assets/stylesheets/extensions/_codehilite.scss","webpack:///./src/assets/stylesheets/extensions/_footnotes.scss","webpack:///./src/assets/stylesheets/extensions/_permalinks.scss","webpack:///./src/assets/stylesheets/extensions/pymdown/_arithmatex.scss","webpack:///./src/assets/stylesheets/extensions/pymdown/_critic.scss","webpack:///./src/assets/stylesheets/extensions/pymdown/_details.scss","webpack:///./src/assets/stylesheets/extensions/pymdown/_emoji.scss","webpack:///./src/assets/stylesheets/extensions/pymdown/_highlight.scss","webpack:///./src/assets/stylesheets/extensions/pymdown/_tabbed.scss","webpack:///./src/assets/stylesheets/extensions/pymdown/_tasklist.scss"],"names":[],"mappings":"AAAA,KC6BA,qBACE,sBAIF,kBAGE,MAIF,6BACE,CADF,0BACE,CADF,yBACE,CADF,qBACE,MAIF,QACE,IAIF,sBACE,iBACA,sBAIF,uCAIE,GAIF,aACE,qBACA,OAIF,aACE,SAIF,iBAEE,cACA,cACA,wBACA,KAIF,cACE,KAIF,UACE,KAIF,iBACE,OAIF,wBACE,iBACA,OAIF,kBAEE,mBACA,QAIF,QACE,UACA,kBACA,uBACA,SACA,OAIF,QACE,UACA,OCjGF,4CAGE,oDACA,sDACA,uDACA,4CACA,qDACA,uDACA,yDACA,iDAGA,wDACA,uDACA,kDACA,gEACA,gDAGA,+DACA,iDACA,+DACA,wCAGA,2CACA,cCxBA,aACE,aACA,cACA,cACA,kBACA,MCRJ,kCACE,kCACA,YAIF,gCAEE,oCACA,wEACA,cAIF,gCAGE,6BACA,oDACA,aAWF,eACE,gBACA,iCACA,CADA,kBACA,oEAGA,YAIE,gBAIF,eACE,wCACA,gBACA,oBACA,gBACA,uBACA,gBAIF,mBACE,gBACA,kBACA,gBACA,uBACA,gBAIF,qBACE,gBACA,eACA,gBACA,uBACA,mBAIF,gBACE,gBAIF,cACE,gBACA,gBACA,uBACA,+BAIF,cAEE,wCACA,gBACA,iBACA,uBACA,gBAIF,wBACE,gBAIF,cACE,gEACA,eAIF,gCACE,sBACA,qCAGA,sBAEE,yCAIF,+BAEE,kDAKJ,6BAGE,cACA,cAGA,iDAPF,oBAQI,mBAKJ,uBACE,gBACA,sBACA,yCACA,oBACA,mCACA,CADA,0BACA,yHAIF,cAME,gBACA,6BACA,gBACA,oBAIF,kBACE,iBAIF,iBACE,aACA,gBACA,sBAGA,aACE,SACA,+BACA,cACA,kBACA,gBACA,mCACA,CADA,0BACA,kBACA,yCAGA,WACE,aACA,+CAIF,oDACE,qDAGA,0CACE,0CCfN,gBDyBA,kBACE,sBAGA,eACE,kBAMN,oBACE,wBACA,gBACA,gBACA,wBACA,sBACA,oBACA,+JAEE,kBAMJ,eACE,sBACA,qCACA,oBACA,mCACA,CADA,0BACA,kBAIF,oBACE,8DACA,YACA,mBAIF,WACE,iCAIF,qBAEE,qDAGA,sBACE,oBACA,wBAKJ,kBACE,wCACA,4DACA,kCAGA,mBACE,qBACA,6DACA,oBACA,gBAKJ,oBACE,+BAIF,kBAEE,UACA,mDAGA,mBACE,oBACA,qCAIF,2BACE,2CAGA,2BACE,qCAKJ,kBACE,mBACA,yDAGA,mBACE,oBACA,mGAIF,aAEE,2DAIF,eACE,qFAIF,yBAEE,6HAGA,mBACE,oBACA,gBAOR,wBACE,0BAGA,oBACE,oBACA,oDAKJ,cAGE,YACA,gCAIF,oBACE,eACA,cACA,iBACA,sCACA,oBACA,mEAEE,kBAEF,kCAKA,gBACE,+FAIF,eAEE,mHAGA,gBACE,mCAKJ,cACE,oBACA,iCACA,mBACA,mDACA,mCAIF,mBACE,mBACA,6DACA,mCAIF,iCACE,yCAGA,iCACE,uDACA,kDAIF,YACE,kCAMJ,iBACE,yBAKJ,kBACE,gBACA,kBACA,oBAIF,oBACE,mBACA,gBACA,0BAGA,aACE,WACA,SACA,gBACA,MErbN,WACE,kBAKA,eAOA,4CACA,sCDyIE,KCvJJ,gBAkBI,uCDqIA,KCvJJ,cAuBI,OAKJ,iBACE,aACA,sBACA,WACA,gBACA,gBAGA,0CDqIE,yBC/HA,cACE,eAMJ,KArBF,aAsBI,KAKJ,aACE,cACA,UACA,SACA,UAIF,eACE,kBACA,iBACA,eAIF,YACE,sBACA,YACA,cAIA,cAPF,aAQI,WAKJ,WACE,iBAGA,YACE,YACA,kBACA,cAKJ,aACE,gBACA,mBACA,uBACA,YAQF,YACE,aAIF,cACE,MACA,UACA,QACA,SACA,mDACA,UACA,0DAEE,0CDgDA,4CCxCA,UACE,YACA,UACA,8CAEE,WAYR,cACE,WAGA,aACA,oBACA,iCACA,iBACA,4CACA,oBACA,6BACA,UACA,gBAGA,UACE,wBACA,UACA,2EAEE,OAUN,WACE,cC1LF,aACE,4CACA,qBAGA,iBACE,gBACA,iCACA,gBACA,cAIF,aAbF,YAcI,yBCXF,oBACE,mBACA,iCACA,gBACA,gCACA,oBACA,iEAEE,iCAKF,gCACE,4CACA,wCACA,2DAIF,+BAEE,2CACA,uCACA,eC3BN,iBACE,UACA,WACA,UACA,YACA,aACA,2CACA,oBACA,eACA,uBACA,cAGA,cAbF,YAcI,oBAIF,aACE,eACA,yBAIF,uCACE,iDAIF,+BAEE,aC/BJ,MACE,eACA,+DLyII,YK3IN,8BAMI,yCL0JA,YKhKJ,kCAWI,qBAIF,qBACE,kBACA,wCL+IA,mBKjJF,mBAMI,mBACA,6BAKF,aACE,aACA,WACA,gCAIF,eACE,qBAKJ,WACE,eACA,kBACA,UACA,+BAGA,UACE,mBACA,oBACA,mCAGA,oBACE,iCAKJ,yCACE,yBAIF,cACE,mBACA,cAIF,oBA9BF,YA+BI,aCvEN,gGCFE,eDKA,YACA,aACA,aACA,UACA,cACA,kBACA,oBACA,iCACA,gBACA,sCACA,YACA,oBACA,2BACA,UACA,6CAEE,sBAIF,aACE,WACA,gCAIF,uBACE,UACA,6EAEE,cAKJ,WAtCF,YAuCI,aEvCJ,uBACE,CADF,eACE,MACA,QACA,OACA,UACA,cACA,iCACA,4CACA,+DAIE,8CAGA,mBAIF,eACE,gBACA,kCAIF,gEAEI,+DAGA,cAMJ,WApCF,YAqCI,iBAKJ,YACE,gBACA,wBAGA,iBACE,UACA,aACA,cACA,eACA,yBACA,sCAME,oBACE,2DAKJ,UAEE,gCAIF,YACE,cACA,uEAGA,aAEE,aACA,cACA,kBACA,6CAKJ,YACE,qCRyEF,qCQlEE,YACE,2CRmFJ,+BQ3EE,YACE,yCRwDJ,qCQhDE,YACE,wBAMN,iBACE,WACA,wEAEE,6CAIF,UACE,8BACA,UACA,wEAEE,oBAEF,uDAGA,8BACE,8BAKJ,gBACE,oDAIF,YACE,uBAKJ,WACE,eACA,gBACA,mBACA,mEAGA,UACE,+BACA,UACA,wEAEE,oBAEF,6EAGA,6BACE,yFAIF,SACE,wBACA,UACA,wEAEE,uBAEF,gDAKJ,iBACE,WACA,YACA,wBAKJ,YACE,qCRrCA,uBQoCF,aAKI,cACA,kBACA,iBACA,kCAGA,iBACE,oBACA,yCRjDJ,uBQoCF,kBAmBI,kCAGA,mBACE,WC3NR,eACE,iCACA,eACA,4CACA,4BACA,iBAGA,eACE,0BACA,wEAEE,uBAEF,0CToKA,gBS1KF,iBAUI,qBACA,yCAIF,8BACE,UACA,iDAEE,oBAEF,kCAIF,oBACE,YClCN,gCACE,4CACA,cAGA,WALF,YAMI,wBAQF,aACE,cACA,sBAIF,YACE,mBACA,qBACA,yBACA,qCVwIA,qBU5IF,SAQI,wDAIF,UAEE,4BAIF,UACE,UACA,sCAGA,WACE,0CAGA,oBACE,0CVkIN,iDU7HE,YAII,6BAMN,WACE,UACA,iBACA,sCAGA,UACE,gBACA,0CAGA,oBACE,uBAOR,iBACE,YACA,8BACA,eACA,gBACA,mBACA,wBAIF,YACE,cACA,2BAIF,iBACE,QACA,OACA,iBACA,eACA,wCACA,iBACA,iBAKJ,oDACE,wBAGA,YACE,eACA,8BACA,cACA,mCAIF,uCACE,iFAGA,gCAEE,sBAMN,UACE,kBACA,gBACA,0CACA,iBACA,qCVqBE,qBU1BJ,UASI,kCAIF,uCACE,mBAKJ,cACE,sBACA,qCVKE,kBUPJ,eAMI,0BAIF,oBACE,aACA,cACA,kBACA,iCAGA,eACE,6BAIF,gBACE,oBACA,kBACA,SClLN,eACE,gBACA,gBAGA,aACE,gBACA,gBACA,gBACA,uBACA,gCAGA,YACE,oCAGA,UACE,YACA,uFAOA,aAEE,aACA,cACA,4CAIF,iBACE,eAOR,QACE,UACA,gBACA,eAIF,eACE,0BAGA,oBACE,6BAIF,eACE,uCAGA,mBACE,eACA,wCAIF,gBACE,eAMN,aACE,kBACA,gBACA,uBACA,eACA,uBACA,wBACA,+BAIA,YACE,uCAGA,YACE,mCAKJ,uCACE,qCAIF,gCACE,qCAIF,aACE,yCAIF,+BAEE,iBAKJ,YACE,0CX2DA,QWlLJ,2CA4HI,2CAGA,iBAEE,MACA,QACA,OACA,UACA,aACA,sBACA,YACA,gEAOA,eAEE,gBACA,iCAIF,iBACE,cACA,yBACA,wCACA,gBACA,mBACA,mBACA,sDACA,eACA,+CAGA,iBACE,UACA,WACA,cACA,aACA,cACA,aACA,yDAGA,WACE,aACA,+CAKJ,eACE,4CACA,iEAEE,qCACF,CADE,gCACF,CADE,4BACF,mBAC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A,uBYkRJ,aAiBI,yCZ9QF,uBY6PF,aAsBI,sCZnRF,uBY6PF,YA2BI,mEAGA,eACE,2CAIF,WACE,aACA,iDAIF,oDACE,uDAGA,0CACE,oBAQV,gCACE,sBACA,yBAGA,eACE,wCACA,iBACA,mBACA,sDACA,wBACA,qCZ9TA,wBYwTF,mBAUI,mCAGA,oBACE,qBACA,0BAMN,QACE,UACA,gBACA,6DACA,yBAIF,4DACE,yBAIF,aACE,UACA,4BACA,wBACA,6DAGA,uDAEE,mIAGA,UACE,8DAKJ,mBACE,4BAKJ,iBACE,gBACA,gBACA,qCZrXA,2BYkXF,mBAOI,sCAGA,oBACE,mBACA,gEAQF,eACE,gBACA,gBACA,gBACA,yBAMN,iBACE,OACA,aACA,cACA,wCACA,mCAGA,OACE,aACA,uCAGA,oBACE,0CZ5YJ,wBY8XF,YAoBI,2BAKJ,aACE,gBACA,iBACA,gBACA,2BAMF,mBACE,mBACA,cACA,gBACA,wCACA,iBACA,gBACA,uBACA,4BACA,qBACA,0CZ3aA,0BYiaF,iBAcI,qBACA,gEZvdA,0BYwcJ,iBAoBI,qBACA,uBAOJ,eACE,kBACA,0BACA,aC1mBJ,uBACE,CADF,eACE,WACA,cACA,iBACA,gBACA,cAGA,YARF,YASI,2CbiKA,qBa1JA,cACE,MACA,cACA,UACA,cACA,YACA,4CACA,wBACA,yEAEE,gCAIF,cACE,aACA,oEAIF,sGNtBJ,8BMyBM,8EAGA,8BACE,8CAKJ,eACE,yBAMN,YACE,QACA,qCb+FA,uBajGF,aAMI,gDAGA,kBACE,0BAMN,eACE,eACA,gBACA,mCAEA,CAFA,0BAEA,qCACA,CADA,gCACA,CADA,4BACA,0Cb6FA,6CavFE,iBACE,MACA,QACA,SACA,OACA,SACA,8BACA,CADA,yBACA,CADA,qBACA,6CAKJ,WACE,aACA,kDAIF,oDACE,wDAGA,0CACE,2CClHR,GACE,QACE,MAGF,aACE,ED4GI,kCClHR,GACE,QACE,MAGF,aACE,2CAKJ,GACE,0BACE,UACA,KAGF,SACE,MAGF,wBACE,UACA,EAjBA,iCAKJ,GACE,0BACE,UACA,KAGF,SACE,MAGF,wBACE,UACA,aASJ,aACE,iBACA,gBACA,mBACA,mCAEA,CAFA,0BAEA,yBACA,kBAGA,UACE,kBAIF,oBACE,aACA,cACA,sBACA,sBAGA,gBACE,kBACA,gCAGA,kBACE,oBACA,yCAKJ,iBACE,kBACA,mDAGA,kBACE,oBACA,mBACA,qBACA,wBAMN,oBACE,8BACA,kBACA,gBACA,gBACA,uBACA,sBACA,mBAIF,QACE,UACA,gBACA,gBACA,iBACA,qBACA,YACA,wCAGA,sDACE,CADF,8CACE,kBAKJ,UACE,4BAGA,WACE,uCAIF,sDACE,CADF,8CACE,0BAIF,cACE,YACA,sCAIF,YACE,UCjIN,UACE,cACA,iCACA,4CACA,4BACA,iBAGA,eACE,0CfyKA,SelLJ,YAcI,eAIF,SAlBF,YAmBI,iBAIF,QACE,kBACA,UACA,mBACA,gBACA,gBACA,0BAGA,kBACE,oBACA,gBAKJ,oBACE,cACA,oBACA,mBACA,gBAKF,aACE,iBACA,gBACA,WACA,wEAEE,uBAIF,eACE,6CAIF,aAEE,UACA,4CAKA,qBACE,4CADF,qBACE,4CADF,qBACE,4CADF,qBACE,4CADF,sBACE,4CADF,sBACE,4CADF,sBACE,4CADF,sBACE,6CADF,sBACE,6CADF,sBACE,6CADF,sBACE,6CADF,sBACE,6CADF,sBACE,6CADF,sBACE,6CADF,sBACE,gCAMN,mBACE,+CAIA,yBACE,UACA,yDAEE,wCfyEJ,uEe/DA,YACE,2DAUE,aACE,gBACA,oBACA,wBACA,yEAGA,YACE,wEAKJ,YACE,gFAGA,aACE,UACA,8FAGA,YACE,sDAOR,aAGE,kFAGA,eACE,6EAIF,YACE,QChIV,4RAMI,owHAUF,iBACE,gBACA,gBACA,iBACA,wBACA,gCACA,oBACA,mEAEE,iEAIF,gCACE,iBACA,cAIF,4CAnBF,eAoBI,gFAIF,mBACE,iIAIF,YACE,6FAIF,kBACE,mFAIF,eACE,mDAKJ,iBACE,iBACA,+BACA,gBACA,qCACA,uEAGA,8BACE,mFAIF,eACE,mEAIF,iBACE,WACA,WACA,YACA,yBCgJU,mDD9I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IF,wBAxBF,YAyBI,+FAKJ,kBAGE,UACA,oDAEE,6FAMJ,+BAGE,kFAYE,aACE,mBACA,kBACA,WACA,uGAIF,kBACE,mBACA,4BAVF,aACE,oBACA,mBACA,WACA,mCAIF,mBACE,oBACA,uDAVF,aACE,mBACA,kBACA,WACA,qEAIF,kBACE,mBACA,2BCjEN,cACE,gBACA,cACA,kBACA,0CrByKA,4BqBrKF,oBAII,oBACA,6BAKJ,SACE,2ECrBF,eAGE,oBACA,mCACA,CADA,0BACA,wBAIF,qBJEwB,wBIGxB,qBJFyB,6BIOzB,UJKmB,qCIDjB,aACE,oCAIF,aACE,2BAKJ,aACE,aACA,oBACA,mBACA,cACA,gBACA,wCAGA,eACE,uCAIF,kBACE,OCpDN,+LACE,qBASA,aAGE,cACA,iBACA,0CAIA,uBACE,iCAIF,gBACE,yCAIA,gCACE,4BAKJ,aACE,WACA,qBAKJ,aAGE,gBACA,gCACA,8BACA,eACA,+BAGA,+BACE,6CAIF,YACE,4BAIF,iBACE,UACA,YACA,WACA,YACA,8BACA,0CACA,CADA,iCACA,uBACA,2BACA,WACA,sCAGA,aACE,WACA,yBACA,yEC3EN,aAGE,oBACA,0BAIF,oBACE,eACA,wBACA,8BAGA,aACE,kBACA,mCCbJ,uBACE,CADF,eACE,qBACA,WACA,4BACA,4BACA,4BACA,0CACA,yCACA,iEACA,2BACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,6BCdF,YACE,SACA,WACA,2DACA,6NAGA,QAIE,iPAGA,wBACE,0BACA,yCAKJ,QACE,yBAKJ,iBACE,aACA,eACA,aACA,oBACA,+BAGA,YACE,6CAGA,+BACE,uCACA,6DAGA,aACE,+BAMN,SACE,WACA,2BACA,wCACA,gBACA,iBACA,sCACA,eACA,uBACA,0CAGA,+BACE,OCnER,8MACE,mQACA,6BASA,iBACE,qBACA,6CAIA,iBACE,UACA,UACA,uDAGA,UACE,aACA,6DASJ,iBACE,UACA,YACA,aACA,cACA,sDACA,2CACA,CADA,kCACA,WACA,uEAGA,YACE,aACA,qFAKJ,wBVsWa,oDUpWX,CVoWW,2CUpWX,gDAIF,UACE,UACA,C","file":"assets/stylesheets/main.c8609f9b.min.css","sourcesContent":["html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}html{text-size-adjust:none}body{margin:0}hr{box-sizing:content-box;overflow:visible}a,button,label,input{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}small{font-size:80%}sub,sup{position:relative;font-size:80%;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}table{border-collapse:separate;border-spacing:0}td,th{font-weight:normal;vertical-align:top}button{margin:0;padding:0;font-size:inherit;background:transparent;border:0}input{border:0;outline:0}:root{--md-default-fg-color: hsla(0, 0%, 0%, 0.87);--md-default-fg-color--light: hsla(0, 0%, 0%, 0.54);--md-default-fg-color--lighter: hsla(0, 0%, 0%, 0.26);--md-default-fg-color--lightest: hsla(0, 0%, 0%, 0.07);--md-default-bg-color: hsla(0, 0%, 100%, 1);--md-default-bg-color--light: hsla(0, 0%, 100%, 0.7);--md-default-bg-color--lighter: hsla(0, 0%, 100%, 0.3);--md-default-bg-color--lightest: hsla(0, 0%, 100%, 0.12);--md-primary-fg-color: hsla(231deg, 48%, 48%, 1);--md-primary-fg-color--light: hsla(230deg, 44%, 64%, 1);--md-primary-fg-color--dark: hsla(232deg, 54%, 41%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light);--md-accent-fg-color: hsla(231deg, 99%, 66%, 1);--md-accent-fg-color--transparent: hsla(231deg, 99%, 66%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light);--md-code-bg-color: hsla(0, 0%, 96%, 1);--md-code-fg-color: hsla(200, 18%, 26%, 1)}.md-icon svg{display:block;width:1.2rem;height:1.2rem;margin:0 auto;fill:currentColor}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,input{color:var(--md-default-fg-color);font-feature-settings:\"kern\",\"liga\";font-family:-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif}code,pre,kbd{color:var(--md-default-fg-color);font-feature-settings:\"kern\";font-family:SFMono-Regular,Consolas,Menlo,monospace}.md-typeset{font-size:.8rem;line-height:1.6;color-adjust:exact}.md-typeset p,.md-typeset ul,.md-typeset ol,.md-typeset blockquote{margin:1em 0}.md-typeset h1{margin:0 0 2rem;color:var(--md-default-fg-color--light);font-weight:300;font-size:1.5625rem;line-height:1.3;letter-spacing:-0.01em}.md-typeset h2{margin:2rem 0 .8rem;font-weight:300;font-size:1.25rem;line-height:1.4;letter-spacing:-0.01em}.md-typeset h3{margin:1.6rem 0 .8rem;font-weight:400;font-size:1rem;line-height:1.5;letter-spacing:-0.01em}.md-typeset h2+h3{margin-top:.8rem}.md-typeset h4{margin:.8rem 0;font-weight:700;font-size:.8rem;letter-spacing:-0.01em}.md-typeset h5,.md-typeset h6{margin:.8rem 0;color:var(--md-default-fg-color--light);font-weight:700;font-size:.64rem;letter-spacing:-0.01em}.md-typeset h5{text-transform:uppercase}.md-typeset hr{margin:1.5em 0;border-bottom:.05rem dotted var(--md-default-fg-color--lighter)}.md-typeset a{color:var(--md-primary-fg-color);word-break:break-word}.md-typeset a,.md-typeset a::before{transition:color 125ms}.md-typeset a:focus,.md-typeset a:hover{color:var(--md-accent-fg-color)}.md-typeset code,.md-typeset pre,.md-typeset kbd{color:var(--md-code-fg-color);direction:ltr}@media print{.md-typeset code,.md-typeset pre,.md-typeset kbd{white-space:pre-wrap}}.md-typeset code{padding:0 .2941176471em;font-size:.85em;word-break:break-word;background-color:var(--md-code-bg-color);border-radius:.1rem;box-decoration-break:clone}.md-typeset h1 code,.md-typeset h2 code,.md-typeset h3 code,.md-typeset h4 code,.md-typeset h5 code,.md-typeset h6 code{margin:initial;padding:initial;background-color:transparent;box-shadow:none}.md-typeset a>code{color:currentColor}.md-typeset pre{position:relative;margin:1em 0;line-height:1.4}.md-typeset pre>code{display:block;margin:0;padding:.525rem 1.1764705882em;overflow:auto;word-break:normal;box-shadow:none;box-decoration-break:slice;touch-action:auto}.md-typeset pre>code::-webkit-scrollbar{width:.2rem;height:.2rem}.md-typeset pre>code::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-typeset pre>code::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@media screen and (max-width: 44.9375em){.md-typeset>pre{margin:1em -0.8rem}.md-typeset>pre code{border-radius:0}}.md-typeset kbd{display:inline-block;padding:0 .6666666667em;font-size:.75em;line-height:1.5;vertical-align:text-top;word-break:break-word;border-radius:.1rem;box-shadow:0 .1rem 0 .05rem var(--md-default-fg-color--lighter),0 .1rem 0 var(--md-default-fg-color--lighter),inset 0 -0.1rem .2rem var(--md-default-bg-color)}.md-typeset mark{padding:0 .25em;word-break:break-word;background-color:rgba(255,235,59,.5);border-radius:.1rem;box-decoration-break:clone}.md-typeset abbr{text-decoration:none;border-bottom:.05rem dotted var(--md-default-fg-color--light);cursor:help}.md-typeset small{opacity:.75}.md-typeset sup,.md-typeset sub{margin-left:.078125em}[dir=rtl] .md-typeset sup,[dir=rtl] .md-typeset sub{margin-right:.078125em;margin-left:initial}.md-typeset blockquote{padding-left:.6rem;color:var(--md-default-fg-color--light);border-left:.2rem solid var(--md-default-fg-color--lighter)}[dir=rtl] .md-typeset blockquote{padding-right:.6rem;padding-left:initial;border-right:.2rem solid var(--md-default-fg-color--lighter);border-left:initial}.md-typeset ul{list-style-type:disc}.md-typeset ul,.md-typeset ol{margin-left:.625em;padding:0}[dir=rtl] .md-typeset ul,[dir=rtl] .md-typeset ol{margin-right:.625em;margin-left:initial}.md-typeset ul ol,.md-typeset ol ol{list-style-type:lower-alpha}.md-typeset ul ol ol,.md-typeset ol ol ol{list-style-type:lower-roman}.md-typeset ul li,.md-typeset ol li{margin-bottom:.5em;margin-left:1.25em}[dir=rtl] .md-typeset ul li,[dir=rtl] .md-typeset ol li{margin-right:1.25em;margin-left:initial}.md-typeset ul li p,.md-typeset ul li blockquote,.md-typeset ol li p,.md-typeset ol li blockquote{margin:.5em 0}.md-typeset ul li:last-child,.md-typeset ol li:last-child{margin-bottom:0}.md-typeset ul li ul,.md-typeset ul li ol,.md-typeset ol li ul,.md-typeset ol li ol{margin:.5em 0 .5em .625em}[dir=rtl] .md-typeset ul li ul,[dir=rtl] .md-typeset ul li ol,[dir=rtl] .md-typeset ol li ul,[dir=rtl] .md-typeset ol li ol{margin-right:.625em;margin-left:initial}.md-typeset dd{margin:1em 0 1em 1.875em}[dir=rtl] .md-typeset dd{margin-right:1.875em;margin-left:initial}.md-typeset iframe,.md-typeset img,.md-typeset svg{max-width:100%;height:auto}.md-typeset table:not([class]){display:inline-block;max-width:100%;overflow:auto;font-size:.64rem;background:var(--md-default-bg-color);border-radius:.1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .05rem rgba(0,0,0,.1);touch-action:auto}.md-typeset table:not([class])+*{margin-top:1.5em}.md-typeset table:not([class]) th:not([align]),.md-typeset table:not([class]) td:not([align]){text-align:left}[dir=rtl] .md-typeset table:not([class]) th:not([align]),[dir=rtl] .md-typeset table:not([class]) td:not([align]){text-align:right}.md-typeset table:not([class]) th{min-width:5rem;padding:.6rem .8rem;color:var(--md-default-bg-color);vertical-align:top;background-color:var(--md-default-fg-color--light)}.md-typeset table:not([class]) td{padding:.6rem .8rem;vertical-align:top;border-top:.05rem solid var(--md-default-fg-color--lightest)}.md-typeset table:not([class]) tr{transition:background-color 125ms}.md-typeset table:not([class]) tr:hover{background-color:rgba(0,0,0,.035);box-shadow:0 .05rem 0 var(--md-default-bg-color) inset}.md-typeset table:not([class]) tr:first-child td{border-top:0}.md-typeset table:not([class]) a{word-break:normal}.md-typeset__scrollwrap{margin:1em -0.8rem;overflow-x:auto;touch-action:auto}.md-typeset__table{display:inline-block;margin-bottom:.5em;padding:0 .8rem}.md-typeset__table table{display:table;width:100%;margin:0;overflow:hidden}html{height:100%;overflow-x:hidden;font-size:125%;background-color:var(--md-default-bg-color)}@media screen and (min-width: 100em){html{font-size:137.5%}}@media screen and (min-width: 125em){html{font-size:150%}}body{position:relative;display:flex;flex-direction:column;width:100%;min-height:100%;font-size:.5rem}@media screen and (max-width: 59.9375em){body[data-md-state=lock]{position:fixed}}@media print{body{display:block}}hr{display:block;height:.05rem;padding:0;border:0}.md-grid{max-width:61rem;margin-right:auto;margin-left:auto}.md-container{display:flex;flex-direction:column;flex-grow:1}@media print{.md-container{display:block}}.md-main{flex-grow:1}.md-main__inner{display:flex;height:100%;margin-top:1.5rem}.md-ellipsis{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.md-toggle{display:none}.md-overlay{position:fixed;top:0;z-index:3;width:0;height:0;background-color:var(--md-default-fg-color--light);opacity:0;transition:width 0ms 250ms,height 0ms 250ms,opacity 250ms}@media screen and (max-width: 76.1875em){[data-md-toggle=drawer]:checked~.md-overlay{width:100%;height:100%;opacity:1;transition:width 0ms,height 0ms,opacity 250ms}}.md-skip{position:fixed;z-index:-1;margin:.5rem;padding:.3rem .5rem;color:var(--md-default-bg-color);font-size:.64rem;background-color:var(--md-default-fg-color);border-radius:.1rem;transform:translateY(0.4rem);opacity:0}.md-skip:focus{z-index:10;transform:translateY(0);opacity:1;transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1),opacity 175ms 75ms}@page{margin:25mm}.md-announce{overflow:auto;background-color:var(--md-default-fg-color)}.md-announce__inner{margin:.6rem auto;padding:0 .8rem;color:var(--md-default-bg-color);font-size:.7rem}@media print{.md-announce{display:none}}.md-typeset .md-button{display:inline-block;padding:.625em 2em;color:var(--md-primary-fg-color);font-weight:700;border:.1rem solid currentColor;border-radius:.1rem;transition:color 125ms,background-color 125ms,border-color 125ms}.md-typeset .md-button--primary{color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color);border-color:var(--md-primary-fg-color)}.md-typeset .md-button:focus,.md-typeset .md-button:hover{color:var(--md-accent-bg-color);background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color)}.md-clipboard{position:absolute;top:.4rem;right:.5em;z-index:1;width:1.5em;height:1.5em;color:var(--md-default-fg-color--lightest);border-radius:.1rem;cursor:pointer;transition:color 125ms}@media print{.md-clipboard{display:none}}.md-clipboard svg{width:1.125em;height:1.125em}pre:hover .md-clipboard{color:var(--md-default-fg-color--light)}pre .md-clipboard:focus,pre .md-clipboard:hover{color:var(--md-accent-fg-color)}.md-content{flex:1;max-width:100%}@media screen and (min-width: 60em)and (max-width: 76.1875em){.md-content{max-width:calc(100% - 12.1rem)}}@media screen and (min-width: 76.25em){.md-content{max-width:calc(100% - 12.1rem * 2)}}.md-content__inner{margin:0 .8rem 1.2rem;padding-top:.6rem}@media screen and (min-width: 76.25em){.md-content__inner{margin-right:1.2rem;margin-left:1.2rem}}.md-content__inner::before{display:block;height:.4rem;content:\"\"}.md-content__inner>:last-child{margin-bottom:0}.md-content__button{float:right;margin:.4rem 0;margin-left:.4rem;padding:0}[dir=rtl] .md-content__button{float:left;margin-right:.4rem;margin-left:initial}[dir=rtl] .md-content__button svg{transform:scaleX(-1)}.md-typeset .md-content__button{color:var(--md-default-fg-color--lighter)}.md-content__button svg{display:inline;vertical-align:top}@media print{.md-content__button{display:none}}.md-dialog{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);position:fixed;right:.8rem;bottom:.8rem;left:initial;z-index:2;display:block;min-width:11.1rem;padding:.4rem .6rem;color:var(--md-default-bg-color);font-size:.7rem;background:var(--md-default-fg-color);border:none;border-radius:.1rem;transform:translateY(100%);opacity:0;transition:transform 0ms 400ms,opacity 400ms}[dir=rtl] .md-dialog{right:initial;left:.8rem}.md-dialog[data-md-state=open]{transform:translateY(0);opacity:1;transition:transform 400ms cubic-bezier(0.075, 0.85, 0.175, 1),opacity 400ms}@media print{.md-dialog{display:none}}.md-header{position:sticky;top:0;right:0;left:0;z-index:2;height:2.4rem;color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color);box-shadow:0 0 .2rem rgba(0,0,0,0),0 .2rem .4rem rgba(0,0,0,0);transition:color 250ms,background-color 250ms}.no-js .md-header{box-shadow:none;transition:none}.md-header[data-md-state=shadow]{box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2);transition:color 250ms,background-color 250ms,box-shadow 250ms}@media print{.md-header{display:none}}.md-header-nav{display:flex;padding:0 .2rem}.md-header-nav__button{position:relative;z-index:1;margin:.2rem;padding:.4rem;cursor:pointer;transition:opacity 250ms}[dir=rtl] .md-header-nav__button svg{transform:scaleX(-1)}.md-header-nav__button:focus,.md-header-nav__button:hover{opacity:.7}.md-header-nav__button.md-logo{margin:.2rem;padding:.4rem}.md-header-nav__button.md-logo img,.md-header-nav__button.md-logo svg{display:block;width:1.2rem;height:1.2rem;fill:currentColor}.no-js .md-header-nav__button[for=__search]{display:none}@media screen and (min-width: 60em){.md-header-nav__button[for=__search]{display:none}}@media screen and (max-width: 76.1875em){.md-header-nav__button.md-logo{display:none}}@media screen and (min-width: 76.25em){.md-header-nav__button[for=__drawer]{display:none}}.md-header-nav__topic{position:absolute;width:100%;transition:transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 150ms}.md-header-nav__topic+.md-header-nav__topic{z-index:-1;transform:translateX(1.25rem);opacity:0;transition:transform 400ms cubic-bezier(1, 0.7, 0.1, 0.1),opacity 150ms;pointer-events:none}[dir=rtl] .md-header-nav__topic+.md-header-nav__topic{transform:translateX(-1.25rem)}.no-js .md-header-nav__topic{position:initial}.no-js .md-header-nav__topic+.md-header-nav__topic{display:none}.md-header-nav__title{flex-grow:1;padding:0 1rem;font-size:.9rem;line-height:2.4rem}.md-header-nav__title[data-md-state=active] .md-header-nav__topic{z-index:-1;transform:translateX(-1.25rem);opacity:0;transition:transform 400ms cubic-bezier(1, 0.7, 0.1, 0.1),opacity 150ms;pointer-events:none}[dir=rtl] .md-header-nav__title[data-md-state=active] .md-header-nav__topic{transform:translateX(1.25rem)}.md-header-nav__title[data-md-state=active] .md-header-nav__topic+.md-header-nav__topic{z-index:0;transform:translateX(0);opacity:1;transition:transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 150ms;pointer-events:initial}.md-header-nav__title>.md-header-nav__ellipsis{position:relative;width:100%;height:100%}.md-header-nav__source{display:none}@media screen and (min-width: 60em){.md-header-nav__source{display:block;width:11.7rem;max-width:11.7rem;margin-left:1rem}[dir=rtl] .md-header-nav__source{margin-right:1rem;margin-left:initial}}@media screen and (min-width: 76.25em){.md-header-nav__source{margin-left:1.4rem}[dir=rtl] .md-header-nav__source{margin-right:1.4rem}}.md-hero{overflow:hidden;color:var(--md-primary-bg-color);font-size:1rem;background-color:var(--md-primary-fg-color);transition:background 250ms}.md-hero__inner{margin-top:1rem;padding:.8rem .8rem .4rem;transition:transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 250ms;transition-delay:100ms}@media screen and (max-width: 76.1875em){.md-hero__inner{margin-top:2.4rem;margin-bottom:1.2rem}}[data-md-state=hidden] .md-hero__inner{transform:translateY(0.625rem);opacity:0;transition:transform 0ms 400ms,opacity 100ms 0ms;pointer-events:none}.md-hero--expand .md-hero__inner{margin-bottom:1.2rem}.md-footer{color:var(--md-default-bg-color);background-color:var(--md-default-fg-color)}@media print{.md-footer{display:none}}.md-footer-nav__inner{padding:.2rem;overflow:auto}.md-footer-nav__link{display:flex;padding-top:1.4rem;padding-bottom:.4rem;transition:opacity 250ms}@media screen and (min-width: 45em){.md-footer-nav__link{width:50%}}.md-footer-nav__link:focus,.md-footer-nav__link:hover{opacity:.7}.md-footer-nav__link--prev{float:left;width:25%}[dir=rtl] .md-footer-nav__link--prev{float:right}[dir=rtl] .md-footer-nav__link--prev svg{transform:scaleX(-1)}@media screen and (max-width: 44.9375em){.md-footer-nav__link--prev .md-footer-nav__title{display:none}}.md-footer-nav__link--next{float:right;width:75%;text-align:right}[dir=rtl] .md-footer-nav__link--next{float:left;text-align:left}[dir=rtl] .md-footer-nav__link--next svg{transform:scaleX(-1)}.md-footer-nav__title{position:relative;flex-grow:1;max-width:calc(100% - 2.4rem);padding:0 1rem;font-size:.9rem;line-height:2.4rem}.md-footer-nav__button{margin:.2rem;padding:.4rem}.md-footer-nav__direction{position:absolute;right:0;left:0;margin-top:-1rem;padding:0 1rem;color:var(--md-default-bg-color--light);font-size:.64rem}.md-footer-meta{background-color:var(--md-default-fg-color--lighter)}.md-footer-meta__inner{display:flex;flex-wrap:wrap;justify-content:space-between;padding:.2rem}html .md-footer-meta.md-typeset a{color:var(--md-default-bg-color--light)}html .md-footer-meta.md-typeset a:focus,html .md-footer-meta.md-typeset a:hover{color:var(--md-default-bg-color)}.md-footer-copyright{width:100%;margin:auto .6rem;padding:.4rem 0;color:var(--md-default-bg-color--lighter);font-size:.64rem}@media screen and (min-width: 45em){.md-footer-copyright{width:auto}}.md-footer-copyright__highlight{color:var(--md-default-bg-color--light)}.md-footer-social{margin:0 .4rem;padding:.2rem 0 .6rem}@media screen and (min-width: 45em){.md-footer-social{padding:.6rem 0}}.md-footer-social__link{display:inline-block;width:1.6rem;height:1.6rem;text-align:center}.md-footer-social__link::before{line-height:1.9}.md-footer-social__link svg{max-height:.8rem;vertical-align:-25%;fill:currentColor}.md-nav{font-size:.7rem;line-height:1.3}.md-nav__title{display:block;padding:0 .6rem;overflow:hidden;font-weight:700;text-overflow:ellipsis}.md-nav__title .md-nav__button{display:none}.md-nav__title .md-nav__button img{width:100%;height:auto}.md-nav__title .md-nav__button.md-logo img,.md-nav__title .md-nav__button.md-logo svg{display:block;width:2.4rem;height:2.4rem}.md-nav__title .md-nav__button.md-logo svg{fill:currentColor}.md-nav__list{margin:0;padding:0;list-style:none}.md-nav__item{padding:0 .6rem}.md-nav__item:last-child{padding-bottom:.6rem}.md-nav__item .md-nav__item{padding-right:0}[dir=rtl] .md-nav__item .md-nav__item{padding-right:.6rem;padding-left:0}.md-nav__item .md-nav__item:last-child{padding-bottom:0}.md-nav__link{display:block;margin-top:.625em;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:color 125ms;scroll-snap-align:start}html .md-nav__link[for=__toc]{display:none}html .md-nav__link[for=__toc]~.md-nav{display:none}.md-nav__link[data-md-state=blur]{color:var(--md-default-fg-color--light)}.md-nav__item .md-nav__link--active{color:var(--md-primary-fg-color)}.md-nav__item--nested>.md-nav__link{color:inherit}.md-nav__link:focus,.md-nav__link:hover{color:var(--md-accent-fg-color)}.md-nav__source{display:none}@media screen and (max-width: 76.1875em){.md-nav{background-color:var(--md-default-bg-color)}.md-nav--primary,.md-nav--primary .md-nav{position:absolute;top:0;right:0;left:0;z-index:1;display:flex;flex-direction:column;height:100%}.md-nav--primary .md-nav__title,.md-nav--primary .md-nav__item{font-size:.8rem;line-height:1.5}.md-nav--primary .md-nav__title{position:relative;height:5.6rem;padding:3rem .8rem .2rem;color:var(--md-default-fg-color--light);font-weight:400;line-height:2.4rem;white-space:nowrap;background-color:var(--md-default-fg-color--lightest);cursor:pointer}.md-nav--primary .md-nav__title .md-nav__icon{position:absolute;top:.4rem;left:.4rem;display:block;width:1.2rem;height:1.2rem;margin:.2rem}[dir=rtl] .md-nav--primary .md-nav__title .md-nav__icon{right:.4rem;left:initial}.md-nav--primary .md-nav__title~.md-nav__list{overflow-y:auto;background-color:var(--md-default-bg-color);box-shadow:inset 0 .05rem 0 var(--md-default-fg-color--lightest);scroll-snap-type:y mandatory;touch-action:pan-y}.md-nav--primary .md-nav__title~.md-nav__list>.md-nav__item:first-child{border-top:0}.md-nav--primary .md-nav__title[for=__drawer]{position:relative;color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color)}.md-nav--primary .md-nav__title[for=__drawer] .md-nav__button{position:absolute;top:.2rem;left:.2rem;display:block;margin:.2rem;padding:.4rem;font-size:2.4rem}html [dir=rtl] .md-nav--primary .md-nav__title[for=__drawer] .md-nav__button{right:.2rem;left:initial}.md-nav--primary .md-nav__list{flex:1}.md-nav--primary .md-nav__item{padding:0;border-top:.05rem solid var(--md-default-fg-color--lightest)}[dir=rtl] .md-nav--primary .md-nav__item{padding:0}.md-nav--primary .md-nav__item--nested>.md-nav__link{padding-right:2.4rem}[dir=rtl] .md-nav--primary .md-nav__item--nested>.md-nav__link{padding-right:.8rem;padding-left:2.4rem}.md-nav--primary .md-nav__item--active>.md-nav__link{color:var(--md-primary-fg-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:focus,.md-nav--primary .md-nav__item--active>.md-nav__link:hover{color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__link{position:relative;margin-top:0;padding:.6rem .8rem}.md-nav--primary .md-nav__link .md-nav__icon{position:absolute;top:50%;right:.6rem;margin-top:-0.6rem;color:inherit;font-size:1.2rem}[dir=rtl] .md-nav--primary .md-nav__link .md-nav__icon{right:initial;left:.6rem}[dir=rtl] .md-nav--primary .md-nav__icon svg{transform:scale(-1)}.md-nav--primary .md-nav--secondary .md-nav__link{position:static}.md-nav--primary .md-nav--secondary .md-nav{position:static;background-color:transparent}.md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-left:1.4rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-right:1.4rem;padding-left:initial}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-left:2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-right:2rem;padding-left:initial}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-left:2.6rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-right:2.6rem;padding-left:initial}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-left:3.2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-right:3.2rem;padding-left:initial}.md-nav__toggle~.md-nav{display:flex;transform:translateX(100%);opacity:0;transition:transform 250ms cubic-bezier(0.8, 0, 0.6, 1),opacity 125ms 50ms}[dir=rtl] .md-nav__toggle~.md-nav{transform:translateX(-100%)}.md-nav__toggle:checked~.md-nav{transform:translateX(0);opacity:1;transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1),opacity 125ms 125ms}.md-nav__toggle:checked~.md-nav>.md-nav__list{backface-visibility:hidden}}@media screen and (max-width: 59.9375em){html .md-nav__link[for=__toc]{display:block;padding-right:2.4rem}html .md-nav__link[for=__toc]+.md-nav__link{display:none}html .md-nav__link[for=__toc]~.md-nav{display:flex}html [dir=rtl] .md-nav__link{padding-right:.8rem;padding-left:2.4rem}.md-nav__source{display:block;padding:0 .2rem;color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color--dark)}}@media screen and (min-width: 60em){.md-nav--secondary .md-nav__title[for=__toc]{scroll-snap-align:start}.md-nav--secondary .md-nav__title .md-nav__icon{display:none}}@media screen and (min-width: 76.25em){.md-nav{transition:max-height 250ms cubic-bezier(0.86, 0, 0.07, 1)}.md-nav--primary .md-nav__title[for=__drawer]{scroll-snap-align:start}.md-nav--primary .md-nav__title .md-nav__icon{display:none}.md-nav__toggle~.md-nav{display:none}.md-nav__toggle:checked~.md-nav{display:block}.md-nav__item--nested>.md-nav>.md-nav__title{display:none}.md-nav__icon{float:right;height:.9rem;transition:transform 250ms}[dir=rtl] .md-nav__icon{float:left;transform:rotate(180deg)}.md-nav__icon svg{display:inline-block;width:.9rem;height:.9rem;vertical-align:-0.1rem}.md-nav__item--nested .md-nav__toggle:checked~.md-nav__link .md-nav__icon{transform:rotate(90deg)}}.md-search{position:relative}.no-js .md-search{display:none}@media screen and (min-width: 60em){.md-search{padding:.2rem 0}}.md-search__overlay{z-index:1;opacity:0}@media screen and (max-width: 59.9375em){.md-search__overlay{position:absolute;top:.2rem;left:-2.2rem;width:2rem;height:2rem;overflow:hidden;background-color:var(--md-default-bg-color);border-radius:1rem;transform-origin:center;transition:transform 300ms 100ms,opacity 200ms 200ms;pointer-events:none}[dir=rtl] .md-search__overlay{right:-2.2rem;left:initial}[data-md-toggle=search]:checked~.md-header .md-search__overlay{opacity:1;transition:transform 400ms,opacity 100ms}}@media screen and (max-width: 29.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(45)}}@media screen and (min-width: 30em)and (max-width: 44.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(60)}}@media screen and (min-width: 45em)and (max-width: 59.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(75)}}@media screen and (min-width: 60em){.md-search__overlay{position:fixed;top:0;left:0;width:0;height:0;background-color:var(--md-default-fg-color--light);cursor:pointer;transition:width 0ms 250ms,height 0ms 250ms,opacity 250ms}[dir=rtl] .md-search__overlay{right:0;left:initial}[data-md-toggle=search]:checked~.md-header .md-search__overlay{width:100%;height:100%;opacity:1;transition:width 0ms,height 0ms,opacity 250ms}}.md-search__inner{backface-visibility:hidden}@media screen and (max-width: 59.9375em){.md-search__inner{position:fixed;top:0;left:100%;z-index:2;width:100%;height:100%;transform:translateX(5%);opacity:0;transition:right 0ms 300ms,left 0ms 300ms,transform 150ms 150ms cubic-bezier(0.4, 0, 0.2, 1),opacity 150ms 150ms}[data-md-toggle=search]:checked~.md-header .md-search__inner{left:0;transform:translateX(0);opacity:1;transition:right 0ms 0ms,left 0ms 0ms,transform 150ms 150ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 150ms 150ms}[dir=rtl] [data-md-toggle=search]:checked~.md-header .md-search__inner{right:0;left:initial}html [dir=rtl] .md-search__inner{right:100%;left:initial;transform:translateX(-5%)}}@media screen and (min-width: 60em){.md-search__inner{position:relative;float:right;width:11.7rem;padding:.1rem 0;transition:width 250ms cubic-bezier(0.1, 0.7, 0.1, 1)}[dir=rtl] .md-search__inner{float:left}}@media screen and (min-width: 60em)and (max-width: 76.1875em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:23.4rem}}@media screen and (min-width: 76.25em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:34.4rem}}.md-search__form{position:relative}@media screen and (min-width: 60em){.md-search__form{border-radius:.1rem}}.md-search__input{position:relative;z-index:2;padding:0 2.2rem 0 3.6rem;text-overflow:ellipsis}[dir=rtl] .md-search__input{padding:0 3.6rem 0 2.2rem}.md-search__input::placeholder{transition:color 250ms}.md-search__input~.md-search__icon,.md-search__input::placeholder{color:var(--md-default-fg-color--light)}.md-search__input::-ms-clear{display:none}@media screen and (max-width: 59.9375em){.md-search__input{width:100%;height:2.4rem;font-size:.9rem}}@media screen and (min-width: 60em){.md-search__input{width:100%;height:1.8rem;padding-left:2.2rem;color:inherit;font-size:.8rem;background-color:var(--md-default-fg-color--lighter);border-radius:.1rem;transition:color 250ms,background-color 250ms}[dir=rtl] .md-search__input{padding-right:2.2rem}.md-search__input+.md-search__icon{color:var(--md-primary-bg-color)}.md-search__input::placeholder{color:var(--md-primary-bg-color--light)}.md-search__input:hover{background-color:var(--md-default-bg-color--lightest)}[data-md-toggle=search]:checked~.md-header .md-search__input{color:var(--md-default-fg-color);text-overflow:clip;background-color:var(--md-default-bg-color);border-radius:.1rem .1rem 0 0}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon,[data-md-toggle=search]:checked~.md-header .md-search__input::placeholder{color:var(--md-default-fg-color--light)}}.md-search__icon{position:absolute;z-index:2;width:1.2rem;height:1.2rem;cursor:pointer;transition:color 250ms,opacity 250ms}.md-search__icon:hover{opacity:.7}.md-search__icon[for=__search]{top:.3rem;left:.5rem}[dir=rtl] .md-search__icon[for=__search]{right:.5rem;left:initial}[dir=rtl] .md-search__icon[for=__search] svg{transform:scaleX(-1)}@media screen and (max-width: 59.9375em){.md-search__icon[for=__search]{top:.6rem;left:.8rem}[dir=rtl] .md-search__icon[for=__search]{right:.8rem;left:initial}.md-search__icon[for=__search] svg:first-child{display:none}}@media screen and (min-width: 60em){.md-search__icon[for=__search]{pointer-events:none}.md-search__icon[for=__search] svg:last-child{display:none}}.md-search__icon[type=reset]{top:.3rem;right:.5rem;transform:scale(0.75);opacity:0;transition:transform 150ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 150ms;pointer-events:none}[dir=rtl] .md-search__icon[type=reset]{right:initial;left:.5rem}@media screen and (max-width: 59.9375em){.md-search__icon[type=reset]{top:.6rem;right:.8rem}[dir=rtl] .md-search__icon[type=reset]{right:initial;left:.8rem}}[data-md-toggle=search]:checked~.md-header .md-search__input:not(:placeholder-shown)~.md-search__icon[type=reset]{transform:scale(1);opacity:1;pointer-events:initial}[data-md-toggle=search]:checked~.md-header .md-search__input:not(:placeholder-shown)~.md-search__icon[type=reset]:hover{opacity:.7}.md-search__output{position:absolute;z-index:1;width:100%;overflow:hidden;border-radius:0 0 .1rem .1rem}@media screen and (max-width: 59.9375em){.md-search__output{top:2.4rem;bottom:0}}@media screen and (min-width: 60em){.md-search__output{top:1.9rem;opacity:0;transition:opacity 400ms}[data-md-toggle=search]:checked~.md-header .md-search__output{box-shadow:0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.4);opacity:1}}.md-search__scrollwrap{height:100%;overflow-y:auto;background-color:var(--md-default-bg-color);box-shadow:inset 0 .05rem 0 var(--md-default-fg-color--lightest);backface-visibility:hidden;scroll-snap-type:y mandatory;touch-action:pan-y}@media(max-resolution: 1dppx){.md-search__scrollwrap{transform:translateZ(0)}}@media screen and (min-width: 60em)and (max-width: 76.1875em){.md-search__scrollwrap{width:23.4rem}}@media screen and (min-width: 76.25em){.md-search__scrollwrap{width:34.4rem}}@media screen and (min-width: 60em){.md-search__scrollwrap{max-height:0}[data-md-toggle=search]:checked~.md-header .md-search__scrollwrap{max-height:75vh}.md-search__scrollwrap::-webkit-scrollbar{width:.2rem;height:.2rem}.md-search__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}}.md-search-result{color:var(--md-default-fg-color);word-break:break-word}.md-search-result__meta{padding:0 .8rem;color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.8rem;background-color:var(--md-default-fg-color--lightest);scroll-snap-align:start}@media screen and (min-width: 60em){.md-search-result__meta{padding-left:2.2rem}[dir=rtl] .md-search-result__meta{padding-right:2.2rem;padding-left:initial}}.md-search-result__list{margin:0;padding:0;list-style:none;border-top:.05rem solid var(--md-default-fg-color--lightest)}.md-search-result__item{box-shadow:0 -0.05rem 0 var(--md-default-fg-color--lightest)}.md-search-result__link{display:block;outline:0;transition:background 250ms;scroll-snap-align:start}.md-search-result__link:focus,.md-search-result__link:hover{background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:focus .md-search-result__article::before,.md-search-result__link:hover .md-search-result__article::before{opacity:.7}.md-search-result__link:last-child .md-search-result__teaser{margin-bottom:.6rem}.md-search-result__article{position:relative;padding:0 .8rem;overflow:hidden}@media screen and (min-width: 60em){.md-search-result__article{padding-left:2.2rem}[dir=rtl] .md-search-result__article{padding-right:2.2rem;padding-left:.8rem}}.md-search-result__article--document .md-search-result__title{margin:.55rem 0;font-weight:400;font-size:.8rem;line-height:1.4}.md-search-result__icon{position:absolute;left:0;margin:.1rem;padding:.4rem;color:var(--md-default-fg-color--light)}[dir=rtl] .md-search-result__icon{right:0;left:initial}[dir=rtl] .md-search-result__icon svg{transform:scaleX(-1)}@media screen and (max-width: 59.9375em){.md-search-result__icon{display:none}}.md-search-result__title{margin:.5em 0;font-weight:700;font-size:.64rem;line-height:1.4}.md-search-result__teaser{display:-webkit-box;max-height:1.65rem;margin:.5em 0;overflow:hidden;color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.4;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:2}@media screen and (max-width: 44.9375em){.md-search-result__teaser{max-height:2.5rem;-webkit-line-clamp:3}}@media screen and (min-width: 60em)and (max-width: 76.1875em){.md-search-result__teaser{max-height:2.5rem;-webkit-line-clamp:3}}.md-search-result em{font-weight:700;font-style:normal;text-decoration:underline}.md-sidebar{position:sticky;top:2.4rem;width:12.1rem;padding:1.2rem 0;overflow:hidden}@media print{.md-sidebar{display:none}}@media screen and (max-width: 76.1875em){.md-sidebar--primary{position:fixed;top:0;left:-12.1rem;z-index:3;width:12.1rem;height:100%;background-color:var(--md-default-bg-color);transform:translateX(0);transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 250ms}[dir=rtl] .md-sidebar--primary{right:-12.1rem;left:initial}[data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{box-shadow:0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12),0 5px 5px -3px rgba(0,0,0,.4);transform:translateX(12.1rem)}[dir=rtl] [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{transform:translateX(-12.1rem)}.md-sidebar--primary .md-sidebar__scrollwrap{overflow:hidden}}.md-sidebar--secondary{display:none;order:2}@media screen and (min-width: 60em){.md-sidebar--secondary{display:block}.md-sidebar--secondary .md-sidebar__scrollwrap{touch-action:pan-y}}.md-sidebar__scrollwrap{max-height:100%;margin:0 .2rem;overflow-y:auto;backface-visibility:hidden;scroll-snap-type:y mandatory}@media screen and (max-width: 76.1875em){.md-sidebar--primary .md-sidebar__scrollwrap{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;scroll-snap-type:none}}.md-sidebar__scrollwrap::-webkit-scrollbar{width:.2rem;height:.2rem}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@keyframes md-source__facts--done{0%{height:0}100%{height:.65rem}}@keyframes md-source__fact--done{0%{transform:translateY(100%);opacity:0}50%{opacity:0}100%{transform:translateY(0%);opacity:1}}.md-source{display:block;font-size:.65rem;line-height:1.2;white-space:nowrap;backface-visibility:hidden;transition:opacity 250ms}.md-source:hover{opacity:.7}.md-source__icon{display:inline-block;width:2.4rem;height:2.4rem;vertical-align:middle}.md-source__icon svg{margin-top:.6rem;margin-left:.6rem}[dir=rtl] .md-source__icon svg{margin-right:.6rem;margin-left:initial}.md-source__icon+.md-source__repository{margin-left:-2rem;padding-left:2rem}[dir=rtl] .md-source__icon+.md-source__repository{margin-right:-2rem;margin-left:initial;padding-right:2rem;padding-left:initial}.md-source__repository{display:inline-block;max-width:calc(100% - 1.2rem);margin-left:.6rem;overflow:hidden;font-weight:700;text-overflow:ellipsis;vertical-align:middle}.md-source__facts{margin:0;padding:0;overflow:hidden;font-weight:700;font-size:.55rem;list-style-type:none;opacity:.75}[data-md-state=done] .md-source__facts{animation:md-source__facts--done 250ms ease-in}.md-source__fact{float:left}[dir=rtl] .md-source__fact{float:right}[data-md-state=done] .md-source__fact{animation:md-source__fact--done 400ms ease-out}.md-source__fact::before{margin:0 .1rem;content:\"·\"}.md-source__fact:first-child::before{display:none}.md-tabs{width:100%;overflow:auto;color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color);transition:background 250ms}.no-js .md-tabs{transition:none}@media screen and (max-width: 76.1875em){.md-tabs{display:none}}@media print{.md-tabs{display:none}}.md-tabs__list{margin:0;margin-left:.2rem;padding:0;white-space:nowrap;list-style:none;contain:content}[dir=rtl] .md-tabs__list{margin-right:.2rem;margin-left:initial}.md-tabs__item{display:inline-block;height:2.4rem;padding-right:.6rem;padding-left:.6rem}.md-tabs__link{display:block;margin-top:.8rem;font-size:.7rem;opacity:.7;transition:transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 250ms}.no-js .md-tabs__link{transition:none}.md-tabs__link--active,.md-tabs__link:hover{color:inherit;opacity:1}.md-tabs__item:nth-child(2) .md-tabs__link{transition-delay:20ms}.md-tabs__item:nth-child(3) .md-tabs__link{transition-delay:40ms}.md-tabs__item:nth-child(4) .md-tabs__link{transition-delay:60ms}.md-tabs__item:nth-child(5) .md-tabs__link{transition-delay:80ms}.md-tabs__item:nth-child(6) .md-tabs__link{transition-delay:100ms}.md-tabs__item:nth-child(7) .md-tabs__link{transition-delay:120ms}.md-tabs__item:nth-child(8) .md-tabs__link{transition-delay:140ms}.md-tabs__item:nth-child(9) .md-tabs__link{transition-delay:160ms}.md-tabs__item:nth-child(10) .md-tabs__link{transition-delay:180ms}.md-tabs__item:nth-child(11) .md-tabs__link{transition-delay:200ms}.md-tabs__item:nth-child(12) .md-tabs__link{transition-delay:220ms}.md-tabs__item:nth-child(13) .md-tabs__link{transition-delay:240ms}.md-tabs__item:nth-child(14) .md-tabs__link{transition-delay:260ms}.md-tabs__item:nth-child(15) .md-tabs__link{transition-delay:280ms}.md-tabs__item:nth-child(16) .md-tabs__link{transition-delay:300ms}.md-tabs[data-md-state=hidden]{pointer-events:none}.md-tabs[data-md-state=hidden] .md-tabs__link{transform:translateY(50%);opacity:0;transition:color 250ms,transform 0ms 400ms,opacity 100ms}@media screen and (min-width: 76.25em){.md-tabs~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--nested{display:none}.md-tabs--active~.md-main .md-nav--primary .md-nav__title{display:block;padding:0 .6rem;pointer-events:none;scroll-snap-align:start}.md-tabs--active~.md-main .md-nav--primary .md-nav__title[for=__drawer]{display:none}.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item{display:none}.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--active{display:block;padding:0}.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--active>.md-nav__link{display:none}.md-tabs--active~.md-main .md-nav[data-md-level=\"1\"]{display:block}.md-tabs--active~.md-main .md-nav[data-md-level=\"1\"]>.md-nav__list>.md-nav__item{padding:0 .6rem}.md-tabs--active~.md-main .md-nav[data-md-level=\"1\"] .md-nav .md-nav__title{display:none}}:root{--md-admonition-icon--note: svg-load(\"@mdi/svg/svg/pencil.svg\");--md-admonition-icon--abstract: svg-load(\"@mdi/svg/svg/text-subject.svg\");--md-admonition-icon--info: svg-load(\"@mdi/svg/svg/information.svg\");--md-admonition-icon--tip: svg-load(\"@mdi/svg/svg/fire.svg\");--md-admonition-icon--success: svg-load(\"@mdi/svg/svg/check-circle.svg\");--md-admonition-icon--question: svg-load(\"@mdi/svg/svg/help-circle.svg\");--md-admonition-icon--warning: svg-load(\"@mdi/svg/svg/alert.svg\");--md-admonition-icon--failure: svg-load(\"@mdi/svg/svg/close-circle.svg\");--md-admonition-icon--danger: svg-load(\"@mdi/svg/svg/flash-circle.svg\");--md-admonition-icon--bug: svg-load(\"@mdi/svg/svg/bug.svg\");--md-admonition-icon--example: svg-load(\"@mdi/svg/svg/format-list-numbered.svg\");--md-admonition-icon--quote: svg-load(\"@mdi/svg/svg/format-quote-close.svg\")}.md-typeset .admonition,.md-typeset details{margin:1.5625em 0;padding:0 .6rem;overflow:hidden;font-size:.64rem;page-break-inside:avoid;border-left:.2rem solid #448aff;border-radius:.1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .05rem rgba(0,0,0,.1)}[dir=rtl] .md-typeset .admonition,[dir=rtl] .md-typeset details{border-right:.2rem solid #448aff;border-left:none}@media print{.md-typeset .admonition,.md-typeset details{box-shadow:none}}html .md-typeset .admonition>:last-child,html .md-typeset details>:last-child{margin-bottom:.6rem}.md-typeset .admonition .admonition,.md-typeset details .admonition,.md-typeset .admonition details,.md-typeset details details{margin:1em 0}.md-typeset .admonition .md-typeset__scrollwrap,.md-typeset details .md-typeset__scrollwrap{margin:1em -0.6rem}.md-typeset .admonition .md-typeset__table,.md-typeset details .md-typeset__table{padding:0 .6rem}.md-typeset .admonition-title,.md-typeset summary{position:relative;margin:0 -0.6rem;padding:.4rem .6rem .4rem 2rem;font-weight:700;background-color:rgba(68,138,255,.1)}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{padding:.4rem 2rem .4rem .6rem}html .md-typeset .admonition-title:last-child,html .md-typeset summary:last-child{margin-bottom:0}.md-typeset .admonition-title::before,.md-typeset summary::before{position:absolute;left:.6rem;width:1rem;height:1rem;background-color:#448aff;mask-image:var(--md-admonition-icon--note);content:\"\"}[dir=rtl] .md-typeset .admonition-title::before,[dir=rtl] .md-typeset summary::before{right:.6rem;left:initial}.md-typeset .admonition-title code,.md-typeset summary code{margin:initial;padding:initial;color:currentColor;background-color:transparent;border-radius:initial;box-shadow:none}.md-typeset .admonition.note,.md-typeset details.note{border-color:#448aff}.md-typeset .note>.admonition-title,.md-typeset .note>summary{background-color:rgba(68,138,255,.1)}.md-typeset .note>.admonition-title::before,.md-typeset .note>summary::before{background-color:#448aff;mask-image:var(--md-admonition-icon--note)}.md-typeset .admonition.abstract,.md-typeset details.abstract,.md-typeset .admonition.tldr,.md-typeset details.tldr,.md-typeset .admonition.summary,.md-typeset details.summary{border-color:#00b0ff}.md-typeset .abstract>.admonition-title,.md-typeset .abstract>summary,.md-typeset .tldr>.admonition-title,.md-typeset .tldr>summary,.md-typeset .summary>.admonition-title,.md-typeset .summary>summary{background-color:rgba(0,176,255,.1)}.md-typeset .abstract>.admonition-title::before,.md-typeset .abstract>summary::before,.md-typeset .tldr>.admonition-title::before,.md-typeset .tldr>summary::before,.md-typeset .summary>.admonition-title::before,.md-typeset .summary>summary::before{background-color:#00b0ff;mask-image:var(--md-admonition-icon--abstract)}.md-typeset .admonition.info,.md-typeset details.info,.md-typeset .admonition.todo,.md-typeset details.todo{border-color:#00b8d4}.md-typeset .info>.admonition-title,.md-typeset .info>summary,.md-typeset .todo>.admonition-title,.md-typeset .todo>summary{background-color:rgba(0,184,212,.1)}.md-typeset .info>.admonition-title::before,.md-typeset .info>summary::before,.md-typeset .todo>.admonition-title::before,.md-typeset .todo>summary::before{background-color:#00b8d4;mask-image:var(--md-admonition-icon--info)}.md-typeset .admonition.tip,.md-typeset details.tip,.md-typeset .admonition.important,.md-typeset details.important,.md-typeset .admonition.hint,.md-typeset details.hint{border-color:#00bfa5}.md-typeset .tip>.admonition-title,.md-typeset .tip>summary,.md-typeset .important>.admonition-title,.md-typeset .important>summary,.md-typeset .hint>.admonition-title,.md-typeset .hint>summary{background-color:rgba(0,191,165,.1)}.md-typeset .tip>.admonition-title::before,.md-typeset .tip>summary::before,.md-typeset .important>.admonition-title::before,.md-typeset .important>summary::before,.md-typeset .hint>.admonition-title::before,.md-typeset .hint>summary::before{background-color:#00bfa5;mask-image:var(--md-admonition-icon--tip)}.md-typeset .admonition.success,.md-typeset details.success,.md-typeset .admonition.done,.md-typeset details.done,.md-typeset .admonition.check,.md-typeset details.check{border-color:#00c853}.md-typeset .success>.admonition-title,.md-typeset .success>summary,.md-typeset .done>.admonition-title,.md-typeset .done>summary,.md-typeset .check>.admonition-title,.md-typeset .check>summary{background-color:rgba(0,200,83,.1)}.md-typeset .success>.admonition-title::before,.md-typeset .success>summary::before,.md-typeset .done>.admonition-title::before,.md-typeset .done>summary::before,.md-typeset .check>.admonition-title::before,.md-typeset .check>summary::before{background-color:#00c853;mask-image:var(--md-admonition-icon--success)}.md-typeset .admonition.question,.md-typeset details.question,.md-typeset .admonition.faq,.md-typeset details.faq,.md-typeset .admonition.help,.md-typeset details.help{border-color:#64dd17}.md-typeset .question>.admonition-title,.md-typeset .question>summary,.md-typeset .faq>.admonition-title,.md-typeset .faq>summary,.md-typeset .help>.admonition-title,.md-typeset .help>summary{background-color:rgba(100,221,23,.1)}.md-typeset .question>.admonition-title::before,.md-typeset .question>summary::before,.md-typeset .faq>.admonition-title::before,.md-typeset .faq>summary::before,.md-typeset .help>.admonition-title::before,.md-typeset .help>summary::before{background-color:#64dd17;mask-image:var(--md-admonition-icon--question)}.md-typeset .admonition.warning,.md-typeset details.warning,.md-typeset .admonition.attention,.md-typeset details.attention,.md-typeset .admonition.caution,.md-typeset details.caution{border-color:#ff9100}.md-typeset .warning>.admonition-title,.md-typeset .warning>summary,.md-typeset .attention>.admonition-title,.md-typeset .attention>summary,.md-typeset .caution>.admonition-title,.md-typeset .caution>summary{background-color:rgba(255,145,0,.1)}.md-typeset .warning>.admonition-title::before,.md-typeset .warning>summary::before,.md-typeset .attention>.admonition-title::before,.md-typeset .attention>summary::before,.md-typeset .caution>.admonition-title::before,.md-typeset .caution>summary::before{background-color:#ff9100;mask-image:var(--md-admonition-icon--warning)}.md-typeset .admonition.failure,.md-typeset details.failure,.md-typeset .admonition.missing,.md-typeset details.missing,.md-typeset .admonition.fail,.md-typeset details.fail{border-color:#ff5252}.md-typeset .failure>.admonition-title,.md-typeset .failure>summary,.md-typeset .missing>.admonition-title,.md-typeset .missing>summary,.md-typeset .fail>.admonition-title,.md-typeset .fail>summary{background-color:rgba(255,82,82,.1)}.md-typeset .failure>.admonition-title::before,.md-typeset .failure>summary::before,.md-typeset .missing>.admonition-title::before,.md-typeset .missing>summary::before,.md-typeset .fail>.admonition-title::before,.md-typeset .fail>summary::before{background-color:#ff5252;mask-image:var(--md-admonition-icon--failure)}.md-typeset .admonition.danger,.md-typeset details.danger,.md-typeset .admonition.error,.md-typeset details.error{border-color:#ff1744}.md-typeset .danger>.admonition-title,.md-typeset .danger>summary,.md-typeset .error>.admonition-title,.md-typeset .error>summary{background-color:rgba(255,23,68,.1)}.md-typeset .danger>.admonition-title::before,.md-typeset .danger>summary::before,.md-typeset .error>.admonition-title::before,.md-typeset .error>summary::before{background-color:#ff1744;mask-image:var(--md-admonition-icon--danger)}.md-typeset .admonition.bug,.md-typeset details.bug{border-color:#f50057}.md-typeset .bug>.admonition-title,.md-typeset .bug>summary{background-color:rgba(245,0,87,.1)}.md-typeset .bug>.admonition-title::before,.md-typeset .bug>summary::before{background-color:#f50057;mask-image:var(--md-admonition-icon--bug)}.md-typeset .admonition.example,.md-typeset details.example{border-color:#651fff}.md-typeset .example>.admonition-title,.md-typeset .example>summary{background-color:rgba(101,31,255,.1)}.md-typeset .example>.admonition-title::before,.md-typeset .example>summary::before{background-color:#651fff;mask-image:var(--md-admonition-icon--example)}.md-typeset .admonition.quote,.md-typeset details.quote,.md-typeset .admonition.cite,.md-typeset details.cite{border-color:#9e9e9e}.md-typeset .quote>.admonition-title,.md-typeset .quote>summary,.md-typeset .cite>.admonition-title,.md-typeset .cite>summary{background-color:rgba(158,158,158,.1)}.md-typeset .quote>.admonition-title::before,.md-typeset .quote>summary::before,.md-typeset .cite>.admonition-title::before,.md-typeset .cite>summary::before{background-color:#9e9e9e;mask-image:var(--md-admonition-icon--quote)}.codehilite .o,.highlight .o{color:inherit}.codehilite .ow,.highlight .ow{color:inherit}.codehilite .ge,.highlight .ge{color:#000}.codehilite .gr,.highlight .gr{color:#a00}.codehilite .gh,.highlight .gh{color:#999}.codehilite .go,.highlight .go{color:#888}.codehilite .gp,.highlight .gp{color:#555}.codehilite .gs,.highlight .gs{color:inherit}.codehilite .gu,.highlight .gu{color:#aaa}.codehilite .gt,.highlight .gt{color:#a00}.codehilite .gd,.highlight .gd{background-color:#fdd}.codehilite .gi,.highlight .gi{background-color:#dfd}.codehilite .k,.highlight .k{color:#3b78e7}.codehilite .kc,.highlight .kc{color:#a71d5d}.codehilite .kd,.highlight .kd{color:#3b78e7}.codehilite .kn,.highlight .kn{color:#3b78e7}.codehilite .kp,.highlight .kp{color:#a71d5d}.codehilite .kr,.highlight .kr{color:#3e61a2}.codehilite .kt,.highlight .kt{color:#3e61a2}.codehilite .c,.highlight .c{color:#999}.codehilite .cm,.highlight .cm{color:#999}.codehilite .cp,.highlight .cp{color:#666}.codehilite .c1,.highlight .c1{color:#999}.codehilite .ch,.highlight .ch{color:#999}.codehilite .cs,.highlight .cs{color:#999}.codehilite .na,.highlight .na{color:#c2185b}.codehilite .nb,.highlight .nb{color:#c2185b}.codehilite .bp,.highlight .bp{color:#3e61a2}.codehilite .nc,.highlight .nc{color:#c2185b}.codehilite .no,.highlight .no{color:#3e61a2}.codehilite .nd,.highlight .nd{color:#666}.codehilite .ni,.highlight .ni{color:#666}.codehilite .ne,.highlight .ne{color:#c2185b}.codehilite .nf,.highlight .nf{color:#c2185b}.codehilite .nl,.highlight .nl{color:#3b5179}.codehilite .nn,.highlight .nn{color:#ec407a}.codehilite .nt,.highlight .nt{color:#3b78e7}.codehilite .nv,.highlight .nv{color:#3e61a2}.codehilite .vc,.highlight .vc{color:#3e61a2}.codehilite .vg,.highlight .vg{color:#3e61a2}.codehilite .vi,.highlight .vi{color:#3e61a2}.codehilite .nx,.highlight .nx{color:#ec407a}.codehilite .m,.highlight .m{color:#e74c3c}.codehilite .mf,.highlight .mf{color:#e74c3c}.codehilite .mh,.highlight .mh{color:#e74c3c}.codehilite .mi,.highlight .mi{color:#e74c3c}.codehilite .il,.highlight .il{color:#e74c3c}.codehilite .mo,.highlight .mo{color:#e74c3c}.codehilite .s,.highlight .s{color:#0d904f}.codehilite .sb,.highlight .sb{color:#0d904f}.codehilite .sc,.highlight .sc{color:#0d904f}.codehilite .sd,.highlight .sd{color:#999}.codehilite .s2,.highlight .s2{color:#0d904f}.codehilite .se,.highlight .se{color:#183691}.codehilite .sh,.highlight .sh{color:#183691}.codehilite .si,.highlight .si{color:#183691}.codehilite .sx,.highlight .sx{color:#183691}.codehilite .sr,.highlight .sr{color:#009926}.codehilite .s1,.highlight .s1{color:#0d904f}.codehilite .ss,.highlight .ss{color:#0d904f}.codehilite .err,.highlight .err{color:#a61717}.codehilite .w,.highlight .w{color:transparent}.codehilite .hll,.highlight .hll{display:block;margin:0 -1.1764705882em;padding:0 1.1764705882em;background-color:rgba(255,235,59,.5)}.codehilitetable,.highlighttable{display:block;overflow:hidden}.codehilitetable tbody,.highlighttable tbody,.codehilitetable td,.highlighttable td{display:block;padding:0}.codehilitetable tr,.highlighttable tr{display:flex}.codehilitetable pre,.highlighttable pre{margin:0}.codehilitetable .linenos,.highlighttable .linenos{padding:.525rem 1.1764705882em;padding-right:0;font-size:.85em;background-color:var(--md-code-bg-color);user-select:none}.codehilitetable .linenodiv,.highlighttable .linenodiv{padding-right:.5882352941em;box-shadow:inset -0.05rem 0 var(--md-default-fg-color--lightest)}.codehilitetable .linenodiv pre,.highlighttable .linenodiv pre{color:var(--md-default-fg-color--lighter);text-align:right}.codehilitetable .code,.highlighttable .code{flex:1;overflow:hidden}.md-typeset .codehilitetable,.md-typeset .highlighttable{margin:1em 0;direction:ltr;border-radius:.1rem}.md-typeset .codehilitetable code,.md-typeset .highlighttable code{border-radius:0}@media screen and (max-width: 44.9375em){.md-typeset>.codehilite,.md-typeset>.highlight{margin:1em -0.8rem}.md-typeset>.codehilite .hll,.md-typeset>.highlight .hll{margin:0 -0.8rem;padding:0 .8rem}.md-typeset>.codehilite code,.md-typeset>.highlight code{border-radius:0}.md-typeset>.codehilitetable,.md-typeset>.highlighttable{margin:1em -0.8rem;border-radius:0}.md-typeset>.codehilitetable .hll,.md-typeset>.highlighttable .hll{margin:0 -0.8rem;padding:0 .8rem}}:root{--md-footnotes-icon: svg-load(\"@mdi/svg/svg/keyboard-return.svg\")}.md-typeset [id^=\"fnref:\"]{display:inline-block}.md-typeset [id^=\"fnref:\"]:target{margin-top:-3.8rem;padding-top:3.8rem;pointer-events:none}.md-typeset [id^=\"fn:\"]::before{display:none;height:0;content:\"\"}.md-typeset [id^=\"fn:\"]:target::before{display:block;margin-top:-3.5rem;padding-top:3.5rem;pointer-events:none}.md-typeset .footnote{color:var(--md-default-fg-color--light);font-size:.64rem}.md-typeset .footnote ol{margin-left:0}.md-typeset .footnote li{transition:color 125ms}.md-typeset .footnote li:target{color:var(--md-default-fg-color)}.md-typeset .footnote li :first-child{margin-top:0}.md-typeset .footnote li:hover .footnote-backref,.md-typeset .footnote li:target .footnote-backref{transform:translateX(0);opacity:1}.md-typeset .footnote li:hover .footnote-backref:hover{color:var(--md-accent-fg-color)}.md-typeset .footnote-ref{display:inline-block;pointer-events:initial}.md-typeset .footnote-backref{display:inline-block;color:var(--md-primary-fg-color);font-size:0;vertical-align:text-bottom;transform:translateX(0.25rem);opacity:0;transition:color 250ms,transform 250ms 250ms,opacity 125ms 250ms}[dir=rtl] .md-typeset .footnote-backref{transform:translateX(-0.25rem)}.md-typeset .footnote-backref::before{display:inline-block;width:.8rem;height:.8rem;background-color:currentColor;mask-image:var(--md-footnotes-icon);content:\"\"}[dir=rtl] .md-typeset .footnote-backref::before svg{transform:scaleX(-1)}@media print{.md-typeset .footnote-backref{color:var(--md-primary-fg-color);transform:translateX(0);opacity:1}}.md-typeset .headerlink{display:inline-block;margin-left:.5rem;visibility:hidden;opacity:0;transition:color 250ms,visibility 0ms 500ms,opacity 125ms}[dir=rtl] .md-typeset .headerlink{margin-right:.5rem;margin-left:initial}html body .md-typeset .headerlink{color:var(--md-default-fg-color--lighter)}@media print{.md-typeset .headerlink{display:none}}.md-typeset :hover>.headerlink,.md-typeset :target>.headerlink,.md-typeset .headerlink:focus{visibility:visible;opacity:1;transition:color 250ms,visibility 0ms,opacity 125ms}.md-typeset :target>.headerlink,.md-typeset .headerlink:focus,.md-typeset .headerlink:hover{color:var(--md-accent-fg-color)}.md-typeset h3[id]::before,.md-typeset h2[id]::before,.md-typeset h1[id]::before{display:block;margin-top:-0.4rem;padding-top:.4rem;content:\"\"}.md-typeset h3[id]:target::before,.md-typeset h2[id]:target::before,.md-typeset h1[id]:target::before{margin-top:-3.4rem;padding-top:3.4rem}.md-typeset h4[id]::before{display:block;margin-top:-0.45rem;padding-top:.45rem;content:\"\"}.md-typeset h4[id]:target::before{margin-top:-3.45rem;padding-top:3.45rem}.md-typeset h6[id]::before,.md-typeset h5[id]::before{display:block;margin-top:-0.6rem;padding-top:.6rem;content:\"\"}.md-typeset h6[id]:target::before,.md-typeset h5[id]:target::before{margin-top:-3.6rem;padding-top:3.6rem}.md-typeset .MJXc-display{margin:.75em 0;padding:.75em 0;overflow:auto;touch-action:auto}@media screen and (max-width: 44.9375em){.md-typeset>p>.MJXc-display{margin:.75em -0.8rem;padding:.25em .8rem}}.md-typeset .MathJax_CHTML{outline:0}.md-typeset del.critic,.md-typeset ins.critic,.md-typeset .critic.comment{padding:0 .25em;border-radius:.1rem;box-decoration-break:clone}.md-typeset del.critic{background-color:#fdd}.md-typeset ins.critic{background-color:#dfd}.md-typeset .critic.comment{color:#999}.md-typeset .critic.comment::before{content:\"/* \"}.md-typeset .critic.comment::after{content:\" */\"}.md-typeset .critic.block{display:block;margin:1em 0;padding-right:.8rem;padding-left:.8rem;overflow:auto;box-shadow:none}.md-typeset .critic.block :first-child{margin-top:.5em}.md-typeset .critic.block :last-child{margin-bottom:.5em}:root{--md-details-icon: svg-load(\"@mdi/svg/svg/chevron-right.svg\")}.md-typeset details{display:block;padding-top:0;overflow:visible}.md-typeset details[open]>summary::after{transform:rotate(90deg)}.md-typeset details:not([open]){padding-bottom:0}.md-typeset details:not([open])>summary{border-bottom-right-radius:.1rem}.md-typeset details::after{display:table;content:\"\"}.md-typeset summary{display:block;min-height:1rem;padding:.4rem 1.8rem .4rem 2rem;border-top-right-radius:.1rem;cursor:pointer}[dir=rtl] .md-typeset summary{padding:.4rem 2rem .4rem 1.8rem}.md-typeset summary::-webkit-details-marker{display:none}.md-typeset summary::after{position:absolute;top:.4rem;right:.4rem;width:1rem;height:1rem;background-color:currentColor;mask-image:var(--md-details-icon);transform:rotate(0deg);transition:transform 250ms;content:\"\"}[dir=rtl] .md-typeset summary::after{right:initial;left:.4rem;transform:rotate(180deg)}.md-typeset img.emojione,.md-typeset img.twemoji,.md-typeset img.gemoji{width:1.125em;vertical-align:-15%}.md-typeset span.twemoji{display:inline-block;height:1.125em;vertical-align:text-top}.md-typeset span.twemoji svg{width:1.125em;fill:currentColor}.highlight [data-linenos]::before{position:sticky;left:-1.1764705882em;float:left;margin-right:1.1764705882em;margin-left:-1.1764705882em;padding-left:1.1764705882em;color:var(--md-default-fg-color--lighter);background-color:var(--md-code-bg-color);box-shadow:inset -0.05rem 0 var(--md-default-fg-color--lightest);content:attr(data-linenos);user-select:none}.md-typeset .tabbed-content{display:none;order:99;width:100%;box-shadow:0 -0.05rem var(--md-default-fg-color--lightest)}.md-typeset .tabbed-content>.codehilite:only-child pre,.md-typeset .tabbed-content>.codehilitetable:only-child,.md-typeset .tabbed-content>.highlight:only-child pre,.md-typeset .tabbed-content>.highlighttable:only-child{margin:0}.md-typeset .tabbed-content>.codehilite:only-child pre>code,.md-typeset .tabbed-content>.codehilitetable:only-child>code,.md-typeset .tabbed-content>.highlight:only-child pre>code,.md-typeset .tabbed-content>.highlighttable:only-child>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-content>.tabbed-set{margin:0}.md-typeset .tabbed-set{position:relative;display:flex;flex-wrap:wrap;margin:1em 0;border-radius:.1rem}.md-typeset .tabbed-set>input{display:none}.md-typeset .tabbed-set>input:checked+label{color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color)}.md-typeset .tabbed-set>input:checked+label+.tabbed-content{display:block}.md-typeset .tabbed-set>label{z-index:1;width:auto;padding:.6rem 1.25em .5rem;color:var(--md-default-fg-color--light);font-weight:700;font-size:.64rem;border-bottom:.1rem solid transparent;cursor:pointer;transition:color 125ms}html .md-typeset .tabbed-set>label:hover{color:var(--md-accent-fg-color)}:root{--md-tasklist-icon: svg-load(\"@mdi/svg/svg/checkbox-blank-circle.svg\");--md-tasklist-icon--checked: svg-load(\"@mdi/svg/svg/check-circle.svg\")}.md-typeset .task-list-item{position:relative;list-style-type:none}.md-typeset .task-list-item [type=checkbox]{position:absolute;top:.45em;left:-2em}[dir=rtl] .md-typeset .task-list-item [type=checkbox]{right:-2em;left:initial}.md-typeset .task-list-control .task-list-indicator::before{position:absolute;top:.15em;left:-1.5em;width:1.25em;height:1.25em;background-color:var(--md-default-fg-color--lightest);mask-image:var(--md-tasklist-icon);content:\"\"}[dir=rtl] .md-typeset .task-list-control .task-list-indicator::before{right:-1.5em;left:initial}.md-typeset .task-list-control [type=checkbox]:checked+.task-list-indicator::before{background-color:#00e676;mask-image:var(--md-tasklist-icon--checked)}.md-typeset .task-list-control [type=checkbox]{z-index:-1;opacity:0}","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// stylelint-disable no-duplicate-selectors\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Enforce correct box model\nhtml {\n box-sizing: border-box;\n}\n\n// All elements shall inherit the document default\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n// Prevent adjustments of font size after orientation changes in IE and iOS\nhtml {\n text-size-adjust: none;\n}\n\n// Remove margin in all browsers\nbody {\n margin: 0;\n}\n\n// Reset horizontal rules in FF\nhr {\n box-sizing: content-box;\n overflow: visible;\n}\n\n// Reset tap outlines on iOS and Android\na,\nbutton,\nlabel,\ninput {\n -webkit-tap-highlight-color: transparent;\n}\n\n// Reset link styles\na {\n color: inherit;\n text-decoration: none;\n}\n\n// Normalize font-size in all browsers\nsmall {\n font-size: 80%;\n}\n\n// Prevent subscript and superscript from affecting line-height\nsub,\nsup {\n position: relative;\n font-size: 80%;\n line-height: 0;\n vertical-align: baseline;\n}\n\n// Correct subscript offset\nsub {\n bottom: -0.25em;\n}\n\n// Correct superscript offset\nsup {\n top: -0.5em;\n}\n\n// Remove borders on images\nimg {\n border-style: none;\n}\n\n// Reset table styles\ntable {\n border-collapse: separate;\n border-spacing: 0;\n}\n\n// Reset table cell styles\ntd,\nth {\n font-weight: normal; // stylelint-disable-line\n vertical-align: top;\n}\n\n// Reset button styles\nbutton {\n margin: 0;\n padding: 0;\n font-size: inherit;\n background: transparent;\n border: 0;\n}\n\n// Reset input styles\ninput {\n border: 0;\n outline: 0;\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Color definitions\n:root {\n\n // Default color shades\n --md-default-fg-color: hsla(0, 0%, 0%, 0.87);\n --md-default-fg-color--light: hsla(0, 0%, 0%, 0.54);\n --md-default-fg-color--lighter: hsla(0, 0%, 0%, 0.26);\n --md-default-fg-color--lightest: hsla(0, 0%, 0%, 0.07);\n --md-default-bg-color: hsla(0, 0%, 100%, 1);\n --md-default-bg-color--light: hsla(0, 0%, 100%, 0.7);\n --md-default-bg-color--lighter: hsla(0, 0%, 100%, 0.3);\n --md-default-bg-color--lightest: hsla(0, 0%, 100%, 0.12);\n\n // Primary color shades\n --md-primary-fg-color: hsla(#{hex2hsl($clr-indigo-500)}, 1);\n --md-primary-fg-color--light: hsla(#{hex2hsl($clr-indigo-300)}, 1);\n --md-primary-fg-color--dark: hsla(#{hex2hsl($clr-indigo-700)}, 1);\n --md-primary-bg-color: var(--md-default-bg-color);\n --md-primary-bg-color--light: var(--md-default-bg-color--light);\n\n // Accent color shades\n --md-accent-fg-color: hsla(#{hex2hsl($clr-indigo-a200)}, 1);\n --md-accent-fg-color--transparent: hsla(#{hex2hsl($clr-indigo-a200)}, 0.1);\n --md-accent-bg-color: var(--md-default-bg-color);\n --md-accent-bg-color--light: var(--md-default-bg-color--light);\n\n // Code block color shades\n --md-code-bg-color: hsla(0, 0%, 96%, 1);\n --md-code-fg-color: hsla(200, 18%, 26%, 1);\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Icon\n.md-icon {\n\n // SVG defaults\n svg {\n display: block;\n width: px2rem(24px);\n height: px2rem(24px);\n margin: 0 auto;\n fill: currentColor;\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules: font definitions\n// ----------------------------------------------------------------------------\n\n// Enable font-smoothing in Webkit and FF\nbody {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n// Default fonts\nbody,\ninput {\n color: var(--md-default-fg-color);\n font-feature-settings: \"kern\", \"liga\";\n font-family: -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif;\n}\n\n// Proportionally spaced fonts\ncode,\npre,\nkbd {\n color: var(--md-default-fg-color);\n font-feature-settings: \"kern\";\n font-family: SFMono-Regular, Consolas, Menlo, monospace;\n}\n\n// ----------------------------------------------------------------------------\n// Rules: typesetted content\n// ----------------------------------------------------------------------------\n\n// Content that is typeset - if possible, all margins, paddings and font sizes\n// should be set in ems, so nested blocks (e.g. Admonition) render correctly,\n// except headlines that should only appear on the top level and need to have\n// consistent spacing due to layout constraints.\n.md-typeset {\n font-size: ms(0);\n line-height: 1.6;\n color-adjust: exact;\n\n // Default spacing\n p,\n ul,\n ol,\n blockquote {\n margin: 1em 0;\n }\n\n // 1st level headline\n h1 {\n margin: 0 0 px2rem(40px);\n color: var(--md-default-fg-color--light);\n font-weight: 300;\n font-size: ms(3);\n line-height: 1.3;\n letter-spacing: -0.01em;\n }\n\n // 2nd level headline\n h2 {\n margin: px2rem(40px) 0 px2rem(16px);\n font-weight: 300;\n font-size: ms(2);\n line-height: 1.4;\n letter-spacing: -0.01em;\n }\n\n // 3rd level headline\n h3 {\n margin: px2rem(32px) 0 px2rem(16px);\n font-weight: 400;\n font-size: ms(1);\n line-height: 1.5;\n letter-spacing: -0.01em;\n }\n\n // 3rd level headline following an 2nd level headline\n h2 + h3 {\n margin-top: px2rem(16px);\n }\n\n // 4th level headline\n h4 {\n margin: px2rem(16px) 0;\n font-weight: 700;\n font-size: ms(0);\n letter-spacing: -0.01em;\n }\n\n // 5th and 6th level headline\n h5,\n h6 {\n margin: px2rem(16px) 0;\n color: var(--md-default-fg-color--light);\n font-weight: 700;\n font-size: ms(-1);\n letter-spacing: -0.01em;\n }\n\n // Overrides for 5th level headline\n h5 {\n text-transform: uppercase;\n }\n\n // Horizontal separators\n hr {\n margin: 1.5em 0;\n border-bottom: px2rem(1px) dotted var(--md-default-fg-color--lighter);\n }\n\n // Links\n a {\n color: var(--md-primary-fg-color);\n word-break: break-word;\n\n // Also enable color transition on pseudo elements\n &,\n &::before {\n transition: color 125ms;\n }\n\n // Focused or hover links\n &:focus,\n &:hover {\n color: var(--md-accent-fg-color);\n }\n }\n\n // Code blocks\n code,\n pre,\n kbd {\n color: var(--md-code-fg-color);\n direction: ltr;\n\n // Wrap text and hide scollbars\n @media print {\n white-space: pre-wrap;\n }\n }\n\n // Inline code blocks\n code {\n padding: 0 px2em(4px, 13.6px);\n font-size: px2em(13.6px);\n word-break: break-word;\n background-color: var(--md-code-bg-color);\n border-radius: px2rem(2px);\n box-decoration-break: clone;\n }\n\n // Disable containing block inside headlines\n h1 code,\n h2 code,\n h3 code,\n h4 code,\n h5 code,\n h6 code {\n margin: initial;\n padding: initial;\n background-color: transparent;\n box-shadow: none;\n }\n\n // Ensure link color in code blocks\n a > code {\n color: currentColor;\n }\n\n // Unformatted code blocks\n pre {\n position: relative;\n margin: 1em 0;\n line-height: 1.4;\n\n // Actual container with code, overflowing\n > code {\n display: block;\n margin: 0;\n padding: px2rem(10.5px) px2em(16px, 13.6px);\n overflow: auto;\n word-break: normal;\n box-shadow: none;\n box-decoration-break: slice;\n touch-action: auto;\n\n // Override native scrollbar styles\n &::-webkit-scrollbar {\n width: px2rem(4px);\n height: px2rem(4px);\n }\n\n // Scrollbar thumb\n &::-webkit-scrollbar-thumb {\n background-color: var(--md-default-fg-color--lighter);\n\n // Hovered scrollbar thumb\n &:hover {\n background-color: var(--md-accent-fg-color);\n }\n }\n }\n }\n\n // [mobile -]: Stretch to whole width\n @include break-to-device(mobile) {\n\n // Stretch top-level containers\n > pre {\n margin: 1em px2rem(-16px);\n\n // Remove rounded borders\n code {\n border-radius: 0;\n }\n }\n }\n\n // Keystrokes\n kbd {\n display: inline-block;\n padding: 0 px2em(8px, 12px);\n font-size: px2em(12px);\n line-height: 1.5;\n vertical-align: text-top;\n word-break: break-word;\n border-radius: px2rem(2px);\n box-shadow:\n 0 px2rem(2px) 0 px2rem(1px) var(--md-default-fg-color--lighter),\n 0 px2rem(2px) 0 var(--md-default-fg-color--lighter),\n inset 0 px2rem(-2px) px2rem(4px) var(--md-default-bg-color);\n }\n\n // Text highlighting marker\n mark {\n padding: 0 px2em(4px, 16px);\n word-break: break-word;\n background-color: transparentize($clr-yellow-500, 0.5);\n border-radius: px2rem(2px);\n box-decoration-break: clone;\n }\n\n // Abbreviations\n abbr {\n text-decoration: none;\n border-bottom: px2rem(1px) dotted var(--md-default-fg-color--light);\n cursor: help;\n }\n\n // Small text\n small {\n opacity: 0.75;\n }\n\n // Superscript and subscript\n sup,\n sub {\n margin-left: px2em(1px, 12.8px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2em(1px, 12.8px);\n margin-left: initial;\n }\n }\n\n // Blockquotes, possibly nested\n blockquote {\n padding-left: px2rem(12px);\n color: var(--md-default-fg-color--light);\n border-left: px2rem(4px) solid var(--md-default-fg-color--lighter);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(12px);\n padding-left: initial;\n border-right: px2rem(4px) solid var(--md-default-fg-color--lighter);\n border-left: initial;\n }\n }\n\n // Unordered lists\n ul {\n list-style-type: disc;\n }\n\n // Unordered and ordered lists\n ul,\n ol {\n margin-left: px2em(10px, 16px);\n padding: 0;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2em(10px, 16px);\n margin-left: initial;\n }\n\n // Nested ordered lists\n ol {\n list-style-type: lower-alpha;\n\n // Triply nested ordered list\n ol {\n list-style-type: lower-roman;\n }\n }\n\n // List elements\n li {\n margin-bottom: 0.5em;\n margin-left: px2em(20px, 16px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2em(20px, 16px);\n margin-left: initial;\n }\n\n // Decrease vertical spacing\n p,\n blockquote {\n margin: 0.5em 0;\n }\n\n // Remove margin on last element\n &:last-child {\n margin-bottom: 0;\n }\n\n // Nested lists\n ul,\n ol {\n margin: 0.5em 0 0.5em px2em(10px, 16px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2em(10px, 16px);\n margin-left: initial;\n }\n }\n }\n }\n\n // Definition lists\n dd {\n margin: 1em 0 1em px2em(30px, 16px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2em(30px, 16px);\n margin-left: initial;\n }\n }\n\n // Limit width to container, scale height proportionally\n iframe,\n img,\n svg {\n max-width: 100%;\n height: auto;\n }\n\n // Data tables\n table:not([class]) {\n display: inline-block;\n max-width: 100%;\n overflow: auto;\n font-size: ms(-1);\n background: var(--md-default-bg-color);\n border-radius: px2rem(2px);\n box-shadow:\n 0 px2rem(4px) px2rem(10px) hsla(0, 0%, 0%, 0.05),\n 0 0 px2rem(1px) hsla(0, 0%, 0%, 0.1);\n touch-action: auto;\n\n // Due to margin collapse because of the necessary inline-block hack, we\n // cannot increase the bottom margin on the table, so we just increase the\n // top margin on the following element\n & + * {\n margin-top: 1.5em;\n }\n\n // Table headings and cells\n th:not([align]),\n td:not([align]) {\n text-align: left;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n text-align: right;\n }\n }\n\n // Table headings\n th {\n min-width: px2rem(100px);\n padding: px2rem(12px) px2rem(16px);\n color: var(--md-default-bg-color);\n vertical-align: top;\n background-color: var(--md-default-fg-color--light);\n }\n\n // Table cells\n td {\n padding: px2rem(12px) px2rem(16px);\n vertical-align: top;\n border-top: px2rem(1px) solid var(--md-default-fg-color--lightest);\n }\n\n // Table rows\n tr {\n transition: background-color 125ms;\n\n // Add background on hover\n &:hover {\n background-color: rgba(0, 0, 0, 0.035);\n box-shadow: 0 px2rem(1px) 0 var(--md-default-bg-color) inset;\n }\n\n // Remove top border on first row\n &:first-child td {\n border-top: 0;\n }\n }\n\n\n // Do not wrap links in tables\n a {\n word-break: normal;\n }\n }\n\n // Wrapper for scrolling on overflow\n &__scrollwrap {\n margin: 1em px2rem(-16px);\n overflow-x: auto;\n touch-action: auto;\n }\n\n // Data table wrapper, in case JavaScript is available\n &__table {\n display: inline-block;\n margin-bottom: 0.5em;\n padding: 0 px2rem(16px);\n\n // Data tables\n table {\n display: table;\n width: 100%;\n margin: 0;\n overflow: hidden;\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Variables\n// ----------------------------------------------------------------------------\n\n///\n/// Device-specific breakpoints\n///\n/// @example\n/// $break-devices: (\n/// mobile: (\n/// portrait: 220px 479px,\n/// landscape: 480px 719px\n/// ),\n/// tablet: (\n/// portrait: 720px 959px,\n/// landscape: 960px 1219px\n/// ),\n/// screen: (\n/// small: 1220px 1599px,\n/// medium: 1600px 1999px,\n/// large: 2000px\n/// )\n/// );\n///\n$break-devices: () !default;\n\n// ----------------------------------------------------------------------------\n// Helpers\n// ----------------------------------------------------------------------------\n\n///\n/// Choose minimum and maximum device widths\n///\n@function break-select-min-max($devices) {\n $min: 1000000;\n $max: 0;\n @each $key, $value in $devices {\n @while type-of($value) == map {\n $value: break-select-min-max($value);\n }\n @if type-of($value) == list {\n @each $number in $value {\n @if type-of($number) == number {\n $min: min($number, $min);\n @if $max != null {\n $max: max($number, $max);\n }\n } @else {\n @error \"Invalid number: #{$number}\";\n }\n }\n } @else if type-of($value) == number {\n $min: min($value, $min);\n $max: null;\n } @else {\n @error \"Invalid value: #{$value}\";\n }\n }\n @return $min, $max;\n}\n\n///\n/// Select minimum and maximum widths for a device breakpoint\n///\n@function break-select-device($device) {\n $current: $break-devices;\n @for $n from 1 through length($device) {\n @if type-of($current) == map {\n $current: map-get($current, nth($device, $n));\n } @else {\n @error \"Invalid device map: #{$devices}\";\n }\n }\n @if type-of($current) == list or type-of($current) == number {\n $current: (default: $current);\n }\n @return break-select-min-max($current);\n}\n\n// ----------------------------------------------------------------------------\n// Mixins\n// ----------------------------------------------------------------------------\n\n///\n/// A minimum-maximum media query breakpoint\n///\n@mixin break-at($breakpoint) {\n @if type-of($breakpoint) == number {\n @media screen and (min-width: $breakpoint) {\n @content;\n }\n } @else if type-of($breakpoint) == list {\n $min: nth($breakpoint, 1);\n $max: nth($breakpoint, 2);\n @if type-of($min) == number and type-of($max) == number {\n @media screen and (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else {\n @error \"Invalid breakpoint: #{$breakpoint}\";\n }\n } @else {\n @error \"Invalid breakpoint: #{$breakpoint}\";\n }\n}\n\n///\n/// An orientation media query breakpoint\n///\n@mixin break-at-orientation($breakpoint) {\n @if type-of($breakpoint) == string {\n @media screen and (orientation: $breakpoint) {\n @content;\n }\n } @else {\n @error \"Invalid breakpoint: #{$breakpoint}\";\n }\n}\n\n///\n/// A maximum-aspect-ratio media query breakpoint\n///\n@mixin break-at-ratio($breakpoint) {\n @if type-of($breakpoint) == number {\n @media screen and (max-aspect-ratio: $breakpoint) {\n @content;\n }\n } @else {\n @error \"Invalid breakpoint: #{$breakpoint}\";\n }\n}\n\n///\n/// A minimum-maximum media query device breakpoint\n///\n@mixin break-at-device($device) {\n @if type-of($device) == string {\n $device: $device,;\n }\n @if type-of($device) == list {\n $breakpoint: break-select-device($device);\n @if nth($breakpoint, 2) != null {\n $min: nth($breakpoint, 1);\n $max: nth($breakpoint, 2);\n @media screen and (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else {\n @error \"Invalid device: #{$device}\";\n }\n } @else {\n @error \"Invalid device: #{$device}\";\n }\n}\n\n///\n/// A minimum media query device breakpoint\n///\n@mixin break-from-device($device) {\n @if type-of($device) == string {\n $device: $device,;\n }\n @if type-of($device) == list {\n $breakpoint: break-select-device($device);\n $min: nth($breakpoint, 1);\n @media screen and (min-width: $min) {\n @content;\n }\n } @else {\n @error \"Invalid device: #{$device}\";\n }\n}\n\n///\n/// A maximum media query device breakpoint\n///\n@mixin break-to-device($device) {\n @if type-of($device) == string {\n $device: $device,;\n }\n @if type-of($device) == list {\n $breakpoint: break-select-device($device);\n $max: nth($breakpoint, 2);\n @media screen and (max-width: $max) {\n @content;\n }\n } @else {\n @error \"Invalid device: #{$device}\";\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Variables\n// ----------------------------------------------------------------------------\n\n// Active (toggled) drawer\n$md-toggle__drawer--checked:\n \"[data-md-toggle=\\\"drawer\\\"]:checked ~\";\n\n// ----------------------------------------------------------------------------\n// Rules: base grid and containers\n// ----------------------------------------------------------------------------\n\n// Stretch container to viewport and set base font-sizefor simple calculations\n// based on relative ems (rems)\nhtml {\n height: 100%;\n // Hack: some browsers on some operating systems don't account for scroll\n // bars when firing media queries, so we need to do this for safety. This\n // currently impacts the table of contents component between 1220 and 1234px\n // and is to current knowledge not fixable.\n overflow-x: hidden;\n // Hack: normally, we would set the base font-size to 62.5%, so we can base\n // all calculations on 10px, but Chromium and Chrome define a minimal font\n // size of 12 if the system language is set to Chinese. For this reason we\n // just double the font-size, set it to 20px which seems to do the trick.\n //\n // See https://github.com/squidfunk/mkdocs-material/issues/911\n font-size: 125%;\n background-color: var(--md-default-bg-color);\n\n // [screen medium +]: Set base font-size to 11px\n @include break-from-device(screen medium) {\n font-size: 137.50%;\n }\n\n // [screen large +]: Set base font-size to 12px\n @include break-from-device(screen large) {\n font-size: 150%;\n }\n}\n\n// Stretch body to container and leave room for footer\nbody {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n min-height: 100%;\n // Hack: reset font-size to 10px, so the spacing for all inline elements is\n // correct again. Otherwise the spacing would be based on 20px.\n font-size: 0.5rem; // stylelint-disable-line unit-whitelist\n\n // [tablet portrait -]: Lock body to disable scroll bubbling\n @include break-to-device(tablet portrait) {\n\n // Lock body to viewport height (e.g. in search mode)\n &[data-md-state=\"lock\"] {\n position: fixed;\n }\n }\n\n // Hack: we must not use flex, or Firefox will only print the first page\n // see https://mzl.la/39DgR3m\n @media print {\n display: block;\n }\n}\n\n// Horizontal separators\nhr {\n display: block;\n height: px2rem(1px);\n padding: 0;\n border: 0;\n}\n\n// Template-wide grid\n.md-grid {\n max-width: px2rem(1220px);\n margin-right: auto;\n margin-left: auto;\n}\n\n// Content wrapper\n.md-container {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n\n // Hack: we must not use flex, or Firefox will only print the first page\n // see https://mzl.la/39DgR3m\n @media print {\n display: block;\n }\n}\n\n// The main content should stretch to maximum height in the table\n.md-main {\n flex-grow: 1;\n\n // Increase top spacing of content area to give typography more room\n &__inner {\n display: flex;\n height: 100%;\n margin-top: px2rem(24px + 6px);\n }\n}\n\n// Apply ellipsis in case of overflowing text\n.md-ellipsis {\n display: block;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n// ----------------------------------------------------------------------------\n// Rules: navigational elements\n// ----------------------------------------------------------------------------\n\n// Toggle checkbox\n.md-toggle {\n display: none;\n}\n\n// Overlay below expanded drawer\n.md-overlay {\n position: fixed;\n top: 0;\n z-index: 3;\n width: 0;\n height: 0;\n background-color: var(--md-default-fg-color--light);\n opacity: 0;\n transition:\n width 0ms 250ms,\n height 0ms 250ms,\n opacity 250ms;\n\n // [tablet -]: Trigger overlay\n @include break-to-device(tablet) {\n\n // Expanded drawer\n #{$md-toggle__drawer--checked} & {\n width: 100%;\n height: 100%;\n opacity: 1;\n transition:\n width 0ms,\n height 0ms,\n opacity 250ms;\n }\n }\n}\n\n// ----------------------------------------------------------------------------\n// Rules: skip link\n// ----------------------------------------------------------------------------\n\n// Skip link\n.md-skip {\n position: fixed;\n // Hack: if we don't set the negative z-index, the skip link will induce the\n // creation of new layers when code blocks are near the header on scrolling\n z-index: -1;\n margin: px2rem(10px);\n padding: px2rem(6px) px2rem(10px);\n color: var(--md-default-bg-color);\n font-size: ms(-1);\n background-color: var(--md-default-fg-color);\n border-radius: px2rem(2px);\n transform: translateY(px2rem(8px));\n opacity: 0;\n\n // Show skip link on focus\n &:focus {\n z-index: 10;\n transform: translateY(0);\n opacity: 1;\n transition:\n transform 250ms cubic-bezier(0.4, 0, 0.2, 1),\n opacity 175ms 75ms;\n }\n}\n\n// ----------------------------------------------------------------------------\n// Rules: print styles\n// ----------------------------------------------------------------------------\n\n// Add margins to page\n@page {\n margin: 25mm;\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Announcement bar\n.md-announce {\n overflow: auto;\n background-color: var(--md-default-fg-color);\n\n // Actual content\n &__inner {\n margin: px2rem(12px) auto;\n padding: 0 px2rem(16px);\n color: var(--md-default-bg-color);\n font-size: px2rem(14px);\n }\n\n // Hide for print\n @media print {\n display: none;\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // Button\n .md-button {\n display: inline-block;\n padding: px2em(10px, 16px) px2em(32px, 16px);\n color: var(--md-primary-fg-color);\n font-weight: 700;\n border: px2rem(2px) solid currentColor;\n border-radius: px2rem(2px);\n transition:\n color 125ms,\n background-color 125ms,\n border-color 125ms;\n\n // Primary button\n &--primary {\n color: var(--md-primary-bg-color);\n background-color: var(--md-primary-fg-color);\n border-color: var(--md-primary-fg-color);\n }\n\n // Focused or hovered button\n &:focus,\n &:hover {\n color: var(--md-accent-bg-color);\n background-color: var(--md-accent-fg-color);\n border-color: var(--md-accent-fg-color);\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Copy to clipboard\n.md-clipboard {\n position: absolute;\n top: px2rem(8px);\n right: px2em(8px, 16px);\n z-index: 1;\n width: px2em(24px, 16px);\n height: px2em(24px, 16px);\n color: var(--md-default-fg-color--lightest);\n border-radius: px2rem(2px);\n cursor: pointer;\n transition: color 125ms;\n\n // Hide for print\n @media print {\n display: none;\n }\n\n // Slightly smaller icon\n svg {\n width: px2em(18px, 16px);\n height: px2em(18px, 16px);\n }\n\n // Show on container hover\n pre:hover & {\n color: var(--md-default-fg-color--light);\n }\n\n // Focused or hovered icon\n pre &:focus,\n pre &:hover {\n color: var(--md-accent-fg-color);\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Content container\n.md-content {\n flex: 1;\n max-width: 100%;\n\n // [tablet landscape]: Decrease horizontal width\n @include break-at-device(tablet landscape) {\n max-width: calc(100% - #{px2rem(242px)});\n }\n\n // [screen +]: Decrease horizontal width\n @include break-from-device(screen) {\n max-width: calc(100% - #{px2rem(242px)} * 2);\n }\n\n // Define spacing\n &__inner {\n margin: 0 px2rem(16px) px2rem(24px);\n padding-top: px2rem(12px);\n\n // [screen +]: Increase horizontal spacing\n @include break-from-device(screen) {\n margin-right: px2rem(24px);\n margin-left: px2rem(24px);\n }\n\n // Hack: add pseudo element for spacing, as the overflow of the content\n // container may not be hidden due to an imminent offset error on targets\n &::before {\n display: block;\n height: px2rem(8px);\n content: \"\";\n }\n\n // Hack: remove bottom spacing of last element, due to margin collapse\n > :last-child {\n margin-bottom: 0;\n }\n }\n\n // Button next to the title\n &__button {\n float: right;\n margin: px2rem(8px) 0;\n margin-left: px2rem(8px);\n padding: 0;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n float: left;\n margin-right: px2rem(8px);\n margin-left: initial;\n\n // Flip icon vertically\n svg {\n transform: scaleX(-1);\n }\n }\n\n // Override default link color for icons\n .md-typeset & {\n color: var(--md-default-fg-color--lighter);\n }\n\n // Align text with icon\n svg {\n display: inline;\n vertical-align: top;\n }\n\n // Hide for print\n @media print {\n display: none;\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Dialog rendered as snackbar\n.md-dialog {\n @include z-depth(2);\n\n position: fixed;\n right: px2rem(16px);\n bottom: px2rem(16px);\n left: initial;\n z-index: 2;\n display: block;\n min-width: px2rem(222px);\n padding: px2rem(8px) px2rem(12px);\n color: var(--md-default-bg-color);\n font-size: px2rem(14px);\n background: var(--md-default-fg-color);\n border: none;\n border-radius: px2rem(2px);\n transform: translateY(100%);\n opacity: 0;\n transition:\n transform 0ms 400ms,\n opacity 400ms;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: initial;\n left: px2rem(16px);\n }\n\n // Show open dialog\n &[data-md-state=\"open\"] {\n transform: translateY(0);\n opacity: 1;\n transition:\n transform 400ms cubic-bezier(0.075, 0.85, 0.175, 1),\n opacity 400ms;\n }\n\n // Hide for print\n @media print {\n display: none;\n }\n}\n","//\n// Name: Material Shadows\n// Description: Mixins for Material Design Shadows.\n// Version: 3.0.1\n//\n// Author: Denis Malinochkin\n// Git: https://github.com/mrmlnc/material-shadows\n//\n// twitter: @mrmlnc\n//\n// ------------------------------------\n\n\n// Mixins\n// ------------------------------------\n\n@mixin z-depth-transition() {\n transition: box-shadow .28s cubic-bezier(.4, 0, .2, 1);\n}\n\n@mixin z-depth-focus() {\n box-shadow: 0 0 8px rgba(0, 0, 0, .18), 0 8px 16px rgba(0, 0, 0, .36);\n}\n\n@mixin z-depth-2dp() {\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .14),\n 0 1px 5px 0 rgba(0, 0, 0, .12),\n 0 3px 1px -2px rgba(0, 0, 0, .2);\n}\n\n@mixin z-depth-3dp() {\n box-shadow: 0 3px 4px 0 rgba(0, 0, 0, .14),\n 0 1px 8px 0 rgba(0, 0, 0, .12),\n 0 3px 3px -2px rgba(0, 0, 0, .4);\n}\n\n@mixin z-depth-4dp() {\n box-shadow: 0 4px 5px 0 rgba(0, 0, 0, .14),\n 0 1px 10px 0 rgba(0, 0, 0, .12),\n 0 2px 4px -1px rgba(0, 0, 0, .4);\n}\n\n@mixin z-depth-6dp() {\n box-shadow: 0 6px 10px 0 rgba(0, 0, 0, .14),\n 0 1px 18px 0 rgba(0, 0, 0, .12),\n 0 3px 5px -1px rgba(0, 0, 0, .4);\n}\n\n@mixin z-depth-8dp() {\n box-shadow: 0 8px 10px 1px rgba(0, 0, 0, .14),\n 0 3px 14px 2px rgba(0, 0, 0, .12),\n 0 5px 5px -3px rgba(0, 0, 0, .4);\n}\n\n@mixin z-depth-16dp() {\n box-shadow: 0 16px 24px 2px rgba(0, 0, 0, .14),\n 0 6px 30px 5px rgba(0, 0, 0, .12),\n 0 8px 10px -5px rgba(0, 0, 0, .4);\n}\n\n@mixin z-depth-24dp() {\n box-shadow: 0 9px 46px 8px rgba(0, 0, 0, .14),\n 0 24px 38px 3px rgba(0, 0, 0, .12),\n 0 11px 15px -7px rgba(0, 0, 0, .4);\n}\n\n@mixin z-depth($dp: 2) {\n @if $dp == 2 {\n @include z-depth-2dp();\n } @else if $dp == 3 {\n @include z-depth-3dp();\n } @else if $dp == 4 {\n @include z-depth-4dp();\n } @else if $dp == 6 {\n @include z-depth-6dp();\n } @else if $dp == 8 {\n @include z-depth-8dp();\n } @else if $dp == 16 {\n @include z-depth-16dp();\n } @else if $dp == 24 {\n @include z-depth-24dp();\n }\n}\n\n\n// Class generator\n// ------------------------------------\n\n@mixin z-depth-classes($transition: false, $focus: false) {\n @if $transition == true {\n &-transition {\n @include z-depth-transition();\n }\n }\n\n @if $focus == true {\n &-focus {\n @include z-depth-focus();\n }\n }\n\n // The available values for the shadow depth\n @each $depth in 2, 3, 4, 6, 8, 16, 24 {\n &-#{$depth}dp {\n @include z-depth($depth);\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Application header (stays always on top)\n.md-header {\n position: sticky;\n top: 0;\n right: 0;\n left: 0;\n z-index: 2;\n height: px2rem(48px);\n color: var(--md-primary-bg-color);\n background-color: var(--md-primary-fg-color);\n // Hack: reduce jitter by adding a transparent box shadow of the same size\n // so the size of the layer doesn't change during animation\n box-shadow:\n 0 0 px2rem(4px) rgba(0, 0, 0, 0),\n 0 px2rem(4px) px2rem(8px) rgba(0, 0, 0, 0);\n transition:\n color 250ms,\n background-color 250ms;\n\n // Always hide shadow, in case JavaScript is not available\n .no-js & {\n box-shadow: none;\n transition: none;\n }\n\n // Show and animate shadow\n &[data-md-state=\"shadow\"] {\n box-shadow:\n 0 0 px2rem(4px) rgba(0, 0, 0, 0.1),\n 0 px2rem(4px) px2rem(8px) rgba(0, 0, 0, 0.2);\n transition:\n color 250ms,\n background-color 250ms,\n box-shadow 250ms;\n }\n\n // Hide for print\n @media print {\n display: none;\n }\n}\n\n// Navigation within header\n.md-header-nav {\n display: flex;\n padding: 0 px2rem(4px);\n\n // Icon buttons\n &__button {\n position: relative;\n z-index: 1;\n margin: px2rem(4px);\n padding: px2rem(8px);\n cursor: pointer;\n transition: opacity 250ms;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n\n // Flip icon vertically\n svg {\n transform: scaleX(-1);\n }\n }\n\n // Focused or hovered icon\n &:focus,\n &:hover {\n opacity: 0.7;\n }\n\n // Logo\n &.md-logo {\n margin: px2rem(4px);\n padding: px2rem(8px);\n\n // Image or icon\n img,\n svg {\n display: block;\n width: px2rem(24px);\n height: px2rem(24px);\n fill: currentColor;\n }\n }\n\n // Hide search icon, if JavaScript is not available.\n .no-js &[for=\"__search\"] {\n display: none;\n }\n\n // [tablet landscape +]: Hide the search button\n @include break-from-device(tablet landscape) {\n\n // Search button\n &[for=\"__search\"] {\n display: none;\n }\n }\n\n // [tablet -]: Hide the logo\n @include break-to-device(tablet) {\n\n // Logo\n &.md-logo {\n display: none;\n }\n }\n\n // [screen +]: Hide the menu button\n @include break-from-device(screen) {\n\n // Menu button\n &[for=\"__drawer\"] {\n display: none;\n }\n }\n }\n\n // Header topics\n &__topic {\n position: absolute;\n width: 100%;\n transition:\n transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),\n opacity 150ms;\n\n // Page title\n & + & {\n z-index: -1;\n transform: translateX(px2rem(25px));\n opacity: 0;\n transition:\n transform 400ms cubic-bezier(1, 0.7, 0.1, 0.1),\n opacity 150ms;\n pointer-events: none;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n transform: translateX(px2rem(-25px));\n }\n }\n\n // Induce ellipsis, if no JavaScript is available\n .no-js & {\n position: initial;\n }\n\n // Hide page title as it is invisible anyway and will overflow the header\n .no-js & + & {\n display: none;\n }\n }\n\n // Header title - set line height to match icon for correct alignment\n &__title {\n flex-grow: 1;\n padding: 0 px2rem(20px);\n font-size: px2rem(18px);\n line-height: px2rem(48px);\n\n // Show page title\n &[data-md-state=\"active\"] .md-header-nav__topic {\n z-index: -1;\n transform: translateX(px2rem(-25px));\n opacity: 0;\n transition:\n transform 400ms cubic-bezier(1, 0.7, 0.1, 0.1),\n opacity 150ms;\n pointer-events: none;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n transform: translateX(px2rem(25px));\n }\n\n // Page title\n & + .md-header-nav__topic {\n z-index: 0;\n transform: translateX(0);\n opacity: 1;\n transition:\n transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),\n opacity 150ms;\n pointer-events: initial;\n }\n }\n\n // Patch ellipsis\n > .md-header-nav__ellipsis {\n position: relative;\n width: 100%;\n height: 100%;\n }\n }\n\n // Repository containing source\n &__source {\n display: none;\n\n // [tablet landscape +]: Show the reposistory from tablet\n @include break-from-device(tablet landscape) {\n display: block;\n width: px2rem(234px);\n max-width: px2rem(234px);\n margin-left: px2rem(20px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2rem(20px);\n margin-left: initial;\n }\n }\n\n // [screen +]: Increase spacing of search bar\n @include break-from-device(screen) {\n margin-left: px2rem(28px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2rem(28px);\n }\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Hero teaser\n.md-hero {\n overflow: hidden;\n color: var(--md-primary-bg-color);\n font-size: ms(1);\n background-color: var(--md-primary-fg-color);\n transition: background 250ms;\n\n // Inner wrapper\n &__inner {\n margin-top: px2rem(20px);\n padding: px2rem(16px) px2rem(16px) px2rem(8px);\n transition:\n transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),\n opacity 250ms;\n transition-delay: 100ms;\n\n // [tablet -]: Compensate for missing tabs\n @include break-to-device(tablet) {\n margin-top: px2rem(48px);\n margin-bottom: px2rem(24px);\n }\n\n // Fade-out tabs background upon scrolling\n [data-md-state=\"hidden\"] & {\n transform: translateY(px2rem(12.5px));\n opacity: 0;\n transition:\n transform 0ms 400ms,\n opacity 100ms 0ms;\n pointer-events: none;\n }\n\n // Adjust bottom spacing if there are no tabs\n .md-hero--expand & {\n margin-bottom: px2rem(24px);\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Application footer\n.md-footer {\n color: var(--md-default-bg-color);\n background-color: var(--md-default-fg-color);\n\n // Hide for print\n @media print {\n display: none;\n }\n}\n\n// Navigation within footer\n.md-footer-nav {\n\n // Set spacing\n &__inner {\n padding: px2rem(4px);\n overflow: auto;\n }\n\n // Links to previous and next page\n &__link {\n display: flex;\n padding-top: px2rem(28px);\n padding-bottom: px2rem(8px);\n transition: opacity 250ms;\n\n // [tablet +]: Set proportional width\n @include break-from-device(tablet) {\n width: 50%;\n }\n\n // Focused or hovered links\n &:focus,\n &:hover {\n opacity: 0.7;\n }\n\n // Link to previous page\n &--prev {\n float: left;\n width: 25%;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n float: right;\n\n // Flip icon vertically\n svg {\n transform: scaleX(-1);\n }\n }\n\n // Title\n .md-footer-nav__title {\n\n // [mobile -]: Hide title for previous page\n @include break-to-device(mobile) {\n display: none;\n }\n }\n }\n\n // Link to next page\n &--next {\n float: right;\n width: 75%;\n text-align: right;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n float: left;\n text-align: left;\n\n // Flip icon vertically\n svg {\n transform: scaleX(-1);\n }\n }\n }\n }\n\n // Link title - set line height to match icon for correct alignment\n &__title {\n position: relative;\n flex-grow: 1;\n max-width: calc(100% - #{px2rem(48px)});\n padding: 0 px2rem(20px);\n font-size: px2rem(18px);\n line-height: px2rem(48px);\n }\n\n // Link button\n &__button {\n margin: px2rem(4px);\n padding: px2rem(8px);\n }\n\n // Link direction\n &__direction {\n position: absolute;\n right: 0;\n left: 0;\n margin-top: px2rem(-20px);\n padding: 0 px2rem(20px);\n color: var(--md-default-bg-color--light);\n font-size: ms(-1);\n }\n}\n\n// Non-navigational information\n.md-footer-meta {\n background-color: var(--md-default-fg-color--lighter);\n\n // Set spacing\n &__inner {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n padding: px2rem(4px);\n }\n\n // Use a decent color for non-hovered links and ensure specificity\n html &.md-typeset a {\n color: var(--md-default-bg-color--light);\n\n // Focused or hovered link\n &:focus,\n &:hover {\n color: var(--md-default-bg-color);\n }\n }\n}\n\n// Copyright and theme information\n.md-footer-copyright {\n width: 100%;\n margin: auto px2rem(12px);\n padding: px2rem(8px) 0;\n color: var(--md-default-bg-color--lighter);\n font-size: ms(-1);\n\n // [tablet portrait +]: Show next to social media links\n @include break-from-device(tablet portrait) {\n width: auto;\n }\n\n // Highlight copyright information\n &__highlight {\n color: var(--md-default-bg-color--light);\n }\n}\n\n// Social links\n.md-footer-social {\n margin: 0 px2rem(8px);\n padding: px2rem(4px) 0 px2rem(12px);\n\n // [tablet portrait +]: Show next to copyright information\n @include break-from-device(tablet portrait) {\n padding: px2rem(12px) 0;\n }\n\n // Link with icon\n &__link {\n display: inline-block;\n width: px2rem(32px);\n height: px2rem(32px);\n text-align: center;\n\n // Adjust line-height to match height for correct alignment\n &::before {\n line-height: 1.9;\n }\n\n // Social icon\n svg {\n max-height: px2rem(16px);\n vertical-align: -25%;\n fill: currentColor;\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Navigation container\n.md-nav {\n font-size: px2rem(14px);\n line-height: 1.3;\n\n // List title\n &__title {\n display: block;\n padding: 0 px2rem(12px);\n overflow: hidden;\n font-weight: 700;\n text-overflow: ellipsis;\n\n // Hide buttons by default\n .md-nav__button {\n display: none;\n\n // Stretch images\n img {\n width: 100%;\n height: auto;\n }\n\n // Logo\n &.md-logo {\n\n // Image or icon\n img,\n svg {\n display: block;\n width: px2rem(48px);\n height: px2rem(48px);\n }\n\n // Icon\n svg {\n fill: currentColor;\n }\n }\n }\n }\n\n // List of items\n &__list {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n // List item\n &__item {\n padding: 0 px2rem(12px);\n\n // Add bottom spacing to last item\n &:last-child {\n padding-bottom: px2rem(12px);\n }\n\n // 2nd+ level items\n & & {\n padding-right: 0;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(12px);\n padding-left: 0;\n }\n\n // Remove bottom spacing for nested items\n &:last-child {\n padding-bottom: 0;\n }\n }\n }\n\n // Link inside item\n &__link {\n display: block;\n margin-top: 0.625em;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n transition: color 125ms;\n scroll-snap-align: start;\n\n // Hide link to table of contents by default - this will only match the\n // table of contents inside the drawer below and including tablet portrait\n html &[for=\"__toc\"] {\n display: none;\n\n // Hide table of contents by default\n & ~ .md-nav {\n display: none;\n }\n }\n\n // Blurred link\n &[data-md-state=\"blur\"] {\n color: var(--md-default-fg-color--light);\n }\n\n // Active link\n .md-nav__item &--active {\n color: var(--md-primary-fg-color);\n }\n\n // Reset active color for nested list titles\n .md-nav__item--nested > & {\n color: inherit;\n }\n\n // Focused or hovered link\n &:focus,\n &:hover {\n color: var(--md-accent-fg-color);\n }\n }\n\n // Repository containing source\n &__source {\n display: none;\n }\n\n // [tablet -]: Layered navigation\n @include break-to-device(tablet) {\n background-color: var(--md-default-bg-color);\n\n // Stretch primary navigation to drawer\n &--primary,\n &--primary .md-nav {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n // Adjust styles for primary navigation\n &--primary {\n\n // List title and item\n .md-nav__title,\n .md-nav__item {\n font-size: px2rem(16px);\n line-height: 1.5;\n }\n\n // List title\n .md-nav__title {\n position: relative;\n height: px2rem(112px);\n padding: px2rem(60px) px2rem(16px) px2rem(4px);\n color: var(--md-default-fg-color--light);\n font-weight: 400;\n line-height: px2rem(48px);\n white-space: nowrap;\n background-color: var(--md-default-fg-color--lightest);\n cursor: pointer;\n\n // Icon\n .md-nav__icon {\n position: absolute;\n top: px2rem(8px);\n left: px2rem(8px);\n display: block;\n width: px2rem(24px);\n height: px2rem(24px);\n margin: px2rem(4px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: px2rem(8px);\n left: initial;\n }\n }\n\n // Main lists\n ~ .md-nav__list {\n overflow-y: auto;\n background-color: var(--md-default-bg-color);\n box-shadow:\n inset 0 px2rem(1px) 0 var(--md-default-fg-color--lightest);\n scroll-snap-type: y mandatory;\n touch-action: pan-y;\n\n // Remove border for first list item\n > .md-nav__item:first-child {\n border-top: 0;\n }\n }\n\n // Site title in main navigation\n &[for=\"__drawer\"] {\n position: relative;\n color: var(--md-primary-bg-color);\n background-color: var(--md-primary-fg-color);\n\n // Site logo\n .md-nav__button {\n position: absolute;\n top: px2rem(4px);\n left: px2rem(4px);\n display: block;\n margin: px2rem(4px);\n padding: px2rem(8px);\n font-size: px2rem(48px);\n }\n }\n }\n\n // Adjust for right-to-left languages\n html [dir=\"rtl\"] & .md-nav__title {\n\n // Site title in main navigation\n &[for=\"__drawer\"] .md-nav__button {\n right: px2rem(4px);\n left: initial;\n }\n }\n\n // List of items\n .md-nav__list {\n flex: 1;\n }\n\n // List item\n .md-nav__item {\n padding: 0;\n border-top: px2rem(1px) solid var(--md-default-fg-color--lightest);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding: 0;\n }\n\n // Increase spacing to account for icon\n &--nested > .md-nav__link {\n padding-right: px2rem(48px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(16px);\n padding-left: px2rem(48px);\n }\n }\n\n // Active parent item\n &--active > .md-nav__link {\n color: var(--md-primary-fg-color);\n\n // Focused or hovered linl\n &:focus,\n &:hover {\n color: var(--md-accent-fg-color);\n }\n }\n }\n\n // Link inside item\n .md-nav__link {\n position: relative;\n margin-top: 0;\n padding: px2rem(12px) px2rem(16px);\n\n // Icon\n .md-nav__icon {\n position: absolute;\n top: 50%;\n right: px2rem(12px);\n margin-top: px2rem(-12px);\n color: inherit;\n font-size: px2rem(24px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: initial;\n left: px2rem(12px);\n }\n }\n }\n\n // Icon\n .md-nav__icon {\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n\n // Flip icon vertically\n svg {\n transform: scale(-1);\n }\n }\n }\n\n // Table of contents inside navigation\n .md-nav--secondary {\n\n // Set links to static to avoid unnecessary layering\n .md-nav__link {\n position: static;\n }\n\n // Set nested navigation for table of contents to static\n .md-nav {\n position: static;\n background-color: transparent;\n\n // 3rd level link\n .md-nav__link {\n padding-left: px2rem(28px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(28px);\n padding-left: initial;\n }\n }\n\n // 4th level link\n .md-nav .md-nav__link {\n padding-left: px2rem(40px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(40px);\n padding-left: initial;\n }\n }\n\n // 5th level link\n .md-nav .md-nav .md-nav__link {\n padding-left: px2rem(52px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(52px);\n padding-left: initial;\n }\n }\n\n // 6th level link\n .md-nav .md-nav .md-nav .md-nav__link {\n padding-left: px2rem(64px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(64px);\n padding-left: initial;\n }\n }\n }\n }\n }\n\n // Hide nested navigation by default\n .md-nav__toggle ~ & {\n display: flex;\n transform: translateX(100%);\n opacity: 0;\n transition:\n transform 250ms cubic-bezier(0.8, 0, 0.6, 1),\n opacity 125ms 50ms;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n transform: translateX(-100%);\n }\n }\n\n // Expand nested navigation, if toggle is checked\n .md-nav__toggle:checked ~ & {\n transform: translateX(0);\n opacity: 1;\n transition:\n transform 250ms cubic-bezier(0.4, 0, 0.2, 1),\n opacity 125ms 125ms;\n\n // Hack: reduce jitter\n > .md-nav__list {\n backface-visibility: hidden;\n }\n }\n }\n\n // [tablet portrait -]: Show table of contents in drawer\n @include break-to-device(tablet portrait) {\n\n // Show link to table of contents - higher specificity is necessary to\n // display the table of contents inside the drawer\n html &__link[for=\"__toc\"] {\n display: block;\n padding-right: px2rem(48px);\n\n // Hide link to current item\n + .md-nav__link {\n display: none;\n }\n\n // Show table of contents\n & ~ .md-nav {\n display: flex;\n }\n }\n\n // Adjust for right-to-left languages\n html [dir=\"rtl\"] &__link {\n padding-right: px2rem(16px);\n padding-left: px2rem(48px);\n }\n\n // Repository containing source\n &__source {\n display: block;\n padding: 0 px2rem(4px);\n color: var(--md-primary-bg-color);\n background-color: var(--md-primary-fg-color--dark);\n }\n }\n\n // [tablet landscape +]: Tree-like navigation\n @include break-from-device(tablet landscape) {\n\n // List title\n &--secondary .md-nav__title {\n\n // Snap to table of contents title\n &[for=\"__toc\"] {\n scroll-snap-align: start;\n }\n\n // Hide icon\n .md-nav__icon {\n display: none;\n }\n }\n }\n\n // [screen +]: Tree-like navigation\n @include break-from-device(screen) {\n transition: max-height 250ms cubic-bezier(0.86, 0, 0.07, 1);\n\n // List title\n &--primary .md-nav__title {\n\n // Snap to site title\n &[for=\"__drawer\"] {\n scroll-snap-align: start;\n }\n\n // Hide icon\n .md-nav__icon {\n display: none;\n }\n }\n\n // Hide nested navigation by default\n .md-nav__toggle ~ & {\n display: none;\n }\n\n // Show nested navigation, if toggle is checked\n .md-nav__toggle:checked ~ & {\n display: block;\n }\n\n // Hide titles for nested navigation\n &__item--nested > .md-nav > &__title {\n display: none;\n }\n\n // Icon\n &__icon {\n float: right;\n height: px2rem(18px);\n transition: transform 250ms;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n float: left;\n transform: rotate(180deg);\n }\n\n // Inline icon and adjust to match font size\n svg {\n display: inline-block;\n width: px2rem(18px);\n height: px2rem(18px);\n vertical-align: px2rem(-2px);\n }\n\n // Rotate icon for expanded lists\n .md-nav__item--nested .md-nav__toggle:checked ~ .md-nav__link & {\n transform: rotate(90deg);\n }\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Variables\n// ----------------------------------------------------------------------------\n\n// Active (toggled) search\n$md-toggle__search--checked:\n \"[data-md-toggle=\\\"search\\\"]:checked ~ .md-header\";\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Search container\n.md-search {\n position: relative;\n\n // Hide search, if JavaScript is not available.\n .no-js & {\n display: none;\n }\n\n // [tablet landscape +]: Header-embedded search\n @include break-from-device(tablet landscape) {\n padding: px2rem(4px) 0;\n }\n\n // Search modal overlay\n &__overlay {\n z-index: 1;\n opacity: 0;\n\n // [tablet portrait -]: Full-screen search bar\n @include break-to-device(tablet portrait) {\n position: absolute;\n top: px2rem(4px);\n left: px2rem(-44px);\n width: px2rem(40px);\n height: px2rem(40px);\n overflow: hidden;\n background-color: var(--md-default-bg-color);\n border-radius: px2rem(20px);\n transform-origin: center;\n transition:\n transform 300ms 100ms,\n opacity 200ms 200ms;\n pointer-events: none;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: px2rem(-44px);\n left: initial;\n }\n\n // Expanded overlay\n #{$md-toggle__search--checked} & {\n opacity: 1;\n transition:\n transform 400ms,\n opacity 100ms;\n }\n }\n\n // Set scale factors\n #{$md-toggle__search--checked} & {\n\n // [mobile portrait -]: Scale up 45 times\n @include break-to-device(mobile portrait) {\n transform: scale(45);\n }\n\n // [mobile landscape]: Scale up 60 times\n @include break-at-device(mobile landscape) {\n transform: scale(60);\n }\n\n // [tablet portrait]: Scale up 75 times\n @include break-at-device(tablet portrait) {\n transform: scale(75);\n }\n }\n\n // [tablet landscape +]: Overlay for better focus on search\n @include break-from-device(tablet landscape) {\n position: fixed;\n top: 0;\n left: 0;\n width: 0;\n height: 0;\n background-color: var(--md-default-fg-color--light);\n cursor: pointer;\n transition:\n width 0ms 250ms,\n height 0ms 250ms,\n opacity 250ms;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: 0;\n left: initial;\n }\n\n // Expanded overlay\n #{$md-toggle__search--checked} & {\n width: 100%;\n height: 100%;\n opacity: 1;\n transition:\n width 0ms,\n height 0ms,\n opacity 250ms;\n }\n }\n }\n\n // Search modal wrapper\n &__inner {\n // Hack: reduce jitter\n backface-visibility: hidden;\n\n // [tablet portrait -]: Put search modal off-canvas by default\n @include break-to-device(tablet portrait) {\n position: fixed;\n top: 0;\n left: 100%;\n z-index: 2;\n width: 100%;\n height: 100%;\n transform: translateX(5%);\n opacity: 0;\n transition:\n right 0ms 300ms,\n left 0ms 300ms,\n transform 150ms 150ms cubic-bezier(0.4, 0, 0.2, 1),\n opacity 150ms 150ms;\n\n // Active search modal\n #{$md-toggle__search--checked} & {\n left: 0;\n transform: translateX(0);\n opacity: 1;\n transition:\n right 0ms 0ms,\n left 0ms 0ms,\n transform 150ms 150ms cubic-bezier(0.1, 0.7, 0.1, 1),\n opacity 150ms 150ms;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: 0;\n left: initial;\n }\n }\n\n // Adjust for right-to-left languages\n html [dir=\"rtl\"] & {\n right: 100%;\n left: initial;\n transform: translateX(-5%);\n }\n }\n\n // [tablet landscape +]: Header-embedded search\n @include break-from-device(tablet landscape) {\n position: relative;\n float: right;\n width: px2rem(234px);\n padding: px2rem(2px) 0;\n transition: width 250ms cubic-bezier(0.1, 0.7, 0.1, 1);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n float: left;\n }\n }\n\n // Set maximum width\n #{$md-toggle__search--checked} & {\n\n // [tablet landscape]: Do not overlay title\n @include break-at-device(tablet landscape) {\n width: px2rem(468px);\n }\n\n // [screen +]: Match content width\n @include break-from-device(screen) {\n width: px2rem(688px);\n }\n }\n }\n\n // Search form\n &__form {\n position: relative;\n\n // [tablet landscape +]: Header-embedded search\n @include break-from-device(tablet landscape) {\n border-radius: px2rem(2px);\n }\n }\n\n // Search input\n &__input {\n position: relative;\n z-index: 2;\n padding: 0 px2rem(44px) 0 px2rem(72px);\n text-overflow: ellipsis;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding: 0 px2rem(72px) 0 px2rem(44px);\n }\n\n // Transition on placeholder\n &::placeholder {\n transition: color 250ms;\n }\n\n // Placeholder and icon color in active state\n ~ .md-search__icon,\n &::placeholder {\n color: var(--md-default-fg-color--light);\n }\n\n // Remove the \"x\" rendered by Internet Explorer\n &::-ms-clear {\n display: none;\n }\n\n // [tablet portrait -]: Full-screen search bar\n @include break-to-device(tablet portrait) {\n width: 100%;\n height: px2rem(48px);\n font-size: px2rem(18px);\n }\n\n // [tablet landscape +]: Header-embedded search\n @include break-from-device(tablet landscape) {\n width: 100%;\n height: px2rem(36px);\n padding-left: px2rem(44px);\n color: inherit;\n font-size: ms(0);\n background-color: var(--md-default-fg-color--lighter);\n border-radius: px2rem(2px);\n transition:\n color 250ms,\n background-color 250ms;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(44px);\n }\n\n // Icon color\n + .md-search__icon {\n color: var(--md-primary-bg-color);\n }\n\n // Placeholder color\n &::placeholder {\n color: var(--md-primary-bg-color--light);\n }\n\n // Hovered search field\n &:hover {\n background-color: var(--md-default-bg-color--lightest);\n }\n\n // Set light background on active search field\n #{$md-toggle__search--checked} & {\n color: var(--md-default-fg-color);\n text-overflow: clip;\n background-color: var(--md-default-bg-color);\n border-radius: px2rem(2px) px2rem(2px) 0 0;\n\n // Icon and placeholder color in active state\n + .md-search__icon,\n &::placeholder {\n color: var(--md-default-fg-color--light);\n }\n }\n }\n }\n\n // Icon\n &__icon {\n position: absolute;\n z-index: 2;\n width: px2rem(24px);\n height: px2rem(24px);\n cursor: pointer;\n transition:\n color 250ms,\n opacity 250ms;\n\n // Hovered icon\n &:hover {\n opacity: 0.7;\n }\n\n // Search icon\n &[for=\"__search\"] {\n top: px2rem(6px);\n left: px2rem(10px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: px2rem(10px);\n left: initial;\n\n // Flip icon vertically\n svg {\n transform: scaleX(-1);\n }\n }\n\n // [tablet portrait -]: Full-screen search bar\n @include break-to-device(tablet portrait) {\n top: px2rem(12px);\n left: px2rem(16px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: px2rem(16px);\n left: initial;\n }\n\n // Hide the magnifying glass (1st icon)\n svg:first-child {\n display: none;\n }\n }\n\n // [tablet landscape +]: Header-embedded search\n @include break-from-device(tablet landscape) {\n pointer-events: none;\n\n // Hide the arrow (2nd icon)\n svg:last-child {\n display: none;\n }\n }\n }\n\n // Reset button\n &[type=\"reset\"] {\n top: px2rem(6px);\n right: px2rem(10px);\n transform: scale(0.75);\n opacity: 0;\n transition:\n transform 150ms cubic-bezier(0.1, 0.7, 0.1, 1),\n opacity 150ms;\n pointer-events: none;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: initial;\n left: px2rem(10px);\n }\n\n // [tablet portrait -]: Full-screen search bar\n @include break-to-device(tablet portrait) {\n top: px2rem(12px);\n right: px2rem(16px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: initial;\n left: px2rem(16px);\n }\n }\n\n // Show reset button if search is active and input non-empty\n #{$md-toggle__search--checked}\n .md-search__input:not(:placeholder-shown) ~ & {\n transform: scale(1);\n opacity: 1;\n pointer-events: initial;\n\n // Hovered icon\n &:hover {\n opacity: 0.7;\n }\n }\n }\n }\n\n // Search output container\n &__output {\n position: absolute;\n z-index: 1;\n width: 100%;\n overflow: hidden;\n border-radius: 0 0 px2rem(2px) px2rem(2px);\n\n // [tablet portrait -]: Full-screen search bar\n @include break-to-device(tablet portrait) {\n top: px2rem(48px);\n bottom: 0;\n }\n\n // [tablet landscape +]: Header-embedded search\n @include break-from-device(tablet landscape) {\n top: px2rem(38px);\n opacity: 0;\n transition: opacity 400ms;\n\n // Show search output in active state\n #{$md-toggle__search--checked} & {\n @include z-depth(6);\n\n opacity: 1;\n }\n }\n }\n\n // Wrapper for scrolling on overflow\n &__scrollwrap {\n height: 100%;\n overflow-y: auto;\n background-color: var(--md-default-bg-color);\n box-shadow: inset 0 px2rem(1px) 0 var(--md-default-fg-color--lightest);\n // Hack: reduce jitter\n backface-visibility: hidden;\n scroll-snap-type: y mandatory;\n touch-action: pan-y;\n\n // Mitigiate excessive repaints on non-retina devices\n @media (max-resolution: 1dppx) {\n transform: translateZ(0);\n }\n\n // [tablet landscape]: Set absolute width to omit unnecessary reflow\n @include break-at-device(tablet landscape) {\n width: px2rem(468px);\n }\n\n // [screen +]: Set absolute width to omit unnecessary reflow\n @include break-from-device(screen) {\n width: px2rem(688px);\n }\n\n // [tablet landscape +]: Limit height to viewport\n @include break-from-device(tablet landscape) {\n max-height: 0;\n\n // Expand in active state\n #{$md-toggle__search--checked} & {\n max-height: 75vh;\n }\n\n // Override native scrollbar styles\n &::-webkit-scrollbar {\n width: px2rem(4px);\n height: px2rem(4px);\n }\n\n // Scrollbar thumb\n &::-webkit-scrollbar-thumb {\n background-color: var(--md-default-fg-color--lighter);\n\n // Hovered scrollbar thumb\n &:hover {\n background-color: var(--md-accent-fg-color);\n }\n }\n }\n }\n}\n\n// Search result\n.md-search-result {\n color: var(--md-default-fg-color);\n word-break: break-word;\n\n // Search metadata\n &__meta {\n padding: 0 px2rem(16px);\n color: var(--md-default-fg-color--light);\n font-size: ms(-1);\n line-height: px2rem(36px);\n background-color: var(--md-default-fg-color--lightest);\n scroll-snap-align: start;\n\n // [tablet landscape +]: Increase left indent\n @include break-from-device(tablet landscape) {\n padding-left: px2rem(44px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(44px);\n padding-left: initial;\n }\n }\n }\n\n // List of items\n &__list {\n margin: 0;\n padding: 0;\n list-style: none;\n border-top: px2rem(1px) solid var(--md-default-fg-color--lightest);\n }\n\n // List item\n &__item {\n box-shadow: 0 px2rem(-1px) 0 var(--md-default-fg-color--lightest);\n }\n\n // Link inside item\n &__link {\n display: block;\n outline: 0;\n transition: background 250ms;\n scroll-snap-align: start;\n\n // Focused or hovered link\n &:focus,\n &:hover {\n background-color: var(--md-accent-fg-color--transparent);\n\n // Slightly transparent icon\n .md-search-result__article::before {\n opacity: 0.7;\n }\n }\n\n // Add a little spacing on the teaser of the last link\n &:last-child .md-search-result__teaser {\n margin-bottom: px2rem(12px);\n }\n }\n\n // Article - document or section\n &__article {\n position: relative;\n padding: 0 px2rem(16px);\n overflow: hidden;\n\n // [tablet landscape +]: Increase left indent\n @include break-from-device(tablet landscape) {\n padding-left: px2rem(44px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(44px);\n padding-left: px2rem(16px);\n }\n }\n\n // Document\n &--document {\n\n // Title\n .md-search-result__title {\n margin: px2rem(11px) 0;\n font-weight: 400;\n font-size: ms(0);\n line-height: 1.4;\n }\n }\n }\n\n // Icon\n &__icon {\n position: absolute;\n left: 0;\n margin: px2rem(2px);\n padding: px2rem(8px);\n color: var(--md-default-fg-color--light);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: 0;\n left: initial;\n\n // Flip icon vertically\n svg {\n transform: scaleX(-1);\n }\n }\n\n // [tablet portrait -]: Hide page icon\n @include break-to-device(tablet portrait) {\n display: none;\n }\n }\n\n // Title\n &__title {\n margin: 0.5em 0;\n font-weight: 700;\n font-size: ms(-1);\n line-height: 1.4;\n }\n\n // stylelint-disable value-no-vendor-prefix, property-no-vendor-prefix\n\n // Teaser\n &__teaser {\n display: -webkit-box;\n max-height: px2rem(33px);\n margin: 0.5em 0;\n overflow: hidden;\n color: var(--md-default-fg-color--light);\n font-size: ms(-1);\n line-height: 1.4;\n text-overflow: ellipsis;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n\n // [mobile -]: Increase number of lines\n @include break-to-device(mobile) {\n max-height: px2rem(50px);\n -webkit-line-clamp: 3;\n }\n\n // [tablet landscape]: Increase number of lines\n @include break-at-device(tablet landscape) {\n max-height: px2rem(50px);\n -webkit-line-clamp: 3;\n }\n }\n\n // stylelint-enable value-no-vendor-prefix, property-no-vendor-prefix\n\n // Search term highlighting\n em {\n font-weight: 700;\n font-style: normal;\n text-decoration: underline;\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Variables\n// ----------------------------------------------------------------------------\n\n// Active (toggled) drawer\n$md-toggle__drawer--checked:\n \"[data-md-toggle=\\\"drawer\\\"]:checked ~ .md-container\";\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Sidebar container\n.md-sidebar {\n position: sticky;\n top: px2rem(48px);\n width: px2rem(242px);\n padding: px2rem(24px) 0;\n overflow: hidden;\n\n // Hide for print\n @media print {\n display: none;\n }\n\n // [tablet -]: Convert navigation to drawer\n @include break-to-device(tablet) {\n\n // Render primary sidebar as a slideout container\n &--primary {\n position: fixed;\n top: 0;\n left: px2rem(-242px);\n z-index: 3;\n width: px2rem(242px);\n height: 100%;\n background-color: var(--md-default-bg-color);\n transform: translateX(0);\n transition:\n transform 250ms cubic-bezier(0.4, 0, 0.2, 1),\n box-shadow 250ms;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: px2rem(-242px);\n left: initial;\n }\n\n // Expanded drawer\n #{$md-toggle__drawer--checked} & {\n @include z-depth(8);\n\n transform: translateX(px2rem(242px));\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n transform: translateX(px2rem(-242px));\n }\n }\n\n // Hide overflow for nested navigation\n .md-sidebar__scrollwrap {\n overflow: hidden;\n }\n }\n }\n\n // Secondary sidebar with table of contents\n &--secondary {\n display: none;\n order: 2;\n\n // [tablet landscape +]: Show table of contents next to body copy\n @include break-from-device(tablet landscape) {\n display: block;\n\n // Ensure smooth scrolling on iOS\n .md-sidebar__scrollwrap {\n touch-action: pan-y;\n }\n }\n }\n\n // Wrapper for scrolling on overflow\n &__scrollwrap {\n max-height: 100%;\n margin: 0 px2rem(4px);\n overflow-y: auto;\n // Hack: reduce jitter\n backface-visibility: hidden;\n scroll-snap-type: y mandatory;\n\n // [tablet -]: Adjust margins\n @include break-to-device(tablet) {\n\n // Stretch scrollwrap for primary sidebar\n .md-sidebar--primary & {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n margin: 0;\n scroll-snap-type: none;\n }\n }\n\n // Override native scrollbar styles\n &::-webkit-scrollbar {\n width: px2rem(4px);\n height: px2rem(4px);\n }\n\n // Scrollbar thumb\n &::-webkit-scrollbar-thumb {\n background-color: var(--md-default-fg-color--lighter);\n\n // Hovered scrollbar thumb\n &:hover {\n background-color: var(--md-accent-fg-color);\n }\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Keyframes\n// ----------------------------------------------------------------------------\n\n// Show source facts\n@keyframes md-source__facts--done {\n 0% {\n height: 0;\n }\n\n 100% {\n height: px2rem(13px);\n }\n}\n\n// Show source fact\n@keyframes md-source__fact--done {\n 0% {\n transform: translateY(100%);\n opacity: 0;\n }\n\n 50% {\n opacity: 0;\n }\n\n 100% {\n transform: translateY(0%);\n opacity: 1;\n }\n}\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Source container\n.md-source {\n display: block;\n font-size: px2rem(13px);\n line-height: 1.2;\n white-space: nowrap;\n // Hack: reduce jitter\n backface-visibility: hidden;\n transition: opacity 250ms;\n\n // Hovered source container\n &:hover {\n opacity: 0.7;\n }\n\n // Repository platform icon\n &__icon {\n display: inline-block;\n width: px2rem(48px);\n height: px2rem(48px);\n vertical-align: middle;\n\n // Align with margin only (as opposed to normal button alignment)\n svg {\n margin-top: px2rem(12px);\n margin-left: px2rem(12px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2rem(12px);\n margin-left: initial;\n }\n }\n\n // Correct alignment, if icon is present\n + .md-source__repository {\n margin-left: px2rem(-40px);\n padding-left: px2rem(40px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2rem(-40px);\n margin-left: initial;\n padding-right: px2rem(40px);\n padding-left: initial;\n }\n }\n }\n\n // Repository name\n &__repository {\n display: inline-block;\n max-width: calc(100% - #{px2rem(24px)});\n margin-left: px2rem(12px);\n overflow: hidden;\n font-weight: 700;\n text-overflow: ellipsis;\n vertical-align: middle;\n }\n\n // Source facts (statistics etc.)\n &__facts {\n margin: 0;\n padding: 0;\n overflow: hidden;\n font-weight: 700;\n font-size: px2rem(11px);\n list-style-type: none;\n opacity: 0.75;\n\n // Show after the data was loaded\n [data-md-state=\"done\"] & {\n animation: md-source__facts--done 250ms ease-in;\n }\n }\n\n // Fact\n &__fact {\n float: left;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n float: right;\n }\n\n // Show after the data was loaded\n [data-md-state=\"done\"] & {\n animation: md-source__fact--done 400ms ease-out;\n }\n\n // Middle dot before fact\n &::before {\n margin: 0 px2rem(2px);\n content: \"\\00B7\";\n }\n\n // Remove middle dot on first fact\n &:first-child::before {\n display: none;\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Tabs with outline\n.md-tabs {\n width: 100%;\n overflow: auto;\n color: var(--md-primary-bg-color);\n background-color: var(--md-primary-fg-color);\n transition: background 250ms;\n\n // Omit transitions, in case JavaScript is not available\n .no-js & {\n transition: none;\n }\n\n // [tablet -]: Hide tabs for tablet and below, as they don't make any sense\n @include break-to-device(tablet) {\n display: none;\n }\n\n // Hide for print\n @media print {\n display: none;\n }\n\n // List of items\n &__list {\n margin: 0;\n margin-left: px2rem(4px);\n padding: 0;\n white-space: nowrap;\n list-style: none;\n contain: content;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2rem(4px);\n margin-left: initial;\n }\n }\n\n // List item\n &__item {\n display: inline-block;\n height: px2rem(48px);\n padding-right: px2rem(12px);\n padding-left: px2rem(12px);\n }\n\n // Link inside item - could be defined as block elements and aligned via\n // line height, but this would imply more repaints when scrolling\n &__link {\n display: block;\n margin-top: px2rem(16px);\n font-size: px2rem(14px);\n opacity: 0.7;\n transition:\n transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),\n opacity 250ms;\n\n // Omit transitions, in case JavaScript is not available\n .no-js & {\n transition: none;\n }\n\n // Active or hovered link\n &--active,\n &:hover {\n color: inherit;\n opacity: 1;\n }\n\n // Delay transitions by a small amount\n @for $i from 2 through 16 {\n .md-tabs__item:nth-child(#{$i}) & {\n transition-delay: 20ms * ($i - 1);\n }\n }\n }\n\n // Fade-out tabs background upon scrolling\n &[data-md-state=\"hidden\"] {\n pointer-events: none;\n\n // Hide tabs upon scrolling - disable transition to minimizes repaints\n // while scrolling down, while scrolling up seems to be okay\n .md-tabs__link {\n transform: translateY(50%);\n opacity: 0;\n transition:\n color 250ms,\n transform 0ms 400ms,\n opacity 100ms;\n }\n }\n\n // [screen +]: Adjust main navigation styles\n @include break-from-device(screen) {\n\n // Hide 1st level nested items, as they are listed in the tabs\n ~ .md-main .md-nav--primary > .md-nav__list > .md-nav__item--nested {\n display: none;\n }\n\n // Active tab\n &--active ~ .md-main {\n\n // Adjust 1st level styles\n .md-nav--primary {\n\n // Show title and remove spacing\n .md-nav__title {\n display: block;\n padding: 0 px2rem(12px);\n pointer-events: none;\n scroll-snap-align: start;\n\n // Hide site title\n &[for=\"__drawer\"] {\n display: none;\n }\n }\n\n // Hide 1st level items\n > .md-nav__list > .md-nav__item {\n display: none;\n\n // Show 1st level active nested items\n &--active {\n display: block;\n padding: 0;\n\n // Hide nested links\n > .md-nav__link {\n display: none;\n }\n }\n }\n }\n\n // Always expand nested navigation on 2nd level\n .md-nav[data-md-level=\"1\"] {\n // Hack: Always show active navigation tab on breakpoint screen, despite\n // of checkbox being checked or not. Fixes #1655.\n display: block;\n\n // Remove spacing on 2nd level items\n > .md-nav__list > .md-nav__item {\n padding: 0 px2rem(12px);\n }\n\n // Hide titles from 2nd level on\n .md-nav .md-nav__title {\n display: none;\n }\n }\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Variables\n// ----------------------------------------------------------------------------\n\n///\n/// Admonition flavours\n///\n$admonitions: (\n note: pencil $clr-blue-a200,\n abstract summary tldr: text-subject $clr-light-blue-a400,\n info todo: information $clr-cyan-a700,\n tip hint important: fire $clr-teal-a700,\n success check done: check-circle $clr-green-a700,\n question help faq: help-circle $clr-light-green-a700,\n warning caution attention: alert $clr-orange-a400,\n failure fail missing: close-circle $clr-red-a200,\n danger error: flash-circle $clr-red-a400,\n bug: bug $clr-pink-a400,\n example: format-list-numbered $clr-deep-purple-a400,\n quote cite: format-quote-close $clr-grey\n) !default;\n\n// ----------------------------------------------------------------------------\n// Rules: layout\n// ----------------------------------------------------------------------------\n\n// Icon definitions\n:root {\n @each $names, $props in $admonitions {\n $name: nth($names, 1);\n $icon: nth($props, 1);\n\n // Inline icon through string-replace-loader in webpack\n --md-admonition-icon--#{$name}: svg-load(\"@mdi/svg/svg/#{$icon}.svg\");\n }\n}\n\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // Admonition extension\n .admonition {\n margin: 1.5625em 0;\n padding: 0 px2rem(12px);\n overflow: hidden;\n font-size: ms(-1);\n page-break-inside: avoid;\n border-left: px2rem(4px) solid $clr-blue-a200;\n border-radius: px2rem(2px);\n box-shadow:\n 0 px2rem(4px) px2rem(10px) hsla(0, 0%, 0%, 0.05),\n 0 0 px2rem(1px) hsla(0, 0%, 0%, 0.1);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n border-right: px2rem(4px) solid $clr-blue-a200;\n border-left: none;\n }\n\n // Hack: omit rendering errors for print\n @media print {\n box-shadow: none;\n }\n\n // Adjust spacing on last element\n html & > :last-child {\n margin-bottom: px2rem(12px);\n }\n\n // Adjust margin for nested admonition blocks\n .admonition {\n margin: 1em 0;\n }\n\n // Wrapper for scrolling on overflow\n .md-typeset__scrollwrap {\n margin: 1em px2rem(-12px);\n }\n\n // Data table wrapper, in case JavaScript is available\n .md-typeset__table {\n padding: 0 px2rem(12px);\n }\n }\n\n // Admonition title\n .admonition-title {\n position: relative;\n margin: 0 px2rem(-12px);\n padding: px2rem(8px) px2rem(12px) px2rem(8px) px2rem(40px);\n font-weight: 700;\n background-color: transparentize($clr-blue-a200, 0.9);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding: px2rem(8px) px2rem(40px) px2rem(8px) px2rem(12px);\n }\n\n // Reset spacing, if title is the only element\n html &:last-child {\n margin-bottom: 0;\n }\n\n // Icon\n &::before {\n position: absolute;\n left: px2rem(12px);\n width: px2rem(20px);\n height: px2rem(20px);\n background-color: $clr-blue-a200;\n mask-image: var(--md-admonition-icon--note);\n content: \"\";\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: px2rem(12px);\n left: initial;\n }\n }\n\n // Reset code inside Admonition titles\n code {\n margin: initial;\n padding: initial;\n color: currentColor;\n background-color: transparent;\n border-radius: initial;\n box-shadow: none;\n }\n }\n}\n\n// ----------------------------------------------------------------------------\n// Rules: flavours\n// ----------------------------------------------------------------------------\n\n@each $names, $props in $admonitions {\n $name: nth($names, 1);\n $tint: nth($props, 2);\n\n // Define base class\n .md-typeset .admonition.#{$name} {\n border-color: $tint;\n }\n\n // Define base class\n .md-typeset .#{$name} > .admonition-title {\n background-color: transparentize($tint, 0.9);\n\n // Icon\n &::before {\n background-color: $tint;\n mask-image: var(--md-admonition-icon--#{$name});\n }\n }\n\n // Define synonyms for base class\n @if length($names) > 1 {\n @for $n from 2 through length($names) {\n .#{nth($names, $n)} {\n @extend .#{$name};\n }\n }\n }\n}\n","// ==========================================================================\n//\n// Name: UI Color Palette\n// Description: The color palette of material design.\n// Version: 2.3.1\n//\n// Author: Denis Malinochkin\n// Git: https://github.com/mrmlnc/material-color\n//\n// twitter: @mrmlnc\n//\n// ==========================================================================\n\n\n//\n// List of base colors\n//\n\n// $clr-red\n// $clr-pink\n// $clr-purple\n// $clr-deep-purple\n// $clr-indigo\n// $clr-blue\n// $clr-light-blue\n// $clr-cyan\n// $clr-teal\n// $clr-green\n// $clr-light-green\n// $clr-lime\n// $clr-yellow\n// $clr-amber\n// $clr-orange\n// $clr-deep-orange\n// $clr-brown\n// $clr-grey\n// $clr-blue-grey\n// $clr-black\n// $clr-white\n\n\n//\n// Red\n//\n\n$clr-red-list: (\n \"base\": #f44336,\n \"50\": #ffebee,\n \"100\": #ffcdd2,\n \"200\": #ef9a9a,\n \"300\": #e57373,\n \"400\": #ef5350,\n \"500\": #f44336,\n \"600\": #e53935,\n \"700\": #d32f2f,\n \"800\": #c62828,\n \"900\": #b71c1c,\n \"a100\": #ff8a80,\n \"a200\": #ff5252,\n \"a400\": #ff1744,\n \"a700\": #d50000\n);\n\n$clr-red: map-get($clr-red-list, \"base\");\n\n$clr-red-50: map-get($clr-red-list, \"50\");\n$clr-red-100: map-get($clr-red-list, \"100\");\n$clr-red-200: map-get($clr-red-list, \"200\");\n$clr-red-300: map-get($clr-red-list, \"300\");\n$clr-red-400: map-get($clr-red-list, \"400\");\n$clr-red-500: map-get($clr-red-list, \"500\");\n$clr-red-600: map-get($clr-red-list, \"600\");\n$clr-red-700: map-get($clr-red-list, \"700\");\n$clr-red-800: map-get($clr-red-list, \"800\");\n$clr-red-900: map-get($clr-red-list, \"900\");\n$clr-red-a100: map-get($clr-red-list, \"a100\");\n$clr-red-a200: map-get($clr-red-list, \"a200\");\n$clr-red-a400: map-get($clr-red-list, \"a400\");\n$clr-red-a700: map-get($clr-red-list, \"a700\");\n\n\n//\n// Pink\n//\n\n$clr-pink-list: (\n \"base\": #e91e63,\n \"50\": #fce4ec,\n \"100\": #f8bbd0,\n \"200\": #f48fb1,\n \"300\": #f06292,\n \"400\": #ec407a,\n \"500\": #e91e63,\n \"600\": #d81b60,\n \"700\": #c2185b,\n \"800\": #ad1457,\n \"900\": #880e4f,\n \"a100\": #ff80ab,\n \"a200\": #ff4081,\n \"a400\": #f50057,\n \"a700\": #c51162\n);\n\n$clr-pink: map-get($clr-pink-list, \"base\");\n\n$clr-pink-50: map-get($clr-pink-list, \"50\");\n$clr-pink-100: map-get($clr-pink-list, \"100\");\n$clr-pink-200: map-get($clr-pink-list, \"200\");\n$clr-pink-300: map-get($clr-pink-list, \"300\");\n$clr-pink-400: map-get($clr-pink-list, \"400\");\n$clr-pink-500: map-get($clr-pink-list, \"500\");\n$clr-pink-600: map-get($clr-pink-list, \"600\");\n$clr-pink-700: map-get($clr-pink-list, \"700\");\n$clr-pink-800: map-get($clr-pink-list, \"800\");\n$clr-pink-900: map-get($clr-pink-list, \"900\");\n$clr-pink-a100: map-get($clr-pink-list, \"a100\");\n$clr-pink-a200: map-get($clr-pink-list, \"a200\");\n$clr-pink-a400: map-get($clr-pink-list, \"a400\");\n$clr-pink-a700: map-get($clr-pink-list, \"a700\");\n\n\n//\n// Purple\n//\n\n$clr-purple-list: (\n \"base\": #9c27b0,\n \"50\": #f3e5f5,\n \"100\": #e1bee7,\n \"200\": #ce93d8,\n \"300\": #ba68c8,\n \"400\": #ab47bc,\n \"500\": #9c27b0,\n \"600\": #8e24aa,\n \"700\": #7b1fa2,\n \"800\": #6a1b9a,\n \"900\": #4a148c,\n \"a100\": #ea80fc,\n \"a200\": #e040fb,\n \"a400\": #d500f9,\n \"a700\": #aa00ff\n);\n\n$clr-purple: map-get($clr-purple-list, \"base\");\n\n$clr-purple-50: map-get($clr-purple-list, \"50\");\n$clr-purple-100: map-get($clr-purple-list, \"100\");\n$clr-purple-200: map-get($clr-purple-list, \"200\");\n$clr-purple-300: map-get($clr-purple-list, \"300\");\n$clr-purple-400: map-get($clr-purple-list, \"400\");\n$clr-purple-500: map-get($clr-purple-list, \"500\");\n$clr-purple-600: map-get($clr-purple-list, \"600\");\n$clr-purple-700: map-get($clr-purple-list, \"700\");\n$clr-purple-800: map-get($clr-purple-list, \"800\");\n$clr-purple-900: map-get($clr-purple-list, \"900\");\n$clr-purple-a100: map-get($clr-purple-list, \"a100\");\n$clr-purple-a200: map-get($clr-purple-list, \"a200\");\n$clr-purple-a400: map-get($clr-purple-list, \"a400\");\n$clr-purple-a700: map-get($clr-purple-list, \"a700\");\n\n\n//\n// Deep purple\n//\n\n$clr-deep-purple-list: (\n \"base\": #673ab7,\n \"50\": #ede7f6,\n \"100\": #d1c4e9,\n \"200\": #b39ddb,\n \"300\": #9575cd,\n \"400\": #7e57c2,\n \"500\": #673ab7,\n \"600\": #5e35b1,\n \"700\": #512da8,\n \"800\": #4527a0,\n \"900\": #311b92,\n \"a100\": #b388ff,\n \"a200\": #7c4dff,\n \"a400\": #651fff,\n \"a700\": #6200ea\n);\n\n$clr-deep-purple: map-get($clr-deep-purple-list, \"base\");\n\n$clr-deep-purple-50: map-get($clr-deep-purple-list, \"50\");\n$clr-deep-purple-100: map-get($clr-deep-purple-list, \"100\");\n$clr-deep-purple-200: map-get($clr-deep-purple-list, \"200\");\n$clr-deep-purple-300: map-get($clr-deep-purple-list, \"300\");\n$clr-deep-purple-400: map-get($clr-deep-purple-list, \"400\");\n$clr-deep-purple-500: map-get($clr-deep-purple-list, \"500\");\n$clr-deep-purple-600: map-get($clr-deep-purple-list, \"600\");\n$clr-deep-purple-700: map-get($clr-deep-purple-list, \"700\");\n$clr-deep-purple-800: map-get($clr-deep-purple-list, \"800\");\n$clr-deep-purple-900: map-get($clr-deep-purple-list, \"900\");\n$clr-deep-purple-a100: map-get($clr-deep-purple-list, \"a100\");\n$clr-deep-purple-a200: map-get($clr-deep-purple-list, \"a200\");\n$clr-deep-purple-a400: map-get($clr-deep-purple-list, \"a400\");\n$clr-deep-purple-a700: map-get($clr-deep-purple-list, \"a700\");\n\n\n//\n// Indigo\n//\n\n$clr-indigo-list: (\n \"base\": #3f51b5,\n \"50\": #e8eaf6,\n \"100\": #c5cae9,\n \"200\": #9fa8da,\n \"300\": #7986cb,\n \"400\": #5c6bc0,\n \"500\": #3f51b5,\n \"600\": #3949ab,\n \"700\": #303f9f,\n \"800\": #283593,\n \"900\": #1a237e,\n \"a100\": #8c9eff,\n \"a200\": #536dfe,\n \"a400\": #3d5afe,\n \"a700\": #304ffe\n);\n\n$clr-indigo: map-get($clr-indigo-list, \"base\");\n\n$clr-indigo-50: map-get($clr-indigo-list, \"50\");\n$clr-indigo-100: map-get($clr-indigo-list, \"100\");\n$clr-indigo-200: map-get($clr-indigo-list, \"200\");\n$clr-indigo-300: map-get($clr-indigo-list, \"300\");\n$clr-indigo-400: map-get($clr-indigo-list, \"400\");\n$clr-indigo-500: map-get($clr-indigo-list, \"500\");\n$clr-indigo-600: map-get($clr-indigo-list, \"600\");\n$clr-indigo-700: map-get($clr-indigo-list, \"700\");\n$clr-indigo-800: map-get($clr-indigo-list, \"800\");\n$clr-indigo-900: map-get($clr-indigo-list, \"900\");\n$clr-indigo-a100: map-get($clr-indigo-list, \"a100\");\n$clr-indigo-a200: map-get($clr-indigo-list, \"a200\");\n$clr-indigo-a400: map-get($clr-indigo-list, \"a400\");\n$clr-indigo-a700: map-get($clr-indigo-list, \"a700\");\n\n\n//\n// Blue\n//\n\n$clr-blue-list: (\n \"base\": #2196f3,\n \"50\": #e3f2fd,\n \"100\": #bbdefb,\n \"200\": #90caf9,\n \"300\": #64b5f6,\n \"400\": #42a5f5,\n \"500\": #2196f3,\n \"600\": #1e88e5,\n \"700\": #1976d2,\n \"800\": #1565c0,\n \"900\": #0d47a1,\n \"a100\": #82b1ff,\n \"a200\": #448aff,\n \"a400\": #2979ff,\n \"a700\": #2962ff\n);\n\n$clr-blue: map-get($clr-blue-list, \"base\");\n\n$clr-blue-50: map-get($clr-blue-list, \"50\");\n$clr-blue-100: map-get($clr-blue-list, \"100\");\n$clr-blue-200: map-get($clr-blue-list, \"200\");\n$clr-blue-300: map-get($clr-blue-list, \"300\");\n$clr-blue-400: map-get($clr-blue-list, \"400\");\n$clr-blue-500: map-get($clr-blue-list, \"500\");\n$clr-blue-600: map-get($clr-blue-list, \"600\");\n$clr-blue-700: map-get($clr-blue-list, \"700\");\n$clr-blue-800: map-get($clr-blue-list, \"800\");\n$clr-blue-900: map-get($clr-blue-list, \"900\");\n$clr-blue-a100: map-get($clr-blue-list, \"a100\");\n$clr-blue-a200: map-get($clr-blue-list, \"a200\");\n$clr-blue-a400: map-get($clr-blue-list, \"a400\");\n$clr-blue-a700: map-get($clr-blue-list, \"a700\");\n\n\n//\n// Light Blue\n//\n\n$clr-light-blue-list: (\n \"base\": #03a9f4,\n \"50\": #e1f5fe,\n \"100\": #b3e5fc,\n \"200\": #81d4fa,\n \"300\": #4fc3f7,\n \"400\": #29b6f6,\n \"500\": #03a9f4,\n \"600\": #039be5,\n \"700\": #0288d1,\n \"800\": #0277bd,\n \"900\": #01579b,\n \"a100\": #80d8ff,\n \"a200\": #40c4ff,\n \"a400\": #00b0ff,\n \"a700\": #0091ea\n);\n\n$clr-light-blue: map-get($clr-light-blue-list, \"base\");\n\n$clr-light-blue-50: map-get($clr-light-blue-list, \"50\");\n$clr-light-blue-100: map-get($clr-light-blue-list, \"100\");\n$clr-light-blue-200: map-get($clr-light-blue-list, \"200\");\n$clr-light-blue-300: map-get($clr-light-blue-list, \"300\");\n$clr-light-blue-400: map-get($clr-light-blue-list, \"400\");\n$clr-light-blue-500: map-get($clr-light-blue-list, \"500\");\n$clr-light-blue-600: map-get($clr-light-blue-list, \"600\");\n$clr-light-blue-700: map-get($clr-light-blue-list, \"700\");\n$clr-light-blue-800: map-get($clr-light-blue-list, \"800\");\n$clr-light-blue-900: map-get($clr-light-blue-list, \"900\");\n$clr-light-blue-a100: map-get($clr-light-blue-list, \"a100\");\n$clr-light-blue-a200: map-get($clr-light-blue-list, \"a200\");\n$clr-light-blue-a400: map-get($clr-light-blue-list, \"a400\");\n$clr-light-blue-a700: map-get($clr-light-blue-list, \"a700\");\n\n\n//\n// Cyan\n//\n\n$clr-cyan-list: (\n \"base\": #00bcd4,\n \"50\": #e0f7fa,\n \"100\": #b2ebf2,\n \"200\": #80deea,\n \"300\": #4dd0e1,\n \"400\": #26c6da,\n \"500\": #00bcd4,\n \"600\": #00acc1,\n \"700\": #0097a7,\n \"800\": #00838f,\n \"900\": #006064,\n \"a100\": #84ffff,\n \"a200\": #18ffff,\n \"a400\": #00e5ff,\n \"a700\": #00b8d4\n);\n\n$clr-cyan: map-get($clr-cyan-list, \"base\");\n\n$clr-cyan-50: map-get($clr-cyan-list, \"50\");\n$clr-cyan-100: map-get($clr-cyan-list, \"100\");\n$clr-cyan-200: map-get($clr-cyan-list, \"200\");\n$clr-cyan-300: map-get($clr-cyan-list, \"300\");\n$clr-cyan-400: map-get($clr-cyan-list, \"400\");\n$clr-cyan-500: map-get($clr-cyan-list, \"500\");\n$clr-cyan-600: map-get($clr-cyan-list, \"600\");\n$clr-cyan-700: map-get($clr-cyan-list, \"700\");\n$clr-cyan-800: map-get($clr-cyan-list, \"800\");\n$clr-cyan-900: map-get($clr-cyan-list, \"900\");\n$clr-cyan-a100: map-get($clr-cyan-list, \"a100\");\n$clr-cyan-a200: map-get($clr-cyan-list, \"a200\");\n$clr-cyan-a400: map-get($clr-cyan-list, \"a400\");\n$clr-cyan-a700: map-get($clr-cyan-list, \"a700\");\n\n\n//\n// Teal\n//\n\n$clr-teal-list: (\n \"base\": #009688,\n \"50\": #e0f2f1,\n \"100\": #b2dfdb,\n \"200\": #80cbc4,\n \"300\": #4db6ac,\n \"400\": #26a69a,\n \"500\": #009688,\n \"600\": #00897b,\n \"700\": #00796b,\n \"800\": #00695c,\n \"900\": #004d40,\n \"a100\": #a7ffeb,\n \"a200\": #64ffda,\n \"a400\": #1de9b6,\n \"a700\": #00bfa5\n);\n\n$clr-teal: map-get($clr-teal-list, \"base\");\n\n$clr-teal-50: map-get($clr-teal-list, \"50\");\n$clr-teal-100: map-get($clr-teal-list, \"100\");\n$clr-teal-200: map-get($clr-teal-list, \"200\");\n$clr-teal-300: map-get($clr-teal-list, \"300\");\n$clr-teal-400: map-get($clr-teal-list, \"400\");\n$clr-teal-500: map-get($clr-teal-list, \"500\");\n$clr-teal-600: map-get($clr-teal-list, \"600\");\n$clr-teal-700: map-get($clr-teal-list, \"700\");\n$clr-teal-800: map-get($clr-teal-list, \"800\");\n$clr-teal-900: map-get($clr-teal-list, \"900\");\n$clr-teal-a100: map-get($clr-teal-list, \"a100\");\n$clr-teal-a200: map-get($clr-teal-list, \"a200\");\n$clr-teal-a400: map-get($clr-teal-list, \"a400\");\n$clr-teal-a700: map-get($clr-teal-list, \"a700\");\n\n\n//\n// Green\n//\n\n$clr-green-list: (\n \"base\": #4caf50,\n \"50\": #e8f5e9,\n \"100\": #c8e6c9,\n \"200\": #a5d6a7,\n \"300\": #81c784,\n \"400\": #66bb6a,\n \"500\": #4caf50,\n \"600\": #43a047,\n \"700\": #388e3c,\n \"800\": #2e7d32,\n \"900\": #1b5e20,\n \"a100\": #b9f6ca,\n \"a200\": #69f0ae,\n \"a400\": #00e676,\n \"a700\": #00c853\n);\n\n$clr-green: map-get($clr-green-list, \"base\");\n\n$clr-green-50: map-get($clr-green-list, \"50\");\n$clr-green-100: map-get($clr-green-list, \"100\");\n$clr-green-200: map-get($clr-green-list, \"200\");\n$clr-green-300: map-get($clr-green-list, \"300\");\n$clr-green-400: map-get($clr-green-list, \"400\");\n$clr-green-500: map-get($clr-green-list, \"500\");\n$clr-green-600: map-get($clr-green-list, \"600\");\n$clr-green-700: map-get($clr-green-list, \"700\");\n$clr-green-800: map-get($clr-green-list, \"800\");\n$clr-green-900: map-get($clr-green-list, \"900\");\n$clr-green-a100: map-get($clr-green-list, \"a100\");\n$clr-green-a200: map-get($clr-green-list, \"a200\");\n$clr-green-a400: map-get($clr-green-list, \"a400\");\n$clr-green-a700: map-get($clr-green-list, \"a700\");\n\n\n//\n// Light green\n//\n\n$clr-light-green-list: (\n \"base\": #8bc34a,\n \"50\": #f1f8e9,\n \"100\": #dcedc8,\n \"200\": #c5e1a5,\n \"300\": #aed581,\n \"400\": #9ccc65,\n \"500\": #8bc34a,\n \"600\": #7cb342,\n \"700\": #689f38,\n \"800\": #558b2f,\n \"900\": #33691e,\n \"a100\": #ccff90,\n \"a200\": #b2ff59,\n \"a400\": #76ff03,\n \"a700\": #64dd17\n);\n\n$clr-light-green: map-get($clr-light-green-list, \"base\");\n\n$clr-light-green-50: map-get($clr-light-green-list, \"50\");\n$clr-light-green-100: map-get($clr-light-green-list, \"100\");\n$clr-light-green-200: map-get($clr-light-green-list, \"200\");\n$clr-light-green-300: map-get($clr-light-green-list, \"300\");\n$clr-light-green-400: map-get($clr-light-green-list, \"400\");\n$clr-light-green-500: map-get($clr-light-green-list, \"500\");\n$clr-light-green-600: map-get($clr-light-green-list, \"600\");\n$clr-light-green-700: map-get($clr-light-green-list, \"700\");\n$clr-light-green-800: map-get($clr-light-green-list, \"800\");\n$clr-light-green-900: map-get($clr-light-green-list, \"900\");\n$clr-light-green-a100: map-get($clr-light-green-list, \"a100\");\n$clr-light-green-a200: map-get($clr-light-green-list, \"a200\");\n$clr-light-green-a400: map-get($clr-light-green-list, \"a400\");\n$clr-light-green-a700: map-get($clr-light-green-list, \"a700\");\n\n\n//\n// Lime\n//\n\n$clr-lime-list: (\n \"base\": #cddc39,\n \"50\": #f9fbe7,\n \"100\": #f0f4c3,\n \"200\": #e6ee9c,\n \"300\": #dce775,\n \"400\": #d4e157,\n \"500\": #cddc39,\n \"600\": #c0ca33,\n \"700\": #afb42b,\n \"800\": #9e9d24,\n \"900\": #827717,\n \"a100\": #f4ff81,\n \"a200\": #eeff41,\n \"a400\": #c6ff00,\n \"a700\": #aeea00\n);\n\n$clr-lime: map-get($clr-lime-list, \"base\");\n\n$clr-lime-50: map-get($clr-lime-list, \"50\");\n$clr-lime-100: map-get($clr-lime-list, \"100\");\n$clr-lime-200: map-get($clr-lime-list, \"200\");\n$clr-lime-300: map-get($clr-lime-list, \"300\");\n$clr-lime-400: map-get($clr-lime-list, \"400\");\n$clr-lime-500: map-get($clr-lime-list, \"500\");\n$clr-lime-600: map-get($clr-lime-list, \"600\");\n$clr-lime-700: map-get($clr-lime-list, \"700\");\n$clr-lime-800: map-get($clr-lime-list, \"800\");\n$clr-lime-900: map-get($clr-lime-list, \"900\");\n$clr-lime-a100: map-get($clr-lime-list, \"a100\");\n$clr-lime-a200: map-get($clr-lime-list, \"a200\");\n$clr-lime-a400: map-get($clr-lime-list, \"a400\");\n$clr-lime-a700: map-get($clr-lime-list, \"a700\");\n\n\n//\n// Yellow\n//\n\n$clr-yellow-list: (\n \"base\": #ffeb3b,\n \"50\": #fffde7,\n \"100\": #fff9c4,\n \"200\": #fff59d,\n \"300\": #fff176,\n \"400\": #ffee58,\n \"500\": #ffeb3b,\n \"600\": #fdd835,\n \"700\": #fbc02d,\n \"800\": #f9a825,\n \"900\": #f57f17,\n \"a100\": #ffff8d,\n \"a200\": #ffff00,\n \"a400\": #ffea00,\n \"a700\": #ffd600\n);\n\n$clr-yellow: map-get($clr-yellow-list, \"base\");\n\n$clr-yellow-50: map-get($clr-yellow-list, \"50\");\n$clr-yellow-100: map-get($clr-yellow-list, \"100\");\n$clr-yellow-200: map-get($clr-yellow-list, \"200\");\n$clr-yellow-300: map-get($clr-yellow-list, \"300\");\n$clr-yellow-400: map-get($clr-yellow-list, \"400\");\n$clr-yellow-500: map-get($clr-yellow-list, \"500\");\n$clr-yellow-600: map-get($clr-yellow-list, \"600\");\n$clr-yellow-700: map-get($clr-yellow-list, \"700\");\n$clr-yellow-800: map-get($clr-yellow-list, \"800\");\n$clr-yellow-900: map-get($clr-yellow-list, \"900\");\n$clr-yellow-a100: map-get($clr-yellow-list, \"a100\");\n$clr-yellow-a200: map-get($clr-yellow-list, \"a200\");\n$clr-yellow-a400: map-get($clr-yellow-list, \"a400\");\n$clr-yellow-a700: map-get($clr-yellow-list, \"a700\");\n\n\n//\n// amber\n//\n\n$clr-amber-list: (\n \"base\": #ffc107,\n \"50\": #fff8e1,\n \"100\": #ffecb3,\n \"200\": #ffe082,\n \"300\": #ffd54f,\n \"400\": #ffca28,\n \"500\": #ffc107,\n \"600\": #ffb300,\n \"700\": #ffa000,\n \"800\": #ff8f00,\n \"900\": #ff6f00,\n \"a100\": #ffe57f,\n \"a200\": #ffd740,\n \"a400\": #ffc400,\n \"a700\": #ffab00\n);\n\n$clr-amber: map-get($clr-amber-list, \"base\");\n\n$clr-amber-50: map-get($clr-amber-list, \"50\");\n$clr-amber-100: map-get($clr-amber-list, \"100\");\n$clr-amber-200: map-get($clr-amber-list, \"200\");\n$clr-amber-300: map-get($clr-amber-list, \"300\");\n$clr-amber-400: map-get($clr-amber-list, \"400\");\n$clr-amber-500: map-get($clr-amber-list, \"500\");\n$clr-amber-600: map-get($clr-amber-list, \"600\");\n$clr-amber-700: map-get($clr-amber-list, \"700\");\n$clr-amber-800: map-get($clr-amber-list, \"800\");\n$clr-amber-900: map-get($clr-amber-list, \"900\");\n$clr-amber-a100: map-get($clr-amber-list, \"a100\");\n$clr-amber-a200: map-get($clr-amber-list, \"a200\");\n$clr-amber-a400: map-get($clr-amber-list, \"a400\");\n$clr-amber-a700: map-get($clr-amber-list, \"a700\");\n\n\n//\n// Orange\n//\n\n$clr-orange-list: (\n \"base\": #ff9800,\n \"50\": #fff3e0,\n \"100\": #ffe0b2,\n \"200\": #ffcc80,\n \"300\": #ffb74d,\n \"400\": #ffa726,\n \"500\": #ff9800,\n \"600\": #fb8c00,\n \"700\": #f57c00,\n \"800\": #ef6c00,\n \"900\": #e65100,\n \"a100\": #ffd180,\n \"a200\": #ffab40,\n \"a400\": #ff9100,\n \"a700\": #ff6d00\n);\n\n$clr-orange: map-get($clr-orange-list, \"base\");\n\n$clr-orange-50: map-get($clr-orange-list, \"50\");\n$clr-orange-100: map-get($clr-orange-list, \"100\");\n$clr-orange-200: map-get($clr-orange-list, \"200\");\n$clr-orange-300: map-get($clr-orange-list, \"300\");\n$clr-orange-400: map-get($clr-orange-list, \"400\");\n$clr-orange-500: map-get($clr-orange-list, \"500\");\n$clr-orange-600: map-get($clr-orange-list, \"600\");\n$clr-orange-700: map-get($clr-orange-list, \"700\");\n$clr-orange-800: map-get($clr-orange-list, \"800\");\n$clr-orange-900: map-get($clr-orange-list, \"900\");\n$clr-orange-a100: map-get($clr-orange-list, \"a100\");\n$clr-orange-a200: map-get($clr-orange-list, \"a200\");\n$clr-orange-a400: map-get($clr-orange-list, \"a400\");\n$clr-orange-a700: map-get($clr-orange-list, \"a700\");\n\n\n//\n// Deep orange\n//\n\n$clr-deep-orange-list: (\n \"base\": #ff5722,\n \"50\": #fbe9e7,\n \"100\": #ffccbc,\n \"200\": #ffab91,\n \"300\": #ff8a65,\n \"400\": #ff7043,\n \"500\": #ff5722,\n \"600\": #f4511e,\n \"700\": #e64a19,\n \"800\": #d84315,\n \"900\": #bf360c,\n \"a100\": #ff9e80,\n \"a200\": #ff6e40,\n \"a400\": #ff3d00,\n \"a700\": #dd2c00\n);\n\n$clr-deep-orange: map-get($clr-deep-orange-list, \"base\");\n\n$clr-deep-orange-50: map-get($clr-deep-orange-list, \"50\");\n$clr-deep-orange-100: map-get($clr-deep-orange-list, \"100\");\n$clr-deep-orange-200: map-get($clr-deep-orange-list, \"200\");\n$clr-deep-orange-300: map-get($clr-deep-orange-list, \"300\");\n$clr-deep-orange-400: map-get($clr-deep-orange-list, \"400\");\n$clr-deep-orange-500: map-get($clr-deep-orange-list, \"500\");\n$clr-deep-orange-600: map-get($clr-deep-orange-list, \"600\");\n$clr-deep-orange-700: map-get($clr-deep-orange-list, \"700\");\n$clr-deep-orange-800: map-get($clr-deep-orange-list, \"800\");\n$clr-deep-orange-900: map-get($clr-deep-orange-list, \"900\");\n$clr-deep-orange-a100: map-get($clr-deep-orange-list, \"a100\");\n$clr-deep-orange-a200: map-get($clr-deep-orange-list, \"a200\");\n$clr-deep-orange-a400: map-get($clr-deep-orange-list, \"a400\");\n$clr-deep-orange-a700: map-get($clr-deep-orange-list, \"a700\");\n\n\n//\n// Brown\n//\n\n$clr-brown-list: (\n \"base\": #795548,\n \"50\": #efebe9,\n \"100\": #d7ccc8,\n \"200\": #bcaaa4,\n \"300\": #a1887f,\n \"400\": #8d6e63,\n \"500\": #795548,\n \"600\": #6d4c41,\n \"700\": #5d4037,\n \"800\": #4e342e,\n \"900\": #3e2723,\n);\n\n$clr-brown: map-get($clr-brown-list, \"base\");\n\n$clr-brown-50: map-get($clr-brown-list, \"50\");\n$clr-brown-100: map-get($clr-brown-list, \"100\");\n$clr-brown-200: map-get($clr-brown-list, \"200\");\n$clr-brown-300: map-get($clr-brown-list, \"300\");\n$clr-brown-400: map-get($clr-brown-list, \"400\");\n$clr-brown-500: map-get($clr-brown-list, \"500\");\n$clr-brown-600: map-get($clr-brown-list, \"600\");\n$clr-brown-700: map-get($clr-brown-list, \"700\");\n$clr-brown-800: map-get($clr-brown-list, \"800\");\n$clr-brown-900: map-get($clr-brown-list, \"900\");\n\n\n//\n// Grey\n//\n\n$clr-grey-list: (\n \"base\": #9e9e9e,\n \"50\": #fafafa,\n \"100\": #f5f5f5,\n \"200\": #eeeeee,\n \"300\": #e0e0e0,\n \"400\": #bdbdbd,\n \"500\": #9e9e9e,\n \"600\": #757575,\n \"700\": #616161,\n \"800\": #424242,\n \"900\": #212121,\n);\n\n$clr-grey: map-get($clr-grey-list, \"base\");\n\n$clr-grey-50: map-get($clr-grey-list, \"50\");\n$clr-grey-100: map-get($clr-grey-list, \"100\");\n$clr-grey-200: map-get($clr-grey-list, \"200\");\n$clr-grey-300: map-get($clr-grey-list, \"300\");\n$clr-grey-400: map-get($clr-grey-list, \"400\");\n$clr-grey-500: map-get($clr-grey-list, \"500\");\n$clr-grey-600: map-get($clr-grey-list, \"600\");\n$clr-grey-700: map-get($clr-grey-list, \"700\");\n$clr-grey-800: map-get($clr-grey-list, \"800\");\n$clr-grey-900: map-get($clr-grey-list, \"900\");\n\n\n//\n// Blue grey\n//\n\n$clr-blue-grey-list: (\n \"base\": #607d8b,\n \"50\": #eceff1,\n \"100\": #cfd8dc,\n \"200\": #b0bec5,\n \"300\": #90a4ae,\n \"400\": #78909c,\n \"500\": #607d8b,\n \"600\": #546e7a,\n \"700\": #455a64,\n \"800\": #37474f,\n \"900\": #263238,\n);\n\n$clr-blue-grey: map-get($clr-blue-grey-list, \"base\");\n\n$clr-blue-grey-50: map-get($clr-blue-grey-list, \"50\");\n$clr-blue-grey-100: map-get($clr-blue-grey-list, \"100\");\n$clr-blue-grey-200: map-get($clr-blue-grey-list, \"200\");\n$clr-blue-grey-300: map-get($clr-blue-grey-list, \"300\");\n$clr-blue-grey-400: map-get($clr-blue-grey-list, \"400\");\n$clr-blue-grey-500: map-get($clr-blue-grey-list, \"500\");\n$clr-blue-grey-600: map-get($clr-blue-grey-list, \"600\");\n$clr-blue-grey-700: map-get($clr-blue-grey-list, \"700\");\n$clr-blue-grey-800: map-get($clr-blue-grey-list, \"800\");\n$clr-blue-grey-900: map-get($clr-blue-grey-list, \"900\");\n\n\n//\n// Black\n//\n\n$clr-black-list: (\n \"base\": #000\n);\n\n$clr-black: map-get($clr-black-list, \"base\");\n\n\n//\n// White\n//\n\n$clr-white-list: (\n \"base\": #fff\n);\n\n$clr-white: map-get($clr-white-list, \"base\");\n\n\n//\n// List for all Colors for looping\n//\n\n$clr-list-all: (\n \"red\": $clr-red-list,\n \"pink\": $clr-pink-list,\n \"purple\": $clr-purple-list,\n \"deep-purple\": $clr-deep-purple-list,\n \"indigo\": $clr-indigo-list,\n \"blue\": $clr-blue-list,\n \"light-blue\": $clr-light-blue-list,\n \"cyan\": $clr-cyan-list,\n \"teal\": $clr-teal-list,\n \"green\": $clr-green-list,\n \"light-green\": $clr-light-green-list,\n \"lime\": $clr-lime-list,\n \"yellow\": $clr-yellow-list,\n \"amber\": $clr-amber-list,\n \"orange\": $clr-orange-list,\n \"deep-orange\": $clr-deep-orange-list,\n \"brown\": $clr-brown-list,\n \"grey\": $clr-grey-list,\n \"blue-grey\": $clr-blue-grey-list,\n \"black\": $clr-black-list,\n \"white\": $clr-white-list\n);\n\n\n//\n// Typography\n//\n\n$clr-ui-display-4: $clr-grey-600;\n$clr-ui-display-3: $clr-grey-600;\n$clr-ui-display-2: $clr-grey-600;\n$clr-ui-display-1: $clr-grey-600;\n$clr-ui-headline: $clr-grey-900;\n$clr-ui-title: $clr-grey-900;\n$clr-ui-subhead-1: $clr-grey-900;\n$clr-ui-body-2: $clr-grey-900;\n$clr-ui-body-1: $clr-grey-900;\n$clr-ui-caption: $clr-grey-600;\n$clr-ui-menu: $clr-grey-900;\n$clr-ui-button: $clr-grey-900;\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Variables\n// ----------------------------------------------------------------------------\n\n// Operators\n$codehilite-operator: inherit;\n$codehilite-operator-word: inherit;\n\n// Generics\n$codehilite-generic-emph: #000000;\n$codehilite-generic-error: #AA0000;\n$codehilite-generic-heading: #999999;\n$codehilite-generic-output: #888888;\n$codehilite-generic-prompt: #555555;\n$codehilite-generic-strong: inherit;\n$codehilite-generic-subheading: #AAAAAA;\n$codehilite-generic-traceback: #AA0000;\n\n// Diffs\n$codehilite-diff-deleted: #FFDDDD;\n$codehilite-diff-inserted: #DDFFDD;\n\n// Keywords\n$codehilite-keyword: #3B78E7;\n$codehilite-keyword-constant: #A71D5D;\n$codehilite-keyword-declaration: #3B78E7;\n$codehilite-keyword-namespace: #3B78E7;\n$codehilite-keyword-pseudo: #A71D5D;\n$codehilite-keyword-reserved: #3E61A2;\n$codehilite-keyword-type: #3E61A2;\n\n// Comments\n$codehilite-comment: #999999;\n$codehilite-comment-multiline: #999999;\n$codehilite-comment-preproc: #666666;\n$codehilite-comment-single: #999999;\n$codehilite-comment-shebang: #999999;\n$codehilite-comment-special: #999999;\n\n// Names\n$codehilite-name-attribute: #C2185B;\n$codehilite-name-builtin: #C2185B;\n$codehilite-name-builtin-pseudo: #3E61A2;\n$codehilite-name-class: #C2185B;\n$codehilite-name-constant: #3E61A2;\n$codehilite-name-decorator: #666666;\n$codehilite-name-entity: #666666;\n$codehilite-name-exception: #C2185B;\n$codehilite-name-function: #C2185B;\n$codehilite-name-label: #3B5179;\n$codehilite-name-namespace: #EC407A;\n$codehilite-name-tag: #3B78E7;\n$codehilite-name-variable: #3E61A2;\n$codehilite-name-variable-class: #3E61A2;\n$codehilite-name-variable-instance: #3E61A2;\n$codehilite-name-variable-global: #3E61A2;\n$codehilite-name-extension: #EC407A;\n\n// Numbers\n$codehilite-literal-number: #E74C3C;\n$codehilite-literal-number-float: #E74C3C;\n$codehilite-literal-number-hex: #E74C3C;\n$codehilite-literal-number-integer: #E74C3C;\n$codehilite-literal-number-integer-long: #E74C3C;\n$codehilite-literal-number-oct: #E74C3C;\n\n// Strings\n$codehilite-literal-string: #0D904F;\n$codehilite-literal-string-backticks: #0D904F;\n$codehilite-literal-string-char: #0D904F;\n$codehilite-literal-string-doc: #999999;\n$codehilite-literal-string-double: #0D904F;\n$codehilite-literal-string-escape: #183691;\n$codehilite-literal-string-heredoc: #183691;\n$codehilite-literal-string-interpol: #183691;\n$codehilite-literal-string-other: #183691;\n$codehilite-literal-string-regex: #009926;\n$codehilite-literal-string-single: #0D904F;\n$codehilite-literal-string-symbol: #0D904F;\n\n// Miscellaneous\n$codehilite-error: #A61717;\n$codehilite-whitespace: transparent;\n\n// ----------------------------------------------------------------------------\n// Rules: syntax highlighting\n// ----------------------------------------------------------------------------\n\n// Codehilite extension\n.codehilite {\n\n // Operators\n .o { color: $codehilite-operator; }\n .ow { color: $codehilite-operator-word; }\n\n // Generics\n .ge { color: $codehilite-generic-emph; }\n .gr { color: $codehilite-generic-error; }\n .gh { color: $codehilite-generic-heading; }\n .go { color: $codehilite-generic-output; }\n .gp { color: $codehilite-generic-prompt; }\n .gs { color: $codehilite-generic-strong; }\n .gu { color: $codehilite-generic-subheading; }\n .gt { color: $codehilite-generic-traceback; }\n\n // Diffs\n .gd { background-color: $codehilite-diff-deleted; }\n .gi { background-color: $codehilite-diff-inserted; }\n\n // Keywords\n .k { color: $codehilite-keyword; }\n .kc { color: $codehilite-keyword-constant; }\n .kd { color: $codehilite-keyword-declaration; }\n .kn { color: $codehilite-keyword-namespace; }\n .kp { color: $codehilite-keyword-pseudo; }\n .kr { color: $codehilite-keyword-reserved; }\n .kt { color: $codehilite-keyword-type; }\n\n // Comments\n .c { color: $codehilite-comment; }\n .cm { color: $codehilite-comment-multiline; }\n .cp { color: $codehilite-comment-preproc; }\n .c1 { color: $codehilite-comment-single; }\n .ch { color: $codehilite-comment-shebang; }\n .cs { color: $codehilite-comment-special; }\n\n // Names\n .na { color: $codehilite-name-attribute; }\n .nb { color: $codehilite-name-builtin; }\n .bp { color: $codehilite-name-builtin-pseudo; }\n .nc { color: $codehilite-name-class; }\n .no { color: $codehilite-name-constant; }\n .nd { color: $codehilite-name-entity; }\n .ni { color: $codehilite-name-entity; }\n .ne { color: $codehilite-name-exception; }\n .nf { color: $codehilite-name-function; }\n .nl { color: $codehilite-name-label; }\n .nn { color: $codehilite-name-namespace; }\n .nt { color: $codehilite-name-tag; }\n .nv { color: $codehilite-name-variable; }\n .vc { color: $codehilite-name-variable-class; }\n .vg { color: $codehilite-name-variable-global; }\n .vi { color: $codehilite-name-variable-instance; }\n .nx { color: $codehilite-name-extension; }\n\n // Numbers\n .m { color: $codehilite-literal-number; }\n .mf { color: $codehilite-literal-number-float; }\n .mh { color: $codehilite-literal-number-hex; }\n .mi { color: $codehilite-literal-number-integer; }\n .il { color: $codehilite-literal-number-integer-long; }\n .mo { color: $codehilite-literal-number-oct; }\n\n // Strings\n .s { color: $codehilite-literal-string; }\n .sb { color: $codehilite-literal-string-backticks; }\n .sc { color: $codehilite-literal-string-char; }\n .sd { color: $codehilite-literal-string-doc; }\n .s2 { color: $codehilite-literal-string-double; }\n .se { color: $codehilite-literal-string-escape; }\n .sh { color: $codehilite-literal-string-heredoc; }\n .si { color: $codehilite-literal-string-interpol; }\n .sx { color: $codehilite-literal-string-other; }\n .sr { color: $codehilite-literal-string-regex; }\n .s1 { color: $codehilite-literal-string-single; }\n .ss { color: $codehilite-literal-string-symbol; }\n\n // Miscellaneous\n .err { color: $codehilite-error; }\n .w { color: $codehilite-whitespace; }\n\n // Highlighted lines\n .hll {\n display: block;\n margin: 0 px2em(-16px, 13.6px);\n padding: 0 px2em(16px, 13.6px);\n background-color: transparentize($clr-yellow-500, 0.5);\n }\n}\n\n// ----------------------------------------------------------------------------\n// Rules: layout\n// ----------------------------------------------------------------------------\n\n// Block with line numbers\n.codehilitetable {\n display: block;\n overflow: hidden;\n\n // Set table elements to block layout, because otherwise the whole flexbox\n // hacking won't work correctly\n tbody,\n td {\n display: block;\n padding: 0;\n }\n\n // We need to use flexbox layout, because otherwise it's not possible to\n // make the code container scroll while keeping the line numbers static\n tr {\n display: flex;\n }\n\n // The pre tags are nested inside a table, so we need to remove the\n // margin because it collapses below all the overflows\n pre {\n margin: 0;\n }\n\n // Disable user selection, so code can be easily copied without\n // accidentally also copying the line numbers\n .linenos {\n padding: px2rem(10.5px) px2em(16px, 13.6px);\n padding-right: 0;\n font-size: px2em(13.6px);\n background-color: var(--md-code-bg-color);\n user-select: none;\n }\n\n // Add spacing to line number container\n .linenodiv {\n padding-right: px2em(8px, 13.6px);\n box-shadow: inset px2rem(-1px) 0 var(--md-default-fg-color--lightest);\n\n // Reset spacings\n pre {\n color: var(--md-default-fg-color--lighter);\n text-align: right;\n }\n }\n\n // The table cell containing the code container wrapper and code should\n // stretch horizontally to the remaining space\n .code {\n flex: 1;\n overflow: hidden;\n }\n}\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // Block with line numbers\n .codehilitetable {\n margin: 1em 0;\n direction: ltr;\n border-radius: px2rem(2px);\n\n // Remove rounded borders\n code {\n border-radius: 0;\n }\n }\n\n // [mobile -]: Stretch to whole width\n @include break-to-device(mobile) {\n\n // Full-width container\n > .codehilite {\n margin: 1em px2rem(-16px);\n\n // Stretch highlighted lines\n .hll {\n margin: 0 px2rem(-16px);\n padding: 0 px2rem(16px);\n }\n\n // Remove rounded borders\n code {\n border-radius: 0;\n }\n }\n\n // Full-width container on top-level\n > .codehilitetable {\n margin: 1em px2rem(-16px);\n border-radius: 0;\n\n // Stretch highlighted lines\n .hll {\n margin: 0 px2rem(-16px);\n padding: 0 px2rem(16px);\n }\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Icon definitions\n:root {\n --md-footnotes-icon: svg-load(\"@mdi/svg/svg/keyboard-return.svg\");\n}\n\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // All footnote references\n [id^=\"fnref:\"] {\n display: inline-block;\n\n // Targeted anchor\n &:target {\n margin-top: -1 * px2rem(48px + 12px + 16px);\n padding-top: px2rem(48px + 12px + 16px);\n pointer-events: none;\n }\n }\n\n // All footnote back references\n [id^=\"fn:\"] {\n\n // Add spacing to anchor for offset\n &::before {\n display: none;\n height: 0;\n content: \"\";\n }\n\n // Targeted anchor\n &:target::before {\n display: block;\n margin-top: -1 * px2rem(48px + 12px + 10px);\n padding-top: px2rem(48px + 12px + 10px);\n pointer-events: none;\n }\n }\n\n // Footnotes extension\n .footnote {\n color: var(--md-default-fg-color--light);\n font-size: ms(-1);\n\n // Remove additional spacing on footnotes\n ol {\n margin-left: 0;\n }\n\n // Footnote\n li {\n transition: color 125ms;\n\n // Darken color for targeted footnote\n &:target {\n color: var(--md-default-fg-color);\n }\n\n // Remove spacing on first element\n :first-child {\n margin-top: 0;\n }\n\n // Make back references visible on container hover\n &:hover .footnote-backref,\n &:target .footnote-backref {\n transform: translateX(0);\n opacity: 1;\n }\n\n // Hovered back reference\n &:hover .footnote-backref:hover {\n color: var(--md-accent-fg-color);\n }\n }\n }\n\n // Footnote reference\n .footnote-ref {\n display: inline-block;\n pointer-events: initial;\n }\n\n // Footnote back reference\n .footnote-backref {\n display: inline-block;\n color: var(--md-primary-fg-color);\n // Hack: remove Unicode arrow for icon\n font-size: 0;\n vertical-align: text-bottom;\n transform: translateX(px2rem(5px));\n opacity: 0;\n transition:\n color 250ms,\n transform 250ms 250ms,\n opacity 125ms 250ms;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n transform: translateX(px2rem(-5px));\n }\n\n // Back reference icon\n &::before {\n display: inline-block;\n width: px2rem(16px);\n height: px2rem(16px);\n background-color: currentColor;\n mask-image: var(--md-footnotes-icon);\n content: \"\";\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n\n // Flip icon vertically\n svg {\n transform: scaleX(-1)\n }\n }\n }\n\n // Always show for print\n @media print {\n color: var(--md-primary-fg-color);\n transform: translateX(0);\n opacity: 1;\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // Permalinks extension\n .headerlink {\n display: inline-block;\n margin-left: px2rem(10px);\n // Hack: if we don't set visibility hidden, the text content of the node\n // will include the headerlink character, which is why Google indexes them.\n visibility: hidden;\n opacity: 0;\n transition:\n color 250ms,\n visibility 0ms 500ms,\n opacity 125ms;\n\n // Adjust for RTL languages\n [dir=\"rtl\"] & {\n margin-right: px2rem(10px);\n margin-left: initial;\n }\n\n // Higher specificity for color due to palettes integration\n html body & {\n color: var(--md-default-fg-color--lighter);\n }\n\n // Hide for print\n @media print {\n display: none;\n }\n }\n\n // Make permalink visible on hover\n :hover > .headerlink,\n :target > .headerlink,\n .headerlink:focus {\n visibility: visible;\n opacity: 1;\n transition:\n color 250ms,\n visibility 0ms,\n opacity 125ms;\n }\n\n // Active or targeted permalink\n :target > .headerlink,\n .headerlink:focus,\n .headerlink:hover {\n color: var(--md-accent-fg-color);\n }\n\n // Correct anchor offset for link blurring\n @each $level, $delta in (\n h1 h2 h3: 8px,\n h4: 9px,\n h5 h6: 12px,\n ) {\n %#{nth($level, 1)} {\n\n // Un-targeted anchor\n &::before {\n display: block;\n margin-top: -1 * px2rem($delta);\n padding-top: px2rem($delta);\n content: \"\";\n }\n\n // Targeted anchor (48px from header, 12px from sidebar offset)\n &:target::before {\n margin-top: -1 * px2rem(48px + 12px + $delta);\n padding-top: px2rem(48px + 12px + $delta);\n }\n }\n\n // Define levels\n @for $n from 1 through length($level) {\n #{nth($level, $n)}[id] {\n @extend %#{nth($level, 1)};\n }\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// stylelint-disable selector-class-pattern\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // MathJax integration - add padding to omit vertical scrollbar\n .MJXc-display {\n margin: 0.75em 0;\n padding: 0.75em 0;\n overflow: auto;\n touch-action: auto;\n }\n\n // Stretch top-level containers\n > p > .MJXc-display {\n\n // [mobile -]: Stretch to whole width\n @include break-to-device(mobile) {\n margin: 0.75em px2rem(-16px);\n padding: 0.25em px2rem(16px);\n }\n }\n\n // Remove outline on tab index\n .MathJax_CHTML {\n outline: 0;\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // Deletions, additions and comments\n del.critic,\n ins.critic,\n .critic.comment {\n padding: 0 px2em(4px, 16px);\n border-radius: px2rem(2px);\n box-decoration-break: clone;\n }\n\n // Deletion\n del.critic {\n background-color: $codehilite-diff-deleted;\n }\n\n // Addition\n ins.critic {\n background-color: $codehilite-diff-inserted;\n }\n\n // Comment\n .critic.comment {\n color: $codehilite-comment;\n\n // Comment opening mark\n &::before {\n content: \"/* \";\n }\n\n // Comment closing mark\n &::after {\n content: \" */\";\n }\n }\n\n // Block\n .critic.block {\n display: block;\n margin: 1em 0;\n padding-right: px2rem(16px);\n padding-left: px2rem(16px);\n overflow: auto;\n box-shadow: none;\n\n // Decrease spacing on first element\n :first-child {\n margin-top: 0.5em;\n }\n\n // Decrease spacing on last element\n :last-child {\n margin-bottom: 0.5em;\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Icon definitions\n:root {\n --md-details-icon: svg-load(\"@mdi/svg/svg/chevron-right.svg\");\n}\n\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // Details extension\n details {\n @extend .admonition;\n\n display: block;\n padding-top: 0;\n overflow: visible;\n\n\n // Rotate title icon\n &[open] > summary::after {\n transform: rotate(90deg);\n }\n\n // Remove bottom spacing for closed details\n &:not([open]) {\n padding-bottom: 0;\n\n // We cannot set overflow: hidden, as the outline would not be visible,\n // so we need to correct the border radius\n > summary {\n border-bottom-right-radius: px2rem(2px);\n }\n }\n\n // Hack: omit margin collapse\n &::after {\n display: table;\n content: \"\";\n }\n }\n\n // Details title\n summary {\n @extend .admonition-title;\n\n display: block;\n min-height: px2rem(20px);\n padding: px2rem(8px) px2rem(36px) px2rem(8px) px2rem(40px);\n border-top-right-radius: px2rem(2px);\n cursor: pointer;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding: px2rem(8px) px2rem(40px) px2rem(8px) px2rem(36px);\n }\n\n // Remove default details marker\n &::-webkit-details-marker {\n display: none;\n }\n\n // Details marker\n &::after {\n position: absolute;\n top: px2rem(8px);\n right: px2rem(8px);\n width: px2rem(20px);\n height: px2rem(20px);\n background-color: currentColor;\n mask-image: var(--md-details-icon);\n transform: rotate(0deg);\n transition: transform 250ms;\n content: \"\";\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: initial;\n left: px2rem(8px);\n transform: rotate(180deg);\n }\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // Emojis\n img.emojione,\n img.twemoji,\n img.gemoji {\n width: px2em(18px);\n vertical-align: -15%;\n }\n\n // Inlined SVG icons via mkdocs-material-extensions\n span.twemoji {\n display: inline-block;\n height: px2em(18px);\n vertical-align: text-top;\n\n // Icon\n svg {\n width: px2em(18px);\n fill: currentColor;\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// When pymdownx.superfences is enabled but codehilite is disabled,\n// pymdownx.highlight will be used. When this happens, the outer container\n// and tables get this class names by default\n.highlight {\n @extend .codehilite;\n\n // Inline line numbers\n [data-linenos]::before {\n position: sticky;\n left: px2em(-16px, 13.6px);\n float: left;\n margin-right: px2em(16px, 13.6px);\n margin-left: px2em(-16px, 13.6px);\n padding-left: px2em(16px, 13.6px);\n color: var(--md-default-fg-color--lighter);\n background-color: var(--md-code-bg-color);\n box-shadow: inset px2rem(-1px) 0 var(--md-default-fg-color--lightest);\n content: attr(data-linenos);\n user-select: none;\n }\n}\n\n// Same as above, but for code blocks with line numbers enabled\n.highlighttable {\n @extend .codehilitetable;\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // Tabbed block content\n .tabbed-content {\n display: none;\n order: 99;\n width: 100%;\n box-shadow: 0 px2rem(-1px) var(--md-default-fg-color--lightest);\n\n // Mirror old superfences behavior, if there's only a single code block.\n > .codehilite:only-child pre,\n > .codehilitetable:only-child,\n > .highlight:only-child pre,\n > .highlighttable:only-child {\n margin: 0;\n\n // Remove rounded borders at the top\n > code {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n }\n\n // Nested tabs\n > .tabbed-set {\n margin: 0;\n }\n }\n\n // Tabbed block container\n .tabbed-set {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n margin: 1em 0;\n border-radius: px2rem(2px);\n\n // Hide radio buttons\n > input {\n display: none;\n\n // Active tab label\n &:checked + label {\n color: var(--md-accent-fg-color);\n border-color: var(--md-accent-fg-color);\n\n // Show tabbed block content\n & + .tabbed-content {\n display: block;\n }\n }\n }\n\n // Tab label\n > label {\n z-index: 1;\n width: auto;\n padding: px2rem(12px) 1.25em px2rem(10px);\n color: var(--md-default-fg-color--light);\n font-weight: 700;\n font-size: ms(-1);\n border-bottom: px2rem(2px) solid transparent;\n cursor: pointer;\n transition: color 125ms;\n\n // Hovered tab label\n html &:hover {\n color: var(--md-accent-fg-color);\n }\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Icon definitions\n:root {\n --md-tasklist-icon: svg-load(\"@mdi/svg/svg/checkbox-blank-circle.svg\");\n --md-tasklist-icon--checked: svg-load(\"@mdi/svg/svg/check-circle.svg\");\n}\n\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // Remove list icon on task items\n .task-list-item {\n position: relative;\n list-style-type: none;\n\n // Make checkbox items align with normal list items, but position\n // everything in ems for correct layout at smaller font sizes\n [type=\"checkbox\"] {\n position: absolute;\n top: 0.45em;\n left: -2em;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: -2em;\n left: initial;\n }\n }\n }\n\n // Wrapper for list controls, in case custom checkboxes are enabled\n .task-list-control {\n\n // Checkbox icon in unchecked state\n .task-list-indicator::before {\n position: absolute;\n top: 0.15em;\n left: px2em(-24px);\n width: px2em(20px);\n height: px2em(20px);\n background-color: var(--md-default-fg-color--lightest);\n mask-image: var(--md-tasklist-icon);\n content: \"\";\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: px2em(-24px);\n left: initial;\n }\n }\n\n // Checkbox icon in checked state\n [type=\"checkbox\"]:checked + .task-list-indicator::before {\n background-color: $clr-green-a400;\n mask-image: var(--md-tasklist-icon--checked);\n }\n\n // Hide original checkbox behind icon\n [type=\"checkbox\"] {\n z-index: -1;\n opacity: 0;\n }\n }\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/assets/stylesheets/main.cd566b2a.min.css b/docs/assets/stylesheets/main.cd566b2a.min.css new file mode 100644 index 00000000..b4e201ac --- /dev/null +++ b/docs/assets/stylesheets/main.cd566b2a.min.css @@ -0,0 +1,15 @@ +@charset "UTF-8";html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none;box-sizing:border-box}*,:after,:before{box-sizing:inherit}@media (prefers-reduced-motion){*,:after,:before{transition:none!important}}body{margin:0}a,button,input,label{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}hr{border:0;box-sizing:content-box;display:block;height:.05rem;overflow:visible;padding:0}small{font-size:80%}sub,sup{line-height:1em}img{border-style:none}table{border-collapse:separate;border-spacing:0}td,th{font-weight:400;vertical-align:top}button{background:transparent;border:0;font-family:inherit;font-size:inherit;margin:0;padding:0}input{border:0;outline:none}:root{--md-default-fg-color:rgba(0,0,0,.87);--md-default-fg-color--light:rgba(0,0,0,.54);--md-default-fg-color--lighter:rgba(0,0,0,.32);--md-default-fg-color--lightest:rgba(0,0,0,.07);--md-default-bg-color:#fff;--md-default-bg-color--light:hsla(0,0%,100%,.7);--md-default-bg-color--lighter:hsla(0,0%,100%,.3);--md-default-bg-color--lightest:hsla(0,0%,100%,.12);--md-primary-fg-color:#4051b5;--md-primary-fg-color--light:#5d6cc0;--md-primary-fg-color--dark:#303fa1;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7);--md-accent-fg-color:#526cfe;--md-accent-fg-color--transparent:rgba(82,108,254,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7);--md-shadow-z1:0 0.2rem 0.5rem rgba(0,0,0,.05),0 0 0.05rem rgba(0,0,0,.1);--md-shadow-z2:0 0.2rem 0.5rem rgba(0,0,0,.1),0 0 0.05rem rgba(0,0,0,.25);--md-shadow-z3:0 0.2rem 0.5rem rgba(0,0,0,.2),0 0 0.05rem rgba(0,0,0,.35)}:root>*{--md-code-fg-color:#36464e;--md-code-bg-color:#f5f5f5;--md-code-hl-color:rgba(255,255,0,.5);--md-code-hl-number-color:#d52a2a;--md-code-hl-special-color:#db1457;--md-code-hl-function-color:#a846b9;--md-code-hl-constant-color:#6e59d9;--md-code-hl-keyword-color:#3f6ec6;--md-code-hl-string-color:#1c7d4d;--md-code-hl-name-color:var(--md-code-fg-color);--md-code-hl-operator-color:var(--md-default-fg-color--light);--md-code-hl-punctuation-color:var(--md-default-fg-color--light);--md-code-hl-comment-color:var(--md-default-fg-color--light);--md-code-hl-generic-color:var(--md-default-fg-color--light);--md-code-hl-variable-color:var(--md-default-fg-color--light);--md-typeset-color:var(--md-default-fg-color);--md-typeset-a-color:var(--md-primary-fg-color);--md-typeset-mark-color:rgba(255,255,0,.5);--md-typeset-del-color:rgba(245,80,61,.15);--md-typeset-ins-color:rgba(11,213,112,.15);--md-typeset-kbd-color:#fafafa;--md-typeset-kbd-accent-color:#fff;--md-typeset-kbd-border-color:#b8b8b8;--md-typeset-table-color:rgba(0,0,0,.12);--md-admonition-fg-color:var(--md-default-fg-color);--md-admonition-bg-color:var(--md-default-bg-color);--md-footer-fg-color:#fff;--md-footer-fg-color--light:hsla(0,0%,100%,.7);--md-footer-fg-color--lighter:hsla(0,0%,100%,.3);--md-footer-bg-color:rgba(0,0,0,.87);--md-footer-bg-color--dark:rgba(0,0,0,.32)}.md-icon svg{fill:currentColor;display:block;height:1.2rem;width:1.2rem}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--md-text-font-family:var(--md-text-font,_),-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;--md-code-font-family:var(--md-code-font,_),SFMono-Regular,Consolas,Menlo,monospace}body,input{font-feature-settings:"kern","liga";font-family:var(--md-text-font-family)}body,code,input,kbd,pre{color:var(--md-typeset-color)}code,kbd,pre{font-feature-settings:"kern";font-family:var(--md-code-font-family)}:root{--md-typeset-table-sort-icon:url('data:image/svg+xml;charset=utf-8,');--md-typeset-table-sort-icon--asc:url('data:image/svg+xml;charset=utf-8,');--md-typeset-table-sort-icon--desc:url('data:image/svg+xml;charset=utf-8,')}.md-typeset{-webkit-print-color-adjust:exact;color-adjust:exact;font-size:.8rem;line-height:1.6}@media print{.md-typeset{font-size:.68rem}}.md-typeset blockquote,.md-typeset dl,.md-typeset figure,.md-typeset ol,.md-typeset pre,.md-typeset ul{margin-bottom:1em;margin-top:1em}.md-typeset h1{color:var(--md-default-fg-color--light);font-size:2em;line-height:1.3;margin:0 0 1.25em}.md-typeset h1,.md-typeset h2{font-weight:300;letter-spacing:-.01em}.md-typeset h2{font-size:1.5625em;line-height:1.4;margin:1.6em 0 .64em}.md-typeset h3{font-size:1.25em;font-weight:400;letter-spacing:-.01em;line-height:1.5;margin:1.6em 0 .8em}.md-typeset h2+h3{margin-top:.8em}.md-typeset h4{font-weight:700;letter-spacing:-.01em;margin:1em 0}.md-typeset h5,.md-typeset h6{color:var(--md-default-fg-color--light);font-size:.8em;font-weight:700;letter-spacing:-.01em;margin:1.25em 0}.md-typeset h5{text-transform:uppercase}.md-typeset hr{border-bottom:.05rem solid var(--md-default-fg-color--lightest);display:flow-root;margin:1.5em 0}.md-typeset a{color:var(--md-typeset-a-color);word-break:break-word}.md-typeset a,.md-typeset a:before{transition:color 125ms}.md-typeset a:focus,.md-typeset a:hover{color:var(--md-accent-fg-color)}.md-typeset a.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset code,.md-typeset kbd,.md-typeset pre{color:var(--md-code-fg-color);direction:ltr}@media print{.md-typeset code,.md-typeset kbd,.md-typeset pre{white-space:pre-wrap}}.md-typeset code{background-color:var(--md-code-bg-color);border-radius:.1rem;-webkit-box-decoration-break:clone;box-decoration-break:clone;font-size:.85em;padding:0 .2941176471em;word-break:break-word}.md-typeset code:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-typeset a code{color:currentColor}.md-typeset pre{display:flow-root;line-height:1.4;position:relative}.md-typeset pre>code{-webkit-box-decoration-break:slice;box-decoration-break:slice;box-shadow:none;display:block;margin:0;outline-color:var(--md-accent-fg-color);overflow:auto;padding:.7720588235em 1.1764705882em;scrollbar-color:var(--md-default-fg-color--lighter) transparent;scrollbar-width:thin;touch-action:auto;word-break:normal}.md-typeset pre>code:hover{scrollbar-color:var(--md-accent-fg-color) transparent}.md-typeset pre>code::-webkit-scrollbar{height:.2rem;width:.2rem}.md-typeset pre>code::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-typeset pre>code::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}.md-typeset kbd{background-color:var(--md-typeset-kbd-color);border-radius:.1rem;box-shadow:0 .1rem 0 .05rem var(--md-typeset-kbd-border-color),0 .1rem 0 var(--md-typeset-kbd-border-color),0 -.1rem .2rem var(--md-typeset-kbd-accent-color) inset;color:var(--md-default-fg-color);display:inline-block;font-size:.75em;padding:0 .6666666667em;vertical-align:text-top;word-break:break-word}.md-typeset mark{background-color:var(--md-typeset-mark-color);-webkit-box-decoration-break:clone;box-decoration-break:clone;color:inherit;word-break:break-word}.md-typeset abbr{border-bottom:.05rem dotted var(--md-default-fg-color--light);cursor:help;text-decoration:none}@media (hover:none){.md-typeset abbr{position:relative}.md-typeset abbr[title]:-webkit-any(:focus,:hover):after{background-color:var(--md-default-fg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z3);color:var(--md-default-bg-color);content:attr(title);display:inline-block;font-size:.7rem;margin-top:2em;max-width:80%;min-width:-webkit-max-content;min-width:max-content;padding:.2rem .3rem;position:absolute;width:auto}.md-typeset abbr[title]:-moz-any(:focus,:hover):after{background-color:var(--md-default-fg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z3);color:var(--md-default-bg-color);content:attr(title);display:inline-block;font-size:.7rem;margin-top:2em;max-width:80%;min-width:-moz-max-content;min-width:max-content;padding:.2rem .3rem;position:absolute;width:auto}[dir=ltr] .md-typeset abbr[title]:-webkit-any(:focus,:hover):after{left:0}[dir=ltr] .md-typeset abbr[title]:-moz-any(:focus,:hover):after{left:0}[dir=ltr] .md-typeset abbr[title]:is(:focus,:hover):after{left:0}[dir=rtl] .md-typeset abbr[title]:-webkit-any(:focus,:hover):after{right:0}[dir=rtl] .md-typeset abbr[title]:-moz-any(:focus,:hover):after{right:0}[dir=rtl] .md-typeset abbr[title]:is(:focus,:hover):after{right:0}.md-typeset abbr[title]:is(:focus,:hover):after{background-color:var(--md-default-fg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z3);color:var(--md-default-bg-color);content:attr(title);display:inline-block;font-size:.7rem;margin-top:2em;max-width:80%;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;padding:.2rem .3rem;position:absolute;width:auto}}.md-typeset small{opacity:.75}[dir=ltr] +.md-typeset sub,[dir=ltr] .md-typeset sup{margin-left:.078125em}[dir=rtl] +.md-typeset sub,[dir=rtl] .md-typeset sup{margin-right:.078125em}[dir=ltr] .md-typeset blockquote{padding-left:.6rem}[dir=rtl] .md-typeset blockquote{padding-right:.6rem}[dir=ltr] .md-typeset blockquote{border-left:.2rem solid var(--md-default-fg-color--lighter)}[dir=rtl] .md-typeset blockquote{border-right:.2rem solid var(--md-default-fg-color--lighter)}.md-typeset blockquote{color:var(--md-default-fg-color--light);margin-left:0;margin-right:0}.md-typeset ul{list-style-type:disc}[dir=ltr] +.md-typeset ol,[dir=ltr] .md-typeset ul{margin-left:.625em}[dir=rtl] +.md-typeset ol,[dir=rtl] .md-typeset ul{margin-right:.625em}.md-typeset ol,.md-typeset ul{padding:0}.md-typeset ol:not([hidden]),.md-typeset ul:not([hidden]){display:flow-root}.md-typeset ol ol,.md-typeset ul ol{list-style-type:lower-alpha}.md-typeset ol ol ol,.md-typeset ul ol ol{list-style-type:lower-roman}[dir=ltr] +.md-typeset ol li,[dir=ltr] .md-typeset ul li{margin-left:1.25em}[dir=rtl] +.md-typeset ol li,[dir=rtl] .md-typeset ul li{margin-right:1.25em}.md-typeset ol li,.md-typeset ul li{margin-bottom:.5em}.md-typeset ol li :-webkit-any(p,blockquote),.md-typeset ul li :-webkit-any(p,blockquote){margin:.5em 0}.md-typeset ol li :-moz-any(p,blockquote),.md-typeset ul li :-moz-any(p,blockquote){margin:.5em 0}.md-typeset ol li :is(p,blockquote),.md-typeset ul li :is(p,blockquote){margin:.5em 0}.md-typeset ol li:last-child,.md-typeset ul li:last-child{margin-bottom:0}.md-typeset ol li :-webkit-any(ul,ol),.md-typeset ul li :-webkit-any(ul,ol){margin-bottom:.5em;margin-top:.5em}.md-typeset ol li :-moz-any(ul,ol),.md-typeset ul li :-moz-any(ul,ol){margin-bottom:.5em;margin-top:.5em}[dir=ltr] .md-typeset ol li :-webkit-any(ul,ol),[dir=ltr] .md-typeset ul li :-webkit-any(ul,ol){margin-left:.625em}[dir=ltr] .md-typeset ol li :-moz-any(ul,ol),[dir=ltr] .md-typeset ul li :-moz-any(ul,ol){margin-left:.625em}[dir=ltr] .md-typeset ol li :is(ul,ol),[dir=ltr] .md-typeset ul li :is(ul,ol){margin-left:.625em}[dir=rtl] .md-typeset ol li :-webkit-any(ul,ol),[dir=rtl] .md-typeset ul li :-webkit-any(ul,ol){margin-right:.625em}[dir=rtl] .md-typeset ol li :-moz-any(ul,ol),[dir=rtl] .md-typeset ul li :-moz-any(ul,ol){margin-right:.625em}[dir=rtl] .md-typeset ol li :is(ul,ol),[dir=rtl] .md-typeset ul li :is(ul,ol){margin-right:.625em}.md-typeset ol li :is(ul,ol),.md-typeset ul li :is(ul,ol){margin-bottom:.5em;margin-top:.5em}[dir=ltr] .md-typeset dd{margin-left:1.875em}[dir=rtl] .md-typeset dd{margin-right:1.875em}.md-typeset dd{margin-bottom:1.5em;margin-top:1em}.md-typeset img,.md-typeset svg{height:auto;max-width:100%}.md-typeset img[align=left],.md-typeset svg[align=left]{margin:1em 1em 1em 0}.md-typeset img[align=right],.md-typeset svg[align=right]{margin:1em 0 1em 1em}.md-typeset img[align]:only-child,.md-typeset svg[align]:only-child{margin-top:0}.md-typeset img[src$="#only-dark"]{display:none}.md-typeset figure{display:flow-root;margin:1em auto;max-width:100%;text-align:center;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.md-typeset figure img{display:block}.md-typeset figcaption{font-style:italic;margin:1em auto;max-width:24rem}.md-typeset iframe{max-width:100%}.md-typeset table:not([class]){background-color:var(--md-default-bg-color);border:.05rem solid var(--md-typeset-table-color);border-radius:.1rem;display:inline-block;font-size:.64rem;max-width:100%;overflow:auto;touch-action:auto}@media print{.md-typeset table:not([class]){display:table}}.md-typeset table:not([class])+*{margin-top:1.5em}.md-typeset table:not([class]) :-webkit-any(th,td)>:first-child{margin-top:0}.md-typeset table:not([class]) :-moz-any(th,td)>:first-child{margin-top:0}.md-typeset table:not([class]) :is(th,td)>:first-child{margin-top:0}.md-typeset table:not([class]) :-webkit-any(th,td)>:last-child{margin-bottom:0}.md-typeset table:not([class]) :-moz-any(th,td)>:last-child{margin-bottom:0}.md-typeset table:not([class]) :is(th,td)>:last-child{margin-bottom:0}.md-typeset table:not([class]) :-webkit-any(th,td):not([align]){text-align:left}.md-typeset table:not([class]) :-moz-any(th,td):not([align]){text-align:left}.md-typeset table:not([class]) :is(th,td):not([align]){text-align:left}[dir=rtl] .md-typeset table:not([class]) :-webkit-any(th,td):not([align]){text-align:right}[dir=rtl] .md-typeset table:not([class]) :-moz-any(th,td):not([align]){text-align:right}[dir=rtl] .md-typeset table:not([class]) :is(th,td):not([align]){text-align:right}.md-typeset table:not([class]) th{font-weight:700;min-width:5rem;padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) th a{color:inherit}.md-typeset table:not([class]) td{border-top:.05rem solid var(--md-typeset-table-color);padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) tbody tr{transition:background-color 125ms}.md-typeset table:not([class]) tbody tr:hover{background-color:rgba(0,0,0,.035);box-shadow:0 .05rem 0 var(--md-default-bg-color) inset}.md-typeset table:not([class]) a{word-break:normal}.md-typeset table th[role=columnheader]{cursor:pointer}[dir=ltr] .md-typeset table th[role=columnheader]:after{margin-left:.5em}[dir=rtl] .md-typeset table th[role=columnheader]:after{margin-right:.5em}.md-typeset table th[role=columnheader]:after{content:"";display:inline-block;height:1.2em;-webkit-mask-image:var(--md-typeset-table-sort-icon);mask-image:var(--md-typeset-table-sort-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color 125ms;vertical-align:text-bottom;width:1.2em}.md-typeset table th[role=columnheader]:hover:after{background-color:var(--md-default-fg-color--lighter)}.md-typeset table th[role=columnheader][aria-sort=ascending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--asc);mask-image:var(--md-typeset-table-sort-icon--asc)}.md-typeset table th[role=columnheader][aria-sort=descending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--desc);mask-image:var(--md-typeset-table-sort-icon--desc)}.md-typeset__scrollwrap{margin:1em -.8rem;overflow-x:auto;touch-action:auto}.md-typeset__table{display:inline-block;margin-bottom:.5em;padding:0 .8rem}@media print{.md-typeset__table{display:block}}html .md-typeset__table table{display:table;margin:0;overflow:hidden;width:100%}@media screen and (max-width:44.9375em){.md-content__inner>pre{margin:1em -.8rem}.md-content__inner>pre code{border-radius:0}}.md-banner{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color);overflow:auto}@media print{.md-banner{display:none}}.md-banner--warning{background:var(--md-typeset-mark-color);color:var(--md-default-fg-color)}.md-banner__inner{font-size:.7rem;margin:.6rem auto;padding:0 .8rem}html{font-size:125%;height:100%;overflow-x:hidden}@media screen and (min-width:100em){html{font-size:137.5%}}@media screen and (min-width:125em){html{font-size:150%}}body{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;font-size:.5rem;min-height:100%;position:relative;width:100%}@media print{body{display:block}}@media screen and (max-width:59.9375em){body[data-md-state=lock]{position:fixed}}.md-grid{margin-left:auto;margin-right:auto;max-width:61rem}.md-container{display:flex;flex-direction:column;flex-grow:1}@media print{.md-container{display:block}}.md-main{flex-grow:1}.md-main__inner{display:flex;height:100%;margin-top:1.5rem}.md-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.md-toggle{display:none}.md-option{height:0;opacity:0;position:absolute;width:0}.md-option:checked+label:not([hidden]){display:block}.md-option.focus-visible+label{outline-color:var(--md-accent-fg-color);outline-style:auto}.md-skip{background-color:var(--md-default-fg-color);border-radius:.1rem;color:var(--md-default-bg-color);font-size:.64rem;margin:.5rem;opacity:0;outline-color:var(--md-accent-fg-color);padding:.3rem .5rem;position:fixed;transform:translateY(.4rem);z-index:-1}.md-skip:focus{opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 175ms 75ms;z-index:10}@page{margin:25mm}:root{--md-clipboard-icon:url('data:image/svg+xml;charset=utf-8,')}.md-clipboard{border-radius:.1rem;color:var(--md-default-fg-color--lightest);cursor:pointer;height:1.5em;outline-color:var(--md-accent-fg-color);outline-offset:.1rem;position:absolute;right:.5em;top:.5em;transition:color .25s;width:1.5em;z-index:1}@media print{.md-clipboard{display:none}}.md-clipboard:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}:hover>.md-clipboard{color:var(--md-default-fg-color--light)}.md-clipboard:-webkit-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-clipboard:-moz-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-clipboard:is(:focus,:hover){color:var(--md-accent-fg-color)}.md-clipboard:after{background-color:currentColor;content:"";display:block;height:1.125em;margin:0 auto;-webkit-mask-image:var(--md-clipboard-icon);mask-image:var(--md-clipboard-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:1.125em}.md-clipboard--inline{cursor:pointer}.md-clipboard--inline code{transition:color .25s,background-color .25s}.md-clipboard--inline:-webkit-any(:focus,:hover) code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-clipboard--inline:-moz-any(:focus,:hover) code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-clipboard--inline:is(:focus,:hover) code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-content{flex-grow:1;min-width:0}.md-content__inner{margin:0 .8rem 1.2rem;padding-top:.6rem}@media screen and (min-width:76.25em){[dir=ltr] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}[dir=rtl] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-right:1.2rem}[dir=ltr] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner{margin-right:1.2rem}[dir=rtl] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}}.md-content__inner:before{content:"";display:block;height:.4rem}.md-content__inner>:last-child{margin-bottom:0}[dir=ltr] .md-content__button{margin-left:.4rem}[dir=rtl] .md-content__button{margin-right:.4rem}.md-content__button{float:right;margin:.4rem 0;padding:0}@media print{.md-content__button{display:none}}[dir=rtl] .md-content__button{float:left}.md-typeset .md-content__button{color:var(--md-default-fg-color--lighter)}.md-content__button svg{display:inline;vertical-align:top}[dir=rtl] .md-content__button svg{transform:scaleX(-1)}[dir=ltr] .md-dialog{right:.8rem}[dir=rtl] .md-dialog{left:.8rem}.md-dialog{background-color:var(--md-default-fg-color);border-radius:.1rem;bottom:.8rem;box-shadow:var(--md-shadow-z3);min-width:11.1rem;opacity:0;padding:.4rem .6rem;pointer-events:none;position:fixed;transform:translateY(100%);transition:transform 0ms .4s,opacity .4s;z-index:4}@media print{.md-dialog{display:none}}.md-dialog[data-md-state=open]{opacity:1;pointer-events:auto;transform:translateY(0);transition:transform .4s cubic-bezier(.075,.85,.175,1),opacity .4s}.md-dialog__inner{color:var(--md-default-bg-color);font-size:.7rem}.md-footer{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color)}@media print{.md-footer{display:none}}.md-footer__inner{display:flex;justify-content:space-between;overflow:auto;padding:.2rem}.md-footer__link{display:flex;flex-grow:0.01;outline-color:var(--md-accent-fg-color);overflow:hidden;padding-bottom:.4rem;padding-top:1.4rem;transition:opacity .25s}.md-footer__link:-webkit-any(:focus,:hover){opacity:.7}.md-footer__link:-moz-any(:focus,:hover){opacity:.7}.md-footer__link:is(:focus,:hover){opacity:.7}[dir=rtl] .md-footer__link svg{transform:scaleX(-1)}@media screen and (max-width:44.9375em){.md-footer__link--prev .md-footer__title{display:none}}[dir=ltr] .md-footer__link--next{margin-left:auto}[dir=rtl] .md-footer__link--next{margin-right:auto}.md-footer__link--next{text-align:right}[dir=rtl] .md-footer__link--next{text-align:left}.md-footer__title{flex-grow:1;font-size:.9rem;line-height:2.4rem;max-width:calc(100% - 2.4rem);padding:0 1rem;position:relative}.md-footer__button{margin:.2rem;padding:.4rem}.md-footer__direction{font-size:.64rem;left:0;margin-top:-1rem;opacity:.7;padding:0 1rem;position:absolute;right:0}.md-footer-meta{background-color:var(--md-footer-bg-color--dark)}.md-footer-meta__inner{display:flex;flex-wrap:wrap;justify-content:space-between;padding:.2rem}html .md-footer-meta.md-typeset a{color:var(--md-footer-fg-color--light)}html .md-footer-meta.md-typeset a:-webkit-any(:focus,:hover){color:var(--md-footer-fg-color)}html .md-footer-meta.md-typeset a:-moz-any(:focus,:hover){color:var(--md-footer-fg-color)}html .md-footer-meta.md-typeset a:is(:focus,:hover){color:var(--md-footer-fg-color)}.md-copyright{color:var(--md-footer-fg-color--lighter);font-size:.64rem;margin:auto .6rem;padding:.4rem 0;width:100%}@media screen and (min-width:45em){.md-copyright{width:auto}}.md-copyright__highlight{color:var(--md-footer-fg-color--light)}.md-social{margin:0 .4rem;padding:.2rem 0 .6rem}@media screen and (min-width:45em){.md-social{padding:.6rem 0}}.md-social__link{display:inline-block;height:1.6rem;text-align:center;width:1.6rem}.md-social__link:before{line-height:1.9}.md-social__link svg{fill:currentColor;max-height:.8rem;vertical-align:-25%}.md-typeset .md-button{border:.1rem solid;border-radius:.1rem;color:var(--md-primary-fg-color);cursor:pointer;display:inline-block;font-weight:700;padding:.625em 2em;transition:color 125ms,background-color 125ms,border-color 125ms}.md-typeset .md-button--primary{background-color:var(--md-primary-fg-color);border-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color)}.md-typeset .md-button:-webkit-any(:focus,:hover){background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-typeset .md-button:-moz-any(:focus,:hover){background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-typeset .md-button:is(:focus,:hover){background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}[dir=ltr] .md-typeset .md-input{border-top-left-radius:.1rem}[dir=rtl] .md-typeset .md-input{border-top-right-radius:.1rem}[dir=ltr] .md-typeset .md-input{border-top-right-radius:.1rem}[dir=rtl] .md-typeset .md-input{border-top-left-radius:.1rem}.md-typeset .md-input{border-bottom:.1rem solid var(--md-default-fg-color--lighter);box-shadow:var(--md-shadow-z1);font-size:.8rem;height:1.8rem;padding:0 .6rem;transition:border .25s,box-shadow .25s}.md-typeset .md-input:-webkit-any(:focus,:hover){border-bottom-color:var(--md-accent-fg-color);box-shadow:var(--md-shadow-z2)}.md-typeset .md-input:-moz-any(:focus,:hover){border-bottom-color:var(--md-accent-fg-color);box-shadow:var(--md-shadow-z2)}.md-typeset .md-input:is(:focus,:hover){border-bottom-color:var(--md-accent-fg-color);box-shadow:var(--md-shadow-z2)}.md-typeset .md-input--stretch{width:100%}.md-header{background-color:var(--md-primary-fg-color);box-shadow:0 0 .2rem transparent,0 .2rem .4rem transparent;color:var(--md-primary-bg-color);left:0;position:-webkit-sticky;position:sticky;right:0;top:0;z-index:4}@media print{.md-header{display:none}}.md-header[data-md-state=shadow]{box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2);transition:transform .25s cubic-bezier(.1,.7,.1,1),box-shadow .25s}.md-header[data-md-state=hidden]{transform:translateY(-100%);transition:transform .25s cubic-bezier(.8,0,.6,1),box-shadow .25s}.md-header__inner{align-items:center;display:flex;padding:0 .2rem}.md-header__button{color:currentColor;cursor:pointer;margin:.2rem;outline-color:var(--md-accent-fg-color);padding:.4rem;position:relative;transition:opacity .25s;vertical-align:middle;z-index:1}.md-header__button:hover{opacity:.7}.md-header__button:not([hidden]){display:inline-block}.md-header__button:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-header__button.md-logo{margin:.2rem;padding:.4rem}@media screen and (max-width:76.1875em){.md-header__button.md-logo{display:none}}.md-header__button.md-logo :-webkit-any(img,svg){fill:currentColor;display:block;height:1.2rem;width:1.2rem}.md-header__button.md-logo :-moz-any(img,svg){fill:currentColor;display:block;height:1.2rem;width:1.2rem}.md-header__button.md-logo :is(img,svg){fill:currentColor;display:block;height:1.2rem;width:1.2rem}@media screen and (min-width:60em){.md-header__button[for=__search]{display:none}}.no-js .md-header__button[for=__search]{display:none}[dir=rtl] .md-header__button[for=__search] svg{transform:scaleX(-1)}@media screen and (min-width:76.25em){.md-header__button[for=__drawer]{display:none}}.md-header__topic{display:flex;max-width:100%;position:absolute;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s}.md-header__topic+.md-header__topic{opacity:0;pointer-events:none;transform:translateX(1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__topic+.md-header__topic{transform:translateX(-1.25rem)}.md-header__topic:first-child{font-weight:700}[dir=ltr] .md-header__title{margin-right:.4rem}[dir=rtl] .md-header__title{margin-left:.4rem}[dir=ltr] .md-header__title{margin-left:1rem}[dir=rtl] .md-header__title{margin-right:1rem}.md-header__title{flex-grow:1;font-size:.9rem;height:2.4rem;line-height:2.4rem}.md-header__title[data-md-state=active] .md-header__topic{opacity:0;pointer-events:none;transform:translateX(-1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__title[data-md-state=active] .md-header__topic{transform:translateX(1.25rem)}.md-header__title[data-md-state=active] .md-header__topic+.md-header__topic{opacity:1;pointer-events:auto;transform:translateX(0);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;z-index:0}.md-header__title>.md-header__ellipsis{height:100%;position:relative;width:100%}.md-header__option{display:flex;flex-shrink:0;max-width:100%;transition:max-width 0ms .25s,opacity .25s .25s;white-space:nowrap}[data-md-toggle=search]:checked~.md-header .md-header__option{max-width:0;opacity:0;transition:max-width 0ms,opacity 0ms}.md-header__source{display:none}@media screen and (min-width:60em){[dir=ltr] .md-header__source{margin-left:1rem}[dir=rtl] .md-header__source{margin-right:1rem}.md-header__source{display:block;max-width:11.7rem;width:11.7rem}}@media screen and (min-width:76.25em){[dir=ltr] .md-header__source{margin-left:1.4rem}[dir=rtl] .md-header__source{margin-right:1.4rem}}:root{--md-nav-icon--prev:url('data:image/svg+xml;charset=utf-8,');--md-nav-icon--next:url('data:image/svg+xml;charset=utf-8,');--md-toc-icon:url('data:image/svg+xml;charset=utf-8,')}.md-nav{font-size:.7rem;line-height:1.3}.md-nav__title{display:block;font-weight:700;overflow:hidden;padding:0 .6rem;text-overflow:ellipsis}.md-nav__title .md-nav__button{display:none}.md-nav__title .md-nav__button img{height:100%;width:auto}.md-nav__title .md-nav__button.md-logo :-webkit-any(img,svg){fill:currentColor;display:block;height:2.4rem;width:2.4rem}.md-nav__title .md-nav__button.md-logo :-moz-any(img,svg){fill:currentColor;display:block;height:2.4rem;width:2.4rem}.md-nav__title .md-nav__button.md-logo :is(img,svg){fill:currentColor;display:block;height:2.4rem;width:2.4rem}.md-nav__list{list-style:none;margin:0;padding:0}.md-nav__item{padding:0 .6rem}[dir=ltr] .md-nav__item .md-nav__item{padding-right:0}[dir=rtl] .md-nav__item .md-nav__item{padding-left:0}.md-nav__link{align-items:center;cursor:pointer;display:flex;justify-content:space-between;margin-top:.625em;overflow:hidden;scroll-snap-align:start;text-overflow:ellipsis;transition:color 125ms}.md-nav__link[data-md-state=blur]{color:var(--md-default-fg-color--light)}.md-nav__item .md-nav__link--active{color:var(--md-typeset-a-color)}.md-nav__item .md-nav__link--index [href]{width:100%}.md-nav__link:-webkit-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav__link:-moz-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav__link:is(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav__link.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-nav--primary .md-nav__link[for=__toc]{display:none}.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{background-color:currentColor;display:block;height:100%;-webkit-mask-image:var(--md-toc-icon);mask-image:var(--md-toc-icon);width:100%}.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:none}.md-nav__link>*{cursor:pointer;display:flex}.md-nav__icon{flex-shrink:0}.md-nav__source{display:none}@media screen and (max-width:76.1875em){.md-nav--primary,.md-nav--primary .md-nav{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;height:100%;left:0;position:absolute;right:0;top:0;z-index:1}.md-nav--primary :-webkit-any(.md-nav__title,.md-nav__item){font-size:.8rem;line-height:1.5}.md-nav--primary :-moz-any(.md-nav__title,.md-nav__item){font-size:.8rem;line-height:1.5}.md-nav--primary :is(.md-nav__title,.md-nav__item){font-size:.8rem;line-height:1.5}.md-nav--primary .md-nav__title{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);cursor:pointer;font-weight:400;height:5.6rem;line-height:2.4rem;padding:3rem .8rem .2rem;position:relative;white-space:nowrap}[dir=ltr] .md-nav--primary .md-nav__title .md-nav__icon{left:.4rem}[dir=rtl] .md-nav--primary .md-nav__title .md-nav__icon{right:.4rem}.md-nav--primary .md-nav__title .md-nav__icon{display:block;height:1.2rem;margin:.2rem;position:absolute;top:.4rem;width:1.2rem}.md-nav--primary .md-nav__title .md-nav__icon:after{background-color:currentColor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--prev);mask-image:var(--md-nav-icon--prev);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}.md-nav--primary .md-nav__title~.md-nav__list{background-color:var(--md-default-bg-color);box-shadow:0 .05rem 0 var(--md-default-fg-color--lightest) inset;overflow-y:auto;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;touch-action:pan-y}.md-nav--primary .md-nav__title~.md-nav__list>:first-child{border-top:0}.md-nav--primary .md-nav__title[for=__drawer]{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);font-weight:700}[dir=ltr] .md-nav--primary .md-nav__title .md-logo{left:.2rem}[dir=rtl] .md-nav--primary .md-nav__title .md-logo{right:.2rem}.md-nav--primary .md-nav__title .md-logo{display:block;margin:.2rem;padding:.4rem;position:absolute;top:.2rem}.md-nav--primary .md-nav__list{flex:1}.md-nav--primary .md-nav__item{border-top:.05rem solid var(--md-default-fg-color--lightest);padding:0}.md-nav--primary .md-nav__item--active>.md-nav__link{color:var(--md-typeset-a-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:-webkit-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:-moz-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:is(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__link{margin-top:0;padding:.6rem .8rem}[dir=ltr] .md-nav--primary .md-nav__link .md-nav__icon{margin-right:-.2rem}[dir=rtl] .md-nav--primary .md-nav__link .md-nav__icon{margin-left:-.2rem}.md-nav--primary .md-nav__link .md-nav__icon{font-size:1.2rem;height:1.2rem;width:1.2rem}.md-nav--primary .md-nav__link .md-nav__icon:after{background-color:currentColor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}[dir=rtl] .md-nav--primary .md-nav__icon:after{transform:scale(-1)}.md-nav--primary .md-nav--secondary .md-nav{background-color:transparent;position:static}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-left:1.4rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-right:1.4rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-left:2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-right:2rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-left:2.6rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-right:2.6rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-left:3.2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-right:3.2rem}.md-nav--secondary{background-color:transparent}.md-nav__toggle~.md-nav{display:flex;opacity:0;transform:translateX(100%);transition:transform .25s cubic-bezier(.8,0,.6,1),opacity 125ms 50ms}[dir=rtl] .md-nav__toggle~.md-nav{transform:translateX(-100%)}.md-nav__toggle:checked~.md-nav{opacity:1;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 125ms 125ms}.md-nav__toggle:checked~.md-nav>.md-nav__list{-webkit-backface-visibility:hidden;backface-visibility:hidden}}@media screen and (max-width:59.9375em){.md-nav--primary .md-nav__link[for=__toc]{display:flex}.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{content:""}.md-nav--primary .md-nav__link[for=__toc]+.md-nav__link{display:none}.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:flex}.md-nav__source{background-color:var(--md-primary-fg-color--dark);color:var(--md-primary-bg-color);display:block;padding:0 .2rem}}@media screen and (min-width:60em) and (max-width:76.1875em){.md-nav--integrated .md-nav__link[for=__toc]{display:flex}.md-nav--integrated .md-nav__link[for=__toc] .md-icon:after{content:""}.md-nav--integrated .md-nav__link[for=__toc]+.md-nav__link{display:none}.md-nav--integrated .md-nav__link[for=__toc]~.md-nav{display:flex}}@media screen and (min-width:60em){.md-nav--secondary .md-nav__title[for=__toc]{scroll-snap-align:start}.md-nav--secondary .md-nav__title .md-nav__icon{display:none}}@media screen and (min-width:76.25em){.md-nav{transition:max-height .25s cubic-bezier(.86,0,.07,1)}.md-nav--primary .md-nav__title[for=__drawer]{scroll-snap-align:start}.md-nav--primary .md-nav__title .md-nav__icon{display:none}.md-nav__toggle~.md-nav{display:none}.md-nav__toggle:-webkit-any(:checked,:indeterminate)~.md-nav{display:block}.md-nav__toggle:-moz-any(:checked,:indeterminate)~.md-nav{display:block}.md-nav__toggle:is(:checked,:indeterminate)~.md-nav{display:block}.md-nav__item--nested>.md-nav>.md-nav__title{display:none}.md-nav__item--section{display:block;margin:1.25em 0}.md-nav__item--section:last-child{margin-bottom:0}.md-nav__item--section>.md-nav__link{font-weight:700;pointer-events:none}.md-nav__item--section>.md-nav__link--index [href]{pointer-events:auto}.md-nav__item--section>.md-nav__link .md-nav__icon{display:none}.md-nav__item--section>.md-nav{display:block}.md-nav__item--section>.md-nav>.md-nav__list>.md-nav__item{padding:0}.md-nav__icon{border-radius:100%;float:right;height:.9rem;transition:background-color .25s,transform .25s;width:.9rem}[dir=rtl] .md-nav__icon{float:left;transform:rotate(180deg)}.md-nav__icon:hover{background-color:var(--md-accent-fg-color--transparent)}.md-nav__icon:after{background-color:currentColor;content:"";display:inline-block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:-.1rem;width:100%}.md-nav__item--nested .md-nav__toggle:checked~.md-nav__link .md-nav__icon,.md-nav__item--nested .md-nav__toggle:indeterminate~.md-nav__link .md-nav__icon{transform:rotate(90deg)}.md-nav--lifted>.md-nav__list>.md-nav__item--nested,.md-nav--lifted>.md-nav__title{display:none}.md-nav--lifted>.md-nav__list>.md-nav__item{display:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active{display:block;padding:0}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link{font-weight:700;margin-top:0;padding:0 .6rem;pointer-events:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link--index [href]{pointer-events:auto}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link .md-nav__icon{display:none}.md-nav--lifted .md-nav[data-md-level="1"]{display:block}[dir=ltr] .md-nav--lifted .md-nav[data-md-level="1"]>.md-nav__list>.md-nav__item{padding-right:.6rem}[dir=rtl] .md-nav--lifted .md-nav[data-md-level="1"]>.md-nav__list>.md-nav__item{padding-left:.6rem}.md-nav--integrated>.md-nav__list>.md-nav__item--active:not(.md-nav__item--nested){padding:0 .6rem}.md-nav--integrated>.md-nav__list>.md-nav__item--active:not(.md-nav__item--nested)>.md-nav__link{padding:0}[dir=ltr] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-left:.05rem solid var(--md-primary-fg-color)}[dir=rtl] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-right:.05rem solid var(--md-primary-fg-color)}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{display:block;margin-bottom:1.25em}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary>.md-nav__title{display:none}}:root{--md-search-result-icon:url('data:image/svg+xml;charset=utf-8,')}.md-search{position:relative}@media screen and (min-width:60em){.md-search{padding:.2rem 0}}.no-js .md-search{display:none}.md-search__overlay{opacity:0;z-index:1}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__overlay{left:-2.2rem}[dir=rtl] .md-search__overlay{right:-2.2rem}.md-search__overlay{background-color:var(--md-default-bg-color);border-radius:1rem;height:2rem;overflow:hidden;pointer-events:none;position:absolute;top:-1rem;transform-origin:center;transition:transform .3s .1s,opacity .2s .2s;width:2rem}[data-md-toggle=search]:checked~.md-header .md-search__overlay{opacity:1;transition:transform .4s,opacity .1s}}@media screen and (min-width:60em){[dir=ltr] .md-search__overlay{left:0}[dir=rtl] .md-search__overlay{right:0}.md-search__overlay{background-color:rgba(0,0,0,.54);cursor:pointer;height:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0}[data-md-toggle=search]:checked~.md-header .md-search__overlay{height:200vh;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@media screen and (max-width:29.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(45)}}@media screen and (min-width:30em) and (max-width:44.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(60)}}@media screen and (min-width:45em) and (max-width:59.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(75)}}.md-search__inner{-webkit-backface-visibility:hidden;backface-visibility:hidden}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__inner{left:0}[dir=rtl] .md-search__inner{right:0}.md-search__inner{height:0;opacity:0;overflow:hidden;position:fixed;top:0;transform:translateX(5%);transition:width 0ms .3s,height 0ms .3s,transform .15s cubic-bezier(.4,0,.2,1) .15s,opacity .15s .15s;width:0;z-index:2}[dir=rtl] .md-search__inner{transform:translateX(-5%)}[data-md-toggle=search]:checked~.md-header .md-search__inner{height:100%;opacity:1;transform:translateX(0);transition:width 0ms 0ms,height 0ms 0ms,transform .15s cubic-bezier(.1,.7,.1,1) .15s,opacity .15s .15s;width:100%}}@media screen and (min-width:60em){.md-search__inner{float:right;padding:.1rem 0;position:relative;transition:width .25s cubic-bezier(.1,.7,.1,1);width:11.7rem}[dir=rtl] .md-search__inner{float:left}}@media screen and (min-width:60em) and (max-width:76.1875em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:23.4rem}}@media screen and (min-width:76.25em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:34.4rem}}.md-search__form{background-color:var(--md-default-bg-color);box-shadow:0 0 .6rem transparent;height:2.4rem;position:relative;transition:color .25s,background-color .25s;z-index:2}@media screen and (min-width:60em){.md-search__form{background-color:rgba(0,0,0,.26);border-radius:.1rem;height:1.8rem}.md-search__form:hover{background-color:hsla(0,0%,100%,.12)}}[data-md-toggle=search]:checked~.md-header .md-search__form{background-color:var(--md-default-bg-color);border-radius:.1rem .1rem 0 0;box-shadow:0 0 .6rem rgba(0,0,0,.07);color:var(--md-default-fg-color)}[dir=ltr] .md-search__input{padding-left:3.6rem;padding-right:2.2rem}[dir=rtl] .md-search__input{padding-left:2.2rem;padding-right:3.6rem}.md-search__input{background:transparent;font-size:.9rem;height:100%;position:relative;text-overflow:ellipsis;width:100%;z-index:2}.md-search__input::-moz-placeholder{-moz-transition:color .25s;transition:color .25s}.md-search__input::-ms-input-placeholder{-ms-transition:color .25s;transition:color .25s}.md-search__input::placeholder{transition:color .25s}.md-search__input::-moz-placeholder{color:var(--md-default-fg-color--light)}.md-search__input::-ms-input-placeholder{color:var(--md-default-fg-color--light)}.md-search__input::placeholder,.md-search__input~.md-search__icon{color:var(--md-default-fg-color--light)}.md-search__input::-ms-clear{display:none}@media screen and (max-width:59.9375em){.md-search__input{font-size:.9rem;height:2.4rem;width:100%}}@media screen and (min-width:60em){[dir=ltr] .md-search__input{padding-left:2.2rem}[dir=rtl] .md-search__input{padding-right:2.2rem}.md-search__input{color:inherit;font-size:.8rem}.md-search__input::-moz-placeholder{color:var(--md-primary-bg-color--light)}.md-search__input::-ms-input-placeholder{color:var(--md-primary-bg-color--light)}.md-search__input::placeholder{color:var(--md-primary-bg-color--light)}.md-search__input+.md-search__icon{color:var(--md-primary-bg-color)}[data-md-toggle=search]:checked~.md-header .md-search__input{text-overflow:clip}[data-md-toggle=search]:checked~.md-header .md-search__input::-moz-placeholder{color:var(--md-default-fg-color--light)}[data-md-toggle=search]:checked~.md-header .md-search__input::-ms-input-placeholder{color:var(--md-default-fg-color--light)}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon,[data-md-toggle=search]:checked~.md-header .md-search__input::placeholder{color:var(--md-default-fg-color--light)}}.md-search__icon{cursor:pointer;display:inline-block;height:1.2rem;transition:color .25s,opacity .25s;width:1.2rem}.md-search__icon:hover{opacity:.7}[dir=ltr] .md-search__icon[for=__search]{left:.5rem}[dir=rtl] .md-search__icon[for=__search]{right:.5rem}.md-search__icon[for=__search]{position:absolute;top:.3rem;z-index:2}[dir=rtl] .md-search__icon[for=__search] svg{transform:scaleX(-1)}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__icon[for=__search]{left:.8rem}[dir=rtl] .md-search__icon[for=__search]{right:.8rem}.md-search__icon[for=__search]{top:.6rem}.md-search__icon[for=__search] svg:first-child{display:none}}@media screen and (min-width:60em){.md-search__icon[for=__search]{pointer-events:none}.md-search__icon[for=__search] svg:last-child{display:none}}[dir=ltr] .md-search__options{right:.5rem}[dir=rtl] .md-search__options{left:.5rem}.md-search__options{pointer-events:none;position:absolute;top:.3rem;z-index:2}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__options{right:.8rem}[dir=rtl] .md-search__options{left:.8rem}.md-search__options{top:.6rem}}[dir=ltr] .md-search__options>*{margin-left:.2rem}[dir=rtl] .md-search__options>*{margin-right:.2rem}.md-search__options>*{color:var(--md-default-fg-color--light);opacity:0;transform:scale(.75);transition:transform .15s cubic-bezier(.1,.7,.1,1),opacity .15s}.md-search__options>:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>*{opacity:1;pointer-events:auto;transform:scale(1)}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>:hover{opacity:.7}[dir=ltr] .md-search__suggest{padding-left:3.6rem;padding-right:2.2rem}[dir=rtl] .md-search__suggest{padding-left:2.2rem;padding-right:3.6rem}.md-search__suggest{align-items:center;color:var(--md-default-fg-color--lighter);display:flex;font-size:.9rem;height:100%;opacity:0;position:absolute;top:0;transition:opacity 50ms;white-space:nowrap;width:100%}@media screen and (min-width:60em){[dir=ltr] .md-search__suggest{padding-left:2.2rem}[dir=rtl] .md-search__suggest{padding-right:2.2rem}.md-search__suggest{font-size:.8rem}}[data-md-toggle=search]:checked~.md-header .md-search__suggest{opacity:1;transition:opacity .3s .1s}[dir=ltr] .md-search__output{border-bottom-left-radius:.1rem}[dir=rtl] .md-search__output{border-bottom-right-radius:.1rem}[dir=ltr] .md-search__output{border-bottom-right-radius:.1rem}[dir=rtl] .md-search__output{border-bottom-left-radius:.1rem}.md-search__output{overflow:hidden;position:absolute;width:100%;z-index:1}@media screen and (max-width:59.9375em){.md-search__output{bottom:0;top:2.4rem}}@media screen and (min-width:60em){.md-search__output{opacity:0;top:1.9rem;transition:opacity .4s}[data-md-toggle=search]:checked~.md-header .md-search__output{box-shadow:var(--md-shadow-z3);opacity:1}}.md-search__scrollwrap{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--md-default-bg-color);height:100%;overflow-y:auto;touch-action:pan-y}@media (-webkit-max-device-pixel-ratio:1),(max-resolution:1dppx){.md-search__scrollwrap{transform:translateZ(0)}}@media screen and (min-width:60em) and (max-width:76.1875em){.md-search__scrollwrap{width:23.4rem}}@media screen and (min-width:76.25em){.md-search__scrollwrap{width:34.4rem}}@media screen and (min-width:60em){.md-search__scrollwrap{max-height:0;scrollbar-color:var(--md-default-fg-color--lighter) transparent;scrollbar-width:thin}[data-md-toggle=search]:checked~.md-header .md-search__scrollwrap{max-height:75vh}.md-search__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) transparent}.md-search__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.md-search__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}}.md-search-result{color:var(--md-default-fg-color);word-break:break-word}.md-search-result__meta{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.8rem;padding:0 .8rem;scroll-snap-align:start}@media screen and (min-width:60em){[dir=ltr] .md-search-result__meta{padding-left:2.2rem}[dir=rtl] .md-search-result__meta{padding-right:2.2rem}}.md-search-result__list{list-style:none;margin:0;padding:0}.md-search-result__item{box-shadow:0 -.05rem var(--md-default-fg-color--lightest)}.md-search-result__item:first-child{box-shadow:none}.md-search-result__link{display:block;outline:none;scroll-snap-align:start;transition:background-color .25s}.md-search-result__link:-webkit-any(:focus,:hover){background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:-moz-any(:focus,:hover){background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:is(:focus,:hover){background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:last-child p:last-child{margin-bottom:.6rem}.md-search-result__more summary{color:var(--md-typeset-a-color);cursor:pointer;display:block;font-size:.64rem;outline:none;padding:.75em .8rem;scroll-snap-align:start;transition:color .25s,background-color .25s}@media screen and (min-width:60em){[dir=ltr] .md-search-result__more summary{padding-left:2.2rem}[dir=rtl] .md-search-result__more summary{padding-right:2.2rem}}.md-search-result__more summary:-webkit-any(:focus,:hover){background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-search-result__more summary:-moz-any(:focus,:hover){background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-search-result__more summary:is(:focus,:hover){background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-search-result__more summary::marker{display:none}.md-search-result__more summary::-webkit-details-marker{display:none}.md-search-result__more summary~*>*{opacity:.65}.md-search-result__article{overflow:hidden;padding:0 .8rem;position:relative}@media screen and (min-width:60em){[dir=ltr] .md-search-result__article{padding-left:2.2rem}[dir=rtl] .md-search-result__article{padding-right:2.2rem}}.md-search-result__article--document .md-search-result__title{font-size:.8rem;font-weight:400;line-height:1.4;margin:.55rem 0}[dir=ltr] .md-search-result__icon{left:0}[dir=rtl] .md-search-result__icon{right:0}.md-search-result__icon{color:var(--md-default-fg-color--light);height:1.2rem;margin:.5rem;position:absolute;width:1.2rem}@media screen and (max-width:59.9375em){.md-search-result__icon{display:none}}.md-search-result__icon:after{background-color:currentColor;content:"";display:inline-block;height:100%;-webkit-mask-image:var(--md-search-result-icon);mask-image:var(--md-search-result-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}[dir=rtl] .md-search-result__icon:after{transform:scaleX(-1)}.md-search-result__title{font-size:.64rem;font-weight:700;line-height:1.6;margin:.5em 0}.md-search-result__teaser{-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--md-default-fg-color--light);display:-webkit-box;font-size:.64rem;line-height:1.6;margin:.5em 0;max-height:2rem;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width:44.9375em){.md-search-result__teaser{-webkit-line-clamp:3;max-height:3rem}}@media screen and (min-width:60em) and (max-width:76.1875em){.md-search-result__teaser{-webkit-line-clamp:3;max-height:3rem}}.md-search-result__teaser mark{background-color:transparent;text-decoration:underline}.md-search-result__terms{font-size:.64rem;font-style:italic;margin:.5em 0}.md-search-result mark{background-color:transparent;color:var(--md-accent-fg-color)}.md-select{position:relative;z-index:1}.md-select__inner{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);left:50%;margin-top:.2rem;max-height:0;opacity:0;position:absolute;top:calc(100% - .2rem);transform:translate3d(-50%,.3rem,0);transition:transform .25s 375ms,opacity .25s .25s,max-height 0ms .5s}.md-select:-webkit-any(:focus-within,:hover) .md-select__inner{max-height:10rem;opacity:1;transform:translate3d(-50%,0,0);-webkit-transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms;transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms}.md-select:-moz-any(:focus-within,:hover) .md-select__inner{max-height:10rem;opacity:1;transform:translate3d(-50%,0,0);-moz-transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms;transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms}.md-select:is(:focus-within,:hover) .md-select__inner{max-height:10rem;opacity:1;transform:translate3d(-50%,0,0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms}.md-select__inner:after{border-bottom:.2rem solid transparent;border-bottom-color:var(--md-default-bg-color);border-left:.2rem solid transparent;border-right:.2rem solid transparent;border-top:0;content:"";height:0;left:50%;margin-left:-.2rem;margin-top:-.2rem;position:absolute;top:0;width:0}.md-select__list{border-radius:.1rem;font-size:.8rem;list-style-type:none;margin:0;max-height:inherit;overflow:auto;padding:0}.md-select__item{line-height:1.8rem}[dir=ltr] .md-select__link{padding-left:.6rem;padding-right:1.2rem}[dir=rtl] .md-select__link{padding-left:1.2rem;padding-right:.6rem}.md-select__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:background-color .25s,color .25s;width:100%}.md-select__link:-webkit-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-select__link:-moz-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-select__link:is(:focus,:hover){color:var(--md-accent-fg-color)}.md-select__link:focus{background-color:var(--md-default-fg-color--lightest)}.md-sidebar{align-self:flex-start;flex-shrink:0;padding:1.2rem 0;position:-webkit-sticky;position:sticky;top:2.4rem;width:12.1rem}@media print{.md-sidebar{display:none}}@media screen and (max-width:76.1875em){[dir=ltr] .md-sidebar--primary{left:-12.1rem}[dir=rtl] .md-sidebar--primary{right:-12.1rem}.md-sidebar--primary{background-color:var(--md-default-bg-color);display:block;height:100%;position:fixed;top:0;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s;width:12.1rem;z-index:5}[data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{box-shadow:var(--md-shadow-z3);transform:translateX(12.1rem)}[dir=rtl] [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{transform:translateX(-12.1rem)}.md-sidebar--primary .md-sidebar__scrollwrap{bottom:0;left:0;margin:0;overflow:hidden;position:absolute;right:0;-ms-scroll-snap-type:none;scroll-snap-type:none;top:0}}@media screen and (min-width:76.25em){.md-sidebar{height:0}.no-js .md-sidebar{height:auto}}.md-sidebar--secondary{display:none;order:2}@media screen and (min-width:60em){.md-sidebar--secondary{height:0}.no-js .md-sidebar--secondary{height:auto}.md-sidebar--secondary:not([hidden]){display:block}.md-sidebar--secondary .md-sidebar__scrollwrap{touch-action:pan-y}}.md-sidebar__scrollwrap{-webkit-backface-visibility:hidden;backface-visibility:hidden;margin:0 .2rem;overflow-y:auto;scrollbar-color:var(--md-default-fg-color--lighter) transparent;scrollbar-width:thin}.md-sidebar__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) transparent}.md-sidebar__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@media screen and (max-width:76.1875em){.md-overlay{background-color:rgba(0,0,0,.54);height:0;opacity:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0;z-index:5}[data-md-toggle=drawer]:checked~.md-overlay{height:100%;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@-webkit-keyframes facts{0%{height:0}to{height:.65rem}}@keyframes facts{0%{height:0}to{height:.65rem}}@-webkit-keyframes fact{0%{opacity:0;transform:translateY(100%)}50%{opacity:0}to{opacity:1;transform:translateY(0)}}@keyframes fact{0%{opacity:0;transform:translateY(100%)}50%{opacity:0}to{opacity:1;transform:translateY(0)}}:root{--md-source-forks-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-repositories-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-stars-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-version-icon:url('data:image/svg+xml;charset=utf-8,')}.md-source{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;font-size:.65rem;line-height:1.2;outline-color:var(--md-accent-fg-color);transition:opacity .25s;white-space:nowrap}.md-source:hover{opacity:.7}.md-source__icon{display:inline-block;height:2.4rem;vertical-align:middle;width:2rem}[dir=ltr] .md-source__icon svg{margin-left:.6rem}[dir=rtl] .md-source__icon svg{margin-right:.6rem}.md-source__icon svg{margin-top:.6rem}[dir=ltr] .md-source__icon+.md-source__repository{margin-left:-2rem}[dir=rtl] .md-source__icon+.md-source__repository{margin-right:-2rem}[dir=ltr] .md-source__icon+.md-source__repository{padding-left:2rem}[dir=rtl] .md-source__icon+.md-source__repository{padding-right:2rem}[dir=ltr] .md-source__repository{margin-left:.6rem}[dir=rtl] .md-source__repository{margin-right:.6rem}.md-source__repository{display:inline-block;max-width:calc(100% - 1.2rem);overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.md-source__facts{font-size:.55rem;list-style-type:none;margin:.1rem 0 0;opacity:.75;overflow:hidden;padding:0}[data-md-state=done] .md-source__facts{-webkit-animation:facts .25s ease-in;animation:facts .25s ease-in}.md-source__fact{display:inline-block}[data-md-state=done] .md-source__fact{-webkit-animation:fact .4s ease-out;animation:fact .4s ease-out}[dir=ltr] .md-source__fact:before{margin-right:.1rem}[dir=rtl] .md-source__fact:before{margin-left:.1rem}.md-source__fact:before{background-color:currentColor;content:"";display:inline-block;height:.6rem;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:text-top;width:.6rem}[dir=ltr] .md-source__fact:nth-child(1n+2):before{margin-left:.4rem}[dir=rtl] .md-source__fact:nth-child(1n+2):before{margin-right:.4rem}.md-source__fact--version:before{-webkit-mask-image:var(--md-source-version-icon);mask-image:var(--md-source-version-icon)}.md-source__fact--stars:before{-webkit-mask-image:var(--md-source-stars-icon);mask-image:var(--md-source-stars-icon)}.md-source__fact--forks:before{-webkit-mask-image:var(--md-source-forks-icon);mask-image:var(--md-source-forks-icon)}.md-source__fact--repositories:before{-webkit-mask-image:var(--md-source-repositories-icon);mask-image:var(--md-source-repositories-icon)}.md-tabs{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);overflow:auto;width:100%}@media print{.md-tabs{display:none}}@media screen and (max-width:76.1875em){.md-tabs{display:none}}.md-tabs[data-md-state=hidden]{pointer-events:none}[dir=ltr] .md-tabs__list{margin-left:.2rem}[dir=rtl] .md-tabs__list{margin-right:.2rem}.md-tabs__list{contain:content;list-style:none;margin:0;padding:0;white-space:nowrap}.md-tabs__item{display:inline-block;height:2.4rem;padding-left:.6rem;padding-right:.6rem}.md-tabs__link{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;font-size:.7rem;margin-top:.8rem;opacity:.7;outline-color:var(--md-accent-fg-color);outline-offset:.2rem;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s}.md-tabs__link--active,.md-tabs__link:-webkit-any(:focus,:hover){color:inherit;opacity:1}.md-tabs__link--active,.md-tabs__link:-moz-any(:focus,:hover){color:inherit;opacity:1}.md-tabs__link--active,.md-tabs__link:is(:focus,:hover){color:inherit;opacity:1}.md-tabs__item:nth-child(2) .md-tabs__link{transition-delay:20ms}.md-tabs__item:nth-child(3) .md-tabs__link{transition-delay:40ms}.md-tabs__item:nth-child(4) .md-tabs__link{transition-delay:60ms}.md-tabs__item:nth-child(5) .md-tabs__link{transition-delay:80ms}.md-tabs__item:nth-child(6) .md-tabs__link{transition-delay:.1s}.md-tabs__item:nth-child(7) .md-tabs__link{transition-delay:.12s}.md-tabs__item:nth-child(8) .md-tabs__link{transition-delay:.14s}.md-tabs__item:nth-child(9) .md-tabs__link{transition-delay:.16s}.md-tabs__item:nth-child(10) .md-tabs__link{transition-delay:.18s}.md-tabs__item:nth-child(11) .md-tabs__link{transition-delay:.2s}.md-tabs__item:nth-child(12) .md-tabs__link{transition-delay:.22s}.md-tabs__item:nth-child(13) .md-tabs__link{transition-delay:.24s}.md-tabs__item:nth-child(14) .md-tabs__link{transition-delay:.26s}.md-tabs__item:nth-child(15) .md-tabs__link{transition-delay:.28s}.md-tabs__item:nth-child(16) .md-tabs__link{transition-delay:.3s}.md-tabs[data-md-state=hidden] .md-tabs__link{opacity:0;transform:translateY(50%);transition:transform 0ms .1s,opacity .1s}@-webkit-keyframes pulse{0%{box-shadow:0 0 0 0 var(--md-default-fg-color--lightest)}75%{box-shadow:0 0 0 .625em transparent}to{box-shadow:0 0 0 0 transparent}}@keyframes pulse{0%{box-shadow:0 0 0 0 var(--md-default-fg-color--lightest)}75%{box-shadow:0 0 0 .625em transparent}to{box-shadow:0 0 0 0 transparent}}:root{--md-tooltip-width:20rem}.md-tooltip{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);left:clamp(var(--md-tooltip-0,0rem) + .8rem,var(--md-tooltip-x),(100vw + var(--md-tooltip-0,0rem) + .8rem - var(--md-tooltip-width) - 2 * .8rem));max-height:0;max-width:calc(100vw - 1.6rem);opacity:0;position:absolute;top:var(--md-tooltip-y);transform:translateY(-.4rem);transition:transform 0ms .25s,opacity .25s,max-height 0ms .25s,z-index .25s;width:var(--md-tooltip-width);z-index:0}:focus-within>.md-tooltip{max-height:1000%;opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height .25s,z-index 0ms}.focus-visible>.md-tooltip{outline:var(--md-accent-fg-color) auto}.md-tooltip__inner{font-size:.64rem;padding:.8rem}.md-tooltip__inner.md-typeset>:first-child{margin-top:0}.md-tooltip__inner.md-typeset>:last-child{margin-bottom:0}.md-annotation{outline:none;white-space:normal}[dir=rtl] .md-annotation{direction:rtl}.md-annotation:not([hidden]){display:inline-block;line-height:1.325}.md-annotation:focus-within>*{z-index:2}.md-annotation__inner{font-family:var(--md-text-font-family);top:calc(var(--md-tooltip-y) + 1.2ch)}:not(:focus-within)>.md-annotation__inner{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.md-annotation__index{color:#fff;cursor:pointer;margin:0 1ch;position:relative;transition:z-index .25s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:0}.md-annotation__index:after{-webkit-animation:pulse 2s infinite;animation:pulse 2s infinite;background-color:var(--md-default-fg-color--lighter);border-radius:2ch;content:"";height:2.2ch;left:-.126em;margin:0 -.4ch;padding:0 .4ch;position:absolute;top:.025em;transition:color .25s,background-color .25s;width:calc(100% + 1.2ch);width:max(2.2ch,100% + 1.2ch);z-index:-1}@media (prefers-reduced-motion){.md-annotation__index:after{-webkit-animation:none;animation:none}}:-webkit-any(:focus-within,:hover)>.md-annotation__index:after{background-color:var(--md-accent-fg-color)}:-moz-any(:focus-within,:hover)>.md-annotation__index:after{background-color:var(--md-accent-fg-color)}:is(:focus-within,:hover)>.md-annotation__index:after{background-color:var(--md-accent-fg-color)}:focus-within>.md-annotation__index:after{-webkit-animation:none;animation:none;transition:color .25s,background-color .25s}.md-annotation__index [data-md-annotation-id]:before{content:attr(data-md-annotation-id);display:inline-block;transition:transform .4s cubic-bezier(.1,.7,.1,1)}@media not print{.md-annotation__index [data-md-annotation-id]:before{content:"+"}:focus-within>.md-annotation__index [data-md-annotation-id]:before{transform:rotate(45deg)}}:-webkit-any(:focus-within,:hover)>.md-annotation__index{color:var(--md-accent-bg-color)}:-moz-any(:focus-within,:hover)>.md-annotation__index{color:var(--md-accent-bg-color)}:is(:focus-within,:hover)>.md-annotation__index{color:var(--md-accent-bg-color)}:focus-within>.md-annotation__index{-webkit-animation:none;animation:none;transition:none}[dir=ltr] .md-top{margin-left:50%}[dir=rtl] .md-top{margin-right:50%}.md-top{background-color:var(--md-default-bg-color);border-radius:1.6rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color--light);font-size:.7rem;outline:none;padding:.4rem .8rem;position:fixed;top:3.2rem;transform:translate(-50%);transition:color 125ms,background-color 125ms,transform 125ms cubic-bezier(.4,0,.2,1),opacity 125ms;z-index:2}@media print{.md-top{display:none}}[dir=rtl] .md-top{transform:translate(50%)}.md-top[data-md-state=hidden]{opacity:0;pointer-events:none;transform:translate(-50%,.2rem);transition-duration:0ms}[dir=rtl] .md-top[data-md-state=hidden]{transform:translate(50%,.2rem)}.md-top:-webkit-any(:focus,:hover){background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-top:-moz-any(:focus,:hover){background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-top:is(:focus,:hover){background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-top svg{display:inline-block;vertical-align:-.5em}@-webkit-keyframes hoverfix{0%{pointer-events:none}}@keyframes hoverfix{0%{pointer-events:none}}:root{--md-version-icon:url('data:image/svg+xml;charset=utf-8,')}.md-version{flex-shrink:0;font-size:.8rem;height:2.4rem}[dir=ltr] .md-version__current{margin-left:1.4rem;margin-right:.4rem}[dir=rtl] .md-version__current{margin-left:.4rem;margin-right:1.4rem}.md-version__current{color:inherit;cursor:pointer;outline:none;position:relative;top:.05rem}[dir=ltr] .md-version__current:after{margin-left:.4rem}[dir=rtl] .md-version__current:after{margin-right:.4rem}.md-version__current:after{background-color:currentColor;content:"";display:inline-block;height:.6rem;-webkit-mask-image:var(--md-version-icon);mask-image:var(--md-version-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;width:.4rem}.md-version__list{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);list-style-type:none;margin:.2rem .8rem;max-height:0;opacity:0;overflow:auto;padding:0;position:absolute;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;top:.15rem;transition:max-height 0ms .5s,opacity .25s .25s;z-index:1}.md-version:-webkit-any(:focus-within,:hover) .md-version__list{max-height:10rem;opacity:1;-webkit-transition:max-height 0ms,opacity .25s;transition:max-height 0ms,opacity .25s}.md-version:-moz-any(:focus-within,:hover) .md-version__list{max-height:10rem;opacity:1;-moz-transition:max-height 0ms,opacity .25s;transition:max-height 0ms,opacity .25s}.md-version:is(:focus-within,:hover) .md-version__list{max-height:10rem;opacity:1;transition:max-height 0ms,opacity .25s}@media (pointer:coarse){.md-version:hover .md-version__list{-webkit-animation:hoverfix .25s forwards;animation:hoverfix .25s forwards}.md-version:focus-within .md-version__list{-webkit-animation:none;animation:none}}.md-version__item{line-height:1.8rem}[dir=ltr] .md-version__link{padding-left:.6rem;padding-right:1.2rem}[dir=rtl] .md-version__link{padding-left:1.2rem;padding-right:.6rem}.md-version__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:color .25s,background-color .25s;white-space:nowrap;width:100%}.md-version__link:-webkit-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-version__link:-moz-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-version__link:is(:focus,:hover){color:var(--md-accent-fg-color)}.md-version__link:focus{background-color:var(--md-default-fg-color--lightest)}:root{--md-admonition-icon--note:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--abstract:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--info:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--tip:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--success:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--question:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--warning:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--failure:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--danger:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--bug:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--quote:url('data:image/svg+xml;charset=utf-8,')}.md-typeset :-webkit-any(.admonition,details){background-color:var(--md-admonition-bg-color);border:0 solid #448aff;border-radius:.1rem;box-shadow:var(--md-shadow-z1);color:var(--md-admonition-fg-color);display:flow-root;font-size:.64rem;margin:1.5625em 0;padding:0 .6rem;page-break-inside:avoid}.md-typeset :-moz-any(.admonition,details){background-color:var(--md-admonition-bg-color);border:0 solid #448aff;border-radius:.1rem;box-shadow:var(--md-shadow-z1);color:var(--md-admonition-fg-color);display:flow-root;font-size:.64rem;margin:1.5625em 0;padding:0 .6rem;page-break-inside:avoid}[dir=ltr] .md-typeset :-webkit-any(.admonition,details){border-left-width:.2rem}[dir=ltr] .md-typeset :-moz-any(.admonition,details){border-left-width:.2rem}[dir=ltr] .md-typeset :is(.admonition,details){border-left-width:.2rem}[dir=rtl] .md-typeset :-webkit-any(.admonition,details){border-right-width:.2rem}[dir=rtl] .md-typeset :-moz-any(.admonition,details){border-right-width:.2rem}[dir=rtl] .md-typeset :is(.admonition,details){border-right-width:.2rem}.md-typeset :is(.admonition,details){background-color:var(--md-admonition-bg-color);border:0 solid #448aff;border-radius:.1rem;box-shadow:var(--md-shadow-z1);color:var(--md-admonition-fg-color);display:flow-root;font-size:.64rem;margin:1.5625em 0;padding:0 .6rem;page-break-inside:avoid}@media print{.md-typeset :-webkit-any(.admonition,details){box-shadow:none}.md-typeset :-moz-any(.admonition,details){box-shadow:none}.md-typeset :is(.admonition,details){box-shadow:none}}.md-typeset :-webkit-any(.admonition,details)>*{box-sizing:border-box}.md-typeset :-moz-any(.admonition,details)>*{box-sizing:border-box}.md-typeset :is(.admonition,details)>*{box-sizing:border-box}.md-typeset :-webkit-any(.admonition,details) :-webkit-any(.admonition,details){margin-bottom:1em;margin-top:1em}.md-typeset :-moz-any(.admonition,details) :-moz-any(.admonition,details){margin-bottom:1em;margin-top:1em}.md-typeset :is(.admonition,details) :is(.admonition,details){margin-bottom:1em;margin-top:1em}.md-typeset :-webkit-any(.admonition,details) .md-typeset__scrollwrap{margin:1em -.6rem}.md-typeset :-moz-any(.admonition,details) .md-typeset__scrollwrap{margin:1em -.6rem}.md-typeset :is(.admonition,details) .md-typeset__scrollwrap{margin:1em -.6rem}.md-typeset :-webkit-any(.admonition,details) .md-typeset__table{padding:0 .6rem}.md-typeset :-moz-any(.admonition,details) .md-typeset__table{padding:0 .6rem}.md-typeset :is(.admonition,details) .md-typeset__table{padding:0 .6rem}.md-typeset :-webkit-any(.admonition,details)>.tabbed-set:only-child{margin-top:0}.md-typeset :-moz-any(.admonition,details)>.tabbed-set:only-child{margin-top:0}.md-typeset :is(.admonition,details)>.tabbed-set:only-child{margin-top:0}html .md-typeset :-webkit-any(.admonition,details)>:last-child{margin-bottom:.6rem}html .md-typeset :-moz-any(.admonition,details)>:last-child{margin-bottom:.6rem}html .md-typeset :is(.admonition,details)>:last-child{margin-bottom:.6rem}.md-typeset :-webkit-any(.admonition-title,summary){background-color:rgba(68,138,255,.1);border:0 solid #448aff;font-weight:700;margin-bottom:0;margin-top:0;padding-bottom:.4rem;padding-top:.4rem;position:relative}.md-typeset :-moz-any(.admonition-title,summary){background-color:rgba(68,138,255,.1);border:0 solid #448aff;font-weight:700;margin-bottom:0;margin-top:0;padding-bottom:.4rem;padding-top:.4rem;position:relative}[dir=ltr] .md-typeset :-webkit-any(.admonition-title,summary){margin-left:-.8rem;margin-right:-.6rem}[dir=ltr] .md-typeset :-moz-any(.admonition-title,summary){margin-left:-.8rem;margin-right:-.6rem}[dir=ltr] .md-typeset :is(.admonition-title,summary){margin-left:-.8rem;margin-right:-.6rem}[dir=rtl] .md-typeset :-webkit-any(.admonition-title,summary){margin-left:-.6rem;margin-right:-.8rem}[dir=rtl] .md-typeset :-moz-any(.admonition-title,summary){margin-left:-.6rem;margin-right:-.8rem}[dir=rtl] .md-typeset :is(.admonition-title,summary){margin-left:-.6rem;margin-right:-.8rem}[dir=ltr] .md-typeset :-webkit-any(.admonition-title,summary){padding-left:2rem;padding-right:.6rem}[dir=ltr] .md-typeset :-moz-any(.admonition-title,summary){padding-left:2rem;padding-right:.6rem}[dir=ltr] .md-typeset :is(.admonition-title,summary){padding-left:2rem;padding-right:.6rem}[dir=rtl] .md-typeset :-webkit-any(.admonition-title,summary){padding-left:.6rem;padding-right:2rem}[dir=rtl] .md-typeset :-moz-any(.admonition-title,summary){padding-left:.6rem;padding-right:2rem}[dir=rtl] .md-typeset :is(.admonition-title,summary){padding-left:.6rem;padding-right:2rem}[dir=ltr] .md-typeset :-webkit-any(.admonition-title,summary){border-left-width:.2rem}[dir=ltr] .md-typeset :-moz-any(.admonition-title,summary){border-left-width:.2rem}[dir=ltr] .md-typeset :is(.admonition-title,summary){border-left-width:.2rem}[dir=rtl] .md-typeset :-webkit-any(.admonition-title,summary){border-right-width:.2rem}[dir=rtl] .md-typeset :-moz-any(.admonition-title,summary){border-right-width:.2rem}[dir=rtl] .md-typeset :is(.admonition-title,summary){border-right-width:.2rem}[dir=ltr] .md-typeset :-webkit-any(.admonition-title,summary){border-top-left-radius:.1rem}[dir=ltr] .md-typeset :-moz-any(.admonition-title,summary){border-top-left-radius:.1rem}[dir=ltr] .md-typeset :is(.admonition-title,summary){border-top-left-radius:.1rem}[dir=rtl] .md-typeset :-webkit-any(.admonition-title,summary){border-top-right-radius:.1rem}[dir=rtl] .md-typeset :-moz-any(.admonition-title,summary){border-top-right-radius:.1rem}[dir=rtl] .md-typeset :is(.admonition-title,summary){border-top-right-radius:.1rem}.md-typeset :is(.admonition-title,summary){background-color:rgba(68,138,255,.1);border:0 solid #448aff;font-weight:700;margin-bottom:0;margin-top:0;padding-bottom:.4rem;padding-top:.4rem;position:relative}html .md-typeset :-webkit-any(.admonition-title,summary):last-child{margin-bottom:0}html .md-typeset :-moz-any(.admonition-title,summary):last-child{margin-bottom:0}html .md-typeset :is(.admonition-title,summary):last-child{margin-bottom:0}.md-typeset :-webkit-any(.admonition-title,summary):before{background-color:#448aff;content:"";height:1rem;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;width:1rem}.md-typeset :-moz-any(.admonition-title,summary):before{background-color:#448aff;content:"";height:1rem;mask-image:var(--md-admonition-icon--note);mask-repeat:no-repeat;mask-size:contain;position:absolute;top:.625em;width:1rem}[dir=ltr] .md-typeset :-webkit-any(.admonition-title,summary):before{left:.6rem}[dir=ltr] .md-typeset :-moz-any(.admonition-title,summary):before{left:.6rem}[dir=ltr] .md-typeset :is(.admonition-title,summary):before{left:.6rem}[dir=rtl] .md-typeset :-webkit-any(.admonition-title,summary):before{right:.6rem}[dir=rtl] .md-typeset :-moz-any(.admonition-title,summary):before{right:.6rem}[dir=rtl] .md-typeset :is(.admonition-title,summary):before{right:.6rem}.md-typeset :is(.admonition-title,summary):before{background-color:#448aff;content:"";height:1rem;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;width:1rem}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.note){border-color:#448aff}.md-typeset :-moz-any(.admonition,details):-moz-any(.note){border-color:#448aff}.md-typeset :is(.admonition,details):is(.note){border-color:#448aff}.md-typeset :-webkit-any(.note)>:-webkit-any(.admonition-title,summary){background-color:rgba(68,138,255,.1);border-color:#448aff}.md-typeset :-moz-any(.note)>:-moz-any(.admonition-title,summary){background-color:rgba(68,138,255,.1);border-color:#448aff}.md-typeset :is(.note)>:is(.admonition-title,summary){background-color:rgba(68,138,255,.1);border-color:#448aff}.md-typeset :-webkit-any(.note)>:-webkit-any(.admonition-title,summary):before{background-color:#448aff;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.note)>:-moz-any(.admonition-title,summary):before{background-color:#448aff;mask-image:var(--md-admonition-icon--note);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.note)>:is(.admonition-title,summary):before{background-color:#448aff;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.abstract,.summary,.tldr){border-color:#00b0ff}.md-typeset :-moz-any(.admonition,details):-moz-any(.abstract,.summary,.tldr){border-color:#00b0ff}.md-typeset :is(.admonition,details):is(.abstract,.summary,.tldr){border-color:#00b0ff}.md-typeset :-webkit-any(.abstract,.summary,.tldr)>:-webkit-any(.admonition-title,summary){background-color:rgba(0,176,255,.1);border-color:#00b0ff}.md-typeset :-moz-any(.abstract,.summary,.tldr)>:-moz-any(.admonition-title,summary){background-color:rgba(0,176,255,.1);border-color:#00b0ff}.md-typeset :is(.abstract,.summary,.tldr)>:is(.admonition-title,summary){background-color:rgba(0,176,255,.1);border-color:#00b0ff}.md-typeset :-webkit-any(.abstract,.summary,.tldr)>:-webkit-any(.admonition-title,summary):before{background-color:#00b0ff;-webkit-mask-image:var(--md-admonition-icon--abstract);mask-image:var(--md-admonition-icon--abstract);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.abstract,.summary,.tldr)>:-moz-any(.admonition-title,summary):before{background-color:#00b0ff;mask-image:var(--md-admonition-icon--abstract);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.abstract,.summary,.tldr)>:is(.admonition-title,summary):before{background-color:#00b0ff;-webkit-mask-image:var(--md-admonition-icon--abstract);mask-image:var(--md-admonition-icon--abstract);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.info,.todo){border-color:#00b8d4}.md-typeset :-moz-any(.admonition,details):-moz-any(.info,.todo){border-color:#00b8d4}.md-typeset :is(.admonition,details):is(.info,.todo){border-color:#00b8d4}.md-typeset :-webkit-any(.info,.todo)>:-webkit-any(.admonition-title,summary){background-color:rgba(0,184,212,.1);border-color:#00b8d4}.md-typeset :-moz-any(.info,.todo)>:-moz-any(.admonition-title,summary){background-color:rgba(0,184,212,.1);border-color:#00b8d4}.md-typeset :is(.info,.todo)>:is(.admonition-title,summary){background-color:rgba(0,184,212,.1);border-color:#00b8d4}.md-typeset :-webkit-any(.info,.todo)>:-webkit-any(.admonition-title,summary):before{background-color:#00b8d4;-webkit-mask-image:var(--md-admonition-icon--info);mask-image:var(--md-admonition-icon--info);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.info,.todo)>:-moz-any(.admonition-title,summary):before{background-color:#00b8d4;mask-image:var(--md-admonition-icon--info);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.info,.todo)>:is(.admonition-title,summary):before{background-color:#00b8d4;-webkit-mask-image:var(--md-admonition-icon--info);mask-image:var(--md-admonition-icon--info);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.tip,.hint,.important){border-color:#00bfa5}.md-typeset :-moz-any(.admonition,details):-moz-any(.tip,.hint,.important){border-color:#00bfa5}.md-typeset :is(.admonition,details):is(.tip,.hint,.important){border-color:#00bfa5}.md-typeset :-webkit-any(.tip,.hint,.important)>:-webkit-any(.admonition-title,summary){background-color:rgba(0,191,165,.1);border-color:#00bfa5}.md-typeset :-moz-any(.tip,.hint,.important)>:-moz-any(.admonition-title,summary){background-color:rgba(0,191,165,.1);border-color:#00bfa5}.md-typeset :is(.tip,.hint,.important)>:is(.admonition-title,summary){background-color:rgba(0,191,165,.1);border-color:#00bfa5}.md-typeset :-webkit-any(.tip,.hint,.important)>:-webkit-any(.admonition-title,summary):before{background-color:#00bfa5;-webkit-mask-image:var(--md-admonition-icon--tip);mask-image:var(--md-admonition-icon--tip);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.tip,.hint,.important)>:-moz-any(.admonition-title,summary):before{background-color:#00bfa5;mask-image:var(--md-admonition-icon--tip);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.tip,.hint,.important)>:is(.admonition-title,summary):before{background-color:#00bfa5;-webkit-mask-image:var(--md-admonition-icon--tip);mask-image:var(--md-admonition-icon--tip);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.success,.check,.done){border-color:#00c853}.md-typeset :-moz-any(.admonition,details):-moz-any(.success,.check,.done){border-color:#00c853}.md-typeset :is(.admonition,details):is(.success,.check,.done){border-color:#00c853}.md-typeset :-webkit-any(.success,.check,.done)>:-webkit-any(.admonition-title,summary){background-color:rgba(0,200,83,.1);border-color:#00c853}.md-typeset :-moz-any(.success,.check,.done)>:-moz-any(.admonition-title,summary){background-color:rgba(0,200,83,.1);border-color:#00c853}.md-typeset :is(.success,.check,.done)>:is(.admonition-title,summary){background-color:rgba(0,200,83,.1);border-color:#00c853}.md-typeset :-webkit-any(.success,.check,.done)>:-webkit-any(.admonition-title,summary):before{background-color:#00c853;-webkit-mask-image:var(--md-admonition-icon--success);mask-image:var(--md-admonition-icon--success);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.success,.check,.done)>:-moz-any(.admonition-title,summary):before{background-color:#00c853;mask-image:var(--md-admonition-icon--success);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.success,.check,.done)>:is(.admonition-title,summary):before{background-color:#00c853;-webkit-mask-image:var(--md-admonition-icon--success);mask-image:var(--md-admonition-icon--success);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.question,.help,.faq){border-color:#64dd17}.md-typeset :-moz-any(.admonition,details):-moz-any(.question,.help,.faq){border-color:#64dd17}.md-typeset :is(.admonition,details):is(.question,.help,.faq){border-color:#64dd17}.md-typeset :-webkit-any(.question,.help,.faq)>:-webkit-any(.admonition-title,summary){background-color:rgba(100,221,23,.1);border-color:#64dd17}.md-typeset :-moz-any(.question,.help,.faq)>:-moz-any(.admonition-title,summary){background-color:rgba(100,221,23,.1);border-color:#64dd17}.md-typeset :is(.question,.help,.faq)>:is(.admonition-title,summary){background-color:rgba(100,221,23,.1);border-color:#64dd17}.md-typeset :-webkit-any(.question,.help,.faq)>:-webkit-any(.admonition-title,summary):before{background-color:#64dd17;-webkit-mask-image:var(--md-admonition-icon--question);mask-image:var(--md-admonition-icon--question);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.question,.help,.faq)>:-moz-any(.admonition-title,summary):before{background-color:#64dd17;mask-image:var(--md-admonition-icon--question);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.question,.help,.faq)>:is(.admonition-title,summary):before{background-color:#64dd17;-webkit-mask-image:var(--md-admonition-icon--question);mask-image:var(--md-admonition-icon--question);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.warning,.caution,.attention){border-color:#ff9100}.md-typeset :-moz-any(.admonition,details):-moz-any(.warning,.caution,.attention){border-color:#ff9100}.md-typeset :is(.admonition,details):is(.warning,.caution,.attention){border-color:#ff9100}.md-typeset :-webkit-any(.warning,.caution,.attention)>:-webkit-any(.admonition-title,summary){background-color:rgba(255,145,0,.1);border-color:#ff9100}.md-typeset :-moz-any(.warning,.caution,.attention)>:-moz-any(.admonition-title,summary){background-color:rgba(255,145,0,.1);border-color:#ff9100}.md-typeset :is(.warning,.caution,.attention)>:is(.admonition-title,summary){background-color:rgba(255,145,0,.1);border-color:#ff9100}.md-typeset :-webkit-any(.warning,.caution,.attention)>:-webkit-any(.admonition-title,summary):before{background-color:#ff9100;-webkit-mask-image:var(--md-admonition-icon--warning);mask-image:var(--md-admonition-icon--warning);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.warning,.caution,.attention)>:-moz-any(.admonition-title,summary):before{background-color:#ff9100;mask-image:var(--md-admonition-icon--warning);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.warning,.caution,.attention)>:is(.admonition-title,summary):before{background-color:#ff9100;-webkit-mask-image:var(--md-admonition-icon--warning);mask-image:var(--md-admonition-icon--warning);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.failure,.fail,.missing){border-color:#ff5252}.md-typeset :-moz-any(.admonition,details):-moz-any(.failure,.fail,.missing){border-color:#ff5252}.md-typeset :is(.admonition,details):is(.failure,.fail,.missing){border-color:#ff5252}.md-typeset :-webkit-any(.failure,.fail,.missing)>:-webkit-any(.admonition-title,summary){background-color:rgba(255,82,82,.1);border-color:#ff5252}.md-typeset :-moz-any(.failure,.fail,.missing)>:-moz-any(.admonition-title,summary){background-color:rgba(255,82,82,.1);border-color:#ff5252}.md-typeset :is(.failure,.fail,.missing)>:is(.admonition-title,summary){background-color:rgba(255,82,82,.1);border-color:#ff5252}.md-typeset :-webkit-any(.failure,.fail,.missing)>:-webkit-any(.admonition-title,summary):before{background-color:#ff5252;-webkit-mask-image:var(--md-admonition-icon--failure);mask-image:var(--md-admonition-icon--failure);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.failure,.fail,.missing)>:-moz-any(.admonition-title,summary):before{background-color:#ff5252;mask-image:var(--md-admonition-icon--failure);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.failure,.fail,.missing)>:is(.admonition-title,summary):before{background-color:#ff5252;-webkit-mask-image:var(--md-admonition-icon--failure);mask-image:var(--md-admonition-icon--failure);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.danger,.error){border-color:#ff1744}.md-typeset :-moz-any(.admonition,details):-moz-any(.danger,.error){border-color:#ff1744}.md-typeset :is(.admonition,details):is(.danger,.error){border-color:#ff1744}.md-typeset :-webkit-any(.danger,.error)>:-webkit-any(.admonition-title,summary){background-color:rgba(255,23,68,.1);border-color:#ff1744}.md-typeset :-moz-any(.danger,.error)>:-moz-any(.admonition-title,summary){background-color:rgba(255,23,68,.1);border-color:#ff1744}.md-typeset :is(.danger,.error)>:is(.admonition-title,summary){background-color:rgba(255,23,68,.1);border-color:#ff1744}.md-typeset :-webkit-any(.danger,.error)>:-webkit-any(.admonition-title,summary):before{background-color:#ff1744;-webkit-mask-image:var(--md-admonition-icon--danger);mask-image:var(--md-admonition-icon--danger);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.danger,.error)>:-moz-any(.admonition-title,summary):before{background-color:#ff1744;mask-image:var(--md-admonition-icon--danger);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.danger,.error)>:is(.admonition-title,summary):before{background-color:#ff1744;-webkit-mask-image:var(--md-admonition-icon--danger);mask-image:var(--md-admonition-icon--danger);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.bug){border-color:#f50057}.md-typeset :-moz-any(.admonition,details):-moz-any(.bug){border-color:#f50057}.md-typeset :is(.admonition,details):is(.bug){border-color:#f50057}.md-typeset :-webkit-any(.bug)>:-webkit-any(.admonition-title,summary){background-color:rgba(245,0,87,.1);border-color:#f50057}.md-typeset :-moz-any(.bug)>:-moz-any(.admonition-title,summary){background-color:rgba(245,0,87,.1);border-color:#f50057}.md-typeset :is(.bug)>:is(.admonition-title,summary){background-color:rgba(245,0,87,.1);border-color:#f50057}.md-typeset :-webkit-any(.bug)>:-webkit-any(.admonition-title,summary):before{background-color:#f50057;-webkit-mask-image:var(--md-admonition-icon--bug);mask-image:var(--md-admonition-icon--bug);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.bug)>:-moz-any(.admonition-title,summary):before{background-color:#f50057;mask-image:var(--md-admonition-icon--bug);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.bug)>:is(.admonition-title,summary):before{background-color:#f50057;-webkit-mask-image:var(--md-admonition-icon--bug);mask-image:var(--md-admonition-icon--bug);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.example){border-color:#7c4dff}.md-typeset :-moz-any(.admonition,details):-moz-any(.example){border-color:#7c4dff}.md-typeset :is(.admonition,details):is(.example){border-color:#7c4dff}.md-typeset :-webkit-any(.example)>:-webkit-any(.admonition-title,summary){background-color:rgba(124,77,255,.1);border-color:#7c4dff}.md-typeset :-moz-any(.example)>:-moz-any(.admonition-title,summary){background-color:rgba(124,77,255,.1);border-color:#7c4dff}.md-typeset :is(.example)>:is(.admonition-title,summary){background-color:rgba(124,77,255,.1);border-color:#7c4dff}.md-typeset :-webkit-any(.example)>:-webkit-any(.admonition-title,summary):before{background-color:#7c4dff;-webkit-mask-image:var(--md-admonition-icon--example);mask-image:var(--md-admonition-icon--example);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.example)>:-moz-any(.admonition-title,summary):before{background-color:#7c4dff;mask-image:var(--md-admonition-icon--example);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.example)>:is(.admonition-title,summary):before{background-color:#7c4dff;-webkit-mask-image:var(--md-admonition-icon--example);mask-image:var(--md-admonition-icon--example);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.quote,.cite){border-color:#9e9e9e}.md-typeset :-moz-any(.admonition,details):-moz-any(.quote,.cite){border-color:#9e9e9e}.md-typeset :is(.admonition,details):is(.quote,.cite){border-color:#9e9e9e}.md-typeset :-webkit-any(.quote,.cite)>:-webkit-any(.admonition-title,summary){background-color:hsla(0,0%,62%,.1);border-color:#9e9e9e}.md-typeset :-moz-any(.quote,.cite)>:-moz-any(.admonition-title,summary){background-color:hsla(0,0%,62%,.1);border-color:#9e9e9e}.md-typeset :is(.quote,.cite)>:is(.admonition-title,summary){background-color:hsla(0,0%,62%,.1);border-color:#9e9e9e}.md-typeset :-webkit-any(.quote,.cite)>:-webkit-any(.admonition-title,summary):before{background-color:#9e9e9e;-webkit-mask-image:var(--md-admonition-icon--quote);mask-image:var(--md-admonition-icon--quote);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.quote,.cite)>:-moz-any(.admonition-title,summary):before{background-color:#9e9e9e;mask-image:var(--md-admonition-icon--quote);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.quote,.cite)>:is(.admonition-title,summary):before{background-color:#9e9e9e;-webkit-mask-image:var(--md-admonition-icon--quote);mask-image:var(--md-admonition-icon--quote);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}:root{--md-footnotes-icon:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .footnote{color:var(--md-default-fg-color--light);font-size:.64rem}[dir=ltr] .md-typeset .footnote>ol{margin-left:0}[dir=rtl] .md-typeset .footnote>ol{margin-right:0}.md-typeset .footnote>ol>li{transition:color 125ms}.md-typeset .footnote>ol>li:target{color:var(--md-default-fg-color)}.md-typeset .footnote>ol>li:focus-within .footnote-backref{opacity:1;transform:translateX(0);transition:none}.md-typeset .footnote>ol>li:-webkit-any(:hover,:target) .footnote-backref{opacity:1;transform:translateX(0)}.md-typeset .footnote>ol>li:-moz-any(:hover,:target) .footnote-backref{opacity:1;transform:translateX(0)}.md-typeset .footnote>ol>li:is(:hover,:target) .footnote-backref{opacity:1;transform:translateX(0)}.md-typeset .footnote>ol>li>:first-child{margin-top:0}.md-typeset .footnote-ref{font-size:.75em;font-weight:700}html .md-typeset .footnote-ref{outline-offset:.1rem}.md-typeset [id^="fnref:"]:target>.footnote-ref{outline:auto}.md-typeset .footnote-backref{color:var(--md-typeset-a-color);display:inline-block;font-size:0;opacity:0;transform:translateX(.25rem);transition:color .25s,transform .25s .25s,opacity 125ms .25s;vertical-align:text-bottom}@media print{.md-typeset .footnote-backref{color:var(--md-typeset-a-color);opacity:1;transform:translateX(0)}}[dir=rtl] .md-typeset .footnote-backref{transform:translateX(-.25rem)}.md-typeset .footnote-backref:hover{color:var(--md-accent-fg-color)}.md-typeset .footnote-backref:before{background-color:currentColor;content:"";display:inline-block;height:.8rem;-webkit-mask-image:var(--md-footnotes-icon);mask-image:var(--md-footnotes-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:.8rem}[dir=rtl] .md-typeset .footnote-backref:before svg{transform:scaleX(-1)}[dir=ltr] .md-typeset .headerlink{margin-left:.5rem}[dir=rtl] .md-typeset .headerlink{margin-right:.5rem}.md-typeset .headerlink{color:var(--md-default-fg-color--lighter);display:inline-block;opacity:0;transition:color .25s,opacity 125ms}@media print{.md-typeset .headerlink{display:none}}.md-typeset .headerlink:focus,.md-typeset :-webkit-any(:hover,:target)>.headerlink{opacity:1;-webkit-transition:color .25s,opacity 125ms;transition:color .25s,opacity 125ms}.md-typeset .headerlink:focus,.md-typeset :-moz-any(:hover,:target)>.headerlink{opacity:1;-moz-transition:color .25s,opacity 125ms;transition:color .25s,opacity 125ms}.md-typeset .headerlink:focus,.md-typeset :is(:hover,:target)>.headerlink{opacity:1;transition:color .25s,opacity 125ms}.md-typeset .headerlink:-webkit-any(:focus,:hover),.md-typeset :target>.headerlink{color:var(--md-accent-fg-color)}.md-typeset .headerlink:-moz-any(:focus,:hover),.md-typeset :target>.headerlink{color:var(--md-accent-fg-color)}.md-typeset .headerlink:is(:focus,:hover),.md-typeset :target>.headerlink{color:var(--md-accent-fg-color)}.md-typeset :target{--md-scroll-margin:3.6rem;--md-scroll-offset:0rem;scroll-margin-top:calc(var(--md-scroll-margin) - var(--md-scroll-offset))}@media screen and (min-width:76.25em){.md-header--lifted~.md-container .md-typeset :target{--md-scroll-margin:6rem}}.md-typeset :-webkit-any(h1,h2,h3):target{--md-scroll-offset:0.2rem}.md-typeset :-moz-any(h1,h2,h3):target{--md-scroll-offset:0.2rem}.md-typeset :is(h1,h2,h3):target{--md-scroll-offset:0.2rem}.md-typeset h4:target{--md-scroll-offset:0.15rem}.md-typeset div.arithmatex{overflow:auto}@media screen and (max-width:44.9375em){.md-typeset div.arithmatex{margin:0 -.8rem}}.md-typeset div.arithmatex>*{margin-left:auto!important;margin-right:auto!important;padding:0 .8rem;touch-action:auto;width:-webkit-min-content;width:-moz-min-content;width:min-content}.md-typeset div.arithmatex>* mjx-container{margin:0!important}.md-typeset :-webkit-any(del,ins,.comment).critic{-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset :-moz-any(del,ins,.comment).critic{box-decoration-break:clone}.md-typeset :is(del,ins,.comment).critic{-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset del.critic{background-color:var(--md-typeset-del-color)}.md-typeset ins.critic{background-color:var(--md-typeset-ins-color)}.md-typeset .critic.comment{color:var(--md-code-hl-comment-color)}.md-typeset .critic.comment:before{content:"/* "}.md-typeset .critic.comment:after{content:" */"}.md-typeset .critic.block{box-shadow:none;display:block;margin:1em 0;overflow:auto;padding-left:.8rem;padding-right:.8rem}.md-typeset .critic.block>:first-child{margin-top:.5em}.md-typeset .critic.block>:last-child{margin-bottom:.5em}:root{--md-details-icon:url('data:image/svg+xml;charset=utf-8,')}.md-typeset details{display:flow-root;overflow:visible;padding-top:0}.md-typeset details[open]>summary:after{transform:rotate(90deg)}.md-typeset details:not([open]){box-shadow:none;padding-bottom:0}.md-typeset details:not([open])>summary{border-radius:.1rem}[dir=ltr] .md-typeset summary{padding-right:1.8rem}[dir=rtl] .md-typeset summary{padding-left:1.8rem}[dir=ltr] .md-typeset summary{border-top-left-radius:.1rem}[dir=rtl] .md-typeset summary{border-top-right-radius:.1rem}[dir=ltr] .md-typeset summary{border-top-right-radius:.1rem}[dir=rtl] .md-typeset summary{border-top-left-radius:.1rem}.md-typeset summary{cursor:pointer;display:block;min-height:1rem}.md-typeset summary.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset summary:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}[dir=ltr] .md-typeset summary:after{right:.4rem}[dir=rtl] .md-typeset summary:after{left:.4rem}.md-typeset summary:after{background-color:currentColor;content:"";height:1rem;-webkit-mask-image:var(--md-details-icon);mask-image:var(--md-details-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;transform:rotate(0deg);transition:transform .25s;width:1rem}[dir=rtl] .md-typeset summary:after{transform:rotate(180deg)}.md-typeset summary::marker{display:none}.md-typeset summary::-webkit-details-marker{display:none}.md-typeset :-webkit-any(.emojione,.twemoji,.gemoji){display:inline-flex;height:1.125em;vertical-align:text-top}.md-typeset :-moz-any(.emojione,.twemoji,.gemoji){display:inline-flex;height:1.125em;vertical-align:text-top}.md-typeset :is(.emojione,.twemoji,.gemoji){display:inline-flex;height:1.125em;vertical-align:text-top}.md-typeset :-webkit-any(.emojione,.twemoji,.gemoji) svg{fill:currentColor;max-height:100%;width:1.125em}.md-typeset :-moz-any(.emojione,.twemoji,.gemoji) svg{fill:currentColor;max-height:100%;width:1.125em}.md-typeset :is(.emojione,.twemoji,.gemoji) svg{fill:currentColor;max-height:100%;width:1.125em}.highlight :-webkit-any(.o,.ow){color:var(--md-code-hl-operator-color)}.highlight :-moz-any(.o,.ow){color:var(--md-code-hl-operator-color)}.highlight :is(.o,.ow){color:var(--md-code-hl-operator-color)}.highlight .p{color:var(--md-code-hl-punctuation-color)}.highlight :-webkit-any(.cpf,.l,.s,.sb,.sc,.s2,.si,.s1,.ss){color:var(--md-code-hl-string-color)}.highlight :-moz-any(.cpf,.l,.s,.sb,.sc,.s2,.si,.s1,.ss){color:var(--md-code-hl-string-color)}.highlight :is(.cpf,.l,.s,.sb,.sc,.s2,.si,.s1,.ss){color:var(--md-code-hl-string-color)}.highlight :-webkit-any(.cp,.se,.sh,.sr,.sx){color:var(--md-code-hl-special-color)}.highlight :-moz-any(.cp,.se,.sh,.sr,.sx){color:var(--md-code-hl-special-color)}.highlight :is(.cp,.se,.sh,.sr,.sx){color:var(--md-code-hl-special-color)}.highlight :-webkit-any(.m,.mb,.mf,.mh,.mi,.il,.mo){color:var(--md-code-hl-number-color)}.highlight :-moz-any(.m,.mb,.mf,.mh,.mi,.il,.mo){color:var(--md-code-hl-number-color)}.highlight :is(.m,.mb,.mf,.mh,.mi,.il,.mo){color:var(--md-code-hl-number-color)}.highlight :-webkit-any(.k,.kd,.kn,.kp,.kr,.kt){color:var(--md-code-hl-keyword-color)}.highlight :-moz-any(.k,.kd,.kn,.kp,.kr,.kt){color:var(--md-code-hl-keyword-color)}.highlight :is(.k,.kd,.kn,.kp,.kr,.kt){color:var(--md-code-hl-keyword-color)}.highlight :-webkit-any(.kc,.n){color:var(--md-code-hl-name-color)}.highlight :-moz-any(.kc,.n){color:var(--md-code-hl-name-color)}.highlight :is(.kc,.n){color:var(--md-code-hl-name-color)}.highlight :-webkit-any(.no,.nb,.bp){color:var(--md-code-hl-constant-color)}.highlight :-moz-any(.no,.nb,.bp){color:var(--md-code-hl-constant-color)}.highlight :is(.no,.nb,.bp){color:var(--md-code-hl-constant-color)}.highlight :-webkit-any(.nc,.ne,.nf,.nn){color:var(--md-code-hl-function-color)}.highlight :-moz-any(.nc,.ne,.nf,.nn){color:var(--md-code-hl-function-color)}.highlight :is(.nc,.ne,.nf,.nn){color:var(--md-code-hl-function-color)}.highlight :-webkit-any(.nd,.ni,.nl,.nt){color:var(--md-code-hl-keyword-color)}.highlight :-moz-any(.nd,.ni,.nl,.nt){color:var(--md-code-hl-keyword-color)}.highlight :is(.nd,.ni,.nl,.nt){color:var(--md-code-hl-keyword-color)}.highlight :-webkit-any(.c,.cm,.c1,.ch,.cs,.sd){color:var(--md-code-hl-comment-color)}.highlight :-moz-any(.c,.cm,.c1,.ch,.cs,.sd){color:var(--md-code-hl-comment-color)}.highlight :is(.c,.cm,.c1,.ch,.cs,.sd){color:var(--md-code-hl-comment-color)}.highlight :-webkit-any(.na,.nv,.vc,.vg,.vi){color:var(--md-code-hl-variable-color)}.highlight :-moz-any(.na,.nv,.vc,.vg,.vi){color:var(--md-code-hl-variable-color)}.highlight :is(.na,.nv,.vc,.vg,.vi){color:var(--md-code-hl-variable-color)}.highlight :-webkit-any(.ge,.gr,.gh,.go,.gp,.gs,.gu,.gt){color:var(--md-code-hl-generic-color)}.highlight :-moz-any(.ge,.gr,.gh,.go,.gp,.gs,.gu,.gt){color:var(--md-code-hl-generic-color)}.highlight :is(.ge,.gr,.gh,.go,.gp,.gs,.gu,.gt){color:var(--md-code-hl-generic-color)}.highlight :-webkit-any(.gd,.gi){border-radius:.1rem;margin:0 -.125em;padding:0 .125em}.highlight :-moz-any(.gd,.gi){border-radius:.1rem;margin:0 -.125em;padding:0 .125em}.highlight :is(.gd,.gi){border-radius:.1rem;margin:0 -.125em;padding:0 .125em}.highlight .gd{background-color:var(--md-typeset-del-color)}.highlight .gi{background-color:var(--md-typeset-ins-color)}.highlight .hll{background-color:var(--md-code-hl-color);display:block;margin:0 -1.1764705882em;padding:0 1.1764705882em}.highlight span.filename{background-color:var(--md-code-bg-color);border-bottom:.05rem solid var(--md-default-fg-color--lightest);border-top-left-radius:.1rem;border-top-right-radius:.1rem;display:block;font-size:.85em;font-weight:700;margin-top:1em;padding:.6617647059em 1.1764705882em;position:relative}.highlight span.filename+pre{margin-top:0}.highlight span.filename+pre>code{border-top-left-radius:0;border-top-right-radius:0}.highlight [data-linenos]:before{background-color:var(--md-code-bg-color);box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;color:var(--md-default-fg-color--light);content:attr(data-linenos);float:left;left:-1.1764705882em;margin-left:-1.1764705882em;margin-right:1.1764705882em;padding-left:1.1764705882em;position:-webkit-sticky;position:sticky;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:3}.highlight code a[id]{position:absolute;visibility:hidden}.highlight code[data-md-copying] .hll{display:contents}.highlight code[data-md-copying] .md-annotation{display:none}.highlighttable{display:flow-root}.highlighttable :-webkit-any(tbody,td){display:block;padding:0}.highlighttable :-moz-any(tbody,td){display:block;padding:0}.highlighttable :is(tbody,td){display:block;padding:0}.highlighttable tr{display:flex}.highlighttable pre{margin:0}.highlighttable th.filename{flex-grow:1;padding:0;text-align:left}.highlighttable .linenos{background-color:var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-top-left-radius:.1rem;font-size:.85em;padding:.7720588235em 0 .7720588235em 1.1764705882em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.highlighttable .linenodiv{box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;padding-right:.5882352941em}.highlighttable .linenodiv pre{color:var(--md-default-fg-color--light);text-align:right}.highlighttable .code{flex:1;min-width:0}.linenodiv a{color:inherit}.md-typeset .highlighttable{direction:ltr;margin:1em 0}.md-typeset .highlighttable code{border-bottom-left-radius:0;border-top-left-radius:0}.md-typeset :-webkit-any(.highlight,.highlighttable)+.result{border:.05rem solid var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-bottom-right-radius:.1rem;border-top-width:.1rem;margin-top:-1.125em;overflow:visible;padding:0 1em}.md-typeset :-moz-any(.highlight,.highlighttable)+.result{border:.05rem solid var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-bottom-right-radius:.1rem;border-top-width:.1rem;margin-top:-1.125em;overflow:visible;padding:0 1em}.md-typeset :is(.highlight,.highlighttable)+.result{border:.05rem solid var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-bottom-right-radius:.1rem;border-top-width:.1rem;margin-top:-1.125em;overflow:visible;padding:0 1em}.md-typeset :-webkit-any(.highlight,.highlighttable)+.result:after{clear:both;content:"";display:block}.md-typeset :-moz-any(.highlight,.highlighttable)+.result:after{clear:both;content:"";display:block}.md-typeset :is(.highlight,.highlighttable)+.result:after{clear:both;content:"";display:block}@media screen and (max-width:44.9375em){.md-content__inner>.highlight{margin:1em -.8rem}.md-content__inner>.highlight .hll{margin:0 -.8rem;padding:0 .8rem}.md-content__inner>.highlight code{border-radius:0}.md-content__inner>.highlight+.result{border-left-width:0;border-radius:0;border-right-width:0;margin-left:-.8rem;margin-right:-.8rem}.md-content__inner>.highlighttable{border-radius:0;margin:1em -.8rem}.md-content__inner>.highlighttable .hll{margin:0 -.8rem;padding:0 .8rem}}.md-typeset .keys kbd:-webkit-any(:before,:after){-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;color:inherit;margin:0;position:relative}.md-typeset .keys kbd:-moz-any(:before,:after){-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;color:inherit;margin:0;position:relative}.md-typeset .keys kbd:is(:before,:after){-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;color:inherit;margin:0;position:relative}.md-typeset .keys span{color:var(--md-default-fg-color--light);padding:0 .2em}.md-typeset .keys .key-alt:before{content:"⎇";padding-right:.4em}.md-typeset .keys .key-left-alt:before{content:"⎇";padding-right:.4em}.md-typeset .keys .key-right-alt:before{content:"⎇";padding-right:.4em}.md-typeset .keys .key-command:before{content:"⌘";padding-right:.4em}.md-typeset .keys .key-left-command:before{content:"⌘";padding-right:.4em}.md-typeset .keys .key-right-command:before{content:"⌘";padding-right:.4em}.md-typeset .keys .key-control:before{content:"⌃";padding-right:.4em}.md-typeset .keys .key-left-control:before{content:"⌃";padding-right:.4em}.md-typeset .keys .key-right-control:before{content:"⌃";padding-right:.4em}.md-typeset .keys .key-meta:before{content:"◆";padding-right:.4em}.md-typeset .keys .key-left-meta:before{content:"◆";padding-right:.4em}.md-typeset .keys .key-right-meta:before{content:"◆";padding-right:.4em}.md-typeset .keys .key-option:before{content:"⌥";padding-right:.4em}.md-typeset .keys .key-left-option:before{content:"⌥";padding-right:.4em}.md-typeset .keys .key-right-option:before{content:"⌥";padding-right:.4em}.md-typeset .keys .key-shift:before{content:"⇧";padding-right:.4em}.md-typeset .keys .key-left-shift:before{content:"⇧";padding-right:.4em}.md-typeset .keys .key-right-shift:before{content:"⇧";padding-right:.4em}.md-typeset .keys .key-super:before{content:"❖";padding-right:.4em}.md-typeset .keys .key-left-super:before{content:"❖";padding-right:.4em}.md-typeset .keys .key-right-super:before{content:"❖";padding-right:.4em}.md-typeset .keys .key-windows:before{content:"⊞";padding-right:.4em}.md-typeset .keys .key-left-windows:before{content:"⊞";padding-right:.4em}.md-typeset .keys .key-right-windows:before{content:"⊞";padding-right:.4em}.md-typeset .keys .key-arrow-down:before{content:"↓";padding-right:.4em}.md-typeset .keys .key-arrow-left:before{content:"←";padding-right:.4em}.md-typeset .keys .key-arrow-right:before{content:"→";padding-right:.4em}.md-typeset .keys .key-arrow-up:before{content:"↑";padding-right:.4em}.md-typeset .keys .key-backspace:before{content:"⌫";padding-right:.4em}.md-typeset .keys .key-backtab:before{content:"⇤";padding-right:.4em}.md-typeset .keys .key-caps-lock:before{content:"⇪";padding-right:.4em}.md-typeset .keys .key-clear:before{content:"⌧";padding-right:.4em}.md-typeset .keys .key-context-menu:before{content:"☰";padding-right:.4em}.md-typeset .keys .key-delete:before{content:"⌦";padding-right:.4em}.md-typeset .keys .key-eject:before{content:"⏏";padding-right:.4em}.md-typeset .keys .key-end:before{content:"⤓";padding-right:.4em}.md-typeset .keys .key-escape:before{content:"⎋";padding-right:.4em}.md-typeset .keys .key-home:before{content:"⤒";padding-right:.4em}.md-typeset .keys .key-insert:before{content:"⎀";padding-right:.4em}.md-typeset .keys .key-page-down:before{content:"⇟";padding-right:.4em}.md-typeset .keys .key-page-up:before{content:"⇞";padding-right:.4em}.md-typeset .keys .key-print-screen:before{content:"⎙";padding-right:.4em}.md-typeset .keys .key-tab:after{content:"⇥";padding-left:.4em}.md-typeset .keys .key-num-enter:after{content:"⌤";padding-left:.4em}.md-typeset .keys .key-enter:after{content:"⏎";padding-left:.4em}.md-typeset .tabbed-set{border-radius:.1rem;display:flex;flex-flow:column wrap;margin:1em 0;position:relative}.md-typeset .tabbed-set>input{height:0;opacity:0;position:absolute;width:0}.md-typeset .tabbed-labels{-ms-overflow-style:none;box-shadow:0 -.05rem var(--md-default-fg-color--lightest) inset;display:flex;max-width:100%;overflow:auto;-ms-scroll-snap-type:x proximity;scroll-snap-type:x proximity;scrollbar-width:none}@media print{.md-typeset .tabbed-labels{display:contents}}@media screen{.js .md-typeset .tabbed-labels{position:relative}.js .md-typeset .tabbed-labels:before{background:var(--md-accent-fg-color);bottom:0;content:"";display:block;height:2px;left:0;position:absolute;transform:translateX(var(--md-indicator-x));transition:width 225ms,transform .25s;transition-timing-function:cubic-bezier(.4,0,.2,1);width:var(--md-indicator-width)}}.md-typeset .tabbed-labels::-webkit-scrollbar{display:none}.md-typeset .tabbed-labels>label{border-bottom:.1rem solid transparent;border-radius:.1rem .1rem 0 0;color:var(--md-default-fg-color--light);cursor:pointer;flex-shrink:0;font-size:.64rem;font-weight:700;padding:.78125em 1.25em .625em;scroll-snap-align:start;transition:background-color .25s,color .25s;white-space:nowrap;width:auto}@media print{.md-typeset .tabbed-labels>label:first-child{order:1}.md-typeset .tabbed-labels>label:nth-child(2){order:2}.md-typeset .tabbed-labels>label:nth-child(3){order:3}.md-typeset .tabbed-labels>label:nth-child(4){order:4}.md-typeset .tabbed-labels>label:nth-child(5){order:5}.md-typeset .tabbed-labels>label:nth-child(6){order:6}.md-typeset .tabbed-labels>label:nth-child(7){order:7}.md-typeset .tabbed-labels>label:nth-child(8){order:8}.md-typeset .tabbed-labels>label:nth-child(9){order:9}.md-typeset .tabbed-labels>label:nth-child(10){order:10}.md-typeset .tabbed-labels>label:nth-child(11){order:11}.md-typeset .tabbed-labels>label:nth-child(12){order:12}.md-typeset .tabbed-labels>label:nth-child(13){order:13}.md-typeset .tabbed-labels>label:nth-child(14){order:14}.md-typeset .tabbed-labels>label:nth-child(15){order:15}.md-typeset .tabbed-labels>label:nth-child(16){order:16}.md-typeset .tabbed-labels>label:nth-child(17){order:17}.md-typeset .tabbed-labels>label:nth-child(18){order:18}.md-typeset .tabbed-labels>label:nth-child(19){order:19}.md-typeset .tabbed-labels>label:nth-child(20){order:20}}.md-typeset .tabbed-labels>label:hover{color:var(--md-accent-fg-color)}.md-typeset .tabbed-content{width:100%}@media print{.md-typeset .tabbed-content{display:contents}}.md-typeset .tabbed-block{display:none}@media print{.md-typeset .tabbed-block{display:block}.md-typeset .tabbed-block:first-child{order:1}.md-typeset .tabbed-block:nth-child(2){order:2}.md-typeset .tabbed-block:nth-child(3){order:3}.md-typeset .tabbed-block:nth-child(4){order:4}.md-typeset .tabbed-block:nth-child(5){order:5}.md-typeset .tabbed-block:nth-child(6){order:6}.md-typeset .tabbed-block:nth-child(7){order:7}.md-typeset .tabbed-block:nth-child(8){order:8}.md-typeset .tabbed-block:nth-child(9){order:9}.md-typeset .tabbed-block:nth-child(10){order:10}.md-typeset .tabbed-block:nth-child(11){order:11}.md-typeset .tabbed-block:nth-child(12){order:12}.md-typeset .tabbed-block:nth-child(13){order:13}.md-typeset .tabbed-block:nth-child(14){order:14}.md-typeset .tabbed-block:nth-child(15){order:15}.md-typeset .tabbed-block:nth-child(16){order:16}.md-typeset .tabbed-block:nth-child(17){order:17}.md-typeset .tabbed-block:nth-child(18){order:18}.md-typeset .tabbed-block:nth-child(19){order:19}.md-typeset .tabbed-block:nth-child(20){order:20}}.md-typeset .tabbed-block>.highlight:first-child pre,.md-typeset .tabbed-block>.highlighttable:first-child,.md-typeset .tabbed-block>pre:first-child{margin:0}[dir=ltr] +.md-typeset .tabbed-block>.highlight:first-child pre code,[dir=ltr] +.md-typeset .tabbed-block>.highlighttable:first-child code,[dir=ltr] .md-typeset .tabbed-block>pre:first-child code{border-top-left-radius:0}[dir=rtl] +.md-typeset .tabbed-block>.highlight:first-child pre code,[dir=rtl] +.md-typeset .tabbed-block>.highlighttable:first-child code,[dir=rtl] .md-typeset .tabbed-block>pre:first-child code{border-top-right-radius:0}[dir=ltr] +.md-typeset .tabbed-block>.highlight:first-child pre code,[dir=ltr] +.md-typeset .tabbed-block>.highlighttable:first-child code,[dir=ltr] .md-typeset .tabbed-block>pre:first-child code{border-top-right-radius:0}[dir=rtl] +.md-typeset .tabbed-block>.highlight:first-child pre code,[dir=rtl] +.md-typeset .tabbed-block>.highlighttable:first-child code,[dir=rtl] .md-typeset .tabbed-block>pre:first-child code{border-top-left-radius:0}[dir=ltr] .md-typeset .tabbed-block>.highlighttable:first-child .linenos{border-top-left-radius:0}[dir=rtl] .md-typeset .tabbed-block>.highlighttable:first-child .linenos{border-top-right-radius:0}[dir=ltr] .md-typeset .tabbed-block>.highlighttable:first-child .linenos{border-top-right-radius:0}[dir=rtl] .md-typeset .tabbed-block>.highlighttable:first-child .linenos{border-top-left-radius:0}.md-typeset .tabbed-block>.result:nth-child(2){margin-top:0}.md-typeset .tabbed-block>.tabbed-set{margin:0}@media screen and (max-width:44.9375em){[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels{padding-left:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels{padding-right:.8rem}.md-content__inner>.tabbed-set .tabbed-labels{margin:0 -.8rem;max-width:100vw;scroll-padding-inline-start:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-right:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-left:.8rem}.md-content__inner>.tabbed-set .tabbed-labels:after{content:""}}@media screen{.md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9),.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20){color:var(--md-accent-fg-color)}.md-typeset .no-js .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .no-js .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .no-js .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .no-js .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .no-js .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .no-js .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .no-js .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .no-js .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .no-js .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9),.md-typeset .no-js .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .no-js .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .no-js .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .no-js .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .no-js .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .no-js .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .no-js .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .no-js .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .no-js .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .no-js .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .no-js .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.no-js .md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.no-js .md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.no-js .md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.no-js .md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.no-js .md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.no-js .md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.no-js .md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.no-js .md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.no-js .md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9),.no-js .md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.no-js .md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.no-js .md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.no-js .md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.no-js .md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.no-js .md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.no-js .md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.no-js .md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.no-js .md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.no-js .md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.no-js .md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20){border-color:var(--md-accent-fg-color)}}.md-typeset .tabbed-set>input:first-child.focus-visible~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(2).focus-visible~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(3).focus-visible~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4).focus-visible~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5).focus-visible~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6).focus-visible~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7).focus-visible~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8).focus-visible~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9).focus-visible~.tabbed-labels>:nth-child(9),.md-typeset .tabbed-set>input:nth-child(10).focus-visible~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11).focus-visible~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12).focus-visible~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13).focus-visible~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14).focus-visible~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15).focus-visible~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16).focus-visible~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17).focus-visible~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18).focus-visible~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19).focus-visible~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(20).focus-visible~.tabbed-labels>:nth-child(20){background-color:var(--md-accent-fg-color--transparent)}.md-typeset .tabbed-set>input:first-child:checked~.tabbed-content>:first-child,.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-content>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-content>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-content>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-content>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-content>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-content>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-content>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-content>:nth-child(9),.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-content>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-content>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-content>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-content>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-content>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-content>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-content>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-content>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-content>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-content>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-content>:nth-child(20){display:block}:root{--md-tasklist-icon:url('data:image/svg+xml;charset=utf-8,');--md-tasklist-icon--checked:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .task-list-item{list-style-type:none;position:relative}[dir=ltr] .md-typeset .task-list-item [type=checkbox]{left:-2em}[dir=rtl] .md-typeset .task-list-item [type=checkbox]{right:-2em}.md-typeset .task-list-item [type=checkbox]{position:absolute;top:.45em}.md-typeset .task-list-control [type=checkbox]{opacity:0;z-index:-1}[dir=ltr] .md-typeset .task-list-indicator:before{left:-1.5em}[dir=rtl] .md-typeset .task-list-indicator:before{right:-1.5em}.md-typeset .task-list-indicator:before{background-color:var(--md-default-fg-color--lightest);content:"";height:1.25em;-webkit-mask-image:var(--md-tasklist-icon);mask-image:var(--md-tasklist-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.15em;width:1.25em}.md-typeset [type=checkbox]:checked+.task-list-indicator:before{background-color:#00e676;-webkit-mask-image:var(--md-tasklist-icon--checked);mask-image:var(--md-tasklist-icon--checked)}@media screen and (min-width:45em){[dir=ltr] .md-typeset .inline{margin-right:.8rem}[dir=rtl] .md-typeset .inline{margin-left:.8rem}.md-typeset .inline{float:left;margin-bottom:.8rem;margin-top:0;width:11.7rem}[dir=rtl] .md-typeset .inline{float:right}[dir=ltr] .md-typeset .inline.end{margin-left:.8rem;margin-right:0}[dir=rtl] .md-typeset .inline.end{margin-left:0;margin-right:.8rem}.md-typeset .inline.end{float:right}[dir=rtl] .md-typeset .inline.end{float:left}} \ No newline at end of file diff --git a/docs/assets/stylesheets/main.cd566b2a.min.css.map b/docs/assets/stylesheets/main.cd566b2a.min.css.map new file mode 100644 index 00000000..7d1b8e2c --- /dev/null +++ b/docs/assets/stylesheets/main.cd566b2a.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["src/assets/stylesheets/main/extensions/pymdownx/_keys.scss","../../../src/assets/stylesheets/main.scss","src/assets/stylesheets/main/_resets.scss","src/assets/stylesheets/main/_colors.scss","src/assets/stylesheets/main/_icons.scss","src/assets/stylesheets/main/_typeset.scss","src/assets/stylesheets/utilities/_break.scss","src/assets/stylesheets/main/layout/_banner.scss","src/assets/stylesheets/main/layout/_base.scss","src/assets/stylesheets/main/layout/_clipboard.scss","src/assets/stylesheets/main/layout/_content.scss","src/assets/stylesheets/main/layout/_dialog.scss","src/assets/stylesheets/main/layout/_footer.scss","src/assets/stylesheets/main/layout/_form.scss","src/assets/stylesheets/main/layout/_header.scss","src/assets/stylesheets/main/layout/_nav.scss","src/assets/stylesheets/main/layout/_search.scss","src/assets/stylesheets/main/layout/_select.scss","src/assets/stylesheets/main/layout/_sidebar.scss","src/assets/stylesheets/main/layout/_source.scss","src/assets/stylesheets/main/layout/_tabs.scss","src/assets/stylesheets/main/layout/_tooltip.scss","src/assets/stylesheets/main/layout/_top.scss","src/assets/stylesheets/main/layout/_version.scss","src/assets/stylesheets/main/extensions/markdown/_admonition.scss","node_modules/material-design-color/material-color.scss","src/assets/stylesheets/main/extensions/markdown/_footnotes.scss","src/assets/stylesheets/main/extensions/markdown/_toc.scss","src/assets/stylesheets/main/extensions/pymdownx/_arithmatex.scss","src/assets/stylesheets/main/extensions/pymdownx/_critic.scss","src/assets/stylesheets/main/extensions/pymdownx/_details.scss","src/assets/stylesheets/main/extensions/pymdownx/_emoji.scss","src/assets/stylesheets/main/extensions/pymdownx/_highlight.scss","src/assets/stylesheets/main/extensions/pymdownx/_tabbed.scss","src/assets/stylesheets/main/extensions/pymdownx/_tasklist.scss","src/assets/stylesheets/main/_modifiers.scss"],"names":[],"mappings":"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BukGJ,C8BpkGI,yDAGE,iBAAA,CADA,eAAA,CADA,a9BwkGN,C8BzkGI,sDAGE,iBAAA,CADA,eAAA,CADA,a9BwkGN,C8BzkGI,gDAGE,iBAAA,CADA,eAAA,CADA,a9BwkGN,C+B9kGE,gCACE,sC/BilGJ,C+BllGE,6BACE,sC/BilGJ,C+BllGE,uBACE,sC/BilGJ,C+B9kGE,cACE,yC/BglGJ,C+BpkGE,4DACE,oC/BskGJ,C+BvkGE,yDACE,oC/BskGJ,C+BvkGE,mDACE,oC/BskGJ,C+B9jGE,6CACE,qC/BgkGJ,C+BjkGE,0CACE,qC/BgkGJ,C+BjkGE,oCACE,qC/BgkGJ,C+BtjGE,oDACE,oC/BwjGJ,C+BzjGE,iDACE,oC/BwjGJ,C+BzjGE,2CACE,oC/BwjGJ,C+B/iGE,gDACE,qC/BijGJ,C+BljGE,6CACE,qC/BijGJ,C+BljGE,uCACE,qC/BijGJ,C+B5iGE,gCACE,kC/B8iGJ,C+B/iGE,6BACE,kC/B8iGJ,C+B/iGE,uBACE,kC/B8iGJ,C+BxiGE,qCACE,sC/B0iGJ,C+B3iGE,kCACE,sC/B0iGJ,C+B3iGE,4BACE,sC/B0iGJ,C+BniGE,yCACE,sC/BqiGJ,C+BtiGE,sCACE,sC/BqiGJ,C+BtiGE,gCACE,sC/BqiGJ,C+B9hGE,yCACE,qC/BgiGJ,C+BjiGE,sCACE,qC/BgiGJ,C+BjiGE,gCACE,qC/BgiGJ,C+BvhGE,gDACE,qC/ByhGJ,C+B1hGE,6CACE,qC/ByhGJ,C+B1hGE,uCACE,qC/ByhGJ,C+BjhGE,6CACE,sC/BmhGJ,C+BphGE,0CACE,sC/BmhGJ,C+BphGE,oCACE,sC/BmhGJ,C+BxgGE,yDACE,qC/B0gGJ,C+B3gGE,sDACE,qC/B0gGJ,C+B3gGE,gDACE,qC/B0gGJ,C+BrgGE,iCAGE,mBAAA,CAFA,gBAAA,CACA,gB/BwgGJ,C+B1gGE,8BAGE,mBAAA,CAFA,gBAAA,CACA,gB/BwgGJ,C+B1gGE,wBAGE,mBAAA,CAFA,gBAAA,CACA,gB/BwgGJ,C+BpgGE,eACE,4C/BsgGJ,C+BngGE,eACE,4C/BqgGJ,C+BjgGE,gBAIE,wCAAA,CAHA,aAAA,CACA,w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","file":"main.css"} \ No newline at end of file diff --git a/docs/assets/stylesheets/main.css b/docs/assets/stylesheets/main.css new file mode 100644 index 00000000..e3330aeb --- /dev/null +++ b/docs/assets/stylesheets/main.css @@ -0,0 +1,3076 @@ +@charset "UTF-8"; +html { + box-sizing: border-box; +} + +*, +*::before, +*::after { + box-sizing: inherit; +} + +html { + -webkit-text-size-adjust: none; + -moz-text-size-adjust: none; + -ms-text-size-adjust: none; + text-size-adjust: none; +} + +body { + margin: 0; +} + +hr { + box-sizing: content-box; + overflow: visible; +} + +a, +button, +label, +input { + -webkit-tap-highlight-color: transparent; +} + +a { + color: inherit; + text-decoration: none; +} + +small { + font-size: 80%; +} + +sub, +sup { + position: relative; + font-size: 80%; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +img { + border-style: none; +} + +table { + border-collapse: separate; + border-spacing: 0; +} + +td, +th { + font-weight: normal; + vertical-align: top; +} + +button { + margin: 0; + padding: 0; + font-size: inherit; + background: transparent; + border: 0; +} + +input { + border: 0; + outline: 0; +} + +:root { + --md-default-fg-color: hsla(0, 0%, 0%, 0.87); + --md-default-fg-color--light: hsla(0, 0%, 0%, 0.54); + --md-default-fg-color--lighter: hsla(0, 0%, 0%, 0.26); + --md-default-fg-color--lightest: hsla(0, 0%, 0%, 0.07); + --md-default-bg-color: hsla(0, 0%, 100%, 1); + --md-default-bg-color--light: hsla(0, 0%, 100%, 0.7); + --md-default-bg-color--lighter: hsla(0, 0%, 100%, 0.3); + --md-default-bg-color--lightest: hsla(0, 0%, 100%, 0.12); + --md-primary-fg-color: hsla(231deg, 48%, 48%, 1); + --md-primary-fg-color--light: hsla(230deg, 44%, 64%, 1); + --md-primary-fg-color--dark: hsla(232deg, 54%, 41%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); + --md-accent-fg-color: hsla(231deg, 99%, 66%, 1); + --md-accent-fg-color--transparent: hsla(231deg, 99%, 66%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); + --md-code-bg-color: hsla(0, 0%, 96%, 1); + --md-code-fg-color: hsla(200, 18%, 26%, 1); +} + +.md-icon svg { + display: block; + width: 1.2rem; + height: 1.2rem; + margin: 0 auto; + fill: currentColor; +} + +body { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +body, +input { + color: var(--md-default-fg-color); + font-feature-settings: "kern", "liga"; + font-family: -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; +} + +code, +pre, +kbd { + color: var(--md-default-fg-color); + font-feature-settings: "kern"; + font-family: SFMono-Regular, Consolas, Menlo, monospace; +} + +.md-typeset { + font-size: 0.8rem; + line-height: 1.6; + -webkit-print-color-adjust: exact; + color-adjust: exact; +} +.md-typeset p, +.md-typeset ul, +.md-typeset ol, +.md-typeset blockquote { + margin: 1em 0; +} +.md-typeset h1 { + margin: 0 0 2rem; + color: var(--md-default-fg-color--light); + font-weight: 300; + font-size: 1.5625rem; + line-height: 1.3; + letter-spacing: -0.01em; +} +.md-typeset h2 { + margin: 2rem 0 0.8rem; + font-weight: 300; + font-size: 1.25rem; + line-height: 1.4; + letter-spacing: -0.01em; +} +.md-typeset h3 { + margin: 1.6rem 0 0.8rem; + font-weight: 400; + font-size: 1rem; + line-height: 1.5; + letter-spacing: -0.01em; +} +.md-typeset h2 + h3 { + margin-top: 0.8rem; +} +.md-typeset h4 { + margin: 0.8rem 0; + font-weight: 700; + font-size: 0.8rem; + letter-spacing: -0.01em; +} +.md-typeset h5, +.md-typeset h6 { + margin: 0.8rem 0; + color: var(--md-default-fg-color--light); + font-weight: 700; + font-size: 0.64rem; + letter-spacing: -0.01em; +} +.md-typeset h5 { + text-transform: uppercase; +} +.md-typeset hr { + margin: 1.5em 0; + border-bottom: 0.05rem dotted var(--md-default-fg-color--lighter); +} +.md-typeset a { + color: var(--md-primary-fg-color); + word-break: break-word; +} +.md-typeset a, .md-typeset a::before { + transition: color 125ms; +} +.md-typeset a:focus, .md-typeset a:hover { + color: var(--md-accent-fg-color); +} +.md-typeset code, +.md-typeset pre, +.md-typeset kbd { + color: var(--md-code-fg-color); + direction: ltr; +} +@media print { + .md-typeset code, +.md-typeset pre, +.md-typeset kbd { + white-space: pre-wrap; + } +} +.md-typeset code { + padding: 0 0.2941176471em; + font-size: 0.85em; + word-break: break-word; + background-color: var(--md-code-bg-color); + border-radius: 0.1rem; + -webkit-box-decoration-break: clone; + box-decoration-break: clone; +} +.md-typeset h1 code, +.md-typeset h2 code, +.md-typeset h3 code, +.md-typeset h4 code, +.md-typeset h5 code, +.md-typeset h6 code { + margin: initial; + padding: initial; + background-color: transparent; + box-shadow: none; +} +.md-typeset a > code { + color: currentColor; +} +.md-typeset pre { + position: relative; + margin: 1em 0; + line-height: 1.4; +} +.md-typeset pre > code { + display: block; + margin: 0; + padding: 0.525rem 1.1764705882em; + overflow: auto; + word-break: normal; + box-shadow: none; + -webkit-box-decoration-break: slice; + box-decoration-break: slice; + touch-action: auto; +} +.md-typeset pre > code::-webkit-scrollbar { + width: 0.2rem; + height: 0.2rem; +} +.md-typeset pre > code::-webkit-scrollbar-thumb { + background-color: var(--md-default-fg-color--lighter); +} +.md-typeset pre > code::-webkit-scrollbar-thumb:hover { + background-color: var(--md-accent-fg-color); +} +@media screen and (max-width: 44.9375em) { + .md-typeset > pre { + margin: 1em -0.8rem; + } + .md-typeset > pre code { + border-radius: 0; + } +} +.md-typeset kbd { + display: inline-block; + padding: 0 0.6666666667em; + font-size: 0.75em; + line-height: 1.5; + vertical-align: text-top; + word-break: break-word; + border-radius: 0.1rem; + box-shadow: 0 0.1rem 0 0.05rem var(--md-default-fg-color--lighter), 0 0.1rem 0 var(--md-default-fg-color--lighter), inset 0 -0.1rem 0.2rem var(--md-default-bg-color); +} +.md-typeset mark { + padding: 0 0.25em; + word-break: break-word; + background-color: rgba(255, 235, 59, 0.5); + border-radius: 0.1rem; + -webkit-box-decoration-break: clone; + box-decoration-break: clone; +} +.md-typeset abbr { + text-decoration: none; + border-bottom: 0.05rem dotted var(--md-default-fg-color--light); + cursor: help; +} +.md-typeset small { + opacity: 0.75; +} +.md-typeset sup, +.md-typeset sub { + margin-left: 0.078125em; +} +[dir=rtl] .md-typeset sup, +[dir=rtl] .md-typeset sub { + margin-right: 0.078125em; + margin-left: initial; +} +.md-typeset blockquote { + padding-left: 0.6rem; + color: var(--md-default-fg-color--light); + border-left: 0.2rem solid var(--md-default-fg-color--lighter); +} +[dir=rtl] .md-typeset blockquote { + padding-right: 0.6rem; + padding-left: initial; + border-right: 0.2rem solid var(--md-default-fg-color--lighter); + border-left: initial; +} +.md-typeset ul { + list-style-type: disc; +} +.md-typeset ul, +.md-typeset ol { + margin-left: 0.625em; + padding: 0; +} +[dir=rtl] .md-typeset ul, +[dir=rtl] .md-typeset ol { + margin-right: 0.625em; + margin-left: initial; +} +.md-typeset ul ol, +.md-typeset ol ol { + list-style-type: lower-alpha; +} +.md-typeset ul ol ol, +.md-typeset ol ol ol { + list-style-type: lower-roman; +} +.md-typeset ul li, +.md-typeset ol li { + margin-bottom: 0.5em; + margin-left: 1.25em; +} +[dir=rtl] .md-typeset ul li, +[dir=rtl] .md-typeset ol li { + margin-right: 1.25em; + margin-left: initial; +} +.md-typeset ul li p, +.md-typeset ul li blockquote, +.md-typeset ol li p, +.md-typeset ol li blockquote { + margin: 0.5em 0; +} +.md-typeset ul li:last-child, +.md-typeset ol li:last-child { + margin-bottom: 0; +} +.md-typeset ul li ul, +.md-typeset ul li ol, +.md-typeset ol li ul, +.md-typeset ol li ol { + margin: 0.5em 0 0.5em 0.625em; +} +[dir=rtl] .md-typeset ul li ul, +[dir=rtl] .md-typeset ul li ol, +[dir=rtl] .md-typeset ol li ul, +[dir=rtl] .md-typeset ol li ol { + margin-right: 0.625em; + margin-left: initial; +} +.md-typeset dd { + margin: 1em 0 1em 1.875em; +} +[dir=rtl] .md-typeset dd { + margin-right: 1.875em; + margin-left: initial; +} +.md-typeset iframe, +.md-typeset img, +.md-typeset svg { + max-width: 100%; + height: auto; +} +.md-typeset table:not([class]) { + display: inline-block; + max-width: 100%; + overflow: auto; + font-size: 0.64rem; + background: var(--md-default-bg-color); + border-radius: 0.1rem; + box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.05rem rgba(0, 0, 0, 0.1); + touch-action: auto; +} +.md-typeset table:not([class]) + * { + margin-top: 1.5em; +} +.md-typeset table:not([class]) th:not([align]), +.md-typeset table:not([class]) td:not([align]) { + text-align: left; +} +[dir=rtl] .md-typeset table:not([class]) th:not([align]), +[dir=rtl] .md-typeset table:not([class]) td:not([align]) { + text-align: right; +} +.md-typeset table:not([class]) th { + min-width: 5rem; + padding: 0.6rem 0.8rem; + color: var(--md-default-bg-color); + vertical-align: top; + background-color: var(--md-default-fg-color--light); +} +.md-typeset table:not([class]) td { + padding: 0.6rem 0.8rem; + vertical-align: top; + border-top: 0.05rem solid var(--md-default-fg-color--lightest); +} +.md-typeset table:not([class]) tr { + transition: background-color 125ms; +} +.md-typeset table:not([class]) tr:hover { + background-color: rgba(0, 0, 0, 0.035); + box-shadow: 0 0.05rem 0 var(--md-default-bg-color) inset; +} +.md-typeset table:not([class]) tr:first-child td { + border-top: 0; +} +.md-typeset table:not([class]) a { + word-break: normal; +} +.md-typeset__scrollwrap { + margin: 1em -0.8rem; + overflow-x: auto; + touch-action: auto; +} +.md-typeset__table { + display: inline-block; + margin-bottom: 0.5em; + padding: 0 0.8rem; +} +.md-typeset__table table { + display: table; + width: 100%; + margin: 0; + overflow: hidden; +} + +html { + height: 100%; + overflow-x: hidden; + font-size: 125%; + background-color: var(--md-default-bg-color); +} +@media screen and (min-width: 100em) { + html { + font-size: 137.5%; + } +} +@media screen and (min-width: 125em) { + html { + font-size: 150%; + } +} + +body { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + min-height: 100%; + font-size: 0.5rem; +} +@media screen and (max-width: 59.9375em) { + body[data-md-state=lock] { + position: fixed; + } +} +@media print { + body { + display: block; + } +} + +hr { + display: block; + height: 0.05rem; + padding: 0; + border: 0; +} + +.md-grid { + max-width: 61rem; + margin-right: auto; + margin-left: auto; +} + +.md-container { + display: flex; + flex-direction: column; + flex-grow: 1; +} +@media print { + .md-container { + display: block; + } +} + +.md-main { + flex-grow: 1; +} +.md-main__inner { + display: flex; + height: 100%; + margin-top: 1.5rem; +} + +.md-ellipsis { + display: block; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.md-toggle { + display: none; +} + +.md-overlay { + position: fixed; + top: 0; + z-index: 3; + width: 0; + height: 0; + background-color: var(--md-default-fg-color--light); + opacity: 0; + transition: width 0ms 250ms, height 0ms 250ms, opacity 250ms; +} +@media screen and (max-width: 76.1875em) { + [data-md-toggle=drawer]:checked ~ .md-overlay { + width: 100%; + height: 100%; + opacity: 1; + transition: width 0ms, height 0ms, opacity 250ms; + } +} + +.md-skip { + position: fixed; + z-index: -1; + margin: 0.5rem; + padding: 0.3rem 0.5rem; + color: var(--md-default-bg-color); + font-size: 0.64rem; + background-color: var(--md-default-fg-color); + border-radius: 0.1rem; + transform: translateY(0.4rem); + opacity: 0; +} +.md-skip:focus { + z-index: 10; + transform: translateY(0); + opacity: 1; + transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1), opacity 175ms 75ms; +} + +@page { + margin: 25mm; +} +.md-announce { + overflow: auto; + background-color: var(--md-default-fg-color); +} +.md-announce__inner { + margin: 0.6rem auto; + padding: 0 0.8rem; + color: var(--md-default-bg-color); + font-size: 0.7rem; +} +@media print { + .md-announce { + display: none; + } +} + +.md-typeset .md-button { + display: inline-block; + padding: 0.625em 2em; + color: var(--md-primary-fg-color); + font-weight: 700; + border: 0.1rem solid currentColor; + border-radius: 0.1rem; + transition: color 125ms, background-color 125ms, border-color 125ms; +} +.md-typeset .md-button--primary { + color: var(--md-primary-bg-color); + background-color: var(--md-primary-fg-color); + border-color: var(--md-primary-fg-color); +} +.md-typeset .md-button:focus, .md-typeset .md-button:hover { + color: var(--md-accent-bg-color); + background-color: var(--md-accent-fg-color); + border-color: var(--md-accent-fg-color); +} + +.md-clipboard { + position: absolute; + top: 0.4rem; + right: 0.5em; + z-index: 1; + width: 1.5em; + height: 1.5em; + color: var(--md-default-fg-color--lightest); + border-radius: 0.1rem; + cursor: pointer; + transition: color 125ms; +} +@media print { + .md-clipboard { + display: none; + } +} +.md-clipboard svg { + width: 1.125em; + height: 1.125em; +} +pre:hover .md-clipboard { + color: var(--md-default-fg-color--light); +} +pre .md-clipboard:focus, pre .md-clipboard:hover { + color: var(--md-accent-fg-color); +} + +.md-content { + flex: 1; + max-width: 100%; +} +@media screen and (min-width: 60em) and (max-width: 76.1875em) { + .md-content { + max-width: calc(100% - 12.1rem); + } +} +@media screen and (min-width: 76.25em) { + .md-content { + max-width: calc(100% - 12.1rem * 2); + } +} +.md-content__inner { + margin: 0 0.8rem 1.2rem; + padding-top: 0.6rem; +} +@media screen and (min-width: 76.25em) { + .md-content__inner { + margin-right: 1.2rem; + margin-left: 1.2rem; + } +} +.md-content__inner::before { + display: block; + height: 0.4rem; + content: ""; +} +.md-content__inner > :last-child { + margin-bottom: 0; +} +.md-content__button { + float: right; + margin: 0.4rem 0; + margin-left: 0.4rem; + padding: 0; +} +[dir=rtl] .md-content__button { + float: left; + margin-right: 0.4rem; + margin-left: initial; +} +[dir=rtl] .md-content__button svg { + transform: scaleX(-1); +} +.md-typeset .md-content__button { + color: var(--md-default-fg-color--lighter); +} +.md-content__button svg { + display: inline; + vertical-align: top; +} +@media print { + .md-content__button { + display: none; + } +} + +.md-dialog { + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); + position: fixed; + right: 0.8rem; + bottom: 0.8rem; + left: initial; + z-index: 2; + display: block; + min-width: 11.1rem; + padding: 0.4rem 0.6rem; + color: var(--md-default-bg-color); + font-size: 0.7rem; + background: var(--md-default-fg-color); + border: none; + border-radius: 0.1rem; + transform: translateY(100%); + opacity: 0; + transition: transform 0ms 400ms, opacity 400ms; +} +[dir=rtl] .md-dialog { + right: initial; + left: 0.8rem; +} +.md-dialog[data-md-state=open] { + transform: translateY(0); + opacity: 1; + transition: transform 400ms cubic-bezier(0.075, 0.85, 0.175, 1), opacity 400ms; +} +@media print { + .md-dialog { + display: none; + } +} + +.md-header { + position: -webkit-sticky; + position: sticky; + top: 0; + right: 0; + left: 0; + z-index: 2; + height: 2.4rem; + color: var(--md-primary-bg-color); + background-color: var(--md-primary-fg-color); + box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0), 0 0.2rem 0.4rem rgba(0, 0, 0, 0); + transition: color 250ms, background-color 250ms; +} +.no-js .md-header { + box-shadow: none; + transition: none; +} +.md-header[data-md-state=shadow] { + box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.1), 0 0.2rem 0.4rem rgba(0, 0, 0, 0.2); + transition: color 250ms, background-color 250ms, box-shadow 250ms; +} +@media print { + .md-header { + display: none; + } +} + +.md-header-nav { + display: flex; + padding: 0 0.2rem; +} +.md-header-nav__button { + position: relative; + z-index: 1; + margin: 0.2rem; + padding: 0.4rem; + cursor: pointer; + transition: opacity 250ms; +} +[dir=rtl] .md-header-nav__button svg { + transform: scaleX(-1); +} +.md-header-nav__button:focus, .md-header-nav__button:hover { + opacity: 0.7; +} +.md-header-nav__button.md-logo { + margin: 0.2rem; + padding: 0.4rem; +} +.md-header-nav__button.md-logo img, +.md-header-nav__button.md-logo svg { + display: block; + width: 1.2rem; + height: 1.2rem; + fill: currentColor; +} +.no-js .md-header-nav__button[for=__search] { + display: none; +} +@media screen and (min-width: 60em) { + .md-header-nav__button[for=__search] { + display: none; + } +} +@media screen and (max-width: 76.1875em) { + .md-header-nav__button.md-logo { + display: none; + } +} +@media screen and (min-width: 76.25em) { + .md-header-nav__button[for=__drawer] { + display: none; + } +} +.md-header-nav__topic { + position: absolute; + width: 100%; + transition: transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1), opacity 150ms; +} +.md-header-nav__topic + .md-header-nav__topic { + z-index: -1; + transform: translateX(1.25rem); + opacity: 0; + transition: transform 400ms cubic-bezier(1, 0.7, 0.1, 0.1), opacity 150ms; + pointer-events: none; +} +[dir=rtl] .md-header-nav__topic + .md-header-nav__topic { + transform: translateX(-1.25rem); +} +.no-js .md-header-nav__topic { + position: initial; +} +.no-js .md-header-nav__topic + .md-header-nav__topic { + display: none; +} +.md-header-nav__title { + flex-grow: 1; + padding: 0 1rem; + font-size: 0.9rem; + line-height: 2.4rem; +} +.md-header-nav__title[data-md-state=active] .md-header-nav__topic { + z-index: -1; + transform: translateX(-1.25rem); + opacity: 0; + transition: transform 400ms cubic-bezier(1, 0.7, 0.1, 0.1), opacity 150ms; + pointer-events: none; +} +[dir=rtl] .md-header-nav__title[data-md-state=active] .md-header-nav__topic { + transform: translateX(1.25rem); +} +.md-header-nav__title[data-md-state=active] .md-header-nav__topic + .md-header-nav__topic { + z-index: 0; + transform: translateX(0); + opacity: 1; + transition: transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1), opacity 150ms; + pointer-events: initial; +} +.md-header-nav__title > .md-header-nav__ellipsis { + position: relative; + width: 100%; + height: 100%; +} +.md-header-nav__source { + display: none; +} +@media screen and (min-width: 60em) { + .md-header-nav__source { + display: block; + width: 11.7rem; + max-width: 11.7rem; + margin-left: 1rem; + } + [dir=rtl] .md-header-nav__source { + margin-right: 1rem; + margin-left: initial; + } +} +@media screen and (min-width: 76.25em) { + .md-header-nav__source { + margin-left: 1.4rem; + } + [dir=rtl] .md-header-nav__source { + margin-right: 1.4rem; + } +} + +.md-hero { + overflow: hidden; + color: var(--md-primary-bg-color); + font-size: 1rem; + background-color: var(--md-primary-fg-color); + transition: background 250ms; +} +.md-hero__inner { + margin-top: 1rem; + padding: 0.8rem 0.8rem 0.4rem; + transition: transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1), opacity 250ms; + transition-delay: 100ms; +} +@media screen and (max-width: 76.1875em) { + .md-hero__inner { + margin-top: 2.4rem; + margin-bottom: 1.2rem; + } +} +[data-md-state=hidden] .md-hero__inner { + transform: translateY(0.625rem); + opacity: 0; + transition: transform 0ms 400ms, opacity 100ms 0ms; + pointer-events: none; +} +.md-hero--expand .md-hero__inner { + margin-bottom: 1.2rem; +} + +.md-footer { + color: var(--md-default-bg-color); + background-color: var(--md-default-fg-color); +} +@media print { + .md-footer { + display: none; + } +} + +.md-footer-nav__inner { + padding: 0.2rem; + overflow: auto; +} +.md-footer-nav__link { + display: flex; + padding-top: 1.4rem; + padding-bottom: 0.4rem; + transition: opacity 250ms; +} +@media screen and (min-width: 45em) { + .md-footer-nav__link { + width: 50%; + } +} +.md-footer-nav__link:focus, .md-footer-nav__link:hover { + opacity: 0.7; +} +.md-footer-nav__link--prev { + float: left; + width: 25%; +} +[dir=rtl] .md-footer-nav__link--prev { + float: right; +} +[dir=rtl] .md-footer-nav__link--prev svg { + transform: scaleX(-1); +} +@media screen and (max-width: 44.9375em) { + .md-footer-nav__link--prev .md-footer-nav__title { + display: none; + } +} +.md-footer-nav__link--next { + float: right; + width: 75%; + text-align: right; +} +[dir=rtl] .md-footer-nav__link--next { + float: left; + text-align: left; +} +[dir=rtl] .md-footer-nav__link--next svg { + transform: scaleX(-1); +} +.md-footer-nav__title { + position: relative; + flex-grow: 1; + max-width: calc(100% - 2.4rem); + padding: 0 1rem; + font-size: 0.9rem; + line-height: 2.4rem; +} +.md-footer-nav__button { + margin: 0.2rem; + padding: 0.4rem; +} +.md-footer-nav__direction { + position: absolute; + right: 0; + left: 0; + margin-top: -1rem; + padding: 0 1rem; + color: var(--md-default-bg-color--light); + font-size: 0.64rem; +} + +.md-footer-meta { + background-color: var(--md-default-fg-color--lighter); +} +.md-footer-meta__inner { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + padding: 0.2rem; +} +html .md-footer-meta.md-typeset a { + color: var(--md-default-bg-color--light); +} +html .md-footer-meta.md-typeset a:focus, html .md-footer-meta.md-typeset a:hover { + color: var(--md-default-bg-color); +} + +.md-footer-copyright { + width: 100%; + margin: auto 0.6rem; + padding: 0.4rem 0; + color: var(--md-default-bg-color--lighter); + font-size: 0.64rem; +} +@media screen and (min-width: 45em) { + .md-footer-copyright { + width: auto; + } +} +.md-footer-copyright__highlight { + color: var(--md-default-bg-color--light); +} + +.md-footer-social { + margin: 0 0.4rem; + padding: 0.2rem 0 0.6rem; +} +@media screen and (min-width: 45em) { + .md-footer-social { + padding: 0.6rem 0; + } +} +.md-footer-social__link { + display: inline-block; + width: 1.6rem; + height: 1.6rem; + text-align: center; +} +.md-footer-social__link::before { + line-height: 1.9; +} +.md-footer-social__link svg { + max-height: 0.8rem; + vertical-align: -25%; + fill: currentColor; +} + +.md-nav { + font-size: 0.7rem; + line-height: 1.3; +} +.md-nav__title { + display: block; + padding: 0 0.6rem; + overflow: hidden; + font-weight: 700; + text-overflow: ellipsis; +} +.md-nav__title .md-nav__button { + display: none; +} +.md-nav__title .md-nav__button img { + width: 100%; + height: auto; +} +.md-nav__title .md-nav__button.md-logo img, +.md-nav__title .md-nav__button.md-logo svg { + display: block; + width: 2.4rem; + height: 2.4rem; +} +.md-nav__title .md-nav__button.md-logo svg { + fill: currentColor; +} +.md-nav__list { + margin: 0; + padding: 0; + list-style: none; +} +.md-nav__item { + padding: 0 0.6rem; +} +.md-nav__item:last-child { + padding-bottom: 0.6rem; +} +.md-nav__item .md-nav__item { + padding-right: 0; +} +[dir=rtl] .md-nav__item .md-nav__item { + padding-right: 0.6rem; + padding-left: 0; +} +.md-nav__item .md-nav__item:last-child { + padding-bottom: 0; +} +.md-nav__link { + display: block; + margin-top: 0.625em; + overflow: hidden; + text-overflow: ellipsis; + cursor: pointer; + transition: color 125ms; + scroll-snap-align: start; +} +html .md-nav__link[for=__toc] { + display: none; +} +html .md-nav__link[for=__toc] ~ .md-nav { + display: none; +} +.md-nav__link[data-md-state=blur] { + color: var(--md-default-fg-color--light); +} +.md-nav__item .md-nav__link--active { + color: var(--md-primary-fg-color); +} +.md-nav__item--nested > .md-nav__link { + color: inherit; +} +.md-nav__link:focus, .md-nav__link:hover { + color: var(--md-accent-fg-color); +} +.md-nav__source { + display: none; +} +@media screen and (max-width: 76.1875em) { + .md-nav { + background-color: var(--md-default-bg-color); + } + .md-nav--primary, .md-nav--primary .md-nav { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 1; + display: flex; + flex-direction: column; + height: 100%; + } + .md-nav--primary .md-nav__title, +.md-nav--primary .md-nav__item { + font-size: 0.8rem; + line-height: 1.5; + } + .md-nav--primary .md-nav__title { + position: relative; + height: 5.6rem; + padding: 3rem 0.8rem 0.2rem; + color: var(--md-default-fg-color--light); + font-weight: 400; + line-height: 2.4rem; + white-space: nowrap; + background-color: var(--md-default-fg-color--lightest); + cursor: pointer; + } + .md-nav--primary .md-nav__title .md-nav__icon { + position: absolute; + top: 0.4rem; + left: 0.4rem; + display: block; + width: 1.2rem; + height: 1.2rem; + margin: 0.2rem; + } + [dir=rtl] .md-nav--primary .md-nav__title .md-nav__icon { + right: 0.4rem; + left: initial; + } + .md-nav--primary .md-nav__title ~ .md-nav__list { + overflow-y: auto; + background-color: var(--md-default-bg-color); + box-shadow: inset 0 0.05rem 0 var(--md-default-fg-color--lightest); + -webkit-scroll-snap-type: y mandatory; + -ms-scroll-snap-type: y mandatory; + scroll-snap-type: y mandatory; + touch-action: pan-y; + } + .md-nav--primary .md-nav__title ~ .md-nav__list > .md-nav__item:first-child { + border-top: 0; + } + .md-nav--primary .md-nav__title[for=__drawer] { + position: relative; + color: var(--md-primary-bg-color); + background-color: var(--md-primary-fg-color); + } + .md-nav--primary .md-nav__title[for=__drawer] .md-nav__button { + position: absolute; + top: 0.2rem; + left: 0.2rem; + display: block; + margin: 0.2rem; + padding: 0.4rem; + font-size: 2.4rem; + } + html [dir=rtl] .md-nav--primary .md-nav__title[for=__drawer] .md-nav__button { + right: 0.2rem; + left: initial; + } + .md-nav--primary .md-nav__list { + flex: 1; + } + .md-nav--primary .md-nav__item { + padding: 0; + border-top: 0.05rem solid var(--md-default-fg-color--lightest); + } + [dir=rtl] .md-nav--primary .md-nav__item { + padding: 0; + } + .md-nav--primary .md-nav__item--nested > .md-nav__link { + padding-right: 2.4rem; + } + [dir=rtl] .md-nav--primary .md-nav__item--nested > .md-nav__link { + padding-right: 0.8rem; + padding-left: 2.4rem; + } + .md-nav--primary .md-nav__item--active > .md-nav__link { + color: var(--md-primary-fg-color); + } + .md-nav--primary .md-nav__item--active > .md-nav__link:focus, .md-nav--primary .md-nav__item--active > .md-nav__link:hover { + color: var(--md-accent-fg-color); + } + .md-nav--primary .md-nav__link { + position: relative; + margin-top: 0; + padding: 0.6rem 0.8rem; + } + .md-nav--primary .md-nav__link .md-nav__icon { + position: absolute; + top: 50%; + right: 0.6rem; + margin-top: -0.6rem; + color: inherit; + font-size: 1.2rem; + } + [dir=rtl] .md-nav--primary .md-nav__link .md-nav__icon { + right: initial; + left: 0.6rem; + } + [dir=rtl] .md-nav--primary .md-nav__icon svg { + transform: scale(-1); + } + .md-nav--primary .md-nav--secondary .md-nav__link { + position: static; + } + .md-nav--primary .md-nav--secondary .md-nav { + position: static; + background-color: transparent; + } + .md-nav--primary .md-nav--secondary .md-nav .md-nav__link { + padding-left: 1.4rem; + } + [dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link { + padding-right: 1.4rem; + padding-left: initial; + } + .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link { + padding-left: 2rem; + } + [dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link { + padding-right: 2rem; + padding-left: initial; + } + .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link { + padding-left: 2.6rem; + } + [dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link { + padding-right: 2.6rem; + padding-left: initial; + } + .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link { + padding-left: 3.2rem; + } + [dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link { + padding-right: 3.2rem; + padding-left: initial; + } + .md-nav__toggle ~ .md-nav { + display: flex; + transform: translateX(100%); + opacity: 0; + transition: transform 250ms cubic-bezier(0.8, 0, 0.6, 1), opacity 125ms 50ms; + } + [dir=rtl] .md-nav__toggle ~ .md-nav { + transform: translateX(-100%); + } + .md-nav__toggle:checked ~ .md-nav { + transform: translateX(0); + opacity: 1; + transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1), opacity 125ms 125ms; + } + .md-nav__toggle:checked ~ .md-nav > .md-nav__list { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + } +} +@media screen and (max-width: 59.9375em) { + html .md-nav__link[for=__toc] { + display: block; + padding-right: 2.4rem; + } + html .md-nav__link[for=__toc] + .md-nav__link { + display: none; + } + html .md-nav__link[for=__toc] ~ .md-nav { + display: flex; + } + html [dir=rtl] .md-nav__link { + padding-right: 0.8rem; + padding-left: 2.4rem; + } + .md-nav__source { + display: block; + padding: 0 0.2rem; + color: var(--md-primary-bg-color); + background-color: var(--md-primary-fg-color--dark); + } +} +@media screen and (min-width: 60em) { + .md-nav--secondary .md-nav__title[for=__toc] { + scroll-snap-align: start; + } + .md-nav--secondary .md-nav__title .md-nav__icon { + display: none; + } +} +@media screen and (min-width: 76.25em) { + .md-nav { + transition: max-height 250ms cubic-bezier(0.86, 0, 0.07, 1); + } + .md-nav--primary .md-nav__title[for=__drawer] { + scroll-snap-align: start; + } + .md-nav--primary .md-nav__title .md-nav__icon { + display: none; + } + .md-nav__toggle ~ .md-nav { + display: none; + } + .md-nav__toggle:checked ~ .md-nav { + display: block; + } + .md-nav__item--nested > .md-nav > .md-nav__title { + display: none; + } + .md-nav__icon { + float: right; + height: 0.9rem; + transition: transform 250ms; + } + [dir=rtl] .md-nav__icon { + float: left; + transform: rotate(180deg); + } + .md-nav__icon svg { + display: inline-block; + width: 0.9rem; + height: 0.9rem; + vertical-align: -0.1rem; + } + .md-nav__item--nested .md-nav__toggle:checked ~ .md-nav__link .md-nav__icon { + transform: rotate(90deg); + } +} + +.md-search { + position: relative; +} +.no-js .md-search { + display: none; +} +@media screen and (min-width: 60em) { + .md-search { + padding: 0.2rem 0; + } +} +.md-search__overlay { + z-index: 1; + opacity: 0; +} +@media screen and (max-width: 59.9375em) { + .md-search__overlay { + position: absolute; + top: 0.2rem; + left: -2.2rem; + width: 2rem; + height: 2rem; + overflow: hidden; + background-color: var(--md-default-bg-color); + border-radius: 1rem; + transform-origin: center; + transition: transform 300ms 100ms, opacity 200ms 200ms; + pointer-events: none; + } + [dir=rtl] .md-search__overlay { + right: -2.2rem; + left: initial; + } + [data-md-toggle=search]:checked ~ .md-header .md-search__overlay { + opacity: 1; + transition: transform 400ms, opacity 100ms; + } +} +@media screen and (max-width: 29.9375em) { + [data-md-toggle=search]:checked ~ .md-header .md-search__overlay { + transform: scale(45); + } +} +@media screen and (min-width: 30em) and (max-width: 44.9375em) { + [data-md-toggle=search]:checked ~ .md-header .md-search__overlay { + transform: scale(60); + } +} +@media screen and (min-width: 45em) and (max-width: 59.9375em) { + [data-md-toggle=search]:checked ~ .md-header .md-search__overlay { + transform: scale(75); + } +} +@media screen and (min-width: 60em) { + .md-search__overlay { + position: fixed; + top: 0; + left: 0; + width: 0; + height: 0; + background-color: var(--md-default-fg-color--light); + cursor: pointer; + transition: width 0ms 250ms, height 0ms 250ms, opacity 250ms; + } + [dir=rtl] .md-search__overlay { + right: 0; + left: initial; + } + [data-md-toggle=search]:checked ~ .md-header .md-search__overlay { + width: 100%; + height: 100%; + opacity: 1; + transition: width 0ms, height 0ms, opacity 250ms; + } +} +.md-search__inner { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +@media screen and (max-width: 59.9375em) { + .md-search__inner { + position: fixed; + top: 0; + left: 100%; + z-index: 2; + width: 100%; + height: 100%; + transform: translateX(5%); + opacity: 0; + transition: right 0ms 300ms, left 0ms 300ms, transform 150ms 150ms cubic-bezier(0.4, 0, 0.2, 1), opacity 150ms 150ms; + } + [data-md-toggle=search]:checked ~ .md-header .md-search__inner { + left: 0; + transform: translateX(0); + opacity: 1; + transition: right 0ms 0ms, left 0ms 0ms, transform 150ms 150ms cubic-bezier(0.1, 0.7, 0.1, 1), opacity 150ms 150ms; + } + [dir=rtl] [data-md-toggle=search]:checked ~ .md-header .md-search__inner { + right: 0; + left: initial; + } + html [dir=rtl] .md-search__inner { + right: 100%; + left: initial; + transform: translateX(-5%); + } +} +@media screen and (min-width: 60em) { + .md-search__inner { + position: relative; + float: right; + width: 11.7rem; + padding: 0.1rem 0; + transition: width 250ms cubic-bezier(0.1, 0.7, 0.1, 1); + } + [dir=rtl] .md-search__inner { + float: left; + } +} +@media screen and (min-width: 60em) and (max-width: 76.1875em) { + [data-md-toggle=search]:checked ~ .md-header .md-search__inner { + width: 23.4rem; + } +} +@media screen and (min-width: 76.25em) { + [data-md-toggle=search]:checked ~ .md-header .md-search__inner { + width: 34.4rem; + } +} +.md-search__form { + position: relative; +} +@media screen and (min-width: 60em) { + .md-search__form { + border-radius: 0.1rem; + } +} +.md-search__input { + position: relative; + z-index: 2; + padding: 0 2.2rem 0 3.6rem; + text-overflow: ellipsis; +} +[dir=rtl] .md-search__input { + padding: 0 3.6rem 0 2.2rem; +} +.md-search__input::-webkit-input-placeholder { + -webkit-transition: color 250ms; + transition: color 250ms; +} +.md-search__input::-moz-placeholder { + -moz-transition: color 250ms; + transition: color 250ms; +} +.md-search__input::-ms-input-placeholder { + -ms-transition: color 250ms; + transition: color 250ms; +} +.md-search__input::placeholder { + transition: color 250ms; +} +.md-search__input::-webkit-input-placeholder { + color: var(--md-default-fg-color--light); +} +.md-search__input::-moz-placeholder { + color: var(--md-default-fg-color--light); +} +.md-search__input::-ms-input-placeholder { + color: var(--md-default-fg-color--light); +} +.md-search__input ~ .md-search__icon, .md-search__input::placeholder { + color: var(--md-default-fg-color--light); +} +.md-search__input::-ms-clear { + display: none; +} +@media screen and (max-width: 59.9375em) { + .md-search__input { + width: 100%; + height: 2.4rem; + font-size: 0.9rem; + } +} +@media screen and (min-width: 60em) { + .md-search__input { + width: 100%; + height: 1.8rem; + padding-left: 2.2rem; + color: inherit; + font-size: 0.8rem; + background-color: var(--md-default-fg-color--lighter); + border-radius: 0.1rem; + transition: color 250ms, background-color 250ms; + } + [dir=rtl] .md-search__input { + padding-right: 2.2rem; + } + .md-search__input + .md-search__icon { + color: var(--md-primary-bg-color); + } + .md-search__input::-webkit-input-placeholder { + color: var(--md-primary-bg-color--light); + } + .md-search__input::-moz-placeholder { + color: var(--md-primary-bg-color--light); + } + .md-search__input::-ms-input-placeholder { + color: var(--md-primary-bg-color--light); + } + .md-search__input::placeholder { + color: var(--md-primary-bg-color--light); + } + .md-search__input:hover { + background-color: var(--md-default-bg-color--lightest); + } + [data-md-toggle=search]:checked ~ .md-header .md-search__input { + color: var(--md-default-fg-color); + text-overflow: clip; + background-color: var(--md-default-bg-color); + border-radius: 0.1rem 0.1rem 0 0; + } + [data-md-toggle=search]:checked ~ .md-header .md-search__input::-webkit-input-placeholder { + color: var(--md-default-fg-color--light); + } + [data-md-toggle=search]:checked ~ .md-header .md-search__input::-moz-placeholder { + color: var(--md-default-fg-color--light); + } + [data-md-toggle=search]:checked ~ .md-header .md-search__input::-ms-input-placeholder { + color: var(--md-default-fg-color--light); + } + [data-md-toggle=search]:checked ~ .md-header .md-search__input + .md-search__icon, [data-md-toggle=search]:checked ~ .md-header .md-search__input::placeholder { + color: var(--md-default-fg-color--light); + } +} +.md-search__icon { + position: absolute; + z-index: 2; + width: 1.2rem; + height: 1.2rem; + cursor: pointer; + transition: color 250ms, opacity 250ms; +} +.md-search__icon:hover { + opacity: 0.7; +} +.md-search__icon[for=__search] { + top: 0.3rem; + left: 0.5rem; +} +[dir=rtl] .md-search__icon[for=__search] { + right: 0.5rem; + left: initial; +} +[dir=rtl] .md-search__icon[for=__search] svg { + transform: scaleX(-1); +} +@media screen and (max-width: 59.9375em) { + .md-search__icon[for=__search] { + top: 0.6rem; + left: 0.8rem; + } + [dir=rtl] .md-search__icon[for=__search] { + right: 0.8rem; + left: initial; + } + .md-search__icon[for=__search] svg:first-child { + display: none; + } +} +@media screen and (min-width: 60em) { + .md-search__icon[for=__search] { + pointer-events: none; + } + .md-search__icon[for=__search] svg:last-child { + display: none; + } +} +.md-search__icon[type=reset] { + top: 0.3rem; + right: 0.5rem; + transform: scale(0.75); + opacity: 0; + transition: transform 150ms cubic-bezier(0.1, 0.7, 0.1, 1), opacity 150ms; + pointer-events: none; +} +[dir=rtl] .md-search__icon[type=reset] { + right: initial; + left: 0.5rem; +} +@media screen and (max-width: 59.9375em) { + .md-search__icon[type=reset] { + top: 0.6rem; + right: 0.8rem; + } + [dir=rtl] .md-search__icon[type=reset] { + right: initial; + left: 0.8rem; + } +} +[data-md-toggle=search]:checked ~ .md-header .md-search__input:not(:placeholder-shown) ~ .md-search__icon[type=reset] { + transform: scale(1); + opacity: 1; + pointer-events: initial; +} +[data-md-toggle=search]:checked ~ .md-header .md-search__input:not(:placeholder-shown) ~ .md-search__icon[type=reset]:hover { + opacity: 0.7; +} +.md-search__output { + position: absolute; + z-index: 1; + width: 100%; + overflow: hidden; + border-radius: 0 0 0.1rem 0.1rem; +} +@media screen and (max-width: 59.9375em) { + .md-search__output { + top: 2.4rem; + bottom: 0; + } +} +@media screen and (min-width: 60em) { + .md-search__output { + top: 1.9rem; + opacity: 0; + transition: opacity 400ms; + } + [data-md-toggle=search]:checked ~ .md-header .md-search__output { + box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12), 0 3px 5px -1px rgba(0, 0, 0, 0.4); + opacity: 1; + } +} +.md-search__scrollwrap { + height: 100%; + overflow-y: auto; + background-color: var(--md-default-bg-color); + box-shadow: inset 0 0.05rem 0 var(--md-default-fg-color--lightest); + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-scroll-snap-type: y mandatory; + -ms-scroll-snap-type: y mandatory; + scroll-snap-type: y mandatory; + touch-action: pan-y; +} +@media (-webkit-max-device-pixel-ratio: 1), (max-resolution: 1dppx) { + .md-search__scrollwrap { + transform: translateZ(0); + } +} +@media screen and (min-width: 60em) and (max-width: 76.1875em) { + .md-search__scrollwrap { + width: 23.4rem; + } +} +@media screen and (min-width: 76.25em) { + .md-search__scrollwrap { + width: 34.4rem; + } +} +@media screen and (min-width: 60em) { + .md-search__scrollwrap { + max-height: 0; + } + [data-md-toggle=search]:checked ~ .md-header .md-search__scrollwrap { + max-height: 75vh; + } + .md-search__scrollwrap::-webkit-scrollbar { + width: 0.2rem; + height: 0.2rem; + } + .md-search__scrollwrap::-webkit-scrollbar-thumb { + background-color: var(--md-default-fg-color--lighter); + } + .md-search__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: var(--md-accent-fg-color); + } +} + +.md-search-result { + color: var(--md-default-fg-color); + word-break: break-word; +} +.md-search-result__meta { + padding: 0 0.8rem; + color: var(--md-default-fg-color--light); + font-size: 0.64rem; + line-height: 1.8rem; + background-color: var(--md-default-fg-color--lightest); + scroll-snap-align: start; +} +@media screen and (min-width: 60em) { + .md-search-result__meta { + padding-left: 2.2rem; + } + [dir=rtl] .md-search-result__meta { + padding-right: 2.2rem; + padding-left: initial; + } +} +.md-search-result__list { + margin: 0; + padding: 0; + list-style: none; + border-top: 0.05rem solid var(--md-default-fg-color--lightest); +} +.md-search-result__item { + box-shadow: 0 -0.05rem 0 var(--md-default-fg-color--lightest); +} +.md-search-result__link { + display: block; + outline: 0; + transition: background 250ms; + scroll-snap-align: start; +} +.md-search-result__link:focus, .md-search-result__link:hover { + background-color: var(--md-accent-fg-color--transparent); +} +.md-search-result__link:focus .md-search-result__article::before, .md-search-result__link:hover .md-search-result__article::before { + opacity: 0.7; +} +.md-search-result__link:last-child .md-search-result__teaser { + margin-bottom: 0.6rem; +} +.md-search-result__article { + position: relative; + padding: 0 0.8rem; + overflow: hidden; +} +@media screen and (min-width: 60em) { + .md-search-result__article { + padding-left: 2.2rem; + } + [dir=rtl] .md-search-result__article { + padding-right: 2.2rem; + padding-left: 0.8rem; + } +} +.md-search-result__article--document .md-search-result__title { + margin: 0.55rem 0; + font-weight: 400; + font-size: 0.8rem; + line-height: 1.4; +} +.md-search-result__icon { + position: absolute; + left: 0; + margin: 0.1rem; + padding: 0.4rem; + color: var(--md-default-fg-color--light); +} +[dir=rtl] .md-search-result__icon { + right: 0; + left: initial; +} +[dir=rtl] .md-search-result__icon svg { + transform: scaleX(-1); +} +@media screen and (max-width: 59.9375em) { + .md-search-result__icon { + display: none; + } +} +.md-search-result__title { + margin: 0.5em 0; + font-weight: 700; + font-size: 0.64rem; + line-height: 1.4; +} +.md-search-result__teaser { + display: -webkit-box; + max-height: 1.65rem; + margin: 0.5em 0; + overflow: hidden; + color: var(--md-default-fg-color--light); + font-size: 0.64rem; + line-height: 1.4; + text-overflow: ellipsis; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; +} +@media screen and (max-width: 44.9375em) { + .md-search-result__teaser { + max-height: 2.5rem; + -webkit-line-clamp: 3; + } +} +@media screen and (min-width: 60em) and (max-width: 76.1875em) { + .md-search-result__teaser { + max-height: 2.5rem; + -webkit-line-clamp: 3; + } +} +.md-search-result em { + font-weight: 700; + font-style: normal; + text-decoration: underline; +} + +.md-sidebar { + position: -webkit-sticky; + position: sticky; + top: 2.4rem; + width: 12.1rem; + padding: 1.2rem 0; + overflow: hidden; +} +@media print { + .md-sidebar { + display: none; + } +} +@media screen and (max-width: 76.1875em) { + .md-sidebar--primary { + position: fixed; + top: 0; + left: -12.1rem; + z-index: 3; + width: 12.1rem; + height: 100%; + background-color: var(--md-default-bg-color); + transform: translateX(0); + transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1), box-shadow 250ms; + } + [dir=rtl] .md-sidebar--primary { + right: -12.1rem; + left: initial; + } + [data-md-toggle=drawer]:checked ~ .md-container .md-sidebar--primary { + box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.4); + transform: translateX(12.1rem); + } + [dir=rtl] [data-md-toggle=drawer]:checked ~ .md-container .md-sidebar--primary { + transform: translateX(-12.1rem); + } + .md-sidebar--primary .md-sidebar__scrollwrap { + overflow: hidden; + } +} +.md-sidebar--secondary { + display: none; + order: 2; +} +@media screen and (min-width: 60em) { + .md-sidebar--secondary { + display: block; + } + .md-sidebar--secondary .md-sidebar__scrollwrap { + touch-action: pan-y; + } +} +.md-sidebar__scrollwrap { + max-height: 100%; + margin: 0 0.2rem; + overflow-y: auto; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-scroll-snap-type: y mandatory; + -ms-scroll-snap-type: y mandatory; + scroll-snap-type: y mandatory; +} +@media screen and (max-width: 76.1875em) { + .md-sidebar--primary .md-sidebar__scrollwrap { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + margin: 0; + -webkit-scroll-snap-type: none; + -ms-scroll-snap-type: none; + scroll-snap-type: none; + } +} +.md-sidebar__scrollwrap::-webkit-scrollbar { + width: 0.2rem; + height: 0.2rem; +} +.md-sidebar__scrollwrap::-webkit-scrollbar-thumb { + background-color: var(--md-default-fg-color--lighter); +} +.md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: var(--md-accent-fg-color); +} + +@-webkit-keyframes md-source__facts--done { + 0% { + height: 0; + } + 100% { + height: 0.65rem; + } +} + +@keyframes md-source__facts--done { + 0% { + height: 0; + } + 100% { + height: 0.65rem; + } +} +@-webkit-keyframes md-source__fact--done { + 0% { + transform: translateY(100%); + opacity: 0; + } + 50% { + opacity: 0; + } + 100% { + transform: translateY(0%); + opacity: 1; + } +} +@keyframes md-source__fact--done { + 0% { + transform: translateY(100%); + opacity: 0; + } + 50% { + opacity: 0; + } + 100% { + transform: translateY(0%); + opacity: 1; + } +} +.md-source { + display: block; + font-size: 0.65rem; + line-height: 1.2; + white-space: nowrap; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition: opacity 250ms; +} +.md-source:hover { + opacity: 0.7; +} +.md-source__icon { + display: inline-block; + width: 2.4rem; + height: 2.4rem; + vertical-align: middle; +} +.md-source__icon svg { + margin-top: 0.6rem; + margin-left: 0.6rem; +} +[dir=rtl] .md-source__icon svg { + margin-right: 0.6rem; + margin-left: initial; +} +.md-source__icon + .md-source__repository { + margin-left: -2rem; + padding-left: 2rem; +} +[dir=rtl] .md-source__icon + .md-source__repository { + margin-right: -2rem; + margin-left: initial; + padding-right: 2rem; + padding-left: initial; +} +.md-source__repository { + display: inline-block; + max-width: calc(100% - 1.2rem); + margin-left: 0.6rem; + overflow: hidden; + font-weight: 700; + text-overflow: ellipsis; + vertical-align: middle; +} +.md-source__facts { + margin: 0; + padding: 0; + overflow: hidden; + font-weight: 700; + font-size: 0.55rem; + list-style-type: none; + opacity: 0.75; +} +[data-md-state=done] .md-source__facts { + -webkit-animation: md-source__facts--done 250ms ease-in; + animation: md-source__facts--done 250ms ease-in; +} +.md-source__fact { + float: left; +} +[dir=rtl] .md-source__fact { + float: right; +} +[data-md-state=done] .md-source__fact { + -webkit-animation: md-source__fact--done 400ms ease-out; + animation: md-source__fact--done 400ms ease-out; +} +.md-source__fact::before { + margin: 0 0.1rem; + content: "·"; +} +.md-source__fact:first-child::before { + display: none; +} + +.md-tabs { + width: 100%; + overflow: auto; + color: var(--md-primary-bg-color); + background-color: var(--md-primary-fg-color); + transition: background 250ms; +} +.no-js .md-tabs { + transition: none; +} +@media screen and (max-width: 76.1875em) { + .md-tabs { + display: none; + } +} +@media print { + .md-tabs { + display: none; + } +} +.md-tabs__list { + margin: 0; + margin-left: 0.2rem; + padding: 0; + white-space: nowrap; + list-style: none; + contain: content; +} +[dir=rtl] .md-tabs__list { + margin-right: 0.2rem; + margin-left: initial; +} +.md-tabs__item { + display: inline-block; + height: 2.4rem; + padding-right: 0.6rem; + padding-left: 0.6rem; +} +.md-tabs__link { + display: block; + margin-top: 0.8rem; + font-size: 0.7rem; + opacity: 0.7; + transition: transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1), opacity 250ms; +} +.no-js .md-tabs__link { + transition: none; +} +.md-tabs__link--active, .md-tabs__link:hover { + color: inherit; + opacity: 1; +} +.md-tabs__item:nth-child(2) .md-tabs__link { + transition-delay: 20ms; +} +.md-tabs__item:nth-child(3) .md-tabs__link { + transition-delay: 40ms; +} +.md-tabs__item:nth-child(4) .md-tabs__link { + transition-delay: 60ms; +} +.md-tabs__item:nth-child(5) .md-tabs__link { + transition-delay: 80ms; +} +.md-tabs__item:nth-child(6) .md-tabs__link { + transition-delay: 100ms; +} +.md-tabs__item:nth-child(7) .md-tabs__link { + transition-delay: 120ms; +} +.md-tabs__item:nth-child(8) .md-tabs__link { + transition-delay: 140ms; +} +.md-tabs__item:nth-child(9) .md-tabs__link { + transition-delay: 160ms; +} +.md-tabs__item:nth-child(10) .md-tabs__link { + transition-delay: 180ms; +} +.md-tabs__item:nth-child(11) .md-tabs__link { + transition-delay: 200ms; +} +.md-tabs__item:nth-child(12) .md-tabs__link { + transition-delay: 220ms; +} +.md-tabs__item:nth-child(13) .md-tabs__link { + transition-delay: 240ms; +} +.md-tabs__item:nth-child(14) .md-tabs__link { + transition-delay: 260ms; +} +.md-tabs__item:nth-child(15) .md-tabs__link { + transition-delay: 280ms; +} +.md-tabs__item:nth-child(16) .md-tabs__link { + transition-delay: 300ms; +} +.md-tabs[data-md-state=hidden] { + pointer-events: none; +} +.md-tabs[data-md-state=hidden] .md-tabs__link { + transform: translateY(50%); + opacity: 0; + transition: color 250ms, transform 0ms 400ms, opacity 100ms; +} +@media screen and (min-width: 76.25em) { + .md-tabs ~ .md-main .md-nav--primary > .md-nav__list > .md-nav__item--nested { + display: none; + } + .md-tabs--active ~ .md-main .md-nav--primary .md-nav__title { + display: block; + padding: 0 0.6rem; + pointer-events: none; + scroll-snap-align: start; + } + .md-tabs--active ~ .md-main .md-nav--primary .md-nav__title[for=__drawer] { + display: none; + } + .md-tabs--active ~ .md-main .md-nav--primary > .md-nav__list > .md-nav__item { + display: none; + } + .md-tabs--active ~ .md-main .md-nav--primary > .md-nav__list > .md-nav__item--active { + display: block; + padding: 0; + } + .md-tabs--active ~ .md-main .md-nav--primary > .md-nav__list > .md-nav__item--active > .md-nav__link { + display: none; + } + .md-tabs--active ~ .md-main .md-nav[data-md-level="1"] { + display: block; + } + .md-tabs--active ~ .md-main .md-nav[data-md-level="1"] > .md-nav__list > .md-nav__item { + padding: 0 0.6rem; + } + .md-tabs--active ~ .md-main .md-nav[data-md-level="1"] .md-nav .md-nav__title { + display: none; + } +} + +:root { + --md-admonition-icon--note: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--abstract: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--info: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--tip: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--success: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--question: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--warning: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--failure: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--danger: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--bug: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--example: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--quote: url('data:image/svg+xml;charset=utf-8,'); +} + +.md-typeset .admonition, .md-typeset details { + margin: 1.5625em 0; + padding: 0 0.6rem; + overflow: hidden; + font-size: 0.64rem; + page-break-inside: avoid; + border-left: 0.2rem solid #448aff; + border-radius: 0.1rem; + box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.05rem rgba(0, 0, 0, 0.1); +} +[dir=rtl] .md-typeset .admonition, [dir=rtl] .md-typeset details { + border-right: 0.2rem solid #448aff; + border-left: none; +} +@media print { + .md-typeset .admonition, .md-typeset details { + box-shadow: none; + } +} +html .md-typeset .admonition > :last-child, html .md-typeset details > :last-child { + margin-bottom: 0.6rem; +} +.md-typeset .admonition .admonition, .md-typeset details .admonition, .md-typeset .admonition details, .md-typeset details details { + margin: 1em 0; +} +.md-typeset .admonition .md-typeset__scrollwrap, .md-typeset details .md-typeset__scrollwrap { + margin: 1em -0.6rem; +} +.md-typeset .admonition .md-typeset__table, .md-typeset details .md-typeset__table { + padding: 0 0.6rem; +} +.md-typeset .admonition-title, .md-typeset summary { + position: relative; + margin: 0 -0.6rem; + padding: 0.4rem 0.6rem 0.4rem 2rem; + font-weight: 700; + background-color: rgba(68, 138, 255, 0.1); +} +[dir=rtl] .md-typeset .admonition-title, [dir=rtl] .md-typeset summary { + padding: 0.4rem 2rem 0.4rem 0.6rem; +} +html .md-typeset .admonition-title:last-child, html .md-typeset summary:last-child { + margin-bottom: 0; +} +.md-typeset .admonition-title::before, .md-typeset summary::before { + position: absolute; + left: 0.6rem; + width: 1rem; + height: 1rem; + background-color: #448aff; + -webkit-mask-image: var(--md-admonition-icon--note); + mask-image: var(--md-admonition-icon--note); + content: ""; +} +[dir=rtl] .md-typeset .admonition-title::before, [dir=rtl] .md-typeset summary::before { + right: 0.6rem; + left: initial; +} +.md-typeset .admonition-title code, .md-typeset summary code { + margin: initial; + padding: initial; + color: currentColor; + background-color: transparent; + border-radius: initial; + box-shadow: none; +} + +.md-typeset .admonition.note, .md-typeset details.note { + border-color: #448aff; +} + +.md-typeset .note > .admonition-title, .md-typeset .note > summary { + background-color: rgba(68, 138, 255, 0.1); +} +.md-typeset .note > .admonition-title::before, .md-typeset .note > summary::before { + background-color: #448aff; + -webkit-mask-image: var(--md-admonition-icon--note); + mask-image: var(--md-admonition-icon--note); +} + +.md-typeset .admonition.abstract, .md-typeset details.abstract, .md-typeset .admonition.tldr, .md-typeset details.tldr, .md-typeset .admonition.summary, .md-typeset details.summary { + border-color: #00b0ff; +} + +.md-typeset .abstract > .admonition-title, .md-typeset .abstract > summary, .md-typeset .tldr > .admonition-title, .md-typeset .tldr > summary, .md-typeset .summary > .admonition-title, .md-typeset .summary > summary { + background-color: rgba(0, 176, 255, 0.1); +} +.md-typeset .abstract > .admonition-title::before, .md-typeset .abstract > summary::before, .md-typeset .tldr > .admonition-title::before, .md-typeset .tldr > summary::before, .md-typeset .summary > .admonition-title::before, .md-typeset .summary > summary::before { + background-color: #00b0ff; + -webkit-mask-image: var(--md-admonition-icon--abstract); + mask-image: var(--md-admonition-icon--abstract); +} + +.md-typeset .admonition.info, .md-typeset details.info, .md-typeset .admonition.todo, .md-typeset details.todo { + border-color: #00b8d4; +} + +.md-typeset .info > .admonition-title, .md-typeset .info > summary, .md-typeset .todo > .admonition-title, .md-typeset .todo > summary { + background-color: rgba(0, 184, 212, 0.1); +} +.md-typeset .info > .admonition-title::before, .md-typeset .info > summary::before, .md-typeset .todo > .admonition-title::before, .md-typeset .todo > summary::before { + background-color: #00b8d4; + -webkit-mask-image: var(--md-admonition-icon--info); + mask-image: var(--md-admonition-icon--info); +} + +.md-typeset .admonition.tip, .md-typeset details.tip, .md-typeset .admonition.important, .md-typeset details.important, .md-typeset .admonition.hint, .md-typeset details.hint { + border-color: #00bfa5; +} + +.md-typeset .tip > .admonition-title, .md-typeset .tip > summary, .md-typeset .important > .admonition-title, .md-typeset .important > summary, .md-typeset .hint > .admonition-title, .md-typeset .hint > summary { + background-color: rgba(0, 191, 165, 0.1); +} +.md-typeset .tip > .admonition-title::before, .md-typeset .tip > summary::before, .md-typeset .important > .admonition-title::before, .md-typeset .important > summary::before, .md-typeset .hint > .admonition-title::before, .md-typeset .hint > summary::before { + background-color: #00bfa5; + -webkit-mask-image: var(--md-admonition-icon--tip); + mask-image: var(--md-admonition-icon--tip); +} + +.md-typeset .admonition.success, .md-typeset details.success, .md-typeset .admonition.done, .md-typeset details.done, .md-typeset .admonition.check, .md-typeset details.check { + border-color: #00c853; +} + +.md-typeset .success > .admonition-title, .md-typeset .success > summary, .md-typeset .done > .admonition-title, .md-typeset .done > summary, .md-typeset .check > .admonition-title, .md-typeset .check > summary { + background-color: rgba(0, 200, 83, 0.1); +} +.md-typeset .success > .admonition-title::before, .md-typeset .success > summary::before, .md-typeset .done > .admonition-title::before, .md-typeset .done > summary::before, .md-typeset .check > .admonition-title::before, .md-typeset .check > summary::before { + background-color: #00c853; + -webkit-mask-image: var(--md-admonition-icon--success); + mask-image: var(--md-admonition-icon--success); +} + +.md-typeset .admonition.question, .md-typeset details.question, .md-typeset .admonition.faq, .md-typeset details.faq, .md-typeset .admonition.help, .md-typeset details.help { + border-color: #64dd17; +} + +.md-typeset .question > .admonition-title, .md-typeset .question > summary, .md-typeset .faq > .admonition-title, .md-typeset .faq > summary, .md-typeset .help > .admonition-title, .md-typeset .help > summary { + background-color: rgba(100, 221, 23, 0.1); +} +.md-typeset .question > .admonition-title::before, .md-typeset .question > summary::before, .md-typeset .faq > .admonition-title::before, .md-typeset .faq > summary::before, .md-typeset .help > .admonition-title::before, .md-typeset .help > summary::before { + background-color: #64dd17; + -webkit-mask-image: var(--md-admonition-icon--question); + mask-image: var(--md-admonition-icon--question); +} + +.md-typeset .admonition.warning, .md-typeset details.warning, .md-typeset .admonition.attention, .md-typeset details.attention, .md-typeset .admonition.caution, .md-typeset details.caution { + border-color: #ff9100; +} + +.md-typeset .warning > .admonition-title, .md-typeset .warning > summary, .md-typeset .attention > .admonition-title, .md-typeset .attention > summary, .md-typeset .caution > .admonition-title, .md-typeset .caution > summary { + background-color: rgba(255, 145, 0, 0.1); +} +.md-typeset .warning > .admonition-title::before, .md-typeset .warning > summary::before, .md-typeset .attention > .admonition-title::before, .md-typeset .attention > summary::before, .md-typeset .caution > .admonition-title::before, .md-typeset .caution > summary::before { + background-color: #ff9100; + -webkit-mask-image: var(--md-admonition-icon--warning); + mask-image: var(--md-admonition-icon--warning); +} + +.md-typeset .admonition.failure, .md-typeset details.failure, .md-typeset .admonition.missing, .md-typeset details.missing, .md-typeset .admonition.fail, .md-typeset details.fail { + border-color: #ff5252; +} + +.md-typeset .failure > .admonition-title, .md-typeset .failure > summary, .md-typeset .missing > .admonition-title, .md-typeset .missing > summary, .md-typeset .fail > .admonition-title, .md-typeset .fail > summary { + background-color: rgba(255, 82, 82, 0.1); +} +.md-typeset .failure > .admonition-title::before, .md-typeset .failure > summary::before, .md-typeset .missing > .admonition-title::before, .md-typeset .missing > summary::before, .md-typeset .fail > .admonition-title::before, .md-typeset .fail > summary::before { + background-color: #ff5252; + -webkit-mask-image: var(--md-admonition-icon--failure); + mask-image: var(--md-admonition-icon--failure); +} + +.md-typeset .admonition.danger, .md-typeset details.danger, .md-typeset .admonition.error, .md-typeset details.error { + border-color: #ff1744; +} + +.md-typeset .danger > .admonition-title, .md-typeset .danger > summary, .md-typeset .error > .admonition-title, .md-typeset .error > summary { + background-color: rgba(255, 23, 68, 0.1); +} +.md-typeset .danger > .admonition-title::before, .md-typeset .danger > summary::before, .md-typeset .error > .admonition-title::before, .md-typeset .error > summary::before { + background-color: #ff1744; + -webkit-mask-image: var(--md-admonition-icon--danger); + mask-image: var(--md-admonition-icon--danger); +} + +.md-typeset .admonition.bug, .md-typeset details.bug { + border-color: #f50057; +} + +.md-typeset .bug > .admonition-title, .md-typeset .bug > summary { + background-color: rgba(245, 0, 87, 0.1); +} +.md-typeset .bug > .admonition-title::before, .md-typeset .bug > summary::before { + background-color: #f50057; + -webkit-mask-image: var(--md-admonition-icon--bug); + mask-image: var(--md-admonition-icon--bug); +} + +.md-typeset .admonition.example, .md-typeset details.example { + border-color: #651fff; +} + +.md-typeset .example > .admonition-title, .md-typeset .example > summary { + background-color: rgba(101, 31, 255, 0.1); +} +.md-typeset .example > .admonition-title::before, .md-typeset .example > summary::before { + background-color: #651fff; + -webkit-mask-image: var(--md-admonition-icon--example); + mask-image: var(--md-admonition-icon--example); +} + +.md-typeset .admonition.quote, .md-typeset details.quote, .md-typeset .admonition.cite, .md-typeset details.cite { + border-color: #9e9e9e; +} + +.md-typeset .quote > .admonition-title, .md-typeset .quote > summary, .md-typeset .cite > .admonition-title, .md-typeset .cite > summary { + background-color: rgba(158, 158, 158, 0.1); +} +.md-typeset .quote > .admonition-title::before, .md-typeset .quote > summary::before, .md-typeset .cite > .admonition-title::before, .md-typeset .cite > summary::before { + background-color: #9e9e9e; + -webkit-mask-image: var(--md-admonition-icon--quote); + mask-image: var(--md-admonition-icon--quote); +} + +.codehilite .o, .highlight .o { + color: inherit; +} +.codehilite .ow, .highlight .ow { + color: inherit; +} +.codehilite .ge, .highlight .ge { + color: #000000; +} +.codehilite .gr, .highlight .gr { + color: #AA0000; +} +.codehilite .gh, .highlight .gh { + color: #999999; +} +.codehilite .go, .highlight .go { + color: #888888; +} +.codehilite .gp, .highlight .gp { + color: #555555; +} +.codehilite .gs, .highlight .gs { + color: inherit; +} +.codehilite .gu, .highlight .gu { + color: #AAAAAA; +} +.codehilite .gt, .highlight .gt { + color: #AA0000; +} +.codehilite .gd, .highlight .gd { + background-color: #FFDDDD; +} +.codehilite .gi, .highlight .gi { + background-color: #DDFFDD; +} +.codehilite .k, .highlight .k { + color: #3B78E7; +} +.codehilite .kc, .highlight .kc { + color: #A71D5D; +} +.codehilite .kd, .highlight .kd { + color: #3B78E7; +} +.codehilite .kn, .highlight .kn { + color: #3B78E7; +} +.codehilite .kp, .highlight .kp { + color: #A71D5D; +} +.codehilite .kr, .highlight .kr { + color: #3E61A2; +} +.codehilite .kt, .highlight .kt { + color: #3E61A2; +} +.codehilite .c, .highlight .c { + color: #999999; +} +.codehilite .cm, .highlight .cm { + color: #999999; +} +.codehilite .cp, .highlight .cp { + color: #666666; +} +.codehilite .c1, .highlight .c1 { + color: #999999; +} +.codehilite .ch, .highlight .ch { + color: #999999; +} +.codehilite .cs, .highlight .cs { + color: #999999; +} +.codehilite .na, .highlight .na { + color: #C2185B; +} +.codehilite .nb, .highlight .nb { + color: #C2185B; +} +.codehilite .bp, .highlight .bp { + color: #3E61A2; +} +.codehilite .nc, .highlight .nc { + color: #C2185B; +} +.codehilite .no, .highlight .no { + color: #3E61A2; +} +.codehilite .nd, .highlight .nd { + color: #666666; +} +.codehilite .ni, .highlight .ni { + color: #666666; +} +.codehilite .ne, .highlight .ne { + color: #C2185B; +} +.codehilite .nf, .highlight .nf { + color: #C2185B; +} +.codehilite .nl, .highlight .nl { + color: #3B5179; +} +.codehilite .nn, .highlight .nn { + color: #EC407A; +} +.codehilite .nt, .highlight .nt { + color: #3B78E7; +} +.codehilite .nv, .highlight .nv { + color: #3E61A2; +} +.codehilite .vc, .highlight .vc { + color: #3E61A2; +} +.codehilite .vg, .highlight .vg { + color: #3E61A2; +} +.codehilite .vi, .highlight .vi { + color: #3E61A2; +} +.codehilite .nx, .highlight .nx { + color: #EC407A; +} +.codehilite .m, .highlight .m { + color: #E74C3C; +} +.codehilite .mf, .highlight .mf { + color: #E74C3C; +} +.codehilite .mh, .highlight .mh { + color: #E74C3C; +} +.codehilite .mi, .highlight .mi { + color: #E74C3C; +} +.codehilite .il, .highlight .il { + color: #E74C3C; +} +.codehilite .mo, .highlight .mo { + color: #E74C3C; +} +.codehilite .s, .highlight .s { + color: #0D904F; +} +.codehilite .sb, .highlight .sb { + color: #0D904F; +} +.codehilite .sc, .highlight .sc { + color: #0D904F; +} +.codehilite .sd, .highlight .sd { + color: #999999; +} +.codehilite .s2, .highlight .s2 { + color: #0D904F; +} +.codehilite .se, .highlight .se { + color: #183691; +} +.codehilite .sh, .highlight .sh { + color: #183691; +} +.codehilite .si, .highlight .si { + color: #183691; +} +.codehilite .sx, .highlight .sx { + color: #183691; +} +.codehilite .sr, .highlight .sr { + color: #009926; +} +.codehilite .s1, .highlight .s1 { + color: #0D904F; +} +.codehilite .ss, .highlight .ss { + color: #0D904F; +} +.codehilite .err, .highlight .err { + color: #A61717; +} +.codehilite .w, .highlight .w { + color: transparent; +} +.codehilite .hll, .highlight .hll { + display: block; + margin: 0 -1.1764705882em; + padding: 0 1.1764705882em; + background-color: rgba(255, 235, 59, 0.5); +} + +.codehilitetable, .highlighttable { + display: block; + overflow: hidden; +} +.codehilitetable tbody, .highlighttable tbody, +.codehilitetable td, +.highlighttable td { + display: block; + padding: 0; +} +.codehilitetable tr, .highlighttable tr { + display: flex; +} +.codehilitetable pre, .highlighttable pre { + margin: 0; +} +.codehilitetable .linenos, .highlighttable .linenos { + padding: 0.525rem 1.1764705882em; + padding-right: 0; + font-size: 0.85em; + background-color: var(--md-code-bg-color); + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.codehilitetable .linenodiv, .highlighttable .linenodiv { + padding-right: 0.5882352941em; + box-shadow: inset -0.05rem 0 var(--md-default-fg-color--lightest); +} +.codehilitetable .linenodiv pre, .highlighttable .linenodiv pre { + color: var(--md-default-fg-color--lighter); + text-align: right; +} +.codehilitetable .code, .highlighttable .code { + flex: 1; + overflow: hidden; +} + +.md-typeset .codehilitetable, .md-typeset .highlighttable { + margin: 1em 0; + direction: ltr; + border-radius: 0.1rem; +} +.md-typeset .codehilitetable code, .md-typeset .highlighttable code { + border-radius: 0; +} +@media screen and (max-width: 44.9375em) { + .md-typeset > .codehilite, .md-typeset > .highlight { + margin: 1em -0.8rem; + } + .md-typeset > .codehilite .hll, .md-typeset > .highlight .hll { + margin: 0 -0.8rem; + padding: 0 0.8rem; + } + .md-typeset > .codehilite code, .md-typeset > .highlight code { + border-radius: 0; + } + .md-typeset > .codehilitetable, .md-typeset > .highlighttable { + margin: 1em -0.8rem; + border-radius: 0; + } + .md-typeset > .codehilitetable .hll, .md-typeset > .highlighttable .hll { + margin: 0 -0.8rem; + padding: 0 0.8rem; + } +} + +:root { + --md-footnotes-icon: url('data:image/svg+xml;charset=utf-8,'); +} + +.md-typeset [id^="fnref:"] { + display: inline-block; +} +.md-typeset [id^="fnref:"]:target { + margin-top: -3.8rem; + padding-top: 3.8rem; + pointer-events: none; +} +.md-typeset [id^="fn:"]::before { + display: none; + height: 0; + content: ""; +} +.md-typeset [id^="fn:"]:target::before { + display: block; + margin-top: -3.5rem; + padding-top: 3.5rem; + pointer-events: none; +} +.md-typeset .footnote { + color: var(--md-default-fg-color--light); + font-size: 0.64rem; +} +.md-typeset .footnote ol { + margin-left: 0; +} +.md-typeset .footnote li { + transition: color 125ms; +} +.md-typeset .footnote li:target { + color: var(--md-default-fg-color); +} +.md-typeset .footnote li :first-child { + margin-top: 0; +} +.md-typeset .footnote li:hover .footnote-backref, .md-typeset .footnote li:target .footnote-backref { + transform: translateX(0); + opacity: 1; +} +.md-typeset .footnote li:hover .footnote-backref:hover { + color: var(--md-accent-fg-color); +} +.md-typeset .footnote-ref { + display: inline-block; + pointer-events: initial; +} +.md-typeset .footnote-backref { + display: inline-block; + color: var(--md-primary-fg-color); + font-size: 0; + vertical-align: text-bottom; + transform: translateX(0.25rem); + opacity: 0; + transition: color 250ms, transform 250ms 250ms, opacity 125ms 250ms; +} +[dir=rtl] .md-typeset .footnote-backref { + transform: translateX(-0.25rem); +} +.md-typeset .footnote-backref::before { + display: inline-block; + width: 0.8rem; + height: 0.8rem; + background-color: currentColor; + -webkit-mask-image: var(--md-footnotes-icon); + mask-image: var(--md-footnotes-icon); + content: ""; +} +[dir=rtl] .md-typeset .footnote-backref::before svg { + transform: scaleX(-1); +} +@media print { + .md-typeset .footnote-backref { + color: var(--md-primary-fg-color); + transform: translateX(0); + opacity: 1; + } +} + +.md-typeset .headerlink { + display: inline-block; + margin-left: 0.5rem; + visibility: hidden; + opacity: 0; + transition: color 250ms, visibility 0ms 500ms, opacity 125ms; +} +[dir=rtl] .md-typeset .headerlink { + margin-right: 0.5rem; + margin-left: initial; +} +html body .md-typeset .headerlink { + color: var(--md-default-fg-color--lighter); +} +@media print { + .md-typeset .headerlink { + display: none; + } +} +.md-typeset :hover > .headerlink, +.md-typeset :target > .headerlink, +.md-typeset .headerlink:focus { + visibility: visible; + opacity: 1; + transition: color 250ms, visibility 0ms, opacity 125ms; +} +.md-typeset :target > .headerlink, +.md-typeset .headerlink:focus, +.md-typeset .headerlink:hover { + color: var(--md-accent-fg-color); +} +.md-typeset h3[id]::before, .md-typeset h2[id]::before, .md-typeset h1[id]::before { + display: block; + margin-top: -0.4rem; + padding-top: 0.4rem; + content: ""; +} +.md-typeset h3[id]:target::before, .md-typeset h2[id]:target::before, .md-typeset h1[id]:target::before { + margin-top: -3.4rem; + padding-top: 3.4rem; +} +.md-typeset h4[id]::before { + display: block; + margin-top: -0.45rem; + padding-top: 0.45rem; + content: ""; +} +.md-typeset h4[id]:target::before { + margin-top: -3.45rem; + padding-top: 3.45rem; +} +.md-typeset h6[id]::before, .md-typeset h5[id]::before { + display: block; + margin-top: -0.6rem; + padding-top: 0.6rem; + content: ""; +} +.md-typeset h6[id]:target::before, .md-typeset h5[id]:target::before { + margin-top: -3.6rem; + padding-top: 3.6rem; +} +.md-typeset .MJXc-display { + margin: 0.75em 0; + padding: 0.75em 0; + overflow: auto; + touch-action: auto; +} +@media screen and (max-width: 44.9375em) { + .md-typeset > p > .MJXc-display { + margin: 0.75em -0.8rem; + padding: 0.25em 0.8rem; + } +} +.md-typeset .MathJax_CHTML { + outline: 0; +} + +.md-typeset del.critic, +.md-typeset ins.critic, +.md-typeset .critic.comment { + padding: 0 0.25em; + border-radius: 0.1rem; + -webkit-box-decoration-break: clone; + box-decoration-break: clone; +} +.md-typeset del.critic { + background-color: #FFDDDD; +} +.md-typeset ins.critic { + background-color: #DDFFDD; +} +.md-typeset .critic.comment { + color: #999999; +} +.md-typeset .critic.comment::before { + content: "/* "; +} +.md-typeset .critic.comment::after { + content: " */"; +} +.md-typeset .critic.block { + display: block; + margin: 1em 0; + padding-right: 0.8rem; + padding-left: 0.8rem; + overflow: auto; + box-shadow: none; +} +.md-typeset .critic.block :first-child { + margin-top: 0.5em; +} +.md-typeset .critic.block :last-child { + margin-bottom: 0.5em; +} + +:root { + --md-details-icon: url('data:image/svg+xml;charset=utf-8,'); +} + +.md-typeset details { + display: block; + padding-top: 0; + overflow: visible; +} +.md-typeset details[open] > summary::after { + transform: rotate(90deg); +} +.md-typeset details:not([open]) { + padding-bottom: 0; +} +.md-typeset details:not([open]) > summary { + border-bottom-right-radius: 0.1rem; +} +.md-typeset details::after { + display: table; + content: ""; +} +.md-typeset summary { + display: block; + min-height: 1rem; + padding: 0.4rem 1.8rem 0.4rem 2rem; + border-top-right-radius: 0.1rem; + cursor: pointer; +} +[dir=rtl] .md-typeset summary { + padding: 0.4rem 2rem 0.4rem 1.8rem; +} +.md-typeset summary::-webkit-details-marker { + display: none; +} +.md-typeset summary::after { + position: absolute; + top: 0.4rem; + right: 0.4rem; + width: 1rem; + height: 1rem; + background-color: currentColor; + -webkit-mask-image: var(--md-details-icon); + mask-image: var(--md-details-icon); + transform: rotate(0deg); + transition: transform 250ms; + content: ""; +} +[dir=rtl] .md-typeset summary::after { + right: initial; + left: 0.4rem; + transform: rotate(180deg); +} + +.md-typeset img.emojione, +.md-typeset img.twemoji, +.md-typeset img.gemoji { + width: 1.125em; + vertical-align: -15%; +} +.md-typeset span.twemoji { + display: inline-block; + height: 1.125em; + vertical-align: text-top; +} +.md-typeset span.twemoji svg { + width: 1.125em; + fill: currentColor; +} + +.highlight [data-linenos]::before { + position: -webkit-sticky; + position: sticky; + left: -1.1764705882em; + float: left; + margin-right: 1.1764705882em; + margin-left: -1.1764705882em; + padding-left: 1.1764705882em; + color: var(--md-default-fg-color--lighter); + background-color: var(--md-code-bg-color); + box-shadow: inset -0.05rem 0 var(--md-default-fg-color--lightest); + content: attr(data-linenos); + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.md-typeset .tabbed-content { + display: none; + order: 99; + width: 100%; + box-shadow: 0 -0.05rem var(--md-default-fg-color--lightest); +} +.md-typeset .tabbed-content > .codehilite:only-child pre, +.md-typeset .tabbed-content > .codehilitetable:only-child, +.md-typeset .tabbed-content > .highlight:only-child pre, +.md-typeset .tabbed-content > .highlighttable:only-child { + margin: 0; +} +.md-typeset .tabbed-content > .codehilite:only-child pre > code, +.md-typeset .tabbed-content > .codehilitetable:only-child > code, +.md-typeset .tabbed-content > .highlight:only-child pre > code, +.md-typeset .tabbed-content > .highlighttable:only-child > code { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.md-typeset .tabbed-content > .tabbed-set { + margin: 0; +} +.md-typeset .tabbed-set { + position: relative; + display: flex; + flex-wrap: wrap; + margin: 1em 0; + border-radius: 0.1rem; +} +.md-typeset .tabbed-set > input { + display: none; +} +.md-typeset .tabbed-set > input:checked + label { + color: var(--md-accent-fg-color); + border-color: var(--md-accent-fg-color); +} +.md-typeset .tabbed-set > input:checked + label + .tabbed-content { + display: block; +} +.md-typeset .tabbed-set > label { + z-index: 1; + width: auto; + padding: 0.6rem 1.25em 0.5rem; + color: var(--md-default-fg-color--light); + font-weight: 700; + font-size: 0.64rem; + border-bottom: 0.1rem solid transparent; + cursor: pointer; + transition: color 125ms; +} +html .md-typeset .tabbed-set > label:hover { + color: var(--md-accent-fg-color); +} + +:root { + --md-tasklist-icon: url('data:image/svg+xml;charset=utf-8,'); + --md-tasklist-icon--checked: url('data:image/svg+xml;charset=utf-8,'); +} + +.md-typeset .task-list-item { + position: relative; + list-style-type: none; +} +.md-typeset .task-list-item [type=checkbox] { + position: absolute; + top: 0.45em; + left: -2em; +} +[dir=rtl] .md-typeset .task-list-item [type=checkbox] { + right: -2em; + left: initial; +} +.md-typeset .task-list-control .task-list-indicator::before { + position: absolute; + top: 0.15em; + left: -1.5em; + width: 1.25em; + height: 1.25em; + background-color: var(--md-default-fg-color--lightest); + -webkit-mask-image: var(--md-tasklist-icon); + mask-image: var(--md-tasklist-icon); + content: ""; +} +[dir=rtl] .md-typeset .task-list-control .task-list-indicator::before { + right: -1.5em; + left: initial; +} +.md-typeset .task-list-control [type=checkbox]:checked + .task-list-indicator::before { + background-color: #00e676; + -webkit-mask-image: var(--md-tasklist-icon--checked); + mask-image: var(--md-tasklist-icon--checked); +} +.md-typeset .task-list-control [type=checkbox] { + z-index: -1; + opacity: 0; +} diff --git a/docs/assets/stylesheets/palette.85bb4ebe.min.css b/docs/assets/stylesheets/palette.85bb4ebe.min.css new file mode 100644 index 00000000..8f8a04a2 --- /dev/null +++ b/docs/assets/stylesheets/palette.85bb4ebe.min.css @@ -0,0 +1,3 @@ +[data-md-color-primary=red]{--md-primary-fg-color: hsla(1deg, 83%, 63%, 1);--md-primary-fg-color--light: hsla(0deg, 73%, 77%, 1);--md-primary-fg-color--dark: hsla(1deg, 77%, 55%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=pink]{--md-primary-fg-color: hsla(340deg, 82%, 52%, 1);--md-primary-fg-color--light: hsla(340deg, 82%, 76%, 1);--md-primary-fg-color--dark: hsla(336deg, 78%, 43%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=purple]{--md-primary-fg-color: hsla(291deg, 47%, 51%, 1);--md-primary-fg-color--light: hsla(291deg, 47%, 71%, 1);--md-primary-fg-color--dark: hsla(287deg, 65%, 40%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=deep-purple]{--md-primary-fg-color: hsla(262deg, 47%, 55%, 1);--md-primary-fg-color--light: hsla(261deg, 46%, 74%, 1);--md-primary-fg-color--dark: hsla(262deg, 52%, 47%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=indigo]{--md-primary-fg-color: hsla(231deg, 48%, 48%, 1);--md-primary-fg-color--light: hsla(231deg, 44%, 74%, 1);--md-primary-fg-color--dark: hsla(232deg, 54%, 41%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=blue]{--md-primary-fg-color: hsla(207deg, 90%, 54%, 1);--md-primary-fg-color--light: hsla(207deg, 90%, 77%, 1);--md-primary-fg-color--dark: hsla(210deg, 79%, 46%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=light-blue]{--md-primary-fg-color: hsla(199deg, 98%, 48%, 1);--md-primary-fg-color--light: hsla(199deg, 92%, 74%, 1);--md-primary-fg-color--dark: hsla(201deg, 98%, 41%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=cyan]{--md-primary-fg-color: hsla(187deg, 100%, 42%, 1);--md-primary-fg-color--light: hsla(187deg, 72%, 71%, 1);--md-primary-fg-color--dark: hsla(186deg, 100%, 33%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=teal]{--md-primary-fg-color: hsla(174deg, 100%, 29%, 1);--md-primary-fg-color--light: hsla(174deg, 42%, 65%, 1);--md-primary-fg-color--dark: hsla(173deg, 100%, 24%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=green]{--md-primary-fg-color: hsla(122deg, 39%, 49%, 1);--md-primary-fg-color--light: hsla(122deg, 37%, 74%, 1);--md-primary-fg-color--dark: hsla(123deg, 43%, 39%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=light-green]{--md-primary-fg-color: hsla(88deg, 50%, 53%, 1);--md-primary-fg-color--light: hsla(88deg, 50%, 76%, 1);--md-primary-fg-color--dark: hsla(92deg, 48%, 42%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=lime]{--md-primary-fg-color: hsla(66deg, 70%, 54%, 1);--md-primary-fg-color--light: hsla(66deg, 71%, 77%, 1);--md-primary-fg-color--dark: hsla(62deg, 61%, 44%, 1);--md-primary-bg-color: var(--md-default-fg-color);--md-primary-bg-color--light: var(--md-default-fg-color--light)}[data-md-color-primary=yellow]{--md-primary-fg-color: hsla(54deg, 100%, 62%, 1);--md-primary-fg-color--light: hsla(54deg, 100%, 81%, 1);--md-primary-fg-color--dark: hsla(43deg, 96%, 58%, 1);--md-primary-bg-color: var(--md-default-fg-color);--md-primary-bg-color--light: var(--md-default-fg-color--light)}[data-md-color-primary=amber]{--md-primary-fg-color: hsla(45deg, 100%, 51%, 1);--md-primary-fg-color--light: hsla(45deg, 100%, 75%, 1);--md-primary-fg-color--dark: hsla(38deg, 100%, 50%, 1);--md-primary-bg-color: var(--md-default-fg-color);--md-primary-bg-color--light: var(--md-default-fg-color--light)}[data-md-color-primary=orange]{--md-primary-fg-color: hsla(36deg, 100%, 57%, 1);--md-primary-fg-color--light: hsla(36deg, 100%, 75%, 1);--md-primary-fg-color--dark: hsla(33deg, 100%, 49%, 1);--md-primary-bg-color: var(--md-default-fg-color);--md-primary-bg-color--light: var(--md-default-fg-color--light)}[data-md-color-primary=deep-orange]{--md-primary-fg-color: hsla(14deg, 100%, 63%, 1);--md-primary-fg-color--light: hsla(14deg, 100%, 78%, 1);--md-primary-fg-color--dark: hsla(14deg, 91%, 54%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=brown]{--md-primary-fg-color: hsla(16deg, 25%, 38%, 1);--md-primary-fg-color--light: hsla(15deg, 15%, 69%, 1);--md-primary-fg-color--dark: hsla(14deg, 26%, 29%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=grey]{--md-primary-fg-color: hsla(0deg, 0%, 46%, 1);--md-primary-fg-color--light: hsla(0deg, 0%, 93%, 1);--md-primary-fg-color--dark: hsla(0deg, 0%, 38%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=blue-grey]{--md-primary-fg-color: hsla(199deg, 18%, 40%, 1);--md-primary-fg-color--light: hsla(200deg, 15%, 73%, 1);--md-primary-fg-color--dark: hsla(199deg, 18%, 33%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=white]{--md-primary-fg-color: hsla(231deg, 48%, 48%, 1);--md-primary-fg-color--light: hsla(230deg, 44%, 64%, 1);--md-primary-fg-color--dark: hsla(232deg, 54%, 41%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=white] .md-header{color:var(--md-default-fg-color);background-color:var(--md-default-bg-color)}[data-md-color-primary=white] .md-hero{color:var(--md-default-fg-color);background-color:var(--md-default-bg-color)}[data-md-color-primary=white] .md-hero--expand{border-bottom:.05rem solid var(--md-default-fg-color--lightest)}@media screen and (max-width: 59.9375em){[data-md-color-primary=white] .md-nav__source{color:var(--md-default-fg-color);background-color:var(--md-default-fg-color--lightest)}}@media screen and (min-width: 60em){[data-md-color-primary=white] .md-search__input{background-color:var(--md-default-fg-color--lightest)}[data-md-color-primary=white] .md-search__input+.md-search__icon{color:var(--md-default-fg-color)}[data-md-color-primary=white] .md-search__input::-webkit-input-placeholder{color:var(--md-default-fg-color--light)}[data-md-color-primary=white] .md-search__input::-moz-placeholder{color:var(--md-default-fg-color--light)}[data-md-color-primary=white] .md-search__input::-ms-input-placeholder{color:var(--md-default-fg-color--light)}[data-md-color-primary=white] .md-search__input::placeholder{color:var(--md-default-fg-color--light)}[data-md-color-primary=white] .md-search__input:hover{background-color:var(--md-default-fg-color--lighter)}}@media screen and (max-width: 76.1875em){html [data-md-color-primary=white] .md-nav--primary .md-nav__title[for=__drawer]{color:var(--md-default-fg-color);background-color:var(--md-default-bg-color)}[data-md-color-primary=white] .md-hero{border-bottom:.05rem solid var(--md-default-fg-color--lightest)}}@media screen and (min-width: 76.25em){[data-md-color-primary=white] .md-tabs{color:var(--md-default-fg-color);background-color:var(--md-default-bg-color);border-bottom:.05rem solid var(--md-default-fg-color--lightest)}}[data-md-color-primary=black]{--md-primary-fg-color: hsla(231deg, 48%, 48%, 1);--md-primary-fg-color--light: hsla(230deg, 44%, 64%, 1);--md-primary-fg-color--dark: hsla(232deg, 54%, 41%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=black] .md-header{background-color:#000}[data-md-color-primary=black] .md-hero{background-color:#000}@media screen and (max-width: 59.9375em){[data-md-color-primary=black] .md-nav__source{background-color:var(--md-default-fg-color)}}@media screen and (min-width: 60em){[data-md-color-primary=black] .md-search__input{background-color:var(--md-default-bg-color--lighter)}[data-md-color-primary=black] .md-search__input:hover{background-color:var(--md-default-bg-color--lightest)}}@media screen and (max-width: 76.1875em){html [data-md-color-primary=black] .md-nav--primary .md-nav__title[for=__drawer]{background-color:#000}}@media screen and (min-width: 76.25em){[data-md-color-primary=black] .md-tabs{background-color:#000}}[data-md-color-accent=red]{--md-accent-fg-color: hsla(348deg, 100%, 55%, 1);--md-accent-fg-color--transparent: hsla(348deg, 100%, 55%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=pink]{--md-accent-fg-color: hsla(339deg, 100%, 48%, 1);--md-accent-fg-color--transparent: hsla(339deg, 100%, 48%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=purple]{--md-accent-fg-color: hsla(291deg, 96%, 62%, 1);--md-accent-fg-color--transparent: hsla(291deg, 96%, 62%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=deep-purple]{--md-accent-fg-color: hsla(256deg, 100%, 65%, 1);--md-accent-fg-color--transparent: hsla(256deg, 100%, 65%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=indigo]{--md-accent-fg-color: hsla(231deg, 99%, 66%, 1);--md-accent-fg-color--transparent: hsla(231deg, 99%, 66%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=blue]{--md-accent-fg-color: hsla(218deg, 100%, 63%, 1);--md-accent-fg-color--transparent: hsla(218deg, 100%, 63%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=light-blue]{--md-accent-fg-color: hsla(203deg, 100%, 46%, 1);--md-accent-fg-color--transparent: hsla(203deg, 100%, 46%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=cyan]{--md-accent-fg-color: hsla(188deg, 100%, 42%, 1);--md-accent-fg-color--transparent: hsla(188deg, 100%, 42%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=teal]{--md-accent-fg-color: hsla(172deg, 100%, 37%, 1);--md-accent-fg-color--transparent: hsla(172deg, 100%, 37%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=green]{--md-accent-fg-color: hsla(145deg, 100%, 39%, 1);--md-accent-fg-color--transparent: hsla(145deg, 100%, 39%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=light-green]{--md-accent-fg-color: hsla(97deg, 81%, 48%, 1);--md-accent-fg-color--transparent: hsla(97deg, 81%, 48%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=lime]{--md-accent-fg-color: hsla(75deg, 100%, 46%, 1);--md-accent-fg-color--transparent: hsla(75deg, 100%, 46%, 0.1);--md-accent-bg-color: var(--md-default-fg-color);--md-accent-bg-color--light: var(--md-default-fg-color--light)}[data-md-color-accent=yellow]{--md-accent-fg-color: hsla(50deg, 100%, 50%, 1);--md-accent-fg-color--transparent: hsla(50deg, 100%, 50%, 0.1);--md-accent-bg-color: var(--md-default-fg-color);--md-accent-bg-color--light: var(--md-default-fg-color--light)}[data-md-color-accent=amber]{--md-accent-fg-color: hsla(40deg, 100%, 50%, 1);--md-accent-fg-color--transparent: hsla(40deg, 100%, 50%, 0.1);--md-accent-bg-color: var(--md-default-fg-color);--md-accent-bg-color--light: var(--md-default-fg-color--light)}[data-md-color-accent=orange]{--md-accent-fg-color: hsla(34deg, 100%, 50%, 1);--md-accent-fg-color--transparent: hsla(34deg, 100%, 50%, 0.1);--md-accent-bg-color: var(--md-default-fg-color);--md-accent-bg-color--light: var(--md-default-fg-color--light)}[data-md-color-accent=deep-orange]{--md-accent-fg-color: hsla(14deg, 100%, 63%, 1);--md-accent-fg-color--transparent: hsla(14deg, 100%, 63%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)} + +/*# sourceMappingURL=palette.85bb4ebe.min.css.map*/ \ No newline at end of file diff --git a/docs/assets/stylesheets/palette.85bb4ebe.min.css.map b/docs/assets/stylesheets/palette.85bb4ebe.min.css.map new file mode 100644 index 00000000..b650d405 --- /dev/null +++ b/docs/assets/stylesheets/palette.85bb4ebe.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./src/assets/stylesheets/palette.scss","webpack:///./src/assets/stylesheets/utilities/_break.scss"],"names":[],"mappings":"AAiEE,4BACE,+CACA,sDACA,qDAOE,kDACA,gEAXJ,6BACE,iDACA,wDACA,uDAOE,kDACA,gEAXJ,+BACE,iDACA,wDACA,uDAOE,kDACA,gEAXJ,oCACE,iDACA,wDACA,uDAOE,kDACA,gEAXJ,+BACE,iDACA,wDACA,uDAOE,kDACA,gEAXJ,6BACE,iDACA,wDACA,uDAOE,kDACA,gEAXJ,mCACE,iDACA,wDACA,uDAOE,kDACA,gEAXJ,6BACE,kDACA,wDACA,wDAOE,kDACA,gEAXJ,6BACE,kDACA,wDACA,wDAOE,kDACA,gEAXJ,8BACE,iDACA,wDACA,uDAOE,kDACA,gEAXJ,oCACE,gDACA,uDACA,sDAOE,kDACA,gEAXJ,6BACE,gDACA,uDACA,sDAIE,kDACA,gEARJ,+BACE,iDACA,wDACA,sDAIE,kDACA,gEARJ,8BACE,iDACA,wDACA,uDAIE,kDACA,gEARJ,+BACE,iDACA,wDACA,uDAIE,kDACA,gEARJ,oCACE,iDACA,wDACA,sDAOE,kDACA,gEAXJ,8BACE,gDACA,uDACA,sDAOE,kDACA,gEAXJ,6BACE,8CACA,qDACA,oDAOE,kDACA,gEAXJ,kCACE,iDACA,wDACA,uDAOE,kDACA,gEAUN,8BACE,iDACA,wDACA,uDACA,kDACA,gEAGA,yCACE,iCACA,4CAIF,uCACE,iCACA,4CAGA,+CACE,gECmGF,yCD3FA,8CACE,iCACA,uDCuEF,oCD/DA,gDACE,sDAGA,iEACE,iCAIF,2EACE,wCADF,kEACE,wCADF,uEACE,wCADF,6DACE,wCAIF,sDACE,sDCkEJ,yCDzDA,iFACE,iCACA,4CAIF,uCACE,iECgCF,uCDxBA,uCACE,iCACA,4CACA,iEAUN,8BACE,iDACA,wDACA,uDACA,kDACA,gEAGA,yCACE,sBAIF,uCACE,sBCeA,yCDRA,8CACE,6CCXF,oCDmBA,gDACE,qDAGA,sDACE,uDCNJ,yCDeA,iFACE,uBClCF,uCD0CA,uCACE,uBA6BJ,2BACE,iDACA,gEAOE,iDACA,+DAVJ,4BACE,iDACA,gEAOE,iDACA,+DAVJ,8BACE,gDACA,+DAOE,iDACA,+DAVJ,mCACE,iDACA,gEAOE,iDACA,+DAVJ,8BACE,gDACA,+DAOE,iDACA,+DAVJ,4BACE,iDACA,gEAOE,iDACA,+DAVJ,kCACE,iDACA,gEAOE,iDACA,+DAVJ,4BACE,iDACA,gEAOE,iDACA,+DAVJ,4BACE,iDACA,gEAOE,iDACA,+DAVJ,6BACE,iDACA,gEAOE,iDACA,+DAVJ,mCACE,+CACA,8DAOE,iDACA,+DAVJ,4BACE,gDACA,+DAIE,iDACA,+DAPJ,8BACE,gDACA,+DAIE,iDACA,+DAPJ,6BACE,gDACA,+DAIE,iDACA,+DAPJ,8BACE,gDACA,+DAIE,iDACA,+DAPJ,mCACE,gDACA,+DAOE,iDACA,+D","file":"assets/stylesheets/palette.85bb4ebe.min.css","sourcesContent":["////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Dependencies\n// ----------------------------------------------------------------------------\n\n@import \"modularscale\";\n@import \"material-color\";\n\n// ----------------------------------------------------------------------------\n// Local imports\n// ----------------------------------------------------------------------------\n\n@import \"utilities/break\";\n@import \"utilities/convert\";\n\n@import \"config\";\n\n// ----------------------------------------------------------------------------\n// Rules: primary colors\n// ----------------------------------------------------------------------------\n\n@each $name, $colors in (\n \"red\": $clr-red-400 $clr-red-200 $clr-red-600,\n \"pink\": $clr-pink-500 $clr-pink-200 $clr-pink-700,\n \"purple\": $clr-purple-400 $clr-purple-200 $clr-purple-600,\n \"deep-purple\": $clr-deep-purple-400 $clr-deep-purple-200 $clr-deep-purple-500,\n \"indigo\": $clr-indigo-500 $clr-indigo-200 $clr-indigo-700,\n \"blue\": $clr-blue-500 $clr-blue-200 $clr-blue-700,\n \"light-blue\": $clr-light-blue-500 $clr-light-blue-200 $clr-light-blue-700,\n \"cyan\": $clr-cyan-500 $clr-cyan-200 $clr-cyan-700,\n \"teal\": $clr-teal-500 $clr-teal-200 $clr-teal-700,\n \"green\": $clr-green-500 $clr-green-200 $clr-green-700,\n \"light-green\": $clr-light-green-500 $clr-light-green-200 $clr-light-green-700,\n \"lime\": $clr-lime-500 $clr-lime-200 $clr-lime-700,\n \"yellow\": $clr-yellow-500 $clr-yellow-200 $clr-yellow-700,\n \"amber\": $clr-amber-500 $clr-amber-200 $clr-amber-700,\n \"orange\": $clr-orange-400 $clr-orange-200 $clr-orange-600,\n \"deep-orange\": $clr-deep-orange-400 $clr-deep-orange-200 $clr-deep-orange-600,\n \"brown\": $clr-brown-500 $clr-brown-200 $clr-brown-700,\n \"grey\": $clr-grey-600 $clr-grey-200 $clr-grey-700,\n \"blue-grey\": $clr-blue-grey-600 $clr-blue-grey-200 $clr-blue-grey-700\n) {\n\n // Color palette\n [data-md-color-primary=\"#{$name}\"] {\n --md-primary-fg-color: hsla(#{hex2hsl(nth($colors, 1))}, 1);\n --md-primary-fg-color--light: hsla(#{hex2hsl(nth($colors, 2))}, 1);\n --md-primary-fg-color--dark: hsla(#{hex2hsl(nth($colors, 3))}, 1);\n\n // Inverted text for lighter shades\n @if index(\"lime\" \"yellow\" \"amber\" \"orange\", $name) {\n --md-primary-bg-color: var(--md-default-fg-color);\n --md-primary-bg-color--light: var(--md-default-fg-color--light);\n } @else {\n --md-primary-bg-color: var(--md-default-bg-color);\n --md-primary-bg-color--light: var(--md-default-bg-color--light);\n }\n }\n}\n\n// ----------------------------------------------------------------------------\n// Rules: white\n// ----------------------------------------------------------------------------\n\n// Color palette\n[data-md-color-primary=\"white\"] {\n --md-primary-fg-color: hsla(#{hex2hsl($clr-indigo-500)}, 1);\n --md-primary-fg-color--light: hsla(#{hex2hsl($clr-indigo-300)}, 1);\n --md-primary-fg-color--dark: hsla(#{hex2hsl($clr-indigo-700)}, 1);\n --md-primary-bg-color: var(--md-default-bg-color);\n --md-primary-bg-color--light: var(--md-default-bg-color--light);\n\n // Application header (stays always on top)\n .md-header {\n color: var(--md-default-fg-color);\n background-color: var(--md-default-bg-color);\n }\n\n // Hero teaser\n .md-hero {\n color: var(--md-default-fg-color);\n background-color: var(--md-default-bg-color);\n\n // Add a border if there are no tabs\n &--expand {\n border-bottom: px2rem(1px) solid var(--md-default-fg-color--lightest);\n }\n }\n\n // [tablet portrait -]: Layered navigation\n @include break-to-device(tablet portrait) {\n\n // Repository containing source\n .md-nav__source {\n color: var(--md-default-fg-color);\n background-color: var(--md-default-fg-color--lightest);\n }\n }\n\n // [tablet portrait +]: Change color of search input\n @include break-from-device(tablet landscape) {\n\n // Search input\n .md-search__input {\n background-color: var(--md-default-fg-color--lightest);\n\n // Icon color\n + .md-search__icon {\n color: var(--md-default-fg-color);\n }\n\n // Placeholder color\n &::placeholder {\n color: var(--md-default-fg-color--light);\n }\n\n // Hovered search field\n &:hover {\n background-color: var(--md-default-fg-color--lighter);\n }\n }\n }\n\n // [tablet -]: Layered navigation\n @include break-to-device(tablet) {\n\n // Site title in main navigation\n html & .md-nav--primary .md-nav__title[for=\"__drawer\"] {\n color: var(--md-default-fg-color);\n background-color: var(--md-default-bg-color);\n }\n\n // Hero teaser\n .md-hero {\n border-bottom: px2rem(1px) solid var(--md-default-fg-color--lightest);\n }\n }\n\n // [screen +]: Set background color for tabs\n @include break-from-device(screen) {\n\n // Tabs with outline\n .md-tabs {\n color: var(--md-default-fg-color);\n background-color: var(--md-default-bg-color);\n border-bottom: px2rem(1px) solid var(--md-default-fg-color--lightest);\n }\n }\n}\n\n// ----------------------------------------------------------------------------\n// Rules: black\n// ----------------------------------------------------------------------------\n\n// Color palette\n[data-md-color-primary=\"black\"] {\n --md-primary-fg-color: hsla(#{hex2hsl($clr-indigo-500)}, 1);\n --md-primary-fg-color--light: hsla(#{hex2hsl($clr-indigo-300)}, 1);\n --md-primary-fg-color--dark: hsla(#{hex2hsl($clr-indigo-700)}, 1);\n --md-primary-bg-color: var(--md-default-bg-color);\n --md-primary-bg-color--light: var(--md-default-bg-color--light);\n\n // Application header (stays always on top)\n .md-header {\n background-color: hsla(0, 0%, 0%, 1);\n }\n\n // Hero teaser\n .md-hero {\n background-color: hsla(0, 0%, 0%, 1);\n }\n\n // [tablet portrait -]: Layered navigation\n @include break-to-device(tablet portrait) {\n\n // Repository containing source\n .md-nav__source {\n background-color: var(--md-default-fg-color);\n }\n }\n\n // [tablet landscape +]: Header-embedded search\n @include break-from-device(tablet landscape) {\n\n // Search input\n .md-search__input {\n background-color: var(--md-default-bg-color--lighter);\n\n // Hovered search field\n &:hover {\n background-color: var(--md-default-bg-color--lightest);\n }\n }\n }\n\n // [tablet -]: Layered navigation\n @include break-to-device(tablet) {\n\n // Site title in main navigation\n html & .md-nav--primary .md-nav__title[for=\"__drawer\"] {\n background-color: hsla(0, 0%, 0%, 1);\n }\n }\n\n // [screen +]: Set background color for tabs\n @include break-from-device(screen) {\n\n // Tabs with outline\n .md-tabs {\n background-color: hsla(0, 0%, 0%, 1);\n }\n }\n}\n\n// ----------------------------------------------------------------------------\n// Rules: accent colors\n// ----------------------------------------------------------------------------\n\n@each $name, $color in (\n \"red\": $clr-red-a400,\n \"pink\": $clr-pink-a400,\n \"purple\": $clr-purple-a200,\n \"deep-purple\": $clr-deep-purple-a200,\n \"indigo\": $clr-indigo-a200,\n \"blue\": $clr-blue-a200,\n \"light-blue\": $clr-light-blue-a700,\n \"cyan\": $clr-cyan-a700,\n \"teal\": $clr-teal-a700,\n \"green\": $clr-green-a700,\n \"light-green\": $clr-light-green-a700,\n \"lime\": $clr-lime-a700,\n \"yellow\": $clr-yellow-a700,\n \"amber\": $clr-amber-a700,\n \"orange\": $clr-orange-a400,\n \"deep-orange\": $clr-deep-orange-a200\n) {\n\n // Color palette\n [data-md-color-accent=\"#{$name}\"] {\n --md-accent-fg-color: hsla(#{hex2hsl($color)}, 1);\n --md-accent-fg-color--transparent: hsla(#{hex2hsl($color)}, 0.1);\n\n // Inverted text for lighter shades\n @if index(\"lime\" \"yellow\" \"amber\" \"orange\", $name) {\n --md-accent-bg-color: var(--md-default-fg-color);\n --md-accent-bg-color--light: var(--md-default-fg-color--light);\n } @else {\n --md-accent-bg-color: var(--md-default-bg-color);\n --md-accent-bg-color--light: var(--md-default-bg-color--light);\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Variables\n// ----------------------------------------------------------------------------\n\n///\n/// Device-specific breakpoints\n///\n/// @example\n/// $break-devices: (\n/// mobile: (\n/// portrait: 220px 479px,\n/// landscape: 480px 719px\n/// ),\n/// tablet: (\n/// portrait: 720px 959px,\n/// landscape: 960px 1219px\n/// ),\n/// screen: (\n/// small: 1220px 1599px,\n/// medium: 1600px 1999px,\n/// large: 2000px\n/// )\n/// );\n///\n$break-devices: () !default;\n\n// ----------------------------------------------------------------------------\n// Helpers\n// ----------------------------------------------------------------------------\n\n///\n/// Choose minimum and maximum device widths\n///\n@function break-select-min-max($devices) {\n $min: 1000000;\n $max: 0;\n @each $key, $value in $devices {\n @while type-of($value) == map {\n $value: break-select-min-max($value);\n }\n @if type-of($value) == list {\n @each $number in $value {\n @if type-of($number) == number {\n $min: min($number, $min);\n @if $max != null {\n $max: max($number, $max);\n }\n } @else {\n @error \"Invalid number: #{$number}\";\n }\n }\n } @else if type-of($value) == number {\n $min: min($value, $min);\n $max: null;\n } @else {\n @error \"Invalid value: #{$value}\";\n }\n }\n @return $min, $max;\n}\n\n///\n/// Select minimum and maximum widths for a device breakpoint\n///\n@function break-select-device($device) {\n $current: $break-devices;\n @for $n from 1 through length($device) {\n @if type-of($current) == map {\n $current: map-get($current, nth($device, $n));\n } @else {\n @error \"Invalid device map: #{$devices}\";\n }\n }\n @if type-of($current) == list or type-of($current) == number {\n $current: (default: $current);\n }\n @return break-select-min-max($current);\n}\n\n// ----------------------------------------------------------------------------\n// Mixins\n// ----------------------------------------------------------------------------\n\n///\n/// A minimum-maximum media query breakpoint\n///\n@mixin break-at($breakpoint) {\n @if type-of($breakpoint) == number {\n @media screen and (min-width: $breakpoint) {\n @content;\n }\n } @else if type-of($breakpoint) == list {\n $min: nth($breakpoint, 1);\n $max: nth($breakpoint, 2);\n @if type-of($min) == number and type-of($max) == number {\n @media screen and (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else {\n @error \"Invalid breakpoint: #{$breakpoint}\";\n }\n } @else {\n @error \"Invalid breakpoint: #{$breakpoint}\";\n }\n}\n\n///\n/// An orientation media query breakpoint\n///\n@mixin break-at-orientation($breakpoint) {\n @if type-of($breakpoint) == string {\n @media screen and (orientation: $breakpoint) {\n @content;\n }\n } @else {\n @error \"Invalid breakpoint: #{$breakpoint}\";\n }\n}\n\n///\n/// A maximum-aspect-ratio media query breakpoint\n///\n@mixin break-at-ratio($breakpoint) {\n @if type-of($breakpoint) == number {\n @media screen and (max-aspect-ratio: $breakpoint) {\n @content;\n }\n } @else {\n @error \"Invalid breakpoint: #{$breakpoint}\";\n }\n}\n\n///\n/// A minimum-maximum media query device breakpoint\n///\n@mixin break-at-device($device) {\n @if type-of($device) == string {\n $device: $device,;\n }\n @if type-of($device) == list {\n $breakpoint: break-select-device($device);\n @if nth($breakpoint, 2) != null {\n $min: nth($breakpoint, 1);\n $max: nth($breakpoint, 2);\n @media screen and (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else {\n @error \"Invalid device: #{$device}\";\n }\n } @else {\n @error \"Invalid device: #{$device}\";\n }\n}\n\n///\n/// A minimum media query device breakpoint\n///\n@mixin break-from-device($device) {\n @if type-of($device) == string {\n $device: $device,;\n }\n @if type-of($device) == list {\n $breakpoint: break-select-device($device);\n $min: nth($breakpoint, 1);\n @media screen and (min-width: $min) {\n @content;\n }\n } @else {\n @error \"Invalid device: #{$device}\";\n }\n}\n\n///\n/// A maximum media query device breakpoint\n///\n@mixin break-to-device($device) {\n @if type-of($device) == string {\n $device: $device,;\n }\n @if type-of($device) == list {\n $breakpoint: break-select-device($device);\n $max: nth($breakpoint, 2);\n @media screen and (max-width: $max) {\n @content;\n }\n } @else {\n @error \"Invalid device: #{$device}\";\n }\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/assets/stylesheets/palette.css b/docs/assets/stylesheets/palette.css new file mode 100644 index 00000000..837aafea --- /dev/null +++ b/docs/assets/stylesheets/palette.css @@ -0,0 +1,364 @@ +[data-md-color-primary=red] { + --md-primary-fg-color: hsla(1deg, 83%, 63%, 1); + --md-primary-fg-color--light: hsla(0deg, 73%, 77%, 1); + --md-primary-fg-color--dark: hsla(1deg, 77%, 55%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=pink] { + --md-primary-fg-color: hsla(340deg, 82%, 52%, 1); + --md-primary-fg-color--light: hsla(340deg, 82%, 76%, 1); + --md-primary-fg-color--dark: hsla(336deg, 78%, 43%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=purple] { + --md-primary-fg-color: hsla(291deg, 47%, 51%, 1); + --md-primary-fg-color--light: hsla(291deg, 47%, 71%, 1); + --md-primary-fg-color--dark: hsla(287deg, 65%, 40%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=deep-purple] { + --md-primary-fg-color: hsla(262deg, 47%, 55%, 1); + --md-primary-fg-color--light: hsla(261deg, 46%, 74%, 1); + --md-primary-fg-color--dark: hsla(262deg, 52%, 47%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=indigo] { + --md-primary-fg-color: hsla(231deg, 48%, 48%, 1); + --md-primary-fg-color--light: hsla(231deg, 44%, 74%, 1); + --md-primary-fg-color--dark: hsla(232deg, 54%, 41%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=blue] { + --md-primary-fg-color: hsla(207deg, 90%, 54%, 1); + --md-primary-fg-color--light: hsla(207deg, 90%, 77%, 1); + --md-primary-fg-color--dark: hsla(210deg, 79%, 46%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=light-blue] { + --md-primary-fg-color: hsla(199deg, 98%, 48%, 1); + --md-primary-fg-color--light: hsla(199deg, 92%, 74%, 1); + --md-primary-fg-color--dark: hsla(201deg, 98%, 41%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=cyan] { + --md-primary-fg-color: hsla(187deg, 100%, 42%, 1); + --md-primary-fg-color--light: hsla(187deg, 72%, 71%, 1); + --md-primary-fg-color--dark: hsla(186deg, 100%, 33%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=teal] { + --md-primary-fg-color: hsla(174deg, 100%, 29%, 1); + --md-primary-fg-color--light: hsla(174deg, 42%, 65%, 1); + --md-primary-fg-color--dark: hsla(173deg, 100%, 24%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=green] { + --md-primary-fg-color: hsla(122deg, 39%, 49%, 1); + --md-primary-fg-color--light: hsla(122deg, 37%, 74%, 1); + --md-primary-fg-color--dark: hsla(123deg, 43%, 39%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=light-green] { + --md-primary-fg-color: hsla(88deg, 50%, 53%, 1); + --md-primary-fg-color--light: hsla(88deg, 50%, 76%, 1); + --md-primary-fg-color--dark: hsla(92deg, 48%, 42%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=lime] { + --md-primary-fg-color: hsla(66deg, 70%, 54%, 1); + --md-primary-fg-color--light: hsla(66deg, 71%, 77%, 1); + --md-primary-fg-color--dark: hsla(62deg, 61%, 44%, 1); + --md-primary-bg-color: var(--md-default-fg-color); + --md-primary-bg-color--light: var(--md-default-fg-color--light); +} + +[data-md-color-primary=yellow] { + --md-primary-fg-color: hsla(54deg, 100%, 62%, 1); + --md-primary-fg-color--light: hsla(54deg, 100%, 81%, 1); + --md-primary-fg-color--dark: hsla(43deg, 96%, 58%, 1); + --md-primary-bg-color: var(--md-default-fg-color); + --md-primary-bg-color--light: var(--md-default-fg-color--light); +} + +[data-md-color-primary=amber] { + --md-primary-fg-color: hsla(45deg, 100%, 51%, 1); + --md-primary-fg-color--light: hsla(45deg, 100%, 75%, 1); + --md-primary-fg-color--dark: hsla(38deg, 100%, 50%, 1); + --md-primary-bg-color: var(--md-default-fg-color); + --md-primary-bg-color--light: var(--md-default-fg-color--light); +} + +[data-md-color-primary=orange] { + --md-primary-fg-color: hsla(36deg, 100%, 57%, 1); + --md-primary-fg-color--light: hsla(36deg, 100%, 75%, 1); + --md-primary-fg-color--dark: hsla(33deg, 100%, 49%, 1); + --md-primary-bg-color: var(--md-default-fg-color); + --md-primary-bg-color--light: var(--md-default-fg-color--light); +} + +[data-md-color-primary=deep-orange] { + --md-primary-fg-color: hsla(14deg, 100%, 63%, 1); + --md-primary-fg-color--light: hsla(14deg, 100%, 78%, 1); + --md-primary-fg-color--dark: hsla(14deg, 91%, 54%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=brown] { + --md-primary-fg-color: hsla(16deg, 25%, 38%, 1); + --md-primary-fg-color--light: hsla(15deg, 15%, 69%, 1); + --md-primary-fg-color--dark: hsla(14deg, 26%, 29%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=grey] { + --md-primary-fg-color: hsla(0deg, 0%, 46%, 1); + --md-primary-fg-color--light: hsla(0deg, 0%, 93%, 1); + --md-primary-fg-color--dark: hsla(0deg, 0%, 38%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=blue-grey] { + --md-primary-fg-color: hsla(199deg, 18%, 40%, 1); + --md-primary-fg-color--light: hsla(200deg, 15%, 73%, 1); + --md-primary-fg-color--dark: hsla(199deg, 18%, 33%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=white] { + --md-primary-fg-color: hsla(231deg, 48%, 48%, 1); + --md-primary-fg-color--light: hsla(230deg, 44%, 64%, 1); + --md-primary-fg-color--dark: hsla(232deg, 54%, 41%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} +[data-md-color-primary=white] .md-header { + color: var(--md-default-fg-color); + background-color: var(--md-default-bg-color); +} +[data-md-color-primary=white] .md-hero { + color: var(--md-default-fg-color); + background-color: var(--md-default-bg-color); +} +[data-md-color-primary=white] .md-hero--expand { + border-bottom: 0.05rem solid var(--md-default-fg-color--lightest); +} +@media screen and (max-width: 59.9375em) { + [data-md-color-primary=white] .md-nav__source { + color: var(--md-default-fg-color); + background-color: var(--md-default-fg-color--lightest); + } +} +@media screen and (min-width: 60em) { + [data-md-color-primary=white] .md-search__input { + background-color: var(--md-default-fg-color--lightest); + } + [data-md-color-primary=white] .md-search__input + .md-search__icon { + color: var(--md-default-fg-color); + } + [data-md-color-primary=white] .md-search__input::-webkit-input-placeholder { + color: var(--md-default-fg-color--light); + } + [data-md-color-primary=white] .md-search__input::-moz-placeholder { + color: var(--md-default-fg-color--light); + } + [data-md-color-primary=white] .md-search__input::-ms-input-placeholder { + color: var(--md-default-fg-color--light); + } + [data-md-color-primary=white] .md-search__input::placeholder { + color: var(--md-default-fg-color--light); + } + [data-md-color-primary=white] .md-search__input:hover { + background-color: var(--md-default-fg-color--lighter); + } +} +@media screen and (max-width: 76.1875em) { + html [data-md-color-primary=white] .md-nav--primary .md-nav__title[for=__drawer] { + color: var(--md-default-fg-color); + background-color: var(--md-default-bg-color); + } + [data-md-color-primary=white] .md-hero { + border-bottom: 0.05rem solid var(--md-default-fg-color--lightest); + } +} +@media screen and (min-width: 76.25em) { + [data-md-color-primary=white] .md-tabs { + color: var(--md-default-fg-color); + background-color: var(--md-default-bg-color); + border-bottom: 0.05rem solid var(--md-default-fg-color--lightest); + } +} + +[data-md-color-primary=black] { + --md-primary-fg-color: hsla(231deg, 48%, 48%, 1); + --md-primary-fg-color--light: hsla(230deg, 44%, 64%, 1); + --md-primary-fg-color--dark: hsla(232deg, 54%, 41%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} +[data-md-color-primary=black] .md-header { + background-color: black; +} +[data-md-color-primary=black] .md-hero { + background-color: black; +} +@media screen and (max-width: 59.9375em) { + [data-md-color-primary=black] .md-nav__source { + background-color: var(--md-default-fg-color); + } +} +@media screen and (min-width: 60em) { + [data-md-color-primary=black] .md-search__input { + background-color: var(--md-default-bg-color--lighter); + } + [data-md-color-primary=black] .md-search__input:hover { + background-color: var(--md-default-bg-color--lightest); + } +} +@media screen and (max-width: 76.1875em) { + html [data-md-color-primary=black] .md-nav--primary .md-nav__title[for=__drawer] { + background-color: black; + } +} +@media screen and (min-width: 76.25em) { + [data-md-color-primary=black] .md-tabs { + background-color: black; + } +} + +[data-md-color-accent=red] { + --md-accent-fg-color: hsla(348deg, 100%, 55%, 1); + --md-accent-fg-color--transparent: hsla(348deg, 100%, 55%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=pink] { + --md-accent-fg-color: hsla(339deg, 100%, 48%, 1); + --md-accent-fg-color--transparent: hsla(339deg, 100%, 48%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=purple] { + --md-accent-fg-color: hsla(291deg, 96%, 62%, 1); + --md-accent-fg-color--transparent: hsla(291deg, 96%, 62%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=deep-purple] { + --md-accent-fg-color: hsla(256deg, 100%, 65%, 1); + --md-accent-fg-color--transparent: hsla(256deg, 100%, 65%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=indigo] { + --md-accent-fg-color: hsla(231deg, 99%, 66%, 1); + --md-accent-fg-color--transparent: hsla(231deg, 99%, 66%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=blue] { + --md-accent-fg-color: hsla(218deg, 100%, 63%, 1); + --md-accent-fg-color--transparent: hsla(218deg, 100%, 63%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=light-blue] { + --md-accent-fg-color: hsla(203deg, 100%, 46%, 1); + --md-accent-fg-color--transparent: hsla(203deg, 100%, 46%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=cyan] { + --md-accent-fg-color: hsla(188deg, 100%, 42%, 1); + --md-accent-fg-color--transparent: hsla(188deg, 100%, 42%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=teal] { + --md-accent-fg-color: hsla(172deg, 100%, 37%, 1); + --md-accent-fg-color--transparent: hsla(172deg, 100%, 37%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=green] { + --md-accent-fg-color: hsla(145deg, 100%, 39%, 1); + --md-accent-fg-color--transparent: hsla(145deg, 100%, 39%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=light-green] { + --md-accent-fg-color: hsla(97deg, 81%, 48%, 1); + --md-accent-fg-color--transparent: hsla(97deg, 81%, 48%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=lime] { + --md-accent-fg-color: hsla(75deg, 100%, 46%, 1); + --md-accent-fg-color--transparent: hsla(75deg, 100%, 46%, 0.1); + --md-accent-bg-color: var(--md-default-fg-color); + --md-accent-bg-color--light: var(--md-default-fg-color--light); +} + +[data-md-color-accent=yellow] { + --md-accent-fg-color: hsla(50deg, 100%, 50%, 1); + --md-accent-fg-color--transparent: hsla(50deg, 100%, 50%, 0.1); + --md-accent-bg-color: var(--md-default-fg-color); + --md-accent-bg-color--light: var(--md-default-fg-color--light); +} + +[data-md-color-accent=amber] { + --md-accent-fg-color: hsla(40deg, 100%, 50%, 1); + --md-accent-fg-color--transparent: hsla(40deg, 100%, 50%, 0.1); + --md-accent-bg-color: var(--md-default-fg-color); + --md-accent-bg-color--light: var(--md-default-fg-color--light); +} + +[data-md-color-accent=orange] { + --md-accent-fg-color: hsla(34deg, 100%, 50%, 1); + --md-accent-fg-color--transparent: hsla(34deg, 100%, 50%, 0.1); + --md-accent-bg-color: var(--md-default-fg-color); + --md-accent-bg-color--light: var(--md-default-fg-color--light); +} + +[data-md-color-accent=deep-orange] { + --md-accent-fg-color: hsla(14deg, 100%, 63%, 1); + --md-accent-fg-color--transparent: hsla(14deg, 100%, 63%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} diff --git a/docs/assets/stylesheets/palette.e6a45f82.min.css b/docs/assets/stylesheets/palette.e6a45f82.min.css new file mode 100644 index 00000000..9d16769c --- /dev/null +++ b/docs/assets/stylesheets/palette.e6a45f82.min.css @@ -0,0 +1 @@ +[data-md-color-accent=red]{--md-accent-fg-color:#ff1947;--md-accent-fg-color--transparent:rgba(255,25,71,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=pink]{--md-accent-fg-color:#f50056;--md-accent-fg-color--transparent:rgba(245,0,86,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=purple]{--md-accent-fg-color:#df41fb;--md-accent-fg-color--transparent:rgba(223,65,251,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=deep-purple]{--md-accent-fg-color:#7c4dff;--md-accent-fg-color--transparent:rgba(124,77,255,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=indigo]{--md-accent-fg-color:#526cfe;--md-accent-fg-color--transparent:rgba(82,108,254,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=blue]{--md-accent-fg-color:#4287ff;--md-accent-fg-color--transparent:rgba(66,135,255,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=light-blue]{--md-accent-fg-color:#0091eb;--md-accent-fg-color--transparent:rgba(0,145,235,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=cyan]{--md-accent-fg-color:#00bad6;--md-accent-fg-color--transparent:rgba(0,186,214,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=teal]{--md-accent-fg-color:#00bda4;--md-accent-fg-color--transparent:rgba(0,189,164,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=green]{--md-accent-fg-color:#00c753;--md-accent-fg-color--transparent:rgba(0,199,83,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=light-green]{--md-accent-fg-color:#63de17;--md-accent-fg-color--transparent:rgba(99,222,23,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=lime]{--md-accent-fg-color:#b0eb00;--md-accent-fg-color--transparent:rgba(176,235,0,.1);--md-accent-bg-color:rgba(0,0,0,.87);--md-accent-bg-color--light:rgba(0,0,0,.54)}[data-md-color-accent=yellow]{--md-accent-fg-color:#ffd500;--md-accent-fg-color--transparent:rgba(255,213,0,.1);--md-accent-bg-color:rgba(0,0,0,.87);--md-accent-bg-color--light:rgba(0,0,0,.54)}[data-md-color-accent=amber]{--md-accent-fg-color:#fa0;--md-accent-fg-color--transparent:rgba(255,170,0,.1);--md-accent-bg-color:rgba(0,0,0,.87);--md-accent-bg-color--light:rgba(0,0,0,.54)}[data-md-color-accent=orange]{--md-accent-fg-color:#ff9100;--md-accent-fg-color--transparent:rgba(255,145,0,.1);--md-accent-bg-color:rgba(0,0,0,.87);--md-accent-bg-color--light:rgba(0,0,0,.54)}[data-md-color-accent=deep-orange]{--md-accent-fg-color:#ff6e42;--md-accent-fg-color--transparent:rgba(255,110,66,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=red]{--md-primary-fg-color:#ef5552;--md-primary-fg-color--light:#e57171;--md-primary-fg-color--dark:#e53734;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=pink]{--md-primary-fg-color:#e92063;--md-primary-fg-color--light:#ec417a;--md-primary-fg-color--dark:#c3185d;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=purple]{--md-primary-fg-color:#ab47bd;--md-primary-fg-color--light:#bb69c9;--md-primary-fg-color--dark:#8c24a8;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=deep-purple]{--md-primary-fg-color:#7e56c2;--md-primary-fg-color--light:#9574cd;--md-primary-fg-color--dark:#673ab6;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=indigo]{--md-primary-fg-color:#4051b5;--md-primary-fg-color--light:#5d6cc0;--md-primary-fg-color--dark:#303fa1;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=blue]{--md-primary-fg-color:#2094f3;--md-primary-fg-color--light:#42a5f5;--md-primary-fg-color--dark:#1975d2;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=light-blue]{--md-primary-fg-color:#02a6f2;--md-primary-fg-color--light:#28b5f6;--md-primary-fg-color--dark:#0287cf;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=cyan]{--md-primary-fg-color:#00bdd6;--md-primary-fg-color--light:#25c5da;--md-primary-fg-color--dark:#0097a8;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=teal]{--md-primary-fg-color:#009485;--md-primary-fg-color--light:#26a699;--md-primary-fg-color--dark:#007a6c;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=green]{--md-primary-fg-color:#4cae4f;--md-primary-fg-color--light:#68bb6c;--md-primary-fg-color--dark:#398e3d;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=light-green]{--md-primary-fg-color:#8bc34b;--md-primary-fg-color--light:#9ccc66;--md-primary-fg-color--dark:#689f38;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=lime]{--md-primary-fg-color:#cbdc38;--md-primary-fg-color--light:#d3e156;--md-primary-fg-color--dark:#b0b52c;--md-primary-bg-color:rgba(0,0,0,.87);--md-primary-bg-color--light:rgba(0,0,0,.54)}[data-md-color-primary=yellow]{--md-primary-fg-color:#ffec3d;--md-primary-fg-color--light:#ffee57;--md-primary-fg-color--dark:#fbc02d;--md-primary-bg-color:rgba(0,0,0,.87);--md-primary-bg-color--light:rgba(0,0,0,.54)}[data-md-color-primary=amber]{--md-primary-fg-color:#ffc105;--md-primary-fg-color--light:#ffc929;--md-primary-fg-color--dark:#ffa200;--md-primary-bg-color:rgba(0,0,0,.87);--md-primary-bg-color--light:rgba(0,0,0,.54)}[data-md-color-primary=orange]{--md-primary-fg-color:#ffa724;--md-primary-fg-color--light:#ffa724;--md-primary-fg-color--dark:#fa8900;--md-primary-bg-color:rgba(0,0,0,.87);--md-primary-bg-color--light:rgba(0,0,0,.54)}[data-md-color-primary=deep-orange]{--md-primary-fg-color:#ff6e42;--md-primary-fg-color--light:#ff8a66;--md-primary-fg-color--dark:#f4511f;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=brown]{--md-primary-fg-color:#795649;--md-primary-fg-color--light:#8d6e62;--md-primary-fg-color--dark:#5d4037;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=grey]{--md-primary-fg-color:#757575;--md-primary-fg-color--light:#9e9e9e;--md-primary-fg-color--dark:#616161;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=blue-grey]{--md-primary-fg-color:#546d78;--md-primary-fg-color--light:#607c8a;--md-primary-fg-color--dark:#455a63;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=white]{--md-primary-fg-color:#fff;--md-primary-fg-color--light:hsla(0,0%,100%,.7);--md-primary-fg-color--dark:rgba(0,0,0,.07);--md-primary-bg-color:rgba(0,0,0,.87);--md-primary-bg-color--light:rgba(0,0,0,.54);--md-typeset-a-color:#4051b5}@media screen and (min-width:60em){[data-md-color-primary=white] .md-search__form{background-color:rgba(0,0,0,.07)}[data-md-color-primary=white] .md-search__form:hover{background-color:rgba(0,0,0,.32)}[data-md-color-primary=white] .md-search__input+.md-search__icon{color:rgba(0,0,0,.87)}}@media screen and (min-width:76.25em){[data-md-color-primary=white] .md-tabs{border-bottom:.05rem solid rgba(0,0,0,.07)}}[data-md-color-primary=black]{--md-primary-fg-color:#000;--md-primary-fg-color--light:rgba(0,0,0,.54);--md-primary-fg-color--dark:#000;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7);--md-typeset-a-color:#4051b5}[data-md-color-primary=black] .md-header{background-color:#000}@media screen and (max-width:59.9375em){[data-md-color-primary=black] .md-nav__source{background-color:rgba(0,0,0,.87)}}@media screen and (min-width:60em){[data-md-color-primary=black] .md-search__form{background-color:hsla(0,0%,100%,.12)}[data-md-color-primary=black] .md-search__form:hover{background-color:hsla(0,0%,100%,.3)}}@media screen and (max-width:76.1875em){html [data-md-color-primary=black] .md-nav--primary .md-nav__title[for=__drawer]{background-color:#000}}@media screen and (min-width:76.25em){[data-md-color-primary=black] .md-tabs{background-color:#000}}@media screen{[data-md-color-scheme=slate]{--md-hue:232;--md-default-fg-color:hsla(var(--md-hue),75%,95%,1);--md-default-fg-color--light:hsla(var(--md-hue),75%,90%,0.62);--md-default-fg-color--lighter:hsla(var(--md-hue),75%,90%,0.32);--md-default-fg-color--lightest:hsla(var(--md-hue),75%,90%,0.12);--md-default-bg-color:hsla(var(--md-hue),15%,21%,1);--md-default-bg-color--light:hsla(var(--md-hue),15%,21%,0.54);--md-default-bg-color--lighter:hsla(var(--md-hue),15%,21%,0.26);--md-default-bg-color--lightest:hsla(var(--md-hue),15%,21%,0.07);--md-code-fg-color:hsla(var(--md-hue),18%,86%,1);--md-code-bg-color:hsla(var(--md-hue),15%,15%,1);--md-code-hl-color:rgba(66,135,255,.15);--md-code-hl-number-color:#e6695b;--md-code-hl-special-color:#f06090;--md-code-hl-function-color:#c973d9;--md-code-hl-constant-color:#9383e2;--md-code-hl-keyword-color:#6791e0;--md-code-hl-string-color:#2fb170;--md-code-hl-name-color:var(--md-code-fg-color);--md-code-hl-operator-color:var(--md-default-fg-color--light);--md-code-hl-punctuation-color:var(--md-default-fg-color--light);--md-code-hl-comment-color:var(--md-default-fg-color--light);--md-code-hl-generic-color:var(--md-default-fg-color--light);--md-code-hl-variable-color:var(--md-default-fg-color--light);--md-typeset-color:var(--md-default-fg-color);--md-typeset-a-color:var(--md-primary-fg-color);--md-typeset-mark-color:rgba(66,135,255,.3);--md-typeset-kbd-color:hsla(var(--md-hue),15%,94%,0.12);--md-typeset-kbd-accent-color:hsla(var(--md-hue),15%,94%,0.2);--md-typeset-kbd-border-color:hsla(var(--md-hue),15%,14%,1);--md-typeset-table-color:hsla(var(--md-hue),75%,95%,0.12);--md-admonition-bg-color:hsla(var(--md-hue),0%,100%,0.025);--md-footer-bg-color:hsla(var(--md-hue),15%,12%,0.87);--md-footer-bg-color--dark:hsla(var(--md-hue),15%,10%,1)}[data-md-color-scheme=slate][data-md-color-primary=black],[data-md-color-scheme=slate][data-md-color-primary=white]{--md-typeset-a-color:#5d6cc0}[data-md-color-scheme=slate] img[src$="#only-light"]{display:none}[data-md-color-scheme=slate] img[src$="#only-dark"]{display:initial}} \ No newline at end of file diff --git a/docs/assets/stylesheets/palette.e6a45f82.min.css.map b/docs/assets/stylesheets/palette.e6a45f82.min.css.map new file mode 100644 index 00000000..b33c518d --- /dev/null +++ b/docs/assets/stylesheets/palette.e6a45f82.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["src/assets/stylesheets/palette/_accent.scss","../../../src/assets/stylesheets/palette.scss","src/assets/stylesheets/palette/_primary.scss","src/assets/stylesheets/utilities/_break.scss","src/assets/stylesheets/palette/_scheme.scss"],"names":[],"mappings":"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","file":"palette.css"} \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py deleted file mode 100644 index 6faf398a..00000000 --- a/docs/conf.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- - -import os -import sys - -sys.path.insert(0, os.path.abspath("..")) - -extensions = ["sphinx.ext.todo", - "sphinx.ext.viewcode", - "sphinx.ext.autodoc"] - -master_doc = "index" - -autoclass_content = "both" - -html_static_path = ["_static"] - -templates_path = ["_templates"] - -project = "iqoptionapi" - -copyright = "2016, n1nj4z33" - -author = "n1nj4z33" - -version = "0.1" diff --git a/docs/en/2 factor/index.html b/docs/en/2 factor/index.html new file mode 100644 index 00000000..48ee3b1f --- /dev/null +++ b/docs/en/2 factor/index.html @@ -0,0 +1,882 @@ + + + + + + + + + + + + + + + + + + + + + + 2 factor Auth - iqoptionapi document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    + +
    + +
    + + + + + + + + +
    +
    Helping who helps you
    +

    + Support this work +

    + + Donation + +
    + + + + +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    + + +
    +
    +
    + + +
    +
    +
    + + +
    +
    + + + + + + + + + + +

    2 factor Auth

    + +

    Two Factor Auth

    +

    Enable two factor auth on iqoption site then use this code to and auth code

    +
    from iqoptionapi.stable_api import IQ_Option
    +
    +print("Conecting...")
    +api = IQ_Option("email", "password")
    +status, reason = api.connect()
    +print('##### first try #####')
    +print('Status:', status)
    +print('Reason:', reason)
    +print("Email:", api.email)
    +
    +if reason == "2FA":
    +    print('##### 2FA enabled #####')
    +    print("An sms has been sent with a code to your number")
    +
    +    code_sms = input("Enter the code received: ")
    +    status, reason = api.connect_2fa(code_sms)
    +
    +    print('##### second try #####')
    +    print('Status:', status)
    +    print('Reason:', reason)
    +    print("Email:", api.email)
    +
    +print("Balance:", api.get_balance())
    +print("##############################")
    +
    + + + + + + + +
    +
    +
    +
    + + + + +
    + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/en/account/account/index.html b/docs/en/account/account/index.html new file mode 100644 index 00000000..adec0404 --- /dev/null +++ b/docs/en/account/account/index.html @@ -0,0 +1,1249 @@ + + + + + + + + + + + + + + + + + + + + + + Account - iqoptionapi document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + +
    + +
    + +
    + + + + + + + + +
    +
    Helping who helps you
    +

    + Support this work +

    + + Donation + +
    + + + + +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    + + + + + +
    +
    + + + + + + + + + + +

    Account

    +

    get_balance()

    +
    Iq.get_balance()
    +
    +

    get_balance_v2()

    +

    more accuracy

    +
    Iq.get_balance_v2()
    +
    +

    get_currency()

    +

    you will check what currency you use

    +
    Iq.get_currency()
    +
    +

    reset_practice_balance()

    +

    reset practice balance to $10000

    +
    from iqoptionapi.stable_api import IQ_Option
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +print(Iq.reset_practice_balance())
    +
    +

    Change real/practice Account

    +

    MODE="PRACTICE"/"REAL"/"TOURNAMENT"
    +PRACTICE - it is demo account
    +REAL - It is our money in risk
    +TOURNAMENT - Tournaments account

    +
    balance_type="PRACTICE"
    +Iq.change_balance(balance_type)
    +
    +

    get Other People stratagy

    +

    sample

    +
    from iqoptionapi.stable_api import IQ_Option
    +import logging
    +import time
    +
    +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +while_run_time=10
    +
    +#For digital option
    +
    +name="live-deal-digital-option" #"live-deal-binary-option-placed"/"live-deal-digital-option"
    +active="EURUSD"
    +_type="PT1M"#"PT1M"/"PT5M"/"PT15M"
    +buffersize=10#
    +print("_____________subscribe_live_deal_______________")
    +Iq.subscribe_live_deal(name,active,_type,buffersize)
    +
    +
    +start_t=time.time()
    +while True:
    +    #data size is below buffersize
    +    #data[0] is the last data
    +    data=(Iq.get_live_deal(name,active,_type))
    +    print("__For_digital_option__ data size:"+str(len(data)))
    +    print(data)
    +    print("\n\n")
    +    time.sleep(1)
    +    if time.time()-start_t>while_run_time:
    +        break
    +print("_____________unscribe_live_deal_______________")
    +Iq.unscribe_live_deal(name,active,_type)
    +
    +
    +#For binary option
    +
    +name="live-deal-binary-option-placed"
    +active="EURUSD"
    +_type="turbo"#"turbo"/"binary"
    +buffersize=10#
    +print("_____________subscribe_live_deal_______________")
    +Iq.subscribe_live_deal(name,active,_type,buffersize)
    +
    +start_t=time.time()
    +while True:
    +    #data size is below buffersize
    +    #data[0] is the last data
    +    data=(Iq.get_live_deal(name,active,_type))
    +    print("__For_binary_option__ data size:"+str(len(data)))
    +    print(data)
    +    print("\n\n")
    +    time.sleep(1)
    +    if time.time()-start_t>while_run_time:
    +        break
    +print("_____________unscribe_live_deal_______________")
    +Iq.unscribe_live_deal(name,active,_type)
    +
    +

    subscribe_live_deal

    +
    Iq.subscribe_live_deal(name,active,_type,buffersize)
    +
    +

    unscribe_live_deal

    +
    Iq.unscribe_live_deal(name,active,_type)
    +
    +

    get_live_deal

    +
    Iq.get_live_deal(name,active,_type)
    +
    +

    pop_live_deal

    +

    pop the data from list

    +
    Iq.pop_live_deal(name,active,_type)
    +
    +

    get Other people detail

    +

    sample

    +
    from iqoptionapi.stable_api import IQ_Option
    +import logging
    +import time
    +
    +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +while_run_time=10
    +
    +#For binary option
    +name="live-deal-binary-option-placed"
    +active="EURUSD"
    +_type="turbo"#"turbo"/"binary"
    +buffersize=10#
    +print("_____________subscribe_live_deal_______________")
    +print("\n\n")
    +Iq.subscribe_live_deal(name,active,_type,buffersize)
    +
    +last_trade_data=Iq.get_live_deal(name,active,_type)[0]
    +
    +user_id=last_trade_data["user_id"]
    +counutry_id=last_trade_data["country_id"]
    +print("_______get_user_profile_client__________")
    +print(Iq.get_user_profile_client(user_id))
    +pro_data=Iq.get_user_profile_client(user_id)
    +print("\n\n")
    +
    +print("___________request_leaderboard_userinfo_deals_client______")
    +print(Iq.request_leaderboard_userinfo_deals_client(user_id,counutry_id))
    +user_data=Iq.request_leaderboard_userinfo_deals_client(user_id,counutry_id)
    +worldwide=user_data["result"]["entries_by_country"]["0"]["position"]
    +profit=user_data["result"]["entries_by_country"]["0"]["score"]
    +print("\n")
    +print("user_name:"+pro_data["user_name"])
    +print("This week worldwide:"+str(worldwide))
    +print("This week's gross profit:"+str(profit))
    +print("\n\n")
    +
    +print("___________get_users_availability____________")
    +print(Iq.get_users_availability(user_id))
    +print("\n\n")
    +print("_____________unscribe_live_deal_______________")
    +Iq.unscribe_live_deal(name,active,_type)
    +
    +

    get_user_profile_client()

    +

    this api can get user name and image

    +
    Iq.get_user_profile_client(user_id)
    +
    +

    request_leaderboard_userinfo_deals_client()

    +

    this api can get user detail

    +
    Iq.request_leaderboard_userinfo_deals_client(user_id,counutry_id)
    +
    +

    get_users_availability()

    +
    Iq.get_users_availability(user_id)
    +
    + + + + + + + +
    +
    +
    +
    + + + + +
    + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/en/all/all/index.html b/docs/en/all/all/index.html new file mode 100644 index 00000000..fb935679 --- /dev/null +++ b/docs/en/all/all/index.html @@ -0,0 +1,1496 @@ + + + + + + + + + + + + + + + + + + + + + + For all - iqoptionapi document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + +
    + +
    + +
    + + + + + + + + +
    +
    Helping who helps you
    +

    + Support this work +

    + + Donation + +
    + + + + +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    + + + + + +
    +
    + + + + + + + + + + +

    For all

    +

    this api can work for option&digital&Forex&Stock&Commodities&Crypto&ETFs

    +

    Check Asset if open or not

    +

    be careful get_all_open_time() is very heavy for network.

    +

    get_all_open_time() return the DICT

    +

    "cfd" is include Stock,Commodities,ETFs asset

    +

    DICT["forex"/"cfd"/"crypto"/"digital"/"turbo"/"binary"][asset name]["open"]

    +

    it will return True/False

    +
    from iqoptionapi.stable_api import IQ_Option
    +import logging
    +import random
    +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +ALL_Asset=Iq.get_all_open_time()
    +#check if open or not
    +print(ALL_Asset["forex"]["EURUSD"]["open"])
    +print(ALL_Asset["cfd"]["FACEBOOK"]["open"])#Stock,Commodities,ETFs
    +print(ALL_Asset["crypto"]["BTCUSD-L"]["open"])
    +print(ALL_Asset["digital"]["EURUSD-OTC"]["open"])
    +
    +#Binary have two diffenence type:"turbo","binary"
    +print(ALL_Asset["turbo"]["EURUSD-OTC"]["open"])
    +print(ALL_Asset["binary"]["EURUSD-OTC"]["open"])
    +
    +
    +#!!!! exception ""
    +print(ALL_Asset["binary"]["not exist asset"]["open"])#it will return "{}" a None of the dict
    +
    +#!!!!print all!!!!
    +for type_name, data in ALL_Asset.items():
    +    for Asset,value in data.items():
    +        print(type_name,Asset,value["open"])
    +
    +

    View all ACTIVES Name

    +
    print(Iq.get_all_ACTIVES_OPCODE())
    +
    +

    update ACTIVES OPCODE

    +
    Iq.update_ACTIVES_OPCODE()
    +
    +

    get_async_order()

    +
    from iqoptionapi.stable_api import IQ_Option
    +import logging
    +import time
    +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +ACTIVES="EURUSD"
    +duration=1#minute 1 or 5
    +amount=1
    +action="call"#put
    +
    +print("__For_Binary_Option__")
    +_,id=Iq.buy(amount,ACTIVES,action,duration)
    +while Iq.get_async_order(id)==None:
    +    pass
    +print(Iq.get_async_order(id))
    +print("\n\n")
    +
    +print("__For_Digital_Option__spot")
    +_,id=Iq.buy_digital_spot(ACTIVES,amount,action,duration)
    +while Iq.get_async_order(id)==None:
    +    pass
    +order_data=Iq.get_async_order(id)
    +print(Iq.get_async_order(id))
    +print("\n\n")
    +
    +print("__For_Forex_Stock_Commodities_Crypto_ETFs")
    +instrument_type="crypto"
    +instrument_id="BTCUSD"
    +side="buy"
    +amount=1.23
    +leverage=3
    +type="market"
    +limit_price=None
    +stop_price=None
    +stop_lose_kind="percent"
    +stop_lose_value=95
    +take_profit_kind=None
    +take_profit_value=None
    +use_trail_stop=True
    +auto_margin_call=False
    +use_token_for_commission=False
    +check,id=Iq.buy_order(instrument_type=instrument_type, instrument_id=instrument_id,
    +            side=side, amount=amount,leverage=leverage,
    +            type=type,limit_price=limit_price, stop_price=stop_price,
    +            stop_lose_value=stop_lose_value, stop_lose_kind=stop_lose_kind,
    +            take_profit_value=take_profit_value, take_profit_kind=take_profit_kind,
    +            use_trail_stop=use_trail_stop, auto_margin_call=auto_margin_call,
    +            use_token_for_commission=use_token_for_commission)
    +while Iq.get_async_order(id)==None:
    +    pass
    +order_data=Iq.get_async_order(id)
    +print(Iq.get_async_order(id))
    +
    +

    get_commission_change()

    +

    instrument_type: "binary-option"/"turbo-option"/"digital-option"/"crypto"/"forex"/"cfd"

    +

    Iq.subscribe_commission_changed(instrument_type) Iq.get_commission_change(instrument_type) Iq.unsubscribe_commission_changed(instrument_type)

    +

    Sample code

    +
    import time
    +from iqoptionapi.stable_api import IQ_Option
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +#instrument_type: "binary-option"/"turbo-option"/"digital-option"/"crypto"/"forex"/"cfd"
    +instrument_type=["binary-option","turbo-option","digital-option","crypto","forex","cfd"]
    +for ins in instrument_type:
    +    Iq.subscribe_commission_changed(ins)
    +print("Start stream please wait profit change...")
    +while True:
    +    for ins in instrument_type:
    +        commissio_data=Iq.get_commission_change(ins)
    +        if commissio_data!={}:
    +            for active_name in commissio_data:
    +                if commissio_data[active_name]!={}:
    +                    the_min_timestamp=min(commissio_data[active_name].keys())
    +                    commissio=commissio_data[active_name][the_min_timestamp]
    +                    profit=(100-commissio)/100
    +                    print("instrument_type: "+str(ins)+" active_name: "+str(active_name)+" profit change to: "+str(profit))
    +                    #Data have been update so need del
    +                    del Iq.get_commission_change(ins)[active_name][the_min_timestamp]
    +    time.sleep(1)
    +
    +

    Get top_assets_updated

    +

    smaple

    +

    instrument_type="binary-option"/"digital-option"/"forex"/"cfd"/"crypto"

    +
    from iqoptionapi.stable_api import IQ_Option
    +import logging
    +import time
    +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +instrument_type="digital-option"#"binary-option"/"digital-option"/"forex"/"cfd"/"crypto"
    +Iq.subscribe_top_assets_updated(instrument_type)
    +
    +print("__Please_wait_for_sec__")
    +while True:
    +    if Iq.get_top_assets_updated(instrument_type)!=None:
    +        print(Iq.get_top_assets_updated(instrument_type))
    +        print("\n\n")
    +    time.sleep(1)
    +Iq.unsubscribe_top_assets_updated(instrument_type)
    +
    +

    subscribe_top_assets_updated()

    +
    instrument_type="digital-option"#"binary-option"/"digital-option"/"forex"/"cfd"/"crypto"
    +Iq.subscribe_top_assets_updated(instrument_type)
    +
    +

    get_top_assets_updated()

    +

    need call get_top_assets_updated() after subscribe_top_assets_updated()

    +
    Iq.get_top_assets_updated(instrument_type)
    +
    +

    unsubscribe_top_assets_updated()

    +

    if you not using please close stram for safe network

    +
    Iq.unsubscribe_top_assets_updated(instrument_type)
    +
    +

    get sort by popularity

    +

    +

    sample

    +
    from iqoptionapi.stable_api import IQ_Option
    +import logging
    +import time
    +import operator
    +
    +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +def opcode_to_name(opcode_data,opcode):
    +    return list(opcode_data.keys())[list(opcode_data.values()).index(opcode)]
    +
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +Iq.update_ACTIVES_OPCODE()
    +opcode_data=Iq.get_all_ACTIVES_OPCODE()
    +
    +instrument_type="digital-option"#"binary-option"/"digital-option"/"forex"/"cfd"/"crypto"
    +Iq.subscribe_top_assets_updated(instrument_type)
    +
    +
    +print("__Please_wait_for_sec__")
    +while True:
    +    if Iq.get_top_assets_updated(instrument_type)!=None:
    +        break
    +
    +top_assets=Iq.get_top_assets_updated(instrument_type)
    +popularity={}
    +for asset in top_assets:
    +    opcode=asset["active_id"]
    +    popularity_value=asset["popularity"]["value"]
    +    try:
    +        name=opcode_to_name(opcode_data,opcode)
    +        popularity[name]=popularity_value
    +    except:
    +        pass
    +
    +
    +sorted_popularity = sorted(popularity.items(), key=operator.itemgetter(1))
    +print("__Popularity_min_to_max__")
    +for lis in sorted_popularity:
    +    print(lis)
    +
    +Iq.unsubscribe_top_assets_updated(instrument_type)
    +
    +

    get_leader_board

    +

    Get leader board data

    +
    from iqoptionapi.stable_api import IQ_Option
    +Iq=IQ_Option(email,password)
    +Iq.connect()#connect to iqoption
    +
    +country="TW"
    +from_position=1
    +to_position=1
    +near_traders_count=0
    +
    +print(Iq.get_leader_board(country,from_position,to_position,near_traders_count))
    +
    +
    +

    Country

    +
    +

    ID = {"Worldwide":0, +"AF": 1, +"AL": 2, +"DZ": 3, +"AD": 5, +"AO": 6, +"AI": 7, +"AG": 9, +"AR": 10, +"AM": 11, +"AW": 12, +"AT": 14, +"AZ": 15, +"BS": 16, +"BH": 17, +"BD": 18, +"BB": 19, +"BY": 20, +"BZ": 22, +"BJ": 23, +"BM": 24, +"BO": 26, +"BA": 27, +"BW": 28, +"BV": 29, +"BR": 30, +"BN": 31, +"BG": 32, +"BF": 33, +"BI": 34, +"KH": 35, +"CM": 36, +"CV": 38, +"KY": 39, +"TD": 41, +"CL": 42, +"CN": 43, +"CC": 45, +"CO": 46, +"KM": 47, +"CG": 48, +"CK": 49, +"CR": 50, +"CI": 51, +"HR": 52, +"CU": 53, +"CY": 54, +"CZ": 55, +"DK": 56, +"DJ": 57, +"DM": 58, +"DO": 59, +"TL": 60, +"EC": 61, +"EG": 62, +"SV": 63, +"EE": 66, +"ET": 67, +"FO": 69, +"FJ": 70, +"FI": 71, +"FR": 72, +"GF": 73, +"PF": 74, +"GA": 75, +"GM": 76, +"GE": 77, +"DE": 78, +"GH": 79, +"GR": 81, +"GD": 83, +"GP": 84, +"GT": 86, +"GN": 87, +"GY": 88, +"HT": 89, +"HN": 90, +"HK": 91, +"HU": 92, +"IS": 93, +"ID": 94, +"IQ": 95, +"IE": 96, +"IT": 97, +"JM": 98, +"JO": 100, +"KZ": 101, +"KE": 102, +"KI": 103, +"KW": 104, +"KG": 105, +"LA": 106, +"LV": 107, +"LB": 108, +"LS": 109, +"LR": 110, +"LY": 111, +"LT": 113, +"LU": 114, +"MO": 115, +"MK": 116, +"MG": 117, +"MW": 118, +"MY": 119, +"MV": 120, +"ML": 121, +"MT": 122, +"MQ": 124, +"MR": 125, +"MU": 126, +"MX": 128, +"FM": 129, +"MD": 130, +"MC": 131, +"MN": 132, +"MA": 134, +"MZ": 135, +"MM": 136, +"NA": 137, +"NP": 139, +"NL": 140, +"AN": 141, +"NC": 142, +"NZ": 143, +"NI": 144, +"NE": 145, +"NG": 146, +"NO": 149, +"OM": 150, +"PK": 151, +"PW": 152, +"PA": 153, +"PG": 154, +"PY": 155, +"PE": 156, +"PH": 157, +"PL": 159, +"PT": 160, +"QA": 162, +"RE": 163, +"RO": 164, +"RW": 166, +"KN": 167, +"LC": 168, +"SA": 171, +"SN": 172, +"SC": 173, +"SG": 175, +"SK": 176, +"SI": 177, +"SO": 179, +"ZA": 180, +"KR": 181, +"ES": 182, +"LK": 183, +"SH": 184, +"SR": 186, +"SZ": 187, +"SE": 188, +"CH": 189, +"TW": 191, +"TJ": 192, +"TZ": 193, +"TH": 194, +"TG": 195, +"TT": 198, +"TN": 199, +"TR": 200, +"TM": 201, +"UG": 203, +"UA": 204, +"AE": 205, +"GB": 206, +"UY": 207, +"UZ": 208, +"VE": 211, +"VN": 212, +"VG": 213, +"YE": 216, +"ZM": 218, +"ZW": 219, +"RS": 220, +"ME": 221, +"IN": 225, +"TC": 234, +"CD": 235, +"GG": 236, +"IM": 237, +"JE": 239, +"CW": 246, }

    +

    login with 2 factor auth

    +
    from iqoptionapi.stable_api import IQ_Option
    +
    +print("Connecting...")
    +api = IQ_Option("email", "password")
    +status, reason = api.connect()
    +print('##### First try #####')
    +print('Status:', status)
    +print('Reason:', reason)
    +print("Email:", api.email)
    +
    +if reason == "2FA":
    +    print('##### 2FA Enabled #####')
    +    print("An sms was sent with auth code to your number")
    +
    +    code_sms = input("Enter 2FA code: ")
    +    status, reason = api.connect_2fa(code_sms)
    +
    +    print('##### second try #####')
    +    print('Status:', status)
    +    print('Reason:', reason)
    +    print("Email:", api.email)
    +
    +print("Balance:", api.get_balance())
    +print("##############################")
    +
    + + + + + + + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/en/all/image/top_assets_updated.png b/docs/en/all/image/top_assets_updated.png new file mode 100644 index 00000000..edd76b53 Binary files /dev/null and b/docs/en/all/image/top_assets_updated.png differ diff --git a/docs/en/binary option/binary option/index.html b/docs/en/binary option/binary option/index.html new file mode 100644 index 00000000..57ca47ad --- /dev/null +++ b/docs/en/binary option/binary option/index.html @@ -0,0 +1,1456 @@ + + + + + + + + + + + + + + + + + + + + + + Binary option - iqoptionapi document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + +
    + +
    + +
    + + + + + + + + +
    +
    Helping who helps you
    +

    + Support this work +

    + + Donation + +
    + + + + +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    + + + + + +
    +
    + + + + + + + + + + +

    For Binary Option

    +

    buy

    +

    buy the binary option

    +

    buy()

    +

    sample

    +
    from iqoptionapi.stable_api import IQ_Option
    +import logging
    +import time
    +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +Iq=IQ_Option("email","pass")
    +goal="EURUSD"
    +print("get candles")
    +print(Iq.get_candles(goal,60,111,time.time()))
    +Money=1
    +ACTIVES="EURUSD"
    +ACTION="call"#or "put"
    +expirations_mode=1
    +
    +check,id=Iq.buy(Money,ACTIVES,ACTION,expirations_mode)
    +if check:
    +    print("!buy!")
    +else:
    +    print("buy fail")
    +
    +
    Iq.buy(Money,ACTIVES,ACTION,expirations)
    +                #Money:How many you want to buy type(int)
    +                #ACTIVES:sample input "EURUSD" OR "EURGBP".... you can view by get_all_ACTIVES_OPCODE
    +                #ACTION:"call"/"put" type(str)
    +                #expirations:input minute,careful too large will false to buy(Closed market time)thank Darth-Carrotpie's code (int)https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/6
    +                #return:if sucess return (True,id_number) esle return(Fale,None)
    +
    +

    buy_multi()

    +
    from iqoptionapi.stable_api import IQ_Option
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +Money=[]
    +ACTIVES=[]
    +ACTION=[]
    +expirations_mode=[]
    +
    +Money.append(1)
    +ACTIVES.append("EURUSD")
    +ACTION.append("call")#put
    +expirations_mode.append(1)
    +
    +Money.append(1)
    +ACTIVES.append("EURAUD")
    +ACTION.append("call")#put
    +expirations_mode.append(1)
    +
    +print("buy multi")
    +id_list=Iq.buy_multi(Money,ACTIVES,ACTION,expirations_mode)
    +
    +print("check win only one id (id_list[0])")
    +print(Iq.check_win_v2(id_list[0],2))
    +
    +

    buy_by_raw_expirations()

    +

    buy the binary optoin by expired

    +
    price=2
    +active="EURUSD"
    +direction="call"#put
    +option="turbo"#binary
    +expired=1293923# this expried time you need to count or get by your self
    +Iq.buy_by_raw_expirations(price, active, direction, option,expired)
    +
    +

    get_remaning()

    +

    purchase time=remaning time - 30 +

    from iqoptionapi.stable_api import IQ_Option
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +Money=1
    +ACTIVES="EURUSD"
    +ACTION="call"#or "put"
    +expirations_mode=1
    +while True:
    +    remaning_time=Iq.get_remaning(expirations_mode)
    +    purchase_time=remaning_time-30
    +    if purchase_time<4:#buy the binary option at purchase_time<4
    +        Iq.buy(Money,ACTIVES,ACTION,expirations_mode)
    +        break
    +

    +

    sell_option()

    +

    Iq.sell_option(sell_all)#input int or list order id
    +
    +Sample

    +
    from iqoptionapi.stable_api import IQ_Option
    +import time
    +print("login...")
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +Money=1
    +ACTIVES="EURUSD"
    +ACTION="call"#or "put"
    +expirations_mode=1
    +
    +id=Iq.buy(Money,ACTIVES,ACTION,expirations_mode)
    +id2=Iq.buy(Money,ACTIVES,ACTION,expirations_mode)
    +
    +time.sleep(5)
    +sell_all=[]
    +sell_all.append(id)
    +sell_all.append(id2)
    +print(Iq.sell_option(sell_all))
    +
    +

    check win

    +

    It will do loop until get win or loose

    +

    check_win()

    +
    from iqoptionapi.stable_api import IQ_Option
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +check,id = Iq.buy(1, "EURUSD", "call", 1)
    +print("start check win please wait")
    +print(Iq.check_win(id))
    +
    +
    Iq.check_win(23243221)
    +#""you need to get id_number from buy function""
    +#Iq.check_win(id_number)
    +#this function will do loop check your bet until if win/equal/loose
    +
    +

    check_win_v2()

    +
    from iqoptionapi.stable_api import IQ_Option
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +check,id = Iq.buy(1, "EURUSD", "call", 1)
    +print("start check win please wait")
    +polling_time=3
    +print(Iq.check_win_v2(id,polling_time))
    +
    +

    check_win_v3()

    +

    great way

    +
    from iqoptionapi.stable_api import IQ_Option
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +check,id = Iq.buy(1, "EURUSD", "call", 1)
    +print("start check win please wait")
    +print(Iq.check_win_v3(id))
    +
    +

    get_binary_option_detail()

    +

    +

    sample +

    from iqoptionapi.stable_api import IQ_Option
    +print("login...")
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +d=Iq.get_binary_option_detail()
    +print(d["CADCHF"]["turbo"])
    +print(d["CADCHF"]["binary"])
    +

    +

    get_all_init()

    +

    get_binary_option_detail is base on this api

    +

    you will get the raw detail about binary option +

    Iq.get_all_init()
    +

    +

    get_all_profit()

    +

    sample

    +
    from iqoptionapi.stable_api import IQ_Option
    +print("login...")
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +d=Iq.get_all_profit()
    +print(d["CADCHF"]["turbo"])
    +print(d["CADCHF"]["binary"])
    +
    +

    if you want realtime profit try this +get real time profit

    +

    get_betinfo()

    +

    if order not close yet or wrong id it will return False +

    isSuccessful,dict=Iq.get_betinfo(4452272449)
    +#Iq.get_betinfo
    +#INPUT: order id
    +#OUTPUT:isSuccessful,dict
    +

    +

    get_optioninfo

    +

    get_optioninfo()

    +

    input how many data you want to get from Trading History(only for binary option) +

    print(Iq.get_optioninfo(10))
    +

    +

    get_optioninfo_v2()

    +

    input how many data you want to get from Trading History(only for binary option) +

    print(Iq.get_optioninfo_v2(10))
    +

    +

    get_option_open_by_other_pc()

    +

    if your account is login in other plance/PC and doing buy option

    +

    you can get the option by this function

    +
    import time
    +from iqoptionapi.stable_api import IQ_Option
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +while True:
    +    #please open website iqoption and buy some binary option
    +    if Iq.get_option_open_by_other_pc()!={}:
    +        break
    +    time.sleep(1)
    +print("Get option from other Pc and same account")
    +print(Iq.get_option_open_by_other_pc())
    +
    +id=list(Iq.get_option_open_by_other_pc().keys())[0]
    +Iq.del_option_open_by_other_pc(id)
    +print("After del by id")
    +print(Iq.get_option_open_by_other_pc())
    +
    +

    Get mood

    +

    sample

    +
    from iqoptionapi.stable_api import IQ_Option
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +goal="EURUSD"
    +Iq.start_mood_stream(goal)
    +print(Iq.get_traders_mood(goal))
    +Iq.stop_mood_stream(goal)
    +
    +

    start_mood_stream()

    +
    Iq.start_mood_stream(goal)
    +
    +

    get_traders_mood()

    +

    call get_traders_mood() after start_mood_stream

    +
    Iq.get_traders_mood(goal)
    +
    +

    get_all_traders_mood()

    +

    it will get all trade mood what you start stream

    +
    Iq.get_all_traders_mood()
    +#output:(dict) all mood you start
    +
    +

    stop_mood_stream()

    +

    if you not using the mood ,please stop safe network

    +
    Iq.stop_mood_stream(goal)
    +
    + + + + + + + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/en/binary option/expiration_time.png b/docs/en/binary option/expiration_time.png new file mode 100644 index 00000000..160fb591 Binary files /dev/null and b/docs/en/binary option/expiration_time.png differ diff --git a/docs/en/candle/candle/index.html b/docs/en/candle/candle/index.html new file mode 100644 index 00000000..03903a13 --- /dev/null +++ b/docs/en/candle/candle/index.html @@ -0,0 +1,1099 @@ + + + + + + + + + + + + + + + + + + + + + + candle - iqoptionapi document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + +
    + +
    + +
    + + + + + + + + +
    +
    Helping who helps you
    +

    + Support this work +

    + + Donation + +
    + + + + +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    + + +
    +
    +
    + + +
    +
    +
    + + +
    +
    + + + + + + + + + + +

    Candle

    +

    get candles

    +

    only get close clndle, not realtime

    +
    Iq.get_candles(ACTIVES,interval,count,endtime)
    +            #ACTIVES:sample input "EURUSD" OR "EURGBP".... youcan
    +            #interval:duration of candles
    +            #count:how many candles you want to get from now to past
    +            #endtime:get candles from past to "endtime"
    +
    +

    sample

    +
    from iqoptionapi.stable_api import IQ_Option
    +import time
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +end_from_time=time.time()
    +ANS=[]
    +for i in range(70):
    +    data=Iq.get_candles("EURUSD", 60, 1000, end_from_time)
    +    ANS =data+ANS
    +    end_from_time=int(data[0]["from"])-1
    +print(ANS)
    +
    +

    get realtime candles

    +

    indicator sample

    +
    from talib.abstract import *
    +from iqoptionapi.stable_api import IQ_Option
    +import time
    +import numpy as np
    +print("login...")
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +goal="EURUSD"
    +size=10#size=[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,"all"]
    +timeperiod=10
    +maxdict=20
    +print("start stream...")
    +Iq.start_candles_stream(goal,size,maxdict)
    +print("Start EMA Sample")
    +while True:
    +    candles=Iq.get_realtime_candles(goal,size)
    +
    +    inputs = {
    +        'open': np.array([]),
    +        'high': np.array([]),
    +        'low': np.array([]),
    +        'close': np.array([]),
    +        'volume': np.array([])
    +    }
    +    for timestamp in candles:
    +
    +        inputs["open"]=np.append(inputs["open"],candles[timestamp]["open"] )
    +        inputs["high"]=np.append(inputs["open"],candles[timestamp]["max"] )
    +        inputs["low"]=np.append(inputs["open"],candles[timestamp]["min"] )
    +        inputs["close"]=np.append(inputs["open"],candles[timestamp]["close"] )
    +        inputs["volume"]=np.append(inputs["open"],candles[timestamp]["volume"] )
    +
    +
    +    print("Show EMA")
    +    print(EMA(inputs, timeperiod=timeperiod))
    +    print("\n")
    +    time.sleep(1)
    +Iq.stop_candles_stream(goal,size)
    +
    +

    Sample

    +
    from iqoptionapi.stable_api import IQ_Option
    +import logging
    +import time
    +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +print("login...")
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +goal="EURUSD"
    +size="all"#size=[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,"all"]
    +maxdict=10
    +print("start stream...")
    +Iq.start_candles_stream(goal,size,maxdict)
    +#DO something
    +print("Do something...")
    +time.sleep(10)
    +
    +print("print candles")
    +cc=Iq.get_realtime_candles(goal,size)
    +for k in cc:
    +    print(goal,"size",k,cc[k])
    +print("stop candle")
    +Iq.stop_candles_stream(goal,size)
    +
    +

    size

    +

    +

    start_candles_stream()

    +
    goal="EURUSD"
    +size="all"#size=[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,"all"]
    +maxdict=10
    +print("start stream...")
    +Iq.start_candles_stream(goal,size,maxdict)
    +
    +

    get_realtime_candles()

    +

    get_realtime_candles() after call start_candles_stream()

    +
    Iq.get_realtime_candles(goal,size)
    +
    +

    stop_candles_stream()

    +

    if you not using get_realtime_candles() anymore please close the stream

    +
    Iq.stop_candles_stream(goal,size)
    +
    + + + + + + + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/en/candle/image/time_interval.png b/docs/en/candle/image/time_interval.png new file mode 100644 index 00000000..e465879b Binary files /dev/null and b/docs/en/candle/image/time_interval.png differ diff --git a/docs/en/digital/digital/index.html b/docs/en/digital/digital/index.html new file mode 100644 index 00000000..5f3f8a0c --- /dev/null +++ b/docs/en/digital/digital/index.html @@ -0,0 +1,1349 @@ + + + + + + + + + + + + + + + + + + + + + + Digital - iqoptionapi document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + +
    + +
    + +
    + + + + + + + + +
    +
    Helping who helps you
    +

    + Support this work +

    + + Donation + +
    + + + + +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    + + + + + +
    +
    + + + + + + + + + + +

    Digital

    +

    Payout

    +
    active = 'EURUSD'
    +payout = Iq.get_digital_payout(active)
    +print(payout)
    +
    +

    payout

    +

    Nearest strike mode

    +

    +

    sample

    +
    from iqoptionapi.stable_api import IQ_Option
    +import time
    +import random
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +ACTIVES="EURUSD"
    +duration=1#minute 1 or 5
    +amount=1
    +Iq.subscribe_strike_list(ACTIVES,duration)
    +#get strike_list
    +data=Iq.get_realtime_strike_list(ACTIVES, duration)
    +print("get strike data")
    +print(data)
    +"""data
    +{'1.127100':
    +    {  'call':
    +            {   'profit': None,
    +                'id': 'doEURUSD201811120649PT1MC11271'
    +            },
    +        'put':
    +            {   'profit': 566.6666666666666,
    +                'id': 'doEURUSD201811120649PT1MP11271'
    +            }
    +    }............
    +}
    +"""
    +#get price list
    +price_list=list(data.keys())
    +#random choose Strategy
    +choose_price=price_list[random.randint(0,len(price_list)-1)]
    +#get instrument_id
    +instrument_id=data[choose_price]["call"]["id"]
    +#get profit
    +profit=data[choose_price]["call"]["profit"]
    +print("choose you want to buy")
    +print("price:",choose_price,"side:call","instrument_id:",instrument_id,"profit:",profit)
    +#put instrument_id to buy
    +buy_check,id=Iq.buy_digital(amount,instrument_id)
    +polling_time=5
    +if buy_check:
    +    print("wait for check win")
    +    #check win
    +    while True:
    +        check_close,win_money=Iq.check_win_digital_v2(id,polling_time)
    +        if check_close:
    +            if float(win_money)>0:
    +                win_money=("%.2f" % (win_money))
    +                print("you win",win_money,"money")
    +            else:
    +                print("you loose")
    +            break
    +    Iq.unsubscribe_strike_list(ACTIVES,duration)
    +else:
    +    print("fail to buy,please run again")
    +
    +

    Get all strike list data

    +

    smaple +

    from iqoptionapi.stable_api import IQ_Option
    +import time
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +ACTIVES="EURUSD"
    +duration=1#minute 1 or 5
    +Iq.subscribe_strike_list(ACTIVES,duration)
    +while True:
    +    data=Iq.get_realtime_strike_list(ACTIVES, duration)
    +    for price in data:
    +        print("price",price,data[price])
    +    time.sleep(5)
    +Iq.unsubscribe_strike_list(ACTIVES,duration)
    +

    +

    subscribe_strike_list()

    +
    Iq.subscribe_strike_list(ACTIVES,duration)
    +
    +

    get_realtime_strike_list

    +

    you need call subscribe_strike_list() before get_realtime_strike_list() +

    Iq.get_realtime_strike_list(ACTIVES,duration)
    +

    +

    unsubscribe_strike_list()

    +
    Iq.unsubscribe_strike_list(ACTIVES,duration)
    +
    +

    buy_digital()

    +
    buy_check,id=Iq.buy_digital(amount,instrument_id)
    +#get instrument_id from Iq.get_realtime_strike_list
    +
    +

    Current price mode

    +

    +

    buy_digital_spot

    +

    buy the digit in current price

    +

    return check and id

    +
    from iqoptionapi.stable_api import IQ_Option
    +
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +ACTIVES="EURUSD"
    +duration=1#minute 1 or 5
    +amount=1
    +action="call"#put
    +print(Iq.buy_digital_spot(ACTIVES,amount,action,duration))
    +
    +

    get_digital_spot_profit_after_sale()

    +

    get Profit After Sale(P/L)

    +

    +

    sample

    +
    from iqoptionapi.stable_api import IQ_Option
    +Iq=IQ_Option("email","passord")
    +ACTIVES="EURUSD"
    +duration=1#minute 1 or 5
    +amount=100
    +action="put"#put
    +
    +Iq.subscribe_strike_list(ACTIVES,duration)
    +_,id=Iq.buy_digital_spot(ACTIVES,amount,action,duration)
    +
    +while True:
    +    PL=Iq.get_digital_spot_profit_after_sale(id)
    +    if PL!=None:
    +        print(PL)
    +
    +

    get_digital_current_profit()

    +
    from iqoptionapi.stable_api import IQ_Option
    +import time
    +import logging
    +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +ACTIVES="EURUSD"
    +duration=1#minute 1 or 5
    +Iq.subscribe_strike_list(ACTIVES,duration)
    +while True:
    +    data=Iq.get_digital_current_profit(ACTIVES, duration)
    +    print(data)#from first print it may be get false,just wait a second you can get the profit
    +    time.sleep(1)
    +Iq.unsubscribe_strike_list(ACTIVES,duration)
    +
    +

    check win for digital

    +

    check_win_digital()

    +

    this api is implement by get_digital_position()

    +

    this function is polling , so need to set polling time +

    Iq.check_win_digital(id,polling_time)#get the id from Iq.buy_digital
    +

    +

    check_win_digital_v2()

    +

    this api is asynchronous get id data,it only can get id data before you call the buy action. if you restart the program,the asynchronous id data can not get again,so check_win_digital_v2 may not working,so you need to use "check_win_digital"!

    +
     Iq.check_win_digital_v2(id)#get the id from Iq.buy_digital
    +#return:check_close,win_money
    +#return sample
    +#if you loose:Ture,o
    +#if you win:True,1232.3
    +#if trade not clode yet:False,None
    +
    +

    sample code

    +
    from iqoptionapi.stable_api import IQ_Option
    +import logging
    +import random
    +import time
    +import datetime
    +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +ACTIVES="EURUSD"
    +duration=1#minute 1 or 5
    +amount=1
    +action="call"#put
    +_,id=(Iq.buy_digital_spot(ACTIVES,amount,action,duration))
    +print(id)
    +if id !="error":
    +    while True:
    +        check,win=Iq.check_win_digital_v2(id)
    +        if check==True:
    +            break
    +    if win<0:
    +        print("you loss "+str(win)+"$")
    +    else:
    +        print("you win "+str(win)+"$")
    +else:
    +    print("please try again")
    +
    +

    close_digital_option()

    +
    Iq.close_digital_option(id)
    +
    +

    get digital data

    +

    smaple1 +

    from iqoptionapi.stable_api import IQ_Option
    +import logging
    +import time
    +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +ACTIVES="EURUSD-OTC"
    +duration=1#minute 1 or 5
    +amount=1
    +action="call"#put
    +from datetime import datetime
    +
    +_,id=Iq.buy_digital_spot(ACTIVES,amount,action,duration)
    +
    +while True:
    +    check,_=Iq.check_win_digital(id)
    +    if check:
    +        break
    +print(Iq.get_digital_position(id))
    +print(Iq.check_win_digital(id))
    +

    +

    sample2

    +
    print(Iq.get_positions("digital-option"))
    +print(Iq.get_digital_position(2323433))#in put the id
    +print(Iq.get_position_history("digital-option"))
    +
    + + + + + + + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/en/digital/image/near.png b/docs/en/digital/image/near.png new file mode 100644 index 00000000..1b8e10f1 Binary files /dev/null and b/docs/en/digital/image/near.png differ diff --git a/docs/en/digital/image/payout.png b/docs/en/digital/image/payout.png new file mode 100644 index 00000000..e81e5aff Binary files /dev/null and b/docs/en/digital/image/payout.png differ diff --git a/docs/en/digital/image/profit_after_sale.png b/docs/en/digital/image/profit_after_sale.png new file mode 100644 index 00000000..8839db1f Binary files /dev/null and b/docs/en/digital/image/profit_after_sale.png differ diff --git a/docs/en/digital/image/spot.png b/docs/en/digital/image/spot.png new file mode 100644 index 00000000..752803b3 Binary files /dev/null and b/docs/en/digital/image/spot.png differ diff --git a/docs/en/fef/fef/index.html b/docs/en/fef/fef/index.html new file mode 100644 index 00000000..2c53d49d --- /dev/null +++ b/docs/en/fef/fef/index.html @@ -0,0 +1,1470 @@ + + + + + + + + + + + + + + + + + + + + + + Foreign exchange futures - iqoptionapi document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + +
    + +
    + +
    + + + + + + + + +
    +
    Helping who helps you
    +

    + Support this work +

    + + Donation + +
    + + + + +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    + + + + + +
    +
    + + + + + + + + + + +

    Forex&Stock&Commodities&Crypto&ETFs

    +

    instrument_type and instrument_id

    +

    you can search instrument_type and instrument_id from this file

    +

    search instrument_type and instrument_id

    +

    sample

    +
    from iqoptionapi.stable_api import IQ_Option
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +instrument_type="crypto"
    +instrument_id="BTCUSD"
    +side="buy"#input:"buy"/"sell"
    +amount=1.23#input how many Amount you want to play
    +
    +#"leverage"="Multiplier"
    +leverage=3#you can get more information in get_available_leverages()
    +
    +type="market"#input:"market"/"limit"/"stop"
    +
    +#for type="limit"/"stop"
    +
    +# only working by set type="limit"
    +limit_price=None#input:None/value(float/int)
    +
    +# only working by set type="stop"
    +stop_price=None#input:None/value(float/int)
    +
    +#"percent"=Profit Percentage
    +#"price"=Asset Price
    +#"diff"=Profit in Money
    +
    +stop_lose_kind="percent"#input:None/"price"/"diff"/"percent"
    +stop_lose_value=95#input:None/value(float/int)
    +
    +take_profit_kind=None#input:None/"price"/"diff"/"percent"
    +take_profit_value=None#input:None/value(float/int)
    +
    +#"use_trail_stop"="Trailing Stop"
    +use_trail_stop=True#True/False
    +
    +#"auto_margin_call"="Use Balance to Keep Position Open"
    +auto_margin_call=False#True/False
    +#if you want "take_profit_kind"&
    +#            "take_profit_value"&
    +#            "stop_lose_kind"&
    +#            "stop_lose_value" all being "Not Set","auto_margin_call" need to set:True
    +
    +use_token_for_commission=False#True/False
    +
    +check,order_id=Iq.buy_order(instrument_type=instrument_type, instrument_id=instrument_id,
    +            side=side, amount=amount,leverage=leverage,
    +            type=type,limit_price=limit_price, stop_price=stop_price,
    +            stop_lose_value=stop_lose_value, stop_lose_kind=stop_lose_kind,
    +            take_profit_value=take_profit_value, take_profit_kind=take_profit_kind,
    +            use_trail_stop=use_trail_stop, auto_margin_call=auto_margin_call,
    +            use_token_for_commission=use_token_for_commission)
    +print(Iq.get_order(order_id))
    +print(Iq.get_positions("crypto"))
    +print(Iq.get_position_history("crypto"))
    +print(Iq.get_available_leverages("crypto","BTCUSD"))
    +print(Iq.close_position(order_id))
    +print(Iq.get_overnight_fee("crypto","BTCUSD"))
    +
    +

    buy_order()

    +

    return (True/False,buy_order_id/False)

    +

    if Buy sucess return (True,buy_order_id)

    +

    "percent"=Profit Percentage

    +

    "price"=Asset Price

    +

    "diff"=Profit in Money

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    parameter
    instrument_typeinstrument_type
    instrument_idinstrument_id
    side"buy""sell"
    amountvalue(float/int)
    leveragevalue(int)
    type"market""limit""stop"
    limit_priceNonevalue(float/int):Only working by set type="limit"
    stop_priceNonevalue(float/int):Only working by set type="stop"
    stop_lose_kindNone"price""diff""percent"
    stop_lose_valueNonevalue(float/int)
    take_profit_kindNone"price""diff""percent"
    take_profit_valueNonevalue(float/int)
    use_trail_stopTrueFalse
    auto_margin_callTrueFalse
    use_token_for_commissionTrueFalse
    +
    check,order_id=Iq.buy_order(
    +            instrument_type=instrument_type, instrument_id=instrument_id,
    +            side=side, amount=amount,leverage=leverage,
    +            type=type,limit_price=limit_price, stop_price=stop_price,
    +            stop_lose_kind=stop_lose_kind,
    +            stop_lose_value=stop_lose_value,
    +            take_profit_kind=take_profit_kind,
    +            take_profit_value=take_profit_value,
    +            use_trail_stop=use_trail_stop, auto_margin_call=auto_margin_call,
    +            use_token_for_commission=use_token_for_commission)
    +
    +

    change_order()

    + + + + + + + + + + + + + +
    ID_Name=""order_id"ID_Name="position_id"
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    parameter
    ID_Name"position_id""order_id"
    order_id"you need to get order_id from buy_order()"
    stop_lose_kindNone"price""diff""percent"
    stop_lose_valueNonevalue(float/int)
    take_profit_kindNone"price""diff""percent"
    take_profit_valueNonevalue(float/int)
    use_trail_stopTrueFalse
    auto_margin_callTrueFalse
    +

    sample

    +
    ID_Name="order_id"#"position_id"/"order_id"
    +stop_lose_kind=None
    +stop_lose_value=None
    +take_profit_kind="percent"
    +take_profit_value=200
    +use_trail_stop=False
    +auto_margin_call=True
    +Iq.change_order(ID_Name=ID_Name,order_id=order_id,
    +                stop_lose_kind=stop_lose_kind,stop_lose_value=stop_lose_value,
    +                take_profit_kind=take_profit_kind,take_profit_value=take_profit_value,
    +                use_trail_stop=use_trail_stop,auto_margin_call=auto_margin_call)
    +
    +

    get_order()

    +

    get infomation about buy_order_id

    +

    return (True/False,get_order,None)

    +
    Iq.get_order(buy_order_id)
    +
    +

    get_pending()

    +

    you will get there data

    +

    +
    Iq.get_pending(instrument_type)
    +
    +

    get_positions()

    +

    you will get there data

    +

    +

    return (True/False,get_positions,None)

    +

    not support ""turbo-option""

    +

    instrument_type="crypto","forex","fx-option","multi-option","cfd","digital-option"

    +
    Iq.get_positions(instrument_type)
    +
    +

    get_position()

    +

    you will get there data

    +

    +

    you will get one position by buy_order_id

    +

    return (True/False,position data,None)

    +
    Iq.get_positions(buy_order_id)
    +
    +

    get_position_history

    +

    you will get there data

    +

    +

    get_position_history()

    +

    return (True/False,position_history,None)

    +
    Iq.get_position_history(instrument_type)
    +
    +

    get_position_history_v2

    +

    instrument_type="crypto","forex","fx-option","turbo-option","multi-option","cfd","digital-option"

    +

    get_position_history_v2(instrument_type,limit,offset,start,end)

    +
    from iqoptionapi.stable_api import IQ_Option
    +import logging
    +import random
    +import time
    +import datetime
    +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +#instrument_type="crypto","forex","fx-option","turbo-option","multi-option","cfd","digital-option"
    +instrument_type="digital-option"
    +limit=2#How many you want to get
    +offset=0#offset from end time,if end time is 0,it mean get the data from now
    +start=0#start time Timestamp
    +end=0#Timestamp
    +data=Iq.get_position_history_v2(instrument_type,limit,offset,start,end)
    +
    +print(data)
    +
    +#--------- this will get data start from 2019/7/1(end) to 2019/1/1(start) and only get 2(limit) data and offset is 0
    +instrument_type="digital-option"
    +limit=2#How many you want to get
    +offset=0#offset from end time,if end time is 0,it mean get the data from now
    +start=int(time.mktime(datetime.datetime.strptime("2019/1/1", "%Y/%m/%d").timetuple()))
    +end=int(time.mktime(datetime.datetime.strptime("2019/7/1", "%Y/%m/%d").timetuple()))
    +data=Iq.get_position_history_v2(instrument_type,limit,offset,start,end)
    +print(data)
    +
    +

    get_available_leverages()

    +

    get available leverages

    +

    return (True/False,available_leverages,None)

    +
    Iq.get_available_leverages(instrument_type,actives)
    +
    +

    cancel_order()

    +

    you will do this

    +

    +

    return (True/False)

    +
    Iq.cancel_order(buy_order_id)
    +
    +

    close_position()

    +

    you will do this

    +

    +

    return (True/False)

    +
    Iq.close_position(buy_order_id)
    +
    +

    get_overnight_fee()

    +

    return (True/False,overnight_fee,None)

    +
    Iq.get_overnight_fee(instrument_type,active)
    +
    + + + + + + + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/en/fef/image/cancel_order.png b/docs/en/fef/image/cancel_order.png new file mode 100644 index 00000000..bbdb6193 Binary files /dev/null and b/docs/en/fef/image/cancel_order.png differ diff --git a/docs/en/fef/image/change_ID_Name_order_id.png b/docs/en/fef/image/change_ID_Name_order_id.png new file mode 100644 index 00000000..66900fcf Binary files /dev/null and b/docs/en/fef/image/change_ID_Name_order_id.png differ diff --git a/docs/en/fef/image/change_ID_Name_position_id.png b/docs/en/fef/image/change_ID_Name_position_id.png new file mode 100644 index 00000000..61e407b1 Binary files /dev/null and b/docs/en/fef/image/change_ID_Name_position_id.png differ diff --git a/docs/en/fef/image/close_position.png b/docs/en/fef/image/close_position.png new file mode 100644 index 00000000..7f52ea76 Binary files /dev/null and b/docs/en/fef/image/close_position.png differ diff --git a/docs/en/fef/image/get_pending.png b/docs/en/fef/image/get_pending.png new file mode 100644 index 00000000..76d5660f Binary files /dev/null and b/docs/en/fef/image/get_pending.png differ diff --git a/docs/en/fef/image/get_position.png b/docs/en/fef/image/get_position.png new file mode 100644 index 00000000..29567127 Binary files /dev/null and b/docs/en/fef/image/get_position.png differ diff --git a/docs/en/fef/image/get_position_history.png b/docs/en/fef/image/get_position_history.png new file mode 100644 index 00000000..16c9ec03 Binary files /dev/null and b/docs/en/fef/image/get_position_history.png differ diff --git a/docs/en/fef/image/get_positions.png b/docs/en/fef/image/get_positions.png new file mode 100644 index 00000000..ff757ff6 Binary files /dev/null and b/docs/en/fef/image/get_positions.png differ diff --git a/docs/en/fef/instrument.txt b/docs/en/fef/instrument.txt new file mode 100644 index 00000000..920723d1 --- /dev/null +++ b/docs/en/fef/instrument.txt @@ -0,0 +1,318 @@ +Name: NZD/SEK instrument_id: "NZDSEK" instrument_type: "forex" +Name: NZD/USD instrument_id: "NZDUSD" instrument_type: "forex" +Name: CAD/TRY instrument_id: "CADTRY" instrument_type: "forex" +Name: EUR/CHF instrument_id: "EURCHF" instrument_type: "forex" +Name: USD/THB instrument_id: "USDTHB" instrument_type: "forex" +Name: EUR/TRY instrument_id: "EURTRY" instrument_type: "forex" +Name: GBP/AUD instrument_id: "GBPAUD" instrument_type: "forex" +Name: AUD/USD instrument_id: "AUDUSD" instrument_type: "forex" +Name: EUR/MXN instrument_id: "EURMXN" instrument_type: "forex" +Name: USD/CHF instrument_id: "USDCHF" instrument_type: "forex" +Name: NOK/DKK instrument_id: "NOKDKK" instrument_type: "forex" +Name: EUR/NOK instrument_id: "EURNOK" instrument_type: "forex" +Name: SEK/JPY instrument_id: "SEKJPY" instrument_type: "forex" +Name: CAD/NOK instrument_id: "CADNOK" instrument_type: "forex" +Name: NOK/SEK instrument_id: "NOKSEK" instrument_type: "forex" +Name: GBP/HUF instrument_id: "GBPHUF" instrument_type: "forex" +Name: GBP/SGD instrument_id: "GBPSGD" instrument_type: "forex" +Name: AUD/NZD instrument_id: "AUDNZD" instrument_type: "forex" +Name: GBP/JPY instrument_id: "GBPJPY" instrument_type: "forex" +Name: CHF/SEK instrument_id: "CHFSEK" instrument_type: "forex" +Name: AUD/NOK instrument_id: "AUDNOK" instrument_type: "forex" +Name: GBP/NOK instrument_id: "GBPNOK" instrument_type: "forex" +Name: AUD/DKK instrument_id: "AUDDKK" instrument_type: "forex" +Name: EUR/AUD instrument_id: "EURAUD" instrument_type: "forex" +Name: AUD/CHF instrument_id: "AUDCHF" instrument_type: "forex" +Name: GBP/CHF instrument_id: "GBPCHF" instrument_type: "forex" +Name: AUD/CAD instrument_id: "AUDCAD" instrument_type: "forex" +Name: CHF/DKK instrument_id: "CHFDKK" instrument_type: "forex" +Name: AUD/TRY instrument_id: "AUDTRY" instrument_type: "forex" +Name: NZD/CHF instrument_id: "NZDCHF" instrument_type: "forex" +Name: USD/SEK instrument_id: "USDSEK" instrument_type: "forex" +Name: GBP/NZD instrument_id: "GBPNZD" instrument_type: "forex" +Name: EUR/DKK instrument_id: "EURDKK" instrument_type: "forex" +Name: NZD/DKK instrument_id: "NZDDKK" instrument_type: "forex" +Name: CAD/SGD instrument_id: "CADSGD" instrument_type: "forex" +Name: EUR/GBP instrument_id: "EURGBP" instrument_type: "forex" +Name: EUR/CAD instrument_id: "EURCAD" instrument_type: "forex" +Name: USD/CZK instrument_id: "USDCZK" instrument_type: "forex" +Name: AUD/MXN instrument_id: "AUDMXN" instrument_type: "forex" +Name: EUR/NZD instrument_id: "EURNZD" instrument_type: "forex" +Name: GBP/PLN instrument_id: "GBPPLN" instrument_type: "forex" +Name: NZD/NOK instrument_id: "NZDNOK" instrument_type: "forex" +Name: AUD/SGD instrument_id: "AUDSGD" instrument_type: "forex" +Name: GBP/SEK instrument_id: "GBPSEK" instrument_type: "forex" +Name: NZD/CAD instrument_id: "NZDCAD" instrument_type: "forex" +Name: NZD/MXN instrument_id: "NZDMXN" instrument_type: "forex" +Name: NZD/TRY instrument_id: "NZDTRY" instrument_type: "forex" +Name: CHF/SGD instrument_id: "CHFSGD" instrument_type: "forex" +Name: USD/MXN instrument_id: "USDMXN" instrument_type: "forex" +Name: EUR/HUF instrument_id: "EURHUF" instrument_type: "forex" +Name: GBP/CAD instrument_id: "GBPCAD" instrument_type: "forex" +Name: USD/TRY instrument_id: "USDTRY" instrument_type: "forex" +Name: USD/JPY instrument_id: "USDJPY" instrument_type: "forex" +Name: EUR/USD instrument_id: "EURUSD" instrument_type: "forex" +Name: AUD/SEK instrument_id: "AUDSEK" instrument_type: "forex" +Name: CHF/NOK instrument_id: "CHFNOK" instrument_type: "forex" +Name: USD/PLN instrument_id: "USDPLN" instrument_type: "forex" +Name: USD/HUF instrument_id: "USDHUF" instrument_type: "forex" +Name: CHF/JPY instrument_id: "CHFJPY" instrument_type: "forex" +Name: GBP/ILS instrument_id: "GBPILS" instrument_type: "forex" +Name: NZD/JPY instrument_id: "NZDJPY" instrument_type: "forex" +Name: CHF/TRY instrument_id: "CHFTRY" instrument_type: "forex" +Name: CAD/JPY instrument_id: "CADJPY" instrument_type: "forex" +Name: USD/RUB instrument_id: "USDRUB" instrument_type: "forex" +Name: SGD/JPY instrument_id: "SGDJPY" instrument_type: "forex" +Name: GBP/USD instrument_id: "GBPUSD" instrument_type: "forex" +Name: CAD/PLN instrument_id: "CADPLN" instrument_type: "forex" +Name: DKK/SGD instrument_id: "DKKSGD" instrument_type: "forex" +Name: NZD/SGD instrument_id: "NZDSGD" instrument_type: "forex" +Name: AUD/JPY instrument_id: "AUDJPY" instrument_type: "forex" +Name: NOK/JPY instrument_id: "NOKJPY" instrument_type: "forex" +Name: PLN/SEK instrument_id: "PLNSEK" instrument_type: "forex" +Name: USD/SGD instrument_id: "USDSGD" instrument_type: "forex" +Name: GBP/MXN instrument_id: "GBPMXN" instrument_type: "forex" +Name: USD/CAD instrument_id: "USDCAD" instrument_type: "forex" +Name: SEK/DKK instrument_id: "SEKDKK" instrument_type: "forex" +Name: DKK/PLN instrument_id: "DKKPLN" instrument_type: "forex" +Name: CAD/MXN instrument_id: "CADMXN" instrument_type: "forex" +Name: GBP/TRY instrument_id: "GBPTRY" instrument_type: "forex" +Name: EUR/SGD instrument_id: "EURSGD" instrument_type: "forex" +Name: NZD/ZAR instrument_id: "NZDZAR" instrument_type: "forex" +Name: EUR/CZK instrument_id: "EURCZK" instrument_type: "forex" +Name: EUR/JPY instrument_id: "EURJPY" instrument_type: "forex" +Name: CAD/CHF instrument_id: "CADCHF" instrument_type: "forex" +Name: USD/INR instrument_id: "USDINR" instrument_type: "forex" +Name: USD/BRL instrument_id: "USDBRL" instrument_type: "forex" +Name: USD/NOK instrument_id: "USDNOK" instrument_type: "forex" +Name: USD/DKK instrument_id: "USDDKK" instrument_type: "forex" +Name: China Large-Cap ETF instrument_id: "FXI" instrument_type: "cfd" +Name: IBM Corporation instrument_id: "IBM:US" instrument_type: "cfd" +Name: IDEXX Laboratories instrument_id: "IDXX" instrument_type: "cfd" +Name: Siemens instrument_id: "SIED-CHIX" instrument_type: "cfd" +Name: Roche instrument_id: "ROGZ-CHIX" instrument_type: "cfd" +Name: Airbus SE instrument_id: "AIRP-CHIX" instrument_type: "cfd" +Name: AbbVie instrument_id: "ABBV:US" instrument_type: "cfd" +Name: Concho Resources instrument_id: "CXO:US" instrument_type: "cfd" +Name: Verizon instrument_id: "VZ:US" instrument_type: "cfd" +Name: Unilever instrument_id: "ULVRL-CHIX" instrument_type: "cfd" +Name: Lockheed Martin instrument_id: "LMT:US" instrument_type: "cfd" +Name: NextEra Energy instrument_id: "NEE:US" instrument_type: "cfd" +Name: US 100 instrument_id: "USNDAQ100" instrument_type: "cfd" +Name: Entergy instrument_id: "ETR:US" instrument_type: "cfd" +Name: QQQ Trust, Series 1 instrument_id: "QQQ" instrument_type: "cfd" +Name: DTE Energy instrument_id: "DTE:US" instrument_type: "cfd" +Name: Tesco instrument_id: "TSCOL-CHIX" instrument_type: "cfd" +Name: First Solar instrument_id: "FSLR:US" instrument_type: "cfd" +Name: Pfizer instrument_id: "PFE:US" instrument_type: "cfd" +Name: Eastman Chemical instrument_id: "EMN:US" instrument_type: "cfd" +Name: JP Morgan Chase instrument_id: "JPM" instrument_type: "cfd" +Name: Google instrument_id: "GOOGLE" instrument_type: "cfd" +Name: Fastenal instrument_id: "FAST:US" instrument_type: "cfd" +Name: HSBC Holdings PLC instrument_id: "HSBAL-CHIX" instrument_type: "cfd" +Name: DaVita instrument_id: "DVA:US" instrument_type: "cfd" +Name: Utilities SPDR instrument_id: "XLU" instrument_type: "cfd" +Name: Federal Realty instrument_id: "FRT:US" instrument_type: "cfd" +Name: Commerzbank instrument_id: "CBKD-CHIX" instrument_type: "cfd" +Name: Amgen instrument_id: "AMGN:US" instrument_type: "cfd" +Name: Silver instrument_id: "XAGUSD" instrument_type: "cfd" +Name: Resmed Inc instrument_id: "RMD" instrument_type: "cfd" +Name: Equifax instrument_id: "EFX:US" instrument_type: "cfd" +Name: Digital Realty Trust instrument_id: "DLR:US" instrument_type: "cfd" +Name: Adobe Systems instrument_id: "ADBE:US" instrument_type: "cfd" +Name: Autodesk instrument_id: "ADSK:US" instrument_type: "cfd" +Name: Barclays instrument_id: "BARCL-CHIX" instrument_type: "cfd" +Name: Spotify instrument_id: "SPOT" instrument_type: "cfd" +Name: Standard Chartered instrument_id: "STANL-CHIX" instrument_type: "cfd" +Name: Alibaba instrument_id: "ALIBABA" instrument_type: "cfd" +Name: Freeport-McMoRan instrument_id: "FCX:US" instrument_type: "cfd" +Name: Delta Air Lines instrument_id: "DAL:US" instrument_type: "cfd" +Name: Materials Select Sector SPDR instrument_id: "XLB" instrument_type: "cfd" +Name: Amazon instrument_id: "AMAZON" instrument_type: "cfd" +Name: Semiconductor ETF instrument_id: "SMH" instrument_type: "cfd" +Name: S&P 500 ETF instrument_id: "SPY" instrument_type: "cfd" +Name: Caterpillar instrument_id: "CAT:US" instrument_type: "cfd" +Name: US 30 instrument_id: "US30" instrument_type: "cfd" +Name: ConocoPhillips instrument_id: "COP:US" instrument_type: "cfd" +Name: Flowserve instrument_id: "FLS:US" instrument_type: "cfd" +Name: Goldman Sachs instrument_id: "GS" instrument_type: "cfd" +Name: AU 200 instrument_id: "AUS200" instrument_type: "cfd" +Name: Edison instrument_id: "EIX:US" instrument_type: "cfd" +Name: Crude Oil WTI instrument_id: "USOUSD" instrument_type: "cfd" +Name: MSCI Mexico ETF instrument_id: "EWW" instrument_type: "cfd" +Name: General Electric instrument_id: "GE" instrument_type: "cfd" +Name: Micron Technology instrument_id: "MU:US" instrument_type: "cfd" +Name: Telefónica instrument_id: "TEFE-CHIX" instrument_type: "cfd" +Name: Procter & Gamble instrument_id: "PG:US" instrument_type: "cfd" +Name: Accenture instrument_id: "ACN:US" instrument_type: "cfd" +Name: Costco instrument_id: "COST:US" instrument_type: "cfd" +Name: Medtronic instrument_id: "MDT:US" instrument_type: "cfd" +Name: MSCI Emerging Markets ETF instrument_id: "EEM" instrument_type: "cfd" +Name: Expeditors instrument_id: "EXPD:US" instrument_type: "cfd" +Name: Facebook instrument_id: "FACEBOOK" instrument_type: "cfd" +Name: Tesla instrument_id: "TESLA" instrument_type: "cfd" +Name: Merck instrument_id: "MRKD-CHIX" instrument_type: "cfd" +Name: FirstEnergy instrument_id: "FE:US" instrument_type: "cfd" +Name: Altria instrument_id: "MO:US" instrument_type: "cfd" +Name: Core MSCI Emerging Markets instrument_id: "IEMG" instrument_type: "cfd" +Name: AS Roma instrument_id: "ASRM" instrument_type: "cfd" +Name: Bayer instrument_id: "BAYND-CHIX" instrument_type: "cfd" +Name: Continental instrument_id: "COND-CHIX" instrument_type: "cfd" +Name: Qualcomm instrument_id: "QCOM:US" instrument_type: "cfd" +Name: Vodafone Group PLC instrument_id: "VODL-CHIX" instrument_type: "cfd" +Name: Visa instrument_id: "V:US" instrument_type: "cfd" +Name: AT&T instrument_id: "T:US" instrument_type: "cfd" +Name: FedEx instrument_id: "FDX:US" instrument_type: "cfd" +Name: Frontier Communications instrument_id: "FTR:US" instrument_type: "cfd" +Name: Teleflex Inc instrument_id: "TFX" instrument_type: "cfd" +Name: Twitter Inc instrument_id: "TWITTER" instrument_type: "cfd" +Name: Royal Bank of Scotland instrument_id: "RBSL-CHIX" instrument_type: "cfd" +Name: S&P Oil & Gas Explor & Product instrument_id: "XOP" instrument_type: "cfd" +Name: Deutsche Post instrument_id: "DPWD-CHIX" instrument_type: "cfd" +Name: General Motors instrument_id: "GM" instrument_type: "cfd" +Name: US 500 instrument_id: "USSPX500" instrument_type: "cfd" +Name: Bank of America instrument_id: "BAC:US" instrument_type: "cfd" +Name: Nike instrument_id: "NIKE" instrument_type: "cfd" +Name: Darden Restaurants instrument_id: "DRI:US" instrument_type: "cfd" +Name: UBS instrument_id: "UBSGZ-CHIX" instrument_type: "cfd" +Name: Discover Financial Services instrument_id: "DFS:US" instrument_type: "cfd" +Name: Emerson Electric instrument_id: "EMR:US" instrument_type: "cfd" +Name: Advance Auto Parts instrument_id: "AAP:US" instrument_type: "cfd" +Name: Duke Realty Corp instrument_id: "DRE" instrument_type: "cfd" +Name: Rolls-Royce instrument_id: "RRL-CHIX" instrument_type: "cfd" +Name: Wells Fargo instrument_id: "WFC:US" instrument_type: "cfd" +Name: CitiGroup instrument_id: "CITI" instrument_type: "cfd" +Name: Cisco Systems instrument_id: "CISCO" instrument_type: "cfd" +Name: Apple instrument_id: "APPLE" instrument_type: "cfd" +Name: MSCI Japan ETF instrument_id: "EWJ" instrument_type: "cfd" +Name: F5 Networks instrument_id: "FFIV:US" instrument_type: "cfd" +Name: Heinz instrument_id: "KHC:US" instrument_type: "cfd" +Name: British American Tobacco instrument_id: "BATSL-CHIX" instrument_type: "cfd" +Name: Nvidia instrument_id: "NVDA:US" instrument_type: "cfd" +Name: E.ON instrument_id: "EOAND-CHIX" instrument_type: "cfd" +Name: Citrix Systems instrument_id: "CTXS:US" instrument_type: "cfd" +Name: UK 100 instrument_id: "UK100" instrument_type: "cfd" +Name: BBVA instrument_id: "BBVAE-CHIX" instrument_type: "cfd" +Name: Philip Morris Int. instrument_id: "PM:US" instrument_type: "cfd" +Name: Consolidated Edison instrument_id: "ED:US" instrument_type: "cfd" +Name: Netflix instrument_id: "NFLX:US" instrument_type: "cfd" +Name: Allianz instrument_id: "ALVD-CHIX" instrument_type: "cfd" +Name: FR 40 instrument_id: "FRANCE40" instrument_type: "cfd" +Name: Schlumberger instrument_id: "SLB:US" instrument_type: "cfd" +Name: Platinum instrument_id: "XPTUSD" instrument_type: "cfd" +Name: Consumer Discretionary SPDR instrument_id: "XLY" instrument_type: "cfd" +Name: BHP Billiton instrument_id: "BLTL-CHIX" instrument_type: "cfd" +Name: Credit Suisse instrument_id: "CSGNZ-CHIX" instrument_type: "cfd" +Name: Activision Blizzard instrument_id: "ATVI:US" instrument_type: "cfd" +Name: Hasbro instrument_id: "HAS:US" instrument_type: "cfd" +Name: Bristol-Myers Squibb instrument_id: "BMY:US" instrument_type: "cfd" +Name: Equity Residential instrument_id: "EQR:US" instrument_type: "cfd" +Name: Suncor Energy Inc. instrument_id: "SU" instrument_type: "cfd" +Name: Cintas instrument_id: "CTAS:US" instrument_type: "cfd" +Name: Morgan Stanley instrument_id: "MORSTAN" instrument_type: "cfd" +Name: Devon Energy instrument_id: "DVN:US" instrument_type: "cfd" +Name: Dun & Bradstreet instrument_id: "DNB:US" instrument_type: "cfd" +Name: S&P Metals & Mining ETF instrument_id: "XME" instrument_type: "cfd" +Name: SP 35 instrument_id: "SPAIN35" instrument_type: "cfd" +Name: Boeing instrument_id: "BA:US" instrument_type: "cfd" +Name: Ferrari instrument_id: "FERRARI" instrument_type: "cfd" +Name: US Real Estate ETF instrument_id: "IYR" instrument_type: "cfd" +Name: Dover instrument_id: "DOV:US" instrument_type: "cfd" +Name: Honeywell instrument_id: "HON:US" instrument_type: "cfd" +Name: Marks & Spencer instrument_id: "MKSL-CHIX" instrument_type: "cfd" +Name: BMW instrument_id: "BMWD-CHIX" instrument_type: "cfd" +Name: HK 50 instrument_id: "HONGKONG50" instrument_type: "cfd" +Name: PayPal instrument_id: "PYPL:US" instrument_type: "cfd" +Name: Alcoa instrument_id: "AA:US" instrument_type: "cfd" +Name: CVS Health instrument_id: "CVS:US" instrument_type: "cfd" +Name: iShares Russell 2000 ETF instrument_id: "IWM" instrument_type: "cfd" +Name: Walgreens Boots All. instrument_id: "WBA:US" instrument_type: "cfd" +Name: ANSYS instrument_id: "ANSS" instrument_type: "cfd" +Name: Energy SPDR instrument_id: "XLE" instrument_type: "cfd" +Name: Wheat instrument_id: "W1" instrument_type: "cfd" +Name: Ecolab instrument_id: "ECL:US" instrument_type: "cfd" +Name: Starbucks instrument_id: "SBUX:US" instrument_type: "cfd" +Name: Heineken Holding NV instrument_id: "HEIOA-CHIX" instrument_type: "cfd" +Name: Quest Diagnostics instrument_id: "DGX:US" instrument_type: "cfd" +Name: easyJet instrument_id: "EZJL-CHIX" instrument_type: "cfd" +Name: JP 225 instrument_id: "JAPAN225" instrument_type: "cfd" +Name: AMD instrument_id: "AMD" instrument_type: "cfd" +Name: Colgate-Palmolive instrument_id: "CL:US" instrument_type: "cfd" +Name: Salesforce.com instrument_id: "CRM:US" instrument_type: "cfd" +Name: Technology SPDR instrument_id: "XLK" instrument_type: "cfd" +Name: Dropbox instrument_id: "DBX" instrument_type: "cfd" +Name: Fidelity National Information Services instrument_id: "FIS:US" instrument_type: "cfd" +Name: 3M Company instrument_id: "MMM:US" instrument_type: "cfd" +Name: Daimler instrument_id: "DAID-CHIX" instrument_type: "cfd" +Name: Baidu instrument_id: "BAIDU" instrument_type: "cfd" +Name: Wal-Mart Stores instrument_id: "WMT:US" instrument_type: "cfd" +Name: Exxon Mobil instrument_id: "XOM:US" instrument_type: "cfd" +Name: Raytheon instrument_id: "RTN:US" instrument_type: "cfd" +Name: eBay instrument_id: "EBAY:US" instrument_type: "cfd" +Name: Discovery – Class A instrument_id: "DISCA:US" instrument_type: "cfd" +Name: Oil Services ETF instrument_id: "OIH" instrument_type: "cfd" +Name: Microsoft instrument_id: "MSFT" instrument_type: "cfd" +Name: Chevron instrument_id: "CVX:US" instrument_type: "cfd" +Name: Lloyds Banking Group PLC instrument_id: "LLOYL-CHIX" instrument_type: "cfd" +Name: 20+ Year Treasury Bond ETF instrument_id: "TLT" instrument_type: "cfd" +Name: Adidas instrument_id: "ADSD-CHIX" instrument_type: "cfd" +Name: Comcast – Class A instrument_id: "CMCSA:US" instrument_type: "cfd" +Name: Danaher instrument_id: "DHR:US" instrument_type: "cfd" +Name: Align Technology instrument_id: "ALGN" instrument_type: "cfd" +Name: Volkswagen instrument_id: "VOW3D-CHIX" instrument_type: "cfd" +Name: Fiserv instrument_id: "FISV:US" instrument_type: "cfd" +Name: L'Oreal instrument_id: "ORP-CHIX" instrument_type: "cfd" +Name: D. R. Horton instrument_id: "DHI:US" instrument_type: "cfd" +Name: Deutsche Telekom instrument_id: "DTED-CHIX" instrument_type: "cfd" +Name: Gold Miners ETF instrument_id: "GDX" instrument_type: "cfd" +Name: Gold instrument_id: "XAUUSD" instrument_type: "cfd" +Name: Extra Space Storage instrument_id: "EXR:US" instrument_type: "cfd" +Name: Manchester United instrument_id: "MANU" instrument_type: "cfd" +Name: Banco Santander instrument_id: "SANE-CHIX" instrument_type: "cfd" +Name: Abbott Labs instrument_id: "ABT:US" instrument_type: "cfd" +Name: FMC Corporation instrument_id: "FMC:US" instrument_type: "cfd" +Name: Snapchat instrument_id: "SNAP" instrument_type: "cfd" +Name: ThyssenKrupp instrument_id: "TKAD-CHIX" instrument_type: "cfd" +Name: GER 30 instrument_id: "GERMANY30" instrument_type: "cfd" +Name: Fortune Brands Home & Security instrument_id: "FBHS:US" instrument_type: "cfd" +Name: Crude Oil Brent instrument_id: "UKOUSD" instrument_type: "cfd" +Name: Coca Cola instrument_id: "COKE" instrument_type: "cfd" +Name: Essex Property Trust instrument_id: "ESS:US" instrument_type: "cfd" +Name: Wm Morrison Supermarkets instrument_id: "MRWL-CHIX" instrument_type: "cfd" +Name: Gilead Sciences instrument_id: "GILD:US" instrument_type: "cfd" +Name: MasterCard instrument_id: "MA:US" instrument_type: "cfd" +Name: Nestlé instrument_id: "NESNZ-CHIX" instrument_type: "cfd" +Name: CenturyLink instrument_id: "CTL:US" instrument_type: "cfd" +Name: Deutsche Bank instrument_id: "DBKD-CHIX" instrument_type: "cfd" +Name: T-Mobile US, Inc. instrument_id: "TMUS" instrument_type: "cfd" +Name: McDonald's instrument_id: "MCDON" instrument_type: "cfd" +Name: Diamond Offshore Drilling instrument_id: "DO:US" instrument_type: "cfd" +Name: Intel instrument_id: "INTEL" instrument_type: "cfd" +Name: Fifth Third Bank instrument_id: "FITB:US" instrument_type: "cfd" +Name: Best Buy instrument_id: "BBY:US" instrument_type: "cfd" +Name: EQT Corporation instrument_id: "EQT:US" instrument_type: "cfd" +Name: BP PLC instrument_id: "BPL-CHIX" instrument_type: "cfd" +Name: E-Trade instrument_id: "ETFC:US" instrument_type: "cfd" +Name: Stryker instrument_id: "SYK:US" instrument_type: "cfd" +Name: Dow Jones Industrial Average ETF instrument_id: "DIA" instrument_type: "cfd" +Name: NEM ×20 instrument_id: "XEMUSD-L" instrument_type: "crypto" +Name: Ethereum instrument_id: "ETHUSD" instrument_type: "crypto" +Name: EOS ×20 instrument_id: "EOSUSD-L" instrument_type: "crypto" +Name: Qtum instrument_id: "QTMUSD" instrument_type: "crypto" +Name: EOS instrument_id: "EOSUSD" instrument_type: "crypto" +Name: Bitcoin Cash ×20 instrument_id: "BCHUSD-L" instrument_type: "crypto" +Name: Bitcoin instrument_id: "BTCUSD" instrument_type: "crypto" +Name: TRON instrument_id: "TRXUSD" instrument_type: "crypto" +Name: Ripple ×20 instrument_id: "XRPUSD-L" instrument_type: "crypto" +Name: Stellar ×20 instrument_id: "XLMUSD-L" instrument_type: "crypto" +Name: Ethereum ×50 instrument_id: "ETHUSD-L" instrument_type: "crypto" +Name: ZCash instrument_id: "ZECUSD" instrument_type: "crypto" +Name: Litecoin instrument_id: "LTCUSD" instrument_type: "crypto" +Name: Bitcoin Cash instrument_id: "BCHUSD" instrument_type: "crypto" +Name: Bitcoin ×100 instrument_id: "BTCUSD-L" instrument_type: "crypto" +Name: OmiseGo instrument_id: "OMGUSD" instrument_type: "crypto" +Name: TRON ×50 instrument_id: "TRXUSD-L" instrument_type: "crypto" +Name: Cardano ×20 instrument_id: "ADAUSD-L" instrument_type: "crypto" +Name: Dash instrument_id: "DSHUSD" instrument_type: "crypto" +Name: Litecoin ×20 instrument_id: "LTCUSD-L" instrument_type: "crypto" +Name: Ripple instrument_id: "XRPUSD" instrument_type: "crypto" \ No newline at end of file diff --git a/docs/en/index.html b/docs/en/index.html new file mode 100644 index 00000000..cfc098dc --- /dev/null +++ b/docs/en/index.html @@ -0,0 +1,1097 @@ + + + + + + + + + + + + + + + + + + + + + + Get Start - iqoptionapi document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + +
    + +
    + +
    + + + + + + + + +
    +
    Helping who helps you
    +

    + Support this work +

    + + Donation + +
    + + + + +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    + + +
    +
    +
    + + +
    +
    +
    + + +
    +
    + + + + + + + + + + +

    Get start

    +

    Install iqoptionapi

    +

    You can download the source code and run this

    +

    python setup.py install
    +
    +or install using (you need git installed): +
    pip install -U git+git://github.com/iqoptionapi/iqoptionapi.git
    +

    +

    little sample

    +
    import time
    +from iqoptionapi.stable_api import IQ_Option
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +goal="EURUSD"
    +print("get candles")
    +print(Iq.get_candles(goal,60,111,time.time()))
    +
    +

    Import

    +
    from iqoptionapi.stable_api import IQ_Option
    +
    +

    Login

    +

    Iq.connect() will return (check,reason)

    +

    if connect sucess return True,None

    +

    if connect fail return False,reason

    +
    from iqoptionapi.stable_api import IQ_Option
    +import logging
    +
    +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +Iq=IQ_Option("email","password")
    +check, reason=Iq.connect()#connect to iqoption
    +print(check, reason)
    +
    +

    Debug mode on

    +
    import logging
    +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +
    +

    Connect&Check connect

    +

    some time connect will close so this way can check connect and reconnect

    +

    try close your network and restart network in this sample

    +
    from iqoptionapi.stable_api import IQ_Option
    +error_password="""{"code":"invalid_credentials","message":"You entered the wrong credentials. Please check that the login/password is correct."}"""
    +iqoption = IQ_Option("email", "password")
    +check,reason=iqoption.connect()
    +if check:
    +    print("Start your robot")
    +    #if see this you can close network for test
    +    while True:
    +        if iqoption.check_connect()==False:#detect the websocket is close
    +            print("try reconnect")
    +            check,reason=iqoption.connect()
    +            if check:
    +                print("Reconnect successfully")
    +            else:
    +                if reason==error_password:
    +                    print("Error Password")
    +                else:
    +                    print("No Network")
    +
    +else:
    +
    +    if reason=="[Errno -2] Name or service not known":
    +        print("No Network")
    +    elif reason==error_password:
    +        print("Error Password")
    +
    +

    set_session

    +

    Default User-Agent is "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36"

    +
    from iqoptionapi.stable_api import IQ_Option
    +import logging
    +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +
    +Iq=IQ_Option("email","password")
    +
    +#Default is "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36"
    +
    +header={"User-Agent":r"Mozilla/5.0 (X11; Linux x86_64; rv:70.0) Gecko/20100101 Firefox/70.0"}
    +cookie={"Iq":"GOOD"}
    +
    +Iq.set_session(header,cookie)
    +
    +Iq.connect()#connect to iqoption
    +
    +

    Check version

    +
    from iqoptionapi.stable_api import IQ_Option
    +print(IQ_Option.__version__)
    +
    +

    Check connect

    +

    return True/False

    +
    print(Iq.check_connect())
    +
    +

    Reconnect

    +
    Iq.connect()
    +
    +

    time

    +

    get_server_timestamp +the get_server_timestamp time is sync with iqoption

    +
    Iq.get_server_timestamp()
    +
    + + + + + + + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/en/techinical analysis/image/Oscillators.JPG b/docs/en/techinical analysis/image/Oscillators.JPG new file mode 100644 index 00000000..77e72115 Binary files /dev/null and b/docs/en/techinical analysis/image/Oscillators.JPG differ diff --git a/docs/en/techinical analysis/image/info.jpg b/docs/en/techinical analysis/image/info.jpg new file mode 100644 index 00000000..92af60ee Binary files /dev/null and b/docs/en/techinical analysis/image/info.jpg differ diff --git a/docs/en/techinical analysis/image/moving-average.JPG b/docs/en/techinical analysis/image/moving-average.JPG new file mode 100644 index 00000000..171e3946 Binary files /dev/null and b/docs/en/techinical analysis/image/moving-average.JPG differ diff --git a/docs/en/techinical analysis/image/pivots.JPG b/docs/en/techinical analysis/image/pivots.JPG new file mode 100644 index 00000000..34039c41 Binary files /dev/null and b/docs/en/techinical analysis/image/pivots.JPG differ diff --git a/docs/en/techinical analysis/image/technical-analysis.jpg b/docs/en/techinical analysis/image/technical-analysis.jpg new file mode 100644 index 00000000..1c57e334 Binary files /dev/null and b/docs/en/techinical analysis/image/technical-analysis.jpg differ diff --git a/docs/en/techinical analysis/index.html b/docs/en/techinical analysis/index.html new file mode 100644 index 00000000..f6e93ea7 --- /dev/null +++ b/docs/en/techinical analysis/index.html @@ -0,0 +1,955 @@ + + + + + + + + + + + + + + + + + + + + + + Techincal Analysis - iqoptionapi document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + +
    + +
    + +
    + + + + + + + + +
    +
    Helping who helps you
    +

    + Support this work +

    + + Donation + +
    + + + + +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    + + +
    +
    +
    + + +
    +
    +
    + + +
    +
    + + + + + + + + + + +

    Techincal Analysis

    + +

    Tecnical analysis

    +

    It is available in same assets and you can check it on asset info:

    +

    asset Info

    +

    if there is a session like this you can get data:

    +

    NOTE: If there is no techinical Analysis on asset you want, you can't use it.

    +

    techinical Analysis menu

    +

    There are some indicators available:

    +

    Pivots

    +

    Pivots

    +

    Oscillators

    +

    Oscillators

    +

    Moving Averages

    +

    Moving Averages

    +

    How to use:

    +
    asset="GBPUSD"
    +indicators = Iq.get_technical_indicators(asset)
    +print(indicators)
    +
    +

    if assets doesn't contains technical Analysis it returns:

    +
    {
    +  "code": "no_technical_indicator_available",
    +  "message": "Active is not supported: active id 'ACTIVE_ID_PASSED'"
    +}
    +
    +

    If there is something:

    +

    NOTE: YOU MUST TO ANALYSE THE PRINT OUTPUT

    +
    [
    +  {
    +    "action": "hold",
    +    "candle_size": 60,
    +    "group": "OSCILLATORS",
    +    "name": "Relative Strength Index (14)",
    +    "value": 59.168583
    +  },
    +  {
    +    "action": "hold",
    +    "candle_size": 60,
    +    "group": "PIVOTS",
    +    "name": "Classic s3",
    +    "value": 1.057292
    +  }
    +  .....
    +]
    +
    + + + + + + + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/es/account/account/index.html b/docs/es/account/account/index.html new file mode 100644 index 00000000..9e59f10e --- /dev/null +++ b/docs/es/account/account/index.html @@ -0,0 +1,1247 @@ + + + + + + + + + + + + + + + + + + + + + + Cuenta - iqoptionapi document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + +
    + +
    + +
    + + + + + + + + + +
    + + Traduccion: Dimitri + +
    Ayudando a quien te ayuda.
    +

    + Apoya este proyecto con una donación +

    + + Donación + +
    + + + +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    + + + + + +
    +
    + + + + + + + + + + +

    Cuenta

    +

    get_balance()

    +

    Obtén el saldo de tu cuenta

    +
    Iq.get_balance()
    +
    +

    get_balance_v2()

    +

    Obtén el saldo de tu cuenta con MÁS PRECISIÓN

    +
    Iq.get_balance_v2()
    +
    +

    get_currency()

    +

    Comprobar que divisa utiliza tu cuenta (USD, EUR...)

    +
    Iq.get_currency()
    +
    +

    reset_practice_balance()

    +

    Recargar el saldo de tu cuenta de práctica a $10000

    +
    from iqoptionapi.stable_api import IQ_Option
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +print(Iq.reset_practice_balance())
    +
    +

    Cambiar tu cuenta entre los smodos Real/Práctica

    +

    MODE="PRACTICE"/"REAL" +

    Iq.change_balance(MODE)
    +                        #MODE: "PRACTICE"/"REAL"
    +

    +

    obtener la Estratégia de Otra Gente

    +

    Ejemplo

    +
    from iqoptionapi.stable_api import IQ_Option
    +import logging
    +import time
    +
    +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +while_run_time=10
    +
    +#Para opciones digitales
    +name="live-deal-digital-option" #"live-deal-binary-option-placed"/"live-deal-digital-option"
    +active="EURUSD"
    +_type="PT1M"#"PT1M"/"PT5M"/"PT15M"
    +buffersize=10#
    +print("_____________subscribe_live_deal_______________")
    +Iq.subscribe_live_deal(name,active,_type,buffersize)
    +
    +
    +start_t=time.time()
    +while True:
    +    data=(Iq.get_live_deal(name,active,_type))
    +    print("__For_digital_option__ data size:"+str(len(data)))
    +    print(data)
    +    print("\n\n")
    +    time.sleep(1)
    +    if time.time()-start_t>while_run_time:
    +        break
    +print("_____________unscribe_live_deal_______________")
    +Iq.unscribe_live_deal(name,active,_type)
    +
    +
    +#Para opciones binariass
    +name="live-deal-binary-option-placed"
    +active="EURUSD"
    +_type="turbo"#"turbo"/"binary"
    +buffersize=10#
    +print("_____________subscribe_live_deal_______________")
    +Iq.subscribe_live_deal(name,active,_type,buffersize)
    +
    +start_t=time.time()
    +while True:
    +    data=(Iq.get_live_deal(name,active,_type))
    +    print("__For_binary_option__ data size:"+str(len(data)))
    +    print(data)
    +    print("\n\n")
    +    time.sleep(1)
    +    if time.time()-start_t>while_run_time:
    +        break
    +print("_____________unscribe_live_deal_______________")
    +Iq.unscribe_live_deal(name,active,_type)
    +
    +

    subscribe_live_deal

    +

    Suscribirse a un acuerdo en vivo

    +
    Iq.subscribe_live_deal(name,active,_type,buffersize)
    +
    +

    unscribe_live_deal

    +

    Cancelar suscripción al acuerdo en vivo

    +
    Iq.unscribe_live_deal(name,active,_type)
    +
    +

    get_live_deal

    +

    Obtener el acuerdo en vivo

    +
    Iq.get_live_deal(name,active,_type)
    +
    +

    pop_live_deal

    +
    Iq.pop_live_deal(name,active,_type)
    +
    +

    get Other people detail

    +

    Obtener los detalles de otra gente

    +

    Ejemplo

    +
    from iqoptionapi.stable_api import IQ_Option
    +import logging
    +import time
    +
    +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +while_run_time=10
    +
    +#Para opciones binarias
    +name="live-deal-binary-option-placed"
    +active="EURUSD"
    +_type="turbo"#"turbo"/"binary"
    +buffersize=10#
    +print("_____________subscribe_live_deal_______________")
    +print("\n\n")
    +Iq.subscribe_live_deal(name,active,_type,buffersize)
    +
    +last_trade_data=Iq.get_live_deal(name,active,_type)[0]
    +
    +user_id=last_trade_data["user_id"]
    +counutry_id=last_trade_data["country_id"]
    +print("_______get_user_profile_client__________")
    +print(Iq.get_user_profile_client(user_id))
    +pro_data=Iq.get_user_profile_client(user_id)
    +print("\n\n")
    +
    +print("___________request_leaderboard_userinfo_deals_client______")
    +print(Iq.request_leaderboard_userinfo_deals_client(user_id,counutry_id))
    +user_data=Iq.request_leaderboard_userinfo_deals_client(user_id,counutry_id)
    +worldwide=user_data["result"]["entries_by_country"]["0"]["position"]
    +profit=user_data["result"]["entries_by_country"]["0"]["score"]
    +print("\n")
    +print("user_name:"+pro_data["user_name"])
    +print("Esta semana en todo el mundo: "+str(worldwide))
    +print("Esta semana beneficios en bruto: "+str(profit))
    +print("\n\n")
    +
    +print("___________get_users_availability____________")
    +print(Iq.get_users_availability(user_id))
    +print("\n\n")
    +print("_____________unscribe_live_deal_______________")
    +Iq.unscribe_live_deal(name,active,_type)
    +
    +

    get_user_profile_client()

    +

    Obtener el nombre de usuario y imagen

    +
    Iq.get_user_profile_client(user_id)
    +
    +

    request_leaderboard_userinfo_deals_client()

    +

    Obtener los detalles del cliente

    +
    Iq.request_leaderboard_userinfo_deals_client(user_id,counutry_id)
    +
    +

    get_users_availability()

    +
    Iq.get_users_availability(user_id)
    +
    + + + + + + + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/es/all/all/index.html b/docs/es/all/all/index.html new file mode 100644 index 00000000..d5d44935 --- /dev/null +++ b/docs/es/all/all/index.html @@ -0,0 +1,1460 @@ + + + + + + + + + + + + + + + + + + + + + + Para todo - iqoptionapi document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + +
    + +
    + +
    + + + + + + + + + +
    + + Traduccion: Dimitri + +
    Ayudando a quien te ayuda.
    +

    + Apoya este proyecto con una donación +

    + + Donación + +
    + + + +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    + + + + + +
    +
    + + + + + + + + + + +

    Para todo

    +

    Esta api puede trabajar con option&digital&Forex&Stock&Commodities&Crypto&ETFs

    +

    Comprobar si un asset está abierto o no

    +

    tener cuidado con get_all_open_time() es demasiado pesado para la conexión.

    +

    get_all_open_time() devuelve un DICT

    +

    "cfd" incluye,Commodities,ETFs asset

    +

    DICT["forex"/"cfd"/"crypto"/"digital"/"turbo"/"binary"][Asset Name]["open"]

    +

    devolverá True/False

    +
    from iqoptionapi.stable_api import IQ_Option
    +import logging
    +import random
    +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +ALL_Asset=Iq.get_all_open_time()
    +
    +#Comprobar si está abierto o no
    +print(ALL_Asset["forex"]["EURUSD"]["open"])
    +print(ALL_Asset["cfd"]["FACEBOOK"]["open"])#Stock,Commodities,ETFs
    +print(ALL_Asset["crypto"]["BTCUSD-L"]["open"])
    +print(ALL_Asset["digital"]["EURUSD-OTC"]["open"])
    +
    +#La binarias tienes doss tipos -> type:"turbo","binary"
    +print(ALL_Asset["turbo"]["EURUSD-OTC"]["open"])
    +print(ALL_Asset["binary"]["EURUSD-OTC"]["open"])
    +
    +
    +#!!!! Excepciój ""
    +print(ALL_Asset["binary"]["not exist asset"]["open"])#Devolverá "{}" a None de un dict
    +
    +#!!!!Imprimir todo!!!
    +for type_name, data in ALL_Asset.items():
    +    for Asset,value in data.items():
    +        print(type_name,Asset,value["open"])
    +
    +

    Ver todos los nombress de lo Activos (ACTIVES)

    +
    print(Iq.get_all_ACTIVES_OPCODE())
    +
    +

    Actualizar OPCODE de los Activos (ACTIVES)

    +
    Iq.update_ACTIVES_OPCODE()
    +
    +

    get_async_order()

    +
    from iqoptionapi.stable_api import IQ_Option
    +import logging
    +import time
    +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +ACTIVES="EURUSD"
    +duration=1#minute 1 or 5
    +amount=1
    +action="call"#put
    +
    +print("__Para_Opciones_Binarias__")
    +_,id=Iq.buy(amount,ACTIVES,action,duration)
    +while Iq.get_async_order(id)==None:
    +    pass
    +print(Iq.get_async_order(id))
    +print("\n\n")
    +
    +print("__Para_Opciones_Digitales__spot")
    +_,id=Iq.buy_digital_spot(ACTIVES,amount,action,duration)
    +while Iq.get_async_order(id)==None:
    +    pass
    +order_data=Iq.get_async_order(id)
    +print(Iq.get_async_order(id))
    +print("\n\n")
    +
    +print("__Para_Forex_Mercado_MateriasPrimas_Crypto_ETFs")
    +instrument_type="crypto"
    +instrument_id="BTCUSD"
    +side="buy"
    +amount=1.23
    +leverage=3
    +type="market"
    +limit_price=None
    +stop_price=None
    +stop_lose_kind="percent"
    +stop_lose_value=95
    +take_profit_kind=None
    +take_profit_value=None
    +use_trail_stop=True
    +auto_margin_call=False
    +use_token_for_commission=False
    +check,id=Iq.buy_order(instrument_type=instrument_type, instrument_id=instrument_id,
    +            side=side, amount=amount,leverage=leverage,
    +            type=type,limit_price=limit_price, stop_price=stop_price,
    +            stop_lose_value=stop_lose_value, stop_lose_kind=stop_lose_kind,
    +            take_profit_value=take_profit_value, take_profit_kind=take_profit_kind,
    +            use_trail_stop=use_trail_stop, auto_margin_call=auto_margin_call,
    +            use_token_for_commission=use_token_for_commission)
    +while Iq.get_async_order(id)==None:
    +    pass
    +order_data=Iq.get_async_order(id)
    +print(Iq.get_async_order(id))
    +
    +

    get_commission_change()

    +

    instrument_type: "binary-option"/"turbo-option"/"digital-option"/"crypto"/"forex"/"cfd"

    +

    Iq.subscribe_commission_changed(instrument_type) Iq.get_commission_change(instrument_type) Iq.unsubscribe_commission_changed(instrument_type)

    +

    Código de ejemplo

    +
    import time
    +from iqoptionapi.stable_api import IQ_Option
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +#instrument_type: "binary-option"/"turbo-option"/"digital-option"/"crypto"/"forex"/"cfd"
    +instrument_type=["binary-option","turbo-option","digital-option","crypto","forex","cfd"]
    +for ins in instrument_type:
    +    Iq.subscribe_commission_changed(ins)
    +print("Start stream please wait profit change...")
    +while True:
    +    for ins in instrument_type:
    +        commissio_data=Iq.get_commission_change(ins)
    +        if commissio_data!={}:
    +            for active_name in commissio_data:
    +                if commissio_data[active_name]!={}:
    +                    the_min_timestamp=min(commissio_data[active_name].keys())
    +                    commissio=commissio_data[active_name][the_min_timestamp]
    +                    profit=(100-commissio)/100
    +                    print("instrument_type: "+str(ins)+" active_name: "+str(active_name)+" profit change to: "+str(profit))
    +                    #Data have been update so need del
    +                    del Iq.get_commission_change(ins)[active_name][the_min_timestamp]
    +    time.sleep(1)
    +
    +

    Obtener top_assets_updated

    +

    Ejemplo

    +

    instrument_type="binary-option"/"digital-option"/"forex"/"cfd"/"crypto" +

    from iqoptionapi.stable_api import IQ_Option
    +import logging
    +import time
    +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +instrument_type="digital-option"#"binary-option"/"digital-option"/"forex"/"cfd"/"crypto"
    +Iq.subscribe_top_assets_updated(instrument_type)
    +
    +print("__Please_wait_for_sec__")
    +while True:
    +    if Iq.get_top_assets_updated(instrument_type)!=None:
    +        print(Iq.get_top_assets_updated(instrument_type))
    +        print("\n\n")
    +    time.sleep(1)
    +Iq.unsubscribe_top_assets_updated(instrument_type)
    +

    +

    subscribe_top_assets_updated()

    +
    instrument_type="digital-option"#"binary-option"/"digital-option"/"forex"/"cfd"/"crypto"
    +Iq.subscribe_top_assets_updated(instrument_type)
    +
    +

    get_top_assets_updated()

    +

    se necesista llamar a get_top_assets_updated() después de subscribe_top_assets_updated() +

    Iq.get_top_assets_updated(instrument_type)
    +

    +

    unsubscribe_top_assets_updated()

    +

    Si no vas a uarlo, ciérralo para una conexión sesgura +

    Iq.unsubscribe_top_assets_updated(instrument_type)
    +

    +

    orderar par popularidad

    +

    +

    Ejemplo

    +
    from iqoptionapi.stable_api import IQ_Option
    +import logging
    +import time
    +import operator
    +
    +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +def opcode_to_name(opcode_data,opcode):
    +    return list(opcode_data.keys())[list(opcode_data.values()).index(opcode)]
    +
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +Iq.update_ACTIVES_OPCODE()
    +opcode_data=Iq.get_all_ACTIVES_OPCODE()
    +
    +instrument_type="digital-option"#"binary-option"/"digital-option"/"forex"/"cfd"/"crypto"
    +Iq.subscribe_top_assets_updated(instrument_type)
    +
    +
    +print("__Please_wait_for_sec__")
    +while True:
    +    if Iq.get_top_assets_updated(instrument_type)!=None:
    +        break
    +
    +top_assets=Iq.get_top_assets_updated(instrument_type)
    +popularity={}
    +for asset in top_assets:
    +    opcode=asset["active_id"]
    +    popularity_value=asset["popularity"]["value"]
    +    try:
    +        name=opcode_to_name(opcode_data,opcode)
    +        popularity[name]=popularity_value
    +    except:
    +        pass
    +
    +
    +sorted_popularity = sorted(popularity.items(), key=operator.itemgetter(1))
    +print("__Popularidad_min_to_max__")
    +for lis in sorted_popularity:
    +    print(lis)
    +
    +Iq.unsubscribe_top_assets_updated(instrument_type)
    +
    +

    get_leader_board

    +

    Obtener el ranking the líders

    +
    from iqoptionapi.stable_api import IQ_Option
    +Iq=IQ_Option(email,password)
    +Iq.connect()#connect to iqoption
    +
    +country="TW"
    +from_position=1
    +to_position=1
    +near_traders_count=0
    +
    +print(Iq.get_leader_board(country,from_position,to_position,near_traders_count))
    +
    +
    +

    Country

    +

    ID = {"Worldwide":0, + "AF": 1, + "AL": 2, + "DZ": 3, + "AD": 5, + "AO": 6, + "AI": 7, + "AG": 9, + "AR": 10, + "AM": 11, + "AW": 12, + "AT": 14, + "AZ": 15, + "BS": 16, + "BH": 17, + "BD": 18, + "BB": 19, + "BY": 20, + "BZ": 22, + "BJ": 23, + "BM": 24, + "BO": 26, + "BA": 27, + "BW": 28, + "BV": 29, + "BR": 30, + "BN": 31, + "BG": 32, + "BF": 33, + "BI": 34, + "KH": 35, + "CM": 36, + "CV": 38, + "KY": 39, + "TD": 41, + "CL": 42, + "CN": 43, + "CC": 45, + "CO": 46, + "KM": 47, + "CG": 48, + "CK": 49, + "CR": 50, + "CI": 51, + "HR": 52, + "CU": 53, + "CY": 54, + "CZ": 55, + "DK": 56, + "DJ": 57, + "DM": 58, + "DO": 59, + "TL": 60, + "EC": 61, + "EG": 62, + "SV": 63, + "EE": 66, + "ET": 67, + "FO": 69, + "FJ": 70, + "FI": 71, + "FR": 72, + "GF": 73, + "PF": 74, + "GA": 75, + "GM": 76, + "GE": 77, + "DE": 78, + "GH": 79, + "GR": 81, + "GD": 83, + "GP": 84, + "GT": 86, + "GN": 87, + "GY": 88, + "HT": 89, + "HN": 90, + "HK": 91, + "HU": 92, + "IS": 93, + "ID": 94, + "IQ": 95, + "IE": 96, + "IT": 97, + "JM": 98, + "JO": 100, + "KZ": 101, + "KE": 102, + "KI": 103, + "KW": 104, + "KG": 105, + "LA": 106, + "LV": 107, + "LB": 108, + "LS": 109, + "LR": 110, + "LY": 111, + "LT": 113, + "LU": 114, + "MO": 115, + "MK": 116, + "MG": 117, + "MW": 118, + "MY": 119, + "MV": 120, + "ML": 121, + "MT": 122, + "MQ": 124, + "MR": 125, + "MU": 126, + "MX": 128, + "FM": 129, + "MD": 130, + "MC": 131, + "MN": 132, + "MA": 134, + "MZ": 135, + "MM": 136, + "NA": 137, + "NP": 139, + "NL": 140, + "AN": 141, + "NC": 142, + "NZ": 143, + "NI": 144, + "NE": 145, + "NG": 146, + "NO": 149, + "OM": 150, + "PK": 151, + "PW": 152, + "PA": 153, + "PG": 154, + "PY": 155, + "PE": 156, + "PH": 157, + "PL": 159, + "PT": 160, + "QA": 162, + "RE": 163, + "RO": 164, + "RW": 166, + "KN": 167, + "LC": 168, + "SA": 171, + "SN": 172, + "SC": 173, + "SG": 175, + "SK": 176, + "SI": 177, + "SO": 179, + "ZA": 180, + "KR": 181, + "ES": 182, + "LK": 183, + "SH": 184, + "SR": 186, + "SZ": 187, + "SE": 188, + "CH": 189, + "TW": 191, + "TJ": 192, + "TZ": 193, + "TH": 194, + "TG": 195, + "TT": 198, + "TN": 199, + "TR": 200, + "TM": 201, + "UG": 203, + "UA": 204, + "AE": 205, + "GB": 206, + "UY": 207, + "UZ": 208, + "VE": 211, + "VN": 212, + "VG": 213, + "YE": 216, + "ZM": 218, + "ZW": 219, + "RS": 220, + "ME": 221, + "IN": 225, + "TC": 234, + "CD": 235, + "GG": 236, + "IM": 237, + "JE": 239, + "CW": 246, }

    +
    + + + + + + + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/es/all/image/top_assets_updated.png b/docs/es/all/image/top_assets_updated.png new file mode 100644 index 00000000..edd76b53 Binary files /dev/null and b/docs/es/all/image/top_assets_updated.png differ diff --git a/docs/es/binary option/binary option/index.html b/docs/es/binary option/binary option/index.html new file mode 100644 index 00000000..9c282faf --- /dev/null +++ b/docs/es/binary option/binary option/index.html @@ -0,0 +1,1461 @@ + + + + + + + + + + + + + + + + + + + + + + Opciones Binarias - iqoptionapi document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + +
    + +
    + +
    + + + + + + + + + +
    + + Traduccion: Dimitri + +
    Ayudando a quien te ayuda.
    +

    + Apoya este proyecto con una donación +

    + + Donación + +
    + + + +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    + + + + + +
    +
    + + + + + + + + + + +

    Para opciones binarias

    +

    comprar

    +

    comprar una opción binaria

    +

    buy()

    +

    Ejemplo

    +
    from iqoptionapi.stable_api import IQ_Option
    +import logging
    +import time
    +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +Iq=IQ_Option("email","pass")
    +goal="EURUSD"
    +print("get candles")
    +print(Iq.get_candles(goal,60,111,time.time()))
    +Money=1
    +ACTIVES="EURUSD"
    +ACTION="call"#or "put"
    +expirations_mode=1
    +
    +check,id=Iq.buy(Money,ACTIVES,ACTION,expirations_mode)
    +if check:
    +    print("!buy!")
    +else:
    +    print("buy fail")
    +
    +
    Iq.buy(Money,ACTIVES,ACTION,expirations)
    +                #Money:Cantidad de dinero type(int)
    +                #ACTIVES:Ejemplo de entrada "EURUSD" OR "EURGBP".... puedes ver todos loa ACTIVE con -> get_all_ACTIVES_OPCODE
    +                #ACTION:"call"/"put" type(str) call -> sube, put -> baja
    +                #expirations:Introduce minutos, cuidado con los timpos muy largos ya que fallará al comprar (Tiempo de cierre de merrcado) Gracias a Darth-Carrotpie's code (int)https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/6
    +                #return:if sucess return (True,id_number) esle return(Fale,None)
    +
    +

    buy_multi()

    +
    from iqoptionapi.stable_api import IQ_Option
    +Iq=IQ_Option("email","password")
    +Iq.connect()#conectar a iqoption
    +Money=[]
    +ACTIVES=[]
    +ACTION=[]
    +expirations_mode=[]
    +
    +Money.append(1)
    +ACTIVES.append("EURUSD")
    +ACTION.append("call")
    +expirations_mode.append(1)
    +
    +Money.append(1)
    +ACTIVES.append("EURAUD")
    +ACTION.append("call")
    +expirations_mode.append(1)
    +
    +print("buy multi")
    +id_list=Iq.buy_multi(Money,ACTIVES,ACTION,expirations_mode)
    +
    +print("check win only one id (id_list[0])")
    +print(Iq.check_win_v2(id_list[0],2))
    +
    +

    buy_by_raw_expirations()

    +

    buy the binary optoin by expired

    +
    price=2
    +active="EURUSD"
    +direction="call"
    +option="turbo"#binary
    +expired=1293923# Este tiempo de expiración necesitas contarlo o obtenerlo por tu mismo
    +Iq.buy_by_raw_expirations(price, active, direction, option,expired)
    +
    +

    get_remaning()

    +

    purchase time=remaning time - 30 +

    from iqoptionapi.stable_api import IQ_Option
    +Iq=IQ_Option("email","password")
    +Iq.connect()#conectar a iqoption
    +Money=1
    +ACTIVES="EURUSD"
    +ACTION="call"#or "put"
    +expirations_mode=1
    +while True:
    +    remaning_time=Iq.get_remaning(expirations_mode)
    +    purchase_time=remaning_time-30
    +    if purchase_time<4:#comprar las opciones binarias con un tiempo de compra menor a 4 min
    +        Iq.buy(Money,ACTIVES,ACTION,expirations_mode)
    +        break
    +

    +

    sell_option()

    +

    Iq.sell_option(sell_all)#Introduce int o una lista de id de órdenes
    +
    +Ejemplo

    +
    from iqoptionapi.stable_api import IQ_Option
    +import time
    +print("login...")
    +Iq=IQ_Option("email","password")
    +Iq.connect()#conectar a iqoption
    +Money=1
    +ACTIVES="EURUSD"
    +ACTION="call"#or "put"
    +expirations_mode=1
    +
    +id=Iq.buy(Money,ACTIVES,ACTION,expirations_mode)
    +id2=Iq.buy(Money,ACTIVES,ACTION,expirations_mode)
    +
    +time.sleep(5)
    +sell_all=[]
    +sell_all.append(id)
    +sell_all.append(id2)
    +print(Iq.sell_option(sell_all))
    +
    +

    check win

    +

    Entrará en bucle hasta que la respuesta sea ganadora (win) o sin beneficios (loose)

    +

    check_win()

    +
    from iqoptionapi.stable_api import IQ_Option
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +check,id = Iq.buy(1, "EURUSD", "call", 1)
    +print("Empezando a comprobar la operación...")
    +print(Iq.check_win(id))
    +
    +
    Iq.check_win(23243221)
    +#""Necesitas obtener el id_number de la función buy()""
    +#Iq.check_win(id_number)
    +#Esta función entrará en un bucle hasta que el resultado sea: win/equal/loose
    +
    +

    check_win_v2()

    +
    from iqoptionapi.stable_api import IQ_Option
    +Iq=IQ_Option("email","password")
    +Iq.connect()#conectar a iqoption
    +check,id = Iq.buy(1, "EURUSD", "call", 1)
    +print("Empezando a comprobar la operación...")
    +polling_time=3
    +print(Iq.check_win_v2(id,polling_time))
    +
    +

    check_win_v3()

    +

    Mejor camino para comprobar el resultado de +la operación

    +
    from iqoptionapi.stable_api import IQ_Option
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +check,id = Iq.buy(1, "EURUSD", "call", 1)
    +print("Empezando a comprobar la operación...")
    +print(Iq.check_win_v3(id))
    +
    +

    get_binary_option_detail()

    +

    +

    sample +

    from iqoptionapi.stable_api import IQ_Option
    +print("login...")
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +d=Iq.get_binary_option_detail()
    +print(d["CADCHF"]["turbo"])
    +print(d["CADCHF"]["binary"])
    +

    +

    get_all_init()

    +

    get_binary_option_detail es la base en eta api

    +

    Tu obtendrás los detalle sobre la opción binaria

    +
    Iq.get_all_init()
    +
    +

    get_all_profit()

    +

    sample

    +
    from iqoptionapi.stable_api import IQ_Option
    +print("login...")
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +d=Iq.get_all_profit()
    +print(d["CADCHF"]["turbo"])
    +print(d["CADCHF"]["binary"])
    +
    +

    Si tu quieres saber el profit en tiempo real +get real time profit

    +

    get_betinfo()

    +

    Si la opción no cierra todavía o el id es incorrecto, devolverá False +if order not close yet or wrong id it will return False +

    isSuccessful,dict=Iq.get_betinfo(4452272449)
    +#Iq.get_betinfo
    +#ENTRADA: order id
    +#SALIDA:isSuccessful,dict
    +

    +

    get_optioninfo

    +

    get_optioninfo()

    +

    Introduce cuántos datos quieres obtener del historial de Trading (solo para opciones binarias)

    +
    print(Iq.get_optioninfo(10))
    +
    +

    get_optioninfo_v2()

    +

    Introduce cuántos datos quieres obtener del historial de Trading (solo para opciones binarias)

    +
    print(Iq.get_optioninfo_v2(10))
    +
    +

    get_option_open_by_other_pc()

    +

    Obtener si tu cuenta tiene otra sesión abierta (puede ser en otro pc) y está abriendo opciones

    +

    Tu puedes obtener la opción con esta función

    +
    import time
    +from iqoptionapi.stable_api import IQ_Option
    +Iq=IQ_Option("email","password")
    +Iq.connect()#conectar a iqoption
    +while True:
    +    #Por favor accede a la web de iqoption y abre alguna opción binaria
    +    if Iq.get_option_open_by_other_pc()!={}:
    +        break
    +    time.sleep(1)
    +print("Obtener la opción abierta de otra sesión y de la misma cuenta")
    +print(Iq.get_option_open_by_other_pc())
    +
    +id=list(Iq.get_option_open_by_other_pc().keys())[0]
    +Iq.del_option_open_by_other_pc(id)
    +print("Depués de la id")
    +print(Iq.get_option_open_by_other_pc())
    +
    +

    Obtener indicador

    +

    Ejemplo¡

    +
    from iqoptionapi.stable_api import IQ_Option
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +goal="EURUSD"
    +Iq.start_mood_stream(goal)
    +print(Iq.get_traders_mood(goal))
    +Iq.stop_mood_stream(goal)
    +
    +

    start_mood_stream()

    +
    Iq.start_mood_stream(goal)
    +
    +

    get_traders_mood()

    +

    call get_traders_mood() after start_mood_stream

    +
    Iq.get_traders_mood(goal)
    +
    +

    get_all_traders_mood()

    +

    Obtendrá todo el indicador de operaciones en que hayas activado el stream

    +
    Iq.get_all_traders_mood()
    +#output:(dict) all mood you start
    +
    +

    stop_mood_stream()

    +

    Si no está usando el indicador, porfavor páralo para una mejor conexión.

    +
    Iq.stop_mood_stream(goal)
    +
    + + + + + + + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/es/binary option/expiration_time.png b/docs/es/binary option/expiration_time.png new file mode 100644 index 00000000..160fb591 Binary files /dev/null and b/docs/es/binary option/expiration_time.png differ diff --git a/docs/es/candle/candle/index.html b/docs/es/candle/candle/index.html new file mode 100644 index 00000000..3d11fe41 --- /dev/null +++ b/docs/es/candle/candle/index.html @@ -0,0 +1,1102 @@ + + + + + + + + + + + + + + + + + + + + + + Velas - iqoptionapi document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + +
    + +
    + +
    + + + + + + + + + +
    + + Traduccion: Dimitri + +
    Ayudando a quien te ayuda.
    +

    + Apoya este proyecto con una donación +

    + + Donación + +
    + + + +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    + + +
    +
    +
    + + +
    +
    +
    + + +
    +
    + + + + + + + + + + +

    Velas

    +

    Obtener velas

    +

    Solo obtiene lass velas cerrada no en tiempo real

    +
    Iq.get_candles(ACTIVES,interval,count,endtime)
    +            #ACTIVES: Ejemplo de entrada "EURUSD" OR "EURGBP"..ñ
    +            #interval: Duración de las velas en Segundoss
    +            #count: Cuantas velas quieres obtener del pasado
    +            #endtime: Obtener velas del pasado hasta una fecha concreta
    +
    +

    Ejemplo

    +
    from iqoptionapi.stable_api import IQ_Option
    +import time
    +Iq=IQ_Option("email","password")
    +Iq.connect()#conectar a iqoption
    +end_from_time=time.time()
    +ANS=[]
    +for i in range(70):
    +    data=Iq.get_candles("EURUSD", 60, 1000, end_from_time)
    +    ANS =data+ANS
    +    end_from_time=int(data[0]["from"])-1
    +print(ANS)
    +
    +

    Obtener las nuevas velas en tiempo real

    +

    Ejemplo de indicador

    +
    from talib.abstract import *
    +from iqoptionapi.stable_api import IQ_Option
    +import time
    +import numpy as np
    +print("login...")
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +goal="EURUSD"
    +size=10#size=[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,"all"]
    +timeperiod=10
    +maxdict=20
    +print("Empezar el stream...")
    +Iq.start_candles_stream(goal,size,maxdict)
    +print("Empezar ejemplo de EMA")
    +while True:
    +    candles=Iq.get_realtime_candles(goal,size)
    +
    +    inputs = {
    +        'open': np.array([]),
    +        'high': np.array([]),
    +        'low': np.array([]),
    +        'close': np.array([]),
    +        'volume': np.array([])
    +    }
    +    for timestamp in candles:
    +
    +        inputs["open"]=np.append(inputs["open"],candles[timestamp]["open"] )
    +        inputs["high"]=np.append(inputs["open"],candles[timestamp]["max"] )
    +        inputs["low"]=np.append(inputs["open"],candles[timestamp]["min"] )
    +        inputs["close"]=np.append(inputs["open"],candles[timestamp]["close"] )
    +        inputs["volume"]=np.append(inputs["open"],candles[timestamp]["volume"] )
    +
    +
    +    print("Mostrar la EMA")
    +    print(EMA(inputs, timeperiod=timeperiod))
    +    print("\n")
    +    time.sleep(1)
    +Iq.stop_candles_stream(goal,size)
    +
    +

    Ejemplo

    +
    from iqoptionapi.stable_api import IQ_Option
    +import logging
    +import time
    +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +print("Accediendo...")
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +goal="EURUSD"
    +size="all"#size=[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,"all"]
    +maxdict=10
    +print("Empezar stream...")
    +Iq.start_candles_stream(goal,size,maxdict)
    +#DO something
    +print("Hacer algo...")
    +time.sleep(10)
    +
    +print("imprimir velas")
    +cc=Iq.get_realtime_candles(goal,size)
    +for k in cc:
    +    print(goal,"size",k,cc[k])
    +print("parar velas")
    +Iq.stop_candles_stream(goal,size)
    +
    +

    Tamaño

    +

    +

    start_candles_stream()

    +
    goal="EURUSD"
    +size="all"#size=[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,"all"]
    +maxdict=10
    +print("start stream...")
    +Iq.start_candles_stream(goal,size,maxdict)
    +
    +

    get_realtime_candles()

    +

    get_realtime_candles() despuess de llamr start_candles_stream()

    +
    Iq.get_realtime_candles(goal,size)
    +
    +

    stop_candles_stream()

    +

    Si no estás usando get_realtime_candles() porfavor cierra el stream

    +
    Iq.stop_candles_stream(goal,size)
    +
    + + + + + + + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/es/candle/image/time_interval.png b/docs/es/candle/image/time_interval.png new file mode 100644 index 00000000..e465879b Binary files /dev/null and b/docs/es/candle/image/time_interval.png differ diff --git a/docs/es/digital/digital/index.html b/docs/es/digital/digital/index.html new file mode 100644 index 00000000..1428becb --- /dev/null +++ b/docs/es/digital/digital/index.html @@ -0,0 +1,1334 @@ + + + + + + + + + + + + + + + + + + + + + + Digital - iqoptionapi document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + +
    + +
    + +
    + + + + + + + + + +
    + + Traduccion: Dimitri + +
    Ayudando a quien te ayuda.
    +

    + Apoya este proyecto con una donación +

    + + Donación + +
    + + + +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    + + + + + +
    +
    + + + + + + + + + + +

    Digital

    +

    Cerca del modo strike

    +

    +

    Ejemplo

    +
    from iqoptionapi.stable_api import IQ_Option
    +import time
    +import random
    +Iq=IQ_Option("email","password")
    +Iq.connect()#conectar a iqoption
    +ACTIVES="EURUSD"
    +duration=1#minuto 1 or 5
    +amount=1
    +Iq.subscribe_strike_list(ACTIVES,duration)
    +#get strike_list
    +data=Iq.get_realtime_strike_list(ACTIVES, duration)
    +print("get strike data")
    +print(data)
    +"""data
    +{'1.127100':
    +    {  'call':
    +            {   'profit': None,
    +                'id': 'doEURUSD201811120649PT1MC11271'
    +            },
    +        'put':
    +            {   'profit': 566.6666666666666,
    +                'id': 'doEURUSD201811120649PT1MP11271'
    +            }
    +    }............
    +}
    +"""
    +#Obtener la lista de precios
    +price_list=list(data.keys())
    +#Elegir una estratégia aleatoria
    +choose_price=price_list[random.randint(0,len(price_list)-1)]
    +#Obtener instrument_id
    +instrument_id=data[choose_price]["call"]["id"]
    +#Obtener profit
    +profit=data[choose_price]["call"]["profit"]
    +print("Elegir que quiere commprar")
    +print("precio:",choose_price,"side:call","instrument_id:",instrument_id,"profit:",profit)
    +#Escojer instrument_id para abrir operación
    +buy_check,id=Iq.buy_digital(amount,instrument_id)
    +polling_time=5
    +if buy_check:
    +    print("Esperar para comprobar win")
    +    #comprobar win
    +    while True:
    +        check_close,win_money=Iq.check_win_digital_v2(id,polling_time)
    +        if check_close:
    +            if float(win_money)>0:
    +                win_money=("%.2f" % (win_money))
    +                print("Tu has ganado",win_money,"dinero")
    +            else:
    +                print("Sin beneficioss")
    +            break
    +    Iq.unsubscribe_strike_list(ACTIVES,duration)
    +else:
    +    print("Fallo al comprar, porfavor prueba otra vez")
    +
    +

    Obtener toda la lissta de datos de todos los strike

    +

    Ejemplo +

    from iqoptionapi.stable_api import IQ_Option
    +import time
    +Iq=IQ_Option("email","password")
    +Iq.connect()#conecta a iqoption
    +ACTIVES="EURUSD"
    +duration=1#minuto 1 or 5
    +Iq.subscribe_strike_list(ACTIVES,duration)
    +while True:
    +    data=Iq.get_realtime_strike_list(ACTIVES, duration)
    +    for price in data:
    +        print("precio",price,data[price])
    +    time.sleep(5)
    +Iq.unsubscribe_strike_list(ACTIVES,duration)
    +

    +

    subscribe_strike_list()

    +
    Iq.subscribe_strike_list(ACTIVES,duration)
    +
    +

    get_realtime_strike_list

    +

    Tu necesitas llamar a subscribe_strike_list() antes de get_realtime_strike_list() +

    Iq.get_realtime_strike_list(ACTIVES,duration)
    +

    +

    unsubscribe_strike_list()

    +
    Iq.unsubscribe_strike_list(ACTIVES,duration)
    +
    +

    buy_digital()

    +
    buy_check,id=Iq.buy_digital(amount,instrument_id)
    +#obtener el instrument_id de Iq.get_realtime_strike_list
    +
    +

    Modo actual del precio

    +

    +

    buy_digital_spot

    +

    Comprar el dígito en el precio actual

    +

    Devuelve check y id

    +
    from iqoptionapi.stable_api import IQ_Option
    +
    +Iq=IQ_Option("email","password")
    +Iq.connect()#conectar a iqoption
    +ACTIVES="EURUSD"
    +duration=1#minuto 1 or 5
    +amount=1
    +action="call"#put
    +print(Iq.buy_digital_spot(ACTIVES,amount,action,duration))
    +
    +

    get_digital_spot_profit_after_sale()

    +

    Obtener Profit después de la Venta(P/L)

    +

    +

    Ejemplo

    +
    from iqoptionapi.stable_api import IQ_Option
    +Iq=IQ_Option("email","passord")
    +ACTIVES="EURUSD"
    +duration=1#minute 1 or 5
    +amount=100
    +action="put"#put
    +
    +Iq.subscribe_strike_list(ACTIVES,duration)
    +_,id=Iq.buy_digital_spot(ACTIVES,amount,action,duration)
    +
    +while True:
    +    PL=Iq.get_digital_spot_profit_after_sale(id)
    +    if PL!=None:
    +        print(PL)
    +
    +

    get_digital_current_profit()

    +
    from iqoptionapi.stable_api import IQ_Option
    +import time
    +import logging
    +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +Iq=IQ_Option("email","password")
    +Iq.connect()#conectar a iqoption
    +ACTIVES="EURUSD"
    +duration=1#minuto 1 or 5
    +Iq.subscribe_strike_list(ACTIVES,duration)
    +while True:
    +    data=Iq.get_digital_current_profit(ACTIVES, duration)
    +    print(data)# La primera impresión puede ser falsa, sólo espera un segundo puedes obtener el beneficio
    +    time.sleep(1)
    +Iq.unsubscribe_strike_list(ACTIVES,duration)
    +
    +

    check win for digital

    +

    check_win_digital()

    +

    Esta api esta implementada por get_digital_position()

    +

    Esta función esta encuestando, necesitas escojet el tiempo de encuesta

    +
    Iq.check_win_digital(id,polling_time)#obtener el id de Iq.buy_digital
    +
    +

    check_win_digital_v2()

    +

    Esta api es asíncrona, obtiene el id de los datos. Solo puede obtener el id de los datos antess de que puedass comprar la opción. +Si reinicias el programa, no se puede obtener otra vez la id de los datos de manera asíncrona otra vez. +De esta forma no se puede trabajar con check_win_digital_v2, asi tu necesitas usar check_win_digital.

    +
     Iq.check_win_digital_v2(id)#obtener el id deIq.buy_digital
    +#return:check_close,win_money
    +#return sample
    +#if you loose:Ture,o
    +#if you win:True,1232.3
    +#if trade not clode yet:False,None
    +
    +

    Ejemplo de código

    +
    from iqoptionapi.stable_api import IQ_Option
    +import logging
    +import random
    +import time
    +import datetime
    +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +ACTIVES="EURUSD"
    +duration=1#minuto 1 or 5
    +amount=1
    +action="call"#put
    +_,id=(Iq.buy_digital_spot(ACTIVES,amount,action,duration))
    +print(id)
    +if id !="error":
    +    while True:
    +        check,win=Iq.check_win_digital_v2(id)
    +        if check==True:
    +            break
    +    if win<0:
    +        print("Has perdido "+str(win)+"$")
    +    else:
    +        print("Has ganado "+str(win)+"$")
    +else:
    +    print("Porfavor prueba otra vez")
    +
    +

    close_digital_option()

    +
    Iq.close_digital_option(id)
    +
    +

    Obtener datos de opciones digitaless

    +

    Ejemplo 1 +

    from iqoptionapi.stable_api import IQ_Option
    +import logging
    +import time
    +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +Iq=IQ_Option("email","password")
    +Iq.connect()#conectar a iqoption
    +ACTIVES="EURUSD-OTC"
    +duration=1#minuto 1 or 5
    +amount=1
    +action="call"#put
    +from datetime import datetime
    +
    +_,id=Iq.buy_digital_spot(ACTIVES,amount,action,duration)
    +
    +while True:
    +    check,_=Iq.check_win_digital(id)
    +    if check:
    +        break
    +print(Iq.get_digital_position(id))
    +print(Iq.check_win_digital(id))
    +

    +

    Ejemplo 2

    +
    print(Iq.get_positions("digital-option"))
    +print(Iq.get_digital_position(2323433))#Comprobar por id
    +print(Iq.get_position_history("digital-option"))
    +
    + + + + + + + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/es/digital/image/near.png b/docs/es/digital/image/near.png new file mode 100644 index 00000000..1b8e10f1 Binary files /dev/null and b/docs/es/digital/image/near.png differ diff --git a/docs/es/digital/image/profit_after_sale.png b/docs/es/digital/image/profit_after_sale.png new file mode 100644 index 00000000..8839db1f Binary files /dev/null and b/docs/es/digital/image/profit_after_sale.png differ diff --git a/docs/es/digital/image/spot.png b/docs/es/digital/image/spot.png new file mode 100644 index 00000000..752803b3 Binary files /dev/null and b/docs/es/digital/image/spot.png differ diff --git a/docs/es/fef/fef/index.html b/docs/es/fef/fef/index.html new file mode 100644 index 00000000..b6869224 --- /dev/null +++ b/docs/es/fef/fef/index.html @@ -0,0 +1,1473 @@ + + + + + + + + + + + + + + + + + + + + + + Futuros de divisas - iqoptionapi document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + +
    + +
    + +
    + + + + + + + + + +
    + + Traduccion: Dimitri + +
    Ayudando a quien te ayuda.
    +

    + Apoya este proyecto con una donación +

    + + Donación + +
    + + + +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    + + + + + +
    +
    + + + + + + + + + + +

    Forex&Stock&Commodities&Crypto&ETFs

    +

    instrument_type y instrument_id

    +

    Tu puedes buscar instrument_type and instrument_id de este archivo

    +

    buscar instrument_type and instrument_id

    +

    Ejemplo

    +
    from iqoptionapi.stable_api import IQ_Option
    +Iq=IQ_Option("email","password")
    +Iq.connect()#conectar a iqoption
    +instrument_type="crypto"
    +instrument_id="BTCUSD"
    +side="buy"#Introducir:"buy"/"sell"
    +amount=1.23#Introducir la cantidad de dinero por operación
    +
    +#"leverage"="Multiplier"
    +leverage=3#Puedes obtener más sinformación de get_available_leverages()
    +
    +type="market"#Introducir:"market"/"limit"/"stop"
    +
    +#Para type="limit"/"stop"
    +
    +# olo funciona con type="limit"
    +limit_price=None#input:None/value(float/int)
    +
    +#Solo funciona con type="stop"
    +stop_price=None#input:None/value(float/int)
    +
    +#"percent"=Profit Percentage
    +#"price"=Asset Price
    +#"diff"=Profit in Money
    +
    +stop_lose_kind="percent"#input:None/"price"/"diff"/"percent"
    +stop_lose_value=95#input:None/value(float/int)
    +
    +take_profit_kind=None#input:None/"price"/"diff"/"percent"
    +take_profit_value=None#input:None/value(float/int)
    +
    +#"use_trail_stop"="Trailing Stop"
    +use_trail_stop=True#True/False
    +
    +#"auto_margin_call"="Utilizar el dinero te la cuenta para mantener Abierta la Posición"
    +auto_margin_call=False#True/False
    +#Si tu quieres "take_profit_kind"&
    +#            "take_profit_value"&
    +#            "stop_lose_kind"&
    +#            "stop_lose_value" all being "Not Set","auto_margin_call" need to set:True
    +
    +use_token_for_commission=False#True/False
    +
    +check,order_id=Iq.buy_order(instrument_type=instrument_type, instrument_id=instrument_id,
    +            side=side, amount=amount,leverage=leverage,
    +            type=type,limit_price=limit_price, stop_price=stop_price,
    +            stop_lose_value=stop_lose_value, stop_lose_kind=stop_lose_kind,
    +            take_profit_value=take_profit_value, take_profit_kind=take_profit_kind,
    +            use_trail_stop=use_trail_stop, auto_margin_call=auto_margin_call,
    +            use_token_for_commission=use_token_for_commission)
    +print(Iq.get_order(order_id))
    +print(Iq.get_positions("crypto"))
    +print(Iq.get_position_history("crypto"))
    +print(Iq.get_available_leverages("crypto","BTCUSD"))
    +print(Iq.close_position(order_id))
    +print(Iq.get_overnight_fee("crypto","BTCUSD"))
    +
    +

    buy_order()

    +

    devuelve (True/False,buy_order_id/False)

    +

    Si Buy es satisfactoria devuelve (True,buy_order_id)

    +

    "percent"=Profit Percentage

    +

    "price"=Asset Price

    +

    "diff"=Profit en dinero

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    parameter
    instrument_typeinstrument_type
    instrument_idinstrument_id
    side"buy""sell"
    amountvalue(float/int)
    leveragevalue(int)
    type"market""limit""stop"
    limit_priceNonevalue(float/int):Only working by set type="limit"
    stop_priceNonevalue(float/int):Only working by set type="stop"
    stop_lose_kindNone"price""diff""percent"
    stop_lose_valueNonevalue(float/int)
    take_profit_kindNone"price""diff""percent"
    take_profit_valueNonevalue(float/int)
    use_trail_stopTrueFalse
    auto_margin_callTrueFalse
    use_token_for_commissionTrueFalse
    +
    check,order_id=Iq.buy_order(
    +            instrument_type=instrument_type, instrument_id=instrument_id,
    +            side=side, amount=amount,leverage=leverage,
    +            type=type,limit_price=limit_price, stop_price=stop_price,
    +            stop_lose_kind=stop_lose_kind,
    +            stop_lose_value=stop_lose_value,
    +            take_profit_kind=take_profit_kind,
    +            take_profit_value=take_profit_value,
    +            use_trail_stop=use_trail_stop, auto_margin_call=auto_margin_call,
    +            use_token_for_commission=use_token_for_commission)
    +
    +

    change_order()

    + + + + + + + + + + + + + +
    ID_Name=""order_id"ID_Name="position_id"
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    parameter
    ID_Name"position_id""order_id"
    order_id"you need to get order_id from buy_order()"
    stop_lose_kindNone"price""diff""percent"
    stop_lose_valueNonevalue(float/int)
    take_profit_kindNone"price""diff""percent"
    take_profit_valueNonevalue(float/int)
    use_trail_stopTrueFalse
    auto_margin_callTrueFalse
    +

    sample

    +
    ID_Name="order_id"#"position_id"/"order_id"
    +stop_lose_kind=None
    +stop_lose_value=None
    +take_profit_kind="percent"
    +take_profit_value=200
    +use_trail_stop=False
    +auto_margin_call=True
    +Iq.change_order(ID_Name=ID_Name,order_id=order_id,
    +                stop_lose_kind=stop_lose_kind,stop_lose_value=stop_lose_value,
    +                take_profit_kind=take_profit_kind,take_profit_value=take_profit_value,
    +                use_trail_stop=use_trail_stop,auto_margin_call=auto_margin_call)
    +
    +

    get_order()

    +

    Obtener información sobre buy_order_id

    +

    devuelve (True/False,get_order,None)

    +
    Iq.get_order(buy_order_id)
    +
    +

    get_pending()

    +

    Obtendrás los dato

    +

    +
    Iq.get_pending(instrument_type)
    +
    +

    get_positions()

    +

    Obtendrá los datos

    +

    +

    devuelve (True/False,get_positions,None)

    +

    no soporte para ""turbo-option""

    +

    instrument_type="crypto","forex","fx-option","multi-option","cfd","digital-option"

    +
    Iq.get_positions(instrument_type)
    +
    +

    get_position()

    +

    Obtendrás los datos

    +

    +

    Obtendráss una possición por buy_order_id

    +

    devuelve (True/False,position data,None)

    +
    Iq.get_positions(buy_order_id)
    +
    +

    get_position_history

    +

    Obtendrás los datos

    +

    +

    get_position_history()

    +

    devuelve (True/False,position_history,None)

    +
    Iq.get_position_history(instrument_type)
    +
    +

    get_position_history_v2

    +

    instrument_type="crypto","forex","fx-option","turbo-option","multi-option","cfd","digital-option"

    +

    get_position_history_v2(instrument_type,limit,offset,start,end)

    +
    from iqoptionapi.stable_api import IQ_Option
    +import logging
    +import random
    +import time
    +import datetime
    +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +Iq=IQ_Option("email","password")
    +Iq.connect()#conectar a iqoption
    +#instrument_type="crypto","forex","fx-option","turbo-option","multi-option","cfd","digital-option"
    +instrument_type="digital-option"
    +limit=2#Cuántos quieres obtener
    +offset=0#offset de tiempo final, si el tiempo final es 0,significa que se obtendrán los datos desde ahora
    +start=0#Empezar el tiempo en Timestamp
    +end=0#Timestamp
    +data=Iq.get_position_history_v2(instrument_type,limit,offset,start,end)
    +
    +print(data)
    +
    +#--------- Esto obtendrá los datos empezando por 2019/7/1(end) hasta  2019/1/1(start) y solo obteniendo 2(limit) datoss siendo el offset 0
    +instrument_type="digital-option"
    +limit=2#Cuántos quieres obtener
    +offset=0#offset de tiempo final, si el tiempo final es 0, significa que se obtendrán los datos desde ahora
    +start=int(time.mktime(datetime.datetime.strptime("2019/1/1", "%Y/%m/%d").timetuple()))
    +end=int(time.mktime(datetime.datetime.strptime("2019/7/1", "%Y/%m/%d").timetuple()))
    +data=Iq.get_position_history_v2(instrument_type,limit,offset,start,end)
    +print(data)
    +
    +

    get_available_leverages()

    +

    Obtener apalancamiento disponible

    +

    devuelve (True/False,available_leverages,None)

    +
    Iq.get_available_leverages(instrument_type,actives)
    +
    +

    cancel_order()

    +

    Cancelarás la orden

    +

    +

    devuelve (True/False)

    +
    Iq.cancel_order(buy_order_id)
    +
    +

    close_position()

    +

    Cancelarás la poición

    +

    +

    devuelve (True/False)

    +
    Iq.close_position(buy_order_id)
    +
    +

    get_overnight_fee()

    +

    devuelve (True/False,overnight_fee,None)

    +
    Iq.get_overnight_fee(instrument_type,active)
    +
    + + + + + + + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/es/fef/image/cancel_order.png b/docs/es/fef/image/cancel_order.png new file mode 100644 index 00000000..bbdb6193 Binary files /dev/null and b/docs/es/fef/image/cancel_order.png differ diff --git a/docs/es/fef/image/change_ID_Name_order_id.png b/docs/es/fef/image/change_ID_Name_order_id.png new file mode 100644 index 00000000..66900fcf Binary files /dev/null and b/docs/es/fef/image/change_ID_Name_order_id.png differ diff --git a/docs/es/fef/image/change_ID_Name_position_id.png b/docs/es/fef/image/change_ID_Name_position_id.png new file mode 100644 index 00000000..61e407b1 Binary files /dev/null and b/docs/es/fef/image/change_ID_Name_position_id.png differ diff --git a/docs/es/fef/image/close_position.png b/docs/es/fef/image/close_position.png new file mode 100644 index 00000000..7f52ea76 Binary files /dev/null and b/docs/es/fef/image/close_position.png differ diff --git a/docs/es/fef/image/get_pending.png b/docs/es/fef/image/get_pending.png new file mode 100644 index 00000000..76d5660f Binary files /dev/null and b/docs/es/fef/image/get_pending.png differ diff --git a/docs/es/fef/image/get_position.png b/docs/es/fef/image/get_position.png new file mode 100644 index 00000000..29567127 Binary files /dev/null and b/docs/es/fef/image/get_position.png differ diff --git a/docs/es/fef/image/get_position_history.png b/docs/es/fef/image/get_position_history.png new file mode 100644 index 00000000..16c9ec03 Binary files /dev/null and b/docs/es/fef/image/get_position_history.png differ diff --git a/docs/es/fef/image/get_positions.png b/docs/es/fef/image/get_positions.png new file mode 100644 index 00000000..ff757ff6 Binary files /dev/null and b/docs/es/fef/image/get_positions.png differ diff --git a/docs/es/fef/instrument.txt b/docs/es/fef/instrument.txt new file mode 100644 index 00000000..920723d1 --- /dev/null +++ b/docs/es/fef/instrument.txt @@ -0,0 +1,318 @@ +Name: NZD/SEK instrument_id: "NZDSEK" instrument_type: "forex" +Name: NZD/USD instrument_id: "NZDUSD" instrument_type: "forex" +Name: CAD/TRY instrument_id: "CADTRY" instrument_type: "forex" +Name: EUR/CHF instrument_id: "EURCHF" instrument_type: "forex" +Name: USD/THB instrument_id: "USDTHB" instrument_type: "forex" +Name: EUR/TRY instrument_id: "EURTRY" instrument_type: "forex" +Name: GBP/AUD instrument_id: "GBPAUD" instrument_type: "forex" +Name: AUD/USD instrument_id: "AUDUSD" instrument_type: "forex" +Name: EUR/MXN instrument_id: "EURMXN" instrument_type: "forex" +Name: USD/CHF instrument_id: "USDCHF" instrument_type: "forex" +Name: NOK/DKK instrument_id: "NOKDKK" instrument_type: "forex" +Name: EUR/NOK instrument_id: "EURNOK" instrument_type: "forex" +Name: SEK/JPY instrument_id: "SEKJPY" instrument_type: "forex" +Name: CAD/NOK instrument_id: "CADNOK" instrument_type: "forex" +Name: NOK/SEK instrument_id: "NOKSEK" instrument_type: "forex" +Name: GBP/HUF instrument_id: "GBPHUF" instrument_type: "forex" +Name: GBP/SGD instrument_id: "GBPSGD" instrument_type: "forex" +Name: AUD/NZD instrument_id: "AUDNZD" instrument_type: "forex" +Name: GBP/JPY instrument_id: "GBPJPY" instrument_type: "forex" +Name: CHF/SEK instrument_id: "CHFSEK" instrument_type: "forex" +Name: AUD/NOK instrument_id: "AUDNOK" instrument_type: "forex" +Name: GBP/NOK instrument_id: "GBPNOK" instrument_type: "forex" +Name: AUD/DKK instrument_id: "AUDDKK" instrument_type: "forex" +Name: EUR/AUD instrument_id: "EURAUD" instrument_type: "forex" +Name: AUD/CHF instrument_id: "AUDCHF" instrument_type: "forex" +Name: GBP/CHF instrument_id: "GBPCHF" instrument_type: "forex" +Name: AUD/CAD instrument_id: "AUDCAD" instrument_type: "forex" +Name: CHF/DKK instrument_id: "CHFDKK" instrument_type: "forex" +Name: AUD/TRY instrument_id: "AUDTRY" instrument_type: "forex" +Name: NZD/CHF instrument_id: "NZDCHF" instrument_type: "forex" +Name: USD/SEK instrument_id: "USDSEK" instrument_type: "forex" +Name: GBP/NZD instrument_id: "GBPNZD" instrument_type: "forex" +Name: EUR/DKK instrument_id: "EURDKK" instrument_type: "forex" +Name: NZD/DKK instrument_id: "NZDDKK" instrument_type: "forex" +Name: CAD/SGD instrument_id: "CADSGD" instrument_type: "forex" +Name: EUR/GBP instrument_id: "EURGBP" instrument_type: "forex" +Name: EUR/CAD instrument_id: "EURCAD" instrument_type: "forex" +Name: USD/CZK instrument_id: "USDCZK" instrument_type: "forex" +Name: AUD/MXN instrument_id: "AUDMXN" instrument_type: "forex" +Name: EUR/NZD instrument_id: "EURNZD" instrument_type: "forex" +Name: GBP/PLN instrument_id: "GBPPLN" instrument_type: "forex" +Name: NZD/NOK instrument_id: "NZDNOK" instrument_type: "forex" +Name: AUD/SGD instrument_id: "AUDSGD" instrument_type: "forex" +Name: GBP/SEK instrument_id: "GBPSEK" instrument_type: "forex" +Name: NZD/CAD instrument_id: "NZDCAD" instrument_type: "forex" +Name: NZD/MXN instrument_id: "NZDMXN" instrument_type: "forex" +Name: NZD/TRY instrument_id: "NZDTRY" instrument_type: "forex" +Name: CHF/SGD instrument_id: "CHFSGD" instrument_type: "forex" +Name: USD/MXN instrument_id: "USDMXN" instrument_type: "forex" +Name: EUR/HUF instrument_id: "EURHUF" instrument_type: "forex" +Name: GBP/CAD instrument_id: "GBPCAD" instrument_type: "forex" +Name: USD/TRY instrument_id: "USDTRY" instrument_type: "forex" +Name: USD/JPY instrument_id: "USDJPY" instrument_type: "forex" +Name: EUR/USD instrument_id: "EURUSD" instrument_type: "forex" +Name: AUD/SEK instrument_id: "AUDSEK" instrument_type: "forex" +Name: CHF/NOK instrument_id: "CHFNOK" instrument_type: "forex" +Name: USD/PLN instrument_id: "USDPLN" instrument_type: "forex" +Name: USD/HUF instrument_id: "USDHUF" instrument_type: "forex" +Name: CHF/JPY instrument_id: "CHFJPY" instrument_type: "forex" +Name: GBP/ILS instrument_id: "GBPILS" instrument_type: "forex" +Name: NZD/JPY instrument_id: "NZDJPY" instrument_type: "forex" +Name: CHF/TRY instrument_id: "CHFTRY" instrument_type: "forex" +Name: CAD/JPY instrument_id: "CADJPY" instrument_type: "forex" +Name: USD/RUB instrument_id: "USDRUB" instrument_type: "forex" +Name: SGD/JPY instrument_id: "SGDJPY" instrument_type: "forex" +Name: GBP/USD instrument_id: "GBPUSD" instrument_type: "forex" +Name: CAD/PLN instrument_id: "CADPLN" instrument_type: "forex" +Name: DKK/SGD instrument_id: "DKKSGD" instrument_type: "forex" +Name: NZD/SGD instrument_id: "NZDSGD" instrument_type: "forex" +Name: AUD/JPY instrument_id: "AUDJPY" instrument_type: "forex" +Name: NOK/JPY instrument_id: "NOKJPY" instrument_type: "forex" +Name: PLN/SEK instrument_id: "PLNSEK" instrument_type: "forex" +Name: USD/SGD instrument_id: "USDSGD" instrument_type: "forex" +Name: GBP/MXN instrument_id: "GBPMXN" instrument_type: "forex" +Name: USD/CAD instrument_id: "USDCAD" instrument_type: "forex" +Name: SEK/DKK instrument_id: "SEKDKK" instrument_type: "forex" +Name: DKK/PLN instrument_id: "DKKPLN" instrument_type: "forex" +Name: CAD/MXN instrument_id: "CADMXN" instrument_type: "forex" +Name: GBP/TRY instrument_id: "GBPTRY" instrument_type: "forex" +Name: EUR/SGD instrument_id: "EURSGD" instrument_type: "forex" +Name: NZD/ZAR instrument_id: "NZDZAR" instrument_type: "forex" +Name: EUR/CZK instrument_id: "EURCZK" instrument_type: "forex" +Name: EUR/JPY instrument_id: "EURJPY" instrument_type: "forex" +Name: CAD/CHF instrument_id: "CADCHF" instrument_type: "forex" +Name: USD/INR instrument_id: "USDINR" instrument_type: "forex" +Name: USD/BRL instrument_id: "USDBRL" instrument_type: "forex" +Name: USD/NOK instrument_id: "USDNOK" instrument_type: "forex" +Name: USD/DKK instrument_id: "USDDKK" instrument_type: "forex" +Name: China Large-Cap ETF instrument_id: "FXI" instrument_type: "cfd" +Name: IBM Corporation instrument_id: "IBM:US" instrument_type: "cfd" +Name: IDEXX Laboratories instrument_id: "IDXX" instrument_type: "cfd" +Name: Siemens instrument_id: "SIED-CHIX" instrument_type: "cfd" +Name: Roche instrument_id: "ROGZ-CHIX" instrument_type: "cfd" +Name: Airbus SE instrument_id: "AIRP-CHIX" instrument_type: "cfd" +Name: AbbVie instrument_id: "ABBV:US" instrument_type: "cfd" +Name: Concho Resources instrument_id: "CXO:US" instrument_type: "cfd" +Name: Verizon instrument_id: "VZ:US" instrument_type: "cfd" +Name: Unilever instrument_id: "ULVRL-CHIX" instrument_type: "cfd" +Name: Lockheed Martin instrument_id: "LMT:US" instrument_type: "cfd" +Name: NextEra Energy instrument_id: "NEE:US" instrument_type: "cfd" +Name: US 100 instrument_id: "USNDAQ100" instrument_type: "cfd" +Name: Entergy instrument_id: "ETR:US" instrument_type: "cfd" +Name: QQQ Trust, Series 1 instrument_id: "QQQ" instrument_type: "cfd" +Name: DTE Energy instrument_id: "DTE:US" instrument_type: "cfd" +Name: Tesco instrument_id: "TSCOL-CHIX" instrument_type: "cfd" +Name: First Solar instrument_id: "FSLR:US" instrument_type: "cfd" +Name: Pfizer instrument_id: "PFE:US" instrument_type: "cfd" +Name: Eastman Chemical instrument_id: "EMN:US" instrument_type: "cfd" +Name: JP Morgan Chase instrument_id: "JPM" instrument_type: "cfd" +Name: Google instrument_id: "GOOGLE" instrument_type: "cfd" +Name: Fastenal instrument_id: "FAST:US" instrument_type: "cfd" +Name: HSBC Holdings PLC instrument_id: "HSBAL-CHIX" instrument_type: "cfd" +Name: DaVita instrument_id: "DVA:US" instrument_type: "cfd" +Name: Utilities SPDR instrument_id: "XLU" instrument_type: "cfd" +Name: Federal Realty instrument_id: "FRT:US" instrument_type: "cfd" +Name: Commerzbank instrument_id: "CBKD-CHIX" instrument_type: "cfd" +Name: Amgen instrument_id: "AMGN:US" instrument_type: "cfd" +Name: Silver instrument_id: "XAGUSD" instrument_type: "cfd" +Name: Resmed Inc instrument_id: "RMD" instrument_type: "cfd" +Name: Equifax instrument_id: "EFX:US" instrument_type: "cfd" +Name: Digital Realty Trust instrument_id: "DLR:US" instrument_type: "cfd" +Name: Adobe Systems instrument_id: "ADBE:US" instrument_type: "cfd" +Name: Autodesk instrument_id: "ADSK:US" instrument_type: "cfd" +Name: Barclays instrument_id: "BARCL-CHIX" instrument_type: "cfd" +Name: Spotify instrument_id: "SPOT" instrument_type: "cfd" +Name: Standard Chartered instrument_id: "STANL-CHIX" instrument_type: "cfd" +Name: Alibaba instrument_id: "ALIBABA" instrument_type: "cfd" +Name: Freeport-McMoRan instrument_id: "FCX:US" instrument_type: "cfd" +Name: Delta Air Lines instrument_id: "DAL:US" instrument_type: "cfd" +Name: Materials Select Sector SPDR instrument_id: "XLB" instrument_type: "cfd" +Name: Amazon instrument_id: "AMAZON" instrument_type: "cfd" +Name: Semiconductor ETF instrument_id: "SMH" instrument_type: "cfd" +Name: S&P 500 ETF instrument_id: "SPY" instrument_type: "cfd" +Name: Caterpillar instrument_id: "CAT:US" instrument_type: "cfd" +Name: US 30 instrument_id: "US30" instrument_type: "cfd" +Name: ConocoPhillips instrument_id: "COP:US" instrument_type: "cfd" +Name: Flowserve instrument_id: "FLS:US" instrument_type: "cfd" +Name: Goldman Sachs instrument_id: "GS" instrument_type: "cfd" +Name: AU 200 instrument_id: "AUS200" instrument_type: "cfd" +Name: Edison instrument_id: "EIX:US" instrument_type: "cfd" +Name: Crude Oil WTI instrument_id: "USOUSD" instrument_type: "cfd" +Name: MSCI Mexico ETF instrument_id: "EWW" instrument_type: "cfd" +Name: General Electric instrument_id: "GE" instrument_type: "cfd" +Name: Micron Technology instrument_id: "MU:US" instrument_type: "cfd" +Name: Telefónica instrument_id: "TEFE-CHIX" instrument_type: "cfd" +Name: Procter & Gamble instrument_id: "PG:US" instrument_type: "cfd" +Name: Accenture instrument_id: "ACN:US" instrument_type: "cfd" +Name: Costco instrument_id: "COST:US" instrument_type: "cfd" +Name: Medtronic instrument_id: "MDT:US" instrument_type: "cfd" +Name: MSCI Emerging Markets ETF instrument_id: "EEM" instrument_type: "cfd" +Name: Expeditors instrument_id: "EXPD:US" instrument_type: "cfd" +Name: Facebook instrument_id: "FACEBOOK" instrument_type: "cfd" +Name: Tesla instrument_id: "TESLA" instrument_type: "cfd" +Name: Merck instrument_id: "MRKD-CHIX" instrument_type: "cfd" +Name: FirstEnergy instrument_id: "FE:US" instrument_type: "cfd" +Name: Altria instrument_id: "MO:US" instrument_type: "cfd" +Name: Core MSCI Emerging Markets instrument_id: "IEMG" instrument_type: "cfd" +Name: AS Roma instrument_id: "ASRM" instrument_type: "cfd" +Name: Bayer instrument_id: "BAYND-CHIX" instrument_type: "cfd" +Name: Continental instrument_id: "COND-CHIX" instrument_type: "cfd" +Name: Qualcomm instrument_id: "QCOM:US" instrument_type: "cfd" +Name: Vodafone Group PLC instrument_id: "VODL-CHIX" instrument_type: "cfd" +Name: Visa instrument_id: "V:US" instrument_type: "cfd" +Name: AT&T instrument_id: "T:US" instrument_type: "cfd" +Name: FedEx instrument_id: "FDX:US" instrument_type: "cfd" +Name: Frontier Communications instrument_id: "FTR:US" instrument_type: "cfd" +Name: Teleflex Inc instrument_id: "TFX" instrument_type: "cfd" +Name: Twitter Inc instrument_id: "TWITTER" instrument_type: "cfd" +Name: Royal Bank of Scotland instrument_id: "RBSL-CHIX" instrument_type: "cfd" +Name: S&P Oil & Gas Explor & Product instrument_id: "XOP" instrument_type: "cfd" +Name: Deutsche Post instrument_id: "DPWD-CHIX" instrument_type: "cfd" +Name: General Motors instrument_id: "GM" instrument_type: "cfd" +Name: US 500 instrument_id: "USSPX500" instrument_type: "cfd" +Name: Bank of America instrument_id: "BAC:US" instrument_type: "cfd" +Name: Nike instrument_id: "NIKE" instrument_type: "cfd" +Name: Darden Restaurants instrument_id: "DRI:US" instrument_type: "cfd" +Name: UBS instrument_id: "UBSGZ-CHIX" instrument_type: "cfd" +Name: Discover Financial Services instrument_id: "DFS:US" instrument_type: "cfd" +Name: Emerson Electric instrument_id: "EMR:US" instrument_type: "cfd" +Name: Advance Auto Parts instrument_id: "AAP:US" instrument_type: "cfd" +Name: Duke Realty Corp instrument_id: "DRE" instrument_type: "cfd" +Name: Rolls-Royce instrument_id: "RRL-CHIX" instrument_type: "cfd" +Name: Wells Fargo instrument_id: "WFC:US" instrument_type: "cfd" +Name: CitiGroup instrument_id: "CITI" instrument_type: "cfd" +Name: Cisco Systems instrument_id: "CISCO" instrument_type: "cfd" +Name: Apple instrument_id: "APPLE" instrument_type: "cfd" +Name: MSCI Japan ETF instrument_id: "EWJ" instrument_type: "cfd" +Name: F5 Networks instrument_id: "FFIV:US" instrument_type: "cfd" +Name: Heinz instrument_id: "KHC:US" instrument_type: "cfd" +Name: British American Tobacco instrument_id: "BATSL-CHIX" instrument_type: "cfd" +Name: Nvidia instrument_id: "NVDA:US" instrument_type: "cfd" +Name: E.ON instrument_id: "EOAND-CHIX" instrument_type: "cfd" +Name: Citrix Systems instrument_id: "CTXS:US" instrument_type: "cfd" +Name: UK 100 instrument_id: "UK100" instrument_type: "cfd" +Name: BBVA instrument_id: "BBVAE-CHIX" instrument_type: "cfd" +Name: Philip Morris Int. instrument_id: "PM:US" instrument_type: "cfd" +Name: Consolidated Edison instrument_id: "ED:US" instrument_type: "cfd" +Name: Netflix instrument_id: "NFLX:US" instrument_type: "cfd" +Name: Allianz instrument_id: "ALVD-CHIX" instrument_type: "cfd" +Name: FR 40 instrument_id: "FRANCE40" instrument_type: "cfd" +Name: Schlumberger instrument_id: "SLB:US" instrument_type: "cfd" +Name: Platinum instrument_id: "XPTUSD" instrument_type: "cfd" +Name: Consumer Discretionary SPDR instrument_id: "XLY" instrument_type: "cfd" +Name: BHP Billiton instrument_id: "BLTL-CHIX" instrument_type: "cfd" +Name: Credit Suisse instrument_id: "CSGNZ-CHIX" instrument_type: "cfd" +Name: Activision Blizzard instrument_id: "ATVI:US" instrument_type: "cfd" +Name: Hasbro instrument_id: "HAS:US" instrument_type: "cfd" +Name: Bristol-Myers Squibb instrument_id: "BMY:US" instrument_type: "cfd" +Name: Equity Residential instrument_id: "EQR:US" instrument_type: "cfd" +Name: Suncor Energy Inc. instrument_id: "SU" instrument_type: "cfd" +Name: Cintas instrument_id: "CTAS:US" instrument_type: "cfd" +Name: Morgan Stanley instrument_id: "MORSTAN" instrument_type: "cfd" +Name: Devon Energy instrument_id: "DVN:US" instrument_type: "cfd" +Name: Dun & Bradstreet instrument_id: "DNB:US" instrument_type: "cfd" +Name: S&P Metals & Mining ETF instrument_id: "XME" instrument_type: "cfd" +Name: SP 35 instrument_id: "SPAIN35" instrument_type: "cfd" +Name: Boeing instrument_id: "BA:US" instrument_type: "cfd" +Name: Ferrari instrument_id: "FERRARI" instrument_type: "cfd" +Name: US Real Estate ETF instrument_id: "IYR" instrument_type: "cfd" +Name: Dover instrument_id: "DOV:US" instrument_type: "cfd" +Name: Honeywell instrument_id: "HON:US" instrument_type: "cfd" +Name: Marks & Spencer instrument_id: "MKSL-CHIX" instrument_type: "cfd" +Name: BMW instrument_id: "BMWD-CHIX" instrument_type: "cfd" +Name: HK 50 instrument_id: "HONGKONG50" instrument_type: "cfd" +Name: PayPal instrument_id: "PYPL:US" instrument_type: "cfd" +Name: Alcoa instrument_id: "AA:US" instrument_type: "cfd" +Name: CVS Health instrument_id: "CVS:US" instrument_type: "cfd" +Name: iShares Russell 2000 ETF instrument_id: "IWM" instrument_type: "cfd" +Name: Walgreens Boots All. instrument_id: "WBA:US" instrument_type: "cfd" +Name: ANSYS instrument_id: "ANSS" instrument_type: "cfd" +Name: Energy SPDR instrument_id: "XLE" instrument_type: "cfd" +Name: Wheat instrument_id: "W1" instrument_type: "cfd" +Name: Ecolab instrument_id: "ECL:US" instrument_type: "cfd" +Name: Starbucks instrument_id: "SBUX:US" instrument_type: "cfd" +Name: Heineken Holding NV instrument_id: "HEIOA-CHIX" instrument_type: "cfd" +Name: Quest Diagnostics instrument_id: "DGX:US" instrument_type: "cfd" +Name: easyJet instrument_id: "EZJL-CHIX" instrument_type: "cfd" +Name: JP 225 instrument_id: "JAPAN225" instrument_type: "cfd" +Name: AMD instrument_id: "AMD" instrument_type: "cfd" +Name: Colgate-Palmolive instrument_id: "CL:US" instrument_type: "cfd" +Name: Salesforce.com instrument_id: "CRM:US" instrument_type: "cfd" +Name: Technology SPDR instrument_id: "XLK" instrument_type: "cfd" +Name: Dropbox instrument_id: "DBX" instrument_type: "cfd" +Name: Fidelity National Information Services instrument_id: "FIS:US" instrument_type: "cfd" +Name: 3M Company instrument_id: "MMM:US" instrument_type: "cfd" +Name: Daimler instrument_id: "DAID-CHIX" instrument_type: "cfd" +Name: Baidu instrument_id: "BAIDU" instrument_type: "cfd" +Name: Wal-Mart Stores instrument_id: "WMT:US" instrument_type: "cfd" +Name: Exxon Mobil instrument_id: "XOM:US" instrument_type: "cfd" +Name: Raytheon instrument_id: "RTN:US" instrument_type: "cfd" +Name: eBay instrument_id: "EBAY:US" instrument_type: "cfd" +Name: Discovery – Class A instrument_id: "DISCA:US" instrument_type: "cfd" +Name: Oil Services ETF instrument_id: "OIH" instrument_type: "cfd" +Name: Microsoft instrument_id: "MSFT" instrument_type: "cfd" +Name: Chevron instrument_id: "CVX:US" instrument_type: "cfd" +Name: Lloyds Banking Group PLC instrument_id: "LLOYL-CHIX" instrument_type: "cfd" +Name: 20+ Year Treasury Bond ETF instrument_id: "TLT" instrument_type: "cfd" +Name: Adidas instrument_id: "ADSD-CHIX" instrument_type: "cfd" +Name: Comcast – Class A instrument_id: "CMCSA:US" instrument_type: "cfd" +Name: Danaher instrument_id: "DHR:US" instrument_type: "cfd" +Name: Align Technology instrument_id: "ALGN" instrument_type: "cfd" +Name: Volkswagen instrument_id: "VOW3D-CHIX" instrument_type: "cfd" +Name: Fiserv instrument_id: "FISV:US" instrument_type: "cfd" +Name: L'Oreal instrument_id: "ORP-CHIX" instrument_type: "cfd" +Name: D. R. Horton instrument_id: "DHI:US" instrument_type: "cfd" +Name: Deutsche Telekom instrument_id: "DTED-CHIX" instrument_type: "cfd" +Name: Gold Miners ETF instrument_id: "GDX" instrument_type: "cfd" +Name: Gold instrument_id: "XAUUSD" instrument_type: "cfd" +Name: Extra Space Storage instrument_id: "EXR:US" instrument_type: "cfd" +Name: Manchester United instrument_id: "MANU" instrument_type: "cfd" +Name: Banco Santander instrument_id: "SANE-CHIX" instrument_type: "cfd" +Name: Abbott Labs instrument_id: "ABT:US" instrument_type: "cfd" +Name: FMC Corporation instrument_id: "FMC:US" instrument_type: "cfd" +Name: Snapchat instrument_id: "SNAP" instrument_type: "cfd" +Name: ThyssenKrupp instrument_id: "TKAD-CHIX" instrument_type: "cfd" +Name: GER 30 instrument_id: "GERMANY30" instrument_type: "cfd" +Name: Fortune Brands Home & Security instrument_id: "FBHS:US" instrument_type: "cfd" +Name: Crude Oil Brent instrument_id: "UKOUSD" instrument_type: "cfd" +Name: Coca Cola instrument_id: "COKE" instrument_type: "cfd" +Name: Essex Property Trust instrument_id: "ESS:US" instrument_type: "cfd" +Name: Wm Morrison Supermarkets instrument_id: "MRWL-CHIX" instrument_type: "cfd" +Name: Gilead Sciences instrument_id: "GILD:US" instrument_type: "cfd" +Name: MasterCard instrument_id: "MA:US" instrument_type: "cfd" +Name: Nestlé instrument_id: "NESNZ-CHIX" instrument_type: "cfd" +Name: CenturyLink instrument_id: "CTL:US" instrument_type: "cfd" +Name: Deutsche Bank instrument_id: "DBKD-CHIX" instrument_type: "cfd" +Name: T-Mobile US, Inc. instrument_id: "TMUS" instrument_type: "cfd" +Name: McDonald's instrument_id: "MCDON" instrument_type: "cfd" +Name: Diamond Offshore Drilling instrument_id: "DO:US" instrument_type: "cfd" +Name: Intel instrument_id: "INTEL" instrument_type: "cfd" +Name: Fifth Third Bank instrument_id: "FITB:US" instrument_type: "cfd" +Name: Best Buy instrument_id: "BBY:US" instrument_type: "cfd" +Name: EQT Corporation instrument_id: "EQT:US" instrument_type: "cfd" +Name: BP PLC instrument_id: "BPL-CHIX" instrument_type: "cfd" +Name: E-Trade instrument_id: "ETFC:US" instrument_type: "cfd" +Name: Stryker instrument_id: "SYK:US" instrument_type: "cfd" +Name: Dow Jones Industrial Average ETF instrument_id: "DIA" instrument_type: "cfd" +Name: NEM ×20 instrument_id: "XEMUSD-L" instrument_type: "crypto" +Name: Ethereum instrument_id: "ETHUSD" instrument_type: "crypto" +Name: EOS ×20 instrument_id: "EOSUSD-L" instrument_type: "crypto" +Name: Qtum instrument_id: "QTMUSD" instrument_type: "crypto" +Name: EOS instrument_id: "EOSUSD" instrument_type: "crypto" +Name: Bitcoin Cash ×20 instrument_id: "BCHUSD-L" instrument_type: "crypto" +Name: Bitcoin instrument_id: "BTCUSD" instrument_type: "crypto" +Name: TRON instrument_id: "TRXUSD" instrument_type: "crypto" +Name: Ripple ×20 instrument_id: "XRPUSD-L" instrument_type: "crypto" +Name: Stellar ×20 instrument_id: "XLMUSD-L" instrument_type: "crypto" +Name: Ethereum ×50 instrument_id: "ETHUSD-L" instrument_type: "crypto" +Name: ZCash instrument_id: "ZECUSD" instrument_type: "crypto" +Name: Litecoin instrument_id: "LTCUSD" instrument_type: "crypto" +Name: Bitcoin Cash instrument_id: "BCHUSD" instrument_type: "crypto" +Name: Bitcoin ×100 instrument_id: "BTCUSD-L" instrument_type: "crypto" +Name: OmiseGo instrument_id: "OMGUSD" instrument_type: "crypto" +Name: TRON ×50 instrument_id: "TRXUSD-L" instrument_type: "crypto" +Name: Cardano ×20 instrument_id: "ADAUSD-L" instrument_type: "crypto" +Name: Dash instrument_id: "DSHUSD" instrument_type: "crypto" +Name: Litecoin ×20 instrument_id: "LTCUSD-L" instrument_type: "crypto" +Name: Ripple instrument_id: "XRPUSD" instrument_type: "crypto" \ No newline at end of file diff --git a/docs/es/index.html b/docs/es/index.html new file mode 100644 index 00000000..7e530216 --- /dev/null +++ b/docs/es/index.html @@ -0,0 +1,1102 @@ + + + + + + + + + + + + + + + + + + + + + + Empezar - iqoptionapi document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + +
    + +
    + +
    + + + + + + + + + +
    + + Traduccion: Dimitri + +
    Ayudando a quien te ayuda.
    +

    + Apoya este proyecto con una donación +

    + + Donación + +
    + + + +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    + + +
    + +
    + + +
    +
    + + + + + + + + + + +

    Primeros pasos

    +

    Instalar iqoptionapi

    +

    descarga el código fuente y ejecuta lo siguiente:

    +
    python setup.py install
    +
    +

    o instalar usando (Necesitas git instalada): +

    pip install -U git+git://github.com/iqoptionapi/iqoptionapi.git
    +

    +

    Un ejemplo simple

    +
    import time
    +from iqoptionapi.stable_api import IQ_Option
    +Iq=IQ_Option("email","password")
    +Iq.connect()#connect to iqoption
    +goal="EURUSD"
    +print("get candles")
    +print(Iq.get_candles(goal,60,111,time.time()))
    +
    +

    Importar la librería

    +
    from iqoptionapi.stable_api import IQ_Option
    +
    +

    Login

    +

    Iq.connect() will return (check,reason)

    +

    Si la conexión es exitosa, devuelve -> True,None

    +

    Si hay algún fallo en la conexión, devuelve -> False,reason

    +
    from iqoptionapi.stable_api import IQ_Option
    +import logging
    +
    +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +Iq=IQ_Option("email","password")
    +check, reason=Iq.connect()#connect to iqoption
    +print(check, reason)
    +
    +

    Activar el modo Debug

    +
    import logging
    +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +
    +

    Conectarse y comprobar la conexión

    +

    A veces la conexión se cierra, así que debemos de comprobar la conexión y +volvenos a conectar.

    +

    Prueba a desconectar tu conexión y volverla a conectar para probar el siguiente +ejemplo.

    +
    from iqoptionapi.stable_api import IQ_Option
    +error_password="""{"code":"invalid_credentials","message":"You entered the wrong credentials. Please check that the login/password is correct."}"""
    +iqoption = IQ_Option("email", "password")
    +check,reason=iqoption.connect()
    +if check:
    +    print("Activa tu robot")
    +    #Si ves esto puedess cerrar la conexión para probarlo
    +    while True:
    +        if iqoption.check_connect()==False:#Detecta si el websocket ha sido cerrado
    +            print("Probando a reconectar")
    +            check,reason=iqoption.connect()
    +            if check:
    +                print("Reconectado con éxito")
    +            else:
    +                if reason==error_password:
    +                    print("Contraseña incorrecta")
    +                else:
    +                    print("No hay conexión")
    +
    +else:
    +
    +    if reason=="[Errno -2] Nombre or servicio no conocido":
    +        print("No hay conexión")
    +    elif reason==error_password:
    +        print("Error en la Contraseña")
    +
    +

    set_session

    +

    Default User-Agent is "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36"

    +
    from iqoptionapi.stable_api import IQ_Option
    +import logging
    +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s')
    +
    +Iq=IQ_Option("email","password")
    +
    +#Por defecto es "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36"
    +
    +header={"User-Agent":r"Mozilla/5.0 (X11; Linux x86_64; rv:70.0) Gecko/20100101 Firefox/70.0"}
    +cookie={"Iq":"GOOD"}
    +
    +Iq.set_session(header,cookie)
    +
    +Iq.connect()#Conectar a IqOption
    +
    +

    Comprobar versión

    +
    from iqoptionapi.stable_api import IQ_Option
    +print(IQ_Option.__version__)
    +
    +

    Comprobar conexión

    +

    return True/False

    +
    print(Iq.check_connect())
    +
    +

    Reconnect

    +
    Iq.connect()
    +
    +

    time

    +

    get_server_timestamp +El tiempo se sincronica con iqoption

    +
    Iq.get_server_timestamp()
    +
    + + + + + + + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/es/techinical analysis/image/Oscillators.JPG b/docs/es/techinical analysis/image/Oscillators.JPG new file mode 100644 index 00000000..77e72115 Binary files /dev/null and b/docs/es/techinical analysis/image/Oscillators.JPG differ diff --git a/docs/es/techinical analysis/image/info.jpg b/docs/es/techinical analysis/image/info.jpg new file mode 100644 index 00000000..92af60ee Binary files /dev/null and b/docs/es/techinical analysis/image/info.jpg differ diff --git a/docs/es/techinical analysis/image/moving-average.JPG b/docs/es/techinical analysis/image/moving-average.JPG new file mode 100644 index 00000000..171e3946 Binary files /dev/null and b/docs/es/techinical analysis/image/moving-average.JPG differ diff --git a/docs/es/techinical analysis/image/pivots.JPG b/docs/es/techinical analysis/image/pivots.JPG new file mode 100644 index 00000000..34039c41 Binary files /dev/null and b/docs/es/techinical analysis/image/pivots.JPG differ diff --git a/docs/es/techinical analysis/image/technical-analysis.jpg b/docs/es/techinical analysis/image/technical-analysis.jpg new file mode 100644 index 00000000..1c57e334 Binary files /dev/null and b/docs/es/techinical analysis/image/technical-analysis.jpg differ diff --git a/docs/es/techinical analysis/index.html b/docs/es/techinical analysis/index.html new file mode 100644 index 00000000..7fd048d1 --- /dev/null +++ b/docs/es/techinical analysis/index.html @@ -0,0 +1,943 @@ + + + + + + + + + + + + + + + + + + + + + + Análisis técnico - iqoptionapi document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + +
    + +
    + +
    + + + + + + + + + +
    + + Traduccion: Dimitri + +
    Ayudando a quien te ayuda.
    +

    + Apoya este proyecto con una donación +

    + + Donación + +
    + + + +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    + + +
    +
    +
    + + +
    +
    +
    + + +
    +
    + + + + + + + + + + +

    Análisis técnico

    + +

    Tecnical analysis

    +

    Está disponible en los assets que puedes comprobar en "asset info":

    +

    asset Info

    +

    Si hay una sesión como esta tu puedes obtener los datos

    +

    NOTA: Si no hay análisis técnico en el asset que tu quieres, no podrás uarlo

    +

    techinical Analysis menu

    +

    Hay algunos indicadores disponibles

    +

    Pivotes

    +

    Pivots

    +

    Osciladores

    +

    Oscillators

    +

    Promedioss móviles

    +

    Moving Averages

    +

    Cómo usar:

    +

    asset="GBPUSD"
    +indicators = Iq.get_technical_indicators(asset)
    +print(indicators)
    +
    +Si el asset no contiene el análisis técnico, devolverá:

    +

    {
    +  "code": "no_technical_indicator_available",
    +  "message": "Active is not supported: active id 'ACTIVE_ID_PASSED'"
    +}
    +
    +Si lo contiene, devolverá algo parecido a esto:

    +

    NOTA: DEBE ANALIZAR EL CONTENIDO QUE SE IMPRIME

    +
    [
    +  {
    +    "action": "hold",
    +    "candle_size": 60,
    +    "group": "OSCILLATORS",
    +    "name": "Relative Strength Index (14)",
    +    "value": 59.168583
    +  },
    +  {
    +    "action": "hold",
    +    "candle_size": 60,
    +    "group": "PIVOTS",
    +    "name": "Classic s3",
    +    "value": 1.057292
    +  }
    +  .....
    +]
    +
    + + + + + + + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/image/features/econimic_calendar.png b/docs/image/features/econimic_calendar.png new file mode 100644 index 00000000..d2776fd7 Binary files /dev/null and b/docs/image/features/econimic_calendar.png differ diff --git a/docs/image/features/news_feed.png b/docs/image/features/news_feed.png new file mode 100644 index 00000000..1dbfa2d3 Binary files /dev/null and b/docs/image/features/news_feed.png differ diff --git a/docs/image/flags/br.png b/docs/image/flags/br.png new file mode 100644 index 00000000..ae18081a Binary files /dev/null and b/docs/image/flags/br.png differ diff --git a/docs/image/flags/en.png b/docs/image/flags/en.png new file mode 100644 index 00000000..56268bc4 Binary files /dev/null and b/docs/image/flags/en.png differ diff --git a/docs/image/flags/es.png b/docs/image/flags/es.png new file mode 100644 index 00000000..6a9319d1 Binary files /dev/null and b/docs/image/flags/es.png differ diff --git a/docs/image/icon/brain.png b/docs/image/icon/brain.png new file mode 100644 index 00000000..7bda7cbf Binary files /dev/null and b/docs/image/icon/brain.png differ diff --git a/docs/image/icon/iq.ico b/docs/image/icon/iq.ico new file mode 100644 index 00000000..af03fbce Binary files /dev/null and b/docs/image/icon/iq.ico differ diff --git a/docs/image/icon/mars.png b/docs/image/icon/mars.png new file mode 100644 index 00000000..ed37b30c Binary files /dev/null and b/docs/image/icon/mars.png differ diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 00000000..663b893f --- /dev/null +++ b/docs/index.html @@ -0,0 +1,889 @@ + + + + + + + + + + + + + + + + + + + + + + iqoptionapi document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + +
    + +
    + +
    + + + + + + + + + + + +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    + + +
    +
    +
    + + +
    +
    +
    + + +
    +
    + + + + + + + + + + +

    Home

    + +

    CONTRIBUTE

    +

    Ajudar a manter o projeto e trazer novas features
    Help maintain the project and bring new features

    +

    UPCOMMING FEATURES

    +
      +
    • Economic calendar (UNDER DEVELOPMENT)
    • +
    +

    ECONOMIC CALENDAR

    +
      +
    • News feed
    • +
    +

    NEWS FEED

    +

    IQOPTION API SUPPORTED BY COMMUNITY

    +

    This api is intended to be an open source project to communicate with iqOption site. +this is a no official repository, it means it is maintained by community

    +

    Esta API é destinada a ser um projeto de código aberto para se comunicar com o site da iqOption. +este é um repositório não oficial, significa que é mantido pela comunidade

    +

    Esta API está destinada a ser un proyecto de código abierto para comunicarse con el sitio de IqIoption. +este es un repositorio no oficial, significa que es mantenido por la comunidad

    +
    +

    Idiomas | Languages

    + + Português + + + Espanol + + + English + +
    + + + + + + + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/index.rst b/docs/index.rst deleted file mode 100644 index 6aca97d3..00000000 --- a/docs/index.rst +++ /dev/null @@ -1,23 +0,0 @@ -.. iqoptionapi documentation master file, created by - sphinx-quickstart on Sun Aug 28 16:48:39 2016. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Welcome to iqoptionapi's documentation! -======================================= - -Contents: - -.. toctree:: - :maxdepth: 4 - - modules - - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - diff --git a/docs/iqoptionapi.http.rst b/docs/iqoptionapi.http.rst deleted file mode 100644 index 57285bb2..00000000 --- a/docs/iqoptionapi.http.rst +++ /dev/null @@ -1,118 +0,0 @@ -iqoptionapi.http package -======================== - -Submodules ----------- - -iqoptionapi.http.appinit module -------------------------------- - -.. automodule:: iqoptionapi.http.appinit - :members: - :undoc-members: - :show-inheritance: - -iqoptionapi.http.auth module ----------------------------- - -.. automodule:: iqoptionapi.http.auth - :members: - :undoc-members: - :show-inheritance: - -iqoptionapi.http.billing module -------------------------------- - -.. automodule:: iqoptionapi.http.billing - :members: - :undoc-members: - :show-inheritance: - -iqoptionapi.http.buyback module -------------------------------- - -.. automodule:: iqoptionapi.http.buyback - :members: - :undoc-members: - :show-inheritance: - -iqoptionapi.http.changebalance module -------------------------------------- - -.. automodule:: iqoptionapi.http.changebalance - :members: - :undoc-members: - :show-inheritance: - -iqoptionapi.http.getprofile module ----------------------------------- - -.. automodule:: iqoptionapi.http.getprofile - :members: - :undoc-members: - :show-inheritance: - -iqoptionapi.http.getregdata module ----------------------------------- - -.. automodule:: iqoptionapi.http.getregdata - :members: - :undoc-members: - :show-inheritance: - -iqoptionapi.http.login module ------------------------------ - -.. automodule:: iqoptionapi.http.login - :members: - :undoc-members: - :show-inheritance: - -iqoptionapi.http.loginv2 module -------------------------------- - -.. automodule:: iqoptionapi.http.loginv2 - :members: - :undoc-members: - :show-inheritance: - -iqoptionapi.http.profile module -------------------------------- - -.. automodule:: iqoptionapi.http.profile - :members: - :undoc-members: - :show-inheritance: - -iqoptionapi.http.register module --------------------------------- - -.. automodule:: iqoptionapi.http.register - :members: - :undoc-members: - :show-inheritance: - -iqoptionapi.http.resource module --------------------------------- - -.. automodule:: iqoptionapi.http.resource - :members: - :undoc-members: - :show-inheritance: - -iqoptionapi.http.token module ------------------------------ - -.. automodule:: iqoptionapi.http.token - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: iqoptionapi.http - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/iqoptionapi.rst b/docs/iqoptionapi.rst deleted file mode 100644 index 4f3b1b21..00000000 --- a/docs/iqoptionapi.rst +++ /dev/null @@ -1,38 +0,0 @@ -iqoptionapi package -=================== - -Subpackages ------------ - -.. toctree:: - - iqoptionapi.http - iqoptionapi.ws - -Submodules ----------- - -iqoptionapi.api module ----------------------- - -.. automodule:: iqoptionapi.api - :members: - :undoc-members: - :show-inheritance: - -iqoptionapi.constants module ----------------------------- - -.. automodule:: iqoptionapi.constants - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: iqoptionapi - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/iqoptionapi.ws.chanels.rst b/docs/iqoptionapi.ws.chanels.rst deleted file mode 100644 index 05f9f361..00000000 --- a/docs/iqoptionapi.ws.chanels.rst +++ /dev/null @@ -1,78 +0,0 @@ -iqoptionapi.ws.chanels package -============================== - -Submodules ----------- - -iqoptionapi.ws.chanels.base module ----------------------------------- - -.. automodule:: iqoptionapi.ws.chanels.base - :members: - :undoc-members: - :show-inheritance: - -iqoptionapi.ws.chanels.buyback module -------------------------------------- - -.. automodule:: iqoptionapi.ws.chanels.buyback - :members: - :undoc-members: - :show-inheritance: - -iqoptionapi.ws.chanels.buyv2 module ------------------------------------ - -.. automodule:: iqoptionapi.ws.chanels.buyv2 - :members: - :undoc-members: - :show-inheritance: - -iqoptionapi.ws.chanels.candles module -------------------------------------- - -.. automodule:: iqoptionapi.ws.chanels.candles - :members: - :undoc-members: - :show-inheritance: - -iqoptionapi.ws.chanels.setactives module ----------------------------------------- - -.. automodule:: iqoptionapi.ws.chanels.setactives - :members: - :undoc-members: - :show-inheritance: - -iqoptionapi.ws.chanels.ssid module ----------------------------------- - -.. automodule:: iqoptionapi.ws.chanels.ssid - :members: - :undoc-members: - :show-inheritance: - -iqoptionapi.ws.chanels.subscribe module ---------------------------------------- - -.. automodule:: iqoptionapi.ws.chanels.subscribe - :members: - :undoc-members: - :show-inheritance: - -iqoptionapi.ws.chanels.unsubscribe module ------------------------------------------ - -.. automodule:: iqoptionapi.ws.chanels.unsubscribe - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: iqoptionapi.ws.chanels - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/iqoptionapi.ws.objects.rst b/docs/iqoptionapi.ws.objects.rst deleted file mode 100644 index 6eb72784..00000000 --- a/docs/iqoptionapi.ws.objects.rst +++ /dev/null @@ -1,46 +0,0 @@ -iqoptionapi.ws.objects package -============================== - -Submodules ----------- - -iqoptionapi.ws.objects.base module ----------------------------------- - -.. automodule:: iqoptionapi.ws.objects.base - :members: - :undoc-members: - :show-inheritance: - -iqoptionapi.ws.objects.candles module -------------------------------------- - -.. automodule:: iqoptionapi.ws.objects.candles - :members: - :undoc-members: - :show-inheritance: - -iqoptionapi.ws.objects.profile module -------------------------------------- - -.. automodule:: iqoptionapi.ws.objects.profile - :members: - :undoc-members: - :show-inheritance: - -iqoptionapi.ws.objects.timesync module --------------------------------------- - -.. automodule:: iqoptionapi.ws.objects.timesync - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: iqoptionapi.ws.objects - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/iqoptionapi.ws.rst b/docs/iqoptionapi.ws.rst deleted file mode 100644 index 8719fa75..00000000 --- a/docs/iqoptionapi.ws.rst +++ /dev/null @@ -1,30 +0,0 @@ -iqoptionapi.ws package -====================== - -Subpackages ------------ - -.. toctree:: - - iqoptionapi.ws.chanels - iqoptionapi.ws.objects - -Submodules ----------- - -iqoptionapi.ws.client module ----------------------------- - -.. automodule:: iqoptionapi.ws.client - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: iqoptionapi.ws - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/javascripts/extra.js b/docs/javascripts/extra.js new file mode 100644 index 00000000..b1f42222 --- /dev/null +++ b/docs/javascripts/extra.js @@ -0,0 +1,27 @@ +window.MathJax = { + jax: ["input/TeX","input/MathML","input/AsciiMath","output/SVG"], + extensions: ["tex2jax.js","mml2jax.js","asciimath2jax.js","MathMenu.js","MathZoom.js","AssistiveMML.js", "a11y/accessibility-menu.js"], + TeX: { + extensions: ["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"] + }, + tex2jax: { + inlineMath: [ ["\\(","\\)"] ], + displayMath: [ ["\\[","\\]"] ] + }, + TeX: { + TagSide: "right", + TagIndent: ".8em", + MultLineWidth: "85%", + equationNumbers: { + autoNumber: "AMS", + }, + unicode: { + fonts: "STIXGeneral,'Arial Unicode MS'" + } + }, + displayAlign: "left", + showProcessingMessages: false, + messageStyle: "none" +}; + + diff --git a/docs/logo.png b/docs/logo.png new file mode 100644 index 00000000..a571a081 Binary files /dev/null and b/docs/logo.png differ diff --git a/docs/logo.svg b/docs/logo.svg new file mode 100644 index 00000000..c0dd470f --- /dev/null +++ b/docs/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/modules.rst b/docs/modules.rst deleted file mode 100644 index 041e603b..00000000 --- a/docs/modules.rst +++ /dev/null @@ -1,7 +0,0 @@ -iqoptionapi -=========== - -.. toctree:: - :maxdepth: 4 - - iqoptionapi diff --git a/docs/paypal-donate-button.png b/docs/paypal-donate-button.png new file mode 100644 index 00000000..7cd94d16 Binary files /dev/null and b/docs/paypal-donate-button.png differ diff --git a/docs/pt/changelog/index.html b/docs/pt/changelog/index.html new file mode 100644 index 00000000..3c057985 --- /dev/null +++ b/docs/pt/changelog/index.html @@ -0,0 +1,881 @@ + + + + + + + + + + + + + + + + + + + + + + Changelog - iqoptionapi document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + +
    + +
    + +
    + + + + + + + + + + +
    +
    Ajudando quem te ajuda
    +

    + Apoie este trabalho +

    + + Doação + +
    + + +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    + + +
    +
    +
    + + +
    +
    +
    + + +
    +
    + + + + + + + + + + +

    Changelog

    + +

    Version 5.3.0

    +

    add technical Indicators

    +
    from iqoptionapi.stable_api import IQ_Option
    +import logging
    +import time
    +import userdata
    +
    +asset= "EURUSD"
    +maxdict=10
    +size=300
    +
    +logging.disable(level=(logging.DEBUG))
    +
    +user = userdata.mainUser
    +Iq= IQ_Option(user["username"],user["password"])
    +indicators = Iq.get_technical_indicators(asset)
    +print(indicators)
    +print("passou while bot")
    +
    +

    Version: 5.1.1

    +

    fix change_balance

    +
    from iqoptionapi.stable_api import IQ_Option
    +email = "your@mail.ocm"
    +password = "your_password"
    +account_mode = "real" # real/practic
    +
    +Iq = IQ_Option(email,password, account_mode)
    +
    +balance_id = Iq.change_balance("practic")
    +
    +

    Add option balance_mode on create IQ_Option objetct.

    +
    from iqoptionapi.stable_api import IQ_Option
    +email = "your@mail.ocm"
    +password = "your_password"
    +account_mode = "real" # real/practic
    +
    +Iq = IQ_Option(email,password, account_mode)
    +
    +

    last update:2019/11/22

    +

    Version:5.1 +addget_option_open_by_other_pc api

    +

    Version:5.0

    +

    please donate >< get_digital_spot_profit_after_sale pay me lot of time

    +

    https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/125

    +

    add get_digital_spot_profit_after_sale api

    +

    Version:4.5

    +

    add get_remaning api

    +

    Version:4.4

    +

    fix check_win_digital(check_win_digital(Synchronous message) and check_win_digital_v2(Asynchronous messages) are different implement way)

    +

    add get_digital_position()

    +

    Version:4.3

    +

    add subscribe_top_assets_updated & popularity +https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/131

    +

    Version:4.2

    +

    add reconnect sample +add get_async_order api

    +

    Version:4.0.1

    +

    fix get_positions() +https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/132

    +

    add get_optioninfo_v2

    +

    Version:4.0.0

    +

    :exclamation::exclamation::exclamation: +update websocket-client==0.56 +:exclamation: +please uninstall all websocket-client and update up websocket-client==0.56

    +
    sudo pip uninstall websocket-client
    +sudo pip install websocket-client==0.56
    +
    +

    :exclamation:

    +
    + + + + + + + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/pt/forex/index.html b/docs/pt/forex/index.html new file mode 100644 index 00000000..06e9af47 --- /dev/null +++ b/docs/pt/forex/index.html @@ -0,0 +1,779 @@ + + + + + + + + + + + + + + + + + + + + + + Forex - iqoptionapi document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + +
    + +
    + +
    + + + + + + + + + + +
    +
    Ajudando quem te ajuda
    +

    + Apoie este trabalho +

    + + Doação + +
    + + +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    + + +
    +
    +
    + + +
    +
    +
    + + +
    +
    + + + + + + + + + + +

    Forex

    + +

    How to trade with forex

    + + + + + + + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/pt/index.html b/docs/pt/index.html new file mode 100644 index 00000000..eb4f7a09 --- /dev/null +++ b/docs/pt/index.html @@ -0,0 +1,815 @@ + + + + + + + + + + + + + + + + + + + + + + Primeiros Passos - iqoptionapi document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + +
    + +
    + +
    + + + + + + + + + + +
    +
    Ajudando quem te ajuda
    +

    + Apoie este trabalho +

    + + Doação + +
    + + +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    + + +
    +
    +
    + + +
    +
    +
    + + +
    +
    + + + + + + + + + + +

    IQ Option API

    +

    Ajudar a manter o projeto e trazer novas features

    +

    Ainda não possui a tradução em portugues.

    +

    Em breve estará disponivel.

    +

    Para manter o projeto continuamente atualizado contribua com uma doação, com alguma correção ou melhoria.

    +

    As doações serão usadas para adicionar novas features.

    + + + + + + + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/search/search_index.json b/docs/search/search_index.json new file mode 100644 index 00000000..ad27416c --- /dev/null +++ b/docs/search/search_index.json @@ -0,0 +1 @@ +{"config":{"indexing":"full","lang":["pt","en","es"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"CONTRIBUTE \u00b6 Ajudar a manter o projeto e trazer novas features Help maintain the project and bring new features UPCOMMING FEATURES \u00b6 Economic calendar (UNDER DEVELOPMENT) News feed IQOPTION API SUPPORTED BY COMMUNITY \u00b6 This api is intended to be an open source project to communicate with iqOption site. this is a no official repository, it means it is maintained by community Esta API \u00e9 destinada a ser um projeto de c\u00f3digo aberto para se comunicar com o site da iqOption. este \u00e9 um reposit\u00f3rio n\u00e3o oficial, significa que \u00e9 mantido pela comunidade Esta API est\u00e1 destinada a ser un proyecto de c\u00f3digo abierto para comunicarse con el sitio de IqIoption. este es un repositorio no oficial, significa que es mantenido por la comunidad Idiomas | Languages","title":"Home"},{"location":"#contribute","text":"Ajudar a manter o projeto e trazer novas features Help maintain the project and bring new features","title":"CONTRIBUTE"},{"location":"#upcomming-features","text":"Economic calendar (UNDER DEVELOPMENT) News feed","title":"UPCOMMING FEATURES"},{"location":"#iqoption-api-supported-by-community","text":"This api is intended to be an open source project to communicate with iqOption site. this is a no official repository, it means it is maintained by community Esta API \u00e9 destinada a ser um projeto de c\u00f3digo aberto para se comunicar com o site da iqOption. este \u00e9 um reposit\u00f3rio n\u00e3o oficial, significa que \u00e9 mantido pela comunidade Esta API est\u00e1 destinada a ser un proyecto de c\u00f3digo abierto para comunicarse con el sitio de IqIoption. este es un repositorio no oficial, significa que es mantenido por la comunidad","title":"IQOPTION API SUPPORTED BY COMMUNITY"},{"location":"en/","text":"Get start \u00b6 Install iqoptionapi \u00b6 You can download the source code and run this python setup.py install or install using (you need git installed ): pip install -U git+git://github.com/iqoptionapi/iqoptionapi.git little sample \u00b6 import time from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption goal = \"EURUSD\" print ( \"get candles\" ) print ( Iq . get_candles ( goal , 60 , 111 , time . time ())) Import \u00b6 from iqoptionapi.stable_api import IQ_Option Login \u00b6 Iq.connect() will return (check,reason) if connect sucess return True,None if connect fail return False,reason from iqoptionapi.stable_api import IQ_Option import logging logging . basicConfig ( level = logging . DEBUG , format = ' %(asctime)s %(message)s ' ) Iq = IQ_Option ( \"email\" , \"password\" ) check , reason = Iq . connect () #connect to iqoption print ( check , reason ) Debug mode on \u00b6 import logging logging . basicConfig ( level = logging . DEBUG , format = ' %(asctime)s %(message)s ' ) Connect&Check connect \u00b6 some time connect will close so this way can check connect and reconnect try close your network and restart network in this sample from iqoptionapi.stable_api import IQ_Option error_password = \"\"\"{\"code\":\"invalid_credentials\",\"message\":\"You entered the wrong credentials. Please check that the login/password is correct.\"}\"\"\" iqoption = IQ_Option ( \"email\" , \"password\" ) check , reason = iqoption . connect () if check : print ( \"Start your robot\" ) #if see this you can close network for test while True : if iqoption . check_connect () == False : #detect the websocket is close print ( \"try reconnect\" ) check , reason = iqoption . connect () if check : print ( \"Reconnect successfully\" ) else : if reason == error_password : print ( \"Error Password\" ) else : print ( \"No Network\" ) else : if reason == \"[Errno -2] Name or service not known\" : print ( \"No Network\" ) elif reason == error_password : print ( \"Error Password\" ) set_session \u00b6 Default User-Agent is \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36\" from iqoptionapi.stable_api import IQ_Option import logging logging . basicConfig ( level = logging . DEBUG , format = ' %(asctime)s %(message)s ' ) Iq = IQ_Option ( \"email\" , \"password\" ) #Default is \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36\" header = { \"User-Agent\" : r \"Mozilla/5.0 (X11; Linux x86_64; rv:70.0) Gecko/20100101 Firefox/70.0\" } cookie = { \"Iq\" : \"GOOD\" } Iq . set_session ( header , cookie ) Iq . connect () #connect to iqoption Check version \u00b6 from iqoptionapi.stable_api import IQ_Option print ( IQ_Option . __version__ ) Check connect \u00b6 return True/False print(Iq.check_connect()) Reconnect \u00b6 Iq . connect () time \u00b6 get_server_timestamp the get_server_timestamp time is sync with iqoption Iq . get_server_timestamp ()","title":"Get Start"},{"location":"en/#get-start","text":"","title":"Get start"},{"location":"en/#install-iqoptionapi","text":"You can download the source code and run this python setup.py install or install using (you need git installed ): pip install -U git+git://github.com/iqoptionapi/iqoptionapi.git","title":"Install iqoptionapi"},{"location":"en/#little-sample","text":"import time from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption goal = \"EURUSD\" print ( \"get candles\" ) print ( Iq . get_candles ( goal , 60 , 111 , time . time ()))","title":"little sample"},{"location":"en/#import","text":"from iqoptionapi.stable_api import IQ_Option","title":"Import"},{"location":"en/#login","text":"Iq.connect() will return (check,reason) if connect sucess return True,None if connect fail return False,reason from iqoptionapi.stable_api import IQ_Option import logging logging . basicConfig ( level = logging . DEBUG , format = ' %(asctime)s %(message)s ' ) Iq = IQ_Option ( \"email\" , \"password\" ) check , reason = Iq . connect () #connect to iqoption print ( check , reason )","title":"Login"},{"location":"en/#debug-mode-on","text":"import logging logging . basicConfig ( level = logging . DEBUG , format = ' %(asctime)s %(message)s ' )","title":"Debug mode on"},{"location":"en/#connectcheck-connect","text":"some time connect will close so this way can check connect and reconnect try close your network and restart network in this sample from iqoptionapi.stable_api import IQ_Option error_password = \"\"\"{\"code\":\"invalid_credentials\",\"message\":\"You entered the wrong credentials. Please check that the login/password is correct.\"}\"\"\" iqoption = IQ_Option ( \"email\" , \"password\" ) check , reason = iqoption . connect () if check : print ( \"Start your robot\" ) #if see this you can close network for test while True : if iqoption . check_connect () == False : #detect the websocket is close print ( \"try reconnect\" ) check , reason = iqoption . connect () if check : print ( \"Reconnect successfully\" ) else : if reason == error_password : print ( \"Error Password\" ) else : print ( \"No Network\" ) else : if reason == \"[Errno -2] Name or service not known\" : print ( \"No Network\" ) elif reason == error_password : print ( \"Error Password\" )","title":"Connect&Check connect"},{"location":"en/#set_session","text":"Default User-Agent is \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36\" from iqoptionapi.stable_api import IQ_Option import logging logging . basicConfig ( level = logging . DEBUG , format = ' %(asctime)s %(message)s ' ) Iq = IQ_Option ( \"email\" , \"password\" ) #Default is \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36\" header = { \"User-Agent\" : r \"Mozilla/5.0 (X11; Linux x86_64; rv:70.0) Gecko/20100101 Firefox/70.0\" } cookie = { \"Iq\" : \"GOOD\" } Iq . set_session ( header , cookie ) Iq . connect () #connect to iqoption","title":"set_session"},{"location":"en/#check-version","text":"from iqoptionapi.stable_api import IQ_Option print ( IQ_Option . __version__ )","title":"Check version"},{"location":"en/#check-connect","text":"return True/False print(Iq.check_connect())","title":"Check connect"},{"location":"en/#reconnect","text":"Iq . connect ()","title":"Reconnect"},{"location":"en/#time","text":"get_server_timestamp the get_server_timestamp time is sync with iqoption Iq . get_server_timestamp ()","title":"time"},{"location":"en/2%20factor/","text":"Two Factor Auth \u00b6 Enable two factor auth on iqoption site then use this code to and auth code from iqoptionapi.stable_api import IQ_Option print ( \"Conecting...\" ) api = IQ_Option ( \"email\" , \"password\" ) status , reason = api . connect () print ( '##### first try #####' ) print ( 'Status:' , status ) print ( 'Reason:' , reason ) print ( \"Email:\" , api . email ) if reason == \"2FA\" : print ( '##### 2FA enabled #####' ) print ( \"An sms has been sent with a code to your number\" ) code_sms = input ( \"Enter the code received: \" ) status , reason = api . connect_2fa ( code_sms ) print ( '##### second try #####' ) print ( 'Status:' , status ) print ( 'Reason:' , reason ) print ( \"Email:\" , api . email ) print ( \"Balance:\" , api . get_balance ()) print ( \"##############################\" )","title":"2 factor Auth"},{"location":"en/2%20factor/#two-factor-auth","text":"Enable two factor auth on iqoption site then use this code to and auth code from iqoptionapi.stable_api import IQ_Option print ( \"Conecting...\" ) api = IQ_Option ( \"email\" , \"password\" ) status , reason = api . connect () print ( '##### first try #####' ) print ( 'Status:' , status ) print ( 'Reason:' , reason ) print ( \"Email:\" , api . email ) if reason == \"2FA\" : print ( '##### 2FA enabled #####' ) print ( \"An sms has been sent with a code to your number\" ) code_sms = input ( \"Enter the code received: \" ) status , reason = api . connect_2fa ( code_sms ) print ( '##### second try #####' ) print ( 'Status:' , status ) print ( 'Reason:' , reason ) print ( \"Email:\" , api . email ) print ( \"Balance:\" , api . get_balance ()) print ( \"##############################\" )","title":"Two Factor Auth"},{"location":"en/account/account/","text":"Account \u00b6 get_balance() \u00b6 Iq . get_balance () get_balance_v2() \u00b6 more accuracy Iq . get_balance_v2 () get_currency() \u00b6 you will check what currency you use Iq . get_currency () reset_practice_balance() \u00b6 reset practice balance to $10000 from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption print ( Iq . reset_practice_balance ()) Change real/practice Account \u00b6 MODE=\"PRACTICE\"/\"REAL\"/\"TOURNAMENT\" PRACTICE - it is demo account REAL - It is our money in risk TOURNAMENT - Tournaments account balance_type = \"PRACTICE\" Iq . change_balance ( balance_type ) get Other People stratagy \u00b6 sample \u00b6 from iqoptionapi.stable_api import IQ_Option import logging import time #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption while_run_time = 10 #For digital option name = \"live-deal-digital-option\" #\"live-deal-binary-option-placed\"/\"live-deal-digital-option\" active = \"EURUSD\" _type = \"PT1M\" #\"PT1M\"/\"PT5M\"/\"PT15M\" buffersize = 10 # print ( \"_____________subscribe_live_deal_______________\" ) Iq . subscribe_live_deal ( name , active , _type , buffersize ) start_t = time . time () while True : #data size is below buffersize #data[0] is the last data data = ( Iq . get_live_deal ( name , active , _type )) print ( \"__For_digital_option__ data size:\" + str ( len ( data ))) print ( data ) print ( \" \\n\\n \" ) time . sleep ( 1 ) if time . time () - start_t > while_run_time : break print ( \"_____________unscribe_live_deal_______________\" ) Iq . unscribe_live_deal ( name , active , _type ) #For binary option name = \"live-deal-binary-option-placed\" active = \"EURUSD\" _type = \"turbo\" #\"turbo\"/\"binary\" buffersize = 10 # print ( \"_____________subscribe_live_deal_______________\" ) Iq . subscribe_live_deal ( name , active , _type , buffersize ) start_t = time . time () while True : #data size is below buffersize #data[0] is the last data data = ( Iq . get_live_deal ( name , active , _type )) print ( \"__For_binary_option__ data size:\" + str ( len ( data ))) print ( data ) print ( \" \\n\\n \" ) time . sleep ( 1 ) if time . time () - start_t > while_run_time : break print ( \"_____________unscribe_live_deal_______________\" ) Iq . unscribe_live_deal ( name , active , _type ) subscribe_live_deal \u00b6 Iq . subscribe_live_deal ( name , active , _type , buffersize ) unscribe_live_deal \u00b6 Iq . unscribe_live_deal ( name , active , _type ) get_live_deal \u00b6 Iq . get_live_deal ( name , active , _type ) pop_live_deal \u00b6 pop the data from list Iq . pop_live_deal ( name , active , _type ) get Other people detail \u00b6 sample \u00b6 from iqoptionapi.stable_api import IQ_Option import logging import time #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption while_run_time = 10 #For binary option name = \"live-deal-binary-option-placed\" active = \"EURUSD\" _type = \"turbo\" #\"turbo\"/\"binary\" buffersize = 10 # print ( \"_____________subscribe_live_deal_______________\" ) print ( \" \\n\\n \" ) Iq . subscribe_live_deal ( name , active , _type , buffersize ) last_trade_data = Iq . get_live_deal ( name , active , _type )[ 0 ] user_id = last_trade_data [ \"user_id\" ] counutry_id = last_trade_data [ \"country_id\" ] print ( \"_______get_user_profile_client__________\" ) print ( Iq . get_user_profile_client ( user_id )) pro_data = Iq . get_user_profile_client ( user_id ) print ( \" \\n\\n \" ) print ( \"___________request_leaderboard_userinfo_deals_client______\" ) print ( Iq . request_leaderboard_userinfo_deals_client ( user_id , counutry_id )) user_data = Iq . request_leaderboard_userinfo_deals_client ( user_id , counutry_id ) worldwide = user_data [ \"result\" ][ \"entries_by_country\" ][ \"0\" ][ \"position\" ] profit = user_data [ \"result\" ][ \"entries_by_country\" ][ \"0\" ][ \"score\" ] print ( \" \\n \" ) print ( \"user_name:\" + pro_data [ \"user_name\" ]) print ( \"This week worldwide:\" + str ( worldwide )) print ( \"This week's gross profit:\" + str ( profit )) print ( \" \\n\\n \" ) print ( \"___________get_users_availability____________\" ) print ( Iq . get_users_availability ( user_id )) print ( \" \\n\\n \" ) print ( \"_____________unscribe_live_deal_______________\" ) Iq . unscribe_live_deal ( name , active , _type ) get_user_profile_client() \u00b6 this api can get user name and image Iq . get_user_profile_client ( user_id ) request_leaderboard_userinfo_deals_client() \u00b6 this api can get user detail Iq . request_leaderboard_userinfo_deals_client ( user_id , counutry_id ) get_users_availability() \u00b6 Iq . get_users_availability ( user_id )","title":"Account"},{"location":"en/account/account/#account","text":"","title":"Account"},{"location":"en/account/account/#get_balance","text":"Iq . get_balance ()","title":"get_balance()"},{"location":"en/account/account/#get_balance_v2","text":"more accuracy Iq . get_balance_v2 ()","title":"get_balance_v2()"},{"location":"en/account/account/#get_currency","text":"you will check what currency you use Iq . get_currency ()","title":"get_currency()"},{"location":"en/account/account/#reset_practice_balance","text":"reset practice balance to $10000 from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption print ( Iq . reset_practice_balance ())","title":"reset_practice_balance()"},{"location":"en/account/account/#change-realpractice-account","text":"MODE=\"PRACTICE\"/\"REAL\"/\"TOURNAMENT\" PRACTICE - it is demo account REAL - It is our money in risk TOURNAMENT - Tournaments account balance_type = \"PRACTICE\" Iq . change_balance ( balance_type )","title":"Change real/practice Account"},{"location":"en/account/account/#get-other-people-stratagy","text":"","title":"get Other People stratagy"},{"location":"en/account/account/#sample","text":"from iqoptionapi.stable_api import IQ_Option import logging import time #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption while_run_time = 10 #For digital option name = \"live-deal-digital-option\" #\"live-deal-binary-option-placed\"/\"live-deal-digital-option\" active = \"EURUSD\" _type = \"PT1M\" #\"PT1M\"/\"PT5M\"/\"PT15M\" buffersize = 10 # print ( \"_____________subscribe_live_deal_______________\" ) Iq . subscribe_live_deal ( name , active , _type , buffersize ) start_t = time . time () while True : #data size is below buffersize #data[0] is the last data data = ( Iq . get_live_deal ( name , active , _type )) print ( \"__For_digital_option__ data size:\" + str ( len ( data ))) print ( data ) print ( \" \\n\\n \" ) time . sleep ( 1 ) if time . time () - start_t > while_run_time : break print ( \"_____________unscribe_live_deal_______________\" ) Iq . unscribe_live_deal ( name , active , _type ) #For binary option name = \"live-deal-binary-option-placed\" active = \"EURUSD\" _type = \"turbo\" #\"turbo\"/\"binary\" buffersize = 10 # print ( \"_____________subscribe_live_deal_______________\" ) Iq . subscribe_live_deal ( name , active , _type , buffersize ) start_t = time . time () while True : #data size is below buffersize #data[0] is the last data data = ( Iq . get_live_deal ( name , active , _type )) print ( \"__For_binary_option__ data size:\" + str ( len ( data ))) print ( data ) print ( \" \\n\\n \" ) time . sleep ( 1 ) if time . time () - start_t > while_run_time : break print ( \"_____________unscribe_live_deal_______________\" ) Iq . unscribe_live_deal ( name , active , _type )","title":"sample"},{"location":"en/account/account/#subscribe_live_deal","text":"Iq . subscribe_live_deal ( name , active , _type , buffersize )","title":"subscribe_live_deal"},{"location":"en/account/account/#unscribe_live_deal","text":"Iq . unscribe_live_deal ( name , active , _type )","title":"unscribe_live_deal"},{"location":"en/account/account/#get_live_deal","text":"Iq . get_live_deal ( name , active , _type )","title":"get_live_deal"},{"location":"en/account/account/#pop_live_deal","text":"pop the data from list Iq . pop_live_deal ( name , active , _type )","title":"pop_live_deal"},{"location":"en/account/account/#get-other-people-detail","text":"","title":"get Other people detail"},{"location":"en/account/account/#sample_1","text":"from iqoptionapi.stable_api import IQ_Option import logging import time #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption while_run_time = 10 #For binary option name = \"live-deal-binary-option-placed\" active = \"EURUSD\" _type = \"turbo\" #\"turbo\"/\"binary\" buffersize = 10 # print ( \"_____________subscribe_live_deal_______________\" ) print ( \" \\n\\n \" ) Iq . subscribe_live_deal ( name , active , _type , buffersize ) last_trade_data = Iq . get_live_deal ( name , active , _type )[ 0 ] user_id = last_trade_data [ \"user_id\" ] counutry_id = last_trade_data [ \"country_id\" ] print ( \"_______get_user_profile_client__________\" ) print ( Iq . get_user_profile_client ( user_id )) pro_data = Iq . get_user_profile_client ( user_id ) print ( \" \\n\\n \" ) print ( \"___________request_leaderboard_userinfo_deals_client______\" ) print ( Iq . request_leaderboard_userinfo_deals_client ( user_id , counutry_id )) user_data = Iq . request_leaderboard_userinfo_deals_client ( user_id , counutry_id ) worldwide = user_data [ \"result\" ][ \"entries_by_country\" ][ \"0\" ][ \"position\" ] profit = user_data [ \"result\" ][ \"entries_by_country\" ][ \"0\" ][ \"score\" ] print ( \" \\n \" ) print ( \"user_name:\" + pro_data [ \"user_name\" ]) print ( \"This week worldwide:\" + str ( worldwide )) print ( \"This week's gross profit:\" + str ( profit )) print ( \" \\n\\n \" ) print ( \"___________get_users_availability____________\" ) print ( Iq . get_users_availability ( user_id )) print ( \" \\n\\n \" ) print ( \"_____________unscribe_live_deal_______________\" ) Iq . unscribe_live_deal ( name , active , _type )","title":"sample"},{"location":"en/account/account/#get_user_profile_client","text":"this api can get user name and image Iq . get_user_profile_client ( user_id )","title":"get_user_profile_client()"},{"location":"en/account/account/#request_leaderboard_userinfo_deals_client","text":"this api can get user detail Iq . request_leaderboard_userinfo_deals_client ( user_id , counutry_id )","title":"request_leaderboard_userinfo_deals_client()"},{"location":"en/account/account/#get_users_availability","text":"Iq . get_users_availability ( user_id )","title":"get_users_availability()"},{"location":"en/all/all/","text":"For all \u00b6 this api can work for option&digital&Forex&Stock&Commodities&Crypto&ETFs Check Asset if open or not \u00b6 be careful get_all_open_time() is very heavy for network. get_all_open_time() return the DICT \"cfd\" is include Stock,Commodities,ETFs asset DICT[\"forex\"/\"cfd\"/\"crypto\"/\"digital\"/\"turbo\"/\"binary\"][asset name][\"open\"] it will return True/False from iqoptionapi.stable_api import IQ_Option import logging import random logging . basicConfig ( level = logging . DEBUG , format = ' %(asctime)s %(message)s ' ) Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption ALL_Asset = Iq . get_all_open_time () #check if open or not print ( ALL_Asset [ \"forex\" ][ \"EURUSD\" ][ \"open\" ]) print ( ALL_Asset [ \"cfd\" ][ \"FACEBOOK\" ][ \"open\" ]) #Stock,Commodities,ETFs print ( ALL_Asset [ \"crypto\" ][ \"BTCUSD-L\" ][ \"open\" ]) print ( ALL_Asset [ \"digital\" ][ \"EURUSD-OTC\" ][ \"open\" ]) #Binary have two diffenence type:\"turbo\",\"binary\" print ( ALL_Asset [ \"turbo\" ][ \"EURUSD-OTC\" ][ \"open\" ]) print ( ALL_Asset [ \"binary\" ][ \"EURUSD-OTC\" ][ \"open\" ]) #!!!! exception \"\" print ( ALL_Asset [ \"binary\" ][ \"not exist asset\" ][ \"open\" ]) #it will return \"{}\" a None of the dict #!!!!print all!!!! for type_name , data in ALL_Asset . items (): for Asset , value in data . items (): print ( type_name , Asset , value [ \"open\" ]) View all ACTIVES Name \u00b6 print(Iq.get_all_ACTIVES_OPCODE()) update ACTIVES OPCODE \u00b6 Iq.update_ACTIVES_OPCODE() get_async_order() \u00b6 from iqoptionapi.stable_api import IQ_Option import logging import time #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption ACTIVES = \"EURUSD\" duration = 1 #minute 1 or 5 amount = 1 action = \"call\" #put print ( \"__For_Binary_Option__\" ) _ , id = Iq . buy ( amount , ACTIVES , action , duration ) while Iq . get_async_order ( id ) == None : pass print ( Iq . get_async_order ( id )) print ( \" \\n\\n \" ) print ( \"__For_Digital_Option__spot\" ) _ , id = Iq . buy_digital_spot ( ACTIVES , amount , action , duration ) while Iq . get_async_order ( id ) == None : pass order_data = Iq . get_async_order ( id ) print ( Iq . get_async_order ( id )) print ( \" \\n\\n \" ) print ( \"__For_Forex_Stock_Commodities_Crypto_ETFs\" ) instrument_type = \"crypto\" instrument_id = \"BTCUSD\" side = \"buy\" amount = 1.23 leverage = 3 type = \"market\" limit_price = None stop_price = None stop_lose_kind = \"percent\" stop_lose_value = 95 take_profit_kind = None take_profit_value = None use_trail_stop = True auto_margin_call = False use_token_for_commission = False check , id = Iq . buy_order ( instrument_type = instrument_type , instrument_id = instrument_id , side = side , amount = amount , leverage = leverage , type = type , limit_price = limit_price , stop_price = stop_price , stop_lose_value = stop_lose_value , stop_lose_kind = stop_lose_kind , take_profit_value = take_profit_value , take_profit_kind = take_profit_kind , use_trail_stop = use_trail_stop , auto_margin_call = auto_margin_call , use_token_for_commission = use_token_for_commission ) while Iq . get_async_order ( id ) == None : pass order_data = Iq . get_async_order ( id ) print ( Iq . get_async_order ( id )) get_commission_change() \u00b6 instrument_type: \"binary-option\"/\"turbo-option\"/\"digital-option\"/\"crypto\"/\"forex\"/\"cfd\" Iq.subscribe_commission_changed(instrument_type) Iq.get_commission_change(instrument_type) Iq.unsubscribe_commission_changed(instrument_type) Sample code import time from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption #instrument_type: \"binary-option\"/\"turbo-option\"/\"digital-option\"/\"crypto\"/\"forex\"/\"cfd\" instrument_type = [ \"binary-option\" , \"turbo-option\" , \"digital-option\" , \"crypto\" , \"forex\" , \"cfd\" ] for ins in instrument_type : Iq . subscribe_commission_changed ( ins ) print ( \"Start stream please wait profit change...\" ) while True : for ins in instrument_type : commissio_data = Iq . get_commission_change ( ins ) if commissio_data != {}: for active_name in commissio_data : if commissio_data [ active_name ] != {}: the_min_timestamp = min ( commissio_data [ active_name ] . keys ()) commissio = commissio_data [ active_name ][ the_min_timestamp ] profit = ( 100 - commissio ) / 100 print ( \"instrument_type: \" + str ( ins ) + \" active_name: \" + str ( active_name ) + \" profit change to: \" + str ( profit )) #Data have been update so need del del Iq . get_commission_change ( ins )[ active_name ][ the_min_timestamp ] time . sleep ( 1 ) Get top_assets_updated \u00b6 smaple \u00b6 instrument_type=\"binary-option\"/\"digital-option\"/\"forex\"/\"cfd\"/\"crypto\" from iqoptionapi.stable_api import IQ_Option import logging import time #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption instrument_type = \"digital-option\" #\"binary-option\"/\"digital-option\"/\"forex\"/\"cfd\"/\"crypto\" Iq . subscribe_top_assets_updated ( instrument_type ) print ( \"__Please_wait_for_sec__\" ) while True : if Iq . get_top_assets_updated ( instrument_type ) != None : print ( Iq . get_top_assets_updated ( instrument_type )) print ( \" \\n\\n \" ) time . sleep ( 1 ) Iq . unsubscribe_top_assets_updated ( instrument_type ) subscribe_top_assets_updated() \u00b6 instrument_type = \"digital-option\" #\"binary-option\"/\"digital-option\"/\"forex\"/\"cfd\"/\"crypto\" Iq . subscribe_top_assets_updated ( instrument_type ) get_top_assets_updated() \u00b6 need call get_top_assets_updated() after subscribe_top_assets_updated() Iq . get_top_assets_updated ( instrument_type ) unsubscribe_top_assets_updated() \u00b6 if you not using please close stram for safe network Iq . unsubscribe_top_assets_updated ( instrument_type ) get sort by popularity \u00b6 sample \u00b6 from iqoptionapi.stable_api import IQ_Option import logging import time import operator #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') def opcode_to_name ( opcode_data , opcode ): return list ( opcode_data . keys ())[ list ( opcode_data . values ()) . index ( opcode )] Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption Iq . update_ACTIVES_OPCODE () opcode_data = Iq . get_all_ACTIVES_OPCODE () instrument_type = \"digital-option\" #\"binary-option\"/\"digital-option\"/\"forex\"/\"cfd\"/\"crypto\" Iq . subscribe_top_assets_updated ( instrument_type ) print ( \"__Please_wait_for_sec__\" ) while True : if Iq . get_top_assets_updated ( instrument_type ) != None : break top_assets = Iq . get_top_assets_updated ( instrument_type ) popularity = {} for asset in top_assets : opcode = asset [ \"active_id\" ] popularity_value = asset [ \"popularity\" ][ \"value\" ] try : name = opcode_to_name ( opcode_data , opcode ) popularity [ name ] = popularity_value except : pass sorted_popularity = sorted ( popularity . items (), key = operator . itemgetter ( 1 )) print ( \"__Popularity_min_to_max__\" ) for lis in sorted_popularity : print ( lis ) Iq . unsubscribe_top_assets_updated ( instrument_type ) get_leader_board \u00b6 Get leader board data from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( email , password ) Iq . connect () #connect to iqoption country = \"TW\" from_position = 1 to_position = 1 near_traders_count = 0 print ( Iq . get_leader_board ( country , from_position , to_position , near_traders_count )) Country ID = {\"Worldwide\":0, \"AF\": 1, \"AL\": 2, \"DZ\": 3, \"AD\": 5, \"AO\": 6, \"AI\": 7, \"AG\": 9, \"AR\": 10, \"AM\": 11, \"AW\": 12, \"AT\": 14, \"AZ\": 15, \"BS\": 16, \"BH\": 17, \"BD\": 18, \"BB\": 19, \"BY\": 20, \"BZ\": 22, \"BJ\": 23, \"BM\": 24, \"BO\": 26, \"BA\": 27, \"BW\": 28, \"BV\": 29, \"BR\": 30, \"BN\": 31, \"BG\": 32, \"BF\": 33, \"BI\": 34, \"KH\": 35, \"CM\": 36, \"CV\": 38, \"KY\": 39, \"TD\": 41, \"CL\": 42, \"CN\": 43, \"CC\": 45, \"CO\": 46, \"KM\": 47, \"CG\": 48, \"CK\": 49, \"CR\": 50, \"CI\": 51, \"HR\": 52, \"CU\": 53, \"CY\": 54, \"CZ\": 55, \"DK\": 56, \"DJ\": 57, \"DM\": 58, \"DO\": 59, \"TL\": 60, \"EC\": 61, \"EG\": 62, \"SV\": 63, \"EE\": 66, \"ET\": 67, \"FO\": 69, \"FJ\": 70, \"FI\": 71, \"FR\": 72, \"GF\": 73, \"PF\": 74, \"GA\": 75, \"GM\": 76, \"GE\": 77, \"DE\": 78, \"GH\": 79, \"GR\": 81, \"GD\": 83, \"GP\": 84, \"GT\": 86, \"GN\": 87, \"GY\": 88, \"HT\": 89, \"HN\": 90, \"HK\": 91, \"HU\": 92, \"IS\": 93, \"ID\": 94, \"IQ\": 95, \"IE\": 96, \"IT\": 97, \"JM\": 98, \"JO\": 100, \"KZ\": 101, \"KE\": 102, \"KI\": 103, \"KW\": 104, \"KG\": 105, \"LA\": 106, \"LV\": 107, \"LB\": 108, \"LS\": 109, \"LR\": 110, \"LY\": 111, \"LT\": 113, \"LU\": 114, \"MO\": 115, \"MK\": 116, \"MG\": 117, \"MW\": 118, \"MY\": 119, \"MV\": 120, \"ML\": 121, \"MT\": 122, \"MQ\": 124, \"MR\": 125, \"MU\": 126, \"MX\": 128, \"FM\": 129, \"MD\": 130, \"MC\": 131, \"MN\": 132, \"MA\": 134, \"MZ\": 135, \"MM\": 136, \"NA\": 137, \"NP\": 139, \"NL\": 140, \"AN\": 141, \"NC\": 142, \"NZ\": 143, \"NI\": 144, \"NE\": 145, \"NG\": 146, \"NO\": 149, \"OM\": 150, \"PK\": 151, \"PW\": 152, \"PA\": 153, \"PG\": 154, \"PY\": 155, \"PE\": 156, \"PH\": 157, \"PL\": 159, \"PT\": 160, \"QA\": 162, \"RE\": 163, \"RO\": 164, \"RW\": 166, \"KN\": 167, \"LC\": 168, \"SA\": 171, \"SN\": 172, \"SC\": 173, \"SG\": 175, \"SK\": 176, \"SI\": 177, \"SO\": 179, \"ZA\": 180, \"KR\": 181, \"ES\": 182, \"LK\": 183, \"SH\": 184, \"SR\": 186, \"SZ\": 187, \"SE\": 188, \"CH\": 189, \"TW\": 191, \"TJ\": 192, \"TZ\": 193, \"TH\": 194, \"TG\": 195, \"TT\": 198, \"TN\": 199, \"TR\": 200, \"TM\": 201, \"UG\": 203, \"UA\": 204, \"AE\": 205, \"GB\": 206, \"UY\": 207, \"UZ\": 208, \"VE\": 211, \"VN\": 212, \"VG\": 213, \"YE\": 216, \"ZM\": 218, \"ZW\": 219, \"RS\": 220, \"ME\": 221, \"IN\": 225, \"TC\": 234, \"CD\": 235, \"GG\": 236, \"IM\": 237, \"JE\": 239, \"CW\": 246, } login with 2 factor auth \u00b6 from iqoptionapi.stable_api import IQ_Option print ( \"Connecting...\" ) api = IQ_Option ( \"email\" , \"password\" ) status , reason = api . connect () print ( '##### First try #####' ) print ( 'Status:' , status ) print ( 'Reason:' , reason ) print ( \"Email:\" , api . email ) if reason == \"2FA\" : print ( '##### 2FA Enabled #####' ) print ( \"An sms was sent with auth code to your number\" ) code_sms = input ( \"Enter 2FA code: \" ) status , reason = api . connect_2fa ( code_sms ) print ( '##### second try #####' ) print ( 'Status:' , status ) print ( 'Reason:' , reason ) print ( \"Email:\" , api . email ) print ( \"Balance:\" , api . get_balance ()) print ( \"##############################\" )","title":"For all"},{"location":"en/all/all/#for-all","text":"this api can work for option&digital&Forex&Stock&Commodities&Crypto&ETFs","title":"For all"},{"location":"en/all/all/#check-asset-if-open-or-not","text":"be careful get_all_open_time() is very heavy for network. get_all_open_time() return the DICT \"cfd\" is include Stock,Commodities,ETFs asset DICT[\"forex\"/\"cfd\"/\"crypto\"/\"digital\"/\"turbo\"/\"binary\"][asset name][\"open\"] it will return True/False from iqoptionapi.stable_api import IQ_Option import logging import random logging . basicConfig ( level = logging . DEBUG , format = ' %(asctime)s %(message)s ' ) Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption ALL_Asset = Iq . get_all_open_time () #check if open or not print ( ALL_Asset [ \"forex\" ][ \"EURUSD\" ][ \"open\" ]) print ( ALL_Asset [ \"cfd\" ][ \"FACEBOOK\" ][ \"open\" ]) #Stock,Commodities,ETFs print ( ALL_Asset [ \"crypto\" ][ \"BTCUSD-L\" ][ \"open\" ]) print ( ALL_Asset [ \"digital\" ][ \"EURUSD-OTC\" ][ \"open\" ]) #Binary have two diffenence type:\"turbo\",\"binary\" print ( ALL_Asset [ \"turbo\" ][ \"EURUSD-OTC\" ][ \"open\" ]) print ( ALL_Asset [ \"binary\" ][ \"EURUSD-OTC\" ][ \"open\" ]) #!!!! exception \"\" print ( ALL_Asset [ \"binary\" ][ \"not exist asset\" ][ \"open\" ]) #it will return \"{}\" a None of the dict #!!!!print all!!!! for type_name , data in ALL_Asset . items (): for Asset , value in data . items (): print ( type_name , Asset , value [ \"open\" ])","title":"Check Asset if open or not"},{"location":"en/all/all/#view-all-actives-name","text":"print(Iq.get_all_ACTIVES_OPCODE())","title":"View all ACTIVES Name"},{"location":"en/all/all/#update-actives-opcode","text":"Iq.update_ACTIVES_OPCODE()","title":"update ACTIVES OPCODE"},{"location":"en/all/all/#get_async_order","text":"from iqoptionapi.stable_api import IQ_Option import logging import time #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption ACTIVES = \"EURUSD\" duration = 1 #minute 1 or 5 amount = 1 action = \"call\" #put print ( \"__For_Binary_Option__\" ) _ , id = Iq . buy ( amount , ACTIVES , action , duration ) while Iq . get_async_order ( id ) == None : pass print ( Iq . get_async_order ( id )) print ( \" \\n\\n \" ) print ( \"__For_Digital_Option__spot\" ) _ , id = Iq . buy_digital_spot ( ACTIVES , amount , action , duration ) while Iq . get_async_order ( id ) == None : pass order_data = Iq . get_async_order ( id ) print ( Iq . get_async_order ( id )) print ( \" \\n\\n \" ) print ( \"__For_Forex_Stock_Commodities_Crypto_ETFs\" ) instrument_type = \"crypto\" instrument_id = \"BTCUSD\" side = \"buy\" amount = 1.23 leverage = 3 type = \"market\" limit_price = None stop_price = None stop_lose_kind = \"percent\" stop_lose_value = 95 take_profit_kind = None take_profit_value = None use_trail_stop = True auto_margin_call = False use_token_for_commission = False check , id = Iq . buy_order ( instrument_type = instrument_type , instrument_id = instrument_id , side = side , amount = amount , leverage = leverage , type = type , limit_price = limit_price , stop_price = stop_price , stop_lose_value = stop_lose_value , stop_lose_kind = stop_lose_kind , take_profit_value = take_profit_value , take_profit_kind = take_profit_kind , use_trail_stop = use_trail_stop , auto_margin_call = auto_margin_call , use_token_for_commission = use_token_for_commission ) while Iq . get_async_order ( id ) == None : pass order_data = Iq . get_async_order ( id ) print ( Iq . get_async_order ( id ))","title":"get_async_order()"},{"location":"en/all/all/#get_commission_change","text":"instrument_type: \"binary-option\"/\"turbo-option\"/\"digital-option\"/\"crypto\"/\"forex\"/\"cfd\" Iq.subscribe_commission_changed(instrument_type) Iq.get_commission_change(instrument_type) Iq.unsubscribe_commission_changed(instrument_type) Sample code import time from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption #instrument_type: \"binary-option\"/\"turbo-option\"/\"digital-option\"/\"crypto\"/\"forex\"/\"cfd\" instrument_type = [ \"binary-option\" , \"turbo-option\" , \"digital-option\" , \"crypto\" , \"forex\" , \"cfd\" ] for ins in instrument_type : Iq . subscribe_commission_changed ( ins ) print ( \"Start stream please wait profit change...\" ) while True : for ins in instrument_type : commissio_data = Iq . get_commission_change ( ins ) if commissio_data != {}: for active_name in commissio_data : if commissio_data [ active_name ] != {}: the_min_timestamp = min ( commissio_data [ active_name ] . keys ()) commissio = commissio_data [ active_name ][ the_min_timestamp ] profit = ( 100 - commissio ) / 100 print ( \"instrument_type: \" + str ( ins ) + \" active_name: \" + str ( active_name ) + \" profit change to: \" + str ( profit )) #Data have been update so need del del Iq . get_commission_change ( ins )[ active_name ][ the_min_timestamp ] time . sleep ( 1 )","title":"get_commission_change()"},{"location":"en/all/all/#get-top_assets_updated","text":"","title":"Get top_assets_updated"},{"location":"en/all/all/#smaple","text":"instrument_type=\"binary-option\"/\"digital-option\"/\"forex\"/\"cfd\"/\"crypto\" from iqoptionapi.stable_api import IQ_Option import logging import time #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption instrument_type = \"digital-option\" #\"binary-option\"/\"digital-option\"/\"forex\"/\"cfd\"/\"crypto\" Iq . subscribe_top_assets_updated ( instrument_type ) print ( \"__Please_wait_for_sec__\" ) while True : if Iq . get_top_assets_updated ( instrument_type ) != None : print ( Iq . get_top_assets_updated ( instrument_type )) print ( \" \\n\\n \" ) time . sleep ( 1 ) Iq . unsubscribe_top_assets_updated ( instrument_type )","title":"smaple"},{"location":"en/all/all/#subscribe_top_assets_updated","text":"instrument_type = \"digital-option\" #\"binary-option\"/\"digital-option\"/\"forex\"/\"cfd\"/\"crypto\" Iq . subscribe_top_assets_updated ( instrument_type )","title":"subscribe_top_assets_updated()"},{"location":"en/all/all/#get_top_assets_updated","text":"need call get_top_assets_updated() after subscribe_top_assets_updated() Iq . get_top_assets_updated ( instrument_type )","title":"get_top_assets_updated()"},{"location":"en/all/all/#unsubscribe_top_assets_updated","text":"if you not using please close stram for safe network Iq . unsubscribe_top_assets_updated ( instrument_type )","title":"unsubscribe_top_assets_updated()"},{"location":"en/all/all/#get-sort-by-popularity","text":"","title":"get sort by popularity"},{"location":"en/all/all/#sample","text":"from iqoptionapi.stable_api import IQ_Option import logging import time import operator #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') def opcode_to_name ( opcode_data , opcode ): return list ( opcode_data . keys ())[ list ( opcode_data . values ()) . index ( opcode )] Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption Iq . update_ACTIVES_OPCODE () opcode_data = Iq . get_all_ACTIVES_OPCODE () instrument_type = \"digital-option\" #\"binary-option\"/\"digital-option\"/\"forex\"/\"cfd\"/\"crypto\" Iq . subscribe_top_assets_updated ( instrument_type ) print ( \"__Please_wait_for_sec__\" ) while True : if Iq . get_top_assets_updated ( instrument_type ) != None : break top_assets = Iq . get_top_assets_updated ( instrument_type ) popularity = {} for asset in top_assets : opcode = asset [ \"active_id\" ] popularity_value = asset [ \"popularity\" ][ \"value\" ] try : name = opcode_to_name ( opcode_data , opcode ) popularity [ name ] = popularity_value except : pass sorted_popularity = sorted ( popularity . items (), key = operator . itemgetter ( 1 )) print ( \"__Popularity_min_to_max__\" ) for lis in sorted_popularity : print ( lis ) Iq . unsubscribe_top_assets_updated ( instrument_type )","title":"sample"},{"location":"en/all/all/#get_leader_board","text":"Get leader board data from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( email , password ) Iq . connect () #connect to iqoption country = \"TW\" from_position = 1 to_position = 1 near_traders_count = 0 print ( Iq . get_leader_board ( country , from_position , to_position , near_traders_count )) Country ID = {\"Worldwide\":0, \"AF\": 1, \"AL\": 2, \"DZ\": 3, \"AD\": 5, \"AO\": 6, \"AI\": 7, \"AG\": 9, \"AR\": 10, \"AM\": 11, \"AW\": 12, \"AT\": 14, \"AZ\": 15, \"BS\": 16, \"BH\": 17, \"BD\": 18, \"BB\": 19, \"BY\": 20, \"BZ\": 22, \"BJ\": 23, \"BM\": 24, \"BO\": 26, \"BA\": 27, \"BW\": 28, \"BV\": 29, \"BR\": 30, \"BN\": 31, \"BG\": 32, \"BF\": 33, \"BI\": 34, \"KH\": 35, \"CM\": 36, \"CV\": 38, \"KY\": 39, \"TD\": 41, \"CL\": 42, \"CN\": 43, \"CC\": 45, \"CO\": 46, \"KM\": 47, \"CG\": 48, \"CK\": 49, \"CR\": 50, \"CI\": 51, \"HR\": 52, \"CU\": 53, \"CY\": 54, \"CZ\": 55, \"DK\": 56, \"DJ\": 57, \"DM\": 58, \"DO\": 59, \"TL\": 60, \"EC\": 61, \"EG\": 62, \"SV\": 63, \"EE\": 66, \"ET\": 67, \"FO\": 69, \"FJ\": 70, \"FI\": 71, \"FR\": 72, \"GF\": 73, \"PF\": 74, \"GA\": 75, \"GM\": 76, \"GE\": 77, \"DE\": 78, \"GH\": 79, \"GR\": 81, \"GD\": 83, \"GP\": 84, \"GT\": 86, \"GN\": 87, \"GY\": 88, \"HT\": 89, \"HN\": 90, \"HK\": 91, \"HU\": 92, \"IS\": 93, \"ID\": 94, \"IQ\": 95, \"IE\": 96, \"IT\": 97, \"JM\": 98, \"JO\": 100, \"KZ\": 101, \"KE\": 102, \"KI\": 103, \"KW\": 104, \"KG\": 105, \"LA\": 106, \"LV\": 107, \"LB\": 108, \"LS\": 109, \"LR\": 110, \"LY\": 111, \"LT\": 113, \"LU\": 114, \"MO\": 115, \"MK\": 116, \"MG\": 117, \"MW\": 118, \"MY\": 119, \"MV\": 120, \"ML\": 121, \"MT\": 122, \"MQ\": 124, \"MR\": 125, \"MU\": 126, \"MX\": 128, \"FM\": 129, \"MD\": 130, \"MC\": 131, \"MN\": 132, \"MA\": 134, \"MZ\": 135, \"MM\": 136, \"NA\": 137, \"NP\": 139, \"NL\": 140, \"AN\": 141, \"NC\": 142, \"NZ\": 143, \"NI\": 144, \"NE\": 145, \"NG\": 146, \"NO\": 149, \"OM\": 150, \"PK\": 151, \"PW\": 152, \"PA\": 153, \"PG\": 154, \"PY\": 155, \"PE\": 156, \"PH\": 157, \"PL\": 159, \"PT\": 160, \"QA\": 162, \"RE\": 163, \"RO\": 164, \"RW\": 166, \"KN\": 167, \"LC\": 168, \"SA\": 171, \"SN\": 172, \"SC\": 173, \"SG\": 175, \"SK\": 176, \"SI\": 177, \"SO\": 179, \"ZA\": 180, \"KR\": 181, \"ES\": 182, \"LK\": 183, \"SH\": 184, \"SR\": 186, \"SZ\": 187, \"SE\": 188, \"CH\": 189, \"TW\": 191, \"TJ\": 192, \"TZ\": 193, \"TH\": 194, \"TG\": 195, \"TT\": 198, \"TN\": 199, \"TR\": 200, \"TM\": 201, \"UG\": 203, \"UA\": 204, \"AE\": 205, \"GB\": 206, \"UY\": 207, \"UZ\": 208, \"VE\": 211, \"VN\": 212, \"VG\": 213, \"YE\": 216, \"ZM\": 218, \"ZW\": 219, \"RS\": 220, \"ME\": 221, \"IN\": 225, \"TC\": 234, \"CD\": 235, \"GG\": 236, \"IM\": 237, \"JE\": 239, \"CW\": 246, }","title":"get_leader_board"},{"location":"en/all/all/#login-with-2-factor-auth","text":"from iqoptionapi.stable_api import IQ_Option print ( \"Connecting...\" ) api = IQ_Option ( \"email\" , \"password\" ) status , reason = api . connect () print ( '##### First try #####' ) print ( 'Status:' , status ) print ( 'Reason:' , reason ) print ( \"Email:\" , api . email ) if reason == \"2FA\" : print ( '##### 2FA Enabled #####' ) print ( \"An sms was sent with auth code to your number\" ) code_sms = input ( \"Enter 2FA code: \" ) status , reason = api . connect_2fa ( code_sms ) print ( '##### second try #####' ) print ( 'Status:' , status ) print ( 'Reason:' , reason ) print ( \"Email:\" , api . email ) print ( \"Balance:\" , api . get_balance ()) print ( \"##############################\" )","title":"login with 2 factor auth"},{"location":"en/binary%20option/binary%20option/","text":"For Binary Option \u00b6 buy \u00b6 buy the binary option buy() \u00b6 sample from iqoptionapi.stable_api import IQ_Option import logging import time logging . basicConfig ( level = logging . DEBUG , format = ' %(asctime)s %(message)s ' ) Iq = IQ_Option ( \"email\" , \"pass\" ) goal = \"EURUSD\" print ( \"get candles\" ) print ( Iq . get_candles ( goal , 60 , 111 , time . time ())) Money = 1 ACTIVES = \"EURUSD\" ACTION = \"call\" #or \"put\" expirations_mode = 1 check , id = Iq . buy ( Money , ACTIVES , ACTION , expirations_mode ) if check : print ( \"!buy!\" ) else : print ( \"buy fail\" ) Iq . buy ( Money , ACTIVES , ACTION , expirations ) #Money:How many you want to buy type(int) #ACTIVES:sample input \"EURUSD\" OR \"EURGBP\".... you can view by get_all_ACTIVES_OPCODE #ACTION:\"call\"/\"put\" type(str) #expirations:input minute,careful too large will false to buy(Closed market time)thank Darth-Carrotpie's code (int)https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/6 #return:if sucess return (True,id_number) esle return(Fale,None) buy_multi() \u00b6 from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption Money = [] ACTIVES = [] ACTION = [] expirations_mode = [] Money . append ( 1 ) ACTIVES . append ( \"EURUSD\" ) ACTION . append ( \"call\" ) #put expirations_mode . append ( 1 ) Money . append ( 1 ) ACTIVES . append ( \"EURAUD\" ) ACTION . append ( \"call\" ) #put expirations_mode . append ( 1 ) print ( \"buy multi\" ) id_list = Iq . buy_multi ( Money , ACTIVES , ACTION , expirations_mode ) print ( \"check win only one id (id_list[0])\" ) print ( Iq . check_win_v2 ( id_list [ 0 ], 2 )) buy_by_raw_expirations() \u00b6 buy the binary optoin by expired price = 2 active = \"EURUSD\" direction = \"call\" #put option = \"turbo\" #binary expired = 1293923 # this expried time you need to count or get by your self Iq . buy_by_raw_expirations ( price , active , direction , option , expired ) get_remaning() \u00b6 purchase time=remaning time - 30 from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption Money = 1 ACTIVES = \"EURUSD\" ACTION = \"call\" #or \"put\" expirations_mode = 1 while True : remaning_time = Iq . get_remaning ( expirations_mode ) purchase_time = remaning_time - 30 if purchase_time < 4 : #buy the binary option at purchase_time<4 Iq . buy ( Money , ACTIVES , ACTION , expirations_mode ) break sell_option() \u00b6 Iq . sell_option ( sell_all ) #input int or list order id Sample from iqoptionapi.stable_api import IQ_Option import time print ( \"login...\" ) Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption Money = 1 ACTIVES = \"EURUSD\" ACTION = \"call\" #or \"put\" expirations_mode = 1 id = Iq . buy ( Money , ACTIVES , ACTION , expirations_mode ) id2 = Iq . buy ( Money , ACTIVES , ACTION , expirations_mode ) time . sleep ( 5 ) sell_all = [] sell_all . append ( id ) sell_all . append ( id2 ) print ( Iq . sell_option ( sell_all )) check win \u00b6 It will do loop until get win or loose check_win() \u00b6 from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption check , id = Iq . buy ( 1 , \"EURUSD\" , \"call\" , 1 ) print ( \"start check win please wait\" ) print ( Iq . check_win ( id )) Iq . check_win ( 23243221 ) #\"\"you need to get id_number from buy function\"\" #Iq.check_win(id_number) #this function will do loop check your bet until if win/equal/loose check_win_v2() \u00b6 from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption check , id = Iq . buy ( 1 , \"EURUSD\" , \"call\" , 1 ) print ( \"start check win please wait\" ) polling_time = 3 print ( Iq . check_win_v2 ( id , polling_time )) check_win_v3() \u00b6 great way from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption check , id = Iq . buy ( 1 , \"EURUSD\" , \"call\" , 1 ) print ( \"start check win please wait\" ) print ( Iq . check_win_v3 ( id )) get_binary_option_detail() \u00b6 sample from iqoptionapi.stable_api import IQ_Option print ( \"login...\" ) Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption d = Iq . get_binary_option_detail () print ( d [ \"CADCHF\" ][ \"turbo\" ]) print ( d [ \"CADCHF\" ][ \"binary\" ]) get_all_init() \u00b6 get_binary_option_detail is base on this api you will get the raw detail about binary option Iq.get_all_init() get_all_profit() \u00b6 sample from iqoptionapi.stable_api import IQ_Option print ( \"login...\" ) Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption d = Iq . get_all_profit () print ( d [ \"CADCHF\" ][ \"turbo\" ]) print ( d [ \"CADCHF\" ][ \"binary\" ]) if you want realtime profit try this get real time profit get_betinfo() \u00b6 if order not close yet or wrong id it will return False isSuccessful , dict = Iq . get_betinfo ( 4452272449 ) #Iq.get_betinfo #INPUT: order id #OUTPUT:isSuccessful,dict get_optioninfo \u00b6 get_optioninfo() \u00b6 input how many data you want to get from Trading History(only for binary option) print ( Iq . get_optioninfo ( 10 )) get_optioninfo_v2() \u00b6 input how many data you want to get from Trading History(only for binary option) print ( Iq . get_optioninfo_v2 ( 10 )) get_option_open_by_other_pc() \u00b6 if your account is login in other plance/PC and doing buy option you can get the option by this function import time from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption while True : #please open website iqoption and buy some binary option if Iq . get_option_open_by_other_pc () != {}: break time . sleep ( 1 ) print ( \"Get option from other Pc and same account\" ) print ( Iq . get_option_open_by_other_pc ()) id = list ( Iq . get_option_open_by_other_pc () . keys ())[ 0 ] Iq . del_option_open_by_other_pc ( id ) print ( \"After del by id\" ) print ( Iq . get_option_open_by_other_pc ()) Get mood \u00b6 sample \u00b6 from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption goal = \"EURUSD\" Iq . start_mood_stream ( goal ) print ( Iq . get_traders_mood ( goal )) Iq . stop_mood_stream ( goal ) start_mood_stream() \u00b6 Iq . start_mood_stream ( goal ) get_traders_mood() \u00b6 call get_traders_mood() after start_mood_stream Iq . get_traders_mood ( goal ) get_all_traders_mood() \u00b6 it will get all trade mood what you start stream Iq . get_all_traders_mood () #output:(dict) all mood you start stop_mood_stream() \u00b6 if you not using the mood ,please stop safe network Iq . stop_mood_stream ( goal )","title":"Binary option"},{"location":"en/binary%20option/binary%20option/#for-binary-option","text":"","title":"For Binary Option"},{"location":"en/binary%20option/binary%20option/#buy","text":"buy the binary option","title":"buy"},{"location":"en/binary%20option/binary%20option/#buy_1","text":"sample from iqoptionapi.stable_api import IQ_Option import logging import time logging . basicConfig ( level = logging . DEBUG , format = ' %(asctime)s %(message)s ' ) Iq = IQ_Option ( \"email\" , \"pass\" ) goal = \"EURUSD\" print ( \"get candles\" ) print ( Iq . get_candles ( goal , 60 , 111 , time . time ())) Money = 1 ACTIVES = \"EURUSD\" ACTION = \"call\" #or \"put\" expirations_mode = 1 check , id = Iq . buy ( Money , ACTIVES , ACTION , expirations_mode ) if check : print ( \"!buy!\" ) else : print ( \"buy fail\" ) Iq . buy ( Money , ACTIVES , ACTION , expirations ) #Money:How many you want to buy type(int) #ACTIVES:sample input \"EURUSD\" OR \"EURGBP\".... you can view by get_all_ACTIVES_OPCODE #ACTION:\"call\"/\"put\" type(str) #expirations:input minute,careful too large will false to buy(Closed market time)thank Darth-Carrotpie's code (int)https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/6 #return:if sucess return (True,id_number) esle return(Fale,None)","title":"buy()"},{"location":"en/binary%20option/binary%20option/#buy_multi","text":"from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption Money = [] ACTIVES = [] ACTION = [] expirations_mode = [] Money . append ( 1 ) ACTIVES . append ( \"EURUSD\" ) ACTION . append ( \"call\" ) #put expirations_mode . append ( 1 ) Money . append ( 1 ) ACTIVES . append ( \"EURAUD\" ) ACTION . append ( \"call\" ) #put expirations_mode . append ( 1 ) print ( \"buy multi\" ) id_list = Iq . buy_multi ( Money , ACTIVES , ACTION , expirations_mode ) print ( \"check win only one id (id_list[0])\" ) print ( Iq . check_win_v2 ( id_list [ 0 ], 2 ))","title":"buy_multi()"},{"location":"en/binary%20option/binary%20option/#buy_by_raw_expirations","text":"buy the binary optoin by expired price = 2 active = \"EURUSD\" direction = \"call\" #put option = \"turbo\" #binary expired = 1293923 # this expried time you need to count or get by your self Iq . buy_by_raw_expirations ( price , active , direction , option , expired )","title":"buy_by_raw_expirations()"},{"location":"en/binary%20option/binary%20option/#get_remaning","text":"purchase time=remaning time - 30 from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption Money = 1 ACTIVES = \"EURUSD\" ACTION = \"call\" #or \"put\" expirations_mode = 1 while True : remaning_time = Iq . get_remaning ( expirations_mode ) purchase_time = remaning_time - 30 if purchase_time < 4 : #buy the binary option at purchase_time<4 Iq . buy ( Money , ACTIVES , ACTION , expirations_mode ) break","title":"get_remaning()"},{"location":"en/binary%20option/binary%20option/#sell_option","text":"Iq . sell_option ( sell_all ) #input int or list order id Sample from iqoptionapi.stable_api import IQ_Option import time print ( \"login...\" ) Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption Money = 1 ACTIVES = \"EURUSD\" ACTION = \"call\" #or \"put\" expirations_mode = 1 id = Iq . buy ( Money , ACTIVES , ACTION , expirations_mode ) id2 = Iq . buy ( Money , ACTIVES , ACTION , expirations_mode ) time . sleep ( 5 ) sell_all = [] sell_all . append ( id ) sell_all . append ( id2 ) print ( Iq . sell_option ( sell_all ))","title":"sell_option()"},{"location":"en/binary%20option/binary%20option/#check-win","text":"It will do loop until get win or loose","title":"check win"},{"location":"en/binary%20option/binary%20option/#check_win","text":"from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption check , id = Iq . buy ( 1 , \"EURUSD\" , \"call\" , 1 ) print ( \"start check win please wait\" ) print ( Iq . check_win ( id )) Iq . check_win ( 23243221 ) #\"\"you need to get id_number from buy function\"\" #Iq.check_win(id_number) #this function will do loop check your bet until if win/equal/loose","title":"check_win()"},{"location":"en/binary%20option/binary%20option/#check_win_v2","text":"from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption check , id = Iq . buy ( 1 , \"EURUSD\" , \"call\" , 1 ) print ( \"start check win please wait\" ) polling_time = 3 print ( Iq . check_win_v2 ( id , polling_time ))","title":"check_win_v2()"},{"location":"en/binary%20option/binary%20option/#check_win_v3","text":"great way from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption check , id = Iq . buy ( 1 , \"EURUSD\" , \"call\" , 1 ) print ( \"start check win please wait\" ) print ( Iq . check_win_v3 ( id ))","title":"check_win_v3()"},{"location":"en/binary%20option/binary%20option/#get_binary_option_detail","text":"sample from iqoptionapi.stable_api import IQ_Option print ( \"login...\" ) Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption d = Iq . get_binary_option_detail () print ( d [ \"CADCHF\" ][ \"turbo\" ]) print ( d [ \"CADCHF\" ][ \"binary\" ])","title":"get_binary_option_detail()"},{"location":"en/binary%20option/binary%20option/#get_all_init","text":"get_binary_option_detail is base on this api you will get the raw detail about binary option Iq.get_all_init()","title":"get_all_init()"},{"location":"en/binary%20option/binary%20option/#get_all_profit","text":"sample from iqoptionapi.stable_api import IQ_Option print ( \"login...\" ) Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption d = Iq . get_all_profit () print ( d [ \"CADCHF\" ][ \"turbo\" ]) print ( d [ \"CADCHF\" ][ \"binary\" ]) if you want realtime profit try this get real time profit","title":"get_all_profit()"},{"location":"en/binary%20option/binary%20option/#get_betinfo","text":"if order not close yet or wrong id it will return False isSuccessful , dict = Iq . get_betinfo ( 4452272449 ) #Iq.get_betinfo #INPUT: order id #OUTPUT:isSuccessful,dict","title":"get_betinfo()"},{"location":"en/binary%20option/binary%20option/#get_optioninfo","text":"","title":"get_optioninfo"},{"location":"en/binary%20option/binary%20option/#get_optioninfo_1","text":"input how many data you want to get from Trading History(only for binary option) print ( Iq . get_optioninfo ( 10 ))","title":"get_optioninfo()"},{"location":"en/binary%20option/binary%20option/#get_optioninfo_v2","text":"input how many data you want to get from Trading History(only for binary option) print ( Iq . get_optioninfo_v2 ( 10 ))","title":"get_optioninfo_v2()"},{"location":"en/binary%20option/binary%20option/#get_option_open_by_other_pc","text":"if your account is login in other plance/PC and doing buy option you can get the option by this function import time from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption while True : #please open website iqoption and buy some binary option if Iq . get_option_open_by_other_pc () != {}: break time . sleep ( 1 ) print ( \"Get option from other Pc and same account\" ) print ( Iq . get_option_open_by_other_pc ()) id = list ( Iq . get_option_open_by_other_pc () . keys ())[ 0 ] Iq . del_option_open_by_other_pc ( id ) print ( \"After del by id\" ) print ( Iq . get_option_open_by_other_pc ())","title":"get_option_open_by_other_pc()"},{"location":"en/binary%20option/binary%20option/#get-mood","text":"","title":"Get mood"},{"location":"en/binary%20option/binary%20option/#sample","text":"from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption goal = \"EURUSD\" Iq . start_mood_stream ( goal ) print ( Iq . get_traders_mood ( goal )) Iq . stop_mood_stream ( goal )","title":"sample"},{"location":"en/binary%20option/binary%20option/#start_mood_stream","text":"Iq . start_mood_stream ( goal )","title":"start_mood_stream()"},{"location":"en/binary%20option/binary%20option/#get_traders_mood","text":"call get_traders_mood() after start_mood_stream Iq . get_traders_mood ( goal )","title":"get_traders_mood()"},{"location":"en/binary%20option/binary%20option/#get_all_traders_mood","text":"it will get all trade mood what you start stream Iq . get_all_traders_mood () #output:(dict) all mood you start","title":"get_all_traders_mood()"},{"location":"en/binary%20option/binary%20option/#stop_mood_stream","text":"if you not using the mood ,please stop safe network Iq . stop_mood_stream ( goal )","title":"stop_mood_stream()"},{"location":"en/candle/candle/","text":"Candle \u00b6 get candles \u00b6 only get close clndle, not realtime Iq.get_candles(ACTIVES,interval,count,endtime) #ACTIVES:sample input \"EURUSD\" OR \"EURGBP\".... youcan #interval:duration of candles #count:how many candles you want to get from now to past #endtime:get candles from past to \"endtime\" sample \u00b6 from iqoptionapi.stable_api import IQ_Option import time Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption end_from_time = time . time () ANS = [] for i in range ( 70 ): data = Iq . get_candles ( \"EURUSD\" , 60 , 1000 , end_from_time ) ANS = data + ANS end_from_time = int ( data [ 0 ][ \"from\" ]) - 1 print ( ANS ) get realtime candles \u00b6 indicator sample \u00b6 from talib.abstract import * from iqoptionapi.stable_api import IQ_Option import time import numpy as np print ( \"login...\" ) Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption goal = \"EURUSD\" size = 10 #size=[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,\"all\"] timeperiod = 10 maxdict = 20 print ( \"start stream...\" ) Iq . start_candles_stream ( goal , size , maxdict ) print ( \"Start EMA Sample\" ) while True : candles = Iq . get_realtime_candles ( goal , size ) inputs = { 'open' : np . array ([]), 'high' : np . array ([]), 'low' : np . array ([]), 'close' : np . array ([]), 'volume' : np . array ([]) } for timestamp in candles : inputs [ \"open\" ] = np . append ( inputs [ \"open\" ], candles [ timestamp ][ \"open\" ] ) inputs [ \"high\" ] = np . append ( inputs [ \"open\" ], candles [ timestamp ][ \"max\" ] ) inputs [ \"low\" ] = np . append ( inputs [ \"open\" ], candles [ timestamp ][ \"min\" ] ) inputs [ \"close\" ] = np . append ( inputs [ \"open\" ], candles [ timestamp ][ \"close\" ] ) inputs [ \"volume\" ] = np . append ( inputs [ \"open\" ], candles [ timestamp ][ \"volume\" ] ) print ( \"Show EMA\" ) print ( EMA ( inputs , timeperiod = timeperiod )) print ( \" \\n \" ) time . sleep ( 1 ) Iq . stop_candles_stream ( goal , size ) Sample \u00b6 from iqoptionapi.stable_api import IQ_Option import logging import time #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') print ( \"login...\" ) Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption goal = \"EURUSD\" size = \"all\" #size=[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,\"all\"] maxdict = 10 print ( \"start stream...\" ) Iq . start_candles_stream ( goal , size , maxdict ) #DO something print ( \"Do something...\" ) time . sleep ( 10 ) print ( \"print candles\" ) cc = Iq . get_realtime_candles ( goal , size ) for k in cc : print ( goal , \"size\" , k , cc [ k ]) print ( \"stop candle\" ) Iq . stop_candles_stream ( goal , size ) size \u00b6 start_candles_stream() \u00b6 goal = \"EURUSD\" size = \"all\" #size=[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,\"all\"] maxdict = 10 print ( \"start stream...\" ) Iq . start_candles_stream ( goal , size , maxdict ) get_realtime_candles() \u00b6 get_realtime_candles() after call start_candles_stream() Iq.get_realtime_candles(goal,size) stop_candles_stream() \u00b6 if you not using get_realtime_candles() anymore please close the stream Iq . stop_candles_stream ( goal , size )","title":"candle"},{"location":"en/candle/candle/#candle","text":"","title":"Candle"},{"location":"en/candle/candle/#get-candles","text":"only get close clndle, not realtime Iq.get_candles(ACTIVES,interval,count,endtime) #ACTIVES:sample input \"EURUSD\" OR \"EURGBP\".... youcan #interval:duration of candles #count:how many candles you want to get from now to past #endtime:get candles from past to \"endtime\"","title":"get candles"},{"location":"en/candle/candle/#sample","text":"from iqoptionapi.stable_api import IQ_Option import time Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption end_from_time = time . time () ANS = [] for i in range ( 70 ): data = Iq . get_candles ( \"EURUSD\" , 60 , 1000 , end_from_time ) ANS = data + ANS end_from_time = int ( data [ 0 ][ \"from\" ]) - 1 print ( ANS )","title":"sample"},{"location":"en/candle/candle/#get-realtime-candles","text":"","title":"get realtime candles"},{"location":"en/candle/candle/#indicator-sample","text":"from talib.abstract import * from iqoptionapi.stable_api import IQ_Option import time import numpy as np print ( \"login...\" ) Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption goal = \"EURUSD\" size = 10 #size=[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,\"all\"] timeperiod = 10 maxdict = 20 print ( \"start stream...\" ) Iq . start_candles_stream ( goal , size , maxdict ) print ( \"Start EMA Sample\" ) while True : candles = Iq . get_realtime_candles ( goal , size ) inputs = { 'open' : np . array ([]), 'high' : np . array ([]), 'low' : np . array ([]), 'close' : np . array ([]), 'volume' : np . array ([]) } for timestamp in candles : inputs [ \"open\" ] = np . append ( inputs [ \"open\" ], candles [ timestamp ][ \"open\" ] ) inputs [ \"high\" ] = np . append ( inputs [ \"open\" ], candles [ timestamp ][ \"max\" ] ) inputs [ \"low\" ] = np . append ( inputs [ \"open\" ], candles [ timestamp ][ \"min\" ] ) inputs [ \"close\" ] = np . append ( inputs [ \"open\" ], candles [ timestamp ][ \"close\" ] ) inputs [ \"volume\" ] = np . append ( inputs [ \"open\" ], candles [ timestamp ][ \"volume\" ] ) print ( \"Show EMA\" ) print ( EMA ( inputs , timeperiod = timeperiod )) print ( \" \\n \" ) time . sleep ( 1 ) Iq . stop_candles_stream ( goal , size )","title":"indicator sample"},{"location":"en/candle/candle/#sample_1","text":"from iqoptionapi.stable_api import IQ_Option import logging import time #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') print ( \"login...\" ) Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption goal = \"EURUSD\" size = \"all\" #size=[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,\"all\"] maxdict = 10 print ( \"start stream...\" ) Iq . start_candles_stream ( goal , size , maxdict ) #DO something print ( \"Do something...\" ) time . sleep ( 10 ) print ( \"print candles\" ) cc = Iq . get_realtime_candles ( goal , size ) for k in cc : print ( goal , \"size\" , k , cc [ k ]) print ( \"stop candle\" ) Iq . stop_candles_stream ( goal , size )","title":"Sample"},{"location":"en/candle/candle/#size","text":"","title":"size"},{"location":"en/candle/candle/#start_candles_stream","text":"goal = \"EURUSD\" size = \"all\" #size=[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,\"all\"] maxdict = 10 print ( \"start stream...\" ) Iq . start_candles_stream ( goal , size , maxdict )","title":"start_candles_stream()"},{"location":"en/candle/candle/#get_realtime_candles","text":"get_realtime_candles() after call start_candles_stream() Iq.get_realtime_candles(goal,size)","title":"get_realtime_candles()"},{"location":"en/candle/candle/#stop_candles_stream","text":"if you not using get_realtime_candles() anymore please close the stream Iq . stop_candles_stream ( goal , size )","title":"stop_candles_stream()"},{"location":"en/digital/digital/","text":"Digital \u00b6 Payout \u00b6 active = 'EURUSD' payout = Iq . get_digital_payout ( active ) print ( payout ) Nearest strike mode \u00b6 sample \u00b6 from iqoptionapi.stable_api import IQ_Option import time import random Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption ACTIVES = \"EURUSD\" duration = 1 #minute 1 or 5 amount = 1 Iq . subscribe_strike_list ( ACTIVES , duration ) #get strike_list data = Iq . get_realtime_strike_list ( ACTIVES , duration ) print ( \"get strike data\" ) print ( data ) \"\"\"data {'1.127100': { 'call': { 'profit': None, 'id': 'doEURUSD201811120649PT1MC11271' }, 'put': { 'profit': 566.6666666666666, 'id': 'doEURUSD201811120649PT1MP11271' } }............ } \"\"\" #get price list price_list = list ( data . keys ()) #random choose Strategy choose_price = price_list [ random . randint ( 0 , len ( price_list ) - 1 )] #get instrument_id instrument_id = data [ choose_price ][ \"call\" ][ \"id\" ] #get profit profit = data [ choose_price ][ \"call\" ][ \"profit\" ] print ( \"choose you want to buy\" ) print ( \"price:\" , choose_price , \"side:call\" , \"instrument_id:\" , instrument_id , \"profit:\" , profit ) #put instrument_id to buy buy_check , id = Iq . buy_digital ( amount , instrument_id ) polling_time = 5 if buy_check : print ( \"wait for check win\" ) #check win while True : check_close , win_money = Iq . check_win_digital_v2 ( id , polling_time ) if check_close : if float ( win_money ) > 0 : win_money = ( \" %.2f \" % ( win_money )) print ( \"you win\" , win_money , \"money\" ) else : print ( \"you loose\" ) break Iq . unsubscribe_strike_list ( ACTIVES , duration ) else : print ( \"fail to buy,please run again\" ) Get all strike list data \u00b6 smaple from iqoptionapi.stable_api import IQ_Option import time Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption ACTIVES = \"EURUSD\" duration = 1 #minute 1 or 5 Iq . subscribe_strike_list ( ACTIVES , duration ) while True : data = Iq . get_realtime_strike_list ( ACTIVES , duration ) for price in data : print ( \"price\" , price , data [ price ]) time . sleep ( 5 ) Iq . unsubscribe_strike_list ( ACTIVES , duration ) subscribe_strike_list() \u00b6 Iq . subscribe_strike_list ( ACTIVES , duration ) get_realtime_strike_list \u00b6 you need call subscribe_strike_list() before get_realtime_strike_list() Iq . get_realtime_strike_list ( ACTIVES , duration ) unsubscribe_strike_list() \u00b6 Iq . unsubscribe_strike_list ( ACTIVES , duration ) buy_digital() \u00b6 buy_check , id = Iq . buy_digital ( amount , instrument_id ) #get instrument_id from Iq.get_realtime_strike_list Current price mode \u00b6 buy_digital_spot \u00b6 buy the digit in current price return check and id from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption ACTIVES = \"EURUSD\" duration = 1 #minute 1 or 5 amount = 1 action = \"call\" #put print ( Iq . buy_digital_spot ( ACTIVES , amount , action , duration )) get_digital_spot_profit_after_sale() \u00b6 get Profit After Sale(P/L) sample from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"passord\" ) ACTIVES = \"EURUSD\" duration = 1 #minute 1 or 5 amount = 100 action = \"put\" #put Iq . subscribe_strike_list ( ACTIVES , duration ) _ , id = Iq . buy_digital_spot ( ACTIVES , amount , action , duration ) while True : PL = Iq . get_digital_spot_profit_after_sale ( id ) if PL != None : print ( PL ) get_digital_current_profit() \u00b6 from iqoptionapi.stable_api import IQ_Option import time import logging #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption ACTIVES = \"EURUSD\" duration = 1 #minute 1 or 5 Iq . subscribe_strike_list ( ACTIVES , duration ) while True : data = Iq . get_digital_current_profit ( ACTIVES , duration ) print ( data ) #from first print it may be get false,just wait a second you can get the profit time . sleep ( 1 ) Iq . unsubscribe_strike_list ( ACTIVES , duration ) check win for digital \u00b6 check_win_digital() \u00b6 this api is implement by get_digital_position() this function is polling , so need to set polling time Iq . check_win_digital ( id , polling_time ) #get the id from Iq.buy_digital check_win_digital_v2() \u00b6 this api is asynchronous get id data,it only can get id data before you call the buy action. if you restart the program,the asynchronous id data can not get again,so check_win_digital_v2 may not working,so you need to use \"check_win_digital\"! Iq . check_win_digital_v2 ( id ) #get the id from Iq.buy_digital #return:check_close,win_money #return sample #if you loose:Ture,o #if you win:True,1232.3 #if trade not clode yet:False,None sample code from iqoptionapi.stable_api import IQ_Option import logging import random import time import datetime #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption ACTIVES = \"EURUSD\" duration = 1 #minute 1 or 5 amount = 1 action = \"call\" #put _ , id = ( Iq . buy_digital_spot ( ACTIVES , amount , action , duration )) print ( id ) if id != \"error\" : while True : check , win = Iq . check_win_digital_v2 ( id ) if check == True : break if win < 0 : print ( \"you loss \" + str ( win ) + \"$\" ) else : print ( \"you win \" + str ( win ) + \"$\" ) else : print ( \"please try again\" ) close_digital_option() \u00b6 Iq . close_digital_option ( id ) get digital data \u00b6 smaple1 from iqoptionapi.stable_api import IQ_Option import logging import time #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption ACTIVES = \"EURUSD-OTC\" duration = 1 #minute 1 or 5 amount = 1 action = \"call\" #put from datetime import datetime _ , id = Iq . buy_digital_spot ( ACTIVES , amount , action , duration ) while True : check , _ = Iq . check_win_digital ( id ) if check : break print ( Iq . get_digital_position ( id )) print ( Iq . check_win_digital ( id )) sample2 print ( Iq . get_positions ( \"digital-option\" )) print ( Iq . get_digital_position ( 2323433 )) #in put the id print ( Iq . get_position_history ( \"digital-option\" ))","title":"Digital"},{"location":"en/digital/digital/#digital","text":"","title":"Digital"},{"location":"en/digital/digital/#payout","text":"active = 'EURUSD' payout = Iq . get_digital_payout ( active ) print ( payout )","title":"Payout"},{"location":"en/digital/digital/#nearest-strike-mode","text":"","title":"Nearest strike mode"},{"location":"en/digital/digital/#sample","text":"from iqoptionapi.stable_api import IQ_Option import time import random Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption ACTIVES = \"EURUSD\" duration = 1 #minute 1 or 5 amount = 1 Iq . subscribe_strike_list ( ACTIVES , duration ) #get strike_list data = Iq . get_realtime_strike_list ( ACTIVES , duration ) print ( \"get strike data\" ) print ( data ) \"\"\"data {'1.127100': { 'call': { 'profit': None, 'id': 'doEURUSD201811120649PT1MC11271' }, 'put': { 'profit': 566.6666666666666, 'id': 'doEURUSD201811120649PT1MP11271' } }............ } \"\"\" #get price list price_list = list ( data . keys ()) #random choose Strategy choose_price = price_list [ random . randint ( 0 , len ( price_list ) - 1 )] #get instrument_id instrument_id = data [ choose_price ][ \"call\" ][ \"id\" ] #get profit profit = data [ choose_price ][ \"call\" ][ \"profit\" ] print ( \"choose you want to buy\" ) print ( \"price:\" , choose_price , \"side:call\" , \"instrument_id:\" , instrument_id , \"profit:\" , profit ) #put instrument_id to buy buy_check , id = Iq . buy_digital ( amount , instrument_id ) polling_time = 5 if buy_check : print ( \"wait for check win\" ) #check win while True : check_close , win_money = Iq . check_win_digital_v2 ( id , polling_time ) if check_close : if float ( win_money ) > 0 : win_money = ( \" %.2f \" % ( win_money )) print ( \"you win\" , win_money , \"money\" ) else : print ( \"you loose\" ) break Iq . unsubscribe_strike_list ( ACTIVES , duration ) else : print ( \"fail to buy,please run again\" )","title":"sample"},{"location":"en/digital/digital/#get-all-strike-list-data","text":"smaple from iqoptionapi.stable_api import IQ_Option import time Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption ACTIVES = \"EURUSD\" duration = 1 #minute 1 or 5 Iq . subscribe_strike_list ( ACTIVES , duration ) while True : data = Iq . get_realtime_strike_list ( ACTIVES , duration ) for price in data : print ( \"price\" , price , data [ price ]) time . sleep ( 5 ) Iq . unsubscribe_strike_list ( ACTIVES , duration )","title":"Get all strike list data"},{"location":"en/digital/digital/#subscribe_strike_list","text":"Iq . subscribe_strike_list ( ACTIVES , duration )","title":"subscribe_strike_list()"},{"location":"en/digital/digital/#get_realtime_strike_list","text":"you need call subscribe_strike_list() before get_realtime_strike_list() Iq . get_realtime_strike_list ( ACTIVES , duration )","title":"get_realtime_strike_list"},{"location":"en/digital/digital/#unsubscribe_strike_list","text":"Iq . unsubscribe_strike_list ( ACTIVES , duration )","title":"unsubscribe_strike_list()"},{"location":"en/digital/digital/#buy_digital","text":"buy_check , id = Iq . buy_digital ( amount , instrument_id ) #get instrument_id from Iq.get_realtime_strike_list","title":"buy_digital()"},{"location":"en/digital/digital/#current-price-mode","text":"","title":"Current price mode"},{"location":"en/digital/digital/#buy_digital_spot","text":"buy the digit in current price return check and id from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption ACTIVES = \"EURUSD\" duration = 1 #minute 1 or 5 amount = 1 action = \"call\" #put print ( Iq . buy_digital_spot ( ACTIVES , amount , action , duration ))","title":"buy_digital_spot"},{"location":"en/digital/digital/#get_digital_spot_profit_after_sale","text":"get Profit After Sale(P/L) sample from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"passord\" ) ACTIVES = \"EURUSD\" duration = 1 #minute 1 or 5 amount = 100 action = \"put\" #put Iq . subscribe_strike_list ( ACTIVES , duration ) _ , id = Iq . buy_digital_spot ( ACTIVES , amount , action , duration ) while True : PL = Iq . get_digital_spot_profit_after_sale ( id ) if PL != None : print ( PL )","title":"get_digital_spot_profit_after_sale()"},{"location":"en/digital/digital/#get_digital_current_profit","text":"from iqoptionapi.stable_api import IQ_Option import time import logging #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption ACTIVES = \"EURUSD\" duration = 1 #minute 1 or 5 Iq . subscribe_strike_list ( ACTIVES , duration ) while True : data = Iq . get_digital_current_profit ( ACTIVES , duration ) print ( data ) #from first print it may be get false,just wait a second you can get the profit time . sleep ( 1 ) Iq . unsubscribe_strike_list ( ACTIVES , duration )","title":"get_digital_current_profit()"},{"location":"en/digital/digital/#check-win-for-digital","text":"","title":"check win for digital"},{"location":"en/digital/digital/#check_win_digital","text":"this api is implement by get_digital_position() this function is polling , so need to set polling time Iq . check_win_digital ( id , polling_time ) #get the id from Iq.buy_digital","title":"check_win_digital()"},{"location":"en/digital/digital/#check_win_digital_v2","text":"this api is asynchronous get id data,it only can get id data before you call the buy action. if you restart the program,the asynchronous id data can not get again,so check_win_digital_v2 may not working,so you need to use \"check_win_digital\"! Iq . check_win_digital_v2 ( id ) #get the id from Iq.buy_digital #return:check_close,win_money #return sample #if you loose:Ture,o #if you win:True,1232.3 #if trade not clode yet:False,None sample code from iqoptionapi.stable_api import IQ_Option import logging import random import time import datetime #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption ACTIVES = \"EURUSD\" duration = 1 #minute 1 or 5 amount = 1 action = \"call\" #put _ , id = ( Iq . buy_digital_spot ( ACTIVES , amount , action , duration )) print ( id ) if id != \"error\" : while True : check , win = Iq . check_win_digital_v2 ( id ) if check == True : break if win < 0 : print ( \"you loss \" + str ( win ) + \"$\" ) else : print ( \"you win \" + str ( win ) + \"$\" ) else : print ( \"please try again\" )","title":"check_win_digital_v2()"},{"location":"en/digital/digital/#close_digital_option","text":"Iq . close_digital_option ( id )","title":"close_digital_option()"},{"location":"en/digital/digital/#get-digital-data","text":"smaple1 from iqoptionapi.stable_api import IQ_Option import logging import time #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption ACTIVES = \"EURUSD-OTC\" duration = 1 #minute 1 or 5 amount = 1 action = \"call\" #put from datetime import datetime _ , id = Iq . buy_digital_spot ( ACTIVES , amount , action , duration ) while True : check , _ = Iq . check_win_digital ( id ) if check : break print ( Iq . get_digital_position ( id )) print ( Iq . check_win_digital ( id )) sample2 print ( Iq . get_positions ( \"digital-option\" )) print ( Iq . get_digital_position ( 2323433 )) #in put the id print ( Iq . get_position_history ( \"digital-option\" ))","title":"get digital data"},{"location":"en/fef/fef/","text":"Forex&Stock&Commodities&Crypto&ETFs \u00b6 instrument_type and instrument_id \u00b6 you can search instrument_type and instrument_id from this file search instrument_type and instrument_id sample \u00b6 from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption instrument_type = \"crypto\" instrument_id = \"BTCUSD\" side = \"buy\" #input:\"buy\"/\"sell\" amount = 1.23 #input how many Amount you want to play #\"leverage\"=\"Multiplier\" leverage = 3 #you can get more information in get_available_leverages() type = \"market\" #input:\"market\"/\"limit\"/\"stop\" #for type=\"limit\"/\"stop\" # only working by set type=\"limit\" limit_price = None #input:None/value(float/int) # only working by set type=\"stop\" stop_price = None #input:None/value(float/int) #\"percent\"=Profit Percentage #\"price\"=Asset Price #\"diff\"=Profit in Money stop_lose_kind = \"percent\" #input:None/\"price\"/\"diff\"/\"percent\" stop_lose_value = 95 #input:None/value(float/int) take_profit_kind = None #input:None/\"price\"/\"diff\"/\"percent\" take_profit_value = None #input:None/value(float/int) #\"use_trail_stop\"=\"Trailing Stop\" use_trail_stop = True #True/False #\"auto_margin_call\"=\"Use Balance to Keep Position Open\" auto_margin_call = False #True/False #if you want \"take_profit_kind\"& # \"take_profit_value\"& # \"stop_lose_kind\"& # \"stop_lose_value\" all being \"Not Set\",\"auto_margin_call\" need to set:True use_token_for_commission = False #True/False check , order_id = Iq . buy_order ( instrument_type = instrument_type , instrument_id = instrument_id , side = side , amount = amount , leverage = leverage , type = type , limit_price = limit_price , stop_price = stop_price , stop_lose_value = stop_lose_value , stop_lose_kind = stop_lose_kind , take_profit_value = take_profit_value , take_profit_kind = take_profit_kind , use_trail_stop = use_trail_stop , auto_margin_call = auto_margin_call , use_token_for_commission = use_token_for_commission ) print ( Iq . get_order ( order_id )) print ( Iq . get_positions ( \"crypto\" )) print ( Iq . get_position_history ( \"crypto\" )) print ( Iq . get_available_leverages ( \"crypto\" , \"BTCUSD\" )) print ( Iq . close_position ( order_id )) print ( Iq . get_overnight_fee ( \"crypto\" , \"BTCUSD\" )) buy_order() \u00b6 return (True/False,buy_order_id/False) if Buy sucess return (True,buy_order_id) \"percent\"=Profit Percentage \"price\"=Asset Price \"diff\"=Profit in Money parameter instrument_type instrument_type instrument_id instrument_id side \"buy\" \"sell\" amount value(float/int) leverage value(int) type \"market\" \"limit\" \"stop\" limit_price None value(float/int):Only working by set type=\"limit\" stop_price None value(float/int):Only working by set type=\"stop\" stop_lose_kind None \"price\" \"diff\" \"percent\" stop_lose_value None value(float/int) take_profit_kind None \"price\" \"diff\" \"percent\" take_profit_value None value(float/int) use_trail_stop True False auto_margin_call True False use_token_for_commission True False check , order_id = Iq . buy_order ( instrument_type = instrument_type , instrument_id = instrument_id , side = side , amount = amount , leverage = leverage , type = type , limit_price = limit_price , stop_price = stop_price , stop_lose_kind = stop_lose_kind , stop_lose_value = stop_lose_value , take_profit_kind = take_profit_kind , take_profit_value = take_profit_value , use_trail_stop = use_trail_stop , auto_margin_call = auto_margin_call , use_token_for_commission = use_token_for_commission ) change_order() \u00b6 ID_Name=\"\"order_id\" ID_Name=\"position_id\" parameter ID_Name \"position_id\" \"order_id\" order_id \"you need to get order_id from buy_order()\" stop_lose_kind None \"price\" \"diff\" \"percent\" stop_lose_value None value(float/int) take_profit_kind None \"price\" \"diff\" \"percent\" take_profit_value None value(float/int) use_trail_stop True False auto_margin_call True False sample \u00b6 ID_Name = \"order_id\" #\"position_id\"/\"order_id\" stop_lose_kind = None stop_lose_value = None take_profit_kind = \"percent\" take_profit_value = 200 use_trail_stop = False auto_margin_call = True Iq . change_order ( ID_Name = ID_Name , order_id = order_id , stop_lose_kind = stop_lose_kind , stop_lose_value = stop_lose_value , take_profit_kind = take_profit_kind , take_profit_value = take_profit_value , use_trail_stop = use_trail_stop , auto_margin_call = auto_margin_call ) get_order() \u00b6 get infomation about buy_order_id return (True/False,get_order,None) Iq . get_order ( buy_order_id ) get_pending() \u00b6 you will get there data Iq . get_pending ( instrument_type ) get_positions() \u00b6 you will get there data return (True/False,get_positions,None) not support \"\"turbo-option\"\" instrument_type=\"crypto\",\"forex\",\"fx-option\",\"multi-option\",\"cfd\",\"digital-option\" Iq . get_positions ( instrument_type ) get_position() \u00b6 you will get there data you will get one position by buy_order_id return (True/False,position data,None) Iq . get_positions ( buy_order_id ) get_position_history \u00b6 you will get there data get_position_history() \u00b6 return (True/False,position_history,None) Iq.get_position_history(instrument_type) get_position_history_v2 \u00b6 instrument_type=\"crypto\",\"forex\",\"fx-option\",\"turbo-option\",\"multi-option\",\"cfd\",\"digital-option\" get_position_history_v2(instrument_type,limit,offset,start,end) from iqoptionapi.stable_api import IQ_Option import logging import random import time import datetime logging . basicConfig ( level = logging . DEBUG , format = ' %(asctime)s %(message)s ' ) Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption #instrument_type=\"crypto\",\"forex\",\"fx-option\",\"turbo-option\",\"multi-option\",\"cfd\",\"digital-option\" instrument_type = \"digital-option\" limit = 2 #How many you want to get offset = 0 #offset from end time,if end time is 0,it mean get the data from now start = 0 #start time Timestamp end = 0 #Timestamp data = Iq . get_position_history_v2 ( instrument_type , limit , offset , start , end ) print ( data ) #--------- this will get data start from 2019/7/1(end) to 2019/1/1(start) and only get 2(limit) data and offset is 0 instrument_type = \"digital-option\" limit = 2 #How many you want to get offset = 0 #offset from end time,if end time is 0,it mean get the data from now start = int ( time . mktime ( datetime . datetime . strptime ( \"2019/1/1\" , \"%Y/%m/ %d \" ) . timetuple ())) end = int ( time . mktime ( datetime . datetime . strptime ( \"2019/7/1\" , \"%Y/%m/ %d \" ) . timetuple ())) data = Iq . get_position_history_v2 ( instrument_type , limit , offset , start , end ) print ( data ) get_available_leverages() \u00b6 get available leverages return (True/False,available_leverages,None) Iq . get_available_leverages ( instrument_type , actives ) cancel_order() \u00b6 you will do this return (True/False) Iq . cancel_order ( buy_order_id ) close_position() \u00b6 you will do this return (True/False) Iq . close_position ( buy_order_id ) get_overnight_fee() \u00b6 return (True/False,overnight_fee,None) Iq . get_overnight_fee ( instrument_type , active )","title":"Foreign exchange futures"},{"location":"en/fef/fef/#forexstockcommoditiescryptoetfs","text":"","title":"Forex&Stock&Commodities&Crypto&ETFs"},{"location":"en/fef/fef/#instrument_type-and-instrument_id","text":"you can search instrument_type and instrument_id from this file search instrument_type and instrument_id","title":"instrument_type and instrument_id"},{"location":"en/fef/fef/#sample","text":"from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption instrument_type = \"crypto\" instrument_id = \"BTCUSD\" side = \"buy\" #input:\"buy\"/\"sell\" amount = 1.23 #input how many Amount you want to play #\"leverage\"=\"Multiplier\" leverage = 3 #you can get more information in get_available_leverages() type = \"market\" #input:\"market\"/\"limit\"/\"stop\" #for type=\"limit\"/\"stop\" # only working by set type=\"limit\" limit_price = None #input:None/value(float/int) # only working by set type=\"stop\" stop_price = None #input:None/value(float/int) #\"percent\"=Profit Percentage #\"price\"=Asset Price #\"diff\"=Profit in Money stop_lose_kind = \"percent\" #input:None/\"price\"/\"diff\"/\"percent\" stop_lose_value = 95 #input:None/value(float/int) take_profit_kind = None #input:None/\"price\"/\"diff\"/\"percent\" take_profit_value = None #input:None/value(float/int) #\"use_trail_stop\"=\"Trailing Stop\" use_trail_stop = True #True/False #\"auto_margin_call\"=\"Use Balance to Keep Position Open\" auto_margin_call = False #True/False #if you want \"take_profit_kind\"& # \"take_profit_value\"& # \"stop_lose_kind\"& # \"stop_lose_value\" all being \"Not Set\",\"auto_margin_call\" need to set:True use_token_for_commission = False #True/False check , order_id = Iq . buy_order ( instrument_type = instrument_type , instrument_id = instrument_id , side = side , amount = amount , leverage = leverage , type = type , limit_price = limit_price , stop_price = stop_price , stop_lose_value = stop_lose_value , stop_lose_kind = stop_lose_kind , take_profit_value = take_profit_value , take_profit_kind = take_profit_kind , use_trail_stop = use_trail_stop , auto_margin_call = auto_margin_call , use_token_for_commission = use_token_for_commission ) print ( Iq . get_order ( order_id )) print ( Iq . get_positions ( \"crypto\" )) print ( Iq . get_position_history ( \"crypto\" )) print ( Iq . get_available_leverages ( \"crypto\" , \"BTCUSD\" )) print ( Iq . close_position ( order_id )) print ( Iq . get_overnight_fee ( \"crypto\" , \"BTCUSD\" ))","title":"sample"},{"location":"en/fef/fef/#buy_order","text":"return (True/False,buy_order_id/False) if Buy sucess return (True,buy_order_id) \"percent\"=Profit Percentage \"price\"=Asset Price \"diff\"=Profit in Money parameter instrument_type instrument_type instrument_id instrument_id side \"buy\" \"sell\" amount value(float/int) leverage value(int) type \"market\" \"limit\" \"stop\" limit_price None value(float/int):Only working by set type=\"limit\" stop_price None value(float/int):Only working by set type=\"stop\" stop_lose_kind None \"price\" \"diff\" \"percent\" stop_lose_value None value(float/int) take_profit_kind None \"price\" \"diff\" \"percent\" take_profit_value None value(float/int) use_trail_stop True False auto_margin_call True False use_token_for_commission True False check , order_id = Iq . buy_order ( instrument_type = instrument_type , instrument_id = instrument_id , side = side , amount = amount , leverage = leverage , type = type , limit_price = limit_price , stop_price = stop_price , stop_lose_kind = stop_lose_kind , stop_lose_value = stop_lose_value , take_profit_kind = take_profit_kind , take_profit_value = take_profit_value , use_trail_stop = use_trail_stop , auto_margin_call = auto_margin_call , use_token_for_commission = use_token_for_commission )","title":"buy_order()"},{"location":"en/fef/fef/#change_order","text":"ID_Name=\"\"order_id\" ID_Name=\"position_id\" parameter ID_Name \"position_id\" \"order_id\" order_id \"you need to get order_id from buy_order()\" stop_lose_kind None \"price\" \"diff\" \"percent\" stop_lose_value None value(float/int) take_profit_kind None \"price\" \"diff\" \"percent\" take_profit_value None value(float/int) use_trail_stop True False auto_margin_call True False","title":"change_order()"},{"location":"en/fef/fef/#sample_1","text":"ID_Name = \"order_id\" #\"position_id\"/\"order_id\" stop_lose_kind = None stop_lose_value = None take_profit_kind = \"percent\" take_profit_value = 200 use_trail_stop = False auto_margin_call = True Iq . change_order ( ID_Name = ID_Name , order_id = order_id , stop_lose_kind = stop_lose_kind , stop_lose_value = stop_lose_value , take_profit_kind = take_profit_kind , take_profit_value = take_profit_value , use_trail_stop = use_trail_stop , auto_margin_call = auto_margin_call )","title":"sample"},{"location":"en/fef/fef/#get_order","text":"get infomation about buy_order_id return (True/False,get_order,None) Iq . get_order ( buy_order_id )","title":"get_order()"},{"location":"en/fef/fef/#get_pending","text":"you will get there data Iq . get_pending ( instrument_type )","title":"get_pending()"},{"location":"en/fef/fef/#get_positions","text":"you will get there data return (True/False,get_positions,None) not support \"\"turbo-option\"\" instrument_type=\"crypto\",\"forex\",\"fx-option\",\"multi-option\",\"cfd\",\"digital-option\" Iq . get_positions ( instrument_type )","title":"get_positions()"},{"location":"en/fef/fef/#get_position","text":"you will get there data you will get one position by buy_order_id return (True/False,position data,None) Iq . get_positions ( buy_order_id )","title":"get_position()"},{"location":"en/fef/fef/#get_position_history","text":"you will get there data","title":"get_position_history"},{"location":"en/fef/fef/#get_position_history_1","text":"return (True/False,position_history,None) Iq.get_position_history(instrument_type)","title":"get_position_history()"},{"location":"en/fef/fef/#get_position_history_v2","text":"instrument_type=\"crypto\",\"forex\",\"fx-option\",\"turbo-option\",\"multi-option\",\"cfd\",\"digital-option\" get_position_history_v2(instrument_type,limit,offset,start,end) from iqoptionapi.stable_api import IQ_Option import logging import random import time import datetime logging . basicConfig ( level = logging . DEBUG , format = ' %(asctime)s %(message)s ' ) Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption #instrument_type=\"crypto\",\"forex\",\"fx-option\",\"turbo-option\",\"multi-option\",\"cfd\",\"digital-option\" instrument_type = \"digital-option\" limit = 2 #How many you want to get offset = 0 #offset from end time,if end time is 0,it mean get the data from now start = 0 #start time Timestamp end = 0 #Timestamp data = Iq . get_position_history_v2 ( instrument_type , limit , offset , start , end ) print ( data ) #--------- this will get data start from 2019/7/1(end) to 2019/1/1(start) and only get 2(limit) data and offset is 0 instrument_type = \"digital-option\" limit = 2 #How many you want to get offset = 0 #offset from end time,if end time is 0,it mean get the data from now start = int ( time . mktime ( datetime . datetime . strptime ( \"2019/1/1\" , \"%Y/%m/ %d \" ) . timetuple ())) end = int ( time . mktime ( datetime . datetime . strptime ( \"2019/7/1\" , \"%Y/%m/ %d \" ) . timetuple ())) data = Iq . get_position_history_v2 ( instrument_type , limit , offset , start , end ) print ( data )","title":"get_position_history_v2"},{"location":"en/fef/fef/#get_available_leverages","text":"get available leverages return (True/False,available_leverages,None) Iq . get_available_leverages ( instrument_type , actives )","title":"get_available_leverages()"},{"location":"en/fef/fef/#cancel_order","text":"you will do this return (True/False) Iq . cancel_order ( buy_order_id )","title":"cancel_order()"},{"location":"en/fef/fef/#close_position","text":"you will do this return (True/False) Iq . close_position ( buy_order_id )","title":"close_position()"},{"location":"en/fef/fef/#get_overnight_fee","text":"return (True/False,overnight_fee,None) Iq . get_overnight_fee ( instrument_type , active )","title":"get_overnight_fee()"},{"location":"en/techinical%20analysis/","text":"Tecnical analysis \u00b6 It is available in same assets and you can check it on asset info: if there is a session like this you can get data: NOTE: If there is no techinical Analysis on asset you want, you can't use it. There are some indicators available: Pivots \u00b6 Oscillators \u00b6 Moving Averages \u00b6 How to use: \u00b6 asset = \"GBPUSD\" indicators = Iq . get_technical_indicators ( asset ) print ( indicators ) if assets doesn't contains technical Analysis it returns: { \"code\": \"no_technical_indicator_available\", \"message\": \"Active is not supported: active id 'ACTIVE_ID_PASSED'\" } If there is something: NOTE: YOU MUST TO ANALYSE THE PRINT OUTPUT [ { \"action\" : \"hold\" , \"candle_size\" : 60 , \"group\" : \"OSCILLATORS\" , \"name\" : \"Relative Strength Index (14)\" , \"value\" : 59.168583 }, { \"action\" : \"hold\" , \"candle_size\" : 60 , \"group\" : \"PIVOTS\" , \"name\" : \"Classic s3\" , \"value\" : 1.057292 } ..... ]","title":"Techincal Analysis"},{"location":"en/techinical%20analysis/#tecnical-analysis","text":"It is available in same assets and you can check it on asset info: if there is a session like this you can get data: NOTE: If there is no techinical Analysis on asset you want, you can't use it. There are some indicators available:","title":"Tecnical analysis"},{"location":"en/techinical%20analysis/#pivots","text":"","title":"Pivots"},{"location":"en/techinical%20analysis/#oscillators","text":"","title":"Oscillators"},{"location":"en/techinical%20analysis/#moving-averages","text":"","title":"Moving Averages"},{"location":"en/techinical%20analysis/#how-to-use","text":"asset = \"GBPUSD\" indicators = Iq . get_technical_indicators ( asset ) print ( indicators ) if assets doesn't contains technical Analysis it returns: { \"code\": \"no_technical_indicator_available\", \"message\": \"Active is not supported: active id 'ACTIVE_ID_PASSED'\" } If there is something: NOTE: YOU MUST TO ANALYSE THE PRINT OUTPUT [ { \"action\" : \"hold\" , \"candle_size\" : 60 , \"group\" : \"OSCILLATORS\" , \"name\" : \"Relative Strength Index (14)\" , \"value\" : 59.168583 }, { \"action\" : \"hold\" , \"candle_size\" : 60 , \"group\" : \"PIVOTS\" , \"name\" : \"Classic s3\" , \"value\" : 1.057292 } ..... ]","title":"How to use:"},{"location":"es/","text":"Primeros pasos \u00b6 Instalar iqoptionapi \u00b6 descarga el c\u00f3digo fuente y ejecuta lo siguiente: python setup.py install o instalar usando (Necesitas git instalada ): pip install -U git+git://github.com/iqoptionapi/iqoptionapi.git Un ejemplo simple \u00b6 import time from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption goal = \"EURUSD\" print ( \"get candles\" ) print ( Iq . get_candles ( goal , 60 , 111 , time . time ())) Importar la librer\u00eda \u00b6 from iqoptionapi.stable_api import IQ_Option Login \u00b6 Iq.connect() will return (check,reason) Si la conexi\u00f3n es exitosa, devuelve -> True,None Si hay alg\u00fan fallo en la conexi\u00f3n, devuelve -> False,reason from iqoptionapi.stable_api import IQ_Option import logging logging . basicConfig ( level = logging . DEBUG , format = ' %(asctime)s %(message)s ' ) Iq = IQ_Option ( \"email\" , \"password\" ) check , reason = Iq . connect () #connect to iqoption print ( check , reason ) Activar el modo Debug \u00b6 import logging logging . basicConfig ( level = logging . DEBUG , format = ' %(asctime)s %(message)s ' ) Conectarse y comprobar la conexi\u00f3n \u00b6 A veces la conexi\u00f3n se cierra, as\u00ed que debemos de comprobar la conexi\u00f3n y volvenos a conectar. Prueba a desconectar tu conexi\u00f3n y volverla a conectar para probar el siguiente ejemplo. from iqoptionapi.stable_api import IQ_Option error_password = \"\"\"{\"code\":\"invalid_credentials\",\"message\":\"You entered the wrong credentials. Please check that the login/password is correct.\"}\"\"\" iqoption = IQ_Option ( \"email\" , \"password\" ) check , reason = iqoption . connect () if check : print ( \"Activa tu robot\" ) #Si ves esto puedess cerrar la conexi\u00f3n para probarlo while True : if iqoption . check_connect () == False : #Detecta si el websocket ha sido cerrado print ( \"Probando a reconectar\" ) check , reason = iqoption . connect () if check : print ( \"Reconectado con \u00e9xito\" ) else : if reason == error_password : print ( \"Contrase\u00f1a incorrecta\" ) else : print ( \"No hay conexi\u00f3n\" ) else : if reason == \"[Errno -2] Nombre or servicio no conocido\" : print ( \"No hay conexi\u00f3n\" ) elif reason == error_password : print ( \"Error en la Contrase\u00f1a\" ) set_session \u00b6 Default User-Agent is \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36\" from iqoptionapi.stable_api import IQ_Option import logging logging . basicConfig ( level = logging . DEBUG , format = ' %(asctime)s %(message)s ' ) Iq = IQ_Option ( \"email\" , \"password\" ) #Por defecto es \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36\" header = { \"User-Agent\" : r \"Mozilla/5.0 (X11; Linux x86_64; rv:70.0) Gecko/20100101 Firefox/70.0\" } cookie = { \"Iq\" : \"GOOD\" } Iq . set_session ( header , cookie ) Iq . connect () #Conectar a IqOption Comprobar versi\u00f3n \u00b6 from iqoptionapi.stable_api import IQ_Option print ( IQ_Option . __version__ ) Comprobar conexi\u00f3n \u00b6 return True/False print(Iq.check_connect()) Reconnect \u00b6 Iq . connect () time \u00b6 get_server_timestamp El tiempo se sincronica con iqoption Iq . get_server_timestamp ()","title":"Empezar"},{"location":"es/#primeros-pasos","text":"","title":"Primeros pasos"},{"location":"es/#instalar-iqoptionapi","text":"descarga el c\u00f3digo fuente y ejecuta lo siguiente: python setup.py install o instalar usando (Necesitas git instalada ): pip install -U git+git://github.com/iqoptionapi/iqoptionapi.git","title":"Instalar iqoptionapi"},{"location":"es/#un-ejemplo-simple","text":"import time from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption goal = \"EURUSD\" print ( \"get candles\" ) print ( Iq . get_candles ( goal , 60 , 111 , time . time ()))","title":"Un ejemplo simple"},{"location":"es/#importar-la-libreria","text":"from iqoptionapi.stable_api import IQ_Option","title":"Importar la librer\u00eda"},{"location":"es/#login","text":"Iq.connect() will return (check,reason) Si la conexi\u00f3n es exitosa, devuelve -> True,None Si hay alg\u00fan fallo en la conexi\u00f3n, devuelve -> False,reason from iqoptionapi.stable_api import IQ_Option import logging logging . basicConfig ( level = logging . DEBUG , format = ' %(asctime)s %(message)s ' ) Iq = IQ_Option ( \"email\" , \"password\" ) check , reason = Iq . connect () #connect to iqoption print ( check , reason )","title":"Login"},{"location":"es/#activar-el-modo-debug","text":"import logging logging . basicConfig ( level = logging . DEBUG , format = ' %(asctime)s %(message)s ' )","title":"Activar el modo Debug"},{"location":"es/#conectarse-y-comprobar-la-conexion","text":"A veces la conexi\u00f3n se cierra, as\u00ed que debemos de comprobar la conexi\u00f3n y volvenos a conectar. Prueba a desconectar tu conexi\u00f3n y volverla a conectar para probar el siguiente ejemplo. from iqoptionapi.stable_api import IQ_Option error_password = \"\"\"{\"code\":\"invalid_credentials\",\"message\":\"You entered the wrong credentials. Please check that the login/password is correct.\"}\"\"\" iqoption = IQ_Option ( \"email\" , \"password\" ) check , reason = iqoption . connect () if check : print ( \"Activa tu robot\" ) #Si ves esto puedess cerrar la conexi\u00f3n para probarlo while True : if iqoption . check_connect () == False : #Detecta si el websocket ha sido cerrado print ( \"Probando a reconectar\" ) check , reason = iqoption . connect () if check : print ( \"Reconectado con \u00e9xito\" ) else : if reason == error_password : print ( \"Contrase\u00f1a incorrecta\" ) else : print ( \"No hay conexi\u00f3n\" ) else : if reason == \"[Errno -2] Nombre or servicio no conocido\" : print ( \"No hay conexi\u00f3n\" ) elif reason == error_password : print ( \"Error en la Contrase\u00f1a\" )","title":"Conectarse y comprobar la conexi\u00f3n"},{"location":"es/#set_session","text":"Default User-Agent is \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36\" from iqoptionapi.stable_api import IQ_Option import logging logging . basicConfig ( level = logging . DEBUG , format = ' %(asctime)s %(message)s ' ) Iq = IQ_Option ( \"email\" , \"password\" ) #Por defecto es \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36\" header = { \"User-Agent\" : r \"Mozilla/5.0 (X11; Linux x86_64; rv:70.0) Gecko/20100101 Firefox/70.0\" } cookie = { \"Iq\" : \"GOOD\" } Iq . set_session ( header , cookie ) Iq . connect () #Conectar a IqOption","title":"set_session"},{"location":"es/#comprobar-version","text":"from iqoptionapi.stable_api import IQ_Option print ( IQ_Option . __version__ )","title":"Comprobar versi\u00f3n"},{"location":"es/#comprobar-conexion","text":"return True/False print(Iq.check_connect())","title":"Comprobar conexi\u00f3n"},{"location":"es/#reconnect","text":"Iq . connect ()","title":"Reconnect"},{"location":"es/#time","text":"get_server_timestamp El tiempo se sincronica con iqoption Iq . get_server_timestamp ()","title":"time"},{"location":"es/account/account/","text":"Cuenta \u00b6 get_balance() \u00b6 Obt\u00e9n el saldo de tu cuenta Iq . get_balance () get_balance_v2() \u00b6 Obt\u00e9n el saldo de tu cuenta con M\u00c1S PRECISI\u00d3N Iq . get_balance_v2 () get_currency() \u00b6 Comprobar que divisa utiliza tu cuenta (USD, EUR...) Iq . get_currency () reset_practice_balance() \u00b6 Recargar el saldo de tu cuenta de pr\u00e1ctica a $10000 from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption print ( Iq . reset_practice_balance ()) Cambiar tu cuenta entre los smodos Real/Pr\u00e1ctica \u00b6 MODE=\"PRACTICE\"/\"REAL\" Iq . change_balance ( MODE ) #MODE: \"PRACTICE\"/\"REAL\" obtener la Estrat\u00e9gia de Otra Gente \u00b6 Ejemplo \u00b6 from iqoptionapi.stable_api import IQ_Option import logging import time #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption while_run_time = 10 #Para opciones digitales name = \"live-deal-digital-option\" #\"live-deal-binary-option-placed\"/\"live-deal-digital-option\" active = \"EURUSD\" _type = \"PT1M\" #\"PT1M\"/\"PT5M\"/\"PT15M\" buffersize = 10 # print ( \"_____________subscribe_live_deal_______________\" ) Iq . subscribe_live_deal ( name , active , _type , buffersize ) start_t = time . time () while True : data = ( Iq . get_live_deal ( name , active , _type )) print ( \"__For_digital_option__ data size:\" + str ( len ( data ))) print ( data ) print ( \" \\n\\n \" ) time . sleep ( 1 ) if time . time () - start_t > while_run_time : break print ( \"_____________unscribe_live_deal_______________\" ) Iq . unscribe_live_deal ( name , active , _type ) #Para opciones binariass name = \"live-deal-binary-option-placed\" active = \"EURUSD\" _type = \"turbo\" #\"turbo\"/\"binary\" buffersize = 10 # print ( \"_____________subscribe_live_deal_______________\" ) Iq . subscribe_live_deal ( name , active , _type , buffersize ) start_t = time . time () while True : data = ( Iq . get_live_deal ( name , active , _type )) print ( \"__For_binary_option__ data size:\" + str ( len ( data ))) print ( data ) print ( \" \\n\\n \" ) time . sleep ( 1 ) if time . time () - start_t > while_run_time : break print ( \"_____________unscribe_live_deal_______________\" ) Iq . unscribe_live_deal ( name , active , _type ) subscribe_live_deal \u00b6 Suscribirse a un acuerdo en vivo Iq . subscribe_live_deal ( name , active , _type , buffersize ) unscribe_live_deal \u00b6 Cancelar suscripci\u00f3n al acuerdo en vivo Iq . unscribe_live_deal ( name , active , _type ) get_live_deal \u00b6 Obtener el acuerdo en vivo Iq . get_live_deal ( name , active , _type ) pop_live_deal \u00b6 Iq . pop_live_deal ( name , active , _type ) get Other people detail \u00b6 Obtener los detalles de otra gente Ejemplo \u00b6 from iqoptionapi.stable_api import IQ_Option import logging import time #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption while_run_time = 10 #Para opciones binarias name = \"live-deal-binary-option-placed\" active = \"EURUSD\" _type = \"turbo\" #\"turbo\"/\"binary\" buffersize = 10 # print ( \"_____________subscribe_live_deal_______________\" ) print ( \" \\n\\n \" ) Iq . subscribe_live_deal ( name , active , _type , buffersize ) last_trade_data = Iq . get_live_deal ( name , active , _type )[ 0 ] user_id = last_trade_data [ \"user_id\" ] counutry_id = last_trade_data [ \"country_id\" ] print ( \"_______get_user_profile_client__________\" ) print ( Iq . get_user_profile_client ( user_id )) pro_data = Iq . get_user_profile_client ( user_id ) print ( \" \\n\\n \" ) print ( \"___________request_leaderboard_userinfo_deals_client______\" ) print ( Iq . request_leaderboard_userinfo_deals_client ( user_id , counutry_id )) user_data = Iq . request_leaderboard_userinfo_deals_client ( user_id , counutry_id ) worldwide = user_data [ \"result\" ][ \"entries_by_country\" ][ \"0\" ][ \"position\" ] profit = user_data [ \"result\" ][ \"entries_by_country\" ][ \"0\" ][ \"score\" ] print ( \" \\n \" ) print ( \"user_name:\" + pro_data [ \"user_name\" ]) print ( \"Esta semana en todo el mundo: \" + str ( worldwide )) print ( \"Esta semana beneficios en bruto: \" + str ( profit )) print ( \" \\n\\n \" ) print ( \"___________get_users_availability____________\" ) print ( Iq . get_users_availability ( user_id )) print ( \" \\n\\n \" ) print ( \"_____________unscribe_live_deal_______________\" ) Iq . unscribe_live_deal ( name , active , _type ) get_user_profile_client() \u00b6 Obtener el nombre de usuario y imagen Iq . get_user_profile_client ( user_id ) request_leaderboard_userinfo_deals_client() \u00b6 Obtener los detalles del cliente Iq . request_leaderboard_userinfo_deals_client ( user_id , counutry_id ) get_users_availability() \u00b6 Iq . get_users_availability ( user_id )","title":"Cuenta"},{"location":"es/account/account/#cuenta","text":"","title":"Cuenta"},{"location":"es/account/account/#get_balance","text":"Obt\u00e9n el saldo de tu cuenta Iq . get_balance ()","title":"get_balance()"},{"location":"es/account/account/#get_balance_v2","text":"Obt\u00e9n el saldo de tu cuenta con M\u00c1S PRECISI\u00d3N Iq . get_balance_v2 ()","title":"get_balance_v2()"},{"location":"es/account/account/#get_currency","text":"Comprobar que divisa utiliza tu cuenta (USD, EUR...) Iq . get_currency ()","title":"get_currency()"},{"location":"es/account/account/#reset_practice_balance","text":"Recargar el saldo de tu cuenta de pr\u00e1ctica a $10000 from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption print ( Iq . reset_practice_balance ())","title":"reset_practice_balance()"},{"location":"es/account/account/#cambiar-tu-cuenta-entre-los-smodos-realpractica","text":"MODE=\"PRACTICE\"/\"REAL\" Iq . change_balance ( MODE ) #MODE: \"PRACTICE\"/\"REAL\"","title":"Cambiar tu cuenta entre los smodos Real/Pr\u00e1ctica"},{"location":"es/account/account/#obtener-la-estrategia-de-otra-gente","text":"","title":"obtener la Estrat\u00e9gia de Otra Gente"},{"location":"es/account/account/#ejemplo","text":"from iqoptionapi.stable_api import IQ_Option import logging import time #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption while_run_time = 10 #Para opciones digitales name = \"live-deal-digital-option\" #\"live-deal-binary-option-placed\"/\"live-deal-digital-option\" active = \"EURUSD\" _type = \"PT1M\" #\"PT1M\"/\"PT5M\"/\"PT15M\" buffersize = 10 # print ( \"_____________subscribe_live_deal_______________\" ) Iq . subscribe_live_deal ( name , active , _type , buffersize ) start_t = time . time () while True : data = ( Iq . get_live_deal ( name , active , _type )) print ( \"__For_digital_option__ data size:\" + str ( len ( data ))) print ( data ) print ( \" \\n\\n \" ) time . sleep ( 1 ) if time . time () - start_t > while_run_time : break print ( \"_____________unscribe_live_deal_______________\" ) Iq . unscribe_live_deal ( name , active , _type ) #Para opciones binariass name = \"live-deal-binary-option-placed\" active = \"EURUSD\" _type = \"turbo\" #\"turbo\"/\"binary\" buffersize = 10 # print ( \"_____________subscribe_live_deal_______________\" ) Iq . subscribe_live_deal ( name , active , _type , buffersize ) start_t = time . time () while True : data = ( Iq . get_live_deal ( name , active , _type )) print ( \"__For_binary_option__ data size:\" + str ( len ( data ))) print ( data ) print ( \" \\n\\n \" ) time . sleep ( 1 ) if time . time () - start_t > while_run_time : break print ( \"_____________unscribe_live_deal_______________\" ) Iq . unscribe_live_deal ( name , active , _type )","title":"Ejemplo"},{"location":"es/account/account/#subscribe_live_deal","text":"Suscribirse a un acuerdo en vivo Iq . subscribe_live_deal ( name , active , _type , buffersize )","title":"subscribe_live_deal"},{"location":"es/account/account/#unscribe_live_deal","text":"Cancelar suscripci\u00f3n al acuerdo en vivo Iq . unscribe_live_deal ( name , active , _type )","title":"unscribe_live_deal"},{"location":"es/account/account/#get_live_deal","text":"Obtener el acuerdo en vivo Iq . get_live_deal ( name , active , _type )","title":"get_live_deal"},{"location":"es/account/account/#pop_live_deal","text":"Iq . pop_live_deal ( name , active , _type )","title":"pop_live_deal"},{"location":"es/account/account/#get-other-people-detail","text":"Obtener los detalles de otra gente","title":"get Other people detail"},{"location":"es/account/account/#ejemplo_1","text":"from iqoptionapi.stable_api import IQ_Option import logging import time #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption while_run_time = 10 #Para opciones binarias name = \"live-deal-binary-option-placed\" active = \"EURUSD\" _type = \"turbo\" #\"turbo\"/\"binary\" buffersize = 10 # print ( \"_____________subscribe_live_deal_______________\" ) print ( \" \\n\\n \" ) Iq . subscribe_live_deal ( name , active , _type , buffersize ) last_trade_data = Iq . get_live_deal ( name , active , _type )[ 0 ] user_id = last_trade_data [ \"user_id\" ] counutry_id = last_trade_data [ \"country_id\" ] print ( \"_______get_user_profile_client__________\" ) print ( Iq . get_user_profile_client ( user_id )) pro_data = Iq . get_user_profile_client ( user_id ) print ( \" \\n\\n \" ) print ( \"___________request_leaderboard_userinfo_deals_client______\" ) print ( Iq . request_leaderboard_userinfo_deals_client ( user_id , counutry_id )) user_data = Iq . request_leaderboard_userinfo_deals_client ( user_id , counutry_id ) worldwide = user_data [ \"result\" ][ \"entries_by_country\" ][ \"0\" ][ \"position\" ] profit = user_data [ \"result\" ][ \"entries_by_country\" ][ \"0\" ][ \"score\" ] print ( \" \\n \" ) print ( \"user_name:\" + pro_data [ \"user_name\" ]) print ( \"Esta semana en todo el mundo: \" + str ( worldwide )) print ( \"Esta semana beneficios en bruto: \" + str ( profit )) print ( \" \\n\\n \" ) print ( \"___________get_users_availability____________\" ) print ( Iq . get_users_availability ( user_id )) print ( \" \\n\\n \" ) print ( \"_____________unscribe_live_deal_______________\" ) Iq . unscribe_live_deal ( name , active , _type )","title":"Ejemplo"},{"location":"es/account/account/#get_user_profile_client","text":"Obtener el nombre de usuario y imagen Iq . get_user_profile_client ( user_id )","title":"get_user_profile_client()"},{"location":"es/account/account/#request_leaderboard_userinfo_deals_client","text":"Obtener los detalles del cliente Iq . request_leaderboard_userinfo_deals_client ( user_id , counutry_id )","title":"request_leaderboard_userinfo_deals_client()"},{"location":"es/account/account/#get_users_availability","text":"Iq . get_users_availability ( user_id )","title":"get_users_availability()"},{"location":"es/all/all/","text":"Para todo \u00b6 Esta api puede trabajar con option&digital&Forex&Stock&Commodities&Crypto&ETFs Comprobar si un asset est\u00e1 abierto o no \u00b6 tener cuidado con get_all_open_time() es demasiado pesado para la conexi\u00f3n. get_all_open_time() devuelve un DICT \"cfd\" incluye,Commodities,ETFs asset DICT[\"forex\"/\"cfd\"/\"crypto\"/\"digital\"/\"turbo\"/\"binary\"][Asset Name][\"open\"] devolver\u00e1 True/False from iqoptionapi.stable_api import IQ_Option import logging import random logging . basicConfig ( level = logging . DEBUG , format = ' %(asctime)s %(message)s ' ) Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption ALL_Asset = Iq . get_all_open_time () #Comprobar si est\u00e1 abierto o no print ( ALL_Asset [ \"forex\" ][ \"EURUSD\" ][ \"open\" ]) print ( ALL_Asset [ \"cfd\" ][ \"FACEBOOK\" ][ \"open\" ]) #Stock,Commodities,ETFs print ( ALL_Asset [ \"crypto\" ][ \"BTCUSD-L\" ][ \"open\" ]) print ( ALL_Asset [ \"digital\" ][ \"EURUSD-OTC\" ][ \"open\" ]) #La binarias tienes doss tipos -> type:\"turbo\",\"binary\" print ( ALL_Asset [ \"turbo\" ][ \"EURUSD-OTC\" ][ \"open\" ]) print ( ALL_Asset [ \"binary\" ][ \"EURUSD-OTC\" ][ \"open\" ]) #!!!! Excepci\u00f3j \"\" print ( ALL_Asset [ \"binary\" ][ \"not exist asset\" ][ \"open\" ]) #Devolver\u00e1 \"{}\" a None de un dict #!!!!Imprimir todo!!! for type_name , data in ALL_Asset . items (): for Asset , value in data . items (): print ( type_name , Asset , value [ \"open\" ]) Ver todos los nombress de lo Activos (ACTIVES) \u00b6 print(Iq.get_all_ACTIVES_OPCODE()) Actualizar OPCODE de los Activos (ACTIVES) \u00b6 Iq.update_ACTIVES_OPCODE() get_async_order() \u00b6 from iqoptionapi.stable_api import IQ_Option import logging import time #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption ACTIVES = \"EURUSD\" duration = 1 #minute 1 or 5 amount = 1 action = \"call\" #put print ( \"__Para_Opciones_Binarias__\" ) _ , id = Iq . buy ( amount , ACTIVES , action , duration ) while Iq . get_async_order ( id ) == None : pass print ( Iq . get_async_order ( id )) print ( \" \\n\\n \" ) print ( \"__Para_Opciones_Digitales__spot\" ) _ , id = Iq . buy_digital_spot ( ACTIVES , amount , action , duration ) while Iq . get_async_order ( id ) == None : pass order_data = Iq . get_async_order ( id ) print ( Iq . get_async_order ( id )) print ( \" \\n\\n \" ) print ( \"__Para_Forex_Mercado_MateriasPrimas_Crypto_ETFs\" ) instrument_type = \"crypto\" instrument_id = \"BTCUSD\" side = \"buy\" amount = 1.23 leverage = 3 type = \"market\" limit_price = None stop_price = None stop_lose_kind = \"percent\" stop_lose_value = 95 take_profit_kind = None take_profit_value = None use_trail_stop = True auto_margin_call = False use_token_for_commission = False check , id = Iq . buy_order ( instrument_type = instrument_type , instrument_id = instrument_id , side = side , amount = amount , leverage = leverage , type = type , limit_price = limit_price , stop_price = stop_price , stop_lose_value = stop_lose_value , stop_lose_kind = stop_lose_kind , take_profit_value = take_profit_value , take_profit_kind = take_profit_kind , use_trail_stop = use_trail_stop , auto_margin_call = auto_margin_call , use_token_for_commission = use_token_for_commission ) while Iq . get_async_order ( id ) == None : pass order_data = Iq . get_async_order ( id ) print ( Iq . get_async_order ( id )) get_commission_change() \u00b6 instrument_type: \"binary-option\"/\"turbo-option\"/\"digital-option\"/\"crypto\"/\"forex\"/\"cfd\" Iq.subscribe_commission_changed(instrument_type) Iq.get_commission_change(instrument_type) Iq.unsubscribe_commission_changed(instrument_type) C\u00f3digo de ejemplo import time from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption #instrument_type: \"binary-option\"/\"turbo-option\"/\"digital-option\"/\"crypto\"/\"forex\"/\"cfd\" instrument_type = [ \"binary-option\" , \"turbo-option\" , \"digital-option\" , \"crypto\" , \"forex\" , \"cfd\" ] for ins in instrument_type : Iq . subscribe_commission_changed ( ins ) print ( \"Start stream please wait profit change...\" ) while True : for ins in instrument_type : commissio_data = Iq . get_commission_change ( ins ) if commissio_data != {}: for active_name in commissio_data : if commissio_data [ active_name ] != {}: the_min_timestamp = min ( commissio_data [ active_name ] . keys ()) commissio = commissio_data [ active_name ][ the_min_timestamp ] profit = ( 100 - commissio ) / 100 print ( \"instrument_type: \" + str ( ins ) + \" active_name: \" + str ( active_name ) + \" profit change to: \" + str ( profit )) #Data have been update so need del del Iq . get_commission_change ( ins )[ active_name ][ the_min_timestamp ] time . sleep ( 1 ) Obtener top_assets_updated \u00b6 Ejemplo \u00b6 instrument_type=\"binary-option\"/\"digital-option\"/\"forex\"/\"cfd\"/\"crypto\" from iqoptionapi.stable_api import IQ_Option import logging import time #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption instrument_type = \"digital-option\" #\"binary-option\"/\"digital-option\"/\"forex\"/\"cfd\"/\"crypto\" Iq . subscribe_top_assets_updated ( instrument_type ) print ( \"__Please_wait_for_sec__\" ) while True : if Iq . get_top_assets_updated ( instrument_type ) != None : print ( Iq . get_top_assets_updated ( instrument_type )) print ( \" \\n\\n \" ) time . sleep ( 1 ) Iq . unsubscribe_top_assets_updated ( instrument_type ) subscribe_top_assets_updated() \u00b6 instrument_type = \"digital-option\" #\"binary-option\"/\"digital-option\"/\"forex\"/\"cfd\"/\"crypto\" Iq . subscribe_top_assets_updated ( instrument_type ) get_top_assets_updated() \u00b6 se necesista llamar a get_top_assets_updated() despu\u00e9s de subscribe_top_assets_updated() Iq . get_top_assets_updated ( instrument_type ) unsubscribe_top_assets_updated() \u00b6 Si no vas a uarlo, ci\u00e9rralo para una conexi\u00f3n sesgura Iq . unsubscribe_top_assets_updated ( instrument_type ) orderar par popularidad \u00b6 Ejemplo \u00b6 from iqoptionapi.stable_api import IQ_Option import logging import time import operator #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') def opcode_to_name ( opcode_data , opcode ): return list ( opcode_data . keys ())[ list ( opcode_data . values ()) . index ( opcode )] Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption Iq . update_ACTIVES_OPCODE () opcode_data = Iq . get_all_ACTIVES_OPCODE () instrument_type = \"digital-option\" #\"binary-option\"/\"digital-option\"/\"forex\"/\"cfd\"/\"crypto\" Iq . subscribe_top_assets_updated ( instrument_type ) print ( \"__Please_wait_for_sec__\" ) while True : if Iq . get_top_assets_updated ( instrument_type ) != None : break top_assets = Iq . get_top_assets_updated ( instrument_type ) popularity = {} for asset in top_assets : opcode = asset [ \"active_id\" ] popularity_value = asset [ \"popularity\" ][ \"value\" ] try : name = opcode_to_name ( opcode_data , opcode ) popularity [ name ] = popularity_value except : pass sorted_popularity = sorted ( popularity . items (), key = operator . itemgetter ( 1 )) print ( \"__Popularidad_min_to_max__\" ) for lis in sorted_popularity : print ( lis ) Iq . unsubscribe_top_assets_updated ( instrument_type ) get_leader_board \u00b6 Obtener el ranking the l\u00edders from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( email , password ) Iq . connect () #connect to iqoption country = \"TW\" from_position = 1 to_position = 1 near_traders_count = 0 print ( Iq . get_leader_board ( country , from_position , to_position , near_traders_count )) Country ID = {\"Worldwide\":0, \"AF\": 1, \"AL\": 2, \"DZ\": 3, \"AD\": 5, \"AO\": 6, \"AI\": 7, \"AG\": 9, \"AR\": 10, \"AM\": 11, \"AW\": 12, \"AT\": 14, \"AZ\": 15, \"BS\": 16, \"BH\": 17, \"BD\": 18, \"BB\": 19, \"BY\": 20, \"BZ\": 22, \"BJ\": 23, \"BM\": 24, \"BO\": 26, \"BA\": 27, \"BW\": 28, \"BV\": 29, \"BR\": 30, \"BN\": 31, \"BG\": 32, \"BF\": 33, \"BI\": 34, \"KH\": 35, \"CM\": 36, \"CV\": 38, \"KY\": 39, \"TD\": 41, \"CL\": 42, \"CN\": 43, \"CC\": 45, \"CO\": 46, \"KM\": 47, \"CG\": 48, \"CK\": 49, \"CR\": 50, \"CI\": 51, \"HR\": 52, \"CU\": 53, \"CY\": 54, \"CZ\": 55, \"DK\": 56, \"DJ\": 57, \"DM\": 58, \"DO\": 59, \"TL\": 60, \"EC\": 61, \"EG\": 62, \"SV\": 63, \"EE\": 66, \"ET\": 67, \"FO\": 69, \"FJ\": 70, \"FI\": 71, \"FR\": 72, \"GF\": 73, \"PF\": 74, \"GA\": 75, \"GM\": 76, \"GE\": 77, \"DE\": 78, \"GH\": 79, \"GR\": 81, \"GD\": 83, \"GP\": 84, \"GT\": 86, \"GN\": 87, \"GY\": 88, \"HT\": 89, \"HN\": 90, \"HK\": 91, \"HU\": 92, \"IS\": 93, \"ID\": 94, \"IQ\": 95, \"IE\": 96, \"IT\": 97, \"JM\": 98, \"JO\": 100, \"KZ\": 101, \"KE\": 102, \"KI\": 103, \"KW\": 104, \"KG\": 105, \"LA\": 106, \"LV\": 107, \"LB\": 108, \"LS\": 109, \"LR\": 110, \"LY\": 111, \"LT\": 113, \"LU\": 114, \"MO\": 115, \"MK\": 116, \"MG\": 117, \"MW\": 118, \"MY\": 119, \"MV\": 120, \"ML\": 121, \"MT\": 122, \"MQ\": 124, \"MR\": 125, \"MU\": 126, \"MX\": 128, \"FM\": 129, \"MD\": 130, \"MC\": 131, \"MN\": 132, \"MA\": 134, \"MZ\": 135, \"MM\": 136, \"NA\": 137, \"NP\": 139, \"NL\": 140, \"AN\": 141, \"NC\": 142, \"NZ\": 143, \"NI\": 144, \"NE\": 145, \"NG\": 146, \"NO\": 149, \"OM\": 150, \"PK\": 151, \"PW\": 152, \"PA\": 153, \"PG\": 154, \"PY\": 155, \"PE\": 156, \"PH\": 157, \"PL\": 159, \"PT\": 160, \"QA\": 162, \"RE\": 163, \"RO\": 164, \"RW\": 166, \"KN\": 167, \"LC\": 168, \"SA\": 171, \"SN\": 172, \"SC\": 173, \"SG\": 175, \"SK\": 176, \"SI\": 177, \"SO\": 179, \"ZA\": 180, \"KR\": 181, \"ES\": 182, \"LK\": 183, \"SH\": 184, \"SR\": 186, \"SZ\": 187, \"SE\": 188, \"CH\": 189, \"TW\": 191, \"TJ\": 192, \"TZ\": 193, \"TH\": 194, \"TG\": 195, \"TT\": 198, \"TN\": 199, \"TR\": 200, \"TM\": 201, \"UG\": 203, \"UA\": 204, \"AE\": 205, \"GB\": 206, \"UY\": 207, \"UZ\": 208, \"VE\": 211, \"VN\": 212, \"VG\": 213, \"YE\": 216, \"ZM\": 218, \"ZW\": 219, \"RS\": 220, \"ME\": 221, \"IN\": 225, \"TC\": 234, \"CD\": 235, \"GG\": 236, \"IM\": 237, \"JE\": 239, \"CW\": 246, }","title":"Para todo"},{"location":"es/all/all/#para-todo","text":"Esta api puede trabajar con option&digital&Forex&Stock&Commodities&Crypto&ETFs","title":"Para todo"},{"location":"es/all/all/#comprobar-si-un-asset-esta-abierto-o-no","text":"tener cuidado con get_all_open_time() es demasiado pesado para la conexi\u00f3n. get_all_open_time() devuelve un DICT \"cfd\" incluye,Commodities,ETFs asset DICT[\"forex\"/\"cfd\"/\"crypto\"/\"digital\"/\"turbo\"/\"binary\"][Asset Name][\"open\"] devolver\u00e1 True/False from iqoptionapi.stable_api import IQ_Option import logging import random logging . basicConfig ( level = logging . DEBUG , format = ' %(asctime)s %(message)s ' ) Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption ALL_Asset = Iq . get_all_open_time () #Comprobar si est\u00e1 abierto o no print ( ALL_Asset [ \"forex\" ][ \"EURUSD\" ][ \"open\" ]) print ( ALL_Asset [ \"cfd\" ][ \"FACEBOOK\" ][ \"open\" ]) #Stock,Commodities,ETFs print ( ALL_Asset [ \"crypto\" ][ \"BTCUSD-L\" ][ \"open\" ]) print ( ALL_Asset [ \"digital\" ][ \"EURUSD-OTC\" ][ \"open\" ]) #La binarias tienes doss tipos -> type:\"turbo\",\"binary\" print ( ALL_Asset [ \"turbo\" ][ \"EURUSD-OTC\" ][ \"open\" ]) print ( ALL_Asset [ \"binary\" ][ \"EURUSD-OTC\" ][ \"open\" ]) #!!!! Excepci\u00f3j \"\" print ( ALL_Asset [ \"binary\" ][ \"not exist asset\" ][ \"open\" ]) #Devolver\u00e1 \"{}\" a None de un dict #!!!!Imprimir todo!!! for type_name , data in ALL_Asset . items (): for Asset , value in data . items (): print ( type_name , Asset , value [ \"open\" ])","title":"Comprobar si un asset est\u00e1 abierto o no"},{"location":"es/all/all/#ver-todos-los-nombress-de-lo-activos-actives","text":"print(Iq.get_all_ACTIVES_OPCODE())","title":"Ver todos los nombress de lo Activos (ACTIVES)"},{"location":"es/all/all/#actualizar-opcode-de-los-activos-actives","text":"Iq.update_ACTIVES_OPCODE()","title":"Actualizar OPCODE de los Activos (ACTIVES)"},{"location":"es/all/all/#get_async_order","text":"from iqoptionapi.stable_api import IQ_Option import logging import time #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption ACTIVES = \"EURUSD\" duration = 1 #minute 1 or 5 amount = 1 action = \"call\" #put print ( \"__Para_Opciones_Binarias__\" ) _ , id = Iq . buy ( amount , ACTIVES , action , duration ) while Iq . get_async_order ( id ) == None : pass print ( Iq . get_async_order ( id )) print ( \" \\n\\n \" ) print ( \"__Para_Opciones_Digitales__spot\" ) _ , id = Iq . buy_digital_spot ( ACTIVES , amount , action , duration ) while Iq . get_async_order ( id ) == None : pass order_data = Iq . get_async_order ( id ) print ( Iq . get_async_order ( id )) print ( \" \\n\\n \" ) print ( \"__Para_Forex_Mercado_MateriasPrimas_Crypto_ETFs\" ) instrument_type = \"crypto\" instrument_id = \"BTCUSD\" side = \"buy\" amount = 1.23 leverage = 3 type = \"market\" limit_price = None stop_price = None stop_lose_kind = \"percent\" stop_lose_value = 95 take_profit_kind = None take_profit_value = None use_trail_stop = True auto_margin_call = False use_token_for_commission = False check , id = Iq . buy_order ( instrument_type = instrument_type , instrument_id = instrument_id , side = side , amount = amount , leverage = leverage , type = type , limit_price = limit_price , stop_price = stop_price , stop_lose_value = stop_lose_value , stop_lose_kind = stop_lose_kind , take_profit_value = take_profit_value , take_profit_kind = take_profit_kind , use_trail_stop = use_trail_stop , auto_margin_call = auto_margin_call , use_token_for_commission = use_token_for_commission ) while Iq . get_async_order ( id ) == None : pass order_data = Iq . get_async_order ( id ) print ( Iq . get_async_order ( id ))","title":"get_async_order()"},{"location":"es/all/all/#get_commission_change","text":"instrument_type: \"binary-option\"/\"turbo-option\"/\"digital-option\"/\"crypto\"/\"forex\"/\"cfd\" Iq.subscribe_commission_changed(instrument_type) Iq.get_commission_change(instrument_type) Iq.unsubscribe_commission_changed(instrument_type) C\u00f3digo de ejemplo import time from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption #instrument_type: \"binary-option\"/\"turbo-option\"/\"digital-option\"/\"crypto\"/\"forex\"/\"cfd\" instrument_type = [ \"binary-option\" , \"turbo-option\" , \"digital-option\" , \"crypto\" , \"forex\" , \"cfd\" ] for ins in instrument_type : Iq . subscribe_commission_changed ( ins ) print ( \"Start stream please wait profit change...\" ) while True : for ins in instrument_type : commissio_data = Iq . get_commission_change ( ins ) if commissio_data != {}: for active_name in commissio_data : if commissio_data [ active_name ] != {}: the_min_timestamp = min ( commissio_data [ active_name ] . keys ()) commissio = commissio_data [ active_name ][ the_min_timestamp ] profit = ( 100 - commissio ) / 100 print ( \"instrument_type: \" + str ( ins ) + \" active_name: \" + str ( active_name ) + \" profit change to: \" + str ( profit )) #Data have been update so need del del Iq . get_commission_change ( ins )[ active_name ][ the_min_timestamp ] time . sleep ( 1 )","title":"get_commission_change()"},{"location":"es/all/all/#obtener-top_assets_updated","text":"","title":"Obtener top_assets_updated"},{"location":"es/all/all/#ejemplo","text":"instrument_type=\"binary-option\"/\"digital-option\"/\"forex\"/\"cfd\"/\"crypto\" from iqoptionapi.stable_api import IQ_Option import logging import time #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption instrument_type = \"digital-option\" #\"binary-option\"/\"digital-option\"/\"forex\"/\"cfd\"/\"crypto\" Iq . subscribe_top_assets_updated ( instrument_type ) print ( \"__Please_wait_for_sec__\" ) while True : if Iq . get_top_assets_updated ( instrument_type ) != None : print ( Iq . get_top_assets_updated ( instrument_type )) print ( \" \\n\\n \" ) time . sleep ( 1 ) Iq . unsubscribe_top_assets_updated ( instrument_type )","title":"Ejemplo"},{"location":"es/all/all/#subscribe_top_assets_updated","text":"instrument_type = \"digital-option\" #\"binary-option\"/\"digital-option\"/\"forex\"/\"cfd\"/\"crypto\" Iq . subscribe_top_assets_updated ( instrument_type )","title":"subscribe_top_assets_updated()"},{"location":"es/all/all/#get_top_assets_updated","text":"se necesista llamar a get_top_assets_updated() despu\u00e9s de subscribe_top_assets_updated() Iq . get_top_assets_updated ( instrument_type )","title":"get_top_assets_updated()"},{"location":"es/all/all/#unsubscribe_top_assets_updated","text":"Si no vas a uarlo, ci\u00e9rralo para una conexi\u00f3n sesgura Iq . unsubscribe_top_assets_updated ( instrument_type )","title":"unsubscribe_top_assets_updated()"},{"location":"es/all/all/#orderar-par-popularidad","text":"","title":"orderar par popularidad"},{"location":"es/all/all/#ejemplo_1","text":"from iqoptionapi.stable_api import IQ_Option import logging import time import operator #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') def opcode_to_name ( opcode_data , opcode ): return list ( opcode_data . keys ())[ list ( opcode_data . values ()) . index ( opcode )] Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption Iq . update_ACTIVES_OPCODE () opcode_data = Iq . get_all_ACTIVES_OPCODE () instrument_type = \"digital-option\" #\"binary-option\"/\"digital-option\"/\"forex\"/\"cfd\"/\"crypto\" Iq . subscribe_top_assets_updated ( instrument_type ) print ( \"__Please_wait_for_sec__\" ) while True : if Iq . get_top_assets_updated ( instrument_type ) != None : break top_assets = Iq . get_top_assets_updated ( instrument_type ) popularity = {} for asset in top_assets : opcode = asset [ \"active_id\" ] popularity_value = asset [ \"popularity\" ][ \"value\" ] try : name = opcode_to_name ( opcode_data , opcode ) popularity [ name ] = popularity_value except : pass sorted_popularity = sorted ( popularity . items (), key = operator . itemgetter ( 1 )) print ( \"__Popularidad_min_to_max__\" ) for lis in sorted_popularity : print ( lis ) Iq . unsubscribe_top_assets_updated ( instrument_type )","title":"Ejemplo"},{"location":"es/all/all/#get_leader_board","text":"Obtener el ranking the l\u00edders from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( email , password ) Iq . connect () #connect to iqoption country = \"TW\" from_position = 1 to_position = 1 near_traders_count = 0 print ( Iq . get_leader_board ( country , from_position , to_position , near_traders_count )) Country ID = {\"Worldwide\":0, \"AF\": 1, \"AL\": 2, \"DZ\": 3, \"AD\": 5, \"AO\": 6, \"AI\": 7, \"AG\": 9, \"AR\": 10, \"AM\": 11, \"AW\": 12, \"AT\": 14, \"AZ\": 15, \"BS\": 16, \"BH\": 17, \"BD\": 18, \"BB\": 19, \"BY\": 20, \"BZ\": 22, \"BJ\": 23, \"BM\": 24, \"BO\": 26, \"BA\": 27, \"BW\": 28, \"BV\": 29, \"BR\": 30, \"BN\": 31, \"BG\": 32, \"BF\": 33, \"BI\": 34, \"KH\": 35, \"CM\": 36, \"CV\": 38, \"KY\": 39, \"TD\": 41, \"CL\": 42, \"CN\": 43, \"CC\": 45, \"CO\": 46, \"KM\": 47, \"CG\": 48, \"CK\": 49, \"CR\": 50, \"CI\": 51, \"HR\": 52, \"CU\": 53, \"CY\": 54, \"CZ\": 55, \"DK\": 56, \"DJ\": 57, \"DM\": 58, \"DO\": 59, \"TL\": 60, \"EC\": 61, \"EG\": 62, \"SV\": 63, \"EE\": 66, \"ET\": 67, \"FO\": 69, \"FJ\": 70, \"FI\": 71, \"FR\": 72, \"GF\": 73, \"PF\": 74, \"GA\": 75, \"GM\": 76, \"GE\": 77, \"DE\": 78, \"GH\": 79, \"GR\": 81, \"GD\": 83, \"GP\": 84, \"GT\": 86, \"GN\": 87, \"GY\": 88, \"HT\": 89, \"HN\": 90, \"HK\": 91, \"HU\": 92, \"IS\": 93, \"ID\": 94, \"IQ\": 95, \"IE\": 96, \"IT\": 97, \"JM\": 98, \"JO\": 100, \"KZ\": 101, \"KE\": 102, \"KI\": 103, \"KW\": 104, \"KG\": 105, \"LA\": 106, \"LV\": 107, \"LB\": 108, \"LS\": 109, \"LR\": 110, \"LY\": 111, \"LT\": 113, \"LU\": 114, \"MO\": 115, \"MK\": 116, \"MG\": 117, \"MW\": 118, \"MY\": 119, \"MV\": 120, \"ML\": 121, \"MT\": 122, \"MQ\": 124, \"MR\": 125, \"MU\": 126, \"MX\": 128, \"FM\": 129, \"MD\": 130, \"MC\": 131, \"MN\": 132, \"MA\": 134, \"MZ\": 135, \"MM\": 136, \"NA\": 137, \"NP\": 139, \"NL\": 140, \"AN\": 141, \"NC\": 142, \"NZ\": 143, \"NI\": 144, \"NE\": 145, \"NG\": 146, \"NO\": 149, \"OM\": 150, \"PK\": 151, \"PW\": 152, \"PA\": 153, \"PG\": 154, \"PY\": 155, \"PE\": 156, \"PH\": 157, \"PL\": 159, \"PT\": 160, \"QA\": 162, \"RE\": 163, \"RO\": 164, \"RW\": 166, \"KN\": 167, \"LC\": 168, \"SA\": 171, \"SN\": 172, \"SC\": 173, \"SG\": 175, \"SK\": 176, \"SI\": 177, \"SO\": 179, \"ZA\": 180, \"KR\": 181, \"ES\": 182, \"LK\": 183, \"SH\": 184, \"SR\": 186, \"SZ\": 187, \"SE\": 188, \"CH\": 189, \"TW\": 191, \"TJ\": 192, \"TZ\": 193, \"TH\": 194, \"TG\": 195, \"TT\": 198, \"TN\": 199, \"TR\": 200, \"TM\": 201, \"UG\": 203, \"UA\": 204, \"AE\": 205, \"GB\": 206, \"UY\": 207, \"UZ\": 208, \"VE\": 211, \"VN\": 212, \"VG\": 213, \"YE\": 216, \"ZM\": 218, \"ZW\": 219, \"RS\": 220, \"ME\": 221, \"IN\": 225, \"TC\": 234, \"CD\": 235, \"GG\": 236, \"IM\": 237, \"JE\": 239, \"CW\": 246, }","title":"get_leader_board"},{"location":"es/binary%20option/binary%20option/","text":"Para opciones binarias \u00b6 comprar \u00b6 comprar una opci\u00f3n binaria buy() \u00b6 Ejemplo from iqoptionapi.stable_api import IQ_Option import logging import time logging . basicConfig ( level = logging . DEBUG , format = ' %(asctime)s %(message)s ' ) Iq = IQ_Option ( \"email\" , \"pass\" ) goal = \"EURUSD\" print ( \"get candles\" ) print ( Iq . get_candles ( goal , 60 , 111 , time . time ())) Money = 1 ACTIVES = \"EURUSD\" ACTION = \"call\" #or \"put\" expirations_mode = 1 check , id = Iq . buy ( Money , ACTIVES , ACTION , expirations_mode ) if check : print ( \"!buy!\" ) else : print ( \"buy fail\" ) Iq . buy ( Money , ACTIVES , ACTION , expirations ) #Money:Cantidad de dinero type(int) #ACTIVES:Ejemplo de entrada \"EURUSD\" OR \"EURGBP\".... puedes ver todos loa ACTIVE con -> get_all_ACTIVES_OPCODE #ACTION:\"call\"/\"put\" type(str) call -> sube, put -> baja #expirations:Introduce minutos, cuidado con los timpos muy largos ya que fallar\u00e1 al comprar (Tiempo de cierre de merrcado) Gracias a Darth-Carrotpie's code (int)https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/6 #return:if sucess return (True,id_number) esle return(Fale,None) buy_multi() \u00b6 from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #conectar a iqoption Money = [] ACTIVES = [] ACTION = [] expirations_mode = [] Money . append ( 1 ) ACTIVES . append ( \"EURUSD\" ) ACTION . append ( \"call\" ) expirations_mode . append ( 1 ) Money . append ( 1 ) ACTIVES . append ( \"EURAUD\" ) ACTION . append ( \"call\" ) expirations_mode . append ( 1 ) print ( \"buy multi\" ) id_list = Iq . buy_multi ( Money , ACTIVES , ACTION , expirations_mode ) print ( \"check win only one id (id_list[0])\" ) print ( Iq . check_win_v2 ( id_list [ 0 ], 2 )) buy_by_raw_expirations() \u00b6 buy the binary optoin by expired price = 2 active = \"EURUSD\" direction = \"call\" option = \"turbo\" #binary expired = 1293923 # Este tiempo de expiraci\u00f3n necesitas contarlo o obtenerlo por tu mismo Iq . buy_by_raw_expirations ( price , active , direction , option , expired ) get_remaning() \u00b6 purchase time=remaning time - 30 from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #conectar a iqoption Money = 1 ACTIVES = \"EURUSD\" ACTION = \"call\" #or \"put\" expirations_mode = 1 while True : remaning_time = Iq . get_remaning ( expirations_mode ) purchase_time = remaning_time - 30 if purchase_time < 4 : #comprar las opciones binarias con un tiempo de compra menor a 4 min Iq . buy ( Money , ACTIVES , ACTION , expirations_mode ) break sell_option() \u00b6 Iq . sell_option ( sell_all ) #Introduce int o una lista de id de \u00f3rdenes Ejemplo from iqoptionapi.stable_api import IQ_Option import time print ( \"login...\" ) Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #conectar a iqoption Money = 1 ACTIVES = \"EURUSD\" ACTION = \"call\" #or \"put\" expirations_mode = 1 id = Iq . buy ( Money , ACTIVES , ACTION , expirations_mode ) id2 = Iq . buy ( Money , ACTIVES , ACTION , expirations_mode ) time . sleep ( 5 ) sell_all = [] sell_all . append ( id ) sell_all . append ( id2 ) print ( Iq . sell_option ( sell_all )) check win \u00b6 Entrar\u00e1 en bucle hasta que la respuesta sea ganadora (win) o sin beneficios (loose) check_win() \u00b6 from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption check , id = Iq . buy ( 1 , \"EURUSD\" , \"call\" , 1 ) print ( \"Empezando a comprobar la operaci\u00f3n...\" ) print ( Iq . check_win ( id )) Iq . check_win ( 23243221 ) #\"\"Necesitas obtener el id_number de la funci\u00f3n buy()\"\" #Iq.check_win(id_number) #Esta funci\u00f3n entrar\u00e1 en un bucle hasta que el resultado sea: win/equal/loose check_win_v2() \u00b6 from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #conectar a iqoption check , id = Iq . buy ( 1 , \"EURUSD\" , \"call\" , 1 ) print ( \"Empezando a comprobar la operaci\u00f3n...\" ) polling_time = 3 print ( Iq . check_win_v2 ( id , polling_time )) check_win_v3() \u00b6 Mejor camino para comprobar el resultado de la operaci\u00f3n from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption check , id = Iq . buy ( 1 , \"EURUSD\" , \"call\" , 1 ) print ( \"Empezando a comprobar la operaci\u00f3n...\" ) print ( Iq . check_win_v3 ( id )) get_binary_option_detail() \u00b6 sample from iqoptionapi.stable_api import IQ_Option print ( \"login...\" ) Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption d = Iq . get_binary_option_detail () print ( d [ \"CADCHF\" ][ \"turbo\" ]) print ( d [ \"CADCHF\" ][ \"binary\" ]) get_all_init() \u00b6 get_binary_option_detail es la base en eta api Tu obtendr\u00e1s los detalle sobre la opci\u00f3n binaria Iq.get_all_init() get_all_profit() \u00b6 sample from iqoptionapi.stable_api import IQ_Option print ( \"login...\" ) Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption d = Iq . get_all_profit () print ( d [ \"CADCHF\" ][ \"turbo\" ]) print ( d [ \"CADCHF\" ][ \"binary\" ]) Si tu quieres saber el profit en tiempo real get real time profit get_betinfo() \u00b6 Si la opci\u00f3n no cierra todav\u00eda o el id es incorrecto, devolver\u00e1 False if order not close yet or wrong id it will return False isSuccessful , dict = Iq . get_betinfo ( 4452272449 ) #Iq.get_betinfo #ENTRADA: order id #SALIDA:isSuccessful,dict get_optioninfo \u00b6 get_optioninfo() \u00b6 Introduce cu\u00e1ntos datos quieres obtener del historial de Trading (solo para opciones binarias) print ( Iq . get_optioninfo ( 10 )) get_optioninfo_v2() \u00b6 Introduce cu\u00e1ntos datos quieres obtener del historial de Trading (solo para opciones binarias) print ( Iq . get_optioninfo_v2 ( 10 )) get_option_open_by_other_pc() \u00b6 Obtener si tu cuenta tiene otra sesi\u00f3n abierta (puede ser en otro pc) y est\u00e1 abriendo opciones Tu puedes obtener la opci\u00f3n con esta funci\u00f3n import time from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #conectar a iqoption while True : #Por favor accede a la web de iqoption y abre alguna opci\u00f3n binaria if Iq . get_option_open_by_other_pc () != {}: break time . sleep ( 1 ) print ( \"Obtener la opci\u00f3n abierta de otra sesi\u00f3n y de la misma cuenta\" ) print ( Iq . get_option_open_by_other_pc ()) id = list ( Iq . get_option_open_by_other_pc () . keys ())[ 0 ] Iq . del_option_open_by_other_pc ( id ) print ( \"Depu\u00e9s de la id\" ) print ( Iq . get_option_open_by_other_pc ()) Obtener indicador \u00b6 Ejemplo\u00a1 \u00b6 from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption goal = \"EURUSD\" Iq . start_mood_stream ( goal ) print ( Iq . get_traders_mood ( goal )) Iq . stop_mood_stream ( goal ) start_mood_stream() \u00b6 Iq . start_mood_stream ( goal ) get_traders_mood() \u00b6 call get_traders_mood() after start_mood_stream Iq . get_traders_mood ( goal ) get_all_traders_mood() \u00b6 Obtendr\u00e1 todo el indicador de operaciones en que hayas activado el stream Iq . get_all_traders_mood () #output:(dict) all mood you start stop_mood_stream() \u00b6 Si no est\u00e1 usando el indicador, porfavor p\u00e1ralo para una mejor conexi\u00f3n. Iq . stop_mood_stream ( goal )","title":"Opciones Binarias"},{"location":"es/binary%20option/binary%20option/#para-opciones-binarias","text":"","title":"Para opciones binarias"},{"location":"es/binary%20option/binary%20option/#comprar","text":"comprar una opci\u00f3n binaria","title":"comprar"},{"location":"es/binary%20option/binary%20option/#buy","text":"Ejemplo from iqoptionapi.stable_api import IQ_Option import logging import time logging . basicConfig ( level = logging . DEBUG , format = ' %(asctime)s %(message)s ' ) Iq = IQ_Option ( \"email\" , \"pass\" ) goal = \"EURUSD\" print ( \"get candles\" ) print ( Iq . get_candles ( goal , 60 , 111 , time . time ())) Money = 1 ACTIVES = \"EURUSD\" ACTION = \"call\" #or \"put\" expirations_mode = 1 check , id = Iq . buy ( Money , ACTIVES , ACTION , expirations_mode ) if check : print ( \"!buy!\" ) else : print ( \"buy fail\" ) Iq . buy ( Money , ACTIVES , ACTION , expirations ) #Money:Cantidad de dinero type(int) #ACTIVES:Ejemplo de entrada \"EURUSD\" OR \"EURGBP\".... puedes ver todos loa ACTIVE con -> get_all_ACTIVES_OPCODE #ACTION:\"call\"/\"put\" type(str) call -> sube, put -> baja #expirations:Introduce minutos, cuidado con los timpos muy largos ya que fallar\u00e1 al comprar (Tiempo de cierre de merrcado) Gracias a Darth-Carrotpie's code (int)https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/6 #return:if sucess return (True,id_number) esle return(Fale,None)","title":"buy()"},{"location":"es/binary%20option/binary%20option/#buy_multi","text":"from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #conectar a iqoption Money = [] ACTIVES = [] ACTION = [] expirations_mode = [] Money . append ( 1 ) ACTIVES . append ( \"EURUSD\" ) ACTION . append ( \"call\" ) expirations_mode . append ( 1 ) Money . append ( 1 ) ACTIVES . append ( \"EURAUD\" ) ACTION . append ( \"call\" ) expirations_mode . append ( 1 ) print ( \"buy multi\" ) id_list = Iq . buy_multi ( Money , ACTIVES , ACTION , expirations_mode ) print ( \"check win only one id (id_list[0])\" ) print ( Iq . check_win_v2 ( id_list [ 0 ], 2 ))","title":"buy_multi()"},{"location":"es/binary%20option/binary%20option/#buy_by_raw_expirations","text":"buy the binary optoin by expired price = 2 active = \"EURUSD\" direction = \"call\" option = \"turbo\" #binary expired = 1293923 # Este tiempo de expiraci\u00f3n necesitas contarlo o obtenerlo por tu mismo Iq . buy_by_raw_expirations ( price , active , direction , option , expired )","title":"buy_by_raw_expirations()"},{"location":"es/binary%20option/binary%20option/#get_remaning","text":"purchase time=remaning time - 30 from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #conectar a iqoption Money = 1 ACTIVES = \"EURUSD\" ACTION = \"call\" #or \"put\" expirations_mode = 1 while True : remaning_time = Iq . get_remaning ( expirations_mode ) purchase_time = remaning_time - 30 if purchase_time < 4 : #comprar las opciones binarias con un tiempo de compra menor a 4 min Iq . buy ( Money , ACTIVES , ACTION , expirations_mode ) break","title":"get_remaning()"},{"location":"es/binary%20option/binary%20option/#sell_option","text":"Iq . sell_option ( sell_all ) #Introduce int o una lista de id de \u00f3rdenes Ejemplo from iqoptionapi.stable_api import IQ_Option import time print ( \"login...\" ) Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #conectar a iqoption Money = 1 ACTIVES = \"EURUSD\" ACTION = \"call\" #or \"put\" expirations_mode = 1 id = Iq . buy ( Money , ACTIVES , ACTION , expirations_mode ) id2 = Iq . buy ( Money , ACTIVES , ACTION , expirations_mode ) time . sleep ( 5 ) sell_all = [] sell_all . append ( id ) sell_all . append ( id2 ) print ( Iq . sell_option ( sell_all ))","title":"sell_option()"},{"location":"es/binary%20option/binary%20option/#check-win","text":"Entrar\u00e1 en bucle hasta que la respuesta sea ganadora (win) o sin beneficios (loose)","title":"check win"},{"location":"es/binary%20option/binary%20option/#check_win","text":"from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption check , id = Iq . buy ( 1 , \"EURUSD\" , \"call\" , 1 ) print ( \"Empezando a comprobar la operaci\u00f3n...\" ) print ( Iq . check_win ( id )) Iq . check_win ( 23243221 ) #\"\"Necesitas obtener el id_number de la funci\u00f3n buy()\"\" #Iq.check_win(id_number) #Esta funci\u00f3n entrar\u00e1 en un bucle hasta que el resultado sea: win/equal/loose","title":"check_win()"},{"location":"es/binary%20option/binary%20option/#check_win_v2","text":"from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #conectar a iqoption check , id = Iq . buy ( 1 , \"EURUSD\" , \"call\" , 1 ) print ( \"Empezando a comprobar la operaci\u00f3n...\" ) polling_time = 3 print ( Iq . check_win_v2 ( id , polling_time ))","title":"check_win_v2()"},{"location":"es/binary%20option/binary%20option/#check_win_v3","text":"Mejor camino para comprobar el resultado de la operaci\u00f3n from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption check , id = Iq . buy ( 1 , \"EURUSD\" , \"call\" , 1 ) print ( \"Empezando a comprobar la operaci\u00f3n...\" ) print ( Iq . check_win_v3 ( id ))","title":"check_win_v3()"},{"location":"es/binary%20option/binary%20option/#get_binary_option_detail","text":"sample from iqoptionapi.stable_api import IQ_Option print ( \"login...\" ) Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption d = Iq . get_binary_option_detail () print ( d [ \"CADCHF\" ][ \"turbo\" ]) print ( d [ \"CADCHF\" ][ \"binary\" ])","title":"get_binary_option_detail()"},{"location":"es/binary%20option/binary%20option/#get_all_init","text":"get_binary_option_detail es la base en eta api Tu obtendr\u00e1s los detalle sobre la opci\u00f3n binaria Iq.get_all_init()","title":"get_all_init()"},{"location":"es/binary%20option/binary%20option/#get_all_profit","text":"sample from iqoptionapi.stable_api import IQ_Option print ( \"login...\" ) Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption d = Iq . get_all_profit () print ( d [ \"CADCHF\" ][ \"turbo\" ]) print ( d [ \"CADCHF\" ][ \"binary\" ]) Si tu quieres saber el profit en tiempo real get real time profit","title":"get_all_profit()"},{"location":"es/binary%20option/binary%20option/#get_betinfo","text":"Si la opci\u00f3n no cierra todav\u00eda o el id es incorrecto, devolver\u00e1 False if order not close yet or wrong id it will return False isSuccessful , dict = Iq . get_betinfo ( 4452272449 ) #Iq.get_betinfo #ENTRADA: order id #SALIDA:isSuccessful,dict","title":"get_betinfo()"},{"location":"es/binary%20option/binary%20option/#get_optioninfo","text":"","title":"get_optioninfo"},{"location":"es/binary%20option/binary%20option/#get_optioninfo_1","text":"Introduce cu\u00e1ntos datos quieres obtener del historial de Trading (solo para opciones binarias) print ( Iq . get_optioninfo ( 10 ))","title":"get_optioninfo()"},{"location":"es/binary%20option/binary%20option/#get_optioninfo_v2","text":"Introduce cu\u00e1ntos datos quieres obtener del historial de Trading (solo para opciones binarias) print ( Iq . get_optioninfo_v2 ( 10 ))","title":"get_optioninfo_v2()"},{"location":"es/binary%20option/binary%20option/#get_option_open_by_other_pc","text":"Obtener si tu cuenta tiene otra sesi\u00f3n abierta (puede ser en otro pc) y est\u00e1 abriendo opciones Tu puedes obtener la opci\u00f3n con esta funci\u00f3n import time from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #conectar a iqoption while True : #Por favor accede a la web de iqoption y abre alguna opci\u00f3n binaria if Iq . get_option_open_by_other_pc () != {}: break time . sleep ( 1 ) print ( \"Obtener la opci\u00f3n abierta de otra sesi\u00f3n y de la misma cuenta\" ) print ( Iq . get_option_open_by_other_pc ()) id = list ( Iq . get_option_open_by_other_pc () . keys ())[ 0 ] Iq . del_option_open_by_other_pc ( id ) print ( \"Depu\u00e9s de la id\" ) print ( Iq . get_option_open_by_other_pc ())","title":"get_option_open_by_other_pc()"},{"location":"es/binary%20option/binary%20option/#obtener-indicador","text":"","title":"Obtener indicador"},{"location":"es/binary%20option/binary%20option/#ejemplo","text":"from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption goal = \"EURUSD\" Iq . start_mood_stream ( goal ) print ( Iq . get_traders_mood ( goal )) Iq . stop_mood_stream ( goal )","title":"Ejemplo\u00a1"},{"location":"es/binary%20option/binary%20option/#start_mood_stream","text":"Iq . start_mood_stream ( goal )","title":"start_mood_stream()"},{"location":"es/binary%20option/binary%20option/#get_traders_mood","text":"call get_traders_mood() after start_mood_stream Iq . get_traders_mood ( goal )","title":"get_traders_mood()"},{"location":"es/binary%20option/binary%20option/#get_all_traders_mood","text":"Obtendr\u00e1 todo el indicador de operaciones en que hayas activado el stream Iq . get_all_traders_mood () #output:(dict) all mood you start","title":"get_all_traders_mood()"},{"location":"es/binary%20option/binary%20option/#stop_mood_stream","text":"Si no est\u00e1 usando el indicador, porfavor p\u00e1ralo para una mejor conexi\u00f3n. Iq . stop_mood_stream ( goal )","title":"stop_mood_stream()"},{"location":"es/candle/candle/","text":"Velas \u00b6 Obtener velas \u00b6 Solo obtiene lass velas cerrada no en tiempo real Iq.get_candles(ACTIVES,interval,count,endtime) #ACTIVES: Ejemplo de entrada \"EURUSD\" OR \"EURGBP\"..\u00f1 #interval: Duraci\u00f3n de las velas en Segundoss #count: Cuantas velas quieres obtener del pasado #endtime: Obtener velas del pasado hasta una fecha concreta Ejemplo \u00b6 from iqoptionapi.stable_api import IQ_Option import time Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #conectar a iqoption end_from_time = time . time () ANS = [] for i in range ( 70 ): data = Iq . get_candles ( \"EURUSD\" , 60 , 1000 , end_from_time ) ANS = data + ANS end_from_time = int ( data [ 0 ][ \"from\" ]) - 1 print ( ANS ) Obtener las nuevas velas en tiempo real \u00b6 Ejemplo de indicador \u00b6 from talib.abstract import * from iqoptionapi.stable_api import IQ_Option import time import numpy as np print ( \"login...\" ) Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption goal = \"EURUSD\" size = 10 #size=[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,\"all\"] timeperiod = 10 maxdict = 20 print ( \"Empezar el stream...\" ) Iq . start_candles_stream ( goal , size , maxdict ) print ( \"Empezar ejemplo de EMA\" ) while True : candles = Iq . get_realtime_candles ( goal , size ) inputs = { 'open' : np . array ([]), 'high' : np . array ([]), 'low' : np . array ([]), 'close' : np . array ([]), 'volume' : np . array ([]) } for timestamp in candles : inputs [ \"open\" ] = np . append ( inputs [ \"open\" ], candles [ timestamp ][ \"open\" ] ) inputs [ \"high\" ] = np . append ( inputs [ \"open\" ], candles [ timestamp ][ \"max\" ] ) inputs [ \"low\" ] = np . append ( inputs [ \"open\" ], candles [ timestamp ][ \"min\" ] ) inputs [ \"close\" ] = np . append ( inputs [ \"open\" ], candles [ timestamp ][ \"close\" ] ) inputs [ \"volume\" ] = np . append ( inputs [ \"open\" ], candles [ timestamp ][ \"volume\" ] ) print ( \"Mostrar la EMA\" ) print ( EMA ( inputs , timeperiod = timeperiod )) print ( \" \\n \" ) time . sleep ( 1 ) Iq . stop_candles_stream ( goal , size ) Ejemplo \u00b6 from iqoptionapi.stable_api import IQ_Option import logging import time #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') print ( \"Accediendo...\" ) Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption goal = \"EURUSD\" size = \"all\" #size=[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,\"all\"] maxdict = 10 print ( \"Empezar stream...\" ) Iq . start_candles_stream ( goal , size , maxdict ) #DO something print ( \"Hacer algo...\" ) time . sleep ( 10 ) print ( \"imprimir velas\" ) cc = Iq . get_realtime_candles ( goal , size ) for k in cc : print ( goal , \"size\" , k , cc [ k ]) print ( \"parar velas\" ) Iq . stop_candles_stream ( goal , size ) Tama\u00f1o \u00b6 start_candles_stream() \u00b6 goal = \"EURUSD\" size = \"all\" #size=[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,\"all\"] maxdict = 10 print ( \"start stream...\" ) Iq . start_candles_stream ( goal , size , maxdict ) get_realtime_candles() \u00b6 get_realtime_candles() despuess de llamr start_candles_stream() Iq.get_realtime_candles(goal,size) stop_candles_stream() \u00b6 Si no est\u00e1s usando get_realtime_candles() porfavor cierra el stream Iq . stop_candles_stream ( goal , size )","title":"Velas"},{"location":"es/candle/candle/#velas","text":"","title":"Velas"},{"location":"es/candle/candle/#obtener-velas","text":"Solo obtiene lass velas cerrada no en tiempo real Iq.get_candles(ACTIVES,interval,count,endtime) #ACTIVES: Ejemplo de entrada \"EURUSD\" OR \"EURGBP\"..\u00f1 #interval: Duraci\u00f3n de las velas en Segundoss #count: Cuantas velas quieres obtener del pasado #endtime: Obtener velas del pasado hasta una fecha concreta","title":"Obtener velas"},{"location":"es/candle/candle/#ejemplo","text":"from iqoptionapi.stable_api import IQ_Option import time Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #conectar a iqoption end_from_time = time . time () ANS = [] for i in range ( 70 ): data = Iq . get_candles ( \"EURUSD\" , 60 , 1000 , end_from_time ) ANS = data + ANS end_from_time = int ( data [ 0 ][ \"from\" ]) - 1 print ( ANS )","title":"Ejemplo"},{"location":"es/candle/candle/#obtener-las-nuevas-velas-en-tiempo-real","text":"","title":"Obtener las nuevas velas en tiempo real"},{"location":"es/candle/candle/#ejemplo-de-indicador","text":"from talib.abstract import * from iqoptionapi.stable_api import IQ_Option import time import numpy as np print ( \"login...\" ) Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption goal = \"EURUSD\" size = 10 #size=[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,\"all\"] timeperiod = 10 maxdict = 20 print ( \"Empezar el stream...\" ) Iq . start_candles_stream ( goal , size , maxdict ) print ( \"Empezar ejemplo de EMA\" ) while True : candles = Iq . get_realtime_candles ( goal , size ) inputs = { 'open' : np . array ([]), 'high' : np . array ([]), 'low' : np . array ([]), 'close' : np . array ([]), 'volume' : np . array ([]) } for timestamp in candles : inputs [ \"open\" ] = np . append ( inputs [ \"open\" ], candles [ timestamp ][ \"open\" ] ) inputs [ \"high\" ] = np . append ( inputs [ \"open\" ], candles [ timestamp ][ \"max\" ] ) inputs [ \"low\" ] = np . append ( inputs [ \"open\" ], candles [ timestamp ][ \"min\" ] ) inputs [ \"close\" ] = np . append ( inputs [ \"open\" ], candles [ timestamp ][ \"close\" ] ) inputs [ \"volume\" ] = np . append ( inputs [ \"open\" ], candles [ timestamp ][ \"volume\" ] ) print ( \"Mostrar la EMA\" ) print ( EMA ( inputs , timeperiod = timeperiod )) print ( \" \\n \" ) time . sleep ( 1 ) Iq . stop_candles_stream ( goal , size )","title":"Ejemplo de indicador"},{"location":"es/candle/candle/#ejemplo_1","text":"from iqoptionapi.stable_api import IQ_Option import logging import time #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') print ( \"Accediendo...\" ) Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption goal = \"EURUSD\" size = \"all\" #size=[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,\"all\"] maxdict = 10 print ( \"Empezar stream...\" ) Iq . start_candles_stream ( goal , size , maxdict ) #DO something print ( \"Hacer algo...\" ) time . sleep ( 10 ) print ( \"imprimir velas\" ) cc = Iq . get_realtime_candles ( goal , size ) for k in cc : print ( goal , \"size\" , k , cc [ k ]) print ( \"parar velas\" ) Iq . stop_candles_stream ( goal , size )","title":"Ejemplo"},{"location":"es/candle/candle/#tamano","text":"","title":"Tama\u00f1o"},{"location":"es/candle/candle/#start_candles_stream","text":"goal = \"EURUSD\" size = \"all\" #size=[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,\"all\"] maxdict = 10 print ( \"start stream...\" ) Iq . start_candles_stream ( goal , size , maxdict )","title":"start_candles_stream()"},{"location":"es/candle/candle/#get_realtime_candles","text":"get_realtime_candles() despuess de llamr start_candles_stream() Iq.get_realtime_candles(goal,size)","title":"get_realtime_candles()"},{"location":"es/candle/candle/#stop_candles_stream","text":"Si no est\u00e1s usando get_realtime_candles() porfavor cierra el stream Iq . stop_candles_stream ( goal , size )","title":"stop_candles_stream()"},{"location":"es/digital/digital/","text":"Digital \u00b6 Cerca del modo strike \u00b6 Ejemplo \u00b6 from iqoptionapi.stable_api import IQ_Option import time import random Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #conectar a iqoption ACTIVES = \"EURUSD\" duration = 1 #minuto 1 or 5 amount = 1 Iq . subscribe_strike_list ( ACTIVES , duration ) #get strike_list data = Iq . get_realtime_strike_list ( ACTIVES , duration ) print ( \"get strike data\" ) print ( data ) \"\"\"data {'1.127100': { 'call': { 'profit': None, 'id': 'doEURUSD201811120649PT1MC11271' }, 'put': { 'profit': 566.6666666666666, 'id': 'doEURUSD201811120649PT1MP11271' } }............ } \"\"\" #Obtener la lista de precios price_list = list ( data . keys ()) #Elegir una estrat\u00e9gia aleatoria choose_price = price_list [ random . randint ( 0 , len ( price_list ) - 1 )] #Obtener instrument_id instrument_id = data [ choose_price ][ \"call\" ][ \"id\" ] #Obtener profit profit = data [ choose_price ][ \"call\" ][ \"profit\" ] print ( \"Elegir que quiere commprar\" ) print ( \"precio:\" , choose_price , \"side:call\" , \"instrument_id:\" , instrument_id , \"profit:\" , profit ) #Escojer instrument_id para abrir operaci\u00f3n buy_check , id = Iq . buy_digital ( amount , instrument_id ) polling_time = 5 if buy_check : print ( \"Esperar para comprobar win\" ) #comprobar win while True : check_close , win_money = Iq . check_win_digital_v2 ( id , polling_time ) if check_close : if float ( win_money ) > 0 : win_money = ( \" %.2f \" % ( win_money )) print ( \"Tu has ganado\" , win_money , \"dinero\" ) else : print ( \"Sin beneficioss\" ) break Iq . unsubscribe_strike_list ( ACTIVES , duration ) else : print ( \"Fallo al comprar, porfavor prueba otra vez\" ) Obtener toda la lissta de datos de todos los strike \u00b6 Ejemplo from iqoptionapi.stable_api import IQ_Option import time Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #conecta a iqoption ACTIVES = \"EURUSD\" duration = 1 #minuto 1 or 5 Iq . subscribe_strike_list ( ACTIVES , duration ) while True : data = Iq . get_realtime_strike_list ( ACTIVES , duration ) for price in data : print ( \"precio\" , price , data [ price ]) time . sleep ( 5 ) Iq . unsubscribe_strike_list ( ACTIVES , duration ) subscribe_strike_list() \u00b6 Iq . subscribe_strike_list ( ACTIVES , duration ) get_realtime_strike_list \u00b6 Tu necesitas llamar a subscribe_strike_list() antes de get_realtime_strike_list() Iq . get_realtime_strike_list ( ACTIVES , duration ) unsubscribe_strike_list() \u00b6 Iq . unsubscribe_strike_list ( ACTIVES , duration ) buy_digital() \u00b6 buy_check , id = Iq . buy_digital ( amount , instrument_id ) #obtener el instrument_id de Iq.get_realtime_strike_list Modo actual del precio \u00b6 buy_digital_spot \u00b6 Comprar el d\u00edgito en el precio actual Devuelve check y id from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #conectar a iqoption ACTIVES = \"EURUSD\" duration = 1 #minuto 1 or 5 amount = 1 action = \"call\" #put print ( Iq . buy_digital_spot ( ACTIVES , amount , action , duration )) get_digital_spot_profit_after_sale() \u00b6 Obtener Profit despu\u00e9s de la Venta(P/L) Ejemplo from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"passord\" ) ACTIVES = \"EURUSD\" duration = 1 #minute 1 or 5 amount = 100 action = \"put\" #put Iq . subscribe_strike_list ( ACTIVES , duration ) _ , id = Iq . buy_digital_spot ( ACTIVES , amount , action , duration ) while True : PL = Iq . get_digital_spot_profit_after_sale ( id ) if PL != None : print ( PL ) get_digital_current_profit() \u00b6 from iqoptionapi.stable_api import IQ_Option import time import logging #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #conectar a iqoption ACTIVES = \"EURUSD\" duration = 1 #minuto 1 or 5 Iq . subscribe_strike_list ( ACTIVES , duration ) while True : data = Iq . get_digital_current_profit ( ACTIVES , duration ) print ( data ) # La primera impresi\u00f3n puede ser falsa, s\u00f3lo espera un segundo puedes obtener el beneficio time . sleep ( 1 ) Iq . unsubscribe_strike_list ( ACTIVES , duration ) check win for digital \u00b6 check_win_digital() \u00b6 Esta api esta implementada por get_digital_position() Esta funci\u00f3n esta encuestando, necesitas escojet el tiempo de encuesta Iq . check_win_digital ( id , polling_time ) #obtener el id de Iq.buy_digital check_win_digital_v2() \u00b6 Esta api es as\u00edncrona, obtiene el id de los datos. Solo puede obtener el id de los datos antess de que puedass comprar la opci\u00f3n. Si reinicias el programa, no se puede obtener otra vez la id de los datos de manera as\u00edncrona otra vez. De esta forma no se puede trabajar con check_win_digital_v2, asi tu necesitas usar check_win_digital. Iq . check_win_digital_v2 ( id ) #obtener el id deIq.buy_digital #return:check_close,win_money #return sample #if you loose:Ture,o #if you win:True,1232.3 #if trade not clode yet:False,None Ejemplo de c\u00f3digo from iqoptionapi.stable_api import IQ_Option import logging import random import time import datetime #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption ACTIVES = \"EURUSD\" duration = 1 #minuto 1 or 5 amount = 1 action = \"call\" #put _ , id = ( Iq . buy_digital_spot ( ACTIVES , amount , action , duration )) print ( id ) if id != \"error\" : while True : check , win = Iq . check_win_digital_v2 ( id ) if check == True : break if win < 0 : print ( \"Has perdido \" + str ( win ) + \"$\" ) else : print ( \"Has ganado \" + str ( win ) + \"$\" ) else : print ( \"Porfavor prueba otra vez\" ) close_digital_option() \u00b6 Iq . close_digital_option ( id ) Obtener datos de opciones digitaless \u00b6 Ejemplo 1 from iqoptionapi.stable_api import IQ_Option import logging import time #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #conectar a iqoption ACTIVES = \"EURUSD-OTC\" duration = 1 #minuto 1 or 5 amount = 1 action = \"call\" #put from datetime import datetime _ , id = Iq . buy_digital_spot ( ACTIVES , amount , action , duration ) while True : check , _ = Iq . check_win_digital ( id ) if check : break print ( Iq . get_digital_position ( id )) print ( Iq . check_win_digital ( id )) Ejemplo 2 print ( Iq . get_positions ( \"digital-option\" )) print ( Iq . get_digital_position ( 2323433 )) #Comprobar por id print ( Iq . get_position_history ( \"digital-option\" ))","title":"Digital"},{"location":"es/digital/digital/#digital","text":"","title":"Digital"},{"location":"es/digital/digital/#cerca-del-modo-strike","text":"","title":"Cerca del modo strike"},{"location":"es/digital/digital/#ejemplo","text":"from iqoptionapi.stable_api import IQ_Option import time import random Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #conectar a iqoption ACTIVES = \"EURUSD\" duration = 1 #minuto 1 or 5 amount = 1 Iq . subscribe_strike_list ( ACTIVES , duration ) #get strike_list data = Iq . get_realtime_strike_list ( ACTIVES , duration ) print ( \"get strike data\" ) print ( data ) \"\"\"data {'1.127100': { 'call': { 'profit': None, 'id': 'doEURUSD201811120649PT1MC11271' }, 'put': { 'profit': 566.6666666666666, 'id': 'doEURUSD201811120649PT1MP11271' } }............ } \"\"\" #Obtener la lista de precios price_list = list ( data . keys ()) #Elegir una estrat\u00e9gia aleatoria choose_price = price_list [ random . randint ( 0 , len ( price_list ) - 1 )] #Obtener instrument_id instrument_id = data [ choose_price ][ \"call\" ][ \"id\" ] #Obtener profit profit = data [ choose_price ][ \"call\" ][ \"profit\" ] print ( \"Elegir que quiere commprar\" ) print ( \"precio:\" , choose_price , \"side:call\" , \"instrument_id:\" , instrument_id , \"profit:\" , profit ) #Escojer instrument_id para abrir operaci\u00f3n buy_check , id = Iq . buy_digital ( amount , instrument_id ) polling_time = 5 if buy_check : print ( \"Esperar para comprobar win\" ) #comprobar win while True : check_close , win_money = Iq . check_win_digital_v2 ( id , polling_time ) if check_close : if float ( win_money ) > 0 : win_money = ( \" %.2f \" % ( win_money )) print ( \"Tu has ganado\" , win_money , \"dinero\" ) else : print ( \"Sin beneficioss\" ) break Iq . unsubscribe_strike_list ( ACTIVES , duration ) else : print ( \"Fallo al comprar, porfavor prueba otra vez\" )","title":"Ejemplo"},{"location":"es/digital/digital/#obtener-toda-la-lissta-de-datos-de-todos-los-strike","text":"Ejemplo from iqoptionapi.stable_api import IQ_Option import time Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #conecta a iqoption ACTIVES = \"EURUSD\" duration = 1 #minuto 1 or 5 Iq . subscribe_strike_list ( ACTIVES , duration ) while True : data = Iq . get_realtime_strike_list ( ACTIVES , duration ) for price in data : print ( \"precio\" , price , data [ price ]) time . sleep ( 5 ) Iq . unsubscribe_strike_list ( ACTIVES , duration )","title":"Obtener toda la lissta de datos de todos los strike"},{"location":"es/digital/digital/#subscribe_strike_list","text":"Iq . subscribe_strike_list ( ACTIVES , duration )","title":"subscribe_strike_list()"},{"location":"es/digital/digital/#get_realtime_strike_list","text":"Tu necesitas llamar a subscribe_strike_list() antes de get_realtime_strike_list() Iq . get_realtime_strike_list ( ACTIVES , duration )","title":"get_realtime_strike_list"},{"location":"es/digital/digital/#unsubscribe_strike_list","text":"Iq . unsubscribe_strike_list ( ACTIVES , duration )","title":"unsubscribe_strike_list()"},{"location":"es/digital/digital/#buy_digital","text":"buy_check , id = Iq . buy_digital ( amount , instrument_id ) #obtener el instrument_id de Iq.get_realtime_strike_list","title":"buy_digital()"},{"location":"es/digital/digital/#modo-actual-del-precio","text":"","title":"Modo actual del precio"},{"location":"es/digital/digital/#buy_digital_spot","text":"Comprar el d\u00edgito en el precio actual Devuelve check y id from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #conectar a iqoption ACTIVES = \"EURUSD\" duration = 1 #minuto 1 or 5 amount = 1 action = \"call\" #put print ( Iq . buy_digital_spot ( ACTIVES , amount , action , duration ))","title":"buy_digital_spot"},{"location":"es/digital/digital/#get_digital_spot_profit_after_sale","text":"Obtener Profit despu\u00e9s de la Venta(P/L) Ejemplo from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"passord\" ) ACTIVES = \"EURUSD\" duration = 1 #minute 1 or 5 amount = 100 action = \"put\" #put Iq . subscribe_strike_list ( ACTIVES , duration ) _ , id = Iq . buy_digital_spot ( ACTIVES , amount , action , duration ) while True : PL = Iq . get_digital_spot_profit_after_sale ( id ) if PL != None : print ( PL )","title":"get_digital_spot_profit_after_sale()"},{"location":"es/digital/digital/#get_digital_current_profit","text":"from iqoptionapi.stable_api import IQ_Option import time import logging #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #conectar a iqoption ACTIVES = \"EURUSD\" duration = 1 #minuto 1 or 5 Iq . subscribe_strike_list ( ACTIVES , duration ) while True : data = Iq . get_digital_current_profit ( ACTIVES , duration ) print ( data ) # La primera impresi\u00f3n puede ser falsa, s\u00f3lo espera un segundo puedes obtener el beneficio time . sleep ( 1 ) Iq . unsubscribe_strike_list ( ACTIVES , duration )","title":"get_digital_current_profit()"},{"location":"es/digital/digital/#check-win-for-digital","text":"","title":"check win for digital"},{"location":"es/digital/digital/#check_win_digital","text":"Esta api esta implementada por get_digital_position() Esta funci\u00f3n esta encuestando, necesitas escojet el tiempo de encuesta Iq . check_win_digital ( id , polling_time ) #obtener el id de Iq.buy_digital","title":"check_win_digital()"},{"location":"es/digital/digital/#check_win_digital_v2","text":"Esta api es as\u00edncrona, obtiene el id de los datos. Solo puede obtener el id de los datos antess de que puedass comprar la opci\u00f3n. Si reinicias el programa, no se puede obtener otra vez la id de los datos de manera as\u00edncrona otra vez. De esta forma no se puede trabajar con check_win_digital_v2, asi tu necesitas usar check_win_digital. Iq . check_win_digital_v2 ( id ) #obtener el id deIq.buy_digital #return:check_close,win_money #return sample #if you loose:Ture,o #if you win:True,1232.3 #if trade not clode yet:False,None Ejemplo de c\u00f3digo from iqoptionapi.stable_api import IQ_Option import logging import random import time import datetime #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #connect to iqoption ACTIVES = \"EURUSD\" duration = 1 #minuto 1 or 5 amount = 1 action = \"call\" #put _ , id = ( Iq . buy_digital_spot ( ACTIVES , amount , action , duration )) print ( id ) if id != \"error\" : while True : check , win = Iq . check_win_digital_v2 ( id ) if check == True : break if win < 0 : print ( \"Has perdido \" + str ( win ) + \"$\" ) else : print ( \"Has ganado \" + str ( win ) + \"$\" ) else : print ( \"Porfavor prueba otra vez\" )","title":"check_win_digital_v2()"},{"location":"es/digital/digital/#close_digital_option","text":"Iq . close_digital_option ( id )","title":"close_digital_option()"},{"location":"es/digital/digital/#obtener-datos-de-opciones-digitaless","text":"Ejemplo 1 from iqoptionapi.stable_api import IQ_Option import logging import time #logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #conectar a iqoption ACTIVES = \"EURUSD-OTC\" duration = 1 #minuto 1 or 5 amount = 1 action = \"call\" #put from datetime import datetime _ , id = Iq . buy_digital_spot ( ACTIVES , amount , action , duration ) while True : check , _ = Iq . check_win_digital ( id ) if check : break print ( Iq . get_digital_position ( id )) print ( Iq . check_win_digital ( id )) Ejemplo 2 print ( Iq . get_positions ( \"digital-option\" )) print ( Iq . get_digital_position ( 2323433 )) #Comprobar por id print ( Iq . get_position_history ( \"digital-option\" ))","title":"Obtener datos de opciones digitaless"},{"location":"es/fef/fef/","text":"Forex&Stock&Commodities&Crypto&ETFs \u00b6 instrument_type y instrument_id \u00b6 Tu puedes buscar instrument_type and instrument_id de este archivo buscar instrument_type and instrument_id Ejemplo \u00b6 from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #conectar a iqoption instrument_type = \"crypto\" instrument_id = \"BTCUSD\" side = \"buy\" #Introducir:\"buy\"/\"sell\" amount = 1.23 #Introducir la cantidad de dinero por operaci\u00f3n #\"leverage\"=\"Multiplier\" leverage = 3 #Puedes obtener m\u00e1s sinformaci\u00f3n de get_available_leverages() type = \"market\" #Introducir:\"market\"/\"limit\"/\"stop\" #Para type=\"limit\"/\"stop\" # olo funciona con type=\"limit\" limit_price = None #input:None/value(float/int) #Solo funciona con type=\"stop\" stop_price = None #input:None/value(float/int) #\"percent\"=Profit Percentage #\"price\"=Asset Price #\"diff\"=Profit in Money stop_lose_kind = \"percent\" #input:None/\"price\"/\"diff\"/\"percent\" stop_lose_value = 95 #input:None/value(float/int) take_profit_kind = None #input:None/\"price\"/\"diff\"/\"percent\" take_profit_value = None #input:None/value(float/int) #\"use_trail_stop\"=\"Trailing Stop\" use_trail_stop = True #True/False #\"auto_margin_call\"=\"Utilizar el dinero te la cuenta para mantener Abierta la Posici\u00f3n\" auto_margin_call = False #True/False #Si tu quieres \"take_profit_kind\"& # \"take_profit_value\"& # \"stop_lose_kind\"& # \"stop_lose_value\" all being \"Not Set\",\"auto_margin_call\" need to set:True use_token_for_commission = False #True/False check , order_id = Iq . buy_order ( instrument_type = instrument_type , instrument_id = instrument_id , side = side , amount = amount , leverage = leverage , type = type , limit_price = limit_price , stop_price = stop_price , stop_lose_value = stop_lose_value , stop_lose_kind = stop_lose_kind , take_profit_value = take_profit_value , take_profit_kind = take_profit_kind , use_trail_stop = use_trail_stop , auto_margin_call = auto_margin_call , use_token_for_commission = use_token_for_commission ) print ( Iq . get_order ( order_id )) print ( Iq . get_positions ( \"crypto\" )) print ( Iq . get_position_history ( \"crypto\" )) print ( Iq . get_available_leverages ( \"crypto\" , \"BTCUSD\" )) print ( Iq . close_position ( order_id )) print ( Iq . get_overnight_fee ( \"crypto\" , \"BTCUSD\" )) buy_order() \u00b6 devuelve (True/False,buy_order_id/False) Si Buy es satisfactoria devuelve (True,buy_order_id) \"percent\"=Profit Percentage \"price\"=Asset Price \"diff\"=Profit en dinero parameter instrument_type instrument_type instrument_id instrument_id side \"buy\" \"sell\" amount value(float/int) leverage value(int) type \"market\" \"limit\" \"stop\" limit_price None value(float/int):Only working by set type=\"limit\" stop_price None value(float/int):Only working by set type=\"stop\" stop_lose_kind None \"price\" \"diff\" \"percent\" stop_lose_value None value(float/int) take_profit_kind None \"price\" \"diff\" \"percent\" take_profit_value None value(float/int) use_trail_stop True False auto_margin_call True False use_token_for_commission True False check , order_id = Iq . buy_order ( instrument_type = instrument_type , instrument_id = instrument_id , side = side , amount = amount , leverage = leverage , type = type , limit_price = limit_price , stop_price = stop_price , stop_lose_kind = stop_lose_kind , stop_lose_value = stop_lose_value , take_profit_kind = take_profit_kind , take_profit_value = take_profit_value , use_trail_stop = use_trail_stop , auto_margin_call = auto_margin_call , use_token_for_commission = use_token_for_commission ) change_order() \u00b6 ID_Name=\"\"order_id\" ID_Name=\"position_id\" parameter ID_Name \"position_id\" \"order_id\" order_id \"you need to get order_id from buy_order()\" stop_lose_kind None \"price\" \"diff\" \"percent\" stop_lose_value None value(float/int) take_profit_kind None \"price\" \"diff\" \"percent\" take_profit_value None value(float/int) use_trail_stop True False auto_margin_call True False sample \u00b6 ID_Name = \"order_id\" #\"position_id\"/\"order_id\" stop_lose_kind = None stop_lose_value = None take_profit_kind = \"percent\" take_profit_value = 200 use_trail_stop = False auto_margin_call = True Iq . change_order ( ID_Name = ID_Name , order_id = order_id , stop_lose_kind = stop_lose_kind , stop_lose_value = stop_lose_value , take_profit_kind = take_profit_kind , take_profit_value = take_profit_value , use_trail_stop = use_trail_stop , auto_margin_call = auto_margin_call ) get_order() \u00b6 Obtener informaci\u00f3n sobre buy_order_id devuelve (True/False,get_order,None) Iq . get_order ( buy_order_id ) get_pending() \u00b6 Obtendr\u00e1s los dato Iq . get_pending ( instrument_type ) get_positions() \u00b6 Obtendr\u00e1 los datos devuelve (True/False,get_positions,None) no soporte para \"\"turbo-option\"\" instrument_type=\"crypto\",\"forex\",\"fx-option\",\"multi-option\",\"cfd\",\"digital-option\" Iq . get_positions ( instrument_type ) get_position() \u00b6 Obtendr\u00e1s los datos Obtendr\u00e1ss una possici\u00f3n por buy_order_id devuelve (True/False,position data,None) Iq . get_positions ( buy_order_id ) get_position_history \u00b6 Obtendr\u00e1s los datos get_position_history() \u00b6 devuelve (True/False,position_history,None) Iq.get_position_history(instrument_type) get_position_history_v2 \u00b6 instrument_type=\"crypto\",\"forex\",\"fx-option\",\"turbo-option\",\"multi-option\",\"cfd\",\"digital-option\" get_position_history_v2(instrument_type,limit,offset,start,end) from iqoptionapi.stable_api import IQ_Option import logging import random import time import datetime logging . basicConfig ( level = logging . DEBUG , format = ' %(asctime)s %(message)s ' ) Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #conectar a iqoption #instrument_type=\"crypto\",\"forex\",\"fx-option\",\"turbo-option\",\"multi-option\",\"cfd\",\"digital-option\" instrument_type = \"digital-option\" limit = 2 #Cu\u00e1ntos quieres obtener offset = 0 #offset de tiempo final, si el tiempo final es 0,significa que se obtendr\u00e1n los datos desde ahora start = 0 #Empezar el tiempo en Timestamp end = 0 #Timestamp data = Iq . get_position_history_v2 ( instrument_type , limit , offset , start , end ) print ( data ) #--------- Esto obtendr\u00e1 los datos empezando por 2019/7/1(end) hasta 2019/1/1(start) y solo obteniendo 2(limit) datoss siendo el offset 0 instrument_type = \"digital-option\" limit = 2 #Cu\u00e1ntos quieres obtener offset = 0 #offset de tiempo final, si el tiempo final es 0, significa que se obtendr\u00e1n los datos desde ahora start = int ( time . mktime ( datetime . datetime . strptime ( \"2019/1/1\" , \"%Y/%m/ %d \" ) . timetuple ())) end = int ( time . mktime ( datetime . datetime . strptime ( \"2019/7/1\" , \"%Y/%m/ %d \" ) . timetuple ())) data = Iq . get_position_history_v2 ( instrument_type , limit , offset , start , end ) print ( data ) get_available_leverages() \u00b6 Obtener apalancamiento disponible devuelve (True/False,available_leverages,None) Iq . get_available_leverages ( instrument_type , actives ) cancel_order() \u00b6 Cancelar\u00e1s la orden devuelve (True/False) Iq . cancel_order ( buy_order_id ) close_position() \u00b6 Cancelar\u00e1s la poici\u00f3n devuelve (True/False) Iq . close_position ( buy_order_id ) get_overnight_fee() \u00b6 devuelve (True/False,overnight_fee,None) Iq . get_overnight_fee ( instrument_type , active )","title":"Futuros de divisas"},{"location":"es/fef/fef/#forexstockcommoditiescryptoetfs","text":"","title":"Forex&Stock&Commodities&Crypto&ETFs"},{"location":"es/fef/fef/#instrument_type-y-instrument_id","text":"Tu puedes buscar instrument_type and instrument_id de este archivo buscar instrument_type and instrument_id","title":"instrument_type y instrument_id"},{"location":"es/fef/fef/#ejemplo","text":"from iqoptionapi.stable_api import IQ_Option Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #conectar a iqoption instrument_type = \"crypto\" instrument_id = \"BTCUSD\" side = \"buy\" #Introducir:\"buy\"/\"sell\" amount = 1.23 #Introducir la cantidad de dinero por operaci\u00f3n #\"leverage\"=\"Multiplier\" leverage = 3 #Puedes obtener m\u00e1s sinformaci\u00f3n de get_available_leverages() type = \"market\" #Introducir:\"market\"/\"limit\"/\"stop\" #Para type=\"limit\"/\"stop\" # olo funciona con type=\"limit\" limit_price = None #input:None/value(float/int) #Solo funciona con type=\"stop\" stop_price = None #input:None/value(float/int) #\"percent\"=Profit Percentage #\"price\"=Asset Price #\"diff\"=Profit in Money stop_lose_kind = \"percent\" #input:None/\"price\"/\"diff\"/\"percent\" stop_lose_value = 95 #input:None/value(float/int) take_profit_kind = None #input:None/\"price\"/\"diff\"/\"percent\" take_profit_value = None #input:None/value(float/int) #\"use_trail_stop\"=\"Trailing Stop\" use_trail_stop = True #True/False #\"auto_margin_call\"=\"Utilizar el dinero te la cuenta para mantener Abierta la Posici\u00f3n\" auto_margin_call = False #True/False #Si tu quieres \"take_profit_kind\"& # \"take_profit_value\"& # \"stop_lose_kind\"& # \"stop_lose_value\" all being \"Not Set\",\"auto_margin_call\" need to set:True use_token_for_commission = False #True/False check , order_id = Iq . buy_order ( instrument_type = instrument_type , instrument_id = instrument_id , side = side , amount = amount , leverage = leverage , type = type , limit_price = limit_price , stop_price = stop_price , stop_lose_value = stop_lose_value , stop_lose_kind = stop_lose_kind , take_profit_value = take_profit_value , take_profit_kind = take_profit_kind , use_trail_stop = use_trail_stop , auto_margin_call = auto_margin_call , use_token_for_commission = use_token_for_commission ) print ( Iq . get_order ( order_id )) print ( Iq . get_positions ( \"crypto\" )) print ( Iq . get_position_history ( \"crypto\" )) print ( Iq . get_available_leverages ( \"crypto\" , \"BTCUSD\" )) print ( Iq . close_position ( order_id )) print ( Iq . get_overnight_fee ( \"crypto\" , \"BTCUSD\" ))","title":"Ejemplo"},{"location":"es/fef/fef/#buy_order","text":"devuelve (True/False,buy_order_id/False) Si Buy es satisfactoria devuelve (True,buy_order_id) \"percent\"=Profit Percentage \"price\"=Asset Price \"diff\"=Profit en dinero parameter instrument_type instrument_type instrument_id instrument_id side \"buy\" \"sell\" amount value(float/int) leverage value(int) type \"market\" \"limit\" \"stop\" limit_price None value(float/int):Only working by set type=\"limit\" stop_price None value(float/int):Only working by set type=\"stop\" stop_lose_kind None \"price\" \"diff\" \"percent\" stop_lose_value None value(float/int) take_profit_kind None \"price\" \"diff\" \"percent\" take_profit_value None value(float/int) use_trail_stop True False auto_margin_call True False use_token_for_commission True False check , order_id = Iq . buy_order ( instrument_type = instrument_type , instrument_id = instrument_id , side = side , amount = amount , leverage = leverage , type = type , limit_price = limit_price , stop_price = stop_price , stop_lose_kind = stop_lose_kind , stop_lose_value = stop_lose_value , take_profit_kind = take_profit_kind , take_profit_value = take_profit_value , use_trail_stop = use_trail_stop , auto_margin_call = auto_margin_call , use_token_for_commission = use_token_for_commission )","title":"buy_order()"},{"location":"es/fef/fef/#change_order","text":"ID_Name=\"\"order_id\" ID_Name=\"position_id\" parameter ID_Name \"position_id\" \"order_id\" order_id \"you need to get order_id from buy_order()\" stop_lose_kind None \"price\" \"diff\" \"percent\" stop_lose_value None value(float/int) take_profit_kind None \"price\" \"diff\" \"percent\" take_profit_value None value(float/int) use_trail_stop True False auto_margin_call True False","title":"change_order()"},{"location":"es/fef/fef/#sample","text":"ID_Name = \"order_id\" #\"position_id\"/\"order_id\" stop_lose_kind = None stop_lose_value = None take_profit_kind = \"percent\" take_profit_value = 200 use_trail_stop = False auto_margin_call = True Iq . change_order ( ID_Name = ID_Name , order_id = order_id , stop_lose_kind = stop_lose_kind , stop_lose_value = stop_lose_value , take_profit_kind = take_profit_kind , take_profit_value = take_profit_value , use_trail_stop = use_trail_stop , auto_margin_call = auto_margin_call )","title":"sample"},{"location":"es/fef/fef/#get_order","text":"Obtener informaci\u00f3n sobre buy_order_id devuelve (True/False,get_order,None) Iq . get_order ( buy_order_id )","title":"get_order()"},{"location":"es/fef/fef/#get_pending","text":"Obtendr\u00e1s los dato Iq . get_pending ( instrument_type )","title":"get_pending()"},{"location":"es/fef/fef/#get_positions","text":"Obtendr\u00e1 los datos devuelve (True/False,get_positions,None) no soporte para \"\"turbo-option\"\" instrument_type=\"crypto\",\"forex\",\"fx-option\",\"multi-option\",\"cfd\",\"digital-option\" Iq . get_positions ( instrument_type )","title":"get_positions()"},{"location":"es/fef/fef/#get_position","text":"Obtendr\u00e1s los datos Obtendr\u00e1ss una possici\u00f3n por buy_order_id devuelve (True/False,position data,None) Iq . get_positions ( buy_order_id )","title":"get_position()"},{"location":"es/fef/fef/#get_position_history","text":"Obtendr\u00e1s los datos","title":"get_position_history"},{"location":"es/fef/fef/#get_position_history_1","text":"devuelve (True/False,position_history,None) Iq.get_position_history(instrument_type)","title":"get_position_history()"},{"location":"es/fef/fef/#get_position_history_v2","text":"instrument_type=\"crypto\",\"forex\",\"fx-option\",\"turbo-option\",\"multi-option\",\"cfd\",\"digital-option\" get_position_history_v2(instrument_type,limit,offset,start,end) from iqoptionapi.stable_api import IQ_Option import logging import random import time import datetime logging . basicConfig ( level = logging . DEBUG , format = ' %(asctime)s %(message)s ' ) Iq = IQ_Option ( \"email\" , \"password\" ) Iq . connect () #conectar a iqoption #instrument_type=\"crypto\",\"forex\",\"fx-option\",\"turbo-option\",\"multi-option\",\"cfd\",\"digital-option\" instrument_type = \"digital-option\" limit = 2 #Cu\u00e1ntos quieres obtener offset = 0 #offset de tiempo final, si el tiempo final es 0,significa que se obtendr\u00e1n los datos desde ahora start = 0 #Empezar el tiempo en Timestamp end = 0 #Timestamp data = Iq . get_position_history_v2 ( instrument_type , limit , offset , start , end ) print ( data ) #--------- Esto obtendr\u00e1 los datos empezando por 2019/7/1(end) hasta 2019/1/1(start) y solo obteniendo 2(limit) datoss siendo el offset 0 instrument_type = \"digital-option\" limit = 2 #Cu\u00e1ntos quieres obtener offset = 0 #offset de tiempo final, si el tiempo final es 0, significa que se obtendr\u00e1n los datos desde ahora start = int ( time . mktime ( datetime . datetime . strptime ( \"2019/1/1\" , \"%Y/%m/ %d \" ) . timetuple ())) end = int ( time . mktime ( datetime . datetime . strptime ( \"2019/7/1\" , \"%Y/%m/ %d \" ) . timetuple ())) data = Iq . get_position_history_v2 ( instrument_type , limit , offset , start , end ) print ( data )","title":"get_position_history_v2"},{"location":"es/fef/fef/#get_available_leverages","text":"Obtener apalancamiento disponible devuelve (True/False,available_leverages,None) Iq . get_available_leverages ( instrument_type , actives )","title":"get_available_leverages()"},{"location":"es/fef/fef/#cancel_order","text":"Cancelar\u00e1s la orden devuelve (True/False) Iq . cancel_order ( buy_order_id )","title":"cancel_order()"},{"location":"es/fef/fef/#close_position","text":"Cancelar\u00e1s la poici\u00f3n devuelve (True/False) Iq . close_position ( buy_order_id )","title":"close_position()"},{"location":"es/fef/fef/#get_overnight_fee","text":"devuelve (True/False,overnight_fee,None) Iq . get_overnight_fee ( instrument_type , active )","title":"get_overnight_fee()"},{"location":"es/techinical%20analysis/","text":"Tecnical analysis \u00b6 Est\u00e1 disponible en los assets que puedes comprobar en \"asset info\": Si hay una sesi\u00f3n como esta tu puedes obtener los datos NOTA: Si no hay an\u00e1lisis t\u00e9cnico en el asset que tu quieres, no podr\u00e1s uarlo Hay algunos indicadores disponibles Pivotes \u00b6 Osciladores \u00b6 Promedioss m\u00f3viles \u00b6 C\u00f3mo usar: \u00b6 asset = \"GBPUSD\" indicators = Iq . get_technical_indicators ( asset ) print ( indicators ) Si el asset no contiene el an\u00e1lisis t\u00e9cnico, devolver\u00e1: { \"code\": \"no_technical_indicator_available\", \"message\": \"Active is not supported: active id 'ACTIVE_ID_PASSED'\" } Si lo contiene, devolver\u00e1 algo parecido a esto: NOTA: DEBE ANALIZAR EL CONTENIDO QUE SE IMPRIME [ { \"action\" : \"hold\" , \"candle_size\" : 60 , \"group\" : \"OSCILLATORS\" , \"name\" : \"Relative Strength Index (14)\" , \"value\" : 59.168583 }, { \"action\" : \"hold\" , \"candle_size\" : 60 , \"group\" : \"PIVOTS\" , \"name\" : \"Classic s3\" , \"value\" : 1.057292 } ..... ]","title":"An\u00e1lisis t\u00e9cnico"},{"location":"es/techinical%20analysis/#tecnical-analysis","text":"Est\u00e1 disponible en los assets que puedes comprobar en \"asset info\": Si hay una sesi\u00f3n como esta tu puedes obtener los datos NOTA: Si no hay an\u00e1lisis t\u00e9cnico en el asset que tu quieres, no podr\u00e1s uarlo Hay algunos indicadores disponibles","title":"Tecnical analysis"},{"location":"es/techinical%20analysis/#pivotes","text":"","title":"Pivotes"},{"location":"es/techinical%20analysis/#osciladores","text":"","title":"Osciladores"},{"location":"es/techinical%20analysis/#promedioss-moviles","text":"","title":"Promedioss m\u00f3viles"},{"location":"es/techinical%20analysis/#como-usar","text":"asset = \"GBPUSD\" indicators = Iq . get_technical_indicators ( asset ) print ( indicators ) Si el asset no contiene el an\u00e1lisis t\u00e9cnico, devolver\u00e1: { \"code\": \"no_technical_indicator_available\", \"message\": \"Active is not supported: active id 'ACTIVE_ID_PASSED'\" } Si lo contiene, devolver\u00e1 algo parecido a esto: NOTA: DEBE ANALIZAR EL CONTENIDO QUE SE IMPRIME [ { \"action\" : \"hold\" , \"candle_size\" : 60 , \"group\" : \"OSCILLATORS\" , \"name\" : \"Relative Strength Index (14)\" , \"value\" : 59.168583 }, { \"action\" : \"hold\" , \"candle_size\" : 60 , \"group\" : \"PIVOTS\" , \"name\" : \"Classic s3\" , \"value\" : 1.057292 } ..... ]","title":"C\u00f3mo usar:"},{"location":"pt/","text":"IQ Option API \u00b6 Ajudar a manter o projeto e trazer novas features Ainda n\u00e3o possui a tradu\u00e7\u00e3o em portugues. Em breve estar\u00e1 disponivel. Para manter o projeto continuamente atualizado contribua com uma doa\u00e7\u00e3o, com alguma corre\u00e7\u00e3o ou melhoria. As doa\u00e7\u00f5es ser\u00e3o usadas para adicionar novas features.","title":"Primeiros Passos"},{"location":"pt/#iq-option-api","text":"Ajudar a manter o projeto e trazer novas features Ainda n\u00e3o possui a tradu\u00e7\u00e3o em portugues. Em breve estar\u00e1 disponivel. Para manter o projeto continuamente atualizado contribua com uma doa\u00e7\u00e3o, com alguma corre\u00e7\u00e3o ou melhoria. As doa\u00e7\u00f5es ser\u00e3o usadas para adicionar novas features.","title":"IQ Option API"},{"location":"pt/changelog/","text":"Version 5.3.0 \u00b6 add technical Indicators from iqoptionapi.stable_api import IQ_Option import logging import time import userdata asset = \"EURUSD\" maxdict = 10 size = 300 logging . disable ( level = ( logging . DEBUG )) user = userdata . mainUser Iq = IQ_Option ( user [ \"username\" ], user [ \"password\" ]) indicators = Iq . get_technical_indicators ( asset ) print ( indicators ) print ( \"passou while bot\" ) Version: 5.1.1 \u00b6 fix change_balance \u00b6 from iqoptionapi.stable_api import IQ_Option email = \"your@mail.ocm\" password = \"your_password\" account_mode = \"real\" # real/practic Iq = IQ_Option ( email , password , account_mode ) balance_id = Iq . change_balance ( \"practic\" ) Add option balance_mode on create IQ_Option objetct. \u00b6 from iqoptionapi.stable_api import IQ_Option email = \"your@mail.ocm\" password = \"your_password\" account_mode = \"real\" # real/practic Iq = IQ_Option ( email , password , account_mode ) last update:2019/11/22 Version:5.1 add get_option_open_by_other_pc api Version:5.0 please donate >< get_digital_spot_profit_after_sale pay me lot of time https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/125 add get_digital_spot_profit_after_sale api Version:4.5 add get_remaning api Version:4.4 fix check_win_digital(check_win_digital(Synchronous message) and check_win_digital_v2(Asynchronous messages) are different implement way) add get_digital_position() Version:4.3 add subscribe_top_assets_updated & popularity https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/131 Version:4.2 add reconnect sample add get_async_order api Version:4.0.1 fix get_positions() https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/132 add get_optioninfo_v2 Version:4.0.0 :exclamation::exclamation::exclamation: update websocket-client==0.56 :exclamation: please uninstall all websocket-client and update up websocket-client==0.56 sudo pip uninstall websocket-client sudo pip install websocket-client==0.56 :exclamation:","title":"Changelog"},{"location":"pt/changelog/#version-530","text":"add technical Indicators from iqoptionapi.stable_api import IQ_Option import logging import time import userdata asset = \"EURUSD\" maxdict = 10 size = 300 logging . disable ( level = ( logging . DEBUG )) user = userdata . mainUser Iq = IQ_Option ( user [ \"username\" ], user [ \"password\" ]) indicators = Iq . get_technical_indicators ( asset ) print ( indicators ) print ( \"passou while bot\" )","title":"Version 5.3.0"},{"location":"pt/changelog/#version-511","text":"","title":"Version: 5.1.1"},{"location":"pt/changelog/#fix-change_balance","text":"from iqoptionapi.stable_api import IQ_Option email = \"your@mail.ocm\" password = \"your_password\" account_mode = \"real\" # real/practic Iq = IQ_Option ( email , password , account_mode ) balance_id = Iq . change_balance ( \"practic\" )","title":"fix change_balance"},{"location":"pt/changelog/#add-option-balance_mode-on-create-iq_option-objetct","text":"from iqoptionapi.stable_api import IQ_Option email = \"your@mail.ocm\" password = \"your_password\" account_mode = \"real\" # real/practic Iq = IQ_Option ( email , password , account_mode ) last update:2019/11/22 Version:5.1 add get_option_open_by_other_pc api Version:5.0 please donate >< get_digital_spot_profit_after_sale pay me lot of time https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/125 add get_digital_spot_profit_after_sale api Version:4.5 add get_remaning api Version:4.4 fix check_win_digital(check_win_digital(Synchronous message) and check_win_digital_v2(Asynchronous messages) are different implement way) add get_digital_position() Version:4.3 add subscribe_top_assets_updated & popularity https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/131 Version:4.2 add reconnect sample add get_async_order api Version:4.0.1 fix get_positions() https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/132 add get_optioninfo_v2 Version:4.0.0 :exclamation::exclamation::exclamation: update websocket-client==0.56 :exclamation: please uninstall all websocket-client and update up websocket-client==0.56 sudo pip uninstall websocket-client sudo pip install websocket-client==0.56 :exclamation:","title":"Add option balance_mode on create IQ_Option objetct."},{"location":"pt/forex/","text":"How to trade with forex \u00b6","title":"Forex"},{"location":"pt/forex/#how-to-trade-with-forex","text":"","title":"How to trade with forex"}]} \ No newline at end of file diff --git a/docs/sitemap.xml b/docs/sitemap.xml new file mode 100644 index 00000000..734db382 --- /dev/null +++ b/docs/sitemap.xml @@ -0,0 +1,108 @@ + + + + https://iqoptionapi.github.io/iqoptionapi/ + 2022-01-16 + daily + + + https://iqoptionapi.github.io/iqoptionapi/en/ + 2022-01-16 + daily + + + https://iqoptionapi.github.io/iqoptionapi/en/2%20factor/ + 2022-01-16 + daily + + + https://iqoptionapi.github.io/iqoptionapi/en/account/account/ + 2022-01-16 + daily + + + https://iqoptionapi.github.io/iqoptionapi/en/all/all/ + 2022-01-16 + daily + + + https://iqoptionapi.github.io/iqoptionapi/en/binary%20option/binary%20option/ + 2022-01-16 + daily + + + https://iqoptionapi.github.io/iqoptionapi/en/candle/candle/ + 2022-01-16 + daily + + + https://iqoptionapi.github.io/iqoptionapi/en/digital/digital/ + 2022-01-16 + daily + + + https://iqoptionapi.github.io/iqoptionapi/en/fef/fef/ + 2022-01-16 + daily + + + https://iqoptionapi.github.io/iqoptionapi/en/techinical%20analysis/ + 2022-01-16 + daily + + + https://iqoptionapi.github.io/iqoptionapi/es/ + 2022-01-16 + daily + + + https://iqoptionapi.github.io/iqoptionapi/es/account/account/ + 2022-01-16 + daily + + + https://iqoptionapi.github.io/iqoptionapi/es/all/all/ + 2022-01-16 + daily + + + https://iqoptionapi.github.io/iqoptionapi/es/binary%20option/binary%20option/ + 2022-01-16 + daily + + + https://iqoptionapi.github.io/iqoptionapi/es/candle/candle/ + 2022-01-16 + daily + + + https://iqoptionapi.github.io/iqoptionapi/es/digital/digital/ + 2022-01-16 + daily + + + https://iqoptionapi.github.io/iqoptionapi/es/fef/fef/ + 2022-01-16 + daily + + + https://iqoptionapi.github.io/iqoptionapi/es/techinical%20analysis/ + 2022-01-16 + daily + + + https://iqoptionapi.github.io/iqoptionapi/pt/ + 2022-01-16 + daily + + + https://iqoptionapi.github.io/iqoptionapi/pt/changelog/ + 2022-01-16 + daily + + + https://iqoptionapi.github.io/iqoptionapi/pt/forex/ + 2022-01-16 + daily + + \ No newline at end of file diff --git a/docs/sitemap.xml.gz b/docs/sitemap.xml.gz new file mode 100644 index 00000000..2762fab1 Binary files /dev/null and b/docs/sitemap.xml.gz differ diff --git a/docs/theme/material/404.html b/docs/theme/material/404.html new file mode 100644 index 00000000..49c7d164 --- /dev/null +++ b/docs/theme/material/404.html @@ -0,0 +1,7 @@ +{#- + This file was automatically generated - do not edit +-#} +{% extends "base.html" %} +{% block content %} +

    404 - Not found

    +{% endblock %} diff --git a/docs/theme/material/assets/images/2.jpg b/docs/theme/material/assets/images/2.jpg new file mode 100644 index 00000000..ebd8c7bd Binary files /dev/null and b/docs/theme/material/assets/images/2.jpg differ diff --git a/docs/theme/material/assets/images/donation.jpg b/docs/theme/material/assets/images/donation.jpg new file mode 100644 index 00000000..ebec3bb6 Binary files /dev/null and b/docs/theme/material/assets/images/donation.jpg differ diff --git a/docs/theme/material/assets/images/favicon.png b/docs/theme/material/assets/images/favicon.png new file mode 100644 index 00000000..1cf13b9f Binary files /dev/null and b/docs/theme/material/assets/images/favicon.png differ diff --git a/docs/theme/material/assets/javascripts/bundle.193efd2f.min.js b/docs/theme/material/assets/javascripts/bundle.193efd2f.min.js new file mode 100644 index 00000000..3cb87086 --- /dev/null +++ b/docs/theme/material/assets/javascripts/bundle.193efd2f.min.js @@ -0,0 +1,2 @@ +!function(t,e){for(var n in e)t[n]=e[n]}(window,function(t){function e(e){for(var r,i,o=e[0],u=e[1],b=e[2],s=0,O=[];s0}function H(){return new _.a(new URL(location.href))}var R=n(109);function P(t,e){return e.location$.pipe(Object(R.a)(1),Object(l.a)((function(e){var n=e.href;return new URL(t,n).toString().replace(/\/$/,"")})),Object(p.a)(1))}function U(){return location.hash.substring(1)}function q(t){var e=s("a");e.href=t,e.addEventListener("click",(function(t){return t.stopPropagation()})),e.click()}function N(){return Object(c.a)(window,"hashchange").pipe(Object(l.a)(U),Object(d.a)(U()),Object(S.a)((function(t){return t.length>0})),Object(C.a)())}function I(t){var e=matchMedia(t);return Object(x.a)((function(t){return e.addListener((function(){return t(e.matches)}))})).pipe(Object(d.a)(e.matches),Object(p.a)(1))}var z={drawer:u("[data-md-toggle=drawer]"),search:u("[data-md-toggle=search]")};function V(t){return z[t].checked}function D(t,e){z[t].checked!==e&&z[t].click()}function B(t){var e=z[t];return Object(c.a)(e,"change").pipe(Object(l.a)((function(){return e.checked})),Object(d.a)(e.checked))}var Y=n(59),J=n(87);function K(){return{x:Math.max(0,pageXOffset),y:Math.max(0,pageYOffset)}}function Q(t){var e=t.x,n=t.y;window.scrollTo(e||0,n||0)}function F(){return{width:innerWidth,height:innerHeight}}function W(){return Object(Y.a)([Object(j.a)(Object(c.a)(window,"scroll",{passive:!0}),Object(c.a)(window,"resize",{passive:!0})).pipe(Object(l.a)(K),Object(d.a)(K())),Object(c.a)(window,"resize",{passive:!0}).pipe(Object(l.a)(F),Object(d.a)(F()))]).pipe(Object(l.a)((function(t){var e=Object(w.h)(t,2);return{offset:e[0],size:e[1]}})),Object(p.a)(1))}function X(t,e){var n=e.header$,r=e.viewport$,c=r.pipe(Object(J.a)("size")),a=Object(Y.a)([c,n]).pipe(Object(l.a)((function(){return{x:t.offsetLeft,y:t.offsetTop}})));return Object(Y.a)([n,r,a]).pipe(Object(l.a)((function(t){var e=Object(w.h)(t,3),n=e[0].height,r=e[1],c=r.offset,a=r.size,i=e[2],o=i.x,u=i.y;return{offset:{x:c.x-o,y:c.y-u+n},size:a}})),Object(p.a)(1))}var Z=n(98),G=n(99),tt=n(79),et=n(100);function nt(t,e){var n=e.tx$,r=Object(x.a)((function(e){return t.addEventListener("message",e)})).pipe(Object(Z.a)("data"));return n.pipe(Object(G.a)((function(){return r}),{leading:!0,trailing:!0}),Object(tt.a)((function(e){return t.postMessage(e)})),Object(et.a)(r),Object(C.a)())}},,,function(t,e,n){"use strict";function r(t){return"object"==typeof t&&"string"==typeof t.base&&"object"==typeof t.features&&"object"==typeof t.search}n.d(e,"d",(function(){return r})),n.d(e,"b",(function(){return b})),n.d(e,"a",(function(){return O})),n.d(e,"f",(function(){return d})),n.d(e,"g",(function(){return p})),n.d(e,"e",(function(){return h})),n.d(e,"c",(function(){return v}));var c=n(0),a=n(78);function i(t){switch(t){case"svg":case"path":return document.createElementNS("http://www.w3.org/2000/svg",t);default:return document.createElement(t)}}function o(t,e,n){switch(e){case"xmlns":break;case"viewBox":case"d":"boolean"!=typeof n?t.setAttributeNS(null,e,n):n&&t.setAttributeNS(null,e,"");break;default:"boolean"!=typeof n?t.setAttribute(e,n):n&&t.setAttribute(e,"")}}function u(t,e){var n,r;if("string"==typeof e||"number"==typeof e)t.innerHTML+=e.toString();else if(e instanceof Node)t.appendChild(e);else if(Array.isArray(e))try{for(var a=Object(c.k)(e),i=a.next();!i.done;i=a.next()){u(t,i.value)}}catch(t){n={error:t}}finally{try{i&&!i.done&&(r=a.return)&&r.call(a)}finally{if(n)throw n.error}}}function b(t,e){for(var n,r,b,f,s=[],O=2;On){for(;" "!==t[n]&&--n>0;);return t.substring(0,n)+"..."}return t}function h(t){return t>999?((t+1e-6)/1e3).toFixed(+((t-950)%1e3>99))+"k":t.toString()}function v(t){for(var e=0,n=0,r=t.length;n code").forEach((function(t,e){var n=t.parentElement;n.id="__code_"+e,n.insertBefore(Object(f.a)(n.id),t)}))}));var O=Object(a.a)((function(t){new r(".md-clipboard").on("success",t)})).pipe(Object(i.a)());return O.pipe(Object(o.a)((function(t){return t.clearSelection()})),Object(u.a)(Object(s.f)("clipboard.copied"))).subscribe(n),O}var j=n(26),l=n(39),d=n(82),p=n(33),h=n(9),v=n(56),m=n(111);function y(t){var e=(void 0===t?{}:t).duration,n=new j.a,r=Object(b.a)("div");return r.classList.add("md-dialog","md-typeset"),n.pipe(Object(p.a)((function(t){return Object(l.a)(document.body).pipe(Object(h.a)((function(t){return t.appendChild(r)})),Object(v.b)(d.a),Object(m.a)(1),Object(o.a)((function(e){e.innerHTML=t,e.setAttribute("data-md-state","open")})),Object(m.a)(e||2e3),Object(o.a)((function(t){return t.removeAttribute("data-md-state")})),Object(m.a)(400),Object(o.a)((function(t){t.innerHTML="",t.remove()})))}))).subscribe(),n}var g=n(0),w=n(92),$=n(94),x=n(112),k=n(96),S=n(46),C=n(98),T=n(87),A=n(103),_=n(104),E=n(101),L=n(88),M=n(105),H=n(89);function R(t){var e=t.document$,n=t.viewport$,r=t.location$;"scrollRestoration"in history&&(history.scrollRestoration="manual"),Object(w.a)(window,"beforeunload").subscribe((function(){history.scrollRestoration="auto"}));var a=Object(b.c)('link[rel="shortcut icon"]');void 0!==a&&(a.href=a.href);var o=Object(w.a)(document.body,"click").pipe(Object(k.a)((function(t){return!(t.metaKey||t.ctrlKey)})),Object(p.a)((function(t){if(t.target instanceof HTMLElement){var e=t.target.closest("a");if(e&&!e.target&&Object(b.h)(e))return Object(b.g)(e)||t.preventDefault(),Object(l.a)(e)}return c.a})),Object(h.a)((function(t){return{url:new URL(t.href)}})),Object(i.a)());o.subscribe((function(){Object(b.o)("search",!1)}));var u=o.pipe(Object(k.a)((function(t){var e=t.url;return!Object(b.g)(e)})),Object(i.a)()),f=Object(w.a)(window,"popstate").pipe(Object(k.a)((function(t){return null!==t.state})),Object(h.a)((function(t){return{url:new URL(location.href),offset:t.state}})),Object(i.a)());Object($.a)(u,f).pipe(Object(S.a)((function(t,e){return t.url.href===e.url.href})),Object(C.a)("url")).subscribe(r);var s=r.pipe(Object(T.a)("pathname"),Object(A.a)(1),Object(p.a)((function(t){return Object(x.a)({url:t.href,responseType:"text",withCredentials:!0}).pipe(Object(_.a)((function(){return Object(b.m)(t),c.a})))})));u.pipe(Object(E.a)(s)).subscribe((function(t){var e=t.url;history.pushState({},"",e.toString())}));var O=new DOMParser;s.pipe(Object(h.a)((function(t){var e=t.response;return O.parseFromString(e,"text/html")}))).subscribe(e);var j=Object($.a)(u,f).pipe(Object(E.a)(e));j.subscribe((function(t){var e=t.url,n=t.offset;e.hash&&!n?Object(b.n)(e.hash):Object(b.p)(n||{y:0})})),j.pipe(Object(L.a)(e)).subscribe((function(t){var e,n,r=Object(g.h)(t,2)[1],c=r.title,a=r.head;document.dispatchEvent(new CustomEvent("DOMContentSwitch")),document.title=c;try{for(var i=Object(g.k)(['link[rel="canonical"]','meta[name="author"]','meta[name="description"]']),o=i.next();!o.done;o=i.next()){var u=o.value,f=Object(b.c)(u,a),s=Object(b.c)(u,document.head);void 0!==f&&void 0!==s&&Object(b.j)(s,f)}}catch(t){e={error:t}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(e)throw e.error}}})),n.pipe(Object(M.a)(250),Object(T.a)("offset")).subscribe((function(t){var e=t.offset;history.replaceState(e,"")})),Object($.a)(o,f).pipe(Object(H.a)(2,1),Object(k.a)((function(t){var e=Object(g.h)(t,2),n=e[0],r=e[1];return n.url.pathname===r.url.pathname&&!Object(b.g)(r.url)})),Object(h.a)((function(t){return Object(g.h)(t,2)[1]}))).subscribe((function(t){var e=t.offset;Object(b.p)(e||{y:0})}))}var P=n(7);function U(){var t=Object(b.u)().pipe(Object(h.a)((function(t){return Object(g.a)({mode:Object(b.f)("search")?"search":"global"},t)})),Object(k.a)((function(t){if("global"===t.mode){var e=Object(b.b)();if(void 0!==e)return!Object(b.i)(e)}return!0})),Object(i.a)());return t.pipe(Object(k.a)((function(t){return"search"===t.mode})),Object(L.a)(Object(P.useComponent)("search-query"),Object(P.useComponent)("search-result"))).subscribe((function(t){var e=Object(g.h)(t,3),n=e[0],r=e[1],c=e[2],a=Object(b.b)();switch(n.type){case"Enter":a===r&&n.claim();break;case"Escape":case"Tab":Object(b.o)("search",!1),Object(b.k)(r,!1);break;case"ArrowUp":case"ArrowDown":if(void 0===a)Object(b.k)(r);else{var i=Object(g.i)([r],Object(b.e)("[href]",c)),o=Math.max(0,(Math.max(0,i.indexOf(a))+i.length+("ArrowUp"===n.type?-1:1))%i.length);Object(b.k)(i[o])}n.claim();break;default:r!==Object(b.b)()&&Object(b.k)(r)}})),t.pipe(Object(k.a)((function(t){return"global"===t.mode})),Object(L.a)(Object(P.useComponent)("search-query"))).subscribe((function(t){var e=Object(g.h)(t,2),n=e[0],r=e[1];switch(n.type){case"f":case"s":case"/":Object(b.k)(r),Object(b.l)(r),n.claim();break;case"p":case",":var c=Object(b.c)("[href][rel=prev]");void 0!==c&&c.click();break;case"n":case".":var a=Object(b.c)("[href][rel=next]");void 0!==a&&a.click()}})),t}var q=n(44)},,,,,,function(t,e,n){"use strict";n.d(e,"a",(function(){return j})),n.d(e,"b",(function(){return l}));var r,c=n(0),a=n(39),i=n(18),o=n(9),u=n(80),b=n(86),f=n(33),s=n(46),O=n(1);function j(t,e){var n=e.document$;r=n.pipe(Object(o.a)((function(e){return t.reduce((function(t,n){var r,a=Object(O.c)("[data-md-component="+n+"]",e);return Object(c.a)(Object(c.a)({},t),void 0!==a?((r={})[n]=a,r):{})}),{})})),Object(u.a)((function(e,n){var r,a;try{for(var i=Object(c.k)(t),o=i.next();!o.done;o=i.next()){var u=o.value;switch(u){case"announce":case"header-title":case"container":case"skip":u in e&&void 0!==e[u]&&(Object(O.j)(e[u],n[u]),e[u]=n[u]);break;default:void 0!==n[u]?e[u]=Object(O.c)("[data-md-component="+u+"]"):delete e[u]}}}catch(t){r={error:t}}finally{try{o&&!o.done&&(a=i.return)&&a.call(i)}finally{if(r)throw r.error}}return e})),Object(b.a)(1))}function l(t){return r.pipe(Object(f.a)((function(e){return void 0!==e[t]?Object(a.a)(e[t]):i.a})),Object(s.a)())}},,,function(t,e,n){"use strict";function r(t,e){t.setAttribute("data-md-state",e?"blur":"")}function c(t){t.removeAttribute("data-md-state")}function a(t,e){t.classList.toggle("md-nav__link--active",e)}function i(t){t.classList.remove("md-nav__link--active")}n.d(e,"d",(function(){return r})),n.d(e,"b",(function(){return c})),n.d(e,"c",(function(){return a})),n.d(e,"a",(function(){return i}))},,,,,,function(t,e,n){"use strict";var r=n(61);n.o(r,"applySidebar")&&n.d(e,"applySidebar",(function(){return r.applySidebar})),n.o(r,"mountTableOfContents")&&n.d(e,"mountTableOfContents",(function(){return r.mountTableOfContents})),n.o(r,"mountTabs")&&n.d(e,"mountTabs",(function(){return r.mountTabs})),n.o(r,"watchSidebar")&&n.d(e,"watchSidebar",(function(){return r.watchSidebar}))},function(t,e,n){"use strict";n.d(e,"a",(function(){return a})),n.d(e,"b",(function(){return j})),n.d(e,"c",(function(){return p})),n.d(e,"d",(function(){return m}));var r=n(4),c="md-clipboard md-icon";function a(t){return Object(r.b)("button",{class:c,title:Object(r.f)("clipboard.copy"),"data-clipboard-target":"#"+t+" > code"},Object(r.b)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(r.b)("path",{d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})))}var i=n(0),o="md-search-result__item",u="md-search-result__link",b="md-search-result__article md-search-result__article--document",f="md-search-result__article",s="md-search-result__title",O="md-search-result__teaser";function j(t){var e=t.article,n=t.sections,c=Object(r.b)("div",{class:"md-search-result__icon md-icon"},Object(r.b)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(r.b)("path",{d:"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H13C12.59,21.75 12.2,21.44 11.86,21.1C11.53,20.77 11.25,20.4 11,20H6V4H13V9H18V10.18C18.71,10.34 19.39,10.61 20,11V8L14,2M20.31,18.9C21.64,16.79 21,14 18.91,12.68C16.8,11.35 14,12 12.69,14.08C11.35,16.19 12,18.97 14.09,20.3C15.55,21.23 17.41,21.23 18.88,20.32L22,23.39L23.39,22L20.31,18.9M16.5,19A2.5,2.5 0 0,1 14,16.5A2.5,2.5 0 0,1 16.5,14A2.5,2.5 0 0,1 19,16.5A2.5,2.5 0 0,1 16.5,19Z"}))),a=Object(i.i)([e],n).map((function(t){var e=t.location,n=t.title,a=t.text;return Object(r.b)("a",{href:e,class:u,tabIndex:-1},Object(r.b)("article",{class:"parent"in t?f:b},!("parent"in t)&&c,Object(r.b)("h1",{class:s},n),a.length>0&&Object(r.b)("p",{class:O},Object(r.g)(a,320))))}));return Object(r.b)("li",{class:o},a)}var l="md-source__facts",d="md-source__fact";function p(t){var e=t.map((function(t){return Object(r.b)("li",{class:d},t)}));return Object(r.b)("ul",{class:l},e)}var h="md-typeset__scrollwrap",v="md-typeset__table";function m(t){return Object(r.b)("div",{class:h},Object(r.b)("div",{class:v},t))}},function(t,e,n){"use strict";function r(t,e){t.style.top=e+"px"}function c(t){t.style.top=""}function a(t,e){t.style.height=e+"px"}function i(t){t.style.height=""}n.d(e,"d",(function(){return r})),n.d(e,"b",(function(){return c})),n.d(e,"c",(function(){return a})),n.d(e,"a",(function(){return i}))},,,,,,,,,,,,function(t,e,n){"use strict";var r=n(66);n.o(r,"applyAnchorList")&&n.d(e,"applyAnchorList",(function(){return r.applyAnchorList})),n.o(r,"watchAnchorList")&&n.d(e,"watchAnchorList",(function(){return r.watchAnchorList}));var c=n(67);n.d(e,"applyAnchorList",(function(){return c.a})),n.d(e,"watchAnchorList",(function(){return c.b}));n(23)},function(t,e,n){"use strict";n.d(e,"b",(function(){return a})),n.d(e,"f",(function(){return y})),n.d(e,"a",(function(){return i})),n.d(e,"d",(function(){return p})),n.d(e,"c",(function(){return h})),n.d(e,"e",(function(){return v}));var r=n(0),c=n(75);!function(){function t(t){var e=t.config,n=t.docs,a=t.pipeline,i=t.index;this.documents=function(t){var e,n,a=new Map;try{for(var i=Object(r.k)(t),o=i.next();!o.done;o=i.next()){var u=o.value,b=Object(r.h)(u.location.split("#"),2),f=b[0],s=b[1],O=u.location,j=u.title,l=c(u.text).replace(/\s+(?=[,.:;!?])/g,"").replace(/\s+/g," ");if(s){var d=a.get(f);d.linked?a.set(O,{location:O,title:j,text:l,parent:d}):(d.title=u.title,d.text=l,d.linked=!0)}else a.set(O,{location:O,title:j,text:l,linked:!1})}}catch(t){e={error:t}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(e)throw e.error}}return a}(n),this.highlight=function(t){var e=new RegExp(t.separator,"img"),n=function(t,e,n){return e+""+n+""};return function(c){c=c.replace(/[\s*+-:~^]+/g," ").trim();var a=new RegExp("(^|"+t.separator+")("+c.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(e,"|")+")","img");return function(t){return Object(r.a)(Object(r.a)({},t),{title:t.title.replace(a,n),text:t.text.replace(a,n)})}}}(e),this.index=void 0===i?lunr((function(){var t,c,i,o,u;a=a||["trimmer","stopWordFilter"],this.pipeline.reset();try{for(var b=Object(r.k)(a),f=b.next();!f.done;f=b.next()){var s=f.value;this.pipeline.add(lunr[s])}}catch(e){t={error:e}}finally{try{f&&!f.done&&(c=b.return)&&c.call(b)}finally{if(t)throw t.error}}1===e.lang.length&&"en"!==e.lang[0]?this.use(lunr[e.lang[0]]):e.lang.length>1&&this.use((i=lunr).multiLanguage.apply(i,Object(r.i)(e.lang))),this.field("title",{boost:1e3}),this.field("text"),this.ref("location");try{for(var O=Object(r.k)(n),j=O.next();!j.done;j=O.next()){var l=j.value;this.add(l)}}catch(t){o={error:t}}finally{try{j&&!j.done&&(u=O.return)&&u.call(O)}finally{if(o)throw o.error}}})):lunr.Index.load("string"==typeof i?JSON.parse(i):i)}t.prototype.query=function(t){var e=this;if(t)try{var n=this.index.search(t).reduce((function(t,n){var c=e.documents.get(n.ref);if(void 0!==c)if("parent"in c){var a=c.parent.location;t.set(a,Object(r.i)(t.get(a)||[],[n]))}else{a=c.location;t.set(a,t.get(a)||[])}return t}),new Map),c=this.highlight(t);return Object(r.i)(n).map((function(t){var n=Object(r.h)(t,2),a=n[0],i=n[1];return{article:c(e.documents.get(a)),sections:i.map((function(t){return c(e.documents.get(t.ref))}))}}))}catch(e){console.warn("Invalid query: "+t+" – see https://bit.ly/2s3ChXG")}return[]}}();function a(t){return t.replace(/(?:^|\s+)[*+-:^~]+(?=\s+|$)/g,"").trim().replace(/\s+|\b$/g,"* ")}var i,o=n(110),u=n(26),b=n(53),f=n(88),s=n(9),O=n(86),j=n(56),l=n(1),d=n(4);function p(t){return t.type===i.READY}function h(t){return t.type===i.QUERY}function v(t){return t.type===i.RESULT}function m(t){var e=t.config,n=t.docs,r=t.index;return 1===e.lang.length&&"en"===e.lang[0]&&(e.lang=[Object(d.f)("search.config.lang")]),"[s-]+"===e.separator&&(e.separator=Object(d.f)("search.config.separator")),{config:e,docs:n,index:r,pipeline:Object(d.f)("search.config.pipeline").split(/\s*,\s*/).filter(o.a)}}function y(t,e){var n=e.index$,c=e.base$,a=new Worker(t),o=new u.a,d=Object(l.C)(a,{tx$:o}).pipe(Object(f.a)(c),Object(s.a)((function(t){var e,n,c,a,i=Object(r.h)(t,2),o=i[0],u=i[1];if(v(o))try{for(var b=Object(r.k)(o.data),f=b.next();!f.done;f=b.next()){var s=f.value,O=s.article,j=s.sections;O.location=u+"/"+O.location;try{for(var l=(c=void 0,Object(r.k)(j)),d=l.next();!d.done;d=l.next()){var p=d.value;p.location=u+"/"+p.location}}catch(t){c={error:t}}finally{try{d&&!d.done&&(a=l.return)&&a.call(l)}finally{if(c)throw c.error}}}}catch(t){e={error:t}}finally{try{f&&!f.done&&(n=b.return)&&n.call(b)}finally{if(e)throw e.error}}return o})),Object(O.a)(1));return n.pipe(Object(s.a)((function(t){return{type:i.SETUP,data:m(t)}})),Object(j.b)(b.a)).subscribe(o.next.bind(o)),{tx$:o,rx$:d}}!function(t){t[t.SETUP=0]="SETUP",t[t.READY=1]="READY",t[t.QUERY=2]="QUERY",t[t.RESULT=3]="RESULT"}(i||(i={}))},,,,,,,,,,,,,,,,,function(t,e,n){"use strict";var r=n(62);n.o(r,"applySidebar")&&n.d(e,"applySidebar",(function(){return r.applySidebar})),n.o(r,"mountTableOfContents")&&n.d(e,"mountTableOfContents",(function(){return r.mountTableOfContents})),n.o(r,"mountTabs")&&n.d(e,"mountTabs",(function(){return r.mountTabs})),n.o(r,"watchSidebar")&&n.d(e,"watchSidebar",(function(){return r.watchSidebar}));var c=n(63);n.d(e,"applySidebar",(function(){return c.a})),n.d(e,"watchSidebar",(function(){return c.b}));n(31)},function(t,e){},function(t,e,n){"use strict";n.d(e,"b",(function(){return l})),n.d(e,"a",(function(){return d}));var r=n(0),c=n(59),a=n(45),i=n(82),o=n(9),u=n(46),b=n(56),f=n(88),s=n(79),O=n(81),j=n(31);function l(t,e){var n=e.main$,a=e.viewport$,i=t.parentElement.offsetTop-t.parentElement.parentElement.offsetTop;return Object(c.a)([n,a]).pipe(Object(o.a)((function(t){var e=Object(r.h)(t,2),n=e[0],c=n.offset,a=n.height,o=e[1].offset.y;return{height:a=a+Math.min(i,Math.max(0,o-c))-i,lock:o>=c+i}})),Object(u.a)((function(t,e){return t.height===e.height&&t.lock===e.lock})))}function d(t,e){var n=e.header$;return Object(a.a)(Object(b.b)(i.a),Object(f.a)(n),Object(s.a)((function(e){var n=Object(r.h)(e,2),c=n[0],a=c.height,i=c.lock,o=n[1].height;Object(j.c)(t,a),i?Object(j.d)(t,o):Object(j.b)(t)})),Object(o.a)((function(t){return Object(r.h)(t,1)[0]})),Object(O.a)((function(){Object(j.b)(t),Object(j.a)(t)})))}},function(t,e,n){"use strict";var r=n(65);n.d(e,"mountTableOfContents",(function(){return r.a}));n(43)},function(t,e,n){"use strict";n.d(e,"a",(function(){return O}));var r=n(0),c=n(45),a=n(59),i=n(39),o=n(33),u=n(9),b=n(1),f=n(29),s=n(43);function O(t){var e=t.header$,n=t.main$,O=t.viewport$,j=t.tablet$;return Object(c.a)(Object(o.a)((function(t){return j.pipe(Object(o.a)((function(c){if(c){var o=Object(b.e)(".md-nav__link",t),j=Object(f.watchSidebar)(t,{main$:n,viewport$:O}).pipe(Object(f.applySidebar)(t,{header$:e})),l=Object(s.watchAnchorList)(o,{header$:e,viewport$:O}).pipe(Object(s.applyAnchorList)(o));return Object(a.a)([j,l]).pipe(Object(u.a)((function(t){var e=Object(r.h)(t,2);return{sidebar:e[0],anchors:e[1]}})))}return Object(i.a)({})})))})))}},function(t,e){},function(t,e,n){"use strict";n.d(e,"b",(function(){return y})),n.d(e,"a",(function(){return g}));var r=n(0),c=n(91),a=n(59),i=n(45),o=n(82),u=n(9),b=n(87),f=n(33),s=n(80),O=n(46),j=n(90),l=n(89),d=n(56),p=n(79),h=n(81),v=n(1),m=n(23);function y(t,e){var n,i,o=e.header$,d=e.viewport$,p=new Map;try{for(var h=Object(r.k)(t),m=h.next();!m.done;m=h.next()){var y=m.value,g=decodeURIComponent(y.hash.substring(1)),w=Object(v.c)('[id="'+g+'"]');void 0!==w&&p.set(y,w)}}catch(t){n={error:t}}finally{try{m&&!m.done&&(i=h.return)&&i.call(h)}finally{if(n)throw n.error}}var $=o.pipe(Object(u.a)((function(t){return 18+t.height})));return Object(v.t)(document.body).pipe(Object(b.a)("height"),Object(u.a)((function(){var t=[];return Object(r.i)(p).reduce((function(e,n){for(var a=Object(r.h)(n,2),i=a[0],o=a[1];t.length;){if(!(p.get(t[t.length-1]).tagName>=o.tagName))break;t.pop()}for(var u=o.offsetTop;!u&&o.parentElement;)u=(o=o.parentElement).offsetTop;return e.set(Object(c.a)(t=Object(r.i)(t,[i])),u)}),new Map)})),Object(f.a)((function(t){return Object(a.a)([$,d]).pipe(Object(s.a)((function(t,e){for(var n=Object(r.h)(t,2),c=n[0],a=n[1],i=Object(r.h)(e,2),o=i[0],u=i[1].offset.y;a.length;){if(!(Object(r.h)(a[0],2)[1]-o=u))break;a=Object(r.i)([c.pop()],a)}return[c,a]}),[[],Object(r.i)(t)]),Object(O.a)((function(t,e){return t[0]===e[0]&&t[1]===e[1]})))}))).pipe(Object(u.a)((function(t){var e=Object(r.h)(t,2),n=e[0],c=e[1];return{prev:n.map((function(t){return Object(r.h)(t,1)[0]})),next:c.map((function(t){return Object(r.h)(t,1)[0]}))}})),Object(j.a)({prev:[],next:[]}),Object(l.a)(2,1),Object(u.a)((function(t){var e=Object(r.h)(t,2),n=e[0],c=e[1];return n.prev.length16)););return n}),0),Object(u.a)(e),Object(M.a)((function(){!function(t){t.innerHTML=""}(b)})))})))}function q(t,e){var n=t.rx$,r=e.query$;return Object(c.a)(Object(i.a)((function(t){var e=t.parentElement,c=n.pipe(Object(o.a)(h.c),Object(u.a)(!0)),a=Object(p.s)(e).pipe(Object(O.a)((function(t){return t.y>=e.scrollHeight-e.offsetHeight-16})),Object(g.a)(),Object(o.a)(C.a));return n.pipe(Object(o.a)(h.d),Object(T.a)("data"),U(t,{query$:r,ready$:c,fetch$:a}),Object(b.a)([]))})))}},function(t,e,n){"use strict";n.d(e,"a",(function(){return y}));var r=n(0),c=n(45),a=n(59),i=n(33),o=n(9),u=n(96),b=n(88),f=n(46),s=n(90),O=n(86),j=n(1),l=n(20),d=n(39),p=n(82),h=n(56),v=n(79),m=n(81);function y(t){var e=t.document$,n=t.viewport$;return Object(c.a)(Object(i.a)((function(t){var y=function(t,e){return e.document$.pipe(Object(o.a)((function(){var e=getComputedStyle(t);return["sticky","-webkit-sticky"].includes(e.position)})),Object(f.a)(),Object(i.a)((function(e){return e?Object(j.t)(t).pipe(Object(o.a)((function(t){return{sticky:!0,height:t.height}}))):Object(d.a)({sticky:!1,height:0})})),Object(O.a)(1))}(t,{document$:e}),g=Object(l.b)("main").pipe(Object(o.a)((function(t){return Object(j.c)("h1, h2, h3, h4, h5, h6",t)})),Object(u.a)((function(t){return void 0!==t})),Object(b.a)(Object(l.b)("header-title")),Object(i.a)((function(t){var e=Object(r.h)(t,2),a=e[0],i=e[1];return Object(j.B)(a,{header$:y,viewport$:n}).pipe(Object(o.a)((function(t){return t.offset.y>=a.offsetHeight?"page":"site"})),Object(f.a)(),function(t){return Object(c.a)(Object(h.b)(p.a),Object(v.a)((function(e){!function(t,e){t.setAttribute("data-md-state",e?"active":"")}(t,"page"===e)})),Object(m.a)((function(){!function(t){t.removeAttribute("data-md-state")}(t)})))}(i))})),Object(s.a)("site"));return Object(a.a)([y,g]).pipe(Object(o.a)((function(t){var e=Object(r.h)(t,2),n=e[0],c=e[1];return Object(r.a)({type:c},n)})),Object(O.a)(1))})))}},function(t,e,n){"use strict";n.d(e,"a",(function(){return O}));var r=n(45),c=n(33),a=n(9),i=n(87),o=n(1),u=n(82),b=n(56),f=n(79),s=n(81);function O(t){var e=t.header$,n=t.viewport$;return Object(r.a)(Object(c.a)((function(t){return Object(o.B)(t,{header$:e,viewport$:n}).pipe(Object(a.a)((function(t){return{hidden:t.offset.y>=20}})),Object(i.a)("hidden"),function(t){return Object(r.a)(Object(b.b)(u.a),Object(f.a)((function(e){var n=e.hidden;!function(t,e){t.setAttribute("data-md-state",e?"hidden":"")}(t,n)})),Object(s.a)((function(){!function(t){t.removeAttribute("data-md-state")}(t)})))}(t))})))}},function(t,e,n){"use strict";n.d(e,"a",(function(){return m}));var r=n(26),c=n(45),a=n(33),i=n(87),o=n(79),u=n(20),b=n(0),f=n(59),s=n(82),O=n(98),j=n(46),l=n(86),d=n(9),p=n(56),h=n(81),v=n(1);function m(t){var e=t.header$,n=t.viewport$,m=new r.a;return Object(u.b)("header").pipe(Object(a.a)((function(t){return m.pipe(Object(i.a)("active"),(e=t,Object(c.a)(Object(p.b)(s.a),Object(o.a)((function(t){var n=t.active;!function(t,e){t.setAttribute("data-md-state",e?"shadow":"")}(e,n)})),Object(h.a)((function(){!function(t){t.removeAttribute("data-md-state")}(e)})))));var e}))).subscribe(),Object(c.a)(Object(a.a)((function(t){return function(t,e){var n=e.header$,r=e.viewport$,c=n.pipe(Object(O.a)("height"),Object(j.a)(),Object(l.a)(1)),o=c.pipe(Object(a.a)((function(){return Object(v.t)(t).pipe(Object(d.a)((function(e){var n=e.height;return{top:t.offsetTop,bottom:t.offsetTop+n}})))})),Object(i.a)("bottom"),Object(l.a)(1));return Object(f.a)([c,o,r]).pipe(Object(d.a)((function(t){var e=Object(b.h)(t,3),n=e[0],r=e[1],c=r.top,a=r.bottom,i=e[2],o=i.offset.y,u=i.size.height;return{offset:c-n,height:u=Math.max(0,u-Math.max(0,c-o,n)-Math.max(0,u+o-a)),active:c-n<=o}})),Object(j.a)((function(t,e){return t.offset===e.offset&&t.height===e.height&&t.active===e.active})))}(t,{header$:e,viewport$:n})})),Object(o.a)((function(t){return m.next(t)})))}},function(t,e,n){"use strict";n.d(e,"a",(function(){return j}));var r=n(45),c=n(39),a=n(33),i=n(9),o=n(87),u=n(1),b=n(82),f=n(56),s=n(79),O=n(81);function j(t){var e=t.header$,n=t.viewport$,j=t.screen$;return Object(r.a)(Object(a.a)((function(t){return j.pipe(Object(a.a)((function(a){return a?Object(u.B)(t,{header$:e,viewport$:n}).pipe(Object(i.a)((function(t){return{hidden:t.offset.y>=10}})),Object(o.a)("hidden"),function(t){return Object(r.a)(Object(f.b)(b.a),Object(s.a)((function(e){var n=e.hidden;!function(t,e){t.setAttribute("data-md-state",e?"hidden":"")}(t,n)})),Object(O.a)((function(){!function(t){t.removeAttribute("data-md-state")}(t)})))}(t)):Object(c.a)({hidden:!0})})))})))}},function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var r=n(45),c=n(39),a=n(33),i=n(9),o=n(29);function u(t){var e=t.header$,n=t.main$,u=t.viewport$,b=t.screen$;return Object(r.a)(Object(a.a)((function(t){return b.pipe(Object(a.a)((function(r){return r?Object(o.watchSidebar)(t,{main$:n,viewport$:u}).pipe(Object(o.applySidebar)(t,{header$:e}),Object(i.a)((function(t){return{sidebar:t}}))):Object(c.a)({})})))})))}},,,,,,,,,,,,function(t,e,n){"use strict";n.r(e),n.d(e,"setScrollLock",(function(){return U})),n.d(e,"resetScrollLock",(function(){return q})),n.d(e,"initialize",(function(){return N}));var r=n(0),c=n(107),a=n(76),i=n(36),o=n(39),u=n(102),b=n(59),f=n(82),s=n(92),O=n(94),j=n(112),l=n(86),d=n(33),p=n(98),h=n(104),v=n(79),m=n(111),y=n(88),g=n(56),w=n(96),$=n(109),x=n(1),k=n(7),S=n(14),C=n(110),T=n(9),A=n(100);var _=n(103);var E=n(106),L=n(93);function M(){return/(iPad|iPhone|iPod)/.test(navigator.userAgent)}var H=n(30),R=n(4);function P(t){switch(Object(r.h)(t.match(/(git(?:hub|lab))/i)||[],1)[0].toLowerCase()){case"github":var e=Object(r.h)(t.match(/^.+github\.com\/([^\/]+)\/?([^\/]+)/i),3);return function(t,e){return Object(j.a)({url:void 0!==e?"https://api.github.com/repos/"+t+"/"+e:"https://api.github.com/users/"+t,responseType:"json"}).pipe(Object(w.a)((function(t){return 200===t.status})),Object(p.a)("response"),Object(d.a)((function(t){if(void 0!==e){var n=t.stargazers_count,r=t.forks_count;return Object(o.a)([Object(R.e)(n||0)+" Stars",Object(R.e)(r||0)+" Forks"])}var c=t.public_repos;return Object(o.a)([Object(R.e)(c||0)+" Repositories"])})))}(e[1],e[2]);case"gitlab":var n=Object(r.h)(t.match(/^.+?([^\/]*gitlab[^\/]+)\/(.+?)\/?$/i),3);return function(t,e){return Object(j.a)({url:"https://"+t+"/api/v4/projects/"+encodeURIComponent(e),responseType:"json"}).pipe(Object(w.a)((function(t){return 200===t.status})),Object(p.a)("response"),Object(T.a)((function(t){var e=t.star_count,n=t.forks_count;return[Object(R.e)(e)+" Stars",Object(R.e)(n)+" Forks"]})))}(n[1],n[2]);default:return u.a}}function U(t,e){t.setAttribute("data-md-state","lock"),t.style.top="-"+e+"px"}function q(t){var e=-1*parseInt(t.style.top,10);t.removeAttribute("data-md-state"),t.style.top="",e&&window.scrollTo(0,e)}function N(t){if(!Object(R.d)(t))throw new SyntaxError("Invalid configuration: "+JSON.stringify(t));var e=Object(x.q)(),n=Object(x.v)(),N=Object(x.w)(t.base,{location$:n}),I=Object(x.x)(),z=Object(x.A)(),V=Object(x.y)("(min-width: 960px)"),D=Object(x.y)("(min-width: 1220px)");Object(k.setupComponents)(["announce","container","header","header-title","hero","main","navigation","search","search-query","search-reset","search-result","skip","tabs","toc"],{document$:e});var B=Object(S.h)();!function(t){var e=t.document$,n=t.hash$,c=e.pipe(Object(T.a)((function(){return Object(x.e)("details")})));Object(O.a)(Object(x.y)("print").pipe(Object(w.a)(C.a)),Object(s.a)(window,"beforeprint")).pipe(Object(A.a)(c)).subscribe((function(t){var e,n;try{for(var c=Object(r.k)(t),a=c.next();!a.done;a=c.next()){a.value.setAttribute("open","")}}catch(t){e={error:t}}finally{try{a&&!a.done&&(n=c.return)&&n.call(c)}finally{if(e)throw e.error}}})),n.pipe(Object(T.a)((function(t){return Object(x.c)('[id="'+t+'"]')})),Object(w.a)((function(t){return void 0!==t})),Object(v.a)((function(t){var e=t.closest("details");e&&!e.open&&e.setAttribute("open","")}))).subscribe((function(t){return t.scrollIntoView()}))}({document$:e,hash$:I}),{document$:e}.document$.pipe(Object(_.a)(1),Object(y.a)(Object(k.useComponent)("container")),Object(T.a)((function(t){var e=Object(r.h)(t,2)[1];return Object(x.e)("script",e)}))).subscribe((function(t){var e,n;try{for(var c=Object(r.k)(t),a=c.next();!a.done;a=c.next()){var i=a.value;if(i.src||/(^|\/javascript)$/i.test(i.type)){var o=Object(x.a)("script"),u=i.src?"src":"textContent";o[u]=i[u],Object(x.j)(i,o)}}}catch(t){e={error:t}}finally{try{a&&!a.done&&(n=c.return)&&n.call(c)}finally{if(e)throw e.error}}})),function(t){t.document$.pipe(Object(T.a)((function(){return Object(x.d)(".md-source[href]")})),Object(d.a)((function(t){var e=t.href;return Object(R.a)(""+Object(R.c)(e),(function(){return P(e)}))})),Object(h.a)((function(){return u.a}))).subscribe((function(t){var e,n;try{for(var c=Object(r.k)(Object(x.e)(".md-source__repository")),a=c.next();!a.done;a=c.next()){var i=a.value;i.hasAttribute("data-md-state")||(i.setAttribute("data-md-state","done"),i.appendChild(Object(H.c)(t)))}}catch(t){e={error:t}}finally{try{a&&!a.done&&(n=c.return)&&n.call(c)}finally{if(e)throw e.error}}}))}({document$:e}),function(t){var e=t.document$,n=Object(x.a)("table");e.pipe(Object(T.a)((function(){return Object(x.e)("table:not([class])")}))).subscribe((function(t){var e,c;try{for(var a=Object(r.k)(t),i=a.next();!i.done;i=a.next()){var o=i.value;Object(x.j)(o,n),Object(x.j)(n,Object(H.d)(o))}}catch(t){e={error:t}}finally{try{i&&!i.done&&(c=a.return)&&c.call(a)}finally{if(e)throw e.error}}}))}({document$:e}),function(t){var e=t.document$.pipe(Object(T.a)((function(){return Object(x.e)("[data-md-scrollfix]")})),Object(l.a)(1));e.subscribe((function(t){var e,n;try{for(var c=Object(r.k)(t),a=c.next();!a.done;a=c.next()){a.value.removeAttribute("data-md-scrollfix")}}catch(t){e={error:t}}finally{try{a&&!a.done&&(n=c.return)&&n.call(c)}finally{if(e)throw e.error}}})),Object(E.a)(M,e,u.a).pipe(Object(d.a)((function(t){return O.a.apply(void 0,Object(r.i)(t.map((function(t){return Object(s.a)(t,"touchstart",{passive:!0}).pipe(Object(L.a)(t))}))))}))).subscribe((function(t){var e=t.scrollTop;0===e?t.scrollTop=1:e+t.offsetHeight===t.scrollHeight&&(t.scrollTop=e-1)}))}({document$:e});var Y=Object(S.f)(),J=Object(S.e)({document$:e,dialog$:Y}),K=Object(k.useComponent)("header").pipe(Object(k.mountHeader)({document$:e,viewport$:z}),Object(l.a)(1)),Q=Object(k.useComponent)("main").pipe(Object(k.mountMain)({header$:K,viewport$:z}),Object(l.a)(1)),F=Object(k.useComponent)("navigation").pipe(Object(k.mountNavigation)({header$:K,main$:Q,viewport$:z,screen$:D}),Object(l.a)(1)),W=Object(k.useComponent)("toc").pipe(Object(k.mountTableOfContents)({header$:K,main$:Q,viewport$:z,tablet$:V}),Object(l.a)(1)),X=Object(k.useComponent)("tabs").pipe(Object(k.mountTabs)({header$:K,viewport$:z,screen$:D}),Object(l.a)(1)),Z=Object(k.useComponent)("hero").pipe(Object(k.mountHero)({header$:K,viewport$:z}),Object(l.a)(1)),G=Object(a.a)((function(){var e=t.search&&t.search.index?t.search.index:void 0,n=void 0!==e?Object(i.a)(e):N.pipe(Object(d.a)((function(t){return Object(j.a)({url:t+"/search/search_index.json",responseType:"json",withCredentials:!0}).pipe(Object(p.a)("response"))})));return Object(o.a)(Object(S.i)(t.search.worker,{base$:N,index$:n}))})).pipe(Object(d.a)((function(e){var n=Object(k.useComponent)("search-query").pipe(Object(k.mountSearchQuery)(e,{transform:t.search.transform}),Object(l.a)(1)),r=Object(k.useComponent)("search-reset").pipe(Object(k.mountSearchReset)(),Object(l.a)(1)),c=Object(k.useComponent)("search-result").pipe(Object(k.mountSearchResult)(e,{query$:n}),Object(l.a)(1));return Object(k.useComponent)("search").pipe(Object(k.mountSearch)(e,{query$:n,reset$:r,result$:c}),Object(l.a)(1))})),Object(h.a)((function(){return Object(k.useComponent)("search").subscribe((function(t){return t.hidden=!0})),u.a})));I.pipe(Object(v.a)((function(){return Object(x.o)("search",!1)})),Object(m.a)(125)).subscribe((function(t){return Object(x.n)("#"+t)})),Object(b.a)([Object(x.z)("search"),V]).pipe(Object(y.a)(z),Object(d.a)((function(t){var n=Object(r.h)(t,2),c=Object(r.h)(n[0],2),a=c[0],i=c[1],o=n[1].offset.y,u=a&&!i;return e.pipe(Object(m.a)(u?400:100),Object(g.b)(f.a),Object(v.a)((function(t){var e=t.body;return u?U(e,o):q(e)})))}))).subscribe(),Object(s.a)(document.body,"click").pipe(Object(w.a)((function(t){return!(t.metaKey||t.ctrlKey)})),Object(w.a)((function(t){if(t.target instanceof HTMLElement){var e=t.target.closest("a");if(e&&Object(x.h)(e))return!0}return!1}))).subscribe((function(){Object(x.o)("drawer",!1)})),t.features.includes("instant")&&"file:"!==location.protocol&&Object(S.g)({document$:e,location$:n,viewport$:z}),B.pipe(Object(w.a)((function(t){return"global"===t.mode&&"Tab"===t.type})),Object($.a)(1)).subscribe((function(){var t,e;try{for(var n=Object(r.k)(Object(x.e)(".headerlink")),c=n.next();!c.done;c=n.next()){c.value.style.visibility="visible"}}catch(e){t={error:e}}finally{try{c&&!c.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}}));var tt={document$:e,location$:n,viewport$:z,header$:K,hero$:Z,main$:Q,navigation$:F,search$:G,tabs$:X,toc$:W,clipboard$:J,keyboard$:B,dialog$:Y};return O.a.apply(void 0,Object(r.i)(Object(c.a)(tt))).subscribe(),tt}document.documentElement.classList.remove("no-js"),document.documentElement.classList.add("js"),navigator.userAgent.match(/(iPad|iPhone|iPod)/g)&&document.documentElement.classList.add("ios")}])); +//# sourceMappingURL=bundle.193efd2f.min.js.map \ No newline at end of file diff --git a/docs/theme/material/assets/javascripts/bundle.193efd2f.min.js.map b/docs/theme/material/assets/javascripts/bundle.193efd2f.min.js.map new file mode 100644 index 00000000..a59b5ca4 --- /dev/null +++ b/docs/theme/material/assets/javascripts/bundle.193efd2f.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/javascripts/browser/document/index.ts","webpack:///./src/assets/javascripts/browser/element/_/index.ts","webpack:///./src/assets/javascripts/browser/element/focus/index.ts","webpack:///./src/assets/javascripts/browser/element/offset/index.ts","webpack:///./src/assets/javascripts/browser/element/select/index.ts","webpack:///./src/assets/javascripts/browser/element/size/index.ts","webpack:///./src/assets/javascripts/browser/keyboard/index.ts","webpack:///./src/assets/javascripts/browser/location/_/index.ts","webpack:///./src/assets/javascripts/browser/location/base/index.ts","webpack:///./src/assets/javascripts/browser/location/hash/index.ts","webpack:///./src/assets/javascripts/browser/media/index.ts","webpack:///./src/assets/javascripts/browser/toggle/index.ts","webpack:///./src/assets/javascripts/browser/viewport/offset/index.ts","webpack:///./src/assets/javascripts/browser/viewport/size/index.ts","webpack:///./src/assets/javascripts/browser/viewport/_/index.ts","webpack:///./src/assets/javascripts/browser/worker/index.ts","webpack:///./src/assets/javascripts/utilities/config/index.ts","webpack:///./src/assets/javascripts/utilities/jsx/index.ts","webpack:///./src/assets/javascripts/utilities/rxjs/index.ts","webpack:///./src/assets/javascripts/utilities/string/index.ts","webpack:///./src/assets/javascripts/components/index.ts","webpack:///./src/assets/javascripts/integrations/clipboard/index.ts","webpack:///./src/assets/javascripts/integrations/dialog/index.ts","webpack:///./src/assets/javascripts/integrations/instant/index.ts","webpack:///./src/assets/javascripts/integrations/keyboard/index.ts","webpack:///./src/assets/javascripts/components/_/index.ts","webpack:///./src/assets/javascripts/components/toc/anchor/set/index.ts","webpack:///./src/assets/javascripts/components/shared/index.ts","webpack:///./src/assets/javascripts/templates/clipboard/index.tsx","webpack:///./src/assets/javascripts/templates/search/index.tsx","webpack:///./src/assets/javascripts/templates/source/index.tsx","webpack:///./src/assets/javascripts/templates/table/index.tsx","webpack:///./src/assets/javascripts/components/shared/sidebar/set/index.ts","webpack:///./src/assets/javascripts/components/toc/anchor/index.ts","webpack:///./src/assets/javascripts/integrations/search/_/index.ts","webpack:///./src/assets/javascripts/integrations/search/document/index.ts","webpack:///./src/assets/javascripts/integrations/search/highlighter/index.ts","webpack:///./src/assets/javascripts/integrations/search/transform/index.ts","webpack:///./src/assets/javascripts/integrations/search/worker/message/index.ts","webpack:///./src/assets/javascripts/integrations/search/worker/_/index.ts","webpack:///./src/assets/javascripts/components/shared/sidebar/index.ts","webpack:///./src/assets/javascripts/components/shared/sidebar/react/index.ts","webpack:///./src/assets/javascripts/components/toc/index.ts","webpack:///./src/assets/javascripts/components/toc/_/index.ts","webpack:///./src/assets/javascripts/components/toc/anchor/react/index.ts","webpack:///./src/assets/javascripts/components/search/_/index.ts","webpack:///./src/assets/javascripts/components/search/query/_/index.ts","webpack:///./src/assets/javascripts/components/search/query/react/index.ts","webpack:///./src/assets/javascripts/components/search/reset/_/index.ts","webpack:///./src/assets/javascripts/components/search/reset/react/index.ts","webpack:///./src/assets/javascripts/components/search/result/set/index.ts","webpack:///./src/assets/javascripts/components/search/result/react/index.ts","webpack:///./src/assets/javascripts/components/search/result/_/index.ts","webpack:///./src/assets/javascripts/components/header/_/index.ts","webpack:///./src/assets/javascripts/components/header/react/index.ts","webpack:///./src/assets/javascripts/components/header/set/index.ts","webpack:///./src/assets/javascripts/components/hero/_/index.ts","webpack:///./src/assets/javascripts/components/hero/react/index.ts","webpack:///./src/assets/javascripts/components/hero/set/index.ts","webpack:///./src/assets/javascripts/components/main/_/index.ts","webpack:///./src/assets/javascripts/components/main/react/index.ts","webpack:///./src/assets/javascripts/components/main/set/index.ts","webpack:///./src/assets/javascripts/components/tabs/_/index.ts","webpack:///./src/assets/javascripts/components/tabs/react/index.ts","webpack:///./src/assets/javascripts/components/tabs/set/index.ts","webpack:///./src/assets/javascripts/components/navigation/_/index.ts","webpack:///./src/assets/javascripts/patches/scrollfix/index.ts","webpack:///./src/assets/javascripts/patches/source/index.ts","webpack:///./src/assets/javascripts/patches/source/github/index.ts","webpack:///./src/assets/javascripts/patches/source/gitlab/index.ts","webpack:///./src/assets/javascripts/index.ts","webpack:///./src/assets/javascripts/patches/details/index.ts","webpack:///./src/assets/javascripts/patches/script/index.ts","webpack:///./src/assets/javascripts/patches/table/index.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","0","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","watchDocument","document$","ReplaySubject","fromEvent","document","pipe","mapTo","subscribe","getElement","selector","node","querySelector","undefined","getElementOrThrow","el","ReferenceError","getActiveElement","activeElement","HTMLElement","getElements","Array","from","querySelectorAll","createElement","tagName","replaceElement","source","target","replaceWith","setElementFocus","focus","blur","watchElementFocus","merge","map","type","startWith","shareReplay","getElementOffset","x","scrollLeft","y","scrollTop","watchElementOffset","setElementSelection","HTMLInputElement","Error","select","watchElementSize","fromEventPattern","next","contentRect","width","Math","round","height","observe","offsetWidth","offsetHeight","getElementSize","isSusceptibleToKeyboard","isContentEditable","watchKeyboard","filter","ev","metaKey","ctrlKey","claim","preventDefault","stopPropagation","share","setLocation","url","location","href","isLocalLocation","ref","host","test","pathname","isAnchorLocation","hash","watchLocation","BehaviorSubject","URL","watchLocationBase","base","location$","take","toString","replace","getLocationHash","substring","setLocationHash","addEventListener","click","watchLocationHash","watchMedia","query","media","matchMedia","addListener","matches","toggles","drawer","search","getToggle","checked","setToggle","watchToggle","getViewportOffset","max","pageXOffset","pageYOffset","setViewportOffset","scrollTo","getViewportSize","innerWidth","innerHeight","watchViewport","combineLatest","passive","offset","size","watchViewportAt","header$","viewport$","size$","distinctUntilKeyChanged","offset$","offsetLeft","offsetTop","watchWorker","worker","tx$","rx$","pluck","throttle","leading","trailing","tap","message","postMessage","switchMapTo","isConfig","config","features","createElementNS","setAttribute","setAttributeNS","appendChild","child","innerHTML","Node","isArray","h","attributes","keys","attr","children","cache","factory","defer","sessionStorage","getItem","of","JSON","parse","value$","setItem","stringify","err","lang","translate","textContent","truncate","toFixed","len","charCodeAt","setupClipboard","dialog$","forEach","block","index","parent","parentElement","id","insertBefore","clipboard$","on","clearSelection","setupDialog","duration","Subject","dialog","classList","add","switchMap","text","body","container","observeOn","animationFrame","delay","removeAttribute","remove","setupInstantLoading","history","scrollRestoration","favicon","state$","closest","push$","pop$","state","distinctUntilChanged","prev","ajax$","skip","ajax","responseType","withCredentials","catchError","sample","pushState","dom","DOMParser","response","parseFromString","instant$","withLatestFrom","title","head","dispatchEvent","CustomEvent","debounceTime","replaceState","bufferCount","setupKeyboard","keyboard$","active","els","indexOf","components$","setupComponents","names","reduce","components","useComponent","setAnchorBlur","resetAnchorBlur","setAnchorActive","toggle","resetAnchorActive","css","renderClipboardButton","class","xmlns","viewBox","renderSearchResult","article","sections","icon","tabIndex","renderSource","facts","fact","renderTable","table","setSidebarOffset","style","top","resetSidebarOffset","setSidebarHeight","resetSidebarHeight","docs","pipeline","this","documents","Map","doc","path","linked","set","setupSearchDocumentMap","highlight","separator","RegExp","_","term","trim","match","setupSearchHighlighter","lunr","reset","fn","use","multiLanguage","field","boost","Index","load","groups","results","section","console","warn","defaultTransform","SearchMessageType","isSearchReadyMessage","READY","isSearchQueryMessage","QUERY","isSearchResultMessage","RESULT","setupSearchIndex","split","identity","setupSearchWorker","index$","base$","Worker","SETUP","watchSidebar","main$","adjust","min","lock","a","b","applySidebar","mountTableOfContents","tablet$","tablet","sidebar$","anchors$","sidebar","anchors","watchAnchorList","decodeURIComponent","adjust$","header","anchor","pop","applyAnchorList","mountSearch","query$","reset$","result$","status$","status","mountSearchQuery","options","transform","focus$","watchSearchQuery","mountSearchReset","watchSearchReset","addToSearchResultList","applySearchResult","ready$","fetch$","list","meta","setSearchResultMeta","resetSearchResultMeta","scan","scrollHeight","finalize","resetSearchResultList","mountSearchResult","mountHeader","styles","getComputedStyle","includes","position","sticky","watchHeader","type$","main","hx","setHeaderTitleActive","resetHeaderTitleActive","applyHeaderType","mountHero","hidden","setHeroHidden","resetHeroHidden","applyHero","mountMain","setHeaderShadow","resetHeaderShadow","border$","bottom","watchMain","mountTabs","screen$","screen","setTabsHidden","resetTabsHidden","applyTabs","mountNavigation","isAppleDevice","navigator","userAgent","fetchSourceFacts","toLowerCase","user","repo","stargazers_count","forks_count","public_repos","fetchSourceFactsFromGitHub","project","encodeURIComponent","star_count","fetchSourceFactsFromGitLab","setScrollLock","resetScrollLock","parseInt","initialize","SyntaxError","hash$","els$","details","open","scrollIntoView","patchDetails","src","script","hasAttribute","patchSource","sentinel","patchTables","iif","patchScrollfix","navigation$","toc$","tabs$","hero$","search$","protocol","visibility","values","documentElement"],"mappings":"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","file":"assets/javascripts/bundle.193efd2f.min.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([85,1]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { ReplaySubject, Subject, fromEvent } from \"rxjs\"\nimport { mapTo } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch document\n *\n * Documents must be implemented as subjects, so all downstream observables are\n * automatically updated when a new document is emitted. This enabled features\n * like instant loading.\n *\n * @return Document subject\n */\nexport function watchDocument(): Subject {\n const document$ = new ReplaySubject()\n fromEvent(document, \"DOMContentLoaded\")\n .pipe(\n mapTo(document)\n )\n .subscribe(document$)\n\n /* Return document */\n return document$\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve an element matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @return Element or nothing\n */\nexport function getElement(\n selector: string, node: ParentNode = document\n): T | undefined {\n return node.querySelector(selector) || undefined\n}\n\n/**\n * Retrieve an element matching a query selector or throw a reference error\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @return Element\n */\nexport function getElementOrThrow(\n selector: string, node: ParentNode = document\n): T {\n const el = getElement(selector, node)\n if (typeof el === \"undefined\")\n throw new ReferenceError(\n `Missing element: expected \"${selector}\" to be present`\n )\n return el\n}\n\n/**\n * Retrieve the currently active element\n *\n * @return Element or nothing\n */\nexport function getActiveElement(): HTMLElement | undefined {\n return document.activeElement instanceof HTMLElement\n ? document.activeElement\n : undefined\n}\n\n/**\n * Retrieve all elements matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @return Elements\n */\nexport function getElements(\n selector: string, node: ParentNode = document\n): T[] {\n return Array.from(node.querySelectorAll(selector))\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Create an element\n *\n * @template T - Tag name type\n *\n * @param tagName - Tag name\n *\n * @return Element\n */\nexport function createElement<\n T extends keyof HTMLElementTagNameMap\n>(tagName: T): HTMLElementTagNameMap[T] {\n return document.createElement(tagName)\n}\n\n/**\n * Replace an element with another element\n *\n * @param source - Source element\n * @param target - Target element\n */\nexport function replaceElement(\n source: HTMLElement, target: Node\n): void {\n source.replaceWith(target)\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent, merge } from \"rxjs\"\nimport { map, shareReplay, startWith } from \"rxjs/operators\"\n\nimport { getActiveElement } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set element focus\n *\n * @param el - Element\n * @param value - Whether the element should be focused\n */\nexport function setElementFocus(\nel: HTMLElement, value: boolean = true\n): void {\n if (value)\n el.focus()\n else\n el.blur()\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element focus\n *\n * @param el - Element\n *\n * @return Element focus observable\n */\nexport function watchElementFocus(\n el: HTMLElement\n): Observable {\n return merge(\n fromEvent(el, \"focus\"),\n fromEvent(el, \"blur\")\n )\n .pipe(\n map(({ type }) => type === \"focus\"),\n startWith(el === getActiveElement()),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent, merge } from \"rxjs\"\nimport { map, shareReplay, startWith } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Element offset\n */\nexport interface ElementOffset {\n x: number /* Horizontal offset */\n y: number /* Vertical offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve element offset\n *\n * @param el - Element\n *\n * @return Element offset\n */\nexport function getElementOffset(el: HTMLElement): ElementOffset {\n return {\n x: el.scrollLeft,\n y: el.scrollTop\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element offset\n *\n * @param el - Element\n *\n * @return Element offset observable\n */\nexport function watchElementOffset(\n el: HTMLElement\n): Observable {\n return merge(\n fromEvent(el, \"scroll\"),\n fromEvent(window, \"resize\")\n )\n .pipe(\n map(() => getElementOffset(el)),\n startWith(getElementOffset(el)),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set element text selection\n *\n * @param el - Element\n */\nexport function setElementSelection(\n el: HTMLElement\n): void {\n if (el instanceof HTMLInputElement)\n el.select()\n else\n throw new Error(\"Not implemented\")\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport ResizeObserver from \"resize-observer-polyfill\"\nimport { Observable, fromEventPattern } from \"rxjs\"\nimport { shareReplay, startWith } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Element offset\n */\nexport interface ElementSize {\n width: number /* Element width */\n height: number /* Element height */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve element size\n *\n * @param el - Element\n *\n * @return Element size\n */\nexport function getElementSize(el: HTMLElement): ElementSize {\n return {\n width: el.offsetWidth,\n height: el.offsetHeight\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element size\n *\n * @param el - Element\n *\n * @return Element size observable\n */\nexport function watchElementSize(\n el: HTMLElement\n): Observable {\n return fromEventPattern(next => {\n new ResizeObserver(([{ contentRect }]) => next({\n width: Math.round(contentRect.width),\n height: Math.round(contentRect.height)\n }))\n .observe(el)\n })\n .pipe(\n startWith(getElementSize(el)),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent } from \"rxjs\"\nimport { filter, map, share } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Key\n */\nexport interface Key {\n type: string /* Key type */\n claim(): void /* Key claim */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Check whether an element may receive keyboard input\n *\n * @param el - Element\n *\n * @return Test result\n */\nexport function isSusceptibleToKeyboard(el: HTMLElement): boolean {\n switch (el.tagName) {\n\n /* Form elements */\n case \"INPUT\":\n case \"SELECT\":\n case \"TEXTAREA\":\n return true\n\n /* Everything else */\n default:\n return el.isContentEditable\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch keyboard\n *\n * @return Keyboard observable\n */\nexport function watchKeyboard(): Observable {\n return fromEvent(window, \"keydown\")\n .pipe(\n filter(ev => !(ev.metaKey || ev.ctrlKey)),\n map(ev => ({\n type: ev.key,\n claim() {\n ev.preventDefault()\n ev.stopPropagation()\n }\n })),\n share()\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { BehaviorSubject, Subject } from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve location\n *\n * This function will return a `URL` object (and not `Location`) in order to\n * normalize typings across the application. Furthermore, locations need to be\n * tracked without setting them and `Location` is a singleton which represents\n * the current location.\n *\n * @return URL\n */\nexport function getLocation(): URL {\n return new URL(location.href)\n}\n\n/**\n * Set location\n *\n * @param url - URL to change to\n */\nexport function setLocation(url: URL): void {\n location.href = url.href\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Check whether a URL is a local link or a file (except `.html`)\n *\n * @param url - URL or HTML anchor element\n * @param ref - Reference URL\n *\n * @return Test result\n */\nexport function isLocalLocation(\n url: URL | HTMLAnchorElement,\n ref: URL | Location = location\n): boolean {\n return url.host === ref.host\n && /^(?:\\/[\\w-]+)*(?:\\/?|\\.html)$/i.test(url.pathname)\n}\n\n/**\n * Check whether a URL is an anchor link on the current page\n *\n * @param url - URL or HTML anchor element\n * @param ref - Reference URL\n *\n * @return Test result\n */\nexport function isAnchorLocation(\n url: URL | HTMLAnchorElement,\n ref: URL | Location = location\n): boolean {\n return url.pathname === ref.pathname\n && url.hash.length > 0\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch location\n *\n * @return Location subject\n */\nexport function watchLocation(): Subject {\n return new BehaviorSubject(getLocation())\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable } from \"rxjs\"\nimport { map, shareReplay, take } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n location$: Observable /* Location observable */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch location base\n *\n * @return Location base observable\n */\nexport function watchLocationBase(\n base: string, { location$ }: WatchOptions\n): Observable {\n return location$\n .pipe(\n take(1),\n map(({ href }) => new URL(base, href)\n .toString()\n .replace(/\\/$/, \"\")\n ),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent } from \"rxjs\"\nimport { filter, map, share, startWith } from \"rxjs/operators\"\n\nimport { createElement } from \"browser\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve location hash\n *\n * @return Location hash\n */\nexport function getLocationHash(): string {\n return location.hash.substring(1)\n}\n\n/**\n * Set location hash\n *\n * Setting a new fragment identifier via `location.hash` will have no effect\n * if the value doesn't change. When a new fragment identifier is set, we want\n * the browser to target the respective element at all times, which is why we\n * use this dirty little trick.\n *\n * @param hash - Location hash\n */\nexport function setLocationHash(hash: string): void {\n const el = createElement(\"a\")\n el.href = hash\n el.addEventListener(\"click\", ev => ev.stopPropagation())\n el.click()\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch location hash\n *\n * @return Location hash observable\n */\nexport function watchLocationHash(): Observable {\n return fromEvent(window, \"hashchange\")\n .pipe(\n map(getLocationHash),\n startWith(getLocationHash()),\n filter(hash => hash.length > 0),\n share()\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEventPattern } from \"rxjs\"\nimport { shareReplay, startWith } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch media query\n *\n * @param query - Media query\n *\n * @return Media observable\n */\nexport function watchMedia(query: string): Observable {\n const media = matchMedia(query)\n return fromEventPattern(next =>\n media.addListener(() => next(media.matches))\n )\n .pipe(\n startWith(media.matches),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent } from \"rxjs\"\nimport { map, startWith } from \"rxjs/operators\"\n\nimport { getElementOrThrow } from \"../element\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Toggle\n */\nexport type Toggle =\n | \"drawer\" /* Toggle for drawer */\n | \"search\" /* Toggle for search */\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Toggle map\n */\nconst toggles: Record = {\n drawer: getElementOrThrow(`[data-md-toggle=drawer]`),\n search: getElementOrThrow(`[data-md-toggle=search]`)\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve the value of a toggle\n *\n * @param name - Toggle\n *\n * @return Toggle value\n */\nexport function getToggle(name: Toggle): boolean {\n return toggles[name].checked\n}\n\n/**\n * Set toggle\n *\n * Simulating a click event seems to be the most cross-browser compatible way\n * of changing the value while also emitting a `change` event. Before, Material\n * used `CustomEvent` to programmatically change the value of a toggle, but this\n * is a much simpler and cleaner solution which doesn't require a polyfill.\n *\n * @param name - Toggle\n * @param value - Toggle value\n */\nexport function setToggle(name: Toggle, value: boolean): void {\n if (toggles[name].checked !== value)\n toggles[name].click()\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch toggle\n *\n * @param name - Toggle\n *\n * @return Toggle value observable\n */\nexport function watchToggle(name: Toggle): Observable {\n const el = toggles[name]\n return fromEvent(el, \"change\")\n .pipe(\n map(() => el.checked),\n startWith(el.checked)\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent, merge } from \"rxjs\"\nimport { map, startWith } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Viewport offset\n */\nexport interface ViewportOffset {\n x: number /* Horizontal offset */\n y: number /* Vertical offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve viewport offset\n *\n * On iOS Safari, viewport offset can be negative due to overflow scrolling.\n * As this may induce strange behaviors downstream, we'll just limit it to 0.\n *\n * @return Viewport offset\n */\nexport function getViewportOffset(): ViewportOffset {\n return {\n x: Math.max(0, pageXOffset),\n y: Math.max(0, pageYOffset)\n }\n}\n\n/**\n * Set viewport offset\n *\n * @param offset - Viewport offset\n */\nexport function setViewportOffset(\n { x, y }: Partial\n): void {\n window.scrollTo(x || 0, y || 0)\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport offset\n *\n * @return Viewport offset observable\n */\nexport function watchViewportOffset(): Observable {\n return merge(\n fromEvent(window, \"scroll\", { passive: true }),\n fromEvent(window, \"resize\", { passive: true })\n )\n .pipe(\n map(getViewportOffset),\n startWith(getViewportOffset())\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent } from \"rxjs\"\nimport { map, startWith } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Viewport size\n */\nexport interface ViewportSize {\n width: number /* Viewport width */\n height: number /* Viewport height */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve viewport size\n *\n * @return Viewport size\n */\nexport function getViewportSize(): ViewportSize {\n return {\n width: innerWidth,\n height: innerHeight\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport size\n *\n * @return Viewport size observable\n */\nexport function watchViewportSize(): Observable {\n return fromEvent(window, \"resize\", { passive: true })\n .pipe(\n map(getViewportSize),\n startWith(getViewportSize())\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, combineLatest } from \"rxjs\"\nimport {\n distinctUntilKeyChanged,\n map,\n shareReplay\n} from \"rxjs/operators\"\n\nimport { Header } from \"components\"\n\nimport {\n ViewportOffset,\n watchViewportOffset\n} from \"../offset\"\nimport {\n ViewportSize,\n watchViewportSize\n} from \"../size\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Viewport\n */\nexport interface Viewport {\n offset: ViewportOffset /* Viewport offset */\n size: ViewportSize /* Viewport size */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch at options\n */\ninterface WatchAtOptions {\n header$: Observable
    /* Header observable */\n viewport$: Observable /* Viewport observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport\n *\n * @return Viewport observable\n */\nexport function watchViewport(): Observable {\n return combineLatest([\n watchViewportOffset(),\n watchViewportSize()\n ])\n .pipe(\n map(([offset, size]) => ({ offset, size })),\n shareReplay(1)\n )\n}\n\n/**\n * Watch viewport relative to element\n *\n * @param el - Element\n * @param options - Options\n *\n * @return Viewport observable\n */\nexport function watchViewportAt(\n el: HTMLElement, { header$, viewport$ }: WatchAtOptions\n): Observable {\n const size$ = viewport$\n .pipe(\n distinctUntilKeyChanged(\"size\")\n )\n\n /* Compute element offset */\n const offset$ = combineLatest([size$, header$])\n .pipe(\n map((): ViewportOffset => ({\n x: el.offsetLeft,\n y: el.offsetTop\n }))\n )\n\n /* Compute relative viewport, return hot observable */\n return combineLatest([header$, viewport$, offset$])\n .pipe(\n map(([{ height }, { offset, size }, { x, y }]) => ({\n offset: {\n x: offset.x - x,\n y: offset.y - y + height\n },\n size\n })),\n shareReplay(1)\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, Subject, fromEventPattern } from \"rxjs\"\nimport {\n pluck,\n share,\n switchMapTo,\n tap,\n throttle\n} from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Worker message\n */\nexport interface WorkerMessage {\n type: unknown /* Message type */\n data?: unknown /* Message data */\n}\n\n/**\n * Worker handler\n *\n * @template T - Message type\n */\nexport interface WorkerHandler<\n T extends WorkerMessage\n> {\n tx$: Subject /* Message transmission subject */\n rx$: Observable /* Message receive observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n *\n * @template T - Worker message type\n */\ninterface WatchOptions {\n tx$: Observable /* Message transmission observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch a web worker\n *\n * This function returns an observable that will send all values emitted by the\n * message observable to the web worker. Web worker communication is expected\n * to be bidirectional (request-response) and synchronous. Messages that are\n * emitted during a pending request are throttled, the last one is emitted.\n *\n * @param worker - Web worker\n * @param options - Options\n *\n * @return Worker message observable\n */\nexport function watchWorker(\n worker: Worker, { tx$ }: WatchOptions\n): Observable {\n\n /* Intercept messages from worker-like objects */\n const rx$ = fromEventPattern(next =>\n worker.addEventListener(\"message\", next)\n )\n .pipe(\n pluck(\"data\")\n )\n\n /* Send and receive messages, return hot observable */\n return tx$\n .pipe(\n throttle(() => rx$, { leading: true, trailing: true }),\n tap(message => worker.postMessage(message)),\n switchMapTo(rx$),\n share()\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SearchIndex, SearchTransformFn } from \"integrations\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Feature flags\n */\nexport type Feature =\n | \"tabs\" /* Tabs navigation */\n | \"instant\" /* Instant loading\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Configuration\n */\nexport interface Config {\n base: string /* Base URL */\n features: Feature[] /* Feature flags */\n search: {\n worker: string /* Worker URL */\n index?: Promise /* Promise resolving with index */\n transform?: SearchTransformFn /* Transformation function */\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Ensure that the given value is a valid configuration\n *\n * We could use `jsonschema` or any other schema validation framework, but that\n * would just add more bloat to the bundle, so we'll keep it plain and simple.\n *\n * @param config - Configuration\n *\n * @return Test result\n */\nexport function isConfig(config: any): config is Config {\n return typeof config === \"object\"\n && typeof config.base === \"string\"\n && typeof config.features === \"object\"\n && typeof config.search === \"object\"\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n// tslint:disable no-null-keyword\n\nimport { JSX as JSXInternal } from \"preact\"\nimport { keys } from \"ramda\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * HTML and SVG attributes\n */\ntype Attributes =\n & JSXInternal.HTMLAttributes\n & JSXInternal.SVGAttributes\n & Record\n\n/**\n * Child element\n */\ntype Child =\n | HTMLElement\n | SVGElement\n | Text\n | string\n | number\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create an element\n *\n * @param tagName - HTML or SVG tag\n *\n * @return Element\n */\nfunction createElement(tagName: string): HTMLElement | SVGElement {\n switch (tagName) {\n\n /* SVG elements */\n case \"svg\":\n case \"path\":\n return document.createElementNS(\"http://www.w3.org/2000/svg\", tagName)\n\n /* HTML elements */\n default:\n return document.createElement(tagName)\n }\n}\n\n/**\n * Set an attribute\n *\n * @param el - Element\n * @param name - Attribute name\n * @param value - Attribute value\n */\nfunction setAttribute(\n el: HTMLElement | SVGElement, name: string, value: string) {\n switch (name) {\n\n /* Attributes to be ignored */\n case \"xmlns\":\n break\n\n /* Attributes of SVG elements */\n case \"viewBox\":\n case \"d\":\n if (typeof value !== \"boolean\")\n el.setAttributeNS(null, name, value)\n else if (value)\n el.setAttributeNS(null, name, \"\")\n break\n\n /* Attributes of HTML elements */\n default:\n if (typeof value !== \"boolean\")\n el.setAttribute(name, value)\n else if (value)\n el.setAttribute(name, \"\")\n }\n}\n\n/**\n * Append a child node to an element\n *\n * @param el - Element\n * @param child - Child node(s)\n */\nfunction appendChild(\n el: HTMLElement | SVGElement, child: Child | Child[]\n): void {\n\n /* Handle primitive types (including raw HTML) */\n if (typeof child === \"string\" || typeof child === \"number\") {\n el.innerHTML += child.toString()\n\n /* Handle nodes */\n } else if (child instanceof Node) {\n el.appendChild(child)\n\n /* Handle nested children */\n } else if (Array.isArray(child)) {\n for (const node of child)\n appendChild(el, node)\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * JSX factory\n *\n * @param tagName - HTML or SVG tag\n * @param attributes - HTML attributes\n * @param children - Child elements\n *\n * @return Element\n */\nexport function h(\n tagName: string, attributes: Attributes | null, ...children: Child[]\n): HTMLElement | SVGElement {\n const el = createElement(tagName)\n\n /* Set attributes, if any */\n if (attributes)\n for (const attr of keys(attributes))\n setAttribute(el, attr, attributes[attr])\n\n /* Append child nodes */\n for (const child of children)\n appendChild(el, child)\n\n /* Return element */\n return el\n}\n\n/* ----------------------------------------------------------------------------\n * Namespace\n * ------------------------------------------------------------------------- */\n\nexport declare namespace h {\n namespace JSX {\n type Element = HTMLElement | SVGElement\n type IntrinsicElements = JSXInternal.IntrinsicElements\n }\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, defer, of } from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Cache the last value emitted by an observable in session storage\n *\n * If the key is not found in session storage, the factory is executed and the\n * latest value emitted will automatically be persisted to sessions storage.\n * Note that the values emitted by the returned observable must be serializable\n * as `JSON`, or data will be lost.\n *\n * @template T - Value type\n *\n * @param key - Cache key\n * @param factory - Observable factory\n *\n * @return Value observable\n */\nexport function cache(\n key: string, factory: () => Observable\n): Observable {\n return defer(() => {\n const data = sessionStorage.getItem(key)\n if (data) {\n return of(JSON.parse(data) as T)\n\n /* Retrieve value from observable factory and write to storage */\n } else {\n const value$ = factory()\n value$.subscribe(value => {\n try {\n sessionStorage.setItem(key, JSON.stringify(value))\n } catch (err) {\n /* Uncritical, just swallow */\n }\n })\n\n /* Return value */\n return value$\n }\n })\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { getElementOrThrow } from \"browser\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Translation keys\n */\ntype TranslateKey =\n | \"clipboard.copy\" /* Copy to clipboard */\n | \"clipboard.copied\" /* Copied to clipboard */\n | \"search.config.lang\" /* Search language */\n | \"search.config.pipeline\" /* Search pipeline */\n | \"search.config.separator\" /* Search separator */\n | \"search.result.placeholder\" /* Type to start searching */\n | \"search.result.none\" /* No matching documents */\n | \"search.result.one\" /* 1 matching document */\n | \"search.result.other\" /* # matching documents */\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Translations\n */\nlet lang: Record\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Translate the given key\n *\n * @param key - Key to be translated\n * @param value - Value to be replaced\n *\n * @return Translation\n */\nexport function translate(key: TranslateKey, value?: string): string {\n if (typeof lang === \"undefined\") {\n const el = getElementOrThrow(\"#__lang\")\n lang = JSON.parse(el.textContent!)\n }\n if (typeof lang[key] === \"undefined\") {\n throw new ReferenceError(`Invalid translation: ${key}`)\n }\n return typeof value !== \"undefined\"\n ? lang[key].replace(\"#\", value)\n : lang[key]\n}\n\n/**\n * Truncate a string after the given number of characters\n *\n * This is not a very reasonable approach, since the summaries kind of suck.\n * It would be better to create something more intelligent, highlighting the\n * search occurrences and making a better summary out of it, but this note was\n * written three years ago, so who knows if we'll ever fix it.\n *\n * @param value - Value to be truncated\n * @param n - Number of characters\n *\n * @return Truncated value\n */\nexport function truncate(value: string, n: number): string {\n let i = n\n if (value.length > i) {\n while (value[i] !== \" \" && --i > 0); // tslint:disable-line\n return `${value.substring(0, i)}...`\n }\n return value\n}\n\n/**\n * Round a number for display with source facts\n *\n * This is a reverse engineered version of GitHub's weird rounding algorithm\n * for stars, forks and all other numbers. While all numbers below `1,000` are\n * returned as-is, bigger numbers are converted to fixed numbers:\n *\n * - `1,049` => `1k`\n * - `1,050` => `1.1k`\n * - `1,949` => `1.9k`\n * - `1,950` => `2k`\n *\n * @param value - Original value\n *\n * @return Rounded value\n */\nexport function round(value: number): string {\n if (value > 999) {\n const digits = +((value - 950) % 1000 > 99)\n return `${((value + 0.000001) / 1000).toFixed(digits)}k`\n } else {\n return value.toString()\n }\n}\n\n/**\n * Simple hash function\n *\n * @see https://bit.ly/2wsVjJ4 - Original source\n *\n * @param value - Value to be hashed\n *\n * @return Hash as 32bit integer\n */\nexport function hash(value: string): number {\n let h = 0\n for (let i = 0, len = value.length; i < len; i++) {\n h = ((h << 5) - h) + value.charCodeAt(i)\n h |= 0 // Convert to 32bit integer\n }\n return h\n }\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nexport * from \"./_\"\nexport * from \"./header\"\nexport * from \"./hero\"\nexport * from \"./main\"\nexport * from \"./navigation\"\nexport * from \"./search\"\nexport * from \"./shared\"\nexport * from \"./tabs\"\nexport * from \"./toc\"\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport * as ClipboardJS from \"clipboard\"\nimport { NEVER, Observable, Subject, fromEventPattern } from \"rxjs\"\nimport { mapTo, share, tap } from \"rxjs/operators\"\n\nimport { getElements } from \"browser\"\nimport { renderClipboardButton } from \"templates\"\nimport { translate } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Setup options\n */\ninterface SetupOptions {\n document$: Observable /* Document observable */\n dialog$: Subject /* Dialog subject */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up clipboard\n *\n * This function implements the Clipboard.js integration and injects a button\n * into all code blocks when the document changes.\n *\n * @param options - Options\n *\n * @return Clipboard observable\n */\nexport function setupClipboard(\n { document$, dialog$ }: SetupOptions\n): Observable {\n if (!ClipboardJS.isSupported())\n return NEVER\n\n /* Inject 'copy-to-clipboard' buttons */\n document$.subscribe(() => {\n const blocks = getElements(\"pre > code\")\n blocks.forEach((block, index) => {\n const parent = block.parentElement!\n parent.id = `__code_${index}`\n parent.insertBefore(renderClipboardButton(parent.id), block)\n })\n })\n\n /* Initialize clipboard */\n const clipboard$ = fromEventPattern(next => {\n new ClipboardJS(\".md-clipboard\").on(\"success\", next)\n })\n .pipe(\n share()\n )\n\n /* Display notification for clipboard event */\n clipboard$\n .pipe(\n tap(ev => ev.clearSelection()),\n mapTo(translate(\"clipboard.copied\"))\n )\n .subscribe(dialog$)\n\n /* Return clipboard */\n return clipboard$\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Subject, animationFrameScheduler, of } from \"rxjs\"\nimport {\n delay,\n map,\n observeOn,\n switchMap,\n tap\n} from \"rxjs/operators\"\n\nimport { createElement } from \"browser\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Setup options\n */\ninterface SetupOptions {\n duration?: number /* Display duration (default: 2s) */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up dialog\n *\n * @param options - Options\n *\n * @return Dialog observable\n */\nexport function setupDialog(\n { duration }: SetupOptions = {}\n): Subject {\n const dialog$ = new Subject()\n\n /* Create dialog */\n const dialog = createElement(\"div\") // TODO: improve scoping\n dialog.classList.add(\"md-dialog\", \"md-typeset\")\n\n /* Display dialog */\n dialog$\n .pipe(\n switchMap(text => of(document.body) // useComponent(\"container\")\n .pipe(\n map(container => container.appendChild(dialog)),\n observeOn(animationFrameScheduler),\n delay(1), // Strangley it doesnt work when we push things to the new animation frame...\n tap(el => {\n el.innerHTML = text\n el.setAttribute(\"data-md-state\", \"open\")\n }),\n delay(duration || 2000),\n tap(el => el.removeAttribute(\"data-md-state\")),\n delay(400),\n tap(el => {\n el.innerHTML = \"\"\n el.remove()\n })\n )\n )\n )\n .subscribe()\n\n /* Return dialog */\n return dialog$\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { NEVER, Observable, Subject, fromEvent, merge, of } from \"rxjs\"\nimport { ajax } from \"rxjs//ajax\"\nimport {\n bufferCount,\n catchError,\n debounceTime,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n filter,\n map,\n pluck,\n sample,\n share,\n skip,\n switchMap,\n withLatestFrom\n} from \"rxjs/operators\"\n\nimport {\n Viewport,\n ViewportOffset,\n getElement,\n isAnchorLocation,\n isLocalLocation,\n replaceElement,\n setLocation,\n setLocationHash,\n setToggle,\n setViewportOffset\n} from \"browser\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * History state\n */\ninterface State {\n url: URL /* State URL */\n offset?: ViewportOffset /* State viewport offset */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Setup options\n */\ninterface SetupOptions {\n document$: Subject /* Document subject */\n location$: Subject /* Location subject */\n viewport$: Observable /* Viewport observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up instant loading\n *\n * When fetching, theoretically, we could use `responseType: \"document\"`, but\n * since all MkDocs links are relative, we need to make sure that the current\n * location matches the document we just loaded. Otherwise any relative links\n * in the document could use the old location.\n *\n * This is the reason why we need to synchronize history events and the process\n * of fetching the document for navigation changes (except `popstate` events):\n *\n * 1. Fetch document via `XMLHTTPRequest`\n * 2. Set new location via `history.pushState`\n * 3. Parse and emit fetched document\n *\n * For `popstate` events, we must not use `history.pushState`, or the forward\n * history will be irreversibly overwritten. In case the request fails, the\n * location change is dispatched regularly.\n *\n * @param options - Options\n */\nexport function setupInstantLoading(\n { document$, viewport$, location$ }: SetupOptions\n): void {\n\n /* Disable automatic scroll restoration */\n if (\"scrollRestoration\" in history)\n history.scrollRestoration = \"manual\"\n\n /* Hack: ensure that reloads restore viewport offset */\n fromEvent(window, \"beforeunload\")\n .subscribe(() => {\n history.scrollRestoration = \"auto\"\n })\n\n /* Hack: ensure absolute favicon link to omit 404s on document switch */\n const favicon = getElement(`link[rel=\"shortcut icon\"]`)\n if (typeof favicon !== \"undefined\")\n favicon.href = favicon.href // tslint:disable-line no-self-assignment\n\n /* Intercept link clicks and convert to state change */\n const state$ = fromEvent(document.body, \"click\")\n .pipe(\n filter(ev => !(ev.metaKey || ev.ctrlKey)),\n switchMap(ev => {\n if (ev.target instanceof HTMLElement) {\n const el = ev.target.closest(\"a\")\n if (el && !el.target && isLocalLocation(el)) {\n if (!isAnchorLocation(el))\n ev.preventDefault()\n return of(el)\n }\n }\n return NEVER\n }),\n map(el => ({ url: new URL(el.href) })),\n share()\n )\n\n /* Always close search on link click */\n state$.subscribe(() => {\n setToggle(\"search\", false)\n })\n\n /* Filter state changes to dispatch */\n const push$ = state$\n .pipe(\n filter(({ url }) => !isAnchorLocation(url)),\n share()\n )\n\n /* Intercept popstate events (history back and forward) */\n const pop$ = fromEvent(window, \"popstate\")\n .pipe(\n filter(ev => ev.state !== null),\n map(ev => ({\n url: new URL(location.href),\n offset: ev.state\n })),\n share()\n )\n\n /* Emit location change */\n merge(push$, pop$)\n .pipe(\n distinctUntilChanged((prev, next) => prev.url.href === next.url.href),\n pluck(\"url\")\n )\n .subscribe(location$)\n\n /* Fetch document on location change */\n const ajax$ = location$\n .pipe(\n distinctUntilKeyChanged(\"pathname\"),\n skip(1),\n switchMap(url => ajax({\n url: url.href,\n responseType: \"text\",\n withCredentials: true\n })\n .pipe(\n catchError(() => {\n setLocation(url)\n return NEVER\n })\n )\n )\n )\n\n /* Set new location as soon as the document was fetched */\n push$\n .pipe(\n sample(ajax$)\n )\n .subscribe(({ url }) => {\n history.pushState({}, \"\", url.toString())\n })\n\n /* Parse and emit document */\n const dom = new DOMParser()\n ajax$\n .pipe(\n map(({ response }) => dom.parseFromString(response, \"text/html\"))\n )\n .subscribe(document$)\n\n /* Intercept instant loading */\n const instant$ = merge(push$, pop$)\n .pipe(\n sample(document$)\n )\n\n // TODO: this must be combined with search scroll restoration on mobile\n instant$.subscribe(({ url, offset }) => {\n if (url.hash && !offset) {\n setLocationHash(url.hash)\n } else {\n setViewportOffset(offset || { y: 0 })\n }\n })\n\n /* Replace document metadata */\n instant$\n .pipe(\n withLatestFrom(document$)\n )\n .subscribe(([, { title, head }]) => {\n document.dispatchEvent(new CustomEvent(\"DOMContentSwitch\"))\n document.title = title\n\n /* Replace meta tags */\n for (const selector of [\n `link[rel=\"canonical\"]`,\n `meta[name=\"author\"]`,\n `meta[name=\"description\"]`\n ]) {\n const next = getElement(selector, head)\n const prev = getElement(selector, document.head)\n if (\n typeof next !== \"undefined\" &&\n typeof prev !== \"undefined\"\n ) {\n replaceElement(prev, next)\n }\n }\n })\n\n /* Debounce update of viewport offset */\n viewport$\n .pipe(\n debounceTime(250),\n distinctUntilKeyChanged(\"offset\")\n )\n .subscribe(({ offset }) => {\n history.replaceState(offset, \"\")\n })\n\n /* Set viewport offset from history */\n merge(state$, pop$)\n .pipe(\n bufferCount(2, 1),\n filter(([prev, next]) => {\n return prev.url.pathname === next.url.pathname\n && !isAnchorLocation(next.url)\n }),\n map(([, state]) => state)\n )\n .subscribe(({ offset }) => {\n setViewportOffset(offset || { y: 0 })\n })\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable } from \"rxjs\"\nimport {\n filter,\n map,\n share,\n withLatestFrom\n} from \"rxjs/operators\"\n\nimport {\n Key,\n getActiveElement,\n getElement,\n getElements,\n getToggle,\n isSusceptibleToKeyboard,\n setElementFocus,\n setElementSelection,\n setToggle,\n watchKeyboard\n} from \"browser\"\nimport { useComponent } from \"components\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Keyboard mode\n */\nexport type KeyboardMode =\n | \"global\" /* Global */\n | \"search\" /* Search is open */\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Keyboard\n */\nexport interface Keyboard extends Key {\n mode: KeyboardMode /* Keyboard mode */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up keyboard\n *\n * This function will set up the keyboard handlers and ensure that keys are\n * correctly propagated. Currently there are two modes:\n *\n * - `global`: This mode is active when the search is closed. It is intended\n * to assign hotkeys to specific functions of the site. Currently the search,\n * previous and next page can be triggered.\n *\n * - `search`: This mode is active when the search is open. It maps certain\n * navigational keys to offer search results that can be entirely navigated\n * through keyboard input.\n *\n * The keyboard observable is returned and can be used to monitor the keyboard\n * in order toassign further hotkeys to custom functions.\n *\n * @return Keyboard observable\n */\nexport function setupKeyboard(): Observable {\n const keyboard$ = watchKeyboard()\n .pipe(\n map(key => ({\n mode: getToggle(\"search\") ? \"search\" : \"global\",\n ...key\n })),\n filter(({ mode }) => {\n if (mode === \"global\") {\n const active = getActiveElement()\n if (typeof active !== \"undefined\")\n return !isSusceptibleToKeyboard(active)\n }\n return true\n }),\n share()\n )\n\n /* Set up search keyboard handlers */\n keyboard$\n .pipe(\n filter(({ mode }) => mode === \"search\"),\n withLatestFrom(\n useComponent(\"search-query\"),\n useComponent(\"search-result\")\n )\n )\n .subscribe(([key, query, result]) => {\n const active = getActiveElement()\n switch (key.type) {\n\n /* Enter: prevent form submission */\n case \"Enter\":\n if (active === query)\n key.claim()\n break\n\n /* Escape or Tab: close search */\n case \"Escape\":\n case \"Tab\":\n setToggle(\"search\", false)\n setElementFocus(query, false)\n break\n\n /* Vertical arrows: select previous or next search result */\n case \"ArrowUp\":\n case \"ArrowDown\":\n if (typeof active === \"undefined\") {\n setElementFocus(query)\n } else {\n const els = [query, ...getElements(\"[href]\", result)]\n const i = Math.max(0, (\n Math.max(0, els.indexOf(active)) + els.length + (\n key.type === \"ArrowUp\" ? -1 : +1\n )\n ) % els.length)\n setElementFocus(els[i])\n }\n\n /* Prevent scrolling of page */\n key.claim()\n break\n\n /* All other keys: hand to search query */\n default:\n if (query !== getActiveElement())\n setElementFocus(query)\n }\n })\n\n /* Set up global keyboard handlers */\n keyboard$\n .pipe(\n filter(({ mode }) => mode === \"global\"),\n withLatestFrom(useComponent(\"search-query\"))\n )\n .subscribe(([key, query]) => {\n switch (key.type) {\n\n /* Open search and select query */\n case \"f\":\n case \"s\":\n case \"/\":\n setElementFocus(query)\n setElementSelection(query)\n key.claim()\n break\n\n /* Go to previous page */\n case \"p\":\n case \",\":\n const prev = getElement(\"[href][rel=prev]\")\n if (typeof prev !== \"undefined\")\n prev.click()\n break\n\n /* Go to next page */\n case \"n\":\n case \".\":\n const next = getElement(\"[href][rel=next]\")\n if (typeof next !== \"undefined\")\n next.click()\n break\n }\n })\n\n /* Return keyboard */\n return keyboard$\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { EMPTY, Observable, of } from \"rxjs\"\nimport {\n distinctUntilChanged,\n map,\n scan,\n shareReplay,\n switchMap\n} from \"rxjs/operators\"\n\nimport { getElement, replaceElement } from \"browser\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Component\n */\nexport type Component =\n | \"announce\" /* Announcement bar */\n | \"container\" /* Container */\n | \"header\" /* Header */\n | \"header-title\" /* Header title */\n | \"hero\" /* Hero */\n | \"main\" /* Main area */\n | \"navigation\" /* Navigation */\n | \"search\" /* Search */\n | \"search-query\" /* Search input */\n | \"search-reset\" /* Search reset */\n | \"search-result\" /* Search results */\n | \"skip\" /* Skip link */\n | \"tabs\" /* Tabs */\n | \"toc\" /* Table of contents */\n\n/**\n * Component map\n */\nexport type ComponentMap = {\n [P in Component]?: HTMLElement\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n document$: Observable /* Document observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Component map observable\n */\nlet components$: Observable\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up bindings to components with given names\n *\n * This function will maintain bindings to the elements identified by the given\n * names in-between document switches and update the elements in-place.\n *\n * @param names - Component names\n * @param options - Options\n */\nexport function setupComponents(\n names: Component[], { document$ }: WatchOptions\n): void {\n components$ = document$\n .pipe(\n\n /* Build component map */\n map(document => names.reduce((components, name) => {\n const el = getElement(`[data-md-component=${name}]`, document)\n return {\n ...components,\n ...typeof el !== \"undefined\" ? { [name]: el } : {}\n }\n }, {})),\n\n /* Re-compute component map on document switch */\n scan((prev, next) => {\n for (const name of names) {\n switch (name) {\n\n /* Top-level components: update */\n case \"announce\":\n case \"header-title\":\n case \"container\":\n case \"skip\":\n if (name in prev && typeof prev[name] !== \"undefined\") {\n replaceElement(prev[name]!, next[name]!)\n prev[name] = next[name]\n }\n break\n\n /* All other components: rebind */\n default:\n if (typeof next[name] !== \"undefined\")\n prev[name] = getElement(`[data-md-component=${name}]`)\n else\n delete prev[name]\n }\n }\n return prev\n }),\n\n /* Convert to hot observable */\n shareReplay(1)\n )\n}\n\n/**\n * Retrieve a component\n *\n * The returned observable will only re-emit if the element changed, i.e. if\n * it was replaced from a document which was switched to.\n *\n * @template T - Element type\n *\n * @param name - Component name\n *\n * @return Component observable\n */\nexport function useComponent(\n name: \"search-query\"\n): Observable\nexport function useComponent(\n name: Component\n): Observable\nexport function useComponent(\n name: Component\n): Observable {\n return components$\n .pipe(\n switchMap(components => (\n typeof components[name] !== \"undefined\"\n ? of(components[name] as T)\n : EMPTY\n )),\n distinctUntilChanged()\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set anchor blur\n *\n * @param el - Anchor element\n * @param value - Whether the anchor is blurred\n */\nexport function setAnchorBlur(\n el: HTMLElement, value: boolean\n): void {\n el.setAttribute(\"data-md-state\", value ? \"blur\" : \"\")\n}\n\n/**\n * Reset anchor blur\n *\n * @param el - Anchor element\n */\nexport function resetAnchorBlur(\n el: HTMLElement\n): void {\n el.removeAttribute(\"data-md-state\")\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Set anchor active\n *\n * @param el - Anchor element\n * @param value - Whether the anchor is active\n */\nexport function setAnchorActive(\n el: HTMLElement, value: boolean\n): void {\n el.classList.toggle(\"md-nav__link--active\", value)\n}\n\n/**\n * Reset anchor active\n *\n * @param el - Anchor element\n */\nexport function resetAnchorActive(\n el: HTMLElement\n): void {\n el.classList.remove(\"md-nav__link--active\")\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nexport * from \"./sidebar\"\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h, translate } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * CSS classes\n */\nconst css = {\n container: \"md-clipboard md-icon\"\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Path of `file-search-outline` icon\n */\nconst path =\n \"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 \" +\n \"21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a 'copy-to-clipboard' button\n *\n * @param id - Unique identifier\n *\n * @return Element\n */\nexport function renderClipboardButton(\n id: string\n) {\n return (\n code`}\n >\n \n \n \n \n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SearchResult } from \"integrations/search\"\nimport { h, truncate } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * CSS classes\n */\nconst css = {\n item: \"md-search-result__item\",\n link: \"md-search-result__link\",\n article: \"md-search-result__article md-search-result__article--document\",\n section: \"md-search-result__article\",\n title: \"md-search-result__title\",\n teaser: \"md-search-result__teaser\"\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Path of `content-copy` icon\n */\nconst path =\n \"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H13C12.59,21.75 12.2,21.44 \" +\n \"11.86,21.1C11.53,20.77 11.25,20.4 11,20H6V4H13V9H18V10.18C18.71,10.34 \" +\n \"19.39,10.61 20,11V8L14,2M20.31,18.9C21.64,16.79 21,14 \" +\n \"18.91,12.68C16.8,11.35 14,12 12.69,14.08C11.35,16.19 12,18.97 \" +\n \"14.09,20.3C15.55,21.23 17.41,21.23 \" +\n \"18.88,20.32L22,23.39L23.39,22L20.31,18.9M16.5,19A2.5,2.5 0 0,1 \" +\n \"14,16.5A2.5,2.5 0 0,1 16.5,14A2.5,2.5 0 0,1 19,16.5A2.5,2.5 0 0,1 16.5,19Z\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a search result\n *\n * @param result - Search result\n *\n * @return Element\n */\nexport function renderSearchResult(\n { article, sections }: SearchResult\n) {\n\n /* Render icon */\n const icon = (\n
    \n \n \n \n
    \n )\n\n /* Render article and sections */\n const children = [article, ...sections].map(document => {\n const { location, title, text } = document\n return (\n \n
    \n {!(\"parent\" in document) && icon}\n

    {title}

    \n {text.length > 0 &&

    {truncate(text, 320)}

    }\n
    \n
    \n )\n })\n\n /* Render search result */\n return (\n
  • \n {children}\n
  • \n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SourceFacts } from \"patches/source\"\nimport { h } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * CSS classes\n */\nconst css = {\n facts: \"md-source__facts\",\n fact: \"md-source__fact\"\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render source facts\n *\n * @param facts - Source facts\n *\n * @return Element\n */\nexport function renderSource(\n facts: SourceFacts\n) {\n const children = facts.map(fact => (\n
  • {fact}
  • \n ))\n return (\n
      \n {children}\n
    \n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * CSS classes\n */\nconst css = {\n wrapper: \"md-typeset__scrollwrap\",\n table: \"md-typeset__table\"\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a table inside a wrapper to improve scrolling on mobile\n *\n * @param table - Table element\n *\n * @return Element\n */\nexport function renderTable(\n table: HTMLTableElement\n) {\n return (\n
    \n
    \n {table}\n
    \n
    \n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set sidebar offset\n *\n * @param el - Sidebar element\n * @param value - Sidebar offset\n */\nexport function setSidebarOffset(\n el: HTMLElement, value: number\n): void {\n el.style.top = `${value}px`\n}\n\n/**\n * Reset sidebar offset\n *\n * @param el - Sidebar element\n */\nexport function resetSidebarOffset(\n el: HTMLElement\n): void {\n el.style.top = \"\"\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Set sidebar height\n *\n * @param el - Sidebar element\n * @param value - Sidebar height\n */\nexport function setSidebarHeight(\n el: HTMLElement, value: number\n): void {\n el.style.height = `${value}px`\n}\n\n/**\n * Reset sidebar height\n *\n * @param el - Sidebar element\n */\nexport function resetSidebarHeight(\n el: HTMLElement\n): void {\n el.style.height = \"\"\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nexport * from \"./_\"\nexport * from \"./react\"\nexport * from \"./set\"\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n ArticleDocument,\n SearchDocumentMap,\n SectionDocument,\n setupSearchDocumentMap\n} from \"../document\"\nimport {\n SearchHighlightFactoryFn,\n setupSearchHighlighter\n} from \"../highlighter\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search index configuration\n */\nexport interface SearchIndexConfig {\n lang: string[] /* Search languages */\n separator: string /* Search separator */\n}\n\n/**\n * Search index document\n */\nexport interface SearchIndexDocument {\n location: string /* Document location */\n title: string /* Document title */\n text: string /* Document text */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search index pipeline function\n */\nexport type SearchIndexPipelineFn =\n | \"stemmer\" /* Stemmer */\n | \"stopWordFilter\" /* Stop word filter */\n | \"trimmer\" /* Trimmer */\n\n/**\n * Search index pipeline\n */\nexport type SearchIndexPipeline = SearchIndexPipelineFn[]\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search index\n *\n * This interfaces describes the format of the `search_index.json` file which\n * is automatically built by the MkDocs search plugin.\n */\nexport interface SearchIndex {\n config: SearchIndexConfig /* Search index configuration */\n docs: SearchIndexDocument[] /* Search index documents */\n index?: object | string /* Prebuilt or serialized index */\n pipeline?: SearchIndexPipeline /* Search index pipeline */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search result\n */\nexport interface SearchResult {\n article: ArticleDocument /* Article document */\n sections: SectionDocument[] /* Section documents */\n}\n\n/* ----------------------------------------------------------------------------\n * Class\n * ------------------------------------------------------------------------- */\n\n/**\n * Search\n *\n * Note that `lunr` is injected via Webpack, as it will otherwise also be\n * bundled in the application bundle.\n */\nexport class Search {\n\n /**\n * Search document mapping\n *\n * A mapping of URLs (including hash fragments) to the actual articles and\n * sections of the documentation. The search document mapping must be created\n * regardless of whether the index was prebuilt or not, as `lunr` itself will\n * only store the actual index.\n */\n protected documents: SearchDocumentMap\n\n /**\n * Search highlight factory function\n */\n protected highlight: SearchHighlightFactoryFn\n\n /**\n * The `lunr` search index\n */\n protected index: lunr.Index\n\n /**\n * Create the search integration\n *\n * @param data - Search index\n */\n public constructor({ config, docs, pipeline, index }: SearchIndex) {\n this.documents = setupSearchDocumentMap(docs)\n this.highlight = setupSearchHighlighter(config)\n\n /* If no index was given, create it */\n if (typeof index === \"undefined\") {\n this.index = lunr(function() {\n pipeline = pipeline || [\"trimmer\", \"stopWordFilter\"]\n\n /* Set up pipeline according to configuration */\n this.pipeline.reset()\n for (const fn of pipeline)\n this.pipeline.add(lunr[fn])\n\n /* Set up alternate search languages */\n if (config.lang.length === 1 && config.lang[0] !== \"en\") {\n this.use((lunr as any)[config.lang[0]])\n } else if (config.lang.length > 1) {\n this.use((lunr as any).multiLanguage(...config.lang))\n }\n\n /* Set up fields and reference */\n this.field(\"title\", { boost: 1000 })\n this.field(\"text\")\n this.ref(\"location\")\n\n /* Index documents */\n for (const doc of docs)\n this.add(doc)\n })\n\n /* Prebuilt or serialized index */\n } else {\n this.index = lunr.Index.load(\n typeof index === \"string\"\n ? JSON.parse(index)\n : index\n )\n }\n }\n\n /**\n * Search for matching documents\n *\n * The search index which MkDocs provides is divided up into articles, which\n * contain the whole content of the individual pages, and sections, which only\n * contain the contents of the subsections obtained by breaking the individual\n * pages up at `h1` ... `h6`. As there may be many sections on different pages\n * with identical titles (for example within this very project, e.g. \"Usage\"\n * or \"Installation\"), they need to be put into the context of the containing\n * page. For this reason, section results are grouped within their respective\n * articles which are the top-level results that are returned.\n *\n * @param value - Query value\n *\n * @return Search results\n */\n public query(value: string): SearchResult[] {\n if (value) {\n try {\n\n /* Group sections by containing article */\n const groups = this.index.search(value)\n .reduce((results, result) => {\n const document = this.documents.get(result.ref)\n if (typeof document !== \"undefined\") {\n if (\"parent\" in document) {\n const ref = document.parent.location\n results.set(ref, [...results.get(ref) || [], result])\n } else {\n const ref = document.location\n results.set(ref, results.get(ref) || [])\n }\n }\n return results\n }, new Map())\n\n /* Create highlighter for query */\n const fn = this.highlight(value)\n\n /* Map groups to search documents */\n return [...groups].map(([ref, sections]) => ({\n article: fn(this.documents.get(ref) as ArticleDocument),\n sections: sections.map(section => {\n return fn(this.documents.get(section.ref) as SectionDocument)\n })\n }))\n\n /* Log errors to console (for now) */\n } catch (err) {\n // tslint:disable-next-line no-console\n console.warn(`Invalid query: ${value} – see https://bit.ly/2s3ChXG`)\n }\n }\n\n /* Return nothing in case of error or empty query */\n return []\n }\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport * as escapeHTML from \"escape-html\"\n\nimport { SearchIndexDocument } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * A top-level article\n */\nexport interface ArticleDocument extends SearchIndexDocument {\n linked: boolean /* Whether the section was linked */\n}\n\n/**\n * A section of an article\n */\nexport interface SectionDocument extends SearchIndexDocument {\n parent: ArticleDocument /* Parent article */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search document\n */\nexport type SearchDocument =\n | ArticleDocument\n | SectionDocument\n\n/**\n * Search document mapping\n */\nexport type SearchDocumentMap = Map\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search document mapping\n *\n * @param docs - Search index documents\n *\n * @return Search document map\n */\nexport function setupSearchDocumentMap(\n docs: SearchIndexDocument[]\n): SearchDocumentMap {\n const documents = new Map()\n for (const doc of docs) {\n const [path, hash] = doc.location.split(\"#\")\n\n /* Extract location and title */\n const location = doc.location\n const title = doc.title\n\n /* Escape and cleanup text */\n const text = escapeHTML(doc.text)\n .replace(/\\s+(?=[,.:;!?])/g, \"\")\n .replace(/\\s+/g, \" \")\n\n /* Handle section */\n if (hash) {\n const parent = documents.get(path) as ArticleDocument\n\n /* Ignore first section, override article */\n if (!parent.linked) {\n parent.title = doc.title\n parent.text = text\n parent.linked = true\n\n /* Add subsequent section */\n } else {\n documents.set(location, {\n location,\n title,\n text,\n parent\n })\n }\n\n /* Add article */\n } else {\n documents.set(location, {\n location,\n title,\n text,\n linked: false\n })\n }\n }\n return documents\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SearchIndexConfig } from \"../_\"\nimport { SearchDocument } from \"../document\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search highlight function\n *\n * @template T - Search document type\n *\n * @param document - Search document\n *\n * @return Highlighted document\n */\nexport type SearchHighlightFn = <\n T extends SearchDocument\n>(document: Readonly) => T\n\n/**\n * Search highlight factory function\n *\n * @param value - Query value\n *\n * @return Search highlight function\n */\nexport type SearchHighlightFactoryFn = (value: string) => SearchHighlightFn\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search highlighter\n *\n * @param config - Search index configuration\n *\n * @return Search highlight factory function\n */\nexport function setupSearchHighlighter(\n config: SearchIndexConfig\n): SearchHighlightFactoryFn {\n const separator = new RegExp(config.separator, \"img\")\n const highlight = (_: unknown, data: string, term: string) => {\n return `${data}${term}`\n }\n\n /* Return factory function */\n return (value: string) => {\n value = value\n .replace(/[\\s*+-:~^]+/g, \" \")\n .trim()\n\n /* Create search term match expression */\n const match = new RegExp(`(^|${config.separator})(${\n value\n .replace(/[|\\\\{}()[\\]^$+*?.-]/g, \"\\\\$&\")\n .replace(separator, \"|\")\n })`, \"img\")\n\n /* Highlight document */\n return document => ({\n ...document,\n title: document.title.replace(match, highlight),\n text: document.text.replace(match, highlight)\n })\n }\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search transformation function\n *\n * @param value - Query value\n *\n * @return Transformed query value\n */\nexport type SearchTransformFn = (value: string) => string\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Default transformation function\n *\n * Rogue control characters are filtered before handing the query to the\n * search index, as `lunr` will throw otherwise.\n *\n * @param value - Query value\n *\n * @return Transformed query value\n */\nexport function defaultTransform(value: string): string {\n return value\n .replace(/(?:^|\\s+)[*+-:^~]+(?=\\s+|$)/g, \"\")\n .trim()\n .replace(/\\s+|\\b$/g, \"* \")\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SearchIndex, SearchResult } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search message type\n */\nexport const enum SearchMessageType {\n SETUP, /* Search index setup */\n READY, /* Search index ready */\n QUERY, /* Search query */\n RESULT /* Search results */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * A message containing the data necessary to setup the search index\n */\nexport interface SearchSetupMessage {\n type: SearchMessageType.SETUP /* Message type */\n data: SearchIndex /* Message data */\n}\n\n/**\n * A message indicating the search index is ready\n */\nexport interface SearchReadyMessage {\n type: SearchMessageType.READY /* Message type */\n}\n\n/**\n * A message containing a search query\n */\nexport interface SearchQueryMessage {\n type: SearchMessageType.QUERY /* Message type */\n data: string /* Message data */\n}\n\n/**\n * A message containing results for a search query\n */\nexport interface SearchResultMessage {\n type: SearchMessageType.RESULT /* Message type */\n data: SearchResult[] /* Message data */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * A message exchanged with the search worker\n */\nexport type SearchMessage =\n | SearchSetupMessage\n | SearchReadyMessage\n | SearchQueryMessage\n | SearchResultMessage\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Type guard for search setup messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchSetupMessage(\n message: SearchMessage\n): message is SearchSetupMessage {\n return message.type === SearchMessageType.SETUP\n}\n\n/**\n * Type guard for search ready messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchReadyMessage(\n message: SearchMessage\n): message is SearchReadyMessage {\n return message.type === SearchMessageType.READY\n}\n\n/**\n * Type guard for search query messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchQueryMessage(\n message: SearchMessage\n): message is SearchQueryMessage {\n return message.type === SearchMessageType.QUERY\n}\n\n/**\n * Type guard for search result messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchResultMessage(\n message: SearchMessage\n): message is SearchResultMessage {\n return message.type === SearchMessageType.RESULT\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { identity } from \"ramda\"\nimport { Observable, Subject, asyncScheduler } from \"rxjs\"\nimport {\n map,\n observeOn,\n shareReplay,\n withLatestFrom\n} from \"rxjs/operators\"\n\nimport { WorkerHandler, watchWorker } from \"browser\"\nimport { translate } from \"utilities\"\n\nimport { SearchIndex, SearchIndexPipeline } from \"../../_\"\nimport {\n SearchMessage,\n SearchMessageType,\n SearchSetupMessage,\n isSearchResultMessage\n} from \"../message\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Setup options\n */\ninterface SetupOptions {\n index$: Observable /* Search index observable */\n base$: Observable /* Location base observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up search index\n *\n * @param data - Search index\n *\n * @return Search index\n */\nfunction setupSearchIndex(\n { config, docs, index }: SearchIndex\n): SearchIndex {\n\n /* Override default language with value from translation */\n if (config.lang.length === 1 && config.lang[0] === \"en\")\n config.lang = [translate(\"search.config.lang\")]\n\n /* Override default separator with value from translation */\n if (config.separator === \"[\\s\\-]+\")\n config.separator = translate(\"search.config.separator\")\n\n /* Set pipeline from translation */\n const pipeline = translate(\"search.config.pipeline\")\n .split(/\\s*,\\s*/)\n .filter(identity) as SearchIndexPipeline\n\n /* Return search index after defaulting */\n return { config, docs, index, pipeline }\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up search web worker\n *\n * This function will create a web worker to set up and query the search index\n * which is done using `lunr`. The index must be passed as an observable to\n * enable hacks like _localsearch_ via search index embedding as JSON.\n *\n * @param url - Worker URL\n * @param options - Options\n *\n * @return Worker handler\n */\nexport function setupSearchWorker(\n url: string, { index$, base$ }: SetupOptions\n): WorkerHandler {\n const worker = new Worker(url)\n\n /* Create communication channels and resolve relative links */\n const tx$ = new Subject()\n const rx$ = watchWorker(worker, { tx$ })\n .pipe(\n withLatestFrom(base$),\n map(([message, base]) => {\n if (isSearchResultMessage(message)) {\n for (const { article, sections } of message.data) {\n article.location = `${base}/${article.location}`\n for (const section of sections)\n section.location = `${base}/${section.location}`\n }\n }\n return message\n }),\n shareReplay(1)\n )\n\n /* Set up search index */\n index$\n .pipe(\n map(index => ({\n type: SearchMessageType.SETUP,\n data: setupSearchIndex(index)\n })),\n observeOn(asyncScheduler)\n )\n .subscribe(tx$.next.bind(tx$))\n\n /* Return worker handler */\n return { tx$, rx$ }\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nexport * from \"./_\"\nexport * from \"./react\"\nexport * from \"./set\"\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n MonoTypeOperatorFunction,\n Observable,\n animationFrameScheduler,\n combineLatest,\n pipe\n} from \"rxjs\"\nimport {\n distinctUntilChanged,\n finalize,\n map,\n observeOn,\n tap,\n withLatestFrom\n} from \"rxjs/operators\"\n\nimport { Viewport } from \"browser\"\n\nimport { Header } from \"../../../header\"\nimport { Main } from \"../../../main\"\nimport { Sidebar } from \"../_\"\nimport {\n resetSidebarHeight,\n resetSidebarOffset,\n setSidebarHeight,\n setSidebarOffset\n} from \"../set\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n main$: Observable
    /* Main area observable */\n viewport$: Observable /* Viewport observable */\n}\n\n/**\n * Apply options\n */\ninterface ApplyOptions {\n header$: Observable
    /* Header observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch sidebar\n *\n * This function returns an observable that computes the visual parameters of\n * the sidebar which depends on the vertical viewport offset, as well as the\n * height of the main area. When the page is scrolled beyond the header, the\n * sidebar is locked and fills the remaining space.\n *\n * @param el - Sidebar element\n * @param options - Options\n *\n * @return Sidebar observable\n */\nexport function watchSidebar(\n el: HTMLElement, { main$, viewport$ }: WatchOptions\n): Observable {\n const adjust = el.parentElement!.offsetTop\n - el.parentElement!.parentElement!.offsetTop\n\n /* Compute the sidebar's available height and if it should be locked */\n return combineLatest([main$, viewport$])\n .pipe(\n map(([{ offset, height }, { offset: { y } }]) => {\n height = height\n + Math.min(adjust, Math.max(0, y - offset))\n - adjust\n return {\n height,\n lock: y >= offset + adjust\n }\n }),\n distinctUntilChanged((a, b) => {\n return a.height === b.height\n && a.lock === b.lock\n })\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Apply sidebar\n *\n * @param el - Sidebar element\n * @param options - Options\n *\n * @return Operator function\n */\nexport function applySidebar(\n el: HTMLElement, { header$ }: ApplyOptions\n): MonoTypeOperatorFunction {\n return pipe(\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n withLatestFrom(header$),\n tap(([{ height, lock }, { height: offset }]) => {\n setSidebarHeight(el, height)\n\n /* Set offset in locked state depending on header height */\n if (lock)\n setSidebarOffset(el, offset)\n else\n resetSidebarOffset(el)\n }),\n\n /* Re-map to sidebar */\n map(([sidebar]) => sidebar),\n\n /* Reset on complete or error */\n finalize(() => {\n resetSidebarOffset(el)\n resetSidebarHeight(el)\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nexport * from \"./_\"\nexport * from \"./anchor\"\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n OperatorFunction,\n combineLatest,\n of,\n pipe\n} from \"rxjs\"\nimport { map, switchMap } from \"rxjs/operators\"\n\nimport { Viewport, getElements } from \"browser\"\n\nimport { Header } from \"../../header\"\nimport { Main } from \"../../main\"\nimport {\n Sidebar,\n applySidebar,\n watchSidebar\n} from \"../../shared\"\nimport {\n AnchorList,\n applyAnchorList,\n watchAnchorList\n} from \"../anchor\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Table of contents for [tablet -]\n */\ninterface TableOfContentsBelowTablet {} // tslint:disable-line\n\n/**\n * Table of contents for [tablet +]\n */\ninterface TableOfContentsAboveTablet {\n sidebar: Sidebar /* Sidebar */\n anchors: AnchorList /* Anchor list */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Table of contents\n */\nexport type TableOfContents =\n | TableOfContentsBelowTablet\n | TableOfContentsAboveTablet\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n header$: Observable
    /* Header observable */\n main$: Observable
    /* Main area observable */\n viewport$: Observable /* Viewport observable */\n tablet$: Observable /* Tablet media observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount table of contents from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountTableOfContents(\n { header$, main$, viewport$, tablet$ }: MountOptions\n): OperatorFunction {\n return pipe(\n switchMap(el => tablet$\n .pipe(\n switchMap(tablet => {\n\n /* [tablet +]: Mount table of contents in sidebar */\n if (tablet) {\n const els = getElements(\".md-nav__link\", el)\n\n /* Watch and apply sidebar */\n const sidebar$ = watchSidebar(el, { main$, viewport$ })\n .pipe(\n applySidebar(el, { header$ })\n )\n\n /* Watch and apply anchor list (scroll spy) */\n const anchors$ = watchAnchorList(els, { header$, viewport$ })\n .pipe(\n applyAnchorList(els)\n )\n\n /* Combine into single hot observable */\n return combineLatest([sidebar$, anchors$])\n .pipe(\n map(([sidebar, anchors]) => ({ sidebar, anchors }))\n )\n\n /* [tablet -]: Unmount table of contents */\n } else {\n return of({})\n }\n })\n )\n )\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { reverse } from \"ramda\"\nimport {\n MonoTypeOperatorFunction,\n Observable,\n animationFrameScheduler,\n combineLatest,\n pipe\n} from \"rxjs\"\nimport {\n bufferCount,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n finalize,\n map,\n observeOn,\n scan,\n startWith,\n switchMap,\n tap\n} from \"rxjs/operators\"\n\nimport { Viewport, getElement, watchElementSize } from \"browser\"\n\nimport { Header } from \"../../../header\"\nimport { AnchorList } from \"../_\"\nimport {\n resetAnchorActive,\n resetAnchorBlur,\n setAnchorActive,\n setAnchorBlur\n} from \"../set\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n header$: Observable
    /* Header observable */\n viewport$: Observable /* Viewport observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch anchor list\n *\n * This is effectively a scroll-spy implementation which will account for the\n * fixed header and automatically re-calculate anchor offsets when the viewport\n * is resized. The returned observable will only emit if the anchor list needs\n * to be repainted.\n *\n * This implementation tracks an anchor element's entire path starting from its\n * level up to the top-most anchor element, e.g. `[h3, h2, h1]`. Although the\n * Material theme currently doesn't make use of this information, it enables\n * the styling of the entire hierarchy through customization.\n *\n * Note that the current anchor is the last item of the `prev` anchor list.\n *\n * @param els - Anchor elements\n * @param options - Options\n *\n * @return Anchor list observable\n */\nexport function watchAnchorList(\n els: HTMLAnchorElement[], { header$, viewport$ }: WatchOptions\n): Observable {\n const table = new Map()\n for (const el of els) {\n const id = decodeURIComponent(el.hash.substring(1))\n const target = getElement(`[id=\"${id}\"]`)\n if (typeof target !== \"undefined\")\n table.set(el, target)\n }\n\n /* Compute necessary adjustment for header */\n const adjust$ = header$\n .pipe(\n map(header => 18 + header.height)\n )\n\n /* Compute partition of previous and next anchors */\n const partition$ = watchElementSize(document.body)\n .pipe(\n distinctUntilKeyChanged(\"height\"),\n\n /* Build index to map anchor paths to vertical offsets */\n map(() => {\n let path: HTMLAnchorElement[] = []\n return [...table].reduce((index, [anchor, target]) => {\n while (path.length) {\n const last = table.get(path[path.length - 1])!\n if (last.tagName >= target.tagName) {\n path.pop()\n } else {\n break\n }\n }\n\n /* If the current anchor is hidden, continue with its parent */\n let offset = target.offsetTop\n while (!offset && target.parentElement) {\n target = target.parentElement\n offset = target.offsetTop\n }\n\n /* Map reversed anchor path to vertical offset */\n return index.set(\n reverse(path = [...path, anchor]),\n offset\n )\n }, new Map())\n }),\n\n /* Re-compute partition when viewport offset changes */\n switchMap(index => combineLatest([adjust$, viewport$])\n .pipe(\n scan(([prev, next], [adjust, { offset: { y } }]) => {\n\n /* Look forward */\n while (next.length) {\n const [, offset] = next[0]\n if (offset - adjust < y) {\n prev = [...prev, next.shift()!]\n } else {\n break\n }\n }\n\n /* Look backward */\n while (prev.length) {\n const [, offset] = prev[prev.length - 1]\n if (offset - adjust >= y) {\n next = [prev.pop()!, ...next]\n } else {\n break\n }\n }\n\n /* Return partition */\n return [prev, next]\n }, [[], [...index]]),\n distinctUntilChanged((a, b) => {\n return a[0] === b[0]\n && a[1] === b[1]\n })\n )\n )\n )\n\n /* Compute and return anchor list migrations */\n return partition$\n .pipe(\n map(([prev, next]) => ({\n prev: prev.map(([path]) => path),\n next: next.map(([path]) => path)\n })),\n\n /* Extract anchor list migrations */\n startWith({ prev: [], next: [] }),\n bufferCount(2, 1),\n map(([a, b]) => {\n\n /* Moving down */\n if (a.prev.length < b.prev.length) {\n return {\n prev: b.prev.slice(Math.max(0, a.prev.length - 1), b.prev.length),\n next: []\n }\n\n /* Moving up */\n } else {\n return {\n prev: b.prev.slice(-1),\n next: b.next.slice(0, b.next.length - a.next.length)\n }\n }\n })\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Apply anchor list\n *\n * @param els - Anchor elements\n *\n * @return Operator function\n */\nexport function applyAnchorList(\n els: HTMLAnchorElement[]\n): MonoTypeOperatorFunction {\n return pipe(\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n tap(({ prev, next }) => {\n\n /* Look forward */\n for (const [el] of next) {\n resetAnchorActive(el)\n resetAnchorBlur(el)\n }\n\n /* Look backward */\n prev.forEach(([el], index) => {\n setAnchorActive(el, index === prev.length - 1)\n setAnchorBlur(el, true)\n })\n }),\n\n /* Reset on complete or error */\n finalize(() => {\n for (const el of els) {\n resetAnchorActive(el)\n resetAnchorBlur(el)\n }\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, OperatorFunction, combineLatest, pipe } from \"rxjs\"\nimport {\n filter,\n map,\n mapTo,\n sample,\n startWith,\n switchMap,\n take\n} from \"rxjs/operators\"\n\nimport { WorkerHandler } from \"browser\"\nimport {\n SearchMessage,\n SearchResult,\n isSearchQueryMessage,\n isSearchReadyMessage\n} from \"integrations/search\"\n\nimport { SearchQuery } from \"../query\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search status\n */\nexport type SearchStatus =\n | \"waiting\" /* Search waiting for initialization */\n | \"ready\" /* Search ready */\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search\n */\nexport interface Search {\n status: SearchStatus /* Search status */\n query: SearchQuery /* Search query */\n result: SearchResult[] /* Search result list */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n query$: Observable /* Search query observable */\n reset$: Observable /* Search reset observable */\n result$: Observable /* Search result observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search from source observable\n *\n * @param handler - Worker handler\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountSearch(\n { rx$, tx$ }: WorkerHandler,\n { query$, reset$, result$ }: MountOptions\n): OperatorFunction {\n return pipe(\n switchMap(() => {\n\n /* Compute search status */\n const status$ = rx$\n .pipe(\n filter(isSearchReadyMessage),\n mapTo(\"ready\"),\n startWith(\"waiting\")\n ) as Observable\n\n /* Re-emit the latest query when search is ready */\n tx$\n .pipe(\n filter(isSearchQueryMessage),\n sample(status$),\n take(1)\n )\n .subscribe(tx$.next.bind(tx$))\n\n /* Combine into single observable */\n return combineLatest([status$, query$, result$, reset$])\n .pipe(\n map(([status, query, result]) => ({\n status,\n query,\n result\n }))\n )\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { OperatorFunction, pipe } from \"rxjs\"\nimport {\n distinctUntilKeyChanged,\n map,\n switchMap\n} from \"rxjs/operators\"\n\nimport { WorkerHandler, setToggle } from \"browser\"\nimport {\n SearchMessage,\n SearchMessageType,\n SearchQueryMessage,\n SearchTransformFn\n} from \"integrations\"\n\nimport { watchSearchQuery } from \"../react\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search query\n */\nexport interface SearchQuery {\n value: string /* Query value */\n focus: boolean /* Query focus */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n transform?: SearchTransformFn /* Transformation function */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search query from source observable\n *\n * @param handler - Worker handler\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountSearchQuery(\n { tx$ }: WorkerHandler, options: MountOptions = {}\n): OperatorFunction {\n return pipe(\n switchMap(el => {\n const query$ = watchSearchQuery(el, options)\n\n /* Subscribe worker to search query */\n query$\n .pipe(\n distinctUntilKeyChanged(\"value\"),\n map(({ value }): SearchQueryMessage => ({\n type: SearchMessageType.QUERY,\n data: value\n }))\n )\n .subscribe(tx$.next.bind(tx$))\n\n /* Toggle search on focus */\n query$\n .pipe(\n distinctUntilKeyChanged(\"focus\")\n )\n .subscribe(({ focus }) => {\n if (focus)\n setToggle(\"search\", focus)\n })\n\n /* Return search query */\n return query$\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, combineLatest, fromEvent, merge } from \"rxjs\"\nimport {\n delay,\n distinctUntilChanged,\n map,\n startWith\n} from \"rxjs/operators\"\n\nimport { watchElementFocus } from \"browser\"\nimport { SearchTransformFn, defaultTransform } from \"integrations\"\n\nimport { SearchQuery } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n transform?: SearchTransformFn /* Transformation function */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch search query\n *\n * Note that the focus event which triggers re-reading the current query value\n * is delayed by `1ms` so the input's empty state is allowed to propagate.\n *\n * @param el - Search query element\n * @param options - Options\n *\n * @return Search query observable\n */\nexport function watchSearchQuery(\n el: HTMLInputElement, { transform }: WatchOptions = {}\n): Observable {\n const fn = transform || defaultTransform\n\n /* Intercept keyboard events */\n const value$ = merge(\n fromEvent(el, \"keyup\"),\n fromEvent(el, \"focus\").pipe(delay(1))\n )\n .pipe(\n map(() => fn(el.value)),\n startWith(fn(el.value)),\n distinctUntilChanged()\n )\n\n /* Intercept focus events */\n const focus$ = watchElementFocus(el)\n\n /* Combine into single observable */\n return combineLatest([value$, focus$])\n .pipe(\n map(([value, focus]) => ({ value, focus }))\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { OperatorFunction, pipe } from \"rxjs\"\nimport {\n mapTo,\n startWith,\n switchMap,\n switchMapTo,\n tap\n} from \"rxjs/operators\"\n\nimport { setElementFocus } from \"browser\"\n\nimport { useComponent } from \"../../../_\"\nimport { watchSearchReset } from \"../react\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search reset from source observable\n *\n * @return Operator function\n */\nexport function mountSearchReset(): OperatorFunction {\n return pipe(\n switchMap(el => watchSearchReset(el)\n .pipe(\n switchMapTo(useComponent(\"search-query\")),\n tap(setElementFocus),\n mapTo(undefined)\n )\n ),\n startWith(undefined)\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, fromEvent } from \"rxjs\"\nimport { mapTo } from \"rxjs/operators\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch search reset\n *\n * @param el - Search reset element\n *\n * @return Search reset observable\n */\nexport function watchSearchReset(\n el: HTMLElement\n): Observable {\n return fromEvent(el, \"click\")\n .pipe(\n mapTo(undefined)\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { translate } from \"utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set number of search results\n *\n * @param el - Search result metadata element\n * @param value - Number of results\n */\nexport function setSearchResultMeta(\n el: HTMLElement, value: number\n): void {\n switch (value) {\n\n /* No results */\n case 0:\n el.textContent = translate(\"search.result.none\")\n break\n\n /* One result */\n case 1:\n el.textContent = translate(\"search.result.one\")\n break\n\n /* Multiple result */\n default:\n el.textContent = translate(\"search.result.other\", value.toString())\n }\n}\n\n/**\n * Reset number of search results\n *\n * @param el - Search result metadata element\n */\nexport function resetSearchResultMeta(\n el: HTMLElement\n): void {\n el.textContent = translate(\"search.result.placeholder\")\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Add an element to the search result list\n *\n * @param el - Search result list element\n * @param child - Search result element\n */\nexport function addToSearchResultList(\n el: HTMLElement, child: Element\n): void {\n el.appendChild(child)\n}\n\n/**\n * Reset search result list\n *\n * @param el - Search result list element\n */\nexport function resetSearchResultList(\n el: HTMLElement\n): void {\n el.innerHTML = \"\"\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n MonoTypeOperatorFunction,\n Observable,\n animationFrameScheduler,\n pipe\n} from \"rxjs\"\nimport {\n finalize,\n map,\n mapTo,\n observeOn,\n scan,\n switchMap,\n withLatestFrom\n} from \"rxjs/operators\"\n\nimport { getElementOrThrow } from \"browser\"\nimport { SearchResult } from \"integrations/search\"\nimport { renderSearchResult } from \"templates\"\n\nimport { SearchQuery } from \"../../query\"\nimport {\n addToSearchResultList,\n resetSearchResultList,\n resetSearchResultMeta,\n setSearchResultMeta\n} from \"../set\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Apply options\n */\ninterface ApplyOptions {\n query$: Observable /* Search query observable */\n ready$: Observable /* Search ready observable */\n fetch$: Observable /* Result fetch observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Apply search results\n *\n * This function will perform a lazy rendering of the search results, depending\n * on the vertical offset of the search result container. When the scroll offset\n * reaches the bottom of the element, more results are fetched and rendered.\n *\n * @param el - Search result element\n * @param options - Options\n *\n * @return Operator function\n */\nexport function applySearchResult(\n el: HTMLElement, { query$, ready$, fetch$ }: ApplyOptions\n): MonoTypeOperatorFunction {\n const list = getElementOrThrow(\".md-search-result__list\", el)\n const meta = getElementOrThrow(\".md-search-result__meta\", el)\n return pipe(\n\n /* Apply search result metadata */\n withLatestFrom(query$, ready$),\n map(([result, query]) => {\n if (query.value) {\n setSearchResultMeta(meta, result.length)\n } else {\n resetSearchResultMeta(meta)\n }\n return result\n }),\n\n /* Apply search result list */\n switchMap(result => fetch$\n .pipe(\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n scan(index => {\n const container = el.parentElement!\n while (index < result.length) {\n addToSearchResultList(list, renderSearchResult(result[index++]))\n if (container.scrollHeight - container.offsetHeight > 16)\n break\n }\n return index\n }, 0),\n\n /* Re-map to search result */\n mapTo(result),\n\n /* Reset on complete or error */\n finalize(() => {\n resetSearchResultList(list)\n })\n )\n )\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { identity } from \"ramda\"\nimport { Observable, OperatorFunction, pipe } from \"rxjs\"\nimport {\n distinctUntilChanged,\n filter,\n map,\n mapTo,\n pluck,\n startWith,\n switchMap\n} from \"rxjs/operators\"\n\nimport { WorkerHandler, watchElementOffset } from \"browser\"\nimport {\n SearchMessage,\n SearchResult,\n isSearchReadyMessage,\n isSearchResultMessage\n} from \"integrations\"\n\nimport { SearchQuery } from \"../../query\"\nimport { applySearchResult } from \"../react\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n query$: Observable /* Search query observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search result from source observable\n *\n * @param handler - Worker handler\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountSearchResult(\n { rx$ }: WorkerHandler, { query$ }: MountOptions\n): OperatorFunction {\n return pipe(\n switchMap(el => {\n const container = el.parentElement!\n\n /* Compute if search is ready */\n const ready$ = rx$\n .pipe(\n filter(isSearchReadyMessage),\n mapTo(true)\n )\n\n /* Compute whether there are more search results to fetch */\n const fetch$ = watchElementOffset(container)\n .pipe(\n map(({ y }) => {\n return y >= container.scrollHeight - container.offsetHeight - 16\n }),\n distinctUntilChanged(),\n filter(identity)\n )\n\n /* Apply search results */\n return rx$\n .pipe(\n filter(isSearchResultMessage),\n pluck(\"data\"),\n applySearchResult(el, { query$, ready$, fetch$ }),\n startWith([])\n )\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, OperatorFunction, combineLatest, pipe } from \"rxjs\"\nimport {\n distinctUntilChanged,\n filter,\n map,\n shareReplay,\n startWith,\n switchMap,\n withLatestFrom\n} from \"rxjs/operators\"\n\nimport {\n Viewport,\n getElement,\n watchViewportAt\n} from \"browser\"\n\nimport { useComponent } from \"../../_\"\nimport {\n applyHeaderType,\n watchHeader\n} from \"../react\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Header type\n */\nexport type HeaderType =\n | \"site\" /* Header shows site title */\n | \"page\" /* Header shows page title */\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Header\n */\nexport interface Header {\n type: HeaderType /* Header type */\n sticky: boolean /* Header stickyness */\n height: number /* Header visible height */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n document$: Observable /* Document observable */\n viewport$: Observable /* Viewport observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount header from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountHeader(\n { document$, viewport$ }: MountOptions\n): OperatorFunction {\n return pipe(\n switchMap(el => {\n const header$ = watchHeader(el, { document$ })\n\n /* Compute whether the header should switch to page header */\n const type$ = useComponent(\"main\")\n .pipe(\n map(main => getElement(\"h1, h2, h3, h4, h5, h6\", main)!),\n filter(hx => typeof hx !== \"undefined\"),\n withLatestFrom(useComponent(\"header-title\")),\n switchMap(([hx, title]) => watchViewportAt(hx, { header$, viewport$ })\n .pipe(\n map(({ offset: { y } }) => {\n return y >= hx.offsetHeight ? \"page\" : \"site\"\n }),\n distinctUntilChanged(),\n applyHeaderType(title)\n )\n ),\n startWith(\"site\")\n )\n\n /* Combine into single observable */\n return combineLatest([header$, type$])\n .pipe(\n map(([header, type]): Header => ({ type, ...header })),\n shareReplay(1)\n )\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n MonoTypeOperatorFunction,\n Observable,\n animationFrameScheduler,\n of,\n pipe\n} from \"rxjs\"\nimport {\n distinctUntilChanged,\n finalize,\n map,\n observeOn,\n shareReplay,\n switchMap,\n tap\n} from \"rxjs/operators\"\n\nimport { watchElementSize } from \"browser\"\n\nimport { Header, HeaderType } from \"../_\"\nimport {\n resetHeaderTitleActive,\n setHeaderTitleActive\n} from \"../set\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n document$: Observable /* Document observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch header\n *\n * @param el - Header element\n *\n * @return Header observable\n */\nexport function watchHeader(\n el: HTMLElement, { document$ }: WatchOptions\n): Observable> {\n return document$\n .pipe(\n map(() => {\n const styles = getComputedStyle(el)\n return [\n \"sticky\", /* Modern browsers */\n \"-webkit-sticky\" /* Safari */\n ].includes(styles.position)\n }),\n distinctUntilChanged(),\n switchMap(sticky => {\n if (sticky) {\n return watchElementSize(el)\n .pipe(\n map(({ height }) => ({\n sticky: true,\n height\n }))\n )\n } else {\n return of({\n sticky: false,\n height: 0\n })\n }\n }),\n shareReplay(1)\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Apply header title type\n *\n * @param el - Header title element\n *\n * @return Operator function\n */\nexport function applyHeaderType(\n el: HTMLElement\n): MonoTypeOperatorFunction {\n return pipe(\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n tap(type => {\n setHeaderTitleActive(el, type === \"page\")\n }),\n\n /* Reset on complete or error */\n finalize(() => {\n resetHeaderTitleActive(el)\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set header title active\n *\n * @param el - Header title element\n * @param value - Whether the title is shown\n */\nexport function setHeaderTitleActive(\n el: HTMLElement, value: boolean\n): void {\n el.setAttribute(\"data-md-state\", value ? \"active\" : \"\")\n}\n\n/**\n * Reset header title active\n *\n * @param el - Header title element\n */\nexport function resetHeaderTitleActive(\n el: HTMLElement\n): void {\n el.removeAttribute(\"data-md-state\")\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, OperatorFunction, pipe } from \"rxjs\"\nimport {\n distinctUntilKeyChanged,\n map,\n switchMap\n} from \"rxjs/operators\"\n\nimport { Viewport, watchViewportAt } from \"browser\"\n\nimport { Header } from \"../../header\"\nimport { applyHero } from \"../react\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Hero\n */\nexport interface Hero {\n hidden: boolean /* Whether the hero is hidden */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n header$: Observable
    /* Header observable */\n viewport$: Observable /* Viewport observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount hero from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountHero(\n { header$, viewport$ }: MountOptions\n): OperatorFunction {\n return pipe(\n switchMap(el => watchViewportAt(el, { header$, viewport$ })\n .pipe(\n map(({ offset: { y } }) => ({ hidden: y >= 20 })),\n distinctUntilKeyChanged(\"hidden\"),\n applyHero(el)\n )\n )\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n MonoTypeOperatorFunction,\n animationFrameScheduler,\n pipe\n} from \"rxjs\"\nimport { finalize, observeOn, tap } from \"rxjs/operators\"\n\nimport { Hero } from \"../_\"\nimport {\n resetHeroHidden,\n setHeroHidden\n} from \"../set\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Apply hero\n *\n * @param el - Hero element\n *\n * @return Operator function\n */\nexport function applyHero(\n el: HTMLElement\n): MonoTypeOperatorFunction {\n return pipe(\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n tap(({ hidden }) => {\n setHeroHidden(el, hidden)\n }),\n\n /* Reset on complete or error */\n finalize(() => {\n resetHeroHidden(el)\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set hero hidden\n *\n * @param el - Hero element\n * @param value - Whether the element is hidden\n */\nexport function setHeroHidden(\n el: HTMLElement, value: boolean\n): void {\n el.setAttribute(\"data-md-state\", value ? \"hidden\" : \"\")\n}\n\n/**\n * Reset hero hidden\n *\n * @param el - Hero element\n */\nexport function resetHeroHidden(\n el: HTMLElement\n): void {\n el.removeAttribute(\"data-md-state\")\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, OperatorFunction, Subject, pipe } from \"rxjs\"\nimport { distinctUntilKeyChanged, switchMap, tap } from \"rxjs/operators\"\n\nimport { Viewport } from \"browser\"\n\nimport { useComponent } from \"../../_\"\nimport { Header } from \"../../header\"\nimport {\n applyHeaderShadow,\n watchMain\n} from \"../react\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Main area\n */\nexport interface Main {\n offset: number /* Main area top offset */\n height: number /* Main area visible height */\n active: boolean /* Scrolled past top offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n header$: Observable
    /* Header observable */\n viewport$: Observable /* Viewport observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount main area from source observable\n *\n * The header must be connected to the main area observable outside of the\n * operator function, as the header will persist in-between document switches\n * while the main area is replaced. However, the header observable must be\n * passed to this function, so we connect both via a long-living subject.\n *\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountMain(\n { header$, viewport$ }: MountOptions\n): OperatorFunction {\n const main$ = new Subject
    ()\n\n /* Connect to main area observable via long-living subject */\n useComponent(\"header\")\n .pipe(\n switchMap(header => main$\n .pipe(\n distinctUntilKeyChanged(\"active\"),\n applyHeaderShadow(header)\n )\n )\n )\n .subscribe()\n\n /* Return operator */\n return pipe(\n switchMap(el => watchMain(el, { header$, viewport$ })),\n tap(main => main$.next(main))\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n MonoTypeOperatorFunction,\n Observable,\n animationFrameScheduler,\n combineLatest,\n pipe\n} from \"rxjs\"\nimport {\n distinctUntilChanged,\n distinctUntilKeyChanged,\n finalize,\n map,\n observeOn,\n pluck,\n shareReplay,\n switchMap,\n tap\n} from \"rxjs/operators\"\n\nimport { Viewport, watchElementSize } from \"browser\"\n\nimport { Header } from \"../../header\"\nimport { Main } from \"../_\"\nimport {\n resetHeaderShadow,\n setHeaderShadow\n} from \"../set\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n header$: Observable
    /* Header observable */\n viewport$: Observable /* Viewport observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch main area\n *\n * This function returns an observable that computes the visual parameters of\n * the main area which depends on the viewport vertical offset and height, as\n * well as the height of the header element, if the header is fixed.\n *\n * @param el - Main area element\n * @param options - Options\n *\n * @return Main area observable\n */\nexport function watchMain(\n el: HTMLElement, { header$, viewport$ }: WatchOptions\n): Observable
    {\n\n /* Compute necessary adjustment for header */\n const adjust$ = header$\n .pipe(\n pluck(\"height\"),\n distinctUntilChanged(),\n shareReplay(1)\n )\n\n /* Compute the main area's top and bottom borders */\n const border$ = adjust$\n .pipe(\n switchMap(() => watchElementSize(el)\n .pipe(\n map(({ height }) => ({\n top: el.offsetTop,\n bottom: el.offsetTop + height\n }))\n )\n ),\n distinctUntilKeyChanged(\"bottom\"),\n shareReplay(1)\n )\n\n /* Compute the main area's offset, visible height and if we scrolled past */\n return combineLatest([adjust$, border$, viewport$])\n .pipe(\n map(([header, { top, bottom }, { offset: { y }, size: { height } }]) => {\n height = Math.max(0, height\n - Math.max(0, top - y, header)\n - Math.max(0, height + y - bottom)\n )\n return {\n offset: top - header,\n height,\n active: top - header <= y\n }\n }),\n distinctUntilChanged
    ((a, b) => {\n return a.offset === b.offset\n && a.height === b.height\n && a.active === b.active\n })\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Apply header shadow\n *\n * @param el - Header element\n *\n * @return Operator function\n */\nexport function applyHeaderShadow(\n el: HTMLElement\n): MonoTypeOperatorFunction
    {\n return pipe(\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n tap(({ active }) => {\n setHeaderShadow(el, active)\n }),\n\n /* Reset on complete or error */\n finalize(() => {\n resetHeaderShadow(el)\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set header shadow\n *\n * @param el - Header element\n * @param value - Whether the shadow is shown\n */\nexport function setHeaderShadow(\n el: HTMLElement, value: boolean\n): void {\n el.setAttribute(\"data-md-state\", value ? \"shadow\" : \"\")\n}\n\n/**\n * Reset header shadow\n *\n * @param el - Header element\n */\nexport function resetHeaderShadow(\n el: HTMLElement\n): void {\n el.removeAttribute(\"data-md-state\")\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, OperatorFunction, of, pipe } from \"rxjs\"\nimport {\n distinctUntilKeyChanged,\n map,\n switchMap\n} from \"rxjs/operators\"\n\nimport { Viewport, watchViewportAt } from \"browser\"\n\nimport { Header } from \"../../header\"\nimport { applyTabs } from \"../react\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Tabs\n */\nexport interface Tabs {\n hidden: boolean /* Whether the tabs are hidden */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n header$: Observable
    /* Header observable */\n viewport$: Observable /* Viewport observable */\n screen$: Observable /* Media screen observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount tabs from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountTabs(\n { header$, viewport$, screen$ }: MountOptions\n): OperatorFunction {\n return pipe(\n switchMap(el => screen$\n .pipe(\n switchMap(screen => {\n\n /* [screen +]: Mount tabs above screen breakpoint */\n if (screen) {\n return watchViewportAt(el, { header$, viewport$ })\n .pipe(\n map(({ offset: { y } }) => ({ hidden: y >= 10 })),\n distinctUntilKeyChanged(\"hidden\"),\n applyTabs(el)\n )\n\n /* [screen -]: Unmount tabs below screen breakpoint */\n } else {\n return of({ hidden: true })\n }\n })\n )\n )\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n MonoTypeOperatorFunction,\n animationFrameScheduler,\n pipe\n} from \"rxjs\"\nimport { finalize, observeOn, tap } from \"rxjs/operators\"\n\nimport { Tabs } from \"../_\"\nimport {\n resetTabsHidden,\n setTabsHidden\n} from \"../set\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Apply tabs\n *\n * @param el - Tabs element\n *\n * @return Operator function\n */\nexport function applyTabs(\n el: HTMLElement\n): MonoTypeOperatorFunction {\n return pipe(\n\n /* Defer repaint to next animation frame */\n observeOn(animationFrameScheduler),\n tap(({ hidden }) => {\n setTabsHidden(el, hidden)\n }),\n\n /* Reset on complete or error */\n finalize(() => {\n resetTabsHidden(el)\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set tabs hidden\n *\n * @param el - Tabs element\n * @param value - Whether the element is hidden\n */\nexport function setTabsHidden(\n el: HTMLElement, value: boolean\n): void {\n el.setAttribute(\"data-md-state\", value ? \"hidden\" : \"\")\n}\n\n/**\n * Reset tabs hidden\n *\n * @param el - Tabs element\n */\nexport function resetTabsHidden(\n el: HTMLElement\n): void {\n el.removeAttribute(\"data-md-state\")\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, OperatorFunction, of, pipe } from \"rxjs\"\nimport { map, switchMap } from \"rxjs/operators\"\n\nimport { Viewport } from \"browser\"\n\nimport { Header } from \"../../header\"\nimport { Main } from \"../../main\"\nimport {\n Sidebar,\n applySidebar,\n watchSidebar\n} from \"../../shared\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Navigation for [screen -]\n */\ninterface NavigationBelowScreen {} // tslint:disable-line\n\n/**\n * Navigation for [screen +]\n */\ninterface NavigationAboveScreen {\n sidebar: Sidebar /* Sidebar */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Navigation\n */\nexport type Navigation =\n | NavigationBelowScreen\n | NavigationAboveScreen\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n header$: Observable
    /* Header observable */\n main$: Observable
    /* Main area observable */\n viewport$: Observable /* Viewport observable */\n screen$: Observable /* Screen media observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount navigation from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nexport function mountNavigation(\n { header$, main$, viewport$, screen$ }: MountOptions\n): OperatorFunction {\n return pipe(\n switchMap(el => screen$\n .pipe(\n switchMap(screen => {\n\n /* [screen +]: Mount navigation in sidebar */\n if (screen) {\n return watchSidebar(el, { main$, viewport$ })\n .pipe(\n applySidebar(el, { header$ }),\n map(sidebar => ({ sidebar }))\n )\n\n /* [screen -]: Mount navigation in drawer */\n } else {\n return of({})\n }\n })\n )\n )\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { NEVER, Observable, fromEvent, iif, merge } from \"rxjs\"\nimport { map, mapTo, shareReplay, switchMap } from \"rxjs/operators\"\n\nimport { getElements } from \"browser\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch options\n */\ninterface PatchOptions {\n document$: Observable /* Document observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Check whether the given device is an Apple device\n *\n * @return Test result\n */\nfunction isAppleDevice(): boolean {\n return /(iPad|iPhone|iPod)/.test(navigator.userAgent)\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch all elements with `data-md-scrollfix` attributes\n *\n * This is a year-old patch which ensures that overflow scrolling works at the\n * top and bottom of containers on iOS by ensuring a `1px` scroll offset upon\n * the start of a touch event.\n *\n * @see https://bit.ly/2SCtAOO - Original source\n *\n * @param options - Options\n */\nexport function patchScrollfix(\n { document$ }: PatchOptions\n): void {\n const els$ = document$\n .pipe(\n map(() => getElements(\"[data-md-scrollfix]\")),\n shareReplay(1)\n )\n\n /* Remove marker attribute, so we'll only add the fix once */\n els$.subscribe(els => {\n for (const el of els)\n el.removeAttribute(\"data-md-scrollfix\")\n })\n\n /* Patch overflow scrolling on touch start */\n iif(isAppleDevice, els$, NEVER)\n .pipe(\n switchMap(els => merge(...els.map(el => (\n fromEvent(el, \"touchstart\", { passive: true })\n .pipe(\n mapTo(el)\n )\n ))))\n )\n .subscribe(el => {\n const top = el.scrollTop\n\n /* We're at the top of the container */\n if (top === 0) {\n el.scrollTop = 1\n\n /* We're at the bottom of the container */\n } else if (top + el.offsetHeight === el.scrollHeight) {\n el.scrollTop = top - 1\n }\n })\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { NEVER, Observable } from \"rxjs\"\nimport { catchError, map, switchMap } from \"rxjs/operators\"\n\nimport { getElementOrThrow, getElements } from \"browser\"\nimport { renderSource } from \"templates\"\nimport { cache, hash } from \"utilities\"\n\nimport { fetchSourceFactsFromGitHub } from \"./github\"\nimport { fetchSourceFactsFromGitLab } from \"./gitlab\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Source facts\n */\nexport type SourceFacts = string[]\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch options\n */\ninterface PatchOptions {\n document$: Observable /* Document observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch source facts\n *\n * @param url - Source repository URL\n *\n * @return Source facts observable\n */\nfunction fetchSourceFacts(\n url: string\n): Observable {\n const [type] = url.match(/(git(?:hub|lab))/i) || []\n switch (type.toLowerCase()) {\n\n /* GitHub repository */\n case \"github\":\n const [, user, repo] = url.match(/^.+github\\.com\\/([^\\/]+)\\/?([^\\/]+)/i)\n return fetchSourceFactsFromGitHub(user, repo)\n\n /* GitLab repository */\n case \"gitlab\":\n const [, base, slug] = url.match(/^.+?([^\\/]*gitlab[^\\/]+)\\/(.+?)\\/?$/i)\n return fetchSourceFactsFromGitLab(base, slug)\n\n /* Everything else */\n default:\n return NEVER\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch elements containing repository information\n *\n * This function will retrieve the URL from the repository link and try to\n * query data from integrated source code platforms like GitHub or GitLab.\n *\n * @param options - Options\n */\nexport function patchSource(\n { document$ }: PatchOptions\n): void {\n document$\n .pipe(\n map(() => getElementOrThrow(\".md-source[href]\")),\n switchMap(({ href }) => (\n cache(`${hash(href)}`, () => fetchSourceFacts(href))\n )),\n catchError(() => NEVER)\n )\n .subscribe(facts => {\n for (const el of getElements(\".md-source__repository\")) {\n if (!el.hasAttribute(\"data-md-state\")) {\n el.setAttribute(\"data-md-state\", \"done\")\n el.appendChild(renderSource(facts))\n }\n }\n })\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Repo, User } from \"github-types\"\nimport { Observable, of } from \"rxjs\"\nimport { ajax } from \"rxjs/ajax\"\nimport { filter, pluck, switchMap } from \"rxjs/operators\"\n\nimport { round } from \"utilities\"\n\nimport { SourceFacts } from \"..\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch GitHub source facts\n *\n * @param user - GitHub user\n * @param repo - GitHub repository\n *\n * @return Source facts observable\n */\nexport function fetchSourceFactsFromGitHub(\n user: string, repo?: string\n): Observable {\n return ajax({\n url: typeof repo !== \"undefined\"\n ? `https://api.github.com/repos/${user}/${repo}`\n : `https://api.github.com/users/${user}`,\n responseType: \"json\"\n })\n .pipe(\n filter(({ status }) => status === 200),\n pluck(\"response\"),\n switchMap(data => {\n\n /* GitHub repository */\n if (typeof repo !== \"undefined\") {\n const { stargazers_count, forks_count }: Repo = data\n return of([\n `${round(stargazers_count || 0)} Stars`,\n `${round(forks_count || 0)} Forks`\n ])\n\n /* GitHub user/organization */\n } else {\n const { public_repos }: User = data\n return of([\n `${round(public_repos || 0)} Repositories`\n ])\n }\n })\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { ProjectSchema } from \"gitlab\"\nimport { Observable } from \"rxjs\"\nimport { ajax } from \"rxjs/ajax\"\nimport { filter, map, pluck } from \"rxjs/operators\"\n\nimport { round } from \"utilities\"\n\nimport { SourceFacts } from \"..\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch GitLab source facts\n *\n * @param base - GitLab base\n * @param project - GitLab project\n *\n * @return Source facts observable\n */\nexport function fetchSourceFactsFromGitLab(\n base: string, project: string\n): Observable {\n return ajax({\n url: `https://${base}/api/v4/projects/${encodeURIComponent(project)}`,\n responseType: \"json\"\n })\n .pipe(\n filter(({ status }) => status === 200),\n pluck(\"response\"),\n map(({ star_count, forks_count }: ProjectSchema) => ([\n `${round(star_count)} Stars`,\n `${round(forks_count)} Forks`\n ]))\n )\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n// DISCLAIMER: this file is still WIP. There're some refactoring opportunities\n// which must be tackled after we gathered some feedback on v5.\n// tslint:disable\n\nimport { values } from \"ramda\"\nimport {\n merge,\n combineLatest,\n animationFrameScheduler,\n fromEvent,\n from,\n defer,\n of,\n NEVER\n} from \"rxjs\"\nimport { ajax } from \"rxjs/ajax\"\nimport {\n delay,\n switchMap,\n tap,\n filter,\n withLatestFrom,\n observeOn,\n take,\n shareReplay,\n pluck,\n catchError\n} from \"rxjs/operators\"\n\nimport {\n watchToggle,\n setToggle,\n getElements,\n watchMedia,\n watchDocument,\n watchLocation,\n watchLocationHash,\n watchViewport,\n isLocalLocation,\n setLocationHash,\n watchLocationBase\n} from \"browser\"\nimport {\n mountHeader,\n mountHero,\n mountMain,\n mountNavigation,\n mountSearch,\n mountTableOfContents,\n mountTabs,\n useComponent,\n setupComponents,\n mountSearchQuery,\n mountSearchReset,\n mountSearchResult\n} from \"components\"\nimport {\n setupClipboard,\n setupDialog,\n setupKeyboard,\n setupInstantLoading,\n setupSearchWorker,\n SearchIndex\n} from \"integrations\"\nimport {\n patchTables,\n patchDetails,\n patchScrollfix,\n patchSource,\n patchScripts\n} from \"patches\"\nimport { isConfig } from \"utilities\"\n\n/* ------------------------------------------------------------------------- */\n\n/* Denote that JavaScript is available */\ndocument.documentElement.classList.remove(\"no-js\")\ndocument.documentElement.classList.add(\"js\")\n\n/* Test for iOS */\nif (navigator.userAgent.match(/(iPad|iPhone|iPod)/g))\n document.documentElement.classList.add(\"ios\")\n\n/**\n * Set scroll lock\n *\n * @param el - Scrollable element\n * @param value - Vertical offset\n */\nexport function setScrollLock(\n el: HTMLElement, value: number\n): void {\n el.setAttribute(\"data-md-state\", \"lock\")\n el.style.top = `-${value}px`\n}\n\n/**\n * Reset scroll lock\n *\n * @param el - Scrollable element\n */\nexport function resetScrollLock(\n el: HTMLElement\n): void {\n const value = -1 * parseInt(el.style.top, 10)\n el.removeAttribute(\"data-md-state\")\n el.style.top = \"\"\n if (value)\n window.scrollTo(0, value)\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Initialize Material for MkDocs\n *\n * @param config - Configuration\n */\nexport function initialize(config: unknown) {\n if (!isConfig(config))\n throw new SyntaxError(`Invalid configuration: ${JSON.stringify(config)}`)\n\n /* Set up subjects */\n const document$ = watchDocument()\n const location$ = watchLocation()\n\n /* Set up user interface observables */\n const base$ = watchLocationBase(config.base, { location$ })\n const hash$ = watchLocationHash()\n const viewport$ = watchViewport()\n const tablet$ = watchMedia(\"(min-width: 960px)\")\n const screen$ = watchMedia(\"(min-width: 1220px)\")\n\n /* ----------------------------------------------------------------------- */\n\n /* Set up component bindings */\n setupComponents([\n \"announce\", /* Announcement bar */\n \"container\", /* Container */\n \"header\", /* Header */\n \"header-title\", /* Header title */\n \"hero\", /* Hero */\n \"main\", /* Main area */\n \"navigation\", /* Navigation */\n \"search\", /* Search */\n \"search-query\", /* Search input */\n \"search-reset\", /* Search reset */\n \"search-result\", /* Search results */\n \"skip\", /* Skip link */\n \"tabs\", /* Tabs */\n \"toc\" /* Table of contents */\n ], { document$ })\n\n const keyboard$ = setupKeyboard()\n\n patchDetails({ document$, hash$ })\n patchScripts({ document$ })\n patchSource({ document$ })\n patchTables({ document$ })\n\n /* Force 1px scroll offset to trigger overflow scrolling */\n patchScrollfix({ document$ })\n\n /* Set up clipboard and dialog */\n const dialog$ = setupDialog()\n const clipboard$ = setupClipboard({ document$, dialog$ })\n\n /* ----------------------------------------------------------------------- */\n\n /* Create header observable */\n const header$ = useComponent(\"header\")\n .pipe(\n mountHeader({ document$, viewport$ }),\n shareReplay(1)\n )\n\n const main$ = useComponent(\"main\")\n .pipe(\n mountMain({ header$, viewport$ }),\n shareReplay(1)\n )\n\n /* ----------------------------------------------------------------------- */\n\n const navigation$ = useComponent(\"navigation\")\n .pipe(\n mountNavigation({ header$, main$, viewport$, screen$ }),\n shareReplay(1) // shareReplay because there might be late subscribers\n )\n\n const toc$ = useComponent(\"toc\")\n .pipe(\n mountTableOfContents({ header$, main$, viewport$, tablet$ }),\n shareReplay(1)\n )\n\n const tabs$ = useComponent(\"tabs\")\n .pipe(\n mountTabs({ header$, viewport$, screen$ }),\n shareReplay(1)\n )\n\n const hero$ = useComponent(\"hero\")\n .pipe(\n mountHero({ header$, viewport$ }),\n shareReplay(1)\n )\n\n /* ----------------------------------------------------------------------- */\n\n /* Search worker */\n const worker$ = defer(() => {\n const index = config.search && config.search.index\n ? config.search.index\n : undefined\n\n /* Fetch index if it wasn't passed explicitly */\n const index$ = typeof index !== \"undefined\"\n ? from(index)\n : base$\n .pipe(\n switchMap(base => ajax({\n url: `${base}/search/search_index.json`,\n responseType: \"json\",\n withCredentials: true\n })\n .pipe(\n pluck(\"response\")\n )\n )\n )\n\n return of(setupSearchWorker(config.search.worker, {\n base$, index$\n }))\n })\n\n /* ----------------------------------------------------------------------- */\n\n /* Mount search query */\n const search$ = worker$\n .pipe(\n switchMap(worker => {\n\n const query$ = useComponent(\"search-query\")\n .pipe(\n mountSearchQuery(worker, { transform: config.search.transform }),\n shareReplay(1)\n )\n\n /* Mount search reset */\n const reset$ = useComponent(\"search-reset\")\n .pipe(\n mountSearchReset(),\n shareReplay(1)\n )\n\n /* Mount search result */\n const result$ = useComponent(\"search-result\")\n .pipe(\n mountSearchResult(worker, { query$ }),\n shareReplay(1)\n )\n\n return useComponent(\"search\")\n .pipe(\n mountSearch(worker, { query$, reset$, result$ }),\n shareReplay(1)\n )\n }),\n catchError(() => {\n useComponent(\"search\")\n .subscribe(el => el.hidden = true) // TODO: Hack\n return NEVER\n })\n )\n\n /* ----------------------------------------------------------------------- */\n\n // // put into search...\n hash$\n .pipe(\n tap(() => setToggle(\"search\", false)),\n delay(125), // ensure that it runs after the body scroll reset...\n )\n .subscribe(hash => setLocationHash(`#${hash}`))\n\n // TODO: scroll restoration must be centralized\n combineLatest([\n watchToggle(\"search\"),\n tablet$,\n ])\n .pipe(\n withLatestFrom(viewport$),\n switchMap(([[toggle, tablet], { offset: { y }}]) => {\n const active = toggle && !tablet\n return document$\n .pipe(\n delay(active ? 400 : 100),\n observeOn(animationFrameScheduler),\n tap(({ body }) => active\n ? setScrollLock(body, y)\n : resetScrollLock(body)\n )\n )\n })\n )\n .subscribe()\n\n /* ----------------------------------------------------------------------- */\n\n /* Always close drawer on click */\n fromEvent(document.body, \"click\")\n .pipe(\n filter(ev => !(ev.metaKey || ev.ctrlKey)),\n filter(ev => {\n if (ev.target instanceof HTMLElement) {\n const el = ev.target.closest(\"a\") // TODO: abstract as link click?\n if (el && isLocalLocation(el)) {\n return true\n }\n }\n return false\n })\n )\n .subscribe(() => {\n setToggle(\"drawer\", false)\n })\n\n /* Enable instant loading, if not on file:// protocol */\n if (config.features.includes(\"instant\") && location.protocol !== \"file:\")\n setupInstantLoading({ document$, location$, viewport$ })\n\n /* ----------------------------------------------------------------------- */\n\n /* Unhide permalinks on first tab */\n keyboard$\n .pipe(\n filter(key => key.mode === \"global\" && key.type === \"Tab\"),\n take(1)\n )\n .subscribe(() => {\n for (const link of getElements(\".headerlink\"))\n link.style.visibility = \"visible\"\n })\n\n /* ----------------------------------------------------------------------- */\n\n const state = {\n\n /* Browser observables */\n document$,\n location$,\n viewport$,\n\n /* Component observables */\n header$,\n hero$,\n main$,\n navigation$,\n search$,\n tabs$,\n toc$,\n\n /* Integration observables */\n clipboard$,\n keyboard$,\n dialog$\n }\n\n /* Subscribe to all observables */\n merge(...values(state))\n .subscribe()\n return state\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { identity } from \"ramda\"\nimport { Observable, fromEvent, merge } from \"rxjs\"\nimport {\n filter,\n map,\n switchMapTo,\n tap\n} from \"rxjs/operators\"\n\nimport {\n getElement,\n getElements,\n watchMedia\n} from \"browser\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch options\n */\ninterface PatchOptions {\n document$: Observable /* Document observable */\n hash$: Observable /* Location hash observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch all `details` elements\n *\n * This function will ensure that all `details` tags are opened prior to\n * printing, so the whole content of the page is included, and on anchor jumps.\n *\n * @param options - Options\n */\nexport function patchDetails(\n { document$, hash$ }: PatchOptions\n): void {\n const els$ = document$\n .pipe(\n map(() => getElements(\"details\"))\n )\n\n /* Open all details before printing */\n merge(\n watchMedia(\"print\").pipe(filter(identity)), /* Webkit */\n fromEvent(window, \"beforeprint\") /* IE, FF */\n )\n .pipe(\n switchMapTo(els$)\n )\n .subscribe(els => {\n for (const el of els)\n el.setAttribute(\"open\", \"\")\n })\n\n /* Open parent details and fix anchor jump */\n hash$\n .pipe(\n map(id => getElement(`[id=\"${id}\"]`)!),\n filter(el => typeof el !== \"undefined\"),\n tap(el => {\n const details = el.closest(\"details\")\n if (details && !details.open)\n details.setAttribute(\"open\", \"\")\n })\n )\n .subscribe(el => el.scrollIntoView())\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable } from \"rxjs\"\nimport { map, skip, withLatestFrom } from \"rxjs/operators\"\n\nimport {\n createElement,\n getElements,\n replaceElement\n} from \"browser\"\nimport { useComponent } from \"components\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch options\n */\ninterface PatchOptions {\n document$: Observable /* Document observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch all `script` elements\n *\n * This function must be run after a document switch, which means the first\n * emission must be ignored.\n *\n * @param options - Options\n */\nexport function patchScripts(\n { document$ }: PatchOptions\n): void {\n const els$ = document$\n .pipe(\n skip(1),\n withLatestFrom(useComponent(\"container\")),\n map(([, el]) => getElements(\"script\", el))\n )\n\n /* Evaluate all scripts via replacement */\n els$.subscribe(els => {\n for (const el of els) {\n if (el.src || /(^|\\/javascript)$/i.test(el.type)) {\n const script = createElement(\"script\")\n const key = el.src ? \"src\" : \"textContent\"\n script[key] = el[key]!\n replaceElement(el, script)\n }\n }\n })\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable } from \"rxjs\"\nimport { map } from \"rxjs/operators\"\n\nimport {\n createElement,\n getElements,\n replaceElement\n} from \"browser\"\nimport { renderTable } from \"templates\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n document$: Observable /* Document observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch all `table` elements\n *\n * This function will re-render all tables by wrapping them to improve overflow\n * scrolling on smaller screen sizes.\n *\n * @param options - Options\n */\nexport function patchTables(\n { document$ }: MountOptions\n): void {\n const sentinel = createElement(\"table\")\n document$\n .pipe(\n map(() => getElements(\"table:not([class])\"))\n )\n .subscribe(els => {\n for (const el of els) {\n replaceElement(el, sentinel)\n replaceElement(sentinel, renderTable(el))\n }\n })\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/theme/material/assets/javascripts/bundle.js b/docs/theme/material/assets/javascripts/bundle.js new file mode 100644 index 00000000..10ae0710 --- /dev/null +++ b/docs/theme/material/assets/javascripts/bundle.js @@ -0,0 +1,1296 @@ +(function(e, a) { for(var i in a) e[i] = a[i]; }(window, /******/ (function(modules) { // webpackBootstrap +/******/ // install a JSONP callback for chunk loading +/******/ function webpackJsonpCallback(data) { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var executeModules = data[2]; +/******/ +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0, resolves = []; +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ resolves.push(installedChunks[chunkId][0]); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ for(moduleId in moreModules) { +/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) { +/******/ modules[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(parentJsonpFunction) parentJsonpFunction(data); +/******/ +/******/ while(resolves.length) { +/******/ resolves.shift()(); +/******/ } +/******/ +/******/ // add entry modules from loaded chunk to deferred list +/******/ deferredModules.push.apply(deferredModules, executeModules || []); +/******/ +/******/ // run deferred modules when all chunks ready +/******/ return checkDeferredModules(); +/******/ }; +/******/ function checkDeferredModules() { +/******/ var result; +/******/ for(var i = 0; i < deferredModules.length; i++) { +/******/ var deferredModule = deferredModules[i]; +/******/ var fulfilled = true; +/******/ for(var j = 1; j < deferredModule.length; j++) { +/******/ var depId = deferredModule[j]; +/******/ if(installedChunks[depId] !== 0) fulfilled = false; +/******/ } +/******/ if(fulfilled) { +/******/ deferredModules.splice(i--, 1); +/******/ result = __webpack_require__(__webpack_require__.s = deferredModule[0]); +/******/ } +/******/ } +/******/ +/******/ return result; +/******/ } +/******/ +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // Promise = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "assets/javascripts/bundle": 0 +/******/ }; +/******/ +/******/ var deferredModules = []; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ var jsonpArray = window["webpackJsonp"] = window["webpackJsonp"] || []; +/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray); +/******/ jsonpArray.push = webpackJsonpCallback; +/******/ jsonpArray = jsonpArray.slice(); +/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]); +/******/ var parentJsonpFunction = oldJsonpFunction; +/******/ +/******/ +/******/ // add entry module to deferred list +/******/ deferredModules.push(["./src/assets/javascripts/index.ts","assets/javascripts/vendor"]); +/******/ // run deferred modules when ready +/******/ return checkDeferredModules(); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./src/assets/javascripts/browser/document/index.ts": +/*!**********************************************************!*\ + !*** ./src/assets/javascripts/browser/document/index.ts ***! + \**********************************************************/ +/*! exports provided: watchDocument */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchDocument\", function() { return watchDocument; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch document\n *\n * Documents must be implemented as subjects, so all downstream observables are\n * automatically updated when a new document is emitted. This enabled features\n * like instant loading.\n *\n * @return Document subject\n */\nfunction watchDocument() {\n var document$ = new rxjs__WEBPACK_IMPORTED_MODULE_0__[\"ReplaySubject\"]();\n Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(document, \"DOMContentLoaded\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"mapTo\"])(document))\n .subscribe(document$);\n /* Return document */\n return document$;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/document/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/element/_/index.ts": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/browser/element/_/index.ts ***! + \***********************************************************/ +/*! exports provided: getElement, getElementOrThrow, getActiveElement, getElements, createElement, replaceElement */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getElement\", function() { return getElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getElementOrThrow\", function() { return getElementOrThrow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getActiveElement\", function() { return getActiveElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getElements\", function() { return getElements; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createElement\", function() { return createElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"replaceElement\", function() { return replaceElement; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Retrieve an element matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @return Element or nothing\n */\nfunction getElement(selector, node) {\n if (node === void 0) { node = document; }\n return node.querySelector(selector) || undefined;\n}\n/**\n * Retrieve an element matching a query selector or throw a reference error\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @return Element\n */\nfunction getElementOrThrow(selector, node) {\n if (node === void 0) { node = document; }\n var el = getElement(selector, node);\n if (typeof el === \"undefined\")\n throw new ReferenceError(\"Missing element: expected \\\"\" + selector + \"\\\" to be present\");\n return el;\n}\n/**\n * Retrieve the currently active element\n *\n * @return Element or nothing\n */\nfunction getActiveElement() {\n return document.activeElement instanceof HTMLElement\n ? document.activeElement\n : undefined;\n}\n/**\n * Retrieve all elements matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @return Elements\n */\nfunction getElements(selector, node) {\n if (node === void 0) { node = document; }\n return Array.from(node.querySelectorAll(selector));\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Create an element\n *\n * @template T - Tag name type\n *\n * @param tagName - Tag name\n *\n * @return Element\n */\nfunction createElement(tagName) {\n return document.createElement(tagName);\n}\n/**\n * Replace an element with another element\n *\n * @param source - Source element\n * @param target - Target element\n */\nfunction replaceElement(source, target) {\n source.replaceWith(target);\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/element/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/element/focus/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/browser/element/focus/index.ts ***! + \***************************************************************/ +/*! exports provided: setElementFocus, watchElementFocus */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setElementFocus\", function() { return setElementFocus; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchElementFocus\", function() { return watchElementFocus; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_ */ \"./src/assets/javascripts/browser/element/_/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set element focus\n *\n * @param el - Element\n * @param value - Whether the element should be focused\n */\nfunction setElementFocus(el, value) {\n if (value === void 0) { value = true; }\n if (value)\n el.focus();\n else\n el.blur();\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Watch element focus\n *\n * @param el - Element\n *\n * @return Element focus observable\n */\nfunction watchElementFocus(el) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"merge\"])(Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(el, \"focus\"), Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(el, \"blur\"))\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (_a) {\n var type = _a.type;\n return type === \"focus\";\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"startWith\"])(el === Object(___WEBPACK_IMPORTED_MODULE_2__[\"getActiveElement\"])()), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"shareReplay\"])(1));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/element/focus/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/element/index.ts": +/*!*********************************************************!*\ + !*** ./src/assets/javascripts/browser/element/index.ts ***! + \*********************************************************/ +/*! exports provided: getElement, getElementOrThrow, getActiveElement, getElements, createElement, replaceElement, setElementFocus, watchElementFocus, getElementOffset, watchElementOffset, setElementSelection, getElementSize, watchElementSize */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/browser/element/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElement\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"getElement\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElementOrThrow\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"getElementOrThrow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getActiveElement\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"getActiveElement\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElements\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"getElements\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createElement\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"createElement\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"replaceElement\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"replaceElement\"]; });\n\n/* harmony import */ var _focus__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./focus */ \"./src/assets/javascripts/browser/element/focus/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setElementFocus\", function() { return _focus__WEBPACK_IMPORTED_MODULE_1__[\"setElementFocus\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchElementFocus\", function() { return _focus__WEBPACK_IMPORTED_MODULE_1__[\"watchElementFocus\"]; });\n\n/* harmony import */ var _offset__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./offset */ \"./src/assets/javascripts/browser/element/offset/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElementOffset\", function() { return _offset__WEBPACK_IMPORTED_MODULE_2__[\"getElementOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchElementOffset\", function() { return _offset__WEBPACK_IMPORTED_MODULE_2__[\"watchElementOffset\"]; });\n\n/* harmony import */ var _select__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./select */ \"./src/assets/javascripts/browser/element/select/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setElementSelection\", function() { return _select__WEBPACK_IMPORTED_MODULE_3__[\"setElementSelection\"]; });\n\n/* harmony import */ var _size__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./size */ \"./src/assets/javascripts/browser/element/size/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElementSize\", function() { return _size__WEBPACK_IMPORTED_MODULE_4__[\"getElementSize\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchElementSize\", function() { return _size__WEBPACK_IMPORTED_MODULE_4__[\"watchElementSize\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/element/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/element/offset/index.ts": +/*!****************************************************************!*\ + !*** ./src/assets/javascripts/browser/element/offset/index.ts ***! + \****************************************************************/ +/*! exports provided: getElementOffset, watchElementOffset */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getElementOffset\", function() { return getElementOffset; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchElementOffset\", function() { return watchElementOffset; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Retrieve element offset\n *\n * @param el - Element\n *\n * @return Element offset\n */\nfunction getElementOffset(el) {\n return {\n x: el.scrollLeft,\n y: el.scrollTop\n };\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Watch element offset\n *\n * @param el - Element\n *\n * @return Element offset observable\n */\nfunction watchElementOffset(el) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"merge\"])(Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(el, \"scroll\"), Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(window, \"resize\"))\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function () { return getElementOffset(el); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"startWith\"])(getElementOffset(el)), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"shareReplay\"])(1));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/element/offset/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/element/select/index.ts": +/*!****************************************************************!*\ + !*** ./src/assets/javascripts/browser/element/select/index.ts ***! + \****************************************************************/ +/*! exports provided: setElementSelection */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setElementSelection\", function() { return setElementSelection; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set element text selection\n *\n * @param el - Element\n */\nfunction setElementSelection(el) {\n if (el instanceof HTMLInputElement)\n el.select();\n else\n throw new Error(\"Not implemented\");\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/element/select/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/element/size/index.ts": +/*!**************************************************************!*\ + !*** ./src/assets/javascripts/browser/element/size/index.ts ***! + \**************************************************************/ +/*! exports provided: getElementSize, watchElementSize */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getElementSize\", function() { return getElementSize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchElementSize\", function() { return watchElementSize; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var resize_observer_polyfill__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! resize-observer-polyfill */ \"./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Retrieve element size\n *\n * @param el - Element\n *\n * @return Element size\n */\nfunction getElementSize(el) {\n return {\n width: el.offsetWidth,\n height: el.offsetHeight\n };\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Watch element size\n *\n * @param el - Element\n *\n * @return Element size observable\n */\nfunction watchElementSize(el) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"fromEventPattern\"])(function (next) {\n new resize_observer_polyfill__WEBPACK_IMPORTED_MODULE_1__[\"default\"](function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 1), contentRect = _b[0].contentRect;\n return next({\n width: Math.round(contentRect.width),\n height: Math.round(contentRect.height)\n });\n })\n .observe(el);\n })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"startWith\"])(getElementSize(el)), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"shareReplay\"])(1));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/element/size/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/index.ts": +/*!*************************************************!*\ + !*** ./src/assets/javascripts/browser/index.ts ***! + \*************************************************/ +/*! exports provided: watchDocument, getElement, getElementOrThrow, getActiveElement, getElements, createElement, replaceElement, setElementFocus, watchElementFocus, getElementOffset, watchElementOffset, setElementSelection, getElementSize, watchElementSize, isSusceptibleToKeyboard, watchKeyboard, getLocation, setLocation, isLocalLocation, isAnchorLocation, watchLocation, watchLocationBase, getLocationHash, setLocationHash, watchLocationHash, watchMedia, getToggle, setToggle, watchToggle, watchViewport, watchViewportAt, getViewportOffset, setViewportOffset, watchViewportOffset, getViewportSize, watchViewportSize, watchWorker */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _document__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./document */ \"./src/assets/javascripts/browser/document/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchDocument\", function() { return _document__WEBPACK_IMPORTED_MODULE_0__[\"watchDocument\"]; });\n\n/* harmony import */ var _element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./element */ \"./src/assets/javascripts/browser/element/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElement\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"getElement\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElementOrThrow\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"getElementOrThrow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getActiveElement\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"getActiveElement\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElements\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"getElements\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createElement\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"createElement\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"replaceElement\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"replaceElement\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setElementFocus\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"setElementFocus\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchElementFocus\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"watchElementFocus\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElementOffset\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"getElementOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchElementOffset\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"watchElementOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setElementSelection\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"setElementSelection\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getElementSize\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"getElementSize\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchElementSize\", function() { return _element__WEBPACK_IMPORTED_MODULE_1__[\"watchElementSize\"]; });\n\n/* harmony import */ var _keyboard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./keyboard */ \"./src/assets/javascripts/browser/keyboard/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSusceptibleToKeyboard\", function() { return _keyboard__WEBPACK_IMPORTED_MODULE_2__[\"isSusceptibleToKeyboard\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchKeyboard\", function() { return _keyboard__WEBPACK_IMPORTED_MODULE_2__[\"watchKeyboard\"]; });\n\n/* harmony import */ var _location__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./location */ \"./src/assets/javascripts/browser/location/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getLocation\", function() { return _location__WEBPACK_IMPORTED_MODULE_3__[\"getLocation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setLocation\", function() { return _location__WEBPACK_IMPORTED_MODULE_3__[\"setLocation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isLocalLocation\", function() { return _location__WEBPACK_IMPORTED_MODULE_3__[\"isLocalLocation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isAnchorLocation\", function() { return _location__WEBPACK_IMPORTED_MODULE_3__[\"isAnchorLocation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchLocation\", function() { return _location__WEBPACK_IMPORTED_MODULE_3__[\"watchLocation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchLocationBase\", function() { return _location__WEBPACK_IMPORTED_MODULE_3__[\"watchLocationBase\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getLocationHash\", function() { return _location__WEBPACK_IMPORTED_MODULE_3__[\"getLocationHash\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setLocationHash\", function() { return _location__WEBPACK_IMPORTED_MODULE_3__[\"setLocationHash\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchLocationHash\", function() { return _location__WEBPACK_IMPORTED_MODULE_3__[\"watchLocationHash\"]; });\n\n/* harmony import */ var _media__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./media */ \"./src/assets/javascripts/browser/media/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchMedia\", function() { return _media__WEBPACK_IMPORTED_MODULE_4__[\"watchMedia\"]; });\n\n/* harmony import */ var _toggle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./toggle */ \"./src/assets/javascripts/browser/toggle/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getToggle\", function() { return _toggle__WEBPACK_IMPORTED_MODULE_5__[\"getToggle\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setToggle\", function() { return _toggle__WEBPACK_IMPORTED_MODULE_5__[\"setToggle\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchToggle\", function() { return _toggle__WEBPACK_IMPORTED_MODULE_5__[\"watchToggle\"]; });\n\n/* harmony import */ var _viewport__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./viewport */ \"./src/assets/javascripts/browser/viewport/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchViewport\", function() { return _viewport__WEBPACK_IMPORTED_MODULE_6__[\"watchViewport\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchViewportAt\", function() { return _viewport__WEBPACK_IMPORTED_MODULE_6__[\"watchViewportAt\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getViewportOffset\", function() { return _viewport__WEBPACK_IMPORTED_MODULE_6__[\"getViewportOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setViewportOffset\", function() { return _viewport__WEBPACK_IMPORTED_MODULE_6__[\"setViewportOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchViewportOffset\", function() { return _viewport__WEBPACK_IMPORTED_MODULE_6__[\"watchViewportOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getViewportSize\", function() { return _viewport__WEBPACK_IMPORTED_MODULE_6__[\"getViewportSize\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchViewportSize\", function() { return _viewport__WEBPACK_IMPORTED_MODULE_6__[\"watchViewportSize\"]; });\n\n/* harmony import */ var _worker__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./worker */ \"./src/assets/javascripts/browser/worker/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchWorker\", function() { return _worker__WEBPACK_IMPORTED_MODULE_7__[\"watchWorker\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/keyboard/index.ts": +/*!**********************************************************!*\ + !*** ./src/assets/javascripts/browser/keyboard/index.ts ***! + \**********************************************************/ +/*! exports provided: isSusceptibleToKeyboard, watchKeyboard */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSusceptibleToKeyboard\", function() { return isSusceptibleToKeyboard; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchKeyboard\", function() { return watchKeyboard; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Check whether an element may receive keyboard input\n *\n * @param el - Element\n *\n * @return Test result\n */\nfunction isSusceptibleToKeyboard(el) {\n switch (el.tagName) {\n /* Form elements */\n case \"INPUT\":\n case \"SELECT\":\n case \"TEXTAREA\":\n return true;\n /* Everything else */\n default:\n return el.isContentEditable;\n }\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Watch keyboard\n *\n * @return Keyboard observable\n */\nfunction watchKeyboard() {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(window, \"keydown\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(function (ev) { return !(ev.metaKey || ev.ctrlKey); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (ev) { return ({\n type: ev.key,\n claim: function () {\n ev.preventDefault();\n ev.stopPropagation();\n }\n }); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"share\"])());\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/keyboard/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/location/_/index.ts": +/*!************************************************************!*\ + !*** ./src/assets/javascripts/browser/location/_/index.ts ***! + \************************************************************/ +/*! exports provided: getLocation, setLocation, isLocalLocation, isAnchorLocation, watchLocation */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getLocation\", function() { return getLocation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setLocation\", function() { return setLocation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isLocalLocation\", function() { return isLocalLocation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAnchorLocation\", function() { return isAnchorLocation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchLocation\", function() { return watchLocation; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Retrieve location\n *\n * This function will return a `URL` object (and not `Location`) in order to\n * normalize typings across the application. Furthermore, locations need to be\n * tracked without setting them and `Location` is a singleton which represents\n * the current location.\n *\n * @return URL\n */\nfunction getLocation() {\n return new URL(location.href);\n}\n/**\n * Set location\n *\n * @param url - URL to change to\n */\nfunction setLocation(url) {\n location.href = url.href;\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Check whether a URL is a local link or a file (except `.html`)\n *\n * @param url - URL or HTML anchor element\n * @param ref - Reference URL\n *\n * @return Test result\n */\nfunction isLocalLocation(url, ref) {\n if (ref === void 0) { ref = location; }\n return url.host === ref.host\n && /^(?:\\/[\\w-]+)*(?:\\/?|\\.html)$/i.test(url.pathname);\n}\n/**\n * Check whether a URL is an anchor link on the current page\n *\n * @param url - URL or HTML anchor element\n * @param ref - Reference URL\n *\n * @return Test result\n */\nfunction isAnchorLocation(url, ref) {\n if (ref === void 0) { ref = location; }\n return url.pathname === ref.pathname\n && url.hash.length > 0;\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Watch location\n *\n * @return Location subject\n */\nfunction watchLocation() {\n return new rxjs__WEBPACK_IMPORTED_MODULE_0__[\"BehaviorSubject\"](getLocation());\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/location/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/location/base/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/browser/location/base/index.ts ***! + \***************************************************************/ +/*! exports provided: watchLocationBase */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchLocationBase\", function() { return watchLocationBase; });\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ------------------------------------------------------------------------- */\n/**\n * Watch location base\n *\n * @return Location base observable\n */\nfunction watchLocationBase(base, _a) {\n var location$ = _a.location$;\n return location$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_0__[\"take\"])(1), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_0__[\"map\"])(function (_a) {\n var href = _a.href;\n return new URL(base, href)\n .toString()\n .replace(/\\/$/, \"\");\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_0__[\"shareReplay\"])(1));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/location/base/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/location/hash/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/browser/location/hash/index.ts ***! + \***************************************************************/ +/*! exports provided: getLocationHash, setLocationHash, watchLocationHash */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getLocationHash\", function() { return getLocationHash; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setLocationHash\", function() { return setLocationHash; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchLocationHash\", function() { return watchLocationHash; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Retrieve location hash\n *\n * @return Location hash\n */\nfunction getLocationHash() {\n return location.hash.substring(1);\n}\n/**\n * Set location hash\n *\n * Setting a new fragment identifier via `location.hash` will have no effect\n * if the value doesn't change. When a new fragment identifier is set, we want\n * the browser to target the respective element at all times, which is why we\n * use this dirty little trick.\n *\n * @param hash - Location hash\n */\nfunction setLocationHash(hash) {\n var el = Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"])(\"a\");\n el.href = hash;\n el.addEventListener(\"click\", function (ev) { return ev.stopPropagation(); });\n el.click();\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Watch location hash\n *\n * @return Location hash observable\n */\nfunction watchLocationHash() {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(window, \"hashchange\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(getLocationHash), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"startWith\"])(getLocationHash()), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(function (hash) { return hash.length > 0; }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"share\"])());\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/location/hash/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/location/index.ts": +/*!**********************************************************!*\ + !*** ./src/assets/javascripts/browser/location/index.ts ***! + \**********************************************************/ +/*! exports provided: getLocation, setLocation, isLocalLocation, isAnchorLocation, watchLocation, watchLocationBase, getLocationHash, setLocationHash, watchLocationHash */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/browser/location/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getLocation\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"getLocation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setLocation\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"setLocation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isLocalLocation\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"isLocalLocation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isAnchorLocation\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"isAnchorLocation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchLocation\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"watchLocation\"]; });\n\n/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./base */ \"./src/assets/javascripts/browser/location/base/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchLocationBase\", function() { return _base__WEBPACK_IMPORTED_MODULE_1__[\"watchLocationBase\"]; });\n\n/* harmony import */ var _hash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./hash */ \"./src/assets/javascripts/browser/location/hash/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getLocationHash\", function() { return _hash__WEBPACK_IMPORTED_MODULE_2__[\"getLocationHash\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setLocationHash\", function() { return _hash__WEBPACK_IMPORTED_MODULE_2__[\"setLocationHash\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchLocationHash\", function() { return _hash__WEBPACK_IMPORTED_MODULE_2__[\"watchLocationHash\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/location/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/media/index.ts": +/*!*******************************************************!*\ + !*** ./src/assets/javascripts/browser/media/index.ts ***! + \*******************************************************/ +/*! exports provided: watchMedia */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchMedia\", function() { return watchMedia; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch media query\n *\n * @param query - Media query\n *\n * @return Media observable\n */\nfunction watchMedia(query) {\n var media = matchMedia(query);\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEventPattern\"])(function (next) {\n return media.addListener(function () { return next(media.matches); });\n })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"startWith\"])(media.matches), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"shareReplay\"])(1));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/media/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/toggle/index.ts": +/*!********************************************************!*\ + !*** ./src/assets/javascripts/browser/toggle/index.ts ***! + \********************************************************/ +/*! exports provided: getToggle, setToggle, watchToggle */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getToggle\", function() { return getToggle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setToggle\", function() { return setToggle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchToggle\", function() { return watchToggle; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var _element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../element */ \"./src/assets/javascripts/browser/element/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n/**\n * Toggle map\n */\nvar toggles = {\n drawer: Object(_element__WEBPACK_IMPORTED_MODULE_2__[\"getElementOrThrow\"])(\"[data-md-toggle=drawer]\"),\n search: Object(_element__WEBPACK_IMPORTED_MODULE_2__[\"getElementOrThrow\"])(\"[data-md-toggle=search]\")\n};\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Retrieve the value of a toggle\n *\n * @param name - Toggle\n *\n * @return Toggle value\n */\nfunction getToggle(name) {\n return toggles[name].checked;\n}\n/**\n * Set toggle\n *\n * Simulating a click event seems to be the most cross-browser compatible way\n * of changing the value while also emitting a `change` event. Before, Material\n * used `CustomEvent` to programmatically change the value of a toggle, but this\n * is a much simpler and cleaner solution which doesn't require a polyfill.\n *\n * @param name - Toggle\n * @param value - Toggle value\n */\nfunction setToggle(name, value) {\n if (toggles[name].checked !== value)\n toggles[name].click();\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Watch toggle\n *\n * @param name - Toggle\n *\n * @return Toggle value observable\n */\nfunction watchToggle(name) {\n var el = toggles[name];\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(el, \"change\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function () { return el.checked; }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"startWith\"])(el.checked));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/toggle/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/viewport/_/index.ts": +/*!************************************************************!*\ + !*** ./src/assets/javascripts/browser/viewport/_/index.ts ***! + \************************************************************/ +/*! exports provided: watchViewport, watchViewportAt */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchViewport\", function() { return watchViewport; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchViewportAt\", function() { return watchViewportAt; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var _offset__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../offset */ \"./src/assets/javascripts/browser/viewport/offset/index.ts\");\n/* harmony import */ var _size__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../size */ \"./src/assets/javascripts/browser/viewport/size/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch viewport\n *\n * @return Viewport observable\n */\nfunction watchViewport() {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"combineLatest\"])([\n Object(_offset__WEBPACK_IMPORTED_MODULE_3__[\"watchViewportOffset\"])(),\n Object(_size__WEBPACK_IMPORTED_MODULE_4__[\"watchViewportSize\"])()\n ])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), offset = _b[0], size = _b[1];\n return ({ offset: offset, size: size });\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"shareReplay\"])(1));\n}\n/**\n * Watch viewport relative to element\n *\n * @param el - Element\n * @param options - Options\n *\n * @return Viewport observable\n */\nfunction watchViewportAt(el, _a) {\n var header$ = _a.header$, viewport$ = _a.viewport$;\n var size$ = viewport$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"distinctUntilKeyChanged\"])(\"size\"));\n /* Compute element offset */\n var offset$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"combineLatest\"])([size$, header$])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function () { return ({\n x: el.offsetLeft,\n y: el.offsetTop\n }); }));\n /* Compute relative viewport, return hot observable */\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"combineLatest\"])([header$, viewport$, offset$])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 3), height = _b[0].height, _c = _b[1], offset = _c.offset, size = _c.size, _d = _b[2], x = _d.x, y = _d.y;\n return ({\n offset: {\n x: offset.x - x,\n y: offset.y - y + height\n },\n size: size\n });\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"shareReplay\"])(1));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/viewport/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/viewport/index.ts": +/*!**********************************************************!*\ + !*** ./src/assets/javascripts/browser/viewport/index.ts ***! + \**********************************************************/ +/*! exports provided: watchViewport, watchViewportAt, getViewportOffset, setViewportOffset, watchViewportOffset, getViewportSize, watchViewportSize */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/browser/viewport/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchViewport\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"watchViewport\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchViewportAt\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"watchViewportAt\"]; });\n\n/* harmony import */ var _offset__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./offset */ \"./src/assets/javascripts/browser/viewport/offset/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getViewportOffset\", function() { return _offset__WEBPACK_IMPORTED_MODULE_1__[\"getViewportOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setViewportOffset\", function() { return _offset__WEBPACK_IMPORTED_MODULE_1__[\"setViewportOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchViewportOffset\", function() { return _offset__WEBPACK_IMPORTED_MODULE_1__[\"watchViewportOffset\"]; });\n\n/* harmony import */ var _size__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./size */ \"./src/assets/javascripts/browser/viewport/size/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getViewportSize\", function() { return _size__WEBPACK_IMPORTED_MODULE_2__[\"getViewportSize\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchViewportSize\", function() { return _size__WEBPACK_IMPORTED_MODULE_2__[\"watchViewportSize\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/viewport/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/viewport/offset/index.ts": +/*!*****************************************************************!*\ + !*** ./src/assets/javascripts/browser/viewport/offset/index.ts ***! + \*****************************************************************/ +/*! exports provided: getViewportOffset, setViewportOffset, watchViewportOffset */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getViewportOffset\", function() { return getViewportOffset; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setViewportOffset\", function() { return setViewportOffset; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchViewportOffset\", function() { return watchViewportOffset; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Retrieve viewport offset\n *\n * On iOS Safari, viewport offset can be negative due to overflow scrolling.\n * As this may induce strange behaviors downstream, we'll just limit it to 0.\n *\n * @return Viewport offset\n */\nfunction getViewportOffset() {\n return {\n x: Math.max(0, pageXOffset),\n y: Math.max(0, pageYOffset)\n };\n}\n/**\n * Set viewport offset\n *\n * @param offset - Viewport offset\n */\nfunction setViewportOffset(_a) {\n var x = _a.x, y = _a.y;\n window.scrollTo(x || 0, y || 0);\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Watch viewport offset\n *\n * @return Viewport offset observable\n */\nfunction watchViewportOffset() {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"merge\"])(Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(window, \"scroll\", { passive: true }), Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(window, \"resize\", { passive: true }))\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(getViewportOffset), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"startWith\"])(getViewportOffset()));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/viewport/offset/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/viewport/size/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/browser/viewport/size/index.ts ***! + \***************************************************************/ +/*! exports provided: getViewportSize, watchViewportSize */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getViewportSize\", function() { return getViewportSize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchViewportSize\", function() { return watchViewportSize; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Retrieve viewport size\n *\n * @return Viewport size\n */\nfunction getViewportSize() {\n return {\n width: innerWidth,\n height: innerHeight\n };\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Watch viewport size\n *\n * @return Viewport size observable\n */\nfunction watchViewportSize() {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(window, \"resize\", { passive: true })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(getViewportSize), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"startWith\"])(getViewportSize()));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/viewport/size/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/browser/worker/index.ts": +/*!********************************************************!*\ + !*** ./src/assets/javascripts/browser/worker/index.ts ***! + \********************************************************/ +/*! exports provided: watchWorker */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchWorker\", function() { return watchWorker; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch a web worker\n *\n * This function returns an observable that will send all values emitted by the\n * message observable to the web worker. Web worker communication is expected\n * to be bidirectional (request-response) and synchronous. Messages that are\n * emitted during a pending request are throttled, the last one is emitted.\n *\n * @param worker - Web worker\n * @param options - Options\n *\n * @return Worker message observable\n */\nfunction watchWorker(worker, _a) {\n var tx$ = _a.tx$;\n /* Intercept messages from worker-like objects */\n var rx$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEventPattern\"])(function (next) {\n return worker.addEventListener(\"message\", next);\n })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"pluck\"])(\"data\"));\n /* Send and receive messages, return hot observable */\n return tx$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"throttle\"])(function () { return rx$; }, { leading: true, trailing: true }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"tap\"])(function (message) { return worker.postMessage(message); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMapTo\"])(rx$), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"share\"])());\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/browser/worker/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/_/index.ts": +/*!******************************************************!*\ + !*** ./src/assets/javascripts/components/_/index.ts ***! + \******************************************************/ +/*! exports provided: setupComponents, useComponent */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupComponents\", function() { return setupComponents; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"useComponent\", function() { return useComponent; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n/**\n * Component map observable\n */\nvar components$;\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set up bindings to components with given names\n *\n * This function will maintain bindings to the elements identified by the given\n * names in-between document switches and update the elements in-place.\n *\n * @param names - Component names\n * @param options - Options\n */\nfunction setupComponents(names, _a) {\n var document$ = _a.document$;\n components$ = document$\n .pipe(\n /* Build component map */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (document) { return names.reduce(function (components, name) {\n var _a;\n var el = Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElement\"])(\"[data-md-component=\" + name + \"]\", document);\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({}, components), typeof el !== \"undefined\" ? (_a = {}, _a[name] = el, _a) : {});\n }, {}); }), \n /* Re-compute component map on document switch */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"scan\"])(function (prev, next) {\n var e_1, _a;\n try {\n for (var names_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(names), names_1_1 = names_1.next(); !names_1_1.done; names_1_1 = names_1.next()) {\n var name = names_1_1.value;\n switch (name) {\n /* Top-level components: update */\n case \"announce\":\n case \"header-title\":\n case \"container\":\n case \"skip\":\n if (name in prev && typeof prev[name] !== \"undefined\") {\n Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"replaceElement\"])(prev[name], next[name]);\n prev[name] = next[name];\n }\n break;\n /* All other components: rebind */\n default:\n if (typeof next[name] !== \"undefined\")\n prev[name] = Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElement\"])(\"[data-md-component=\" + name + \"]\");\n else\n delete prev[name];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (names_1_1 && !names_1_1.done && (_a = names_1.return)) _a.call(names_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return prev;\n }), \n /* Convert to hot observable */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"shareReplay\"])(1));\n}\nfunction useComponent(name) {\n return components$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (components) { return (typeof components[name] !== \"undefined\"\n ? Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"of\"])(components[name])\n : rxjs__WEBPACK_IMPORTED_MODULE_1__[\"EMPTY\"]); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"distinctUntilChanged\"])());\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/header/_/index.ts": +/*!*************************************************************!*\ + !*** ./src/assets/javascripts/components/header/_/index.ts ***! + \*************************************************************/ +/*! exports provided: mountHeader */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountHeader\", function() { return mountHeader; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../_ */ \"./src/assets/javascripts/components/_/index.ts\");\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../react */ \"./src/assets/javascripts/components/header/react/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount header from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nfunction mountHeader(_a) {\n var document$ = _a.document$, viewport$ = _a.viewport$;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (el) {\n var header$ = Object(_react__WEBPACK_IMPORTED_MODULE_5__[\"watchHeader\"])(el, { document$: document$ });\n /* Compute whether the header should switch to page header */\n var type$ = Object(___WEBPACK_IMPORTED_MODULE_4__[\"useComponent\"])(\"main\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (main) { return Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElement\"])(\"h1, h2, h3, h4, h5, h6\", main); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"filter\"])(function (hx) { return typeof hx !== \"undefined\"; }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"withLatestFrom\"])(Object(___WEBPACK_IMPORTED_MODULE_4__[\"useComponent\"])(\"header-title\")), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), hx = _b[0], title = _b[1];\n return Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"watchViewportAt\"])(hx, { header$: header$, viewport$: viewport$ })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var y = _a.offset.y;\n return y >= hx.offsetHeight ? \"page\" : \"site\";\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"distinctUntilChanged\"])(), Object(_react__WEBPACK_IMPORTED_MODULE_5__[\"applyHeaderType\"])(title));\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"startWith\"])(\"site\"));\n /* Combine into single observable */\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"combineLatest\"])([header$, type$])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), header = _b[0], type = _b[1];\n return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({ type: type }, header));\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"shareReplay\"])(1));\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/header/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/header/index.ts": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/components/header/index.ts ***! + \***********************************************************/ +/*! exports provided: mountHeader, watchHeader, applyHeaderType, setHeaderTitleActive, resetHeaderTitleActive */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/header/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountHeader\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountHeader\"]; });\n\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ \"./src/assets/javascripts/components/header/react/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchHeader\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"watchHeader\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyHeaderType\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"applyHeaderType\"]; });\n\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./set */ \"./src/assets/javascripts/components/header/set/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setHeaderTitleActive\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"setHeaderTitleActive\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetHeaderTitleActive\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetHeaderTitleActive\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/header/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/header/react/index.ts": +/*!*****************************************************************!*\ + !*** ./src/assets/javascripts/components/header/react/index.ts ***! + \*****************************************************************/ +/*! exports provided: watchHeader, applyHeaderType */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchHeader\", function() { return watchHeader; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"applyHeaderType\", function() { return applyHeaderType; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../set */ \"./src/assets/javascripts/components/header/set/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch header\n *\n * @param el - Header element\n *\n * @return Header observable\n */\nfunction watchHeader(el, _a) {\n var document$ = _a.document$;\n return document$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function () {\n var styles = getComputedStyle(el);\n return [\n \"sticky\",\n \"-webkit-sticky\" /* Safari */\n ].includes(styles.position);\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"distinctUntilChanged\"])(), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (sticky) {\n if (sticky) {\n return Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"watchElementSize\"])(el)\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (_a) {\n var height = _a.height;\n return ({\n sticky: true,\n height: height\n });\n }));\n }\n else {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"of\"])({\n sticky: false,\n height: 0\n });\n }\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"shareReplay\"])(1));\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Apply header title type\n *\n * @param el - Header title element\n *\n * @return Operator function\n */\nfunction applyHeaderType(el) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"pipe\"])(\n /* Defer repaint to next animation frame */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"animationFrameScheduler\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"tap\"])(function (type) {\n Object(_set__WEBPACK_IMPORTED_MODULE_3__[\"setHeaderTitleActive\"])(el, type === \"page\");\n }), \n /* Reset on complete or error */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"finalize\"])(function () {\n Object(_set__WEBPACK_IMPORTED_MODULE_3__[\"resetHeaderTitleActive\"])(el);\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/header/react/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/header/set/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/components/header/set/index.ts ***! + \***************************************************************/ +/*! exports provided: setHeaderTitleActive, resetHeaderTitleActive */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setHeaderTitleActive\", function() { return setHeaderTitleActive; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetHeaderTitleActive\", function() { return resetHeaderTitleActive; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set header title active\n *\n * @param el - Header title element\n * @param value - Whether the title is shown\n */\nfunction setHeaderTitleActive(el, value) {\n el.setAttribute(\"data-md-state\", value ? \"active\" : \"\");\n}\n/**\n * Reset header title active\n *\n * @param el - Header title element\n */\nfunction resetHeaderTitleActive(el) {\n el.removeAttribute(\"data-md-state\");\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/header/set/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/hero/_/index.ts": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/components/hero/_/index.ts ***! + \***********************************************************/ +/*! exports provided: mountHero */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountHero\", function() { return mountHero; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../react */ \"./src/assets/javascripts/components/hero/react/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount hero from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nfunction mountHero(_a) {\n var header$ = _a.header$, viewport$ = _a.viewport$;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (el) { return Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"watchViewportAt\"])(el, { header$: header$, viewport$: viewport$ })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (_a) {\n var y = _a.offset.y;\n return ({ hidden: y >= 20 });\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"distinctUntilKeyChanged\"])(\"hidden\"), Object(_react__WEBPACK_IMPORTED_MODULE_3__[\"applyHero\"])(el)); }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/hero/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/hero/index.ts": +/*!*********************************************************!*\ + !*** ./src/assets/javascripts/components/hero/index.ts ***! + \*********************************************************/ +/*! exports provided: mountHero, applyHero, setHeroHidden, resetHeroHidden */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/hero/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountHero\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountHero\"]; });\n\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ \"./src/assets/javascripts/components/hero/react/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyHero\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"applyHero\"]; });\n\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./set */ \"./src/assets/javascripts/components/hero/set/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setHeroHidden\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"setHeroHidden\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetHeroHidden\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetHeroHidden\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/hero/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/hero/react/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/components/hero/react/index.ts ***! + \***************************************************************/ +/*! exports provided: applyHero */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"applyHero\", function() { return applyHero; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../set */ \"./src/assets/javascripts/components/hero/set/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Apply hero\n *\n * @param el - Hero element\n *\n * @return Operator function\n */\nfunction applyHero(el) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"pipe\"])(\n /* Defer repaint to next animation frame */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"animationFrameScheduler\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"tap\"])(function (_a) {\n var hidden = _a.hidden;\n Object(_set__WEBPACK_IMPORTED_MODULE_2__[\"setHeroHidden\"])(el, hidden);\n }), \n /* Reset on complete or error */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"finalize\"])(function () {\n Object(_set__WEBPACK_IMPORTED_MODULE_2__[\"resetHeroHidden\"])(el);\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/hero/react/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/hero/set/index.ts": +/*!*************************************************************!*\ + !*** ./src/assets/javascripts/components/hero/set/index.ts ***! + \*************************************************************/ +/*! exports provided: setHeroHidden, resetHeroHidden */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setHeroHidden\", function() { return setHeroHidden; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetHeroHidden\", function() { return resetHeroHidden; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set hero hidden\n *\n * @param el - Hero element\n * @param value - Whether the element is hidden\n */\nfunction setHeroHidden(el, value) {\n el.setAttribute(\"data-md-state\", value ? \"hidden\" : \"\");\n}\n/**\n * Reset hero hidden\n *\n * @param el - Hero element\n */\nfunction resetHeroHidden(el) {\n el.removeAttribute(\"data-md-state\");\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/hero/set/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/index.ts": +/*!****************************************************!*\ + !*** ./src/assets/javascripts/components/index.ts ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupComponents\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"setupComponents\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useComponent\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"useComponent\"]; });\n\n/* harmony import */ var _header__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./header */ \"./src/assets/javascripts/components/header/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountHeader\", function() { return _header__WEBPACK_IMPORTED_MODULE_1__[\"mountHeader\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchHeader\", function() { return _header__WEBPACK_IMPORTED_MODULE_1__[\"watchHeader\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyHeaderType\", function() { return _header__WEBPACK_IMPORTED_MODULE_1__[\"applyHeaderType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setHeaderTitleActive\", function() { return _header__WEBPACK_IMPORTED_MODULE_1__[\"setHeaderTitleActive\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetHeaderTitleActive\", function() { return _header__WEBPACK_IMPORTED_MODULE_1__[\"resetHeaderTitleActive\"]; });\n\n/* harmony import */ var _hero__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./hero */ \"./src/assets/javascripts/components/hero/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountHero\", function() { return _hero__WEBPACK_IMPORTED_MODULE_2__[\"mountHero\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyHero\", function() { return _hero__WEBPACK_IMPORTED_MODULE_2__[\"applyHero\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setHeroHidden\", function() { return _hero__WEBPACK_IMPORTED_MODULE_2__[\"setHeroHidden\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetHeroHidden\", function() { return _hero__WEBPACK_IMPORTED_MODULE_2__[\"resetHeroHidden\"]; });\n\n/* harmony import */ var _main__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./main */ \"./src/assets/javascripts/components/main/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountMain\", function() { return _main__WEBPACK_IMPORTED_MODULE_3__[\"mountMain\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchMain\", function() { return _main__WEBPACK_IMPORTED_MODULE_3__[\"watchMain\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyHeaderShadow\", function() { return _main__WEBPACK_IMPORTED_MODULE_3__[\"applyHeaderShadow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setHeaderShadow\", function() { return _main__WEBPACK_IMPORTED_MODULE_3__[\"setHeaderShadow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetHeaderShadow\", function() { return _main__WEBPACK_IMPORTED_MODULE_3__[\"resetHeaderShadow\"]; });\n\n/* harmony import */ var _navigation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./navigation */ \"./src/assets/javascripts/components/navigation/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountNavigation\", function() { return _navigation__WEBPACK_IMPORTED_MODULE_4__[\"mountNavigation\"]; });\n\n/* harmony import */ var _search__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./search */ \"./src/assets/javascripts/components/search/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearch\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"mountSearch\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearchQuery\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"mountSearchQuery\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchSearchQuery\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"watchSearchQuery\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearchReset\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"mountSearchReset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchSearchReset\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"watchSearchReset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearchResult\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"mountSearchResult\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applySearchResult\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"applySearchResult\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setSearchResultMeta\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"setSearchResultMeta\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetSearchResultMeta\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"resetSearchResultMeta\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"addToSearchResultList\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"addToSearchResultList\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetSearchResultList\", function() { return _search__WEBPACK_IMPORTED_MODULE_5__[\"resetSearchResultList\"]; });\n\n/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./shared */ \"./src/assets/javascripts/components/shared/index.ts\");\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _shared__WEBPACK_IMPORTED_MODULE_6__) if([\"setupComponents\",\"useComponent\",\"mountHeader\",\"watchHeader\",\"applyHeaderType\",\"setHeaderTitleActive\",\"resetHeaderTitleActive\",\"mountHero\",\"applyHero\",\"setHeroHidden\",\"resetHeroHidden\",\"mountMain\",\"watchMain\",\"applyHeaderShadow\",\"setHeaderShadow\",\"resetHeaderShadow\",\"mountNavigation\",\"mountSearch\",\"mountSearchQuery\",\"watchSearchQuery\",\"mountSearchReset\",\"watchSearchReset\",\"mountSearchResult\",\"applySearchResult\",\"setSearchResultMeta\",\"resetSearchResultMeta\",\"addToSearchResultList\",\"resetSearchResultList\",\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _shared__WEBPACK_IMPORTED_MODULE_6__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _tabs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./tabs */ \"./src/assets/javascripts/components/tabs/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountTabs\", function() { return _tabs__WEBPACK_IMPORTED_MODULE_7__[\"mountTabs\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyTabs\", function() { return _tabs__WEBPACK_IMPORTED_MODULE_7__[\"applyTabs\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setTabsHidden\", function() { return _tabs__WEBPACK_IMPORTED_MODULE_7__[\"setTabsHidden\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetTabsHidden\", function() { return _tabs__WEBPACK_IMPORTED_MODULE_7__[\"resetTabsHidden\"]; });\n\n/* harmony import */ var _toc__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./toc */ \"./src/assets/javascripts/components/toc/index.ts\");\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _toc__WEBPACK_IMPORTED_MODULE_8__) if([\"setupComponents\",\"useComponent\",\"mountHeader\",\"watchHeader\",\"applyHeaderType\",\"setHeaderTitleActive\",\"resetHeaderTitleActive\",\"mountHero\",\"applyHero\",\"setHeroHidden\",\"resetHeroHidden\",\"mountMain\",\"watchMain\",\"applyHeaderShadow\",\"setHeaderShadow\",\"resetHeaderShadow\",\"mountNavigation\",\"mountSearch\",\"mountSearchQuery\",\"watchSearchQuery\",\"mountSearchReset\",\"watchSearchReset\",\"mountSearchResult\",\"applySearchResult\",\"setSearchResultMeta\",\"resetSearchResultMeta\",\"addToSearchResultList\",\"resetSearchResultList\",\"mountTabs\",\"applyTabs\",\"setTabsHidden\",\"resetTabsHidden\",\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _toc__WEBPACK_IMPORTED_MODULE_8__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/main/_/index.ts": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/components/main/_/index.ts ***! + \***********************************************************/ +/*! exports provided: mountMain */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountMain\", function() { return mountMain; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_ */ \"./src/assets/javascripts/components/_/index.ts\");\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../react */ \"./src/assets/javascripts/components/main/react/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount main area from source observable\n *\n * The header must be connected to the main area observable outside of the\n * operator function, as the header will persist in-between document switches\n * while the main area is replaced. However, the header observable must be\n * passed to this function, so we connect both via a long-living subject.\n *\n * @param options - Options\n *\n * @return Operator function\n */\nfunction mountMain(_a) {\n var header$ = _a.header$, viewport$ = _a.viewport$;\n var main$ = new rxjs__WEBPACK_IMPORTED_MODULE_0__[\"Subject\"]();\n /* Connect to main area observable via long-living subject */\n Object(___WEBPACK_IMPORTED_MODULE_2__[\"useComponent\"])(\"header\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (header) { return main$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"distinctUntilKeyChanged\"])(\"active\"), Object(_react__WEBPACK_IMPORTED_MODULE_3__[\"applyHeaderShadow\"])(header)); }))\n .subscribe();\n /* Return operator */\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (el) { return Object(_react__WEBPACK_IMPORTED_MODULE_3__[\"watchMain\"])(el, { header$: header$, viewport$: viewport$ }); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"tap\"])(function (main) { return main$.next(main); }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/main/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/main/index.ts": +/*!*********************************************************!*\ + !*** ./src/assets/javascripts/components/main/index.ts ***! + \*********************************************************/ +/*! exports provided: mountMain, watchMain, applyHeaderShadow, setHeaderShadow, resetHeaderShadow */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/main/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountMain\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountMain\"]; });\n\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ \"./src/assets/javascripts/components/main/react/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchMain\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"watchMain\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyHeaderShadow\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"applyHeaderShadow\"]; });\n\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./set */ \"./src/assets/javascripts/components/main/set/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setHeaderShadow\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"setHeaderShadow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetHeaderShadow\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetHeaderShadow\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/main/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/main/react/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/components/main/react/index.ts ***! + \***************************************************************/ +/*! exports provided: watchMain, applyHeaderShadow */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchMain\", function() { return watchMain; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"applyHeaderShadow\", function() { return applyHeaderShadow; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../set */ \"./src/assets/javascripts/components/main/set/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch main area\n *\n * This function returns an observable that computes the visual parameters of\n * the main area which depends on the viewport vertical offset and height, as\n * well as the height of the header element, if the header is fixed.\n *\n * @param el - Main area element\n * @param options - Options\n *\n * @return Main area observable\n */\nfunction watchMain(el, _a) {\n var header$ = _a.header$, viewport$ = _a.viewport$;\n /* Compute necessary adjustment for header */\n var adjust$ = header$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"pluck\"])(\"height\"), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"distinctUntilChanged\"])(), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"shareReplay\"])(1));\n /* Compute the main area's top and bottom borders */\n var border$ = adjust$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function () { return Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"watchElementSize\"])(el)\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var height = _a.height;\n return ({\n top: el.offsetTop,\n bottom: el.offsetTop + height\n });\n })); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"distinctUntilKeyChanged\"])(\"bottom\"), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"shareReplay\"])(1));\n /* Compute the main area's offset, visible height and if we scrolled past */\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"combineLatest\"])([adjust$, border$, viewport$])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 3), header = _b[0], _c = _b[1], top = _c.top, bottom = _c.bottom, _d = _b[2], y = _d.offset.y, height = _d.size.height;\n height = Math.max(0, height\n - Math.max(0, top - y, header)\n - Math.max(0, height + y - bottom));\n return {\n offset: top - header,\n height: height,\n active: top - header <= y\n };\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"distinctUntilChanged\"])(function (a, b) {\n return a.offset === b.offset\n && a.height === b.height\n && a.active === b.active;\n }));\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Apply header shadow\n *\n * @param el - Header element\n *\n * @return Operator function\n */\nfunction applyHeaderShadow(el) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"pipe\"])(\n /* Defer repaint to next animation frame */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"animationFrameScheduler\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"tap\"])(function (_a) {\n var active = _a.active;\n Object(_set__WEBPACK_IMPORTED_MODULE_4__[\"setHeaderShadow\"])(el, active);\n }), \n /* Reset on complete or error */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"finalize\"])(function () {\n Object(_set__WEBPACK_IMPORTED_MODULE_4__[\"resetHeaderShadow\"])(el);\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/main/react/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/main/set/index.ts": +/*!*************************************************************!*\ + !*** ./src/assets/javascripts/components/main/set/index.ts ***! + \*************************************************************/ +/*! exports provided: setHeaderShadow, resetHeaderShadow */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setHeaderShadow\", function() { return setHeaderShadow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetHeaderShadow\", function() { return resetHeaderShadow; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set header shadow\n *\n * @param el - Header element\n * @param value - Whether the shadow is shown\n */\nfunction setHeaderShadow(el, value) {\n el.setAttribute(\"data-md-state\", value ? \"shadow\" : \"\");\n}\n/**\n * Reset header shadow\n *\n * @param el - Header element\n */\nfunction resetHeaderShadow(el) {\n el.removeAttribute(\"data-md-state\");\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/main/set/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/navigation/_/index.ts": +/*!*****************************************************************!*\ + !*** ./src/assets/javascripts/components/navigation/_/index.ts ***! + \*****************************************************************/ +/*! exports provided: mountNavigation */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountNavigation\", function() { return mountNavigation; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared */ \"./src/assets/javascripts/components/shared/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount navigation from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nfunction mountNavigation(_a) {\n var header$ = _a.header$, main$ = _a.main$, viewport$ = _a.viewport$, screen$ = _a.screen$;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (el) { return screen$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (screen) {\n /* [screen +]: Mount navigation in sidebar */\n if (screen) {\n return Object(_shared__WEBPACK_IMPORTED_MODULE_2__[\"watchSidebar\"])(el, { main$: main$, viewport$: viewport$ })\n .pipe(Object(_shared__WEBPACK_IMPORTED_MODULE_2__[\"applySidebar\"])(el, { header$: header$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (sidebar) { return ({ sidebar: sidebar }); }));\n /* [screen -]: Mount navigation in drawer */\n }\n else {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"of\"])({});\n }\n })); }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/navigation/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/navigation/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/components/navigation/index.ts ***! + \***************************************************************/ +/*! exports provided: mountNavigation */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/navigation/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountNavigation\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountNavigation\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/navigation/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/_/index.ts": +/*!*************************************************************!*\ + !*** ./src/assets/javascripts/components/search/_/index.ts ***! + \*************************************************************/ +/*! exports provided: mountSearch */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountSearch\", function() { return mountSearch; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var integrations_search__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! integrations/search */ \"./src/assets/javascripts/integrations/search/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount search from source observable\n *\n * @param handler - Worker handler\n * @param options - Options\n *\n * @return Operator function\n */\nfunction mountSearch(_a, _b) {\n var rx$ = _a.rx$, tx$ = _a.tx$;\n var query$ = _b.query$, reset$ = _b.reset$, result$ = _b.result$;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function () {\n /* Compute search status */\n var status$ = rx$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"filter\"])(integrations_search__WEBPACK_IMPORTED_MODULE_3__[\"isSearchReadyMessage\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"mapTo\"])(\"ready\"), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"startWith\"])(\"waiting\"));\n /* Re-emit the latest query when search is ready */\n tx$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"filter\"])(integrations_search__WEBPACK_IMPORTED_MODULE_3__[\"isSearchQueryMessage\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"sample\"])(status$), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"take\"])(1))\n .subscribe(tx$.next.bind(tx$));\n /* Combine into single observable */\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"combineLatest\"])([status$, query$, result$, reset$])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 3), status = _b[0], query = _b[1], result = _b[2];\n return ({\n status: status,\n query: query,\n result: result\n });\n }));\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/index.ts": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/components/search/index.ts ***! + \***********************************************************/ +/*! exports provided: mountSearch, mountSearchQuery, watchSearchQuery, mountSearchReset, watchSearchReset, mountSearchResult, applySearchResult, setSearchResultMeta, resetSearchResultMeta, addToSearchResultList, resetSearchResultList */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/search/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearch\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountSearch\"]; });\n\n/* harmony import */ var _query__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query */ \"./src/assets/javascripts/components/search/query/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearchQuery\", function() { return _query__WEBPACK_IMPORTED_MODULE_1__[\"mountSearchQuery\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchSearchQuery\", function() { return _query__WEBPACK_IMPORTED_MODULE_1__[\"watchSearchQuery\"]; });\n\n/* harmony import */ var _reset__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reset */ \"./src/assets/javascripts/components/search/reset/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearchReset\", function() { return _reset__WEBPACK_IMPORTED_MODULE_2__[\"mountSearchReset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchSearchReset\", function() { return _reset__WEBPACK_IMPORTED_MODULE_2__[\"watchSearchReset\"]; });\n\n/* harmony import */ var _result__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./result */ \"./src/assets/javascripts/components/search/result/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearchResult\", function() { return _result__WEBPACK_IMPORTED_MODULE_3__[\"mountSearchResult\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applySearchResult\", function() { return _result__WEBPACK_IMPORTED_MODULE_3__[\"applySearchResult\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setSearchResultMeta\", function() { return _result__WEBPACK_IMPORTED_MODULE_3__[\"setSearchResultMeta\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetSearchResultMeta\", function() { return _result__WEBPACK_IMPORTED_MODULE_3__[\"resetSearchResultMeta\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"addToSearchResultList\", function() { return _result__WEBPACK_IMPORTED_MODULE_3__[\"addToSearchResultList\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetSearchResultList\", function() { return _result__WEBPACK_IMPORTED_MODULE_3__[\"resetSearchResultList\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/query/_/index.ts": +/*!*******************************************************************!*\ + !*** ./src/assets/javascripts/components/search/query/_/index.ts ***! + \*******************************************************************/ +/*! exports provided: mountSearchQuery */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountSearchQuery\", function() { return mountSearchQuery; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var integrations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! integrations */ \"./src/assets/javascripts/integrations/index.ts\");\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../react */ \"./src/assets/javascripts/components/search/query/react/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount search query from source observable\n *\n * @param handler - Worker handler\n * @param options - Options\n *\n * @return Operator function\n */\nfunction mountSearchQuery(_a, options) {\n var tx$ = _a.tx$;\n if (options === void 0) { options = {}; }\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (el) {\n var query$ = Object(_react__WEBPACK_IMPORTED_MODULE_4__[\"watchSearchQuery\"])(el, options);\n /* Subscribe worker to search query */\n query$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"distinctUntilKeyChanged\"])(\"value\"), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (_a) {\n var value = _a.value;\n return ({\n type: integrations__WEBPACK_IMPORTED_MODULE_3__[\"SearchMessageType\"].QUERY,\n data: value\n });\n }))\n .subscribe(tx$.next.bind(tx$));\n /* Toggle search on focus */\n query$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"distinctUntilKeyChanged\"])(\"focus\"))\n .subscribe(function (_a) {\n var focus = _a.focus;\n if (focus)\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"setToggle\"])(\"search\", focus);\n });\n /* Return search query */\n return query$;\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/query/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/query/index.ts": +/*!*****************************************************************!*\ + !*** ./src/assets/javascripts/components/search/query/index.ts ***! + \*****************************************************************/ +/*! exports provided: mountSearchQuery, watchSearchQuery */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/search/query/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearchQuery\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountSearchQuery\"]; });\n\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ \"./src/assets/javascripts/components/search/query/react/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchSearchQuery\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"watchSearchQuery\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/query/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/query/react/index.ts": +/*!***********************************************************************!*\ + !*** ./src/assets/javascripts/components/search/query/react/index.ts ***! + \***********************************************************************/ +/*! exports provided: watchSearchQuery */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchSearchQuery\", function() { return watchSearchQuery; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var integrations__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! integrations */ \"./src/assets/javascripts/integrations/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch search query\n *\n * Note that the focus event which triggers re-reading the current query value\n * is delayed by `1ms` so the input's empty state is allowed to propagate.\n *\n * @param el - Search query element\n * @param options - Options\n *\n * @return Search query observable\n */\nfunction watchSearchQuery(el, _a) {\n var transform = (_a === void 0 ? {} : _a).transform;\n var fn = transform || integrations__WEBPACK_IMPORTED_MODULE_4__[\"defaultTransform\"];\n /* Intercept keyboard events */\n var value$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"merge\"])(Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"fromEvent\"])(el, \"keyup\"), Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"fromEvent\"])(el, \"focus\").pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"delay\"])(1)))\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function () { return fn(el.value); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"startWith\"])(fn(el.value)), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"distinctUntilChanged\"])());\n /* Intercept focus events */\n var focus$ = Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"watchElementFocus\"])(el);\n /* Combine into single observable */\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"combineLatest\"])([value$, focus$])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), value = _b[0], focus = _b[1];\n return ({ value: value, focus: focus });\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/query/react/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/reset/_/index.ts": +/*!*******************************************************************!*\ + !*** ./src/assets/javascripts/components/search/reset/_/index.ts ***! + \*******************************************************************/ +/*! exports provided: mountSearchReset */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountSearchReset\", function() { return mountSearchReset; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../_ */ \"./src/assets/javascripts/components/_/index.ts\");\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../react */ \"./src/assets/javascripts/components/search/reset/react/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount search reset from source observable\n *\n * @return Operator function\n */\nfunction mountSearchReset() {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (el) { return Object(_react__WEBPACK_IMPORTED_MODULE_4__[\"watchSearchReset\"])(el)\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMapTo\"])(Object(___WEBPACK_IMPORTED_MODULE_3__[\"useComponent\"])(\"search-query\")), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"tap\"])(browser__WEBPACK_IMPORTED_MODULE_2__[\"setElementFocus\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"mapTo\"])(undefined)); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"startWith\"])(undefined));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/reset/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/reset/index.ts": +/*!*****************************************************************!*\ + !*** ./src/assets/javascripts/components/search/reset/index.ts ***! + \*****************************************************************/ +/*! exports provided: mountSearchReset, watchSearchReset */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/search/reset/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearchReset\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountSearchReset\"]; });\n\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ \"./src/assets/javascripts/components/search/reset/react/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchSearchReset\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"watchSearchReset\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/reset/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/reset/react/index.ts": +/*!***********************************************************************!*\ + !*** ./src/assets/javascripts/components/search/reset/react/index.ts ***! + \***********************************************************************/ +/*! exports provided: watchSearchReset */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchSearchReset\", function() { return watchSearchReset; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch search reset\n *\n * @param el - Search reset element\n *\n * @return Search reset observable\n */\nfunction watchSearchReset(el) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"fromEvent\"])(el, \"click\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"mapTo\"])(undefined));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/reset/react/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/result/_/index.ts": +/*!********************************************************************!*\ + !*** ./src/assets/javascripts/components/search/result/_/index.ts ***! + \********************************************************************/ +/*! exports provided: mountSearchResult */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountSearchResult\", function() { return mountSearchResult; });\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/index.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var integrations__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! integrations */ \"./src/assets/javascripts/integrations/index.ts\");\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../react */ \"./src/assets/javascripts/components/search/result/react/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount search result from source observable\n *\n * @param handler - Worker handler\n * @param options - Options\n *\n * @return Operator function\n */\nfunction mountSearchResult(_a, _b) {\n var rx$ = _a.rx$;\n var query$ = _b.query$;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (el) {\n var container = el.parentElement;\n /* Compute if search is ready */\n var ready$ = rx$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"filter\"])(integrations__WEBPACK_IMPORTED_MODULE_4__[\"isSearchReadyMessage\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"mapTo\"])(true));\n /* Compute whether there are more search results to fetch */\n var fetch$ = Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"watchElementOffset\"])(container)\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var y = _a.y;\n return y >= container.scrollHeight - container.offsetHeight - 16;\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"distinctUntilChanged\"])(), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"filter\"])(ramda__WEBPACK_IMPORTED_MODULE_0__[\"identity\"]));\n /* Apply search results */\n return rx$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"filter\"])(integrations__WEBPACK_IMPORTED_MODULE_4__[\"isSearchResultMessage\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"pluck\"])(\"data\"), Object(_react__WEBPACK_IMPORTED_MODULE_5__[\"applySearchResult\"])(el, { query$: query$, ready$: ready$, fetch$: fetch$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"startWith\"])([]));\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/result/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/result/index.ts": +/*!******************************************************************!*\ + !*** ./src/assets/javascripts/components/search/result/index.ts ***! + \******************************************************************/ +/*! exports provided: mountSearchResult, applySearchResult, setSearchResultMeta, resetSearchResultMeta, addToSearchResultList, resetSearchResultList */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/search/result/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountSearchResult\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountSearchResult\"]; });\n\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ \"./src/assets/javascripts/components/search/result/react/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applySearchResult\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"applySearchResult\"]; });\n\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./set */ \"./src/assets/javascripts/components/search/result/set/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setSearchResultMeta\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"setSearchResultMeta\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetSearchResultMeta\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetSearchResultMeta\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"addToSearchResultList\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"addToSearchResultList\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetSearchResultList\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetSearchResultList\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/result/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/result/react/index.ts": +/*!************************************************************************!*\ + !*** ./src/assets/javascripts/components/search/result/react/index.ts ***! + \************************************************************************/ +/*! exports provided: applySearchResult */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"applySearchResult\", function() { return applySearchResult; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var templates__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! templates */ \"./src/assets/javascripts/templates/index.ts\");\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../set */ \"./src/assets/javascripts/components/search/result/set/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Apply search results\n *\n * This function will perform a lazy rendering of the search results, depending\n * on the vertical offset of the search result container. When the scroll offset\n * reaches the bottom of the element, more results are fetched and rendered.\n *\n * @param el - Search result element\n * @param options - Options\n *\n * @return Operator function\n */\nfunction applySearchResult(el, _a) {\n var query$ = _a.query$, ready$ = _a.ready$, fetch$ = _a.fetch$;\n var list = Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElementOrThrow\"])(\".md-search-result__list\", el);\n var meta = Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElementOrThrow\"])(\".md-search-result__meta\", el);\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"pipe\"])(\n /* Apply search result metadata */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"withLatestFrom\"])(query$, ready$), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), result = _b[0], query = _b[1];\n if (query.value) {\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"setSearchResultMeta\"])(meta, result.length);\n }\n else {\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"resetSearchResultMeta\"])(meta);\n }\n return result;\n }), \n /* Apply search result list */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (result) { return fetch$\n .pipe(\n /* Defer repaint to next animation frame */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"animationFrameScheduler\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"scan\"])(function (index) {\n var container = el.parentElement;\n while (index < result.length) {\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"addToSearchResultList\"])(list, Object(templates__WEBPACK_IMPORTED_MODULE_4__[\"renderSearchResult\"])(result[index++]));\n if (container.scrollHeight - container.offsetHeight > 16)\n break;\n }\n return index;\n }, 0), \n /* Re-map to search result */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"mapTo\"])(result), \n /* Reset on complete or error */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"finalize\"])(function () {\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"resetSearchResultList\"])(list);\n })); }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/result/react/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/search/result/set/index.ts": +/*!**********************************************************************!*\ + !*** ./src/assets/javascripts/components/search/result/set/index.ts ***! + \**********************************************************************/ +/*! exports provided: setSearchResultMeta, resetSearchResultMeta, addToSearchResultList, resetSearchResultList */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setSearchResultMeta\", function() { return setSearchResultMeta; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetSearchResultMeta\", function() { return resetSearchResultMeta; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addToSearchResultList\", function() { return addToSearchResultList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetSearchResultList\", function() { return resetSearchResultList; });\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set number of search results\n *\n * @param el - Search result metadata element\n * @param value - Number of results\n */\nfunction setSearchResultMeta(el, value) {\n switch (value) {\n /* No results */\n case 0:\n el.textContent = Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"translate\"])(\"search.result.none\");\n break;\n /* One result */\n case 1:\n el.textContent = Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"translate\"])(\"search.result.one\");\n break;\n /* Multiple result */\n default:\n el.textContent = Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"translate\"])(\"search.result.other\", value.toString());\n }\n}\n/**\n * Reset number of search results\n *\n * @param el - Search result metadata element\n */\nfunction resetSearchResultMeta(el) {\n el.textContent = Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"translate\"])(\"search.result.placeholder\");\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Add an element to the search result list\n *\n * @param el - Search result list element\n * @param child - Search result element\n */\nfunction addToSearchResultList(el, child) {\n el.appendChild(child);\n}\n/**\n * Reset search result list\n *\n * @param el - Search result list element\n */\nfunction resetSearchResultList(el) {\n el.innerHTML = \"\";\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/search/result/set/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/shared/index.ts": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/components/shared/index.ts ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _sidebar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sidebar */ \"./src/assets/javascripts/components/shared/sidebar/index.ts\");\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _sidebar__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _sidebar__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/shared/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/shared/sidebar/_/index.ts": +/*!*********************************************************************!*\ + !*** ./src/assets/javascripts/components/shared/sidebar/_/index.ts ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/shared/sidebar/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/shared/sidebar/index.ts": +/*!*******************************************************************!*\ + !*** ./src/assets/javascripts/components/shared/sidebar/index.ts ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/shared/sidebar/_/index.ts\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in ___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return ___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ \"./src/assets/javascripts/components/shared/sidebar/react/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchSidebar\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"watchSidebar\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applySidebar\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"applySidebar\"]; });\n\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./set */ \"./src/assets/javascripts/components/shared/sidebar/set/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setSidebarOffset\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"setSidebarOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetSidebarOffset\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetSidebarOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setSidebarHeight\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"setSidebarHeight\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetSidebarHeight\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetSidebarHeight\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/shared/sidebar/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/shared/sidebar/react/index.ts": +/*!*************************************************************************!*\ + !*** ./src/assets/javascripts/components/shared/sidebar/react/index.ts ***! + \*************************************************************************/ +/*! exports provided: watchSidebar, applySidebar */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchSidebar\", function() { return watchSidebar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"applySidebar\", function() { return applySidebar; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../set */ \"./src/assets/javascripts/components/shared/sidebar/set/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch sidebar\n *\n * This function returns an observable that computes the visual parameters of\n * the sidebar which depends on the vertical viewport offset, as well as the\n * height of the main area. When the page is scrolled beyond the header, the\n * sidebar is locked and fills the remaining space.\n *\n * @param el - Sidebar element\n * @param options - Options\n *\n * @return Sidebar observable\n */\nfunction watchSidebar(el, _a) {\n var main$ = _a.main$, viewport$ = _a.viewport$;\n var adjust = el.parentElement.offsetTop\n - el.parentElement.parentElement.offsetTop;\n /* Compute the sidebar's available height and if it should be locked */\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"combineLatest\"])([main$, viewport$])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), _c = _b[0], offset = _c.offset, height = _c.height, y = _b[1].offset.y;\n height = height\n + Math.min(adjust, Math.max(0, y - offset))\n - adjust;\n return {\n height: height,\n lock: y >= offset + adjust\n };\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"distinctUntilChanged\"])(function (a, b) {\n return a.height === b.height\n && a.lock === b.lock;\n }));\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Apply sidebar\n *\n * @param el - Sidebar element\n * @param options - Options\n *\n * @return Operator function\n */\nfunction applySidebar(el, _a) {\n var header$ = _a.header$;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"pipe\"])(\n /* Defer repaint to next animation frame */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"animationFrameScheduler\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"withLatestFrom\"])(header$), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"tap\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), _c = _b[0], height = _c.height, lock = _c.lock, offset = _b[1].height;\n Object(_set__WEBPACK_IMPORTED_MODULE_3__[\"setSidebarHeight\"])(el, height);\n /* Set offset in locked state depending on header height */\n if (lock)\n Object(_set__WEBPACK_IMPORTED_MODULE_3__[\"setSidebarOffset\"])(el, offset);\n else\n Object(_set__WEBPACK_IMPORTED_MODULE_3__[\"resetSidebarOffset\"])(el);\n }), \n /* Re-map to sidebar */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 1), sidebar = _b[0];\n return sidebar;\n }), \n /* Reset on complete or error */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"finalize\"])(function () {\n Object(_set__WEBPACK_IMPORTED_MODULE_3__[\"resetSidebarOffset\"])(el);\n Object(_set__WEBPACK_IMPORTED_MODULE_3__[\"resetSidebarHeight\"])(el);\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/shared/sidebar/react/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/shared/sidebar/set/index.ts": +/*!***********************************************************************!*\ + !*** ./src/assets/javascripts/components/shared/sidebar/set/index.ts ***! + \***********************************************************************/ +/*! exports provided: setSidebarOffset, resetSidebarOffset, setSidebarHeight, resetSidebarHeight */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setSidebarOffset\", function() { return setSidebarOffset; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetSidebarOffset\", function() { return resetSidebarOffset; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setSidebarHeight\", function() { return setSidebarHeight; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetSidebarHeight\", function() { return resetSidebarHeight; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set sidebar offset\n *\n * @param el - Sidebar element\n * @param value - Sidebar offset\n */\nfunction setSidebarOffset(el, value) {\n el.style.top = value + \"px\";\n}\n/**\n * Reset sidebar offset\n *\n * @param el - Sidebar element\n */\nfunction resetSidebarOffset(el) {\n el.style.top = \"\";\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Set sidebar height\n *\n * @param el - Sidebar element\n * @param value - Sidebar height\n */\nfunction setSidebarHeight(el, value) {\n el.style.height = value + \"px\";\n}\n/**\n * Reset sidebar height\n *\n * @param el - Sidebar element\n */\nfunction resetSidebarHeight(el) {\n el.style.height = \"\";\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/shared/sidebar/set/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/tabs/_/index.ts": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/components/tabs/_/index.ts ***! + \***********************************************************/ +/*! exports provided: mountTabs */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountTabs\", function() { return mountTabs; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../react */ \"./src/assets/javascripts/components/tabs/react/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount tabs from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nfunction mountTabs(_a) {\n var header$ = _a.header$, viewport$ = _a.viewport$, screen$ = _a.screen$;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (el) { return screen$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (screen) {\n /* [screen +]: Mount tabs above screen breakpoint */\n if (screen) {\n return Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"watchViewportAt\"])(el, { header$: header$, viewport$: viewport$ })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (_a) {\n var y = _a.offset.y;\n return ({ hidden: y >= 10 });\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"distinctUntilKeyChanged\"])(\"hidden\"), Object(_react__WEBPACK_IMPORTED_MODULE_3__[\"applyTabs\"])(el));\n /* [screen -]: Unmount tabs below screen breakpoint */\n }\n else {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"of\"])({ hidden: true });\n }\n })); }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/tabs/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/tabs/index.ts": +/*!*********************************************************!*\ + !*** ./src/assets/javascripts/components/tabs/index.ts ***! + \*********************************************************/ +/*! exports provided: mountTabs, applyTabs, setTabsHidden, resetTabsHidden */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/tabs/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountTabs\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountTabs\"]; });\n\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ \"./src/assets/javascripts/components/tabs/react/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyTabs\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"applyTabs\"]; });\n\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./set */ \"./src/assets/javascripts/components/tabs/set/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setTabsHidden\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"setTabsHidden\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetTabsHidden\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetTabsHidden\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/tabs/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/tabs/react/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/components/tabs/react/index.ts ***! + \***************************************************************/ +/*! exports provided: applyTabs */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"applyTabs\", function() { return applyTabs; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../set */ \"./src/assets/javascripts/components/tabs/set/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Apply tabs\n *\n * @param el - Tabs element\n *\n * @return Operator function\n */\nfunction applyTabs(el) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"pipe\"])(\n /* Defer repaint to next animation frame */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"animationFrameScheduler\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"tap\"])(function (_a) {\n var hidden = _a.hidden;\n Object(_set__WEBPACK_IMPORTED_MODULE_2__[\"setTabsHidden\"])(el, hidden);\n }), \n /* Reset on complete or error */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"finalize\"])(function () {\n Object(_set__WEBPACK_IMPORTED_MODULE_2__[\"resetTabsHidden\"])(el);\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/tabs/react/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/tabs/set/index.ts": +/*!*************************************************************!*\ + !*** ./src/assets/javascripts/components/tabs/set/index.ts ***! + \*************************************************************/ +/*! exports provided: setTabsHidden, resetTabsHidden */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setTabsHidden\", function() { return setTabsHidden; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetTabsHidden\", function() { return resetTabsHidden; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set tabs hidden\n *\n * @param el - Tabs element\n * @param value - Whether the element is hidden\n */\nfunction setTabsHidden(el, value) {\n el.setAttribute(\"data-md-state\", value ? \"hidden\" : \"\");\n}\n/**\n * Reset tabs hidden\n *\n * @param el - Tabs element\n */\nfunction resetTabsHidden(el) {\n el.removeAttribute(\"data-md-state\");\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/tabs/set/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/toc/_/index.ts": +/*!**********************************************************!*\ + !*** ./src/assets/javascripts/components/toc/_/index.ts ***! + \**********************************************************/ +/*! exports provided: mountTableOfContents */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountTableOfContents\", function() { return mountTableOfContents; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../shared */ \"./src/assets/javascripts/components/shared/index.ts\");\n/* harmony import */ var _anchor__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../anchor */ \"./src/assets/javascripts/components/toc/anchor/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Mount table of contents from source observable\n *\n * @param options - Options\n *\n * @return Operator function\n */\nfunction mountTableOfContents(_a) {\n var header$ = _a.header$, main$ = _a.main$, viewport$ = _a.viewport$, tablet$ = _a.tablet$;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"pipe\"])(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (el) { return tablet$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (tablet) {\n /* [tablet +]: Mount table of contents in sidebar */\n if (tablet) {\n var els = Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElements\"])(\".md-nav__link\", el);\n /* Watch and apply sidebar */\n var sidebar$ = Object(_shared__WEBPACK_IMPORTED_MODULE_4__[\"watchSidebar\"])(el, { main$: main$, viewport$: viewport$ })\n .pipe(Object(_shared__WEBPACK_IMPORTED_MODULE_4__[\"applySidebar\"])(el, { header$: header$ }));\n /* Watch and apply anchor list (scroll spy) */\n var anchors$ = Object(_anchor__WEBPACK_IMPORTED_MODULE_5__[\"watchAnchorList\"])(els, { header$: header$, viewport$: viewport$ })\n .pipe(Object(_anchor__WEBPACK_IMPORTED_MODULE_5__[\"applyAnchorList\"])(els));\n /* Combine into single hot observable */\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"combineLatest\"])([sidebar$, anchors$])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), sidebar = _b[0], anchors = _b[1];\n return ({ sidebar: sidebar, anchors: anchors });\n }));\n /* [tablet -]: Unmount table of contents */\n }\n else {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"of\"])({});\n }\n })); }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/toc/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/toc/anchor/_/index.ts": +/*!*****************************************************************!*\ + !*** ./src/assets/javascripts/components/toc/anchor/_/index.ts ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/toc/anchor/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/toc/anchor/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/components/toc/anchor/index.ts ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/toc/anchor/_/index.ts\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in ___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return ___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ \"./src/assets/javascripts/components/toc/anchor/react/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"watchAnchorList\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"watchAnchorList\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyAnchorList\", function() { return _react__WEBPACK_IMPORTED_MODULE_1__[\"applyAnchorList\"]; });\n\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./set */ \"./src/assets/javascripts/components/toc/anchor/set/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setAnchorBlur\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"setAnchorBlur\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetAnchorBlur\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetAnchorBlur\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setAnchorActive\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"setAnchorActive\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetAnchorActive\", function() { return _set__WEBPACK_IMPORTED_MODULE_2__[\"resetAnchorActive\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/toc/anchor/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/toc/anchor/react/index.ts": +/*!*********************************************************************!*\ + !*** ./src/assets/javascripts/components/toc/anchor/react/index.ts ***! + \*********************************************************************/ +/*! exports provided: watchAnchorList, applyAnchorList */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"watchAnchorList\", function() { return watchAnchorList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"applyAnchorList\", function() { return applyAnchorList; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/index.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../set */ \"./src/assets/javascripts/components/toc/anchor/set/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Watch anchor list\n *\n * This is effectively a scroll-spy implementation which will account for the\n * fixed header and automatically re-calculate anchor offsets when the viewport\n * is resized. The returned observable will only emit if the anchor list needs\n * to be repainted.\n *\n * This implementation tracks an anchor element's entire path starting from its\n * level up to the top-most anchor element, e.g. `[h3, h2, h1]`. Although the\n * Material theme currently doesn't make use of this information, it enables\n * the styling of the entire hierarchy through customization.\n *\n * Note that the current anchor is the last item of the `prev` anchor list.\n *\n * @param els - Anchor elements\n * @param options - Options\n *\n * @return Anchor list observable\n */\nfunction watchAnchorList(els, _a) {\n var e_1, _b;\n var header$ = _a.header$, viewport$ = _a.viewport$;\n var table = new Map();\n try {\n for (var els_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(els), els_1_1 = els_1.next(); !els_1_1.done; els_1_1 = els_1.next()) {\n var el = els_1_1.value;\n var id = decodeURIComponent(el.hash.substring(1));\n var target = Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"getElement\"])(\"[id=\\\"\" + id + \"\\\"]\");\n if (typeof target !== \"undefined\")\n table.set(el, target);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (els_1_1 && !els_1_1.done && (_b = els_1.return)) _b.call(els_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n /* Compute necessary adjustment for header */\n var adjust$ = header$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (header) { return 18 + header.height; }));\n /* Compute partition of previous and next anchors */\n var partition$ = Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"watchElementSize\"])(document.body)\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"distinctUntilKeyChanged\"])(\"height\"), \n /* Build index to map anchor paths to vertical offsets */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function () {\n var path = [];\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(table).reduce(function (index, _a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), anchor = _b[0], target = _b[1];\n while (path.length) {\n var last = table.get(path[path.length - 1]);\n if (last.tagName >= target.tagName) {\n path.pop();\n }\n else {\n break;\n }\n }\n /* If the current anchor is hidden, continue with its parent */\n var offset = target.offsetTop;\n while (!offset && target.parentElement) {\n target = target.parentElement;\n offset = target.offsetTop;\n }\n /* Map reversed anchor path to vertical offset */\n return index.set(Object(ramda__WEBPACK_IMPORTED_MODULE_1__[\"reverse\"])(path = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(path, [anchor])), offset);\n }, new Map());\n }), \n /* Re-compute partition when viewport offset changes */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"switchMap\"])(function (index) { return Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"combineLatest\"])([adjust$, viewport$])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"scan\"])(function (_a, _b) {\n var _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), prev = _c[0], next = _c[1];\n var _d = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_b, 2), adjust = _d[0], y = _d[1].offset.y;\n /* Look forward */\n while (next.length) {\n var _e = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(next[0], 2), offset = _e[1];\n if (offset - adjust < y) {\n prev = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(prev, [next.shift()]);\n }\n else {\n break;\n }\n }\n /* Look backward */\n while (prev.length) {\n var _f = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(prev[prev.length - 1], 2), offset = _f[1];\n if (offset - adjust >= y) {\n next = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])([prev.pop()], next);\n }\n else {\n break;\n }\n }\n /* Return partition */\n return [prev, next];\n }, [[], Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(index)]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"distinctUntilChanged\"])(function (a, b) {\n return a[0] === b[0]\n && a[1] === b[1];\n })); }));\n /* Compute and return anchor list migrations */\n return partition$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), prev = _b[0], next = _b[1];\n return ({\n prev: prev.map(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 1), path = _b[0];\n return path;\n }),\n next: next.map(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 1), path = _b[0];\n return path;\n })\n });\n }), \n /* Extract anchor list migrations */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"startWith\"])({ prev: [], next: [] }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"bufferCount\"])(2, 1), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), a = _b[0], b = _b[1];\n /* Moving down */\n if (a.prev.length < b.prev.length) {\n return {\n prev: b.prev.slice(Math.max(0, a.prev.length - 1), b.prev.length),\n next: []\n };\n /* Moving up */\n }\n else {\n return {\n prev: b.prev.slice(-1),\n next: b.next.slice(0, b.next.length - a.next.length)\n };\n }\n }));\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Apply anchor list\n *\n * @param els - Anchor elements\n *\n * @return Operator function\n */\nfunction applyAnchorList(els) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"pipe\"])(\n /* Defer repaint to next animation frame */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"animationFrameScheduler\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"tap\"])(function (_a) {\n var e_2, _b;\n var prev = _a.prev, next = _a.next;\n try {\n /* Look forward */\n for (var next_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(next), next_1_1 = next_1.next(); !next_1_1.done; next_1_1 = next_1.next()) {\n var _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(next_1_1.value, 1), el = _c[0];\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"resetAnchorActive\"])(el);\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"resetAnchorBlur\"])(el);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (next_1_1 && !next_1_1.done && (_b = next_1.return)) _b.call(next_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n /* Look backward */\n prev.forEach(function (_a, index) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 1), el = _b[0];\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"setAnchorActive\"])(el, index === prev.length - 1);\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"setAnchorBlur\"])(el, true);\n });\n }), \n /* Reset on complete or error */\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"finalize\"])(function () {\n var e_3, _a;\n try {\n for (var els_2 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(els), els_2_1 = els_2.next(); !els_2_1.done; els_2_1 = els_2.next()) {\n var el = els_2_1.value;\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"resetAnchorActive\"])(el);\n Object(_set__WEBPACK_IMPORTED_MODULE_5__[\"resetAnchorBlur\"])(el);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (els_2_1 && !els_2_1.done && (_a = els_2.return)) _a.call(els_2);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/toc/anchor/react/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/toc/anchor/set/index.ts": +/*!*******************************************************************!*\ + !*** ./src/assets/javascripts/components/toc/anchor/set/index.ts ***! + \*******************************************************************/ +/*! exports provided: setAnchorBlur, resetAnchorBlur, setAnchorActive, resetAnchorActive */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setAnchorBlur\", function() { return setAnchorBlur; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetAnchorBlur\", function() { return resetAnchorBlur; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setAnchorActive\", function() { return setAnchorActive; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetAnchorActive\", function() { return resetAnchorActive; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set anchor blur\n *\n * @param el - Anchor element\n * @param value - Whether the anchor is blurred\n */\nfunction setAnchorBlur(el, value) {\n el.setAttribute(\"data-md-state\", value ? \"blur\" : \"\");\n}\n/**\n * Reset anchor blur\n *\n * @param el - Anchor element\n */\nfunction resetAnchorBlur(el) {\n el.removeAttribute(\"data-md-state\");\n}\n/* ------------------------------------------------------------------------- */\n/**\n * Set anchor active\n *\n * @param el - Anchor element\n * @param value - Whether the anchor is active\n */\nfunction setAnchorActive(el, value) {\n el.classList.toggle(\"md-nav__link--active\", value);\n}\n/**\n * Reset anchor active\n *\n * @param el - Anchor element\n */\nfunction resetAnchorActive(el) {\n el.classList.remove(\"md-nav__link--active\");\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/toc/anchor/set/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/components/toc/index.ts": +/*!********************************************************!*\ + !*** ./src/assets/javascripts/components/toc/index.ts ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/components/toc/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mountTableOfContents\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"mountTableOfContents\"]; });\n\n/* harmony import */ var _anchor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./anchor */ \"./src/assets/javascripts/components/toc/anchor/index.ts\");\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _anchor__WEBPACK_IMPORTED_MODULE_1__) if([\"mountTableOfContents\",\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _anchor__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/components/toc/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/index.ts": +/*!*****************************************!*\ + !*** ./src/assets/javascripts/index.ts ***! + \*****************************************/ +/*! exports provided: setScrollLock, resetScrollLock, initialize */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setScrollLock\", function() { return setScrollLock; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetScrollLock\", function() { return resetScrollLock; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"initialize\", function() { return initialize; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/index.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_ajax__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/ajax */ \"./node_modules/rxjs/dist/esm5/ajax/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var components__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! components */ \"./src/assets/javascripts/components/index.ts\");\n/* harmony import */ var integrations__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! integrations */ \"./src/assets/javascripts/integrations/index.ts\");\n/* harmony import */ var patches__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! patches */ \"./src/assets/javascripts/patches/index.ts\");\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n// DISCLAIMER: this file is still WIP. There're some refactoring opportunities\n// which must be tackled after we gathered some feedback on v5.\n// tslint:disable\n\n\n\n\n\n\n\n\n\n/* ------------------------------------------------------------------------- */\n/* Denote that JavaScript is available */\ndocument.documentElement.classList.remove(\"no-js\");\ndocument.documentElement.classList.add(\"js\");\n/* Test for iOS */\nif (navigator.userAgent.match(/(iPad|iPhone|iPod)/g))\n document.documentElement.classList.add(\"ios\");\n/**\n * Set scroll lock\n *\n * @param el - Scrollable element\n * @param value - Vertical offset\n */\nfunction setScrollLock(el, value) {\n el.setAttribute(\"data-md-state\", \"lock\");\n el.style.top = \"-\" + value + \"px\";\n}\n/**\n * Reset scroll lock\n *\n * @param el - Scrollable element\n */\nfunction resetScrollLock(el) {\n var value = -1 * parseInt(el.style.top, 10);\n el.removeAttribute(\"data-md-state\");\n el.style.top = \"\";\n if (value)\n window.scrollTo(0, value);\n}\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Initialize Material for MkDocs\n *\n * @param config - Configuration\n */\nfunction initialize(config) {\n if (!Object(utilities__WEBPACK_IMPORTED_MODULE_9__[\"isConfig\"])(config))\n throw new SyntaxError(\"Invalid configuration: \" + JSON.stringify(config));\n /* Set up subjects */\n var document$ = Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"watchDocument\"])();\n var location$ = Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"watchLocation\"])();\n /* Set up user interface observables */\n var base$ = Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"watchLocationBase\"])(config.base, { location$: location$ });\n var hash$ = Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"watchLocationHash\"])();\n var viewport$ = Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"watchViewport\"])();\n var tablet$ = Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"watchMedia\"])(\"(min-width: 960px)\");\n var screen$ = Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"watchMedia\"])(\"(min-width: 1220px)\");\n /* ----------------------------------------------------------------------- */\n /* Set up component bindings */\n Object(components__WEBPACK_IMPORTED_MODULE_6__[\"setupComponents\"])([\n \"announce\",\n \"container\",\n \"header\",\n \"header-title\",\n \"hero\",\n \"main\",\n \"navigation\",\n \"search\",\n \"search-query\",\n \"search-reset\",\n \"search-result\",\n \"skip\",\n \"tabs\",\n \"toc\" /* Table of contents */\n ], { document$: document$ });\n var keyboard$ = Object(integrations__WEBPACK_IMPORTED_MODULE_7__[\"setupKeyboard\"])();\n Object(patches__WEBPACK_IMPORTED_MODULE_8__[\"patchDetails\"])({ document$: document$, hash$: hash$ });\n Object(patches__WEBPACK_IMPORTED_MODULE_8__[\"patchScripts\"])({ document$: document$ });\n Object(patches__WEBPACK_IMPORTED_MODULE_8__[\"patchSource\"])({ document$: document$ });\n Object(patches__WEBPACK_IMPORTED_MODULE_8__[\"patchTables\"])({ document$: document$ });\n /* Force 1px scroll offset to trigger overflow scrolling */\n Object(patches__WEBPACK_IMPORTED_MODULE_8__[\"patchScrollfix\"])({ document$: document$ });\n /* Set up clipboard and dialog */\n var dialog$ = Object(integrations__WEBPACK_IMPORTED_MODULE_7__[\"setupDialog\"])();\n var clipboard$ = Object(integrations__WEBPACK_IMPORTED_MODULE_7__[\"setupClipboard\"])({ document$: document$, dialog$: dialog$ });\n /* ----------------------------------------------------------------------- */\n /* Create header observable */\n var header$ = Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"header\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountHeader\"])({ document$: document$, viewport$: viewport$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1));\n var main$ = Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"main\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountMain\"])({ header$: header$, viewport$: viewport$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1));\n /* ----------------------------------------------------------------------- */\n var navigation$ = Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"navigation\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountNavigation\"])({ header$: header$, main$: main$, viewport$: viewport$, screen$: screen$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1) // shareReplay because there might be late subscribers\n );\n var toc$ = Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"toc\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountTableOfContents\"])({ header$: header$, main$: main$, viewport$: viewport$, tablet$: tablet$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1));\n var tabs$ = Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"tabs\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountTabs\"])({ header$: header$, viewport$: viewport$, screen$: screen$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1));\n var hero$ = Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"hero\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountHero\"])({ header$: header$, viewport$: viewport$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1));\n /* ----------------------------------------------------------------------- */\n /* Search worker */\n var worker$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"defer\"])(function () {\n var index = config.search && config.search.index\n ? config.search.index\n : undefined;\n /* Fetch index if it wasn't passed explicitly */\n var index$ = typeof index !== \"undefined\"\n ? Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"from\"])(index)\n : base$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"switchMap\"])(function (base) { return Object(rxjs_ajax__WEBPACK_IMPORTED_MODULE_3__[\"ajax\"])({\n url: base + \"/search/search_index.json\",\n responseType: \"json\",\n withCredentials: true\n })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"pluck\"])(\"response\")); }));\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"of\"])(Object(integrations__WEBPACK_IMPORTED_MODULE_7__[\"setupSearchWorker\"])(config.search.worker, {\n base$: base$, index$: index$\n }));\n });\n /* ----------------------------------------------------------------------- */\n /* Mount search query */\n var search$ = worker$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"switchMap\"])(function (worker) {\n var query$ = Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"search-query\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountSearchQuery\"])(worker, { transform: config.search.transform }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1));\n /* Mount search reset */\n var reset$ = Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"search-reset\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountSearchReset\"])(), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1));\n /* Mount search result */\n var result$ = Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"search-result\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountSearchResult\"])(worker, { query$: query$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1));\n return Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"search\")\n .pipe(Object(components__WEBPACK_IMPORTED_MODULE_6__[\"mountSearch\"])(worker, { query$: query$, reset$: reset$, result$: result$ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"shareReplay\"])(1));\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"catchError\"])(function () {\n Object(components__WEBPACK_IMPORTED_MODULE_6__[\"useComponent\"])(\"search\")\n .subscribe(function (el) { return el.hidden = true; }); // TODO: Hack\n return rxjs__WEBPACK_IMPORTED_MODULE_2__[\"NEVER\"];\n }));\n /* ----------------------------------------------------------------------- */\n // // put into search...\n hash$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"tap\"])(function () { return Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"setToggle\"])(\"search\", false); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"delay\"])(125))\n .subscribe(function (hash) { return Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"setLocationHash\"])(\"#\" + hash); });\n // TODO: scroll restoration must be centralized\n Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"combineLatest\"])([\n Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"watchToggle\"])(\"search\"),\n tablet$,\n ])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"withLatestFrom\"])(viewport$), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"switchMap\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_b[0], 2), toggle = _c[0], tablet = _c[1], y = _b[1].offset.y;\n var active = toggle && !tablet;\n return document$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"delay\"])(active ? 400 : 100), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"animationFrameScheduler\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"tap\"])(function (_a) {\n var body = _a.body;\n return active\n ? setScrollLock(body, y)\n : resetScrollLock(body);\n }));\n }))\n .subscribe();\n /* ----------------------------------------------------------------------- */\n /* Always close drawer on click */\n Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"fromEvent\"])(document.body, \"click\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"filter\"])(function (ev) { return !(ev.metaKey || ev.ctrlKey); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"filter\"])(function (ev) {\n if (ev.target instanceof HTMLElement) {\n var el = ev.target.closest(\"a\"); // TODO: abstract as link click?\n if (el && Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"isLocalLocation\"])(el)) {\n return true;\n }\n }\n return false;\n }))\n .subscribe(function () {\n Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"setToggle\"])(\"drawer\", false);\n });\n /* Enable instant loading, if not on file:// protocol */\n if (config.features.includes(\"instant\") && location.protocol !== \"file:\")\n Object(integrations__WEBPACK_IMPORTED_MODULE_7__[\"setupInstantLoading\"])({ document$: document$, location$: location$, viewport$: viewport$ });\n /* ----------------------------------------------------------------------- */\n /* Unhide permalinks on first tab */\n keyboard$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"filter\"])(function (key) { return key.mode === \"global\" && key.type === \"Tab\"; }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_4__[\"take\"])(1))\n .subscribe(function () {\n var e_1, _a;\n try {\n for (var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(Object(browser__WEBPACK_IMPORTED_MODULE_5__[\"getElements\"])(\".headerlink\")), _c = _b.next(); !_c.done; _c = _b.next()) {\n var link = _c.value;\n link.style.visibility = \"visible\";\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n });\n /* ----------------------------------------------------------------------- */\n var state = {\n /* Browser observables */\n document$: document$,\n location$: location$,\n viewport$: viewport$,\n /* Component observables */\n header$: header$,\n hero$: hero$,\n main$: main$,\n navigation$: navigation$,\n search$: search$,\n tabs$: tabs$,\n toc$: toc$,\n /* Integration observables */\n clipboard$: clipboard$,\n keyboard$: keyboard$,\n dialog$: dialog$\n };\n /* Subscribe to all observables */\n rxjs__WEBPACK_IMPORTED_MODULE_2__[\"merge\"].apply(void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(Object(ramda__WEBPACK_IMPORTED_MODULE_1__[\"values\"])(state))).subscribe();\n return state;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/clipboard/index.ts": +/*!****************************************************************!*\ + !*** ./src/assets/javascripts/integrations/clipboard/index.ts ***! + \****************************************************************/ +/*! exports provided: setupClipboard */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupClipboard\", function() { return setupClipboard; });\n/* harmony import */ var clipboard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! clipboard */ \"./node_modules/clipboard/dist/clipboard.js\");\n/* harmony import */ var clipboard__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(clipboard__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var templates__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! templates */ \"./src/assets/javascripts/templates/index.ts\");\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set up clipboard\n *\n * This function implements the Clipboard.js integration and injects a button\n * into all code blocks when the document changes.\n *\n * @param options - Options\n *\n * @return Clipboard observable\n */\nfunction setupClipboard(_a) {\n var document$ = _a.document$, dialog$ = _a.dialog$;\n if (!clipboard__WEBPACK_IMPORTED_MODULE_0__[\"isSupported\"]())\n return rxjs__WEBPACK_IMPORTED_MODULE_1__[\"NEVER\"];\n /* Inject 'copy-to-clipboard' buttons */\n document$.subscribe(function () {\n var blocks = Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElements\"])(\"pre > code\");\n blocks.forEach(function (block, index) {\n var parent = block.parentElement;\n parent.id = \"__code_\" + index;\n parent.insertBefore(Object(templates__WEBPACK_IMPORTED_MODULE_4__[\"renderClipboardButton\"])(parent.id), block);\n });\n });\n /* Initialize clipboard */\n var clipboard$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"fromEventPattern\"])(function (next) {\n new clipboard__WEBPACK_IMPORTED_MODULE_0__(\".md-clipboard\").on(\"success\", next);\n })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"share\"])());\n /* Display notification for clipboard event */\n clipboard$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"tap\"])(function (ev) { return ev.clearSelection(); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"mapTo\"])(Object(utilities__WEBPACK_IMPORTED_MODULE_5__[\"translate\"])(\"clipboard.copied\")))\n .subscribe(dialog$);\n /* Return clipboard */\n return clipboard$;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/clipboard/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/dialog/index.ts": +/*!*************************************************************!*\ + !*** ./src/assets/javascripts/integrations/dialog/index.ts ***! + \*************************************************************/ +/*! exports provided: setupDialog */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupDialog\", function() { return setupDialog; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set up dialog\n *\n * @param options - Options\n *\n * @return Dialog observable\n */\nfunction setupDialog(_a) {\n var duration = (_a === void 0 ? {} : _a).duration;\n var dialog$ = new rxjs__WEBPACK_IMPORTED_MODULE_0__[\"Subject\"]();\n /* Create dialog */\n var dialog = Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"])(\"div\"); // TODO: improve scoping\n dialog.classList.add(\"md-dialog\", \"md-typeset\");\n /* Display dialog */\n dialog$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"switchMap\"])(function (text) { return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"of\"])(document.body) // useComponent(\"container\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (container) { return container.appendChild(dialog); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"animationFrameScheduler\"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"delay\"])(1), // Strangley it doesnt work when we push things to the new animation frame...\n Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"tap\"])(function (el) {\n el.innerHTML = text;\n el.setAttribute(\"data-md-state\", \"open\");\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"delay\"])(duration || 2000), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"tap\"])(function (el) { return el.removeAttribute(\"data-md-state\"); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"delay\"])(400), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"tap\"])(function (el) {\n el.innerHTML = \"\";\n el.remove();\n })); }))\n .subscribe();\n /* Return dialog */\n return dialog$;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/dialog/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/index.ts": +/*!******************************************************!*\ + !*** ./src/assets/javascripts/integrations/index.ts ***! + \******************************************************/ +/*! exports provided: setupClipboard, setupDialog, setupInstantLoading, setupKeyboard, Search, setupSearchDocumentMap, setupSearchHighlighter, defaultTransform, setupSearchWorker, SearchMessageType, isSearchSetupMessage, isSearchReadyMessage, isSearchQueryMessage, isSearchResultMessage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _clipboard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./clipboard */ \"./src/assets/javascripts/integrations/clipboard/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupClipboard\", function() { return _clipboard__WEBPACK_IMPORTED_MODULE_0__[\"setupClipboard\"]; });\n\n/* harmony import */ var _dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dialog */ \"./src/assets/javascripts/integrations/dialog/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupDialog\", function() { return _dialog__WEBPACK_IMPORTED_MODULE_1__[\"setupDialog\"]; });\n\n/* harmony import */ var _instant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./instant */ \"./src/assets/javascripts/integrations/instant/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupInstantLoading\", function() { return _instant__WEBPACK_IMPORTED_MODULE_2__[\"setupInstantLoading\"]; });\n\n/* harmony import */ var _keyboard__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./keyboard */ \"./src/assets/javascripts/integrations/keyboard/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupKeyboard\", function() { return _keyboard__WEBPACK_IMPORTED_MODULE_3__[\"setupKeyboard\"]; });\n\n/* harmony import */ var _search__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./search */ \"./src/assets/javascripts/integrations/search/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Search\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"Search\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupSearchDocumentMap\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"setupSearchDocumentMap\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupSearchHighlighter\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"setupSearchHighlighter\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"defaultTransform\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"defaultTransform\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupSearchWorker\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"setupSearchWorker\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SearchMessageType\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"SearchMessageType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchSetupMessage\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"isSearchSetupMessage\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchReadyMessage\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"isSearchReadyMessage\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchQueryMessage\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"isSearchQueryMessage\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchResultMessage\", function() { return _search__WEBPACK_IMPORTED_MODULE_4__[\"isSearchResultMessage\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/instant/index.ts": +/*!**************************************************************!*\ + !*** ./src/assets/javascripts/integrations/instant/index.ts ***! + \**************************************************************/ +/*! exports provided: setupInstantLoading */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupInstantLoading\", function() { return setupInstantLoading; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_ajax__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs//ajax */ \"./node_modules/rxjs/dist/esm5/ajax/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set up instant loading\n *\n * When fetching, theoretically, we could use `responseType: \"document\"`, but\n * since all MkDocs links are relative, we need to make sure that the current\n * location matches the document we just loaded. Otherwise any relative links\n * in the document could use the old location.\n *\n * This is the reason why we need to synchronize history events and the process\n * of fetching the document for navigation changes (except `popstate` events):\n *\n * 1. Fetch document via `XMLHTTPRequest`\n * 2. Set new location via `history.pushState`\n * 3. Parse and emit fetched document\n *\n * For `popstate` events, we must not use `history.pushState`, or the forward\n * history will be irreversibly overwritten. In case the request fails, the\n * location change is dispatched regularly.\n *\n * @param options - Options\n */\nfunction setupInstantLoading(_a) {\n var document$ = _a.document$, viewport$ = _a.viewport$, location$ = _a.location$;\n /* Disable automatic scroll restoration */\n if (\"scrollRestoration\" in history)\n history.scrollRestoration = \"manual\";\n /* Hack: ensure that reloads restore viewport offset */\n Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"fromEvent\"])(window, \"beforeunload\")\n .subscribe(function () {\n history.scrollRestoration = \"auto\";\n });\n /* Hack: ensure absolute favicon link to omit 404s on document switch */\n var favicon = Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"getElement\"])(\"link[rel=\\\"shortcut icon\\\"]\");\n if (typeof favicon !== \"undefined\")\n favicon.href = favicon.href; // tslint:disable-line no-self-assignment\n /* Intercept link clicks and convert to state change */\n var state$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"fromEvent\"])(document.body, \"click\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"filter\"])(function (ev) { return !(ev.metaKey || ev.ctrlKey); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"switchMap\"])(function (ev) {\n if (ev.target instanceof HTMLElement) {\n var el = ev.target.closest(\"a\");\n if (el && !el.target && Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"isLocalLocation\"])(el)) {\n if (!Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"isAnchorLocation\"])(el))\n ev.preventDefault();\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"of\"])(el);\n }\n }\n return rxjs__WEBPACK_IMPORTED_MODULE_1__[\"NEVER\"];\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (el) { return ({ url: new URL(el.href) }); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"share\"])());\n /* Always close search on link click */\n state$.subscribe(function () {\n Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"setToggle\"])(\"search\", false);\n });\n /* Filter state changes to dispatch */\n var push$ = state$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"filter\"])(function (_a) {\n var url = _a.url;\n return !Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"isAnchorLocation\"])(url);\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"share\"])());\n /* Intercept popstate events (history back and forward) */\n var pop$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"fromEvent\"])(window, \"popstate\")\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"filter\"])(function (ev) { return ev.state !== null; }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (ev) { return ({\n url: new URL(location.href),\n offset: ev.state\n }); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"share\"])());\n /* Emit location change */\n Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"merge\"])(push$, pop$)\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"distinctUntilChanged\"])(function (prev, next) { return prev.url.href === next.url.href; }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"pluck\"])(\"url\"))\n .subscribe(location$);\n /* Fetch document on location change */\n var ajax$ = location$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"distinctUntilKeyChanged\"])(\"pathname\"), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"skip\"])(1), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"switchMap\"])(function (url) { return Object(rxjs_ajax__WEBPACK_IMPORTED_MODULE_2__[\"ajax\"])({\n url: url.href,\n responseType: \"text\",\n withCredentials: true\n })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"catchError\"])(function () {\n Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"setLocation\"])(url);\n return rxjs__WEBPACK_IMPORTED_MODULE_1__[\"NEVER\"];\n })); }));\n /* Set new location as soon as the document was fetched */\n push$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"sample\"])(ajax$))\n .subscribe(function (_a) {\n var url = _a.url;\n history.pushState({}, \"\", url.toString());\n });\n /* Parse and emit document */\n var dom = new DOMParser();\n ajax$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (_a) {\n var response = _a.response;\n return dom.parseFromString(response, \"text/html\");\n }))\n .subscribe(document$);\n /* Intercept instant loading */\n var instant$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"merge\"])(push$, pop$)\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"sample\"])(document$));\n // TODO: this must be combined with search scroll restoration on mobile\n instant$.subscribe(function (_a) {\n var url = _a.url, offset = _a.offset;\n if (url.hash && !offset) {\n Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"setLocationHash\"])(url.hash);\n }\n else {\n Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"setViewportOffset\"])(offset || { y: 0 });\n }\n });\n /* Replace document metadata */\n instant$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"withLatestFrom\"])(document$))\n .subscribe(function (_a) {\n var e_1, _b;\n var _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), _d = _c[1], title = _d.title, head = _d.head;\n document.dispatchEvent(new CustomEvent(\"DOMContentSwitch\"));\n document.title = title;\n try {\n /* Replace meta tags */\n for (var _e = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])([\n \"link[rel=\\\"canonical\\\"]\",\n \"meta[name=\\\"author\\\"]\",\n \"meta[name=\\\"description\\\"]\"\n ]), _f = _e.next(); !_f.done; _f = _e.next()) {\n var selector = _f.value;\n var next = Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"getElement\"])(selector, head);\n var prev = Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"getElement\"])(selector, document.head);\n if (typeof next !== \"undefined\" &&\n typeof prev !== \"undefined\") {\n Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"replaceElement\"])(prev, next);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_1) throw e_1.error; }\n }\n });\n /* Debounce update of viewport offset */\n viewport$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"debounceTime\"])(250), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"distinctUntilKeyChanged\"])(\"offset\"))\n .subscribe(function (_a) {\n var offset = _a.offset;\n history.replaceState(offset, \"\");\n });\n /* Set viewport offset from history */\n Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"merge\"])(state$, pop$)\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"bufferCount\"])(2, 1), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"filter\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), prev = _b[0], next = _b[1];\n return prev.url.pathname === next.url.pathname\n && !Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"isAnchorLocation\"])(next.url);\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), state = _b[1];\n return state;\n }))\n .subscribe(function (_a) {\n var offset = _a.offset;\n Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"setViewportOffset\"])(offset || { y: 0 });\n });\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/instant/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/keyboard/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/integrations/keyboard/index.ts ***! + \***************************************************************/ +/*! exports provided: setupKeyboard */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupKeyboard\", function() { return setupKeyboard; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! components */ \"./src/assets/javascripts/components/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set up keyboard\n *\n * This function will set up the keyboard handlers and ensure that keys are\n * correctly propagated. Currently there are two modes:\n *\n * - `global`: This mode is active when the search is closed. It is intended\n * to assign hotkeys to specific functions of the site. Currently the search,\n * previous and next page can be triggered.\n *\n * - `search`: This mode is active when the search is open. It maps certain\n * navigational keys to offer search results that can be entirely navigated\n * through keyboard input.\n *\n * The keyboard observable is returned and can be used to monitor the keyboard\n * in order toassign further hotkeys to custom functions.\n *\n * @return Keyboard observable\n */\nfunction setupKeyboard() {\n var keyboard$ = Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"watchKeyboard\"])()\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (key) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({ mode: Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"getToggle\"])(\"search\") ? \"search\" : \"global\" }, key)); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(function (_a) {\n var mode = _a.mode;\n if (mode === \"global\") {\n var active = Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"getActiveElement\"])();\n if (typeof active !== \"undefined\")\n return !Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"isSusceptibleToKeyboard\"])(active);\n }\n return true;\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"share\"])());\n /* Set up search keyboard handlers */\n keyboard$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(function (_a) {\n var mode = _a.mode;\n return mode === \"search\";\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"withLatestFrom\"])(Object(components__WEBPACK_IMPORTED_MODULE_3__[\"useComponent\"])(\"search-query\"), Object(components__WEBPACK_IMPORTED_MODULE_3__[\"useComponent\"])(\"search-result\")))\n .subscribe(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 3), key = _b[0], query = _b[1], result = _b[2];\n var active = Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"getActiveElement\"])();\n switch (key.type) {\n /* Enter: prevent form submission */\n case \"Enter\":\n if (active === query)\n key.claim();\n break;\n /* Escape or Tab: close search */\n case \"Escape\":\n case \"Tab\":\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"setToggle\"])(\"search\", false);\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"setElementFocus\"])(query, false);\n break;\n /* Vertical arrows: select previous or next search result */\n case \"ArrowUp\":\n case \"ArrowDown\":\n if (typeof active === \"undefined\") {\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"setElementFocus\"])(query);\n }\n else {\n var els = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])([query], Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"getElements\"])(\"[href]\", result));\n var i = Math.max(0, (Math.max(0, els.indexOf(active)) + els.length + (key.type === \"ArrowUp\" ? -1 : +1)) % els.length);\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"setElementFocus\"])(els[i]);\n }\n /* Prevent scrolling of page */\n key.claim();\n break;\n /* All other keys: hand to search query */\n default:\n if (query !== Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"getActiveElement\"])())\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"setElementFocus\"])(query);\n }\n });\n /* Set up global keyboard handlers */\n keyboard$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(function (_a) {\n var mode = _a.mode;\n return mode === \"global\";\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"withLatestFrom\"])(Object(components__WEBPACK_IMPORTED_MODULE_3__[\"useComponent\"])(\"search-query\")))\n .subscribe(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), key = _b[0], query = _b[1];\n switch (key.type) {\n /* Open search and select query */\n case \"f\":\n case \"s\":\n case \"/\":\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"setElementFocus\"])(query);\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"setElementSelection\"])(query);\n key.claim();\n break;\n /* Go to previous page */\n case \"p\":\n case \",\":\n var prev = Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"getElement\"])(\"[href][rel=prev]\");\n if (typeof prev !== \"undefined\")\n prev.click();\n break;\n /* Go to next page */\n case \"n\":\n case \".\":\n var next = Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"getElement\"])(\"[href][rel=next]\");\n if (typeof next !== \"undefined\")\n next.click();\n break;\n }\n });\n /* Return keyboard */\n return keyboard$;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/keyboard/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/_/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/_/index.ts ***! + \***************************************************************/ +/*! exports provided: Search */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Search\", function() { return Search; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _document__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../document */ \"./src/assets/javascripts/integrations/search/document/index.ts\");\n/* harmony import */ var _highlighter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../highlighter */ \"./src/assets/javascripts/integrations/search/highlighter/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Class\n * ------------------------------------------------------------------------- */\n/**\n * Search\n *\n * Note that `lunr` is injected via Webpack, as it will otherwise also be\n * bundled in the application bundle.\n */\nvar Search = /** @class */ (function () {\n /**\n * Create the search integration\n *\n * @param data - Search index\n */\n function Search(_a) {\n var config = _a.config, docs = _a.docs, pipeline = _a.pipeline, index = _a.index;\n this.documents = Object(_document__WEBPACK_IMPORTED_MODULE_1__[\"setupSearchDocumentMap\"])(docs);\n this.highlight = Object(_highlighter__WEBPACK_IMPORTED_MODULE_2__[\"setupSearchHighlighter\"])(config);\n /* If no index was given, create it */\n if (typeof index === \"undefined\") {\n this.index = lunr(function () {\n var e_1, _a, _b, e_2, _c;\n pipeline = pipeline || [\"trimmer\", \"stopWordFilter\"];\n /* Set up pipeline according to configuration */\n this.pipeline.reset();\n try {\n for (var pipeline_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(pipeline), pipeline_1_1 = pipeline_1.next(); !pipeline_1_1.done; pipeline_1_1 = pipeline_1.next()) {\n var fn = pipeline_1_1.value;\n this.pipeline.add(lunr[fn]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (pipeline_1_1 && !pipeline_1_1.done && (_a = pipeline_1.return)) _a.call(pipeline_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n /* Set up alternate search languages */\n if (config.lang.length === 1 && config.lang[0] !== \"en\") {\n this.use(lunr[config.lang[0]]);\n }\n else if (config.lang.length > 1) {\n this.use((_b = lunr).multiLanguage.apply(_b, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(config.lang)));\n }\n /* Set up fields and reference */\n this.field(\"title\", { boost: 1000 });\n this.field(\"text\");\n this.ref(\"location\");\n try {\n /* Index documents */\n for (var docs_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(docs), docs_1_1 = docs_1.next(); !docs_1_1.done; docs_1_1 = docs_1.next()) {\n var doc = docs_1_1.value;\n this.add(doc);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (docs_1_1 && !docs_1_1.done && (_c = docs_1.return)) _c.call(docs_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n });\n /* Prebuilt or serialized index */\n }\n else {\n this.index = lunr.Index.load(typeof index === \"string\"\n ? JSON.parse(index)\n : index);\n }\n }\n /**\n * Search for matching documents\n *\n * The search index which MkDocs provides is divided up into articles, which\n * contain the whole content of the individual pages, and sections, which only\n * contain the contents of the subsections obtained by breaking the individual\n * pages up at `h1` ... `h6`. As there may be many sections on different pages\n * with identical titles (for example within this very project, e.g. \"Usage\"\n * or \"Installation\"), they need to be put into the context of the containing\n * page. For this reason, section results are grouped within their respective\n * articles which are the top-level results that are returned.\n *\n * @param value - Query value\n *\n * @return Search results\n */\n Search.prototype.query = function (value) {\n var _this = this;\n if (value) {\n try {\n /* Group sections by containing article */\n var groups = this.index.search(value)\n .reduce(function (results, result) {\n var document = _this.documents.get(result.ref);\n if (typeof document !== \"undefined\") {\n if (\"parent\" in document) {\n var ref = document.parent.location;\n results.set(ref, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(results.get(ref) || [], [result]));\n }\n else {\n var ref = document.location;\n results.set(ref, results.get(ref) || []);\n }\n }\n return results;\n }, new Map());\n /* Create highlighter for query */\n var fn_1 = this.highlight(value);\n /* Map groups to search documents */\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(groups).map(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), ref = _b[0], sections = _b[1];\n return ({\n article: fn_1(_this.documents.get(ref)),\n sections: sections.map(function (section) {\n return fn_1(_this.documents.get(section.ref));\n })\n });\n });\n /* Log errors to console (for now) */\n }\n catch (err) {\n // tslint:disable-next-line no-console\n console.warn(\"Invalid query: \" + value + \" \\u2013 see https://bit.ly/2s3ChXG\");\n }\n }\n /* Return nothing in case of error or empty query */\n return [];\n };\n return Search;\n}());\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/document/index.ts": +/*!**********************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/document/index.ts ***! + \**********************************************************************/ +/*! exports provided: setupSearchDocumentMap */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupSearchDocumentMap\", function() { return setupSearchDocumentMap; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var escape_html__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! escape-html */ \"./node_modules/escape-html/index.js\");\n/* harmony import */ var escape_html__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(escape_html__WEBPACK_IMPORTED_MODULE_1__);\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Create a search document mapping\n *\n * @param docs - Search index documents\n *\n * @return Search document map\n */\nfunction setupSearchDocumentMap(docs) {\n var e_1, _a;\n var documents = new Map();\n try {\n for (var docs_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(docs), docs_1_1 = docs_1.next(); !docs_1_1.done; docs_1_1 = docs_1.next()) {\n var doc = docs_1_1.value;\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(doc.location.split(\"#\"), 2), path = _b[0], hash = _b[1];\n /* Extract location and title */\n var location = doc.location;\n var title = doc.title;\n /* Escape and cleanup text */\n var text = escape_html__WEBPACK_IMPORTED_MODULE_1__(doc.text)\n .replace(/\\s+(?=[,.:;!?])/g, \"\")\n .replace(/\\s+/g, \" \");\n /* Handle section */\n if (hash) {\n var parent = documents.get(path);\n /* Ignore first section, override article */\n if (!parent.linked) {\n parent.title = doc.title;\n parent.text = text;\n parent.linked = true;\n /* Add subsequent section */\n }\n else {\n documents.set(location, {\n location: location,\n title: title,\n text: text,\n parent: parent\n });\n }\n /* Add article */\n }\n else {\n documents.set(location, {\n location: location,\n title: title,\n text: text,\n linked: false\n });\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (docs_1_1 && !docs_1_1.done && (_a = docs_1.return)) _a.call(docs_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return documents;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/document/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/highlighter/index.ts": +/*!*************************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/highlighter/index.ts ***! + \*************************************************************************/ +/*! exports provided: setupSearchHighlighter */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupSearchHighlighter\", function() { return setupSearchHighlighter; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Create a search highlighter\n *\n * @param config - Search index configuration\n *\n * @return Search highlight factory function\n */\nfunction setupSearchHighlighter(config) {\n var separator = new RegExp(config.separator, \"img\");\n var highlight = function (_, data, term) {\n return data + \"\" + term + \"\";\n };\n /* Return factory function */\n return function (value) {\n value = value\n .replace(/[\\s*+-:~^]+/g, \" \")\n .trim();\n /* Create search term match expression */\n var match = new RegExp(\"(^|\" + config.separator + \")(\" + value\n .replace(/[|\\\\{}()[\\]^$+*?.-]/g, \"\\\\$&\")\n .replace(separator, \"|\") + \")\", \"img\");\n /* Highlight document */\n return function (document) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({}, document), { title: document.title.replace(match, highlight), text: document.text.replace(match, highlight) })); };\n };\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/highlighter/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/index.ts": +/*!*************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/index.ts ***! + \*************************************************************/ +/*! exports provided: Search, setupSearchDocumentMap, setupSearchHighlighter, defaultTransform, setupSearchWorker, SearchMessageType, isSearchSetupMessage, isSearchReadyMessage, isSearchQueryMessage, isSearchResultMessage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/integrations/search/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Search\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"Search\"]; });\n\n/* harmony import */ var _document__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./document */ \"./src/assets/javascripts/integrations/search/document/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupSearchDocumentMap\", function() { return _document__WEBPACK_IMPORTED_MODULE_1__[\"setupSearchDocumentMap\"]; });\n\n/* harmony import */ var _highlighter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./highlighter */ \"./src/assets/javascripts/integrations/search/highlighter/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupSearchHighlighter\", function() { return _highlighter__WEBPACK_IMPORTED_MODULE_2__[\"setupSearchHighlighter\"]; });\n\n/* harmony import */ var _transform__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./transform */ \"./src/assets/javascripts/integrations/search/transform/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"defaultTransform\", function() { return _transform__WEBPACK_IMPORTED_MODULE_3__[\"defaultTransform\"]; });\n\n/* harmony import */ var _worker__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./worker */ \"./src/assets/javascripts/integrations/search/worker/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupSearchWorker\", function() { return _worker__WEBPACK_IMPORTED_MODULE_4__[\"setupSearchWorker\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SearchMessageType\", function() { return _worker__WEBPACK_IMPORTED_MODULE_4__[\"SearchMessageType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchSetupMessage\", function() { return _worker__WEBPACK_IMPORTED_MODULE_4__[\"isSearchSetupMessage\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchReadyMessage\", function() { return _worker__WEBPACK_IMPORTED_MODULE_4__[\"isSearchReadyMessage\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchQueryMessage\", function() { return _worker__WEBPACK_IMPORTED_MODULE_4__[\"isSearchQueryMessage\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchResultMessage\", function() { return _worker__WEBPACK_IMPORTED_MODULE_4__[\"isSearchResultMessage\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/transform/index.ts": +/*!***********************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/transform/index.ts ***! + \***********************************************************************/ +/*! exports provided: defaultTransform */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultTransform\", function() { return defaultTransform; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Default transformation function\n *\n * Rogue control characters are filtered before handing the query to the\n * search index, as `lunr` will throw otherwise.\n *\n * @param value - Query value\n *\n * @return Transformed query value\n */\nfunction defaultTransform(value) {\n return value\n .replace(/(?:^|\\s+)[*+-:^~]+(?=\\s+|$)/g, \"\")\n .trim()\n .replace(/\\s+|\\b$/g, \"* \");\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/transform/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/worker/_/index.ts": +/*!**********************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/worker/_/index.ts ***! + \**********************************************************************/ +/*! exports provided: setupSearchWorker */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupSearchWorker\", function() { return setupSearchWorker; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/index.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/* harmony import */ var _message__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../message */ \"./src/assets/javascripts/integrations/search/worker/message/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n/**\n * Set up search index\n *\n * @param data - Search index\n *\n * @return Search index\n */\nfunction setupSearchIndex(_a) {\n var config = _a.config, docs = _a.docs, index = _a.index;\n /* Override default language with value from translation */\n if (config.lang.length === 1 && config.lang[0] === \"en\")\n config.lang = [Object(utilities__WEBPACK_IMPORTED_MODULE_5__[\"translate\"])(\"search.config.lang\")];\n /* Override default separator with value from translation */\n if (config.separator === \"[\\s\\-]+\")\n config.separator = Object(utilities__WEBPACK_IMPORTED_MODULE_5__[\"translate\"])(\"search.config.separator\");\n /* Set pipeline from translation */\n var pipeline = Object(utilities__WEBPACK_IMPORTED_MODULE_5__[\"translate\"])(\"search.config.pipeline\")\n .split(/\\s*,\\s*/)\n .filter(ramda__WEBPACK_IMPORTED_MODULE_1__[\"identity\"]);\n /* Return search index after defaulting */\n return { config: config, docs: docs, index: index, pipeline: pipeline };\n}\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Set up search web worker\n *\n * This function will create a web worker to set up and query the search index\n * which is done using `lunr`. The index must be passed as an observable to\n * enable hacks like _localsearch_ via search index embedding as JSON.\n *\n * @param url - Worker URL\n * @param options - Options\n *\n * @return Worker handler\n */\nfunction setupSearchWorker(url, _a) {\n var index$ = _a.index$, base$ = _a.base$;\n var worker = new Worker(url);\n /* Create communication channels and resolve relative links */\n var tx$ = new rxjs__WEBPACK_IMPORTED_MODULE_2__[\"Subject\"]();\n var rx$ = Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"watchWorker\"])(worker, { tx$: tx$ })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"withLatestFrom\"])(base$), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (_a) {\n var e_1, _b, e_2, _c;\n var _d = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), message = _d[0], base = _d[1];\n if (Object(_message__WEBPACK_IMPORTED_MODULE_6__[\"isSearchResultMessage\"])(message)) {\n try {\n for (var _e = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(message.data), _f = _e.next(); !_f.done; _f = _e.next()) {\n var _g = _f.value, article = _g.article, sections = _g.sections;\n article.location = base + \"/\" + article.location;\n try {\n for (var sections_1 = (e_2 = void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(sections)), sections_1_1 = sections_1.next(); !sections_1_1.done; sections_1_1 = sections_1.next()) {\n var section = sections_1_1.value;\n section.location = base + \"/\" + section.location;\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (sections_1_1 && !sections_1_1.done && (_c = sections_1.return)) _c.call(sections_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n return message;\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"shareReplay\"])(1));\n /* Set up search index */\n index$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (index) { return ({\n type: _message__WEBPACK_IMPORTED_MODULE_6__[\"SearchMessageType\"].SETUP,\n data: setupSearchIndex(index)\n }); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"observeOn\"])(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"asyncScheduler\"]))\n .subscribe(tx$.next.bind(tx$));\n /* Return worker handler */\n return { tx$: tx$, rx$: rx$ };\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/worker/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/worker/index.ts": +/*!********************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/worker/index.ts ***! + \********************************************************************/ +/*! exports provided: setupSearchWorker, SearchMessageType, isSearchSetupMessage, isSearchReadyMessage, isSearchQueryMessage, isSearchResultMessage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ */ \"./src/assets/javascripts/integrations/search/worker/_/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setupSearchWorker\", function() { return ___WEBPACK_IMPORTED_MODULE_0__[\"setupSearchWorker\"]; });\n\n/* harmony import */ var _message__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./message */ \"./src/assets/javascripts/integrations/search/worker/message/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SearchMessageType\", function() { return _message__WEBPACK_IMPORTED_MODULE_1__[\"SearchMessageType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchSetupMessage\", function() { return _message__WEBPACK_IMPORTED_MODULE_1__[\"isSearchSetupMessage\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchReadyMessage\", function() { return _message__WEBPACK_IMPORTED_MODULE_1__[\"isSearchReadyMessage\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchQueryMessage\", function() { return _message__WEBPACK_IMPORTED_MODULE_1__[\"isSearchQueryMessage\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isSearchResultMessage\", function() { return _message__WEBPACK_IMPORTED_MODULE_1__[\"isSearchResultMessage\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/worker/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/worker/message/index.ts": +/*!****************************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/worker/message/index.ts ***! + \****************************************************************************/ +/*! exports provided: SearchMessageType, isSearchSetupMessage, isSearchReadyMessage, isSearchQueryMessage, isSearchResultMessage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SearchMessageType\", function() { return SearchMessageType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSearchSetupMessage\", function() { return isSearchSetupMessage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSearchReadyMessage\", function() { return isSearchReadyMessage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSearchQueryMessage\", function() { return isSearchQueryMessage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSearchResultMessage\", function() { return isSearchResultMessage; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n/**\n * Search message type\n */\nvar SearchMessageType;\n(function (SearchMessageType) {\n SearchMessageType[SearchMessageType[\"SETUP\"] = 0] = \"SETUP\";\n SearchMessageType[SearchMessageType[\"READY\"] = 1] = \"READY\";\n SearchMessageType[SearchMessageType[\"QUERY\"] = 2] = \"QUERY\";\n SearchMessageType[SearchMessageType[\"RESULT\"] = 3] = \"RESULT\"; /* Search results */\n})(SearchMessageType || (SearchMessageType = {}));\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Type guard for search setup messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nfunction isSearchSetupMessage(message) {\n return message.type === SearchMessageType.SETUP;\n}\n/**\n * Type guard for search ready messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nfunction isSearchReadyMessage(message) {\n return message.type === SearchMessageType.READY;\n}\n/**\n * Type guard for search query messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nfunction isSearchQueryMessage(message) {\n return message.type === SearchMessageType.QUERY;\n}\n/**\n * Type guard for search result messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nfunction isSearchResultMessage(message) {\n return message.type === SearchMessageType.RESULT;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/worker/message/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/patches/details/index.ts": +/*!*********************************************************!*\ + !*** ./src/assets/javascripts/patches/details/index.ts ***! + \*********************************************************/ +/*! exports provided: patchDetails */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"patchDetails\", function() { return patchDetails; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/index.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Patch all `details` elements\n *\n * This function will ensure that all `details` tags are opened prior to\n * printing, so the whole content of the page is included, and on anchor jumps.\n *\n * @param options - Options\n */\nfunction patchDetails(_a) {\n var document$ = _a.document$, hash$ = _a.hash$;\n var els$ = document$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function () { return Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"getElements\"])(\"details\"); }));\n /* Open all details before printing */\n Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"merge\"])(Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"watchMedia\"])(\"print\").pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"filter\"])(ramda__WEBPACK_IMPORTED_MODULE_1__[\"identity\"])), /* Webkit */ Object(rxjs__WEBPACK_IMPORTED_MODULE_2__[\"fromEvent\"])(window, \"beforeprint\") /* IE, FF */)\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"switchMapTo\"])(els$))\n .subscribe(function (els) {\n var e_1, _a;\n try {\n for (var els_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(els), els_1_1 = els_1.next(); !els_1_1.done; els_1_1 = els_1.next()) {\n var el = els_1_1.value;\n el.setAttribute(\"open\", \"\");\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (els_1_1 && !els_1_1.done && (_a = els_1.return)) _a.call(els_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n });\n /* Open parent details and fix anchor jump */\n hash$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (id) { return Object(browser__WEBPACK_IMPORTED_MODULE_4__[\"getElement\"])(\"[id=\\\"\" + id + \"\\\"]\"); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"filter\"])(function (el) { return typeof el !== \"undefined\"; }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__[\"tap\"])(function (el) {\n var details = el.closest(\"details\");\n if (details && !details.open)\n details.setAttribute(\"open\", \"\");\n }))\n .subscribe(function (el) { return el.scrollIntoView(); });\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/patches/details/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/patches/index.ts": +/*!*************************************************!*\ + !*** ./src/assets/javascripts/patches/index.ts ***! + \*************************************************/ +/*! exports provided: patchDetails, patchScripts, patchScrollfix, patchSource, patchTables */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _details__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./details */ \"./src/assets/javascripts/patches/details/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"patchDetails\", function() { return _details__WEBPACK_IMPORTED_MODULE_0__[\"patchDetails\"]; });\n\n/* harmony import */ var _script__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./script */ \"./src/assets/javascripts/patches/script/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"patchScripts\", function() { return _script__WEBPACK_IMPORTED_MODULE_1__[\"patchScripts\"]; });\n\n/* harmony import */ var _scrollfix__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./scrollfix */ \"./src/assets/javascripts/patches/scrollfix/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"patchScrollfix\", function() { return _scrollfix__WEBPACK_IMPORTED_MODULE_2__[\"patchScrollfix\"]; });\n\n/* harmony import */ var _source__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./source */ \"./src/assets/javascripts/patches/source/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"patchSource\", function() { return _source__WEBPACK_IMPORTED_MODULE_3__[\"patchSource\"]; });\n\n/* harmony import */ var _table__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./table */ \"./src/assets/javascripts/patches/table/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"patchTables\", function() { return _table__WEBPACK_IMPORTED_MODULE_4__[\"patchTables\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/patches/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/patches/script/index.ts": +/*!********************************************************!*\ + !*** ./src/assets/javascripts/patches/script/index.ts ***! + \********************************************************/ +/*! exports provided: patchScripts */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"patchScripts\", function() { return patchScripts; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! components */ \"./src/assets/javascripts/components/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Patch all `script` elements\n *\n * This function must be run after a document switch, which means the first\n * emission must be ignored.\n *\n * @param options - Options\n */\nfunction patchScripts(_a) {\n var document$ = _a.document$;\n var els$ = document$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"skip\"])(1), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"withLatestFrom\"])(Object(components__WEBPACK_IMPORTED_MODULE_3__[\"useComponent\"])(\"container\")), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), el = _b[1];\n return Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"getElements\"])(\"script\", el);\n }));\n /* Evaluate all scripts via replacement */\n els$.subscribe(function (els) {\n var e_1, _a;\n try {\n for (var els_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(els), els_1_1 = els_1.next(); !els_1_1.done; els_1_1 = els_1.next()) {\n var el = els_1_1.value;\n if (el.src || /(^|\\/javascript)$/i.test(el.type)) {\n var script = Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"])(\"script\");\n var key = el.src ? \"src\" : \"textContent\";\n script[key] = el[key];\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"replaceElement\"])(el, script);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (els_1_1 && !els_1_1.done && (_a = els_1.return)) _a.call(els_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n });\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/patches/script/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/patches/scrollfix/index.ts": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/patches/scrollfix/index.ts ***! + \***********************************************************/ +/*! exports provided: patchScrollfix */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"patchScrollfix\", function() { return patchScrollfix; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n/**\n * Check whether the given device is an Apple device\n *\n * @return Test result\n */\nfunction isAppleDevice() {\n return /(iPad|iPhone|iPod)/.test(navigator.userAgent);\n}\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Patch all elements with `data-md-scrollfix` attributes\n *\n * This is a year-old patch which ensures that overflow scrolling works at the\n * top and bottom of containers on iOS by ensuring a `1px` scroll offset upon\n * the start of a touch event.\n *\n * @see https://bit.ly/2SCtAOO - Original source\n *\n * @param options - Options\n */\nfunction patchScrollfix(_a) {\n var document$ = _a.document$;\n var els$ = document$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function () { return Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElements\"])(\"[data-md-scrollfix]\"); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"shareReplay\"])(1));\n /* Remove marker attribute, so we'll only add the fix once */\n els$.subscribe(function (els) {\n var e_1, _a;\n try {\n for (var els_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(els), els_1_1 = els_1.next(); !els_1_1.done; els_1_1 = els_1.next()) {\n var el = els_1_1.value;\n el.removeAttribute(\"data-md-scrollfix\");\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (els_1_1 && !els_1_1.done && (_a = els_1.return)) _a.call(els_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n });\n /* Patch overflow scrolling on touch start */\n Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"iif\"])(isAppleDevice, els$, rxjs__WEBPACK_IMPORTED_MODULE_1__[\"NEVER\"])\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (els) { return rxjs__WEBPACK_IMPORTED_MODULE_1__[\"merge\"].apply(void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(els.map(function (el) { return (Object(rxjs__WEBPACK_IMPORTED_MODULE_1__[\"fromEvent\"])(el, \"touchstart\", { passive: true })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"mapTo\"])(el))); }))); }))\n .subscribe(function (el) {\n var top = el.scrollTop;\n /* We're at the top of the container */\n if (top === 0) {\n el.scrollTop = 1;\n /* We're at the bottom of the container */\n }\n else if (top + el.offsetHeight === el.scrollHeight) {\n el.scrollTop = top - 1;\n }\n });\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/patches/scrollfix/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/patches/source/github/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/patches/source/github/index.ts ***! + \***************************************************************/ +/*! exports provided: fetchSourceFactsFromGitHub */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fetchSourceFactsFromGitHub\", function() { return fetchSourceFactsFromGitHub; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_ajax__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/ajax */ \"./node_modules/rxjs/dist/esm5/ajax/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Fetch GitHub source facts\n *\n * @param user - GitHub user\n * @param repo - GitHub repository\n *\n * @return Source facts observable\n */\nfunction fetchSourceFactsFromGitHub(user, repo) {\n return Object(rxjs_ajax__WEBPACK_IMPORTED_MODULE_1__[\"ajax\"])({\n url: typeof repo !== \"undefined\"\n ? \"https://api.github.com/repos/\" + user + \"/\" + repo\n : \"https://api.github.com/users/\" + user,\n responseType: \"json\"\n })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"filter\"])(function (_a) {\n var status = _a.status;\n return status === 200;\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"pluck\"])(\"response\"), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (data) {\n /* GitHub repository */\n if (typeof repo !== \"undefined\") {\n var stargazers_count = data.stargazers_count, forks_count = data.forks_count;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"of\"])([\n Object(utilities__WEBPACK_IMPORTED_MODULE_3__[\"round\"])(stargazers_count || 0) + \" Stars\",\n Object(utilities__WEBPACK_IMPORTED_MODULE_3__[\"round\"])(forks_count || 0) + \" Forks\"\n ]);\n /* GitHub user/organization */\n }\n else {\n var public_repos = data.public_repos;\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"of\"])([\n Object(utilities__WEBPACK_IMPORTED_MODULE_3__[\"round\"])(public_repos || 0) + \" Repositories\"\n ]);\n }\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/patches/source/github/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/patches/source/gitlab/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/patches/source/gitlab/index.ts ***! + \***************************************************************/ +/*! exports provided: fetchSourceFactsFromGitLab */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fetchSourceFactsFromGitLab\", function() { return fetchSourceFactsFromGitLab; });\n/* harmony import */ var rxjs_ajax__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs/ajax */ \"./node_modules/rxjs/dist/esm5/ajax/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Fetch GitLab source facts\n *\n * @param base - GitLab base\n * @param project - GitLab project\n *\n * @return Source facts observable\n */\nfunction fetchSourceFactsFromGitLab(base, project) {\n return Object(rxjs_ajax__WEBPACK_IMPORTED_MODULE_0__[\"ajax\"])({\n url: \"https://\" + base + \"/api/v4/projects/\" + encodeURIComponent(project),\n responseType: \"json\"\n })\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(function (_a) {\n var status = _a.status;\n return status === 200;\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"pluck\"])(\"response\"), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (_a) {\n var star_count = _a.star_count, forks_count = _a.forks_count;\n return ([\n Object(utilities__WEBPACK_IMPORTED_MODULE_2__[\"round\"])(star_count) + \" Stars\",\n Object(utilities__WEBPACK_IMPORTED_MODULE_2__[\"round\"])(forks_count) + \" Forks\"\n ]);\n }));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/patches/source/gitlab/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/patches/source/index.ts": +/*!********************************************************!*\ + !*** ./src/assets/javascripts/patches/source/index.ts ***! + \********************************************************/ +/*! exports provided: patchSource */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"patchSource\", function() { return patchSource; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var templates__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! templates */ \"./src/assets/javascripts/templates/index.ts\");\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/* harmony import */ var _github__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./github */ \"./src/assets/javascripts/patches/source/github/index.ts\");\n/* harmony import */ var _gitlab__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./gitlab */ \"./src/assets/javascripts/patches/source/gitlab/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n/**\n * Fetch source facts\n *\n * @param url - Source repository URL\n *\n * @return Source facts observable\n */\nfunction fetchSourceFacts(url) {\n var _a = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(url.match(/(git(?:hub|lab))/i) || [], 1), type = _a[0];\n switch (type.toLowerCase()) {\n /* GitHub repository */\n case \"github\":\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(url.match(/^.+github\\.com\\/([^\\/]+)\\/?([^\\/]+)/i), 3), user = _b[1], repo = _b[2];\n return Object(_github__WEBPACK_IMPORTED_MODULE_6__[\"fetchSourceFactsFromGitHub\"])(user, repo);\n /* GitLab repository */\n case \"gitlab\":\n var _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(url.match(/^.+?([^\\/]*gitlab[^\\/]+)\\/(.+?)\\/?$/i), 3), base = _c[1], slug = _c[2];\n return Object(_gitlab__WEBPACK_IMPORTED_MODULE_7__[\"fetchSourceFactsFromGitLab\"])(base, slug);\n /* Everything else */\n default:\n return rxjs__WEBPACK_IMPORTED_MODULE_1__[\"NEVER\"];\n }\n}\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Patch elements containing repository information\n *\n * This function will retrieve the URL from the repository link and try to\n * query data from integrated source code platforms like GitHub or GitLab.\n *\n * @param options - Options\n */\nfunction patchSource(_a) {\n var document$ = _a.document$;\n document$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function () { return Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElementOrThrow\"])(\".md-source[href]\"); }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"switchMap\"])(function (_a) {\n var href = _a.href;\n return (Object(utilities__WEBPACK_IMPORTED_MODULE_5__[\"cache\"])(\"\" + Object(utilities__WEBPACK_IMPORTED_MODULE_5__[\"hash\"])(href), function () { return fetchSourceFacts(href); }));\n }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_2__[\"catchError\"])(function () { return rxjs__WEBPACK_IMPORTED_MODULE_1__[\"NEVER\"]; }))\n .subscribe(function (facts) {\n var e_1, _a;\n try {\n for (var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(Object(browser__WEBPACK_IMPORTED_MODULE_3__[\"getElements\"])(\".md-source__repository\")), _c = _b.next(); !_c.done; _c = _b.next()) {\n var el = _c.value;\n if (!el.hasAttribute(\"data-md-state\")) {\n el.setAttribute(\"data-md-state\", \"done\");\n el.appendChild(Object(templates__WEBPACK_IMPORTED_MODULE_4__[\"renderSource\"])(facts));\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n });\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/patches/source/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/patches/table/index.ts": +/*!*******************************************************!*\ + !*** ./src/assets/javascripts/patches/table/index.ts ***! + \*******************************************************/ +/*! exports provided: patchTables */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"patchTables\", function() { return patchTables; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs/operators */ \"./node_modules/rxjs/dist/esm5/operators/index.js\");\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/* harmony import */ var templates__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! templates */ \"./src/assets/javascripts/templates/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Patch all `table` elements\n *\n * This function will re-render all tables by wrapping them to improve overflow\n * scrolling on smaller screen sizes.\n *\n * @param options - Options\n */\nfunction patchTables(_a) {\n var document$ = _a.document$;\n var sentinel = Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"])(\"table\");\n document$\n .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function () { return Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"getElements\"])(\"table:not([class])\"); }))\n .subscribe(function (els) {\n var e_1, _a;\n try {\n for (var els_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(els), els_1_1 = els_1.next(); !els_1_1.done; els_1_1 = els_1.next()) {\n var el = els_1_1.value;\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"replaceElement\"])(el, sentinel);\n Object(browser__WEBPACK_IMPORTED_MODULE_2__[\"replaceElement\"])(sentinel, Object(templates__WEBPACK_IMPORTED_MODULE_3__[\"renderTable\"])(el));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (els_1_1 && !els_1_1.done && (_a = els_1.return)) _a.call(els_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n });\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/patches/table/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/templates/clipboard/index.tsx": +/*!**************************************************************!*\ + !*** ./src/assets/javascripts/templates/clipboard/index.tsx ***! + \**************************************************************/ +/*! exports provided: renderClipboardButton */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"renderClipboardButton\", function() { return renderClipboardButton; });\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n/**\n * CSS classes\n */\nvar css = {\n container: \"md-clipboard md-icon\"\n};\n/* ------------------------------------------------------------------------- */\n/**\n * Path of `file-search-outline` icon\n */\nvar path = \"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 \" +\n \"21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\";\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Render a 'copy-to-clipboard' button\n *\n * @param id - Unique identifier\n *\n * @return Element\n */\nfunction renderClipboardButton(id) {\n return (Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"h\"])(\"button\", { class: css.container, title: Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"translate\"])(\"clipboard.copy\"), \"data-clipboard-target\": \"#\" + id + \" > code\" },\n Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"h\"])(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 24 24\" },\n Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"h\"])(\"path\", { d: path }))));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/templates/clipboard/index.tsx?"); + +/***/ }), + +/***/ "./src/assets/javascripts/templates/index.ts": +/*!***************************************************!*\ + !*** ./src/assets/javascripts/templates/index.ts ***! + \***************************************************/ +/*! exports provided: renderClipboardButton, renderSearchResult, renderSource, renderTable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _clipboard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./clipboard */ \"./src/assets/javascripts/templates/clipboard/index.tsx\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"renderClipboardButton\", function() { return _clipboard__WEBPACK_IMPORTED_MODULE_0__[\"renderClipboardButton\"]; });\n\n/* harmony import */ var _search__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./search */ \"./src/assets/javascripts/templates/search/index.tsx\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"renderSearchResult\", function() { return _search__WEBPACK_IMPORTED_MODULE_1__[\"renderSearchResult\"]; });\n\n/* harmony import */ var _source__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./source */ \"./src/assets/javascripts/templates/source/index.tsx\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"renderSource\", function() { return _source__WEBPACK_IMPORTED_MODULE_2__[\"renderSource\"]; });\n\n/* harmony import */ var _table__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./table */ \"./src/assets/javascripts/templates/table/index.tsx\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"renderTable\", function() { return _table__WEBPACK_IMPORTED_MODULE_3__[\"renderTable\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/templates/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/templates/search/index.tsx": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/templates/search/index.tsx ***! + \***********************************************************/ +/*! exports provided: renderSearchResult */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"renderSearchResult\", function() { return renderSearchResult; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n/**\n * CSS classes\n */\nvar css = {\n item: \"md-search-result__item\",\n link: \"md-search-result__link\",\n article: \"md-search-result__article md-search-result__article--document\",\n section: \"md-search-result__article\",\n title: \"md-search-result__title\",\n teaser: \"md-search-result__teaser\"\n};\n/* ------------------------------------------------------------------------- */\n/**\n * Path of `content-copy` icon\n */\nvar path = \"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H13C12.59,21.75 12.2,21.44 \" +\n \"11.86,21.1C11.53,20.77 11.25,20.4 11,20H6V4H13V9H18V10.18C18.71,10.34 \" +\n \"19.39,10.61 20,11V8L14,2M20.31,18.9C21.64,16.79 21,14 \" +\n \"18.91,12.68C16.8,11.35 14,12 12.69,14.08C11.35,16.19 12,18.97 \" +\n \"14.09,20.3C15.55,21.23 17.41,21.23 \" +\n \"18.88,20.32L22,23.39L23.39,22L20.31,18.9M16.5,19A2.5,2.5 0 0,1 \" +\n \"14,16.5A2.5,2.5 0 0,1 16.5,14A2.5,2.5 0 0,1 19,16.5A2.5,2.5 0 0,1 16.5,19Z\";\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Render a search result\n *\n * @param result - Search result\n *\n * @return Element\n */\nfunction renderSearchResult(_a) {\n var article = _a.article, sections = _a.sections;\n /* Render icon */\n var icon = (Object(utilities__WEBPACK_IMPORTED_MODULE_1__[\"h\"])(\"div\", { class: \"md-search-result__icon md-icon\" },\n Object(utilities__WEBPACK_IMPORTED_MODULE_1__[\"h\"])(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 24 24\" },\n Object(utilities__WEBPACK_IMPORTED_MODULE_1__[\"h\"])(\"path\", { d: path }))));\n /* Render article and sections */\n var children = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])([article], sections).map(function (document) {\n var location = document.location, title = document.title, text = document.text;\n return (Object(utilities__WEBPACK_IMPORTED_MODULE_1__[\"h\"])(\"a\", { href: location, class: css.link, tabIndex: -1 },\n Object(utilities__WEBPACK_IMPORTED_MODULE_1__[\"h\"])(\"article\", { class: \"parent\" in document ? css.section : css.article },\n !(\"parent\" in document) && icon,\n Object(utilities__WEBPACK_IMPORTED_MODULE_1__[\"h\"])(\"h1\", { class: css.title }, title),\n text.length > 0 && Object(utilities__WEBPACK_IMPORTED_MODULE_1__[\"h\"])(\"p\", { class: css.teaser }, Object(utilities__WEBPACK_IMPORTED_MODULE_1__[\"truncate\"])(text, 320)))));\n });\n /* Render search result */\n return (Object(utilities__WEBPACK_IMPORTED_MODULE_1__[\"h\"])(\"li\", { class: css.item }, children));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/templates/search/index.tsx?"); + +/***/ }), + +/***/ "./src/assets/javascripts/templates/source/index.tsx": +/*!***********************************************************!*\ + !*** ./src/assets/javascripts/templates/source/index.tsx ***! + \***********************************************************/ +/*! exports provided: renderSource */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"renderSource\", function() { return renderSource; });\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n/**\n * CSS classes\n */\nvar css = {\n facts: \"md-source__facts\",\n fact: \"md-source__fact\"\n};\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Render source facts\n *\n * @param facts - Source facts\n *\n * @return Element\n */\nfunction renderSource(facts) {\n var children = facts.map(function (fact) { return (Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"h\"])(\"li\", { class: css.fact }, fact)); });\n return (Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"h\"])(\"ul\", { class: css.facts }, children));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/templates/source/index.tsx?"); + +/***/ }), + +/***/ "./src/assets/javascripts/templates/table/index.tsx": +/*!**********************************************************!*\ + !*** ./src/assets/javascripts/templates/table/index.tsx ***! + \**********************************************************/ +/*! exports provided: renderTable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"renderTable\", function() { return renderTable; });\n/* harmony import */ var utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! utilities */ \"./src/assets/javascripts/utilities/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n/**\n * CSS classes\n */\nvar css = {\n wrapper: \"md-typeset__scrollwrap\",\n table: \"md-typeset__table\"\n};\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Render a table inside a wrapper to improve scrolling on mobile\n *\n * @param table - Table element\n *\n * @return Element\n */\nfunction renderTable(table) {\n return (Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"h\"])(\"div\", { class: css.wrapper },\n Object(utilities__WEBPACK_IMPORTED_MODULE_0__[\"h\"])(\"div\", { class: css.table }, table)));\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/templates/table/index.tsx?"); + +/***/ }), + +/***/ "./src/assets/javascripts/utilities/config/index.ts": +/*!**********************************************************!*\ + !*** ./src/assets/javascripts/utilities/config/index.ts ***! + \**********************************************************/ +/*! exports provided: isConfig */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isConfig\", function() { return isConfig; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Ensure that the given value is a valid configuration\n *\n * We could use `jsonschema` or any other schema validation framework, but that\n * would just add more bloat to the bundle, so we'll keep it plain and simple.\n *\n * @param config - Configuration\n *\n * @return Test result\n */\nfunction isConfig(config) {\n return typeof config === \"object\"\n && typeof config.base === \"string\"\n && typeof config.features === \"object\"\n && typeof config.search === \"object\";\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/utilities/config/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/utilities/index.ts": +/*!***************************************************!*\ + !*** ./src/assets/javascripts/utilities/index.ts ***! + \***************************************************/ +/*! exports provided: isConfig, h, cache, translate, truncate, round, hash */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./config */ \"./src/assets/javascripts/utilities/config/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isConfig\", function() { return _config__WEBPACK_IMPORTED_MODULE_0__[\"isConfig\"]; });\n\n/* harmony import */ var _jsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./jsx */ \"./src/assets/javascripts/utilities/jsx/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return _jsx__WEBPACK_IMPORTED_MODULE_1__[\"h\"]; });\n\n/* harmony import */ var _rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./rxjs */ \"./src/assets/javascripts/utilities/rxjs/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cache\", function() { return _rxjs__WEBPACK_IMPORTED_MODULE_2__[\"cache\"]; });\n\n/* harmony import */ var _string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./string */ \"./src/assets/javascripts/utilities/string/index.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"translate\", function() { return _string__WEBPACK_IMPORTED_MODULE_3__[\"translate\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"truncate\", function() { return _string__WEBPACK_IMPORTED_MODULE_3__[\"truncate\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"round\", function() { return _string__WEBPACK_IMPORTED_MODULE_3__[\"round\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hash\", function() { return _string__WEBPACK_IMPORTED_MODULE_3__[\"hash\"]; });\n\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/utilities/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/utilities/jsx/index.ts": +/*!*******************************************************!*\ + !*** ./src/assets/javascripts/utilities/jsx/index.ts ***! + \*******************************************************/ +/*! exports provided: h */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return h; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n/**\n * Create an element\n *\n * @param tagName - HTML or SVG tag\n *\n * @return Element\n */\nfunction createElement(tagName) {\n switch (tagName) {\n /* SVG elements */\n case \"svg\":\n case \"path\":\n return document.createElementNS(\"http://www.w3.org/2000/svg\", tagName);\n /* HTML elements */\n default:\n return document.createElement(tagName);\n }\n}\n/**\n * Set an attribute\n *\n * @param el - Element\n * @param name - Attribute name\n * @param value - Attribute value\n */\nfunction setAttribute(el, name, value) {\n switch (name) {\n /* Attributes to be ignored */\n case \"xmlns\":\n break;\n /* Attributes of SVG elements */\n case \"viewBox\":\n case \"d\":\n if (typeof value !== \"boolean\")\n el.setAttributeNS(null, name, value);\n else if (value)\n el.setAttributeNS(null, name, \"\");\n break;\n /* Attributes of HTML elements */\n default:\n if (typeof value !== \"boolean\")\n el.setAttribute(name, value);\n else if (value)\n el.setAttribute(name, \"\");\n }\n}\n/**\n * Append a child node to an element\n *\n * @param el - Element\n * @param child - Child node(s)\n */\nfunction appendChild(el, child) {\n var e_1, _a;\n /* Handle primitive types (including raw HTML) */\n if (typeof child === \"string\" || typeof child === \"number\") {\n el.innerHTML += child.toString();\n /* Handle nodes */\n }\n else if (child instanceof Node) {\n el.appendChild(child);\n /* Handle nested children */\n }\n else if (Array.isArray(child)) {\n try {\n for (var child_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(child), child_1_1 = child_1.next(); !child_1_1.done; child_1_1 = child_1.next()) {\n var node = child_1_1.value;\n appendChild(el, node);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (child_1_1 && !child_1_1.done && (_a = child_1.return)) _a.call(child_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n}\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * JSX factory\n *\n * @param tagName - HTML or SVG tag\n * @param attributes - HTML attributes\n * @param children - Child elements\n *\n * @return Element\n */\nfunction h(tagName, attributes) {\n var e_2, _a, e_3, _b;\n var children = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n children[_i - 2] = arguments[_i];\n }\n var el = createElement(tagName);\n /* Set attributes, if any */\n if (attributes)\n try {\n for (var _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(Object(ramda__WEBPACK_IMPORTED_MODULE_1__[\"keys\"])(attributes)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var attr = _d.value;\n setAttribute(el, attr, attributes[attr]);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_2) throw e_2.error; }\n }\n try {\n /* Append child nodes */\n for (var children_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(children), children_1_1 = children_1.next(); !children_1_1.done; children_1_1 = children_1.next()) {\n var child = children_1_1.value;\n appendChild(el, child);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (children_1_1 && !children_1_1.done && (_b = children_1.return)) _b.call(children_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n /* Return element */\n return el;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/utilities/jsx/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/utilities/rxjs/index.ts": +/*!********************************************************!*\ + !*** ./src/assets/javascripts/utilities/rxjs/index.ts ***! + \********************************************************/ +/*! exports provided: cache */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cache\", function() { return cache; });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"./node_modules/rxjs/dist/esm5/index.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Cache the last value emitted by an observable in session storage\n *\n * If the key is not found in session storage, the factory is executed and the\n * latest value emitted will automatically be persisted to sessions storage.\n * Note that the values emitted by the returned observable must be serializable\n * as `JSON`, or data will be lost.\n *\n * @template T - Value type\n *\n * @param key - Cache key\n * @param factory - Observable factory\n *\n * @return Value observable\n */\nfunction cache(key, factory) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"defer\"])(function () {\n var data = sessionStorage.getItem(key);\n if (data) {\n return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__[\"of\"])(JSON.parse(data));\n /* Retrieve value from observable factory and write to storage */\n }\n else {\n var value$ = factory();\n value$.subscribe(function (value) {\n try {\n sessionStorage.setItem(key, JSON.stringify(value));\n }\n catch (err) {\n /* Uncritical, just swallow */\n }\n });\n /* Return value */\n return value$;\n }\n });\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/utilities/rxjs/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/utilities/string/index.ts": +/*!**********************************************************!*\ + !*** ./src/assets/javascripts/utilities/string/index.ts ***! + \**********************************************************/ +/*! exports provided: translate, truncate, round, hash */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"translate\", function() { return translate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"truncate\", function() { return truncate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"round\", function() { return round; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hash\", function() { return hash; });\n/* harmony import */ var browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! browser */ \"./src/assets/javascripts/browser/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n/**\n * Translations\n */\nvar lang;\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Translate the given key\n *\n * @param key - Key to be translated\n * @param value - Value to be replaced\n *\n * @return Translation\n */\nfunction translate(key, value) {\n if (typeof lang === \"undefined\") {\n var el = Object(browser__WEBPACK_IMPORTED_MODULE_0__[\"getElementOrThrow\"])(\"#__lang\");\n lang = JSON.parse(el.textContent);\n }\n if (typeof lang[key] === \"undefined\") {\n throw new ReferenceError(\"Invalid translation: \" + key);\n }\n return typeof value !== \"undefined\"\n ? lang[key].replace(\"#\", value)\n : lang[key];\n}\n/**\n * Truncate a string after the given number of characters\n *\n * This is not a very reasonable approach, since the summaries kind of suck.\n * It would be better to create something more intelligent, highlighting the\n * search occurrences and making a better summary out of it, but this note was\n * written three years ago, so who knows if we'll ever fix it.\n *\n * @param value - Value to be truncated\n * @param n - Number of characters\n *\n * @return Truncated value\n */\nfunction truncate(value, n) {\n var i = n;\n if (value.length > i) {\n while (value[i] !== \" \" && --i > 0)\n ; // tslint:disable-line\n return value.substring(0, i) + \"...\";\n }\n return value;\n}\n/**\n * Round a number for display with source facts\n *\n * This is a reverse engineered version of GitHub's weird rounding algorithm\n * for stars, forks and all other numbers. While all numbers below `1,000` are\n * returned as-is, bigger numbers are converted to fixed numbers:\n *\n * - `1,049` => `1k`\n * - `1,050` => `1.1k`\n * - `1,949` => `1.9k`\n * - `1,950` => `2k`\n *\n * @param value - Original value\n *\n * @return Rounded value\n */\nfunction round(value) {\n if (value > 999) {\n var digits = +((value - 950) % 1000 > 99);\n return ((value + 0.000001) / 1000).toFixed(digits) + \"k\";\n }\n else {\n return value.toString();\n }\n}\n/**\n * Simple hash function\n *\n * @see https://bit.ly/2wsVjJ4 - Original source\n *\n * @param value - Value to be hashed\n *\n * @return Hash as 32bit integer\n */\nfunction hash(value) {\n var h = 0;\n for (var i = 0, len = value.length; i < len; i++) {\n h = ((h << 5) - h) + value.charCodeAt(i);\n h |= 0; // Convert to 32bit integer\n }\n return h;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/utilities/string/index.ts?"); + +/***/ }) + +/******/ }))); \ No newline at end of file diff --git a/docs/theme/material/assets/javascripts/lunr/min/lunr.ar.min.js b/docs/theme/material/assets/javascripts/lunr/min/lunr.ar.min.js new file mode 100644 index 00000000..248ddc5d --- /dev/null +++ b/docs/theme/material/assets/javascripts/lunr/min/lunr.ar.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ar=function(){this.pipeline.reset(),this.pipeline.add(e.ar.trimmer,e.ar.stopWordFilter,e.ar.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ar.stemmer))},e.ar.wordCharacters="ء-ٛٱـ",e.ar.trimmer=e.trimmerSupport.generateTrimmer(e.ar.wordCharacters),e.Pipeline.registerFunction(e.ar.trimmer,"trimmer-ar"),e.ar.stemmer=function(){var e=this;return e.result=!1,e.preRemoved=!1,e.sufRemoved=!1,e.pre={pre1:"ف ك ب و س ل ن ا ي ت",pre2:"ال لل",pre3:"بال وال فال تال كال ولل",pre4:"فبال كبال وبال وكال"},e.suf={suf1:"ه ك ت ن ا ي",suf2:"نك نه ها وك يا اه ون ين تن تم نا وا ان كم كن ني نن ما هم هن تك ته ات يه",suf3:"تين كهم نيه نهم ونه وها يهم ونا ونك وني وهم تكم تنا تها تني تهم كما كها ناه نكم هنا تان يها",suf4:"كموه ناها ونني ونهم تكما تموه تكاه كماه ناكم ناهم نيها وننا"},e.patterns=JSON.parse('{"pt43":[{"pt":[{"c":"ا","l":1}]},{"pt":[{"c":"ا,ت,ن,ي","l":0}],"mPt":[{"c":"ف","l":0,"m":1},{"c":"ع","l":1,"m":2},{"c":"ل","l":2,"m":3}]},{"pt":[{"c":"و","l":2}],"mPt":[{"c":"ف","l":0,"m":0},{"c":"ع","l":1,"m":1},{"c":"ل","l":2,"m":3}]},{"pt":[{"c":"ا","l":2}]},{"pt":[{"c":"ي","l":2}],"mPt":[{"c":"ف","l":0,"m":0},{"c":"ع","l":1,"m":1},{"c":"ا","l":2},{"c":"ل","l":3,"m":3}]},{"pt":[{"c":"م","l":0}]}],"pt53":[{"pt":[{"c":"ت","l":0},{"c":"ا","l":2}]},{"pt":[{"c":"ا,ن,ت,ي","l":0},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ت","l":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":0},{"c":"ا","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ع","l":2,"m":3},{"c":"ل","l":3,"m":4},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":0},{"c":"ا","l":3}],"mPt":[{"c":"ف","l":0,"m":1},{"c":"ع","l":1,"m":2},{"c":"ل","l":2,"m":4}]},{"pt":[{"c":"ا","l":3},{"c":"ن","l":4}]},{"pt":[{"c":"ت","l":0},{"c":"ي","l":3}]},{"pt":[{"c":"م","l":0},{"c":"و","l":3}]},{"pt":[{"c":"ا","l":1},{"c":"و","l":3}]},{"pt":[{"c":"و","l":1},{"c":"ا","l":2}]},{"pt":[{"c":"م","l":0},{"c":"ا","l":3}]},{"pt":[{"c":"م","l":0},{"c":"ي","l":3}]},{"pt":[{"c":"ا","l":2},{"c":"ن","l":3}]},{"pt":[{"c":"م","l":0},{"c":"ن","l":1}],"mPt":[{"c":"ا","l":0},{"c":"ن","l":1},{"c":"ف","l":2,"m":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"م","l":0},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ت","l":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"م","l":0},{"c":"ا","l":2}]},{"pt":[{"c":"م","l":1},{"c":"ا","l":3}]},{"pt":[{"c":"ي,ت,ا,ن","l":0},{"c":"ت","l":1}],"mPt":[{"c":"ف","l":0,"m":2},{"c":"ع","l":1,"m":3},{"c":"ا","l":2},{"c":"ل","l":3,"m":4}]},{"pt":[{"c":"ت,ي,ا,ن","l":0},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ت","l":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":2},{"c":"ي","l":3}]},{"pt":[{"c":"ا,ي,ت,ن","l":0},{"c":"ن","l":1}],"mPt":[{"c":"ا","l":0},{"c":"ن","l":1},{"c":"ف","l":2,"m":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":3},{"c":"ء","l":4}]}],"pt63":[{"pt":[{"c":"ا","l":0},{"c":"ت","l":2},{"c":"ا","l":4}]},{"pt":[{"c":"ا,ت,ن,ي","l":0},{"c":"س","l":1},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"س","l":1},{"c":"ت","l":2},{"c":"ف","l":3,"m":3},{"c":"ع","l":4,"m":4},{"c":"ا","l":5},{"c":"ل","l":6,"m":5}]},{"pt":[{"c":"ا,ن,ت,ي","l":0},{"c":"و","l":3}]},{"pt":[{"c":"م","l":0},{"c":"س","l":1},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"س","l":1},{"c":"ت","l":2},{"c":"ف","l":3,"m":3},{"c":"ع","l":4,"m":4},{"c":"ا","l":5},{"c":"ل","l":6,"m":5}]},{"pt":[{"c":"ي","l":1},{"c":"ي","l":3},{"c":"ا","l":4},{"c":"ء","l":5}]},{"pt":[{"c":"ا","l":0},{"c":"ن","l":1},{"c":"ا","l":4}]}],"pt54":[{"pt":[{"c":"ت","l":0}]},{"pt":[{"c":"ا,ي,ت,ن","l":0}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ع","l":2,"m":2},{"c":"ل","l":3,"m":3},{"c":"ر","l":4,"m":4},{"c":"ا","l":5},{"c":"ر","l":6,"m":4}]},{"pt":[{"c":"م","l":0}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ع","l":2,"m":2},{"c":"ل","l":3,"m":3},{"c":"ر","l":4,"m":4},{"c":"ا","l":5},{"c":"ر","l":6,"m":4}]},{"pt":[{"c":"ا","l":2}]},{"pt":[{"c":"ا","l":0},{"c":"ن","l":2}]}],"pt64":[{"pt":[{"c":"ا","l":0},{"c":"ا","l":4}]},{"pt":[{"c":"م","l":0},{"c":"ت","l":1}]}],"pt73":[{"pt":[{"c":"ا","l":0},{"c":"س","l":1},{"c":"ت","l":2},{"c":"ا","l":5}]}],"pt75":[{"pt":[{"c":"ا","l":0},{"c":"ا","l":5}]}]}'),e.execArray=["cleanWord","removeDiacritics","cleanAlef","removeStopWords","normalizeHamzaAndAlef","removeStartWaw","removePre432","removeEndTaa","wordCheck"],e.stem=function(){var r=0;for(e.result=!1,e.preRemoved=!1,e.sufRemoved=!1;r=0)return!0},e.normalizeHamzaAndAlef=function(){return e.word=e.word.replace("ؤ","ء"),e.word=e.word.replace("ئ","ء"),e.word=e.word.replace(/([\u0627])\1+/gi,"ا"),!1},e.removeEndTaa=function(){return!(e.word.length>2)||(e.word=e.word.replace(/[\u0627]$/,""),e.word=e.word.replace("ة",""),!1)},e.removeStartWaw=function(){return e.word.length>3&&"و"==e.word[0]&&"و"==e.word[1]&&(e.word=e.word.slice(1)),!1},e.removePre432=function(){var r=e.word;if(e.word.length>=7){var t=new RegExp("^("+e.pre.pre4.split(" ").join("|")+")");e.word=e.word.replace(t,"")}if(e.word==r&&e.word.length>=6){var c=new RegExp("^("+e.pre.pre3.split(" ").join("|")+")");e.word=e.word.replace(c,"")}if(e.word==r&&e.word.length>=5){var l=new RegExp("^("+e.pre.pre2.split(" ").join("|")+")");e.word=e.word.replace(l,"")}return r!=e.word&&(e.preRemoved=!0),!1},e.patternCheck=function(r){for(var t=0;t3){var t=new RegExp("^("+e.pre.pre1.split(" ").join("|")+")");e.word=e.word.replace(t,"")}return r!=e.word&&(e.preRemoved=!0),!1},e.removeSuf1=function(){var r=e.word;if(0==e.sufRemoved&&e.word.length>3){var t=new RegExp("("+e.suf.suf1.split(" ").join("|")+")$");e.word=e.word.replace(t,"")}return r!=e.word&&(e.sufRemoved=!0),!1},e.removeSuf432=function(){var r=e.word;if(e.word.length>=6){var t=new RegExp("("+e.suf.suf4.split(" ").join("|")+")$");e.word=e.word.replace(t,"")}if(e.word==r&&e.word.length>=5){var c=new RegExp("("+e.suf.suf3.split(" ").join("|")+")$");e.word=e.word.replace(c,"")}if(e.word==r&&e.word.length>=4){var l=new RegExp("("+e.suf.suf2.split(" ").join("|")+")$");e.word=e.word.replace(l,"")}return r!=e.word&&(e.sufRemoved=!0),!1},e.wordCheck=function(){for(var r=(e.word,[e.removeSuf432,e.removeSuf1,e.removePre1]),t=0,c=!1;e.word.length>=7&&!e.result&&t=f.limit)return;f.cursor++}for(;!f.out_grouping(w,97,248);){if(f.cursor>=f.limit)return;f.cursor++}d=f.cursor,d=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(c,32),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del();break;case 2:f.in_grouping_b(p,97,229)&&f.slice_del()}}function t(){var e,r=f.limit-f.cursor;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.find_among_b(l,4)?(f.bra=f.cursor,f.limit_backward=e,f.cursor=f.limit-r,f.cursor>f.limit_backward&&(f.cursor--,f.bra=f.cursor,f.slice_del())):f.limit_backward=e)}function s(){var e,r,i,n=f.limit-f.cursor;if(f.ket=f.cursor,f.eq_s_b(2,"st")&&(f.bra=f.cursor,f.eq_s_b(2,"ig")&&f.slice_del()),f.cursor=f.limit-n,f.cursor>=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(m,5),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del(),i=f.limit-f.cursor,t(),f.cursor=f.limit-i;break;case 2:f.slice_from("løs")}}function o(){var e;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.out_grouping_b(w,97,248)?(f.bra=f.cursor,u=f.slice_to(u),f.limit_backward=e,f.eq_v_b(u)&&f.slice_del()):f.limit_backward=e)}var a,d,u,c=[new r("hed",-1,1),new r("ethed",0,1),new r("ered",-1,1),new r("e",-1,1),new r("erede",3,1),new r("ende",3,1),new r("erende",5,1),new r("ene",3,1),new r("erne",3,1),new r("ere",3,1),new r("en",-1,1),new r("heden",10,1),new r("eren",10,1),new r("er",-1,1),new r("heder",13,1),new r("erer",13,1),new r("s",-1,2),new r("heds",16,1),new r("es",16,1),new r("endes",18,1),new r("erendes",19,1),new r("enes",18,1),new r("ernes",18,1),new r("eres",18,1),new r("ens",16,1),new r("hedens",24,1),new r("erens",24,1),new r("ers",16,1),new r("ets",16,1),new r("erets",28,1),new r("et",-1,1),new r("eret",30,1)],l=[new r("gd",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("elig",1,1),new r("els",-1,1),new r("løst",-1,2)],w=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],p=[239,254,42,3,0,0,0,0,0,0,0,0,0,0,0,0,16],f=new i;this.setCurrent=function(e){f.setCurrent(e)},this.getCurrent=function(){return f.getCurrent()},this.stem=function(){var r=f.cursor;return e(),f.limit_backward=r,f.cursor=f.limit,n(),f.cursor=f.limit,t(),f.cursor=f.limit,s(),f.cursor=f.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.da.stemmer,"stemmer-da"),e.da.stopWordFilter=e.generateStopWordFilter("ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været".split(" ")),e.Pipeline.registerFunction(e.da.stopWordFilter,"stopWordFilter-da")}}); \ No newline at end of file diff --git a/docs/theme/material/assets/javascripts/lunr/min/lunr.de.min.js b/docs/theme/material/assets/javascripts/lunr/min/lunr.de.min.js new file mode 100644 index 00000000..f3b5c108 --- /dev/null +++ b/docs/theme/material/assets/javascripts/lunr/min/lunr.de.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `German` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.de=function(){this.pipeline.reset(),this.pipeline.add(e.de.trimmer,e.de.stopWordFilter,e.de.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.de.stemmer))},e.de.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.de.trimmer=e.trimmerSupport.generateTrimmer(e.de.wordCharacters),e.Pipeline.registerFunction(e.de.trimmer,"trimmer-de"),e.de.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(e,r,n){return!(!v.eq_s(1,e)||(v.ket=v.cursor,!v.in_grouping(p,97,252)))&&(v.slice_from(r),v.cursor=n,!0)}function i(){for(var r,n,i,s,t=v.cursor;;)if(r=v.cursor,v.bra=r,v.eq_s(1,"ß"))v.ket=v.cursor,v.slice_from("ss");else{if(r>=v.limit)break;v.cursor=r+1}for(v.cursor=t;;)for(n=v.cursor;;){if(i=v.cursor,v.in_grouping(p,97,252)){if(s=v.cursor,v.bra=s,e("u","U",i))break;if(v.cursor=s,e("y","Y",i))break}if(i>=v.limit)return void(v.cursor=n);v.cursor=i+1}}function s(){for(;!v.in_grouping(p,97,252);){if(v.cursor>=v.limit)return!0;v.cursor++}for(;!v.out_grouping(p,97,252);){if(v.cursor>=v.limit)return!0;v.cursor++}return!1}function t(){m=v.limit,l=m;var e=v.cursor+3;0<=e&&e<=v.limit&&(d=e,s()||(m=v.cursor,m=v.limit)return;v.cursor++}}}function c(){return m<=v.cursor}function u(){return l<=v.cursor}function a(){var e,r,n,i,s=v.limit-v.cursor;if(v.ket=v.cursor,(e=v.find_among_b(w,7))&&(v.bra=v.cursor,c()))switch(e){case 1:v.slice_del();break;case 2:v.slice_del(),v.ket=v.cursor,v.eq_s_b(1,"s")&&(v.bra=v.cursor,v.eq_s_b(3,"nis")&&v.slice_del());break;case 3:v.in_grouping_b(g,98,116)&&v.slice_del()}if(v.cursor=v.limit-s,v.ket=v.cursor,(e=v.find_among_b(f,4))&&(v.bra=v.cursor,c()))switch(e){case 1:v.slice_del();break;case 2:if(v.in_grouping_b(k,98,116)){var t=v.cursor-3;v.limit_backward<=t&&t<=v.limit&&(v.cursor=t,v.slice_del())}}if(v.cursor=v.limit-s,v.ket=v.cursor,(e=v.find_among_b(_,8))&&(v.bra=v.cursor,u()))switch(e){case 1:v.slice_del(),v.ket=v.cursor,v.eq_s_b(2,"ig")&&(v.bra=v.cursor,r=v.limit-v.cursor,v.eq_s_b(1,"e")||(v.cursor=v.limit-r,u()&&v.slice_del()));break;case 2:n=v.limit-v.cursor,v.eq_s_b(1,"e")||(v.cursor=v.limit-n,v.slice_del());break;case 3:if(v.slice_del(),v.ket=v.cursor,i=v.limit-v.cursor,!v.eq_s_b(2,"er")&&(v.cursor=v.limit-i,!v.eq_s_b(2,"en")))break;v.bra=v.cursor,c()&&v.slice_del();break;case 4:v.slice_del(),v.ket=v.cursor,e=v.find_among_b(b,2),e&&(v.bra=v.cursor,u()&&1==e&&v.slice_del())}}var d,l,m,h=[new r("",-1,6),new r("U",0,2),new r("Y",0,1),new r("ä",0,3),new r("ö",0,4),new r("ü",0,5)],w=[new r("e",-1,2),new r("em",-1,1),new r("en",-1,2),new r("ern",-1,1),new r("er",-1,1),new r("s",-1,3),new r("es",5,2)],f=[new r("en",-1,1),new r("er",-1,1),new r("st",-1,2),new r("est",2,1)],b=[new r("ig",-1,1),new r("lich",-1,1)],_=[new r("end",-1,1),new r("ig",-1,2),new r("ung",-1,1),new r("lich",-1,3),new r("isch",-1,2),new r("ik",-1,2),new r("heit",-1,3),new r("keit",-1,4)],p=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32,8],g=[117,30,5],k=[117,30,4],v=new n;this.setCurrent=function(e){v.setCurrent(e)},this.getCurrent=function(){return v.getCurrent()},this.stem=function(){var e=v.cursor;return i(),v.cursor=e,t(),v.limit_backward=e,v.cursor=v.limit,a(),v.cursor=v.limit_backward,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.de.stemmer,"stemmer-de"),e.de.stopWordFilter=e.generateStopWordFilter("aber alle allem allen aller alles als also am an ander andere anderem anderen anderer anderes anderm andern anderr anders auch auf aus bei bin bis bist da damit dann das dasselbe dazu daß dein deine deinem deinen deiner deines dem demselben den denn denselben der derer derselbe derselben des desselben dessen dich die dies diese dieselbe dieselben diesem diesen dieser dieses dir doch dort du durch ein eine einem einen einer eines einig einige einigem einigen einiger einiges einmal er es etwas euch euer eure eurem euren eurer eures für gegen gewesen hab habe haben hat hatte hatten hier hin hinter ich ihm ihn ihnen ihr ihre ihrem ihren ihrer ihres im in indem ins ist jede jedem jeden jeder jedes jene jenem jenen jener jenes jetzt kann kein keine keinem keinen keiner keines können könnte machen man manche manchem manchen mancher manches mein meine meinem meinen meiner meines mich mir mit muss musste nach nicht nichts noch nun nur ob oder ohne sehr sein seine seinem seinen seiner seines selbst sich sie sind so solche solchem solchen solcher solches soll sollte sondern sonst um und uns unse unsem unsen unser unses unter viel vom von vor war waren warst was weg weil weiter welche welchem welchen welcher welches wenn werde werden wie wieder will wir wird wirst wo wollen wollte während würde würden zu zum zur zwar zwischen über".split(" ")),e.Pipeline.registerFunction(e.de.stopWordFilter,"stopWordFilter-de")}}); \ No newline at end of file diff --git a/docs/theme/material/assets/javascripts/lunr/min/lunr.du.min.js b/docs/theme/material/assets/javascripts/lunr/min/lunr.du.min.js new file mode 100644 index 00000000..49a0f3f0 --- /dev/null +++ b/docs/theme/material/assets/javascripts/lunr/min/lunr.du.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Dutch` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");console.warn('[Lunr Languages] Please use the "nl" instead of the "du". The "nl" code is the standard code for Dutch language, and "du" will be removed in the next major versions.'),e.du=function(){this.pipeline.reset(),this.pipeline.add(e.du.trimmer,e.du.stopWordFilter,e.du.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.du.stemmer))},e.du.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.du.trimmer=e.trimmerSupport.generateTrimmer(e.du.wordCharacters),e.Pipeline.registerFunction(e.du.trimmer,"trimmer-du"),e.du.stemmer=function(){var r=e.stemmerSupport.Among,i=e.stemmerSupport.SnowballProgram,n=new function(){function e(){for(var e,r,i,o=C.cursor;;){if(C.bra=C.cursor,e=C.find_among(b,11))switch(C.ket=C.cursor,e){case 1:C.slice_from("a");continue;case 2:C.slice_from("e");continue;case 3:C.slice_from("i");continue;case 4:C.slice_from("o");continue;case 5:C.slice_from("u");continue;case 6:if(C.cursor>=C.limit)break;C.cursor++;continue}break}for(C.cursor=o,C.bra=o,C.eq_s(1,"y")?(C.ket=C.cursor,C.slice_from("Y")):C.cursor=o;;)if(r=C.cursor,C.in_grouping(q,97,232)){if(i=C.cursor,C.bra=i,C.eq_s(1,"i"))C.ket=C.cursor,C.in_grouping(q,97,232)&&(C.slice_from("I"),C.cursor=r);else if(C.cursor=i,C.eq_s(1,"y"))C.ket=C.cursor,C.slice_from("Y"),C.cursor=r;else if(n(r))break}else if(n(r))break}function n(e){return C.cursor=e,e>=C.limit||(C.cursor++,!1)}function o(){_=C.limit,f=_,t()||(_=C.cursor,_<3&&(_=3),t()||(f=C.cursor))}function t(){for(;!C.in_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}for(;!C.out_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}return!1}function s(){for(var e;;)if(C.bra=C.cursor,e=C.find_among(p,3))switch(C.ket=C.cursor,e){case 1:C.slice_from("y");break;case 2:C.slice_from("i");break;case 3:if(C.cursor>=C.limit)return;C.cursor++}}function u(){return _<=C.cursor}function c(){return f<=C.cursor}function a(){var e=C.limit-C.cursor;C.find_among_b(g,3)&&(C.cursor=C.limit-e,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del()))}function l(){var e;w=!1,C.ket=C.cursor,C.eq_s_b(1,"e")&&(C.bra=C.cursor,u()&&(e=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-e,C.slice_del(),w=!0,a())))}function m(){var e;u()&&(e=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-e,C.eq_s_b(3,"gem")||(C.cursor=C.limit-e,C.slice_del(),a())))}function d(){var e,r,i,n,o,t,s=C.limit-C.cursor;if(C.ket=C.cursor,e=C.find_among_b(h,5))switch(C.bra=C.cursor,e){case 1:u()&&C.slice_from("heid");break;case 2:m();break;case 3:u()&&C.out_grouping_b(z,97,232)&&C.slice_del()}if(C.cursor=C.limit-s,l(),C.cursor=C.limit-s,C.ket=C.cursor,C.eq_s_b(4,"heid")&&(C.bra=C.cursor,c()&&(r=C.limit-C.cursor,C.eq_s_b(1,"c")||(C.cursor=C.limit-r,C.slice_del(),C.ket=C.cursor,C.eq_s_b(2,"en")&&(C.bra=C.cursor,m())))),C.cursor=C.limit-s,C.ket=C.cursor,e=C.find_among_b(k,6))switch(C.bra=C.cursor,e){case 1:if(c()){if(C.slice_del(),i=C.limit-C.cursor,C.ket=C.cursor,C.eq_s_b(2,"ig")&&(C.bra=C.cursor,c()&&(n=C.limit-C.cursor,!C.eq_s_b(1,"e")))){C.cursor=C.limit-n,C.slice_del();break}C.cursor=C.limit-i,a()}break;case 2:c()&&(o=C.limit-C.cursor,C.eq_s_b(1,"e")||(C.cursor=C.limit-o,C.slice_del()));break;case 3:c()&&(C.slice_del(),l());break;case 4:c()&&C.slice_del();break;case 5:c()&&w&&C.slice_del()}C.cursor=C.limit-s,C.out_grouping_b(j,73,232)&&(t=C.limit-C.cursor,C.find_among_b(v,4)&&C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-t,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del())))}var f,_,w,b=[new r("",-1,6),new r("á",0,1),new r("ä",0,1),new r("é",0,2),new r("ë",0,2),new r("í",0,3),new r("ï",0,3),new r("ó",0,4),new r("ö",0,4),new r("ú",0,5),new r("ü",0,5)],p=[new r("",-1,3),new r("I",0,2),new r("Y",0,1)],g=[new r("dd",-1,-1),new r("kk",-1,-1),new r("tt",-1,-1)],h=[new r("ene",-1,2),new r("se",-1,3),new r("en",-1,2),new r("heden",2,1),new r("s",-1,3)],k=[new r("end",-1,1),new r("ig",-1,2),new r("ing",-1,1),new r("lijk",-1,3),new r("baar",-1,4),new r("bar",-1,5)],v=[new r("aa",-1,-1),new r("ee",-1,-1),new r("oo",-1,-1),new r("uu",-1,-1)],q=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],j=[1,0,0,17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],z=[17,67,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],C=new i;this.setCurrent=function(e){C.setCurrent(e)},this.getCurrent=function(){return C.getCurrent()},this.stem=function(){var r=C.cursor;return e(),C.cursor=r,o(),C.limit_backward=r,C.cursor=C.limit,d(),C.cursor=C.limit_backward,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.du.stemmer,"stemmer-du"),e.du.stopWordFilter=e.generateStopWordFilter(" aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou".split(" ")),e.Pipeline.registerFunction(e.du.stopWordFilter,"stopWordFilter-du")}}); \ No newline at end of file diff --git a/docs/theme/material/assets/javascripts/lunr/min/lunr.es.min.js b/docs/theme/material/assets/javascripts/lunr/min/lunr.es.min.js new file mode 100644 index 00000000..2989d342 --- /dev/null +++ b/docs/theme/material/assets/javascripts/lunr/min/lunr.es.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Spanish` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,s){"function"==typeof define&&define.amd?define(s):"object"==typeof exports?module.exports=s():s()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.es=function(){this.pipeline.reset(),this.pipeline.add(e.es.trimmer,e.es.stopWordFilter,e.es.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.es.stemmer))},e.es.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.es.trimmer=e.trimmerSupport.generateTrimmer(e.es.wordCharacters),e.Pipeline.registerFunction(e.es.trimmer,"trimmer-es"),e.es.stemmer=function(){var s=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,n=new function(){function e(){if(A.out_grouping(x,97,252)){for(;!A.in_grouping(x,97,252);){if(A.cursor>=A.limit)return!0;A.cursor++}return!1}return!0}function n(){if(A.in_grouping(x,97,252)){var s=A.cursor;if(e()){if(A.cursor=s,!A.in_grouping(x,97,252))return!0;for(;!A.out_grouping(x,97,252);){if(A.cursor>=A.limit)return!0;A.cursor++}}return!1}return!0}function i(){var s,r=A.cursor;if(n()){if(A.cursor=r,!A.out_grouping(x,97,252))return;if(s=A.cursor,e()){if(A.cursor=s,!A.in_grouping(x,97,252)||A.cursor>=A.limit)return;A.cursor++}}g=A.cursor}function a(){for(;!A.in_grouping(x,97,252);){if(A.cursor>=A.limit)return!1;A.cursor++}for(;!A.out_grouping(x,97,252);){if(A.cursor>=A.limit)return!1;A.cursor++}return!0}function t(){var e=A.cursor;g=A.limit,p=g,v=g,i(),A.cursor=e,a()&&(p=A.cursor,a()&&(v=A.cursor))}function o(){for(var e;;){if(A.bra=A.cursor,e=A.find_among(k,6))switch(A.ket=A.cursor,e){case 1:A.slice_from("a");continue;case 2:A.slice_from("e");continue;case 3:A.slice_from("i");continue;case 4:A.slice_from("o");continue;case 5:A.slice_from("u");continue;case 6:if(A.cursor>=A.limit)break;A.cursor++;continue}break}}function u(){return g<=A.cursor}function w(){return p<=A.cursor}function c(){return v<=A.cursor}function m(){var e;if(A.ket=A.cursor,A.find_among_b(y,13)&&(A.bra=A.cursor,(e=A.find_among_b(q,11))&&u()))switch(e){case 1:A.bra=A.cursor,A.slice_from("iendo");break;case 2:A.bra=A.cursor,A.slice_from("ando");break;case 3:A.bra=A.cursor,A.slice_from("ar");break;case 4:A.bra=A.cursor,A.slice_from("er");break;case 5:A.bra=A.cursor,A.slice_from("ir");break;case 6:A.slice_del();break;case 7:A.eq_s_b(1,"u")&&A.slice_del()}}function l(e,s){if(!c())return!0;A.slice_del(),A.ket=A.cursor;var r=A.find_among_b(e,s);return r&&(A.bra=A.cursor,1==r&&c()&&A.slice_del()),!1}function d(e){return!c()||(A.slice_del(),A.ket=A.cursor,A.eq_s_b(2,e)&&(A.bra=A.cursor,c()&&A.slice_del()),!1)}function b(){var e;if(A.ket=A.cursor,e=A.find_among_b(S,46)){switch(A.bra=A.cursor,e){case 1:if(!c())return!1;A.slice_del();break;case 2:if(d("ic"))return!1;break;case 3:if(!c())return!1;A.slice_from("log");break;case 4:if(!c())return!1;A.slice_from("u");break;case 5:if(!c())return!1;A.slice_from("ente");break;case 6:if(!w())return!1;A.slice_del(),A.ket=A.cursor,e=A.find_among_b(C,4),e&&(A.bra=A.cursor,c()&&(A.slice_del(),1==e&&(A.ket=A.cursor,A.eq_s_b(2,"at")&&(A.bra=A.cursor,c()&&A.slice_del()))));break;case 7:if(l(P,3))return!1;break;case 8:if(l(F,3))return!1;break;case 9:if(d("at"))return!1}return!0}return!1}function f(){var e,s;if(A.cursor>=g&&(s=A.limit_backward,A.limit_backward=g,A.ket=A.cursor,e=A.find_among_b(W,12),A.limit_backward=s,e)){if(A.bra=A.cursor,1==e){if(!A.eq_s_b(1,"u"))return!1;A.slice_del()}return!0}return!1}function _(){var e,s,r,n;if(A.cursor>=g&&(s=A.limit_backward,A.limit_backward=g,A.ket=A.cursor,e=A.find_among_b(L,96),A.limit_backward=s,e))switch(A.bra=A.cursor,e){case 1:r=A.limit-A.cursor,A.eq_s_b(1,"u")?(n=A.limit-A.cursor,A.eq_s_b(1,"g")?A.cursor=A.limit-n:A.cursor=A.limit-r):A.cursor=A.limit-r,A.bra=A.cursor;case 2:A.slice_del()}}function h(){var e,s;if(A.ket=A.cursor,e=A.find_among_b(z,8))switch(A.bra=A.cursor,e){case 1:u()&&A.slice_del();break;case 2:u()&&(A.slice_del(),A.ket=A.cursor,A.eq_s_b(1,"u")&&(A.bra=A.cursor,s=A.limit-A.cursor,A.eq_s_b(1,"g")&&(A.cursor=A.limit-s,u()&&A.slice_del())))}}var v,p,g,k=[new s("",-1,6),new s("á",0,1),new s("é",0,2),new s("í",0,3),new s("ó",0,4),new s("ú",0,5)],y=[new s("la",-1,-1),new s("sela",0,-1),new s("le",-1,-1),new s("me",-1,-1),new s("se",-1,-1),new s("lo",-1,-1),new s("selo",5,-1),new s("las",-1,-1),new s("selas",7,-1),new s("les",-1,-1),new s("los",-1,-1),new s("selos",10,-1),new s("nos",-1,-1)],q=[new s("ando",-1,6),new s("iendo",-1,6),new s("yendo",-1,7),new s("ándo",-1,2),new s("iéndo",-1,1),new s("ar",-1,6),new s("er",-1,6),new s("ir",-1,6),new s("ár",-1,3),new s("ér",-1,4),new s("ír",-1,5)],C=[new s("ic",-1,-1),new s("ad",-1,-1),new s("os",-1,-1),new s("iv",-1,1)],P=[new s("able",-1,1),new s("ible",-1,1),new s("ante",-1,1)],F=[new s("ic",-1,1),new s("abil",-1,1),new s("iv",-1,1)],S=[new s("ica",-1,1),new s("ancia",-1,2),new s("encia",-1,5),new s("adora",-1,2),new s("osa",-1,1),new s("ista",-1,1),new s("iva",-1,9),new s("anza",-1,1),new s("logía",-1,3),new s("idad",-1,8),new s("able",-1,1),new s("ible",-1,1),new s("ante",-1,2),new s("mente",-1,7),new s("amente",13,6),new s("ación",-1,2),new s("ución",-1,4),new s("ico",-1,1),new s("ismo",-1,1),new s("oso",-1,1),new s("amiento",-1,1),new s("imiento",-1,1),new s("ivo",-1,9),new s("ador",-1,2),new s("icas",-1,1),new s("ancias",-1,2),new s("encias",-1,5),new s("adoras",-1,2),new s("osas",-1,1),new s("istas",-1,1),new s("ivas",-1,9),new s("anzas",-1,1),new s("logías",-1,3),new s("idades",-1,8),new s("ables",-1,1),new s("ibles",-1,1),new s("aciones",-1,2),new s("uciones",-1,4),new s("adores",-1,2),new s("antes",-1,2),new s("icos",-1,1),new s("ismos",-1,1),new s("osos",-1,1),new s("amientos",-1,1),new s("imientos",-1,1),new s("ivos",-1,9)],W=[new s("ya",-1,1),new s("ye",-1,1),new s("yan",-1,1),new s("yen",-1,1),new s("yeron",-1,1),new s("yendo",-1,1),new s("yo",-1,1),new s("yas",-1,1),new s("yes",-1,1),new s("yais",-1,1),new s("yamos",-1,1),new s("yó",-1,1)],L=[new s("aba",-1,2),new s("ada",-1,2),new s("ida",-1,2),new s("ara",-1,2),new s("iera",-1,2),new s("ía",-1,2),new s("aría",5,2),new s("ería",5,2),new s("iría",5,2),new s("ad",-1,2),new s("ed",-1,2),new s("id",-1,2),new s("ase",-1,2),new s("iese",-1,2),new s("aste",-1,2),new s("iste",-1,2),new s("an",-1,2),new s("aban",16,2),new s("aran",16,2),new s("ieran",16,2),new s("ían",16,2),new s("arían",20,2),new s("erían",20,2),new s("irían",20,2),new s("en",-1,1),new s("asen",24,2),new s("iesen",24,2),new s("aron",-1,2),new s("ieron",-1,2),new s("arán",-1,2),new s("erán",-1,2),new s("irán",-1,2),new s("ado",-1,2),new s("ido",-1,2),new s("ando",-1,2),new s("iendo",-1,2),new s("ar",-1,2),new s("er",-1,2),new s("ir",-1,2),new s("as",-1,2),new s("abas",39,2),new s("adas",39,2),new s("idas",39,2),new s("aras",39,2),new s("ieras",39,2),new s("ías",39,2),new s("arías",45,2),new s("erías",45,2),new s("irías",45,2),new s("es",-1,1),new s("ases",49,2),new s("ieses",49,2),new s("abais",-1,2),new s("arais",-1,2),new s("ierais",-1,2),new s("íais",-1,2),new s("aríais",55,2),new s("eríais",55,2),new s("iríais",55,2),new s("aseis",-1,2),new s("ieseis",-1,2),new s("asteis",-1,2),new s("isteis",-1,2),new s("áis",-1,2),new s("éis",-1,1),new s("aréis",64,2),new s("eréis",64,2),new s("iréis",64,2),new s("ados",-1,2),new s("idos",-1,2),new s("amos",-1,2),new s("ábamos",70,2),new s("áramos",70,2),new s("iéramos",70,2),new s("íamos",70,2),new s("aríamos",74,2),new s("eríamos",74,2),new s("iríamos",74,2),new s("emos",-1,1),new s("aremos",78,2),new s("eremos",78,2),new s("iremos",78,2),new s("ásemos",78,2),new s("iésemos",78,2),new s("imos",-1,2),new s("arás",-1,2),new s("erás",-1,2),new s("irás",-1,2),new s("ís",-1,2),new s("ará",-1,2),new s("erá",-1,2),new s("irá",-1,2),new s("aré",-1,2),new s("eré",-1,2),new s("iré",-1,2),new s("ió",-1,2)],z=[new s("a",-1,1),new s("e",-1,2),new s("o",-1,1),new s("os",-1,1),new s("á",-1,1),new s("é",-1,2),new s("í",-1,1),new s("ó",-1,1)],x=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,17,4,10],A=new r;this.setCurrent=function(e){A.setCurrent(e)},this.getCurrent=function(){return A.getCurrent()},this.stem=function(){var e=A.cursor;return t(),A.limit_backward=e,A.cursor=A.limit,m(),A.cursor=A.limit,b()||(A.cursor=A.limit,f()||(A.cursor=A.limit,_())),A.cursor=A.limit,h(),A.cursor=A.limit_backward,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.es.stemmer,"stemmer-es"),e.es.stopWordFilter=e.generateStopWordFilter("a al algo algunas algunos ante antes como con contra cual cuando de del desde donde durante e el ella ellas ellos en entre era erais eran eras eres es esa esas ese eso esos esta estaba estabais estaban estabas estad estada estadas estado estados estamos estando estar estaremos estará estarán estarás estaré estaréis estaría estaríais estaríamos estarían estarías estas este estemos esto estos estoy estuve estuviera estuvierais estuvieran estuvieras estuvieron estuviese estuvieseis estuviesen estuvieses estuvimos estuviste estuvisteis estuviéramos estuviésemos estuvo está estábamos estáis están estás esté estéis estén estés fue fuera fuerais fueran fueras fueron fuese fueseis fuesen fueses fui fuimos fuiste fuisteis fuéramos fuésemos ha habida habidas habido habidos habiendo habremos habrá habrán habrás habré habréis habría habríais habríamos habrían habrías habéis había habíais habíamos habían habías han has hasta hay haya hayamos hayan hayas hayáis he hemos hube hubiera hubierais hubieran hubieras hubieron hubiese hubieseis hubiesen hubieses hubimos hubiste hubisteis hubiéramos hubiésemos hubo la las le les lo los me mi mis mucho muchos muy más mí mía mías mío míos nada ni no nos nosotras nosotros nuestra nuestras nuestro nuestros o os otra otras otro otros para pero poco por porque que quien quienes qué se sea seamos sean seas seremos será serán serás seré seréis sería seríais seríamos serían serías seáis sido siendo sin sobre sois somos son soy su sus suya suyas suyo suyos sí también tanto te tendremos tendrá tendrán tendrás tendré tendréis tendría tendríais tendríamos tendrían tendrías tened tenemos tenga tengamos tengan tengas tengo tengáis tenida tenidas tenido tenidos teniendo tenéis tenía teníais teníamos tenían tenías ti tiene tienen tienes todo todos tu tus tuve tuviera tuvierais tuvieran tuvieras tuvieron tuviese tuvieseis tuviesen tuvieses tuvimos tuviste tuvisteis tuviéramos tuviésemos tuvo tuya tuyas tuyo tuyos tú un una uno unos vosotras vosotros vuestra vuestras vuestro vuestros y ya yo él éramos".split(" ")),e.Pipeline.registerFunction(e.es.stopWordFilter,"stopWordFilter-es")}}); \ No newline at end of file diff --git a/docs/theme/material/assets/javascripts/lunr/min/lunr.fi.min.js b/docs/theme/material/assets/javascripts/lunr/min/lunr.fi.min.js new file mode 100644 index 00000000..29f5dfce --- /dev/null +++ b/docs/theme/material/assets/javascripts/lunr/min/lunr.fi.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Finnish` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(i,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():e()(i.lunr)}(this,function(){return function(i){if(void 0===i)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===i.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");i.fi=function(){this.pipeline.reset(),this.pipeline.add(i.fi.trimmer,i.fi.stopWordFilter,i.fi.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(i.fi.stemmer))},i.fi.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",i.fi.trimmer=i.trimmerSupport.generateTrimmer(i.fi.wordCharacters),i.Pipeline.registerFunction(i.fi.trimmer,"trimmer-fi"),i.fi.stemmer=function(){var e=i.stemmerSupport.Among,r=i.stemmerSupport.SnowballProgram,n=new function(){function i(){f=A.limit,d=f,n()||(f=A.cursor,n()||(d=A.cursor))}function n(){for(var i;;){if(i=A.cursor,A.in_grouping(W,97,246))break;if(A.cursor=i,i>=A.limit)return!0;A.cursor++}for(A.cursor=i;!A.out_grouping(W,97,246);){if(A.cursor>=A.limit)return!0;A.cursor++}return!1}function t(){return d<=A.cursor}function s(){var i,e;if(A.cursor>=f)if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,i=A.find_among_b(h,10)){switch(A.bra=A.cursor,A.limit_backward=e,i){case 1:if(!A.in_grouping_b(x,97,246))return;break;case 2:if(!t())return}A.slice_del()}else A.limit_backward=e}function o(){var i,e,r;if(A.cursor>=f)if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,i=A.find_among_b(v,9))switch(A.bra=A.cursor,A.limit_backward=e,i){case 1:r=A.limit-A.cursor,A.eq_s_b(1,"k")||(A.cursor=A.limit-r,A.slice_del());break;case 2:A.slice_del(),A.ket=A.cursor,A.eq_s_b(3,"kse")&&(A.bra=A.cursor,A.slice_from("ksi"));break;case 3:A.slice_del();break;case 4:A.find_among_b(p,6)&&A.slice_del();break;case 5:A.find_among_b(g,6)&&A.slice_del();break;case 6:A.find_among_b(j,2)&&A.slice_del()}else A.limit_backward=e}function l(){return A.find_among_b(q,7)}function a(){return A.eq_s_b(1,"i")&&A.in_grouping_b(L,97,246)}function u(){var i,e,r;if(A.cursor>=f)if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,i=A.find_among_b(C,30)){switch(A.bra=A.cursor,A.limit_backward=e,i){case 1:if(!A.eq_s_b(1,"a"))return;break;case 2:case 9:if(!A.eq_s_b(1,"e"))return;break;case 3:if(!A.eq_s_b(1,"i"))return;break;case 4:if(!A.eq_s_b(1,"o"))return;break;case 5:if(!A.eq_s_b(1,"ä"))return;break;case 6:if(!A.eq_s_b(1,"ö"))return;break;case 7:if(r=A.limit-A.cursor,!l()&&(A.cursor=A.limit-r,!A.eq_s_b(2,"ie"))){A.cursor=A.limit-r;break}if(A.cursor=A.limit-r,A.cursor<=A.limit_backward){A.cursor=A.limit-r;break}A.cursor--,A.bra=A.cursor;break;case 8:if(!A.in_grouping_b(W,97,246)||!A.out_grouping_b(W,97,246))return}A.slice_del(),k=!0}else A.limit_backward=e}function c(){var i,e,r;if(A.cursor>=d)if(e=A.limit_backward,A.limit_backward=d,A.ket=A.cursor,i=A.find_among_b(P,14)){if(A.bra=A.cursor,A.limit_backward=e,1==i){if(r=A.limit-A.cursor,A.eq_s_b(2,"po"))return;A.cursor=A.limit-r}A.slice_del()}else A.limit_backward=e}function m(){var i;A.cursor>=f&&(i=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,A.find_among_b(F,2)?(A.bra=A.cursor,A.limit_backward=i,A.slice_del()):A.limit_backward=i)}function w(){var i,e,r,n,t,s;if(A.cursor>=f){if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,A.eq_s_b(1,"t")&&(A.bra=A.cursor,r=A.limit-A.cursor,A.in_grouping_b(W,97,246)&&(A.cursor=A.limit-r,A.slice_del(),A.limit_backward=e,n=A.limit-A.cursor,A.cursor>=d&&(A.cursor=d,t=A.limit_backward,A.limit_backward=A.cursor,A.cursor=A.limit-n,A.ket=A.cursor,i=A.find_among_b(S,2))))){if(A.bra=A.cursor,A.limit_backward=t,1==i){if(s=A.limit-A.cursor,A.eq_s_b(2,"po"))return;A.cursor=A.limit-s}return void A.slice_del()}A.limit_backward=e}}function _(){var i,e,r,n;if(A.cursor>=f){for(i=A.limit_backward,A.limit_backward=f,e=A.limit-A.cursor,l()&&(A.cursor=A.limit-e,A.ket=A.cursor,A.cursor>A.limit_backward&&(A.cursor--,A.bra=A.cursor,A.slice_del())),A.cursor=A.limit-e,A.ket=A.cursor,A.in_grouping_b(y,97,228)&&(A.bra=A.cursor,A.out_grouping_b(W,97,246)&&A.slice_del()),A.cursor=A.limit-e,A.ket=A.cursor,A.eq_s_b(1,"j")&&(A.bra=A.cursor,r=A.limit-A.cursor,A.eq_s_b(1,"o")?A.slice_del():(A.cursor=A.limit-r,A.eq_s_b(1,"u")&&A.slice_del())),A.cursor=A.limit-e,A.ket=A.cursor,A.eq_s_b(1,"o")&&(A.bra=A.cursor,A.eq_s_b(1,"j")&&A.slice_del()),A.cursor=A.limit-e,A.limit_backward=i;;){if(n=A.limit-A.cursor,A.out_grouping_b(W,97,246)){A.cursor=A.limit-n;break}if(A.cursor=A.limit-n,A.cursor<=A.limit_backward)return;A.cursor--}A.ket=A.cursor,A.cursor>A.limit_backward&&(A.cursor--,A.bra=A.cursor,b=A.slice_to(),A.eq_v_b(b)&&A.slice_del())}}var k,b,d,f,h=[new e("pa",-1,1),new e("sti",-1,2),new e("kaan",-1,1),new e("han",-1,1),new e("kin",-1,1),new e("hän",-1,1),new e("kään",-1,1),new e("ko",-1,1),new e("pä",-1,1),new e("kö",-1,1)],p=[new e("lla",-1,-1),new e("na",-1,-1),new e("ssa",-1,-1),new e("ta",-1,-1),new e("lta",3,-1),new e("sta",3,-1)],g=[new e("llä",-1,-1),new e("nä",-1,-1),new e("ssä",-1,-1),new e("tä",-1,-1),new e("ltä",3,-1),new e("stä",3,-1)],j=[new e("lle",-1,-1),new e("ine",-1,-1)],v=[new e("nsa",-1,3),new e("mme",-1,3),new e("nne",-1,3),new e("ni",-1,2),new e("si",-1,1),new e("an",-1,4),new e("en",-1,6),new e("än",-1,5),new e("nsä",-1,3)],q=[new e("aa",-1,-1),new e("ee",-1,-1),new e("ii",-1,-1),new e("oo",-1,-1),new e("uu",-1,-1),new e("ää",-1,-1),new e("öö",-1,-1)],C=[new e("a",-1,8),new e("lla",0,-1),new e("na",0,-1),new e("ssa",0,-1),new e("ta",0,-1),new e("lta",4,-1),new e("sta",4,-1),new e("tta",4,9),new e("lle",-1,-1),new e("ine",-1,-1),new e("ksi",-1,-1),new e("n",-1,7),new e("han",11,1),new e("den",11,-1,a),new e("seen",11,-1,l),new e("hen",11,2),new e("tten",11,-1,a),new e("hin",11,3),new e("siin",11,-1,a),new e("hon",11,4),new e("hän",11,5),new e("hön",11,6),new e("ä",-1,8),new e("llä",22,-1),new e("nä",22,-1),new e("ssä",22,-1),new e("tä",22,-1),new e("ltä",26,-1),new e("stä",26,-1),new e("ttä",26,9)],P=[new e("eja",-1,-1),new e("mma",-1,1),new e("imma",1,-1),new e("mpa",-1,1),new e("impa",3,-1),new e("mmi",-1,1),new e("immi",5,-1),new e("mpi",-1,1),new e("impi",7,-1),new e("ejä",-1,-1),new e("mmä",-1,1),new e("immä",10,-1),new e("mpä",-1,1),new e("impä",12,-1)],F=[new e("i",-1,-1),new e("j",-1,-1)],S=[new e("mma",-1,1),new e("imma",0,-1)],y=[17,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8],W=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],L=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],x=[17,97,24,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],A=new r;this.setCurrent=function(i){A.setCurrent(i)},this.getCurrent=function(){return A.getCurrent()},this.stem=function(){var e=A.cursor;return i(),k=!1,A.limit_backward=e,A.cursor=A.limit,s(),A.cursor=A.limit,o(),A.cursor=A.limit,u(),A.cursor=A.limit,c(),A.cursor=A.limit,k?(m(),A.cursor=A.limit):(A.cursor=A.limit,w(),A.cursor=A.limit),_(),!0}};return function(i){return"function"==typeof i.update?i.update(function(i){return n.setCurrent(i),n.stem(),n.getCurrent()}):(n.setCurrent(i),n.stem(),n.getCurrent())}}(),i.Pipeline.registerFunction(i.fi.stemmer,"stemmer-fi"),i.fi.stopWordFilter=i.generateStopWordFilter("ei eivät emme en et ette että he heidän heidät heihin heille heillä heiltä heissä heistä heitä hän häneen hänelle hänellä häneltä hänen hänessä hänestä hänet häntä itse ja johon joiden joihin joiksi joilla joille joilta joina joissa joista joita joka joksi jolla jolle jolta jona jonka jos jossa josta jota jotka kanssa keiden keihin keiksi keille keillä keiltä keinä keissä keistä keitä keneen keneksi kenelle kenellä keneltä kenen kenenä kenessä kenestä kenet ketkä ketkä ketä koska kuin kuka kun me meidän meidät meihin meille meillä meiltä meissä meistä meitä mihin miksi mikä mille millä miltä minkä minkä minua minulla minulle minulta minun minussa minusta minut minuun minä minä missä mistä mitkä mitä mukaan mutta ne niiden niihin niiksi niille niillä niiltä niin niin niinä niissä niistä niitä noiden noihin noiksi noilla noille noilta noin noina noissa noista noita nuo nyt näiden näihin näiksi näille näillä näiltä näinä näissä näistä näitä nämä ole olemme olen olet olette oli olimme olin olisi olisimme olisin olisit olisitte olisivat olit olitte olivat olla olleet ollut on ovat poikki se sekä sen siihen siinä siitä siksi sille sillä sillä siltä sinua sinulla sinulle sinulta sinun sinussa sinusta sinut sinuun sinä sinä sitä tai te teidän teidät teihin teille teillä teiltä teissä teistä teitä tuo tuohon tuoksi tuolla tuolle tuolta tuon tuona tuossa tuosta tuota tähän täksi tälle tällä tältä tämä tämän tänä tässä tästä tätä vaan vai vaikka yli".split(" ")),i.Pipeline.registerFunction(i.fi.stopWordFilter,"stopWordFilter-fi")}}); \ No newline at end of file diff --git a/docs/theme/material/assets/javascripts/lunr/min/lunr.fr.min.js b/docs/theme/material/assets/javascripts/lunr/min/lunr.fr.min.js new file mode 100644 index 00000000..68cd0094 --- /dev/null +++ b/docs/theme/material/assets/javascripts/lunr/min/lunr.fr.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `French` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.fr=function(){this.pipeline.reset(),this.pipeline.add(e.fr.trimmer,e.fr.stopWordFilter,e.fr.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.fr.stemmer))},e.fr.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.fr.trimmer=e.trimmerSupport.generateTrimmer(e.fr.wordCharacters),e.Pipeline.registerFunction(e.fr.trimmer,"trimmer-fr"),e.fr.stemmer=function(){var r=e.stemmerSupport.Among,s=e.stemmerSupport.SnowballProgram,i=new function(){function e(e,r,s){return!(!W.eq_s(1,e)||(W.ket=W.cursor,!W.in_grouping(F,97,251)))&&(W.slice_from(r),W.cursor=s,!0)}function i(e,r,s){return!!W.eq_s(1,e)&&(W.ket=W.cursor,W.slice_from(r),W.cursor=s,!0)}function n(){for(var r,s;;){if(r=W.cursor,W.in_grouping(F,97,251)){if(W.bra=W.cursor,s=W.cursor,e("u","U",r))continue;if(W.cursor=s,e("i","I",r))continue;if(W.cursor=s,i("y","Y",r))continue}if(W.cursor=r,W.bra=r,!e("y","Y",r)){if(W.cursor=r,W.eq_s(1,"q")&&(W.bra=W.cursor,i("u","U",r)))continue;if(W.cursor=r,r>=W.limit)return;W.cursor++}}}function t(){for(;!W.in_grouping(F,97,251);){if(W.cursor>=W.limit)return!0;W.cursor++}for(;!W.out_grouping(F,97,251);){if(W.cursor>=W.limit)return!0;W.cursor++}return!1}function u(){var e=W.cursor;if(q=W.limit,g=q,p=q,W.in_grouping(F,97,251)&&W.in_grouping(F,97,251)&&W.cursor=W.limit){W.cursor=q;break}W.cursor++}while(!W.in_grouping(F,97,251))}q=W.cursor,W.cursor=e,t()||(g=W.cursor,t()||(p=W.cursor))}function o(){for(var e,r;;){if(r=W.cursor,W.bra=r,!(e=W.find_among(h,4)))break;switch(W.ket=W.cursor,e){case 1:W.slice_from("i");break;case 2:W.slice_from("u");break;case 3:W.slice_from("y");break;case 4:if(W.cursor>=W.limit)return;W.cursor++}}}function c(){return q<=W.cursor}function a(){return g<=W.cursor}function l(){return p<=W.cursor}function w(){var e,r;if(W.ket=W.cursor,e=W.find_among_b(C,43)){switch(W.bra=W.cursor,e){case 1:if(!l())return!1;W.slice_del();break;case 2:if(!l())return!1;W.slice_del(),W.ket=W.cursor,W.eq_s_b(2,"ic")&&(W.bra=W.cursor,l()?W.slice_del():W.slice_from("iqU"));break;case 3:if(!l())return!1;W.slice_from("log");break;case 4:if(!l())return!1;W.slice_from("u");break;case 5:if(!l())return!1;W.slice_from("ent");break;case 6:if(!c())return!1;if(W.slice_del(),W.ket=W.cursor,e=W.find_among_b(z,6))switch(W.bra=W.cursor,e){case 1:l()&&(W.slice_del(),W.ket=W.cursor,W.eq_s_b(2,"at")&&(W.bra=W.cursor,l()&&W.slice_del()));break;case 2:l()?W.slice_del():a()&&W.slice_from("eux");break;case 3:l()&&W.slice_del();break;case 4:c()&&W.slice_from("i")}break;case 7:if(!l())return!1;if(W.slice_del(),W.ket=W.cursor,e=W.find_among_b(y,3))switch(W.bra=W.cursor,e){case 1:l()?W.slice_del():W.slice_from("abl");break;case 2:l()?W.slice_del():W.slice_from("iqU");break;case 3:l()&&W.slice_del()}break;case 8:if(!l())return!1;if(W.slice_del(),W.ket=W.cursor,W.eq_s_b(2,"at")&&(W.bra=W.cursor,l()&&(W.slice_del(),W.ket=W.cursor,W.eq_s_b(2,"ic")))){W.bra=W.cursor,l()?W.slice_del():W.slice_from("iqU");break}break;case 9:W.slice_from("eau");break;case 10:if(!a())return!1;W.slice_from("al");break;case 11:if(l())W.slice_del();else{if(!a())return!1;W.slice_from("eux")}break;case 12:if(!a()||!W.out_grouping_b(F,97,251))return!1;W.slice_del();break;case 13:return c()&&W.slice_from("ant"),!1;case 14:return c()&&W.slice_from("ent"),!1;case 15:return r=W.limit-W.cursor,W.in_grouping_b(F,97,251)&&c()&&(W.cursor=W.limit-r,W.slice_del()),!1}return!0}return!1}function f(){var e,r;if(W.cursor=q){if(s=W.limit_backward,W.limit_backward=q,W.ket=W.cursor,e=W.find_among_b(P,7))switch(W.bra=W.cursor,e){case 1:if(l()){if(i=W.limit-W.cursor,!W.eq_s_b(1,"s")&&(W.cursor=W.limit-i,!W.eq_s_b(1,"t")))break;W.slice_del()}break;case 2:W.slice_from("i");break;case 3:W.slice_del();break;case 4:W.eq_s_b(2,"gu")&&W.slice_del()}W.limit_backward=s}}function b(){var e=W.limit-W.cursor;W.find_among_b(U,5)&&(W.cursor=W.limit-e,W.ket=W.cursor,W.cursor>W.limit_backward&&(W.cursor--,W.bra=W.cursor,W.slice_del()))}function d(){for(var e,r=1;W.out_grouping_b(F,97,251);)r--;if(r<=0){if(W.ket=W.cursor,e=W.limit-W.cursor,!W.eq_s_b(1,"é")&&(W.cursor=W.limit-e,!W.eq_s_b(1,"è")))return;W.bra=W.cursor,W.slice_from("e")}}function k(){if(!w()&&(W.cursor=W.limit,!f()&&(W.cursor=W.limit,!m())))return W.cursor=W.limit,void _();W.cursor=W.limit,W.ket=W.cursor,W.eq_s_b(1,"Y")?(W.bra=W.cursor,W.slice_from("i")):(W.cursor=W.limit,W.eq_s_b(1,"ç")&&(W.bra=W.cursor,W.slice_from("c")))}var p,g,q,v=[new r("col",-1,-1),new r("par",-1,-1),new r("tap",-1,-1)],h=[new r("",-1,4),new r("I",0,1),new r("U",0,2),new r("Y",0,3)],z=[new r("iqU",-1,3),new r("abl",-1,3),new r("Ièr",-1,4),new r("ièr",-1,4),new r("eus",-1,2),new r("iv",-1,1)],y=[new r("ic",-1,2),new r("abil",-1,1),new r("iv",-1,3)],C=[new r("iqUe",-1,1),new r("atrice",-1,2),new r("ance",-1,1),new r("ence",-1,5),new r("logie",-1,3),new r("able",-1,1),new r("isme",-1,1),new r("euse",-1,11),new r("iste",-1,1),new r("ive",-1,8),new r("if",-1,8),new r("usion",-1,4),new r("ation",-1,2),new r("ution",-1,4),new r("ateur",-1,2),new r("iqUes",-1,1),new r("atrices",-1,2),new r("ances",-1,1),new r("ences",-1,5),new r("logies",-1,3),new r("ables",-1,1),new r("ismes",-1,1),new r("euses",-1,11),new r("istes",-1,1),new r("ives",-1,8),new r("ifs",-1,8),new r("usions",-1,4),new r("ations",-1,2),new r("utions",-1,4),new r("ateurs",-1,2),new r("ments",-1,15),new r("ements",30,6),new r("issements",31,12),new r("ités",-1,7),new r("ment",-1,15),new r("ement",34,6),new r("issement",35,12),new r("amment",34,13),new r("emment",34,14),new r("aux",-1,10),new r("eaux",39,9),new r("eux",-1,1),new r("ité",-1,7)],x=[new r("ira",-1,1),new r("ie",-1,1),new r("isse",-1,1),new r("issante",-1,1),new r("i",-1,1),new r("irai",4,1),new r("ir",-1,1),new r("iras",-1,1),new r("ies",-1,1),new r("îmes",-1,1),new r("isses",-1,1),new r("issantes",-1,1),new r("îtes",-1,1),new r("is",-1,1),new r("irais",13,1),new r("issais",13,1),new r("irions",-1,1),new r("issions",-1,1),new r("irons",-1,1),new r("issons",-1,1),new r("issants",-1,1),new r("it",-1,1),new r("irait",21,1),new r("issait",21,1),new r("issant",-1,1),new r("iraIent",-1,1),new r("issaIent",-1,1),new r("irent",-1,1),new r("issent",-1,1),new r("iront",-1,1),new r("ît",-1,1),new r("iriez",-1,1),new r("issiez",-1,1),new r("irez",-1,1),new r("issez",-1,1)],I=[new r("a",-1,3),new r("era",0,2),new r("asse",-1,3),new r("ante",-1,3),new r("ée",-1,2),new r("ai",-1,3),new r("erai",5,2),new r("er",-1,2),new r("as",-1,3),new r("eras",8,2),new r("âmes",-1,3),new r("asses",-1,3),new r("antes",-1,3),new r("âtes",-1,3),new r("ées",-1,2),new r("ais",-1,3),new r("erais",15,2),new r("ions",-1,1),new r("erions",17,2),new r("assions",17,3),new r("erons",-1,2),new r("ants",-1,3),new r("és",-1,2),new r("ait",-1,3),new r("erait",23,2),new r("ant",-1,3),new r("aIent",-1,3),new r("eraIent",26,2),new r("èrent",-1,2),new r("assent",-1,3),new r("eront",-1,2),new r("ât",-1,3),new r("ez",-1,2),new r("iez",32,2),new r("eriez",33,2),new r("assiez",33,3),new r("erez",32,2),new r("é",-1,2)],P=[new r("e",-1,3),new r("Ière",0,2),new r("ière",0,2),new r("ion",-1,1),new r("Ier",-1,2),new r("ier",-1,2),new r("ë",-1,4)],U=[new r("ell",-1,-1),new r("eill",-1,-1),new r("enn",-1,-1),new r("onn",-1,-1),new r("ett",-1,-1)],F=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,128,130,103,8,5],S=[1,65,20,0,0,0,0,0,0,0,0,0,0,0,0,0,128],W=new s;this.setCurrent=function(e){W.setCurrent(e)},this.getCurrent=function(){return W.getCurrent()},this.stem=function(){var e=W.cursor;return n(),W.cursor=e,u(),W.limit_backward=e,W.cursor=W.limit,k(),W.cursor=W.limit,b(),W.cursor=W.limit,d(),W.cursor=W.limit_backward,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.fr.stemmer,"stemmer-fr"),e.fr.stopWordFilter=e.generateStopWordFilter("ai aie aient aies ait as au aura aurai auraient aurais aurait auras aurez auriez aurions aurons auront aux avaient avais avait avec avez aviez avions avons ayant ayez ayons c ce ceci celà ces cet cette d dans de des du elle en es est et eu eue eues eurent eus eusse eussent eusses eussiez eussions eut eux eûmes eût eûtes furent fus fusse fussent fusses fussiez fussions fut fûmes fût fûtes ici il ils j je l la le les leur leurs lui m ma mais me mes moi mon même n ne nos notre nous on ont ou par pas pour qu que quel quelle quelles quels qui s sa sans se sera serai seraient serais serait seras serez seriez serions serons seront ses soi soient sois soit sommes son sont soyez soyons suis sur t ta te tes toi ton tu un une vos votre vous y à étaient étais était étant étiez étions été étée étées étés êtes".split(" ")),e.Pipeline.registerFunction(e.fr.stopWordFilter,"stopWordFilter-fr")}}); \ No newline at end of file diff --git a/docs/theme/material/assets/javascripts/lunr/min/lunr.hu.min.js b/docs/theme/material/assets/javascripts/lunr/min/lunr.hu.min.js new file mode 100644 index 00000000..ed9d909f --- /dev/null +++ b/docs/theme/material/assets/javascripts/lunr/min/lunr.hu.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Hungarian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hu=function(){this.pipeline.reset(),this.pipeline.add(e.hu.trimmer,e.hu.stopWordFilter,e.hu.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.hu.stemmer))},e.hu.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.hu.trimmer=e.trimmerSupport.generateTrimmer(e.hu.wordCharacters),e.Pipeline.registerFunction(e.hu.trimmer,"trimmer-hu"),e.hu.stemmer=function(){var n=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,i=new function(){function e(){var e,n=L.cursor;if(d=L.limit,L.in_grouping(W,97,252))for(;;){if(e=L.cursor,L.out_grouping(W,97,252))return L.cursor=e,L.find_among(g,8)||(L.cursor=e,e=L.limit)return void(d=e);L.cursor++}if(L.cursor=n,L.out_grouping(W,97,252)){for(;!L.in_grouping(W,97,252);){if(L.cursor>=L.limit)return;L.cursor++}d=L.cursor}}function i(){return d<=L.cursor}function a(){var e;if(L.ket=L.cursor,(e=L.find_among_b(h,2))&&(L.bra=L.cursor,i()))switch(e){case 1:L.slice_from("a");break;case 2:L.slice_from("e")}}function t(){var e=L.limit-L.cursor;return!!L.find_among_b(p,23)&&(L.cursor=L.limit-e,!0)}function s(){if(L.cursor>L.limit_backward){L.cursor--,L.ket=L.cursor;var e=L.cursor-1;L.limit_backward<=e&&e<=L.limit&&(L.cursor=e,L.bra=e,L.slice_del())}}function c(){var e;if(L.ket=L.cursor,(e=L.find_among_b(_,2))&&(L.bra=L.cursor,i())){if((1==e||2==e)&&!t())return;L.slice_del(),s()}}function o(){L.ket=L.cursor,L.find_among_b(v,44)&&(L.bra=L.cursor,i()&&(L.slice_del(),a()))}function w(){var e;if(L.ket=L.cursor,(e=L.find_among_b(z,3))&&(L.bra=L.cursor,i()))switch(e){case 1:L.slice_from("e");break;case 2:case 3:L.slice_from("a")}}function l(){var e;if(L.ket=L.cursor,(e=L.find_among_b(y,6))&&(L.bra=L.cursor,i()))switch(e){case 1:case 2:L.slice_del();break;case 3:L.slice_from("a");break;case 4:L.slice_from("e")}}function u(){var e;if(L.ket=L.cursor,(e=L.find_among_b(j,2))&&(L.bra=L.cursor,i())){if((1==e||2==e)&&!t())return;L.slice_del(),s()}}function m(){var e;if(L.ket=L.cursor,(e=L.find_among_b(C,7))&&(L.bra=L.cursor,i()))switch(e){case 1:L.slice_from("a");break;case 2:L.slice_from("e");break;case 3:case 4:case 5:case 6:case 7:L.slice_del()}}function k(){var e;if(L.ket=L.cursor,(e=L.find_among_b(P,12))&&(L.bra=L.cursor,i()))switch(e){case 1:case 4:case 7:case 9:L.slice_del();break;case 2:case 5:case 8:L.slice_from("e");break;case 3:case 6:L.slice_from("a")}}function f(){var e;if(L.ket=L.cursor,(e=L.find_among_b(F,31))&&(L.bra=L.cursor,i()))switch(e){case 1:case 4:case 7:case 8:case 9:case 12:case 13:case 16:case 17:case 18:L.slice_del();break;case 2:case 5:case 10:case 14:case 19:L.slice_from("a");break;case 3:case 6:case 11:case 15:case 20:L.slice_from("e")}}function b(){var e;if(L.ket=L.cursor,(e=L.find_among_b(S,42))&&(L.bra=L.cursor,i()))switch(e){case 1:case 4:case 5:case 6:case 9:case 10:case 11:case 14:case 15:case 16:case 17:case 20:case 21:case 24:case 25:case 26:case 29:L.slice_del();break;case 2:case 7:case 12:case 18:case 22:case 27:L.slice_from("a");break;case 3:case 8:case 13:case 19:case 23:case 28:L.slice_from("e")}}var d,g=[new n("cs",-1,-1),new n("dzs",-1,-1),new n("gy",-1,-1),new n("ly",-1,-1),new n("ny",-1,-1),new n("sz",-1,-1),new n("ty",-1,-1),new n("zs",-1,-1)],h=[new n("á",-1,1),new n("é",-1,2)],p=[new n("bb",-1,-1),new n("cc",-1,-1),new n("dd",-1,-1),new n("ff",-1,-1),new n("gg",-1,-1),new n("jj",-1,-1),new n("kk",-1,-1),new n("ll",-1,-1),new n("mm",-1,-1),new n("nn",-1,-1),new n("pp",-1,-1),new n("rr",-1,-1),new n("ccs",-1,-1),new n("ss",-1,-1),new n("zzs",-1,-1),new n("tt",-1,-1),new n("vv",-1,-1),new n("ggy",-1,-1),new n("lly",-1,-1),new n("nny",-1,-1),new n("tty",-1,-1),new n("ssz",-1,-1),new n("zz",-1,-1)],_=[new n("al",-1,1),new n("el",-1,2)],v=[new n("ba",-1,-1),new n("ra",-1,-1),new n("be",-1,-1),new n("re",-1,-1),new n("ig",-1,-1),new n("nak",-1,-1),new n("nek",-1,-1),new n("val",-1,-1),new n("vel",-1,-1),new n("ul",-1,-1),new n("nál",-1,-1),new n("nél",-1,-1),new n("ból",-1,-1),new n("ról",-1,-1),new n("tól",-1,-1),new n("bõl",-1,-1),new n("rõl",-1,-1),new n("tõl",-1,-1),new n("ül",-1,-1),new n("n",-1,-1),new n("an",19,-1),new n("ban",20,-1),new n("en",19,-1),new n("ben",22,-1),new n("képpen",22,-1),new n("on",19,-1),new n("ön",19,-1),new n("képp",-1,-1),new n("kor",-1,-1),new n("t",-1,-1),new n("at",29,-1),new n("et",29,-1),new n("ként",29,-1),new n("anként",32,-1),new n("enként",32,-1),new n("onként",32,-1),new n("ot",29,-1),new n("ért",29,-1),new n("öt",29,-1),new n("hez",-1,-1),new n("hoz",-1,-1),new n("höz",-1,-1),new n("vá",-1,-1),new n("vé",-1,-1)],z=[new n("án",-1,2),new n("én",-1,1),new n("ánként",-1,3)],y=[new n("stul",-1,2),new n("astul",0,1),new n("ástul",0,3),new n("stül",-1,2),new n("estül",3,1),new n("éstül",3,4)],j=[new n("á",-1,1),new n("é",-1,2)],C=[new n("k",-1,7),new n("ak",0,4),new n("ek",0,6),new n("ok",0,5),new n("ák",0,1),new n("ék",0,2),new n("ök",0,3)],P=[new n("éi",-1,7),new n("áéi",0,6),new n("ééi",0,5),new n("é",-1,9),new n("ké",3,4),new n("aké",4,1),new n("eké",4,1),new n("oké",4,1),new n("áké",4,3),new n("éké",4,2),new n("öké",4,1),new n("éé",3,8)],F=[new n("a",-1,18),new n("ja",0,17),new n("d",-1,16),new n("ad",2,13),new n("ed",2,13),new n("od",2,13),new n("ád",2,14),new n("éd",2,15),new n("öd",2,13),new n("e",-1,18),new n("je",9,17),new n("nk",-1,4),new n("unk",11,1),new n("ánk",11,2),new n("énk",11,3),new n("ünk",11,1),new n("uk",-1,8),new n("juk",16,7),new n("ájuk",17,5),new n("ük",-1,8),new n("jük",19,7),new n("éjük",20,6),new n("m",-1,12),new n("am",22,9),new n("em",22,9),new n("om",22,9),new n("ám",22,10),new n("ém",22,11),new n("o",-1,18),new n("á",-1,19),new n("é",-1,20)],S=[new n("id",-1,10),new n("aid",0,9),new n("jaid",1,6),new n("eid",0,9),new n("jeid",3,6),new n("áid",0,7),new n("éid",0,8),new n("i",-1,15),new n("ai",7,14),new n("jai",8,11),new n("ei",7,14),new n("jei",10,11),new n("ái",7,12),new n("éi",7,13),new n("itek",-1,24),new n("eitek",14,21),new n("jeitek",15,20),new n("éitek",14,23),new n("ik",-1,29),new n("aik",18,26),new n("jaik",19,25),new n("eik",18,26),new n("jeik",21,25),new n("áik",18,27),new n("éik",18,28),new n("ink",-1,20),new n("aink",25,17),new n("jaink",26,16),new n("eink",25,17),new n("jeink",28,16),new n("áink",25,18),new n("éink",25,19),new n("aitok",-1,21),new n("jaitok",32,20),new n("áitok",-1,22),new n("im",-1,5),new n("aim",35,4),new n("jaim",36,1),new n("eim",35,4),new n("jeim",38,1),new n("áim",35,2),new n("éim",35,3)],W=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,17,52,14],L=new r;this.setCurrent=function(e){L.setCurrent(e)},this.getCurrent=function(){return L.getCurrent()},this.stem=function(){var n=L.cursor;return e(),L.limit_backward=n,L.cursor=L.limit,c(),L.cursor=L.limit,o(),L.cursor=L.limit,w(),L.cursor=L.limit,l(),L.cursor=L.limit,u(),L.cursor=L.limit,k(),L.cursor=L.limit,f(),L.cursor=L.limit,b(),L.cursor=L.limit,m(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.hu.stemmer,"stemmer-hu"),e.hu.stopWordFilter=e.generateStopWordFilter("a abban ahhoz ahogy ahol aki akik akkor alatt amely amelyek amelyekben amelyeket amelyet amelynek ami amikor amit amolyan amíg annak arra arról az azok azon azonban azt aztán azután azzal azért be belül benne bár cikk cikkek cikkeket csak de e ebben eddig egy egyes egyetlen egyik egyre egyéb egész ehhez ekkor el ellen elsõ elég elõ elõször elõtt emilyen ennek erre ez ezek ezen ezt ezzel ezért fel felé hanem hiszen hogy hogyan igen ill ill. illetve ilyen ilyenkor ismét ison itt jobban jó jól kell kellett keressünk keresztül ki kívül között közül legalább legyen lehet lehetett lenne lenni lesz lett maga magát majd majd meg mellett mely melyek mert mi mikor milyen minden mindenki mindent mindig mint mintha mit mivel miért most már más másik még míg nagy nagyobb nagyon ne nekem neki nem nincs néha néhány nélkül olyan ott pedig persze rá s saját sem semmi sok sokat sokkal szemben szerint szinte számára talán tehát teljes tovább továbbá több ugyanis utolsó után utána vagy vagyis vagyok valaki valami valamint való van vannak vele vissza viszont volna volt voltak voltam voltunk által általában át én éppen és így õ õk õket össze úgy új újabb újra".split(" ")),e.Pipeline.registerFunction(e.hu.stopWordFilter,"stopWordFilter-hu")}}); \ No newline at end of file diff --git a/docs/theme/material/assets/javascripts/lunr/min/lunr.it.min.js b/docs/theme/material/assets/javascripts/lunr/min/lunr.it.min.js new file mode 100644 index 00000000..344b6a3c --- /dev/null +++ b/docs/theme/material/assets/javascripts/lunr/min/lunr.it.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Italian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.it=function(){this.pipeline.reset(),this.pipeline.add(e.it.trimmer,e.it.stopWordFilter,e.it.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.it.stemmer))},e.it.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.it.trimmer=e.trimmerSupport.generateTrimmer(e.it.wordCharacters),e.Pipeline.registerFunction(e.it.trimmer,"trimmer-it"),e.it.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(e,r,n){return!(!x.eq_s(1,e)||(x.ket=x.cursor,!x.in_grouping(L,97,249)))&&(x.slice_from(r),x.cursor=n,!0)}function i(){for(var r,n,i,o,t=x.cursor;;){if(x.bra=x.cursor,r=x.find_among(h,7))switch(x.ket=x.cursor,r){case 1:x.slice_from("à");continue;case 2:x.slice_from("è");continue;case 3:x.slice_from("ì");continue;case 4:x.slice_from("ò");continue;case 5:x.slice_from("ù");continue;case 6:x.slice_from("qU");continue;case 7:if(x.cursor>=x.limit)break;x.cursor++;continue}break}for(x.cursor=t;;)for(n=x.cursor;;){if(i=x.cursor,x.in_grouping(L,97,249)){if(x.bra=x.cursor,o=x.cursor,e("u","U",i))break;if(x.cursor=o,e("i","I",i))break}if(x.cursor=i,x.cursor>=x.limit)return void(x.cursor=n);x.cursor++}}function o(e){if(x.cursor=e,!x.in_grouping(L,97,249))return!1;for(;!x.out_grouping(L,97,249);){if(x.cursor>=x.limit)return!1;x.cursor++}return!0}function t(){if(x.in_grouping(L,97,249)){var e=x.cursor;if(x.out_grouping(L,97,249)){for(;!x.in_grouping(L,97,249);){if(x.cursor>=x.limit)return o(e);x.cursor++}return!0}return o(e)}return!1}function s(){var e,r=x.cursor;if(!t()){if(x.cursor=r,!x.out_grouping(L,97,249))return;if(e=x.cursor,x.out_grouping(L,97,249)){for(;!x.in_grouping(L,97,249);){if(x.cursor>=x.limit)return x.cursor=e,void(x.in_grouping(L,97,249)&&x.cursor=x.limit)return;x.cursor++}k=x.cursor}function a(){for(;!x.in_grouping(L,97,249);){if(x.cursor>=x.limit)return!1;x.cursor++}for(;!x.out_grouping(L,97,249);){if(x.cursor>=x.limit)return!1;x.cursor++}return!0}function u(){var e=x.cursor;k=x.limit,p=k,g=k,s(),x.cursor=e,a()&&(p=x.cursor,a()&&(g=x.cursor))}function c(){for(var e;;){if(x.bra=x.cursor,!(e=x.find_among(q,3)))break;switch(x.ket=x.cursor,e){case 1:x.slice_from("i");break;case 2:x.slice_from("u");break;case 3:if(x.cursor>=x.limit)return;x.cursor++}}}function w(){return k<=x.cursor}function l(){return p<=x.cursor}function m(){return g<=x.cursor}function f(){var e;if(x.ket=x.cursor,x.find_among_b(C,37)&&(x.bra=x.cursor,(e=x.find_among_b(z,5))&&w()))switch(e){case 1:x.slice_del();break;case 2:x.slice_from("e")}}function v(){var e;if(x.ket=x.cursor,!(e=x.find_among_b(S,51)))return!1;switch(x.bra=x.cursor,e){case 1:if(!m())return!1;x.slice_del();break;case 2:if(!m())return!1;x.slice_del(),x.ket=x.cursor,x.eq_s_b(2,"ic")&&(x.bra=x.cursor,m()&&x.slice_del());break;case 3:if(!m())return!1;x.slice_from("log");break;case 4:if(!m())return!1;x.slice_from("u");break;case 5:if(!m())return!1;x.slice_from("ente");break;case 6:if(!w())return!1;x.slice_del();break;case 7:if(!l())return!1;x.slice_del(),x.ket=x.cursor,e=x.find_among_b(P,4),e&&(x.bra=x.cursor,m()&&(x.slice_del(),1==e&&(x.ket=x.cursor,x.eq_s_b(2,"at")&&(x.bra=x.cursor,m()&&x.slice_del()))));break;case 8:if(!m())return!1;x.slice_del(),x.ket=x.cursor,e=x.find_among_b(F,3),e&&(x.bra=x.cursor,1==e&&m()&&x.slice_del());break;case 9:if(!m())return!1;x.slice_del(),x.ket=x.cursor,x.eq_s_b(2,"at")&&(x.bra=x.cursor,m()&&(x.slice_del(),x.ket=x.cursor,x.eq_s_b(2,"ic")&&(x.bra=x.cursor,m()&&x.slice_del())))}return!0}function b(){var e,r;x.cursor>=k&&(r=x.limit_backward,x.limit_backward=k,x.ket=x.cursor,e=x.find_among_b(W,87),e&&(x.bra=x.cursor,1==e&&x.slice_del()),x.limit_backward=r)}function d(){var e=x.limit-x.cursor;if(x.ket=x.cursor,x.in_grouping_b(y,97,242)&&(x.bra=x.cursor,w()&&(x.slice_del(),x.ket=x.cursor,x.eq_s_b(1,"i")&&(x.bra=x.cursor,w()))))return void x.slice_del();x.cursor=x.limit-e}function _(){d(),x.ket=x.cursor,x.eq_s_b(1,"h")&&(x.bra=x.cursor,x.in_grouping_b(U,99,103)&&w()&&x.slice_del())}var g,p,k,h=[new r("",-1,7),new r("qu",0,6),new r("á",0,1),new r("é",0,2),new r("í",0,3),new r("ó",0,4),new r("ú",0,5)],q=[new r("",-1,3),new r("I",0,1),new r("U",0,2)],C=[new r("la",-1,-1),new r("cela",0,-1),new r("gliela",0,-1),new r("mela",0,-1),new r("tela",0,-1),new r("vela",0,-1),new r("le",-1,-1),new r("cele",6,-1),new r("gliele",6,-1),new r("mele",6,-1),new r("tele",6,-1),new r("vele",6,-1),new r("ne",-1,-1),new r("cene",12,-1),new r("gliene",12,-1),new r("mene",12,-1),new r("sene",12,-1),new r("tene",12,-1),new r("vene",12,-1),new r("ci",-1,-1),new r("li",-1,-1),new r("celi",20,-1),new r("glieli",20,-1),new r("meli",20,-1),new r("teli",20,-1),new r("veli",20,-1),new r("gli",20,-1),new r("mi",-1,-1),new r("si",-1,-1),new r("ti",-1,-1),new r("vi",-1,-1),new r("lo",-1,-1),new r("celo",31,-1),new r("glielo",31,-1),new r("melo",31,-1),new r("telo",31,-1),new r("velo",31,-1)],z=[new r("ando",-1,1),new r("endo",-1,1),new r("ar",-1,2),new r("er",-1,2),new r("ir",-1,2)],P=[new r("ic",-1,-1),new r("abil",-1,-1),new r("os",-1,-1),new r("iv",-1,1)],F=[new r("ic",-1,1),new r("abil",-1,1),new r("iv",-1,1)],S=[new r("ica",-1,1),new r("logia",-1,3),new r("osa",-1,1),new r("ista",-1,1),new r("iva",-1,9),new r("anza",-1,1),new r("enza",-1,5),new r("ice",-1,1),new r("atrice",7,1),new r("iche",-1,1),new r("logie",-1,3),new r("abile",-1,1),new r("ibile",-1,1),new r("usione",-1,4),new r("azione",-1,2),new r("uzione",-1,4),new r("atore",-1,2),new r("ose",-1,1),new r("ante",-1,1),new r("mente",-1,1),new r("amente",19,7),new r("iste",-1,1),new r("ive",-1,9),new r("anze",-1,1),new r("enze",-1,5),new r("ici",-1,1),new r("atrici",25,1),new r("ichi",-1,1),new r("abili",-1,1),new r("ibili",-1,1),new r("ismi",-1,1),new r("usioni",-1,4),new r("azioni",-1,2),new r("uzioni",-1,4),new r("atori",-1,2),new r("osi",-1,1),new r("anti",-1,1),new r("amenti",-1,6),new r("imenti",-1,6),new r("isti",-1,1),new r("ivi",-1,9),new r("ico",-1,1),new r("ismo",-1,1),new r("oso",-1,1),new r("amento",-1,6),new r("imento",-1,6),new r("ivo",-1,9),new r("ità",-1,8),new r("istà",-1,1),new r("istè",-1,1),new r("istì",-1,1)],W=[new r("isca",-1,1),new r("enda",-1,1),new r("ata",-1,1),new r("ita",-1,1),new r("uta",-1,1),new r("ava",-1,1),new r("eva",-1,1),new r("iva",-1,1),new r("erebbe",-1,1),new r("irebbe",-1,1),new r("isce",-1,1),new r("ende",-1,1),new r("are",-1,1),new r("ere",-1,1),new r("ire",-1,1),new r("asse",-1,1),new r("ate",-1,1),new r("avate",16,1),new r("evate",16,1),new r("ivate",16,1),new r("ete",-1,1),new r("erete",20,1),new r("irete",20,1),new r("ite",-1,1),new r("ereste",-1,1),new r("ireste",-1,1),new r("ute",-1,1),new r("erai",-1,1),new r("irai",-1,1),new r("isci",-1,1),new r("endi",-1,1),new r("erei",-1,1),new r("irei",-1,1),new r("assi",-1,1),new r("ati",-1,1),new r("iti",-1,1),new r("eresti",-1,1),new r("iresti",-1,1),new r("uti",-1,1),new r("avi",-1,1),new r("evi",-1,1),new r("ivi",-1,1),new r("isco",-1,1),new r("ando",-1,1),new r("endo",-1,1),new r("Yamo",-1,1),new r("iamo",-1,1),new r("avamo",-1,1),new r("evamo",-1,1),new r("ivamo",-1,1),new r("eremo",-1,1),new r("iremo",-1,1),new r("assimo",-1,1),new r("ammo",-1,1),new r("emmo",-1,1),new r("eremmo",54,1),new r("iremmo",54,1),new r("immo",-1,1),new r("ano",-1,1),new r("iscano",58,1),new r("avano",58,1),new r("evano",58,1),new r("ivano",58,1),new r("eranno",-1,1),new r("iranno",-1,1),new r("ono",-1,1),new r("iscono",65,1),new r("arono",65,1),new r("erono",65,1),new r("irono",65,1),new r("erebbero",-1,1),new r("irebbero",-1,1),new r("assero",-1,1),new r("essero",-1,1),new r("issero",-1,1),new r("ato",-1,1),new r("ito",-1,1),new r("uto",-1,1),new r("avo",-1,1),new r("evo",-1,1),new r("ivo",-1,1),new r("ar",-1,1),new r("ir",-1,1),new r("erà",-1,1),new r("irà",-1,1),new r("erò",-1,1),new r("irò",-1,1)],L=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2,1],y=[17,65,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2],U=[17],x=new n;this.setCurrent=function(e){x.setCurrent(e)},this.getCurrent=function(){return x.getCurrent()},this.stem=function(){var e=x.cursor;return i(),x.cursor=e,u(),x.limit_backward=e,x.cursor=x.limit,f(),x.cursor=x.limit,v()||(x.cursor=x.limit,b()),x.cursor=x.limit,_(),x.cursor=x.limit_backward,c(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.it.stemmer,"stemmer-it"),e.it.stopWordFilter=e.generateStopWordFilter("a abbia abbiamo abbiano abbiate ad agl agli ai al all alla alle allo anche avemmo avendo avesse avessero avessi avessimo aveste avesti avete aveva avevamo avevano avevate avevi avevo avrai avranno avrebbe avrebbero avrei avremmo avremo avreste avresti avrete avrà avrò avuta avute avuti avuto c che chi ci coi col come con contro cui da dagl dagli dai dal dall dalla dalle dallo degl degli dei del dell della delle dello di dov dove e ebbe ebbero ebbi ed era erano eravamo eravate eri ero essendo faccia facciamo facciano facciate faccio facemmo facendo facesse facessero facessi facessimo faceste facesti faceva facevamo facevano facevate facevi facevo fai fanno farai faranno farebbe farebbero farei faremmo faremo fareste faresti farete farà farò fece fecero feci fosse fossero fossi fossimo foste fosti fu fui fummo furono gli ha hai hanno ho i il in io l la le lei li lo loro lui ma mi mia mie miei mio ne negl negli nei nel nell nella nelle nello noi non nostra nostre nostri nostro o per perché più quale quanta quante quanti quanto quella quelle quelli quello questa queste questi questo sarai saranno sarebbe sarebbero sarei saremmo saremo sareste saresti sarete sarà sarò se sei si sia siamo siano siate siete sono sta stai stando stanno starai staranno starebbe starebbero starei staremmo staremo stareste staresti starete starà starò stava stavamo stavano stavate stavi stavo stemmo stesse stessero stessi stessimo steste stesti stette stettero stetti stia stiamo stiano stiate sto su sua sue sugl sugli sui sul sull sulla sulle sullo suo suoi ti tra tu tua tue tuo tuoi tutti tutto un una uno vi voi vostra vostre vostri vostro è".split(" ")),e.Pipeline.registerFunction(e.it.stopWordFilter,"stopWordFilter-it")}}); \ No newline at end of file diff --git a/docs/theme/material/assets/javascripts/lunr/min/lunr.ja.min.js b/docs/theme/material/assets/javascripts/lunr/min/lunr.ja.min.js new file mode 100644 index 00000000..5f254ebe --- /dev/null +++ b/docs/theme/material/assets/javascripts/lunr/min/lunr.ja.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.ja=function(){this.pipeline.reset(),this.pipeline.add(e.ja.trimmer,e.ja.stopWordFilter,e.ja.stemmer),r?this.tokenizer=e.ja.tokenizer:(e.tokenizer&&(e.tokenizer=e.ja.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.ja.tokenizer))};var t=new e.TinySegmenter;e.ja.tokenizer=function(i){var n,o,s,p,a,u,m,l,c,f;if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t.toLowerCase()):t.toLowerCase()});for(o=i.toString().toLowerCase().replace(/^\s+/,""),n=o.length-1;n>=0;n--)if(/\S/.test(o.charAt(n))){o=o.substring(0,n+1);break}for(a=[],s=o.length,c=0,l=0;c<=s;c++)if(u=o.charAt(c),m=c-l,u.match(/\s/)||c==s){if(m>0)for(p=t.segment(o.slice(l,c)).filter(function(e){return!!e}),f=l,n=0;n=C.limit)break;C.cursor++;continue}break}for(C.cursor=o,C.bra=o,C.eq_s(1,"y")?(C.ket=C.cursor,C.slice_from("Y")):C.cursor=o;;)if(e=C.cursor,C.in_grouping(q,97,232)){if(i=C.cursor,C.bra=i,C.eq_s(1,"i"))C.ket=C.cursor,C.in_grouping(q,97,232)&&(C.slice_from("I"),C.cursor=e);else if(C.cursor=i,C.eq_s(1,"y"))C.ket=C.cursor,C.slice_from("Y"),C.cursor=e;else if(n(e))break}else if(n(e))break}function n(r){return C.cursor=r,r>=C.limit||(C.cursor++,!1)}function o(){_=C.limit,d=_,t()||(_=C.cursor,_<3&&(_=3),t()||(d=C.cursor))}function t(){for(;!C.in_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}for(;!C.out_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}return!1}function s(){for(var r;;)if(C.bra=C.cursor,r=C.find_among(p,3))switch(C.ket=C.cursor,r){case 1:C.slice_from("y");break;case 2:C.slice_from("i");break;case 3:if(C.cursor>=C.limit)return;C.cursor++}}function u(){return _<=C.cursor}function c(){return d<=C.cursor}function a(){var r=C.limit-C.cursor;C.find_among_b(g,3)&&(C.cursor=C.limit-r,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del()))}function l(){var r;w=!1,C.ket=C.cursor,C.eq_s_b(1,"e")&&(C.bra=C.cursor,u()&&(r=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-r,C.slice_del(),w=!0,a())))}function m(){var r;u()&&(r=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-r,C.eq_s_b(3,"gem")||(C.cursor=C.limit-r,C.slice_del(),a())))}function f(){var r,e,i,n,o,t,s=C.limit-C.cursor;if(C.ket=C.cursor,r=C.find_among_b(h,5))switch(C.bra=C.cursor,r){case 1:u()&&C.slice_from("heid");break;case 2:m();break;case 3:u()&&C.out_grouping_b(j,97,232)&&C.slice_del()}if(C.cursor=C.limit-s,l(),C.cursor=C.limit-s,C.ket=C.cursor,C.eq_s_b(4,"heid")&&(C.bra=C.cursor,c()&&(e=C.limit-C.cursor,C.eq_s_b(1,"c")||(C.cursor=C.limit-e,C.slice_del(),C.ket=C.cursor,C.eq_s_b(2,"en")&&(C.bra=C.cursor,m())))),C.cursor=C.limit-s,C.ket=C.cursor,r=C.find_among_b(k,6))switch(C.bra=C.cursor,r){case 1:if(c()){if(C.slice_del(),i=C.limit-C.cursor,C.ket=C.cursor,C.eq_s_b(2,"ig")&&(C.bra=C.cursor,c()&&(n=C.limit-C.cursor,!C.eq_s_b(1,"e")))){C.cursor=C.limit-n,C.slice_del();break}C.cursor=C.limit-i,a()}break;case 2:c()&&(o=C.limit-C.cursor,C.eq_s_b(1,"e")||(C.cursor=C.limit-o,C.slice_del()));break;case 3:c()&&(C.slice_del(),l());break;case 4:c()&&C.slice_del();break;case 5:c()&&w&&C.slice_del()}C.cursor=C.limit-s,C.out_grouping_b(z,73,232)&&(t=C.limit-C.cursor,C.find_among_b(v,4)&&C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-t,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del())))}var d,_,w,b=[new e("",-1,6),new e("á",0,1),new e("ä",0,1),new e("é",0,2),new e("ë",0,2),new e("í",0,3),new e("ï",0,3),new e("ó",0,4),new e("ö",0,4),new e("ú",0,5),new e("ü",0,5)],p=[new e("",-1,3),new e("I",0,2),new e("Y",0,1)],g=[new e("dd",-1,-1),new e("kk",-1,-1),new e("tt",-1,-1)],h=[new e("ene",-1,2),new e("se",-1,3),new e("en",-1,2),new e("heden",2,1),new e("s",-1,3)],k=[new e("end",-1,1),new e("ig",-1,2),new e("ing",-1,1),new e("lijk",-1,3),new e("baar",-1,4),new e("bar",-1,5)],v=[new e("aa",-1,-1),new e("ee",-1,-1),new e("oo",-1,-1),new e("uu",-1,-1)],q=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],z=[1,0,0,17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],j=[17,67,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],C=new i;this.setCurrent=function(r){C.setCurrent(r)},this.getCurrent=function(){return C.getCurrent()},this.stem=function(){var e=C.cursor;return r(),C.cursor=e,o(),C.limit_backward=e,C.cursor=C.limit,f(),C.cursor=C.limit_backward,s(),!0}};return function(r){return"function"==typeof r.update?r.update(function(r){return n.setCurrent(r),n.stem(),n.getCurrent()}):(n.setCurrent(r),n.stem(),n.getCurrent())}}(),r.Pipeline.registerFunction(r.nl.stemmer,"stemmer-nl"),r.nl.stopWordFilter=r.generateStopWordFilter(" aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou".split(" ")),r.Pipeline.registerFunction(r.nl.stopWordFilter,"stopWordFilter-nl")}}); \ No newline at end of file diff --git a/docs/theme/material/assets/javascripts/lunr/min/lunr.no.min.js b/docs/theme/material/assets/javascripts/lunr/min/lunr.no.min.js new file mode 100644 index 00000000..92bc7e4e --- /dev/null +++ b/docs/theme/material/assets/javascripts/lunr/min/lunr.no.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Norwegian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.no=function(){this.pipeline.reset(),this.pipeline.add(e.no.trimmer,e.no.stopWordFilter,e.no.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.no.stemmer))},e.no.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.no.trimmer=e.trimmerSupport.generateTrimmer(e.no.wordCharacters),e.Pipeline.registerFunction(e.no.trimmer,"trimmer-no"),e.no.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(){var e,r=w.cursor+3;if(a=w.limit,0<=r||r<=w.limit){for(s=r;;){if(e=w.cursor,w.in_grouping(d,97,248)){w.cursor=e;break}if(e>=w.limit)return;w.cursor=e+1}for(;!w.out_grouping(d,97,248);){if(w.cursor>=w.limit)return;w.cursor++}a=w.cursor,a=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(m,29),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:n=w.limit-w.cursor,w.in_grouping_b(c,98,122)?w.slice_del():(w.cursor=w.limit-n,w.eq_s_b(1,"k")&&w.out_grouping_b(d,97,248)&&w.slice_del());break;case 3:w.slice_from("er")}}function t(){var e,r=w.limit-w.cursor;w.cursor>=a&&(e=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,w.find_among_b(u,2)?(w.bra=w.cursor,w.limit_backward=e,w.cursor=w.limit-r,w.cursor>w.limit_backward&&(w.cursor--,w.bra=w.cursor,w.slice_del())):w.limit_backward=e)}function o(){var e,r;w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(l,11),e?(w.bra=w.cursor,w.limit_backward=r,1==e&&w.slice_del()):w.limit_backward=r)}var s,a,m=[new r("a",-1,1),new r("e",-1,1),new r("ede",1,1),new r("ande",1,1),new r("ende",1,1),new r("ane",1,1),new r("ene",1,1),new r("hetene",6,1),new r("erte",1,3),new r("en",-1,1),new r("heten",9,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",12,1),new r("s",-1,2),new r("as",14,1),new r("es",14,1),new r("edes",16,1),new r("endes",16,1),new r("enes",16,1),new r("hetenes",19,1),new r("ens",14,1),new r("hetens",21,1),new r("ers",14,1),new r("ets",14,1),new r("et",-1,1),new r("het",25,1),new r("ert",-1,3),new r("ast",-1,1)],u=[new r("dt",-1,-1),new r("vt",-1,-1)],l=[new r("leg",-1,1),new r("eleg",0,1),new r("ig",-1,1),new r("eig",2,1),new r("lig",2,1),new r("elig",4,1),new r("els",-1,1),new r("lov",-1,1),new r("elov",7,1),new r("slov",7,1),new r("hetslov",9,1)],d=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],c=[119,125,149,1],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,i(),w.cursor=w.limit,t(),w.cursor=w.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.no.stemmer,"stemmer-no"),e.no.stopWordFilter=e.generateStopWordFilter("alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å".split(" ")),e.Pipeline.registerFunction(e.no.stopWordFilter,"stopWordFilter-no")}}); \ No newline at end of file diff --git a/docs/theme/material/assets/javascripts/lunr/min/lunr.pt.min.js b/docs/theme/material/assets/javascripts/lunr/min/lunr.pt.min.js new file mode 100644 index 00000000..6c16996d --- /dev/null +++ b/docs/theme/material/assets/javascripts/lunr/min/lunr.pt.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Portuguese` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.pt=function(){this.pipeline.reset(),this.pipeline.add(e.pt.trimmer,e.pt.stopWordFilter,e.pt.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.pt.stemmer))},e.pt.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.pt.trimmer=e.trimmerSupport.generateTrimmer(e.pt.wordCharacters),e.Pipeline.registerFunction(e.pt.trimmer,"trimmer-pt"),e.pt.stemmer=function(){var r=e.stemmerSupport.Among,s=e.stemmerSupport.SnowballProgram,n=new function(){function e(){for(var e;;){if(z.bra=z.cursor,e=z.find_among(k,3))switch(z.ket=z.cursor,e){case 1:z.slice_from("a~");continue;case 2:z.slice_from("o~");continue;case 3:if(z.cursor>=z.limit)break;z.cursor++;continue}break}}function n(){if(z.out_grouping(y,97,250)){for(;!z.in_grouping(y,97,250);){if(z.cursor>=z.limit)return!0;z.cursor++}return!1}return!0}function i(){if(z.in_grouping(y,97,250))for(;!z.out_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}return g=z.cursor,!0}function o(){var e,r,s=z.cursor;if(z.in_grouping(y,97,250))if(e=z.cursor,n()){if(z.cursor=e,i())return}else g=z.cursor;if(z.cursor=s,z.out_grouping(y,97,250)){if(r=z.cursor,n()){if(z.cursor=r,!z.in_grouping(y,97,250)||z.cursor>=z.limit)return;z.cursor++}g=z.cursor}}function t(){for(;!z.in_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}for(;!z.out_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}return!0}function a(){var e=z.cursor;g=z.limit,b=g,h=g,o(),z.cursor=e,t()&&(b=z.cursor,t()&&(h=z.cursor))}function u(){for(var e;;){if(z.bra=z.cursor,e=z.find_among(q,3))switch(z.ket=z.cursor,e){case 1:z.slice_from("ã");continue;case 2:z.slice_from("õ");continue;case 3:if(z.cursor>=z.limit)break;z.cursor++;continue}break}}function w(){return g<=z.cursor}function m(){return b<=z.cursor}function c(){return h<=z.cursor}function l(){var e;if(z.ket=z.cursor,!(e=z.find_among_b(F,45)))return!1;switch(z.bra=z.cursor,e){case 1:if(!c())return!1;z.slice_del();break;case 2:if(!c())return!1;z.slice_from("log");break;case 3:if(!c())return!1;z.slice_from("u");break;case 4:if(!c())return!1;z.slice_from("ente");break;case 5:if(!m())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(j,4),e&&(z.bra=z.cursor,c()&&(z.slice_del(),1==e&&(z.ket=z.cursor,z.eq_s_b(2,"at")&&(z.bra=z.cursor,c()&&z.slice_del()))));break;case 6:if(!c())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(C,3),e&&(z.bra=z.cursor,1==e&&c()&&z.slice_del());break;case 7:if(!c())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(P,3),e&&(z.bra=z.cursor,1==e&&c()&&z.slice_del());break;case 8:if(!c())return!1;z.slice_del(),z.ket=z.cursor,z.eq_s_b(2,"at")&&(z.bra=z.cursor,c()&&z.slice_del());break;case 9:if(!w()||!z.eq_s_b(1,"e"))return!1;z.slice_from("ir")}return!0}function f(){var e,r;if(z.cursor>=g){if(r=z.limit_backward,z.limit_backward=g,z.ket=z.cursor,e=z.find_among_b(S,120))return z.bra=z.cursor,1==e&&z.slice_del(),z.limit_backward=r,!0;z.limit_backward=r}return!1}function d(){var e;z.ket=z.cursor,(e=z.find_among_b(W,7))&&(z.bra=z.cursor,1==e&&w()&&z.slice_del())}function v(e,r){if(z.eq_s_b(1,e)){z.bra=z.cursor;var s=z.limit-z.cursor;if(z.eq_s_b(1,r))return z.cursor=z.limit-s,w()&&z.slice_del(),!1}return!0}function p(){var e;if(z.ket=z.cursor,e=z.find_among_b(L,4))switch(z.bra=z.cursor,e){case 1:w()&&(z.slice_del(),z.ket=z.cursor,z.limit-z.cursor,v("u","g")&&v("i","c"));break;case 2:z.slice_from("c")}}function _(){if(!l()&&(z.cursor=z.limit,!f()))return z.cursor=z.limit,void d();z.cursor=z.limit,z.ket=z.cursor,z.eq_s_b(1,"i")&&(z.bra=z.cursor,z.eq_s_b(1,"c")&&(z.cursor=z.limit,w()&&z.slice_del()))}var h,b,g,k=[new r("",-1,3),new r("ã",0,1),new r("õ",0,2)],q=[new r("",-1,3),new r("a~",0,1),new r("o~",0,2)],j=[new r("ic",-1,-1),new r("ad",-1,-1),new r("os",-1,-1),new r("iv",-1,1)],C=[new r("ante",-1,1),new r("avel",-1,1),new r("ível",-1,1)],P=[new r("ic",-1,1),new r("abil",-1,1),new r("iv",-1,1)],F=[new r("ica",-1,1),new r("ância",-1,1),new r("ência",-1,4),new r("ira",-1,9),new r("adora",-1,1),new r("osa",-1,1),new r("ista",-1,1),new r("iva",-1,8),new r("eza",-1,1),new r("logía",-1,2),new r("idade",-1,7),new r("ante",-1,1),new r("mente",-1,6),new r("amente",12,5),new r("ável",-1,1),new r("ível",-1,1),new r("ución",-1,3),new r("ico",-1,1),new r("ismo",-1,1),new r("oso",-1,1),new r("amento",-1,1),new r("imento",-1,1),new r("ivo",-1,8),new r("aça~o",-1,1),new r("ador",-1,1),new r("icas",-1,1),new r("ências",-1,4),new r("iras",-1,9),new r("adoras",-1,1),new r("osas",-1,1),new r("istas",-1,1),new r("ivas",-1,8),new r("ezas",-1,1),new r("logías",-1,2),new r("idades",-1,7),new r("uciones",-1,3),new r("adores",-1,1),new r("antes",-1,1),new r("aço~es",-1,1),new r("icos",-1,1),new r("ismos",-1,1),new r("osos",-1,1),new r("amentos",-1,1),new r("imentos",-1,1),new r("ivos",-1,8)],S=[new r("ada",-1,1),new r("ida",-1,1),new r("ia",-1,1),new r("aria",2,1),new r("eria",2,1),new r("iria",2,1),new r("ara",-1,1),new r("era",-1,1),new r("ira",-1,1),new r("ava",-1,1),new r("asse",-1,1),new r("esse",-1,1),new r("isse",-1,1),new r("aste",-1,1),new r("este",-1,1),new r("iste",-1,1),new r("ei",-1,1),new r("arei",16,1),new r("erei",16,1),new r("irei",16,1),new r("am",-1,1),new r("iam",20,1),new r("ariam",21,1),new r("eriam",21,1),new r("iriam",21,1),new r("aram",20,1),new r("eram",20,1),new r("iram",20,1),new r("avam",20,1),new r("em",-1,1),new r("arem",29,1),new r("erem",29,1),new r("irem",29,1),new r("assem",29,1),new r("essem",29,1),new r("issem",29,1),new r("ado",-1,1),new r("ido",-1,1),new r("ando",-1,1),new r("endo",-1,1),new r("indo",-1,1),new r("ara~o",-1,1),new r("era~o",-1,1),new r("ira~o",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("ir",-1,1),new r("as",-1,1),new r("adas",47,1),new r("idas",47,1),new r("ias",47,1),new r("arias",50,1),new r("erias",50,1),new r("irias",50,1),new r("aras",47,1),new r("eras",47,1),new r("iras",47,1),new r("avas",47,1),new r("es",-1,1),new r("ardes",58,1),new r("erdes",58,1),new r("irdes",58,1),new r("ares",58,1),new r("eres",58,1),new r("ires",58,1),new r("asses",58,1),new r("esses",58,1),new r("isses",58,1),new r("astes",58,1),new r("estes",58,1),new r("istes",58,1),new r("is",-1,1),new r("ais",71,1),new r("eis",71,1),new r("areis",73,1),new r("ereis",73,1),new r("ireis",73,1),new r("áreis",73,1),new r("éreis",73,1),new r("íreis",73,1),new r("ásseis",73,1),new r("ésseis",73,1),new r("ísseis",73,1),new r("áveis",73,1),new r("íeis",73,1),new r("aríeis",84,1),new r("eríeis",84,1),new r("iríeis",84,1),new r("ados",-1,1),new r("idos",-1,1),new r("amos",-1,1),new r("áramos",90,1),new r("éramos",90,1),new r("íramos",90,1),new r("ávamos",90,1),new r("íamos",90,1),new r("aríamos",95,1),new r("eríamos",95,1),new r("iríamos",95,1),new r("emos",-1,1),new r("aremos",99,1),new r("eremos",99,1),new r("iremos",99,1),new r("ássemos",99,1),new r("êssemos",99,1),new r("íssemos",99,1),new r("imos",-1,1),new r("armos",-1,1),new r("ermos",-1,1),new r("irmos",-1,1),new r("ámos",-1,1),new r("arás",-1,1),new r("erás",-1,1),new r("irás",-1,1),new r("eu",-1,1),new r("iu",-1,1),new r("ou",-1,1),new r("ará",-1,1),new r("erá",-1,1),new r("irá",-1,1)],W=[new r("a",-1,1),new r("i",-1,1),new r("o",-1,1),new r("os",-1,1),new r("á",-1,1),new r("í",-1,1),new r("ó",-1,1)],L=[new r("e",-1,1),new r("ç",-1,2),new r("é",-1,1),new r("ê",-1,1)],y=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,3,19,12,2],z=new s;this.setCurrent=function(e){z.setCurrent(e)},this.getCurrent=function(){return z.getCurrent()},this.stem=function(){var r=z.cursor;return e(),z.cursor=r,a(),z.limit_backward=r,z.cursor=z.limit,_(),z.cursor=z.limit,p(),z.cursor=z.limit_backward,u(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.pt.stemmer,"stemmer-pt"),e.pt.stopWordFilter=e.generateStopWordFilter("a ao aos aquela aquelas aquele aqueles aquilo as até com como da das de dela delas dele deles depois do dos e ela elas ele eles em entre era eram essa essas esse esses esta estamos estas estava estavam este esteja estejam estejamos estes esteve estive estivemos estiver estivera estiveram estiverem estivermos estivesse estivessem estivéramos estivéssemos estou está estávamos estão eu foi fomos for fora foram forem formos fosse fossem fui fôramos fôssemos haja hajam hajamos havemos hei houve houvemos houver houvera houveram houverei houverem houveremos houveria houveriam houvermos houverá houverão houveríamos houvesse houvessem houvéramos houvéssemos há hão isso isto já lhe lhes mais mas me mesmo meu meus minha minhas muito na nas nem no nos nossa nossas nosso nossos num numa não nós o os ou para pela pelas pelo pelos por qual quando que quem se seja sejam sejamos sem serei seremos seria seriam será serão seríamos seu seus somos sou sua suas são só também te tem temos tenha tenham tenhamos tenho terei teremos teria teriam terá terão teríamos teu teus teve tinha tinham tive tivemos tiver tivera tiveram tiverem tivermos tivesse tivessem tivéramos tivéssemos tu tua tuas tém tínhamos um uma você vocês vos à às éramos".split(" ")),e.Pipeline.registerFunction(e.pt.stopWordFilter,"stopWordFilter-pt")}}); \ No newline at end of file diff --git a/docs/theme/material/assets/javascripts/lunr/min/lunr.ro.min.js b/docs/theme/material/assets/javascripts/lunr/min/lunr.ro.min.js new file mode 100644 index 00000000..72771401 --- /dev/null +++ b/docs/theme/material/assets/javascripts/lunr/min/lunr.ro.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Romanian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ro=function(){this.pipeline.reset(),this.pipeline.add(e.ro.trimmer,e.ro.stopWordFilter,e.ro.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ro.stemmer))},e.ro.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.ro.trimmer=e.trimmerSupport.generateTrimmer(e.ro.wordCharacters),e.Pipeline.registerFunction(e.ro.trimmer,"trimmer-ro"),e.ro.stemmer=function(){var i=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,n=new function(){function e(e,i){L.eq_s(1,e)&&(L.ket=L.cursor,L.in_grouping(W,97,259)&&L.slice_from(i))}function n(){for(var i,r;;){if(i=L.cursor,L.in_grouping(W,97,259)&&(r=L.cursor,L.bra=r,e("u","U"),L.cursor=r,e("i","I")),L.cursor=i,L.cursor>=L.limit)break;L.cursor++}}function t(){if(L.out_grouping(W,97,259)){for(;!L.in_grouping(W,97,259);){if(L.cursor>=L.limit)return!0;L.cursor++}return!1}return!0}function a(){if(L.in_grouping(W,97,259))for(;!L.out_grouping(W,97,259);){if(L.cursor>=L.limit)return!0;L.cursor++}return!1}function o(){var e,i,r=L.cursor;if(L.in_grouping(W,97,259)){if(e=L.cursor,!t())return void(h=L.cursor);if(L.cursor=e,!a())return void(h=L.cursor)}L.cursor=r,L.out_grouping(W,97,259)&&(i=L.cursor,t()&&(L.cursor=i,L.in_grouping(W,97,259)&&L.cursor=L.limit)return!1;L.cursor++}for(;!L.out_grouping(W,97,259);){if(L.cursor>=L.limit)return!1;L.cursor++}return!0}function c(){var e=L.cursor;h=L.limit,k=h,g=h,o(),L.cursor=e,u()&&(k=L.cursor,u()&&(g=L.cursor))}function s(){for(var e;;){if(L.bra=L.cursor,e=L.find_among(z,3))switch(L.ket=L.cursor,e){case 1:L.slice_from("i");continue;case 2:L.slice_from("u");continue;case 3:if(L.cursor>=L.limit)break;L.cursor++;continue}break}}function w(){return h<=L.cursor}function m(){return k<=L.cursor}function l(){return g<=L.cursor}function f(){var e,i;if(L.ket=L.cursor,(e=L.find_among_b(C,16))&&(L.bra=L.cursor,m()))switch(e){case 1:L.slice_del();break;case 2:L.slice_from("a");break;case 3:L.slice_from("e");break;case 4:L.slice_from("i");break;case 5:i=L.limit-L.cursor,L.eq_s_b(2,"ab")||(L.cursor=L.limit-i,L.slice_from("i"));break;case 6:L.slice_from("at");break;case 7:L.slice_from("aţi")}}function p(){var e,i=L.limit-L.cursor;if(L.ket=L.cursor,(e=L.find_among_b(P,46))&&(L.bra=L.cursor,m())){switch(e){case 1:L.slice_from("abil");break;case 2:L.slice_from("ibil");break;case 3:L.slice_from("iv");break;case 4:L.slice_from("ic");break;case 5:L.slice_from("at");break;case 6:L.slice_from("it")}return _=!0,L.cursor=L.limit-i,!0}return!1}function d(){var e,i;for(_=!1;;)if(i=L.limit-L.cursor,!p()){L.cursor=L.limit-i;break}if(L.ket=L.cursor,(e=L.find_among_b(F,62))&&(L.bra=L.cursor,l())){switch(e){case 1:L.slice_del();break;case 2:L.eq_s_b(1,"ţ")&&(L.bra=L.cursor,L.slice_from("t"));break;case 3:L.slice_from("ist")}_=!0}}function b(){var e,i,r;if(L.cursor>=h){if(i=L.limit_backward,L.limit_backward=h,L.ket=L.cursor,e=L.find_among_b(q,94))switch(L.bra=L.cursor,e){case 1:if(r=L.limit-L.cursor,!L.out_grouping_b(W,97,259)&&(L.cursor=L.limit-r,!L.eq_s_b(1,"u")))break;case 2:L.slice_del()}L.limit_backward=i}}function v(){var e;L.ket=L.cursor,(e=L.find_among_b(S,5))&&(L.bra=L.cursor,w()&&1==e&&L.slice_del())}var _,g,k,h,z=[new i("",-1,3),new i("I",0,1),new i("U",0,2)],C=[new i("ea",-1,3),new i("aţia",-1,7),new i("aua",-1,2),new i("iua",-1,4),new i("aţie",-1,7),new i("ele",-1,3),new i("ile",-1,5),new i("iile",6,4),new i("iei",-1,4),new i("atei",-1,6),new i("ii",-1,4),new i("ului",-1,1),new i("ul",-1,1),new i("elor",-1,3),new i("ilor",-1,4),new i("iilor",14,4)],P=[new i("icala",-1,4),new i("iciva",-1,4),new i("ativa",-1,5),new i("itiva",-1,6),new i("icale",-1,4),new i("aţiune",-1,5),new i("iţiune",-1,6),new i("atoare",-1,5),new i("itoare",-1,6),new i("ătoare",-1,5),new i("icitate",-1,4),new i("abilitate",-1,1),new i("ibilitate",-1,2),new i("ivitate",-1,3),new i("icive",-1,4),new i("ative",-1,5),new i("itive",-1,6),new i("icali",-1,4),new i("atori",-1,5),new i("icatori",18,4),new i("itori",-1,6),new i("ători",-1,5),new i("icitati",-1,4),new i("abilitati",-1,1),new i("ivitati",-1,3),new i("icivi",-1,4),new i("ativi",-1,5),new i("itivi",-1,6),new i("icităi",-1,4),new i("abilităi",-1,1),new i("ivităi",-1,3),new i("icităţi",-1,4),new i("abilităţi",-1,1),new i("ivităţi",-1,3),new i("ical",-1,4),new i("ator",-1,5),new i("icator",35,4),new i("itor",-1,6),new i("ător",-1,5),new i("iciv",-1,4),new i("ativ",-1,5),new i("itiv",-1,6),new i("icală",-1,4),new i("icivă",-1,4),new i("ativă",-1,5),new i("itivă",-1,6)],F=[new i("ica",-1,1),new i("abila",-1,1),new i("ibila",-1,1),new i("oasa",-1,1),new i("ata",-1,1),new i("ita",-1,1),new i("anta",-1,1),new i("ista",-1,3),new i("uta",-1,1),new i("iva",-1,1),new i("ic",-1,1),new i("ice",-1,1),new i("abile",-1,1),new i("ibile",-1,1),new i("isme",-1,3),new i("iune",-1,2),new i("oase",-1,1),new i("ate",-1,1),new i("itate",17,1),new i("ite",-1,1),new i("ante",-1,1),new i("iste",-1,3),new i("ute",-1,1),new i("ive",-1,1),new i("ici",-1,1),new i("abili",-1,1),new i("ibili",-1,1),new i("iuni",-1,2),new i("atori",-1,1),new i("osi",-1,1),new i("ati",-1,1),new i("itati",30,1),new i("iti",-1,1),new i("anti",-1,1),new i("isti",-1,3),new i("uti",-1,1),new i("işti",-1,3),new i("ivi",-1,1),new i("ităi",-1,1),new i("oşi",-1,1),new i("ităţi",-1,1),new i("abil",-1,1),new i("ibil",-1,1),new i("ism",-1,3),new i("ator",-1,1),new i("os",-1,1),new i("at",-1,1),new i("it",-1,1),new i("ant",-1,1),new i("ist",-1,3),new i("ut",-1,1),new i("iv",-1,1),new i("ică",-1,1),new i("abilă",-1,1),new i("ibilă",-1,1),new i("oasă",-1,1),new i("ată",-1,1),new i("ită",-1,1),new i("antă",-1,1),new i("istă",-1,3),new i("ută",-1,1),new i("ivă",-1,1)],q=[new i("ea",-1,1),new i("ia",-1,1),new i("esc",-1,1),new i("ăsc",-1,1),new i("ind",-1,1),new i("ând",-1,1),new i("are",-1,1),new i("ere",-1,1),new i("ire",-1,1),new i("âre",-1,1),new i("se",-1,2),new i("ase",10,1),new i("sese",10,2),new i("ise",10,1),new i("use",10,1),new i("âse",10,1),new i("eşte",-1,1),new i("ăşte",-1,1),new i("eze",-1,1),new i("ai",-1,1),new i("eai",19,1),new i("iai",19,1),new i("sei",-1,2),new i("eşti",-1,1),new i("ăşti",-1,1),new i("ui",-1,1),new i("ezi",-1,1),new i("âi",-1,1),new i("aşi",-1,1),new i("seşi",-1,2),new i("aseşi",29,1),new i("seseşi",29,2),new i("iseşi",29,1),new i("useşi",29,1),new i("âseşi",29,1),new i("işi",-1,1),new i("uşi",-1,1),new i("âşi",-1,1),new i("aţi",-1,2),new i("eaţi",38,1),new i("iaţi",38,1),new i("eţi",-1,2),new i("iţi",-1,2),new i("âţi",-1,2),new i("arăţi",-1,1),new i("serăţi",-1,2),new i("aserăţi",45,1),new i("seserăţi",45,2),new i("iserăţi",45,1),new i("userăţi",45,1),new i("âserăţi",45,1),new i("irăţi",-1,1),new i("urăţi",-1,1),new i("ârăţi",-1,1),new i("am",-1,1),new i("eam",54,1),new i("iam",54,1),new i("em",-1,2),new i("asem",57,1),new i("sesem",57,2),new i("isem",57,1),new i("usem",57,1),new i("âsem",57,1),new i("im",-1,2),new i("âm",-1,2),new i("ăm",-1,2),new i("arăm",65,1),new i("serăm",65,2),new i("aserăm",67,1),new i("seserăm",67,2),new i("iserăm",67,1),new i("userăm",67,1),new i("âserăm",67,1),new i("irăm",65,1),new i("urăm",65,1),new i("ârăm",65,1),new i("au",-1,1),new i("eau",76,1),new i("iau",76,1),new i("indu",-1,1),new i("ându",-1,1),new i("ez",-1,1),new i("ească",-1,1),new i("ară",-1,1),new i("seră",-1,2),new i("aseră",84,1),new i("seseră",84,2),new i("iseră",84,1),new i("useră",84,1),new i("âseră",84,1),new i("iră",-1,1),new i("ură",-1,1),new i("âră",-1,1),new i("ează",-1,1)],S=[new i("a",-1,1),new i("e",-1,1),new i("ie",1,1),new i("i",-1,1),new i("ă",-1,1)],W=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,2,32,0,0,4],L=new r;this.setCurrent=function(e){L.setCurrent(e)},this.getCurrent=function(){return L.getCurrent()},this.stem=function(){var e=L.cursor;return n(),L.cursor=e,c(),L.limit_backward=e,L.cursor=L.limit,f(),L.cursor=L.limit,d(),L.cursor=L.limit,_||(L.cursor=L.limit,b(),L.cursor=L.limit),v(),L.cursor=L.limit_backward,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.ro.stemmer,"stemmer-ro"),e.ro.stopWordFilter=e.generateStopWordFilter("acea aceasta această aceea acei aceia acel acela acele acelea acest acesta aceste acestea aceşti aceştia acolo acord acum ai aia aibă aici al ale alea altceva altcineva am ar are asemenea asta astea astăzi asupra au avea avem aveţi azi aş aşadar aţi bine bucur bună ca care caut ce cel ceva chiar cinci cine cineva contra cu cum cumva curând curînd când cât câte câtva câţi cînd cît cîte cîtva cîţi că căci cărei căror cărui către da dacă dar datorită dată dau de deci deja deoarece departe deşi din dinaintea dintr- dintre doi doilea două drept după dă ea ei el ele eram este eu eşti face fata fi fie fiecare fii fim fiu fiţi frumos fără graţie halbă iar ieri la le li lor lui lângă lîngă mai mea mei mele mereu meu mi mie mine mult multă mulţi mulţumesc mâine mîine mă ne nevoie nici nicăieri nimeni nimeri nimic nişte noastre noastră noi noroc nostru nouă noştri nu opt ori oricare orice oricine oricum oricând oricât oricînd oricît oriunde patra patru patrulea pe pentru peste pic poate pot prea prima primul prin puţin puţina puţină până pînă rog sa sale sau se spate spre sub sunt suntem sunteţi sută sînt sîntem sînteţi să săi său ta tale te timp tine toate toată tot totuşi toţi trei treia treilea tu tăi tău un una unde undeva unei uneia unele uneori unii unor unora unu unui unuia unul vi voastre voastră voi vostru vouă voştri vreme vreo vreun vă zece zero zi zice îi îl îmi împotriva în înainte înaintea încotro încât încît între întrucât întrucît îţi ăla ălea ăsta ăstea ăştia şapte şase şi ştiu ţi ţie".split(" ")),e.Pipeline.registerFunction(e.ro.stopWordFilter,"stopWordFilter-ro")}}); \ No newline at end of file diff --git a/docs/theme/material/assets/javascripts/lunr/min/lunr.ru.min.js b/docs/theme/material/assets/javascripts/lunr/min/lunr.ru.min.js new file mode 100644 index 00000000..186cc485 --- /dev/null +++ b/docs/theme/material/assets/javascripts/lunr/min/lunr.ru.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Russian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ru=function(){this.pipeline.reset(),this.pipeline.add(e.ru.trimmer,e.ru.stopWordFilter,e.ru.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ru.stemmer))},e.ru.wordCharacters="Ѐ-҄҇-ԯᴫᵸⷠ-ⷿꙀ-ꚟ︮︯",e.ru.trimmer=e.trimmerSupport.generateTrimmer(e.ru.wordCharacters),e.Pipeline.registerFunction(e.ru.trimmer,"trimmer-ru"),e.ru.stemmer=function(){var n=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,t=new function(){function e(){for(;!W.in_grouping(S,1072,1103);){if(W.cursor>=W.limit)return!1;W.cursor++}return!0}function t(){for(;!W.out_grouping(S,1072,1103);){if(W.cursor>=W.limit)return!1;W.cursor++}return!0}function w(){b=W.limit,_=b,e()&&(b=W.cursor,t()&&e()&&t()&&(_=W.cursor))}function i(){return _<=W.cursor}function u(e,n){var r,t;if(W.ket=W.cursor,r=W.find_among_b(e,n)){switch(W.bra=W.cursor,r){case 1:if(t=W.limit-W.cursor,!W.eq_s_b(1,"а")&&(W.cursor=W.limit-t,!W.eq_s_b(1,"я")))return!1;case 2:W.slice_del()}return!0}return!1}function o(){return u(h,9)}function s(e,n){var r;return W.ket=W.cursor,!!(r=W.find_among_b(e,n))&&(W.bra=W.cursor,1==r&&W.slice_del(),!0)}function c(){return s(g,26)}function m(){return!!c()&&(u(C,8),!0)}function f(){return s(k,2)}function l(){return u(P,46)}function a(){s(v,36)}function p(){var e;W.ket=W.cursor,(e=W.find_among_b(F,2))&&(W.bra=W.cursor,i()&&1==e&&W.slice_del())}function d(){var e;if(W.ket=W.cursor,e=W.find_among_b(q,4))switch(W.bra=W.cursor,e){case 1:if(W.slice_del(),W.ket=W.cursor,!W.eq_s_b(1,"н"))break;W.bra=W.cursor;case 2:if(!W.eq_s_b(1,"н"))break;case 3:W.slice_del()}}var _,b,h=[new n("в",-1,1),new n("ив",0,2),new n("ыв",0,2),new n("вши",-1,1),new n("ивши",3,2),new n("ывши",3,2),new n("вшись",-1,1),new n("ившись",6,2),new n("ывшись",6,2)],g=[new n("ее",-1,1),new n("ие",-1,1),new n("ое",-1,1),new n("ые",-1,1),new n("ими",-1,1),new n("ыми",-1,1),new n("ей",-1,1),new n("ий",-1,1),new n("ой",-1,1),new n("ый",-1,1),new n("ем",-1,1),new n("им",-1,1),new n("ом",-1,1),new n("ым",-1,1),new n("его",-1,1),new n("ого",-1,1),new n("ему",-1,1),new n("ому",-1,1),new n("их",-1,1),new n("ых",-1,1),new n("ею",-1,1),new n("ою",-1,1),new n("ую",-1,1),new n("юю",-1,1),new n("ая",-1,1),new n("яя",-1,1)],C=[new n("ем",-1,1),new n("нн",-1,1),new n("вш",-1,1),new n("ивш",2,2),new n("ывш",2,2),new n("щ",-1,1),new n("ющ",5,1),new n("ующ",6,2)],k=[new n("сь",-1,1),new n("ся",-1,1)],P=[new n("ла",-1,1),new n("ила",0,2),new n("ыла",0,2),new n("на",-1,1),new n("ена",3,2),new n("ете",-1,1),new n("ите",-1,2),new n("йте",-1,1),new n("ейте",7,2),new n("уйте",7,2),new n("ли",-1,1),new n("или",10,2),new n("ыли",10,2),new n("й",-1,1),new n("ей",13,2),new n("уй",13,2),new n("л",-1,1),new n("ил",16,2),new n("ыл",16,2),new n("ем",-1,1),new n("им",-1,2),new n("ым",-1,2),new n("н",-1,1),new n("ен",22,2),new n("ло",-1,1),new n("ило",24,2),new n("ыло",24,2),new n("но",-1,1),new n("ено",27,2),new n("нно",27,1),new n("ет",-1,1),new n("ует",30,2),new n("ит",-1,2),new n("ыт",-1,2),new n("ют",-1,1),new n("уют",34,2),new n("ят",-1,2),new n("ны",-1,1),new n("ены",37,2),new n("ть",-1,1),new n("ить",39,2),new n("ыть",39,2),new n("ешь",-1,1),new n("ишь",-1,2),new n("ю",-1,2),new n("ую",44,2)],v=[new n("а",-1,1),new n("ев",-1,1),new n("ов",-1,1),new n("е",-1,1),new n("ие",3,1),new n("ье",3,1),new n("и",-1,1),new n("еи",6,1),new n("ии",6,1),new n("ами",6,1),new n("ями",6,1),new n("иями",10,1),new n("й",-1,1),new n("ей",12,1),new n("ией",13,1),new n("ий",12,1),new n("ой",12,1),new n("ам",-1,1),new n("ем",-1,1),new n("ием",18,1),new n("ом",-1,1),new n("ям",-1,1),new n("иям",21,1),new n("о",-1,1),new n("у",-1,1),new n("ах",-1,1),new n("ях",-1,1),new n("иях",26,1),new n("ы",-1,1),new n("ь",-1,1),new n("ю",-1,1),new n("ию",30,1),new n("ью",30,1),new n("я",-1,1),new n("ия",33,1),new n("ья",33,1)],F=[new n("ост",-1,1),new n("ость",-1,1)],q=[new n("ейше",-1,1),new n("н",-1,2),new n("ейш",-1,1),new n("ь",-1,3)],S=[33,65,8,232],W=new r;this.setCurrent=function(e){W.setCurrent(e)},this.getCurrent=function(){return W.getCurrent()},this.stem=function(){return w(),W.cursor=W.limit,!(W.cursor=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},in_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},out_grouping:function(t,i,s){if(this.cursors||e>3]&1<<(7&e)))return this.cursor++,!0}return!1},out_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e>s||e>3]&1<<(7&e)))return this.cursor--,!0}return!1},eq_s:function(t,i){if(this.limit-this.cursor>1),f=0,l=o0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n+_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n+_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},find_among_b:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit_backward,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o=0;m--){if(n-l==u){f=-1;break}if(f=r.charCodeAt(n-1-l)-_.s[m])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n-_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n-_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},replace_s:function(t,i,s){var e=s.length-(i-t),n=r.substring(0,t),u=r.substring(i);return r=n+s+u,this.limit+=e,this.cursor>=i?this.cursor+=e:this.cursor>t&&(this.cursor=t),e},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>r.length)throw"faulty slice operation"},slice_from:function(r){this.slice_check(),this.replace_s(this.bra,this.ket,r)},slice_del:function(){this.slice_from("")},insert:function(r,t,i){var s=this.replace_s(r,t,i);r<=this.bra&&(this.bra+=s),r<=this.ket&&(this.ket+=s)},slice_to:function(){return this.slice_check(),r.substring(this.bra,this.ket)},eq_v_b:function(r){return this.eq_s_b(r.length,r)}}}},r.trimmerSupport={generateTrimmer:function(r){var t=new RegExp("^[^"+r+"]+"),i=new RegExp("[^"+r+"]+$");return function(r){return"function"==typeof r.update?r.update(function(r){return r.replace(t,"").replace(i,"")}):r.replace(t,"").replace(i,"")}}}}}); \ No newline at end of file diff --git a/docs/theme/material/assets/javascripts/lunr/min/lunr.sv.min.js b/docs/theme/material/assets/javascripts/lunr/min/lunr.sv.min.js new file mode 100644 index 00000000..3e5eb640 --- /dev/null +++ b/docs/theme/material/assets/javascripts/lunr/min/lunr.sv.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Swedish` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.sv=function(){this.pipeline.reset(),this.pipeline.add(e.sv.trimmer,e.sv.stopWordFilter,e.sv.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.sv.stemmer))},e.sv.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.sv.trimmer=e.trimmerSupport.generateTrimmer(e.sv.wordCharacters),e.Pipeline.registerFunction(e.sv.trimmer,"trimmer-sv"),e.sv.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,t=new function(){function e(){var e,r=w.cursor+3;if(o=w.limit,0<=r||r<=w.limit){for(a=r;;){if(e=w.cursor,w.in_grouping(l,97,246)){w.cursor=e;break}if(w.cursor=e,w.cursor>=w.limit)return;w.cursor++}for(;!w.out_grouping(l,97,246);){if(w.cursor>=w.limit)return;w.cursor++}o=w.cursor,o=o&&(w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(u,37),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.in_grouping_b(d,98,121)&&w.slice_del()}}function i(){var e=w.limit_backward;w.cursor>=o&&(w.limit_backward=o,w.cursor=w.limit,w.find_among_b(c,7)&&(w.cursor=w.limit,w.ket=w.cursor,w.cursor>w.limit_backward&&(w.bra=--w.cursor,w.slice_del())),w.limit_backward=e)}function s(){var e,r;if(w.cursor>=o){if(r=w.limit_backward,w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(m,5))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.slice_from("lös");break;case 3:w.slice_from("full")}w.limit_backward=r}}var a,o,u=[new r("a",-1,1),new r("arna",0,1),new r("erna",0,1),new r("heterna",2,1),new r("orna",0,1),new r("ad",-1,1),new r("e",-1,1),new r("ade",6,1),new r("ande",6,1),new r("arne",6,1),new r("are",6,1),new r("aste",6,1),new r("en",-1,1),new r("anden",12,1),new r("aren",12,1),new r("heten",12,1),new r("ern",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",18,1),new r("or",-1,1),new r("s",-1,2),new r("as",21,1),new r("arnas",22,1),new r("ernas",22,1),new r("ornas",22,1),new r("es",21,1),new r("ades",26,1),new r("andes",26,1),new r("ens",21,1),new r("arens",29,1),new r("hetens",29,1),new r("erns",21,1),new r("at",-1,1),new r("andet",-1,1),new r("het",-1,1),new r("ast",-1,1)],c=[new r("dd",-1,-1),new r("gd",-1,-1),new r("nn",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1),new r("tt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("els",-1,1),new r("fullt",-1,3),new r("löst",-1,2)],l=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,24,0,32],d=[119,127,149],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,t(),w.cursor=w.limit,i(),w.cursor=w.limit,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return t.setCurrent(e),t.stem(),t.getCurrent()}):(t.setCurrent(e),t.stem(),t.getCurrent())}}(),e.Pipeline.registerFunction(e.sv.stemmer,"stemmer-sv"),e.sv.stopWordFilter=e.generateStopWordFilter("alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över".split(" ")),e.Pipeline.registerFunction(e.sv.stopWordFilter,"stopWordFilter-sv")}}); \ No newline at end of file diff --git a/docs/theme/material/assets/javascripts/lunr/min/lunr.tr.min.js b/docs/theme/material/assets/javascripts/lunr/min/lunr.tr.min.js new file mode 100644 index 00000000..563f6ec1 --- /dev/null +++ b/docs/theme/material/assets/javascripts/lunr/min/lunr.tr.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Turkish` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(r,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(r.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");r.tr=function(){this.pipeline.reset(),this.pipeline.add(r.tr.trimmer,r.tr.stopWordFilter,r.tr.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(r.tr.stemmer))},r.tr.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.tr.trimmer=r.trimmerSupport.generateTrimmer(r.tr.wordCharacters),r.Pipeline.registerFunction(r.tr.trimmer,"trimmer-tr"),r.tr.stemmer=function(){var i=r.stemmerSupport.Among,e=r.stemmerSupport.SnowballProgram,n=new function(){function r(r,i,e){for(;;){var n=Dr.limit-Dr.cursor;if(Dr.in_grouping_b(r,i,e)){Dr.cursor=Dr.limit-n;break}if(Dr.cursor=Dr.limit-n,Dr.cursor<=Dr.limit_backward)return!1;Dr.cursor--}return!0}function n(){var i,e;i=Dr.limit-Dr.cursor,r(Wr,97,305);for(var n=0;nDr.limit_backward&&(Dr.cursor--,e=Dr.limit-Dr.cursor,i()))?(Dr.cursor=Dr.limit-e,!0):(Dr.cursor=Dr.limit-n,r()?(Dr.cursor=Dr.limit-n,!1):(Dr.cursor=Dr.limit-n,!(Dr.cursor<=Dr.limit_backward)&&(Dr.cursor--,!!i()&&(Dr.cursor=Dr.limit-n,!0))))}function u(r){return t(r,function(){return Dr.in_grouping_b(Wr,97,305)})}function o(){return u(function(){return Dr.eq_s_b(1,"n")})}function s(){return u(function(){return Dr.eq_s_b(1,"s")})}function c(){return u(function(){return Dr.eq_s_b(1,"y")})}function l(){return t(function(){return Dr.in_grouping_b(Lr,105,305)},function(){return Dr.out_grouping_b(Wr,97,305)})}function a(){return Dr.find_among_b(ur,10)&&l()}function m(){return n()&&Dr.in_grouping_b(Lr,105,305)&&s()}function d(){return Dr.find_among_b(or,2)}function f(){return n()&&Dr.in_grouping_b(Lr,105,305)&&c()}function b(){return n()&&Dr.find_among_b(sr,4)}function w(){return n()&&Dr.find_among_b(cr,4)&&o()}function _(){return n()&&Dr.find_among_b(lr,2)&&c()}function k(){return n()&&Dr.find_among_b(ar,2)}function p(){return n()&&Dr.find_among_b(mr,4)}function g(){return n()&&Dr.find_among_b(dr,2)}function y(){return n()&&Dr.find_among_b(fr,4)}function z(){return n()&&Dr.find_among_b(br,2)}function v(){return n()&&Dr.find_among_b(wr,2)&&c()}function h(){return Dr.eq_s_b(2,"ki")}function q(){return n()&&Dr.find_among_b(_r,2)&&o()}function C(){return n()&&Dr.find_among_b(kr,4)&&c()}function P(){return n()&&Dr.find_among_b(pr,4)}function F(){return n()&&Dr.find_among_b(gr,4)&&c()}function S(){return Dr.find_among_b(yr,4)}function W(){return n()&&Dr.find_among_b(zr,2)}function L(){return n()&&Dr.find_among_b(vr,4)}function x(){return n()&&Dr.find_among_b(hr,8)}function A(){return Dr.find_among_b(qr,2)}function E(){return n()&&Dr.find_among_b(Cr,32)&&c()}function j(){return Dr.find_among_b(Pr,8)&&c()}function T(){return n()&&Dr.find_among_b(Fr,4)&&c()}function Z(){return Dr.eq_s_b(3,"ken")&&c()}function B(){var r=Dr.limit-Dr.cursor;return!(T()||(Dr.cursor=Dr.limit-r,E()||(Dr.cursor=Dr.limit-r,j()||(Dr.cursor=Dr.limit-r,Z()))))}function D(){if(A()){var r=Dr.limit-Dr.cursor;if(S()||(Dr.cursor=Dr.limit-r,W()||(Dr.cursor=Dr.limit-r,C()||(Dr.cursor=Dr.limit-r,P()||(Dr.cursor=Dr.limit-r,F()||(Dr.cursor=Dr.limit-r))))),T())return!1}return!0}function G(){if(W()){Dr.bra=Dr.cursor,Dr.slice_del();var r=Dr.limit-Dr.cursor;return Dr.ket=Dr.cursor,x()||(Dr.cursor=Dr.limit-r,E()||(Dr.cursor=Dr.limit-r,j()||(Dr.cursor=Dr.limit-r,T()||(Dr.cursor=Dr.limit-r)))),nr=!1,!1}return!0}function H(){if(!L())return!0;var r=Dr.limit-Dr.cursor;return!E()&&(Dr.cursor=Dr.limit-r,!j())}function I(){var r,i=Dr.limit-Dr.cursor;return!(S()||(Dr.cursor=Dr.limit-i,F()||(Dr.cursor=Dr.limit-i,P()||(Dr.cursor=Dr.limit-i,C()))))||(Dr.bra=Dr.cursor,Dr.slice_del(),r=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,T()||(Dr.cursor=Dr.limit-r),!1)}function J(){var r,i=Dr.limit-Dr.cursor;if(Dr.ket=Dr.cursor,nr=!0,B()&&(Dr.cursor=Dr.limit-i,D()&&(Dr.cursor=Dr.limit-i,G()&&(Dr.cursor=Dr.limit-i,H()&&(Dr.cursor=Dr.limit-i,I()))))){if(Dr.cursor=Dr.limit-i,!x())return;Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,r=Dr.limit-Dr.cursor,S()||(Dr.cursor=Dr.limit-r,W()||(Dr.cursor=Dr.limit-r,C()||(Dr.cursor=Dr.limit-r,P()||(Dr.cursor=Dr.limit-r,F()||(Dr.cursor=Dr.limit-r))))),T()||(Dr.cursor=Dr.limit-r)}Dr.bra=Dr.cursor,Dr.slice_del()}function K(){var r,i,e,n;if(Dr.ket=Dr.cursor,h()){if(r=Dr.limit-Dr.cursor,p())return Dr.bra=Dr.cursor,Dr.slice_del(),i=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,W()?(Dr.bra=Dr.cursor,Dr.slice_del(),K()):(Dr.cursor=Dr.limit-i,a()&&(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K()))),!0;if(Dr.cursor=Dr.limit-r,w()){if(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,e=Dr.limit-Dr.cursor,d())Dr.bra=Dr.cursor,Dr.slice_del();else{if(Dr.cursor=Dr.limit-e,Dr.ket=Dr.cursor,!a()&&(Dr.cursor=Dr.limit-e,!m()&&(Dr.cursor=Dr.limit-e,!K())))return!0;Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K())}return!0}if(Dr.cursor=Dr.limit-r,g()){if(n=Dr.limit-Dr.cursor,d())Dr.bra=Dr.cursor,Dr.slice_del();else if(Dr.cursor=Dr.limit-n,m())Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K());else if(Dr.cursor=Dr.limit-n,!K())return!1;return!0}}return!1}function M(r){if(Dr.ket=Dr.cursor,!g()&&(Dr.cursor=Dr.limit-r,!k()))return!1;var i=Dr.limit-Dr.cursor;if(d())Dr.bra=Dr.cursor,Dr.slice_del();else if(Dr.cursor=Dr.limit-i,m())Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K());else if(Dr.cursor=Dr.limit-i,!K())return!1;return!0}function N(r){if(Dr.ket=Dr.cursor,!z()&&(Dr.cursor=Dr.limit-r,!b()))return!1;var i=Dr.limit-Dr.cursor;return!(!m()&&(Dr.cursor=Dr.limit-i,!d()))&&(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K()),!0)}function O(){var r,i=Dr.limit-Dr.cursor;return Dr.ket=Dr.cursor,!(!w()&&(Dr.cursor=Dr.limit-i,!v()))&&(Dr.bra=Dr.cursor,Dr.slice_del(),r=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,!(!W()||(Dr.bra=Dr.cursor,Dr.slice_del(),!K()))||(Dr.cursor=Dr.limit-r,Dr.ket=Dr.cursor,!(a()||(Dr.cursor=Dr.limit-r,m()||(Dr.cursor=Dr.limit-r,K())))||(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K()),!0)))}function Q(){var r,i,e=Dr.limit-Dr.cursor;if(Dr.ket=Dr.cursor,!p()&&(Dr.cursor=Dr.limit-e,!f()&&(Dr.cursor=Dr.limit-e,!_())))return!1;if(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,r=Dr.limit-Dr.cursor,a())Dr.bra=Dr.cursor,Dr.slice_del(),i=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,W()||(Dr.cursor=Dr.limit-i);else if(Dr.cursor=Dr.limit-r,!W())return!0;return Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,K(),!0}function R(){var r,i,e=Dr.limit-Dr.cursor;if(Dr.ket=Dr.cursor,W())return Dr.bra=Dr.cursor,Dr.slice_del(),void K();if(Dr.cursor=Dr.limit-e,Dr.ket=Dr.cursor,q())if(Dr.bra=Dr.cursor,Dr.slice_del(),r=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,d())Dr.bra=Dr.cursor,Dr.slice_del();else{if(Dr.cursor=Dr.limit-r,Dr.ket=Dr.cursor,!a()&&(Dr.cursor=Dr.limit-r,!m())){if(Dr.cursor=Dr.limit-r,Dr.ket=Dr.cursor,!W())return;if(Dr.bra=Dr.cursor,Dr.slice_del(),!K())return}Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K())}else if(Dr.cursor=Dr.limit-e,!M(e)&&(Dr.cursor=Dr.limit-e,!N(e))){if(Dr.cursor=Dr.limit-e,Dr.ket=Dr.cursor,y())return Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,i=Dr.limit-Dr.cursor,void(a()?(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K())):(Dr.cursor=Dr.limit-i,W()?(Dr.bra=Dr.cursor,Dr.slice_del(),K()):(Dr.cursor=Dr.limit-i,K())));if(Dr.cursor=Dr.limit-e,!O()){if(Dr.cursor=Dr.limit-e,d())return Dr.bra=Dr.cursor,void Dr.slice_del();Dr.cursor=Dr.limit-e,K()||(Dr.cursor=Dr.limit-e,Q()||(Dr.cursor=Dr.limit-e,Dr.ket=Dr.cursor,(a()||(Dr.cursor=Dr.limit-e,m()))&&(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K()))))}}}function U(){var r;if(Dr.ket=Dr.cursor,r=Dr.find_among_b(Sr,4))switch(Dr.bra=Dr.cursor,r){case 1:Dr.slice_from("p");break;case 2:Dr.slice_from("ç");break;case 3:Dr.slice_from("t");break;case 4:Dr.slice_from("k")}}function V(){for(;;){var r=Dr.limit-Dr.cursor;if(Dr.in_grouping_b(Wr,97,305)){Dr.cursor=Dr.limit-r;break}if(Dr.cursor=Dr.limit-r,Dr.cursor<=Dr.limit_backward)return!1;Dr.cursor--}return!0}function X(r,i,e){if(Dr.cursor=Dr.limit-r,V()){var n=Dr.limit-Dr.cursor;if(!Dr.eq_s_b(1,i)&&(Dr.cursor=Dr.limit-n,!Dr.eq_s_b(1,e)))return!0;Dr.cursor=Dr.limit-r;var t=Dr.cursor;return Dr.insert(Dr.cursor,Dr.cursor,e),Dr.cursor=t,!1}return!0}function Y(){var r=Dr.limit-Dr.cursor;(Dr.eq_s_b(1,"d")||(Dr.cursor=Dr.limit-r,Dr.eq_s_b(1,"g")))&&X(r,"a","ı")&&X(r,"e","i")&&X(r,"o","u")&&X(r,"ö","ü")}function $(){for(var r,i=Dr.cursor,e=2;;){for(r=Dr.cursor;!Dr.in_grouping(Wr,97,305);){if(Dr.cursor>=Dr.limit)return Dr.cursor=r,!(e>0)&&(Dr.cursor=i,!0);Dr.cursor++}e--}}function rr(r,i,e){for(;!Dr.eq_s(i,e);){if(Dr.cursor>=Dr.limit)return!0;Dr.cursor++}return(tr=i)!=Dr.limit||(Dr.cursor=r,!1)}function ir(){var r=Dr.cursor;return!rr(r,2,"ad")||(Dr.cursor=r,!rr(r,5,"soyad"))}function er(){var r=Dr.cursor;return!ir()&&(Dr.limit_backward=r,Dr.cursor=Dr.limit,Y(),Dr.cursor=Dr.limit,U(),!0)}var nr,tr,ur=[new i("m",-1,-1),new i("n",-1,-1),new i("miz",-1,-1),new i("niz",-1,-1),new i("muz",-1,-1),new i("nuz",-1,-1),new i("müz",-1,-1),new i("nüz",-1,-1),new i("mız",-1,-1),new i("nız",-1,-1)],or=[new i("leri",-1,-1),new i("ları",-1,-1)],sr=[new i("ni",-1,-1),new i("nu",-1,-1),new i("nü",-1,-1),new i("nı",-1,-1)],cr=[new i("in",-1,-1),new i("un",-1,-1),new i("ün",-1,-1),new i("ın",-1,-1)],lr=[new i("a",-1,-1),new i("e",-1,-1)],ar=[new i("na",-1,-1),new i("ne",-1,-1)],mr=[new i("da",-1,-1),new i("ta",-1,-1),new i("de",-1,-1),new i("te",-1,-1)],dr=[new i("nda",-1,-1),new i("nde",-1,-1)],fr=[new i("dan",-1,-1),new i("tan",-1,-1),new i("den",-1,-1),new i("ten",-1,-1)],br=[new i("ndan",-1,-1),new i("nden",-1,-1)],wr=[new i("la",-1,-1),new i("le",-1,-1)],_r=[new i("ca",-1,-1),new i("ce",-1,-1)],kr=[new i("im",-1,-1),new i("um",-1,-1),new i("üm",-1,-1),new i("ım",-1,-1)],pr=[new i("sin",-1,-1),new i("sun",-1,-1),new i("sün",-1,-1),new i("sın",-1,-1)],gr=[new i("iz",-1,-1),new i("uz",-1,-1),new i("üz",-1,-1),new i("ız",-1,-1)],yr=[new i("siniz",-1,-1),new i("sunuz",-1,-1),new i("sünüz",-1,-1),new i("sınız",-1,-1)],zr=[new i("lar",-1,-1),new i("ler",-1,-1)],vr=[new i("niz",-1,-1),new i("nuz",-1,-1),new i("nüz",-1,-1),new i("nız",-1,-1)],hr=[new i("dir",-1,-1),new i("tir",-1,-1),new i("dur",-1,-1),new i("tur",-1,-1),new i("dür",-1,-1),new i("tür",-1,-1),new i("dır",-1,-1),new i("tır",-1,-1)],qr=[new i("casına",-1,-1),new i("cesine",-1,-1)],Cr=[new i("di",-1,-1),new i("ti",-1,-1),new i("dik",-1,-1),new i("tik",-1,-1),new i("duk",-1,-1),new i("tuk",-1,-1),new i("dük",-1,-1),new i("tük",-1,-1),new i("dık",-1,-1),new i("tık",-1,-1),new i("dim",-1,-1),new i("tim",-1,-1),new i("dum",-1,-1),new i("tum",-1,-1),new i("düm",-1,-1),new i("tüm",-1,-1),new i("dım",-1,-1),new i("tım",-1,-1),new i("din",-1,-1),new i("tin",-1,-1),new i("dun",-1,-1),new i("tun",-1,-1),new i("dün",-1,-1),new i("tün",-1,-1),new i("dın",-1,-1),new i("tın",-1,-1),new i("du",-1,-1),new i("tu",-1,-1),new i("dü",-1,-1),new i("tü",-1,-1),new i("dı",-1,-1),new i("tı",-1,-1)],Pr=[new i("sa",-1,-1),new i("se",-1,-1),new i("sak",-1,-1),new i("sek",-1,-1),new i("sam",-1,-1),new i("sem",-1,-1),new i("san",-1,-1),new i("sen",-1,-1)],Fr=[new i("miş",-1,-1),new i("muş",-1,-1),new i("müş",-1,-1),new i("mış",-1,-1)],Sr=[new i("b",-1,1),new i("c",-1,2),new i("d",-1,3),new i("ğ",-1,4)],Wr=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,0,0,0,0,0,0,1],Lr=[1,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,1],xr=[1,64,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],Ar=[17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,130],Er=[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],jr=[17],Tr=[65],Zr=[65],Br=[["a",xr,97,305],["e",Ar,101,252],["ı",Er,97,305],["i",jr,101,105],["o",Tr,111,117],["ö",Zr,246,252],["u",Tr,111,117]],Dr=new e;this.setCurrent=function(r){Dr.setCurrent(r)},this.getCurrent=function(){return Dr.getCurrent()},this.stem=function(){return!!($()&&(Dr.limit_backward=Dr.cursor,Dr.cursor=Dr.limit,J(),Dr.cursor=Dr.limit,nr&&(R(),Dr.cursor=Dr.limit_backward,er())))}};return function(r){return"function"==typeof r.update?r.update(function(r){return n.setCurrent(r),n.stem(),n.getCurrent()}):(n.setCurrent(r),n.stem(),n.getCurrent())}}(),r.Pipeline.registerFunction(r.tr.stemmer,"stemmer-tr"),r.tr.stopWordFilter=r.generateStopWordFilter("acaba altmış altı ama ancak arada aslında ayrıca bana bazı belki ben benden beni benim beri beş bile bin bir biri birkaç birkez birçok birşey birşeyi biz bizden bize bizi bizim bu buna bunda bundan bunlar bunları bunların bunu bunun burada böyle böylece da daha dahi de defa değil diye diğer doksan dokuz dolayı dolayısıyla dört edecek eden ederek edilecek ediliyor edilmesi ediyor elli en etmesi etti ettiği ettiğini eğer gibi göre halen hangi hatta hem henüz hep hepsi her herhangi herkesin hiç hiçbir iki ile ilgili ise itibaren itibariyle için işte kadar karşın katrilyon kendi kendilerine kendini kendisi kendisine kendisini kez ki kim kimden kime kimi kimse kırk milyar milyon mu mü mı nasıl ne neden nedenle nerde nerede nereye niye niçin o olan olarak oldu olduklarını olduğu olduğunu olmadı olmadığı olmak olması olmayan olmaz olsa olsun olup olur olursa oluyor on ona ondan onlar onlardan onları onların onu onun otuz oysa pek rağmen sadece sanki sekiz seksen sen senden seni senin siz sizden sizi sizin tarafından trilyon tüm var vardı ve veya ya yani yapacak yapmak yaptı yaptıkları yaptığı yaptığını yapılan yapılması yapıyor yedi yerine yetmiş yine yirmi yoksa yüz zaten çok çünkü öyle üzere üç şey şeyden şeyi şeyler şu şuna şunda şundan şunları şunu şöyle".split(" ")),r.Pipeline.registerFunction(r.tr.stopWordFilter,"stopWordFilter-tr")}}); \ No newline at end of file diff --git a/docs/theme/material/assets/javascripts/lunr/min/lunr.vi.min.js b/docs/theme/material/assets/javascripts/lunr/min/lunr.vi.min.js new file mode 100644 index 00000000..22aed28c --- /dev/null +++ b/docs/theme/material/assets/javascripts/lunr/min/lunr.vi.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.vi=function(){this.pipeline.reset(),this.pipeline.add(e.vi.stopWordFilter,e.vi.trimmer)},e.vi.wordCharacters="[A-Za-ẓ̀͐́͑̉̃̓ÂâÊêÔôĂ-ăĐ-đƠ-ơƯ-ư]",e.vi.trimmer=e.trimmerSupport.generateTrimmer(e.vi.wordCharacters),e.Pipeline.registerFunction(e.vi.trimmer,"trimmer-vi"),e.vi.stopWordFilter=e.generateStopWordFilter("là cái nhưng mà".split(" "))}}); \ No newline at end of file diff --git a/docs/theme/material/assets/javascripts/lunr/tinyseg.min.js b/docs/theme/material/assets/javascripts/lunr/tinyseg.min.js new file mode 100644 index 00000000..02c61e9c --- /dev/null +++ b/docs/theme/material/assets/javascripts/lunr/tinyseg.min.js @@ -0,0 +1 @@ +!function(_,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(_.lunr)}(this,(function(){return function(_){function t(){var _={"[一二三四五六七八九十百千万億兆]":"M","[一-龠々〆ヵヶ]":"H","[ぁ-ん]":"I","[ァ-ヴーア-ン゙ー]":"K","[a-zA-Za-zA-Z]":"A","[0-90-9]":"N"};for(var t in this.chartype_=[],_){var H=new RegExp(t);this.chartype_.push([H,_[t]])}return this.BIAS__=-332,this.BC1__={HH:6,II:2461,KH:406,OH:-1378},this.BC2__={AA:-3267,AI:2744,AN:-878,HH:-4070,HM:-1711,HN:4012,HO:3761,IA:1327,IH:-1184,II:-1332,IK:1721,IO:5492,KI:3831,KK:-8741,MH:-3132,MK:3334,OO:-2920},this.BC3__={HH:996,HI:626,HK:-721,HN:-1307,HO:-836,IH:-301,KK:2762,MK:1079,MM:4034,OA:-1652,OH:266},this.BP1__={BB:295,OB:304,OO:-125,UB:352},this.BP2__={BO:60,OO:-1762},this.BQ1__={BHH:1150,BHM:1521,BII:-1158,BIM:886,BMH:1208,BNH:449,BOH:-91,BOO:-2597,OHI:451,OIH:-296,OKA:1851,OKH:-1020,OKK:904,OOO:2965},this.BQ2__={BHH:118,BHI:-1159,BHM:466,BIH:-919,BKK:-1720,BKO:864,OHH:-1139,OHM:-181,OIH:153,UHI:-1146},this.BQ3__={BHH:-792,BHI:2664,BII:-299,BKI:419,BMH:937,BMM:8335,BNN:998,BOH:775,OHH:2174,OHM:439,OII:280,OKH:1798,OKI:-793,OKO:-2242,OMH:-2402,OOO:11699},this.BQ4__={BHH:-3895,BIH:3761,BII:-4654,BIK:1348,BKK:-1806,BMI:-3385,BOO:-12396,OAH:926,OHH:266,OHK:-2036,ONN:-973},this.BW1__={",と":660,",同":727,B1あ:1404,B1同:542,"、と":660,"、同":727,"」と":1682,あっ:1505,いう:1743,いっ:-2055,いる:672,うし:-4817,うん:665,から:3472,がら:600,こう:-790,こと:2083,こん:-1262,さら:-4143,さん:4573,した:2641,して:1104,すで:-3399,そこ:1977,それ:-871,たち:1122,ため:601,った:3463,つい:-802,てい:805,てき:1249,でき:1127,です:3445,では:844,とい:-4915,とみ:1922,どこ:3887,ない:5713,なっ:3015,など:7379,なん:-1113,にし:2468,には:1498,にも:1671,に対:-912,の一:-501,の中:741,ませ:2448,まで:1711,まま:2600,まる:-2155,やむ:-1947,よっ:-2565,れた:2369,れで:-913,をし:1860,を見:731,亡く:-1886,京都:2558,取り:-2784,大き:-2604,大阪:1497,平方:-2314,引き:-1336,日本:-195,本当:-2423,毎日:-2113,目指:-724,B1あ:1404,B1同:542,"」と":1682},this.BW2__={"..":-11822,11:-669,"――":-5730,"−−":-13175,いう:-1609,うか:2490,かし:-1350,かも:-602,から:-7194,かれ:4612,がい:853,がら:-3198,きた:1941,くな:-1597,こと:-8392,この:-4193,させ:4533,され:13168,さん:-3977,しい:-1819,しか:-545,した:5078,して:972,しな:939,その:-3744,たい:-1253,たた:-662,ただ:-3857,たち:-786,たと:1224,たは:-939,った:4589,って:1647,っと:-2094,てい:6144,てき:3640,てく:2551,ては:-3110,ても:-3065,でい:2666,でき:-1528,でし:-3828,です:-4761,でも:-4203,とい:1890,とこ:-1746,とと:-2279,との:720,とみ:5168,とも:-3941,ない:-2488,なが:-1313,など:-6509,なの:2614,なん:3099,にお:-1615,にし:2748,にな:2454,によ:-7236,に対:-14943,に従:-4688,に関:-11388,のか:2093,ので:-7059,のに:-6041,のの:-6125,はい:1073,はが:-1033,はず:-2532,ばれ:1813,まし:-1316,まで:-6621,まれ:5409,めて:-3153,もい:2230,もの:-10713,らか:-944,らし:-1611,らに:-1897,りし:651,りま:1620,れた:4270,れて:849,れば:4114,ろう:6067,われ:7901,を通:-11877,んだ:728,んな:-4115,一人:602,一方:-1375,一日:970,一部:-1051,上が:-4479,会社:-1116,出て:2163,分の:-7758,同党:970,同日:-913,大阪:-2471,委員:-1250,少な:-1050,年度:-8669,年間:-1626,府県:-2363,手権:-1982,新聞:-4066,日新:-722,日本:-7068,日米:3372,曜日:-601,朝鮮:-2355,本人:-2697,東京:-1543,然と:-1384,社会:-1276,立て:-990,第に:-1612,米国:-4268,"11":-669},this.BW3__={あた:-2194,あり:719,ある:3846,"い.":-1185,"い。":-1185,いい:5308,いえ:2079,いく:3029,いた:2056,いっ:1883,いる:5600,いわ:1527,うち:1117,うと:4798,えと:1454,"か.":2857,"か。":2857,かけ:-743,かっ:-4098,かに:-669,から:6520,かり:-2670,"が,":1816,"が、":1816,がき:-4855,がけ:-1127,がっ:-913,がら:-4977,がり:-2064,きた:1645,けど:1374,こと:7397,この:1542,ころ:-2757,さい:-714,さを:976,"し,":1557,"し、":1557,しい:-3714,した:3562,して:1449,しな:2608,しま:1200,"す.":-1310,"す。":-1310,する:6521,"ず,":3426,"ず、":3426,ずに:841,そう:428,"た.":8875,"た。":8875,たい:-594,たの:812,たり:-1183,たる:-853,"だ.":4098,"だ。":4098,だっ:1004,った:-4748,って:300,てい:6240,てお:855,ても:302,です:1437,でに:-1482,では:2295,とう:-1387,とし:2266,との:541,とも:-3543,どう:4664,ない:1796,なく:-903,など:2135,"に,":-1021,"に、":-1021,にし:1771,にな:1906,には:2644,"の,":-724,"の、":-724,の子:-1e3,"は,":1337,"は、":1337,べき:2181,まし:1113,ます:6943,まっ:-1549,まで:6154,まれ:-793,らし:1479,られ:6820,るる:3818,"れ,":854,"れ、":854,れた:1850,れて:1375,れば:-3246,れる:1091,われ:-605,んだ:606,んで:798,カ月:990,会議:860,入り:1232,大会:2217,始め:1681,市:965,新聞:-5055,"日,":974,"日、":974,社会:2024,カ月:990},this.TC1__={AAA:1093,HHH:1029,HHM:580,HII:998,HOH:-390,HOM:-331,IHI:1169,IOH:-142,IOI:-1015,IOM:467,MMH:187,OOI:-1832},this.TC2__={HHO:2088,HII:-1023,HMM:-1154,IHI:-1965,KKH:703,OII:-2649},this.TC3__={AAA:-294,HHH:346,HHI:-341,HII:-1088,HIK:731,HOH:-1486,IHH:128,IHI:-3041,IHO:-1935,IIH:-825,IIM:-1035,IOI:-542,KHH:-1216,KKA:491,KKH:-1217,KOK:-1009,MHH:-2694,MHM:-457,MHO:123,MMH:-471,NNH:-1689,NNO:662,OHO:-3393},this.TC4__={HHH:-203,HHI:1344,HHK:365,HHM:-122,HHN:182,HHO:669,HIH:804,HII:679,HOH:446,IHH:695,IHO:-2324,IIH:321,III:1497,IIO:656,IOO:54,KAK:4845,KKA:3386,KKK:3065,MHH:-405,MHI:201,MMH:-241,MMM:661,MOM:841},this.TQ1__={BHHH:-227,BHHI:316,BHIH:-132,BIHH:60,BIII:1595,BNHH:-744,BOHH:225,BOOO:-908,OAKK:482,OHHH:281,OHIH:249,OIHI:200,OIIH:-68},this.TQ2__={BIHH:-1401,BIII:-1033,BKAK:-543,BOOO:-5591},this.TQ3__={BHHH:478,BHHM:-1073,BHIH:222,BHII:-504,BIIH:-116,BIII:-105,BMHI:-863,BMHM:-464,BOMH:620,OHHH:346,OHHI:1729,OHII:997,OHMH:481,OIHH:623,OIIH:1344,OKAK:2792,OKHH:587,OKKA:679,OOHH:110,OOII:-685},this.TQ4__={BHHH:-721,BHHM:-3604,BHII:-966,BIIH:-607,BIII:-2181,OAAA:-2763,OAKK:180,OHHH:-294,OHHI:2446,OHHO:480,OHIH:-1573,OIHH:1935,OIHI:-493,OIIH:626,OIII:-4007,OKAK:-8156},this.TW1__={につい:-4681,東京都:2026},this.TW2__={ある程:-2049,いった:-1256,ころが:-2434,しょう:3873,その後:-4430,だって:-1049,ていた:1833,として:-4657,ともに:-4517,もので:1882,一気に:-792,初めて:-1512,同時に:-8097,大きな:-1255,対して:-2721,社会党:-3216},this.TW3__={いただ:-1734,してい:1314,として:-4314,につい:-5483,にとっ:-5989,に当た:-6247,"ので,":-727,"ので、":-727,のもの:-600,れから:-3752,十二月:-2287},this.TW4__={"いう.":8576,"いう。":8576,からな:-2348,してい:2958,"たが,":1516,"たが、":1516,ている:1538,という:1349,ました:5543,ません:1097,ようと:-4258,よると:5865},this.UC1__={A:484,K:93,M:645,O:-505},this.UC2__={A:819,H:1059,I:409,M:3987,N:5775,O:646},this.UC3__={A:-1370,I:2311},this.UC4__={A:-2643,H:1809,I:-1032,K:-3450,M:3565,N:3876,O:6646},this.UC5__={H:313,I:-1238,K:-799,M:539,O:-831},this.UC6__={H:-506,I:-253,K:87,M:247,O:-387},this.UP1__={O:-214},this.UP2__={B:69,O:935},this.UP3__={B:189},this.UQ1__={BH:21,BI:-12,BK:-99,BN:142,BO:-56,OH:-95,OI:477,OK:410,OO:-2422},this.UQ2__={BH:216,BI:113,OK:1759},this.UQ3__={BA:-479,BH:42,BI:1913,BK:-7198,BM:3160,BN:6427,BO:14761,OI:-827,ON:-3212},this.UW1__={",":156,"、":156,"「":-463,あ:-941,う:-127,が:-553,き:121,こ:505,で:-201,と:-547,ど:-123,に:-789,の:-185,は:-847,も:-466,や:-470,よ:182,ら:-292,り:208,れ:169,を:-446,ん:-137,"・":-135,主:-402,京:-268,区:-912,午:871,国:-460,大:561,委:729,市:-411,日:-141,理:361,生:-408,県:-386,都:-718,"「":-463,"・":-135},this.UW2__={",":-829,"、":-829,〇:892,"「":-645,"」":3145,あ:-538,い:505,う:134,お:-502,か:1454,が:-856,く:-412,こ:1141,さ:878,ざ:540,し:1529,す:-675,せ:300,そ:-1011,た:188,だ:1837,つ:-949,て:-291,で:-268,と:-981,ど:1273,な:1063,に:-1764,の:130,は:-409,ひ:-1273,べ:1261,ま:600,も:-1263,や:-402,よ:1639,り:-579,る:-694,れ:571,を:-2516,ん:2095,ア:-587,カ:306,キ:568,ッ:831,三:-758,不:-2150,世:-302,中:-968,主:-861,事:492,人:-123,会:978,保:362,入:548,初:-3025,副:-1566,北:-3414,区:-422,大:-1769,天:-865,太:-483,子:-1519,学:760,実:1023,小:-2009,市:-813,年:-1060,強:1067,手:-1519,揺:-1033,政:1522,文:-1355,新:-1682,日:-1815,明:-1462,最:-630,朝:-1843,本:-1650,東:-931,果:-665,次:-2378,民:-180,気:-1740,理:752,発:529,目:-1584,相:-242,県:-1165,立:-763,第:810,米:509,自:-1353,行:838,西:-744,見:-3874,調:1010,議:1198,込:3041,開:1758,間:-1257,"「":-645,"」":3145,ッ:831,ア:-587,カ:306,キ:568},this.UW3__={",":4889,1:-800,"−":-1723,"、":4889,々:-2311,〇:5827,"」":2670,"〓":-3573,あ:-2696,い:1006,う:2342,え:1983,お:-4864,か:-1163,が:3271,く:1004,け:388,げ:401,こ:-3552,ご:-3116,さ:-1058,し:-395,す:584,せ:3685,そ:-5228,た:842,ち:-521,っ:-1444,つ:-1081,て:6167,で:2318,と:1691,ど:-899,な:-2788,に:2745,の:4056,は:4555,ひ:-2171,ふ:-1798,へ:1199,ほ:-5516,ま:-4384,み:-120,め:1205,も:2323,や:-788,よ:-202,ら:727,り:649,る:5905,れ:2773,わ:-1207,を:6620,ん:-518,ア:551,グ:1319,ス:874,ッ:-1350,ト:521,ム:1109,ル:1591,ロ:2201,ン:278,"・":-3794,一:-1619,下:-1759,世:-2087,両:3815,中:653,主:-758,予:-1193,二:974,人:2742,今:792,他:1889,以:-1368,低:811,何:4265,作:-361,保:-2439,元:4858,党:3593,全:1574,公:-3030,六:755,共:-1880,円:5807,再:3095,分:457,初:2475,別:1129,前:2286,副:4437,力:365,動:-949,務:-1872,化:1327,北:-1038,区:4646,千:-2309,午:-783,協:-1006,口:483,右:1233,各:3588,合:-241,同:3906,和:-837,員:4513,国:642,型:1389,場:1219,外:-241,妻:2016,学:-1356,安:-423,実:-1008,家:1078,小:-513,少:-3102,州:1155,市:3197,平:-1804,年:2416,広:-1030,府:1605,度:1452,建:-2352,当:-3885,得:1905,思:-1291,性:1822,戸:-488,指:-3973,政:-2013,教:-1479,数:3222,文:-1489,新:1764,日:2099,旧:5792,昨:-661,時:-1248,曜:-951,最:-937,月:4125,期:360,李:3094,村:364,東:-805,核:5156,森:2438,業:484,氏:2613,民:-1694,決:-1073,法:1868,海:-495,無:979,物:461,特:-3850,生:-273,用:914,町:1215,的:7313,直:-1835,省:792,県:6293,知:-1528,私:4231,税:401,立:-960,第:1201,米:7767,系:3066,約:3663,級:1384,統:-4229,総:1163,線:1255,者:6457,能:725,自:-2869,英:785,見:1044,調:-562,財:-733,費:1777,車:1835,軍:1375,込:-1504,通:-1136,選:-681,郎:1026,郡:4404,部:1200,金:2163,長:421,開:-1432,間:1302,関:-1282,雨:2009,電:-1045,非:2066,駅:1620,"1":-800,"」":2670,"・":-3794,ッ:-1350,ア:551,グ:1319,ス:874,ト:521,ム:1109,ル:1591,ロ:2201,ン:278},this.UW4__={",":3930,".":3508,"―":-4841,"、":3930,"。":3508,〇:4999,"「":1895,"」":3798,"〓":-5156,あ:4752,い:-3435,う:-640,え:-2514,お:2405,か:530,が:6006,き:-4482,ぎ:-3821,く:-3788,け:-4376,げ:-4734,こ:2255,ご:1979,さ:2864,し:-843,じ:-2506,す:-731,ず:1251,せ:181,そ:4091,た:5034,だ:5408,ち:-3654,っ:-5882,つ:-1659,て:3994,で:7410,と:4547,な:5433,に:6499,ぬ:1853,ね:1413,の:7396,は:8578,ば:1940,ひ:4249,び:-4134,ふ:1345,へ:6665,べ:-744,ほ:1464,ま:1051,み:-2082,む:-882,め:-5046,も:4169,ゃ:-2666,や:2795,ょ:-1544,よ:3351,ら:-2922,り:-9726,る:-14896,れ:-2613,ろ:-4570,わ:-1783,を:13150,ん:-2352,カ:2145,コ:1789,セ:1287,ッ:-724,ト:-403,メ:-1635,ラ:-881,リ:-541,ル:-856,ン:-3637,"・":-4371,ー:-11870,一:-2069,中:2210,予:782,事:-190,井:-1768,人:1036,以:544,会:950,体:-1286,作:530,側:4292,先:601,党:-2006,共:-1212,内:584,円:788,初:1347,前:1623,副:3879,力:-302,動:-740,務:-2715,化:776,区:4517,協:1013,参:1555,合:-1834,和:-681,員:-910,器:-851,回:1500,国:-619,園:-1200,地:866,場:-1410,塁:-2094,士:-1413,多:1067,大:571,子:-4802,学:-1397,定:-1057,寺:-809,小:1910,屋:-1328,山:-1500,島:-2056,川:-2667,市:2771,年:374,庁:-4556,後:456,性:553,感:916,所:-1566,支:856,改:787,政:2182,教:704,文:522,方:-856,日:1798,時:1829,最:845,月:-9066,木:-485,来:-442,校:-360,業:-1043,氏:5388,民:-2716,気:-910,沢:-939,済:-543,物:-735,率:672,球:-1267,生:-1286,産:-1101,田:-2900,町:1826,的:2586,目:922,省:-3485,県:2997,空:-867,立:-2112,第:788,米:2937,系:786,約:2171,経:1146,統:-1169,総:940,線:-994,署:749,者:2145,能:-730,般:-852,行:-792,規:792,警:-1184,議:-244,谷:-1e3,賞:730,車:-1481,軍:1158,輪:-1433,込:-3370,近:929,道:-1291,選:2596,郎:-4866,都:1192,野:-1100,銀:-2213,長:357,間:-2344,院:-2297,際:-2604,電:-878,領:-1659,題:-792,館:-1984,首:1749,高:2120,"「":1895,"」":3798,"・":-4371,ッ:-724,ー:-11870,カ:2145,コ:1789,セ:1287,ト:-403,メ:-1635,ラ:-881,リ:-541,ル:-856,ン:-3637},this.UW5__={",":465,".":-299,1:-514,E2:-32768,"]":-2762,"、":465,"。":-299,"「":363,あ:1655,い:331,う:-503,え:1199,お:527,か:647,が:-421,き:1624,ぎ:1971,く:312,げ:-983,さ:-1537,し:-1371,す:-852,だ:-1186,ち:1093,っ:52,つ:921,て:-18,で:-850,と:-127,ど:1682,な:-787,に:-1224,の:-635,は:-578,べ:1001,み:502,め:865,ゃ:3350,ょ:854,り:-208,る:429,れ:504,わ:419,を:-1264,ん:327,イ:241,ル:451,ン:-343,中:-871,京:722,会:-1153,党:-654,務:3519,区:-901,告:848,員:2104,大:-1296,学:-548,定:1785,嵐:-1304,市:-2991,席:921,年:1763,思:872,所:-814,挙:1618,新:-1682,日:218,月:-4353,査:932,格:1356,機:-1508,氏:-1347,田:240,町:-3912,的:-3149,相:1319,省:-1052,県:-4003,研:-997,社:-278,空:-813,統:1955,者:-2233,表:663,語:-1073,議:1219,選:-1018,郎:-368,長:786,間:1191,題:2368,館:-689,"1":-514,E2:-32768,"「":363,イ:241,ル:451,ン:-343},this.UW6__={",":227,".":808,1:-270,E1:306,"、":227,"。":808,あ:-307,う:189,か:241,が:-73,く:-121,こ:-200,じ:1782,す:383,た:-428,っ:573,て:-1014,で:101,と:-105,な:-253,に:-149,の:-417,は:-236,も:-206,り:187,る:-135,を:195,ル:-673,ン:-496,一:-277,中:201,件:-800,会:624,前:302,区:1792,員:-1212,委:798,学:-960,市:887,広:-695,後:535,業:-697,相:753,社:-507,福:974,空:-822,者:1811,連:463,郎:1082,"1":-270,E1:306,ル:-673,ン:-496},this}t.prototype.ctype_=function(_){for(var t in this.chartype_)if(_.match(this.chartype_[t][0]))return this.chartype_[t][1];return"O"},t.prototype.ts_=function(_){return _||0},t.prototype.segment=function(_){if(null==_||null==_||""==_)return[];var t=[],H=["B3","B2","B1"],s=["O","O","O"],h=_.split("");for(K=0;K0&&(t.push(i),i="",N="B"),I=O,O=B,B=N,i+=H[K]}return t.push(i),t},_.TinySegmenter=t}})); \ No newline at end of file diff --git a/docs/theme/material/assets/javascripts/vendor.8caa27b7.min.js b/docs/theme/material/assets/javascripts/vendor.8caa27b7.min.js new file mode 100644 index 00000000..56d11de4 --- /dev/null +++ b/docs/theme/material/assets/javascripts/vendor.8caa27b7.min.js @@ -0,0 +1,31 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[1],[function(t,e,n){"use strict";n.d(e,"f",(function(){return i})),n.d(e,"a",(function(){return o})),n.d(e,"e",(function(){return s})),n.d(e,"g",(function(){return u})),n.d(e,"k",(function(){return c})),n.d(e,"h",(function(){return a})),n.d(e,"i",(function(){return f})),n.d(e,"j",(function(){return h})),n.d(e,"d",(function(){return l})),n.d(e,"b",(function(){return p})),n.d(e,"c",(function(){return d})); +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */ +var r=function(t,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function i(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var o=function(){return(o=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function a(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var r,i,o=n.call(t),s=[];try{for(;(void 0===e||e-- >0)&&!(r=o.next()).done;)s.push(r.value)}catch(t){i={error:t}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return s}function f(){for(var t=[],e=0;e1||u(t,e)}))})}function u(t,e){try{(n=i[t](e)).value instanceof l?Promise.resolve(n.value.v).then(c,a):f(o[0][2],n)}catch(t){f(o[0][3],t)}var n}function c(t){u("next",t)}function a(t){u("throw",t)}function f(t,e){t(e),o.shift(),o.length&&u(o[0][0],o[0][1])}}function d(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,n=t[Symbol.asyncIterator];return n?n.call(t):(t=c(t),e={},r("next"),r("throw"),r("return"),e[Symbol.asyncIterator]=function(){return this},e);function r(n){e[n]=t[n]&&function(e){return new Promise((function(r,i){(function(t,e,n,r){Promise.resolve(r).then((function(e){t({value:e,done:n})}),e)})(r,i,(e=t[n](e)).done,e.value)}))}}}},,,function(t,e,n){"use strict";n.d(e,"a",(function(){return f}));var r=n(0),i=n(15),o=n(40),s=n(8),u=n(32),c=n(12),a=n(22),f=function(t){function e(n,r,i){var s=t.call(this)||this;switch(s.syncErrorValue=null,s.syncErrorThrown=!1,s.syncErrorThrowable=!1,s.isStopped=!1,arguments.length){case 0:s.destination=o.a;break;case 1:if(!n){s.destination=o.a;break}if("object"==typeof n){n instanceof e?(s.syncErrorThrowable=n.syncErrorThrowable,s.destination=n,n.add(s)):(s.syncErrorThrowable=!0,s.destination=new h(s,n));break}default:s.syncErrorThrowable=!0,s.destination=new h(s,n,r,i)}return s}return Object(r.f)(e,t),e.prototype[u.a]=function(){return this},e.create=function(t,n,r){var i=new e(t,n,r);return i.syncErrorThrowable=!1,i},e.prototype.next=function(t){this.isStopped||this._next(t)},e.prototype.error=function(t){this.isStopped||(this.isStopped=!0,this._error(t))},e.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},e.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,t.prototype.unsubscribe.call(this))},e.prototype._next=function(t){this.destination.next(t)},e.prototype._error=function(t){this.destination.error(t),this.unsubscribe()},e.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},e.prototype._unsubscribeAndRecycle=function(){var t=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=t,this},e}(s.a),h=function(t){function e(e,n,r,s){var u,c=t.call(this)||this;c._parentSubscriber=e;var a=c;return Object(i.a)(n)?u=n:n&&(u=n.next,r=n.error,s=n.complete,n!==o.a&&(a=Object.create(n),Object(i.a)(a.unsubscribe)&&c.add(a.unsubscribe.bind(a)),a.unsubscribe=c.unsubscribe.bind(c))),c._context=a,c._next=u,c._error=r,c._complete=s,c}return Object(r.f)(e,t),e.prototype.next=function(t){if(!this.isStopped&&this._next){var e=this._parentSubscriber;c.a.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?this.__tryOrSetError(e,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}},e.prototype.error=function(t){if(!this.isStopped){var e=this._parentSubscriber,n=c.a.useDeprecatedSynchronousErrorHandling;if(this._error)n&&e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else if(e.syncErrorThrowable)n?(e.syncErrorValue=t,e.syncErrorThrown=!0):Object(a.a)(t),this.unsubscribe();else{if(this.unsubscribe(),n)throw t;Object(a.a)(t)}}},e.prototype.complete=function(){var t=this;if(!this.isStopped){var e=this._parentSubscriber;if(this._complete){var n=function(){return t._complete.call(t._context)};c.a.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}},e.prototype.__tryOrUnsub=function(t,e){try{t.call(this._context,e)}catch(t){if(this.unsubscribe(),c.a.useDeprecatedSynchronousErrorHandling)throw t;Object(a.a)(t)}},e.prototype.__tryOrSetError=function(t,e,n){if(!c.a.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{e.call(this._context,n)}catch(e){return c.a.useDeprecatedSynchronousErrorHandling?(t.syncErrorValue=e,t.syncErrorThrown=!0,!0):(Object(a.a)(e),!0)}return!1},e.prototype._unsubscribe=function(){var t=this._parentSubscriber;this._context=null,this._parentSubscriber=null,t.unsubscribe()},e}(f)},,,function(t,e,n){"use strict";n.d(e,"a",(function(){return l}));var r=n(3);var i=n(32),o=n(40);var s=n(17),u=n(45),c=n(12),a=n(0),f=function(){var t=this;this.resolve=null,this.reject=null,this.promise=new Promise((function(e,n){t.resolve=e,t.reject=n}))};function h(t){return function(t){return Object(a.b)(this,arguments,(function(){var e,n,r,i,o,s,u,c;return Object(a.g)(this,(function(h){switch(h.label){case 0:e=[],n=[],r=!1,i=null,o=!1,s=t.subscribe({next:function(t){e.length>0?e.shift().resolve({value:t,done:!1}):n.push(t)},error:function(t){for(r=!0,i=t;e.length>0;)e.shift().reject(t)},complete:function(){for(o=!0;e.length>0;)e.shift().resolve({value:void 0,done:!0})}}),h.label=1;case 1:h.trys.push([1,16,17,18]),h.label=2;case 2:return n.length>0?[4,Object(a.d)(n.shift())]:[3,5];case 3:return[4,h.sent()];case 4:return h.sent(),[3,14];case 5:return o?[4,Object(a.d)(void 0)]:[3,7];case 6:return[2,h.sent()];case 7:if(!r)return[3,8];throw i;case 8:return u=new f,e.push(u),[4,Object(a.d)(u.promise)];case 9:return(c=h.sent()).done?[4,Object(a.d)(void 0)]:[3,11];case 10:return[2,h.sent()];case 11:return[4,Object(a.d)(c.value)];case 12:return[4,h.sent()];case 13:h.sent(),h.label=14;case 14:return[3,2];case 15:return[3,18];case 16:throw h.sent();case 17:return s.unsubscribe(),[7];case 18:return[2]}}))}))}(t)}var l=function(){function t(t){this._isScalar=!1,t&&(this._subscribe=t)}return t.prototype.lift=function(e){var n=new t;return n.source=this,n.operator=e,n},t.prototype.subscribe=function(t,e,n){var s=this.operator,u=function(t,e,n){if(t){if(t instanceof r.a)return t;if(t[i.a])return t[i.a]()}return t||e||n?new r.a(t,e,n):new r.a(o.a)}(t,e,n);if(s?u.add(s.call(u,this.source)):u.add(this.source||c.a.useDeprecatedSynchronousErrorHandling&&!u.syncErrorThrowable?this._subscribe(u):this._trySubscribe(u)),c.a.useDeprecatedSynchronousErrorHandling&&u.syncErrorThrowable&&(u.syncErrorThrowable=!1,u.syncErrorThrown))throw u.syncErrorValue;return u},t.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(e){c.a.useDeprecatedSynchronousErrorHandling&&(t.syncErrorThrown=!0,t.syncErrorValue=e),!function(t){for(;t;){var e=t,n=e.closed,i=e.destination,o=e.isStopped;if(n||o)return!1;t=i&&i instanceof r.a?i:null}return!0}(t)?console.warn(e):t.error(e)}},t.prototype.forEach=function(t,e){var n=this;return new(e=p(e))((function(e,r){var i;i=n.subscribe((function(e){try{t(e)}catch(t){r(t),i&&i.unsubscribe()}}),r,e)}))},t.prototype._subscribe=function(t){var e=this.source;return e&&e.subscribe(t)},t.prototype[s.a]=function(){return this},t.prototype.pipe=function(){for(var t=[],e=0;e0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},e}(o.a),h=n(49);function l(t){return void 0===t&&(t=Number.POSITIVE_INFINITY),function t(e,n,r){return void 0===r&&(r=Number.POSITIVE_INFINITY),"function"==typeof n?function(i){return i.pipe(t((function(t,r){return Object(c.a)(e(t,r)).pipe(Object(u.a)((function(e,i){return n(t,e,r,i)})))}),r))}:("number"==typeof n&&(r=n),function(t){return t.lift(new a(e,r))})}(h.a,t)}},function(t,e,n){"use strict";n.d(e,"b",(function(){return s})),n.d(e,"a",(function(){return c}));var r=n(0),i=n(3),o=n(41);function s(t,e){return void 0===e&&(e=0),function(n){return n.lift(new u(t,e))}}var u=function(){function t(t,e){void 0===e&&(e=0),this.scheduler=t,this.delay=e}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.scheduler,this.delay))},t}(),c=function(t){function e(e,n,r){void 0===r&&(r=0);var i=t.call(this,e)||this;return i.scheduler=n,i.delay=r,i}return Object(r.f)(e,t),e.dispatch=function(t){var e=t.notification,n=t.destination;e.observe(n),this.unsubscribe()},e.prototype.scheduleMessage=function(t){this.destination.add(this.scheduler.schedule(e.dispatch,this.delay,new a(t,this.destination)))},e.prototype._next=function(t){this.scheduleMessage(o.a.createNext(t))},e.prototype._error=function(t){this.scheduleMessage(o.a.createError(t)),this.unsubscribe()},e.prototype._complete=function(){this.scheduleMessage(o.a.createComplete()),this.unsubscribe()},e}(i.a),a=function(t,e){this.notification=t,this.destination=e}},,function(t,e,n){ +/*! + * clipboard.js v2.0.6 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */ +var r;r=function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=6)}([function(t,e){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var r=window.getSelection(),i=document.createRange();i.selectNodeContents(t),r.removeAllRanges(),r.addRange(i),e=r.toString()}return e}},function(t,e){function n(){}n.prototype={on:function(t,e,n){var r=this.e||(this.e={});return(r[t]||(r[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var r=this;function i(){r.off(t,i),e.apply(n,arguments)}return i._=e,this.on(t,i,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),r=0,i=n.length;r0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=i()(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=i()(this.target),this.copyText()}},{key:"copyText",value:function(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),document.activeElement.blur(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":o(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),t}(),c=n(1),a=n.n(c),f=n(2),h=n.n(f),l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},p=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===l(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=h()(t,"click",(function(t){return e.onClick(t)}))}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new u({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return b("action",t)}},{key:"defaultTarget",value:function(t){var e=b("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return b("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach((function(t){n=n&&!!document.queryCommandSupported(t)})),n}}]),e}(a.a);function b(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}e.default=d}]).default},t.exports=r()},function(t,e,n){"use strict";n.d(e,"a",(function(){return f}));var r=n(0),i=n(25),o=n(24),s=n(11),u=n(10),c=n(35),a={};function f(){for(var t=[],e=0;e0},t.prototype.connect_=function(){r&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),u?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},t.prototype.disconnect_=function(){r&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},t.prototype.onTransitionEnd_=function(t){var e=t.propertyName,n=void 0===e?"":e;s.some((function(t){return!!~n.indexOf(t)}))&&this.refresh()},t.getInstance=function(){return this.instance_||(this.instance_=new t),this.instance_},t.instance_=null,t}(),a=function(t,e){for(var n=0,r=Object.keys(e);n0},t}(),g="undefined"!=typeof WeakMap?new WeakMap:new n,O=function t(e){if(!(this instanceof t))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=c.getInstance(),r=new _(e,n,this);g.set(this,r)};["observe","unobserve","disconnect"].forEach((function(t){O.prototype[t]=function(){var e;return(e=g.get(this))[t].apply(e,arguments)}}));var x=void 0!==i.ResizeObserver?i.ResizeObserver:O;e.a=x}).call(this,n(60))},function(t,e,n){"use strict"; +/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var r=/["'&<>]/;t.exports=function(t){var e,n=""+t,i=r.exec(n);if(!i)return n;var o="",s=0,u=0;for(s=i.index;s0?t.prototype.schedule.call(this,e,n):(this.delay=n,this.state=e,this.scheduler.flush(this),this)},e.prototype.execute=function(e,n){return n>0||this.closed?t.prototype.execute.call(this,e,n):this._execute(e,n)},e.prototype.requestAsyncId=function(e,n,r){return void 0===r&&(r=0),null!==r&&r>0||null===r&&this.delay>0?t.prototype.requestAsyncId.call(this,e,n,r):e.flush(this)},e}(n(38).a),s=new(function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(r.f)(e,t),e}(n(37).a))(o),u=n(8),c=n(56),a=n(19),f=n(48),h=function(t){function e(e,n,r){void 0===e&&(e=Number.POSITIVE_INFINITY),void 0===n&&(n=Number.POSITIVE_INFINITY);var i=t.call(this)||this;return i.scheduler=r,i._events=[],i._infiniteTimeWindow=!1,i._bufferSize=e<1?1:e,i._windowTime=n<1?1:n,n===Number.POSITIVE_INFINITY?(i._infiniteTimeWindow=!0,i.next=i.nextInfiniteTimeWindow):i.next=i.nextTimeWindow,i}return Object(r.f)(e,t),e.prototype.nextInfiniteTimeWindow=function(e){var n=this._events;n.push(e),n.length>this._bufferSize&&n.shift(),t.prototype.next.call(this,e)},e.prototype.nextTimeWindow=function(e){this._events.push(new l(this._getNow(),e)),this._trimBufferThenGetEvents(),t.prototype.next.call(this,e)},e.prototype._subscribe=function(t){var e,n=this._infiniteTimeWindow,r=n?this._events:this._trimBufferThenGetEvents(),i=this.scheduler,o=r.length;if(this.closed)throw new a.a;if(this.isStopped||this.hasError?e=u.a.EMPTY:(this.observers.push(t),e=new f.a(this,t)),i&&t.add(t=new c.a(t,i)),n)for(var s=0;se&&(o=Math.max(o,i-e)),o>0&&r.splice(0,o),r},e}(i.a),l=function(t,e){this.time=t,this.value=e}},function(t,e,n){"use strict";var r=n(21);function i(t,e){return Object.prototype.hasOwnProperty.call(e,t)}var o=Object.prototype.toString,s=function(){return"[object Arguments]"===o.call(arguments)?function(t){return"[object Arguments]"===o.call(t)}:function(t){return i("callee",t)}}(),u=!{toString:null}.propertyIsEnumerable("toString"),c=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],a=function(){return arguments.propertyIsEnumerable("length")}(),f=function(t,e){for(var n=0;n=0;)i(e=c[n],t)&&!f(r,e)&&(r[r.length]=e),n-=1;return r})):Object(r.a)((function(t){return Object(t)!==t?[]:Object.keys(t)}));e.a=h},function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var r=n(0),i=n(3),o=n(16),s=n(15);function u(t,e,n){return function(r){return r.lift(new c(t,e,n))}}var c=function(){function t(t,e,n){this.nextOrObserver=t,this.error=e,this.complete=n}return t.prototype.call=function(t,e){return e.subscribe(new a(t,this.nextOrObserver,this.error,this.complete))},t}(),a=function(t){function e(e,n,r,i){var u=t.call(this,e)||this;return u._tapNext=o.a,u._tapError=o.a,u._tapComplete=o.a,u._tapError=r||o.a,u._tapComplete=i||o.a,Object(s.a)(n)?(u._context=u,u._tapNext=n):n&&(u._context=n,u._tapNext=n.next||o.a,u._tapError=n.error||o.a,u._tapComplete=n.complete||o.a),u}return Object(r.f)(e,t),e.prototype._next=function(t){try{this._tapNext.call(this._context,t)}catch(t){return void this.destination.error(t)}this.destination.next(t)},e.prototype._error=function(t){try{this._tapError.call(this._context,t)}catch(t){return void this.destination.error(t)}this.destination.error(t)},e.prototype._complete=function(){try{this._tapComplete.call(this._context)}catch(t){return void this.destination.error(t)}return this.destination.complete()},e}(i.a)},function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var r=n(0),i=n(3);function o(t,e){var n=!1;return arguments.length>=2&&(n=!0),function(r){return r.lift(new s(t,e,n))}}var s=function(){function t(t,e,n){void 0===n&&(n=!1),this.accumulator=t,this.seed=e,this.hasSeed=n}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.accumulator,this.seed,this.hasSeed))},t}(),u=function(t){function e(e,n,r,i){var o=t.call(this,e)||this;return o.accumulator=n,o._state=r,o._hasState=i,o.index=0,o}return Object(r.f)(e,t),e.prototype._next=function(t){var e=this.destination;if(this._hasState){var n=this.index++,r=void 0;try{r=this.accumulator(this._state,t,n)}catch(t){return void e.error(t)}this._state=r,e.next(r)}else this._state=t,this._hasState=!0,e.next(t)},e}(i.a)},function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var r=n(0),i=n(3),o=n(8);function s(t){return function(e){return e.lift(new u(t))}}var u=function(){function t(t){this.callback=t}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.callback))},t}(),c=function(t){function e(e,n){var r=t.call(this,e)||this;return r.add(new o.a(n)),r}return Object(r.f)(e,t),e}(i.a)},function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var r=n(0),i=function(t){function e(e,n){var r=t.call(this,e,n)||this;return r.scheduler=e,r.work=n,r}return Object(r.f)(e,t),e.prototype.requestAsyncId=function(e,n,r){return void 0===r&&(r=0),null!==r&&r>0?t.prototype.requestAsyncId.call(this,e,n,r):(e.actions.push(this),e.scheduled||(e.scheduled=requestAnimationFrame((function(){return e.flush(void 0)}))))},e.prototype.recycleAsyncId=function(e,n,r){if(void 0===r&&(r=0),null!==r&&r>0||null===r&&this.delay>0)return t.prototype.recycleAsyncId.call(this,e,n,r);0===e.actions.length&&(cancelAnimationFrame(n),e.scheduled=void 0)},e}(n(38).a),o=new(function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(r.f)(e,t),e.prototype.flush=function(t){this.active=!0,this.scheduled=void 0;var e,n=this.actions,r=-1,i=n.length;t=t||n.shift();do{if(e=t.execute(t.state,t.delay))break}while(++r0){var s=o.indexOf(n);-1!==s&&o.splice(s,1)}},e.prototype.notifyComplete=function(){},e.prototype._next=function(t){if(0===this.toRespond.length){var e=Object(r.j)([t],this.values);this.project?this._tryProject(e):this.destination.next(e)}},e.prototype._tryProject=function(t){var e;try{e=this.project.apply(this,t)}catch(t){return void this.destination.error(t)}this.destination.next(e)},e}(i.a)},function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var r=n(0),i=n(3);function o(t,e){return void 0===e&&(e=null),function(n){return n.lift(new s(t,e))}}var s=function(){function t(t,e){this.bufferSize=t,this.startBufferEvery=e,this.subscriberClass=e&&t!==e?c:u}return t.prototype.call=function(t,e){return e.subscribe(new this.subscriberClass(t,this.bufferSize,this.startBufferEvery))},t}(),u=function(t){function e(e,n){var r=t.call(this,e)||this;return r.bufferSize=n,r.buffer=[],r}return Object(r.f)(e,t),e.prototype._next=function(t){var e=this.buffer;e.push(t),e.length==this.bufferSize&&(this.destination.next(e),this.buffer=[])},e.prototype._complete=function(){var e=this.buffer;e.length>0&&this.destination.next(e),t.prototype._complete.call(this)},e}(i.a),c=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.bufferSize=n,i.startBufferEvery=r,i.buffers=[],i.count=0,i}return Object(r.f)(e,t),e.prototype._next=function(t){var e=this.bufferSize,n=this.startBufferEvery,r=this.buffers,i=this.count;this.count++,i%n==0&&r.push([]);for(var o=r.length;o--;){var s=r[o];s.push(t),s.length===e&&(r.splice(o,1),this.destination.next(s))}},e.prototype._complete=function(){for(var e=this.buffers,n=this.destination;e.length>0;){var r=e.shift();r.length>0&&n.next(r)}t.prototype._complete.call(this)},e}(i.a)},function(t,e,n){"use strict";n.d(e,"a",(function(){return c}));var r=n(39),i=n(55);function o(){return Object(i.a)(1)}function s(){for(var t=[],e=0;e1?r.next(Array.prototype.slice.call(arguments)):r.next(t)}),r,n)}))}},function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var r=n(0),i=n(3);function o(t){return function(e){return e.lift(new s(t))}}var s=function(){function t(t){this.value=t}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.value))},t}(),u=function(t){function e(e,n){var r=t.call(this,e)||this;return r.value=n,r}return Object(r.f)(e,t),e.prototype._next=function(t){this.destination.next(this.value)},e}(i.a)},function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var r=n(6),i=n(25),o=n(55),s=n(35);function u(){for(var t=[],e=0;e1&&"number"==typeof t[t.length-1]&&(n=t.pop())):"number"==typeof c&&(n=t.pop()),!u&&1===t.length&&t[0]instanceof r.a?t[0]:Object(o.a)(n)(Object(s.a)(t,u))}},function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var r=n(6),i=n(24),o=n(15),s=n(9);function u(t,e,n){return n?u(t,e).pipe(Object(s.a)((function(t){return Object(i.a)(t)?n.apply(void 0,t):n(t)}))):new r.a((function(n){var r,i=function(){for(var t=[],e=0;ethis.total&&this.destination.next(t)},e}(i.a)},function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var r=n(0),i=n(11),o=n(28),s=n(10);function u(t){return function(e){var n=new c(t),r=e.lift(n);return n.caught=r}}var c=function(){function t(t){this.selector=t}return t.prototype.call=function(t,e){return e.subscribe(new a(t,this.selector,this.caught))},t}(),a=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.selector=n,i.caught=r,i}return Object(r.f)(e,t),e.prototype.error=function(e){if(!this.isStopped){var n=void 0;try{n=this.selector(e,this.caught)}catch(e){return void t.prototype.error.call(this,e)}this._unsubscribeAndRecycle();var r=new o.a(this,void 0,void 0);this.add(r);var i=Object(s.a)(this,n,void 0,void 0,r);i!==r&&this.add(i)}},e}(i.a)},function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var r=n(0),i=n(3),o=n(53);function s(t,e){return void 0===e&&(e=o.a),function(n){return n.lift(new u(t,e))}}var u=function(){function t(t,e){this.dueTime=t,this.scheduler=e}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.dueTime,this.scheduler))},t}(),c=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.dueTime=n,i.scheduler=r,i.debouncedSubscription=null,i.lastValue=null,i.hasValue=!1,i}return Object(r.f)(e,t),e.prototype._next=function(t){this.clearDebounce(),this.lastValue=t,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(a,this.dueTime,this))},e.prototype._complete=function(){this.debouncedNext(),this.destination.complete()},e.prototype.debouncedNext=function(){if(this.clearDebounce(),this.hasValue){var t=this.lastValue;this.lastValue=null,this.hasValue=!1,this.destination.next(t)}},e.prototype.clearDebounce=function(){var t=this.debouncedSubscription;null!==t&&(this.remove(t),t.unsubscribe(),this.debouncedSubscription=null)},e}(i.a);function a(t){t.debouncedNext()}},function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var r=n(76),i=n(18);function o(t,e,n){return void 0===e&&(e=i.a),void 0===n&&(n=i.a),Object(r.a)((function(){return t()?e:n}))}},function(t,e,n){"use strict";var r=n(21),i=n(78),o=Object(r.a)((function(t){for(var e=Object(i.a)(t),n=e.length,r=[],o=0;o1)this.connection=null;else{var n=this.connection,r=t._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null},e}(s.a),l=function(t){function e(e,n){var r=t.call(this)||this;return r.source=e,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return Object(r.f)(e,t),e.prototype._subscribe=function(t){return this.getSubject().subscribe(t)},e.prototype.getSubject=function(){var t=this._subject;return t&&!t.isStopped||(this._subject=this.subjectFactory()),this._subject},e.prototype.connect=function(){var t=this._connection;return t||(this._isComplete=!1,(t=this._connection=new u.a).add(this.source.subscribe(new d(this.getSubject(),this))),t.closed&&(this._connection=null,t=u.a.EMPTY)),t},e.prototype.refCount=function(){return c()(this)},e}(o.a),p={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:(a=l.prototype)._subscribe},_isComplete:{value:a._isComplete,writable:!0},getSubject:{value:a.getSubject},connect:{value:a.connect},refCount:{value:a.refCount}},d=function(t){function e(e,n){var r=t.call(this,e)||this;return r.connectable=n,r}return Object(r.f)(e,t),e.prototype._error=function(e){this._unsubscribe(),t.prototype._error.call(this,e)},e.prototype._complete=function(){this.connectable._isComplete=!0,this._unsubscribe(),t.prototype._complete.call(this)},e.prototype._unsubscribe=function(){var t=this.connectable;if(t){this.connectable=null;var e=t._connection;t._refCount=0,t._subject=null,t._connection=null,e&&e.unsubscribe()}},e}(i.b),b=(function(){function t(t){this.connectable=t}t.prototype.call=function(t,e){var n=this.connectable;n._refCount++;var r=new b(t,n),i=e.subscribe(r);return r.closed||(r.connection=n.connect()),i}}(),function(t){function e(e,n){var r=t.call(this,e)||this;return r.connectable=n,r}return Object(r.f)(e,t),e.prototype._unsubscribe=function(){var t=this.connectable;if(t){this.connectable=null;var e=t._refCount;if(e<=0)this.connection=null;else if(t._refCount=e-1,e>1)this.connection=null;else{var n=this.connection,r=t._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null},e}(s.a));var v=function(){function t(t,e){this.subjectFactory=t,this.selector=e}return t.prototype.call=function(t,e){var n=this.selector,r=this.subjectFactory(),i=n(r).subscribe(t);return i.add(e.subscribe(r)),i},t}();function y(){return new i.a}function m(){return function(t){return c()((e=y,function(t){var r;if(r="function"==typeof e?e:function(){return e},"function"==typeof n)return t.lift(new v(r,n));var i=Object.create(t,p);return i.source=t,i.subjectFactory=r,i})(t));var e,n}}},function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var r=n(0),i=n(3),o=function(){function t(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}return t.prototype=Object.create(Error.prototype),t}(),s=n(18);function u(t){return function(e){return 0===t?s.a:e.lift(new c(t))}}var c=function(){function t(t){if(this.total=t,this.total<0)throw new o}return t.prototype.call=function(t,e){return e.subscribe(new a(t,this.total))},t}(),a=function(t){function e(e,n){var r=t.call(this,e)||this;return r.total=n,r.count=0,r}return Object(r.f)(e,t),e.prototype._next=function(t){var e=this.total,n=++this.count;n<=e&&(this.destination.next(t),n===e&&(this.destination.complete(),this.unsubscribe()))},e}(i.a)},function(t,e,n){"use strict";var r=n(21);function i(t){return t}var o=Object(r.a)(i);e.a=o},function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var r=n(0),i=n(53);var o=n(3),s=n(41);function u(t,e){void 0===e&&(e=i.a);var n,r=(n=t)instanceof Date&&!isNaN(+n)?+t-e.now():Math.abs(t);return function(t){return t.lift(new c(r,e))}}var c=function(){function t(t,e){this.delay=t,this.scheduler=e}return t.prototype.call=function(t,e){return e.subscribe(new a(t,this.delay,this.scheduler))},t}(),a=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.delay=n,i.scheduler=r,i.queue=[],i.active=!1,i.errored=!1,i}return Object(r.f)(e,t),e.dispatch=function(t){for(var e=t.source,n=e.queue,r=t.scheduler,i=t.destination;n.length>0&&n[0].time-r.now()<=0;)n.shift().notification.observe(i);if(n.length>0){var o=Math.max(0,n[0].time-r.now());this.schedule(t,o)}else e.isStopped?(e.destination.complete(),e.active=!1):(this.unsubscribe(),e.active=!1)},e.prototype._schedule=function(t){this.active=!0,this.destination.add(t.schedule(e.dispatch,this.delay,{source:this,destination:this.destination,scheduler:t}))},e.prototype.scheduleNotification=function(t){if(!0!==this.errored){var e=this.scheduler,n=new f(e.now()+this.delay,t);this.queue.push(n),!1===this.active&&this._schedule(e)}},e.prototype._next=function(t){this.scheduleNotification(s.a.createNext(t))},e.prototype._error=function(t){this.errored=!0,this.queue=[],this.destination.error(t),this.unsubscribe()},e.prototype._complete=function(){0===this.queue.length&&this.destination.complete(),this.unsubscribe()},e}(o.a),f=function(t,e){this.time=t,this.notification=e}},function(t,e,n){"use strict";n.d(e,"a",(function(){return g}));var r=n(0),i=n(13),o=n(6),s=n(3),u=n(9);function c(t,e){return new b({method:"GET",url:t,headers:e})}function a(t,e,n){return new b({method:"POST",url:t,body:e,headers:n})}function f(t,e){return new b({method:"DELETE",url:t,headers:e})}function h(t,e,n){return new b({method:"PUT",url:t,body:e,headers:n})}function l(t,e,n){return new b({method:"PATCH",url:t,body:e,headers:n})}var p=Object(u.a)((function(t,e){return t.response}));function d(t,e){return p(new b({method:"GET",url:t,responseType:"json",headers:e}))}var b=function(t){function e(e){var n=t.call(this)||this,r={async:!0,createXHR:function(){return this.crossDomain?function(){if(i.a.XMLHttpRequest)return new i.a.XMLHttpRequest;if(i.a.XDomainRequest)return new i.a.XDomainRequest;throw new Error("CORS is not supported by your browser")}():function(){if(i.a.XMLHttpRequest)return new i.a.XMLHttpRequest;var t=void 0;try{for(var e=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],n=0;n<3;n++)try{if(t=e[n],new i.a.ActiveXObject(t))break}catch(t){}return new i.a.ActiveXObject(t)}catch(t){throw new Error("XMLHttpRequest is not supported by your browser")}}()},crossDomain:!0,withCredentials:!1,headers:{},method:"GET",responseType:"json",timeout:0};if("string"==typeof e)r.url=e;else for(var o in e)e.hasOwnProperty(o)&&(r[o]=e[o]);return n.request=r,n}var n;return Object(r.f)(e,t),e.prototype._subscribe=function(t){return new v(t,this.request)},e.create=((n=function(t){return new e(t)}).get=c,n.post=a,n.delete=f,n.put=h,n.patch=l,n.getJSON=d,n),e}(o.a),v=function(t){function e(e,n){var r=t.call(this,e)||this;r.request=n,r.done=!1;var o=n.headers=n.headers||{};return n.crossDomain||r.getHeader(o,"X-Requested-With")||(o["X-Requested-With"]="XMLHttpRequest"),r.getHeader(o,"Content-Type")||i.a.FormData&&n.body instanceof i.a.FormData||void 0===n.body||(o["Content-Type"]="application/x-www-form-urlencoded; charset=UTF-8"),n.body=r.serializeBody(n.body,r.getHeader(n.headers,"Content-Type")),r.send(),r}return Object(r.f)(e,t),e.prototype.next=function(t){this.done=!0;var e,n=this.xhr,r=this.request,i=this.destination;try{e=new y(t,n,r)}catch(t){return i.error(t)}i.next(e)},e.prototype.send=function(){var t=this.request,e=this.request,n=e.user,r=e.method,i=e.url,o=e.async,s=e.password,u=e.headers,c=e.body;try{var a=this.xhr=t.createXHR();this.setupEvents(a,t),n?a.open(r,i,o,n,s):a.open(r,i,o),o&&(a.timeout=t.timeout,a.responseType=t.responseType),"withCredentials"in a&&(a.withCredentials=!!t.withCredentials),this.setHeaders(a,u),c?a.send(c):a.send()}catch(t){this.error(t)}},e.prototype.serializeBody=function(t,e){if(!t||"string"==typeof t)return t;if(i.a.FormData&&t instanceof i.a.FormData)return t;if(e){var n=e.indexOf(";");-1!==n&&(e=e.substring(0,n))}switch(e){case"application/x-www-form-urlencoded":return Object.keys(t).map((function(e){return encodeURIComponent(e)+"="+encodeURIComponent(t[e])})).join("&");case"application/json":return JSON.stringify(t);default:return t}},e.prototype.setHeaders=function(t,e){for(var n in e)e.hasOwnProperty(n)&&t.setRequestHeader(n,e[n])},e.prototype.getHeader=function(t,e){for(var n in t)if(n.toLowerCase()===e.toLowerCase())return t[n]},e.prototype.setupEvents=function(t,e){var n=e.progressSubscriber;function r(t){var e,n=r,i=n.subscriber,o=n.progressSubscriber,s=n.request;o&&o.error(t);try{e=new _(this,s)}catch(t){e=t}i.error(e)}if(t.ontimeout=r,r.request=e,r.subscriber=this,r.progressSubscriber=n,t.upload&&"withCredentials"in t){var o,s;if(n)o=function(t){o.progressSubscriber.next(t)},i.a.XDomainRequest?t.onprogress=o:t.upload.onprogress=o,o.progressSubscriber=n;s=function(t){var e,n=s,r=n.progressSubscriber,i=n.subscriber,o=n.request;r&&r.error(t);try{e=new m("ajax error",this,o)}catch(t){e=t}i.error(e)},t.onerror=s,s.request=e,s.subscriber=this,s.progressSubscriber=n}function u(t){}function c(t){var e=c,n=e.subscriber,r=e.progressSubscriber,i=e.request;if(4===this.readyState){var o=1223===this.status?204:this.status,s="text"===this.responseType?this.response||this.responseText:this.response;if(0===o&&(o=s?200:0),o<400)r&&r.complete(),n.next(t),n.complete();else{r&&r.error(t);var u=void 0;try{u=new m("ajax error "+o,this,i)}catch(t){u=t}n.error(u)}}}t.onreadystatechange=u,u.subscriber=this,u.progressSubscriber=n,u.request=e,t.onload=c,c.subscriber=this,c.progressSubscriber=n,c.request=e},e.prototype.unsubscribe=function(){var e=this.done,n=this.xhr;!e&&n&&4!==n.readyState&&"function"==typeof n.abort&&n.abort(),t.prototype.unsubscribe.call(this)},e}(s.a),y=function(t,e,n){this.originalEvent=t,this.xhr=e,this.request=n,this.status=e.status,this.responseType=e.responseType||n.responseType,this.response=w(this.responseType,e)},m=function(){function t(t,e,n){return Error.call(this),this.message=t,this.name="AjaxError",this.xhr=e,this.request=n,this.status=e.status,this.responseType=e.responseType||n.responseType,this.response=w(this.responseType,e),this}return t.prototype=Object.create(Error.prototype),t}();function w(t,e){switch(t){case"json":return function(t){return"response"in t?t.responseType?t.response:JSON.parse(t.response||t.responseText||"null"):JSON.parse(t.responseText||"null")}(e);case"xml":return e.responseXML;case"text":default:return"response"in e?e.response:e.responseText}}var _=function(){function t(t,e){return m.call(this,"ajax timeout",t,e),this.name="AjaxTimeoutError",this}return t.prototype=Object.create(m.prototype),t}(),g=b.create}]]); +//# sourceMappingURL=vendor.8caa27b7.min.js.map \ No newline at end of file diff --git a/docs/theme/material/assets/javascripts/vendor.8caa27b7.min.js.map b/docs/theme/material/assets/javascripts/vendor.8caa27b7.min.js.map new file mode 100644 index 00000000..c3816018 --- /dev/null +++ b/docs/theme/material/assets/javascripts/vendor.8caa27b7.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./node_modules/rxjs/dist/esm5/internal/Subscriber.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/deferred.js","webpack:///./node_modules/rxjs/dist/esm5/internal/asyncIteratorFrom.js","webpack:///./node_modules/rxjs/dist/esm5/internal/Observable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/toSubscriber.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/canReportError.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js","webpack:///./node_modules/rxjs/dist/esm5/internal/Subscription.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/map.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js","webpack:///./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js","webpack:///./node_modules/rxjs/dist/esm5/internal/config.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/root.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isFunction.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/noop.js","webpack:///./node_modules/rxjs/dist/esm5/internal/symbol/observable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/empty.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js","webpack:///./node_modules/ramda/es/internal/_isPlaceholder.js","webpack:///./node_modules/ramda/es/internal/_curry1.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/hostReportError.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isArray.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js","webpack:///./node_modules/rxjs/dist/esm5/internal/Subject.js","webpack:///./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js","webpack:///./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js","webpack:///./node_modules/rxjs/dist/esm5/internal/symbol/rxSubscriber.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/fromArray.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isIterable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/from.js","webpack:///./node_modules/rxjs/dist/esm5/internal/Scheduler.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/Action.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/of.js","webpack:///./node_modules/rxjs/dist/esm5/internal/Observer.js","webpack:///./node_modules/rxjs/dist/esm5/internal/Notification.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/throwError.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/pipe.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isObject.js","webpack:///./node_modules/rxjs/dist/esm5/internal/SubjectSubscription.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/identity.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToArray.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isPromise.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/async.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToAsyncIterable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeTo.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToObservable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToPromise.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToIterable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/observeOn.js","webpack:///./node_modules/clipboard/dist/clipboard.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack:///./node_modules/escape-html/index.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/defer.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/QueueAction.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/queue.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/QueueScheduler.js","webpack:///./node_modules/rxjs/dist/esm5/internal/ReplaySubject.js","webpack:///./node_modules/ramda/es/internal/_has.js","webpack:///./node_modules/ramda/es/internal/_isArguments.js","webpack:///./node_modules/ramda/es/keys.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/tap.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/scan.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/finalize.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameAction.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/animationFrame.js","webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameScheduler.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/shareReplay.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilKeyChanged.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/bufferCount.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/concatAll.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/concat.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/startWith.js","webpack:///./node_modules/ramda/es/reverse.js","webpack:///./node_modules/ramda/es/internal/_isString.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mapTo.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/merge.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/fromEventPattern.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/filter.js","webpack:///./node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/pluck.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/throttle.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/switchMapTo.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/sample.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/never.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/skip.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/catchError.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/iif.js","webpack:///./node_modules/ramda/es/values.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/refCount.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/ConnectableObservable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/multicast.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/share.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/take.js","webpack:///./node_modules/ramda/es/internal/_identity.js","webpack:///./node_modules/ramda/es/identity.js","webpack:///./node_modules/rxjs/dist/esm5/internal/operators/delay.js","webpack:///./node_modules/rxjs/dist/esm5/internal/util/isDate.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/dom/AjaxObservable.js","webpack:///./node_modules/rxjs/dist/esm5/internal/observable/dom/ajax.js"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","TypeError","pop","push","__values","o","m","__read","r","ar","error","__spread","concat","__spreadArrays","il","k","a","j","jl","__await","__asyncGenerator","asyncIterator","q","resume","fulfill","settle","shift","__asyncValues","Subscriber","_super","destinationOrNext","complete","_this","syncErrorValue","syncErrorThrown","syncErrorThrowable","isStopped","destination","add","SafeSubscriber","subscriber","_next","err","_error","_complete","unsubscribe","closed","_unsubscribeAndRecycle","_parentOrParents","_parentSubscriber","observerOrNext","context","bind","_context","useDeprecatedSynchronousErrorHandling","__tryOrSetError","__tryOrUnsub","wrappedComplete","fn","parent","Error","_unsubscribe","Deferred","promise","asyncIteratorFrom","source","deferreds","values","hasError","completed","subs","_a","subscribe","undefined","coroutine","Observable","_isScalar","_subscribe","lift","operator","observable","sink","nextOrObserver","rxSubscriber","toSubscriber","config","_trySubscribe","observer","closed_1","canReportError","console","warn","forEach","promiseCtor","getPromiseCtor","subscription","pipe","operations","_i","toPromise","x","UnsubscriptionError","UnsubscriptionErrorImpl","errors","message","map","toString","join","name","Subscription","_subscriptions","empty","remove","index","isFunction","flattenUnsubscriptionErrors","isArray","len","sub","isObject","teardown","EMPTY","tmp","indexOf","subscriptions","subscriptionIndex","splice","reduce","errs","project","MapOperator","MapSubscriber","count","subscribeToResult","outerSubscriber","outerValue","outerIndex","innerSubscriber","OuterSubscriber","notifyNext","innerValue","innerIndex","innerSub","notifyError","notifyComplete","_enable_super_gross_mode_that_will_cause_bad_things","stack","log","__window","window","__self","self","WorkerGlobalScope","_root","global","noop","ObjectUnsubscribedError","ObjectUnsubscribedErrorImpl","_isPlaceholder","_curry1","f1","hostReportError","setTimeout","isScheduler","schedule","SubjectSubscriber","Subject","observers","thrownError","subject","AnonymousSubject","copy","slice","asObservable","InnerSubscriber","Math","random","switchMap","resultSelector","ii","SwitchMapOperator","SwitchMapSubscriber","_innerSub","innerSubscription","scheduleArray","input","scheduler","fromArray","scheduled","isInteropObservable","scheduleObservable","isPromise","schedulePromise","isArrayLike","isIterable","return","scheduleIterable","scheduleAsyncIterable","from","subscribeTo","Scheduler","SchedulerAction","now","work","delay","state","Date","AsyncScheduler","delegate","actions","active","flush","action","execute","AsyncAction","pending","id","recycleAsyncId","requestAsyncId","setInterval","clearInterval","_execute","errored","errorValue","Action","of","args","NotificationKind","dispatch","Notification","kind","hasValue","observe","do","accept","toObservable","createNext","undefinedValueNotification","createError","createComplete","completeNotification","fns","pipeFromArray","prev","distinctUntilChanged","compare","keySelector","DistinctUntilChangedOperator","DistinctUntilChangedSubscriber","hasKey","key","SubjectSubscription","subscriberIndex","identity","subscribeToArray","array","async","subscribeToAsyncIterable","asyncIterable","asyncIterable_1","asyncIterable_1_1","e_1","e_1_1","_b","process","catch","obj","obs","iterable","item","MergeMapOperator","concurrent","Number","POSITIVE_INFINITY","MergeMapSubscriber","hasCompleted","buffer","_tryNext","ish","mergeAll","mergeMap","observeOn","ObserveOnOperator","ObserveOnSubscriber","arg","notification","scheduleMessage","ObserveOnMessage","factory","modules","installedModules","__webpack_require__","moduleId","exports","module","l","c","getter","defineProperty","enumerable","get","toStringTag","mode","__esModule","ns","object","property","element","selectedText","nodeName","focus","isReadOnly","hasAttribute","setAttribute","select","setSelectionRange","removeAttribute","selection","getSelection","range","document","createRange","selectNodeContents","removeAllRanges","addRange","E","on","callback","ctx","once","listener","off","emit","data","evtArr","evts","liveEvents","TinyEmitter","is","target","type","string","node","addEventListener","destroy","removeEventListener","listenNode","nodeList","listenNodeList","selector","listenSelector","HTMLElement","nodeType","String","closest","_delegate","useCapture","listenerFn","delegateTarget","elements","querySelectorAll","Element","matches","proto","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","parentNode","__webpack_exports__","src_select","select_default","_typeof","_createClass","defineProperties","props","descriptor","configurable","writable","Constructor","protoProps","staticProps","clipboard_action","ClipboardAction","options","instance","_classCallCheck","resolveOptions","initSelection","container","emitter","text","trigger","selectFake","selectTarget","isRTL","documentElement","getAttribute","removeFake","fakeHandlerCallback","fakeHandler","fakeElem","createElement","style","fontSize","border","padding","margin","position","yPosition","pageYOffset","scrollTop","top","appendChild","copyText","removeChild","succeeded","execCommand","handleResult","clearSelection","activeElement","blur","set","_action","_target","tiny_emitter","tiny_emitter_default","listen","listen_default","clipboard_typeof","clipboard_createClass","clipboard_Clipboard","_Emitter","Clipboard","clipboard_classCallCheck","ReferenceError","_possibleConstructorReturn","getPrototypeOf","listenClick","subClass","superClass","_inherits","defaultAction","defaultTarget","defaultText","_this2","onClick","currentTarget","clipboardAction","getAttributeValue","querySelector","support","queryCommandSupported","suffix","attribute","NONE","combineLatest","observables","CombineLatestOperator","CombineLatestSubscriber","toRespond","unused","oldVal","_tryResultSelector","Function","MapShim","Map","getIndex","arr","some","entry","class_1","__entries__","delete","entries","has","clear","isBrowser","global$1","requestAnimationFrame$1","requestAnimationFrame","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","leadingCall","trailingCall","lastCallTime","resolvePending","proxy","timeoutCallback","timeStamp","throttle","addObserver","connect_","removeObserver","disconnect_","updateObservers_","activeObservers","filter","gatherActive","hasActive","broadcastActive","attributes","childList","characterData","subtree","disconnect","propertyName","getInstance","instance_","defineConfigurable","keys","getWindowOf","ownerDocument","defaultView","emptyRect","createRectInit","toFloat","parseFloat","getBordersSize","styles","positions","size","getHTMLElementContentRect","clientWidth","clientHeight","getComputedStyle","paddings","positions_1","getPaddings","horizPad","left","right","vertPad","bottom","width","height","boxSizing","round","isDocumentElement","vertScrollbar","horizScrollbar","abs","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","rect","broadcastRect","ResizeObserverEntry","rectInit","Constr","contentRect","DOMRectReadOnly","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","unobserve","clearActive","observation","WeakMap","ResizeObserver","method","matchHtmlRegExp","escape","str","match","exec","html","lastIndex","charCodeAt","substring","defer","observableFactory","QueueAction","queue","QueueScheduler","ReplaySubject","bufferSize","windowTime","_events","_infiniteTimeWindow","_bufferSize","_windowTime","nextInfiniteTimeWindow","nextTimeWindow","ReplayEvent","_getNow","_trimBufferThenGetEvents","eventsCount","spliceCount","time","max","_has","prop","hasEnumBug","propertyIsEnumerable","nonEnumerableProps","hasArgsEnumBug","contains","list","idx","nIdx","ks","checkArgsLength","tap","DoOperator","TapSubscriber","_tapNext","_tapError","_tapComplete","scan","accumulator","seed","hasSeed","ScanOperator","ScanSubscriber","_state","_hasState","finalize","FinallyOperator","FinallySubscriber","AnimationFrameAction","cancelAnimationFrame","animationFrame","AnimationFrameScheduler","shareReplay","configOrBufferSize","refCount","_c","useRefCount","isComplete","shareReplayOperator","distinctUntilKeyChanged","withLatestFrom","WithLatestFromOperator","WithLatestFromSubscriber","found","_tryProject","bufferCount","startBufferEvery","BufferCountOperator","subscriberClass","BufferSkipCountSubscriber","BufferCountSubscriber","buffers","concatAll","startWith","split","reverse","fromEvent","eventName","setupSubscription","sourceObj","handler","isEventTarget","source_1","isJQueryStyleEventEmitter","source_2","addListener","removeListener","isNodeStyleEventEmitter","source_3","mapTo","MapToOperator","MapToSubscriber","merge","last","fromEventPattern","addHandler","removeHandler","retValue","predicate","FilterOperator","FilterSubscriber","BehaviorSubject","_value","getValue","pluck","properties","currentProp","defaultThrottleConfig","leading","trailing","durationSelector","ThrottleOperator","ThrottleSubscriber","_leading","_trailing","_sendValue","_hasValue","_throttled","send","duration","tryDurationSelector","throttlingDone","switchMapTo","innerObservable","sample","notifier","SampleOperator","sampleSubscriber","SampleSubscriber","emitValue","NEVER","skip","SkipOperator","total","SkipSubscriber","catchError","CatchOperator","caught","CatchSubscriber","err2","debounceTime","dueTime","DebounceTimeOperator","DebounceTimeSubscriber","debouncedSubscription","lastValue","clearDebounce","dispatchNext","debouncedNext","iif","condition","trueResult","falseResult","vals","RefCountOperator","connectableProto","connectable","_refCount","refCounter","connection","connect","RefCountSubscriber","sharedConnection","_connection","ConnectableObservable","subjectFactory","_isComplete","getSubject","_subject","connectableObservableDescriptor","ConnectableSubscriber","MulticastOperator","shareSubjectFactory","share","subjectOrSubjectFactory","ArgumentOutOfRangeError","ArgumentOutOfRangeErrorImpl","take","TakeOperator","TakeSubscriber","_identity","delayFor","isNaN","DelayOperator","DelaySubscriber","delay_1","_schedule","scheduleNotification","DelayMessage","ajaxGet","url","headers","ajaxPost","ajaxDelete","ajaxPut","ajaxPatch","mapResponse","response","ajaxGetJSON","responseType","AjaxObservable","urlOrRequest","request","createXHR","crossDomain","root","XMLHttpRequest","XDomainRequest","getCORSRequest","progId","progIds","ActiveXObject","getXMLHttpRequest","withCredentials","timeout","post","put","patch","getJSON","AjaxSubscriber","getHeader","FormData","serializeBody","xhr","AjaxResponse","user","password","setupEvents","open","setHeaders","contentType","splitIndex","encodeURIComponent","JSON","stringify","setRequestHeader","headerName","toLowerCase","progressSubscriber","xhrTimeout","AjaxTimeoutError","ontimeout","upload","xhrProgress_1","xhrError_1","onprogress","AjaxError","onerror","xhrReadyStateChange","xhrLoad","readyState","status_1","status","responseText","onreadystatechange","onload","abort","originalEvent","parseXhrResponse","AjaxErrorImpl","parse","parseJson","responseXML","AjaxTimeoutErrorImpl","ajax"],"mappings":"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","file":"assets/javascripts/vendor.8caa27b7.min.js","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __extends } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destinationOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this.syncErrorValue = null;\n _this.syncErrorThrown = false;\n _this.syncErrorThrowable = false;\n _this.isStopped = false;\n switch (arguments.length) {\n case 0:\n _this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n _this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n _this.destination = destinationOrNext;\n destinationOrNext.add(_this);\n }\n else {\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext);\n }\n break;\n }\n default:\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);\n break;\n }\n return _this;\n }\n Subscriber.prototype[rxSubscriberSymbol] = function () { return this; };\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _parentOrParents = this._parentOrParents;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this._parentSubscriber = _parentSubscriber;\n var next;\n var context = _this;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n _this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = _this.unsubscribe.bind(_this);\n }\n }\n _this._context = context;\n _this._next = next;\n _this._error = error;\n _this._complete = complete;\n return _this;\n }\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n var useDeprecatedSynchronousErrorHandling = config.useDeprecatedSynchronousErrorHandling;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._complete) {\n var wrappedComplete = function () { return _this._complete.call(_this._context); };\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n }\n };\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n };\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n };\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\n//# sourceMappingURL=Subscriber.js.map","var Deferred = (function () {\n function Deferred() {\n var _this = this;\n this.resolve = null;\n this.reject = null;\n this.promise = new Promise(function (a, b) {\n _this.resolve = a;\n _this.reject = b;\n });\n }\n return Deferred;\n}());\nexport { Deferred };\n//# sourceMappingURL=deferred.js.map","import { __asyncGenerator, __await, __generator } from \"tslib\";\nimport { Deferred } from './util/deferred';\nexport function asyncIteratorFrom(source) {\n return coroutine(source);\n}\nfunction coroutine(source) {\n return __asyncGenerator(this, arguments, function coroutine_1() {\n var deferreds, values, hasError, error, completed, subs, d, result, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n deferreds = [];\n values = [];\n hasError = false;\n error = null;\n completed = false;\n subs = source.subscribe({\n next: function (value) {\n if (deferreds.length > 0) {\n deferreds.shift().resolve({ value: value, done: false });\n }\n else {\n values.push(value);\n }\n },\n error: function (err) {\n hasError = true;\n error = err;\n while (deferreds.length > 0) {\n deferreds.shift().reject(err);\n }\n },\n complete: function () {\n completed = true;\n while (deferreds.length > 0) {\n deferreds.shift().resolve({ value: undefined, done: true });\n }\n },\n });\n _a.label = 1;\n case 1:\n _a.trys.push([1, 16, 17, 18]);\n _a.label = 2;\n case 2:\n if (!true) return [3, 15];\n if (!(values.length > 0)) return [3, 5];\n return [4, __await(values.shift())];\n case 3: return [4, _a.sent()];\n case 4:\n _a.sent();\n return [3, 14];\n case 5:\n if (!completed) return [3, 7];\n return [4, __await(void 0)];\n case 6: return [2, _a.sent()];\n case 7:\n if (!hasError) return [3, 8];\n throw error;\n case 8:\n d = new Deferred();\n deferreds.push(d);\n return [4, __await(d.promise)];\n case 9:\n result = _a.sent();\n if (!result.done) return [3, 11];\n return [4, __await(void 0)];\n case 10: return [2, _a.sent()];\n case 11: return [4, __await(result.value)];\n case 12: return [4, _a.sent()];\n case 13:\n _a.sent();\n _a.label = 14;\n case 14: return [3, 2];\n case 15: return [3, 18];\n case 16:\n err_1 = _a.sent();\n throw err_1;\n case 17:\n subs.unsubscribe();\n return [7];\n case 18: return [2];\n }\n });\n });\n}\n//# sourceMappingURL=asyncIteratorFrom.js.map","import { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { asyncIteratorFrom } from './asyncIteratorFrom';\nvar Observable = (function () {\n function Observable(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var operator = this.operator;\n var sink = toSubscriber(observerOrNext, error, complete);\n if (operator) {\n sink.add(operator.call(sink, this.source));\n }\n else {\n sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError(sink)) {\n sink.error(err);\n }\n else {\n console.warn(err);\n }\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscription;\n subscription = _this.subscribe(function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var source = this.source;\n return source && source.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n if (operations.length === 0) {\n return this;\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n(function () {\n if (Symbol && Symbol.asyncIterator) {\n Observable.prototype[Symbol.asyncIterator] = function () {\n return asyncIteratorFrom(this);\n };\n }\n})();\n//# sourceMappingURL=Observable.js.map","import { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nexport function toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n return new Subscriber(nextOrObserver, error, complete);\n}\n//# sourceMappingURL=toSubscriber.js.map","import { Subscriber } from '../Subscriber';\nexport function canReportError(observer) {\n while (observer) {\n var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped;\n if (closed_1 || isStopped) {\n return false;\n }\n else if (destination && destination instanceof Subscriber) {\n observer = destination;\n }\n else {\n observer = null;\n }\n }\n return true;\n}\n//# sourceMappingURL=canReportError.js.map","var UnsubscriptionErrorImpl = (function () {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ') : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n})();\nexport var UnsubscriptionError = UnsubscriptionErrorImpl;\n//# sourceMappingURL=UnsubscriptionError.js.map","import { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nvar Subscription = (function () {\n function Subscription(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._unsubscribe = unsubscribe;\n }\n }\n Subscription.prototype.unsubscribe = function () {\n var errors;\n if (this.closed) {\n return;\n }\n var _a = this, _parentOrParents = _a._parentOrParents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (var index = 0; index < _parentOrParents.length; ++index) {\n var parent_1 = _parentOrParents[index];\n parent_1.remove(this);\n }\n }\n if (isFunction(_unsubscribe)) {\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (isArray(_subscriptions)) {\n var index = -1;\n var len = _subscriptions.length;\n while (++index < len) {\n var sub = _subscriptions[index];\n if (isObject(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n };\n Subscription.prototype.add = function (teardown) {\n var subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n var tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n var _parentOrParents = subscription._parentOrParents;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n var subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n };\n Subscription.prototype.remove = function (subscription) {\n var subscriptions = this._subscriptions;\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n Subscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n return Subscription;\n}());\nexport { Subscription };\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError) ? err.errors : err); }, []);\n}\n//# sourceMappingURL=Subscription.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nvar MapOperator = (function () {\n function MapOperator(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n MapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n };\n return MapOperator;\n}());\nexport { MapOperator };\nvar MapSubscriber = (function (_super) {\n __extends(MapSubscriber, _super);\n function MapSubscriber(destination, project, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.count = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n MapSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return MapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=map.js.map","import { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeTo } from './subscribeTo';\nimport { Observable } from '../Observable';\nexport function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, innerSubscriber) {\n if (innerSubscriber === void 0) { innerSubscriber = new InnerSubscriber(outerSubscriber, outerValue, outerIndex); }\n if (innerSubscriber.closed) {\n return undefined;\n }\n if (result instanceof Observable) {\n return result.subscribe(innerSubscriber);\n }\n return subscribeTo(result)(innerSubscriber);\n}\n//# sourceMappingURL=subscribeToResult.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from './Subscriber';\nvar OuterSubscriber = (function (_super) {\n __extends(OuterSubscriber, _super);\n function OuterSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n OuterSubscriber.prototype.notifyError = function (error, innerSub) {\n this.destination.error(error);\n };\n OuterSubscriber.prototype.notifyComplete = function (innerSub) {\n this.destination.complete();\n };\n return OuterSubscriber;\n}(Subscriber));\nexport { OuterSubscriber };\n//# sourceMappingURL=OuterSubscriber.js.map","var _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport var config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n var error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n//# sourceMappingURL=config.js.map","var __window = typeof window !== 'undefined' && window;\nvar __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self;\nvar __global = typeof global !== 'undefined' && global;\nvar _root = __window || __global || __self;\n(function () {\n if (!_root) {\n throw new Error('RxJS could not find any global context (window, self, global)');\n }\n})();\nexport { _root as root };\n//# sourceMappingURL=root.js.map","export function isFunction(x) {\n return typeof x === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","export var observable = (function () { return typeof Symbol === 'function' && Symbol.observable || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","import { Observable } from '../Observable';\nexport var EMPTY = new Observable(function (subscriber) { return subscriber.complete(); });\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.js.map","var ObjectUnsubscribedErrorImpl = (function () {\n function ObjectUnsubscribedErrorImpl() {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n }\n ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\n return ObjectUnsubscribedErrorImpl;\n})();\nexport var ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","export function hostReportError(err) {\n setTimeout(function () { throw err; }, 0);\n}\n//# sourceMappingURL=hostReportError.js.map","export var isArray = (function () { return Array.isArray || (function (x) { return x && typeof x.length === 'number'; }); })();\n//# sourceMappingURL=isArray.js.map","export function isScheduler(value) {\n return value && typeof value.schedule === 'function';\n}\n//# sourceMappingURL=isScheduler.js.map","import { __extends } from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nvar SubjectSubscriber = (function (_super) {\n __extends(SubjectSubscriber, _super);\n function SubjectSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n return _this;\n }\n return SubjectSubscriber;\n}(Subscriber));\nexport { SubjectSubscriber };\nvar Subject = (function (_super) {\n __extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.observers = [];\n _this.closed = false;\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype[rxSubscriberSymbol] = function () {\n return new SubjectSubscriber(this);\n };\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype.next = function (value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n };\n Subject.prototype.error = function (err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n };\n Subject.prototype.complete = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n };\n Subject.prototype._trySubscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return _super.prototype._trySubscribe.call(this, subscriber);\n }\n };\n Subject.prototype._subscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = (function (_super) {\n __extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var destination = this.destination;\n if (destination && destination.next) {\n destination.next(value);\n }\n };\n AnonymousSubject.prototype.error = function (err) {\n var destination = this.destination;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n };\n AnonymousSubject.prototype.complete = function () {\n var destination = this.destination;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var source = this.source;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription.EMPTY;\n }\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = getSymbolIterator();\nexport var $$iterator = iterator;\n//# sourceMappingURL=iterator.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from './Subscriber';\nvar InnerSubscriber = (function (_super) {\n __extends(InnerSubscriber, _super);\n function InnerSubscriber(parent, outerValue, outerIndex) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.outerValue = outerValue;\n _this.outerIndex = outerIndex;\n _this.index = 0;\n return _this;\n }\n InnerSubscriber.prototype._next = function (value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n };\n InnerSubscriber.prototype._error = function (error) {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n };\n InnerSubscriber.prototype._complete = function () {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n };\n return InnerSubscriber;\n}(Subscriber));\nexport { InnerSubscriber };\n//# sourceMappingURL=InnerSubscriber.js.map","export var rxSubscriber = (function () {\n return typeof Symbol === 'function'\n ? Symbol('rxSubscriber')\n : '@@rxSubscriber_' + Math.random();\n})();\nexport var $$rxSubscriber = rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map","import { __extends } from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function switchMap(project, resultSelector) {\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(switchMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };\n }\n return function (source) { return source.lift(new SwitchMapOperator(project)); };\n}\nvar SwitchMapOperator = (function () {\n function SwitchMapOperator(project) {\n this.project = project;\n }\n SwitchMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));\n };\n return SwitchMapOperator;\n}());\nvar SwitchMapSubscriber = (function (_super) {\n __extends(SwitchMapSubscriber, _super);\n function SwitchMapSubscriber(destination, project) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.index = 0;\n return _this;\n }\n SwitchMapSubscriber.prototype._next = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (error) {\n this.destination.error(error);\n return;\n }\n this._innerSub(result, value, index);\n };\n SwitchMapSubscriber.prototype._innerSub = function (result, value, index) {\n var innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n var innerSubscriber = new InnerSubscriber(this, value, index);\n var destination = this.destination;\n destination.add(innerSubscriber);\n this.innerSubscription = subscribeToResult(this, result, undefined, undefined, innerSubscriber);\n if (this.innerSubscription !== innerSubscriber) {\n destination.add(this.innerSubscription);\n }\n };\n SwitchMapSubscriber.prototype._complete = function () {\n var innerSubscription = this.innerSubscription;\n if (!innerSubscription || innerSubscription.closed) {\n _super.prototype._complete.call(this);\n }\n this.unsubscribe();\n };\n SwitchMapSubscriber.prototype._unsubscribe = function () {\n this.innerSubscription = null;\n };\n SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var destination = this.destination;\n destination.remove(innerSub);\n this.innerSubscription = null;\n if (this.isStopped) {\n _super.prototype._complete.call(this);\n }\n };\n SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n return SwitchMapSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=switchMap.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function scheduleArray(input, scheduler) {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n var i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleArray.js.map","import { Observable } from '../Observable';\nimport { subscribeToArray } from '../util/subscribeToArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function fromArray(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToArray(input));\n }\n else {\n return scheduleArray(input, scheduler);\n }\n}\n//# sourceMappingURL=fromArray.js.map","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n else if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n else if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n else if (isIterable(input) || typeof input === 'string') {\n return scheduleIterable(input, scheduler);\n }\n else if (Symbol && Symbol.asyncIterator && typeof input[Symbol.asyncIterator] === 'function') {\n return scheduleAsyncIterable(input, scheduler);\n }\n }\n throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n//# sourceMappingURL=scheduled.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nexport function isInteropObservable(input) {\n return input && typeof input[Symbol_observable] === 'function';\n}\n//# sourceMappingURL=isInteropObservable.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function scheduleObservable(input, scheduler) {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n sub.add(scheduler.schedule(function () {\n var observable = input[Symbol_observable]();\n sub.add(observable.subscribe({\n next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); },\n error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); },\n complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); },\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleObservable.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function schedulePromise(input, scheduler) {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n sub.add(scheduler.schedule(function () { return input.then(function (value) {\n sub.add(scheduler.schedule(function () {\n subscriber.next(value);\n sub.add(scheduler.schedule(function () { return subscriber.complete(); }));\n }));\n }, function (err) {\n sub.add(scheduler.schedule(function () { return subscriber.error(err); }));\n }); }));\n return sub;\n });\n}\n//# sourceMappingURL=schedulePromise.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function isIterable(input) {\n return input && typeof input[Symbol_iterator] === 'function';\n}\n//# sourceMappingURL=isIterable.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function scheduleIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n var iterator;\n sub.add(function () {\n if (iterator && typeof iterator.return === 'function') {\n iterator.return();\n }\n });\n sub.add(scheduler.schedule(function () {\n iterator = input[Symbol_iterator]();\n sub.add(scheduler.schedule(function () {\n if (subscriber.closed) {\n return;\n }\n var value;\n var done;\n try {\n var result = iterator.next();\n value = result.value;\n done = result.done;\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n this.schedule();\n }\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleIterable.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function scheduleAsyncIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n sub.add(scheduler.schedule(function () {\n var iterator = input[Symbol.asyncIterator]();\n sub.add(scheduler.schedule(function () {\n var _this = this;\n iterator.next().then(function (result) {\n if (result.done) {\n subscriber.complete();\n }\n else {\n subscriber.next(result.value);\n _this.schedule();\n }\n });\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleAsyncIterable.js.map","import { Observable } from '../Observable';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { scheduled } from '../scheduled/scheduled';\nexport function from(input, scheduler) {\n if (!scheduler) {\n if (input instanceof Observable) {\n return input;\n }\n return new Observable(subscribeTo(input));\n }\n else {\n return scheduled(input, scheduler);\n }\n}\n//# sourceMappingURL=from.js.map","var Scheduler = (function () {\n function Scheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n this.SchedulerAction = SchedulerAction;\n this.now = now;\n }\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n return new this.SchedulerAction(this, work).schedule(state, delay);\n };\n Scheduler.now = function () { return Date.now(); };\n return Scheduler;\n}());\nexport { Scheduler };\n//# sourceMappingURL=Scheduler.js.map","import { __extends } from \"tslib\";\nimport { Scheduler } from '../Scheduler';\nvar AsyncScheduler = (function (_super) {\n __extends(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n var _this = _super.call(this, SchedulerAction, function () {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) {\n return AsyncScheduler.delegate.now();\n }\n else {\n return now();\n }\n }) || this;\n _this.actions = [];\n _this.active = false;\n _this.scheduled = undefined;\n return _this;\n }\n AsyncScheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.schedule(work, delay, state);\n }\n else {\n return _super.prototype.schedule.call(this, work, delay, state);\n }\n };\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this.active) {\n actions.push(action);\n return;\n }\n var error;\n this.active = true;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift());\n this.active = false;\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(Scheduler));\nexport { AsyncScheduler };\n//# sourceMappingURL=AsyncScheduler.js.map","import { __extends } from \"tslib\";\nimport { Action } from './Action';\nvar AsyncAction = (function (_super) {\n __extends(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (this.closed) {\n return this;\n }\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n return setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && this.delay === delay && this.pending === false) {\n return id;\n }\n clearInterval(id);\n return undefined;\n };\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, delay) {\n var errored = false;\n var errorValue = undefined;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = !!e && e || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype._unsubscribe = function () {\n var id = this.id;\n var scheduler = this.scheduler;\n var actions = scheduler.actions;\n var index = actions.indexOf(this);\n this.work = null;\n this.state = null;\n this.pending = false;\n this.scheduler = null;\n if (index !== -1) {\n actions.splice(index, 1);\n }\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n };\n return AsyncAction;\n}(Action));\nexport { AsyncAction };\n//# sourceMappingURL=AsyncAction.js.map","import { __extends } from \"tslib\";\nimport { Subscription } from '../Subscription';\nvar Action = (function (_super) {\n __extends(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n return this;\n };\n return Action;\n}(Subscription));\nexport { Action };\n//# sourceMappingURL=Action.js.map","import { isScheduler } from '../util/isScheduler';\nimport { fromArray } from './fromArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function of() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = args[args.length - 1];\n if (isScheduler(scheduler)) {\n args.pop();\n return scheduleArray(args, scheduler);\n }\n else {\n return fromArray(args);\n }\n}\n//# sourceMappingURL=of.js.map","import { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport var empty = {\n closed: true,\n next: function (value) { },\n error: function (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n },\n complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map","import { EMPTY } from './observable/empty';\nimport { of } from './observable/of';\nimport { throwError } from './observable/throwError';\nexport var NotificationKind;\n(function (NotificationKind) {\n NotificationKind[\"NEXT\"] = \"N\";\n NotificationKind[\"ERROR\"] = \"E\";\n NotificationKind[\"COMPLETE\"] = \"C\";\n})(NotificationKind || (NotificationKind = {}));\nvar Notification = (function () {\n function Notification(kind, value, error) {\n this.kind = kind;\n this.value = value;\n this.error = error;\n this.hasValue = kind === 'N';\n }\n Notification.prototype.observe = function (observer) {\n switch (this.kind) {\n case 'N':\n return observer.next && observer.next(this.value);\n case 'E':\n return observer.error && observer.error(this.error);\n case 'C':\n return observer.complete && observer.complete();\n }\n };\n Notification.prototype.do = function (next, error, complete) {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return next && next(this.value);\n case 'E':\n return error && error(this.error);\n case 'C':\n return complete && complete();\n }\n };\n Notification.prototype.accept = function (nextOrObserver, error, complete) {\n if (nextOrObserver && typeof nextOrObserver.next === 'function') {\n return this.observe(nextOrObserver);\n }\n else {\n return this.do(nextOrObserver, error, complete);\n }\n };\n Notification.prototype.toObservable = function () {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return of(this.value);\n case 'E':\n return throwError(this.error);\n case 'C':\n return EMPTY;\n }\n throw new Error('unexpected notification kind value');\n };\n Notification.createNext = function (value) {\n if (typeof value !== 'undefined') {\n return new Notification('N', value);\n }\n return Notification.undefinedValueNotification;\n };\n Notification.createError = function (err) {\n return new Notification('E', undefined, err);\n };\n Notification.createComplete = function () {\n return Notification.completeNotification;\n };\n Notification.completeNotification = new Notification('C');\n Notification.undefinedValueNotification = new Notification('N', undefined);\n return Notification;\n}());\nexport { Notification };\n//# sourceMappingURL=Notification.js.map","import { Observable } from '../Observable';\nexport function throwError(error, scheduler) {\n if (!scheduler) {\n return new Observable(function (subscriber) { return subscriber.error(error); });\n }\n else {\n return new Observable(function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); });\n }\n}\nfunction dispatch(_a) {\n var error = _a.error, subscriber = _a.subscriber;\n subscriber.error(error);\n}\n//# sourceMappingURL=throwError.js.map","import { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function distinctUntilChanged(compare, keySelector) {\n return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); };\n}\nvar DistinctUntilChangedOperator = (function () {\n function DistinctUntilChangedOperator(compare, keySelector) {\n this.compare = compare;\n this.keySelector = keySelector;\n }\n DistinctUntilChangedOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));\n };\n return DistinctUntilChangedOperator;\n}());\nvar DistinctUntilChangedSubscriber = (function (_super) {\n __extends(DistinctUntilChangedSubscriber, _super);\n function DistinctUntilChangedSubscriber(destination, compare, keySelector) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.hasKey = false;\n if (typeof compare === 'function') {\n _this.compare = compare;\n }\n return _this;\n }\n DistinctUntilChangedSubscriber.prototype.compare = function (x, y) {\n return x === y;\n };\n DistinctUntilChangedSubscriber.prototype._next = function (value) {\n var key;\n try {\n var keySelector = this.keySelector;\n key = keySelector ? keySelector(value) : value;\n }\n catch (err) {\n return this.destination.error(err);\n }\n var result = false;\n if (this.hasKey) {\n try {\n var compare = this.compare;\n result = compare(this.key, key);\n }\n catch (err) {\n return this.destination.error(err);\n }\n }\n else {\n this.hasKey = true;\n }\n if (!result) {\n this.key = key;\n this.destination.next(value);\n }\n };\n return DistinctUntilChangedSubscriber;\n}(Subscriber));\n//# sourceMappingURL=distinctUntilChanged.js.map","export function isObject(x) {\n return x !== null && typeof x === 'object';\n}\n//# sourceMappingURL=isObject.js.map","import { __extends } from \"tslib\";\nimport { Subscription } from './Subscription';\nvar SubjectSubscription = (function (_super) {\n __extends(SubjectSubscription, _super);\n function SubjectSubscription(subject, subscriber) {\n var _this = _super.call(this) || this;\n _this.subject = subject;\n _this.subscriber = subscriber;\n _this.closed = false;\n return _this;\n }\n SubjectSubscription.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.closed = true;\n var subject = this.subject;\n var observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n var subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n };\n return SubjectSubscription;\n}(Subscription));\nexport { SubjectSubscription };\n//# sourceMappingURL=SubjectSubscription.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","export var subscribeToArray = function (array) { return function (subscriber) {\n for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n}; };\n//# sourceMappingURL=subscribeToArray.js.map","export var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map","export function isPromise(value) {\n return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n//# sourceMappingURL=isPromise.js.map","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport var async = new AsyncScheduler(AsyncAction);\n//# sourceMappingURL=async.js.map","import { __asyncValues, __awaiter, __generator } from \"tslib\";\nexport function subscribeToAsyncIterable(asyncIterable) {\n return function (subscriber) {\n process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); });\n };\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_1, _a;\n return __awaiter(this, void 0, void 0, function () {\n var value, e_1_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 11]);\n asyncIterable_1 = __asyncValues(asyncIterable);\n _b.label = 1;\n case 1: return [4, asyncIterable_1.next()];\n case 2:\n if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4];\n value = asyncIterable_1_1.value;\n subscriber.next(value);\n _b.label = 3;\n case 3: return [3, 1];\n case 4: return [3, 11];\n case 5:\n e_1_1 = _b.sent();\n e_1 = { error: e_1_1 };\n return [3, 11];\n case 6:\n _b.trys.push([6, , 9, 10]);\n if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8];\n return [4, _a.call(asyncIterable_1)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [3, 10];\n case 9:\n if (e_1) throw e_1.error;\n return [7];\n case 10: return [7];\n case 11:\n subscriber.complete();\n return [2];\n }\n });\n });\n}\n//# sourceMappingURL=subscribeToAsyncIterable.js.map","import { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { subscribeToAsyncIterable } from './subscribeToAsyncIterable';\nexport var subscribeTo = function (result) {\n if (!!result && typeof result[Symbol_observable] === 'function') {\n return subscribeToObservable(result);\n }\n else if (isArrayLike(result)) {\n return subscribeToArray(result);\n }\n else if (isPromise(result)) {\n return subscribeToPromise(result);\n }\n else if (!!result && typeof result[Symbol_iterator] === 'function') {\n return subscribeToIterable(result);\n }\n else if (Symbol && Symbol.asyncIterator &&\n !!result && typeof result[Symbol.asyncIterator] === 'function') {\n return subscribeToAsyncIterable(result);\n }\n else {\n var value = isObject(result) ? 'an invalid object' : \"'\" + result + \"'\";\n var msg = \"You provided \" + value + \" where a stream was expected.\"\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n//# sourceMappingURL=subscribeTo.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeToObservable = function (obj) { return function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (typeof obs.subscribe !== 'function') {\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n }\n else {\n return obs.subscribe(subscriber);\n }\n}; };\n//# sourceMappingURL=subscribeToObservable.js.map","import { hostReportError } from './hostReportError';\nexport var subscribeToPromise = function (promise) { return function (subscriber) {\n promise.then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, hostReportError);\n return subscriber;\n}; };\n//# sourceMappingURL=subscribeToPromise.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport var subscribeToIterable = function (iterable) { return function (subscriber) {\n var iterator = iterable[Symbol_iterator]();\n do {\n var item = iterator.next();\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n if (typeof iterator.return === 'function') {\n subscriber.add(function () {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n return subscriber;\n}; };\n//# sourceMappingURL=subscribeToIterable.js.map","import { __extends } from \"tslib\";\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function mergeMap(project, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(mergeMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); };\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); };\n}\nvar MergeMapOperator = (function () {\n function MergeMapOperator(project, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n this.project = project;\n this.concurrent = concurrent;\n }\n MergeMapOperator.prototype.call = function (observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n };\n return MergeMapOperator;\n}());\nexport { MergeMapOperator };\nvar MergeMapSubscriber = (function (_super) {\n __extends(MergeMapSubscriber, _super);\n function MergeMapSubscriber(destination, project, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.concurrent = concurrent;\n _this.hasCompleted = false;\n _this.buffer = [];\n _this.active = 0;\n _this.index = 0;\n return _this;\n }\n MergeMapSubscriber.prototype._next = function (value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n }\n else {\n this.buffer.push(value);\n }\n };\n MergeMapSubscriber.prototype._tryNext = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result, value, index);\n };\n MergeMapSubscriber.prototype._innerSub = function (ish, value, index) {\n var innerSubscriber = new InnerSubscriber(this, value, index);\n var destination = this.destination;\n destination.add(innerSubscriber);\n var innerSubscription = subscribeToResult(this, ish, undefined, undefined, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n };\n MergeMapSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n MergeMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var buffer = this.buffer;\n this.remove(innerSub);\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n };\n return MergeMapSubscriber;\n}(OuterSubscriber));\nexport { MergeMapSubscriber };\n//# sourceMappingURL=mergeMap.js.map","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function observeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return function observeOnOperatorFunction(source) {\n return source.lift(new ObserveOnOperator(scheduler, delay));\n };\n}\nvar ObserveOnOperator = (function () {\n function ObserveOnOperator(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n this.scheduler = scheduler;\n this.delay = delay;\n }\n ObserveOnOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n };\n return ObserveOnOperator;\n}());\nexport { ObserveOnOperator };\nvar ObserveOnSubscriber = (function (_super) {\n __extends(ObserveOnSubscriber, _super);\n function ObserveOnSubscriber(destination, scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n var _this = _super.call(this, destination) || this;\n _this.scheduler = scheduler;\n _this.delay = delay;\n return _this;\n }\n ObserveOnSubscriber.dispatch = function (arg) {\n var notification = arg.notification, destination = arg.destination;\n notification.observe(destination);\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype.scheduleMessage = function (notification) {\n var destination = this.destination;\n destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));\n };\n ObserveOnSubscriber.prototype._next = function (value) {\n this.scheduleMessage(Notification.createNext(value));\n };\n ObserveOnSubscriber.prototype._error = function (err) {\n this.scheduleMessage(Notification.createError(err));\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype._complete = function () {\n this.scheduleMessage(Notification.createComplete());\n this.unsubscribe();\n };\n return ObserveOnSubscriber;\n}(Subscriber));\nexport { ObserveOnSubscriber };\nvar ObserveOnMessage = (function () {\n function ObserveOnMessage(notification, destination) {\n this.notification = notification;\n this.destination = destination;\n }\n return ObserveOnMessage;\n}());\nexport { ObserveOnMessage };\n//# sourceMappingURL=observeOn.js.map","/*!\n * clipboard.js v2.0.6\n * https://clipboardjs.com/\n * \n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 6);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar is = __webpack_require__(3);\nvar delegate = __webpack_require__(4);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar closest = __webpack_require__(5);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(0);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n\n// CONCATENATED MODULE: ./src/clipboard-action.js\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\n/**\n * Inner class which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n */\n\nvar clipboard_action_ClipboardAction = function () {\n /**\n * @param {Object} options\n */\n function ClipboardAction(options) {\n _classCallCheck(this, ClipboardAction);\n\n this.resolveOptions(options);\n this.initSelection();\n }\n\n /**\n * Defines base properties passed from constructor.\n * @param {Object} options\n */\n\n\n _createClass(ClipboardAction, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = options.action;\n this.container = options.container;\n this.emitter = options.emitter;\n this.target = options.target;\n this.text = options.text;\n this.trigger = options.trigger;\n\n this.selectedText = '';\n }\n\n /**\n * Decides which selection strategy is going to be applied based\n * on the existence of `text` and `target` properties.\n */\n\n }, {\n key: 'initSelection',\n value: function initSelection() {\n if (this.text) {\n this.selectFake();\n } else if (this.target) {\n this.selectTarget();\n }\n }\n\n /**\n * Creates a fake textarea element, sets its value from `text` property,\n * and makes a selection on it.\n */\n\n }, {\n key: 'selectFake',\n value: function selectFake() {\n var _this = this;\n\n var isRTL = document.documentElement.getAttribute('dir') == 'rtl';\n\n this.removeFake();\n\n this.fakeHandlerCallback = function () {\n return _this.removeFake();\n };\n this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;\n\n this.fakeElem = document.createElement('textarea');\n // Prevent zooming on iOS\n this.fakeElem.style.fontSize = '12pt';\n // Reset box model\n this.fakeElem.style.border = '0';\n this.fakeElem.style.padding = '0';\n this.fakeElem.style.margin = '0';\n // Move element out of screen horizontally\n this.fakeElem.style.position = 'absolute';\n this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';\n // Move element to the same position vertically\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n this.fakeElem.style.top = yPosition + 'px';\n\n this.fakeElem.setAttribute('readonly', '');\n this.fakeElem.value = this.text;\n\n this.container.appendChild(this.fakeElem);\n\n this.selectedText = select_default()(this.fakeElem);\n this.copyText();\n }\n\n /**\n * Only removes the fake element after another click event, that way\n * a user can hit `Ctrl+C` to copy because selection still exists.\n */\n\n }, {\n key: 'removeFake',\n value: function removeFake() {\n if (this.fakeHandler) {\n this.container.removeEventListener('click', this.fakeHandlerCallback);\n this.fakeHandler = null;\n this.fakeHandlerCallback = null;\n }\n\n if (this.fakeElem) {\n this.container.removeChild(this.fakeElem);\n this.fakeElem = null;\n }\n }\n\n /**\n * Selects the content from element passed on `target` property.\n */\n\n }, {\n key: 'selectTarget',\n value: function selectTarget() {\n this.selectedText = select_default()(this.target);\n this.copyText();\n }\n\n /**\n * Executes the copy operation based on the current selection.\n */\n\n }, {\n key: 'copyText',\n value: function copyText() {\n var succeeded = void 0;\n\n try {\n succeeded = document.execCommand(this.action);\n } catch (err) {\n succeeded = false;\n }\n\n this.handleResult(succeeded);\n }\n\n /**\n * Fires an event based on the copy operation result.\n * @param {Boolean} succeeded\n */\n\n }, {\n key: 'handleResult',\n value: function handleResult(succeeded) {\n this.emitter.emit(succeeded ? 'success' : 'error', {\n action: this.action,\n text: this.selectedText,\n trigger: this.trigger,\n clearSelection: this.clearSelection.bind(this)\n });\n }\n\n /**\n * Moves focus away from `target` and back to the trigger, removes current selection.\n */\n\n }, {\n key: 'clearSelection',\n value: function clearSelection() {\n if (this.trigger) {\n this.trigger.focus();\n }\n document.activeElement.blur();\n window.getSelection().removeAllRanges();\n }\n\n /**\n * Sets the `action` to be performed which can be either 'copy' or 'cut'.\n * @param {String} action\n */\n\n }, {\n key: 'destroy',\n\n\n /**\n * Destroy lifecycle.\n */\n value: function destroy() {\n this.removeFake();\n }\n }, {\n key: 'action',\n set: function set() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';\n\n this._action = action;\n\n if (this._action !== 'copy' && this._action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n }\n }\n\n /**\n * Gets the `action` property.\n * @return {String}\n */\n ,\n get: function get() {\n return this._action;\n }\n\n /**\n * Sets the `target` property using an element\n * that will be have its content copied.\n * @param {Element} target\n */\n\n }, {\n key: 'target',\n set: function set(target) {\n if (target !== undefined) {\n if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {\n if (this.action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n\n this._target = target;\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n }\n }\n\n /**\n * Gets the `target` property.\n * @return {String|HTMLElement}\n */\n ,\n get: function get() {\n return this._target;\n }\n }]);\n\n return ClipboardAction;\n}();\n\n/* harmony default export */ var clipboard_action = (clipboard_action_ClipboardAction);\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(1);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(2);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n\n// CONCATENATED MODULE: ./src/clipboard.js\nvar clipboard_typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar clipboard_createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction clipboard_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\nvar clipboard_Clipboard = function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n clipboard_classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));\n\n _this.resolveOptions(options);\n _this.listenClick(trigger);\n return _this;\n }\n\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n clipboard_createClass(Clipboard, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: 'listenClick',\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: 'onClick',\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n\n if (this.clipboardAction) {\n this.clipboardAction = null;\n }\n\n this.clipboardAction = new clipboard_action({\n action: this.action(trigger),\n target: this.target(trigger),\n text: this.text(trigger),\n container: this.container,\n trigger: trigger,\n emitter: this\n });\n }\n\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: 'defaultAction',\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: 'defaultTarget',\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: 'defaultText',\n\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: 'destroy',\n value: function destroy() {\n this.listener.destroy();\n\n if (this.clipboardAction) {\n this.clipboardAction.destroy();\n this.clipboardAction = null;\n }\n }\n }], [{\n key: 'isSupported',\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n\n return support;\n }\n }]);\n\n return Clipboard;\n}(tiny_emitter_default.a);\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\n\nfunction getAttributeValue(suffix, element) {\n var attribute = 'data-clipboard-' + suffix;\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n\n/* harmony default export */ var clipboard = __webpack_exports__[\"default\"] = (clipboard_Clipboard);\n\n/***/ })\n/******/ ])[\"default\"];\n});","import { __extends } from \"tslib\";\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { fromArray } from './fromArray';\nvar NONE = {};\nexport function combineLatest() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var resultSelector = undefined;\n var scheduler = undefined;\n if (isScheduler(observables[observables.length - 1])) {\n scheduler = observables.pop();\n }\n if (typeof observables[observables.length - 1] === 'function') {\n resultSelector = observables.pop();\n }\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0];\n }\n return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector));\n}\nvar CombineLatestOperator = (function () {\n function CombineLatestOperator(resultSelector) {\n this.resultSelector = resultSelector;\n }\n CombineLatestOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));\n };\n return CombineLatestOperator;\n}());\nexport { CombineLatestOperator };\nvar CombineLatestSubscriber = (function (_super) {\n __extends(CombineLatestSubscriber, _super);\n function CombineLatestSubscriber(destination, resultSelector) {\n var _this = _super.call(this, destination) || this;\n _this.resultSelector = resultSelector;\n _this.active = 0;\n _this.values = [];\n _this.observables = [];\n return _this;\n }\n CombineLatestSubscriber.prototype._next = function (observable) {\n this.values.push(NONE);\n this.observables.push(observable);\n };\n CombineLatestSubscriber.prototype._complete = function () {\n var observables = this.observables;\n var len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n this.active = len;\n this.toRespond = len;\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n this.add(subscribeToResult(this, observable, observable, i));\n }\n }\n };\n CombineLatestSubscriber.prototype.notifyComplete = function (unused) {\n if ((this.active -= 1) === 0) {\n this.destination.complete();\n }\n };\n CombineLatestSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var values = this.values;\n var oldVal = values[outerIndex];\n var toRespond = !this.toRespond\n ? 0\n : oldVal === NONE ? --this.toRespond : this.toRespond;\n values[outerIndex] = innerValue;\n if (toRespond === 0) {\n if (this.resultSelector) {\n this._tryResultSelector(values);\n }\n else {\n this.destination.next(values.slice());\n }\n }\n };\n CombineLatestSubscriber.prototype._tryResultSelector = function (values) {\n var result;\n try {\n result = this.resultSelector.apply(this, values);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return CombineLatestSubscriber;\n}(OuterSubscriber));\nexport { CombineLatestSubscriber };\n//# sourceMappingURL=combineLatest.js.map","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n","import { Observable } from '../Observable';\nimport { from } from './from';\nimport { EMPTY } from './empty';\nexport function defer(observableFactory) {\n return new Observable(function (subscriber) {\n var input;\n try {\n input = observableFactory();\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var source = input ? from(input) : EMPTY;\n return source.subscribe(subscriber);\n });\n}\n//# sourceMappingURL=defer.js.map","import { __extends } from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar QueueAction = (function (_super) {\n __extends(QueueAction, _super);\n function QueueAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n QueueAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay > 0) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n };\n QueueAction.prototype.execute = function (state, delay) {\n return (delay > 0 || this.closed) ?\n _super.prototype.execute.call(this, state, delay) :\n this._execute(state, delay);\n };\n QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n return scheduler.flush(this);\n };\n return QueueAction;\n}(AsyncAction));\nexport { QueueAction };\n//# sourceMappingURL=QueueAction.js.map","import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\nexport var queue = new QueueScheduler(QueueAction);\n//# sourceMappingURL=queue.js.map","import { __extends } from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar QueueScheduler = (function (_super) {\n __extends(QueueScheduler, _super);\n function QueueScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return QueueScheduler;\n}(AsyncScheduler));\nexport { QueueScheduler };\n//# sourceMappingURL=QueueScheduler.js.map","import { __extends } from \"tslib\";\nimport { Subject } from './Subject';\nimport { queue } from './scheduler/queue';\nimport { Subscription } from './Subscription';\nimport { ObserveOnSubscriber } from './operators/observeOn';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nvar ReplaySubject = (function (_super) {\n __extends(ReplaySubject, _super);\n function ReplaySubject(bufferSize, windowTime, scheduler) {\n if (bufferSize === void 0) { bufferSize = Number.POSITIVE_INFINITY; }\n if (windowTime === void 0) { windowTime = Number.POSITIVE_INFINITY; }\n var _this = _super.call(this) || this;\n _this.scheduler = scheduler;\n _this._events = [];\n _this._infiniteTimeWindow = false;\n _this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n _this._windowTime = windowTime < 1 ? 1 : windowTime;\n if (windowTime === Number.POSITIVE_INFINITY) {\n _this._infiniteTimeWindow = true;\n _this.next = _this.nextInfiniteTimeWindow;\n }\n else {\n _this.next = _this.nextTimeWindow;\n }\n return _this;\n }\n ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) {\n var _events = this._events;\n _events.push(value);\n if (_events.length > this._bufferSize) {\n _events.shift();\n }\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype.nextTimeWindow = function (value) {\n this._events.push(new ReplayEvent(this._getNow(), value));\n this._trimBufferThenGetEvents();\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype._subscribe = function (subscriber) {\n var _infiniteTimeWindow = this._infiniteTimeWindow;\n var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();\n var scheduler = this.scheduler;\n var len = _events.length;\n var subscription;\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.isStopped || this.hasError) {\n subscription = Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n subscription = new SubjectSubscription(this, subscriber);\n }\n if (scheduler) {\n subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler));\n }\n if (_infiniteTimeWindow) {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i]);\n }\n }\n else {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i].value);\n }\n }\n if (this.hasError) {\n subscriber.error(this.thrownError);\n }\n else if (this.isStopped) {\n subscriber.complete();\n }\n return subscription;\n };\n ReplaySubject.prototype._getNow = function () {\n return (this.scheduler || queue).now();\n };\n ReplaySubject.prototype._trimBufferThenGetEvents = function () {\n var now = this._getNow();\n var _bufferSize = this._bufferSize;\n var _windowTime = this._windowTime;\n var _events = this._events;\n var eventsCount = _events.length;\n var spliceCount = 0;\n while (spliceCount < eventsCount) {\n if ((now - _events[spliceCount].time) < _windowTime) {\n break;\n }\n spliceCount++;\n }\n if (eventsCount > _bufferSize) {\n spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n }\n if (spliceCount > 0) {\n _events.splice(0, spliceCount);\n }\n return _events;\n };\n return ReplaySubject;\n}(Subject));\nexport { ReplaySubject };\nvar ReplayEvent = (function () {\n function ReplayEvent(time, value) {\n this.time = time;\n this.value = value;\n }\n return ReplayEvent;\n}());\n//# sourceMappingURL=ReplaySubject.js.map","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import _has from \"./_has.js\";\nvar toString = Object.prototype.toString;\n\nvar _isArguments =\n/*#__PURE__*/\nfunction () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\n\nexport default _isArguments;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\nimport _isArguments from \"./internal/_isArguments.js\"; // cover IE < 9 keys issues\n\nvar hasEnumBug = !\n/*#__PURE__*/\n{\n toString: null\n}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; // Safari bug\n\nvar hasArgsEnumBug =\n/*#__PURE__*/\nfunction () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n};\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\n\n\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ?\n/*#__PURE__*/\n_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) :\n/*#__PURE__*/\n_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n\n var prop, nIdx;\n var ks = [];\n\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n\n nIdx -= 1;\n }\n }\n\n return ks;\n});\nexport default keys;","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { noop } from '../util/noop';\nimport { isFunction } from '../util/isFunction';\nexport function tap(nextOrObserver, error, complete) {\n return function tapOperatorFunction(source) {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\nvar DoOperator = (function () {\n function DoOperator(nextOrObserver, error, complete) {\n this.nextOrObserver = nextOrObserver;\n this.error = error;\n this.complete = complete;\n }\n DoOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n };\n return DoOperator;\n}());\nvar TapSubscriber = (function (_super) {\n __extends(TapSubscriber, _super);\n function TapSubscriber(destination, observerOrNext, error, complete) {\n var _this = _super.call(this, destination) || this;\n _this._tapNext = noop;\n _this._tapError = noop;\n _this._tapComplete = noop;\n _this._tapError = error || noop;\n _this._tapComplete = complete || noop;\n if (isFunction(observerOrNext)) {\n _this._context = _this;\n _this._tapNext = observerOrNext;\n }\n else if (observerOrNext) {\n _this._context = observerOrNext;\n _this._tapNext = observerOrNext.next || noop;\n _this._tapError = observerOrNext.error || noop;\n _this._tapComplete = observerOrNext.complete || noop;\n }\n return _this;\n }\n TapSubscriber.prototype._next = function (value) {\n try {\n this._tapNext.call(this._context, value);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(value);\n };\n TapSubscriber.prototype._error = function (err) {\n try {\n this._tapError.call(this._context, err);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.error(err);\n };\n TapSubscriber.prototype._complete = function () {\n try {\n this._tapComplete.call(this._context);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n return this.destination.complete();\n };\n return TapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=tap.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function scan(accumulator, seed) {\n var hasSeed = false;\n if (arguments.length >= 2) {\n hasSeed = true;\n }\n return function scanOperatorFunction(source) {\n return source.lift(new ScanOperator(accumulator, seed, hasSeed));\n };\n}\nvar ScanOperator = (function () {\n function ScanOperator(accumulator, seed, hasSeed) {\n if (hasSeed === void 0) { hasSeed = false; }\n this.accumulator = accumulator;\n this.seed = seed;\n this.hasSeed = hasSeed;\n }\n ScanOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));\n };\n return ScanOperator;\n}());\nvar ScanSubscriber = (function (_super) {\n __extends(ScanSubscriber, _super);\n function ScanSubscriber(destination, accumulator, _state, _hasState) {\n var _this = _super.call(this, destination) || this;\n _this.accumulator = accumulator;\n _this._state = _state;\n _this._hasState = _hasState;\n _this.index = 0;\n return _this;\n }\n ScanSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n if (!this._hasState) {\n this._state = value;\n this._hasState = true;\n destination.next(value);\n }\n else {\n var index = this.index++;\n var result = void 0;\n try {\n result = this.accumulator(this._state, value, index);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this._state = result;\n destination.next(result);\n }\n };\n return ScanSubscriber;\n}(Subscriber));\n//# sourceMappingURL=scan.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nexport function finalize(callback) {\n return function (source) { return source.lift(new FinallyOperator(callback)); };\n}\nvar FinallyOperator = (function () {\n function FinallyOperator(callback) {\n this.callback = callback;\n }\n FinallyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FinallySubscriber(subscriber, this.callback));\n };\n return FinallyOperator;\n}());\nvar FinallySubscriber = (function (_super) {\n __extends(FinallySubscriber, _super);\n function FinallySubscriber(destination, callback) {\n var _this = _super.call(this, destination) || this;\n _this.add(new Subscription(callback));\n return _this;\n }\n return FinallySubscriber;\n}(Subscriber));\n//# sourceMappingURL=finalize.js.map","import { __extends } from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar AnimationFrameAction = (function (_super) {\n __extends(AnimationFrameAction, _super);\n function AnimationFrameAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () { return scheduler.flush(undefined); }));\n };\n AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n cancelAnimationFrame(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n };\n return AnimationFrameAction;\n}(AsyncAction));\nexport { AnimationFrameAction };\n//# sourceMappingURL=AnimationFrameAction.js.map","import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nexport var animationFrame = new AnimationFrameScheduler(AnimationFrameAction);\n//# sourceMappingURL=animationFrame.js.map","import { __extends } from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AnimationFrameScheduler = (function (_super) {\n __extends(AnimationFrameScheduler, _super);\n function AnimationFrameScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AnimationFrameScheduler.prototype.flush = function (action) {\n this.active = true;\n this.scheduled = undefined;\n var actions = this.actions;\n var error;\n var index = -1;\n var count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AnimationFrameScheduler;\n}(AsyncScheduler));\nexport { AnimationFrameScheduler };\n//# sourceMappingURL=AnimationFrameScheduler.js.map","import { ReplaySubject } from '../ReplaySubject';\nexport function shareReplay(configOrBufferSize, windowTime, scheduler) {\n var config;\n if (configOrBufferSize && typeof configOrBufferSize === 'object') {\n config = configOrBufferSize;\n }\n else {\n config = {\n bufferSize: configOrBufferSize,\n windowTime: windowTime,\n refCount: false,\n scheduler: scheduler\n };\n }\n return function (source) { return source.lift(shareReplayOperator(config)); };\n}\nfunction shareReplayOperator(_a) {\n var _b = _a.bufferSize, bufferSize = _b === void 0 ? Number.POSITIVE_INFINITY : _b, _c = _a.windowTime, windowTime = _c === void 0 ? Number.POSITIVE_INFINITY : _c, useRefCount = _a.refCount, scheduler = _a.scheduler;\n var subject;\n var refCount = 0;\n var subscription;\n var hasError = false;\n var isComplete = false;\n return function shareReplayOperation(source) {\n refCount++;\n if (!subject || hasError) {\n hasError = false;\n subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n subscription = source.subscribe({\n next: function (value) { subject.next(value); },\n error: function (err) {\n hasError = true;\n subject.error(err);\n },\n complete: function () {\n isComplete = true;\n subscription = undefined;\n subject.complete();\n },\n });\n }\n var innerSub = subject.subscribe(this);\n this.add(function () {\n refCount--;\n innerSub.unsubscribe();\n if (subscription && !isComplete && useRefCount && refCount === 0) {\n subscription.unsubscribe();\n subscription = undefined;\n subject = undefined;\n }\n });\n };\n}\n//# sourceMappingURL=shareReplay.js.map","import { distinctUntilChanged } from './distinctUntilChanged';\nexport function distinctUntilKeyChanged(key, compare) {\n return distinctUntilChanged(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; });\n}\n//# sourceMappingURL=distinctUntilKeyChanged.js.map","import { __extends, __spreadArrays } from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function withLatestFrom() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return function (source) {\n var project;\n if (typeof args[args.length - 1] === 'function') {\n project = args.pop();\n }\n var observables = args;\n return source.lift(new WithLatestFromOperator(observables, project));\n };\n}\nvar WithLatestFromOperator = (function () {\n function WithLatestFromOperator(observables, project) {\n this.observables = observables;\n this.project = project;\n }\n WithLatestFromOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));\n };\n return WithLatestFromOperator;\n}());\nvar WithLatestFromSubscriber = (function (_super) {\n __extends(WithLatestFromSubscriber, _super);\n function WithLatestFromSubscriber(destination, observables, project) {\n var _this = _super.call(this, destination) || this;\n _this.observables = observables;\n _this.project = project;\n _this.toRespond = [];\n var len = observables.length;\n _this.values = new Array(len);\n for (var i = 0; i < len; i++) {\n _this.toRespond.push(i);\n }\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n _this.add(subscribeToResult(_this, observable, observable, i));\n }\n return _this;\n }\n WithLatestFromSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.values[outerIndex] = innerValue;\n var toRespond = this.toRespond;\n if (toRespond.length > 0) {\n var found = toRespond.indexOf(outerIndex);\n if (found !== -1) {\n toRespond.splice(found, 1);\n }\n }\n };\n WithLatestFromSubscriber.prototype.notifyComplete = function () {\n };\n WithLatestFromSubscriber.prototype._next = function (value) {\n if (this.toRespond.length === 0) {\n var args = __spreadArrays([value], this.values);\n if (this.project) {\n this._tryProject(args);\n }\n else {\n this.destination.next(args);\n }\n }\n };\n WithLatestFromSubscriber.prototype._tryProject = function (args) {\n var result;\n try {\n result = this.project.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return WithLatestFromSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=withLatestFrom.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function bufferCount(bufferSize, startBufferEvery) {\n if (startBufferEvery === void 0) { startBufferEvery = null; }\n return function bufferCountOperatorFunction(source) {\n return source.lift(new BufferCountOperator(bufferSize, startBufferEvery));\n };\n}\nvar BufferCountOperator = (function () {\n function BufferCountOperator(bufferSize, startBufferEvery) {\n this.bufferSize = bufferSize;\n this.startBufferEvery = startBufferEvery;\n if (!startBufferEvery || bufferSize === startBufferEvery) {\n this.subscriberClass = BufferCountSubscriber;\n }\n else {\n this.subscriberClass = BufferSkipCountSubscriber;\n }\n }\n BufferCountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery));\n };\n return BufferCountOperator;\n}());\nvar BufferCountSubscriber = (function (_super) {\n __extends(BufferCountSubscriber, _super);\n function BufferCountSubscriber(destination, bufferSize) {\n var _this = _super.call(this, destination) || this;\n _this.bufferSize = bufferSize;\n _this.buffer = [];\n return _this;\n }\n BufferCountSubscriber.prototype._next = function (value) {\n var buffer = this.buffer;\n buffer.push(value);\n if (buffer.length == this.bufferSize) {\n this.destination.next(buffer);\n this.buffer = [];\n }\n };\n BufferCountSubscriber.prototype._complete = function () {\n var buffer = this.buffer;\n if (buffer.length > 0) {\n this.destination.next(buffer);\n }\n _super.prototype._complete.call(this);\n };\n return BufferCountSubscriber;\n}(Subscriber));\nvar BufferSkipCountSubscriber = (function (_super) {\n __extends(BufferSkipCountSubscriber, _super);\n function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) {\n var _this = _super.call(this, destination) || this;\n _this.bufferSize = bufferSize;\n _this.startBufferEvery = startBufferEvery;\n _this.buffers = [];\n _this.count = 0;\n return _this;\n }\n BufferSkipCountSubscriber.prototype._next = function (value) {\n var _a = this, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers, count = _a.count;\n this.count++;\n if (count % startBufferEvery === 0) {\n buffers.push([]);\n }\n for (var i = buffers.length; i--;) {\n var buffer = buffers[i];\n buffer.push(value);\n if (buffer.length === bufferSize) {\n buffers.splice(i, 1);\n this.destination.next(buffer);\n }\n }\n };\n BufferSkipCountSubscriber.prototype._complete = function () {\n var _a = this, buffers = _a.buffers, destination = _a.destination;\n while (buffers.length > 0) {\n var buffer = buffers.shift();\n if (buffer.length > 0) {\n destination.next(buffer);\n }\n }\n _super.prototype._complete.call(this);\n };\n return BufferSkipCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=bufferCount.js.map","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n//# sourceMappingURL=concatAll.js.map","import { of } from './of';\nimport { concatAll } from '../operators/concatAll';\nexport function concat() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return concatAll()(of.apply(void 0, observables));\n}\n//# sourceMappingURL=concat.js.map","import { concat } from '../observable/concat';\nimport { isScheduler } from '../util/isScheduler';\nexport function startWith() {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n var scheduler = values[values.length - 1];\n if (isScheduler(scheduler)) {\n values.pop();\n return function (source) { return concat(values, source, scheduler); };\n }\n else {\n return function (source) { return concat(values, source); };\n }\n}\n//# sourceMappingURL=startWith.js.map","import _curry1 from \"./internal/_curry1.js\";\nimport _isString from \"./internal/_isString.js\";\n/**\n * Returns a new list or string with the elements or characters in reverse\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {Array|String} list\n * @return {Array|String}\n * @example\n *\n * R.reverse([1, 2, 3]); //=> [3, 2, 1]\n * R.reverse([1, 2]); //=> [2, 1]\n * R.reverse([1]); //=> [1]\n * R.reverse([]); //=> []\n *\n * R.reverse('abc'); //=> 'cba'\n * R.reverse('ab'); //=> 'ba'\n * R.reverse('a'); //=> 'a'\n * R.reverse(''); //=> ''\n */\n\nvar reverse =\n/*#__PURE__*/\n_curry1(function reverse(list) {\n return _isString(list) ? list.split('').reverse().join('') : Array.prototype.slice.call(list, 0).reverse();\n});\n\nexport default reverse;","export default function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new Observable(function (subscriber) {\n function handler(e) {\n if (arguments.length > 1) {\n subscriber.next(Array.prototype.slice.call(arguments));\n }\n else {\n subscriber.next(e);\n }\n }\n setupSubscription(target, eventName, handler, subscriber, options);\n });\n}\nfunction setupSubscription(sourceObj, eventName, handler, subscriber, options) {\n var unsubscribe;\n if (isEventTarget(sourceObj)) {\n var source_1 = sourceObj;\n sourceObj.addEventListener(eventName, handler, options);\n unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); };\n }\n else if (isJQueryStyleEventEmitter(sourceObj)) {\n var source_2 = sourceObj;\n sourceObj.on(eventName, handler);\n unsubscribe = function () { return source_2.off(eventName, handler); };\n }\n else if (isNodeStyleEventEmitter(sourceObj)) {\n var source_3 = sourceObj;\n sourceObj.addListener(eventName, handler);\n unsubscribe = function () { return source_3.removeListener(eventName, handler); };\n }\n else if (sourceObj && sourceObj.length) {\n for (var i = 0, len = sourceObj.length; i < len; i++) {\n setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n }\n }\n else {\n throw new TypeError('Invalid event target');\n }\n subscriber.add(unsubscribe);\n}\nfunction isNodeStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\nfunction isJQueryStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\nfunction isEventTarget(sourceObj) {\n return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n//# sourceMappingURL=fromEvent.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function mapTo(value) {\n return function (source) { return source.lift(new MapToOperator(value)); };\n}\nvar MapToOperator = (function () {\n function MapToOperator(value) {\n this.value = value;\n }\n MapToOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapToSubscriber(subscriber, this.value));\n };\n return MapToOperator;\n}());\nvar MapToSubscriber = (function (_super) {\n __extends(MapToSubscriber, _super);\n function MapToSubscriber(destination, value) {\n var _this = _super.call(this, destination) || this;\n _this.value = value;\n return _this;\n }\n MapToSubscriber.prototype._next = function (x) {\n this.destination.next(this.value);\n };\n return MapToSubscriber;\n}(Subscriber));\n//# sourceMappingURL=mapTo.js.map","import { Observable } from '../Observable';\nimport { isScheduler } from '../util/isScheduler';\nimport { mergeAll } from '../operators/mergeAll';\nimport { fromArray } from './fromArray';\nexport function merge() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var concurrent = Number.POSITIVE_INFINITY;\n var scheduler = undefined;\n var last = observables[observables.length - 1];\n if (isScheduler(last)) {\n scheduler = observables.pop();\n if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n concurrent = observables.pop();\n }\n }\n else if (typeof last === 'number') {\n concurrent = observables.pop();\n }\n if (!scheduler && observables.length === 1 && observables[0] instanceof Observable) {\n return observables[0];\n }\n return mergeAll(concurrent)(fromArray(observables, scheduler));\n}\n//# sourceMappingURL=merge.js.map","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nexport function fromEventPattern(addHandler, removeHandler, resultSelector) {\n if (resultSelector) {\n return fromEventPattern(addHandler, removeHandler).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new Observable(function (subscriber) {\n var handler = function () {\n var e = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n e[_i] = arguments[_i];\n }\n return subscriber.next(e.length === 1 ? e[0] : e);\n };\n var retValue;\n try {\n retValue = addHandler(handler);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!isFunction(removeHandler)) {\n return undefined;\n }\n return function () { return removeHandler(handler, retValue); };\n });\n}\n//# sourceMappingURL=fromEventPattern.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\nvar FilterOperator = (function () {\n function FilterOperator(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n FilterOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n };\n return FilterOperator;\n}());\nvar FilterSubscriber = (function (_super) {\n __extends(FilterSubscriber, _super);\n function FilterSubscriber(destination, predicate, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.thisArg = thisArg;\n _this.count = 0;\n return _this;\n }\n FilterSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n };\n return FilterSubscriber;\n}(Subscriber));\n//# sourceMappingURL=filter.js.map","import { __extends } from \"tslib\";\nimport { Subject } from './Subject';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nvar BehaviorSubject = (function (_super) {\n __extends(BehaviorSubject, _super);\n function BehaviorSubject(_value) {\n var _this = _super.call(this) || this;\n _this._value = _value;\n return _this;\n }\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: true,\n configurable: true\n });\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n if (subscription && !subscription.closed) {\n subscriber.next(this._value);\n }\n return subscription;\n };\n BehaviorSubject.prototype.getValue = function () {\n if (this.hasError) {\n throw this.thrownError;\n }\n else if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return this._value;\n }\n };\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, this._value = value);\n };\n return BehaviorSubject;\n}(Subject));\nexport { BehaviorSubject };\n//# sourceMappingURL=BehaviorSubject.js.map","import { map } from './map';\nexport function pluck() {\n var properties = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n properties[_i] = arguments[_i];\n }\n var length = properties.length;\n if (length === 0) {\n throw new Error('list of properties cannot be empty.');\n }\n return map(function (x) {\n var currentProp = x;\n for (var i = 0; i < length; i++) {\n var p = currentProp[properties[i]];\n if (typeof p !== 'undefined') {\n currentProp = p;\n }\n else {\n return undefined;\n }\n }\n return currentProp;\n });\n}\n//# sourceMappingURL=pluck.js.map","import { __extends } from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport var defaultThrottleConfig = {\n leading: true,\n trailing: false\n};\nexport function throttle(durationSelector, config) {\n if (config === void 0) { config = defaultThrottleConfig; }\n return function (source) { return source.lift(new ThrottleOperator(durationSelector, !!config.leading, !!config.trailing)); };\n}\nvar ThrottleOperator = (function () {\n function ThrottleOperator(durationSelector, leading, trailing) {\n this.durationSelector = durationSelector;\n this.leading = leading;\n this.trailing = trailing;\n }\n ThrottleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing));\n };\n return ThrottleOperator;\n}());\nvar ThrottleSubscriber = (function (_super) {\n __extends(ThrottleSubscriber, _super);\n function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.durationSelector = durationSelector;\n _this._leading = _leading;\n _this._trailing = _trailing;\n _this._sendValue = null;\n _this._hasValue = false;\n return _this;\n }\n ThrottleSubscriber.prototype._next = function (value) {\n this._hasValue = true;\n this._sendValue = value;\n if (!this._throttled) {\n if (this._leading) {\n this.send();\n }\n else {\n this.throttle(value);\n }\n }\n };\n ThrottleSubscriber.prototype.send = function () {\n var _a = this, _hasValue = _a._hasValue, _sendValue = _a._sendValue;\n if (_hasValue) {\n this.destination.next(_sendValue);\n this.throttle(_sendValue);\n }\n this._hasValue = false;\n this._sendValue = null;\n };\n ThrottleSubscriber.prototype.throttle = function (value) {\n var duration = this.tryDurationSelector(value);\n if (!!duration) {\n this.add(this._throttled = subscribeToResult(this, duration));\n }\n };\n ThrottleSubscriber.prototype.tryDurationSelector = function (value) {\n try {\n return this.durationSelector(value);\n }\n catch (err) {\n this.destination.error(err);\n return null;\n }\n };\n ThrottleSubscriber.prototype.throttlingDone = function () {\n var _a = this, _throttled = _a._throttled, _trailing = _a._trailing;\n if (_throttled) {\n _throttled.unsubscribe();\n }\n this._throttled = null;\n if (_trailing) {\n this.send();\n }\n };\n ThrottleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.throttlingDone();\n };\n ThrottleSubscriber.prototype.notifyComplete = function () {\n this.throttlingDone();\n };\n return ThrottleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=throttle.js.map","import { switchMap } from './switchMap';\nexport function switchMapTo(innerObservable, resultSelector) {\n return resultSelector ? switchMap(function () { return innerObservable; }, resultSelector) : switchMap(function () { return innerObservable; });\n}\n//# sourceMappingURL=switchMapTo.js.map","import { __extends } from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function sample(notifier) {\n return function (source) { return source.lift(new SampleOperator(notifier)); };\n}\nvar SampleOperator = (function () {\n function SampleOperator(notifier) {\n this.notifier = notifier;\n }\n SampleOperator.prototype.call = function (subscriber, source) {\n var sampleSubscriber = new SampleSubscriber(subscriber);\n var subscription = source.subscribe(sampleSubscriber);\n subscription.add(subscribeToResult(sampleSubscriber, this.notifier));\n return subscription;\n };\n return SampleOperator;\n}());\nvar SampleSubscriber = (function (_super) {\n __extends(SampleSubscriber, _super);\n function SampleSubscriber() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.hasValue = false;\n return _this;\n }\n SampleSubscriber.prototype._next = function (value) {\n this.value = value;\n this.hasValue = true;\n };\n SampleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.emitValue();\n };\n SampleSubscriber.prototype.notifyComplete = function () {\n this.emitValue();\n };\n SampleSubscriber.prototype.emitValue = function () {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.value);\n }\n };\n return SampleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=sample.js.map","import { Observable } from '../Observable';\nimport { noop } from '../util/noop';\nexport var NEVER = new Observable(noop);\nexport function never() {\n return NEVER;\n}\n//# sourceMappingURL=never.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function skip(count) {\n return function (source) { return source.lift(new SkipOperator(count)); };\n}\nvar SkipOperator = (function () {\n function SkipOperator(total) {\n this.total = total;\n }\n SkipOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SkipSubscriber(subscriber, this.total));\n };\n return SkipOperator;\n}());\nvar SkipSubscriber = (function (_super) {\n __extends(SkipSubscriber, _super);\n function SkipSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n SkipSubscriber.prototype._next = function (x) {\n if (++this.count > this.total) {\n this.destination.next(x);\n }\n };\n return SkipSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skip.js.map","import { __extends } from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function catchError(selector) {\n return function catchErrorOperatorFunction(source) {\n var operator = new CatchOperator(selector);\n var caught = source.lift(operator);\n return (operator.caught = caught);\n };\n}\nvar CatchOperator = (function () {\n function CatchOperator(selector) {\n this.selector = selector;\n }\n CatchOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));\n };\n return CatchOperator;\n}());\nvar CatchSubscriber = (function (_super) {\n __extends(CatchSubscriber, _super);\n function CatchSubscriber(destination, selector, caught) {\n var _this = _super.call(this, destination) || this;\n _this.selector = selector;\n _this.caught = caught;\n return _this;\n }\n CatchSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var result = void 0;\n try {\n result = this.selector(err, this.caught);\n }\n catch (err2) {\n _super.prototype.error.call(this, err2);\n return;\n }\n this._unsubscribeAndRecycle();\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n this.add(innerSubscriber);\n var innerSubscription = subscribeToResult(this, result, undefined, undefined, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n this.add(innerSubscription);\n }\n }\n };\n return CatchSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=catchError.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nexport function debounceTime(dueTime, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return function (source) { return source.lift(new DebounceTimeOperator(dueTime, scheduler)); };\n}\nvar DebounceTimeOperator = (function () {\n function DebounceTimeOperator(dueTime, scheduler) {\n this.dueTime = dueTime;\n this.scheduler = scheduler;\n }\n DebounceTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler));\n };\n return DebounceTimeOperator;\n}());\nvar DebounceTimeSubscriber = (function (_super) {\n __extends(DebounceTimeSubscriber, _super);\n function DebounceTimeSubscriber(destination, dueTime, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.dueTime = dueTime;\n _this.scheduler = scheduler;\n _this.debouncedSubscription = null;\n _this.lastValue = null;\n _this.hasValue = false;\n return _this;\n }\n DebounceTimeSubscriber.prototype._next = function (value) {\n this.clearDebounce();\n this.lastValue = value;\n this.hasValue = true;\n this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this));\n };\n DebounceTimeSubscriber.prototype._complete = function () {\n this.debouncedNext();\n this.destination.complete();\n };\n DebounceTimeSubscriber.prototype.debouncedNext = function () {\n this.clearDebounce();\n if (this.hasValue) {\n var lastValue = this.lastValue;\n this.lastValue = null;\n this.hasValue = false;\n this.destination.next(lastValue);\n }\n };\n DebounceTimeSubscriber.prototype.clearDebounce = function () {\n var debouncedSubscription = this.debouncedSubscription;\n if (debouncedSubscription !== null) {\n this.remove(debouncedSubscription);\n debouncedSubscription.unsubscribe();\n this.debouncedSubscription = null;\n }\n };\n return DebounceTimeSubscriber;\n}(Subscriber));\nfunction dispatchNext(subscriber) {\n subscriber.debouncedNext();\n}\n//# sourceMappingURL=debounceTime.js.map","import { defer } from './defer';\nimport { EMPTY } from './empty';\nexport function iif(condition, trueResult, falseResult) {\n if (trueResult === void 0) { trueResult = EMPTY; }\n if (falseResult === void 0) { falseResult = EMPTY; }\n return defer(function () { return condition() ? trueResult : falseResult; });\n}\n//# sourceMappingURL=iif.js.map","import _curry1 from \"./internal/_curry1.js\";\nimport keys from \"./keys.js\";\n/**\n * Returns a list of all the enumerable own properties of the supplied object.\n * Note that the order of the output array is not guaranteed across different\n * JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own properties.\n * @see R.valuesIn, R.keys\n * @example\n *\n * R.values({a: 1, b: 2, c: 3}); //=> [1, 2, 3]\n */\n\nvar values =\n/*#__PURE__*/\n_curry1(function values(obj) {\n var props = keys(obj);\n var len = props.length;\n var vals = [];\n var idx = 0;\n\n while (idx < len) {\n vals[idx] = obj[props[idx]];\n idx += 1;\n }\n\n return vals;\n});\n\nexport default values;","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function refCount() {\n return function refCountOperatorFunction(source) {\n return source.lift(new RefCountOperator(source));\n };\n}\nvar RefCountOperator = (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n __extends(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n _this.connection = null;\n return _this;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=refCount.js.map","import { __extends } from \"tslib\";\nimport { SubjectSubscriber } from '../Subject';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nvar ConnectableObservable = (function (_super) {\n __extends(ConnectableObservable, _super);\n function ConnectableObservable(source, subjectFactory) {\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.subjectFactory = subjectFactory;\n _this._refCount = 0;\n _this._isComplete = false;\n return _this;\n }\n ConnectableObservable.prototype._subscribe = function (subscriber) {\n return this.getSubject().subscribe(subscriber);\n };\n ConnectableObservable.prototype.getSubject = function () {\n var subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n };\n ConnectableObservable.prototype.connect = function () {\n var connection = this._connection;\n if (!connection) {\n this._isComplete = false;\n connection = this._connection = new Subscription();\n connection.add(this.source\n .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n }\n return connection;\n };\n ConnectableObservable.prototype.refCount = function () {\n return higherOrderRefCount()(this);\n };\n return ConnectableObservable;\n}(Observable));\nexport { ConnectableObservable };\nexport var connectableObservableDescriptor = (function () {\n var connectableProto = ConnectableObservable.prototype;\n return {\n operator: { value: null },\n _refCount: { value: 0, writable: true },\n _subject: { value: null, writable: true },\n _connection: { value: null, writable: true },\n _subscribe: { value: connectableProto._subscribe },\n _isComplete: { value: connectableProto._isComplete, writable: true },\n getSubject: { value: connectableProto.getSubject },\n connect: { value: connectableProto.connect },\n refCount: { value: connectableProto.refCount }\n };\n})();\nvar ConnectableSubscriber = (function (_super) {\n __extends(ConnectableSubscriber, _super);\n function ConnectableSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n ConnectableSubscriber.prototype._error = function (err) {\n this._unsubscribe();\n _super.prototype._error.call(this, err);\n };\n ConnectableSubscriber.prototype._complete = function () {\n this.connectable._isComplete = true;\n this._unsubscribe();\n _super.prototype._complete.call(this);\n };\n ConnectableSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (connectable) {\n this.connectable = null;\n var connection = connectable._connection;\n connectable._refCount = 0;\n connectable._subject = null;\n connectable._connection = null;\n if (connection) {\n connection.unsubscribe();\n }\n }\n };\n return ConnectableSubscriber;\n}(SubjectSubscriber));\nvar RefCountOperator = (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n __extends(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=ConnectableObservable.js.map","import { connectableObservableDescriptor } from '../observable/ConnectableObservable';\nexport function multicast(subjectOrSubjectFactory, selector) {\n return function multicastOperatorFunction(source) {\n var subjectFactory;\n if (typeof subjectOrSubjectFactory === 'function') {\n subjectFactory = subjectOrSubjectFactory;\n }\n else {\n subjectFactory = function subjectFactory() {\n return subjectOrSubjectFactory;\n };\n }\n if (typeof selector === 'function') {\n return source.lift(new MulticastOperator(subjectFactory, selector));\n }\n var connectable = Object.create(source, connectableObservableDescriptor);\n connectable.source = source;\n connectable.subjectFactory = subjectFactory;\n return connectable;\n };\n}\nvar MulticastOperator = (function () {\n function MulticastOperator(subjectFactory, selector) {\n this.subjectFactory = subjectFactory;\n this.selector = selector;\n }\n MulticastOperator.prototype.call = function (subscriber, source) {\n var selector = this.selector;\n var subject = this.subjectFactory();\n var subscription = selector(subject).subscribe(subscriber);\n subscription.add(source.subscribe(subject));\n return subscription;\n };\n return MulticastOperator;\n}());\nexport { MulticastOperator };\n//# sourceMappingURL=multicast.js.map","import { multicast } from './multicast';\nimport { refCount } from './refCount';\nimport { Subject } from '../Subject';\nfunction shareSubjectFactory() {\n return new Subject();\n}\nexport function share() {\n return function (source) { return refCount()(multicast(shareSubjectFactory)(source)); };\n}\n//# sourceMappingURL=share.js.map","var ArgumentOutOfRangeErrorImpl = (function () {\n function ArgumentOutOfRangeErrorImpl() {\n Error.call(this);\n this.message = 'argument out of range';\n this.name = 'ArgumentOutOfRangeError';\n return this;\n }\n ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);\n return ArgumentOutOfRangeErrorImpl;\n})();\nexport var ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;\n//# sourceMappingURL=ArgumentOutOfRangeError.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { EMPTY } from '../observable/empty';\nexport function take(count) {\n return function (source) {\n if (count === 0) {\n return EMPTY;\n }\n else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\nvar TakeOperator = (function () {\n function TakeOperator(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n TakeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n };\n return TakeOperator;\n}());\nvar TakeSubscriber = (function (_super) {\n __extends(TakeSubscriber, _super);\n function TakeSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n TakeSubscriber.prototype._next = function (value) {\n var total = this.total;\n var count = ++this.count;\n if (count <= total) {\n this.destination.next(value);\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n };\n return TakeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=take.js.map","export default function _identity(x) {\n return x;\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _identity from \"./internal/_identity.js\";\n/**\n * A function that does nothing but return the parameter supplied to it. Good\n * as a default or placeholder function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> a\n * @param {*} x The value to return.\n * @return {*} The input value, `x`.\n * @example\n *\n * R.identity(1); //=> 1\n *\n * const obj = {};\n * R.identity(obj) === obj; //=> true\n * @symb R.identity(a) = a\n */\n\nvar identity =\n/*#__PURE__*/\n_curry1(_identity);\n\nexport default identity;","import { __extends } from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function delay(delay, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n var absoluteDelay = isDate(delay);\n var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);\n return function (source) { return source.lift(new DelayOperator(delayFor, scheduler)); };\n}\nvar DelayOperator = (function () {\n function DelayOperator(delay, scheduler) {\n this.delay = delay;\n this.scheduler = scheduler;\n }\n DelayOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));\n };\n return DelayOperator;\n}());\nvar DelaySubscriber = (function (_super) {\n __extends(DelaySubscriber, _super);\n function DelaySubscriber(destination, delay, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.delay = delay;\n _this.scheduler = scheduler;\n _this.queue = [];\n _this.active = false;\n _this.errored = false;\n return _this;\n }\n DelaySubscriber.dispatch = function (state) {\n var source = state.source;\n var queue = source.queue;\n var scheduler = state.scheduler;\n var destination = state.destination;\n while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {\n queue.shift().notification.observe(destination);\n }\n if (queue.length > 0) {\n var delay_1 = Math.max(0, queue[0].time - scheduler.now());\n this.schedule(state, delay_1);\n }\n else if (source.isStopped) {\n source.destination.complete();\n source.active = false;\n }\n else {\n this.unsubscribe();\n source.active = false;\n }\n };\n DelaySubscriber.prototype._schedule = function (scheduler) {\n this.active = true;\n var destination = this.destination;\n destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {\n source: this, destination: this.destination, scheduler: scheduler\n }));\n };\n DelaySubscriber.prototype.scheduleNotification = function (notification) {\n if (this.errored === true) {\n return;\n }\n var scheduler = this.scheduler;\n var message = new DelayMessage(scheduler.now() + this.delay, notification);\n this.queue.push(message);\n if (this.active === false) {\n this._schedule(scheduler);\n }\n };\n DelaySubscriber.prototype._next = function (value) {\n this.scheduleNotification(Notification.createNext(value));\n };\n DelaySubscriber.prototype._error = function (err) {\n this.errored = true;\n this.queue = [];\n this.destination.error(err);\n this.unsubscribe();\n };\n DelaySubscriber.prototype._complete = function () {\n if (this.queue.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n return DelaySubscriber;\n}(Subscriber));\nvar DelayMessage = (function () {\n function DelayMessage(time, notification) {\n this.time = time;\n this.notification = notification;\n }\n return DelayMessage;\n}());\n//# sourceMappingURL=delay.js.map","export function isDate(value) {\n return value instanceof Date && !isNaN(+value);\n}\n//# sourceMappingURL=isDate.js.map","import { __extends } from \"tslib\";\nimport { root } from '../../util/root';\nimport { Observable } from '../../Observable';\nimport { Subscriber } from '../../Subscriber';\nimport { map } from '../../operators/map';\nfunction getCORSRequest() {\n if (root.XMLHttpRequest) {\n return new root.XMLHttpRequest();\n }\n else if (!!root.XDomainRequest) {\n return new root.XDomainRequest();\n }\n else {\n throw new Error('CORS is not supported by your browser');\n }\n}\nfunction getXMLHttpRequest() {\n if (root.XMLHttpRequest) {\n return new root.XMLHttpRequest();\n }\n else {\n var progId = void 0;\n try {\n var progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];\n for (var i = 0; i < 3; i++) {\n try {\n progId = progIds[i];\n if (new root.ActiveXObject(progId)) {\n break;\n }\n }\n catch (e) {\n }\n }\n return new root.ActiveXObject(progId);\n }\n catch (e) {\n throw new Error('XMLHttpRequest is not supported by your browser');\n }\n }\n}\nexport function ajaxGet(url, headers) {\n return new AjaxObservable({ method: 'GET', url: url, headers: headers });\n}\nexport function ajaxPost(url, body, headers) {\n return new AjaxObservable({ method: 'POST', url: url, body: body, headers: headers });\n}\nexport function ajaxDelete(url, headers) {\n return new AjaxObservable({ method: 'DELETE', url: url, headers: headers });\n}\nexport function ajaxPut(url, body, headers) {\n return new AjaxObservable({ method: 'PUT', url: url, body: body, headers: headers });\n}\nexport function ajaxPatch(url, body, headers) {\n return new AjaxObservable({ method: 'PATCH', url: url, body: body, headers: headers });\n}\nvar mapResponse = map(function (x, index) { return x.response; });\nexport function ajaxGetJSON(url, headers) {\n return mapResponse(new AjaxObservable({\n method: 'GET',\n url: url,\n responseType: 'json',\n headers: headers\n }));\n}\nvar AjaxObservable = (function (_super) {\n __extends(AjaxObservable, _super);\n function AjaxObservable(urlOrRequest) {\n var _this = _super.call(this) || this;\n var request = {\n async: true,\n createXHR: function () {\n return this.crossDomain ? getCORSRequest() : getXMLHttpRequest();\n },\n crossDomain: true,\n withCredentials: false,\n headers: {},\n method: 'GET',\n responseType: 'json',\n timeout: 0\n };\n if (typeof urlOrRequest === 'string') {\n request.url = urlOrRequest;\n }\n else {\n for (var prop in urlOrRequest) {\n if (urlOrRequest.hasOwnProperty(prop)) {\n request[prop] = urlOrRequest[prop];\n }\n }\n }\n _this.request = request;\n return _this;\n }\n AjaxObservable.prototype._subscribe = function (subscriber) {\n return new AjaxSubscriber(subscriber, this.request);\n };\n AjaxObservable.create = (function () {\n var create = function (urlOrRequest) {\n return new AjaxObservable(urlOrRequest);\n };\n create.get = ajaxGet;\n create.post = ajaxPost;\n create.delete = ajaxDelete;\n create.put = ajaxPut;\n create.patch = ajaxPatch;\n create.getJSON = ajaxGetJSON;\n return create;\n })();\n return AjaxObservable;\n}(Observable));\nexport { AjaxObservable };\nvar AjaxSubscriber = (function (_super) {\n __extends(AjaxSubscriber, _super);\n function AjaxSubscriber(destination, request) {\n var _this = _super.call(this, destination) || this;\n _this.request = request;\n _this.done = false;\n var headers = request.headers = request.headers || {};\n if (!request.crossDomain && !_this.getHeader(headers, 'X-Requested-With')) {\n headers['X-Requested-With'] = 'XMLHttpRequest';\n }\n var contentTypeHeader = _this.getHeader(headers, 'Content-Type');\n if (!contentTypeHeader && !(root.FormData && request.body instanceof root.FormData) && typeof request.body !== 'undefined') {\n headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';\n }\n request.body = _this.serializeBody(request.body, _this.getHeader(request.headers, 'Content-Type'));\n _this.send();\n return _this;\n }\n AjaxSubscriber.prototype.next = function (e) {\n this.done = true;\n var _a = this, xhr = _a.xhr, request = _a.request, destination = _a.destination;\n var result;\n try {\n result = new AjaxResponse(e, xhr, request);\n }\n catch (err) {\n return destination.error(err);\n }\n destination.next(result);\n };\n AjaxSubscriber.prototype.send = function () {\n var _a = this, request = _a.request, _b = _a.request, user = _b.user, method = _b.method, url = _b.url, async = _b.async, password = _b.password, headers = _b.headers, body = _b.body;\n try {\n var xhr = this.xhr = request.createXHR();\n this.setupEvents(xhr, request);\n if (user) {\n xhr.open(method, url, async, user, password);\n }\n else {\n xhr.open(method, url, async);\n }\n if (async) {\n xhr.timeout = request.timeout;\n xhr.responseType = request.responseType;\n }\n if ('withCredentials' in xhr) {\n xhr.withCredentials = !!request.withCredentials;\n }\n this.setHeaders(xhr, headers);\n if (body) {\n xhr.send(body);\n }\n else {\n xhr.send();\n }\n }\n catch (err) {\n this.error(err);\n }\n };\n AjaxSubscriber.prototype.serializeBody = function (body, contentType) {\n if (!body || typeof body === 'string') {\n return body;\n }\n else if (root.FormData && body instanceof root.FormData) {\n return body;\n }\n if (contentType) {\n var splitIndex = contentType.indexOf(';');\n if (splitIndex !== -1) {\n contentType = contentType.substring(0, splitIndex);\n }\n }\n switch (contentType) {\n case 'application/x-www-form-urlencoded':\n return Object.keys(body).map(function (key) { return encodeURIComponent(key) + \"=\" + encodeURIComponent(body[key]); }).join('&');\n case 'application/json':\n return JSON.stringify(body);\n default:\n return body;\n }\n };\n AjaxSubscriber.prototype.setHeaders = function (xhr, headers) {\n for (var key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n };\n AjaxSubscriber.prototype.getHeader = function (headers, headerName) {\n for (var key in headers) {\n if (key.toLowerCase() === headerName.toLowerCase()) {\n return headers[key];\n }\n }\n return undefined;\n };\n AjaxSubscriber.prototype.setupEvents = function (xhr, request) {\n var progressSubscriber = request.progressSubscriber;\n function xhrTimeout(e) {\n var _a = xhrTimeout, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var error;\n try {\n error = new AjaxTimeoutError(this, request);\n }\n catch (err) {\n error = err;\n }\n subscriber.error(error);\n }\n xhr.ontimeout = xhrTimeout;\n xhrTimeout.request = request;\n xhrTimeout.subscriber = this;\n xhrTimeout.progressSubscriber = progressSubscriber;\n if (xhr.upload && 'withCredentials' in xhr) {\n if (progressSubscriber) {\n var xhrProgress_1;\n xhrProgress_1 = function (e) {\n var progressSubscriber = xhrProgress_1.progressSubscriber;\n progressSubscriber.next(e);\n };\n if (root.XDomainRequest) {\n xhr.onprogress = xhrProgress_1;\n }\n else {\n xhr.upload.onprogress = xhrProgress_1;\n }\n xhrProgress_1.progressSubscriber = progressSubscriber;\n }\n var xhrError_1;\n xhrError_1 = function (e) {\n var _a = xhrError_1, progressSubscriber = _a.progressSubscriber, subscriber = _a.subscriber, request = _a.request;\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var error;\n try {\n error = new AjaxError('ajax error', this, request);\n }\n catch (err) {\n error = err;\n }\n subscriber.error(error);\n };\n xhr.onerror = xhrError_1;\n xhrError_1.request = request;\n xhrError_1.subscriber = this;\n xhrError_1.progressSubscriber = progressSubscriber;\n }\n function xhrReadyStateChange(e) {\n return;\n }\n xhr.onreadystatechange = xhrReadyStateChange;\n xhrReadyStateChange.subscriber = this;\n xhrReadyStateChange.progressSubscriber = progressSubscriber;\n xhrReadyStateChange.request = request;\n function xhrLoad(e) {\n var _a = xhrLoad, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n if (this.readyState === 4) {\n var status_1 = this.status === 1223 ? 204 : this.status;\n var response = (this.responseType === 'text' ? (this.response || this.responseText) : this.response);\n if (status_1 === 0) {\n status_1 = response ? 200 : 0;\n }\n if (status_1 < 400) {\n if (progressSubscriber) {\n progressSubscriber.complete();\n }\n subscriber.next(e);\n subscriber.complete();\n }\n else {\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var error = void 0;\n try {\n error = new AjaxError('ajax error ' + status_1, this, request);\n }\n catch (err) {\n error = err;\n }\n subscriber.error(error);\n }\n }\n }\n xhr.onload = xhrLoad;\n xhrLoad.subscriber = this;\n xhrLoad.progressSubscriber = progressSubscriber;\n xhrLoad.request = request;\n };\n AjaxSubscriber.prototype.unsubscribe = function () {\n var _a = this, done = _a.done, xhr = _a.xhr;\n if (!done && xhr && xhr.readyState !== 4 && typeof xhr.abort === 'function') {\n xhr.abort();\n }\n _super.prototype.unsubscribe.call(this);\n };\n return AjaxSubscriber;\n}(Subscriber));\nexport { AjaxSubscriber };\nvar AjaxResponse = (function () {\n function AjaxResponse(originalEvent, xhr, request) {\n this.originalEvent = originalEvent;\n this.xhr = xhr;\n this.request = request;\n this.status = xhr.status;\n this.responseType = xhr.responseType || request.responseType;\n this.response = parseXhrResponse(this.responseType, xhr);\n }\n return AjaxResponse;\n}());\nexport { AjaxResponse };\nvar AjaxErrorImpl = (function () {\n function AjaxErrorImpl(message, xhr, request) {\n Error.call(this);\n this.message = message;\n this.name = 'AjaxError';\n this.xhr = xhr;\n this.request = request;\n this.status = xhr.status;\n this.responseType = xhr.responseType || request.responseType;\n this.response = parseXhrResponse(this.responseType, xhr);\n return this;\n }\n AjaxErrorImpl.prototype = Object.create(Error.prototype);\n return AjaxErrorImpl;\n})();\nexport var AjaxError = AjaxErrorImpl;\nfunction parseJson(xhr) {\n if ('response' in xhr) {\n return xhr.responseType ? xhr.response : JSON.parse(xhr.response || xhr.responseText || 'null');\n }\n else {\n return JSON.parse(xhr.responseText || 'null');\n }\n}\nfunction parseXhrResponse(responseType, xhr) {\n switch (responseType) {\n case 'json':\n return parseJson(xhr);\n case 'xml':\n return xhr.responseXML;\n case 'text':\n default:\n return ('response' in xhr) ? xhr.response : xhr.responseText;\n }\n}\nvar AjaxTimeoutErrorImpl = (function () {\n function AjaxTimeoutErrorImpl(xhr, request) {\n AjaxError.call(this, 'ajax timeout', xhr, request);\n this.name = 'AjaxTimeoutError';\n return this;\n }\n AjaxTimeoutErrorImpl.prototype = Object.create(AjaxError.prototype);\n return AjaxTimeoutErrorImpl;\n})();\nexport var AjaxTimeoutError = AjaxTimeoutErrorImpl;\n//# sourceMappingURL=AjaxObservable.js.map","import { AjaxObservable } from './AjaxObservable';\nexport var ajax = (function () { return AjaxObservable.create; })();\n//# sourceMappingURL=ajax.js.map"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/theme/material/assets/javascripts/vendor.js b/docs/theme/material/assets/javascripts/vendor.js new file mode 100644 index 00000000..3a57da57 --- /dev/null +++ b/docs/theme/material/assets/javascripts/vendor.js @@ -0,0 +1,6565 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["assets/javascripts/vendor"],{ + +/***/ "./node_modules/clipboard/dist/clipboard.js": +/*!**************************************************!*\ + !*** ./node_modules/clipboard/dist/clipboard.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("/*!\n * clipboard.js v2.0.6\n * https://clipboardjs.com/\n * \n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory();\n\telse {}\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 6);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar is = __webpack_require__(3);\nvar delegate = __webpack_require__(4);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar closest = __webpack_require__(5);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(0);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n\n// CONCATENATED MODULE: ./src/clipboard-action.js\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\n/**\n * Inner class which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n */\n\nvar clipboard_action_ClipboardAction = function () {\n /**\n * @param {Object} options\n */\n function ClipboardAction(options) {\n _classCallCheck(this, ClipboardAction);\n\n this.resolveOptions(options);\n this.initSelection();\n }\n\n /**\n * Defines base properties passed from constructor.\n * @param {Object} options\n */\n\n\n _createClass(ClipboardAction, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = options.action;\n this.container = options.container;\n this.emitter = options.emitter;\n this.target = options.target;\n this.text = options.text;\n this.trigger = options.trigger;\n\n this.selectedText = '';\n }\n\n /**\n * Decides which selection strategy is going to be applied based\n * on the existence of `text` and `target` properties.\n */\n\n }, {\n key: 'initSelection',\n value: function initSelection() {\n if (this.text) {\n this.selectFake();\n } else if (this.target) {\n this.selectTarget();\n }\n }\n\n /**\n * Creates a fake textarea element, sets its value from `text` property,\n * and makes a selection on it.\n */\n\n }, {\n key: 'selectFake',\n value: function selectFake() {\n var _this = this;\n\n var isRTL = document.documentElement.getAttribute('dir') == 'rtl';\n\n this.removeFake();\n\n this.fakeHandlerCallback = function () {\n return _this.removeFake();\n };\n this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;\n\n this.fakeElem = document.createElement('textarea');\n // Prevent zooming on iOS\n this.fakeElem.style.fontSize = '12pt';\n // Reset box model\n this.fakeElem.style.border = '0';\n this.fakeElem.style.padding = '0';\n this.fakeElem.style.margin = '0';\n // Move element out of screen horizontally\n this.fakeElem.style.position = 'absolute';\n this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';\n // Move element to the same position vertically\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n this.fakeElem.style.top = yPosition + 'px';\n\n this.fakeElem.setAttribute('readonly', '');\n this.fakeElem.value = this.text;\n\n this.container.appendChild(this.fakeElem);\n\n this.selectedText = select_default()(this.fakeElem);\n this.copyText();\n }\n\n /**\n * Only removes the fake element after another click event, that way\n * a user can hit `Ctrl+C` to copy because selection still exists.\n */\n\n }, {\n key: 'removeFake',\n value: function removeFake() {\n if (this.fakeHandler) {\n this.container.removeEventListener('click', this.fakeHandlerCallback);\n this.fakeHandler = null;\n this.fakeHandlerCallback = null;\n }\n\n if (this.fakeElem) {\n this.container.removeChild(this.fakeElem);\n this.fakeElem = null;\n }\n }\n\n /**\n * Selects the content from element passed on `target` property.\n */\n\n }, {\n key: 'selectTarget',\n value: function selectTarget() {\n this.selectedText = select_default()(this.target);\n this.copyText();\n }\n\n /**\n * Executes the copy operation based on the current selection.\n */\n\n }, {\n key: 'copyText',\n value: function copyText() {\n var succeeded = void 0;\n\n try {\n succeeded = document.execCommand(this.action);\n } catch (err) {\n succeeded = false;\n }\n\n this.handleResult(succeeded);\n }\n\n /**\n * Fires an event based on the copy operation result.\n * @param {Boolean} succeeded\n */\n\n }, {\n key: 'handleResult',\n value: function handleResult(succeeded) {\n this.emitter.emit(succeeded ? 'success' : 'error', {\n action: this.action,\n text: this.selectedText,\n trigger: this.trigger,\n clearSelection: this.clearSelection.bind(this)\n });\n }\n\n /**\n * Moves focus away from `target` and back to the trigger, removes current selection.\n */\n\n }, {\n key: 'clearSelection',\n value: function clearSelection() {\n if (this.trigger) {\n this.trigger.focus();\n }\n document.activeElement.blur();\n window.getSelection().removeAllRanges();\n }\n\n /**\n * Sets the `action` to be performed which can be either 'copy' or 'cut'.\n * @param {String} action\n */\n\n }, {\n key: 'destroy',\n\n\n /**\n * Destroy lifecycle.\n */\n value: function destroy() {\n this.removeFake();\n }\n }, {\n key: 'action',\n set: function set() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';\n\n this._action = action;\n\n if (this._action !== 'copy' && this._action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n }\n }\n\n /**\n * Gets the `action` property.\n * @return {String}\n */\n ,\n get: function get() {\n return this._action;\n }\n\n /**\n * Sets the `target` property using an element\n * that will be have its content copied.\n * @param {Element} target\n */\n\n }, {\n key: 'target',\n set: function set(target) {\n if (target !== undefined) {\n if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {\n if (this.action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n\n this._target = target;\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n }\n }\n\n /**\n * Gets the `target` property.\n * @return {String|HTMLElement}\n */\n ,\n get: function get() {\n return this._target;\n }\n }]);\n\n return ClipboardAction;\n}();\n\n/* harmony default export */ var clipboard_action = (clipboard_action_ClipboardAction);\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(1);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(2);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n\n// CONCATENATED MODULE: ./src/clipboard.js\nvar clipboard_typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar clipboard_createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction clipboard_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\nvar clipboard_Clipboard = function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n clipboard_classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));\n\n _this.resolveOptions(options);\n _this.listenClick(trigger);\n return _this;\n }\n\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n clipboard_createClass(Clipboard, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: 'listenClick',\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: 'onClick',\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n\n if (this.clipboardAction) {\n this.clipboardAction = null;\n }\n\n this.clipboardAction = new clipboard_action({\n action: this.action(trigger),\n target: this.target(trigger),\n text: this.text(trigger),\n container: this.container,\n trigger: trigger,\n emitter: this\n });\n }\n\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: 'defaultAction',\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: 'defaultTarget',\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: 'defaultText',\n\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: 'destroy',\n value: function destroy() {\n this.listener.destroy();\n\n if (this.clipboardAction) {\n this.clipboardAction.destroy();\n this.clipboardAction = null;\n }\n }\n }], [{\n key: 'isSupported',\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n\n return support;\n }\n }]);\n\n return Clipboard;\n}(tiny_emitter_default.a);\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\n\nfunction getAttributeValue(suffix, element) {\n var attribute = 'data-clipboard-' + suffix;\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n\n/* harmony default export */ var clipboard = __webpack_exports__[\"default\"] = (clipboard_Clipboard);\n\n/***/ })\n/******/ ])[\"default\"];\n});\n\n//# sourceURL=webpack:///./node_modules/clipboard/dist/clipboard.js?"); + +/***/ }), + +/***/ "./node_modules/escape-html/index.js": +/*!*******************************************!*\ + !*** ./node_modules/escape-html/index.js ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n\n\n//# sourceURL=webpack:///./node_modules/escape-html/index.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/F.js": +/*!************************************!*\ + !*** ./node_modules/ramda/es/F.js ***! + \************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * A function that always returns `false`. Any passed in parameters are ignored.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig * -> Boolean\n * @param {*}\n * @return {Boolean}\n * @see R.T\n * @example\n *\n * R.F(); //=> false\n */\nvar F = function () {\n return false;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (F);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/F.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/T.js": +/*!************************************!*\ + !*** ./node_modules/ramda/es/T.js ***! + \************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * A function that always returns `true`. Any passed in parameters are ignored.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig * -> Boolean\n * @param {*}\n * @return {Boolean}\n * @see R.F\n * @example\n *\n * R.T(); //=> true\n */\nvar T = function () {\n return true;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (T);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/T.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/__.js": +/*!*************************************!*\ + !*** ./node_modules/ramda/es/__.js ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * A special placeholder value used to specify \"gaps\" within curried functions,\n * allowing partial application of any combination of arguments, regardless of\n * their positions.\n *\n * If `g` is a curried ternary function and `_` is `R.__`, the following are\n * equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2, _)(1, 3)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @name __\n * @constant\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @example\n *\n * const greet = R.replace('{name}', R.__, 'Hello, {name}!');\n * greet('Alice'); //=> 'Hello, Alice!'\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n '@@functional/placeholder': true\n});\n\n//# sourceURL=webpack:///./node_modules/ramda/es/__.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/add.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/add.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Adds two values.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a\n * @param {Number} b\n * @return {Number}\n * @see R.subtract\n * @example\n *\n * R.add(2, 3); //=> 5\n * R.add(7)(10); //=> 17\n */\n\nvar add =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function add(a, b) {\n return Number(a) + Number(b);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (add);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/add.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/addIndex.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/addIndex.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n\n\n\n/**\n * Creates a new list iteration function from an existing one by adding two new\n * parameters to its callback function: the current index, and the entire list.\n *\n * This would turn, for instance, [`R.map`](#map) function into one that\n * more closely resembles `Array.prototype.map`. Note that this will only work\n * for functions in which the iteration callback function is the first\n * parameter, and where the list is the last parameter. (This latter might be\n * unimportant if the list parameter is not used.)\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Function\n * @category List\n * @sig ((a ... -> b) ... -> [a] -> *) -> ((a ..., Int, [a] -> b) ... -> [a] -> *)\n * @param {Function} fn A list iteration function that does not pass index or list to its callback\n * @return {Function} An altered list iteration function that passes (item, index, list) to its callback\n * @example\n *\n * const mapIndexed = R.addIndex(R.map);\n * mapIndexed((val, idx) => idx + '-' + val, ['f', 'o', 'o', 'b', 'a', 'r']);\n * //=> ['0-f', '1-o', '2-o', '3-b', '4-a', '5-r']\n */\n\nvar addIndex =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function addIndex(fn) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(fn.length, function () {\n var idx = 0;\n var origFn = arguments[0];\n var list = arguments[arguments.length - 1];\n var args = Array.prototype.slice.call(arguments, 0);\n\n args[0] = function () {\n var result = origFn.apply(this, Object(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arguments, [idx, list]));\n idx += 1;\n return result;\n };\n\n return fn.apply(this, args);\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (addIndex);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/addIndex.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/adjust.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/adjust.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n\n/**\n * Applies a function to the value at the given index of an array, returning a\n * new copy of the array with the element at the given index replaced with the\n * result of the function application.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig Number -> (a -> a) -> [a] -> [a]\n * @param {Number} idx The index.\n * @param {Function} fn The function to apply.\n * @param {Array|Arguments} list An array-like object whose value\n * at the supplied index will be replaced.\n * @return {Array} A copy of the supplied array-like object with\n * the element at index `idx` replaced with the value\n * returned by applying `fn` to the existing element.\n * @see R.update\n * @example\n *\n * R.adjust(1, R.toUpper, ['a', 'b', 'c', 'd']); //=> ['a', 'B', 'c', 'd']\n * R.adjust(-1, R.toUpper, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c', 'D']\n * @symb R.adjust(-1, f, [a, b]) = [a, f(b)]\n * @symb R.adjust(0, f, [a, b]) = [f(a), b]\n */\n\nvar adjust =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function adjust(idx, fn, list) {\n if (idx >= list.length || idx < -list.length) {\n return list;\n }\n\n var start = idx < 0 ? list.length : 0;\n\n var _idx = start + idx;\n\n var _list = Object(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(list);\n\n _list[_idx] = fn(list[_idx]);\n return _list;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (adjust);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/adjust.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/all.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/all.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xall_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xall.js */ \"./node_modules/ramda/es/internal/_xall.js\");\n\n\n\n/**\n * Returns `true` if all elements of the list match the predicate, `false` if\n * there are any that don't.\n *\n * Dispatches to the `all` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is satisfied by every element, `false`\n * otherwise.\n * @see R.any, R.none, R.transduce\n * @example\n *\n * const equals3 = R.equals(3);\n * R.all(equals3)([3, 3, 3, 3]); //=> true\n * R.all(equals3)([3, 3, 1, 3]); //=> false\n */\n\nvar all =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['all'], _internal_xall_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function all(fn, list) {\n var idx = 0;\n\n while (idx < list.length) {\n if (!fn(list[idx])) {\n return false;\n }\n\n idx += 1;\n }\n\n return true;\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (all);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/all.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/allPass.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/allPass.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./max.js */ \"./node_modules/ramda/es/max.js\");\n/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pluck.js */ \"./node_modules/ramda/es/pluck.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n\n\n\n\n\n/**\n * Takes a list of predicates and returns a predicate that returns true for a\n * given list of arguments if every one of the provided predicates is satisfied\n * by those arguments.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Logic\n * @sig [(*... -> Boolean)] -> (*... -> Boolean)\n * @param {Array} predicates An array of predicates to check\n * @return {Function} The combined predicate\n * @see R.anyPass\n * @example\n *\n * const isQueen = R.propEq('rank', 'Q');\n * const isSpade = R.propEq('suit', '♠︎');\n * const isQueenOfSpades = R.allPass([isQueen, isSpade]);\n *\n * isQueenOfSpades({rank: 'Q', suit: '♣︎'}); //=> false\n * isQueenOfSpades({rank: 'Q', suit: '♠︎'}); //=> true\n */\n\nvar allPass =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function allPass(preds) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_reduce_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(_max_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], 0, Object(_pluck_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])('length', preds)), function () {\n var idx = 0;\n var len = preds.length;\n\n while (idx < len) {\n if (!preds[idx].apply(this, arguments)) {\n return false;\n }\n\n idx += 1;\n }\n\n return true;\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (allPass);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/allPass.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/always.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/always.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Returns a function that always returns the given value. Note that for\n * non-primitives the value returned is a reference to the original value.\n *\n * This function is known as `const`, `constant`, or `K` (for K combinator) in\n * other languages and libraries.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> (* -> a)\n * @param {*} val The value to wrap in a function\n * @return {Function} A Function :: * -> val.\n * @example\n *\n * const t = R.always('Tee');\n * t(); //=> 'Tee'\n */\n\nvar always =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function always(val) {\n return function () {\n return val;\n };\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (always);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/always.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/and.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/and.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns `true` if both arguments are `true`; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {Any} a\n * @param {Any} b\n * @return {Any} the first argument if it is falsy, otherwise the second argument.\n * @see R.both, R.xor\n * @example\n *\n * R.and(true, true); //=> true\n * R.and(true, false); //=> false\n * R.and(false, true); //=> false\n * R.and(false, false); //=> false\n */\n\nvar and =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function and(a, b) {\n return a && b;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (and);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/and.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/andThen.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/andThen.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_assertPromise_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_assertPromise.js */ \"./node_modules/ramda/es/internal/_assertPromise.js\");\n\n\n/**\n * Returns the result of applying the onSuccess function to the value inside\n * a successfully resolved promise. This is useful for working with promises\n * inside function compositions.\n *\n * @func\n * @memberOf R\n * @since v0.27.0\n * @category Function\n * @sig (a -> b) -> (Promise e a) -> (Promise e b)\n * @sig (a -> (Promise e b)) -> (Promise e a) -> (Promise e b)\n * @param {Function} onSuccess The function to apply. Can return a value or a promise of a value.\n * @param {Promise} p\n * @return {Promise} The result of calling `p.then(onSuccess)`\n * @see R.otherwise\n * @example\n *\n * var makeQuery = (email) => ({ query: { email }});\n *\n * //getMemberName :: String -> Promise ({firstName, lastName})\n * var getMemberName = R.pipe(\n * makeQuery,\n * fetchMember,\n * R.andThen(R.pick(['firstName', 'lastName']))\n * );\n */\n\nvar andThen =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function andThen(f, p) {\n Object(_internal_assertPromise_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])('andThen', p);\n\n return p.then(f);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (andThen);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/andThen.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/any.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/any.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xany_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xany.js */ \"./node_modules/ramda/es/internal/_xany.js\");\n\n\n\n/**\n * Returns `true` if at least one of the elements of the list match the predicate,\n * `false` otherwise.\n *\n * Dispatches to the `any` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is satisfied by at least one element, `false`\n * otherwise.\n * @see R.all, R.none, R.transduce\n * @example\n *\n * const lessThan0 = R.flip(R.lt)(0);\n * const lessThan2 = R.flip(R.lt)(2);\n * R.any(lessThan0)([1, 2]); //=> false\n * R.any(lessThan2)([1, 2]); //=> true\n */\n\nvar any =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['any'], _internal_xany_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function any(fn, list) {\n var idx = 0;\n\n while (idx < list.length) {\n if (fn(list[idx])) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (any);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/any.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/anyPass.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/anyPass.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./max.js */ \"./node_modules/ramda/es/max.js\");\n/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pluck.js */ \"./node_modules/ramda/es/pluck.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n\n\n\n\n\n/**\n * Takes a list of predicates and returns a predicate that returns true for a\n * given list of arguments if at least one of the provided predicates is\n * satisfied by those arguments.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Logic\n * @sig [(*... -> Boolean)] -> (*... -> Boolean)\n * @param {Array} predicates An array of predicates to check\n * @return {Function} The combined predicate\n * @see R.allPass\n * @example\n *\n * const isClub = R.propEq('suit', '♣');\n * const isSpade = R.propEq('suit', '♠');\n * const isBlackCard = R.anyPass([isClub, isSpade]);\n *\n * isBlackCard({rank: '10', suit: '♣'}); //=> true\n * isBlackCard({rank: 'Q', suit: '♠'}); //=> true\n * isBlackCard({rank: 'Q', suit: '♦'}); //=> false\n */\n\nvar anyPass =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function anyPass(preds) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_reduce_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(_max_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], 0, Object(_pluck_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])('length', preds)), function () {\n var idx = 0;\n var len = preds.length;\n\n while (idx < len) {\n if (preds[idx].apply(this, arguments)) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (anyPass);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/anyPass.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/ap.js": +/*!*************************************!*\ + !*** ./node_modules/ramda/es/ap.js ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n\n\n\n\n/**\n * ap applies a list of functions to a list of values.\n *\n * Dispatches to the `ap` method of the second argument, if present. Also\n * treats curried functions as applicatives.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig [a -> b] -> [a] -> [b]\n * @sig Apply f => f (a -> b) -> f a -> f b\n * @sig (r -> a -> b) -> (r -> a) -> (r -> b)\n * @param {*} applyF\n * @param {*} applyX\n * @return {*}\n * @example\n *\n * R.ap([R.multiply(2), R.add(3)], [1,2,3]); //=> [2, 4, 6, 4, 5, 6]\n * R.ap([R.concat('tasty '), R.toUpper], ['pizza', 'salad']); //=> [\"tasty pizza\", \"tasty salad\", \"PIZZA\", \"SALAD\"]\n *\n * // R.ap can also be used as S combinator\n * // when only two functions are passed\n * R.ap(R.concat, R.toUpper)('Ramda') //=> 'RamdaRAMDA'\n * @symb R.ap([f, g], [a, b]) = [f(a), f(b), g(a), g(b)]\n */\n\nvar ap =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function ap(applyF, applyX) {\n return typeof applyX['fantasy-land/ap'] === 'function' ? applyX['fantasy-land/ap'](applyF) : typeof applyF.ap === 'function' ? applyF.ap(applyX) : typeof applyF === 'function' ? function (x) {\n return applyF(x)(applyX(x));\n } : Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(function (acc, f) {\n return Object(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(acc, Object(_map_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(f, applyX));\n }, [], applyF);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ap);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/ap.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/aperture.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/aperture.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_aperture_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_aperture.js */ \"./node_modules/ramda/es/internal/_aperture.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xaperture_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_xaperture.js */ \"./node_modules/ramda/es/internal/_xaperture.js\");\n\n\n\n\n/**\n * Returns a new list, composed of n-tuples of consecutive elements. If `n` is\n * greater than the length of the list, an empty list is returned.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig Number -> [a] -> [[a]]\n * @param {Number} n The size of the tuples to create\n * @param {Array} list The list to split into `n`-length tuples\n * @return {Array} The resulting list of `n`-length tuples\n * @see R.transduce\n * @example\n *\n * R.aperture(2, [1, 2, 3, 4, 5]); //=> [[1, 2], [2, 3], [3, 4], [4, 5]]\n * R.aperture(3, [1, 2, 3, 4, 5]); //=> [[1, 2, 3], [2, 3, 4], [3, 4, 5]]\n * R.aperture(7, [1, 2, 3, 4, 5]); //=> []\n */\n\nvar aperture =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])([], _internal_xaperture_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], _internal_aperture_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (aperture);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/aperture.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/append.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/append.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Returns a new list containing the contents of the given list, followed by\n * the given element.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} el The element to add to the end of the new list.\n * @param {Array} list The list of elements to add a new item to.\n * list.\n * @return {Array} A new list containing the elements of the old list followed by `el`.\n * @see R.prepend\n * @example\n *\n * R.append('tests', ['write', 'more']); //=> ['write', 'more', 'tests']\n * R.append('tests', []); //=> ['tests']\n * R.append(['tests'], ['write', 'more']); //=> ['write', 'more', ['tests']]\n */\n\nvar append =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function append(el, list) {\n return Object(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(list, [el]);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (append);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/append.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/apply.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/apply.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Applies function `fn` to the argument list `args`. This is useful for\n * creating a fixed-arity function from a variadic function. `fn` should be a\n * bound function if context is significant.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig (*... -> a) -> [*] -> a\n * @param {Function} fn The function which will be called with `args`\n * @param {Array} args The arguments to call `fn` with\n * @return {*} result The result, equivalent to `fn(...args)`\n * @see R.call, R.unapply\n * @example\n *\n * const nums = [1, 2, 3, -99, 42, 6, 7];\n * R.apply(Math.max, nums); //=> 42\n * @symb R.apply(f, [a, b, c]) = f(a, b, c)\n */\n\nvar apply =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function apply(fn, args) {\n return fn.apply(this, args);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (apply);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/apply.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/applySpec.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/applySpec.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _apply_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./apply.js */ \"./node_modules/ramda/es/apply.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./max.js */ \"./node_modules/ramda/es/max.js\");\n/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pluck.js */ \"./node_modules/ramda/es/pluck.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/ramda/es/keys.js\");\n/* harmony import */ var _values_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./values.js */ \"./node_modules/ramda/es/values.js\");\n\n\n\n\n\n\n\n // Use custom mapValues function to avoid issues with specs that include a \"map\" key and R.map\n// delegating calls to .map\n\nfunction mapValues(fn, obj) {\n return Object(_keys_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(obj).reduce(function (acc, key) {\n acc[key] = fn(obj[key]);\n return acc;\n }, {});\n}\n/**\n * Given a spec object recursively mapping properties to functions, creates a\n * function producing an object of the same structure, by mapping each property\n * to the result of calling its associated function with the supplied arguments.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Function\n * @sig {k: ((a, b, ..., m) -> v)} -> ((a, b, ..., m) -> {k: v})\n * @param {Object} spec an object recursively mapping properties to functions for\n * producing the values for these properties.\n * @return {Function} A function that returns an object of the same structure\n * as `spec', with each property set to the value returned by calling its\n * associated function with the supplied arguments.\n * @see R.converge, R.juxt\n * @example\n *\n * const getMetrics = R.applySpec({\n * sum: R.add,\n * nested: { mul: R.multiply }\n * });\n * getMetrics(2, 4); // => { sum: 6, nested: { mul: 8 } }\n * @symb R.applySpec({ x: f, y: { z: g } })(a, b) = { x: f(a, b), y: { z: g(a, b) } }\n */\n\n\nvar applySpec =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function applySpec(spec) {\n spec = mapValues(function (v) {\n return typeof v == 'function' ? v : applySpec(v);\n }, spec);\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Object(_reduce_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(_max_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], 0, Object(_pluck_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])('length', Object(_values_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(spec))), function () {\n var args = arguments;\n return mapValues(function (f) {\n return Object(_apply_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(f, args);\n }, spec);\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (applySpec);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/applySpec.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/applyTo.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/applyTo.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Takes a value and applies a function to it.\n *\n * This function is also known as the `thrush` combinator.\n *\n * @func\n * @memberOf R\n * @since v0.25.0\n * @category Function\n * @sig a -> (a -> b) -> b\n * @param {*} x The value\n * @param {Function} f The function to apply\n * @return {*} The result of applying `f` to `x`\n * @example\n *\n * const t42 = R.applyTo(42);\n * t42(R.identity); //=> 42\n * t42(R.add(1)); //=> 43\n */\n\nvar applyTo =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function applyTo(x, f) {\n return f(x);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (applyTo);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/applyTo.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/ascend.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/ascend.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Makes an ascending comparator function out of a function that returns a value\n * that can be compared with `<` and `>`.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Function\n * @sig Ord b => (a -> b) -> a -> a -> Number\n * @param {Function} fn A function of arity one that returns a value that can be compared\n * @param {*} a The first item to be compared.\n * @param {*} b The second item to be compared.\n * @return {Number} `-1` if fn(a) < fn(b), `1` if fn(b) < fn(a), otherwise `0`\n * @see R.descend\n * @example\n *\n * const byAge = R.ascend(R.prop('age'));\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByYoungestFirst = R.sort(byAge, people);\n * //=> [{ name: 'Mikhail', age: 62 },{ name: 'Emma', age: 70 }, { name: 'Peter', age: 78 }]\n */\n\nvar ascend =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function ascend(fn, a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ascend);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/ascend.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/assoc.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/assoc.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Makes a shallow clone of an object, setting or overriding the specified\n * property with the given value. Note that this copies and flattens prototype\n * properties onto the new object as well. All non-primitive properties are\n * copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @sig String -> a -> {k: v} -> {k: v}\n * @param {String} prop The property name to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except for the changed property.\n * @see R.dissoc, R.pick\n * @example\n *\n * R.assoc('c', 3, {a: 1, b: 2}); //=> {a: 1, b: 2, c: 3}\n */\n\nvar assoc =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function assoc(prop, val, obj) {\n var result = {};\n\n for (var p in obj) {\n result[p] = obj[p];\n }\n\n result[prop] = val;\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (assoc);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/assoc.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/assocPath.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/assocPath.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n/* harmony import */ var _internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isArray.js */ \"./node_modules/ramda/es/internal/_isArray.js\");\n/* harmony import */ var _internal_isInteger_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_isInteger.js */ \"./node_modules/ramda/es/internal/_isInteger.js\");\n/* harmony import */ var _assoc_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./assoc.js */ \"./node_modules/ramda/es/assoc.js\");\n/* harmony import */ var _isNil_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./isNil.js */ \"./node_modules/ramda/es/isNil.js\");\n\n\n\n\n\n\n/**\n * Makes a shallow clone of an object, setting or overriding the nodes required\n * to create the given path, and placing the specific value at the tail end of\n * that path. Note that this copies and flattens prototype properties onto the\n * new object as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> a -> {a} -> {a}\n * @param {Array} path the path to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except along the specified path.\n * @see R.dissocPath\n * @example\n *\n * R.assocPath(['a', 'b', 'c'], 42, {a: {b: {c: 0}}}); //=> {a: {b: {c: 42}}}\n *\n * // Any missing or non-object keys in path will be overridden\n * R.assocPath(['a', 'b', 'c'], 42, {a: 5}); //=> {a: {b: {c: 42}}}\n */\n\nvar assocPath =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function assocPath(path, val, obj) {\n if (path.length === 0) {\n return val;\n }\n\n var idx = path[0];\n\n if (path.length > 1) {\n var nextObj = !Object(_isNil_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(obj) && Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(idx, obj) ? obj[idx] : Object(_internal_isInteger_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(path[1]) ? [] : {};\n val = assocPath(Array.prototype.slice.call(path, 1), val, nextObj);\n }\n\n if (Object(_internal_isInteger_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(idx) && Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(obj)) {\n var arr = [].concat(obj);\n arr[idx] = val;\n return arr;\n } else {\n return Object(_assoc_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(idx, val, obj);\n }\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (assocPath);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/assocPath.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/binary.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/binary.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _nAry_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./nAry.js */ \"./node_modules/ramda/es/nAry.js\");\n\n\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly 2 parameters. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Function\n * @sig (* -> c) -> (a, b -> c)\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity 2.\n * @see R.nAry, R.unary\n * @example\n *\n * const takesThreeArgs = function(a, b, c) {\n * return [a, b, c];\n * };\n * takesThreeArgs.length; //=> 3\n * takesThreeArgs(1, 2, 3); //=> [1, 2, 3]\n *\n * const takesTwoArgs = R.binary(takesThreeArgs);\n * takesTwoArgs.length; //=> 2\n * // Only 2 arguments are passed to the wrapped function\n * takesTwoArgs(1, 2, 3); //=> [1, 2, undefined]\n * @symb R.binary(f)(a, b, c) = f(a, b)\n */\n\nvar binary =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function binary(fn) {\n return Object(_nAry_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(2, fn);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (binary);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/binary.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/bind.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/bind.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Creates a function that is bound to a context.\n * Note: `R.bind` does not provide the additional argument-binding capabilities of\n * [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @category Object\n * @sig (* -> *) -> {*} -> (* -> *)\n * @param {Function} fn The function to bind to context\n * @param {Object} thisObj The context to bind `fn` to\n * @return {Function} A function that will execute in the context of `thisObj`.\n * @see R.partial\n * @example\n *\n * const log = R.bind(console.log, console);\n * R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}\n * // logs {a: 2}\n * @symb R.bind(f, o)(a, b) = f.call(o, a, b)\n */\n\nvar bind =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function bind(fn, thisObj) {\n return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (bind);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/bind.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/both.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/both.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isFunction.js */ \"./node_modules/ramda/es/internal/_isFunction.js\");\n/* harmony import */ var _and_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./and.js */ \"./node_modules/ramda/es/and.js\");\n/* harmony import */ var _lift_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lift.js */ \"./node_modules/ramda/es/lift.js\");\n\n\n\n\n/**\n * A function which calls the two provided functions and returns the `&&`\n * of the results.\n * It returns the result of the first function if it is false-y and the result\n * of the second function otherwise. Note that this is short-circuited,\n * meaning that the second function will not be invoked if the first returns a\n * false-y value.\n *\n * In addition to functions, `R.both` also accepts any fantasy-land compatible\n * applicative functor.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> Boolean) -> (*... -> Boolean)\n * @param {Function} f A predicate\n * @param {Function} g Another predicate\n * @return {Function} a function that applies its arguments to `f` and `g` and `&&`s their outputs together.\n * @see R.and\n * @example\n *\n * const gt10 = R.gt(R.__, 10)\n * const lt20 = R.lt(R.__, 20)\n * const f = R.both(gt10, lt20);\n * f(15); //=> true\n * f(30); //=> false\n *\n * R.both(Maybe.Just(false), Maybe.Just(55)); // => Maybe.Just(false)\n * R.both([false, false, 'a'], [11]); //=> [false, false, 11]\n */\n\nvar both =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function both(f, g) {\n return Object(_internal_isFunction_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(f) ? function _both() {\n return f.apply(this, arguments) && g.apply(this, arguments);\n } : Object(_lift_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_and_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(f, g);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (both);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/both.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/call.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/call.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./curry.js */ \"./node_modules/ramda/es/curry.js\");\n\n/**\n * Returns the result of calling its first argument with the remaining\n * arguments. This is occasionally useful as a converging function for\n * [`R.converge`](#converge): the first branch can produce a function while the\n * remaining branches produce values to be passed to that function as its\n * arguments.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig (*... -> a),*... -> a\n * @param {Function} fn The function to apply to the remaining arguments.\n * @param {...*} args Any number of positional arguments.\n * @return {*}\n * @see R.apply\n * @example\n *\n * R.call(R.add, 1, 2); //=> 3\n *\n * const indentN = R.pipe(R.repeat(' '),\n * R.join(''),\n * R.replace(/^(?!$)/gm));\n *\n * const format = R.converge(R.call, [\n * R.pipe(R.prop('indent'), indentN),\n * R.prop('value')\n * ]);\n *\n * format({indent: 2, value: 'foo\\nbar\\nbaz\\n'}); //=> ' foo\\n bar\\n baz\\n'\n * @symb R.call(f, a, b) = f(a, b)\n */\n\nvar call =\n/*#__PURE__*/\nObject(_curry_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function call(fn) {\n return fn.apply(this, Array.prototype.slice.call(arguments, 1));\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (call);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/call.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/chain.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/chain.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_makeFlat_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_makeFlat.js */ \"./node_modules/ramda/es/internal/_makeFlat.js\");\n/* harmony import */ var _internal_xchain_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_xchain.js */ \"./node_modules/ramda/es/internal/_xchain.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n\n\n\n\n\n/**\n * `chain` maps a function over a list and concatenates the results. `chain`\n * is also known as `flatMap` in some libraries.\n *\n * Dispatches to the `chain` method of the second argument, if present,\n * according to the [FantasyLand Chain spec](https://github.com/fantasyland/fantasy-land#chain).\n *\n * If second argument is a function, `chain(f, g)(x)` is equivalent to `f(g(x), x)`.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig Chain m => (a -> m b) -> m a -> m b\n * @param {Function} fn The function to map with\n * @param {Array} list The list to map over\n * @return {Array} The result of flat-mapping `list` with `fn`\n * @example\n *\n * const duplicate = n => [n, n];\n * R.chain(duplicate, [1, 2, 3]); //=> [1, 1, 2, 2, 3, 3]\n *\n * R.chain(R.append, R.head)([1, 2, 3]); //=> [1, 2, 3, 1]\n */\n\nvar chain =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['fantasy-land/chain', 'chain'], _internal_xchain_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], function chain(fn, monad) {\n if (typeof monad === 'function') {\n return function (x) {\n return fn(monad(x))(x);\n };\n }\n\n return Object(_internal_makeFlat_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(false)(Object(_map_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(fn, monad));\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (chain);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/chain.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/clamp.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/clamp.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Restricts a number to be within a range.\n *\n * Also works for other ordered types such as Strings and Dates.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Relation\n * @sig Ord a => a -> a -> a -> a\n * @param {Number} minimum The lower limit of the clamp (inclusive)\n * @param {Number} maximum The upper limit of the clamp (inclusive)\n * @param {Number} value Value to be clamped\n * @return {Number} Returns `minimum` when `val < minimum`, `maximum` when `val > maximum`, returns `val` otherwise\n * @example\n *\n * R.clamp(1, 10, -5) // => 1\n * R.clamp(1, 10, 15) // => 10\n * R.clamp(1, 10, 4) // => 4\n */\n\nvar clamp =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function clamp(min, max, value) {\n if (min > max) {\n throw new Error('min must not be greater than max in clamp(min, max, value)');\n }\n\n return value < min ? min : value > max ? max : value;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (clamp);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/clamp.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/clone.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/clone.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_clone_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_clone.js */ \"./node_modules/ramda/es/internal/_clone.js\");\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n\n/**\n * Creates a deep copy of the value which may contain (nested) `Array`s and\n * `Object`s, `Number`s, `String`s, `Boolean`s and `Date`s. `Function`s are\n * assigned by reference rather than copied\n *\n * Dispatches to a `clone` method if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {*} -> {*}\n * @param {*} value The object or array to clone\n * @return {*} A deeply cloned copy of `val`\n * @example\n *\n * const objects = [{}, {}, {}];\n * const objectsClone = R.clone(objects);\n * objects === objectsClone; //=> false\n * objects[0] === objectsClone[0]; //=> false\n */\n\nvar clone =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function clone(value) {\n return value != null && typeof value.clone === 'function' ? value.clone() : Object(_internal_clone_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value, [], [], true);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (clone);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/clone.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/comparator.js": +/*!*********************************************!*\ + !*** ./node_modules/ramda/es/comparator.js ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Makes a comparator function out of a function that reports whether the first\n * element is less than the second.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((a, b) -> Boolean) -> ((a, b) -> Number)\n * @param {Function} pred A predicate function of arity two which will return `true` if the first argument\n * is less than the second, `false` otherwise\n * @return {Function} A Function :: a -> b -> Int that returns `-1` if a < b, `1` if b < a, otherwise `0`\n * @example\n *\n * const byAge = R.comparator((a, b) => a.age < b.age);\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByIncreasingAge = R.sort(byAge, people);\n * //=> [{ name: 'Mikhail', age: 62 },{ name: 'Emma', age: 70 }, { name: 'Peter', age: 78 }]\n */\n\nvar comparator =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function comparator(pred) {\n return function (a, b) {\n return pred(a, b) ? -1 : pred(b, a) ? 1 : 0;\n };\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (comparator);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/comparator.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/complement.js": +/*!*********************************************!*\ + !*** ./node_modules/ramda/es/complement.js ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _lift_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lift.js */ \"./node_modules/ramda/es/lift.js\");\n/* harmony import */ var _not_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./not.js */ \"./node_modules/ramda/es/not.js\");\n\n\n/**\n * Takes a function `f` and returns a function `g` such that if called with the same arguments\n * when `f` returns a \"truthy\" value, `g` returns `false` and when `f` returns a \"falsy\" value `g` returns `true`.\n *\n * `R.complement` may be applied to any functor\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> *) -> (*... -> Boolean)\n * @param {Function} f\n * @return {Function}\n * @see R.not\n * @example\n *\n * const isNotNil = R.complement(R.isNil);\n * isNil(null); //=> true\n * isNotNil(null); //=> false\n * isNil(7); //=> false\n * isNotNil(7); //=> true\n */\n\nvar complement =\n/*#__PURE__*/\nObject(_lift_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_not_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (complement);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/complement.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/compose.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/compose.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return compose; });\n/* harmony import */ var _pipe_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pipe.js */ \"./node_modules/ramda/es/pipe.js\");\n/* harmony import */ var _reverse_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reverse.js */ \"./node_modules/ramda/es/reverse.js\");\n\n\n/**\n * Performs right-to-left function composition. The last argument may have\n * any arity; the remaining arguments must be unary.\n *\n * **Note:** The result of compose is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((y -> z), (x -> y), ..., (o -> p), ((a, b, ..., n) -> o)) -> ((a, b, ..., n) -> z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.pipe\n * @example\n *\n * const classyGreeting = (firstName, lastName) => \"The name's \" + lastName + \", \" + firstName + \" \" + lastName\n * const yellGreeting = R.compose(R.toUpper, classyGreeting);\n * yellGreeting('James', 'Bond'); //=> \"THE NAME'S BOND, JAMES BOND\"\n *\n * R.compose(Math.abs, R.add(1), R.multiply(2))(-4) //=> 7\n *\n * @symb R.compose(f, g, h)(a, b) = f(g(h(a, b)))\n */\n\nfunction compose() {\n if (arguments.length === 0) {\n throw new Error('compose requires at least one argument');\n }\n\n return _pipe_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].apply(this, Object(_reverse_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(arguments));\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/compose.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/composeK.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/composeK.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return composeK; });\n/* harmony import */ var _chain_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./chain.js */ \"./node_modules/ramda/es/chain.js\");\n/* harmony import */ var _compose_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./compose.js */ \"./node_modules/ramda/es/compose.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n\n\n\n/**\n * Returns the right-to-left Kleisli composition of the provided functions,\n * each of which must return a value of a type supported by [`chain`](#chain).\n *\n * `R.composeK(h, g, f)` is equivalent to `R.compose(R.chain(h), R.chain(g), f)`.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Function\n * @sig Chain m => ((y -> m z), (x -> m y), ..., (a -> m b)) -> (a -> m z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.pipeK\n * @deprecated since v0.26.0\n * @example\n *\n * // get :: String -> Object -> Maybe *\n * const get = R.curry((propName, obj) => Maybe(obj[propName]))\n *\n * // getStateCode :: Maybe String -> Maybe String\n * const getStateCode = R.composeK(\n * R.compose(Maybe.of, R.toUpper),\n * get('state'),\n * get('address'),\n * get('user'),\n * );\n * getStateCode({\"user\":{\"address\":{\"state\":\"ny\"}}}); //=> Maybe.Just(\"NY\")\n * getStateCode({}); //=> Maybe.Nothing()\n * @symb R.composeK(f, g, h)(a) = R.chain(f, R.chain(g, h(a)))\n */\n\nfunction composeK() {\n if (arguments.length === 0) {\n throw new Error('composeK requires at least one argument');\n }\n\n var init = Array.prototype.slice.call(arguments);\n var last = init.pop();\n return Object(_compose_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_compose_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].apply(this, Object(_map_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_chain_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], init)), last);\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/composeK.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/composeP.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/composeP.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return composeP; });\n/* harmony import */ var _pipeP_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pipeP.js */ \"./node_modules/ramda/es/pipeP.js\");\n/* harmony import */ var _reverse_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reverse.js */ \"./node_modules/ramda/es/reverse.js\");\n\n\n/**\n * Performs right-to-left composition of one or more Promise-returning\n * functions. The last arguments may have any arity; the remaining\n * arguments must be unary.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((y -> Promise z), (x -> Promise y), ..., (a -> Promise b)) -> (a -> Promise z)\n * @param {...Function} functions The functions to compose\n * @return {Function}\n * @see R.pipeP\n * @deprecated since v0.26.0\n * @example\n *\n * const db = {\n * users: {\n * JOE: {\n * name: 'Joe',\n * followers: ['STEVE', 'SUZY']\n * }\n * }\n * }\n *\n * // We'll pretend to do a db lookup which returns a promise\n * const lookupUser = (userId) => Promise.resolve(db.users[userId])\n * const lookupFollowers = (user) => Promise.resolve(user.followers)\n * lookupUser('JOE').then(lookupFollowers)\n *\n * // followersForUser :: String -> Promise [UserId]\n * const followersForUser = R.composeP(lookupFollowers, lookupUser);\n * followersForUser('JOE').then(followers => console.log('Followers:', followers))\n * // Followers: [\"STEVE\",\"SUZY\"]\n */\n\nfunction composeP() {\n if (arguments.length === 0) {\n throw new Error('composeP requires at least one argument');\n }\n\n return _pipeP_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].apply(this, Object(_reverse_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(arguments));\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/composeP.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/composeWith.js": +/*!**********************************************!*\ + !*** ./node_modules/ramda/es/composeWith.js ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _pipeWith_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pipeWith.js */ \"./node_modules/ramda/es/pipeWith.js\");\n/* harmony import */ var _reverse_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reverse.js */ \"./node_modules/ramda/es/reverse.js\");\n\n\n\n/**\n * Performs right-to-left function composition using transforming function. The last argument may have\n * any arity; the remaining arguments must be unary.\n *\n * **Note:** The result of compose is not automatically curried. Transforming function is not used on the\n * last argument.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig ((* -> *), [(y -> z), (x -> y), ..., (o -> p), ((a, b, ..., n) -> o)]) -> ((a, b, ..., n) -> z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.compose, R.pipeWith\n * @example\n *\n * const composeWhileNotNil = R.composeWith((f, res) => R.isNil(res) ? res : f(res));\n *\n * composeWhileNotNil([R.inc, R.prop('age')])({age: 1}) //=> 2\n * composeWhileNotNil([R.inc, R.prop('age')])({}) //=> undefined\n *\n * @symb R.composeWith(f)([g, h, i])(...args) = f(g, f(h, i(...args)))\n */\n\nvar composeWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function composeWith(xf, list) {\n return _pipeWith_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].apply(this, [xf, Object(_reverse_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(list)]);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (composeWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/composeWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/concat.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/concat.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isArray.js */ \"./node_modules/ramda/es/internal/_isArray.js\");\n/* harmony import */ var _internal_isFunction_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isFunction.js */ \"./node_modules/ramda/es/internal/_isFunction.js\");\n/* harmony import */ var _internal_isString_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_isString.js */ \"./node_modules/ramda/es/internal/_isString.js\");\n/* harmony import */ var _toString_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./toString.js */ \"./node_modules/ramda/es/toString.js\");\n\n\n\n\n\n/**\n * Returns the result of concatenating the given lists or strings.\n *\n * Note: `R.concat` expects both arguments to be of the same type,\n * unlike the native `Array.prototype.concat` method. It will throw\n * an error if you `concat` an Array with a non-Array value.\n *\n * Dispatches to the `concat` method of the first argument, if present.\n * Can also concatenate two members of a [fantasy-land\n * compatible semigroup](https://github.com/fantasyland/fantasy-land#semigroup).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a] -> [a]\n * @sig String -> String -> String\n * @param {Array|String} firstList The first list\n * @param {Array|String} secondList The second list\n * @return {Array|String} A list consisting of the elements of `firstList` followed by the elements of\n * `secondList`.\n *\n * @example\n *\n * R.concat('ABC', 'DEF'); // 'ABCDEF'\n * R.concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n * R.concat([], []); //=> []\n */\n\nvar concat =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function concat(a, b) {\n if (Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(a)) {\n if (Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(b)) {\n return a.concat(b);\n }\n\n throw new TypeError(Object(_toString_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(b) + ' is not an array');\n }\n\n if (Object(_internal_isString_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(a)) {\n if (Object(_internal_isString_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(b)) {\n return a + b;\n }\n\n throw new TypeError(Object(_toString_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(b) + ' is not a string');\n }\n\n if (a != null && Object(_internal_isFunction_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a['fantasy-land/concat'])) {\n return a['fantasy-land/concat'](b);\n }\n\n if (a != null && Object(_internal_isFunction_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a.concat)) {\n return a.concat(b);\n }\n\n throw new TypeError(Object(_toString_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(a) + ' does not have a method named \"concat\" or \"fantasy-land/concat\"');\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (concat);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/concat.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/cond.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/cond.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./max.js */ \"./node_modules/ramda/es/max.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n\n\n\n\n\n/**\n * Returns a function, `fn`, which encapsulates `if/else, if/else, ...` logic.\n * `R.cond` takes a list of [predicate, transformer] pairs. All of the arguments\n * to `fn` are applied to each of the predicates in turn until one returns a\n * \"truthy\" value, at which point `fn` returns the result of applying its\n * arguments to the corresponding transformer. If none of the predicates\n * matches, `fn` returns undefined.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Logic\n * @sig [[(*... -> Boolean),(*... -> *)]] -> (*... -> *)\n * @param {Array} pairs A list of [predicate, transformer]\n * @return {Function}\n * @see R.ifElse, R.unless, R.when\n * @example\n *\n * const fn = R.cond([\n * [R.equals(0), R.always('water freezes at 0°C')],\n * [R.equals(100), R.always('water boils at 100°C')],\n * [R.T, temp => 'nothing special happens at ' + temp + '°C']\n * ]);\n * fn(0); //=> 'water freezes at 0°C'\n * fn(50); //=> 'nothing special happens at 50°C'\n * fn(100); //=> 'water boils at 100°C'\n */\n\nvar cond =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function cond(pairs) {\n var arity = Object(_reduce_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(_max_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], 0, Object(_map_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(function (pair) {\n return pair[0].length;\n }, pairs));\n return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arity, function () {\n var idx = 0;\n\n while (idx < pairs.length) {\n if (pairs[idx][0].apply(this, arguments)) {\n return pairs[idx][1].apply(this, arguments);\n }\n\n idx += 1;\n }\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cond);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/cond.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/construct.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/construct.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _constructN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constructN.js */ \"./node_modules/ramda/es/constructN.js\");\n\n\n/**\n * Wraps a constructor function inside a curried function that can be called\n * with the same arguments and returns the same type.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (* -> {*}) -> (* -> {*})\n * @param {Function} fn The constructor function to wrap.\n * @return {Function} A wrapped, curried constructor function.\n * @see R.invoker\n * @example\n *\n * // Constructor function\n * function Animal(kind) {\n * this.kind = kind;\n * };\n * Animal.prototype.sighting = function() {\n * return \"It's a \" + this.kind + \"!\";\n * }\n *\n * const AnimalConstructor = R.construct(Animal)\n *\n * // Notice we no longer need the 'new' keyword:\n * AnimalConstructor('Pig'); //=> {\"kind\": \"Pig\", \"sighting\": function (){...}};\n *\n * const animalTypes = [\"Lion\", \"Tiger\", \"Bear\"];\n * const animalSighting = R.invoker(0, 'sighting');\n * const sightNewAnimal = R.compose(animalSighting, AnimalConstructor);\n * R.map(sightNewAnimal, animalTypes); //=> [\"It's a Lion!\", \"It's a Tiger!\", \"It's a Bear!\"]\n */\n\nvar construct =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function construct(Fn) {\n return Object(_constructN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Fn.length, Fn);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (construct);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/construct.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/constructN.js": +/*!*********************************************!*\ + !*** ./node_modules/ramda/es/constructN.js ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _curry_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curry.js */ \"./node_modules/ramda/es/curry.js\");\n/* harmony import */ var _nAry_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nAry.js */ \"./node_modules/ramda/es/nAry.js\");\n\n\n\n/**\n * Wraps a constructor function inside a curried function that can be called\n * with the same arguments and returns the same type. The arity of the function\n * returned is specified to allow using variadic constructor functions.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Function\n * @sig Number -> (* -> {*}) -> (* -> {*})\n * @param {Number} n The arity of the constructor function.\n * @param {Function} Fn The constructor function to wrap.\n * @return {Function} A wrapped, curried constructor function.\n * @example\n *\n * // Variadic Constructor function\n * function Salad() {\n * this.ingredients = arguments;\n * }\n *\n * Salad.prototype.recipe = function() {\n * const instructions = R.map(ingredient => 'Add a dollop of ' + ingredient, this.ingredients);\n * return R.join('\\n', instructions);\n * };\n *\n * const ThreeLayerSalad = R.constructN(3, Salad);\n *\n * // Notice we no longer need the 'new' keyword, and the constructor is curried for 3 arguments.\n * const salad = ThreeLayerSalad('Mayonnaise')('Potato Chips')('Ketchup');\n *\n * console.log(salad.recipe());\n * // Add a dollop of Mayonnaise\n * // Add a dollop of Potato Chips\n * // Add a dollop of Ketchup\n */\n\nvar constructN =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function constructN(n, Fn) {\n if (n > 10) {\n throw new Error('Constructor with greater than ten arguments');\n }\n\n if (n === 0) {\n return function () {\n return new Fn();\n };\n }\n\n return Object(_curry_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_nAry_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(n, function ($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {\n switch (arguments.length) {\n case 1:\n return new Fn($0);\n\n case 2:\n return new Fn($0, $1);\n\n case 3:\n return new Fn($0, $1, $2);\n\n case 4:\n return new Fn($0, $1, $2, $3);\n\n case 5:\n return new Fn($0, $1, $2, $3, $4);\n\n case 6:\n return new Fn($0, $1, $2, $3, $4, $5);\n\n case 7:\n return new Fn($0, $1, $2, $3, $4, $5, $6);\n\n case 8:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7);\n\n case 9:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7, $8);\n\n case 10:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7, $8, $9);\n }\n }));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (constructN);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/constructN.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/contains.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/contains.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_includes.js */ \"./node_modules/ramda/es/internal/_includes.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Returns `true` if the specified value is equal, in [`R.equals`](#equals)\n * terms, to at least one element of the given list; `false` otherwise.\n * Works also with strings.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Boolean\n * @param {Object} a The item to compare against.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if an equivalent item is in the list, `false` otherwise.\n * @see R.includes\n * @deprecated since v0.26.0\n * @example\n *\n * R.contains(3, [1, 2, 3]); //=> true\n * R.contains(4, [1, 2, 3]); //=> false\n * R.contains({ name: 'Fred' }, [{ name: 'Fred' }]); //=> true\n * R.contains([42], [[42]]); //=> true\n * R.contains('ba', 'banana'); //=>true\n */\n\nvar contains =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_internal_includes_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (contains);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/contains.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/converge.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/converge.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_map.js */ \"./node_modules/ramda/es/internal/_map.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./max.js */ \"./node_modules/ramda/es/max.js\");\n/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pluck.js */ \"./node_modules/ramda/es/pluck.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n\n\n\n\n\n\n/**\n * Accepts a converging function and a list of branching functions and returns\n * a new function. The arity of the new function is the same as the arity of\n * the longest branching function. When invoked, this new function is applied\n * to some arguments, and each branching function is applied to those same\n * arguments. The results of each branching function are passed as arguments\n * to the converging function to produce the return value.\n *\n * @func\n * @memberOf R\n * @since v0.4.2\n * @category Function\n * @sig ((x1, x2, ...) -> z) -> [((a, b, ...) -> x1), ((a, b, ...) -> x2), ...] -> (a -> b -> ... -> z)\n * @param {Function} after A function. `after` will be invoked with the return values of\n * `fn1` and `fn2` as its arguments.\n * @param {Array} functions A list of functions.\n * @return {Function} A new function.\n * @see R.useWith\n * @example\n *\n * const average = R.converge(R.divide, [R.sum, R.length])\n * average([1, 2, 3, 4, 5, 6, 7]) //=> 4\n *\n * const strangeConcat = R.converge(R.concat, [R.toUpper, R.toLower])\n * strangeConcat(\"Yodel\") //=> \"YODELyodel\"\n *\n * @symb R.converge(f, [g, h])(a, b) = f(g(a, b), h(a, b))\n */\n\nvar converge =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function converge(after, fns) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Object(_reduce_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(_max_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], 0, Object(_pluck_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])('length', fns)), function () {\n var args = arguments;\n var context = this;\n return after.apply(context, Object(_internal_map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (fn) {\n return fn.apply(context, args);\n }, fns));\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (converge);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/converge.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/countBy.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/countBy.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _reduceBy_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reduceBy.js */ \"./node_modules/ramda/es/reduceBy.js\");\n\n/**\n * Counts the elements of a list according to how many match each value of a\n * key generated by the supplied function. Returns an object mapping the keys\n * produced by `fn` to the number of occurrences in the list. Note that all\n * keys are coerced to strings because of how JavaScript objects work.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig (a -> String) -> [a] -> {*}\n * @param {Function} fn The function used to map values to keys.\n * @param {Array} list The list to count elements from.\n * @return {Object} An object mapping keys to number of occurrences in the list.\n * @example\n *\n * const numbers = [1.0, 1.1, 1.2, 2.0, 3.0, 2.2];\n * R.countBy(Math.floor)(numbers); //=> {'1': 3, '2': 2, '3': 1}\n *\n * const letters = ['a', 'b', 'A', 'a', 'B', 'c'];\n * R.countBy(R.toLower)(letters); //=> {'a': 3, 'b': 2, 'c': 1}\n */\n\nvar countBy =\n/*#__PURE__*/\nObject(_reduceBy_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (acc, elem) {\n return acc + 1;\n}, 0);\n/* harmony default export */ __webpack_exports__[\"default\"] = (countBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/countBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/curry.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/curry.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n\n\n/**\n * Returns a curried equivalent of the provided function. The curried function\n * has two unusual capabilities. First, its arguments needn't be provided one\n * at a time. If `f` is a ternary function and `g` is `R.curry(f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (* -> a) -> (* -> a)\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curryN, R.partial\n * @example\n *\n * const addFourNumbers = (a, b, c, d) => a + b + c + d;\n *\n * const curriedAddFourNumbers = R.curry(addFourNumbers);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\n\nvar curry =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function curry(fn) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(fn.length, fn);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (curry);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/curry.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/curryN.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/curryN.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_curryN_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_curryN.js */ \"./node_modules/ramda/es/internal/_curryN.js\");\n\n\n\n\n/**\n * Returns a curried equivalent of the provided function, with the specified\n * arity. The curried function has two unusual capabilities. First, its\n * arguments needn't be provided one at a time. If `g` is `R.curryN(3, f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.5.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curry\n * @example\n *\n * const sumArgs = (...args) => R.sum(args);\n *\n * const curriedAddFourNumbers = R.curryN(4, sumArgs);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\n\nvar curryN =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(function curryN(length, fn) {\n if (length === 1) {\n return Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(fn);\n }\n\n return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(length, Object(_internal_curryN_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(length, [], fn));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (curryN);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/curryN.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/dec.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/dec.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _add_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./add.js */ \"./node_modules/ramda/es/add.js\");\n\n/**\n * Decrements its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number} n - 1\n * @see R.inc\n * @example\n *\n * R.dec(42); //=> 41\n */\n\nvar dec =\n/*#__PURE__*/\nObject(_add_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(-1);\n/* harmony default export */ __webpack_exports__[\"default\"] = (dec);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/dec.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/defaultTo.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/defaultTo.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns the second argument if it is not `null`, `undefined` or `NaN`;\n * otherwise the first argument is returned.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {a} default The default value.\n * @param {b} val `val` will be returned instead of `default` unless `val` is `null`, `undefined` or `NaN`.\n * @return {*} The second value if it is not `null`, `undefined` or `NaN`, otherwise the default value\n * @example\n *\n * const defaultTo42 = R.defaultTo(42);\n *\n * defaultTo42(null); //=> 42\n * defaultTo42(undefined); //=> 42\n * defaultTo42(false); //=> false\n * defaultTo42('Ramda'); //=> 'Ramda'\n * // parseInt('string') results in NaN\n * defaultTo42(parseInt('string')); //=> 42\n */\n\nvar defaultTo =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function defaultTo(d, v) {\n return v == null || v !== v ? d : v;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (defaultTo);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/defaultTo.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/descend.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/descend.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Makes a descending comparator function out of a function that returns a value\n * that can be compared with `<` and `>`.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Function\n * @sig Ord b => (a -> b) -> a -> a -> Number\n * @param {Function} fn A function of arity one that returns a value that can be compared\n * @param {*} a The first item to be compared.\n * @param {*} b The second item to be compared.\n * @return {Number} `-1` if fn(a) > fn(b), `1` if fn(b) > fn(a), otherwise `0`\n * @see R.ascend\n * @example\n *\n * const byAge = R.descend(R.prop('age'));\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByOldestFirst = R.sort(byAge, people);\n * //=> [{ name: 'Peter', age: 78 }, { name: 'Emma', age: 70 }, { name: 'Mikhail', age: 62 }]\n */\n\nvar descend =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function descend(fn, a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa > bb ? -1 : aa < bb ? 1 : 0;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (descend);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/descend.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/difference.js": +/*!*********************************************!*\ + !*** ./node_modules/ramda/es/difference.js ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_Set_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_Set.js */ \"./node_modules/ramda/es/internal/_Set.js\");\n\n\n/**\n * Finds the set (i.e. no duplicates) of all elements in the first list not\n * contained in the second list. Objects and Arrays are compared in terms of\n * value equality, not reference equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` that are not in `list2`.\n * @see R.differenceWith, R.symmetricDifference, R.symmetricDifferenceWith, R.without\n * @example\n *\n * R.difference([1,2,3,4], [7,6,5,4,3]); //=> [1,2]\n * R.difference([7,6,5,4,3], [1,2,3,4]); //=> [7,6,5]\n * R.difference([{a: 1}, {b: 2}], [{a: 1}, {c: 3}]) //=> [{b: 2}]\n */\n\nvar difference =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function difference(first, second) {\n var out = [];\n var idx = 0;\n var firstLen = first.length;\n var secondLen = second.length;\n var toFilterOut = new _internal_Set_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]();\n\n for (var i = 0; i < secondLen; i += 1) {\n toFilterOut.add(second[i]);\n }\n\n while (idx < firstLen) {\n if (toFilterOut.add(first[idx])) {\n out[out.length] = first[idx];\n }\n\n idx += 1;\n }\n\n return out;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (difference);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/difference.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/differenceWith.js": +/*!*************************************************!*\ + !*** ./node_modules/ramda/es/differenceWith.js ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_includesWith_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_includesWith.js */ \"./node_modules/ramda/es/internal/_includesWith.js\");\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n\n/**\n * Finds the set (i.e. no duplicates) of all elements in the first list not\n * contained in the second list. Duplication is determined according to the\n * value returned by applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [a] -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` that are not in `list2`.\n * @see R.difference, R.symmetricDifference, R.symmetricDifferenceWith\n * @example\n *\n * const cmp = (x, y) => x.a === y.a;\n * const l1 = [{a: 1}, {a: 2}, {a: 3}];\n * const l2 = [{a: 3}, {a: 4}];\n * R.differenceWith(cmp, l1, l2); //=> [{a: 1}, {a: 2}]\n */\n\nvar differenceWith =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function differenceWith(pred, first, second) {\n var out = [];\n var idx = 0;\n var firstLen = first.length;\n\n while (idx < firstLen) {\n if (!Object(_internal_includesWith_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(pred, first[idx], second) && !Object(_internal_includesWith_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(pred, first[idx], out)) {\n out.push(first[idx]);\n }\n\n idx += 1;\n }\n\n return out;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (differenceWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/differenceWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/dissoc.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/dissoc.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns a new object that does not contain a `prop` property.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Object\n * @sig String -> {k: v} -> {k: v}\n * @param {String} prop The name of the property to dissociate\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original but without the specified property\n * @see R.assoc, R.omit\n * @example\n *\n * R.dissoc('b', {a: 1, b: 2, c: 3}); //=> {a: 1, c: 3}\n */\n\nvar dissoc =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function dissoc(prop, obj) {\n var result = {};\n\n for (var p in obj) {\n result[p] = obj[p];\n }\n\n delete result[prop];\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (dissoc);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/dissoc.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/dissocPath.js": +/*!*********************************************!*\ + !*** ./node_modules/ramda/es/dissocPath.js ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isInteger.js */ \"./node_modules/ramda/es/internal/_isInteger.js\");\n/* harmony import */ var _internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isArray.js */ \"./node_modules/ramda/es/internal/_isArray.js\");\n/* harmony import */ var _assoc_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./assoc.js */ \"./node_modules/ramda/es/assoc.js\");\n/* harmony import */ var _dissoc_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dissoc.js */ \"./node_modules/ramda/es/dissoc.js\");\n/* harmony import */ var _remove_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./remove.js */ \"./node_modules/ramda/es/remove.js\");\n/* harmony import */ var _update_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./update.js */ \"./node_modules/ramda/es/update.js\");\n\n\n\n\n\n\n\n/**\n * Makes a shallow clone of an object, omitting the property at the given path.\n * Note that this copies and flattens prototype properties onto the new object\n * as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.11.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {k: v} -> {k: v}\n * @param {Array} path The path to the value to omit\n * @param {Object} obj The object to clone\n * @return {Object} A new object without the property at path\n * @see R.assocPath\n * @example\n *\n * R.dissocPath(['a', 'b', 'c'], {a: {b: {c: 42}}}); //=> {a: {b: {}}}\n */\n\nvar dissocPath =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function dissocPath(path, obj) {\n switch (path.length) {\n case 0:\n return obj;\n\n case 1:\n return Object(_internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(path[0]) && Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(obj) ? Object(_remove_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(path[0], 1, obj) : Object(_dissoc_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(path[0], obj);\n\n default:\n var head = path[0];\n var tail = Array.prototype.slice.call(path, 1);\n\n if (obj[head] == null) {\n return obj;\n } else if (Object(_internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(head) && Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(obj)) {\n return Object(_update_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(head, dissocPath(tail, obj[head]), obj);\n } else {\n return Object(_assoc_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(head, dissocPath(tail, obj[head]), obj);\n }\n\n }\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (dissocPath);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/dissocPath.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/divide.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/divide.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Divides two numbers. Equivalent to `a / b`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a / b`.\n * @see R.multiply\n * @example\n *\n * R.divide(71, 100); //=> 0.71\n *\n * const half = R.divide(R.__, 2);\n * half(42); //=> 21\n *\n * const reciprocal = R.divide(1);\n * reciprocal(4); //=> 0.25\n */\n\nvar divide =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function divide(a, b) {\n return a / b;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (divide);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/divide.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/drop.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/drop.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xdrop_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xdrop.js */ \"./node_modules/ramda/es/internal/_xdrop.js\");\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n\n\n\n\n/**\n * Returns all but the first `n` elements of the given list, string, or\n * transducer/transformer (or object with a `drop` method).\n *\n * Dispatches to the `drop` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n\n * @param {*} list\n * @return {*} A copy of list without the first `n` elements\n * @see R.take, R.transduce, R.dropLast, R.dropWhile\n * @example\n *\n * R.drop(1, ['foo', 'bar', 'baz']); //=> ['bar', 'baz']\n * R.drop(2, ['foo', 'bar', 'baz']); //=> ['baz']\n * R.drop(3, ['foo', 'bar', 'baz']); //=> []\n * R.drop(4, ['foo', 'bar', 'baz']); //=> []\n * R.drop(3, 'ramda'); //=> 'da'\n */\n\nvar drop =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['drop'], _internal_xdrop_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function drop(n, xs) {\n return Object(_slice_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(Math.max(0, n), Infinity, xs);\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (drop);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/drop.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/dropLast.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/dropLast.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_dropLast_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_dropLast.js */ \"./node_modules/ramda/es/internal/_dropLast.js\");\n/* harmony import */ var _internal_xdropLast_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_xdropLast.js */ \"./node_modules/ramda/es/internal/_xdropLast.js\");\n\n\n\n\n/**\n * Returns a list containing all but the last `n` elements of the given `list`.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n The number of elements of `list` to skip.\n * @param {Array} list The list of elements to consider.\n * @return {Array} A copy of the list with only the first `list.length - n` elements\n * @see R.takeLast, R.drop, R.dropWhile, R.dropLastWhile\n * @example\n *\n * R.dropLast(1, ['foo', 'bar', 'baz']); //=> ['foo', 'bar']\n * R.dropLast(2, ['foo', 'bar', 'baz']); //=> ['foo']\n * R.dropLast(3, ['foo', 'bar', 'baz']); //=> []\n * R.dropLast(4, ['foo', 'bar', 'baz']); //=> []\n * R.dropLast(3, 'ramda'); //=> 'ra'\n */\n\nvar dropLast =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([], _internal_xdropLast_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], _internal_dropLast_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (dropLast);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/dropLast.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/dropLastWhile.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/dropLastWhile.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_dropLastWhile_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_dropLastWhile.js */ \"./node_modules/ramda/es/internal/_dropLastWhile.js\");\n/* harmony import */ var _internal_xdropLastWhile_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_xdropLastWhile.js */ \"./node_modules/ramda/es/internal/_xdropLastWhile.js\");\n\n\n\n\n/**\n * Returns a new list excluding all the tailing elements of a given list which\n * satisfy the supplied predicate function. It passes each value from the right\n * to the supplied predicate function, skipping elements until the predicate\n * function returns a `falsy` value. The predicate function is applied to one argument:\n * *(value)*.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} predicate The function to be called on each element\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array without any trailing elements that return `falsy` values from the `predicate`.\n * @see R.takeLastWhile, R.addIndex, R.drop, R.dropWhile\n * @example\n *\n * const lteThree = x => x <= 3;\n *\n * R.dropLastWhile(lteThree, [1, 2, 3, 4, 3, 2, 1]); //=> [1, 2, 3, 4]\n *\n * R.dropLastWhile(x => x !== 'd' , 'Ramda'); //=> 'Ramd'\n */\n\nvar dropLastWhile =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([], _internal_xdropLastWhile_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], _internal_dropLastWhile_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (dropLastWhile);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/dropLastWhile.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/dropRepeats.js": +/*!**********************************************!*\ + !*** ./node_modules/ramda/es/dropRepeats.js ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xdropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xdropRepeatsWith.js */ \"./node_modules/ramda/es/internal/_xdropRepeatsWith.js\");\n/* harmony import */ var _dropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dropRepeatsWith.js */ \"./node_modules/ramda/es/dropRepeatsWith.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n\n\n\n\n\n/**\n * Returns a new list without any consecutively repeating elements.\n * [`R.equals`](#equals) is used to determine equality.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig [a] -> [a]\n * @param {Array} list The array to consider.\n * @return {Array} `list` without repeating elements.\n * @see R.transduce\n * @example\n *\n * R.dropRepeats([1, 1, 1, 2, 3, 4, 4, 2, 2]); //=> [1, 2, 3, 4, 2]\n */\n\nvar dropRepeats =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([],\n/*#__PURE__*/\nObject(_internal_xdropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_equals_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n/*#__PURE__*/\nObject(_dropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_equals_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (dropRepeats);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/dropRepeats.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/dropRepeatsWith.js": +/*!**************************************************!*\ + !*** ./node_modules/ramda/es/dropRepeatsWith.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xdropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xdropRepeatsWith.js */ \"./node_modules/ramda/es/internal/_xdropRepeatsWith.js\");\n/* harmony import */ var _last_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./last.js */ \"./node_modules/ramda/es/last.js\");\n\n\n\n\n/**\n * Returns a new list without any consecutively repeating elements. Equality is\n * determined by applying the supplied predicate to each pair of consecutive elements. The\n * first element in a series of equal elements will be preserved.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig ((a, a) -> Boolean) -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list The array to consider.\n * @return {Array} `list` without repeating elements.\n * @see R.transduce\n * @example\n *\n * const l = [1, -1, 1, 3, 4, -4, -4, -5, 5, 3, 3];\n * R.dropRepeatsWith(R.eqBy(Math.abs), l); //=> [1, 3, 4, -5, 3]\n */\n\nvar dropRepeatsWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([], _internal_xdropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function dropRepeatsWith(pred, list) {\n var result = [];\n var idx = 1;\n var len = list.length;\n\n if (len !== 0) {\n result[0] = list[0];\n\n while (idx < len) {\n if (!pred(Object(_last_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(result), list[idx])) {\n result[result.length] = list[idx];\n }\n\n idx += 1;\n }\n }\n\n return result;\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (dropRepeatsWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/dropRepeatsWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/dropWhile.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/dropWhile.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xdropWhile_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xdropWhile.js */ \"./node_modules/ramda/es/internal/_xdropWhile.js\");\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n\n\n\n\n/**\n * Returns a new list excluding the leading elements of a given list which\n * satisfy the supplied predicate function. It passes each value to the supplied\n * predicate function, skipping elements while the predicate function returns\n * `true`. The predicate function is applied to one argument: *(value)*.\n *\n * Dispatches to the `dropWhile` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} fn The function called per iteration.\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array.\n * @see R.takeWhile, R.transduce, R.addIndex\n * @example\n *\n * const lteTwo = x => x <= 2;\n *\n * R.dropWhile(lteTwo, [1, 2, 3, 4, 3, 2, 1]); //=> [3, 4, 3, 2, 1]\n *\n * R.dropWhile(x => x !== 'd' , 'Ramda'); //=> 'da'\n */\n\nvar dropWhile =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['dropWhile'], _internal_xdropWhile_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function dropWhile(pred, xs) {\n var idx = 0;\n var len = xs.length;\n\n while (idx < len && pred(xs[idx])) {\n idx += 1;\n }\n\n return Object(_slice_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(idx, Infinity, xs);\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (dropWhile);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/dropWhile.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/either.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/either.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isFunction.js */ \"./node_modules/ramda/es/internal/_isFunction.js\");\n/* harmony import */ var _lift_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lift.js */ \"./node_modules/ramda/es/lift.js\");\n/* harmony import */ var _or_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./or.js */ \"./node_modules/ramda/es/or.js\");\n\n\n\n\n/**\n * A function wrapping calls to the two functions in an `||` operation,\n * returning the result of the first function if it is truth-y and the result\n * of the second function otherwise. Note that this is short-circuited,\n * meaning that the second function will not be invoked if the first returns a\n * truth-y value.\n *\n * In addition to functions, `R.either` also accepts any fantasy-land compatible\n * applicative functor.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> Boolean) -> (*... -> Boolean)\n * @param {Function} f a predicate\n * @param {Function} g another predicate\n * @return {Function} a function that applies its arguments to `f` and `g` and `||`s their outputs together.\n * @see R.or\n * @example\n *\n * const gt10 = x => x > 10;\n * const even = x => x % 2 === 0;\n * const f = R.either(gt10, even);\n * f(101); //=> true\n * f(8); //=> true\n *\n * R.either(Maybe.Just(false), Maybe.Just(55)); // => Maybe.Just(55)\n * R.either([false, false, 'a'], [11]) // => [11, 11, \"a\"]\n */\n\nvar either =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function either(f, g) {\n return Object(_internal_isFunction_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(f) ? function _either() {\n return f.apply(this, arguments) || g.apply(this, arguments);\n } : Object(_lift_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_or_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(f, g);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (either);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/either.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/empty.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/empty.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_isArguments_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isArguments.js */ \"./node_modules/ramda/es/internal/_isArguments.js\");\n/* harmony import */ var _internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isArray.js */ \"./node_modules/ramda/es/internal/_isArray.js\");\n/* harmony import */ var _internal_isObject_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_isObject.js */ \"./node_modules/ramda/es/internal/_isObject.js\");\n/* harmony import */ var _internal_isString_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./internal/_isString.js */ \"./node_modules/ramda/es/internal/_isString.js\");\n\n\n\n\n\n/**\n * Returns the empty value of its argument's type. Ramda defines the empty\n * value of Array (`[]`), Object (`{}`), String (`''`), and Arguments. Other\n * types are supported if they define `.empty`,\n * `.prototype.empty` or implement the\n * [FantasyLand Monoid spec](https://github.com/fantasyland/fantasy-land#monoid).\n *\n * Dispatches to the `empty` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> a\n * @param {*} x\n * @return {*}\n * @example\n *\n * R.empty(Just(42)); //=> Nothing()\n * R.empty([1, 2, 3]); //=> []\n * R.empty('unicorns'); //=> ''\n * R.empty({x: 1, y: 2}); //=> {}\n */\n\nvar empty =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function empty(x) {\n return x != null && typeof x['fantasy-land/empty'] === 'function' ? x['fantasy-land/empty']() : x != null && x.constructor != null && typeof x.constructor['fantasy-land/empty'] === 'function' ? x.constructor['fantasy-land/empty']() : x != null && typeof x.empty === 'function' ? x.empty() : x != null && x.constructor != null && typeof x.constructor.empty === 'function' ? x.constructor.empty() : Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(x) ? [] : Object(_internal_isString_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(x) ? '' : Object(_internal_isObject_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(x) ? {} : Object(_internal_isArguments_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(x) ? function () {\n return arguments;\n }() : void 0 // else\n ;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (empty);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/empty.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/endsWith.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/endsWith.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n/* harmony import */ var _takeLast_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./takeLast.js */ \"./node_modules/ramda/es/takeLast.js\");\n\n\n\n/**\n * Checks if a list ends with the provided sublist.\n *\n * Similarly, checks if a string ends with the provided substring.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category List\n * @sig [a] -> [a] -> Boolean\n * @sig String -> String -> Boolean\n * @param {*} suffix\n * @param {*} list\n * @return {Boolean}\n * @see R.startsWith\n * @example\n *\n * R.endsWith('c', 'abc') //=> true\n * R.endsWith('b', 'abc') //=> false\n * R.endsWith(['c'], ['a', 'b', 'c']) //=> true\n * R.endsWith(['b'], ['a', 'b', 'c']) //=> false\n */\n\nvar endsWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (suffix, list) {\n return Object(_equals_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_takeLast_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(suffix.length, list), suffix);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (endsWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/endsWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/eqBy.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/eqBy.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n\n\n/**\n * Takes a function and two values in its domain and returns `true` if the\n * values map to the same value in the codomain; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Relation\n * @sig (a -> b) -> a -> a -> Boolean\n * @param {Function} f\n * @param {*} x\n * @param {*} y\n * @return {Boolean}\n * @example\n *\n * R.eqBy(Math.abs, 5, -5); //=> true\n */\n\nvar eqBy =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function eqBy(f, x, y) {\n return Object(_equals_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(f(x), f(y));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (eqBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/eqBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/eqProps.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/eqProps.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n\n\n/**\n * Reports whether two objects have the same value, in [`R.equals`](#equals)\n * terms, for the specified property. Useful as a curried predicate.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig k -> {k: v} -> {k: v} -> Boolean\n * @param {String} prop The name of the property to compare\n * @param {Object} obj1\n * @param {Object} obj2\n * @return {Boolean}\n *\n * @example\n *\n * const o1 = { a: 1, b: 2, c: 3, d: 4 };\n * const o2 = { a: 10, b: 20, c: 3, d: 40 };\n * R.eqProps('a', o1, o2); //=> false\n * R.eqProps('c', o1, o2); //=> true\n */\n\nvar eqProps =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function eqProps(prop, obj1, obj2) {\n return Object(_equals_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(obj1[prop], obj2[prop]);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (eqProps);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/eqProps.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/equals.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/equals.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_equals.js */ \"./node_modules/ramda/es/internal/_equals.js\");\n\n\n/**\n * Returns `true` if its arguments are equivalent, `false` otherwise. Handles\n * cyclical data structures.\n *\n * Dispatches symmetrically to the `equals` methods of both arguments, if\n * present.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> b -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * R.equals(1, 1); //=> true\n * R.equals(1, '1'); //=> false\n * R.equals([1, 2, 3], [1, 2, 3]); //=> true\n *\n * const a = {}; a.v = a;\n * const b = {}; b.v = b;\n * R.equals(a, b); //=> true\n */\n\nvar equals =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function equals(a, b) {\n return Object(_internal_equals_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(a, b, [], []);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (equals);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/equals.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/evolve.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/evolve.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Creates a new object by recursively evolving a shallow copy of `object`,\n * according to the `transformation` functions. All non-primitive properties\n * are copied by reference.\n *\n * A `transformation` function will not be invoked if its corresponding key\n * does not exist in the evolved object.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {k: (v -> v)} -> {k: v} -> {k: v}\n * @param {Object} transformations The object specifying transformation functions to apply\n * to the object.\n * @param {Object} object The object to be transformed.\n * @return {Object} The transformed object.\n * @example\n *\n * const tomato = {firstName: ' Tomato ', data: {elapsed: 100, remaining: 1400}, id:123};\n * const transformations = {\n * firstName: R.trim,\n * lastName: R.trim, // Will not get invoked.\n * data: {elapsed: R.add(1), remaining: R.add(-1)}\n * };\n * R.evolve(transformations, tomato); //=> {firstName: 'Tomato', data: {elapsed: 101, remaining: 1399}, id:123}\n */\n\nvar evolve =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function evolve(transformations, object) {\n var result = object instanceof Array ? [] : {};\n var transformation, key, type;\n\n for (key in object) {\n transformation = transformations[key];\n type = typeof transformation;\n result[key] = type === 'function' ? transformation(object[key]) : transformation && type === 'object' ? evolve(transformation, object[key]) : object[key];\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (evolve);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/evolve.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/filter.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/filter.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_filter.js */ \"./node_modules/ramda/es/internal/_filter.js\");\n/* harmony import */ var _internal_isObject_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_isObject.js */ \"./node_modules/ramda/es/internal/_isObject.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _internal_xfilter_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./internal/_xfilter.js */ \"./node_modules/ramda/es/internal/_xfilter.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/ramda/es/keys.js\");\n\n\n\n\n\n\n\n/**\n * Takes a predicate and a `Filterable`, and returns a new filterable of the\n * same type containing the members of the given filterable which satisfy the\n * given predicate. Filterable objects include plain objects or any object\n * that has a filter method such as `Array`.\n *\n * Dispatches to the `filter` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array} Filterable\n * @see R.reject, R.transduce, R.addIndex\n * @example\n *\n * const isEven = n => n % 2 === 0;\n *\n * R.filter(isEven, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.filter(isEven, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\n\nvar filter =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['filter'], _internal_xfilter_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"], function (pred, filterable) {\n return Object(_internal_isObject_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(filterable) ? Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(function (acc, key) {\n if (pred(filterable[key])) {\n acc[key] = filterable[key];\n }\n\n return acc;\n }, {}, Object(_keys_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(filterable)) : // else\n Object(_internal_filter_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(pred, filterable);\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (filter);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/filter.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/find.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/find.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xfind_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xfind.js */ \"./node_modules/ramda/es/internal/_xfind.js\");\n\n\n\n/**\n * Returns the first element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Dispatches to the `find` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.find(R.propEq('a', 2))(xs); //=> {a: 2}\n * R.find(R.propEq('a', 4))(xs); //=> undefined\n */\n\nvar find =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['find'], _internal_xfind_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function find(fn, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (fn(list[idx])) {\n return list[idx];\n }\n\n idx += 1;\n }\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (find);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/find.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/findIndex.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/findIndex.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xfindIndex_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xfindIndex.js */ \"./node_modules/ramda/es/internal/_xfindIndex.js\");\n\n\n\n/**\n * Returns the index of the first element of the list which matches the\n * predicate, or `-1` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> Number\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Number} The index of the element found, or `-1`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.findIndex(R.propEq('a', 2))(xs); //=> 1\n * R.findIndex(R.propEq('a', 4))(xs); //=> -1\n */\n\nvar findIndex =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([], _internal_xfindIndex_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function findIndex(fn, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (fn(list[idx])) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (findIndex);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/findIndex.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/findLast.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/findLast.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xfindLast_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xfindLast.js */ \"./node_modules/ramda/es/internal/_xfindLast.js\");\n\n\n\n/**\n * Returns the last element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1, b: 0}, {a:1, b: 1}];\n * R.findLast(R.propEq('a', 1))(xs); //=> {a: 1, b: 1}\n * R.findLast(R.propEq('a', 4))(xs); //=> undefined\n */\n\nvar findLast =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([], _internal_xfindLast_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function findLast(fn, list) {\n var idx = list.length - 1;\n\n while (idx >= 0) {\n if (fn(list[idx])) {\n return list[idx];\n }\n\n idx -= 1;\n }\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (findLast);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/findLast.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/findLastIndex.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/findLastIndex.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xfindLastIndex_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xfindLastIndex.js */ \"./node_modules/ramda/es/internal/_xfindLastIndex.js\");\n\n\n\n/**\n * Returns the index of the last element of the list which matches the\n * predicate, or `-1` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> Number\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Number} The index of the element found, or `-1`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1, b: 0}, {a:1, b: 1}];\n * R.findLastIndex(R.propEq('a', 1))(xs); //=> 1\n * R.findLastIndex(R.propEq('a', 4))(xs); //=> -1\n */\n\nvar findLastIndex =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([], _internal_xfindLastIndex_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function findLastIndex(fn, list) {\n var idx = list.length - 1;\n\n while (idx >= 0) {\n if (fn(list[idx])) {\n return idx;\n }\n\n idx -= 1;\n }\n\n return -1;\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (findLastIndex);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/findLastIndex.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/flatten.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/flatten.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_makeFlat_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_makeFlat.js */ \"./node_modules/ramda/es/internal/_makeFlat.js\");\n\n\n/**\n * Returns a new list by pulling every item out of it (and all its sub-arrays)\n * and putting them in a new array, depth-first.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b]\n * @param {Array} list The array to consider.\n * @return {Array} The flattened list.\n * @see R.unnest\n * @example\n *\n * R.flatten([1, 2, [3, 4], 5, [6, [7, 8, [9, [10, 11], 12]]]]);\n * //=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]\n */\n\nvar flatten =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_makeFlat_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(true));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (flatten);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/flatten.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/flip.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/flip.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n\n\n/**\n * Returns a new function much like the supplied one, except that the first two\n * arguments' order is reversed.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((a, b, c, ...) -> z) -> (b -> a -> c -> ... -> z)\n * @param {Function} fn The function to invoke with its first two parameters reversed.\n * @return {*} The result of invoking `fn` with its first two parameters' order reversed.\n * @example\n *\n * const mergeThree = (a, b, c) => [].concat(a, b, c);\n *\n * mergeThree(1, 2, 3); //=> [1, 2, 3]\n *\n * R.flip(mergeThree)(1, 2, 3); //=> [2, 1, 3]\n * @symb R.flip(f)(a, b, c) = f(b, a, c)\n */\n\nvar flip =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function flip(fn) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(fn.length, function (a, b) {\n var args = Array.prototype.slice.call(arguments, 0);\n args[0] = b;\n args[1] = a;\n return fn.apply(this, args);\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (flip);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/flip.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/forEach.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/forEach.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_checkForMethod.js */ \"./node_modules/ramda/es/internal/_checkForMethod.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Iterate over an input `list`, calling a provided function `fn` for each\n * element in the list.\n *\n * `fn` receives one argument: *(value)*.\n *\n * Note: `R.forEach` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.forEach` method. For more\n * details on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach#Description\n *\n * Also note that, unlike `Array.prototype.forEach`, Ramda's `forEach` returns\n * the original array. In some libraries this function is named `each`.\n *\n * Dispatches to the `forEach` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> *) -> [a] -> [a]\n * @param {Function} fn The function to invoke. Receives one argument, `value`.\n * @param {Array} list The list to iterate over.\n * @return {Array} The original list.\n * @see R.addIndex\n * @example\n *\n * const printXPlusFive = x => console.log(x + 5);\n * R.forEach(printXPlusFive, [1, 2, 3]); //=> [1, 2, 3]\n * // logs 6\n * // logs 7\n * // logs 8\n * @symb R.forEach(f, [a, b, c]) = [a, b, c]\n */\n\nvar forEach =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('forEach', function forEach(fn, list) {\n var len = list.length;\n var idx = 0;\n\n while (idx < len) {\n fn(list[idx]);\n idx += 1;\n }\n\n return list;\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (forEach);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/forEach.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/forEachObjIndexed.js": +/*!****************************************************!*\ + !*** ./node_modules/ramda/es/forEachObjIndexed.js ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/ramda/es/keys.js\");\n\n\n/**\n * Iterate over an input `object`, calling a provided function `fn` for each\n * key and value in the object.\n *\n * `fn` receives three argument: *(value, key, obj)*.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Object\n * @sig ((a, String, StrMap a) -> Any) -> StrMap a -> StrMap a\n * @param {Function} fn The function to invoke. Receives three argument, `value`, `key`, `obj`.\n * @param {Object} obj The object to iterate over.\n * @return {Object} The original object.\n * @example\n *\n * const printKeyConcatValue = (value, key) => console.log(key + ':' + value);\n * R.forEachObjIndexed(printKeyConcatValue, {x: 1, y: 2}); //=> {x: 1, y: 2}\n * // logs x:1\n * // logs y:2\n * @symb R.forEachObjIndexed(f, {x: a, y: b}) = {x: a, y: b}\n */\n\nvar forEachObjIndexed =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function forEachObjIndexed(fn, obj) {\n var keyList = Object(_keys_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(obj);\n var idx = 0;\n\n while (idx < keyList.length) {\n var key = keyList[idx];\n fn(obj[key], key, obj);\n idx += 1;\n }\n\n return obj;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (forEachObjIndexed);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/forEachObjIndexed.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/fromPairs.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/fromPairs.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Creates a new object from a list key-value pairs. If a key appears in\n * multiple pairs, the rightmost pair is included in the object.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [[k,v]] -> {k: v}\n * @param {Array} pairs An array of two-element arrays that will be the keys and values of the output object.\n * @return {Object} The object made by pairing up `keys` and `values`.\n * @see R.toPairs, R.pair\n * @example\n *\n * R.fromPairs([['a', 1], ['b', 2], ['c', 3]]); //=> {a: 1, b: 2, c: 3}\n */\n\nvar fromPairs =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function fromPairs(pairs) {\n var result = {};\n var idx = 0;\n\n while (idx < pairs.length) {\n result[pairs[idx][0]] = pairs[idx][1];\n idx += 1;\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (fromPairs);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/fromPairs.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/groupBy.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/groupBy.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_checkForMethod.js */ \"./node_modules/ramda/es/internal/_checkForMethod.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _reduceBy_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reduceBy.js */ \"./node_modules/ramda/es/reduceBy.js\");\n\n\n\n/**\n * Splits a list into sub-lists stored in an object, based on the result of\n * calling a String-returning function on each element, and grouping the\n * results according to values returned.\n *\n * Dispatches to the `groupBy` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> String) -> [a] -> {String: [a]}\n * @param {Function} fn Function :: a -> String\n * @param {Array} list The array to group\n * @return {Object} An object with the output of `fn` for keys, mapped to arrays of elements\n * that produced that key when passed to `fn`.\n * @see R.reduceBy, R.transduce\n * @example\n *\n * const byGrade = R.groupBy(function(student) {\n * const score = student.score;\n * return score < 65 ? 'F' :\n * score < 70 ? 'D' :\n * score < 80 ? 'C' :\n * score < 90 ? 'B' : 'A';\n * });\n * const students = [{name: 'Abby', score: 84},\n * {name: 'Eddy', score: 58},\n * // ...\n * {name: 'Jack', score: 69}];\n * byGrade(students);\n * // {\n * // 'A': [{name: 'Dianne', score: 99}],\n * // 'B': [{name: 'Abby', score: 84}]\n * // // ...,\n * // 'F': [{name: 'Eddy', score: 58}]\n * // }\n */\n\nvar groupBy =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('groupBy',\n/*#__PURE__*/\nObject(_reduceBy_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(function (acc, item) {\n if (acc == null) {\n acc = [];\n }\n\n acc.push(item);\n return acc;\n}, null)));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (groupBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/groupBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/groupWith.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/groupWith.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Takes a list and returns a list of lists where each sublist's elements are\n * all satisfied pairwise comparison according to the provided function.\n * Only adjacent elements are passed to the comparison function.\n *\n * @func\n * @memberOf R\n * @since v0.21.0\n * @category List\n * @sig ((a, a) → Boolean) → [a] → [[a]]\n * @param {Function} fn Function for determining whether two given (adjacent)\n * elements should be in the same group\n * @param {Array} list The array to group. Also accepts a string, which will be\n * treated as a list of characters.\n * @return {List} A list that contains sublists of elements,\n * whose concatenations are equal to the original list.\n * @example\n *\n * R.groupWith(R.equals, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0], [1, 1], [2], [3], [5], [8], [13], [21]]\n *\n * R.groupWith((a, b) => a + 1 === b, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0, 1], [1, 2, 3], [5], [8], [13], [21]]\n *\n * R.groupWith((a, b) => a % 2 === b % 2, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0], [1, 1], [2], [3, 5], [8], [13, 21]]\n *\n * R.groupWith(R.eqBy(isVowel), 'aestiou')\n * //=> ['ae', 'st', 'iou']\n */\n\nvar groupWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (fn, list) {\n var res = [];\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n var nextidx = idx + 1;\n\n while (nextidx < len && fn(list[nextidx - 1], list[nextidx])) {\n nextidx += 1;\n }\n\n res.push(list.slice(idx, nextidx));\n idx = nextidx;\n }\n\n return res;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (groupWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/groupWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/gt.js": +/*!*************************************!*\ + !*** ./node_modules/ramda/es/gt.js ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns `true` if the first argument is greater than the second; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @see R.lt\n * @example\n *\n * R.gt(2, 1); //=> true\n * R.gt(2, 2); //=> false\n * R.gt(2, 3); //=> false\n * R.gt('a', 'z'); //=> false\n * R.gt('z', 'a'); //=> true\n */\n\nvar gt =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function gt(a, b) {\n return a > b;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (gt);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/gt.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/gte.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/gte.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns `true` if the first argument is greater than or equal to the second;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {Number} a\n * @param {Number} b\n * @return {Boolean}\n * @see R.lte\n * @example\n *\n * R.gte(2, 1); //=> true\n * R.gte(2, 2); //=> true\n * R.gte(2, 3); //=> false\n * R.gte('a', 'z'); //=> false\n * R.gte('z', 'a'); //=> true\n */\n\nvar gte =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function gte(a, b) {\n return a >= b;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (gte);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/gte.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/has.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/has.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _hasPath_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hasPath.js */ \"./node_modules/ramda/es/hasPath.js\");\n\n\n/**\n * Returns whether or not an object has an own property with the specified name\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Object\n * @sig s -> {s: x} -> Boolean\n * @param {String} prop The name of the property to check for.\n * @param {Object} obj The object to query.\n * @return {Boolean} Whether the property exists.\n * @example\n *\n * const hasName = R.has('name');\n * hasName({name: 'alice'}); //=> true\n * hasName({name: 'bob'}); //=> true\n * hasName({}); //=> false\n *\n * const point = {x: 0, y: 0};\n * const pointHas = R.has(R.__, point);\n * pointHas('x'); //=> true\n * pointHas('y'); //=> true\n * pointHas('z'); //=> false\n */\n\nvar has =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function has(prop, obj) {\n return Object(_hasPath_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([prop], obj);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (has);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/has.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/hasIn.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/hasIn.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns whether or not an object or its prototype chain has a property with\n * the specified name\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Object\n * @sig s -> {s: x} -> Boolean\n * @param {String} prop The name of the property to check for.\n * @param {Object} obj The object to query.\n * @return {Boolean} Whether the property exists.\n * @example\n *\n * function Rectangle(width, height) {\n * this.width = width;\n * this.height = height;\n * }\n * Rectangle.prototype.area = function() {\n * return this.width * this.height;\n * };\n *\n * const square = new Rectangle(2, 2);\n * R.hasIn('width', square); //=> true\n * R.hasIn('area', square); //=> true\n */\n\nvar hasIn =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function hasIn(prop, obj) {\n return prop in obj;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (hasIn);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/hasIn.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/hasPath.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/hasPath.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n/* harmony import */ var _isNil_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isNil.js */ \"./node_modules/ramda/es/isNil.js\");\n\n\n\n/**\n * Returns whether or not a path exists in an object. Only the object's\n * own properties are checked.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {a} -> Boolean\n * @param {Array} path The path to use.\n * @param {Object} obj The object to check the path in.\n * @return {Boolean} Whether the path exists.\n * @see R.has\n * @example\n *\n * R.hasPath(['a', 'b'], {a: {b: 2}}); // => true\n * R.hasPath(['a', 'b'], {a: {b: undefined}}); // => true\n * R.hasPath(['a', 'b'], {a: {c: 2}}); // => false\n * R.hasPath(['a', 'b'], {}); // => false\n */\n\nvar hasPath =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function hasPath(_path, obj) {\n if (_path.length === 0 || Object(_isNil_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(obj)) {\n return false;\n }\n\n var val = obj;\n var idx = 0;\n\n while (idx < _path.length) {\n if (!Object(_isNil_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(val) && Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_path[idx], val)) {\n val = val[_path[idx]];\n idx += 1;\n } else {\n return false;\n }\n }\n\n return true;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (hasPath);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/hasPath.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/head.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/head.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nth_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./nth.js */ \"./node_modules/ramda/es/nth.js\");\n\n/**\n * Returns the first element of the given list or string. In some libraries\n * this function is named `first`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {Array|String} list\n * @return {*}\n * @see R.tail, R.init, R.last\n * @example\n *\n * R.head(['fi', 'fo', 'fum']); //=> 'fi'\n * R.head([]); //=> undefined\n *\n * R.head('abc'); //=> 'a'\n * R.head(''); //=> ''\n */\n\nvar head =\n/*#__PURE__*/\nObject(_nth_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(0);\n/* harmony default export */ __webpack_exports__[\"default\"] = (head);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/head.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/identical.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/identical.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_objectIs_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_objectIs.js */ \"./node_modules/ramda/es/internal/_objectIs.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Returns true if its arguments are identical, false otherwise. Values are\n * identical if they reference the same memory. `NaN` is identical to `NaN`;\n * `0` and `-0` are not identical.\n *\n * Note this is merely a curried version of ES6 `Object.is`.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * const o = {};\n * R.identical(o, o); //=> true\n * R.identical(1, 1); //=> true\n * R.identical(1, '1'); //=> false\n * R.identical([], []); //=> false\n * R.identical(0, -0); //=> false\n * R.identical(NaN, NaN); //=> true\n */\n\nvar identical =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_internal_objectIs_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (identical);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/identical.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/identity.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/identity.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_identity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_identity.js */ \"./node_modules/ramda/es/internal/_identity.js\");\n\n\n/**\n * A function that does nothing but return the parameter supplied to it. Good\n * as a default or placeholder function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> a\n * @param {*} x The value to return.\n * @return {*} The input value, `x`.\n * @example\n *\n * R.identity(1); //=> 1\n *\n * const obj = {};\n * R.identity(obj) === obj; //=> true\n * @symb R.identity(a) = a\n */\n\nvar identity =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_internal_identity_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (identity);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/identity.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/ifElse.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/ifElse.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n\n\n/**\n * Creates a function that will process either the `onTrue` or the `onFalse`\n * function depending upon the result of the `condition` predicate.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> *) -> (*... -> *) -> (*... -> *)\n * @param {Function} condition A predicate function\n * @param {Function} onTrue A function to invoke when the `condition` evaluates to a truthy value.\n * @param {Function} onFalse A function to invoke when the `condition` evaluates to a falsy value.\n * @return {Function} A new function that will process either the `onTrue` or the `onFalse`\n * function depending upon the result of the `condition` predicate.\n * @see R.unless, R.when, R.cond\n * @example\n *\n * const incCount = R.ifElse(\n * R.has('count'),\n * R.over(R.lensProp('count'), R.inc),\n * R.assoc('count', 1)\n * );\n * incCount({}); //=> { count: 1 }\n * incCount({ count: 1 }); //=> { count: 2 }\n */\n\nvar ifElse =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function ifElse(condition, onTrue, onFalse) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Math.max(condition.length, onTrue.length, onFalse.length), function _ifElse() {\n return condition.apply(this, arguments) ? onTrue.apply(this, arguments) : onFalse.apply(this, arguments);\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ifElse);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/ifElse.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/inc.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/inc.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _add_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./add.js */ \"./node_modules/ramda/es/add.js\");\n\n/**\n * Increments its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number} n + 1\n * @see R.dec\n * @example\n *\n * R.inc(42); //=> 43\n */\n\nvar inc =\n/*#__PURE__*/\nObject(_add_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(1);\n/* harmony default export */ __webpack_exports__[\"default\"] = (inc);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/inc.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/includes.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/includes.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_includes.js */ \"./node_modules/ramda/es/internal/_includes.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Returns `true` if the specified value is equal, in [`R.equals`](#equals)\n * terms, to at least one element of the given list; `false` otherwise.\n * Works also with strings.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category List\n * @sig a -> [a] -> Boolean\n * @param {Object} a The item to compare against.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if an equivalent item is in the list, `false` otherwise.\n * @see R.any\n * @example\n *\n * R.includes(3, [1, 2, 3]); //=> true\n * R.includes(4, [1, 2, 3]); //=> false\n * R.includes({ name: 'Fred' }, [{ name: 'Fred' }]); //=> true\n * R.includes([42], [[42]]); //=> true\n * R.includes('ba', 'banana'); //=>true\n */\n\nvar includes =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_internal_includes_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (includes);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/includes.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/index.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/index.js ***! + \****************************************/ +/*! exports provided: F, T, __, add, addIndex, adjust, all, allPass, always, and, any, anyPass, ap, aperture, append, apply, applySpec, applyTo, ascend, assoc, assocPath, binary, bind, both, call, chain, clamp, clone, comparator, complement, compose, composeK, composeP, composeWith, concat, cond, construct, constructN, contains, converge, countBy, curry, curryN, dec, defaultTo, descend, difference, differenceWith, dissoc, dissocPath, divide, drop, dropLast, dropLastWhile, dropRepeats, dropRepeatsWith, dropWhile, either, empty, endsWith, eqBy, eqProps, equals, evolve, filter, find, findIndex, findLast, findLastIndex, flatten, flip, forEach, forEachObjIndexed, fromPairs, groupBy, groupWith, gt, gte, has, hasIn, hasPath, head, identical, identity, ifElse, inc, includes, indexBy, indexOf, init, innerJoin, insert, insertAll, intersection, intersperse, into, invert, invertObj, invoker, is, isEmpty, isNil, join, juxt, keys, keysIn, last, lastIndexOf, length, lens, lensIndex, lensPath, lensProp, lift, liftN, lt, lte, map, mapAccum, mapAccumRight, mapObjIndexed, match, mathMod, max, maxBy, mean, median, memoizeWith, merge, mergeAll, mergeDeepLeft, mergeDeepRight, mergeDeepWith, mergeDeepWithKey, mergeLeft, mergeRight, mergeWith, mergeWithKey, min, minBy, modulo, move, multiply, nAry, negate, none, not, nth, nthArg, o, objOf, of, omit, once, or, otherwise, over, pair, partial, partialRight, partition, path, paths, pathEq, pathOr, pathSatisfies, pick, pickAll, pickBy, pipe, pipeK, pipeP, pipeWith, pluck, prepend, product, project, prop, propEq, propIs, propOr, propSatisfies, props, range, reduce, reduceBy, reduceRight, reduceWhile, reduced, reject, remove, repeat, replace, reverse, scan, sequence, set, slice, sort, sortBy, sortWith, split, splitAt, splitEvery, splitWhen, startsWith, subtract, sum, symmetricDifference, symmetricDifferenceWith, tail, take, takeLast, takeLastWhile, takeWhile, tap, test, andThen, times, toLower, toPairs, toPairsIn, toString, toUpper, transduce, transpose, traverse, trim, tryCatch, type, unapply, unary, uncurryN, unfold, union, unionWith, uniq, uniqBy, uniqWith, unless, unnest, until, update, useWith, values, valuesIn, view, when, where, whereEq, without, xor, xprod, zip, zipObj, zipWith, thunkify */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _F_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./F.js */ \"./node_modules/ramda/es/F.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"F\", function() { return _F_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _T_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./T.js */ \"./node_modules/ramda/es/T.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"T\", function() { return _T_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./__.js */ \"./node_modules/ramda/es/__.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"__\", function() { return _js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _add_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./add.js */ \"./node_modules/ramda/es/add.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"add\", function() { return _add_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _addIndex_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./addIndex.js */ \"./node_modules/ramda/es/addIndex.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"addIndex\", function() { return _addIndex_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _adjust_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./adjust.js */ \"./node_modules/ramda/es/adjust.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"adjust\", function() { return _adjust_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _all_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./all.js */ \"./node_modules/ramda/es/all.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"all\", function() { return _all_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony import */ var _allPass_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./allPass.js */ \"./node_modules/ramda/es/allPass.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"allPass\", function() { return _allPass_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n/* harmony import */ var _always_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./always.js */ \"./node_modules/ramda/es/always.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"always\", function() { return _always_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* harmony import */ var _and_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./and.js */ \"./node_modules/ramda/es/and.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"and\", function() { return _and_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/* harmony import */ var _any_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./any.js */ \"./node_modules/ramda/es/any.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"any\", function() { return _any_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n\n/* harmony import */ var _anyPass_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./anyPass.js */ \"./node_modules/ramda/es/anyPass.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"anyPass\", function() { return _anyPass_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; });\n\n/* harmony import */ var _ap_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./ap.js */ \"./node_modules/ramda/es/ap.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ap\", function() { return _ap_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"]; });\n\n/* harmony import */ var _aperture_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./aperture.js */ \"./node_modules/ramda/es/aperture.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"aperture\", function() { return _aperture_js__WEBPACK_IMPORTED_MODULE_13__[\"default\"]; });\n\n/* harmony import */ var _append_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./append.js */ \"./node_modules/ramda/es/append.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"append\", function() { return _append_js__WEBPACK_IMPORTED_MODULE_14__[\"default\"]; });\n\n/* harmony import */ var _apply_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./apply.js */ \"./node_modules/ramda/es/apply.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"apply\", function() { return _apply_js__WEBPACK_IMPORTED_MODULE_15__[\"default\"]; });\n\n/* harmony import */ var _applySpec_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./applySpec.js */ \"./node_modules/ramda/es/applySpec.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applySpec\", function() { return _applySpec_js__WEBPACK_IMPORTED_MODULE_16__[\"default\"]; });\n\n/* harmony import */ var _applyTo_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./applyTo.js */ \"./node_modules/ramda/es/applyTo.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyTo\", function() { return _applyTo_js__WEBPACK_IMPORTED_MODULE_17__[\"default\"]; });\n\n/* harmony import */ var _ascend_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./ascend.js */ \"./node_modules/ramda/es/ascend.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ascend\", function() { return _ascend_js__WEBPACK_IMPORTED_MODULE_18__[\"default\"]; });\n\n/* harmony import */ var _assoc_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./assoc.js */ \"./node_modules/ramda/es/assoc.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"assoc\", function() { return _assoc_js__WEBPACK_IMPORTED_MODULE_19__[\"default\"]; });\n\n/* harmony import */ var _assocPath_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./assocPath.js */ \"./node_modules/ramda/es/assocPath.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"assocPath\", function() { return _assocPath_js__WEBPACK_IMPORTED_MODULE_20__[\"default\"]; });\n\n/* harmony import */ var _binary_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./binary.js */ \"./node_modules/ramda/es/binary.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"binary\", function() { return _binary_js__WEBPACK_IMPORTED_MODULE_21__[\"default\"]; });\n\n/* harmony import */ var _bind_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./bind.js */ \"./node_modules/ramda/es/bind.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bind\", function() { return _bind_js__WEBPACK_IMPORTED_MODULE_22__[\"default\"]; });\n\n/* harmony import */ var _both_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./both.js */ \"./node_modules/ramda/es/both.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"both\", function() { return _both_js__WEBPACK_IMPORTED_MODULE_23__[\"default\"]; });\n\n/* harmony import */ var _call_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./call.js */ \"./node_modules/ramda/es/call.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"call\", function() { return _call_js__WEBPACK_IMPORTED_MODULE_24__[\"default\"]; });\n\n/* harmony import */ var _chain_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./chain.js */ \"./node_modules/ramda/es/chain.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"chain\", function() { return _chain_js__WEBPACK_IMPORTED_MODULE_25__[\"default\"]; });\n\n/* harmony import */ var _clamp_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./clamp.js */ \"./node_modules/ramda/es/clamp.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"clamp\", function() { return _clamp_js__WEBPACK_IMPORTED_MODULE_26__[\"default\"]; });\n\n/* harmony import */ var _clone_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./clone.js */ \"./node_modules/ramda/es/clone.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"clone\", function() { return _clone_js__WEBPACK_IMPORTED_MODULE_27__[\"default\"]; });\n\n/* harmony import */ var _comparator_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./comparator.js */ \"./node_modules/ramda/es/comparator.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"comparator\", function() { return _comparator_js__WEBPACK_IMPORTED_MODULE_28__[\"default\"]; });\n\n/* harmony import */ var _complement_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./complement.js */ \"./node_modules/ramda/es/complement.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"complement\", function() { return _complement_js__WEBPACK_IMPORTED_MODULE_29__[\"default\"]; });\n\n/* harmony import */ var _compose_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./compose.js */ \"./node_modules/ramda/es/compose.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"compose\", function() { return _compose_js__WEBPACK_IMPORTED_MODULE_30__[\"default\"]; });\n\n/* harmony import */ var _composeK_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./composeK.js */ \"./node_modules/ramda/es/composeK.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"composeK\", function() { return _composeK_js__WEBPACK_IMPORTED_MODULE_31__[\"default\"]; });\n\n/* harmony import */ var _composeP_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./composeP.js */ \"./node_modules/ramda/es/composeP.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"composeP\", function() { return _composeP_js__WEBPACK_IMPORTED_MODULE_32__[\"default\"]; });\n\n/* harmony import */ var _composeWith_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./composeWith.js */ \"./node_modules/ramda/es/composeWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"composeWith\", function() { return _composeWith_js__WEBPACK_IMPORTED_MODULE_33__[\"default\"]; });\n\n/* harmony import */ var _concat_js__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./concat.js */ \"./node_modules/ramda/es/concat.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"concat\", function() { return _concat_js__WEBPACK_IMPORTED_MODULE_34__[\"default\"]; });\n\n/* harmony import */ var _cond_js__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./cond.js */ \"./node_modules/ramda/es/cond.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cond\", function() { return _cond_js__WEBPACK_IMPORTED_MODULE_35__[\"default\"]; });\n\n/* harmony import */ var _construct_js__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./construct.js */ \"./node_modules/ramda/es/construct.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"construct\", function() { return _construct_js__WEBPACK_IMPORTED_MODULE_36__[\"default\"]; });\n\n/* harmony import */ var _constructN_js__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./constructN.js */ \"./node_modules/ramda/es/constructN.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"constructN\", function() { return _constructN_js__WEBPACK_IMPORTED_MODULE_37__[\"default\"]; });\n\n/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./contains.js */ \"./node_modules/ramda/es/contains.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"contains\", function() { return _contains_js__WEBPACK_IMPORTED_MODULE_38__[\"default\"]; });\n\n/* harmony import */ var _converge_js__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./converge.js */ \"./node_modules/ramda/es/converge.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"converge\", function() { return _converge_js__WEBPACK_IMPORTED_MODULE_39__[\"default\"]; });\n\n/* harmony import */ var _countBy_js__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./countBy.js */ \"./node_modules/ramda/es/countBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"countBy\", function() { return _countBy_js__WEBPACK_IMPORTED_MODULE_40__[\"default\"]; });\n\n/* harmony import */ var _curry_js__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./curry.js */ \"./node_modules/ramda/es/curry.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"curry\", function() { return _curry_js__WEBPACK_IMPORTED_MODULE_41__[\"default\"]; });\n\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"curryN\", function() { return _curryN_js__WEBPACK_IMPORTED_MODULE_42__[\"default\"]; });\n\n/* harmony import */ var _dec_js__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./dec.js */ \"./node_modules/ramda/es/dec.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dec\", function() { return _dec_js__WEBPACK_IMPORTED_MODULE_43__[\"default\"]; });\n\n/* harmony import */ var _defaultTo_js__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./defaultTo.js */ \"./node_modules/ramda/es/defaultTo.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"defaultTo\", function() { return _defaultTo_js__WEBPACK_IMPORTED_MODULE_44__[\"default\"]; });\n\n/* harmony import */ var _descend_js__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./descend.js */ \"./node_modules/ramda/es/descend.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"descend\", function() { return _descend_js__WEBPACK_IMPORTED_MODULE_45__[\"default\"]; });\n\n/* harmony import */ var _difference_js__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./difference.js */ \"./node_modules/ramda/es/difference.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"difference\", function() { return _difference_js__WEBPACK_IMPORTED_MODULE_46__[\"default\"]; });\n\n/* harmony import */ var _differenceWith_js__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./differenceWith.js */ \"./node_modules/ramda/es/differenceWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"differenceWith\", function() { return _differenceWith_js__WEBPACK_IMPORTED_MODULE_47__[\"default\"]; });\n\n/* harmony import */ var _dissoc_js__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./dissoc.js */ \"./node_modules/ramda/es/dissoc.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dissoc\", function() { return _dissoc_js__WEBPACK_IMPORTED_MODULE_48__[\"default\"]; });\n\n/* harmony import */ var _dissocPath_js__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./dissocPath.js */ \"./node_modules/ramda/es/dissocPath.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dissocPath\", function() { return _dissocPath_js__WEBPACK_IMPORTED_MODULE_49__[\"default\"]; });\n\n/* harmony import */ var _divide_js__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./divide.js */ \"./node_modules/ramda/es/divide.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"divide\", function() { return _divide_js__WEBPACK_IMPORTED_MODULE_50__[\"default\"]; });\n\n/* harmony import */ var _drop_js__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./drop.js */ \"./node_modules/ramda/es/drop.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"drop\", function() { return _drop_js__WEBPACK_IMPORTED_MODULE_51__[\"default\"]; });\n\n/* harmony import */ var _dropLast_js__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./dropLast.js */ \"./node_modules/ramda/es/dropLast.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dropLast\", function() { return _dropLast_js__WEBPACK_IMPORTED_MODULE_52__[\"default\"]; });\n\n/* harmony import */ var _dropLastWhile_js__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./dropLastWhile.js */ \"./node_modules/ramda/es/dropLastWhile.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dropLastWhile\", function() { return _dropLastWhile_js__WEBPACK_IMPORTED_MODULE_53__[\"default\"]; });\n\n/* harmony import */ var _dropRepeats_js__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./dropRepeats.js */ \"./node_modules/ramda/es/dropRepeats.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dropRepeats\", function() { return _dropRepeats_js__WEBPACK_IMPORTED_MODULE_54__[\"default\"]; });\n\n/* harmony import */ var _dropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./dropRepeatsWith.js */ \"./node_modules/ramda/es/dropRepeatsWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dropRepeatsWith\", function() { return _dropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_55__[\"default\"]; });\n\n/* harmony import */ var _dropWhile_js__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./dropWhile.js */ \"./node_modules/ramda/es/dropWhile.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dropWhile\", function() { return _dropWhile_js__WEBPACK_IMPORTED_MODULE_56__[\"default\"]; });\n\n/* harmony import */ var _either_js__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./either.js */ \"./node_modules/ramda/es/either.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"either\", function() { return _either_js__WEBPACK_IMPORTED_MODULE_57__[\"default\"]; });\n\n/* harmony import */ var _empty_js__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./empty.js */ \"./node_modules/ramda/es/empty.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"empty\", function() { return _empty_js__WEBPACK_IMPORTED_MODULE_58__[\"default\"]; });\n\n/* harmony import */ var _endsWith_js__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./endsWith.js */ \"./node_modules/ramda/es/endsWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"endsWith\", function() { return _endsWith_js__WEBPACK_IMPORTED_MODULE_59__[\"default\"]; });\n\n/* harmony import */ var _eqBy_js__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./eqBy.js */ \"./node_modules/ramda/es/eqBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"eqBy\", function() { return _eqBy_js__WEBPACK_IMPORTED_MODULE_60__[\"default\"]; });\n\n/* harmony import */ var _eqProps_js__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ./eqProps.js */ \"./node_modules/ramda/es/eqProps.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"eqProps\", function() { return _eqProps_js__WEBPACK_IMPORTED_MODULE_61__[\"default\"]; });\n\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"equals\", function() { return _equals_js__WEBPACK_IMPORTED_MODULE_62__[\"default\"]; });\n\n/* harmony import */ var _evolve_js__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ./evolve.js */ \"./node_modules/ramda/es/evolve.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"evolve\", function() { return _evolve_js__WEBPACK_IMPORTED_MODULE_63__[\"default\"]; });\n\n/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./filter.js */ \"./node_modules/ramda/es/filter.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"filter\", function() { return _filter_js__WEBPACK_IMPORTED_MODULE_64__[\"default\"]; });\n\n/* harmony import */ var _find_js__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./find.js */ \"./node_modules/ramda/es/find.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"find\", function() { return _find_js__WEBPACK_IMPORTED_MODULE_65__[\"default\"]; });\n\n/* harmony import */ var _findIndex_js__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./findIndex.js */ \"./node_modules/ramda/es/findIndex.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"findIndex\", function() { return _findIndex_js__WEBPACK_IMPORTED_MODULE_66__[\"default\"]; });\n\n/* harmony import */ var _findLast_js__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./findLast.js */ \"./node_modules/ramda/es/findLast.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"findLast\", function() { return _findLast_js__WEBPACK_IMPORTED_MODULE_67__[\"default\"]; });\n\n/* harmony import */ var _findLastIndex_js__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./findLastIndex.js */ \"./node_modules/ramda/es/findLastIndex.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"findLastIndex\", function() { return _findLastIndex_js__WEBPACK_IMPORTED_MODULE_68__[\"default\"]; });\n\n/* harmony import */ var _flatten_js__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./flatten.js */ \"./node_modules/ramda/es/flatten.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"flatten\", function() { return _flatten_js__WEBPACK_IMPORTED_MODULE_69__[\"default\"]; });\n\n/* harmony import */ var _flip_js__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./flip.js */ \"./node_modules/ramda/es/flip.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"flip\", function() { return _flip_js__WEBPACK_IMPORTED_MODULE_70__[\"default\"]; });\n\n/* harmony import */ var _forEach_js__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./forEach.js */ \"./node_modules/ramda/es/forEach.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"forEach\", function() { return _forEach_js__WEBPACK_IMPORTED_MODULE_71__[\"default\"]; });\n\n/* harmony import */ var _forEachObjIndexed_js__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ./forEachObjIndexed.js */ \"./node_modules/ramda/es/forEachObjIndexed.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"forEachObjIndexed\", function() { return _forEachObjIndexed_js__WEBPACK_IMPORTED_MODULE_72__[\"default\"]; });\n\n/* harmony import */ var _fromPairs_js__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ./fromPairs.js */ \"./node_modules/ramda/es/fromPairs.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"fromPairs\", function() { return _fromPairs_js__WEBPACK_IMPORTED_MODULE_73__[\"default\"]; });\n\n/* harmony import */ var _groupBy_js__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ./groupBy.js */ \"./node_modules/ramda/es/groupBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"groupBy\", function() { return _groupBy_js__WEBPACK_IMPORTED_MODULE_74__[\"default\"]; });\n\n/* harmony import */ var _groupWith_js__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ./groupWith.js */ \"./node_modules/ramda/es/groupWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"groupWith\", function() { return _groupWith_js__WEBPACK_IMPORTED_MODULE_75__[\"default\"]; });\n\n/* harmony import */ var _gt_js__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ./gt.js */ \"./node_modules/ramda/es/gt.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"gt\", function() { return _gt_js__WEBPACK_IMPORTED_MODULE_76__[\"default\"]; });\n\n/* harmony import */ var _gte_js__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ./gte.js */ \"./node_modules/ramda/es/gte.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"gte\", function() { return _gte_js__WEBPACK_IMPORTED_MODULE_77__[\"default\"]; });\n\n/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ./has.js */ \"./node_modules/ramda/es/has.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"has\", function() { return _has_js__WEBPACK_IMPORTED_MODULE_78__[\"default\"]; });\n\n/* harmony import */ var _hasIn_js__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ./hasIn.js */ \"./node_modules/ramda/es/hasIn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasIn\", function() { return _hasIn_js__WEBPACK_IMPORTED_MODULE_79__[\"default\"]; });\n\n/* harmony import */ var _hasPath_js__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ./hasPath.js */ \"./node_modules/ramda/es/hasPath.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasPath\", function() { return _hasPath_js__WEBPACK_IMPORTED_MODULE_80__[\"default\"]; });\n\n/* harmony import */ var _head_js__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ./head.js */ \"./node_modules/ramda/es/head.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"head\", function() { return _head_js__WEBPACK_IMPORTED_MODULE_81__[\"default\"]; });\n\n/* harmony import */ var _identical_js__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ./identical.js */ \"./node_modules/ramda/es/identical.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"identical\", function() { return _identical_js__WEBPACK_IMPORTED_MODULE_82__[\"default\"]; });\n\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ./identity.js */ \"./node_modules/ramda/es/identity.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"identity\", function() { return _identity_js__WEBPACK_IMPORTED_MODULE_83__[\"default\"]; });\n\n/* harmony import */ var _ifElse_js__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ./ifElse.js */ \"./node_modules/ramda/es/ifElse.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ifElse\", function() { return _ifElse_js__WEBPACK_IMPORTED_MODULE_84__[\"default\"]; });\n\n/* harmony import */ var _inc_js__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ./inc.js */ \"./node_modules/ramda/es/inc.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"inc\", function() { return _inc_js__WEBPACK_IMPORTED_MODULE_85__[\"default\"]; });\n\n/* harmony import */ var _includes_js__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ./includes.js */ \"./node_modules/ramda/es/includes.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"includes\", function() { return _includes_js__WEBPACK_IMPORTED_MODULE_86__[\"default\"]; });\n\n/* harmony import */ var _indexBy_js__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ./indexBy.js */ \"./node_modules/ramda/es/indexBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"indexBy\", function() { return _indexBy_js__WEBPACK_IMPORTED_MODULE_87__[\"default\"]; });\n\n/* harmony import */ var _indexOf_js__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ./indexOf.js */ \"./node_modules/ramda/es/indexOf.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"indexOf\", function() { return _indexOf_js__WEBPACK_IMPORTED_MODULE_88__[\"default\"]; });\n\n/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ./init.js */ \"./node_modules/ramda/es/init.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"init\", function() { return _init_js__WEBPACK_IMPORTED_MODULE_89__[\"default\"]; });\n\n/* harmony import */ var _innerJoin_js__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ./innerJoin.js */ \"./node_modules/ramda/es/innerJoin.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"innerJoin\", function() { return _innerJoin_js__WEBPACK_IMPORTED_MODULE_90__[\"default\"]; });\n\n/* harmony import */ var _insert_js__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ./insert.js */ \"./node_modules/ramda/es/insert.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"insert\", function() { return _insert_js__WEBPACK_IMPORTED_MODULE_91__[\"default\"]; });\n\n/* harmony import */ var _insertAll_js__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ./insertAll.js */ \"./node_modules/ramda/es/insertAll.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"insertAll\", function() { return _insertAll_js__WEBPACK_IMPORTED_MODULE_92__[\"default\"]; });\n\n/* harmony import */ var _intersection_js__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ./intersection.js */ \"./node_modules/ramda/es/intersection.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"intersection\", function() { return _intersection_js__WEBPACK_IMPORTED_MODULE_93__[\"default\"]; });\n\n/* harmony import */ var _intersperse_js__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ./intersperse.js */ \"./node_modules/ramda/es/intersperse.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"intersperse\", function() { return _intersperse_js__WEBPACK_IMPORTED_MODULE_94__[\"default\"]; });\n\n/* harmony import */ var _into_js__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ./into.js */ \"./node_modules/ramda/es/into.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"into\", function() { return _into_js__WEBPACK_IMPORTED_MODULE_95__[\"default\"]; });\n\n/* harmony import */ var _invert_js__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ./invert.js */ \"./node_modules/ramda/es/invert.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"invert\", function() { return _invert_js__WEBPACK_IMPORTED_MODULE_96__[\"default\"]; });\n\n/* harmony import */ var _invertObj_js__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(/*! ./invertObj.js */ \"./node_modules/ramda/es/invertObj.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"invertObj\", function() { return _invertObj_js__WEBPACK_IMPORTED_MODULE_97__[\"default\"]; });\n\n/* harmony import */ var _invoker_js__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(/*! ./invoker.js */ \"./node_modules/ramda/es/invoker.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"invoker\", function() { return _invoker_js__WEBPACK_IMPORTED_MODULE_98__[\"default\"]; });\n\n/* harmony import */ var _is_js__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(/*! ./is.js */ \"./node_modules/ramda/es/is.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"is\", function() { return _is_js__WEBPACK_IMPORTED_MODULE_99__[\"default\"]; });\n\n/* harmony import */ var _isEmpty_js__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(/*! ./isEmpty.js */ \"./node_modules/ramda/es/isEmpty.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isEmpty\", function() { return _isEmpty_js__WEBPACK_IMPORTED_MODULE_100__[\"default\"]; });\n\n/* harmony import */ var _isNil_js__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(/*! ./isNil.js */ \"./node_modules/ramda/es/isNil.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isNil\", function() { return _isNil_js__WEBPACK_IMPORTED_MODULE_101__[\"default\"]; });\n\n/* harmony import */ var _join_js__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(/*! ./join.js */ \"./node_modules/ramda/es/join.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"join\", function() { return _join_js__WEBPACK_IMPORTED_MODULE_102__[\"default\"]; });\n\n/* harmony import */ var _juxt_js__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(/*! ./juxt.js */ \"./node_modules/ramda/es/juxt.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"juxt\", function() { return _juxt_js__WEBPACK_IMPORTED_MODULE_103__[\"default\"]; });\n\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/ramda/es/keys.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"keys\", function() { return _keys_js__WEBPACK_IMPORTED_MODULE_104__[\"default\"]; });\n\n/* harmony import */ var _keysIn_js__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(/*! ./keysIn.js */ \"./node_modules/ramda/es/keysIn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"keysIn\", function() { return _keysIn_js__WEBPACK_IMPORTED_MODULE_105__[\"default\"]; });\n\n/* harmony import */ var _last_js__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(/*! ./last.js */ \"./node_modules/ramda/es/last.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"last\", function() { return _last_js__WEBPACK_IMPORTED_MODULE_106__[\"default\"]; });\n\n/* harmony import */ var _lastIndexOf_js__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(/*! ./lastIndexOf.js */ \"./node_modules/ramda/es/lastIndexOf.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lastIndexOf\", function() { return _lastIndexOf_js__WEBPACK_IMPORTED_MODULE_107__[\"default\"]; });\n\n/* harmony import */ var _length_js__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(/*! ./length.js */ \"./node_modules/ramda/es/length.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"length\", function() { return _length_js__WEBPACK_IMPORTED_MODULE_108__[\"default\"]; });\n\n/* harmony import */ var _lens_js__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(/*! ./lens.js */ \"./node_modules/ramda/es/lens.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lens\", function() { return _lens_js__WEBPACK_IMPORTED_MODULE_109__[\"default\"]; });\n\n/* harmony import */ var _lensIndex_js__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(/*! ./lensIndex.js */ \"./node_modules/ramda/es/lensIndex.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lensIndex\", function() { return _lensIndex_js__WEBPACK_IMPORTED_MODULE_110__[\"default\"]; });\n\n/* harmony import */ var _lensPath_js__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(/*! ./lensPath.js */ \"./node_modules/ramda/es/lensPath.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lensPath\", function() { return _lensPath_js__WEBPACK_IMPORTED_MODULE_111__[\"default\"]; });\n\n/* harmony import */ var _lensProp_js__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(/*! ./lensProp.js */ \"./node_modules/ramda/es/lensProp.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lensProp\", function() { return _lensProp_js__WEBPACK_IMPORTED_MODULE_112__[\"default\"]; });\n\n/* harmony import */ var _lift_js__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(/*! ./lift.js */ \"./node_modules/ramda/es/lift.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lift\", function() { return _lift_js__WEBPACK_IMPORTED_MODULE_113__[\"default\"]; });\n\n/* harmony import */ var _liftN_js__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(/*! ./liftN.js */ \"./node_modules/ramda/es/liftN.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"liftN\", function() { return _liftN_js__WEBPACK_IMPORTED_MODULE_114__[\"default\"]; });\n\n/* harmony import */ var _lt_js__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(/*! ./lt.js */ \"./node_modules/ramda/es/lt.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lt\", function() { return _lt_js__WEBPACK_IMPORTED_MODULE_115__[\"default\"]; });\n\n/* harmony import */ var _lte_js__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(/*! ./lte.js */ \"./node_modules/ramda/es/lte.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lte\", function() { return _lte_js__WEBPACK_IMPORTED_MODULE_116__[\"default\"]; });\n\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"map\", function() { return _map_js__WEBPACK_IMPORTED_MODULE_117__[\"default\"]; });\n\n/* harmony import */ var _mapAccum_js__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(/*! ./mapAccum.js */ \"./node_modules/ramda/es/mapAccum.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mapAccum\", function() { return _mapAccum_js__WEBPACK_IMPORTED_MODULE_118__[\"default\"]; });\n\n/* harmony import */ var _mapAccumRight_js__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(/*! ./mapAccumRight.js */ \"./node_modules/ramda/es/mapAccumRight.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mapAccumRight\", function() { return _mapAccumRight_js__WEBPACK_IMPORTED_MODULE_119__[\"default\"]; });\n\n/* harmony import */ var _mapObjIndexed_js__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(/*! ./mapObjIndexed.js */ \"./node_modules/ramda/es/mapObjIndexed.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mapObjIndexed\", function() { return _mapObjIndexed_js__WEBPACK_IMPORTED_MODULE_120__[\"default\"]; });\n\n/* harmony import */ var _match_js__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ./match.js */ \"./node_modules/ramda/es/match.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"match\", function() { return _match_js__WEBPACK_IMPORTED_MODULE_121__[\"default\"]; });\n\n/* harmony import */ var _mathMod_js__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(/*! ./mathMod.js */ \"./node_modules/ramda/es/mathMod.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mathMod\", function() { return _mathMod_js__WEBPACK_IMPORTED_MODULE_122__[\"default\"]; });\n\n/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(/*! ./max.js */ \"./node_modules/ramda/es/max.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"max\", function() { return _max_js__WEBPACK_IMPORTED_MODULE_123__[\"default\"]; });\n\n/* harmony import */ var _maxBy_js__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(/*! ./maxBy.js */ \"./node_modules/ramda/es/maxBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"maxBy\", function() { return _maxBy_js__WEBPACK_IMPORTED_MODULE_124__[\"default\"]; });\n\n/* harmony import */ var _mean_js__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(/*! ./mean.js */ \"./node_modules/ramda/es/mean.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mean\", function() { return _mean_js__WEBPACK_IMPORTED_MODULE_125__[\"default\"]; });\n\n/* harmony import */ var _median_js__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(/*! ./median.js */ \"./node_modules/ramda/es/median.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"median\", function() { return _median_js__WEBPACK_IMPORTED_MODULE_126__[\"default\"]; });\n\n/* harmony import */ var _memoizeWith_js__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(/*! ./memoizeWith.js */ \"./node_modules/ramda/es/memoizeWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"memoizeWith\", function() { return _memoizeWith_js__WEBPACK_IMPORTED_MODULE_127__[\"default\"]; });\n\n/* harmony import */ var _merge_js__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(/*! ./merge.js */ \"./node_modules/ramda/es/merge.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"merge\", function() { return _merge_js__WEBPACK_IMPORTED_MODULE_128__[\"default\"]; });\n\n/* harmony import */ var _mergeAll_js__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(/*! ./mergeAll.js */ \"./node_modules/ramda/es/mergeAll.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeAll\", function() { return _mergeAll_js__WEBPACK_IMPORTED_MODULE_129__[\"default\"]; });\n\n/* harmony import */ var _mergeDeepLeft_js__WEBPACK_IMPORTED_MODULE_130__ = __webpack_require__(/*! ./mergeDeepLeft.js */ \"./node_modules/ramda/es/mergeDeepLeft.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeDeepLeft\", function() { return _mergeDeepLeft_js__WEBPACK_IMPORTED_MODULE_130__[\"default\"]; });\n\n/* harmony import */ var _mergeDeepRight_js__WEBPACK_IMPORTED_MODULE_131__ = __webpack_require__(/*! ./mergeDeepRight.js */ \"./node_modules/ramda/es/mergeDeepRight.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeDeepRight\", function() { return _mergeDeepRight_js__WEBPACK_IMPORTED_MODULE_131__[\"default\"]; });\n\n/* harmony import */ var _mergeDeepWith_js__WEBPACK_IMPORTED_MODULE_132__ = __webpack_require__(/*! ./mergeDeepWith.js */ \"./node_modules/ramda/es/mergeDeepWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeDeepWith\", function() { return _mergeDeepWith_js__WEBPACK_IMPORTED_MODULE_132__[\"default\"]; });\n\n/* harmony import */ var _mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_133__ = __webpack_require__(/*! ./mergeDeepWithKey.js */ \"./node_modules/ramda/es/mergeDeepWithKey.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeDeepWithKey\", function() { return _mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_133__[\"default\"]; });\n\n/* harmony import */ var _mergeLeft_js__WEBPACK_IMPORTED_MODULE_134__ = __webpack_require__(/*! ./mergeLeft.js */ \"./node_modules/ramda/es/mergeLeft.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeLeft\", function() { return _mergeLeft_js__WEBPACK_IMPORTED_MODULE_134__[\"default\"]; });\n\n/* harmony import */ var _mergeRight_js__WEBPACK_IMPORTED_MODULE_135__ = __webpack_require__(/*! ./mergeRight.js */ \"./node_modules/ramda/es/mergeRight.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeRight\", function() { return _mergeRight_js__WEBPACK_IMPORTED_MODULE_135__[\"default\"]; });\n\n/* harmony import */ var _mergeWith_js__WEBPACK_IMPORTED_MODULE_136__ = __webpack_require__(/*! ./mergeWith.js */ \"./node_modules/ramda/es/mergeWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeWith\", function() { return _mergeWith_js__WEBPACK_IMPORTED_MODULE_136__[\"default\"]; });\n\n/* harmony import */ var _mergeWithKey_js__WEBPACK_IMPORTED_MODULE_137__ = __webpack_require__(/*! ./mergeWithKey.js */ \"./node_modules/ramda/es/mergeWithKey.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeWithKey\", function() { return _mergeWithKey_js__WEBPACK_IMPORTED_MODULE_137__[\"default\"]; });\n\n/* harmony import */ var _min_js__WEBPACK_IMPORTED_MODULE_138__ = __webpack_require__(/*! ./min.js */ \"./node_modules/ramda/es/min.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"min\", function() { return _min_js__WEBPACK_IMPORTED_MODULE_138__[\"default\"]; });\n\n/* harmony import */ var _minBy_js__WEBPACK_IMPORTED_MODULE_139__ = __webpack_require__(/*! ./minBy.js */ \"./node_modules/ramda/es/minBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"minBy\", function() { return _minBy_js__WEBPACK_IMPORTED_MODULE_139__[\"default\"]; });\n\n/* harmony import */ var _modulo_js__WEBPACK_IMPORTED_MODULE_140__ = __webpack_require__(/*! ./modulo.js */ \"./node_modules/ramda/es/modulo.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"modulo\", function() { return _modulo_js__WEBPACK_IMPORTED_MODULE_140__[\"default\"]; });\n\n/* harmony import */ var _move_js__WEBPACK_IMPORTED_MODULE_141__ = __webpack_require__(/*! ./move.js */ \"./node_modules/ramda/es/move.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"move\", function() { return _move_js__WEBPACK_IMPORTED_MODULE_141__[\"default\"]; });\n\n/* harmony import */ var _multiply_js__WEBPACK_IMPORTED_MODULE_142__ = __webpack_require__(/*! ./multiply.js */ \"./node_modules/ramda/es/multiply.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"multiply\", function() { return _multiply_js__WEBPACK_IMPORTED_MODULE_142__[\"default\"]; });\n\n/* harmony import */ var _nAry_js__WEBPACK_IMPORTED_MODULE_143__ = __webpack_require__(/*! ./nAry.js */ \"./node_modules/ramda/es/nAry.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"nAry\", function() { return _nAry_js__WEBPACK_IMPORTED_MODULE_143__[\"default\"]; });\n\n/* harmony import */ var _negate_js__WEBPACK_IMPORTED_MODULE_144__ = __webpack_require__(/*! ./negate.js */ \"./node_modules/ramda/es/negate.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"negate\", function() { return _negate_js__WEBPACK_IMPORTED_MODULE_144__[\"default\"]; });\n\n/* harmony import */ var _none_js__WEBPACK_IMPORTED_MODULE_145__ = __webpack_require__(/*! ./none.js */ \"./node_modules/ramda/es/none.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"none\", function() { return _none_js__WEBPACK_IMPORTED_MODULE_145__[\"default\"]; });\n\n/* harmony import */ var _not_js__WEBPACK_IMPORTED_MODULE_146__ = __webpack_require__(/*! ./not.js */ \"./node_modules/ramda/es/not.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"not\", function() { return _not_js__WEBPACK_IMPORTED_MODULE_146__[\"default\"]; });\n\n/* harmony import */ var _nth_js__WEBPACK_IMPORTED_MODULE_147__ = __webpack_require__(/*! ./nth.js */ \"./node_modules/ramda/es/nth.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"nth\", function() { return _nth_js__WEBPACK_IMPORTED_MODULE_147__[\"default\"]; });\n\n/* harmony import */ var _nthArg_js__WEBPACK_IMPORTED_MODULE_148__ = __webpack_require__(/*! ./nthArg.js */ \"./node_modules/ramda/es/nthArg.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"nthArg\", function() { return _nthArg_js__WEBPACK_IMPORTED_MODULE_148__[\"default\"]; });\n\n/* harmony import */ var _o_js__WEBPACK_IMPORTED_MODULE_149__ = __webpack_require__(/*! ./o.js */ \"./node_modules/ramda/es/o.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"o\", function() { return _o_js__WEBPACK_IMPORTED_MODULE_149__[\"default\"]; });\n\n/* harmony import */ var _objOf_js__WEBPACK_IMPORTED_MODULE_150__ = __webpack_require__(/*! ./objOf.js */ \"./node_modules/ramda/es/objOf.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"objOf\", function() { return _objOf_js__WEBPACK_IMPORTED_MODULE_150__[\"default\"]; });\n\n/* harmony import */ var _of_js__WEBPACK_IMPORTED_MODULE_151__ = __webpack_require__(/*! ./of.js */ \"./node_modules/ramda/es/of.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"of\", function() { return _of_js__WEBPACK_IMPORTED_MODULE_151__[\"default\"]; });\n\n/* harmony import */ var _omit_js__WEBPACK_IMPORTED_MODULE_152__ = __webpack_require__(/*! ./omit.js */ \"./node_modules/ramda/es/omit.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"omit\", function() { return _omit_js__WEBPACK_IMPORTED_MODULE_152__[\"default\"]; });\n\n/* harmony import */ var _once_js__WEBPACK_IMPORTED_MODULE_153__ = __webpack_require__(/*! ./once.js */ \"./node_modules/ramda/es/once.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"once\", function() { return _once_js__WEBPACK_IMPORTED_MODULE_153__[\"default\"]; });\n\n/* harmony import */ var _or_js__WEBPACK_IMPORTED_MODULE_154__ = __webpack_require__(/*! ./or.js */ \"./node_modules/ramda/es/or.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"or\", function() { return _or_js__WEBPACK_IMPORTED_MODULE_154__[\"default\"]; });\n\n/* harmony import */ var _otherwise_js__WEBPACK_IMPORTED_MODULE_155__ = __webpack_require__(/*! ./otherwise.js */ \"./node_modules/ramda/es/otherwise.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"otherwise\", function() { return _otherwise_js__WEBPACK_IMPORTED_MODULE_155__[\"default\"]; });\n\n/* harmony import */ var _over_js__WEBPACK_IMPORTED_MODULE_156__ = __webpack_require__(/*! ./over.js */ \"./node_modules/ramda/es/over.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"over\", function() { return _over_js__WEBPACK_IMPORTED_MODULE_156__[\"default\"]; });\n\n/* harmony import */ var _pair_js__WEBPACK_IMPORTED_MODULE_157__ = __webpack_require__(/*! ./pair.js */ \"./node_modules/ramda/es/pair.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pair\", function() { return _pair_js__WEBPACK_IMPORTED_MODULE_157__[\"default\"]; });\n\n/* harmony import */ var _partial_js__WEBPACK_IMPORTED_MODULE_158__ = __webpack_require__(/*! ./partial.js */ \"./node_modules/ramda/es/partial.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"partial\", function() { return _partial_js__WEBPACK_IMPORTED_MODULE_158__[\"default\"]; });\n\n/* harmony import */ var _partialRight_js__WEBPACK_IMPORTED_MODULE_159__ = __webpack_require__(/*! ./partialRight.js */ \"./node_modules/ramda/es/partialRight.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"partialRight\", function() { return _partialRight_js__WEBPACK_IMPORTED_MODULE_159__[\"default\"]; });\n\n/* harmony import */ var _partition_js__WEBPACK_IMPORTED_MODULE_160__ = __webpack_require__(/*! ./partition.js */ \"./node_modules/ramda/es/partition.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"partition\", function() { return _partition_js__WEBPACK_IMPORTED_MODULE_160__[\"default\"]; });\n\n/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_161__ = __webpack_require__(/*! ./path.js */ \"./node_modules/ramda/es/path.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"path\", function() { return _path_js__WEBPACK_IMPORTED_MODULE_161__[\"default\"]; });\n\n/* harmony import */ var _paths_js__WEBPACK_IMPORTED_MODULE_162__ = __webpack_require__(/*! ./paths.js */ \"./node_modules/ramda/es/paths.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"paths\", function() { return _paths_js__WEBPACK_IMPORTED_MODULE_162__[\"default\"]; });\n\n/* harmony import */ var _pathEq_js__WEBPACK_IMPORTED_MODULE_163__ = __webpack_require__(/*! ./pathEq.js */ \"./node_modules/ramda/es/pathEq.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pathEq\", function() { return _pathEq_js__WEBPACK_IMPORTED_MODULE_163__[\"default\"]; });\n\n/* harmony import */ var _pathOr_js__WEBPACK_IMPORTED_MODULE_164__ = __webpack_require__(/*! ./pathOr.js */ \"./node_modules/ramda/es/pathOr.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pathOr\", function() { return _pathOr_js__WEBPACK_IMPORTED_MODULE_164__[\"default\"]; });\n\n/* harmony import */ var _pathSatisfies_js__WEBPACK_IMPORTED_MODULE_165__ = __webpack_require__(/*! ./pathSatisfies.js */ \"./node_modules/ramda/es/pathSatisfies.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pathSatisfies\", function() { return _pathSatisfies_js__WEBPACK_IMPORTED_MODULE_165__[\"default\"]; });\n\n/* harmony import */ var _pick_js__WEBPACK_IMPORTED_MODULE_166__ = __webpack_require__(/*! ./pick.js */ \"./node_modules/ramda/es/pick.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pick\", function() { return _pick_js__WEBPACK_IMPORTED_MODULE_166__[\"default\"]; });\n\n/* harmony import */ var _pickAll_js__WEBPACK_IMPORTED_MODULE_167__ = __webpack_require__(/*! ./pickAll.js */ \"./node_modules/ramda/es/pickAll.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pickAll\", function() { return _pickAll_js__WEBPACK_IMPORTED_MODULE_167__[\"default\"]; });\n\n/* harmony import */ var _pickBy_js__WEBPACK_IMPORTED_MODULE_168__ = __webpack_require__(/*! ./pickBy.js */ \"./node_modules/ramda/es/pickBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pickBy\", function() { return _pickBy_js__WEBPACK_IMPORTED_MODULE_168__[\"default\"]; });\n\n/* harmony import */ var _pipe_js__WEBPACK_IMPORTED_MODULE_169__ = __webpack_require__(/*! ./pipe.js */ \"./node_modules/ramda/es/pipe.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pipe\", function() { return _pipe_js__WEBPACK_IMPORTED_MODULE_169__[\"default\"]; });\n\n/* harmony import */ var _pipeK_js__WEBPACK_IMPORTED_MODULE_170__ = __webpack_require__(/*! ./pipeK.js */ \"./node_modules/ramda/es/pipeK.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pipeK\", function() { return _pipeK_js__WEBPACK_IMPORTED_MODULE_170__[\"default\"]; });\n\n/* harmony import */ var _pipeP_js__WEBPACK_IMPORTED_MODULE_171__ = __webpack_require__(/*! ./pipeP.js */ \"./node_modules/ramda/es/pipeP.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pipeP\", function() { return _pipeP_js__WEBPACK_IMPORTED_MODULE_171__[\"default\"]; });\n\n/* harmony import */ var _pipeWith_js__WEBPACK_IMPORTED_MODULE_172__ = __webpack_require__(/*! ./pipeWith.js */ \"./node_modules/ramda/es/pipeWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pipeWith\", function() { return _pipeWith_js__WEBPACK_IMPORTED_MODULE_172__[\"default\"]; });\n\n/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_173__ = __webpack_require__(/*! ./pluck.js */ \"./node_modules/ramda/es/pluck.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pluck\", function() { return _pluck_js__WEBPACK_IMPORTED_MODULE_173__[\"default\"]; });\n\n/* harmony import */ var _prepend_js__WEBPACK_IMPORTED_MODULE_174__ = __webpack_require__(/*! ./prepend.js */ \"./node_modules/ramda/es/prepend.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"prepend\", function() { return _prepend_js__WEBPACK_IMPORTED_MODULE_174__[\"default\"]; });\n\n/* harmony import */ var _product_js__WEBPACK_IMPORTED_MODULE_175__ = __webpack_require__(/*! ./product.js */ \"./node_modules/ramda/es/product.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"product\", function() { return _product_js__WEBPACK_IMPORTED_MODULE_175__[\"default\"]; });\n\n/* harmony import */ var _project_js__WEBPACK_IMPORTED_MODULE_176__ = __webpack_require__(/*! ./project.js */ \"./node_modules/ramda/es/project.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"project\", function() { return _project_js__WEBPACK_IMPORTED_MODULE_176__[\"default\"]; });\n\n/* harmony import */ var _prop_js__WEBPACK_IMPORTED_MODULE_177__ = __webpack_require__(/*! ./prop.js */ \"./node_modules/ramda/es/prop.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"prop\", function() { return _prop_js__WEBPACK_IMPORTED_MODULE_177__[\"default\"]; });\n\n/* harmony import */ var _propEq_js__WEBPACK_IMPORTED_MODULE_178__ = __webpack_require__(/*! ./propEq.js */ \"./node_modules/ramda/es/propEq.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"propEq\", function() { return _propEq_js__WEBPACK_IMPORTED_MODULE_178__[\"default\"]; });\n\n/* harmony import */ var _propIs_js__WEBPACK_IMPORTED_MODULE_179__ = __webpack_require__(/*! ./propIs.js */ \"./node_modules/ramda/es/propIs.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"propIs\", function() { return _propIs_js__WEBPACK_IMPORTED_MODULE_179__[\"default\"]; });\n\n/* harmony import */ var _propOr_js__WEBPACK_IMPORTED_MODULE_180__ = __webpack_require__(/*! ./propOr.js */ \"./node_modules/ramda/es/propOr.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"propOr\", function() { return _propOr_js__WEBPACK_IMPORTED_MODULE_180__[\"default\"]; });\n\n/* harmony import */ var _propSatisfies_js__WEBPACK_IMPORTED_MODULE_181__ = __webpack_require__(/*! ./propSatisfies.js */ \"./node_modules/ramda/es/propSatisfies.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"propSatisfies\", function() { return _propSatisfies_js__WEBPACK_IMPORTED_MODULE_181__[\"default\"]; });\n\n/* harmony import */ var _props_js__WEBPACK_IMPORTED_MODULE_182__ = __webpack_require__(/*! ./props.js */ \"./node_modules/ramda/es/props.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"props\", function() { return _props_js__WEBPACK_IMPORTED_MODULE_182__[\"default\"]; });\n\n/* harmony import */ var _range_js__WEBPACK_IMPORTED_MODULE_183__ = __webpack_require__(/*! ./range.js */ \"./node_modules/ramda/es/range.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"range\", function() { return _range_js__WEBPACK_IMPORTED_MODULE_183__[\"default\"]; });\n\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_184__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reduce\", function() { return _reduce_js__WEBPACK_IMPORTED_MODULE_184__[\"default\"]; });\n\n/* harmony import */ var _reduceBy_js__WEBPACK_IMPORTED_MODULE_185__ = __webpack_require__(/*! ./reduceBy.js */ \"./node_modules/ramda/es/reduceBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reduceBy\", function() { return _reduceBy_js__WEBPACK_IMPORTED_MODULE_185__[\"default\"]; });\n\n/* harmony import */ var _reduceRight_js__WEBPACK_IMPORTED_MODULE_186__ = __webpack_require__(/*! ./reduceRight.js */ \"./node_modules/ramda/es/reduceRight.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reduceRight\", function() { return _reduceRight_js__WEBPACK_IMPORTED_MODULE_186__[\"default\"]; });\n\n/* harmony import */ var _reduceWhile_js__WEBPACK_IMPORTED_MODULE_187__ = __webpack_require__(/*! ./reduceWhile.js */ \"./node_modules/ramda/es/reduceWhile.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reduceWhile\", function() { return _reduceWhile_js__WEBPACK_IMPORTED_MODULE_187__[\"default\"]; });\n\n/* harmony import */ var _reduced_js__WEBPACK_IMPORTED_MODULE_188__ = __webpack_require__(/*! ./reduced.js */ \"./node_modules/ramda/es/reduced.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reduced\", function() { return _reduced_js__WEBPACK_IMPORTED_MODULE_188__[\"default\"]; });\n\n/* harmony import */ var _reject_js__WEBPACK_IMPORTED_MODULE_189__ = __webpack_require__(/*! ./reject.js */ \"./node_modules/ramda/es/reject.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reject\", function() { return _reject_js__WEBPACK_IMPORTED_MODULE_189__[\"default\"]; });\n\n/* harmony import */ var _remove_js__WEBPACK_IMPORTED_MODULE_190__ = __webpack_require__(/*! ./remove.js */ \"./node_modules/ramda/es/remove.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"remove\", function() { return _remove_js__WEBPACK_IMPORTED_MODULE_190__[\"default\"]; });\n\n/* harmony import */ var _repeat_js__WEBPACK_IMPORTED_MODULE_191__ = __webpack_require__(/*! ./repeat.js */ \"./node_modules/ramda/es/repeat.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"repeat\", function() { return _repeat_js__WEBPACK_IMPORTED_MODULE_191__[\"default\"]; });\n\n/* harmony import */ var _replace_js__WEBPACK_IMPORTED_MODULE_192__ = __webpack_require__(/*! ./replace.js */ \"./node_modules/ramda/es/replace.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"replace\", function() { return _replace_js__WEBPACK_IMPORTED_MODULE_192__[\"default\"]; });\n\n/* harmony import */ var _reverse_js__WEBPACK_IMPORTED_MODULE_193__ = __webpack_require__(/*! ./reverse.js */ \"./node_modules/ramda/es/reverse.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reverse\", function() { return _reverse_js__WEBPACK_IMPORTED_MODULE_193__[\"default\"]; });\n\n/* harmony import */ var _scan_js__WEBPACK_IMPORTED_MODULE_194__ = __webpack_require__(/*! ./scan.js */ \"./node_modules/ramda/es/scan.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scan\", function() { return _scan_js__WEBPACK_IMPORTED_MODULE_194__[\"default\"]; });\n\n/* harmony import */ var _sequence_js__WEBPACK_IMPORTED_MODULE_195__ = __webpack_require__(/*! ./sequence.js */ \"./node_modules/ramda/es/sequence.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sequence\", function() { return _sequence_js__WEBPACK_IMPORTED_MODULE_195__[\"default\"]; });\n\n/* harmony import */ var _set_js__WEBPACK_IMPORTED_MODULE_196__ = __webpack_require__(/*! ./set.js */ \"./node_modules/ramda/es/set.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"set\", function() { return _set_js__WEBPACK_IMPORTED_MODULE_196__[\"default\"]; });\n\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_197__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"slice\", function() { return _slice_js__WEBPACK_IMPORTED_MODULE_197__[\"default\"]; });\n\n/* harmony import */ var _sort_js__WEBPACK_IMPORTED_MODULE_198__ = __webpack_require__(/*! ./sort.js */ \"./node_modules/ramda/es/sort.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sort\", function() { return _sort_js__WEBPACK_IMPORTED_MODULE_198__[\"default\"]; });\n\n/* harmony import */ var _sortBy_js__WEBPACK_IMPORTED_MODULE_199__ = __webpack_require__(/*! ./sortBy.js */ \"./node_modules/ramda/es/sortBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sortBy\", function() { return _sortBy_js__WEBPACK_IMPORTED_MODULE_199__[\"default\"]; });\n\n/* harmony import */ var _sortWith_js__WEBPACK_IMPORTED_MODULE_200__ = __webpack_require__(/*! ./sortWith.js */ \"./node_modules/ramda/es/sortWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sortWith\", function() { return _sortWith_js__WEBPACK_IMPORTED_MODULE_200__[\"default\"]; });\n\n/* harmony import */ var _split_js__WEBPACK_IMPORTED_MODULE_201__ = __webpack_require__(/*! ./split.js */ \"./node_modules/ramda/es/split.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"split\", function() { return _split_js__WEBPACK_IMPORTED_MODULE_201__[\"default\"]; });\n\n/* harmony import */ var _splitAt_js__WEBPACK_IMPORTED_MODULE_202__ = __webpack_require__(/*! ./splitAt.js */ \"./node_modules/ramda/es/splitAt.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"splitAt\", function() { return _splitAt_js__WEBPACK_IMPORTED_MODULE_202__[\"default\"]; });\n\n/* harmony import */ var _splitEvery_js__WEBPACK_IMPORTED_MODULE_203__ = __webpack_require__(/*! ./splitEvery.js */ \"./node_modules/ramda/es/splitEvery.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"splitEvery\", function() { return _splitEvery_js__WEBPACK_IMPORTED_MODULE_203__[\"default\"]; });\n\n/* harmony import */ var _splitWhen_js__WEBPACK_IMPORTED_MODULE_204__ = __webpack_require__(/*! ./splitWhen.js */ \"./node_modules/ramda/es/splitWhen.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"splitWhen\", function() { return _splitWhen_js__WEBPACK_IMPORTED_MODULE_204__[\"default\"]; });\n\n/* harmony import */ var _startsWith_js__WEBPACK_IMPORTED_MODULE_205__ = __webpack_require__(/*! ./startsWith.js */ \"./node_modules/ramda/es/startsWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"startsWith\", function() { return _startsWith_js__WEBPACK_IMPORTED_MODULE_205__[\"default\"]; });\n\n/* harmony import */ var _subtract_js__WEBPACK_IMPORTED_MODULE_206__ = __webpack_require__(/*! ./subtract.js */ \"./node_modules/ramda/es/subtract.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"subtract\", function() { return _subtract_js__WEBPACK_IMPORTED_MODULE_206__[\"default\"]; });\n\n/* harmony import */ var _sum_js__WEBPACK_IMPORTED_MODULE_207__ = __webpack_require__(/*! ./sum.js */ \"./node_modules/ramda/es/sum.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sum\", function() { return _sum_js__WEBPACK_IMPORTED_MODULE_207__[\"default\"]; });\n\n/* harmony import */ var _symmetricDifference_js__WEBPACK_IMPORTED_MODULE_208__ = __webpack_require__(/*! ./symmetricDifference.js */ \"./node_modules/ramda/es/symmetricDifference.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"symmetricDifference\", function() { return _symmetricDifference_js__WEBPACK_IMPORTED_MODULE_208__[\"default\"]; });\n\n/* harmony import */ var _symmetricDifferenceWith_js__WEBPACK_IMPORTED_MODULE_209__ = __webpack_require__(/*! ./symmetricDifferenceWith.js */ \"./node_modules/ramda/es/symmetricDifferenceWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"symmetricDifferenceWith\", function() { return _symmetricDifferenceWith_js__WEBPACK_IMPORTED_MODULE_209__[\"default\"]; });\n\n/* harmony import */ var _tail_js__WEBPACK_IMPORTED_MODULE_210__ = __webpack_require__(/*! ./tail.js */ \"./node_modules/ramda/es/tail.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tail\", function() { return _tail_js__WEBPACK_IMPORTED_MODULE_210__[\"default\"]; });\n\n/* harmony import */ var _take_js__WEBPACK_IMPORTED_MODULE_211__ = __webpack_require__(/*! ./take.js */ \"./node_modules/ramda/es/take.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"take\", function() { return _take_js__WEBPACK_IMPORTED_MODULE_211__[\"default\"]; });\n\n/* harmony import */ var _takeLast_js__WEBPACK_IMPORTED_MODULE_212__ = __webpack_require__(/*! ./takeLast.js */ \"./node_modules/ramda/es/takeLast.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"takeLast\", function() { return _takeLast_js__WEBPACK_IMPORTED_MODULE_212__[\"default\"]; });\n\n/* harmony import */ var _takeLastWhile_js__WEBPACK_IMPORTED_MODULE_213__ = __webpack_require__(/*! ./takeLastWhile.js */ \"./node_modules/ramda/es/takeLastWhile.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"takeLastWhile\", function() { return _takeLastWhile_js__WEBPACK_IMPORTED_MODULE_213__[\"default\"]; });\n\n/* harmony import */ var _takeWhile_js__WEBPACK_IMPORTED_MODULE_214__ = __webpack_require__(/*! ./takeWhile.js */ \"./node_modules/ramda/es/takeWhile.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"takeWhile\", function() { return _takeWhile_js__WEBPACK_IMPORTED_MODULE_214__[\"default\"]; });\n\n/* harmony import */ var _tap_js__WEBPACK_IMPORTED_MODULE_215__ = __webpack_require__(/*! ./tap.js */ \"./node_modules/ramda/es/tap.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tap\", function() { return _tap_js__WEBPACK_IMPORTED_MODULE_215__[\"default\"]; });\n\n/* harmony import */ var _test_js__WEBPACK_IMPORTED_MODULE_216__ = __webpack_require__(/*! ./test.js */ \"./node_modules/ramda/es/test.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"test\", function() { return _test_js__WEBPACK_IMPORTED_MODULE_216__[\"default\"]; });\n\n/* harmony import */ var _andThen_js__WEBPACK_IMPORTED_MODULE_217__ = __webpack_require__(/*! ./andThen.js */ \"./node_modules/ramda/es/andThen.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"andThen\", function() { return _andThen_js__WEBPACK_IMPORTED_MODULE_217__[\"default\"]; });\n\n/* harmony import */ var _times_js__WEBPACK_IMPORTED_MODULE_218__ = __webpack_require__(/*! ./times.js */ \"./node_modules/ramda/es/times.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"times\", function() { return _times_js__WEBPACK_IMPORTED_MODULE_218__[\"default\"]; });\n\n/* harmony import */ var _toLower_js__WEBPACK_IMPORTED_MODULE_219__ = __webpack_require__(/*! ./toLower.js */ \"./node_modules/ramda/es/toLower.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toLower\", function() { return _toLower_js__WEBPACK_IMPORTED_MODULE_219__[\"default\"]; });\n\n/* harmony import */ var _toPairs_js__WEBPACK_IMPORTED_MODULE_220__ = __webpack_require__(/*! ./toPairs.js */ \"./node_modules/ramda/es/toPairs.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toPairs\", function() { return _toPairs_js__WEBPACK_IMPORTED_MODULE_220__[\"default\"]; });\n\n/* harmony import */ var _toPairsIn_js__WEBPACK_IMPORTED_MODULE_221__ = __webpack_require__(/*! ./toPairsIn.js */ \"./node_modules/ramda/es/toPairsIn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toPairsIn\", function() { return _toPairsIn_js__WEBPACK_IMPORTED_MODULE_221__[\"default\"]; });\n\n/* harmony import */ var _toString_js__WEBPACK_IMPORTED_MODULE_222__ = __webpack_require__(/*! ./toString.js */ \"./node_modules/ramda/es/toString.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toString\", function() { return _toString_js__WEBPACK_IMPORTED_MODULE_222__[\"default\"]; });\n\n/* harmony import */ var _toUpper_js__WEBPACK_IMPORTED_MODULE_223__ = __webpack_require__(/*! ./toUpper.js */ \"./node_modules/ramda/es/toUpper.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toUpper\", function() { return _toUpper_js__WEBPACK_IMPORTED_MODULE_223__[\"default\"]; });\n\n/* harmony import */ var _transduce_js__WEBPACK_IMPORTED_MODULE_224__ = __webpack_require__(/*! ./transduce.js */ \"./node_modules/ramda/es/transduce.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"transduce\", function() { return _transduce_js__WEBPACK_IMPORTED_MODULE_224__[\"default\"]; });\n\n/* harmony import */ var _transpose_js__WEBPACK_IMPORTED_MODULE_225__ = __webpack_require__(/*! ./transpose.js */ \"./node_modules/ramda/es/transpose.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"transpose\", function() { return _transpose_js__WEBPACK_IMPORTED_MODULE_225__[\"default\"]; });\n\n/* harmony import */ var _traverse_js__WEBPACK_IMPORTED_MODULE_226__ = __webpack_require__(/*! ./traverse.js */ \"./node_modules/ramda/es/traverse.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"traverse\", function() { return _traverse_js__WEBPACK_IMPORTED_MODULE_226__[\"default\"]; });\n\n/* harmony import */ var _trim_js__WEBPACK_IMPORTED_MODULE_227__ = __webpack_require__(/*! ./trim.js */ \"./node_modules/ramda/es/trim.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"trim\", function() { return _trim_js__WEBPACK_IMPORTED_MODULE_227__[\"default\"]; });\n\n/* harmony import */ var _tryCatch_js__WEBPACK_IMPORTED_MODULE_228__ = __webpack_require__(/*! ./tryCatch.js */ \"./node_modules/ramda/es/tryCatch.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tryCatch\", function() { return _tryCatch_js__WEBPACK_IMPORTED_MODULE_228__[\"default\"]; });\n\n/* harmony import */ var _type_js__WEBPACK_IMPORTED_MODULE_229__ = __webpack_require__(/*! ./type.js */ \"./node_modules/ramda/es/type.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"type\", function() { return _type_js__WEBPACK_IMPORTED_MODULE_229__[\"default\"]; });\n\n/* harmony import */ var _unapply_js__WEBPACK_IMPORTED_MODULE_230__ = __webpack_require__(/*! ./unapply.js */ \"./node_modules/ramda/es/unapply.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unapply\", function() { return _unapply_js__WEBPACK_IMPORTED_MODULE_230__[\"default\"]; });\n\n/* harmony import */ var _unary_js__WEBPACK_IMPORTED_MODULE_231__ = __webpack_require__(/*! ./unary.js */ \"./node_modules/ramda/es/unary.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unary\", function() { return _unary_js__WEBPACK_IMPORTED_MODULE_231__[\"default\"]; });\n\n/* harmony import */ var _uncurryN_js__WEBPACK_IMPORTED_MODULE_232__ = __webpack_require__(/*! ./uncurryN.js */ \"./node_modules/ramda/es/uncurryN.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"uncurryN\", function() { return _uncurryN_js__WEBPACK_IMPORTED_MODULE_232__[\"default\"]; });\n\n/* harmony import */ var _unfold_js__WEBPACK_IMPORTED_MODULE_233__ = __webpack_require__(/*! ./unfold.js */ \"./node_modules/ramda/es/unfold.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unfold\", function() { return _unfold_js__WEBPACK_IMPORTED_MODULE_233__[\"default\"]; });\n\n/* harmony import */ var _union_js__WEBPACK_IMPORTED_MODULE_234__ = __webpack_require__(/*! ./union.js */ \"./node_modules/ramda/es/union.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"union\", function() { return _union_js__WEBPACK_IMPORTED_MODULE_234__[\"default\"]; });\n\n/* harmony import */ var _unionWith_js__WEBPACK_IMPORTED_MODULE_235__ = __webpack_require__(/*! ./unionWith.js */ \"./node_modules/ramda/es/unionWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unionWith\", function() { return _unionWith_js__WEBPACK_IMPORTED_MODULE_235__[\"default\"]; });\n\n/* harmony import */ var _uniq_js__WEBPACK_IMPORTED_MODULE_236__ = __webpack_require__(/*! ./uniq.js */ \"./node_modules/ramda/es/uniq.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"uniq\", function() { return _uniq_js__WEBPACK_IMPORTED_MODULE_236__[\"default\"]; });\n\n/* harmony import */ var _uniqBy_js__WEBPACK_IMPORTED_MODULE_237__ = __webpack_require__(/*! ./uniqBy.js */ \"./node_modules/ramda/es/uniqBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"uniqBy\", function() { return _uniqBy_js__WEBPACK_IMPORTED_MODULE_237__[\"default\"]; });\n\n/* harmony import */ var _uniqWith_js__WEBPACK_IMPORTED_MODULE_238__ = __webpack_require__(/*! ./uniqWith.js */ \"./node_modules/ramda/es/uniqWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"uniqWith\", function() { return _uniqWith_js__WEBPACK_IMPORTED_MODULE_238__[\"default\"]; });\n\n/* harmony import */ var _unless_js__WEBPACK_IMPORTED_MODULE_239__ = __webpack_require__(/*! ./unless.js */ \"./node_modules/ramda/es/unless.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unless\", function() { return _unless_js__WEBPACK_IMPORTED_MODULE_239__[\"default\"]; });\n\n/* harmony import */ var _unnest_js__WEBPACK_IMPORTED_MODULE_240__ = __webpack_require__(/*! ./unnest.js */ \"./node_modules/ramda/es/unnest.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unnest\", function() { return _unnest_js__WEBPACK_IMPORTED_MODULE_240__[\"default\"]; });\n\n/* harmony import */ var _until_js__WEBPACK_IMPORTED_MODULE_241__ = __webpack_require__(/*! ./until.js */ \"./node_modules/ramda/es/until.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"until\", function() { return _until_js__WEBPACK_IMPORTED_MODULE_241__[\"default\"]; });\n\n/* harmony import */ var _update_js__WEBPACK_IMPORTED_MODULE_242__ = __webpack_require__(/*! ./update.js */ \"./node_modules/ramda/es/update.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"update\", function() { return _update_js__WEBPACK_IMPORTED_MODULE_242__[\"default\"]; });\n\n/* harmony import */ var _useWith_js__WEBPACK_IMPORTED_MODULE_243__ = __webpack_require__(/*! ./useWith.js */ \"./node_modules/ramda/es/useWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useWith\", function() { return _useWith_js__WEBPACK_IMPORTED_MODULE_243__[\"default\"]; });\n\n/* harmony import */ var _values_js__WEBPACK_IMPORTED_MODULE_244__ = __webpack_require__(/*! ./values.js */ \"./node_modules/ramda/es/values.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"values\", function() { return _values_js__WEBPACK_IMPORTED_MODULE_244__[\"default\"]; });\n\n/* harmony import */ var _valuesIn_js__WEBPACK_IMPORTED_MODULE_245__ = __webpack_require__(/*! ./valuesIn.js */ \"./node_modules/ramda/es/valuesIn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"valuesIn\", function() { return _valuesIn_js__WEBPACK_IMPORTED_MODULE_245__[\"default\"]; });\n\n/* harmony import */ var _view_js__WEBPACK_IMPORTED_MODULE_246__ = __webpack_require__(/*! ./view.js */ \"./node_modules/ramda/es/view.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"view\", function() { return _view_js__WEBPACK_IMPORTED_MODULE_246__[\"default\"]; });\n\n/* harmony import */ var _when_js__WEBPACK_IMPORTED_MODULE_247__ = __webpack_require__(/*! ./when.js */ \"./node_modules/ramda/es/when.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"when\", function() { return _when_js__WEBPACK_IMPORTED_MODULE_247__[\"default\"]; });\n\n/* harmony import */ var _where_js__WEBPACK_IMPORTED_MODULE_248__ = __webpack_require__(/*! ./where.js */ \"./node_modules/ramda/es/where.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"where\", function() { return _where_js__WEBPACK_IMPORTED_MODULE_248__[\"default\"]; });\n\n/* harmony import */ var _whereEq_js__WEBPACK_IMPORTED_MODULE_249__ = __webpack_require__(/*! ./whereEq.js */ \"./node_modules/ramda/es/whereEq.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"whereEq\", function() { return _whereEq_js__WEBPACK_IMPORTED_MODULE_249__[\"default\"]; });\n\n/* harmony import */ var _without_js__WEBPACK_IMPORTED_MODULE_250__ = __webpack_require__(/*! ./without.js */ \"./node_modules/ramda/es/without.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"without\", function() { return _without_js__WEBPACK_IMPORTED_MODULE_250__[\"default\"]; });\n\n/* harmony import */ var _xor_js__WEBPACK_IMPORTED_MODULE_251__ = __webpack_require__(/*! ./xor.js */ \"./node_modules/ramda/es/xor.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"xor\", function() { return _xor_js__WEBPACK_IMPORTED_MODULE_251__[\"default\"]; });\n\n/* harmony import */ var _xprod_js__WEBPACK_IMPORTED_MODULE_252__ = __webpack_require__(/*! ./xprod.js */ \"./node_modules/ramda/es/xprod.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"xprod\", function() { return _xprod_js__WEBPACK_IMPORTED_MODULE_252__[\"default\"]; });\n\n/* harmony import */ var _zip_js__WEBPACK_IMPORTED_MODULE_253__ = __webpack_require__(/*! ./zip.js */ \"./node_modules/ramda/es/zip.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zip\", function() { return _zip_js__WEBPACK_IMPORTED_MODULE_253__[\"default\"]; });\n\n/* harmony import */ var _zipObj_js__WEBPACK_IMPORTED_MODULE_254__ = __webpack_require__(/*! ./zipObj.js */ \"./node_modules/ramda/es/zipObj.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zipObj\", function() { return _zipObj_js__WEBPACK_IMPORTED_MODULE_254__[\"default\"]; });\n\n/* harmony import */ var _zipWith_js__WEBPACK_IMPORTED_MODULE_255__ = __webpack_require__(/*! ./zipWith.js */ \"./node_modules/ramda/es/zipWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zipWith\", function() { return _zipWith_js__WEBPACK_IMPORTED_MODULE_255__[\"default\"]; });\n\n/* harmony import */ var _thunkify_js__WEBPACK_IMPORTED_MODULE_256__ = __webpack_require__(/*! ./thunkify.js */ \"./node_modules/ramda/es/thunkify.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"thunkify\", function() { return _thunkify_js__WEBPACK_IMPORTED_MODULE_256__[\"default\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./node_modules/ramda/es/index.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/indexBy.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/indexBy.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _reduceBy_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reduceBy.js */ \"./node_modules/ramda/es/reduceBy.js\");\n\n/**\n * Given a function that generates a key, turns a list of objects into an\n * object indexing the objects by the given key. Note that if multiple\n * objects generate the same value for the indexing key only the last value\n * will be included in the generated object.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (a -> String) -> [{k: v}] -> {k: {k: v}}\n * @param {Function} fn Function :: a -> String\n * @param {Array} array The array of objects to index\n * @return {Object} An object indexing each array element by the given property.\n * @example\n *\n * const list = [{id: 'xyz', title: 'A'}, {id: 'abc', title: 'B'}];\n * R.indexBy(R.prop('id'), list);\n * //=> {abc: {id: 'abc', title: 'B'}, xyz: {id: 'xyz', title: 'A'}}\n */\n\nvar indexBy =\n/*#__PURE__*/\nObject(_reduceBy_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (acc, elem) {\n return elem;\n}, null);\n/* harmony default export */ __webpack_exports__[\"default\"] = (indexBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/indexBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/indexOf.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/indexOf.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_indexOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_indexOf.js */ \"./node_modules/ramda/es/internal/_indexOf.js\");\n/* harmony import */ var _internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isArray.js */ \"./node_modules/ramda/es/internal/_isArray.js\");\n\n\n\n/**\n * Returns the position of the first occurrence of an item in an array, or -1\n * if the item is not included in the array. [`R.equals`](#equals) is used to\n * determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Number\n * @param {*} target The item to find.\n * @param {Array} xs The array to search in.\n * @return {Number} the index of the target, or -1 if the target is not found.\n * @see R.lastIndexOf\n * @example\n *\n * R.indexOf(3, [1,2,3,4]); //=> 2\n * R.indexOf(10, [1,2,3,4]); //=> -1\n */\n\nvar indexOf =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function indexOf(target, xs) {\n return typeof xs.indexOf === 'function' && !Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(xs) ? xs.indexOf(target) : Object(_internal_indexOf_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(xs, target, 0);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (indexOf);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/indexOf.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/init.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/init.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n\n/**\n * Returns all but the last element of the given list or string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.last, R.head, R.tail\n * @example\n *\n * R.init([1, 2, 3]); //=> [1, 2]\n * R.init([1, 2]); //=> [1]\n * R.init([1]); //=> []\n * R.init([]); //=> []\n *\n * R.init('abc'); //=> 'ab'\n * R.init('ab'); //=> 'a'\n * R.init('a'); //=> ''\n * R.init(''); //=> ''\n */\n\nvar init =\n/*#__PURE__*/\nObject(_slice_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(0, -1);\n/* harmony default export */ __webpack_exports__[\"default\"] = (init);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/init.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/innerJoin.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/innerJoin.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_includesWith_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_includesWith.js */ \"./node_modules/ramda/es/internal/_includesWith.js\");\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _internal_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_filter.js */ \"./node_modules/ramda/es/internal/_filter.js\");\n\n\n\n/**\n * Takes a predicate `pred`, a list `xs`, and a list `ys`, and returns a list\n * `xs'` comprising each of the elements of `xs` which is equal to one or more\n * elements of `ys` according to `pred`.\n *\n * `pred` must be a binary function expecting an element from each list.\n *\n * `xs`, `ys`, and `xs'` are treated as sets, semantically, so ordering should\n * not be significant, but since `xs'` is ordered the implementation guarantees\n * that its values are in the same order as they appear in `xs`. Duplicates are\n * not removed, so `xs'` may contain duplicates if `xs` contains duplicates.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Relation\n * @sig ((a, b) -> Boolean) -> [a] -> [b] -> [a]\n * @param {Function} pred\n * @param {Array} xs\n * @param {Array} ys\n * @return {Array}\n * @see R.intersection\n * @example\n *\n * R.innerJoin(\n * (record, id) => record.id === id,\n * [{id: 824, name: 'Richie Furay'},\n * {id: 956, name: 'Dewey Martin'},\n * {id: 313, name: 'Bruce Palmer'},\n * {id: 456, name: 'Stephen Stills'},\n * {id: 177, name: 'Neil Young'}],\n * [177, 456, 999]\n * );\n * //=> [{id: 456, name: 'Stephen Stills'}, {id: 177, name: 'Neil Young'}]\n */\n\nvar innerJoin =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function innerJoin(pred, xs, ys) {\n return Object(_internal_filter_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(function (x) {\n return Object(_internal_includesWith_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(pred, x, ys);\n }, xs);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (innerJoin);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/innerJoin.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/insert.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/insert.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Inserts the supplied element into the list, at the specified `index`. _Note that\n\n * this is not destructive_: it returns a copy of the list with the changes.\n * No lists have been harmed in the application of this function.\n *\n * @func\n * @memberOf R\n * @since v0.2.2\n * @category List\n * @sig Number -> a -> [a] -> [a]\n * @param {Number} index The position to insert the element\n * @param {*} elt The element to insert into the Array\n * @param {Array} list The list to insert into\n * @return {Array} A new Array with `elt` inserted at `index`.\n * @example\n *\n * R.insert(2, 'x', [1,2,3,4]); //=> [1,2,'x',3,4]\n */\n\nvar insert =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function insert(idx, elt, list) {\n idx = idx < list.length && idx >= 0 ? idx : list.length;\n var result = Array.prototype.slice.call(list, 0);\n result.splice(idx, 0, elt);\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (insert);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/insert.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/insertAll.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/insertAll.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Inserts the sub-list into the list, at the specified `index`. _Note that this is not\n * destructive_: it returns a copy of the list with the changes.\n * No lists have been harmed in the application of this function.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig Number -> [a] -> [a] -> [a]\n * @param {Number} index The position to insert the sub-list\n * @param {Array} elts The sub-list to insert into the Array\n * @param {Array} list The list to insert the sub-list into\n * @return {Array} A new Array with `elts` inserted starting at `index`.\n * @example\n *\n * R.insertAll(2, ['x','y','z'], [1,2,3,4]); //=> [1,2,'x','y','z',3,4]\n */\n\nvar insertAll =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function insertAll(idx, elts, list) {\n idx = idx < list.length && idx >= 0 ? idx : list.length;\n return [].concat(Array.prototype.slice.call(list, 0, idx), elts, Array.prototype.slice.call(list, idx));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (insertAll);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/insertAll.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_Set.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/internal/_Set.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_includes.js */ \"./node_modules/ramda/es/internal/_includes.js\");\n\n\nvar _Set =\n/*#__PURE__*/\nfunction () {\n function _Set() {\n /* globals Set */\n this._nativeSet = typeof Set === 'function' ? new Set() : null;\n this._items = {};\n }\n\n // until we figure out why jsdoc chokes on this\n // @param item The item to add to the Set\n // @returns {boolean} true if the item did not exist prior, otherwise false\n //\n _Set.prototype.add = function (item) {\n return !hasOrAdd(item, true, this);\n }; //\n // @param item The item to check for existence in the Set\n // @returns {boolean} true if the item exists in the Set, otherwise false\n //\n\n\n _Set.prototype.has = function (item) {\n return hasOrAdd(item, false, this);\n }; //\n // Combines the logic for checking whether an item is a member of the set and\n // for adding a new item to the set.\n //\n // @param item The item to check or add to the Set instance.\n // @param shouldAdd If true, the item will be added to the set if it doesn't\n // already exist.\n // @param set The set instance to check or add to.\n // @return {boolean} true if the item already existed, otherwise false.\n //\n\n\n return _Set;\n}();\n\nfunction hasOrAdd(item, shouldAdd, set) {\n var type = typeof item;\n var prevSize, newSize;\n\n switch (type) {\n case 'string':\n case 'number':\n // distinguish between +0 and -0\n if (item === 0 && 1 / item === -Infinity) {\n if (set._items['-0']) {\n return true;\n } else {\n if (shouldAdd) {\n set._items['-0'] = true;\n }\n\n return false;\n }\n } // these types can all utilise the native Set\n\n\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n\n set._nativeSet.add(item);\n\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = {};\n set._items[type][item] = true;\n }\n\n return false;\n } else if (item in set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][item] = true;\n }\n\n return false;\n }\n }\n\n case 'boolean':\n // set._items['boolean'] holds a two element array\n // representing [ falseExists, trueExists ]\n if (type in set._items) {\n var bIdx = item ? 1 : 0;\n\n if (set._items[type][bIdx]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][bIdx] = true;\n }\n\n return false;\n }\n } else {\n if (shouldAdd) {\n set._items[type] = item ? [false, true] : [true, false];\n }\n\n return false;\n }\n\n case 'function':\n // compare functions for reference equality\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n\n set._nativeSet.add(item);\n\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n\n return false;\n }\n\n if (!Object(_includes_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n\n return false;\n }\n\n return true;\n }\n\n case 'undefined':\n if (set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type] = true;\n }\n\n return false;\n }\n\n case 'object':\n if (item === null) {\n if (!set._items['null']) {\n if (shouldAdd) {\n set._items['null'] = true;\n }\n\n return false;\n }\n\n return true;\n }\n\n /* falls through */\n\n default:\n // reduce the search size of heterogeneous sets by creating buckets\n // for each type.\n type = Object.prototype.toString.call(item);\n\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n\n return false;\n } // scan through all previously applied items\n\n\n if (!Object(_includes_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n\n return false;\n }\n\n return true;\n }\n} // A simple Set type that honours R.equals semantics\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_Set);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_Set.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_aperture.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_aperture.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _aperture; });\nfunction _aperture(n, list) {\n var idx = 0;\n var limit = list.length - (n - 1);\n var acc = new Array(limit >= 0 ? limit : 0);\n\n while (idx < limit) {\n acc[idx] = Array.prototype.slice.call(list, idx, idx + n);\n idx += 1;\n }\n\n return acc;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_aperture.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_arity.js": +/*!**************************************************!*\ + !*** ./node_modules/ramda/es/internal/_arity.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _arity; });\nfunction _arity(n, fn) {\n /* eslint-disable no-unused-vars */\n switch (n) {\n case 0:\n return function () {\n return fn.apply(this, arguments);\n };\n\n case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\n };\n\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.apply(this, arguments);\n };\n\n default:\n throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\n }\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_arity.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_arrayFromIterator.js": +/*!**************************************************************!*\ + !*** ./node_modules/ramda/es/internal/_arrayFromIterator.js ***! + \**************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _arrayFromIterator; });\nfunction _arrayFromIterator(iter) {\n var list = [];\n var next;\n\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n\n return list;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_arrayFromIterator.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_assertPromise.js": +/*!**********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_assertPromise.js ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _assertPromise; });\n/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isFunction.js */ \"./node_modules/ramda/es/internal/_isFunction.js\");\n/* harmony import */ var _toString_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_toString.js */ \"./node_modules/ramda/es/internal/_toString.js\");\n\n\nfunction _assertPromise(name, p) {\n if (p == null || !Object(_isFunction_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(p.then)) {\n throw new TypeError('`' + name + '` expected a Promise, received ' + Object(_toString_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(p, []));\n }\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_assertPromise.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_checkForMethod.js": +/*!***********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_checkForMethod.js ***! + \***********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _checkForMethod; });\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArray.js */ \"./node_modules/ramda/es/internal/_isArray.js\");\n\n/**\n * This checks whether a function has a [methodname] function. If it isn't an\n * array it will execute that function otherwise it will default to the ramda\n * implementation.\n *\n * @private\n * @param {Function} fn ramda implemtation\n * @param {String} methodname property to check for a custom implementation\n * @return {Object} Whatever the return value of the method is.\n */\n\nfunction _checkForMethod(methodname, fn) {\n return function () {\n var length = arguments.length;\n\n if (length === 0) {\n return fn();\n }\n\n var obj = arguments[length - 1];\n return Object(_isArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(obj) || typeof obj[methodname] !== 'function' ? fn.apply(this, arguments) : obj[methodname].apply(obj, Array.prototype.slice.call(arguments, 0, length - 1));\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_checkForMethod.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_clone.js": +/*!**************************************************!*\ + !*** ./node_modules/ramda/es/internal/_clone.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _clone; });\n/* harmony import */ var _cloneRegExp_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cloneRegExp.js */ \"./node_modules/ramda/es/internal/_cloneRegExp.js\");\n/* harmony import */ var _type_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../type.js */ \"./node_modules/ramda/es/type.js\");\n\n\n/**\n * Copies an object.\n *\n * @private\n * @param {*} value The value to be copied\n * @param {Array} refFrom Array containing the source references\n * @param {Array} refTo Array containing the copied source references\n * @param {Boolean} deep Whether or not to perform deep cloning.\n * @return {*} The copied value.\n */\n\nfunction _clone(value, refFrom, refTo, deep) {\n var copy = function copy(copiedValue) {\n var len = refFrom.length;\n var idx = 0;\n\n while (idx < len) {\n if (value === refFrom[idx]) {\n return refTo[idx];\n }\n\n idx += 1;\n }\n\n refFrom[idx + 1] = value;\n refTo[idx + 1] = copiedValue;\n\n for (var key in value) {\n copiedValue[key] = deep ? _clone(value[key], refFrom, refTo, true) : value[key];\n }\n\n return copiedValue;\n };\n\n switch (Object(_type_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value)) {\n case 'Object':\n return copy({});\n\n case 'Array':\n return copy([]);\n\n case 'Date':\n return new Date(value.valueOf());\n\n case 'RegExp':\n return Object(_cloneRegExp_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value);\n\n default:\n return value;\n }\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_clone.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_cloneRegExp.js": +/*!********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_cloneRegExp.js ***! + \********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _cloneRegExp; });\nfunction _cloneRegExp(pattern) {\n return new RegExp(pattern.source, (pattern.global ? 'g' : '') + (pattern.ignoreCase ? 'i' : '') + (pattern.multiline ? 'm' : '') + (pattern.sticky ? 'y' : '') + (pattern.unicode ? 'u' : ''));\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_cloneRegExp.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_complement.js": +/*!*******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_complement.js ***! + \*******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _complement; });\nfunction _complement(f) {\n return function () {\n return !f.apply(this, arguments);\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_complement.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_concat.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_concat.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _concat; });\n/**\n * Private `concat` function to merge two array-like objects.\n *\n * @private\n * @param {Array|Arguments} [set1=[]] An array-like object.\n * @param {Array|Arguments} [set2=[]] An array-like object.\n * @return {Array} A new, merged array.\n * @example\n *\n * _concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n */\nfunction _concat(set1, set2) {\n set1 = set1 || [];\n set2 = set2 || [];\n var idx;\n var len1 = set1.length;\n var len2 = set2.length;\n var result = [];\n idx = 0;\n\n while (idx < len1) {\n result[result.length] = set1[idx];\n idx += 1;\n }\n\n idx = 0;\n\n while (idx < len2) {\n result[result.length] = set2[idx];\n idx += 1;\n }\n\n return result;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_concat.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_createPartialApplicator.js": +/*!********************************************************************!*\ + !*** ./node_modules/ramda/es/internal/_createPartialApplicator.js ***! + \********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _createPartialApplicator; });\n/* harmony import */ var _arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\nfunction _createPartialApplicator(concat) {\n return Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (fn, args) {\n return Object(_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Math.max(0, fn.length - args.length), function () {\n return fn.apply(this, concat(args, arguments));\n });\n });\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_createPartialApplicator.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_curry1.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_curry1.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _curry1; });\n/* harmony import */ var _isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isPlaceholder.js */ \"./node_modules/ramda/es/internal/_isPlaceholder.js\");\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nfunction _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_curry1.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_curry2.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_curry2.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _curry2; });\n/* harmony import */ var _curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isPlaceholder.js */ \"./node_modules/ramda/es/internal/_isPlaceholder.js\");\n\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nfunction _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n\n case 1:\n return Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(a) ? f2 : Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (_b) {\n return fn(a, _b);\n });\n\n default:\n return Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(a) && Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(b) ? f2 : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(a) ? Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (_a) {\n return fn(_a, b);\n }) : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(b) ? Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_curry2.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_curry3.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_curry3.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _curry3; });\n/* harmony import */ var _curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_isPlaceholder.js */ \"./node_modules/ramda/es/internal/_isPlaceholder.js\");\n\n\n\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nfunction _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n\n case 1:\n return Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a) ? f3 : Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (_b, _c) {\n return fn(a, _b, _c);\n });\n\n case 2:\n return Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a) && Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(b) ? f3 : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a) ? Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (_a, _c) {\n return fn(_a, b, _c);\n }) : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(b) ? Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (_b, _c) {\n return fn(a, _b, _c);\n }) : Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (_c) {\n return fn(a, b, _c);\n });\n\n default:\n return Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a) && Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(b) && Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(c) ? f3 : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a) && Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(b) ? Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (_a, _b) {\n return fn(_a, _b, c);\n }) : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a) && Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(c) ? Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (_a, _c) {\n return fn(_a, b, _c);\n }) : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(b) && Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(c) ? Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (_b, _c) {\n return fn(a, _b, _c);\n }) : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a) ? Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (_a) {\n return fn(_a, b, c);\n }) : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(b) ? Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (_b) {\n return fn(a, _b, c);\n }) : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(c) ? Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_curry3.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_curryN.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_curryN.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _curryN; });\n/* harmony import */ var _arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isPlaceholder.js */ \"./node_modules/ramda/es/internal/_isPlaceholder.js\");\n\n\n/**\n * Internal curryN function.\n *\n * @private\n * @category Function\n * @param {Number} length The arity of the curried function.\n * @param {Array} received An array of arguments received thus far.\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nfunction _curryN(length, received, fn) {\n return function () {\n var combined = [];\n var argsIdx = 0;\n var left = length;\n var combinedIdx = 0;\n\n while (combinedIdx < received.length || argsIdx < arguments.length) {\n var result;\n\n if (combinedIdx < received.length && (!Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(received[combinedIdx]) || argsIdx >= arguments.length)) {\n result = received[combinedIdx];\n } else {\n result = arguments[argsIdx];\n argsIdx += 1;\n }\n\n combined[combinedIdx] = result;\n\n if (!Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(result)) {\n left -= 1;\n }\n\n combinedIdx += 1;\n }\n\n return left <= 0 ? fn.apply(this, combined) : Object(_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(left, _curryN(length, combined, fn));\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_curryN.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_dispatchable.js": +/*!*********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_dispatchable.js ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _dispatchable; });\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArray.js */ \"./node_modules/ramda/es/internal/_isArray.js\");\n/* harmony import */ var _isTransformer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isTransformer.js */ \"./node_modules/ramda/es/internal/_isTransformer.js\");\n\n\n/**\n * Returns a function that dispatches with different strategies based on the\n * object in list position (last argument). If it is an array, executes [fn].\n * Otherwise, if it has a function with one of the given method names, it will\n * execute that function (functor case). Otherwise, if it is a transformer,\n * uses transducer [xf] to return a new transformer (transducer case).\n * Otherwise, it will default to executing [fn].\n *\n * @private\n * @param {Array} methodNames properties to check for a custom implementation\n * @param {Function} xf transducer to initialize if object is transformer\n * @param {Function} fn default ramda implementation\n * @return {Function} A function that dispatches on object in list position\n */\n\nfunction _dispatchable(methodNames, xf, fn) {\n return function () {\n if (arguments.length === 0) {\n return fn();\n }\n\n var args = Array.prototype.slice.call(arguments, 0);\n var obj = args.pop();\n\n if (!Object(_isArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(obj)) {\n var idx = 0;\n\n while (idx < methodNames.length) {\n if (typeof obj[methodNames[idx]] === 'function') {\n return obj[methodNames[idx]].apply(obj, args);\n }\n\n idx += 1;\n }\n\n if (Object(_isTransformer_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(obj)) {\n var transducer = xf.apply(null, args);\n return transducer(obj);\n }\n }\n\n return fn.apply(this, arguments);\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_dispatchable.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_dropLast.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_dropLast.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return dropLast; });\n/* harmony import */ var _take_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../take.js */ \"./node_modules/ramda/es/take.js\");\n\nfunction dropLast(n, xs) {\n return Object(_take_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(n < xs.length ? xs.length - n : 0, xs);\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_dropLast.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_dropLastWhile.js": +/*!**********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_dropLastWhile.js ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return dropLastWhile; });\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../slice.js */ \"./node_modules/ramda/es/slice.js\");\n\nfunction dropLastWhile(pred, xs) {\n var idx = xs.length - 1;\n\n while (idx >= 0 && pred(xs[idx])) {\n idx -= 1;\n }\n\n return Object(_slice_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(0, idx + 1, xs);\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_dropLastWhile.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_equals.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_equals.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _equals; });\n/* harmony import */ var _arrayFromIterator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_arrayFromIterator.js */ \"./node_modules/ramda/es/internal/_arrayFromIterator.js\");\n/* harmony import */ var _includesWith_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_includesWith.js */ \"./node_modules/ramda/es/internal/_includesWith.js\");\n/* harmony import */ var _functionName_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_functionName.js */ \"./node_modules/ramda/es/internal/_functionName.js\");\n/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n/* harmony import */ var _objectIs_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_objectIs.js */ \"./node_modules/ramda/es/internal/_objectIs.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../keys.js */ \"./node_modules/ramda/es/keys.js\");\n/* harmony import */ var _type_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../type.js */ \"./node_modules/ramda/es/type.js\");\n\n\n\n\n\n\n\n/**\n * private _uniqContentEquals function.\n * That function is checking equality of 2 iterator contents with 2 assumptions\n * - iterators lengths are the same\n * - iterators values are unique\n *\n * false-positive result will be returned for comparision of, e.g.\n * - [1,2,3] and [1,2,3,4]\n * - [1,1,1] and [1,2,3]\n * */\n\nfunction _uniqContentEquals(aIterator, bIterator, stackA, stackB) {\n var a = Object(_arrayFromIterator_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(aIterator);\n\n var b = Object(_arrayFromIterator_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(bIterator);\n\n function eq(_a, _b) {\n return _equals(_a, _b, stackA.slice(), stackB.slice());\n } // if *a* array contains any element that is not included in *b*\n\n\n return !Object(_includesWith_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (b, aItem) {\n return !Object(_includesWith_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(eq, aItem, b);\n }, b, a);\n}\n\nfunction _equals(a, b, stackA, stackB) {\n if (Object(_objectIs_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(a, b)) {\n return true;\n }\n\n var typeA = Object(_type_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(a);\n\n if (typeA !== Object(_type_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(b)) {\n return false;\n }\n\n if (a == null || b == null) {\n return false;\n }\n\n if (typeof a['fantasy-land/equals'] === 'function' || typeof b['fantasy-land/equals'] === 'function') {\n return typeof a['fantasy-land/equals'] === 'function' && a['fantasy-land/equals'](b) && typeof b['fantasy-land/equals'] === 'function' && b['fantasy-land/equals'](a);\n }\n\n if (typeof a.equals === 'function' || typeof b.equals === 'function') {\n return typeof a.equals === 'function' && a.equals(b) && typeof b.equals === 'function' && b.equals(a);\n }\n\n switch (typeA) {\n case 'Arguments':\n case 'Array':\n case 'Object':\n if (typeof a.constructor === 'function' && Object(_functionName_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a.constructor) === 'Promise') {\n return a === b;\n }\n\n break;\n\n case 'Boolean':\n case 'Number':\n case 'String':\n if (!(typeof a === typeof b && Object(_objectIs_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(a.valueOf(), b.valueOf()))) {\n return false;\n }\n\n break;\n\n case 'Date':\n if (!Object(_objectIs_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(a.valueOf(), b.valueOf())) {\n return false;\n }\n\n break;\n\n case 'Error':\n return a.name === b.name && a.message === b.message;\n\n case 'RegExp':\n if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) {\n return false;\n }\n\n break;\n }\n\n var idx = stackA.length - 1;\n\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n\n idx -= 1;\n }\n\n switch (typeA) {\n case 'Map':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));\n\n case 'Set':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));\n\n case 'Arguments':\n case 'Array':\n case 'Object':\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'Error':\n case 'RegExp':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'ArrayBuffer':\n break;\n\n default:\n // Values of other types are only equal if identical.\n return false;\n }\n\n var keysA = Object(_keys_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(a);\n\n if (keysA.length !== Object(_keys_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(b).length) {\n return false;\n }\n\n var extendedStackA = stackA.concat([a]);\n var extendedStackB = stackB.concat([b]);\n idx = keysA.length - 1;\n\n while (idx >= 0) {\n var key = keysA[idx];\n\n if (!(Object(_has_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n\n idx -= 1;\n }\n\n return true;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_equals.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_filter.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_filter.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _filter; });\nfunction _filter(fn, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n\n while (idx < len) {\n if (fn(list[idx])) {\n result[result.length] = list[idx];\n }\n\n idx += 1;\n }\n\n return result;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_filter.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_flatCat.js": +/*!****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_flatCat.js ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _forceReduced_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_forceReduced.js */ \"./node_modules/ramda/es/internal/_forceReduced.js\");\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isArrayLike.js */ \"./node_modules/ramda/es/internal/_isArrayLike.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\n\nvar preservingReduced = function (xf) {\n return {\n '@@transducer/init': _xfBase_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].init,\n '@@transducer/result': function (result) {\n return xf['@@transducer/result'](result);\n },\n '@@transducer/step': function (result, input) {\n var ret = xf['@@transducer/step'](result, input);\n return ret['@@transducer/reduced'] ? Object(_forceReduced_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(ret) : ret;\n }\n };\n};\n\nvar _flatCat = function _xcat(xf) {\n var rxf = preservingReduced(xf);\n return {\n '@@transducer/init': _xfBase_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].init,\n '@@transducer/result': function (result) {\n return rxf['@@transducer/result'](result);\n },\n '@@transducer/step': function (result, input) {\n return !Object(_isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(input) ? Object(_reduce_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(rxf, result, [input]) : Object(_reduce_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(rxf, result, input);\n }\n };\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_flatCat);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_flatCat.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_forceReduced.js": +/*!*********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_forceReduced.js ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _forceReduced; });\nfunction _forceReduced(x) {\n return {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_forceReduced.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_functionName.js": +/*!*********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_functionName.js ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _functionName; });\nfunction _functionName(f) {\n // String(x => x) evaluates to \"x => x\", so the pattern may not match.\n var match = String(f).match(/^function (\\w*)/);\n return match == null ? '' : match[1];\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_functionName.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_has.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/internal/_has.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _has; });\nfunction _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_has.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_identity.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_identity.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _identity; });\nfunction _identity(x) {\n return x;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_identity.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_includes.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_includes.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _includes; });\n/* harmony import */ var _indexOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_indexOf.js */ \"./node_modules/ramda/es/internal/_indexOf.js\");\n\nfunction _includes(a, list) {\n return Object(_indexOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(list, a, 0) >= 0;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_includes.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_includesWith.js": +/*!*********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_includesWith.js ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _includesWith; });\nfunction _includesWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_includesWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_indexOf.js": +/*!****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_indexOf.js ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _indexOf; });\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../equals.js */ \"./node_modules/ramda/es/equals.js\");\n\nfunction _indexOf(list, a, idx) {\n var inf, item; // Array.prototype.indexOf doesn't exist below IE9\n\n if (typeof list.indexOf === 'function') {\n switch (typeof a) {\n case 'number':\n if (a === 0) {\n // manually crawl the list to distinguish between +0 and -0\n inf = 1 / a;\n\n while (idx < list.length) {\n item = list[idx];\n\n if (item === 0 && 1 / item === inf) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n } else if (a !== a) {\n // NaN\n while (idx < list.length) {\n item = list[idx];\n\n if (typeof item === 'number' && item !== item) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n } // non-zero numbers can utilise Set\n\n\n return list.indexOf(a, idx);\n // all these types can utilise Set\n\n case 'string':\n case 'boolean':\n case 'function':\n case 'undefined':\n return list.indexOf(a, idx);\n\n case 'object':\n if (a === null) {\n // null can utilise Set\n return list.indexOf(a, idx);\n }\n\n }\n } // anything else not covered above, defer to R.equals\n\n\n while (idx < list.length) {\n if (Object(_equals_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(list[idx], a)) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_indexOf.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isArguments.js": +/*!********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isArguments.js ***! + \********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n\nvar toString = Object.prototype.toString;\n\nvar _isArguments =\n/*#__PURE__*/\nfunction () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return Object(_has_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('callee', x);\n };\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_isArguments);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isArguments.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isArray.js": +/*!****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isArray.js ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = (Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n});\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isArray.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isArrayLike.js": +/*!********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isArrayLike.js ***! + \********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isArray.js */ \"./node_modules/ramda/es/internal/_isArray.js\");\n/* harmony import */ var _isString_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_isString.js */ \"./node_modules/ramda/es/internal/_isString.js\");\n\n\n\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @private\n * @category Type\n * @category List\n * @sig * -> Boolean\n * @param {*} x The object to test.\n * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise.\n * @example\n *\n * _isArrayLike([]); //=> true\n * _isArrayLike(true); //=> false\n * _isArrayLike({}); //=> false\n * _isArrayLike({length: 10}); //=> false\n * _isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n */\n\nvar _isArrayLike =\n/*#__PURE__*/\nObject(_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function isArrayLike(x) {\n if (Object(_isArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(x)) {\n return true;\n }\n\n if (!x) {\n return false;\n }\n\n if (typeof x !== 'object') {\n return false;\n }\n\n if (Object(_isString_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(x)) {\n return false;\n }\n\n if (x.nodeType === 1) {\n return !!x.length;\n }\n\n if (x.length === 0) {\n return true;\n }\n\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n\n return false;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_isArrayLike);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isArrayLike.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isFunction.js": +/*!*******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isFunction.js ***! + \*******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _isFunction; });\nfunction _isFunction(x) {\n var type = Object.prototype.toString.call(x);\n return type === '[object Function]' || type === '[object AsyncFunction]' || type === '[object GeneratorFunction]' || type === '[object AsyncGeneratorFunction]';\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isFunction.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isInteger.js": +/*!******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isInteger.js ***! + \******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = (Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n});\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isInteger.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isNumber.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isNumber.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _isNumber; });\nfunction _isNumber(x) {\n return Object.prototype.toString.call(x) === '[object Number]';\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isNumber.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isObject.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isObject.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _isObject; });\nfunction _isObject(x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isObject.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isPlaceholder.js": +/*!**********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isPlaceholder.js ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _isPlaceholder; });\nfunction _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isPlaceholder.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isRegExp.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isRegExp.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _isRegExp; });\nfunction _isRegExp(x) {\n return Object.prototype.toString.call(x) === '[object RegExp]';\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isRegExp.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isString.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isString.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _isString; });\nfunction _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isString.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_isTransformer.js": +/*!**********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_isTransformer.js ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _isTransformer; });\nfunction _isTransformer(obj) {\n return obj != null && typeof obj['@@transducer/step'] === 'function';\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_isTransformer.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_makeFlat.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_makeFlat.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _makeFlat; });\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArrayLike.js */ \"./node_modules/ramda/es/internal/_isArrayLike.js\");\n\n/**\n * `_makeFlat` is a helper function that returns a one-level or fully recursive\n * function based on the flag passed in.\n *\n * @private\n */\n\nfunction _makeFlat(recursive) {\n return function flatt(list) {\n var value, jlen, j;\n var result = [];\n var idx = 0;\n var ilen = list.length;\n\n while (idx < ilen) {\n if (Object(_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(list[idx])) {\n value = recursive ? flatt(list[idx]) : list[idx];\n j = 0;\n jlen = value.length;\n\n while (j < jlen) {\n result[result.length] = value[j];\n j += 1;\n }\n } else {\n result[result.length] = list[idx];\n }\n\n idx += 1;\n }\n\n return result;\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_makeFlat.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_map.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/internal/_map.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _map; });\nfunction _map(fn, functor) {\n var idx = 0;\n var len = functor.length;\n var result = Array(len);\n\n while (idx < len) {\n result[idx] = fn(functor[idx]);\n idx += 1;\n }\n\n return result;\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_map.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_objectAssign.js": +/*!*********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_objectAssign.js ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n // Based on https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n\nfunction _objectAssign(target) {\n if (target == null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n var idx = 1;\n var length = arguments.length;\n\n while (idx < length) {\n var source = arguments[idx];\n\n if (source != null) {\n for (var nextKey in source) {\n if (Object(_has_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(nextKey, source)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n\n idx += 1;\n }\n\n return output;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (typeof Object.assign === 'function' ? Object.assign : _objectAssign);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_objectAssign.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_objectIs.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_objectIs.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction _objectIs(a, b) {\n // SameValue algorithm\n if (a === b) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return a !== 0 || 1 / a === 1 / b;\n } else {\n // Step 6.a: NaN == NaN\n return a !== a && b !== b;\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (typeof Object.is === 'function' ? Object.is : _objectIs);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_objectIs.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_of.js": +/*!***********************************************!*\ + !*** ./node_modules/ramda/es/internal/_of.js ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _of; });\nfunction _of(x) {\n return [x];\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_of.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_pipe.js": +/*!*************************************************!*\ + !*** ./node_modules/ramda/es/internal/_pipe.js ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _pipe; });\nfunction _pipe(f, g) {\n return function () {\n return g.call(this, f.apply(this, arguments));\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_pipe.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_pipeP.js": +/*!**************************************************!*\ + !*** ./node_modules/ramda/es/internal/_pipeP.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _pipeP; });\nfunction _pipeP(f, g) {\n return function () {\n var ctx = this;\n return f.apply(ctx, arguments).then(function (x) {\n return g.call(ctx, x);\n });\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_pipeP.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_quote.js": +/*!**************************************************!*\ + !*** ./node_modules/ramda/es/internal/_quote.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _quote; });\nfunction _quote(s) {\n var escaped = s.replace(/\\\\/g, '\\\\\\\\').replace(/[\\b]/g, '\\\\b') // \\b matches word boundary; [\\b] matches backspace\n .replace(/\\f/g, '\\\\f').replace(/\\n/g, '\\\\n').replace(/\\r/g, '\\\\r').replace(/\\t/g, '\\\\t').replace(/\\v/g, '\\\\v').replace(/\\0/g, '\\\\0');\n return '\"' + escaped.replace(/\"/g, '\\\\\"') + '\"';\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_quote.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_reduce.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_reduce.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _reduce; });\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArrayLike.js */ \"./node_modules/ramda/es/internal/_isArrayLike.js\");\n/* harmony import */ var _xwrap_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xwrap.js */ \"./node_modules/ramda/es/internal/_xwrap.js\");\n/* harmony import */ var _bind_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../bind.js */ \"./node_modules/ramda/es/bind.js\");\n\n\n\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n idx += 1;\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n step = iter.next();\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](Object(_bind_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\nfunction _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = Object(_xwrap_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(fn);\n }\n\n if (Object(_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(list)) {\n return _arrayReduce(fn, acc, list);\n }\n\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_reduce.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_reduced.js": +/*!****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_reduced.js ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _reduced; });\nfunction _reduced(x) {\n return x && x['@@transducer/reduced'] ? x : {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_reduced.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_stepCat.js": +/*!****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_stepCat.js ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _stepCat; });\n/* harmony import */ var _objectAssign_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_objectAssign.js */ \"./node_modules/ramda/es/internal/_objectAssign.js\");\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_identity.js */ \"./node_modules/ramda/es/internal/_identity.js\");\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_isArrayLike.js */ \"./node_modules/ramda/es/internal/_isArrayLike.js\");\n/* harmony import */ var _isTransformer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_isTransformer.js */ \"./node_modules/ramda/es/internal/_isTransformer.js\");\n/* harmony import */ var _objOf_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../objOf.js */ \"./node_modules/ramda/es/objOf.js\");\n\n\n\n\n\nvar _stepCatArray = {\n '@@transducer/init': Array,\n '@@transducer/step': function (xs, x) {\n xs.push(x);\n return xs;\n },\n '@@transducer/result': _identity_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n};\nvar _stepCatString = {\n '@@transducer/init': String,\n '@@transducer/step': function (a, b) {\n return a + b;\n },\n '@@transducer/result': _identity_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n};\nvar _stepCatObject = {\n '@@transducer/init': Object,\n '@@transducer/step': function (result, input) {\n return Object(_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(result, Object(_isArrayLike_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(input) ? Object(_objOf_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(input[0], input[1]) : input);\n },\n '@@transducer/result': _identity_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n};\nfunction _stepCat(obj) {\n if (Object(_isTransformer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(obj)) {\n return obj;\n }\n\n if (Object(_isArrayLike_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(obj)) {\n return _stepCatArray;\n }\n\n if (typeof obj === 'string') {\n return _stepCatString;\n }\n\n if (typeof obj === 'object') {\n return _stepCatObject;\n }\n\n throw new Error('Cannot create transformer for ' + obj);\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_stepCat.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_toISOString.js": +/*!********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_toISOString.js ***! + \********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Polyfill from .\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\n\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_toISOString);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_toISOString.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_toString.js": +/*!*****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_toString.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _toString; });\n/* harmony import */ var _includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_includes.js */ \"./node_modules/ramda/es/internal/_includes.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_map.js */ \"./node_modules/ramda/es/internal/_map.js\");\n/* harmony import */ var _quote_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_quote.js */ \"./node_modules/ramda/es/internal/_quote.js\");\n/* harmony import */ var _toISOString_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_toISOString.js */ \"./node_modules/ramda/es/internal/_toISOString.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../keys.js */ \"./node_modules/ramda/es/keys.js\");\n/* harmony import */ var _reject_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../reject.js */ \"./node_modules/ramda/es/reject.js\");\n\n\n\n\n\n\nfunction _toString(x, seen) {\n var recur = function recur(y) {\n var xs = seen.concat([x]);\n return Object(_includes_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(y, xs) ? '' : _toString(y, xs);\n }; // mapPairs :: (Object, [String]) -> [String]\n\n\n var mapPairs = function (obj, keys) {\n return Object(_map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (k) {\n return Object(_quote_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(k) + ': ' + recur(obj[k]);\n }, keys.slice().sort());\n };\n\n switch (Object.prototype.toString.call(x)) {\n case '[object Arguments]':\n return '(function() { return arguments; }(' + Object(_map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(recur, x).join(', ') + '))';\n\n case '[object Array]':\n return '[' + Object(_map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(recur, x).concat(mapPairs(x, Object(_reject_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(function (k) {\n return /^\\d+$/.test(k);\n }, Object(_keys_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(x)))).join(', ') + ']';\n\n case '[object Boolean]':\n return typeof x === 'object' ? 'new Boolean(' + recur(x.valueOf()) + ')' : x.toString();\n\n case '[object Date]':\n return 'new Date(' + (isNaN(x.valueOf()) ? recur(NaN) : Object(_quote_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Object(_toISOString_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(x))) + ')';\n\n case '[object Null]':\n return 'null';\n\n case '[object Number]':\n return typeof x === 'object' ? 'new Number(' + recur(x.valueOf()) + ')' : 1 / x === -Infinity ? '-0' : x.toString(10);\n\n case '[object String]':\n return typeof x === 'object' ? 'new String(' + recur(x.valueOf()) + ')' : Object(_quote_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(x);\n\n case '[object Undefined]':\n return 'undefined';\n\n default:\n if (typeof x.toString === 'function') {\n var repr = x.toString();\n\n if (repr !== '[object Object]') {\n return repr;\n }\n }\n\n return '{' + mapPairs(x, Object(_keys_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(x)).join(', ') + '}';\n }\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_toString.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xall.js": +/*!*************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xall.js ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _reduced_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_reduced.js */ \"./node_modules/ramda/es/internal/_reduced.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\nvar XAll =\n/*#__PURE__*/\nfunction () {\n function XAll(f, xf) {\n this.xf = xf;\n this.f = f;\n this.all = true;\n }\n\n XAll.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init;\n\n XAll.prototype['@@transducer/result'] = function (result) {\n if (this.all) {\n result = this.xf['@@transducer/step'](result, true);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XAll.prototype['@@transducer/step'] = function (result, input) {\n if (!this.f(input)) {\n this.all = false;\n result = Object(_reduced_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this.xf['@@transducer/step'](result, false));\n }\n\n return result;\n };\n\n return XAll;\n}();\n\nvar _xall =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xall(f, xf) {\n return new XAll(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xall);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xall.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xany.js": +/*!*************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xany.js ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _reduced_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_reduced.js */ \"./node_modules/ramda/es/internal/_reduced.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\nvar XAny =\n/*#__PURE__*/\nfunction () {\n function XAny(f, xf) {\n this.xf = xf;\n this.f = f;\n this.any = false;\n }\n\n XAny.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init;\n\n XAny.prototype['@@transducer/result'] = function (result) {\n if (!this.any) {\n result = this.xf['@@transducer/step'](result, false);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XAny.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.any = true;\n result = Object(_reduced_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this.xf['@@transducer/step'](result, true));\n }\n\n return result;\n };\n\n return XAny;\n}();\n\nvar _xany =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xany(f, xf) {\n return new XAny(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xany);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xany.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xaperture.js": +/*!******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xaperture.js ***! + \******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\nvar XAperture =\n/*#__PURE__*/\nfunction () {\n function XAperture(n, xf) {\n this.xf = xf;\n this.pos = 0;\n this.full = false;\n this.acc = new Array(n);\n }\n\n XAperture.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init;\n\n XAperture.prototype['@@transducer/result'] = function (result) {\n this.acc = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XAperture.prototype['@@transducer/step'] = function (result, input) {\n this.store(input);\n return this.full ? this.xf['@@transducer/step'](result, this.getCopy()) : result;\n };\n\n XAperture.prototype.store = function (input) {\n this.acc[this.pos] = input;\n this.pos += 1;\n\n if (this.pos === this.acc.length) {\n this.pos = 0;\n this.full = true;\n }\n };\n\n XAperture.prototype.getCopy = function () {\n return Object(_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Array.prototype.slice.call(this.acc, this.pos), Array.prototype.slice.call(this.acc, 0, this.pos));\n };\n\n return XAperture;\n}();\n\nvar _xaperture =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function _xaperture(n, xf) {\n return new XAperture(n, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xaperture);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xaperture.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xchain.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xchain.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _flatCat_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_flatCat.js */ \"./node_modules/ramda/es/internal/_flatCat.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../map.js */ \"./node_modules/ramda/es/map.js\");\n\n\n\n\nvar _xchain =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xchain(f, xf) {\n return Object(_map_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(f, Object(_flatCat_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(xf));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xchain);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xchain.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xdrop.js": +/*!**************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xdrop.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\nvar XDrop =\n/*#__PURE__*/\nfunction () {\n function XDrop(n, xf) {\n this.xf = xf;\n this.n = n;\n }\n\n XDrop.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n XDrop.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].result;\n\n XDrop.prototype['@@transducer/step'] = function (result, input) {\n if (this.n > 0) {\n this.n -= 1;\n return result;\n }\n\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XDrop;\n}();\n\nvar _xdrop =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xdrop(n, xf) {\n return new XDrop(n, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xdrop);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xdrop.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xdropLast.js": +/*!******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xdropLast.js ***! + \******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\nvar XDropLast =\n/*#__PURE__*/\nfunction () {\n function XDropLast(n, xf) {\n this.xf = xf;\n this.pos = 0;\n this.full = false;\n this.acc = new Array(n);\n }\n\n XDropLast.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n\n XDropLast.prototype['@@transducer/result'] = function (result) {\n this.acc = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XDropLast.prototype['@@transducer/step'] = function (result, input) {\n if (this.full) {\n result = this.xf['@@transducer/step'](result, this.acc[this.pos]);\n }\n\n this.store(input);\n return result;\n };\n\n XDropLast.prototype.store = function (input) {\n this.acc[this.pos] = input;\n this.pos += 1;\n\n if (this.pos === this.acc.length) {\n this.pos = 0;\n this.full = true;\n }\n };\n\n return XDropLast;\n}();\n\nvar _xdropLast =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xdropLast(n, xf) {\n return new XDropLast(n, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xdropLast);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xdropLast.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xdropLastWhile.js": +/*!***********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xdropLastWhile.js ***! + \***********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\nvar XDropLastWhile =\n/*#__PURE__*/\nfunction () {\n function XDropLastWhile(fn, xf) {\n this.f = fn;\n this.retained = [];\n this.xf = xf;\n }\n\n XDropLastWhile.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init;\n\n XDropLastWhile.prototype['@@transducer/result'] = function (result) {\n this.retained = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XDropLastWhile.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.retain(result, input) : this.flush(result, input);\n };\n\n XDropLastWhile.prototype.flush = function (result, input) {\n result = Object(_reduce_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this.xf['@@transducer/step'], result, this.retained);\n this.retained = [];\n return this.xf['@@transducer/step'](result, input);\n };\n\n XDropLastWhile.prototype.retain = function (result, input) {\n this.retained.push(input);\n return result;\n };\n\n return XDropLastWhile;\n}();\n\nvar _xdropLastWhile =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xdropLastWhile(fn, xf) {\n return new XDropLastWhile(fn, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xdropLastWhile);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xdropLastWhile.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xdropRepeatsWith.js": +/*!*************************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xdropRepeatsWith.js ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\nvar XDropRepeatsWith =\n/*#__PURE__*/\nfunction () {\n function XDropRepeatsWith(pred, xf) {\n this.xf = xf;\n this.pred = pred;\n this.lastValue = undefined;\n this.seenFirstValue = false;\n }\n\n XDropRepeatsWith.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n XDropRepeatsWith.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].result;\n\n XDropRepeatsWith.prototype['@@transducer/step'] = function (result, input) {\n var sameAsLast = false;\n\n if (!this.seenFirstValue) {\n this.seenFirstValue = true;\n } else if (this.pred(this.lastValue, input)) {\n sameAsLast = true;\n }\n\n this.lastValue = input;\n return sameAsLast ? result : this.xf['@@transducer/step'](result, input);\n };\n\n return XDropRepeatsWith;\n}();\n\nvar _xdropRepeatsWith =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xdropRepeatsWith(pred, xf) {\n return new XDropRepeatsWith(pred, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xdropRepeatsWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xdropRepeatsWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xdropWhile.js": +/*!*******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xdropWhile.js ***! + \*******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\nvar XDropWhile =\n/*#__PURE__*/\nfunction () {\n function XDropWhile(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XDropWhile.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n XDropWhile.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].result;\n\n XDropWhile.prototype['@@transducer/step'] = function (result, input) {\n if (this.f) {\n if (this.f(input)) {\n return result;\n }\n\n this.f = null;\n }\n\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XDropWhile;\n}();\n\nvar _xdropWhile =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xdropWhile(f, xf) {\n return new XDropWhile(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xdropWhile);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xdropWhile.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xfBase.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xfBase.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n init: function () {\n return this.xf['@@transducer/init']();\n },\n result: function (result) {\n return this.xf['@@transducer/result'](result);\n }\n});\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xfBase.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xfilter.js": +/*!****************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xfilter.js ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\nvar XFilter =\n/*#__PURE__*/\nfunction () {\n function XFilter(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XFilter.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n XFilter.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].result;\n\n XFilter.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : result;\n };\n\n return XFilter;\n}();\n\nvar _xfilter =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xfilter(f, xf) {\n return new XFilter(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xfilter);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xfilter.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xfind.js": +/*!**************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xfind.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _reduced_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_reduced.js */ \"./node_modules/ramda/es/internal/_reduced.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\nvar XFind =\n/*#__PURE__*/\nfunction () {\n function XFind(f, xf) {\n this.xf = xf;\n this.f = f;\n this.found = false;\n }\n\n XFind.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init;\n\n XFind.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, void 0);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XFind.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.found = true;\n result = Object(_reduced_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this.xf['@@transducer/step'](result, input));\n }\n\n return result;\n };\n\n return XFind;\n}();\n\nvar _xfind =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xfind(f, xf) {\n return new XFind(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xfind);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xfind.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xfindIndex.js": +/*!*******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xfindIndex.js ***! + \*******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _reduced_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_reduced.js */ \"./node_modules/ramda/es/internal/_reduced.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\nvar XFindIndex =\n/*#__PURE__*/\nfunction () {\n function XFindIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.found = false;\n }\n\n XFindIndex.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init;\n\n XFindIndex.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, -1);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XFindIndex.prototype['@@transducer/step'] = function (result, input) {\n this.idx += 1;\n\n if (this.f(input)) {\n this.found = true;\n result = Object(_reduced_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this.xf['@@transducer/step'](result, this.idx));\n }\n\n return result;\n };\n\n return XFindIndex;\n}();\n\nvar _xfindIndex =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xfindIndex(f, xf) {\n return new XFindIndex(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xfindIndex);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xfindIndex.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xfindLast.js": +/*!******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xfindLast.js ***! + \******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\nvar XFindLast =\n/*#__PURE__*/\nfunction () {\n function XFindLast(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XFindLast.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n\n XFindLast.prototype['@@transducer/result'] = function (result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.last));\n };\n\n XFindLast.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.last = input;\n }\n\n return result;\n };\n\n return XFindLast;\n}();\n\nvar _xfindLast =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xfindLast(f, xf) {\n return new XFindLast(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xfindLast);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xfindLast.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xfindLastIndex.js": +/*!***********************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xfindLastIndex.js ***! + \***********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\nvar XFindLastIndex =\n/*#__PURE__*/\nfunction () {\n function XFindLastIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.lastIdx = -1;\n }\n\n XFindLastIndex.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n\n XFindLastIndex.prototype['@@transducer/result'] = function (result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.lastIdx));\n };\n\n XFindLastIndex.prototype['@@transducer/step'] = function (result, input) {\n this.idx += 1;\n\n if (this.f(input)) {\n this.lastIdx = this.idx;\n }\n\n return result;\n };\n\n return XFindLastIndex;\n}();\n\nvar _xfindLastIndex =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xfindLastIndex(f, xf) {\n return new XFindLastIndex(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xfindLastIndex);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xfindLastIndex.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xmap.js": +/*!*************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xmap.js ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\nvar XMap =\n/*#__PURE__*/\nfunction () {\n function XMap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XMap.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n XMap.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].result;\n\n XMap.prototype['@@transducer/step'] = function (result, input) {\n return this.xf['@@transducer/step'](result, this.f(input));\n };\n\n return XMap;\n}();\n\nvar _xmap =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xmap(f, xf) {\n return new XMap(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xmap);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xmap.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xreduceBy.js": +/*!******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xreduceBy.js ***! + \******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curryN.js */ \"./node_modules/ramda/es/internal/_curryN.js\");\n/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\nvar XReduceBy =\n/*#__PURE__*/\nfunction () {\n function XReduceBy(valueFn, valueAcc, keyFn, xf) {\n this.valueFn = valueFn;\n this.valueAcc = valueAcc;\n this.keyFn = keyFn;\n this.xf = xf;\n this.inputs = {};\n }\n\n XReduceBy.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init;\n\n XReduceBy.prototype['@@transducer/result'] = function (result) {\n var key;\n\n for (key in this.inputs) {\n if (Object(_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(key, this.inputs)) {\n result = this.xf['@@transducer/step'](result, this.inputs[key]);\n\n if (result['@@transducer/reduced']) {\n result = result['@@transducer/value'];\n break;\n }\n }\n }\n\n this.inputs = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XReduceBy.prototype['@@transducer/step'] = function (result, input) {\n var key = this.keyFn(input);\n this.inputs[key] = this.inputs[key] || [key, this.valueAcc];\n this.inputs[key][1] = this.valueFn(this.inputs[key][1], input);\n return result;\n };\n\n return XReduceBy;\n}();\n\nvar _xreduceBy =\n/*#__PURE__*/\nObject(_curryN_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(4, [], function _xreduceBy(valueFn, valueAcc, keyFn, xf) {\n return new XReduceBy(valueFn, valueAcc, keyFn, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xreduceBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xreduceBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xtake.js": +/*!**************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xtake.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _reduced_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_reduced.js */ \"./node_modules/ramda/es/internal/_reduced.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\nvar XTake =\n/*#__PURE__*/\nfunction () {\n function XTake(n, xf) {\n this.xf = xf;\n this.n = n;\n this.i = 0;\n }\n\n XTake.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init;\n XTake.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].result;\n\n XTake.prototype['@@transducer/step'] = function (result, input) {\n this.i += 1;\n var ret = this.n === 0 ? result : this.xf['@@transducer/step'](result, input);\n return this.n >= 0 && this.i >= this.n ? Object(_reduced_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(ret) : ret;\n };\n\n return XTake;\n}();\n\nvar _xtake =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xtake(n, xf) {\n return new XTake(n, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xtake);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xtake.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xtakeWhile.js": +/*!*******************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xtakeWhile.js ***! + \*******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _reduced_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_reduced.js */ \"./node_modules/ramda/es/internal/_reduced.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\n\nvar XTakeWhile =\n/*#__PURE__*/\nfunction () {\n function XTakeWhile(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XTakeWhile.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init;\n XTakeWhile.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].result;\n\n XTakeWhile.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : Object(_reduced_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(result);\n };\n\n return XTakeWhile;\n}();\n\nvar _xtakeWhile =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xtakeWhile(f, xf) {\n return new XTakeWhile(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xtakeWhile);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xtakeWhile.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xtap.js": +/*!*************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xtap.js ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ \"./node_modules/ramda/es/internal/_xfBase.js\");\n\n\n\nvar XTap =\n/*#__PURE__*/\nfunction () {\n function XTap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XTap.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n XTap.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].result;\n\n XTap.prototype['@@transducer/step'] = function (result, input) {\n this.f(input);\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XTap;\n}();\n\nvar _xtap =\n/*#__PURE__*/\nObject(_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function _xtap(f, xf) {\n return new XTap(f, xf);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_xtap);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xtap.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/internal/_xwrap.js": +/*!**************************************************!*\ + !*** ./node_modules/ramda/es/internal/_xwrap.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _xwrap; });\nvar XWrap =\n/*#__PURE__*/\nfunction () {\n function XWrap(fn) {\n this.f = fn;\n }\n\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n\n return XWrap;\n}();\n\nfunction _xwrap(fn) {\n return new XWrap(fn);\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/internal/_xwrap.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/intersection.js": +/*!***********************************************!*\ + !*** ./node_modules/ramda/es/intersection.js ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_includes.js */ \"./node_modules/ramda/es/internal/_includes.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_filter.js */ \"./node_modules/ramda/es/internal/_filter.js\");\n/* harmony import */ var _flip_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./flip.js */ \"./node_modules/ramda/es/flip.js\");\n/* harmony import */ var _uniq_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./uniq.js */ \"./node_modules/ramda/es/uniq.js\");\n\n\n\n\n\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of those\n * elements common to both lists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The list of elements found in both `list1` and `list2`.\n * @see R.innerJoin\n * @example\n *\n * R.intersection([1,2,3,4], [7,6,5,4,3]); //=> [4, 3]\n */\n\nvar intersection =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function intersection(list1, list2) {\n var lookupList, filteredList;\n\n if (list1.length > list2.length) {\n lookupList = list1;\n filteredList = list2;\n } else {\n lookupList = list2;\n filteredList = list1;\n }\n\n return Object(_uniq_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(Object(_internal_filter_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Object(_flip_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_internal_includes_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(lookupList), filteredList));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (intersection);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/intersection.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/intersperse.js": +/*!**********************************************!*\ + !*** ./node_modules/ramda/es/intersperse.js ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_checkForMethod.js */ \"./node_modules/ramda/es/internal/_checkForMethod.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Creates a new list with the separator interposed between elements.\n *\n * Dispatches to the `intersperse` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} separator The element to add to the list.\n * @param {Array} list The list to be interposed.\n * @return {Array} The new list.\n * @example\n *\n * R.intersperse('a', ['b', 'n', 'n', 's']); //=> ['b', 'a', 'n', 'a', 'n', 'a', 's']\n */\n\nvar intersperse =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('intersperse', function intersperse(separator, list) {\n var out = [];\n var idx = 0;\n var length = list.length;\n\n while (idx < length) {\n if (idx === length - 1) {\n out.push(list[idx]);\n } else {\n out.push(list[idx], separator);\n }\n\n idx += 1;\n }\n\n return out;\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (intersperse);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/intersperse.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/into.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/into.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_clone_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_clone.js */ \"./node_modules/ramda/es/internal/_clone.js\");\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _internal_isTransformer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isTransformer.js */ \"./node_modules/ramda/es/internal/_isTransformer.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _internal_stepCat_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./internal/_stepCat.js */ \"./node_modules/ramda/es/internal/_stepCat.js\");\n\n\n\n\n\n/**\n * Transforms the items of the list with the transducer and appends the\n * transformed items to the accumulator using an appropriate iterator function\n * based on the accumulator type.\n *\n * The accumulator can be an array, string, object or a transformer. Iterated\n * items will be appended to arrays and concatenated to strings. Objects will\n * be merged directly or 2-item arrays will be merged as key, value pairs.\n *\n * The accumulator can also be a transformer object that provides a 2-arity\n * reducing iterator function, step, 0-arity initial value function, init, and\n * 1-arity result extraction function result. The step function is used as the\n * iterator function in reduce. The result function is used to convert the\n * final accumulator into the return type and in most cases is R.identity. The\n * init function is used to provide the initial accumulator.\n *\n * The iteration is performed with [`R.reduce`](#reduce) after initializing the\n * transducer.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig a -> (b -> b) -> [c] -> a\n * @param {*} acc The initial accumulator value.\n * @param {Function} xf The transducer function. Receives a transformer and returns a transformer.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.transduce\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const transducer = R.compose(R.map(R.add(1)), R.take(2));\n *\n * R.into([], transducer, numbers); //=> [2, 3]\n *\n * const intoArray = R.into([]);\n * intoArray(transducer, numbers); //=> [2, 3]\n */\n\nvar into =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function into(acc, xf, list) {\n return Object(_internal_isTransformer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(acc) ? Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(xf(acc), acc['@@transducer/init'](), list) : Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(xf(Object(_internal_stepCat_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(acc)), Object(_internal_clone_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(acc, [], [], false), list);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (into);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/into.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/invert.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/invert.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/ramda/es/keys.js\");\n\n\n\n/**\n * Same as [`R.invertObj`](#invertObj), however this accounts for objects with\n * duplicate values by putting the values into an array.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {s: x} -> {x: [ s, ... ]}\n * @param {Object} obj The object or array to invert\n * @return {Object} out A new object with keys in an array.\n * @see R.invertObj\n * @example\n *\n * const raceResultsByFirstName = {\n * first: 'alice',\n * second: 'jake',\n * third: 'alice',\n * };\n * R.invert(raceResultsByFirstName);\n * //=> { 'alice': ['first', 'third'], 'jake':['second'] }\n */\n\nvar invert =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function invert(obj) {\n var props = Object(_keys_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(obj);\n var len = props.length;\n var idx = 0;\n var out = {};\n\n while (idx < len) {\n var key = props[idx];\n var val = obj[key];\n var list = Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(val, out) ? out[val] : out[val] = [];\n list[list.length] = key;\n idx += 1;\n }\n\n return out;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (invert);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/invert.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/invertObj.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/invertObj.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/ramda/es/keys.js\");\n\n\n/**\n * Returns a new object with the keys of the given object as values, and the\n * values of the given object, which are coerced to strings, as keys. Note\n * that the last key found is preferred when handling the same value.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {s: x} -> {x: s}\n * @param {Object} obj The object or array to invert\n * @return {Object} out A new object\n * @see R.invert\n * @example\n *\n * const raceResults = {\n * first: 'alice',\n * second: 'jake'\n * };\n * R.invertObj(raceResults);\n * //=> { 'alice': 'first', 'jake':'second' }\n *\n * // Alternatively:\n * const raceResults = ['alice', 'jake'];\n * R.invertObj(raceResults);\n * //=> { 'alice': '0', 'jake':'1' }\n */\n\nvar invertObj =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function invertObj(obj) {\n var props = Object(_keys_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(obj);\n var len = props.length;\n var idx = 0;\n var out = {};\n\n while (idx < len) {\n var key = props[idx];\n out[obj[key]] = key;\n idx += 1;\n }\n\n return out;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (invertObj);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/invertObj.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/invoker.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/invoker.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isFunction.js */ \"./node_modules/ramda/es/internal/_isFunction.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony import */ var _toString_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./toString.js */ \"./node_modules/ramda/es/toString.js\");\n\n\n\n\n/**\n * Turns a named method with a specified arity into a function that can be\n * called directly supplied with arguments and a target object.\n *\n * The returned function is curried and accepts `arity + 1` parameters where\n * the final parameter is the target object.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig Number -> String -> (a -> b -> ... -> n -> Object -> *)\n * @param {Number} arity Number of arguments the returned function should take\n * before the target object.\n * @param {String} method Name of any of the target object's methods to call.\n * @return {Function} A new curried function.\n * @see R.construct\n * @example\n *\n * const sliceFrom = R.invoker(1, 'slice');\n * sliceFrom(6, 'abcdefghijklm'); //=> 'ghijklm'\n * const sliceFrom6 = R.invoker(2, 'slice')(6);\n * sliceFrom6(8, 'abcdefghijklm'); //=> 'gh'\n *\n * const dog = {\n * speak: async () => 'Woof!'\n * };\n * const speak = R.invoker(0, 'speak');\n * speak(dog).then(console.log) //~> 'Woof!'\n *\n * @symb R.invoker(0, 'method')(o) = o['method']()\n * @symb R.invoker(1, 'method')(a, o) = o['method'](a)\n * @symb R.invoker(2, 'method')(a, b, o) = o['method'](a, b)\n */\n\nvar invoker =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function invoker(arity, method) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(arity + 1, function () {\n var target = arguments[arity];\n\n if (target != null && Object(_internal_isFunction_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(target[method])) {\n return target[method].apply(target, Array.prototype.slice.call(arguments, 0, arity));\n }\n\n throw new TypeError(Object(_toString_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(target) + ' does not have a method named \"' + method + '\"');\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (invoker);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/invoker.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/is.js": +/*!*************************************!*\ + !*** ./node_modules/ramda/es/is.js ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * See if an object (`val`) is an instance of the supplied constructor. This\n * function will check up the inheritance chain, if any.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Type\n * @sig (* -> {*}) -> a -> Boolean\n * @param {Object} ctor A constructor\n * @param {*} val The value to test\n * @return {Boolean}\n * @example\n *\n * R.is(Object, {}); //=> true\n * R.is(Number, 1); //=> true\n * R.is(Object, 1); //=> false\n * R.is(String, 's'); //=> true\n * R.is(String, new String('')); //=> true\n * R.is(Object, new String('')); //=> true\n * R.is(Object, 's'); //=> false\n * R.is(Number, {}); //=> false\n */\n\nvar is =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function is(Ctor, val) {\n return val != null && val.constructor === Ctor || val instanceof Ctor;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (is);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/is.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/isEmpty.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/isEmpty.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _empty_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./empty.js */ \"./node_modules/ramda/es/empty.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n\n\n\n/**\n * Returns `true` if the given value is its type's empty value; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> Boolean\n * @param {*} x\n * @return {Boolean}\n * @see R.empty\n * @example\n *\n * R.isEmpty([1, 2, 3]); //=> false\n * R.isEmpty([]); //=> true\n * R.isEmpty(''); //=> true\n * R.isEmpty(null); //=> false\n * R.isEmpty({}); //=> true\n * R.isEmpty({length: 0}); //=> false\n */\n\nvar isEmpty =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function isEmpty(x) {\n return x != null && Object(_equals_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(x, Object(_empty_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(x));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isEmpty);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/isEmpty.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/isNil.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/isNil.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Checks if the input value is `null` or `undefined`.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Type\n * @sig * -> Boolean\n * @param {*} x The value to test.\n * @return {Boolean} `true` if `x` is `undefined` or `null`, otherwise `false`.\n * @example\n *\n * R.isNil(null); //=> true\n * R.isNil(undefined); //=> true\n * R.isNil(0); //=> false\n * R.isNil([]); //=> false\n */\n\nvar isNil =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function isNil(x) {\n return x == null;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isNil);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/isNil.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/join.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/join.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _invoker_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./invoker.js */ \"./node_modules/ramda/es/invoker.js\");\n\n/**\n * Returns a string made by inserting the `separator` between each element and\n * concatenating all the elements into a single string.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig String -> [a] -> String\n * @param {Number|String} separator The string used to separate the elements.\n * @param {Array} xs The elements to join into a string.\n * @return {String} str The string made by concatenating `xs` with `separator`.\n * @see R.split\n * @example\n *\n * const spacer = R.join(' ');\n * spacer(['a', 2, 3.4]); //=> 'a 2 3.4'\n * R.join('|', [1, 2, 3]); //=> '1|2|3'\n */\n\nvar join =\n/*#__PURE__*/\nObject(_invoker_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(1, 'join');\n/* harmony default export */ __webpack_exports__[\"default\"] = (join);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/join.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/juxt.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/juxt.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _converge_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./converge.js */ \"./node_modules/ramda/es/converge.js\");\n\n\n/**\n * juxt applies a list of functions to a list of values.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Function\n * @sig [(a, b, ..., m) -> n] -> ((a, b, ..., m) -> [n])\n * @param {Array} fns An array of functions\n * @return {Function} A function that returns a list of values after applying each of the original `fns` to its parameters.\n * @see R.applySpec\n * @example\n *\n * const getRange = R.juxt([Math.min, Math.max]);\n * getRange(3, 4, 9, -3); //=> [-3, 9]\n * @symb R.juxt([f, g, h])(a, b) = [f(a, b), g(a, b), h(a, b)]\n */\n\nvar juxt =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function juxt(fns) {\n return Object(_converge_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function () {\n return Array.prototype.slice.call(arguments, 0);\n }, fns);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (juxt);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/juxt.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/keys.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/keys.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n/* harmony import */ var _internal_isArguments_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isArguments.js */ \"./node_modules/ramda/es/internal/_isArguments.js\");\n\n\n // cover IE < 9 keys issues\n\nvar hasEnumBug = !\n/*#__PURE__*/\n{\n toString: null\n}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; // Safari bug\n\nvar hasArgsEnumBug =\n/*#__PURE__*/\nfunction () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n};\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\n\n\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ?\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) :\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n\n var prop, nIdx;\n var ks = [];\n\n var checkArgsLength = hasArgsEnumBug && Object(_internal_isArguments_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(obj);\n\n for (prop in obj) {\n if (Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n\n if (Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n\n nIdx -= 1;\n }\n }\n\n return ks;\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (keys);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/keys.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/keysIn.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/keysIn.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Returns a list containing the names of all the properties of the supplied\n * object, including prototype properties.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own and prototype properties.\n * @see R.keys, R.valuesIn\n * @example\n *\n * const F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * const f = new F();\n * R.keysIn(f); //=> ['x', 'y']\n */\n\nvar keysIn =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function keysIn(obj) {\n var prop;\n var ks = [];\n\n for (prop in obj) {\n ks[ks.length] = prop;\n }\n\n return ks;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (keysIn);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/keysIn.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/last.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/last.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nth_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./nth.js */ \"./node_modules/ramda/es/nth.js\");\n\n/**\n * Returns the last element of the given list or string.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.init, R.head, R.tail\n * @example\n *\n * R.last(['fi', 'fo', 'fum']); //=> 'fum'\n * R.last([]); //=> undefined\n *\n * R.last('abc'); //=> 'c'\n * R.last(''); //=> ''\n */\n\nvar last =\n/*#__PURE__*/\nObject(_nth_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(-1);\n/* harmony default export */ __webpack_exports__[\"default\"] = (last);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/last.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/lastIndexOf.js": +/*!**********************************************!*\ + !*** ./node_modules/ramda/es/lastIndexOf.js ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isArray.js */ \"./node_modules/ramda/es/internal/_isArray.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n\n\n\n/**\n * Returns the position of the last occurrence of an item in an array, or -1 if\n * the item is not included in the array. [`R.equals`](#equals) is used to\n * determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Number\n * @param {*} target The item to find.\n * @param {Array} xs The array to search in.\n * @return {Number} the index of the target, or -1 if the target is not found.\n * @see R.indexOf\n * @example\n *\n * R.lastIndexOf(3, [-1,3,3,0,1,2,3,4]); //=> 6\n * R.lastIndexOf(10, [1,2,3,4]); //=> -1\n */\n\nvar lastIndexOf =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function lastIndexOf(target, xs) {\n if (typeof xs.lastIndexOf === 'function' && !Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(xs)) {\n return xs.lastIndexOf(target);\n } else {\n var idx = xs.length - 1;\n\n while (idx >= 0) {\n if (Object(_equals_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(xs[idx], target)) {\n return idx;\n }\n\n idx -= 1;\n }\n\n return -1;\n }\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (lastIndexOf);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/lastIndexOf.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/length.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/length.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_isNumber_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isNumber.js */ \"./node_modules/ramda/es/internal/_isNumber.js\");\n\n\n/**\n * Returns the number of elements in the array by returning `list.length`.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [a] -> Number\n * @param {Array} list The array to inspect.\n * @return {Number} The length of the array.\n * @example\n *\n * R.length([]); //=> 0\n * R.length([1, 2, 3]); //=> 3\n */\n\nvar length =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function length(list) {\n return list != null && Object(_internal_isNumber_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(list.length) ? list.length : NaN;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (length);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/length.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/lens.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/lens.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n\n\n/**\n * Returns a lens for the given getter and setter functions. The getter \"gets\"\n * the value of the focus; the setter \"sets\" the value of the focus. The setter\n * should not mutate the data structure.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig (s -> a) -> ((a, s) -> s) -> Lens s a\n * @param {Function} getter\n * @param {Function} setter\n * @return {Lens}\n * @see R.view, R.set, R.over, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lens(R.prop('x'), R.assoc('x'));\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.over(xLens, R.negate, {x: 1, y: 2}); //=> {x: -1, y: 2}\n */\n\nvar lens =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function lens(getter, setter) {\n return function (toFunctorFn) {\n return function (target) {\n return Object(_map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (focus) {\n return setter(focus, target);\n }, toFunctorFn(getter(target)));\n };\n };\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (lens);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/lens.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/lensIndex.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/lensIndex.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _lens_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lens.js */ \"./node_modules/ramda/es/lens.js\");\n/* harmony import */ var _nth_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nth.js */ \"./node_modules/ramda/es/nth.js\");\n/* harmony import */ var _update_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./update.js */ \"./node_modules/ramda/es/update.js\");\n\n\n\n\n/**\n * Returns a lens whose focus is the specified index.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Number -> Lens s a\n * @param {Number} n\n * @return {Lens}\n * @see R.view, R.set, R.over, R.nth\n * @example\n *\n * const headLens = R.lensIndex(0);\n *\n * R.view(headLens, ['a', 'b', 'c']); //=> 'a'\n * R.set(headLens, 'x', ['a', 'b', 'c']); //=> ['x', 'b', 'c']\n * R.over(headLens, R.toUpper, ['a', 'b', 'c']); //=> ['A', 'b', 'c']\n */\n\nvar lensIndex =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function lensIndex(n) {\n return Object(_lens_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_nth_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(n), Object(_update_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(n));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (lensIndex);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/lensIndex.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/lensPath.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/lensPath.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _assocPath_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assocPath.js */ \"./node_modules/ramda/es/assocPath.js\");\n/* harmony import */ var _lens_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lens.js */ \"./node_modules/ramda/es/lens.js\");\n/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./path.js */ \"./node_modules/ramda/es/path.js\");\n\n\n\n\n/**\n * Returns a lens whose focus is the specified path.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @typedefn Idx = String | Int\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig [Idx] -> Lens s a\n * @param {Array} path The path to use.\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * const xHeadYLens = R.lensPath(['x', 0, 'y']);\n *\n * R.view(xHeadYLens, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> 2\n * R.set(xHeadYLens, 1, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> {x: [{y: 1, z: 3}, {y: 4, z: 5}]}\n * R.over(xHeadYLens, R.negate, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> {x: [{y: -2, z: 3}, {y: 4, z: 5}]}\n */\n\nvar lensPath =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function lensPath(p) {\n return Object(_lens_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Object(_path_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(p), Object(_assocPath_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(p));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (lensPath);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/lensPath.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/lensProp.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/lensProp.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _assoc_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assoc.js */ \"./node_modules/ramda/es/assoc.js\");\n/* harmony import */ var _lens_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lens.js */ \"./node_modules/ramda/es/lens.js\");\n/* harmony import */ var _prop_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./prop.js */ \"./node_modules/ramda/es/prop.js\");\n\n\n\n\n/**\n * Returns a lens whose focus is the specified property.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig String -> Lens s a\n * @param {String} k\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.over(xLens, R.negate, {x: 1, y: 2}); //=> {x: -1, y: 2}\n */\n\nvar lensProp =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function lensProp(k) {\n return Object(_lens_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Object(_prop_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(k), Object(_assoc_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(k));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (lensProp);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/lensProp.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/lift.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/lift.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _liftN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./liftN.js */ \"./node_modules/ramda/es/liftN.js\");\n\n\n/**\n * \"lifts\" a function of arity > 1 so that it may \"map over\" a list, Function or other\n * object that satisfies the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.liftN\n * @example\n *\n * const madd3 = R.lift((a, b, c) => a + b + c);\n *\n * madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]\n *\n * const madd5 = R.lift((a, b, c, d, e) => a + b + c + d + e);\n *\n * madd5([1,2], [3], [4, 5], [6], [7, 8]); //=> [21, 22, 22, 23, 22, 23, 23, 24]\n */\n\nvar lift =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function lift(fn) {\n return Object(_liftN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(fn.length, fn);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (lift);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/lift.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/liftN.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/liftN.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _ap_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ap.js */ \"./node_modules/ramda/es/ap.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n\n\n\n\n\n/**\n * \"lifts\" a function to be the specified arity, so that it may \"map over\" that\n * many lists, Functions or other objects that satisfy the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig Number -> (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.lift, R.ap\n * @example\n *\n * const madd3 = R.liftN(3, (...args) => R.sum(args));\n * madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]\n */\n\nvar liftN =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function liftN(arity, fn) {\n var lifted = Object(_curryN_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(arity, fn);\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(arity, function () {\n return Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_ap_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], Object(_map_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(lifted, arguments[0]), Array.prototype.slice.call(arguments, 1));\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (liftN);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/liftN.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/lt.js": +/*!*************************************!*\ + !*** ./node_modules/ramda/es/lt.js ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns `true` if the first argument is less than the second; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @see R.gt\n * @example\n *\n * R.lt(2, 1); //=> false\n * R.lt(2, 2); //=> false\n * R.lt(2, 3); //=> true\n * R.lt('a', 'z'); //=> true\n * R.lt('z', 'a'); //=> false\n */\n\nvar lt =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function lt(a, b) {\n return a < b;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (lt);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/lt.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/lte.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/lte.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns `true` if the first argument is less than or equal to the second;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {Number} a\n * @param {Number} b\n * @return {Boolean}\n * @see R.gte\n * @example\n *\n * R.lte(2, 1); //=> false\n * R.lte(2, 2); //=> true\n * R.lte(2, 3); //=> true\n * R.lte('a', 'z'); //=> true\n * R.lte('z', 'a'); //=> false\n */\n\nvar lte =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function lte(a, b) {\n return a <= b;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (lte);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/lte.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/map.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/map.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_map.js */ \"./node_modules/ramda/es/internal/_map.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _internal_xmap_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./internal/_xmap.js */ \"./node_modules/ramda/es/internal/_xmap.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/ramda/es/keys.js\");\n\n\n\n\n\n\n\n/**\n * Takes a function and\n * a [functor](https://github.com/fantasyland/fantasy-land#functor),\n * applies the function to each of the functor's values, and returns\n * a functor of the same shape.\n *\n * Ramda provides suitable `map` implementations for `Array` and `Object`,\n * so this function may be applied to `[1, 2, 3]` or `{x: 1, y: 2, z: 3}`.\n *\n * Dispatches to the `map` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * Also treats functions as functors and will compose them together.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => (a -> b) -> f a -> f b\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {Array} list The list to be iterated over.\n * @return {Array} The new list.\n * @see R.transduce, R.addIndex\n * @example\n *\n * const double = x => x * 2;\n *\n * R.map(double, [1, 2, 3]); //=> [2, 4, 6]\n *\n * R.map(double, {x: 1, y: 2, z: 3}); //=> {x: 2, y: 4, z: 6}\n * @symb R.map(f, [a, b]) = [f(a), f(b)]\n * @symb R.map(f, { x: a, y: b }) = { x: f(a), y: f(b) }\n * @symb R.map(f, functor_o) = functor_o.map(f)\n */\n\nvar map =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['fantasy-land/map', 'map'], _internal_xmap_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"], function map(fn, functor) {\n switch (Object.prototype.toString.call(functor)) {\n case '[object Function]':\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(functor.length, function () {\n return fn.call(this, functor.apply(this, arguments));\n });\n\n case '[object Object]':\n return Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(function (acc, key) {\n acc[key] = fn(functor[key]);\n return acc;\n }, {}, Object(_keys_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(functor));\n\n default:\n return Object(_internal_map_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(fn, functor);\n }\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (map);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/map.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mapAccum.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/mapAccum.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * The `mapAccum` function behaves like a combination of map and reduce; it\n * applies a function to each element of a list, passing an accumulating\n * parameter from left to right, and returning a final value of this\n * accumulator together with the new list.\n *\n * The iterator function receives two arguments, *acc* and *value*, and should\n * return a tuple *[acc, value]*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig ((acc, x) -> (acc, y)) -> acc -> [x] -> (acc, [y])\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.scan, R.addIndex, R.mapAccumRight\n * @example\n *\n * const digits = ['1', '2', '3', '4'];\n * const appender = (a, b) => [a + b, a + b];\n *\n * R.mapAccum(appender, 0, digits); //=> ['01234', ['01', '012', '0123', '01234']]\n * @symb R.mapAccum(f, a, [b, c, d]) = [\n * f(f(f(a, b)[0], c)[0], d)[0],\n * [\n * f(a, b)[1],\n * f(f(a, b)[0], c)[1],\n * f(f(f(a, b)[0], c)[0], d)[1]\n * ]\n * ]\n */\n\nvar mapAccum =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mapAccum(fn, acc, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n var tuple = [acc];\n\n while (idx < len) {\n tuple = fn(tuple[0], list[idx]);\n result[idx] = tuple[1];\n idx += 1;\n }\n\n return [tuple[0], result];\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mapAccum);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mapAccum.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mapAccumRight.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/mapAccumRight.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * The `mapAccumRight` function behaves like a combination of map and reduce; it\n * applies a function to each element of a list, passing an accumulating\n * parameter from right to left, and returning a final value of this\n * accumulator together with the new list.\n *\n * Similar to [`mapAccum`](#mapAccum), except moves through the input list from\n * the right to the left.\n *\n * The iterator function receives two arguments, *acc* and *value*, and should\n * return a tuple *[acc, value]*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig ((acc, x) -> (acc, y)) -> acc -> [x] -> (acc, [y])\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.addIndex, R.mapAccum\n * @example\n *\n * const digits = ['1', '2', '3', '4'];\n * const appender = (a, b) => [b + a, b + a];\n *\n * R.mapAccumRight(appender, 5, digits); //=> ['12345', ['12345', '2345', '345', '45']]\n * @symb R.mapAccumRight(f, a, [b, c, d]) = [\n * f(f(f(a, d)[0], c)[0], b)[0],\n * [\n * f(a, d)[1],\n * f(f(a, d)[0], c)[1],\n * f(f(f(a, d)[0], c)[0], b)[1]\n * ]\n * ]\n */\n\nvar mapAccumRight =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mapAccumRight(fn, acc, list) {\n var idx = list.length - 1;\n var result = [];\n var tuple = [acc];\n\n while (idx >= 0) {\n tuple = fn(tuple[0], list[idx]);\n result[idx] = tuple[1];\n idx -= 1;\n }\n\n return [tuple[0], result];\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mapAccumRight);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mapAccumRight.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mapObjIndexed.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/mapObjIndexed.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/ramda/es/keys.js\");\n\n\n\n/**\n * An Object-specific version of [`map`](#map). The function is applied to three\n * arguments: *(value, key, obj)*. If only the value is significant, use\n * [`map`](#map) instead.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig ((*, String, Object) -> *) -> Object -> Object\n * @param {Function} fn\n * @param {Object} obj\n * @return {Object}\n * @see R.map\n * @example\n *\n * const xyz = { x: 1, y: 2, z: 3 };\n * const prependKeyAndDouble = (num, key, obj) => key + (num * 2);\n *\n * R.mapObjIndexed(prependKeyAndDouble, xyz); //=> { x: 'x2', y: 'y4', z: 'z6' }\n */\n\nvar mapObjIndexed =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mapObjIndexed(fn, obj) {\n return Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (acc, key) {\n acc[key] = fn(obj[key], key, obj);\n return acc;\n }, {}, Object(_keys_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(obj));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mapObjIndexed);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mapObjIndexed.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/match.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/match.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Tests a regular expression against a String. Note that this function will\n * return an empty array when there are no matches. This differs from\n * [`String.prototype.match`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match)\n * which returns `null` when there are no matches.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category String\n * @sig RegExp -> String -> [String | Undefined]\n * @param {RegExp} rx A regular expression.\n * @param {String} str The string to match against\n * @return {Array} The list of matches or empty array.\n * @see R.test\n * @example\n *\n * R.match(/([a-z]a)/g, 'bananas'); //=> ['ba', 'na', 'na']\n * R.match(/a/, 'b'); //=> []\n * R.match(/a/, null); //=> TypeError: null does not have a method named \"match\"\n */\n\nvar match =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function match(rx, str) {\n return str.match(rx) || [];\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (match);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/match.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mathMod.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/mathMod.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isInteger.js */ \"./node_modules/ramda/es/internal/_isInteger.js\");\n\n\n/**\n * `mathMod` behaves like the modulo operator should mathematically, unlike the\n * `%` operator (and by extension, [`R.modulo`](#modulo)). So while\n * `-17 % 5` is `-2`, `mathMod(-17, 5)` is `3`. `mathMod` requires Integer\n * arguments, and returns NaN when the modulus is zero or negative.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} m The dividend.\n * @param {Number} p the modulus.\n * @return {Number} The result of `b mod a`.\n * @see R.modulo\n * @example\n *\n * R.mathMod(-17, 5); //=> 3\n * R.mathMod(17, 5); //=> 2\n * R.mathMod(17, -5); //=> NaN\n * R.mathMod(17, 0); //=> NaN\n * R.mathMod(17.2, 5); //=> NaN\n * R.mathMod(17, 5.3); //=> NaN\n *\n * const clock = R.mathMod(R.__, 12);\n * clock(15); //=> 3\n * clock(24); //=> 0\n *\n * const seventeenMod = R.mathMod(17);\n * seventeenMod(3); //=> 2\n * seventeenMod(4); //=> 1\n * seventeenMod(10); //=> 7\n */\n\nvar mathMod =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mathMod(m, p) {\n if (!Object(_internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(m)) {\n return NaN;\n }\n\n if (!Object(_internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(p) || p < 1) {\n return NaN;\n }\n\n return (m % p + p) % p;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mathMod);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mathMod.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/max.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/max.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns the larger of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.maxBy, R.min\n * @example\n *\n * R.max(789, 123); //=> 789\n * R.max('a', 'b'); //=> 'b'\n */\n\nvar max =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function max(a, b) {\n return b > a ? b : a;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (max);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/max.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/maxBy.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/maxBy.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Takes a function and two values, and returns whichever value produces the\n * larger result when passed to the provided function.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Relation\n * @sig Ord b => (a -> b) -> a -> a -> a\n * @param {Function} f\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.max, R.minBy\n * @example\n *\n * // square :: Number -> Number\n * const square = n => n * n;\n *\n * R.maxBy(square, -3, 2); //=> -3\n *\n * R.reduce(R.maxBy(square), 0, [3, -5, 4, 1, -2]); //=> -5\n * R.reduce(R.maxBy(square), 0, []); //=> 0\n */\n\nvar maxBy =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function maxBy(f, a, b) {\n return f(b) > f(a) ? b : a;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (maxBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/maxBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mean.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/mean.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _sum_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sum.js */ \"./node_modules/ramda/es/sum.js\");\n\n\n/**\n * Returns the mean of the given list of numbers.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list\n * @return {Number}\n * @see R.median\n * @example\n *\n * R.mean([2, 7, 9]); //=> 6\n * R.mean([]); //=> NaN\n */\n\nvar mean =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mean(list) {\n return Object(_sum_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(list) / list.length;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mean);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mean.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/median.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/median.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _mean_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mean.js */ \"./node_modules/ramda/es/mean.js\");\n\n\n/**\n * Returns the median of the given list of numbers.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list\n * @return {Number}\n * @see R.mean\n * @example\n *\n * R.median([2, 9, 7]); //=> 7\n * R.median([7, 2, 10, 9]); //=> 8\n * R.median([]); //=> NaN\n */\n\nvar median =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function median(list) {\n var len = list.length;\n\n if (len === 0) {\n return NaN;\n }\n\n var width = 2 - len % 2;\n var idx = (len - width) / 2;\n return Object(_mean_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Array.prototype.slice.call(list, 0).sort(function (a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n }).slice(idx, idx + width));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (median);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/median.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/memoizeWith.js": +/*!**********************************************!*\ + !*** ./node_modules/ramda/es/memoizeWith.js ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n\n\n\n/**\n * Creates a new function that, when invoked, caches the result of calling `fn`\n * for a given argument set and returns the result. Subsequent calls to the\n * memoized `fn` with the same argument set will not result in an additional\n * call to `fn`; instead, the cached result for that set of arguments will be\n * returned.\n *\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Function\n * @sig (*... -> String) -> (*... -> a) -> (*... -> a)\n * @param {Function} fn The function to generate the cache key.\n * @param {Function} fn The function to memoize.\n * @return {Function} Memoized version of `fn`.\n * @example\n *\n * let count = 0;\n * const factorial = R.memoizeWith(R.identity, n => {\n * count += 1;\n * return R.product(R.range(1, n + 1));\n * });\n * factorial(5); //=> 120\n * factorial(5); //=> 120\n * factorial(5); //=> 120\n * count; //=> 1\n */\n\nvar memoizeWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function memoizeWith(mFn, fn) {\n var cache = {};\n return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(fn.length, function () {\n var key = mFn.apply(this, arguments);\n\n if (!Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(key, cache)) {\n cache[key] = fn.apply(this, arguments);\n }\n\n return cache[key];\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (memoizeWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/memoizeWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/merge.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/merge.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_objectAssign.js */ \"./node_modules/ramda/es/internal/_objectAssign.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeRight, R.mergeDeepRight, R.mergeWith, R.mergeWithKey\n * @deprecated since v0.26.0\n * @example\n *\n * R.merge({ 'name': 'fred', 'age': 10 }, { 'age': 40 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const withDefaults = R.merge({x: 0, y: 0});\n * withDefaults({y: 2}); //=> {x: 0, y: 2}\n * @symb R.merge(a, b) = {...a, ...b}\n */\n\nvar merge =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function merge(l, r) {\n return Object(_internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, l, r);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (merge);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/merge.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mergeAll.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/mergeAll.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_objectAssign.js */ \"./node_modules/ramda/es/internal/_objectAssign.js\");\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n\n/**\n * Merges a list of objects together into one object.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig [{k: v}] -> {k: v}\n * @param {Array} list An array of objects\n * @return {Object} A merged object.\n * @see R.reduce\n * @example\n *\n * R.mergeAll([{foo:1},{bar:2},{baz:3}]); //=> {foo:1,bar:2,baz:3}\n * R.mergeAll([{foo:1},{foo:2},{bar:2}]); //=> {foo:2,bar:2}\n * @symb R.mergeAll([{ x: 1 }, { y: 2 }, { z: 3 }]) = { x: 1, y: 2, z: 3 }\n */\n\nvar mergeAll =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function mergeAll(list) {\n return _internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].apply(null, [{}].concat(list));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mergeAll);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mergeAll.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mergeDeepLeft.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/mergeDeepLeft.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mergeDeepWithKey.js */ \"./node_modules/ramda/es/mergeDeepWithKey.js\");\n\n\n/**\n * Creates a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects:\n * - and both values are objects, the two values will be recursively merged\n * - otherwise the value from the first object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig {a} -> {a} -> {a}\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.merge, R.mergeDeepRight, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepLeft({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 10, contact: { email: 'moo@example.com' }}\n */\n\nvar mergeDeepLeft =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mergeDeepLeft(lObj, rObj) {\n return Object(_mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (k, lVal, rVal) {\n return lVal;\n }, lObj, rObj);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mergeDeepLeft);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mergeDeepLeft.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mergeDeepRight.js": +/*!*************************************************!*\ + !*** ./node_modules/ramda/es/mergeDeepRight.js ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mergeDeepWithKey.js */ \"./node_modules/ramda/es/mergeDeepWithKey.js\");\n\n\n/**\n * Creates a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects:\n * - and both values are objects, the two values will be recursively merged\n * - otherwise the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig {a} -> {a} -> {a}\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.merge, R.mergeDeepLeft, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepRight({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 40, contact: { email: 'baa@example.com' }}\n */\n\nvar mergeDeepRight =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mergeDeepRight(lObj, rObj) {\n return Object(_mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (k, lVal, rVal) {\n return rVal;\n }, lObj, rObj);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mergeDeepRight);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mergeDeepRight.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mergeDeepWith.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/mergeDeepWith.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mergeDeepWithKey.js */ \"./node_modules/ramda/es/mergeDeepWithKey.js\");\n\n\n/**\n * Creates a new object with the own properties of the two provided objects.\n * If a key exists in both objects:\n * - and both associated values are also objects then the values will be\n * recursively merged.\n * - otherwise the provided function is applied to associated values using the\n * resulting value as the new value associated with the key.\n * If a key only exists in one object, the value will be associated with the key\n * of the resulting object.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig ((a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.mergeWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepWith(R.concat,\n * { a: true, c: { values: [10, 20] }},\n * { b: true, c: { values: [15, 35] }});\n * //=> { a: true, b: true, c: { values: [10, 20, 15, 35] }}\n */\n\nvar mergeDeepWith =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mergeDeepWith(fn, lObj, rObj) {\n return Object(_mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (k, lVal, rVal) {\n return fn(lVal, rVal);\n }, lObj, rObj);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mergeDeepWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mergeDeepWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mergeDeepWithKey.js": +/*!***************************************************!*\ + !*** ./node_modules/ramda/es/mergeDeepWithKey.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _internal_isObject_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isObject.js */ \"./node_modules/ramda/es/internal/_isObject.js\");\n/* harmony import */ var _mergeWithKey_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mergeWithKey.js */ \"./node_modules/ramda/es/mergeWithKey.js\");\n\n\n\n/**\n * Creates a new object with the own properties of the two provided objects.\n * If a key exists in both objects:\n * - and both associated values are also objects then the values will be\n * recursively merged.\n * - otherwise the provided function is applied to the key and associated values\n * using the resulting value as the new value associated with the key.\n * If a key only exists in one object, the value will be associated with the key\n * of the resulting object.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.mergeWithKey, R.mergeDeepWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeDeepWithKey(concatValues,\n * { a: true, c: { thing: 'foo', values: [10, 20] }},\n * { b: true, c: { thing: 'bar', values: [15, 35] }});\n * //=> { a: true, b: true, c: { thing: 'bar', values: [10, 20, 15, 35] }}\n */\n\nvar mergeDeepWithKey =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mergeDeepWithKey(fn, lObj, rObj) {\n return Object(_mergeWithKey_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(function (k, lVal, rVal) {\n if (Object(_internal_isObject_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(lVal) && Object(_internal_isObject_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(rVal)) {\n return mergeDeepWithKey(fn, lVal, rVal);\n } else {\n return fn(k, lVal, rVal);\n }\n }, lObj, rObj);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mergeDeepWithKey);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mergeDeepWithKey.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mergeLeft.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/mergeLeft.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_objectAssign.js */ \"./node_modules/ramda/es/internal/_objectAssign.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the first object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeRight, R.mergeDeepLeft, R.mergeWith, R.mergeWithKey\n * @example\n *\n * R.mergeLeft({ 'age': 40 }, { 'name': 'fred', 'age': 10 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const resetToDefault = R.mergeLeft({x: 0});\n * resetToDefault({x: 5, y: 2}); //=> {x: 0, y: 2}\n * @symb R.mergeLeft(a, b) = {...b, ...a}\n */\n\nvar mergeLeft =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function mergeLeft(l, r) {\n return Object(_internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, r, l);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mergeLeft);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mergeLeft.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mergeRight.js": +/*!*********************************************!*\ + !*** ./node_modules/ramda/es/mergeRight.js ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_objectAssign.js */ \"./node_modules/ramda/es/internal/_objectAssign.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeLeft, R.mergeDeepRight, R.mergeWith, R.mergeWithKey\n * @example\n *\n * R.mergeRight({ 'name': 'fred', 'age': 10 }, { 'age': 40 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const withDefaults = R.mergeRight({x: 0, y: 0});\n * withDefaults({y: 2}); //=> {x: 0, y: 2}\n * @symb R.mergeRight(a, b) = {...a, ...b}\n */\n\nvar mergeRight =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function mergeRight(l, r) {\n return Object(_internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, l, r);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mergeRight);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mergeRight.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mergeWith.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/mergeWith.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _mergeWithKey_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mergeWithKey.js */ \"./node_modules/ramda/es/mergeWithKey.js\");\n\n\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the values\n * associated with the key in each object, with the result being used as the\n * value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWith, R.merge, R.mergeWithKey\n * @example\n *\n * R.mergeWith(R.concat,\n * { a: true, values: [10, 20] },\n * { b: true, values: [15, 35] });\n * //=> { a: true, b: true, values: [10, 20, 15, 35] }\n */\n\nvar mergeWith =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mergeWith(fn, l, r) {\n return Object(_mergeWithKey_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (_, _l, _r) {\n return fn(_l, _r);\n }, l, r);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mergeWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mergeWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/mergeWithKey.js": +/*!***********************************************!*\ + !*** ./node_modules/ramda/es/mergeWithKey.js ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n\n\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the key\n * and the values associated with the key in each object, with the result being\n * used as the value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWithKey, R.merge, R.mergeWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeWithKey(concatValues,\n * { a: true, thing: 'foo', values: [10, 20] },\n * { b: true, thing: 'bar', values: [15, 35] });\n * //=> { a: true, b: true, thing: 'bar', values: [10, 20, 15, 35] }\n * @symb R.mergeWithKey(f, { x: 1, y: 2 }, { y: 5, z: 3 }) = { x: 1, y: f('y', 2, 5), z: 3 }\n */\n\nvar mergeWithKey =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function mergeWithKey(fn, l, r) {\n var result = {};\n var k;\n\n for (k in l) {\n if (Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(k, l)) {\n result[k] = Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(k, r) ? fn(k, l[k], r[k]) : l[k];\n }\n }\n\n for (k in r) {\n if (Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(k, r) && !Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(k, result)) {\n result[k] = r[k];\n }\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mergeWithKey);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/mergeWithKey.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/min.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/min.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns the smaller of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.minBy, R.max\n * @example\n *\n * R.min(789, 123); //=> 123\n * R.min('a', 'b'); //=> 'a'\n */\n\nvar min =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function min(a, b) {\n return b < a ? b : a;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (min);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/min.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/minBy.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/minBy.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Takes a function and two values, and returns whichever value produces the\n * smaller result when passed to the provided function.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Relation\n * @sig Ord b => (a -> b) -> a -> a -> a\n * @param {Function} f\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.min, R.maxBy\n * @example\n *\n * // square :: Number -> Number\n * const square = n => n * n;\n *\n * R.minBy(square, -3, 2); //=> 2\n *\n * R.reduce(R.minBy(square), Infinity, [3, -5, 4, 1, -2]); //=> 1\n * R.reduce(R.minBy(square), Infinity, []); //=> Infinity\n */\n\nvar minBy =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function minBy(f, a, b) {\n return f(b) < f(a) ? b : a;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (minBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/minBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/modulo.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/modulo.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Divides the first parameter by the second and returns the remainder. Note\n * that this function preserves the JavaScript-style behavior for modulo. For\n * mathematical modulo see [`mathMod`](#mathMod).\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The value to the divide.\n * @param {Number} b The pseudo-modulus\n * @return {Number} The result of `b % a`.\n * @see R.mathMod\n * @example\n *\n * R.modulo(17, 3); //=> 2\n * // JS behavior:\n * R.modulo(-17, 3); //=> -2\n * R.modulo(17, -3); //=> 2\n *\n * const isOdd = R.modulo(R.__, 2);\n * isOdd(42); //=> 0\n * isOdd(21); //=> 1\n */\n\nvar modulo =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function modulo(a, b) {\n return a % b;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (modulo);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/modulo.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/move.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/move.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Move an item, at index `from`, to index `to`, in a list of elements.\n * A new list will be created containing the new elements order.\n *\n * @func\n * @memberOf R\n * @since v0.27.0\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @param {Number} from The source index\n * @param {Number} to The destination index\n * @param {Array} list The list which will serve to realise the move\n * @return {Array} The new list reordered\n * @example\n *\n * R.move(0, 2, ['a', 'b', 'c', 'd', 'e', 'f']); //=> ['b', 'c', 'a', 'd', 'e', 'f']\n * R.move(-1, 0, ['a', 'b', 'c', 'd', 'e', 'f']); //=> ['f', 'a', 'b', 'c', 'd', 'e'] list rotation\n */\n\nvar move =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (from, to, list) {\n var length = list.length;\n var result = list.slice();\n var positiveFrom = from < 0 ? length + from : from;\n var positiveTo = to < 0 ? length + to : to;\n var item = result.splice(positiveFrom, 1);\n return positiveFrom < 0 || positiveFrom >= list.length || positiveTo < 0 || positiveTo >= list.length ? list : [].concat(result.slice(0, positiveTo)).concat(item).concat(result.slice(positiveTo, list.length));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (move);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/move.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/multiply.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/multiply.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Multiplies two numbers. Equivalent to `a * b` but curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a * b`.\n * @see R.divide\n * @example\n *\n * const double = R.multiply(2);\n * const triple = R.multiply(3);\n * double(3); //=> 6\n * triple(4); //=> 12\n * R.multiply(2, 5); //=> 10\n */\n\nvar multiply =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function multiply(a, b) {\n return a * b;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (multiply);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/multiply.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/nAry.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/nAry.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly `n` parameters. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} n The desired arity of the new function.\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity `n`.\n * @see R.binary, R.unary\n * @example\n *\n * const takesTwoArgs = (a, b) => [a, b];\n *\n * takesTwoArgs.length; //=> 2\n * takesTwoArgs(1, 2); //=> [1, 2]\n *\n * const takesOneArg = R.nAry(1, takesTwoArgs);\n * takesOneArg.length; //=> 1\n * // Only `n` arguments are passed to the wrapped function\n * takesOneArg(1, 2); //=> [1, undefined]\n * @symb R.nAry(0, f)(a, b) = f()\n * @symb R.nAry(1, f)(a, b) = f(a)\n * @symb R.nAry(2, f)(a, b) = f(a, b)\n */\n\nvar nAry =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function nAry(n, fn) {\n switch (n) {\n case 0:\n return function () {\n return fn.call(this);\n };\n\n case 1:\n return function (a0) {\n return fn.call(this, a0);\n };\n\n case 2:\n return function (a0, a1) {\n return fn.call(this, a0, a1);\n };\n\n case 3:\n return function (a0, a1, a2) {\n return fn.call(this, a0, a1, a2);\n };\n\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.call(this, a0, a1, a2, a3);\n };\n\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.call(this, a0, a1, a2, a3, a4);\n };\n\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.call(this, a0, a1, a2, a3, a4, a5);\n };\n\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6);\n };\n\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7);\n };\n\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7, a8);\n };\n\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);\n };\n\n default:\n throw new Error('First argument to nAry must be a non-negative integer no greater than ten');\n }\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (nAry);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/nAry.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/negate.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/negate.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Negates its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number}\n * @example\n *\n * R.negate(42); //=> -42\n */\n\nvar negate =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function negate(n) {\n return -n;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (negate);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/negate.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/none.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/none.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_complement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_complement.js */ \"./node_modules/ramda/es/internal/_complement.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _all_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./all.js */ \"./node_modules/ramda/es/all.js\");\n\n\n\n/**\n * Returns `true` if no elements of the list match the predicate, `false`\n * otherwise.\n *\n * Dispatches to the `all` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is not satisfied by every element, `false` otherwise.\n * @see R.all, R.any\n * @example\n *\n * const isEven = n => n % 2 === 0;\n * const isOdd = n => n % 2 === 1;\n *\n * R.none(isEven, [1, 3, 5, 7, 9, 11]); //=> true\n * R.none(isOdd, [1, 3, 5, 7, 8, 11]); //=> false\n */\n\nvar none =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function none(fn, input) {\n return Object(_all_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Object(_internal_complement_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(fn), input);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (none);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/none.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/not.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/not.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * A function that returns the `!` of its argument. It will return `true` when\n * passed false-y value, and `false` when passed a truth-y one.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig * -> Boolean\n * @param {*} a any value\n * @return {Boolean} the logical inverse of passed argument.\n * @see R.complement\n * @example\n *\n * R.not(true); //=> false\n * R.not(false); //=> true\n * R.not(0); //=> true\n * R.not(1); //=> false\n */\n\nvar not =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function not(a) {\n return !a;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (not);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/not.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/nth.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/nth.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isString_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isString.js */ \"./node_modules/ramda/es/internal/_isString.js\");\n\n\n/**\n * Returns the nth element of the given list or string. If n is negative the\n * element at index length + n is returned.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> a | Undefined\n * @sig Number -> String -> String\n * @param {Number} offset\n * @param {*} list\n * @return {*}\n * @example\n *\n * const list = ['foo', 'bar', 'baz', 'quux'];\n * R.nth(1, list); //=> 'bar'\n * R.nth(-1, list); //=> 'quux'\n * R.nth(-99, list); //=> undefined\n *\n * R.nth(2, 'abc'); //=> 'c'\n * R.nth(3, 'abc'); //=> ''\n * @symb R.nth(-1, [a, b, c]) = c\n * @symb R.nth(0, [a, b, c]) = a\n * @symb R.nth(1, [a, b, c]) = b\n */\n\nvar nth =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function nth(offset, list) {\n var idx = offset < 0 ? list.length + offset : offset;\n return Object(_internal_isString_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(list) ? list.charAt(idx) : list[idx];\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (nth);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/nth.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/nthArg.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/nthArg.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony import */ var _nth_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nth.js */ \"./node_modules/ramda/es/nth.js\");\n\n\n\n/**\n * Returns a function which returns its nth argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig Number -> *... -> *\n * @param {Number} n\n * @return {Function}\n * @example\n *\n * R.nthArg(1)('a', 'b', 'c'); //=> 'b'\n * R.nthArg(-1)('a', 'b', 'c'); //=> 'c'\n * @symb R.nthArg(-1)(a, b, c) = c\n * @symb R.nthArg(0)(a, b, c) = a\n * @symb R.nthArg(1)(a, b, c) = b\n */\n\nvar nthArg =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function nthArg(n) {\n var arity = n < 0 ? 1 : n + 1;\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(arity, function () {\n return Object(_nth_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(n, arguments);\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (nthArg);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/nthArg.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/o.js": +/*!************************************!*\ + !*** ./node_modules/ramda/es/o.js ***! + \************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * `o` is a curried composition function that returns a unary function.\n * Like [`compose`](#compose), `o` performs right-to-left function composition.\n * Unlike [`compose`](#compose), the rightmost function passed to `o` will be\n * invoked with only one argument. Also, unlike [`compose`](#compose), `o` is\n * limited to accepting only 2 unary functions. The name o was chosen because\n * of its similarity to the mathematical composition operator ∘.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Function\n * @sig (b -> c) -> (a -> b) -> a -> c\n * @param {Function} f\n * @param {Function} g\n * @return {Function}\n * @see R.compose, R.pipe\n * @example\n *\n * const classyGreeting = name => \"The name's \" + name.last + \", \" + name.first + \" \" + name.last\n * const yellGreeting = R.o(R.toUpper, classyGreeting);\n * yellGreeting({first: 'James', last: 'Bond'}); //=> \"THE NAME'S BOND, JAMES BOND\"\n *\n * R.o(R.multiply(10), R.add(10))(-4) //=> 60\n *\n * @symb R.o(f, g, x) = f(g(x))\n */\n\nvar o =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function o(f, g, x) {\n return f(g(x));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (o);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/o.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/objOf.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/objOf.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Creates an object containing a single key:value pair.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Object\n * @sig String -> a -> {String:a}\n * @param {String} key\n * @param {*} val\n * @return {Object}\n * @see R.pair\n * @example\n *\n * const matchPhrases = R.compose(\n * R.objOf('must'),\n * R.map(R.objOf('match_phrase'))\n * );\n * matchPhrases(['foo', 'bar', 'baz']); //=> {must: [{match_phrase: 'foo'}, {match_phrase: 'bar'}, {match_phrase: 'baz'}]}\n */\n\nvar objOf =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function objOf(key, val) {\n var obj = {};\n obj[key] = val;\n return obj;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (objOf);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/objOf.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/of.js": +/*!*************************************!*\ + !*** ./node_modules/ramda/es/of.js ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_of_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_of.js */ \"./node_modules/ramda/es/internal/_of.js\");\n\n\n/**\n * Returns a singleton array containing the value provided.\n *\n * Note this `of` is different from the ES6 `of`; See\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> [a]\n * @param {*} x any value\n * @return {Array} An array wrapping `x`.\n * @example\n *\n * R.of(null); //=> [null]\n * R.of([42]); //=> [[42]]\n */\n\nvar of =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_internal_of_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (of);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/of.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/omit.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/omit.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns a partial copy of an object omitting the keys specified.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [String] -> {String: *} -> {String: *}\n * @param {Array} names an array of String property names to omit from the new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with properties from `names` not on it.\n * @see R.pick\n * @example\n *\n * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}\n */\n\nvar omit =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function omit(names, obj) {\n var result = {};\n var index = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n index[names[idx]] = 1;\n idx += 1;\n }\n\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (omit);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/omit.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/once.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/once.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n\n/**\n * Accepts a function `fn` and returns a function that guards invocation of\n * `fn` such that `fn` can only ever be called once, no matter how many times\n * the returned function is invoked. The first value calculated is returned in\n * subsequent invocations.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (a... -> b) -> (a... -> b)\n * @param {Function} fn The function to wrap in a call-only-once wrapper.\n * @return {Function} The wrapped function.\n * @example\n *\n * const addOneOnce = R.once(x => x + 1);\n * addOneOnce(10); //=> 11\n * addOneOnce(addOneOnce(50)); //=> 11\n */\n\nvar once =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function once(fn) {\n var called = false;\n var result;\n return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(fn.length, function () {\n if (called) {\n return result;\n }\n\n called = true;\n result = fn.apply(this, arguments);\n return result;\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (once);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/once.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/or.js": +/*!*************************************!*\ + !*** ./node_modules/ramda/es/or.js ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns `true` if one or both of its arguments are `true`. Returns `false`\n * if both arguments are `false`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {Any} a\n * @param {Any} b\n * @return {Any} the first argument if truthy, otherwise the second argument.\n * @see R.either, R.xor\n * @example\n *\n * R.or(true, true); //=> true\n * R.or(true, false); //=> true\n * R.or(false, true); //=> true\n * R.or(false, false); //=> false\n */\n\nvar or =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function or(a, b) {\n return a || b;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (or);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/or.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/otherwise.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/otherwise.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_assertPromise_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_assertPromise.js */ \"./node_modules/ramda/es/internal/_assertPromise.js\");\n\n\n/**\n * Returns the result of applying the onFailure function to the value inside\n * a failed promise. This is useful for handling rejected promises\n * inside function compositions.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig (e -> b) -> (Promise e a) -> (Promise e b)\n * @sig (e -> (Promise f b)) -> (Promise e a) -> (Promise f b)\n * @param {Function} onFailure The function to apply. Can return a value or a promise of a value.\n * @param {Promise} p\n * @return {Promise} The result of calling `p.then(null, onFailure)`\n * @see R.then\n * @example\n *\n * var failedFetch = (id) => Promise.reject('bad ID');\n * var useDefault = () => ({ firstName: 'Bob', lastName: 'Loblaw' })\n *\n * //recoverFromFailure :: String -> Promise ({firstName, lastName})\n * var recoverFromFailure = R.pipe(\n * failedFetch,\n * R.otherwise(useDefault),\n * R.then(R.pick(['firstName', 'lastName'])),\n * );\n * recoverFromFailure(12345).then(console.log)\n */\n\nvar otherwise =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function otherwise(f, p) {\n Object(_internal_assertPromise_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])('otherwise', p);\n\n return p.then(null, f);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (otherwise);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/otherwise.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/over.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/over.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n // `Identity` is a functor that holds a single value, where `map` simply\n// transforms the held value with the provided function.\n\nvar Identity = function (x) {\n return {\n value: x,\n map: function (f) {\n return Identity(f(x));\n }\n };\n};\n/**\n * Returns the result of \"setting\" the portion of the given data structure\n * focused by the given lens to the result of applying the given function to\n * the focused value.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> (a -> a) -> s -> s\n * @param {Lens} lens\n * @param {*} v\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const headLens = R.lensIndex(0);\n *\n * R.over(headLens, R.toUpper, ['foo', 'bar', 'baz']); //=> ['FOO', 'bar', 'baz']\n */\n\n\nvar over =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function over(lens, f, x) {\n // The value returned by the getter function is first transformed with `f`,\n // then set as the value of an `Identity`. This is then mapped over with the\n // setter function of the lens.\n return lens(function (y) {\n return Identity(f(y));\n })(x).value;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (over);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/over.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pair.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/pair.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Takes two arguments, `fst` and `snd`, and returns `[fst, snd]`.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category List\n * @sig a -> b -> (a,b)\n * @param {*} fst\n * @param {*} snd\n * @return {Array}\n * @see R.objOf, R.of\n * @example\n *\n * R.pair('foo', 'bar'); //=> ['foo', 'bar']\n */\n\nvar pair =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function pair(fst, snd) {\n return [fst, snd];\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pair);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pair.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/partial.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/partial.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_createPartialApplicator_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_createPartialApplicator.js */ \"./node_modules/ramda/es/internal/_createPartialApplicator.js\");\n\n\n/**\n * Takes a function `f` and a list of arguments, and returns a function `g`.\n * When applied, `g` returns the result of applying `f` to the arguments\n * provided initially followed by the arguments provided to `g`.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a, b, c, ..., n) -> x) -> [a, b, c, ...] -> ((d, e, f, ..., n) -> x)\n * @param {Function} f\n * @param {Array} args\n * @return {Function}\n * @see R.partialRight, R.curry\n * @example\n *\n * const multiply2 = (a, b) => a * b;\n * const double = R.partial(multiply2, [2]);\n * double(2); //=> 4\n *\n * const greet = (salutation, title, firstName, lastName) =>\n * salutation + ', ' + title + ' ' + firstName + ' ' + lastName + '!';\n *\n * const sayHello = R.partial(greet, ['Hello']);\n * const sayHelloToMs = R.partial(sayHello, ['Ms.']);\n * sayHelloToMs('Jane', 'Jones'); //=> 'Hello, Ms. Jane Jones!'\n * @symb R.partial(f, [a, b])(c, d) = f(a, b, c, d)\n */\n\nvar partial =\n/*#__PURE__*/\nObject(_internal_createPartialApplicator_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (partial);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/partial.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/partialRight.js": +/*!***********************************************!*\ + !*** ./node_modules/ramda/es/partialRight.js ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_createPartialApplicator_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_createPartialApplicator.js */ \"./node_modules/ramda/es/internal/_createPartialApplicator.js\");\n/* harmony import */ var _flip_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./flip.js */ \"./node_modules/ramda/es/flip.js\");\n\n\n\n/**\n * Takes a function `f` and a list of arguments, and returns a function `g`.\n * When applied, `g` returns the result of applying `f` to the arguments\n * provided to `g` followed by the arguments provided initially.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a, b, c, ..., n) -> x) -> [d, e, f, ..., n] -> ((a, b, c, ...) -> x)\n * @param {Function} f\n * @param {Array} args\n * @return {Function}\n * @see R.partial\n * @example\n *\n * const greet = (salutation, title, firstName, lastName) =>\n * salutation + ', ' + title + ' ' + firstName + ' ' + lastName + '!';\n *\n * const greetMsJaneJones = R.partialRight(greet, ['Ms.', 'Jane', 'Jones']);\n *\n * greetMsJaneJones('Hello'); //=> 'Hello, Ms. Jane Jones!'\n * @symb R.partialRight(f, [a, b])(c, d) = f(c, d, a, b)\n */\n\nvar partialRight =\n/*#__PURE__*/\nObject(_internal_createPartialApplicator_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n/*#__PURE__*/\nObject(_flip_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (partialRight);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/partialRight.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/partition.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/partition.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./filter.js */ \"./node_modules/ramda/es/filter.js\");\n/* harmony import */ var _juxt_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./juxt.js */ \"./node_modules/ramda/es/juxt.js\");\n/* harmony import */ var _reject_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reject.js */ \"./node_modules/ramda/es/reject.js\");\n\n\n\n/**\n * Takes a predicate and a list or other `Filterable` object and returns the\n * pair of filterable objects of the same type of elements which do and do not\n * satisfy, the predicate, respectively. Filterable objects include plain objects or any object\n * that has a filter method such as `Array`.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> [f a, f a]\n * @param {Function} pred A predicate to determine which side the element belongs to.\n * @param {Array} filterable the list (or other filterable) to partition.\n * @return {Array} An array, containing first the subset of elements that satisfy the\n * predicate, and second the subset of elements that do not satisfy.\n * @see R.filter, R.reject\n * @example\n *\n * R.partition(R.includes('s'), ['sss', 'ttt', 'foo', 'bars']);\n * // => [ [ 'sss', 'bars' ], [ 'ttt', 'foo' ] ]\n *\n * R.partition(R.includes('s'), { a: 'sss', b: 'ttt', foo: 'bars' });\n * // => [ { a: 'sss', foo: 'bars' }, { b: 'ttt' } ]\n */\n\nvar partition =\n/*#__PURE__*/\nObject(_juxt_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([_filter_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], _reject_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (partition);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/partition.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/path.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/path.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _paths_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./paths.js */ \"./node_modules/ramda/es/paths.js\");\n\n\n/**\n * Retrieve the value at a given path.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {a} -> a | Undefined\n * @param {Array} path The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path`.\n * @see R.prop, R.nth\n * @example\n *\n * R.path(['a', 'b'], {a: {b: 2}}); //=> 2\n * R.path(['a', 'b'], {c: {b: 2}}); //=> undefined\n * R.path(['a', 'b', 0], {a: {b: [1, 2, 3]}}); //=> 1\n * R.path(['a', 'b', -2], {a: {b: [1, 2, 3]}}); //=> 2\n */\n\nvar path =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function path(pathAr, obj) {\n return Object(_paths_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([pathAr], obj)[0];\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (path);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/path.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pathEq.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/pathEq.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./path.js */ \"./node_modules/ramda/es/path.js\");\n\n\n\n/**\n * Determines whether a nested path on an object has a specific value, in\n * [`R.equals`](#equals) terms. Most likely used to filter a list.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Relation\n * @typedefn Idx = String | Int\n * @sig [Idx] -> a -> {a} -> Boolean\n * @param {Array} path The path of the nested property to use\n * @param {*} val The value to compare the nested property with\n * @param {Object} obj The object to check the nested property in\n * @return {Boolean} `true` if the value equals the nested object property,\n * `false` otherwise.\n * @example\n *\n * const user1 = { address: { zipCode: 90210 } };\n * const user2 = { address: { zipCode: 55555 } };\n * const user3 = { name: 'Bob' };\n * const users = [ user1, user2, user3 ];\n * const isFamous = R.pathEq(['address', 'zipCode'], 90210);\n * R.filter(isFamous, users); //=> [ user1 ]\n */\n\nvar pathEq =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function pathEq(_path, val, obj) {\n return Object(_equals_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_path_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_path, obj), val);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pathEq);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pathEq.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pathOr.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/pathOr.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _defaultTo_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultTo.js */ \"./node_modules/ramda/es/defaultTo.js\");\n/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./path.js */ \"./node_modules/ramda/es/path.js\");\n\n\n\n/**\n * If the given, non-null object has a value at the given path, returns the\n * value at that path. Otherwise returns the provided default value.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig a -> [Idx] -> {a} -> a\n * @param {*} d The default value.\n * @param {Array} p The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path` of the supplied object or the default value.\n * @example\n *\n * R.pathOr('N/A', ['a', 'b'], {a: {b: 2}}); //=> 2\n * R.pathOr('N/A', ['a', 'b'], {c: {b: 2}}); //=> \"N/A\"\n */\n\nvar pathOr =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function pathOr(d, p, obj) {\n return Object(_defaultTo_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(d, Object(_path_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(p, obj));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pathOr);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pathOr.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pathSatisfies.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/pathSatisfies.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./path.js */ \"./node_modules/ramda/es/path.js\");\n\n\n/**\n * Returns `true` if the specified object property at given path satisfies the\n * given predicate; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Logic\n * @typedefn Idx = String | Int\n * @sig (a -> Boolean) -> [Idx] -> {a} -> Boolean\n * @param {Function} pred\n * @param {Array} propPath\n * @param {*} obj\n * @return {Boolean}\n * @see R.propSatisfies, R.path\n * @example\n *\n * R.pathSatisfies(y => y > 0, ['x', 'y'], {x: {y: 2}}); //=> true\n * R.pathSatisfies(R.is(Object), [], {x: {y: 2}}); //=> true\n */\n\nvar pathSatisfies =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function pathSatisfies(pred, propPath, obj) {\n return pred(Object(_path_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(propPath, obj));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pathSatisfies);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pathSatisfies.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/paths.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/paths.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isInteger.js */ \"./node_modules/ramda/es/internal/_isInteger.js\");\n/* harmony import */ var _nth_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nth.js */ \"./node_modules/ramda/es/nth.js\");\n\n\n\n/**\n * Retrieves the values at given paths of an object.\n *\n * @func\n * @memberOf R\n * @since v0.27.0\n * @category Object\n * @typedefn Idx = [String | Int]\n * @sig [Idx] -> {a} -> [a | Undefined]\n * @param {Array} pathsArray The array of paths to be fetched.\n * @param {Object} obj The object to retrieve the nested properties from.\n * @return {Array} A list consisting of values at paths specified by \"pathsArray\".\n * @see R.path\n * @example\n *\n * R.paths([['a', 'b'], ['p', 0, 'q']], {a: {b: 2}, p: [{q: 3}]}); //=> [2, 3]\n * R.paths([['a', 'b'], ['p', 'r']], {a: {b: 2}, p: [{q: 3}]}); //=> [2, undefined]\n */\n\nvar paths =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function paths(pathsArray, obj) {\n return pathsArray.map(function (paths) {\n var val = obj;\n var idx = 0;\n var p;\n\n while (idx < paths.length) {\n if (val == null) {\n return;\n }\n\n p = paths[idx];\n val = Object(_internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(p) ? Object(_nth_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(p, val) : val[p];\n idx += 1;\n }\n\n return val;\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (paths);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/paths.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pick.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/pick.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns a partial copy of an object containing only the keys specified. If\n * the key does not exist, the property is ignored.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> {k: v}\n * @param {Array} names an array of String property names to copy onto a new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties from `names` on it.\n * @see R.omit, R.props\n * @example\n *\n * R.pick(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}\n * R.pick(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1}\n */\n\nvar pick =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function pick(names, obj) {\n var result = {};\n var idx = 0;\n\n while (idx < names.length) {\n if (names[idx] in obj) {\n result[names[idx]] = obj[names[idx]];\n }\n\n idx += 1;\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pick);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pick.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pickAll.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/pickAll.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Similar to `pick` except that this one includes a `key: undefined` pair for\n * properties that don't exist.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> {k: v}\n * @param {Array} names an array of String property names to copy onto a new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties from `names` on it.\n * @see R.pick\n * @example\n *\n * R.pickAll(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}\n * R.pickAll(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, e: undefined, f: undefined}\n */\n\nvar pickAll =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function pickAll(names, obj) {\n var result = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n var name = names[idx];\n result[name] = obj[name];\n idx += 1;\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pickAll);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pickAll.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pickBy.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/pickBy.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns a partial copy of an object containing only the keys that satisfy\n * the supplied predicate.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @sig ((v, k) -> Boolean) -> {k: v} -> {k: v}\n * @param {Function} pred A predicate to determine whether or not a key\n * should be included on the output object.\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties that satisfy `pred`\n * on it.\n * @see R.pick, R.filter\n * @example\n *\n * const isUpperCase = (val, key) => key.toUpperCase() === key;\n * R.pickBy(isUpperCase, {a: 1, b: 2, A: 3, B: 4}); //=> {A: 3, B: 4}\n */\n\nvar pickBy =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function pickBy(test, obj) {\n var result = {};\n\n for (var prop in obj) {\n if (test(obj[prop], prop, obj)) {\n result[prop] = obj[prop];\n }\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pickBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pickBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pipe.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/pipe.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return pipe; });\n/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _internal_pipe_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_pipe.js */ \"./node_modules/ramda/es/internal/_pipe.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n/* harmony import */ var _tail_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./tail.js */ \"./node_modules/ramda/es/tail.js\");\n\n\n\n\n/**\n * Performs left-to-right function composition. The first argument may have\n * any arity; the remaining arguments must be unary.\n *\n * In some libraries this function is named `sequence`.\n *\n * **Note:** The result of pipe is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)) -> ((a, b, ..., n) -> z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.compose\n * @example\n *\n * const f = R.pipe(Math.pow, R.negate, R.inc);\n *\n * f(3, 4); // -(3^4) + 1\n * @symb R.pipe(f, g, h)(a, b) = h(g(f(a, b)))\n */\n\nfunction pipe() {\n if (arguments.length === 0) {\n throw new Error('pipe requires at least one argument');\n }\n\n return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arguments[0].length, Object(_reduce_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_internal_pipe_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], arguments[0], Object(_tail_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(arguments)));\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pipe.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pipeK.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/pipeK.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return pipeK; });\n/* harmony import */ var _composeK_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./composeK.js */ \"./node_modules/ramda/es/composeK.js\");\n/* harmony import */ var _reverse_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reverse.js */ \"./node_modules/ramda/es/reverse.js\");\n\n\n/**\n * Returns the left-to-right Kleisli composition of the provided functions,\n * each of which must return a value of a type supported by [`chain`](#chain).\n *\n * `R.pipeK(f, g, h)` is equivalent to `R.pipe(f, R.chain(g), R.chain(h))`.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Function\n * @sig Chain m => ((a -> m b), (b -> m c), ..., (y -> m z)) -> (a -> m z)\n * @param {...Function}\n * @return {Function}\n * @see R.composeK\n * @deprecated since v0.26.0\n * @example\n *\n * // parseJson :: String -> Maybe *\n * // get :: String -> Object -> Maybe *\n *\n * // getStateCode :: Maybe String -> Maybe String\n * const getStateCode = R.pipeK(\n * parseJson,\n * get('user'),\n * get('address'),\n * get('state'),\n * R.compose(Maybe.of, R.toUpper)\n * );\n *\n * getStateCode('{\"user\":{\"address\":{\"state\":\"ny\"}}}');\n * //=> Just('NY')\n * getStateCode('[Invalid JSON]');\n * //=> Nothing()\n * @symb R.pipeK(f, g, h)(a) = R.chain(h, R.chain(g, f(a)))\n */\n\nfunction pipeK() {\n if (arguments.length === 0) {\n throw new Error('pipeK requires at least one argument');\n }\n\n return _composeK_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].apply(this, Object(_reverse_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(arguments));\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pipeK.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pipeP.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/pipeP.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return pipeP; });\n/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _internal_pipeP_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_pipeP.js */ \"./node_modules/ramda/es/internal/_pipeP.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n/* harmony import */ var _tail_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./tail.js */ \"./node_modules/ramda/es/tail.js\");\n\n\n\n\n/**\n * Performs left-to-right composition of one or more Promise-returning\n * functions. The first argument may have any arity; the remaining arguments\n * must be unary.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a -> Promise b), (b -> Promise c), ..., (y -> Promise z)) -> (a -> Promise z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.composeP\n * @deprecated since v0.26.0\n * @example\n *\n * // followersForUser :: String -> Promise [User]\n * const followersForUser = R.pipeP(db.getUserById, db.getFollowers);\n */\n\nfunction pipeP() {\n if (arguments.length === 0) {\n throw new Error('pipeP requires at least one argument');\n }\n\n return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arguments[0].length, Object(_reduce_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_internal_pipeP_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], arguments[0], Object(_tail_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(arguments)));\n}\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pipeP.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pipeWith.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/pipeWith.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _head_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./head.js */ \"./node_modules/ramda/es/head.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _tail_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./tail.js */ \"./node_modules/ramda/es/tail.js\");\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./identity.js */ \"./node_modules/ramda/es/identity.js\");\n\n\n\n\n\n\n/**\n * Performs left-to-right function composition using transforming function. The first argument may have\n * any arity; the remaining arguments must be unary.\n *\n * **Note:** The result of pipeWith is not automatically curried. Transforming function is not used on the\n * first argument.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig ((* -> *), [((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)]) -> ((a, b, ..., n) -> z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.composeWith, R.pipe\n * @example\n *\n * const pipeWhileNotNil = R.pipeWith((f, res) => R.isNil(res) ? res : f(res));\n * const f = pipeWhileNotNil([Math.pow, R.negate, R.inc])\n *\n * f(3, 4); // -(3^4) + 1\n * @symb R.pipeWith(f)([g, h, i])(...args) = f(i, f(h, g(...args)))\n */\n\nvar pipeWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function pipeWith(xf, list) {\n if (list.length <= 0) {\n return _identity_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"];\n }\n\n var headList = Object(_head_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(list);\n var tailList = Object(_tail_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(list);\n return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(headList.length, function () {\n return Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(function (result, f) {\n return xf.call(this, f, result);\n }, headList.apply(this, arguments), tailList);\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pipeWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pipeWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/pluck.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/pluck.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n/* harmony import */ var _prop_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./prop.js */ \"./node_modules/ramda/es/prop.js\");\n\n\n\n/**\n * Returns a new list by plucking the same named property off all objects in\n * the list supplied.\n *\n * `pluck` will work on\n * any [functor](https://github.com/fantasyland/fantasy-land#functor) in\n * addition to arrays, as it is equivalent to `R.map(R.prop(k), f)`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => k -> f {k: v} -> f v\n * @param {Number|String} key The key name to pluck off of each object.\n * @param {Array} f The array or functor to consider.\n * @return {Array} The list of values for the given key.\n * @see R.props\n * @example\n *\n * var getAges = R.pluck('age');\n * getAges([{name: 'fred', age: 29}, {name: 'wilma', age: 27}]); //=> [29, 27]\n *\n * R.pluck(0, [[1, 2], [3, 4]]); //=> [1, 3]\n * R.pluck('val', {a: {val: 3}, b: {val: 5}}); //=> {a: 3, b: 5}\n * @symb R.pluck('x', [{x: 1, y: 2}, {x: 3, y: 4}, {x: 5, y: 6}]) = [1, 3, 5]\n * @symb R.pluck(0, [[1, 2], [3, 4], [5, 6]]) = [1, 3, 5]\n */\n\nvar pluck =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function pluck(p, list) {\n return Object(_map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_prop_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(p), list);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (pluck);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/pluck.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/prepend.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/prepend.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Returns a new list with the given element at the front, followed by the\n * contents of the list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} el The item to add to the head of the output list.\n * @param {Array} list The array to add to the tail of the output list.\n * @return {Array} A new array.\n * @see R.append\n * @example\n *\n * R.prepend('fee', ['fi', 'fo', 'fum']); //=> ['fee', 'fi', 'fo', 'fum']\n */\n\nvar prepend =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function prepend(el, list) {\n return Object(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])([el], list);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (prepend);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/prepend.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/product.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/product.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _multiply_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./multiply.js */ \"./node_modules/ramda/es/multiply.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n\n\n/**\n * Multiplies together all the elements of a list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list An array of numbers\n * @return {Number} The product of all the numbers in the list.\n * @see R.reduce\n * @example\n *\n * R.product([2,4,6,8,100,1]); //=> 38400\n */\n\nvar product =\n/*#__PURE__*/\nObject(_reduce_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_multiply_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], 1);\n/* harmony default export */ __webpack_exports__[\"default\"] = (product);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/product.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/project.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/project.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_map_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_map.js */ \"./node_modules/ramda/es/internal/_map.js\");\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./identity.js */ \"./node_modules/ramda/es/identity.js\");\n/* harmony import */ var _pickAll_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pickAll.js */ \"./node_modules/ramda/es/pickAll.js\");\n/* harmony import */ var _useWith_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./useWith.js */ \"./node_modules/ramda/es/useWith.js\");\n\n\n\n\n/**\n * Reasonable analog to SQL `select` statement.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @category Relation\n * @sig [k] -> [{k: v}] -> [{k: v}]\n * @param {Array} props The property names to project\n * @param {Array} objs The objects to query\n * @return {Array} An array of objects with just the `props` properties.\n * @example\n *\n * const abby = {name: 'Abby', age: 7, hair: 'blond', grade: 2};\n * const fred = {name: 'Fred', age: 12, hair: 'brown', grade: 7};\n * const kids = [abby, fred];\n * R.project(['name', 'grade'], kids); //=> [{name: 'Abby', grade: 2}, {name: 'Fred', grade: 7}]\n */\n\nvar project =\n/*#__PURE__*/\nObject(_useWith_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_internal_map_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], [_pickAll_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], _identity_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]]); // passing `identity` gives correct arity\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (project);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/project.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/prop.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/prop.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./path.js */ \"./node_modules/ramda/es/path.js\");\n\n\n/**\n * Returns a function that when supplied an object returns the indicated\n * property of that object, if it exists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig Idx -> {s: a} -> a | Undefined\n * @param {String|Number} p The property name or array index\n * @param {Object} obj The object to query\n * @return {*} The value at `obj.p`.\n * @see R.path, R.nth\n * @example\n *\n * R.prop('x', {x: 100}); //=> 100\n * R.prop('x', {}); //=> undefined\n * R.prop(0, [100]); //=> 100\n * R.compose(R.inc, R.prop('x'))({ x: 3 }) //=> 4\n */\n\nvar prop =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function prop(p, obj) {\n return Object(_path_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([p], obj);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (prop);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/prop.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/propEq.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/propEq.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n\n\n/**\n * Returns `true` if the specified object property is equal, in\n * [`R.equals`](#equals) terms, to the given value; `false` otherwise.\n * You can test multiple properties with [`R.whereEq`](#whereEq).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig String -> a -> Object -> Boolean\n * @param {String} name\n * @param {*} val\n * @param {*} obj\n * @return {Boolean}\n * @see R.whereEq, R.propSatisfies, R.equals\n * @example\n *\n * const abby = {name: 'Abby', age: 7, hair: 'blond'};\n * const fred = {name: 'Fred', age: 12, hair: 'brown'};\n * const rusty = {name: 'Rusty', age: 10, hair: 'brown'};\n * const alois = {name: 'Alois', age: 15, disposition: 'surly'};\n * const kids = [abby, fred, rusty, alois];\n * const hasBrownHair = R.propEq('hair', 'brown');\n * R.filter(hasBrownHair, kids); //=> [fred, rusty]\n */\n\nvar propEq =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function propEq(name, val, obj) {\n return Object(_equals_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(val, obj[name]);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (propEq);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/propEq.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/propIs.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/propIs.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _is_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./is.js */ \"./node_modules/ramda/es/is.js\");\n\n\n/**\n * Returns `true` if the specified object property is of the given type;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Type\n * @sig Type -> String -> Object -> Boolean\n * @param {Function} type\n * @param {String} name\n * @param {*} obj\n * @return {Boolean}\n * @see R.is, R.propSatisfies\n * @example\n *\n * R.propIs(Number, 'x', {x: 1, y: 2}); //=> true\n * R.propIs(Number, 'x', {x: 'foo'}); //=> false\n * R.propIs(Number, 'x', {}); //=> false\n */\n\nvar propIs =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function propIs(type, name, obj) {\n return Object(_is_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(type, obj[name]);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (propIs);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/propIs.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/propOr.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/propOr.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _pathOr_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pathOr.js */ \"./node_modules/ramda/es/pathOr.js\");\n\n\n/**\n * If the given, non-null object has an own property with the specified name,\n * returns the value of that property. Otherwise returns the provided default\n * value.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Object\n * @sig a -> String -> Object -> a\n * @param {*} val The default value.\n * @param {String} p The name of the property to return.\n * @param {Object} obj The object to query.\n * @return {*} The value of given property of the supplied object or the default value.\n * @example\n *\n * const alice = {\n * name: 'ALICE',\n * age: 101\n * };\n * const favorite = R.prop('favoriteLibrary');\n * const favoriteWithDefault = R.propOr('Ramda', 'favoriteLibrary');\n *\n * favorite(alice); //=> undefined\n * favoriteWithDefault(alice); //=> 'Ramda'\n */\n\nvar propOr =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function propOr(val, p, obj) {\n return Object(_pathOr_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(val, [p], obj);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (propOr);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/propOr.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/propSatisfies.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/propSatisfies.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Returns `true` if the specified object property satisfies the given\n * predicate; `false` otherwise. You can test multiple properties with\n * [`R.where`](#where).\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Logic\n * @sig (a -> Boolean) -> String -> {String: a} -> Boolean\n * @param {Function} pred\n * @param {String} name\n * @param {*} obj\n * @return {Boolean}\n * @see R.where, R.propEq, R.propIs\n * @example\n *\n * R.propSatisfies(x => x > 0, 'x', {x: 1, y: 2}); //=> true\n */\n\nvar propSatisfies =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function propSatisfies(pred, name, obj) {\n return pred(obj[name]);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (propSatisfies);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/propSatisfies.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/props.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/props.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./path.js */ \"./node_modules/ramda/es/path.js\");\n\n\n/**\n * Acts as multiple `prop`: array of keys in, array of values out. Preserves\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> [v]\n * @param {Array} ps The property names to fetch\n * @param {Object} obj The object to query\n * @return {Array} The corresponding values or partially applied function.\n * @example\n *\n * R.props(['x', 'y'], {x: 1, y: 2}); //=> [1, 2]\n * R.props(['c', 'a', 'b'], {b: 2, a: 1}); //=> [undefined, 1, 2]\n *\n * const fullName = R.compose(R.join(' '), R.props(['first', 'last']));\n * fullName({last: 'Bullet-Tooth', age: 33, first: 'Tony'}); //=> 'Tony Bullet-Tooth'\n */\n\nvar props =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function props(ps, obj) {\n return ps.map(function (p) {\n return Object(_path_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([p], obj);\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (props);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/props.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/range.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/range.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isNumber_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isNumber.js */ \"./node_modules/ramda/es/internal/_isNumber.js\");\n\n\n/**\n * Returns a list of numbers from `from` (inclusive) to `to` (exclusive).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> Number -> [Number]\n * @param {Number} from The first number in the list.\n * @param {Number} to One more than the last number in the list.\n * @return {Array} The list of numbers in the set `[a, b)`.\n * @example\n *\n * R.range(1, 5); //=> [1, 2, 3, 4]\n * R.range(50, 53); //=> [50, 51, 52]\n */\n\nvar range =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function range(from, to) {\n if (!(Object(_internal_isNumber_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(from) && Object(_internal_isNumber_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(to))) {\n throw new TypeError('Both arguments to range must be numbers');\n }\n\n var result = [];\n var n = from;\n\n while (n < to) {\n result.push(n);\n n += 1;\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (range);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/range.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/reduce.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/reduce.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n\n\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It may use\n * [`R.reduced`](#reduced) to shortcut the iteration.\n *\n * The arguments' order of [`reduceRight`](#reduceRight)'s iterator function\n * is *(value, acc)*.\n *\n * Note: `R.reduce` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduce` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Description\n *\n * Dispatches to the `reduce` method of the third argument, if present. When\n * doing so, it is up to the user to handle the [`R.reduced`](#reduced)\n * shortcuting, as this is not implemented by `reduce`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduced, R.addIndex, R.reduceRight\n * @example\n *\n * R.reduce(R.subtract, 0, [1, 2, 3, 4]) // => ((((0 - 1) - 2) - 3) - 4) = -10\n * // - -10\n * // / \\ / \\\n * // - 4 -6 4\n * // / \\ / \\\n * // - 3 ==> -3 3\n * // / \\ / \\\n * // - 2 -1 2\n * // / \\ / \\\n * // 0 1 0 1\n *\n * @symb R.reduce(f, a, [b, c, d]) = f(f(f(a, b), c), d)\n */\n\nvar reduce =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (reduce);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/reduce.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/reduceBy.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/reduceBy.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_clone_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_clone.js */ \"./node_modules/ramda/es/internal/_clone.js\");\n/* harmony import */ var _internal_curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curryN.js */ \"./node_modules/ramda/es/internal/_curryN.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _internal_xreduceBy_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./internal/_xreduceBy.js */ \"./node_modules/ramda/es/internal/_xreduceBy.js\");\n\n\n\n\n\n\n/**\n * Groups the elements of the list according to the result of calling\n * the String-returning function `keyFn` on each element and reduces the elements\n * of each group to a single value via the reducer function `valueFn`.\n *\n * This function is basically a more general [`groupBy`](#groupBy) function.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category List\n * @sig ((a, b) -> a) -> a -> (b -> String) -> [b] -> {String: a}\n * @param {Function} valueFn The function that reduces the elements of each group to a single\n * value. Receives two values, accumulator for a particular group and the current element.\n * @param {*} acc The (initial) accumulator value for each group.\n * @param {Function} keyFn The function that maps the list's element into a key.\n * @param {Array} list The array to group.\n * @return {Object} An object with the output of `keyFn` for keys, mapped to the output of\n * `valueFn` for elements which produced that key when passed to `keyFn`.\n * @see R.groupBy, R.reduce\n * @example\n *\n * const groupNames = (acc, {name}) => acc.concat(name)\n * const toGrade = ({score}) =>\n * score < 65 ? 'F' :\n * score < 70 ? 'D' :\n * score < 80 ? 'C' :\n * score < 90 ? 'B' : 'A'\n *\n * var students = [\n * {name: 'Abby', score: 83},\n * {name: 'Bart', score: 62},\n * {name: 'Curt', score: 88},\n * {name: 'Dora', score: 92},\n * ]\n *\n * reduceBy(groupNames, [], toGrade, students)\n * //=> {\"A\": [\"Dora\"], \"B\": [\"Abby\", \"Curt\"], \"F\": [\"Bart\"]}\n */\n\nvar reduceBy =\n/*#__PURE__*/\nObject(_internal_curryN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(4, [],\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])([], _internal_xreduceBy_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"], function reduceBy(valueFn, valueAcc, keyFn, list) {\n return Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(function (acc, elt) {\n var key = keyFn(elt);\n acc[key] = valueFn(Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(key, acc) ? acc[key] : Object(_internal_clone_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(valueAcc, [], [], false), elt);\n return acc;\n }, {}, list);\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (reduceBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/reduceBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/reduceRight.js": +/*!**********************************************!*\ + !*** ./node_modules/ramda/es/reduceRight.js ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * Similar to [`reduce`](#reduce), except moves through the input list from the\n * right to the left.\n *\n * The iterator function receives two values: *(value, acc)*, while the arguments'\n * order of `reduce`'s iterator function is *(acc, value)*.\n *\n * Note: `R.reduceRight` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduceRight` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduceRight#Description\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> b) -> b -> [a] -> b\n * @param {Function} fn The iterator function. Receives two values, the current element from the array\n * and the accumulator.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.addIndex\n * @example\n *\n * R.reduceRight(R.subtract, 0, [1, 2, 3, 4]) // => (1 - (2 - (3 - (4 - 0)))) = -2\n * // - -2\n * // / \\ / \\\n * // 1 - 1 3\n * // / \\ / \\\n * // 2 - ==> 2 -1\n * // / \\ / \\\n * // 3 - 3 4\n * // / \\ / \\\n * // 4 0 4 0\n *\n * @symb R.reduceRight(f, a, [b, c, d]) = f(b, f(c, f(d, a)))\n */\n\nvar reduceRight =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function reduceRight(fn, acc, list) {\n var idx = list.length - 1;\n\n while (idx >= 0) {\n acc = fn(list[idx], acc);\n idx -= 1;\n }\n\n return acc;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (reduceRight);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/reduceRight.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/reduceWhile.js": +/*!**********************************************!*\ + !*** ./node_modules/ramda/es/reduceWhile.js ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curryN_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curryN.js */ \"./node_modules/ramda/es/internal/_curryN.js\");\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _internal_reduced_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_reduced.js */ \"./node_modules/ramda/es/internal/_reduced.js\");\n\n\n\n/**\n * Like [`reduce`](#reduce), `reduceWhile` returns a single item by iterating\n * through the list, successively calling the iterator function. `reduceWhile`\n * also takes a predicate that is evaluated before each step. If the predicate\n * returns `false`, it \"short-circuits\" the iteration and returns the current\n * value of the accumulator.\n *\n * @func\n * @memberOf R\n * @since v0.22.0\n * @category List\n * @sig ((a, b) -> Boolean) -> ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} pred The predicate. It is passed the accumulator and the\n * current element.\n * @param {Function} fn The iterator function. Receives two values, the\n * accumulator and the current element.\n * @param {*} a The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.reduced\n * @example\n *\n * const isOdd = (acc, x) => x % 2 === 1;\n * const xs = [1, 3, 5, 60, 777, 800];\n * R.reduceWhile(isOdd, R.add, 0, xs); //=> 9\n *\n * const ys = [2, 4, 6]\n * R.reduceWhile(isOdd, R.add, 111, ys); //=> 111\n */\n\nvar reduceWhile =\n/*#__PURE__*/\nObject(_internal_curryN_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(4, [], function _reduceWhile(pred, fn, a, list) {\n return Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (acc, x) {\n return pred(acc, x) ? fn(acc, x) : Object(_internal_reduced_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(acc);\n }, a, list);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (reduceWhile);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/reduceWhile.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/reduced.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/reduced.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_reduced_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_reduced.js */ \"./node_modules/ramda/es/internal/_reduced.js\");\n\n\n/**\n * Returns a value wrapped to indicate that it is the final value of the reduce\n * and transduce functions. The returned value should be considered a black\n * box: the internal structure is not guaranteed to be stable.\n *\n * Note: this optimization is only available to the below functions:\n * - [`reduce`](#reduce)\n * - [`reduceWhile`](#reduceWhile)\n * - [`transduce`](#transduce)\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category List\n * @sig a -> *\n * @param {*} x The final value of the reduce.\n * @return {*} The wrapped value.\n * @see R.reduce, R.reduceWhile, R.transduce\n * @example\n *\n * R.reduce(\n * (acc, item) => item > 3 ? R.reduced(acc) : acc.concat(item),\n * [],\n * [1, 2, 3, 4, 5]) // [1, 2, 3]\n */\n\nvar reduced =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_internal_reduced_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (reduced);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/reduced.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/reject.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/reject.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_complement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_complement.js */ \"./node_modules/ramda/es/internal/_complement.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./filter.js */ \"./node_modules/ramda/es/filter.js\");\n\n\n\n/**\n * The complement of [`filter`](#filter).\n *\n * Acts as a transducer if a transformer is given in list position. Filterable\n * objects include plain objects or any object that has a filter method such\n * as `Array`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array}\n * @see R.filter, R.transduce, R.addIndex\n * @example\n *\n * const isOdd = (n) => n % 2 === 1;\n *\n * R.reject(isOdd, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.reject(isOdd, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\n\nvar reject =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function reject(pred, filterable) {\n return Object(_filter_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Object(_internal_complement_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(pred), filterable);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (reject);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/reject.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/remove.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/remove.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Removes the sub-list of `list` starting at index `start` and containing\n * `count` elements. _Note that this is not destructive_: it returns a copy of\n * the list with the changes.\n * No lists have been harmed in the application of this function.\n *\n * @func\n * @memberOf R\n * @since v0.2.2\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @param {Number} start The position to start removing elements\n * @param {Number} count The number of elements to remove\n * @param {Array} list The list to remove from\n * @return {Array} A new Array with `count` elements from `start` removed.\n * @see R.without\n * @example\n *\n * R.remove(2, 3, [1,2,3,4,5,6,7,8]); //=> [1,2,6,7,8]\n */\n\nvar remove =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function remove(start, count, list) {\n var result = Array.prototype.slice.call(list, 0);\n result.splice(start, count);\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (remove);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/remove.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/repeat.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/repeat.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _always_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./always.js */ \"./node_modules/ramda/es/always.js\");\n/* harmony import */ var _times_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./times.js */ \"./node_modules/ramda/es/times.js\");\n\n\n\n/**\n * Returns a fixed list of size `n` containing a specified identical value.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig a -> n -> [a]\n * @param {*} value The value to repeat.\n * @param {Number} n The desired size of the output list.\n * @return {Array} A new array containing `n` `value`s.\n * @see R.times\n * @example\n *\n * R.repeat('hi', 5); //=> ['hi', 'hi', 'hi', 'hi', 'hi']\n *\n * const obj = {};\n * const repeatedObjs = R.repeat(obj, 5); //=> [{}, {}, {}, {}, {}]\n * repeatedObjs[0] === repeatedObjs[1]; //=> true\n * @symb R.repeat(a, 0) = []\n * @symb R.repeat(a, 1) = [a]\n * @symb R.repeat(a, 2) = [a, a]\n */\n\nvar repeat =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function repeat(value, n) {\n return Object(_times_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Object(_always_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value), n);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (repeat);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/repeat.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/replace.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/replace.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Replace a substring or regex match in a string with a replacement.\n *\n * The first two parameters correspond to the parameters of the\n * `String.prototype.replace()` function, so the second parameter can also be a\n * function.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category String\n * @sig RegExp|String -> String -> String -> String\n * @param {RegExp|String} pattern A regular expression or a substring to match.\n * @param {String} replacement The string to replace the matches with.\n * @param {String} str The String to do the search and replacement in.\n * @return {String} The result.\n * @example\n *\n * R.replace('foo', 'bar', 'foo foo foo'); //=> 'bar foo foo'\n * R.replace(/foo/, 'bar', 'foo foo foo'); //=> 'bar foo foo'\n *\n * // Use the \"g\" (global) flag to replace all occurrences:\n * R.replace(/foo/g, 'bar', 'foo foo foo'); //=> 'bar bar bar'\n */\n\nvar replace =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function replace(regex, replacement, str) {\n return str.replace(regex, replacement);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (replace);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/replace.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/reverse.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/reverse.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_isString_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isString.js */ \"./node_modules/ramda/es/internal/_isString.js\");\n\n\n/**\n * Returns a new list or string with the elements or characters in reverse\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {Array|String} list\n * @return {Array|String}\n * @example\n *\n * R.reverse([1, 2, 3]); //=> [3, 2, 1]\n * R.reverse([1, 2]); //=> [2, 1]\n * R.reverse([1]); //=> [1]\n * R.reverse([]); //=> []\n *\n * R.reverse('abc'); //=> 'cba'\n * R.reverse('ab'); //=> 'ba'\n * R.reverse('a'); //=> 'a'\n * R.reverse(''); //=> ''\n */\n\nvar reverse =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function reverse(list) {\n return Object(_internal_isString_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(list) ? list.split('').reverse().join('') : Array.prototype.slice.call(list, 0).reverse();\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (reverse);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/reverse.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/scan.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/scan.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Scan is similar to [`reduce`](#reduce), but returns a list of successively\n * reduced values from the left\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> [a]\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {Array} A list of all intermediately reduced values.\n * @see R.reduce, R.mapAccum\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const factorials = R.scan(R.multiply, 1, numbers); //=> [1, 1, 2, 6, 24]\n * @symb R.scan(f, a, [b, c]) = [a, f(a, b), f(f(a, b), c)]\n */\n\nvar scan =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function scan(fn, acc, list) {\n var idx = 0;\n var len = list.length;\n var result = [acc];\n\n while (idx < len) {\n acc = fn(acc, list[idx]);\n result[idx + 1] = acc;\n idx += 1;\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (scan);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/scan.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/sequence.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/sequence.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _ap_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ap.js */ \"./node_modules/ramda/es/ap.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n/* harmony import */ var _prepend_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./prepend.js */ \"./node_modules/ramda/es/prepend.js\");\n/* harmony import */ var _reduceRight_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./reduceRight.js */ \"./node_modules/ramda/es/reduceRight.js\");\n\n\n\n\n\n/**\n * Transforms a [Traversable](https://github.com/fantasyland/fantasy-land#traversable)\n * of [Applicative](https://github.com/fantasyland/fantasy-land#applicative) into an\n * Applicative of Traversable.\n *\n * Dispatches to the `sequence` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (Applicative f, Traversable t) => (a -> f a) -> t (f a) -> f (t a)\n * @param {Function} of\n * @param {*} traversable\n * @return {*}\n * @see R.traverse\n * @example\n *\n * R.sequence(Maybe.of, [Just(1), Just(2), Just(3)]); //=> Just([1, 2, 3])\n * R.sequence(Maybe.of, [Just(1), Just(2), Nothing()]); //=> Nothing()\n *\n * R.sequence(R.of, Just([1, 2, 3])); //=> [Just(1), Just(2), Just(3)]\n * R.sequence(R.of, Nothing()); //=> [Nothing()]\n */\n\nvar sequence =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function sequence(of, traversable) {\n return typeof traversable.sequence === 'function' ? traversable.sequence(of) : Object(_reduceRight_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(function (x, acc) {\n return Object(_ap_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_map_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_prepend_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], x), acc);\n }, of([]), traversable);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (sequence);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/sequence.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/set.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/set.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _always_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./always.js */ \"./node_modules/ramda/es/always.js\");\n/* harmony import */ var _over_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./over.js */ \"./node_modules/ramda/es/over.js\");\n\n\n\n/**\n * Returns the result of \"setting\" the portion of the given data structure\n * focused by the given lens to the given value.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> a -> s -> s\n * @param {Lens} lens\n * @param {*} v\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.set(xLens, 8, {x: 1, y: 2}); //=> {x: 8, y: 2}\n */\n\nvar set =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function set(lens, v, x) {\n return Object(_over_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(lens, Object(_always_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(v), x);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (set);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/set.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/slice.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/slice.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_checkForMethod.js */ \"./node_modules/ramda/es/internal/_checkForMethod.js\");\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n\n/**\n * Returns the elements of the given list or string (or object with a `slice`\n * method) from `fromIndex` (inclusive) to `toIndex` (exclusive).\n *\n * Dispatches to the `slice` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @sig Number -> Number -> String -> String\n * @param {Number} fromIndex The start index (inclusive).\n * @param {Number} toIndex The end index (exclusive).\n * @param {*} list\n * @return {*}\n * @example\n *\n * R.slice(1, 3, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(1, Infinity, ['a', 'b', 'c', 'd']); //=> ['b', 'c', 'd']\n * R.slice(0, -1, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c']\n * R.slice(-3, -1, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(0, 3, 'ramda'); //=> 'ram'\n */\n\nvar slice =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('slice', function slice(fromIndex, toIndex, list) {\n return Array.prototype.slice.call(list, fromIndex, toIndex);\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (slice);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/slice.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/sort.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/sort.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Returns a copy of the list, sorted according to the comparator function,\n * which should accept two values at a time and return a negative number if the\n * first value is smaller, a positive number if it's larger, and zero if they\n * are equal. Please note that this is a **copy** of the list. It does not\n * modify the original.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, a) -> Number) -> [a] -> [a]\n * @param {Function} comparator A sorting function :: a -> b -> Int\n * @param {Array} list The list to sort\n * @return {Array} a new array with its elements sorted by the comparator function.\n * @example\n *\n * const diff = function(a, b) { return a - b; };\n * R.sort(diff, [4,2,7,5]); //=> [2, 4, 5, 7]\n */\n\nvar sort =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function sort(comparator, list) {\n return Array.prototype.slice.call(list, 0).sort(comparator);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (sort);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/sort.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/sortBy.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/sortBy.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Sorts the list according to the supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord b => (a -> b) -> [a] -> [a]\n * @param {Function} fn\n * @param {Array} list The list to sort.\n * @return {Array} A new list sorted by the keys generated by `fn`.\n * @example\n *\n * const sortByFirstItem = R.sortBy(R.prop(0));\n * const pairs = [[-1, 1], [-2, 2], [-3, 3]];\n * sortByFirstItem(pairs); //=> [[-3, 3], [-2, 2], [-1, 1]]\n *\n * const sortByNameCaseInsensitive = R.sortBy(R.compose(R.toLower, R.prop('name')));\n * const alice = {\n * name: 'ALICE',\n * age: 101\n * };\n * const bob = {\n * name: 'Bob',\n * age: -10\n * };\n * const clara = {\n * name: 'clara',\n * age: 314.159\n * };\n * const people = [clara, bob, alice];\n * sortByNameCaseInsensitive(people); //=> [alice, bob, clara]\n */\n\nvar sortBy =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function sortBy(fn, list) {\n return Array.prototype.slice.call(list, 0).sort(function (a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (sortBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/sortBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/sortWith.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/sortWith.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Sorts a list according to a list of comparators.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Relation\n * @sig [(a, a) -> Number] -> [a] -> [a]\n * @param {Array} functions A list of comparator functions.\n * @param {Array} list The list to sort.\n * @return {Array} A new list sorted according to the comarator functions.\n * @example\n *\n * const alice = {\n * name: 'alice',\n * age: 40\n * };\n * const bob = {\n * name: 'bob',\n * age: 30\n * };\n * const clara = {\n * name: 'clara',\n * age: 40\n * };\n * const people = [clara, bob, alice];\n * const ageNameSort = R.sortWith([\n * R.descend(R.prop('age')),\n * R.ascend(R.prop('name'))\n * ]);\n * ageNameSort(people); //=> [alice, clara, bob]\n */\n\nvar sortWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function sortWith(fns, list) {\n return Array.prototype.slice.call(list, 0).sort(function (a, b) {\n var result = 0;\n var i = 0;\n\n while (result === 0 && i < fns.length) {\n result = fns[i](a, b);\n i += 1;\n }\n\n return result;\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (sortWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/sortWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/split.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/split.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _invoker_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./invoker.js */ \"./node_modules/ramda/es/invoker.js\");\n\n/**\n * Splits a string into an array of strings based on the given\n * separator.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category String\n * @sig (String | RegExp) -> String -> [String]\n * @param {String|RegExp} sep The pattern.\n * @param {String} str The string to separate into an array.\n * @return {Array} The array of strings from `str` separated by `sep`.\n * @see R.join\n * @example\n *\n * const pathComponents = R.split('/');\n * R.tail(pathComponents('/usr/local/bin/node')); //=> ['usr', 'local', 'bin', 'node']\n *\n * R.split('.', 'a.b.c.xyz.d'); //=> ['a', 'b', 'c', 'xyz', 'd']\n */\n\nvar split =\n/*#__PURE__*/\nObject(_invoker_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(1, 'split');\n/* harmony default export */ __webpack_exports__[\"default\"] = (split);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/split.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/splitAt.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/splitAt.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _length_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./length.js */ \"./node_modules/ramda/es/length.js\");\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n\n\n\n/**\n * Splits a given list or string at a given index.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig Number -> [a] -> [[a], [a]]\n * @sig Number -> String -> [String, String]\n * @param {Number} index The index where the array/string is split.\n * @param {Array|String} array The array/string to be split.\n * @return {Array}\n * @example\n *\n * R.splitAt(1, [1, 2, 3]); //=> [[1], [2, 3]]\n * R.splitAt(5, 'hello world'); //=> ['hello', ' world']\n * R.splitAt(-1, 'foobar'); //=> ['fooba', 'r']\n */\n\nvar splitAt =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function splitAt(index, array) {\n return [Object(_slice_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(0, index, array), Object(_slice_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(index, Object(_length_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(array), array)];\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (splitAt);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/splitAt.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/splitEvery.js": +/*!*********************************************!*\ + !*** ./node_modules/ramda/es/splitEvery.js ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n\n\n/**\n * Splits a collection into slices of the specified length.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [[a]]\n * @sig Number -> String -> [String]\n * @param {Number} n\n * @param {Array} list\n * @return {Array}\n * @example\n *\n * R.splitEvery(3, [1, 2, 3, 4, 5, 6, 7]); //=> [[1, 2, 3], [4, 5, 6], [7]]\n * R.splitEvery(3, 'foobarbaz'); //=> ['foo', 'bar', 'baz']\n */\n\nvar splitEvery =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function splitEvery(n, list) {\n if (n <= 0) {\n throw new Error('First argument to splitEvery must be a positive integer');\n }\n\n var result = [];\n var idx = 0;\n\n while (idx < list.length) {\n result.push(Object(_slice_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(idx, idx += n, list));\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (splitEvery);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/splitEvery.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/splitWhen.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/splitWhen.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Takes a list and a predicate and returns a pair of lists with the following properties:\n *\n * - the result of concatenating the two output lists is equivalent to the input list;\n * - none of the elements of the first output list satisfies the predicate; and\n * - if the second output list is non-empty, its first element satisfies the predicate.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [[a], [a]]\n * @param {Function} pred The predicate that determines where the array is split.\n * @param {Array} list The array to be split.\n * @return {Array}\n * @example\n *\n * R.splitWhen(R.equals(2), [1, 2, 3, 1, 2, 3]); //=> [[1], [2, 3, 1, 2, 3]]\n */\n\nvar splitWhen =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function splitWhen(pred, list) {\n var idx = 0;\n var len = list.length;\n var prefix = [];\n\n while (idx < len && !pred(list[idx])) {\n prefix.push(list[idx]);\n idx += 1;\n }\n\n return [prefix, Array.prototype.slice.call(list, idx)];\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (splitWhen);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/splitWhen.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/startsWith.js": +/*!*********************************************!*\ + !*** ./node_modules/ramda/es/startsWith.js ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n/* harmony import */ var _take_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./take.js */ \"./node_modules/ramda/es/take.js\");\n\n\n\n/**\n * Checks if a list starts with the provided sublist.\n *\n * Similarly, checks if a string starts with the provided substring.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category List\n * @sig [a] -> [a] -> Boolean\n * @sig String -> String -> Boolean\n * @param {*} prefix\n * @param {*} list\n * @return {Boolean}\n * @see R.endsWith\n * @example\n *\n * R.startsWith('a', 'abc') //=> true\n * R.startsWith('b', 'abc') //=> false\n * R.startsWith(['a'], ['a', 'b', 'c']) //=> true\n * R.startsWith(['b'], ['a', 'b', 'c']) //=> false\n */\n\nvar startsWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (prefix, list) {\n return Object(_equals_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_take_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(prefix.length, list), prefix);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (startsWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/startsWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/subtract.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/subtract.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Subtracts its second argument from its first argument.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a - b`.\n * @see R.add\n * @example\n *\n * R.subtract(10, 8); //=> 2\n *\n * const minus5 = R.subtract(R.__, 5);\n * minus5(17); //=> 12\n *\n * const complementaryAngle = R.subtract(90);\n * complementaryAngle(30); //=> 60\n * complementaryAngle(72); //=> 18\n */\n\nvar subtract =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function subtract(a, b) {\n return Number(a) - Number(b);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (subtract);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/subtract.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/sum.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/sum.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _add_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./add.js */ \"./node_modules/ramda/es/add.js\");\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/ramda/es/reduce.js\");\n\n\n/**\n * Adds together all the elements of a list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list An array of numbers\n * @return {Number} The sum of all the numbers in the list.\n * @see R.reduce\n * @example\n *\n * R.sum([2,4,6,8,100,1]); //=> 121\n */\n\nvar sum =\n/*#__PURE__*/\nObject(_reduce_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_add_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], 0);\n/* harmony default export */ __webpack_exports__[\"default\"] = (sum);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/sum.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/symmetricDifference.js": +/*!******************************************************!*\ + !*** ./node_modules/ramda/es/symmetricDifference.js ***! + \******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _concat_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./concat.js */ \"./node_modules/ramda/es/concat.js\");\n/* harmony import */ var _difference_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./difference.js */ \"./node_modules/ramda/es/difference.js\");\n\n\n\n/**\n * Finds the set (i.e. no duplicates) of all elements contained in the first or\n * second list, but not both.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` or `list2`, but not both.\n * @see R.symmetricDifferenceWith, R.difference, R.differenceWith\n * @example\n *\n * R.symmetricDifference([1,2,3,4], [7,6,5,4,3]); //=> [1,2,7,6,5]\n * R.symmetricDifference([7,6,5,4,3], [1,2,3,4]); //=> [7,6,5,1,2]\n */\n\nvar symmetricDifference =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function symmetricDifference(list1, list2) {\n return Object(_concat_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_difference_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(list1, list2), Object(_difference_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(list2, list1));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (symmetricDifference);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/symmetricDifference.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/symmetricDifferenceWith.js": +/*!**********************************************************!*\ + !*** ./node_modules/ramda/es/symmetricDifferenceWith.js ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _concat_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./concat.js */ \"./node_modules/ramda/es/concat.js\");\n/* harmony import */ var _differenceWith_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./differenceWith.js */ \"./node_modules/ramda/es/differenceWith.js\");\n\n\n\n/**\n * Finds the set (i.e. no duplicates) of all elements contained in the first or\n * second list, but not both. Duplication is determined according to the value\n * returned by applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [a] -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` or `list2`, but not both.\n * @see R.symmetricDifference, R.difference, R.differenceWith\n * @example\n *\n * const eqA = R.eqBy(R.prop('a'));\n * const l1 = [{a: 1}, {a: 2}, {a: 3}, {a: 4}];\n * const l2 = [{a: 3}, {a: 4}, {a: 5}, {a: 6}];\n * R.symmetricDifferenceWith(eqA, l1, l2); //=> [{a: 1}, {a: 2}, {a: 5}, {a: 6}]\n */\n\nvar symmetricDifferenceWith =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function symmetricDifferenceWith(pred, list1, list2) {\n return Object(_concat_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_differenceWith_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(pred, list1, list2), Object(_differenceWith_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(pred, list2, list1));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (symmetricDifferenceWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/symmetricDifferenceWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/tail.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/tail.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_checkForMethod.js */ \"./node_modules/ramda/es/internal/_checkForMethod.js\");\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n\n\n\n/**\n * Returns all but the first element of the given list or string (or object\n * with a `tail` method).\n *\n * Dispatches to the `slice` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.head, R.init, R.last\n * @example\n *\n * R.tail([1, 2, 3]); //=> [2, 3]\n * R.tail([1, 2]); //=> [2]\n * R.tail([1]); //=> []\n * R.tail([]); //=> []\n *\n * R.tail('abc'); //=> 'bc'\n * R.tail('ab'); //=> 'b'\n * R.tail('a'); //=> ''\n * R.tail(''); //=> ''\n */\n\nvar tail =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('tail',\n/*#__PURE__*/\nObject(_slice_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(1, Infinity)));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (tail);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/tail.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/take.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/take.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xtake_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xtake.js */ \"./node_modules/ramda/es/internal/_xtake.js\");\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n\n\n\n\n/**\n * Returns the first `n` elements of the given list, string, or\n * transducer/transformer (or object with a `take` method).\n *\n * Dispatches to the `take` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n\n * @param {*} list\n * @return {*}\n * @see R.drop\n * @example\n *\n * R.take(1, ['foo', 'bar', 'baz']); //=> ['foo']\n * R.take(2, ['foo', 'bar', 'baz']); //=> ['foo', 'bar']\n * R.take(3, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.take(4, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.take(3, 'ramda'); //=> 'ram'\n *\n * const personnel = [\n * 'Dave Brubeck',\n * 'Paul Desmond',\n * 'Eugene Wright',\n * 'Joe Morello',\n * 'Gerry Mulligan',\n * 'Bob Bates',\n * 'Joe Dodge',\n * 'Ron Crotty'\n * ];\n *\n * const takeFive = R.take(5);\n * takeFive(personnel);\n * //=> ['Dave Brubeck', 'Paul Desmond', 'Eugene Wright', 'Joe Morello', 'Gerry Mulligan']\n * @symb R.take(-1, [a, b]) = [a, b]\n * @symb R.take(0, [a, b]) = []\n * @symb R.take(1, [a, b]) = [a]\n * @symb R.take(2, [a, b]) = [a, b]\n */\n\nvar take =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['take'], _internal_xtake_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function take(n, xs) {\n return Object(_slice_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(0, n < 0 ? Infinity : n, xs);\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (take);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/take.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/takeLast.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/takeLast.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _drop_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./drop.js */ \"./node_modules/ramda/es/drop.js\");\n\n\n/**\n * Returns a new list containing the last `n` elements of the given list.\n * If `n > list.length`, returns a list of `list.length` elements.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n The number of elements to return.\n * @param {Array} xs The collection to consider.\n * @return {Array}\n * @see R.dropLast\n * @example\n *\n * R.takeLast(1, ['foo', 'bar', 'baz']); //=> ['baz']\n * R.takeLast(2, ['foo', 'bar', 'baz']); //=> ['bar', 'baz']\n * R.takeLast(3, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.takeLast(4, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.takeLast(3, 'ramda'); //=> 'mda'\n */\n\nvar takeLast =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function takeLast(n, xs) {\n return Object(_drop_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(n >= 0 ? xs.length - n : 0, xs);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (takeLast);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/takeLast.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/takeLastWhile.js": +/*!************************************************!*\ + !*** ./node_modules/ramda/es/takeLastWhile.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n\n\n/**\n * Returns a new list containing the last `n` elements of a given list, passing\n * each value to the supplied predicate function, and terminating when the\n * predicate function returns `false`. Excludes the element that caused the\n * predicate function to fail. The predicate function is passed one argument:\n * *(value)*.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} fn The function called per iteration.\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array.\n * @see R.dropLastWhile, R.addIndex\n * @example\n *\n * const isNotOne = x => x !== 1;\n *\n * R.takeLastWhile(isNotOne, [1, 2, 3, 4]); //=> [2, 3, 4]\n *\n * R.takeLastWhile(x => x !== 'R' , 'Ramda'); //=> 'amda'\n */\n\nvar takeLastWhile =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function takeLastWhile(fn, xs) {\n var idx = xs.length - 1;\n\n while (idx >= 0 && fn(xs[idx])) {\n idx -= 1;\n }\n\n return Object(_slice_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(idx + 1, Infinity, xs);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (takeLastWhile);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/takeLastWhile.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/takeWhile.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/takeWhile.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xtakeWhile_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xtakeWhile.js */ \"./node_modules/ramda/es/internal/_xtakeWhile.js\");\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/ramda/es/slice.js\");\n\n\n\n\n/**\n * Returns a new list containing the first `n` elements of a given list,\n * passing each value to the supplied predicate function, and terminating when\n * the predicate function returns `false`. Excludes the element that caused the\n * predicate function to fail. The predicate function is passed one argument:\n * *(value)*.\n *\n * Dispatches to the `takeWhile` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} fn The function called per iteration.\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array.\n * @see R.dropWhile, R.transduce, R.addIndex\n * @example\n *\n * const isNotFour = x => x !== 4;\n *\n * R.takeWhile(isNotFour, [1, 2, 3, 4, 3, 2, 1]); //=> [1, 2, 3]\n *\n * R.takeWhile(x => x !== 'd' , 'Ramda'); //=> 'Ram'\n */\n\nvar takeWhile =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(['takeWhile'], _internal_xtakeWhile_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function takeWhile(fn, xs) {\n var idx = 0;\n var len = xs.length;\n\n while (idx < len && fn(xs[idx])) {\n idx += 1;\n }\n\n return Object(_slice_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(0, idx, xs);\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (takeWhile);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/takeWhile.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/tap.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/tap.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ \"./node_modules/ramda/es/internal/_dispatchable.js\");\n/* harmony import */ var _internal_xtap_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xtap.js */ \"./node_modules/ramda/es/internal/_xtap.js\");\n\n\n\n/**\n * Runs the given function with the supplied object, then returns the object.\n *\n * Acts as a transducer if a transformer is given as second parameter.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (a -> *) -> a -> a\n * @param {Function} fn The function to call with `x`. The return value of `fn` will be thrown away.\n * @param {*} x\n * @return {*} `x`.\n * @example\n *\n * const sayX = x => console.log('x is ' + x);\n * R.tap(sayX, 100); //=> 100\n * // logs 'x is 100'\n * @symb R.tap(f, a) = a\n */\n\nvar tap =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n/*#__PURE__*/\nObject(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([], _internal_xtap_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], function tap(fn, x) {\n fn(x);\n return x;\n}));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (tap);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/tap.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/test.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/test.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_cloneRegExp_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_cloneRegExp.js */ \"./node_modules/ramda/es/internal/_cloneRegExp.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_isRegExp_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isRegExp.js */ \"./node_modules/ramda/es/internal/_isRegExp.js\");\n/* harmony import */ var _toString_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./toString.js */ \"./node_modules/ramda/es/toString.js\");\n\n\n\n\n/**\n * Determines whether a given string matches a given regular expression.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category String\n * @sig RegExp -> String -> Boolean\n * @param {RegExp} pattern\n * @param {String} str\n * @return {Boolean}\n * @see R.match\n * @example\n *\n * R.test(/^x/, 'xyz'); //=> true\n * R.test(/^y/, 'xyz'); //=> false\n */\n\nvar test =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function test(pattern, str) {\n if (!Object(_internal_isRegExp_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(pattern)) {\n throw new TypeError('‘test’ requires a value of type RegExp as its first argument; received ' + Object(_toString_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(pattern));\n }\n\n return Object(_internal_cloneRegExp_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(pattern).test(str);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (test);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/test.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/thunkify.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/thunkify.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n\n/**\n * Creates a thunk out of a function. A thunk delays a calculation until\n * its result is needed, providing lazy evaluation of arguments.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig ((a, b, ..., j) -> k) -> (a, b, ..., j) -> (() -> k)\n * @param {Function} fn A function to wrap in a thunk\n * @return {Function} Expects arguments for `fn` and returns a new function\n * that, when called, applies those arguments to `fn`.\n * @see R.partial, R.partialRight\n * @example\n *\n * R.thunkify(R.identity)(42)(); //=> 42\n * R.thunkify((a, b) => a + b)(25, 17)(); //=> 42\n */\n\nvar thunkify =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function thunkify(fn) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(fn.length, function createThunk() {\n var fnArgs = arguments;\n return function invokeThunk() {\n return fn.apply(this, fnArgs);\n };\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (thunkify);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/thunkify.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/times.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/times.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Calls an input function `n` times, returning an array containing the results\n * of those function calls.\n *\n * `fn` is passed one argument: The current value of `n`, which begins at `0`\n * and is gradually incremented to `n - 1`.\n *\n * @func\n * @memberOf R\n * @since v0.2.3\n * @category List\n * @sig (Number -> a) -> Number -> [a]\n * @param {Function} fn The function to invoke. Passed one argument, the current value of `n`.\n * @param {Number} n A value between `0` and `n - 1`. Increments after each function call.\n * @return {Array} An array containing the return values of all calls to `fn`.\n * @see R.repeat\n * @example\n *\n * R.times(R.identity, 5); //=> [0, 1, 2, 3, 4]\n * @symb R.times(f, 0) = []\n * @symb R.times(f, 1) = [f(0)]\n * @symb R.times(f, 2) = [f(0), f(1)]\n */\n\nvar times =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function times(fn, n) {\n var len = Number(n);\n var idx = 0;\n var list;\n\n if (len < 0 || isNaN(len)) {\n throw new RangeError('n must be a non-negative number');\n }\n\n list = new Array(len);\n\n while (idx < len) {\n list[idx] = fn(idx);\n idx += 1;\n }\n\n return list;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (times);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/times.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/toLower.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/toLower.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _invoker_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./invoker.js */ \"./node_modules/ramda/es/invoker.js\");\n\n/**\n * The lower case version of a string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to lower case.\n * @return {String} The lower case version of `str`.\n * @see R.toUpper\n * @example\n *\n * R.toLower('XYZ'); //=> 'xyz'\n */\n\nvar toLower =\n/*#__PURE__*/\nObject(_invoker_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(0, 'toLowerCase');\n/* harmony default export */ __webpack_exports__[\"default\"] = (toLower);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/toLower.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/toPairs.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/toPairs.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n\n\n/**\n * Converts an object into an array of key, value arrays. Only the object's\n * own properties are used.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Object\n * @sig {String: *} -> [[String,*]]\n * @param {Object} obj The object to extract from\n * @return {Array} An array of key, value arrays from the object's own properties.\n * @see R.fromPairs\n * @example\n *\n * R.toPairs({a: 1, b: 2, c: 3}); //=> [['a', 1], ['b', 2], ['c', 3]]\n */\n\nvar toPairs =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function toPairs(obj) {\n var pairs = [];\n\n for (var prop in obj) {\n if (Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(prop, obj)) {\n pairs[pairs.length] = [prop, obj[prop]];\n }\n }\n\n return pairs;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (toPairs);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/toPairs.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/toPairsIn.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/toPairsIn.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Converts an object into an array of key, value arrays. The object's own\n * properties and prototype properties are used. Note that the order of the\n * output array is not guaranteed to be consistent across different JS\n * platforms.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Object\n * @sig {String: *} -> [[String,*]]\n * @param {Object} obj The object to extract from\n * @return {Array} An array of key, value arrays from the object's own\n * and prototype properties.\n * @example\n *\n * const F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * const f = new F();\n * R.toPairsIn(f); //=> [['x','X'], ['y','Y']]\n */\n\nvar toPairsIn =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function toPairsIn(obj) {\n var pairs = [];\n\n for (var prop in obj) {\n pairs[pairs.length] = [prop, obj[prop]];\n }\n\n return pairs;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (toPairsIn);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/toPairsIn.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/toString.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/toString.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _internal_toString_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_toString.js */ \"./node_modules/ramda/es/internal/_toString.js\");\n\n\n/**\n * Returns the string representation of the given value. `eval`'ing the output\n * should result in a value equivalent to the input value. Many of the built-in\n * `toString` methods do not satisfy this requirement.\n *\n * If the given value is an `[object Object]` with a `toString` method other\n * than `Object.prototype.toString`, this method is invoked with no arguments\n * to produce the return value. This means user-defined constructor functions\n * can provide a suitable `toString` method. For example:\n *\n * function Point(x, y) {\n * this.x = x;\n * this.y = y;\n * }\n *\n * Point.prototype.toString = function() {\n * return 'new Point(' + this.x + ', ' + this.y + ')';\n * };\n *\n * R.toString(new Point(1, 2)); //=> 'new Point(1, 2)'\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category String\n * @sig * -> String\n * @param {*} val\n * @return {String}\n * @example\n *\n * R.toString(42); //=> '42'\n * R.toString('abc'); //=> '\"abc\"'\n * R.toString([1, 2, 3]); //=> '[1, 2, 3]'\n * R.toString({foo: 1, bar: 2, baz: 3}); //=> '{\"bar\": 2, \"baz\": 3, \"foo\": 1}'\n * R.toString(new Date('2001-02-03T04:05:06Z')); //=> 'new Date(\"2001-02-03T04:05:06.000Z\")'\n */\n\nvar toString =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function toString(val) {\n return Object(_internal_toString_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(val, []);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (toString);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/toString.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/toUpper.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/toUpper.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _invoker_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./invoker.js */ \"./node_modules/ramda/es/invoker.js\");\n\n/**\n * The upper case version of a string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to upper case.\n * @return {String} The upper case version of `str`.\n * @see R.toLower\n * @example\n *\n * R.toUpper('abc'); //=> 'ABC'\n */\n\nvar toUpper =\n/*#__PURE__*/\nObject(_invoker_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(0, 'toUpperCase');\n/* harmony default export */ __webpack_exports__[\"default\"] = (toUpper);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/toUpper.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/transduce.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/transduce.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_reduce.js */ \"./node_modules/ramda/es/internal/_reduce.js\");\n/* harmony import */ var _internal_xwrap_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_xwrap.js */ \"./node_modules/ramda/es/internal/_xwrap.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n\n\n\n/**\n * Initializes a transducer using supplied iterator function. Returns a single\n * item by iterating through the list, successively calling the transformed\n * iterator function and passing it an accumulator value and the current value\n * from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It will be\n * wrapped as a transformer to initialize the transducer. A transformer can be\n * passed directly in place of an iterator function. In both cases, iteration\n * may be stopped early with the [`R.reduced`](#reduced) function.\n *\n * A transducer is a function that accepts a transformer and returns a\n * transformer and can be composed directly.\n *\n * A transformer is an an object that provides a 2-arity reducing iterator\n * function, step, 0-arity initial value function, init, and 1-arity result\n * extraction function, result. The step function is used as the iterator\n * function in reduce. The result function is used to convert the final\n * accumulator into the return type and in most cases is\n * [`R.identity`](#identity). The init function can be used to provide an\n * initial accumulator, but is ignored by transduce.\n *\n * The iteration is performed with [`R.reduce`](#reduce) after initializing the transducer.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig (c -> c) -> ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} xf The transducer function. Receives a transformer and returns a transformer.\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array. Wrapped as transformer, if necessary, and used to\n * initialize the transducer\n * @param {*} acc The initial accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.reduced, R.into\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const transducer = R.compose(R.map(R.add(1)), R.take(2));\n * R.transduce(transducer, R.flip(R.append), [], numbers); //=> [2, 3]\n *\n * const isOdd = (x) => x % 2 === 1;\n * const firstOddTransducer = R.compose(R.filter(isOdd), R.take(1));\n * R.transduce(firstOddTransducer, R.flip(R.append), [], R.range(0, 100)); //=> [1]\n */\n\nvar transduce =\n/*#__PURE__*/\nObject(_curryN_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(4, function transduce(xf, fn, acc, list) {\n return Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(xf(typeof fn === 'function' ? Object(_internal_xwrap_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(fn) : fn), acc, list);\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (transduce);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/transduce.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/transpose.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/transpose.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Transposes the rows and columns of a 2D list.\n * When passed a list of `n` lists of length `x`,\n * returns a list of `x` lists of length `n`.\n *\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig [[a]] -> [[a]]\n * @param {Array} list A 2D list\n * @return {Array} A 2D list\n * @example\n *\n * R.transpose([[1, 'a'], [2, 'b'], [3, 'c']]) //=> [[1, 2, 3], ['a', 'b', 'c']]\n * R.transpose([[1, 2, 3], ['a', 'b', 'c']]) //=> [[1, 'a'], [2, 'b'], [3, 'c']]\n *\n * // If some of the rows are shorter than the following rows, their elements are skipped:\n * R.transpose([[10, 11], [20], [], [30, 31, 32]]) //=> [[10, 20, 30], [11, 31], [32]]\n * @symb R.transpose([[a], [b], [c]]) = [a, b, c]\n * @symb R.transpose([[a, b], [c, d]]) = [[a, c], [b, d]]\n * @symb R.transpose([[a, b], [c]]) = [[a, c], [b]]\n */\n\nvar transpose =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function transpose(outerlist) {\n var i = 0;\n var result = [];\n\n while (i < outerlist.length) {\n var innerlist = outerlist[i];\n var j = 0;\n\n while (j < innerlist.length) {\n if (typeof result[j] === 'undefined') {\n result[j] = [];\n }\n\n result[j].push(innerlist[j]);\n j += 1;\n }\n\n i += 1;\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (transpose);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/transpose.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/traverse.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/traverse.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n/* harmony import */ var _sequence_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./sequence.js */ \"./node_modules/ramda/es/sequence.js\");\n\n\n\n/**\n * Maps an [Applicative](https://github.com/fantasyland/fantasy-land#applicative)-returning\n * function over a [Traversable](https://github.com/fantasyland/fantasy-land#traversable),\n * then uses [`sequence`](#sequence) to transform the resulting Traversable of Applicative\n * into an Applicative of Traversable.\n *\n * Dispatches to the `traverse` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (Applicative f, Traversable t) => (a -> f a) -> (a -> f b) -> t a -> f (t b)\n * @param {Function} of\n * @param {Function} f\n * @param {*} traversable\n * @return {*}\n * @see R.sequence\n * @example\n *\n * // Returns `Maybe.Nothing` if the given divisor is `0`\n * const safeDiv = n => d => d === 0 ? Maybe.Nothing() : Maybe.Just(n / d)\n *\n * R.traverse(Maybe.of, safeDiv(10), [2, 4, 5]); //=> Maybe.Just([5, 2.5, 2])\n * R.traverse(Maybe.of, safeDiv(10), [2, 0, 5]); //=> Maybe.Nothing\n */\n\nvar traverse =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function traverse(of, f, traversable) {\n return typeof traversable['fantasy-land/traverse'] === 'function' ? traversable['fantasy-land/traverse'](f, of) : Object(_sequence_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(of, Object(_map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(f, traversable));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (traverse);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/traverse.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/trim.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/trim.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' + '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' + '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar hasProtoTrim = typeof String.prototype.trim === 'function';\n/**\n * Removes (strips) whitespace from both ends of the string.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to trim.\n * @return {String} Trimmed version of `str`.\n * @example\n *\n * R.trim(' xyz '); //=> 'xyz'\n * R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']\n */\n\nvar trim = !hasProtoTrim ||\n/*#__PURE__*/\nws.trim() || !\n/*#__PURE__*/\nzeroWidth.trim() ?\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n}) :\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function trim(str) {\n return str.trim();\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (trim);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/trim.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/tryCatch.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/tryCatch.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ \"./node_modules/ramda/es/internal/_arity.js\");\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n\n/**\n * `tryCatch` takes two functions, a `tryer` and a `catcher`. The returned\n * function evaluates the `tryer`; if it does not throw, it simply returns the\n * result. If the `tryer` *does* throw, the returned function evaluates the\n * `catcher` function and returns its result. Note that for effective\n * composition with this function, both the `tryer` and `catcher` functions\n * must return the same type of results.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Function\n * @sig (...x -> a) -> ((e, ...x) -> a) -> (...x -> a)\n * @param {Function} tryer The function that may throw.\n * @param {Function} catcher The function that will be evaluated if `tryer` throws.\n * @return {Function} A new function that will catch exceptions and send then to the catcher.\n * @example\n *\n * R.tryCatch(R.prop('x'), R.F)({x: true}); //=> true\n * R.tryCatch(() => { throw 'foo'}, R.always('catched'))('bar') // => 'catched'\n * R.tryCatch(R.times(R.identity), R.always([]))('s') // => []\n * R.tryCatch(() => { throw 'this is not a valid value'}, (err, value)=>({error : err, value }))('bar') // => {'error': 'this is not a valid value', 'value': 'bar'}\n */\n\nvar tryCatch =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(function _tryCatch(tryer, catcher) {\n return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(tryer.length, function () {\n try {\n return tryer.apply(this, arguments);\n } catch (e) {\n return catcher.apply(this, Object(_internal_concat_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([e], arguments));\n }\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (tryCatch);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/tryCatch.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/type.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/type.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig (* -> {*}) -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n * R.type(() => {}); //=> \"Function\"\n * R.type(undefined); //=> \"Undefined\"\n */\n\nvar type =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (type);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/type.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/unapply.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/unapply.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Takes a function `fn`, which takes a single array argument, and returns a\n * function which:\n *\n * - takes any number of positional arguments;\n * - passes these arguments to `fn` as an array; and\n * - returns the result.\n *\n * In other words, `R.unapply` derives a variadic function from a function which\n * takes an array. `R.unapply` is the inverse of [`R.apply`](#apply).\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Function\n * @sig ([*...] -> a) -> (*... -> a)\n * @param {Function} fn\n * @return {Function}\n * @see R.apply\n * @example\n *\n * R.unapply(JSON.stringify)(1, 2, 3); //=> '[1,2,3]'\n * @symb R.unapply(f)(a, b) = f([a, b])\n */\n\nvar unapply =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function unapply(fn) {\n return function () {\n return fn(Array.prototype.slice.call(arguments, 0));\n };\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (unapply);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/unapply.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/unary.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/unary.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _nAry_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./nAry.js */ \"./node_modules/ramda/es/nAry.js\");\n\n\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly 1 parameter. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Function\n * @sig (* -> b) -> (a -> b)\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity 1.\n * @see R.binary, R.nAry\n * @example\n *\n * const takesTwoArgs = function(a, b) {\n * return [a, b];\n * };\n * takesTwoArgs.length; //=> 2\n * takesTwoArgs(1, 2); //=> [1, 2]\n *\n * const takesOneArg = R.unary(takesTwoArgs);\n * takesOneArg.length; //=> 1\n * // Only 1 argument is passed to the wrapped function\n * takesOneArg(1, 2); //=> [1, undefined]\n * @symb R.unary(f)(a, b, c) = f(a)\n */\n\nvar unary =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function unary(fn) {\n return Object(_nAry_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(1, fn);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (unary);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/unary.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/uncurryN.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/uncurryN.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n\n\n/**\n * Returns a function of arity `n` from a (manually) curried function.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Function\n * @sig Number -> (a -> b) -> (a -> c)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to uncurry.\n * @return {Function} A new function.\n * @see R.curry\n * @example\n *\n * const addFour = a => b => c => d => a + b + c + d;\n *\n * const uncurriedAddFour = R.uncurryN(4, addFour);\n * uncurriedAddFour(1, 2, 3, 4); //=> 10\n */\n\nvar uncurryN =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function uncurryN(depth, fn) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(depth, function () {\n var currentDepth = 1;\n var value = fn;\n var idx = 0;\n var endIdx;\n\n while (currentDepth <= depth && typeof value === 'function') {\n endIdx = currentDepth === depth ? arguments.length : idx + value.length;\n value = value.apply(this, Array.prototype.slice.call(arguments, idx, endIdx));\n currentDepth += 1;\n idx = endIdx;\n }\n\n return value;\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (uncurryN);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/uncurryN.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/unfold.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/unfold.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Builds a list from a seed value. Accepts an iterator function, which returns\n * either false to stop iteration or an array of length 2 containing the value\n * to add to the resulting list and the seed to be used in the next call to the\n * iterator function.\n *\n * The iterator function receives one argument: *(seed)*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig (a -> [b]) -> * -> [b]\n * @param {Function} fn The iterator function. receives one argument, `seed`, and returns\n * either false to quit iteration or an array of length two to proceed. The element\n * at index 0 of this array will be added to the resulting array, and the element\n * at index 1 will be passed to the next call to `fn`.\n * @param {*} seed The seed value.\n * @return {Array} The final list.\n * @example\n *\n * const f = n => n > 50 ? false : [-n, n + 10];\n * R.unfold(f, 10); //=> [-10, -20, -30, -40, -50]\n * @symb R.unfold(f, x) = [f(x)[0], f(f(x)[1])[0], f(f(f(x)[1])[1])[0], ...]\n */\n\nvar unfold =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function unfold(fn, seed) {\n var pair = fn(seed);\n var result = [];\n\n while (pair && pair.length) {\n result[result.length] = pair[0];\n pair = fn(pair[1]);\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (unfold);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/unfold.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/union.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/union.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _compose_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./compose.js */ \"./node_modules/ramda/es/compose.js\");\n/* harmony import */ var _uniq_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./uniq.js */ \"./node_modules/ramda/es/uniq.js\");\n\n\n\n\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of the elements\n * of each list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} as The first list.\n * @param {Array} bs The second list.\n * @return {Array} The first and second lists concatenated, with\n * duplicates removed.\n * @example\n *\n * R.union([1, 2, 3], [2, 3, 4]); //=> [1, 2, 3, 4]\n */\n\nvar union =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\n/*#__PURE__*/\nObject(_compose_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_uniq_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (union);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/union.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/unionWith.js": +/*!********************************************!*\ + !*** ./node_modules/ramda/es/unionWith.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ \"./node_modules/ramda/es/internal/_concat.js\");\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _uniqWith_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./uniqWith.js */ \"./node_modules/ramda/es/uniqWith.js\");\n\n\n\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of the elements\n * of each list. Duplication is determined according to the value returned by\n * applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [*] -> [*] -> [*]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The first and second lists concatenated, with\n * duplicates removed.\n * @see R.union\n * @example\n *\n * const l1 = [{a: 1}, {a: 2}];\n * const l2 = [{a: 1}, {a: 4}];\n * R.unionWith(R.eqBy(R.prop('a')), l1, l2); //=> [{a: 1}, {a: 2}, {a: 4}]\n */\n\nvar unionWith =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function unionWith(pred, list1, list2) {\n return Object(_uniqWith_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(pred, Object(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(list1, list2));\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (unionWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/unionWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/uniq.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/uniq.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./identity.js */ \"./node_modules/ramda/es/identity.js\");\n/* harmony import */ var _uniqBy_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uniqBy.js */ \"./node_modules/ramda/es/uniqBy.js\");\n\n\n/**\n * Returns a new list containing only one copy of each element in the original\n * list. [`R.equals`](#equals) is used to determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniq([1, 1, 2, 1]); //=> [1, 2]\n * R.uniq([1, '1']); //=> [1, '1']\n * R.uniq([[42], [42]]); //=> [[42]]\n */\n\nvar uniq =\n/*#__PURE__*/\nObject(_uniqBy_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_identity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (uniq);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/uniq.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/uniqBy.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/uniqBy.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_Set_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_Set.js */ \"./node_modules/ramda/es/internal/_Set.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Returns a new list containing only one copy of each element in the original\n * list, based upon the value returned by applying the supplied function to\n * each list element. Prefers the first item if the supplied function produces\n * the same value on two items. [`R.equals`](#equals) is used for comparison.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> b) -> [a] -> [a]\n * @param {Function} fn A function used to produce a value to use during comparisons.\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniqBy(Math.abs, [-1, -5, 2, 10, 1, 2]); //=> [-1, -5, 2, 10]\n */\n\nvar uniqBy =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function uniqBy(fn, list) {\n var set = new _internal_Set_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]();\n var result = [];\n var idx = 0;\n var appliedItem, item;\n\n while (idx < list.length) {\n item = list[idx];\n appliedItem = fn(item);\n\n if (set.add(appliedItem)) {\n result.push(item);\n }\n\n idx += 1;\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (uniqBy);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/uniqBy.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/uniqWith.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/uniqWith.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_includesWith_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_includesWith.js */ \"./node_modules/ramda/es/internal/_includesWith.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n\n/**\n * Returns a new list containing only one copy of each element in the original\n * list, based upon the value returned by applying the supplied predicate to\n * two list elements. Prefers the first item if two items compare equal based\n * on the predicate.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category List\n * @sig ((a, a) -> Boolean) -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * const strEq = R.eqBy(String);\n * R.uniqWith(strEq)([1, '1', 2, 1]); //=> [1, 2]\n * R.uniqWith(strEq)([{}, {}]); //=> [{}]\n * R.uniqWith(strEq)([1, '1', 1]); //=> [1]\n * R.uniqWith(strEq)(['1', 1, 1]); //=> ['1']\n */\n\nvar uniqWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function uniqWith(pred, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n var item;\n\n while (idx < len) {\n item = list[idx];\n\n if (!Object(_internal_includesWith_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(pred, item, result)) {\n result[result.length] = item;\n }\n\n idx += 1;\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (uniqWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/uniqWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/unless.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/unless.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Tests the final argument by passing it to the given predicate function. If\n * the predicate is not satisfied, the function will return the result of\n * calling the `whenFalseFn` function with the same argument. If the predicate\n * is satisfied, the argument is returned as is.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} whenFalseFn A function to invoke when the `pred` evaluates\n * to a falsy value.\n * @param {*} x An object to test with the `pred` function and\n * pass to `whenFalseFn` if necessary.\n * @return {*} Either `x` or the result of applying `x` to `whenFalseFn`.\n * @see R.ifElse, R.when, R.cond\n * @example\n *\n * let safeInc = R.unless(R.isNil, R.inc);\n * safeInc(null); //=> null\n * safeInc(1); //=> 2\n */\n\nvar unless =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function unless(pred, whenFalseFn, x) {\n return pred(x) ? x : whenFalseFn(x);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (unless);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/unless.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/unnest.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/unnest.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_identity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_identity.js */ \"./node_modules/ramda/es/internal/_identity.js\");\n/* harmony import */ var _chain_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./chain.js */ \"./node_modules/ramda/es/chain.js\");\n\n\n/**\n * Shorthand for `R.chain(R.identity)`, which removes one level of nesting from\n * any [Chain](https://github.com/fantasyland/fantasy-land#chain).\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig Chain c => c (c a) -> c a\n * @param {*} list\n * @return {*}\n * @see R.flatten, R.chain\n * @example\n *\n * R.unnest([1, [2], [[3]]]); //=> [1, 2, [3]]\n * R.unnest([[1, 2], [3, 4], [5, 6]]); //=> [1, 2, 3, 4, 5, 6]\n */\n\nvar unnest =\n/*#__PURE__*/\nObject(_chain_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_internal_identity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (unnest);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/unnest.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/until.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/until.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Takes a predicate, a transformation function, and an initial value,\n * and returns a value of the same type as the initial value.\n * It does so by applying the transformation until the predicate is satisfied,\n * at which point it returns the satisfactory value.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} fn The iterator function\n * @param {*} init Initial value\n * @return {*} Final value that satisfies predicate\n * @example\n *\n * R.until(R.gt(R.__, 100), R.multiply(2))(1) // => 128\n */\n\nvar until =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function until(pred, fn, init) {\n var val = init;\n\n while (!pred(val)) {\n val = fn(val);\n }\n\n return val;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (until);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/until.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/update.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/update.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n/* harmony import */ var _adjust_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./adjust.js */ \"./node_modules/ramda/es/adjust.js\");\n/* harmony import */ var _always_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./always.js */ \"./node_modules/ramda/es/always.js\");\n\n\n\n/**\n * Returns a new copy of the array with the element at the provided index\n * replaced with the given value.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig Number -> a -> [a] -> [a]\n * @param {Number} idx The index to update.\n * @param {*} x The value to exist at the given index of the returned array.\n * @param {Array|Arguments} list The source array-like object to be updated.\n * @return {Array} A copy of `list` with the value at index `idx` replaced with `x`.\n * @see R.adjust\n * @example\n *\n * R.update(1, '_', ['a', 'b', 'c']); //=> ['a', '_', 'c']\n * R.update(-1, '_', ['a', 'b', 'c']); //=> ['a', 'b', '_']\n * @symb R.update(-1, a, [b, c]) = [b, a]\n * @symb R.update(0, a, [b, c]) = [a, c]\n * @symb R.update(1, a, [b, c]) = [b, a]\n */\n\nvar update =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function update(idx, x, list) {\n return Object(_adjust_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(idx, Object(_always_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(x), list);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (update);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/update.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/useWith.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/useWith.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ \"./node_modules/ramda/es/curryN.js\");\n\n\n/**\n * Accepts a function `fn` and a list of transformer functions and returns a\n * new curried function. When the new function is invoked, it calls the\n * function `fn` with parameters consisting of the result of calling each\n * supplied handler on successive arguments to the new function.\n *\n * If more arguments are passed to the returned function than transformer\n * functions, those arguments are passed directly to `fn` as additional\n * parameters. If you expect additional arguments that don't need to be\n * transformed, although you can ignore them, it's best to pass an identity\n * function so that the new function reports the correct arity.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((x1, x2, ...) -> z) -> [(a -> x1), (b -> x2), ...] -> (a -> b -> ... -> z)\n * @param {Function} fn The function to wrap.\n * @param {Array} transformers A list of transformer functions\n * @return {Function} The wrapped function.\n * @see R.converge\n * @example\n *\n * R.useWith(Math.pow, [R.identity, R.identity])(3, 4); //=> 81\n * R.useWith(Math.pow, [R.identity, R.identity])(3)(4); //=> 81\n * R.useWith(Math.pow, [R.dec, R.inc])(3, 4); //=> 32\n * R.useWith(Math.pow, [R.dec, R.inc])(3)(4); //=> 32\n * @symb R.useWith(f, [g, h])(a, b) = f(g(a), h(b))\n */\n\nvar useWith =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function useWith(fn, transformers) {\n return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(transformers.length, function () {\n var args = [];\n var idx = 0;\n\n while (idx < transformers.length) {\n args.push(transformers[idx].call(this, arguments[idx]));\n idx += 1;\n }\n\n return fn.apply(this, args.concat(Array.prototype.slice.call(arguments, transformers.length)));\n });\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (useWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/useWith.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/values.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/values.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/ramda/es/keys.js\");\n\n\n/**\n * Returns a list of all the enumerable own properties of the supplied object.\n * Note that the order of the output array is not guaranteed across different\n * JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own properties.\n * @see R.valuesIn, R.keys\n * @example\n *\n * R.values({a: 1, b: 2, c: 3}); //=> [1, 2, 3]\n */\n\nvar values =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function values(obj) {\n var props = Object(_keys_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(obj);\n var len = props.length;\n var vals = [];\n var idx = 0;\n\n while (idx < len) {\n vals[idx] = obj[props[idx]];\n idx += 1;\n }\n\n return vals;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (values);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/values.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/valuesIn.js": +/*!*******************************************!*\ + !*** ./node_modules/ramda/es/valuesIn.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ \"./node_modules/ramda/es/internal/_curry1.js\");\n\n/**\n * Returns a list of all the properties, including prototype properties, of the\n * supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own and prototype properties.\n * @see R.values, R.keysIn\n * @example\n *\n * const F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * const f = new F();\n * R.valuesIn(f); //=> ['X', 'Y']\n */\n\nvar valuesIn =\n/*#__PURE__*/\nObject(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function valuesIn(obj) {\n var prop;\n var vs = [];\n\n for (prop in obj) {\n vs[vs.length] = obj[prop];\n }\n\n return vs;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (valuesIn);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/valuesIn.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/view.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/view.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n // `Const` is a functor that effectively ignores the function given to `map`.\n\nvar Const = function (x) {\n return {\n value: x,\n 'fantasy-land/map': function () {\n return this;\n }\n };\n};\n/**\n * Returns a \"view\" of the given data structure, determined by the given lens.\n * The lens's focus determines which portion of the data structure is visible.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> s -> a\n * @param {Lens} lens\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.view(xLens, {x: 4, y: 2}); //=> 4\n */\n\n\nvar view =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function view(lens, x) {\n // Using `Const` effectively ignores the setter function of the `lens`,\n // leaving the value returned by the getter function unmodified.\n return lens(Const)(x).value;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (view);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/view.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/when.js": +/*!***************************************!*\ + !*** ./node_modules/ramda/es/when.js ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Tests the final argument by passing it to the given predicate function. If\n * the predicate is satisfied, the function will return the result of calling\n * the `whenTrueFn` function with the same argument. If the predicate is not\n * satisfied, the argument is returned as is.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} whenTrueFn A function to invoke when the `condition`\n * evaluates to a truthy value.\n * @param {*} x An object to test with the `pred` function and\n * pass to `whenTrueFn` if necessary.\n * @return {*} Either `x` or the result of applying `x` to `whenTrueFn`.\n * @see R.ifElse, R.unless, R.cond\n * @example\n *\n * // truncate :: String -> String\n * const truncate = R.when(\n * R.propSatisfies(R.gt(R.__, 10), 'length'),\n * R.pipe(R.take(10), R.append('…'), R.join(''))\n * );\n * truncate('12345'); //=> '12345'\n * truncate('0123456789ABC'); //=> '0123456789…'\n */\n\nvar when =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function when(pred, whenTrueFn, x) {\n return pred(x) ? whenTrueFn(x) : x;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (when);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/when.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/where.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/where.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ \"./node_modules/ramda/es/internal/_has.js\");\n\n\n/**\n * Takes a spec object and a test object; returns true if the test satisfies\n * the spec. Each of the spec's own properties must be a predicate function.\n * Each predicate is applied to the value of the corresponding property of the\n * test object. `where` returns true if all the predicates return true, false\n * otherwise.\n *\n * `where` is well suited to declaratively expressing constraints for other\n * functions such as [`filter`](#filter) and [`find`](#find).\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category Object\n * @sig {String: (* -> Boolean)} -> {String: *} -> Boolean\n * @param {Object} spec\n * @param {Object} testObj\n * @return {Boolean}\n * @see R.propSatisfies, R.whereEq\n * @example\n *\n * // pred :: Object -> Boolean\n * const pred = R.where({\n * a: R.equals('foo'),\n * b: R.complement(R.equals('bar')),\n * x: R.gt(R.__, 10),\n * y: R.lt(R.__, 20)\n * });\n *\n * pred({a: 'foo', b: 'xxx', x: 11, y: 19}); //=> true\n * pred({a: 'xxx', b: 'xxx', x: 11, y: 19}); //=> false\n * pred({a: 'foo', b: 'bar', x: 11, y: 19}); //=> false\n * pred({a: 'foo', b: 'xxx', x: 10, y: 19}); //=> false\n * pred({a: 'foo', b: 'xxx', x: 11, y: 20}); //=> false\n */\n\nvar where =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function where(spec, testObj) {\n for (var prop in spec) {\n if (Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(prop, spec) && !spec[prop](testObj[prop])) {\n return false;\n }\n }\n\n return true;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (where);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/where.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/whereEq.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/whereEq.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equals.js */ \"./node_modules/ramda/es/equals.js\");\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./map.js */ \"./node_modules/ramda/es/map.js\");\n/* harmony import */ var _where_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./where.js */ \"./node_modules/ramda/es/where.js\");\n\n\n\n\n/**\n * Takes a spec object and a test object; returns true if the test satisfies\n * the spec, false otherwise. An object satisfies the spec if, for each of the\n * spec's own properties, accessing that property of the object gives the same\n * value (in [`R.equals`](#equals) terms) as accessing that property of the\n * spec.\n *\n * `whereEq` is a specialization of [`where`](#where).\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @sig {String: *} -> {String: *} -> Boolean\n * @param {Object} spec\n * @param {Object} testObj\n * @return {Boolean}\n * @see R.propEq, R.where\n * @example\n *\n * // pred :: Object -> Boolean\n * const pred = R.whereEq({a: 1, b: 2});\n *\n * pred({a: 1}); //=> false\n * pred({a: 1, b: 2}); //=> true\n * pred({a: 1, b: 2, c: 3}); //=> true\n * pred({a: 1, b: 1}); //=> false\n */\n\nvar whereEq =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function whereEq(spec, testObj) {\n return Object(_where_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(Object(_map_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_equals_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], spec), testObj);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (whereEq);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/whereEq.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/without.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/without.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_includes.js */ \"./node_modules/ramda/es/internal/_includes.js\");\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n/* harmony import */ var _flip_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./flip.js */ \"./node_modules/ramda/es/flip.js\");\n/* harmony import */ var _reject_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./reject.js */ \"./node_modules/ramda/es/reject.js\");\n\n\n\n\n/**\n * Returns a new list without values in the first argument.\n * [`R.equals`](#equals) is used to determine equality.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig [a] -> [a] -> [a]\n * @param {Array} list1 The values to be removed from `list2`.\n * @param {Array} list2 The array to remove values from.\n * @return {Array} The new array without values in `list1`.\n * @see R.transduce, R.difference, R.remove\n * @example\n *\n * R.without([1, 2], [1, 2, 1, 3, 4]); //=> [3, 4]\n */\n\nvar without =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (xs, list) {\n return Object(_reject_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(Object(_flip_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_internal_includes_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(xs), list);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (without);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/without.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/xor.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/xor.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Exclusive disjunction logical operation.\n * Returns `true` if one of the arguments is truthy and the other is falsy.\n * Otherwise, it returns `false`.\n *\n * @func\n * @memberOf R\n * @since v0.27.0\n * @category Logic\n * @sig a -> b -> Boolean\n * @param {Any} a\n * @param {Any} b\n * @return {Boolean} true if one of the arguments is truthy and the other is falsy\n * @see R.or, R.and\n * @example\n *\n * R.xor(true, true); //=> false\n * R.xor(true, false); //=> true\n * R.xor(false, true); //=> true\n * R.xor(false, false); //=> false\n */\n\nvar xor =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function xor(a, b) {\n return Boolean(!a ^ !b);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (xor);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/xor.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/xprod.js": +/*!****************************************!*\ + !*** ./node_modules/ramda/es/xprod.js ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Creates a new list out of the two supplied by creating each possible pair\n * from the lists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b] -> [[a,b]]\n * @param {Array} as The first list.\n * @param {Array} bs The second list.\n * @return {Array} The list made by combining each possible pair from\n * `as` and `bs` into pairs (`[a, b]`).\n * @example\n *\n * R.xprod([1, 2], ['a', 'b']); //=> [[1, 'a'], [1, 'b'], [2, 'a'], [2, 'b']]\n * @symb R.xprod([a, b], [c, d]) = [[a, c], [a, d], [b, c], [b, d]]\n */\n\nvar xprod =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function xprod(a, b) {\n // = xprodWith(prepend); (takes about 3 times as long...)\n var idx = 0;\n var ilen = a.length;\n var j;\n var jlen = b.length;\n var result = [];\n\n while (idx < ilen) {\n j = 0;\n\n while (j < jlen) {\n result[result.length] = [a[idx], b[j]];\n j += 1;\n }\n\n idx += 1;\n }\n\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (xprod);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/xprod.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/zip.js": +/*!**************************************!*\ + !*** ./node_modules/ramda/es/zip.js ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Creates a new list out of the two supplied by pairing up equally-positioned\n * items from both lists. The returned list is truncated to the length of the\n * shorter of the two input lists.\n * Note: `zip` is equivalent to `zipWith(function(a, b) { return [a, b] })`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b] -> [[a,b]]\n * @param {Array} list1 The first array to consider.\n * @param {Array} list2 The second array to consider.\n * @return {Array} The list made by pairing up same-indexed elements of `list1` and `list2`.\n * @example\n *\n * R.zip([1, 2, 3], ['a', 'b', 'c']); //=> [[1, 'a'], [2, 'b'], [3, 'c']]\n * @symb R.zip([a, b, c], [d, e, f]) = [[a, d], [b, e], [c, f]]\n */\n\nvar zip =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function zip(a, b) {\n var rv = [];\n var idx = 0;\n var len = Math.min(a.length, b.length);\n\n while (idx < len) {\n rv[idx] = [a[idx], b[idx]];\n idx += 1;\n }\n\n return rv;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (zip);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/zip.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/zipObj.js": +/*!*****************************************!*\ + !*** ./node_modules/ramda/es/zipObj.js ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ \"./node_modules/ramda/es/internal/_curry2.js\");\n\n/**\n * Creates a new object out of a list of keys and a list of values.\n * Key/value pairing is truncated to the length of the shorter of the two lists.\n * Note: `zipObj` is equivalent to `pipe(zip, fromPairs)`.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [String] -> [*] -> {String: *}\n * @param {Array} keys The array that will be properties on the output object.\n * @param {Array} values The list of values on the output object.\n * @return {Object} The object made by pairing up same-indexed elements of `keys` and `values`.\n * @example\n *\n * R.zipObj(['a', 'b', 'c'], [1, 2, 3]); //=> {a: 1, b: 2, c: 3}\n */\n\nvar zipObj =\n/*#__PURE__*/\nObject(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function zipObj(keys, values) {\n var idx = 0;\n var len = Math.min(keys.length, values.length);\n var out = {};\n\n while (idx < len) {\n out[keys[idx]] = values[idx];\n idx += 1;\n }\n\n return out;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (zipObj);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/zipObj.js?"); + +/***/ }), + +/***/ "./node_modules/ramda/es/zipWith.js": +/*!******************************************!*\ + !*** ./node_modules/ramda/es/zipWith.js ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ \"./node_modules/ramda/es/internal/_curry3.js\");\n\n/**\n * Creates a new list out of the two supplied by applying the function to each\n * equally-positioned pair in the lists. The returned list is truncated to the\n * length of the shorter of the two input lists.\n *\n * @function\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> c) -> [a] -> [b] -> [c]\n * @param {Function} fn The function used to combine the two elements into one value.\n * @param {Array} list1 The first array to consider.\n * @param {Array} list2 The second array to consider.\n * @return {Array} The list made by combining same-indexed elements of `list1` and `list2`\n * using `fn`.\n * @example\n *\n * const f = (x, y) => {\n * // ...\n * };\n * R.zipWith(f, [1, 2, 3], ['a', 'b', 'c']);\n * //=> [f(1, 'a'), f(2, 'b'), f(3, 'c')]\n * @symb R.zipWith(fn, [a, b, c], [d, e, f]) = [fn(a, d), fn(b, e), fn(c, f)]\n */\n\nvar zipWith =\n/*#__PURE__*/\nObject(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function zipWith(fn, a, b) {\n var rv = [];\n var idx = 0;\n var len = Math.min(a.length, b.length);\n\n while (idx < len) {\n rv[idx] = fn(a[idx], b[idx]);\n idx += 1;\n }\n\n return rv;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (zipWith);\n\n//# sourceURL=webpack:///./node_modules/ramda/es/zipWith.js?"); + +/***/ }), + +/***/ "./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js": +/*!*************************************************************************!*\ + !*** ./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js ***! + \*************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (index);\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/ajax/index.js": +/*!***************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/ajax/index.js ***! + \***************************************************/ +/*! exports provided: ajax, AjaxResponse, AjaxError, AjaxTimeoutError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_observable_dom_ajax__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../internal/observable/dom/ajax */ \"./node_modules/rxjs/dist/esm5/internal/observable/dom/ajax.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ajax\", function() { return _internal_observable_dom_ajax__WEBPACK_IMPORTED_MODULE_0__[\"ajax\"]; });\n\n/* harmony import */ var _internal_observable_dom_AjaxObservable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../internal/observable/dom/AjaxObservable */ \"./node_modules/rxjs/dist/esm5/internal/observable/dom/AjaxObservable.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AjaxResponse\", function() { return _internal_observable_dom_AjaxObservable__WEBPACK_IMPORTED_MODULE_1__[\"AjaxResponse\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AjaxError\", function() { return _internal_observable_dom_AjaxObservable__WEBPACK_IMPORTED_MODULE_1__[\"AjaxError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AjaxTimeoutError\", function() { return _internal_observable_dom_AjaxObservable__WEBPACK_IMPORTED_MODULE_1__[\"AjaxTimeoutError\"]; });\n\n\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/ajax/index.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/index.js": +/*!**********************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/index.js ***! + \**********************************************/ +/*! exports provided: Observable, ConnectableObservable, GroupedObservable, observable, animationFrames, Subject, BehaviorSubject, ReplaySubject, AsyncSubject, asapScheduler, asyncScheduler, queueScheduler, animationFrameScheduler, VirtualTimeScheduler, VirtualAction, Scheduler, Subscription, Subscriber, Notification, NotificationKind, pipe, noop, identity, isObservable, lastValueFrom, firstValueFrom, ArgumentOutOfRangeError, EmptyError, ObjectUnsubscribedError, UnsubscriptionError, TimeoutError, bindCallback, bindNodeCallback, combineLatest, concat, defer, empty, forkJoin, from, fromEvent, fromEventPattern, generate, iif, interval, merge, never, of, onErrorResumeNext, pairs, partition, race, range, throwError, timer, using, zip, scheduled, EMPTY, NEVER, config */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Observable\", function() { return _internal_Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"]; });\n\n/* harmony import */ var _internal_observable_ConnectableObservable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/observable/ConnectableObservable */ \"./node_modules/rxjs/dist/esm5/internal/observable/ConnectableObservable.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ConnectableObservable\", function() { return _internal_observable_ConnectableObservable__WEBPACK_IMPORTED_MODULE_1__[\"ConnectableObservable\"]; });\n\n/* harmony import */ var _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/operators/groupBy */ \"./node_modules/rxjs/dist/esm5/internal/operators/groupBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"GroupedObservable\", function() { return _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_2__[\"GroupedObservable\"]; });\n\n/* harmony import */ var _internal_symbol_observable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/symbol/observable */ \"./node_modules/rxjs/dist/esm5/internal/symbol/observable.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"observable\", function() { return _internal_symbol_observable__WEBPACK_IMPORTED_MODULE_3__[\"observable\"]; });\n\n/* harmony import */ var _internal_observable_dom_animationFrames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./internal/observable/dom/animationFrames */ \"./node_modules/rxjs/dist/esm5/internal/observable/dom/animationFrames.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"animationFrames\", function() { return _internal_observable_dom_animationFrames__WEBPACK_IMPORTED_MODULE_4__[\"animationFrames\"]; });\n\n/* harmony import */ var _internal_Subject__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./internal/Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Subject\", function() { return _internal_Subject__WEBPACK_IMPORTED_MODULE_5__[\"Subject\"]; });\n\n/* harmony import */ var _internal_BehaviorSubject__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./internal/BehaviorSubject */ \"./node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BehaviorSubject\", function() { return _internal_BehaviorSubject__WEBPACK_IMPORTED_MODULE_6__[\"BehaviorSubject\"]; });\n\n/* harmony import */ var _internal_ReplaySubject__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./internal/ReplaySubject */ \"./node_modules/rxjs/dist/esm5/internal/ReplaySubject.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ReplaySubject\", function() { return _internal_ReplaySubject__WEBPACK_IMPORTED_MODULE_7__[\"ReplaySubject\"]; });\n\n/* harmony import */ var _internal_AsyncSubject__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./internal/AsyncSubject */ \"./node_modules/rxjs/dist/esm5/internal/AsyncSubject.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AsyncSubject\", function() { return _internal_AsyncSubject__WEBPACK_IMPORTED_MODULE_8__[\"AsyncSubject\"]; });\n\n/* harmony import */ var _internal_scheduler_asap__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./internal/scheduler/asap */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/asap.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"asapScheduler\", function() { return _internal_scheduler_asap__WEBPACK_IMPORTED_MODULE_9__[\"asap\"]; });\n\n/* harmony import */ var _internal_scheduler_async__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./internal/scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"asyncScheduler\", function() { return _internal_scheduler_async__WEBPACK_IMPORTED_MODULE_10__[\"async\"]; });\n\n/* harmony import */ var _internal_scheduler_queue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./internal/scheduler/queue */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/queue.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"queueScheduler\", function() { return _internal_scheduler_queue__WEBPACK_IMPORTED_MODULE_11__[\"queue\"]; });\n\n/* harmony import */ var _internal_scheduler_animationFrame__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./internal/scheduler/animationFrame */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/animationFrame.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"animationFrameScheduler\", function() { return _internal_scheduler_animationFrame__WEBPACK_IMPORTED_MODULE_12__[\"animationFrame\"]; });\n\n/* harmony import */ var _internal_scheduler_VirtualTimeScheduler__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./internal/scheduler/VirtualTimeScheduler */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/VirtualTimeScheduler.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"VirtualTimeScheduler\", function() { return _internal_scheduler_VirtualTimeScheduler__WEBPACK_IMPORTED_MODULE_13__[\"VirtualTimeScheduler\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"VirtualAction\", function() { return _internal_scheduler_VirtualTimeScheduler__WEBPACK_IMPORTED_MODULE_13__[\"VirtualAction\"]; });\n\n/* harmony import */ var _internal_Scheduler__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./internal/Scheduler */ \"./node_modules/rxjs/dist/esm5/internal/Scheduler.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Scheduler\", function() { return _internal_Scheduler__WEBPACK_IMPORTED_MODULE_14__[\"Scheduler\"]; });\n\n/* harmony import */ var _internal_Subscription__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./internal/Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Subscription\", function() { return _internal_Subscription__WEBPACK_IMPORTED_MODULE_15__[\"Subscription\"]; });\n\n/* harmony import */ var _internal_Subscriber__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./internal/Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Subscriber\", function() { return _internal_Subscriber__WEBPACK_IMPORTED_MODULE_16__[\"Subscriber\"]; });\n\n/* harmony import */ var _internal_Notification__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./internal/Notification */ \"./node_modules/rxjs/dist/esm5/internal/Notification.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Notification\", function() { return _internal_Notification__WEBPACK_IMPORTED_MODULE_17__[\"Notification\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NotificationKind\", function() { return _internal_Notification__WEBPACK_IMPORTED_MODULE_17__[\"NotificationKind\"]; });\n\n/* harmony import */ var _internal_util_pipe__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./internal/util/pipe */ \"./node_modules/rxjs/dist/esm5/internal/util/pipe.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pipe\", function() { return _internal_util_pipe__WEBPACK_IMPORTED_MODULE_18__[\"pipe\"]; });\n\n/* harmony import */ var _internal_util_noop__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./internal/util/noop */ \"./node_modules/rxjs/dist/esm5/internal/util/noop.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"noop\", function() { return _internal_util_noop__WEBPACK_IMPORTED_MODULE_19__[\"noop\"]; });\n\n/* harmony import */ var _internal_util_identity__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./internal/util/identity */ \"./node_modules/rxjs/dist/esm5/internal/util/identity.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"identity\", function() { return _internal_util_identity__WEBPACK_IMPORTED_MODULE_20__[\"identity\"]; });\n\n/* harmony import */ var _internal_util_isObservable__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./internal/util/isObservable */ \"./node_modules/rxjs/dist/esm5/internal/util/isObservable.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isObservable\", function() { return _internal_util_isObservable__WEBPACK_IMPORTED_MODULE_21__[\"isObservable\"]; });\n\n/* harmony import */ var _internal_lastValueFrom__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./internal/lastValueFrom */ \"./node_modules/rxjs/dist/esm5/internal/lastValueFrom.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lastValueFrom\", function() { return _internal_lastValueFrom__WEBPACK_IMPORTED_MODULE_22__[\"lastValueFrom\"]; });\n\n/* harmony import */ var _internal_firstValueFrom__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./internal/firstValueFrom */ \"./node_modules/rxjs/dist/esm5/internal/firstValueFrom.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"firstValueFrom\", function() { return _internal_firstValueFrom__WEBPACK_IMPORTED_MODULE_23__[\"firstValueFrom\"]; });\n\n/* harmony import */ var _internal_util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./internal/util/ArgumentOutOfRangeError */ \"./node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ArgumentOutOfRangeError\", function() { return _internal_util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_24__[\"ArgumentOutOfRangeError\"]; });\n\n/* harmony import */ var _internal_util_EmptyError__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./internal/util/EmptyError */ \"./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EmptyError\", function() { return _internal_util_EmptyError__WEBPACK_IMPORTED_MODULE_25__[\"EmptyError\"]; });\n\n/* harmony import */ var _internal_util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./internal/util/ObjectUnsubscribedError */ \"./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ObjectUnsubscribedError\", function() { return _internal_util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_26__[\"ObjectUnsubscribedError\"]; });\n\n/* harmony import */ var _internal_util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./internal/util/UnsubscriptionError */ \"./node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"UnsubscriptionError\", function() { return _internal_util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_27__[\"UnsubscriptionError\"]; });\n\n/* harmony import */ var _internal_util_TimeoutError__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./internal/util/TimeoutError */ \"./node_modules/rxjs/dist/esm5/internal/util/TimeoutError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TimeoutError\", function() { return _internal_util_TimeoutError__WEBPACK_IMPORTED_MODULE_28__[\"TimeoutError\"]; });\n\n/* harmony import */ var _internal_observable_bindCallback__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./internal/observable/bindCallback */ \"./node_modules/rxjs/dist/esm5/internal/observable/bindCallback.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bindCallback\", function() { return _internal_observable_bindCallback__WEBPACK_IMPORTED_MODULE_29__[\"bindCallback\"]; });\n\n/* harmony import */ var _internal_observable_bindNodeCallback__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./internal/observable/bindNodeCallback */ \"./node_modules/rxjs/dist/esm5/internal/observable/bindNodeCallback.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bindNodeCallback\", function() { return _internal_observable_bindNodeCallback__WEBPACK_IMPORTED_MODULE_30__[\"bindNodeCallback\"]; });\n\n/* harmony import */ var _internal_observable_combineLatest__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./internal/observable/combineLatest */ \"./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"combineLatest\", function() { return _internal_observable_combineLatest__WEBPACK_IMPORTED_MODULE_31__[\"combineLatest\"]; });\n\n/* harmony import */ var _internal_observable_concat__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./internal/observable/concat */ \"./node_modules/rxjs/dist/esm5/internal/observable/concat.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"concat\", function() { return _internal_observable_concat__WEBPACK_IMPORTED_MODULE_32__[\"concat\"]; });\n\n/* harmony import */ var _internal_observable_defer__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./internal/observable/defer */ \"./node_modules/rxjs/dist/esm5/internal/observable/defer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"defer\", function() { return _internal_observable_defer__WEBPACK_IMPORTED_MODULE_33__[\"defer\"]; });\n\n/* harmony import */ var _internal_observable_empty__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./internal/observable/empty */ \"./node_modules/rxjs/dist/esm5/internal/observable/empty.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"empty\", function() { return _internal_observable_empty__WEBPACK_IMPORTED_MODULE_34__[\"empty\"]; });\n\n/* harmony import */ var _internal_observable_forkJoin__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./internal/observable/forkJoin */ \"./node_modules/rxjs/dist/esm5/internal/observable/forkJoin.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"forkJoin\", function() { return _internal_observable_forkJoin__WEBPACK_IMPORTED_MODULE_35__[\"forkJoin\"]; });\n\n/* harmony import */ var _internal_observable_from__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./internal/observable/from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"from\", function() { return _internal_observable_from__WEBPACK_IMPORTED_MODULE_36__[\"from\"]; });\n\n/* harmony import */ var _internal_observable_fromEvent__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./internal/observable/fromEvent */ \"./node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"fromEvent\", function() { return _internal_observable_fromEvent__WEBPACK_IMPORTED_MODULE_37__[\"fromEvent\"]; });\n\n/* harmony import */ var _internal_observable_fromEventPattern__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./internal/observable/fromEventPattern */ \"./node_modules/rxjs/dist/esm5/internal/observable/fromEventPattern.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"fromEventPattern\", function() { return _internal_observable_fromEventPattern__WEBPACK_IMPORTED_MODULE_38__[\"fromEventPattern\"]; });\n\n/* harmony import */ var _internal_observable_generate__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./internal/observable/generate */ \"./node_modules/rxjs/dist/esm5/internal/observable/generate.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"generate\", function() { return _internal_observable_generate__WEBPACK_IMPORTED_MODULE_39__[\"generate\"]; });\n\n/* harmony import */ var _internal_observable_iif__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./internal/observable/iif */ \"./node_modules/rxjs/dist/esm5/internal/observable/iif.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"iif\", function() { return _internal_observable_iif__WEBPACK_IMPORTED_MODULE_40__[\"iif\"]; });\n\n/* harmony import */ var _internal_observable_interval__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./internal/observable/interval */ \"./node_modules/rxjs/dist/esm5/internal/observable/interval.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interval\", function() { return _internal_observable_interval__WEBPACK_IMPORTED_MODULE_41__[\"interval\"]; });\n\n/* harmony import */ var _internal_observable_merge__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./internal/observable/merge */ \"./node_modules/rxjs/dist/esm5/internal/observable/merge.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"merge\", function() { return _internal_observable_merge__WEBPACK_IMPORTED_MODULE_42__[\"merge\"]; });\n\n/* harmony import */ var _internal_observable_never__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./internal/observable/never */ \"./node_modules/rxjs/dist/esm5/internal/observable/never.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"never\", function() { return _internal_observable_never__WEBPACK_IMPORTED_MODULE_43__[\"never\"]; });\n\n/* harmony import */ var _internal_observable_of__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./internal/observable/of */ \"./node_modules/rxjs/dist/esm5/internal/observable/of.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"of\", function() { return _internal_observable_of__WEBPACK_IMPORTED_MODULE_44__[\"of\"]; });\n\n/* harmony import */ var _internal_observable_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./internal/observable/onErrorResumeNext */ \"./node_modules/rxjs/dist/esm5/internal/observable/onErrorResumeNext.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"onErrorResumeNext\", function() { return _internal_observable_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_45__[\"onErrorResumeNext\"]; });\n\n/* harmony import */ var _internal_observable_pairs__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./internal/observable/pairs */ \"./node_modules/rxjs/dist/esm5/internal/observable/pairs.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pairs\", function() { return _internal_observable_pairs__WEBPACK_IMPORTED_MODULE_46__[\"pairs\"]; });\n\n/* harmony import */ var _internal_observable_partition__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./internal/observable/partition */ \"./node_modules/rxjs/dist/esm5/internal/observable/partition.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"partition\", function() { return _internal_observable_partition__WEBPACK_IMPORTED_MODULE_47__[\"partition\"]; });\n\n/* harmony import */ var _internal_observable_race__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./internal/observable/race */ \"./node_modules/rxjs/dist/esm5/internal/observable/race.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"race\", function() { return _internal_observable_race__WEBPACK_IMPORTED_MODULE_48__[\"race\"]; });\n\n/* harmony import */ var _internal_observable_range__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./internal/observable/range */ \"./node_modules/rxjs/dist/esm5/internal/observable/range.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"range\", function() { return _internal_observable_range__WEBPACK_IMPORTED_MODULE_49__[\"range\"]; });\n\n/* harmony import */ var _internal_observable_throwError__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./internal/observable/throwError */ \"./node_modules/rxjs/dist/esm5/internal/observable/throwError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"throwError\", function() { return _internal_observable_throwError__WEBPACK_IMPORTED_MODULE_50__[\"throwError\"]; });\n\n/* harmony import */ var _internal_observable_timer__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./internal/observable/timer */ \"./node_modules/rxjs/dist/esm5/internal/observable/timer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timer\", function() { return _internal_observable_timer__WEBPACK_IMPORTED_MODULE_51__[\"timer\"]; });\n\n/* harmony import */ var _internal_observable_using__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./internal/observable/using */ \"./node_modules/rxjs/dist/esm5/internal/observable/using.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"using\", function() { return _internal_observable_using__WEBPACK_IMPORTED_MODULE_52__[\"using\"]; });\n\n/* harmony import */ var _internal_observable_zip__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./internal/observable/zip */ \"./node_modules/rxjs/dist/esm5/internal/observable/zip.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zip\", function() { return _internal_observable_zip__WEBPACK_IMPORTED_MODULE_53__[\"zip\"]; });\n\n/* harmony import */ var _internal_scheduled_scheduled__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./internal/scheduled/scheduled */ \"./node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scheduled\", function() { return _internal_scheduled_scheduled__WEBPACK_IMPORTED_MODULE_54__[\"scheduled\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EMPTY\", function() { return _internal_observable_empty__WEBPACK_IMPORTED_MODULE_34__[\"EMPTY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NEVER\", function() { return _internal_observable_never__WEBPACK_IMPORTED_MODULE_43__[\"NEVER\"]; });\n\n/* harmony import */ var _internal_config__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./internal/config */ \"./node_modules/rxjs/dist/esm5/internal/config.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"config\", function() { return _internal_config__WEBPACK_IMPORTED_MODULE_55__[\"config\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/index.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/AsyncSubject.js": +/*!**************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/AsyncSubject.js ***! + \**************************************************************/ +/*! exports provided: AsyncSubject */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AsyncSubject\", function() { return AsyncSubject; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n\n\n\nvar AsyncSubject = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AsyncSubject, _super);\n function AsyncSubject() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.value = null;\n _this.hasNext = false;\n _this.hasCompleted = false;\n return _this;\n }\n AsyncSubject.prototype._subscribe = function (subscriber) {\n if (this.hasError) {\n subscriber.error(this.thrownError);\n return _Subscription__WEBPACK_IMPORTED_MODULE_2__[\"Subscription\"].EMPTY;\n }\n else if (this.hasCompleted && this.hasNext) {\n subscriber.next(this.value);\n subscriber.complete();\n return _Subscription__WEBPACK_IMPORTED_MODULE_2__[\"Subscription\"].EMPTY;\n }\n return _super.prototype._subscribe.call(this, subscriber);\n };\n AsyncSubject.prototype.next = function (value) {\n if (!this.hasCompleted) {\n this.value = value;\n this.hasNext = true;\n }\n };\n AsyncSubject.prototype.error = function (error) {\n if (!this.hasCompleted) {\n _super.prototype.error.call(this, error);\n }\n };\n AsyncSubject.prototype.complete = function () {\n this.hasCompleted = true;\n if (this.hasNext) {\n _super.prototype.next.call(this, this.value);\n }\n _super.prototype.complete.call(this);\n };\n return AsyncSubject;\n}(_Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]));\n\n//# sourceMappingURL=AsyncSubject.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/AsyncSubject.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js ***! + \*****************************************************************/ +/*! exports provided: BehaviorSubject */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BehaviorSubject\", function() { return BehaviorSubject; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/ObjectUnsubscribedError */ \"./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js\");\n\n\n\nvar BehaviorSubject = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(BehaviorSubject, _super);\n function BehaviorSubject(_value) {\n var _this = _super.call(this) || this;\n _this._value = _value;\n return _this;\n }\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: true,\n configurable: true\n });\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n if (subscription && !subscription.closed) {\n subscriber.next(this._value);\n }\n return subscription;\n };\n BehaviorSubject.prototype.getValue = function () {\n if (this.hasError) {\n throw this.thrownError;\n }\n else if (this.closed) {\n throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_2__[\"ObjectUnsubscribedError\"]();\n }\n else {\n return this._value;\n }\n };\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, this._value = value);\n };\n return BehaviorSubject;\n}(_Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]));\n\n//# sourceMappingURL=BehaviorSubject.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js ***! + \*****************************************************************/ +/*! exports provided: InnerSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"InnerSubscriber\", function() { return InnerSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nvar InnerSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(InnerSubscriber, _super);\n function InnerSubscriber(parent, outerValue, outerIndex) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.outerValue = outerValue;\n _this.outerIndex = outerIndex;\n _this.index = 0;\n return _this;\n }\n InnerSubscriber.prototype._next = function (value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n };\n InnerSubscriber.prototype._error = function (error) {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n };\n InnerSubscriber.prototype._complete = function () {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n };\n return InnerSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n\n//# sourceMappingURL=InnerSubscriber.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/Notification.js": +/*!**************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/Notification.js ***! + \**************************************************************/ +/*! exports provided: NotificationKind, Notification */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NotificationKind\", function() { return NotificationKind; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Notification\", function() { return Notification; });\n/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./observable/empty */ \"./node_modules/rxjs/dist/esm5/internal/observable/empty.js\");\n/* harmony import */ var _observable_of__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./observable/of */ \"./node_modules/rxjs/dist/esm5/internal/observable/of.js\");\n/* harmony import */ var _observable_throwError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./observable/throwError */ \"./node_modules/rxjs/dist/esm5/internal/observable/throwError.js\");\n\n\n\nvar NotificationKind;\n(function (NotificationKind) {\n NotificationKind[\"NEXT\"] = \"N\";\n NotificationKind[\"ERROR\"] = \"E\";\n NotificationKind[\"COMPLETE\"] = \"C\";\n})(NotificationKind || (NotificationKind = {}));\nvar Notification = (function () {\n function Notification(kind, value, error) {\n this.kind = kind;\n this.value = value;\n this.error = error;\n this.hasValue = kind === 'N';\n }\n Notification.prototype.observe = function (observer) {\n switch (this.kind) {\n case 'N':\n return observer.next && observer.next(this.value);\n case 'E':\n return observer.error && observer.error(this.error);\n case 'C':\n return observer.complete && observer.complete();\n }\n };\n Notification.prototype.do = function (next, error, complete) {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return next && next(this.value);\n case 'E':\n return error && error(this.error);\n case 'C':\n return complete && complete();\n }\n };\n Notification.prototype.accept = function (nextOrObserver, error, complete) {\n if (nextOrObserver && typeof nextOrObserver.next === 'function') {\n return this.observe(nextOrObserver);\n }\n else {\n return this.do(nextOrObserver, error, complete);\n }\n };\n Notification.prototype.toObservable = function () {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return Object(_observable_of__WEBPACK_IMPORTED_MODULE_1__[\"of\"])(this.value);\n case 'E':\n return Object(_observable_throwError__WEBPACK_IMPORTED_MODULE_2__[\"throwError\"])(this.error);\n case 'C':\n return _observable_empty__WEBPACK_IMPORTED_MODULE_0__[\"EMPTY\"];\n }\n throw new Error('unexpected notification kind value');\n };\n Notification.createNext = function (value) {\n if (typeof value !== 'undefined') {\n return new Notification('N', value);\n }\n return Notification.undefinedValueNotification;\n };\n Notification.createError = function (err) {\n return new Notification('E', undefined, err);\n };\n Notification.createComplete = function () {\n return Notification.completeNotification;\n };\n Notification.completeNotification = new Notification('C');\n Notification.undefinedValueNotification = new Notification('N', undefined);\n return Notification;\n}());\n\n//# sourceMappingURL=Notification.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/Notification.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/Observable.js": +/*!************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/Observable.js ***! + \************************************************************/ +/*! exports provided: Observable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Observable\", function() { return Observable; });\n/* harmony import */ var _util_canReportError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/canReportError */ \"./node_modules/rxjs/dist/esm5/internal/util/canReportError.js\");\n/* harmony import */ var _util_toSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/toSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/util/toSubscriber.js\");\n/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./symbol/observable */ \"./node_modules/rxjs/dist/esm5/internal/symbol/observable.js\");\n/* harmony import */ var _util_pipe__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util/pipe */ \"./node_modules/rxjs/dist/esm5/internal/util/pipe.js\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./config */ \"./node_modules/rxjs/dist/esm5/internal/config.js\");\n/* harmony import */ var _asyncIteratorFrom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./asyncIteratorFrom */ \"./node_modules/rxjs/dist/esm5/internal/asyncIteratorFrom.js\");\n\n\n\n\n\n\nvar Observable = (function () {\n function Observable(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var operator = this.operator;\n var sink = Object(_util_toSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"toSubscriber\"])(observerOrNext, error, complete);\n if (operator) {\n sink.add(operator.call(sink, this.source));\n }\n else {\n sink.add(this.source || (_config__WEBPACK_IMPORTED_MODULE_4__[\"config\"].useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (_config__WEBPACK_IMPORTED_MODULE_4__[\"config\"].useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (_config__WEBPACK_IMPORTED_MODULE_4__[\"config\"].useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (Object(_util_canReportError__WEBPACK_IMPORTED_MODULE_0__[\"canReportError\"])(sink)) {\n sink.error(err);\n }\n else {\n console.warn(err);\n }\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscription;\n subscription = _this.subscribe(function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var source = this.source;\n return source && source.subscribe(subscriber);\n };\n Observable.prototype[_symbol_observable__WEBPACK_IMPORTED_MODULE_2__[\"observable\"]] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n if (operations.length === 0) {\n return this;\n }\n return Object(_util_pipe__WEBPACK_IMPORTED_MODULE_3__[\"pipeFromArray\"])(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\n\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = _config__WEBPACK_IMPORTED_MODULE_4__[\"config\"].Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n(function () {\n if (Symbol && Symbol.asyncIterator) {\n Observable.prototype[Symbol.asyncIterator] = function () {\n return Object(_asyncIteratorFrom__WEBPACK_IMPORTED_MODULE_5__[\"asyncIteratorFrom\"])(this);\n };\n }\n})();\n//# sourceMappingURL=Observable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/Observable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/Observer.js": +/*!**********************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/Observer.js ***! + \**********************************************************/ +/*! exports provided: empty */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"empty\", function() { return empty; });\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./config */ \"./node_modules/rxjs/dist/esm5/internal/config.js\");\n/* harmony import */ var _util_hostReportError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/hostReportError */ \"./node_modules/rxjs/dist/esm5/internal/util/hostReportError.js\");\n\n\nvar empty = {\n closed: true,\n next: function (value) { },\n error: function (err) {\n if (_config__WEBPACK_IMPORTED_MODULE_0__[\"config\"].useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_1__[\"hostReportError\"])(err);\n }\n },\n complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/Observer.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js ***! + \*****************************************************************/ +/*! exports provided: OuterSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"OuterSubscriber\", function() { return OuterSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nvar OuterSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(OuterSubscriber, _super);\n function OuterSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n OuterSubscriber.prototype.notifyError = function (error, innerSub) {\n this.destination.error(error);\n };\n OuterSubscriber.prototype.notifyComplete = function (innerSub) {\n this.destination.complete();\n };\n return OuterSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n\n//# sourceMappingURL=OuterSubscriber.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/ReplaySubject.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/ReplaySubject.js ***! + \***************************************************************/ +/*! exports provided: ReplaySubject */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ReplaySubject\", function() { return ReplaySubject; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _scheduler_queue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./scheduler/queue */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/queue.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _operators_observeOn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./operators/observeOn */ \"./node_modules/rxjs/dist/esm5/internal/operators/observeOn.js\");\n/* harmony import */ var _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./util/ObjectUnsubscribedError */ \"./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js\");\n/* harmony import */ var _SubjectSubscription__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./SubjectSubscription */ \"./node_modules/rxjs/dist/esm5/internal/SubjectSubscription.js\");\n\n\n\n\n\n\n\nvar ReplaySubject = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ReplaySubject, _super);\n function ReplaySubject(bufferSize, windowTime, scheduler) {\n if (bufferSize === void 0) { bufferSize = Number.POSITIVE_INFINITY; }\n if (windowTime === void 0) { windowTime = Number.POSITIVE_INFINITY; }\n var _this = _super.call(this) || this;\n _this.scheduler = scheduler;\n _this._events = [];\n _this._infiniteTimeWindow = false;\n _this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n _this._windowTime = windowTime < 1 ? 1 : windowTime;\n if (windowTime === Number.POSITIVE_INFINITY) {\n _this._infiniteTimeWindow = true;\n _this.next = _this.nextInfiniteTimeWindow;\n }\n else {\n _this.next = _this.nextTimeWindow;\n }\n return _this;\n }\n ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) {\n var _events = this._events;\n _events.push(value);\n if (_events.length > this._bufferSize) {\n _events.shift();\n }\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype.nextTimeWindow = function (value) {\n this._events.push(new ReplayEvent(this._getNow(), value));\n this._trimBufferThenGetEvents();\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype._subscribe = function (subscriber) {\n var _infiniteTimeWindow = this._infiniteTimeWindow;\n var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();\n var scheduler = this.scheduler;\n var len = _events.length;\n var subscription;\n if (this.closed) {\n throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_5__[\"ObjectUnsubscribedError\"]();\n }\n else if (this.isStopped || this.hasError) {\n subscription = _Subscription__WEBPACK_IMPORTED_MODULE_3__[\"Subscription\"].EMPTY;\n }\n else {\n this.observers.push(subscriber);\n subscription = new _SubjectSubscription__WEBPACK_IMPORTED_MODULE_6__[\"SubjectSubscription\"](this, subscriber);\n }\n if (scheduler) {\n subscriber.add(subscriber = new _operators_observeOn__WEBPACK_IMPORTED_MODULE_4__[\"ObserveOnSubscriber\"](subscriber, scheduler));\n }\n if (_infiniteTimeWindow) {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i]);\n }\n }\n else {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i].value);\n }\n }\n if (this.hasError) {\n subscriber.error(this.thrownError);\n }\n else if (this.isStopped) {\n subscriber.complete();\n }\n return subscription;\n };\n ReplaySubject.prototype._getNow = function () {\n return (this.scheduler || _scheduler_queue__WEBPACK_IMPORTED_MODULE_2__[\"queue\"]).now();\n };\n ReplaySubject.prototype._trimBufferThenGetEvents = function () {\n var now = this._getNow();\n var _bufferSize = this._bufferSize;\n var _windowTime = this._windowTime;\n var _events = this._events;\n var eventsCount = _events.length;\n var spliceCount = 0;\n while (spliceCount < eventsCount) {\n if ((now - _events[spliceCount].time) < _windowTime) {\n break;\n }\n spliceCount++;\n }\n if (eventsCount > _bufferSize) {\n spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n }\n if (spliceCount > 0) {\n _events.splice(0, spliceCount);\n }\n return _events;\n };\n return ReplaySubject;\n}(_Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]));\n\nvar ReplayEvent = (function () {\n function ReplayEvent(time, value) {\n this.time = time;\n this.value = value;\n }\n return ReplayEvent;\n}());\n//# sourceMappingURL=ReplaySubject.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/ReplaySubject.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/Scheduler.js": +/*!***********************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/Scheduler.js ***! + \***********************************************************/ +/*! exports provided: Scheduler */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Scheduler\", function() { return Scheduler; });\nvar Scheduler = (function () {\n function Scheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n this.SchedulerAction = SchedulerAction;\n this.now = now;\n }\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n return new this.SchedulerAction(this, work).schedule(state, delay);\n };\n Scheduler.now = function () { return Date.now(); };\n return Scheduler;\n}());\n\n//# sourceMappingURL=Scheduler.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/Scheduler.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/Subject.js": +/*!*********************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/Subject.js ***! + \*********************************************************/ +/*! exports provided: SubjectSubscriber, Subject, AnonymousSubject */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SubjectSubscriber\", function() { return SubjectSubscriber; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Subject\", function() { return Subject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AnonymousSubject\", function() { return AnonymousSubject; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./util/ObjectUnsubscribedError */ \"./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js\");\n/* harmony import */ var _SubjectSubscription__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./SubjectSubscription */ \"./node_modules/rxjs/dist/esm5/internal/SubjectSubscription.js\");\n/* harmony import */ var _internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../internal/symbol/rxSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/symbol/rxSubscriber.js\");\n\n\n\n\n\n\n\nvar SubjectSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SubjectSubscriber, _super);\n function SubjectSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n return _this;\n }\n return SubjectSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_2__[\"Subscriber\"]));\n\nvar Subject = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.observers = [];\n _this.closed = false;\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype[_internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_6__[\"rxSubscriber\"]] = function () {\n return new SubjectSubscriber(this);\n };\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype.next = function (value) {\n if (this.closed) {\n throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__[\"ObjectUnsubscribedError\"]();\n }\n if (!this.isStopped) {\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n };\n Subject.prototype.error = function (err) {\n if (this.closed) {\n throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__[\"ObjectUnsubscribedError\"]();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n };\n Subject.prototype.complete = function () {\n if (this.closed) {\n throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__[\"ObjectUnsubscribedError\"]();\n }\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n };\n Subject.prototype._trySubscribe = function (subscriber) {\n if (this.closed) {\n throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__[\"ObjectUnsubscribedError\"]();\n }\n else {\n return _super.prototype._trySubscribe.call(this, subscriber);\n }\n };\n Subject.prototype._subscribe = function (subscriber) {\n if (this.closed) {\n throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__[\"ObjectUnsubscribedError\"]();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return _Subscription__WEBPACK_IMPORTED_MODULE_3__[\"Subscription\"].EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return _Subscription__WEBPACK_IMPORTED_MODULE_3__[\"Subscription\"].EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new _SubjectSubscription__WEBPACK_IMPORTED_MODULE_5__[\"SubjectSubscription\"](this, subscriber);\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new _Observable__WEBPACK_IMPORTED_MODULE_1__[\"Observable\"]();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(_Observable__WEBPACK_IMPORTED_MODULE_1__[\"Observable\"]));\n\nvar AnonymousSubject = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var destination = this.destination;\n if (destination && destination.next) {\n destination.next(value);\n }\n };\n AnonymousSubject.prototype.error = function (err) {\n var destination = this.destination;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n };\n AnonymousSubject.prototype.complete = function () {\n var destination = this.destination;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var source = this.source;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return _Subscription__WEBPACK_IMPORTED_MODULE_3__[\"Subscription\"].EMPTY;\n }\n };\n return AnonymousSubject;\n}(Subject));\n\n//# sourceMappingURL=Subject.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/Subject.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/SubjectSubscription.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/SubjectSubscription.js ***! + \*********************************************************************/ +/*! exports provided: SubjectSubscription */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SubjectSubscription\", function() { return SubjectSubscription; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n\n\nvar SubjectSubscription = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SubjectSubscription, _super);\n function SubjectSubscription(subject, subscriber) {\n var _this = _super.call(this) || this;\n _this.subject = subject;\n _this.subscriber = subscriber;\n _this.closed = false;\n return _this;\n }\n SubjectSubscription.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.closed = true;\n var subject = this.subject;\n var observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n var subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n };\n return SubjectSubscription;\n}(_Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]));\n\n//# sourceMappingURL=SubjectSubscription.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/SubjectSubscription.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/Subscriber.js": +/*!************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/Subscriber.js ***! + \************************************************************/ +/*! exports provided: Subscriber, SafeSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Subscriber\", function() { return Subscriber; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SafeSubscriber\", function() { return SafeSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/isFunction */ \"./node_modules/rxjs/dist/esm5/internal/util/isFunction.js\");\n/* harmony import */ var _Observer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Observer */ \"./node_modules/rxjs/dist/esm5/internal/Observer.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../internal/symbol/rxSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/symbol/rxSubscriber.js\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./config */ \"./node_modules/rxjs/dist/esm5/internal/config.js\");\n/* harmony import */ var _util_hostReportError__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./util/hostReportError */ \"./node_modules/rxjs/dist/esm5/internal/util/hostReportError.js\");\n\n\n\n\n\n\n\nvar Subscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(Subscriber, _super);\n function Subscriber(destinationOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this.syncErrorValue = null;\n _this.syncErrorThrown = false;\n _this.syncErrorThrowable = false;\n _this.isStopped = false;\n switch (arguments.length) {\n case 0:\n _this.destination = _Observer__WEBPACK_IMPORTED_MODULE_2__[\"empty\"];\n break;\n case 1:\n if (!destinationOrNext) {\n _this.destination = _Observer__WEBPACK_IMPORTED_MODULE_2__[\"empty\"];\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n _this.destination = destinationOrNext;\n destinationOrNext.add(_this);\n }\n else {\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext);\n }\n break;\n }\n default:\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);\n break;\n }\n return _this;\n }\n Subscriber.prototype[_internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_4__[\"rxSubscriber\"]] = function () { return this; };\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _parentOrParents = this._parentOrParents;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n };\n return Subscriber;\n}(_Subscription__WEBPACK_IMPORTED_MODULE_3__[\"Subscription\"]));\n\nvar SafeSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SafeSubscriber, _super);\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this._parentSubscriber = _parentSubscriber;\n var next;\n var context = _this;\n if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_1__[\"isFunction\"])(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== _Observer__WEBPACK_IMPORTED_MODULE_2__[\"empty\"]) {\n context = Object.create(observerOrNext);\n if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_1__[\"isFunction\"])(context.unsubscribe)) {\n _this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = _this.unsubscribe.bind(_this);\n }\n }\n _this._context = context;\n _this._next = next;\n _this._error = error;\n _this._complete = complete;\n return _this;\n }\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n if (!_config__WEBPACK_IMPORTED_MODULE_5__[\"config\"].useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n var useDeprecatedSynchronousErrorHandling = _config__WEBPACK_IMPORTED_MODULE_5__[\"config\"].useDeprecatedSynchronousErrorHandling;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_6__[\"hostReportError\"])(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_6__[\"hostReportError\"])(err);\n }\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._complete) {\n var wrappedComplete = function () { return _this._complete.call(_this._context); };\n if (!_config__WEBPACK_IMPORTED_MODULE_5__[\"config\"].useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (_config__WEBPACK_IMPORTED_MODULE_5__[\"config\"].useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_6__[\"hostReportError\"])(err);\n }\n }\n };\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n if (!_config__WEBPACK_IMPORTED_MODULE_5__[\"config\"].useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (_config__WEBPACK_IMPORTED_MODULE_5__[\"config\"].useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_6__[\"hostReportError\"])(err);\n return true;\n }\n }\n return false;\n };\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n };\n return SafeSubscriber;\n}(Subscriber));\n\n//# sourceMappingURL=Subscriber.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/Subscriber.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/Subscription.js": +/*!**************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/Subscription.js ***! + \**************************************************************/ +/*! exports provided: Subscription */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Subscription\", function() { return Subscription; });\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _util_isObject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/isObject */ \"./node_modules/rxjs/dist/esm5/internal/util/isObject.js\");\n/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/isFunction */ \"./node_modules/rxjs/dist/esm5/internal/util/isFunction.js\");\n/* harmony import */ var _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util/UnsubscriptionError */ \"./node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js\");\n\n\n\n\nvar Subscription = (function () {\n function Subscription(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._unsubscribe = unsubscribe;\n }\n }\n Subscription.prototype.unsubscribe = function () {\n var errors;\n if (this.closed) {\n return;\n }\n var _a = this, _parentOrParents = _a._parentOrParents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (var index = 0; index < _parentOrParents.length; ++index) {\n var parent_1 = _parentOrParents[index];\n parent_1.remove(this);\n }\n }\n if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_2__[\"isFunction\"])(_unsubscribe)) {\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_3__[\"UnsubscriptionError\"] ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (Object(_util_isArray__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(_subscriptions)) {\n var index = -1;\n var len = _subscriptions.length;\n while (++index < len) {\n var sub = _subscriptions[index];\n if (Object(_util_isObject__WEBPACK_IMPORTED_MODULE_1__[\"isObject\"])(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_3__[\"UnsubscriptionError\"]) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_3__[\"UnsubscriptionError\"](errors);\n }\n };\n Subscription.prototype.add = function (teardown) {\n var subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n var tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n var _parentOrParents = subscription._parentOrParents;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n var subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n };\n Subscription.prototype.remove = function (subscription) {\n var subscriptions = this._subscriptions;\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n Subscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n return Subscription;\n}());\n\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce(function (errs, err) { return errs.concat((err instanceof _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_3__[\"UnsubscriptionError\"]) ? err.errors : err); }, []);\n}\n//# sourceMappingURL=Subscription.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/Subscription.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/asyncIteratorFrom.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/asyncIteratorFrom.js ***! + \*******************************************************************/ +/*! exports provided: asyncIteratorFrom */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asyncIteratorFrom\", function() { return asyncIteratorFrom; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_deferred__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/deferred */ \"./node_modules/rxjs/dist/esm5/internal/util/deferred.js\");\n\n\nfunction asyncIteratorFrom(source) {\n return coroutine(source);\n}\nfunction coroutine(source) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__asyncGenerator\"])(this, arguments, function coroutine_1() {\n var deferreds, values, hasError, error, completed, subs, d, result, err_1;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n deferreds = [];\n values = [];\n hasError = false;\n error = null;\n completed = false;\n subs = source.subscribe({\n next: function (value) {\n if (deferreds.length > 0) {\n deferreds.shift().resolve({ value: value, done: false });\n }\n else {\n values.push(value);\n }\n },\n error: function (err) {\n hasError = true;\n error = err;\n while (deferreds.length > 0) {\n deferreds.shift().reject(err);\n }\n },\n complete: function () {\n completed = true;\n while (deferreds.length > 0) {\n deferreds.shift().resolve({ value: undefined, done: true });\n }\n },\n });\n _a.label = 1;\n case 1:\n _a.trys.push([1, 16, 17, 18]);\n _a.label = 2;\n case 2:\n if (false) {}\n if (!(values.length > 0)) return [3, 5];\n return [4, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__await\"])(values.shift())];\n case 3: return [4, _a.sent()];\n case 4:\n _a.sent();\n return [3, 14];\n case 5:\n if (!completed) return [3, 7];\n return [4, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__await\"])(void 0)];\n case 6: return [2, _a.sent()];\n case 7:\n if (!hasError) return [3, 8];\n throw error;\n case 8:\n d = new _util_deferred__WEBPACK_IMPORTED_MODULE_1__[\"Deferred\"]();\n deferreds.push(d);\n return [4, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__await\"])(d.promise)];\n case 9:\n result = _a.sent();\n if (!result.done) return [3, 11];\n return [4, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__await\"])(void 0)];\n case 10: return [2, _a.sent()];\n case 11: return [4, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__await\"])(result.value)];\n case 12: return [4, _a.sent()];\n case 13:\n _a.sent();\n _a.label = 14;\n case 14: return [3, 2];\n case 15: return [3, 18];\n case 16:\n err_1 = _a.sent();\n throw err_1;\n case 17:\n subs.unsubscribe();\n return [7];\n case 18: return [2];\n }\n });\n });\n}\n//# sourceMappingURL=asyncIteratorFrom.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/asyncIteratorFrom.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/config.js": +/*!********************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/config.js ***! + \********************************************************/ +/*! exports provided: config */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"config\", function() { return config; });\nvar _enable_super_gross_mode_that_will_cause_bad_things = false;\nvar config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n var error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n//# sourceMappingURL=config.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/config.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/firstValueFrom.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/firstValueFrom.js ***! + \****************************************************************/ +/*! exports provided: firstValueFrom */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"firstValueFrom\", function() { return firstValueFrom; });\n/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/EmptyError */ \"./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n\n\nfunction firstValueFrom(source$) {\n return new Promise(function (resolve, reject) {\n var subs = new _Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]();\n subs.add(source$.subscribe({\n next: function (value) {\n resolve(value);\n subs.unsubscribe();\n },\n error: reject,\n complete: function () {\n reject(new _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__[\"EmptyError\"]());\n },\n }));\n });\n}\n//# sourceMappingURL=firstValueFrom.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/firstValueFrom.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/lastValueFrom.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/lastValueFrom.js ***! + \***************************************************************/ +/*! exports provided: lastValueFrom */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"lastValueFrom\", function() { return lastValueFrom; });\n/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/EmptyError */ \"./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js\");\n\nfunction lastValueFrom(source) {\n return new Promise(function (resolve, reject) {\n var _hasValue = false;\n var _value;\n source.subscribe({\n next: function (value) {\n _value = value;\n _hasValue = true;\n },\n error: reject,\n complete: function () {\n if (_hasValue) {\n resolve(_value);\n }\n else {\n reject(new _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__[\"EmptyError\"]());\n }\n },\n });\n });\n}\n//# sourceMappingURL=lastValueFrom.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/lastValueFrom.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/ConnectableObservable.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/ConnectableObservable.js ***! + \**********************************************************************************/ +/*! exports provided: ConnectableObservable, connectableObservableDescriptor */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ConnectableObservable\", function() { return ConnectableObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"connectableObservableDescriptor\", function() { return connectableObservableDescriptor; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _operators_refCount__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../operators/refCount */ \"./node_modules/rxjs/dist/esm5/internal/operators/refCount.js\");\n\n\n\n\n\n\nvar ConnectableObservable = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ConnectableObservable, _super);\n function ConnectableObservable(source, subjectFactory) {\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.subjectFactory = subjectFactory;\n _this._refCount = 0;\n _this._isComplete = false;\n return _this;\n }\n ConnectableObservable.prototype._subscribe = function (subscriber) {\n return this.getSubject().subscribe(subscriber);\n };\n ConnectableObservable.prototype.getSubject = function () {\n var subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n };\n ConnectableObservable.prototype.connect = function () {\n var connection = this._connection;\n if (!connection) {\n this._isComplete = false;\n connection = this._connection = new _Subscription__WEBPACK_IMPORTED_MODULE_4__[\"Subscription\"]();\n connection.add(this.source\n .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n if (connection.closed) {\n this._connection = null;\n connection = _Subscription__WEBPACK_IMPORTED_MODULE_4__[\"Subscription\"].EMPTY;\n }\n }\n return connection;\n };\n ConnectableObservable.prototype.refCount = function () {\n return Object(_operators_refCount__WEBPACK_IMPORTED_MODULE_5__[\"refCount\"])()(this);\n };\n return ConnectableObservable;\n}(_Observable__WEBPACK_IMPORTED_MODULE_2__[\"Observable\"]));\n\nvar connectableObservableDescriptor = (function () {\n var connectableProto = ConnectableObservable.prototype;\n return {\n operator: { value: null },\n _refCount: { value: 0, writable: true },\n _subject: { value: null, writable: true },\n _connection: { value: null, writable: true },\n _subscribe: { value: connectableProto._subscribe },\n _isComplete: { value: connectableProto._isComplete, writable: true },\n getSubject: { value: connectableProto.getSubject },\n connect: { value: connectableProto.connect },\n refCount: { value: connectableProto.refCount }\n };\n})();\nvar ConnectableSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ConnectableSubscriber, _super);\n function ConnectableSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n ConnectableSubscriber.prototype._error = function (err) {\n this._unsubscribe();\n _super.prototype._error.call(this, err);\n };\n ConnectableSubscriber.prototype._complete = function () {\n this.connectable._isComplete = true;\n this._unsubscribe();\n _super.prototype._complete.call(this);\n };\n ConnectableSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (connectable) {\n this.connectable = null;\n var connection = connectable._connection;\n connectable._refCount = 0;\n connectable._subject = null;\n connectable._connection = null;\n if (connection) {\n connection.unsubscribe();\n }\n }\n };\n return ConnectableSubscriber;\n}(_Subject__WEBPACK_IMPORTED_MODULE_1__[\"SubjectSubscriber\"]));\nvar RefCountOperator = (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__[\"Subscriber\"]));\n//# sourceMappingURL=ConnectableObservable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/ConnectableObservable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/SubscribeOnObservable.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/SubscribeOnObservable.js ***! + \**********************************************************************************/ +/*! exports provided: SubscribeOnObservable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SubscribeOnObservable\", function() { return SubscribeOnObservable; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _scheduler_asap__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduler/asap */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/asap.js\");\n/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/isNumeric */ \"./node_modules/rxjs/dist/esm5/internal/util/isNumeric.js\");\n\n\n\n\nvar SubscribeOnObservable = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SubscribeOnObservable, _super);\n function SubscribeOnObservable(source, delayTime, scheduler) {\n if (delayTime === void 0) { delayTime = 0; }\n if (scheduler === void 0) { scheduler = _scheduler_asap__WEBPACK_IMPORTED_MODULE_2__[\"asap\"]; }\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.delayTime = delayTime;\n _this.scheduler = scheduler;\n if (!Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_3__[\"isNumeric\"])(delayTime) || delayTime < 0) {\n _this.delayTime = 0;\n }\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n _this.scheduler = _scheduler_asap__WEBPACK_IMPORTED_MODULE_2__[\"asap\"];\n }\n return _this;\n }\n SubscribeOnObservable.create = function (source, delay, scheduler) {\n if (delay === void 0) { delay = 0; }\n if (scheduler === void 0) { scheduler = _scheduler_asap__WEBPACK_IMPORTED_MODULE_2__[\"asap\"]; }\n return new SubscribeOnObservable(source, delay, scheduler);\n };\n SubscribeOnObservable.dispatch = function (arg) {\n var source = arg.source, subscriber = arg.subscriber;\n return this.add(source.subscribe(subscriber));\n };\n SubscribeOnObservable.prototype._subscribe = function (subscriber) {\n var delay = this.delayTime;\n var source = this.source;\n var scheduler = this.scheduler;\n return scheduler.schedule(SubscribeOnObservable.dispatch, delay, {\n source: source, subscriber: subscriber\n });\n };\n return SubscribeOnObservable;\n}(_Observable__WEBPACK_IMPORTED_MODULE_1__[\"Observable\"]));\n\n//# sourceMappingURL=SubscribeOnObservable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/SubscribeOnObservable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/bindCallback.js": +/*!*************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/bindCallback.js ***! + \*************************************************************************/ +/*! exports provided: bindCallback */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bindCallback\", function() { return bindCallback; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _AsyncSubject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../AsyncSubject */ \"./node_modules/rxjs/dist/esm5/internal/AsyncSubject.js\");\n/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../operators/map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n/* harmony import */ var _util_canReportError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/canReportError */ \"./node_modules/rxjs/dist/esm5/internal/util/canReportError.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n\n\n\n\n\n\n\nfunction bindCallback(callbackFunc, resultSelector, scheduler) {\n if (resultSelector) {\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_6__[\"isScheduler\"])(resultSelector)) {\n scheduler = resultSelector;\n }\n else {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return bindCallback(callbackFunc, scheduler).apply(void 0, args).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_5__[\"isArray\"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n };\n }\n }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var context = this;\n var subject;\n var params = {\n context: context,\n subject: undefined,\n callbackFunc: callbackFunc,\n scheduler: scheduler,\n };\n return new _Observable__WEBPACK_IMPORTED_MODULE_1__[\"Observable\"](function (subscriber) {\n if (!scheduler) {\n if (!subject) {\n subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_2__[\"AsyncSubject\"]();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n subject.complete();\n };\n try {\n callbackFunc.apply(context, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])(args, [handler]));\n }\n catch (err) {\n if (Object(_util_canReportError__WEBPACK_IMPORTED_MODULE_4__[\"canReportError\"])(subject)) {\n subject.error(err);\n }\n else {\n console.warn(err);\n }\n }\n }\n return subject.subscribe(subscriber);\n }\n else {\n var state = {\n args: args, subscriber: subscriber, params: params,\n };\n return scheduler.schedule(dispatch, 0, state);\n }\n });\n };\n}\nfunction dispatch(state) {\n var _this = this;\n var self = this;\n var args = state.args, subscriber = state.subscriber, params = state.params;\n var callbackFunc = params.callbackFunc, context = params.context, scheduler = params.scheduler;\n var subject = params.subject;\n if (!subject) {\n subject = params.subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_2__[\"AsyncSubject\"]();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));\n };\n try {\n callbackFunc.apply(context, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])(args, [handler]));\n }\n catch (err) {\n subject.error(err);\n }\n }\n this.add(subject.subscribe(subscriber));\n}\nfunction dispatchNext(state) {\n var value = state.value, subject = state.subject;\n subject.next(value);\n subject.complete();\n}\nfunction dispatchError(state) {\n var err = state.err, subject = state.subject;\n subject.error(err);\n}\n//# sourceMappingURL=bindCallback.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/bindCallback.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/bindNodeCallback.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/bindNodeCallback.js ***! + \*****************************************************************************/ +/*! exports provided: bindNodeCallback */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bindNodeCallback\", function() { return bindNodeCallback; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _AsyncSubject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../AsyncSubject */ \"./node_modules/rxjs/dist/esm5/internal/AsyncSubject.js\");\n/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../operators/map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n/* harmony import */ var _util_canReportError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/canReportError */ \"./node_modules/rxjs/dist/esm5/internal/util/canReportError.js\");\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n\n\n\n\n\n\n\nfunction bindNodeCallback(callbackFunc, resultSelector, scheduler) {\n if (resultSelector) {\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_5__[\"isScheduler\"])(resultSelector)) {\n scheduler = resultSelector;\n }\n else {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return bindNodeCallback(callbackFunc, scheduler).apply(void 0, args).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_6__[\"isArray\"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n };\n }\n }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var params = {\n subject: undefined,\n args: args,\n callbackFunc: callbackFunc,\n scheduler: scheduler,\n context: this,\n };\n return new _Observable__WEBPACK_IMPORTED_MODULE_1__[\"Observable\"](function (subscriber) {\n var context = params.context;\n var subject = params.subject;\n if (!scheduler) {\n if (!subject) {\n subject = params.subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_2__[\"AsyncSubject\"]();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n var err = innerArgs.shift();\n if (err) {\n subject.error(err);\n return;\n }\n subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n subject.complete();\n };\n try {\n callbackFunc.apply(context, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])(args, [handler]));\n }\n catch (err) {\n if (Object(_util_canReportError__WEBPACK_IMPORTED_MODULE_4__[\"canReportError\"])(subject)) {\n subject.error(err);\n }\n else {\n console.warn(err);\n }\n }\n }\n return subject.subscribe(subscriber);\n }\n else {\n return scheduler.schedule(dispatch, 0, { params: params, subscriber: subscriber, context: context });\n }\n });\n };\n}\nfunction dispatch(state) {\n var _this = this;\n var params = state.params, subscriber = state.subscriber, context = state.context;\n var callbackFunc = params.callbackFunc, args = params.args, scheduler = params.scheduler;\n var subject = params.subject;\n if (!subject) {\n subject = params.subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_2__[\"AsyncSubject\"]();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n var err = innerArgs.shift();\n if (err) {\n _this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));\n }\n else {\n var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));\n }\n };\n try {\n callbackFunc.apply(context, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])(args, [handler]));\n }\n catch (err) {\n this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));\n }\n }\n this.add(subject.subscribe(subscriber));\n}\nfunction dispatchNext(arg) {\n var value = arg.value, subject = arg.subject;\n subject.next(value);\n subject.complete();\n}\nfunction dispatchError(arg) {\n var err = arg.err, subject = arg.subject;\n subject.error(err);\n}\n//# sourceMappingURL=bindNodeCallback.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/bindNodeCallback.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js ***! + \**************************************************************************/ +/*! exports provided: combineLatest, CombineLatestOperator, CombineLatestSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"combineLatest\", function() { return combineLatest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CombineLatestOperator\", function() { return CombineLatestOperator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CombineLatestSubscriber\", function() { return CombineLatestSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./fromArray */ \"./node_modules/rxjs/dist/esm5/internal/observable/fromArray.js\");\n\n\n\n\n\n\nvar NONE = {};\nfunction combineLatest() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var resultSelector = undefined;\n var scheduler = undefined;\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_1__[\"isScheduler\"])(observables[observables.length - 1])) {\n scheduler = observables.pop();\n }\n if (typeof observables[observables.length - 1] === 'function') {\n resultSelector = observables.pop();\n }\n if (observables.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__[\"isArray\"])(observables[0])) {\n observables = observables[0];\n }\n return Object(_fromArray__WEBPACK_IMPORTED_MODULE_5__[\"fromArray\"])(observables, scheduler).lift(new CombineLatestOperator(resultSelector));\n}\nvar CombineLatestOperator = (function () {\n function CombineLatestOperator(resultSelector) {\n this.resultSelector = resultSelector;\n }\n CombineLatestOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));\n };\n return CombineLatestOperator;\n}());\n\nvar CombineLatestSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(CombineLatestSubscriber, _super);\n function CombineLatestSubscriber(destination, resultSelector) {\n var _this = _super.call(this, destination) || this;\n _this.resultSelector = resultSelector;\n _this.active = 0;\n _this.values = [];\n _this.observables = [];\n return _this;\n }\n CombineLatestSubscriber.prototype._next = function (observable) {\n this.values.push(NONE);\n this.observables.push(observable);\n };\n CombineLatestSubscriber.prototype._complete = function () {\n var observables = this.observables;\n var len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n this.active = len;\n this.toRespond = len;\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__[\"subscribeToResult\"])(this, observable, observable, i));\n }\n }\n };\n CombineLatestSubscriber.prototype.notifyComplete = function (unused) {\n if ((this.active -= 1) === 0) {\n this.destination.complete();\n }\n };\n CombineLatestSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var values = this.values;\n var oldVal = values[outerIndex];\n var toRespond = !this.toRespond\n ? 0\n : oldVal === NONE ? --this.toRespond : this.toRespond;\n values[outerIndex] = innerValue;\n if (toRespond === 0) {\n if (this.resultSelector) {\n this._tryResultSelector(values);\n }\n else {\n this.destination.next(values.slice());\n }\n }\n };\n CombineLatestSubscriber.prototype._tryResultSelector = function (values) {\n var result;\n try {\n result = this.resultSelector.apply(this, values);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return CombineLatestSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__[\"OuterSubscriber\"]));\n\n//# sourceMappingURL=combineLatest.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/concat.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/concat.js ***! + \*******************************************************************/ +/*! exports provided: concat */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"concat\", function() { return concat; });\n/* harmony import */ var _of__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./of */ \"./node_modules/rxjs/dist/esm5/internal/observable/of.js\");\n/* harmony import */ var _operators_concatAll__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../operators/concatAll */ \"./node_modules/rxjs/dist/esm5/internal/operators/concatAll.js\");\n\n\nfunction concat() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return Object(_operators_concatAll__WEBPACK_IMPORTED_MODULE_1__[\"concatAll\"])()(_of__WEBPACK_IMPORTED_MODULE_0__[\"of\"].apply(void 0, observables));\n}\n//# sourceMappingURL=concat.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/concat.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/defer.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/defer.js ***! + \******************************************************************/ +/*! exports provided: defer */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defer\", function() { return defer; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./empty */ \"./node_modules/rxjs/dist/esm5/internal/observable/empty.js\");\n\n\n\nfunction defer(observableFactory) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var input;\n try {\n input = observableFactory();\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var source = input ? Object(_from__WEBPACK_IMPORTED_MODULE_1__[\"from\"])(input) : _empty__WEBPACK_IMPORTED_MODULE_2__[\"EMPTY\"];\n return source.subscribe(subscriber);\n });\n}\n//# sourceMappingURL=defer.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/defer.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/dom/AjaxObservable.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/dom/AjaxObservable.js ***! + \*******************************************************************************/ +/*! exports provided: ajaxGet, ajaxPost, ajaxDelete, ajaxPut, ajaxPatch, ajaxGetJSON, AjaxObservable, AjaxSubscriber, AjaxResponse, AjaxError, AjaxTimeoutError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ajaxGet\", function() { return ajaxGet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ajaxPost\", function() { return ajaxPost; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ajaxDelete\", function() { return ajaxDelete; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ajaxPut\", function() { return ajaxPut; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ajaxPatch\", function() { return ajaxPatch; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ajaxGetJSON\", function() { return ajaxGetJSON; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AjaxObservable\", function() { return AjaxObservable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AjaxSubscriber\", function() { return AjaxSubscriber; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AjaxResponse\", function() { return AjaxResponse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AjaxError\", function() { return AjaxError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AjaxTimeoutError\", function() { return AjaxTimeoutError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_root__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/root */ \"./node_modules/rxjs/dist/esm5/internal/util/root.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../operators/map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n\n\n\n\n\nfunction getCORSRequest() {\n if (_util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].XMLHttpRequest) {\n return new _util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].XMLHttpRequest();\n }\n else if (!!_util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].XDomainRequest) {\n return new _util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].XDomainRequest();\n }\n else {\n throw new Error('CORS is not supported by your browser');\n }\n}\nfunction getXMLHttpRequest() {\n if (_util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].XMLHttpRequest) {\n return new _util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].XMLHttpRequest();\n }\n else {\n var progId = void 0;\n try {\n var progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];\n for (var i = 0; i < 3; i++) {\n try {\n progId = progIds[i];\n if (new _util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].ActiveXObject(progId)) {\n break;\n }\n }\n catch (e) {\n }\n }\n return new _util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].ActiveXObject(progId);\n }\n catch (e) {\n throw new Error('XMLHttpRequest is not supported by your browser');\n }\n }\n}\nfunction ajaxGet(url, headers) {\n return new AjaxObservable({ method: 'GET', url: url, headers: headers });\n}\nfunction ajaxPost(url, body, headers) {\n return new AjaxObservable({ method: 'POST', url: url, body: body, headers: headers });\n}\nfunction ajaxDelete(url, headers) {\n return new AjaxObservable({ method: 'DELETE', url: url, headers: headers });\n}\nfunction ajaxPut(url, body, headers) {\n return new AjaxObservable({ method: 'PUT', url: url, body: body, headers: headers });\n}\nfunction ajaxPatch(url, body, headers) {\n return new AjaxObservable({ method: 'PATCH', url: url, body: body, headers: headers });\n}\nvar mapResponse = Object(_operators_map__WEBPACK_IMPORTED_MODULE_4__[\"map\"])(function (x, index) { return x.response; });\nfunction ajaxGetJSON(url, headers) {\n return mapResponse(new AjaxObservable({\n method: 'GET',\n url: url,\n responseType: 'json',\n headers: headers\n }));\n}\nvar AjaxObservable = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AjaxObservable, _super);\n function AjaxObservable(urlOrRequest) {\n var _this = _super.call(this) || this;\n var request = {\n async: true,\n createXHR: function () {\n return this.crossDomain ? getCORSRequest() : getXMLHttpRequest();\n },\n crossDomain: true,\n withCredentials: false,\n headers: {},\n method: 'GET',\n responseType: 'json',\n timeout: 0\n };\n if (typeof urlOrRequest === 'string') {\n request.url = urlOrRequest;\n }\n else {\n for (var prop in urlOrRequest) {\n if (urlOrRequest.hasOwnProperty(prop)) {\n request[prop] = urlOrRequest[prop];\n }\n }\n }\n _this.request = request;\n return _this;\n }\n AjaxObservable.prototype._subscribe = function (subscriber) {\n return new AjaxSubscriber(subscriber, this.request);\n };\n AjaxObservable.create = (function () {\n var create = function (urlOrRequest) {\n return new AjaxObservable(urlOrRequest);\n };\n create.get = ajaxGet;\n create.post = ajaxPost;\n create.delete = ajaxDelete;\n create.put = ajaxPut;\n create.patch = ajaxPatch;\n create.getJSON = ajaxGetJSON;\n return create;\n })();\n return AjaxObservable;\n}(_Observable__WEBPACK_IMPORTED_MODULE_2__[\"Observable\"]));\n\nvar AjaxSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AjaxSubscriber, _super);\n function AjaxSubscriber(destination, request) {\n var _this = _super.call(this, destination) || this;\n _this.request = request;\n _this.done = false;\n var headers = request.headers = request.headers || {};\n if (!request.crossDomain && !_this.getHeader(headers, 'X-Requested-With')) {\n headers['X-Requested-With'] = 'XMLHttpRequest';\n }\n var contentTypeHeader = _this.getHeader(headers, 'Content-Type');\n if (!contentTypeHeader && !(_util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].FormData && request.body instanceof _util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].FormData) && typeof request.body !== 'undefined') {\n headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';\n }\n request.body = _this.serializeBody(request.body, _this.getHeader(request.headers, 'Content-Type'));\n _this.send();\n return _this;\n }\n AjaxSubscriber.prototype.next = function (e) {\n this.done = true;\n var _a = this, xhr = _a.xhr, request = _a.request, destination = _a.destination;\n var result;\n try {\n result = new AjaxResponse(e, xhr, request);\n }\n catch (err) {\n return destination.error(err);\n }\n destination.next(result);\n };\n AjaxSubscriber.prototype.send = function () {\n var _a = this, request = _a.request, _b = _a.request, user = _b.user, method = _b.method, url = _b.url, async = _b.async, password = _b.password, headers = _b.headers, body = _b.body;\n try {\n var xhr = this.xhr = request.createXHR();\n this.setupEvents(xhr, request);\n if (user) {\n xhr.open(method, url, async, user, password);\n }\n else {\n xhr.open(method, url, async);\n }\n if (async) {\n xhr.timeout = request.timeout;\n xhr.responseType = request.responseType;\n }\n if ('withCredentials' in xhr) {\n xhr.withCredentials = !!request.withCredentials;\n }\n this.setHeaders(xhr, headers);\n if (body) {\n xhr.send(body);\n }\n else {\n xhr.send();\n }\n }\n catch (err) {\n this.error(err);\n }\n };\n AjaxSubscriber.prototype.serializeBody = function (body, contentType) {\n if (!body || typeof body === 'string') {\n return body;\n }\n else if (_util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].FormData && body instanceof _util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].FormData) {\n return body;\n }\n if (contentType) {\n var splitIndex = contentType.indexOf(';');\n if (splitIndex !== -1) {\n contentType = contentType.substring(0, splitIndex);\n }\n }\n switch (contentType) {\n case 'application/x-www-form-urlencoded':\n return Object.keys(body).map(function (key) { return encodeURIComponent(key) + \"=\" + encodeURIComponent(body[key]); }).join('&');\n case 'application/json':\n return JSON.stringify(body);\n default:\n return body;\n }\n };\n AjaxSubscriber.prototype.setHeaders = function (xhr, headers) {\n for (var key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n };\n AjaxSubscriber.prototype.getHeader = function (headers, headerName) {\n for (var key in headers) {\n if (key.toLowerCase() === headerName.toLowerCase()) {\n return headers[key];\n }\n }\n return undefined;\n };\n AjaxSubscriber.prototype.setupEvents = function (xhr, request) {\n var progressSubscriber = request.progressSubscriber;\n function xhrTimeout(e) {\n var _a = xhrTimeout, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var error;\n try {\n error = new AjaxTimeoutError(this, request);\n }\n catch (err) {\n error = err;\n }\n subscriber.error(error);\n }\n xhr.ontimeout = xhrTimeout;\n xhrTimeout.request = request;\n xhrTimeout.subscriber = this;\n xhrTimeout.progressSubscriber = progressSubscriber;\n if (xhr.upload && 'withCredentials' in xhr) {\n if (progressSubscriber) {\n var xhrProgress_1;\n xhrProgress_1 = function (e) {\n var progressSubscriber = xhrProgress_1.progressSubscriber;\n progressSubscriber.next(e);\n };\n if (_util_root__WEBPACK_IMPORTED_MODULE_1__[\"root\"].XDomainRequest) {\n xhr.onprogress = xhrProgress_1;\n }\n else {\n xhr.upload.onprogress = xhrProgress_1;\n }\n xhrProgress_1.progressSubscriber = progressSubscriber;\n }\n var xhrError_1;\n xhrError_1 = function (e) {\n var _a = xhrError_1, progressSubscriber = _a.progressSubscriber, subscriber = _a.subscriber, request = _a.request;\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var error;\n try {\n error = new AjaxError('ajax error', this, request);\n }\n catch (err) {\n error = err;\n }\n subscriber.error(error);\n };\n xhr.onerror = xhrError_1;\n xhrError_1.request = request;\n xhrError_1.subscriber = this;\n xhrError_1.progressSubscriber = progressSubscriber;\n }\n function xhrReadyStateChange(e) {\n return;\n }\n xhr.onreadystatechange = xhrReadyStateChange;\n xhrReadyStateChange.subscriber = this;\n xhrReadyStateChange.progressSubscriber = progressSubscriber;\n xhrReadyStateChange.request = request;\n function xhrLoad(e) {\n var _a = xhrLoad, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n if (this.readyState === 4) {\n var status_1 = this.status === 1223 ? 204 : this.status;\n var response = (this.responseType === 'text' ? (this.response || this.responseText) : this.response);\n if (status_1 === 0) {\n status_1 = response ? 200 : 0;\n }\n if (status_1 < 400) {\n if (progressSubscriber) {\n progressSubscriber.complete();\n }\n subscriber.next(e);\n subscriber.complete();\n }\n else {\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var error = void 0;\n try {\n error = new AjaxError('ajax error ' + status_1, this, request);\n }\n catch (err) {\n error = err;\n }\n subscriber.error(error);\n }\n }\n }\n xhr.onload = xhrLoad;\n xhrLoad.subscriber = this;\n xhrLoad.progressSubscriber = progressSubscriber;\n xhrLoad.request = request;\n };\n AjaxSubscriber.prototype.unsubscribe = function () {\n var _a = this, done = _a.done, xhr = _a.xhr;\n if (!done && xhr && xhr.readyState !== 4 && typeof xhr.abort === 'function') {\n xhr.abort();\n }\n _super.prototype.unsubscribe.call(this);\n };\n return AjaxSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__[\"Subscriber\"]));\n\nvar AjaxResponse = (function () {\n function AjaxResponse(originalEvent, xhr, request) {\n this.originalEvent = originalEvent;\n this.xhr = xhr;\n this.request = request;\n this.status = xhr.status;\n this.responseType = xhr.responseType || request.responseType;\n this.response = parseXhrResponse(this.responseType, xhr);\n }\n return AjaxResponse;\n}());\n\nvar AjaxErrorImpl = (function () {\n function AjaxErrorImpl(message, xhr, request) {\n Error.call(this);\n this.message = message;\n this.name = 'AjaxError';\n this.xhr = xhr;\n this.request = request;\n this.status = xhr.status;\n this.responseType = xhr.responseType || request.responseType;\n this.response = parseXhrResponse(this.responseType, xhr);\n return this;\n }\n AjaxErrorImpl.prototype = Object.create(Error.prototype);\n return AjaxErrorImpl;\n})();\nvar AjaxError = AjaxErrorImpl;\nfunction parseJson(xhr) {\n if ('response' in xhr) {\n return xhr.responseType ? xhr.response : JSON.parse(xhr.response || xhr.responseText || 'null');\n }\n else {\n return JSON.parse(xhr.responseText || 'null');\n }\n}\nfunction parseXhrResponse(responseType, xhr) {\n switch (responseType) {\n case 'json':\n return parseJson(xhr);\n case 'xml':\n return xhr.responseXML;\n case 'text':\n default:\n return ('response' in xhr) ? xhr.response : xhr.responseText;\n }\n}\nvar AjaxTimeoutErrorImpl = (function () {\n function AjaxTimeoutErrorImpl(xhr, request) {\n AjaxError.call(this, 'ajax timeout', xhr, request);\n this.name = 'AjaxTimeoutError';\n return this;\n }\n AjaxTimeoutErrorImpl.prototype = Object.create(AjaxError.prototype);\n return AjaxTimeoutErrorImpl;\n})();\nvar AjaxTimeoutError = AjaxTimeoutErrorImpl;\n//# sourceMappingURL=AjaxObservable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/dom/AjaxObservable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/dom/ajax.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/dom/ajax.js ***! + \*********************************************************************/ +/*! exports provided: ajax */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ajax\", function() { return ajax; });\n/* harmony import */ var _AjaxObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AjaxObservable */ \"./node_modules/rxjs/dist/esm5/internal/observable/dom/AjaxObservable.js\");\n\nvar ajax = (function () { return _AjaxObservable__WEBPACK_IMPORTED_MODULE_0__[\"AjaxObservable\"].create; })();\n//# sourceMappingURL=ajax.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/dom/ajax.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/dom/animationFrames.js": +/*!********************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/dom/animationFrames.js ***! + \********************************************************************************/ +/*! exports provided: animationFrames */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"animationFrames\", function() { return animationFrames; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n\nfunction animationFrames(timestampProvider) {\n if (timestampProvider === void 0) { timestampProvider = Date; }\n return timestampProvider === Date ? DEFAULT_ANIMATION_FRAMES : animationFramesFactory(timestampProvider);\n}\nfunction animationFramesFactory(timestampProvider) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var id;\n var start = timestampProvider.now();\n var run = function () {\n subscriber.next(timestampProvider.now() - start);\n if (!subscriber.closed) {\n id = requestAnimationFrame(run);\n }\n };\n id = requestAnimationFrame(run);\n return function () { return cancelAnimationFrame(id); };\n });\n}\nvar DEFAULT_ANIMATION_FRAMES = animationFramesFactory(Date);\n//# sourceMappingURL=animationFrames.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/dom/animationFrames.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/empty.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/empty.js ***! + \******************************************************************/ +/*! exports provided: EMPTY, empty */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EMPTY\", function() { return EMPTY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"empty\", function() { return empty; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n\nvar EMPTY = new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) { return subscriber.complete(); });\nfunction empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/empty.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/forkJoin.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/forkJoin.js ***! + \*********************************************************************/ +/*! exports provided: forkJoin */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"forkJoin\", function() { return forkJoin; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../operators/map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n/* harmony import */ var _util_isObject__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/isObject */ \"./node_modules/rxjs/dist/esm5/internal/util/isObject.js\");\n/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n\n\n\n\n\nfunction forkJoin() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n if (sources.length === 1) {\n var first_1 = sources[0];\n if (Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__[\"isArray\"])(first_1)) {\n return forkJoinInternal(first_1, null);\n }\n if (Object(_util_isObject__WEBPACK_IMPORTED_MODULE_3__[\"isObject\"])(first_1) && Object.getPrototypeOf(first_1) === Object.prototype) {\n var keys = Object.keys(first_1);\n return forkJoinInternal(keys.map(function (key) { return first_1[key]; }), keys);\n }\n }\n if (typeof sources[sources.length - 1] === 'function') {\n var resultSelector_1 = sources.pop();\n sources = (sources.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__[\"isArray\"])(sources[0])) ? sources[0] : sources;\n return forkJoinInternal(sources, null).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_2__[\"map\"])(function (args) { return resultSelector_1.apply(void 0, args); }));\n }\n return forkJoinInternal(sources, null);\n}\nfunction forkJoinInternal(sources, keys) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var len = sources.length;\n if (len === 0) {\n subscriber.complete();\n return;\n }\n var values = new Array(len);\n var completed = 0;\n var emitted = 0;\n var _loop_1 = function (i) {\n var source = Object(_from__WEBPACK_IMPORTED_MODULE_4__[\"from\"])(sources[i]);\n var hasValue = false;\n subscriber.add(source.subscribe({\n next: function (value) {\n if (!hasValue) {\n hasValue = true;\n emitted++;\n }\n values[i] = value;\n },\n error: function (err) { return subscriber.error(err); },\n complete: function () {\n completed++;\n if (completed === len || !hasValue) {\n if (emitted === len) {\n subscriber.next(keys ?\n keys.reduce(function (result, key, i) { return (result[key] = values[i], result); }, {}) :\n values);\n }\n subscriber.complete();\n }\n }\n }));\n };\n for (var i = 0; i < len; i++) {\n _loop_1(i);\n }\n });\n}\n//# sourceMappingURL=forkJoin.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/forkJoin.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/from.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/from.js ***! + \*****************************************************************/ +/*! exports provided: from */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"from\", function() { return from; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _util_subscribeTo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/subscribeTo */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeTo.js\");\n/* harmony import */ var _scheduled_scheduled__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduled/scheduled */ \"./node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js\");\n\n\n\nfunction from(input, scheduler) {\n if (!scheduler) {\n if (input instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"]) {\n return input;\n }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](Object(_util_subscribeTo__WEBPACK_IMPORTED_MODULE_1__[\"subscribeTo\"])(input));\n }\n else {\n return Object(_scheduled_scheduled__WEBPACK_IMPORTED_MODULE_2__[\"scheduled\"])(input, scheduler);\n }\n}\n//# sourceMappingURL=from.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/from.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/fromArray.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/fromArray.js ***! + \**********************************************************************/ +/*! exports provided: fromArray */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fromArray\", function() { return fromArray; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _util_subscribeToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/subscribeToArray */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToArray.js\");\n/* harmony import */ var _scheduled_scheduleArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduled/scheduleArray */ \"./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js\");\n\n\n\nfunction fromArray(input, scheduler) {\n if (!scheduler) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](Object(_util_subscribeToArray__WEBPACK_IMPORTED_MODULE_1__[\"subscribeToArray\"])(input));\n }\n else {\n return Object(_scheduled_scheduleArray__WEBPACK_IMPORTED_MODULE_2__[\"scheduleArray\"])(input, scheduler);\n }\n}\n//# sourceMappingURL=fromArray.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/fromArray.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js ***! + \**********************************************************************/ +/*! exports provided: fromEvent */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fromEvent\", function() { return fromEvent; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isFunction */ \"./node_modules/rxjs/dist/esm5/internal/util/isFunction.js\");\n/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../operators/map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n\n\n\n\nfunction fromEvent(target, eventName, options, resultSelector) {\n if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_2__[\"isFunction\"])(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__[\"isArray\"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n function handler(e) {\n if (arguments.length > 1) {\n subscriber.next(Array.prototype.slice.call(arguments));\n }\n else {\n subscriber.next(e);\n }\n }\n setupSubscription(target, eventName, handler, subscriber, options);\n });\n}\nfunction setupSubscription(sourceObj, eventName, handler, subscriber, options) {\n var unsubscribe;\n if (isEventTarget(sourceObj)) {\n var source_1 = sourceObj;\n sourceObj.addEventListener(eventName, handler, options);\n unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); };\n }\n else if (isJQueryStyleEventEmitter(sourceObj)) {\n var source_2 = sourceObj;\n sourceObj.on(eventName, handler);\n unsubscribe = function () { return source_2.off(eventName, handler); };\n }\n else if (isNodeStyleEventEmitter(sourceObj)) {\n var source_3 = sourceObj;\n sourceObj.addListener(eventName, handler);\n unsubscribe = function () { return source_3.removeListener(eventName, handler); };\n }\n else if (sourceObj && sourceObj.length) {\n for (var i = 0, len = sourceObj.length; i < len; i++) {\n setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n }\n }\n else {\n throw new TypeError('Invalid event target');\n }\n subscriber.add(unsubscribe);\n}\nfunction isNodeStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\nfunction isJQueryStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\nfunction isEventTarget(sourceObj) {\n return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n//# sourceMappingURL=fromEvent.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/fromEventPattern.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/fromEventPattern.js ***! + \*****************************************************************************/ +/*! exports provided: fromEventPattern */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fromEventPattern\", function() { return fromEventPattern; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isFunction */ \"./node_modules/rxjs/dist/esm5/internal/util/isFunction.js\");\n/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../operators/map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n\n\n\n\nfunction fromEventPattern(addHandler, removeHandler, resultSelector) {\n if (resultSelector) {\n return fromEventPattern(addHandler, removeHandler).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__[\"isArray\"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var handler = function () {\n var e = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n e[_i] = arguments[_i];\n }\n return subscriber.next(e.length === 1 ? e[0] : e);\n };\n var retValue;\n try {\n retValue = addHandler(handler);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_2__[\"isFunction\"])(removeHandler)) {\n return undefined;\n }\n return function () { return removeHandler(handler, retValue); };\n });\n}\n//# sourceMappingURL=fromEventPattern.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/fromEventPattern.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/generate.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/generate.js ***! + \*********************************************************************/ +/*! exports provided: generate */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"generate\", function() { return generate; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/identity */ \"./node_modules/rxjs/dist/esm5/internal/util/identity.js\");\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n\n\n\nfunction generate(initialStateOrOptions, condition, iterate, resultSelectorOrScheduler, scheduler) {\n var resultSelector;\n var initialState;\n if (arguments.length == 1) {\n var options = initialStateOrOptions;\n initialState = options.initialState;\n condition = options.condition;\n iterate = options.iterate;\n resultSelector = options.resultSelector || _util_identity__WEBPACK_IMPORTED_MODULE_1__[\"identity\"];\n scheduler = options.scheduler;\n }\n else if (resultSelectorOrScheduler === undefined || Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_2__[\"isScheduler\"])(resultSelectorOrScheduler)) {\n initialState = initialStateOrOptions;\n resultSelector = _util_identity__WEBPACK_IMPORTED_MODULE_1__[\"identity\"];\n scheduler = resultSelectorOrScheduler;\n }\n else {\n initialState = initialStateOrOptions;\n resultSelector = resultSelectorOrScheduler;\n }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var state = initialState;\n if (scheduler) {\n return scheduler.schedule(dispatch, 0, {\n subscriber: subscriber,\n iterate: iterate,\n condition: condition,\n resultSelector: resultSelector,\n state: state\n });\n }\n do {\n if (condition) {\n var conditionResult = void 0;\n try {\n conditionResult = condition(state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!conditionResult) {\n subscriber.complete();\n break;\n }\n }\n var value = void 0;\n try {\n value = resultSelector(state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n subscriber.next(value);\n if (subscriber.closed) {\n break;\n }\n try {\n state = iterate(state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n } while (true);\n return undefined;\n });\n}\nfunction dispatch(state) {\n var subscriber = state.subscriber, condition = state.condition;\n if (subscriber.closed) {\n return undefined;\n }\n if (state.needIterate) {\n try {\n state.state = state.iterate(state.state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n }\n else {\n state.needIterate = true;\n }\n if (condition) {\n var conditionResult = void 0;\n try {\n conditionResult = condition(state.state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!conditionResult) {\n subscriber.complete();\n return undefined;\n }\n if (subscriber.closed) {\n return undefined;\n }\n }\n var value;\n try {\n value = state.resultSelector(state.state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (subscriber.closed) {\n return undefined;\n }\n subscriber.next(value);\n if (subscriber.closed) {\n return undefined;\n }\n return this.schedule(state);\n}\n//# sourceMappingURL=generate.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/generate.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/iif.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/iif.js ***! + \****************************************************************/ +/*! exports provided: iif */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"iif\", function() { return iif; });\n/* harmony import */ var _defer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defer */ \"./node_modules/rxjs/dist/esm5/internal/observable/defer.js\");\n/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./empty */ \"./node_modules/rxjs/dist/esm5/internal/observable/empty.js\");\n\n\nfunction iif(condition, trueResult, falseResult) {\n if (trueResult === void 0) { trueResult = _empty__WEBPACK_IMPORTED_MODULE_1__[\"EMPTY\"]; }\n if (falseResult === void 0) { falseResult = _empty__WEBPACK_IMPORTED_MODULE_1__[\"EMPTY\"]; }\n return Object(_defer__WEBPACK_IMPORTED_MODULE_0__[\"defer\"])(function () { return condition() ? trueResult : falseResult; });\n}\n//# sourceMappingURL=iif.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/iif.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/interval.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/interval.js ***! + \*********************************************************************/ +/*! exports provided: interval */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"interval\", function() { return interval; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isNumeric */ \"./node_modules/rxjs/dist/esm5/internal/util/isNumeric.js\");\n\n\n\nfunction interval(period, scheduler) {\n if (period === void 0) { period = 0; }\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__[\"async\"]; }\n if (!Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_2__[\"isNumeric\"])(period) || period < 0) {\n period = 0;\n }\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__[\"async\"];\n }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n subscriber.add(scheduler.schedule(dispatch, period, { subscriber: subscriber, counter: 0, period: period }));\n return subscriber;\n });\n}\nfunction dispatch(state) {\n var subscriber = state.subscriber, counter = state.counter, period = state.period;\n subscriber.next(counter);\n this.schedule({ subscriber: subscriber, counter: counter + 1, period: period }, period);\n}\n//# sourceMappingURL=interval.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/interval.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/merge.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/merge.js ***! + \******************************************************************/ +/*! exports provided: merge */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"merge\", function() { return merge; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n/* harmony import */ var _operators_mergeAll__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../operators/mergeAll */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js\");\n/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fromArray */ \"./node_modules/rxjs/dist/esm5/internal/observable/fromArray.js\");\n\n\n\n\nfunction merge() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var concurrent = Number.POSITIVE_INFINITY;\n var scheduler = undefined;\n var last = observables[observables.length - 1];\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_1__[\"isScheduler\"])(last)) {\n scheduler = observables.pop();\n if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n concurrent = observables.pop();\n }\n }\n else if (typeof last === 'number') {\n concurrent = observables.pop();\n }\n if (!scheduler && observables.length === 1 && observables[0] instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"]) {\n return observables[0];\n }\n return Object(_operators_mergeAll__WEBPACK_IMPORTED_MODULE_2__[\"mergeAll\"])(concurrent)(Object(_fromArray__WEBPACK_IMPORTED_MODULE_3__[\"fromArray\"])(observables, scheduler));\n}\n//# sourceMappingURL=merge.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/merge.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/never.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/never.js ***! + \******************************************************************/ +/*! exports provided: NEVER, never */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NEVER\", function() { return NEVER; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"never\", function() { return never; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _util_noop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/noop */ \"./node_modules/rxjs/dist/esm5/internal/util/noop.js\");\n\n\nvar NEVER = new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](_util_noop__WEBPACK_IMPORTED_MODULE_1__[\"noop\"]);\nfunction never() {\n return NEVER;\n}\n//# sourceMappingURL=never.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/never.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/of.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/of.js ***! + \***************************************************************/ +/*! exports provided: of */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"of\", function() { return of; });\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./fromArray */ \"./node_modules/rxjs/dist/esm5/internal/observable/fromArray.js\");\n/* harmony import */ var _scheduled_scheduleArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduled/scheduleArray */ \"./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js\");\n\n\n\nfunction of() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = args[args.length - 1];\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_0__[\"isScheduler\"])(scheduler)) {\n args.pop();\n return Object(_scheduled_scheduleArray__WEBPACK_IMPORTED_MODULE_2__[\"scheduleArray\"])(args, scheduler);\n }\n else {\n return Object(_fromArray__WEBPACK_IMPORTED_MODULE_1__[\"fromArray\"])(args);\n }\n}\n//# sourceMappingURL=of.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/of.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/onErrorResumeNext.js": +/*!******************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/onErrorResumeNext.js ***! + \******************************************************************************/ +/*! exports provided: onErrorResumeNext */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onErrorResumeNext\", function() { return onErrorResumeNext; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./empty */ \"./node_modules/rxjs/dist/esm5/internal/observable/empty.js\");\n\n\n\n\nfunction onErrorResumeNext() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n if (sources.length === 0) {\n return _empty__WEBPACK_IMPORTED_MODULE_3__[\"EMPTY\"];\n }\n var first = sources[0], remainder = sources.slice(1);\n if (sources.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__[\"isArray\"])(first)) {\n return onErrorResumeNext.apply(void 0, first);\n }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var subNext = function () { return subscriber.add(onErrorResumeNext.apply(void 0, remainder).subscribe(subscriber)); };\n return Object(_from__WEBPACK_IMPORTED_MODULE_1__[\"from\"])(first).subscribe({\n next: function (value) { subscriber.next(value); },\n error: subNext,\n complete: subNext,\n });\n });\n}\n//# sourceMappingURL=onErrorResumeNext.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/onErrorResumeNext.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/pairs.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/pairs.js ***! + \******************************************************************/ +/*! exports provided: pairs, dispatch */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pairs\", function() { return pairs; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dispatch\", function() { return dispatch; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n\n\nfunction pairs(obj, scheduler) {\n if (!scheduler) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length && !subscriber.closed; i++) {\n var key = keys[i];\n if (obj.hasOwnProperty(key)) {\n subscriber.next([key, obj[key]]);\n }\n }\n subscriber.complete();\n });\n }\n else {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var keys = Object.keys(obj);\n var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]();\n subscription.add(scheduler.schedule(dispatch, 0, { keys: keys, index: 0, subscriber: subscriber, subscription: subscription, obj: obj }));\n return subscription;\n });\n }\n}\nfunction dispatch(state) {\n var keys = state.keys, index = state.index, subscriber = state.subscriber, subscription = state.subscription, obj = state.obj;\n if (!subscriber.closed) {\n if (index < keys.length) {\n var key = keys[index];\n subscriber.next([key, obj[key]]);\n subscription.add(this.schedule({ keys: keys, index: index + 1, subscriber: subscriber, subscription: subscription, obj: obj }));\n }\n else {\n subscriber.complete();\n }\n }\n}\n//# sourceMappingURL=pairs.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/pairs.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/partition.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/partition.js ***! + \**********************************************************************/ +/*! exports provided: partition */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"partition\", function() { return partition; });\n/* harmony import */ var _util_not__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/not */ \"./node_modules/rxjs/dist/esm5/internal/util/not.js\");\n/* harmony import */ var _util_subscribeTo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/subscribeTo */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeTo.js\");\n/* harmony import */ var _operators_filter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../operators/filter */ \"./node_modules/rxjs/dist/esm5/internal/operators/filter.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n\n\n\n\nfunction partition(source, predicate, thisArg) {\n return [\n Object(_operators_filter__WEBPACK_IMPORTED_MODULE_2__[\"filter\"])(predicate, thisArg)(new _Observable__WEBPACK_IMPORTED_MODULE_3__[\"Observable\"](Object(_util_subscribeTo__WEBPACK_IMPORTED_MODULE_1__[\"subscribeTo\"])(source))),\n Object(_operators_filter__WEBPACK_IMPORTED_MODULE_2__[\"filter\"])(Object(_util_not__WEBPACK_IMPORTED_MODULE_0__[\"not\"])(predicate, thisArg))(new _Observable__WEBPACK_IMPORTED_MODULE_3__[\"Observable\"](Object(_util_subscribeTo__WEBPACK_IMPORTED_MODULE_1__[\"subscribeTo\"])(source)))\n ];\n}\n//# sourceMappingURL=partition.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/partition.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/race.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/race.js ***! + \*****************************************************************/ +/*! exports provided: race, RaceOperator, RaceSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"race\", function() { return race; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RaceOperator\", function() { return RaceOperator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RaceSubscriber\", function() { return RaceSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fromArray */ \"./node_modules/rxjs/dist/esm5/internal/observable/fromArray.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\n\n\nfunction race() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n if (observables.length === 1) {\n if (Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__[\"isArray\"])(observables[0])) {\n observables = observables[0];\n }\n else {\n return Object(_from__WEBPACK_IMPORTED_MODULE_2__[\"from\"])(observables[0]);\n }\n }\n return Object(_fromArray__WEBPACK_IMPORTED_MODULE_3__[\"fromArray\"])(observables, undefined).lift(new RaceOperator());\n}\nvar RaceOperator = (function () {\n function RaceOperator() {\n }\n RaceOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RaceSubscriber(subscriber));\n };\n return RaceOperator;\n}());\n\nvar RaceSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(RaceSubscriber, _super);\n function RaceSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.hasFirst = false;\n _this.observables = [];\n _this.subscriptions = [];\n return _this;\n }\n RaceSubscriber.prototype._next = function (observable) {\n this.observables.push(observable);\n };\n RaceSubscriber.prototype._complete = function () {\n var observables = this.observables;\n var len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n for (var i = 0; i < len && !this.hasFirst; i++) {\n var observable = observables[i];\n var subscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__[\"subscribeToResult\"])(this, observable, observable, i);\n if (this.subscriptions) {\n this.subscriptions.push(subscription);\n }\n this.add(subscription);\n }\n this.observables = null;\n }\n };\n RaceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n if (!this.hasFirst) {\n this.hasFirst = true;\n for (var i = 0; i < this.subscriptions.length; i++) {\n if (i !== outerIndex) {\n var subscription = this.subscriptions[i];\n subscription.unsubscribe();\n this.remove(subscription);\n }\n }\n this.subscriptions = null;\n }\n this.destination.next(innerValue);\n };\n RaceSubscriber.prototype.notifyComplete = function (innerSub) {\n this.hasFirst = true;\n _super.prototype.notifyComplete.call(this, innerSub);\n };\n RaceSubscriber.prototype.notifyError = function (error, innerSub) {\n this.hasFirst = true;\n _super.prototype.notifyError.call(this, error, innerSub);\n };\n return RaceSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__[\"OuterSubscriber\"]));\n\n//# sourceMappingURL=race.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/race.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/range.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/range.js ***! + \******************************************************************/ +/*! exports provided: range, dispatch */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"range\", function() { return range; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dispatch\", function() { return dispatch; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n\nfunction range(start, count, scheduler) {\n if (start === void 0) { start = 0; }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n if (count === undefined) {\n count = start;\n start = 0;\n }\n var index = 0;\n var current = start;\n if (scheduler) {\n return scheduler.schedule(dispatch, 0, {\n index: index, count: count, start: start, subscriber: subscriber\n });\n }\n else {\n do {\n if (index++ >= count) {\n subscriber.complete();\n break;\n }\n subscriber.next(current++);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n }\n return undefined;\n });\n}\nfunction dispatch(state) {\n var start = state.start, index = state.index, count = state.count, subscriber = state.subscriber;\n if (index >= count) {\n subscriber.complete();\n return;\n }\n subscriber.next(start);\n if (subscriber.closed) {\n return;\n }\n state.index = index + 1;\n state.start = start + 1;\n this.schedule(state);\n}\n//# sourceMappingURL=range.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/range.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/throwError.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/throwError.js ***! + \***********************************************************************/ +/*! exports provided: throwError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"throwError\", function() { return throwError; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n\nfunction throwError(error, scheduler) {\n if (!scheduler) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) { return subscriber.error(error); });\n }\n else {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); });\n }\n}\nfunction dispatch(_a) {\n var error = _a.error, subscriber = _a.subscriber;\n subscriber.error(error);\n}\n//# sourceMappingURL=throwError.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/throwError.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/timer.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/timer.js ***! + \******************************************************************/ +/*! exports provided: timer */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timer\", function() { return timer; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isNumeric */ \"./node_modules/rxjs/dist/esm5/internal/util/isNumeric.js\");\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n\n\n\n\nfunction timer(dueTime, periodOrScheduler, scheduler) {\n if (dueTime === void 0) { dueTime = 0; }\n var period = -1;\n if (Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_2__[\"isNumeric\"])(periodOrScheduler)) {\n period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler);\n }\n else if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_3__[\"isScheduler\"])(periodOrScheduler)) {\n scheduler = periodOrScheduler;\n }\n if (!Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_3__[\"isScheduler\"])(scheduler)) {\n scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__[\"async\"];\n }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var due = Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_2__[\"isNumeric\"])(dueTime)\n ? dueTime\n : (+dueTime - scheduler.now());\n return scheduler.schedule(dispatch, due, {\n index: 0, period: period, subscriber: subscriber\n });\n });\n}\nfunction dispatch(state) {\n var index = state.index, period = state.period, subscriber = state.subscriber;\n subscriber.next(index);\n if (subscriber.closed) {\n return;\n }\n else if (period === -1) {\n return subscriber.complete();\n }\n state.index = index + 1;\n this.schedule(state, period);\n}\n//# sourceMappingURL=timer.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/timer.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/using.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/using.js ***! + \******************************************************************/ +/*! exports provided: using */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"using\", function() { return using; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./empty */ \"./node_modules/rxjs/dist/esm5/internal/observable/empty.js\");\n\n\n\nfunction using(resourceFactory, observableFactory) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var resource;\n try {\n resource = resourceFactory();\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var result;\n try {\n result = observableFactory(resource);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var source = result ? Object(_from__WEBPACK_IMPORTED_MODULE_1__[\"from\"])(result) : _empty__WEBPACK_IMPORTED_MODULE_2__[\"EMPTY\"];\n var subscription = source.subscribe(subscriber);\n return function () {\n subscription.unsubscribe();\n if (resource) {\n resource.unsubscribe();\n }\n };\n });\n}\n//# sourceMappingURL=using.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/using.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/observable/zip.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/observable/zip.js ***! + \****************************************************************/ +/*! exports provided: zip, ZipOperator, ZipSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"zip\", function() { return zip; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ZipOperator\", function() { return ZipOperator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ZipSubscriber\", function() { return ZipSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./fromArray */ \"./node_modules/rxjs/dist/esm5/internal/observable/fromArray.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n/* harmony import */ var _internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../internal/symbol/iterator */ \"./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js\");\n\n\n\n\n\n\n\nfunction zip() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var last = observables[observables.length - 1];\n var resultSelector = undefined;\n if (typeof last === 'function') {\n resultSelector = observables.pop();\n }\n return Object(_fromArray__WEBPACK_IMPORTED_MODULE_1__[\"fromArray\"])(observables, undefined).lift(new ZipOperator(resultSelector));\n}\nvar ZipOperator = (function () {\n function ZipOperator(resultSelector) {\n this.resultSelector = resultSelector;\n }\n ZipOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector));\n };\n return ZipOperator;\n}());\n\nvar ZipSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ZipSubscriber, _super);\n function ZipSubscriber(destination, resultSelector, values) {\n if (values === void 0) { values = Object.create(null); }\n var _this = _super.call(this, destination) || this;\n _this.iterators = [];\n _this.active = 0;\n _this.resultSelector = resultSelector;\n _this.values = values;\n return _this;\n }\n ZipSubscriber.prototype._next = function (value) {\n var iterators = this.iterators;\n if (Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__[\"isArray\"])(value)) {\n iterators.push(new StaticArrayIterator(value));\n }\n else if (typeof value[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__[\"iterator\"]] === 'function') {\n iterators.push(new StaticIterator(value[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__[\"iterator\"]]()));\n }\n else {\n iterators.push(new ZipBufferIterator(this.destination, this, value));\n }\n };\n ZipSubscriber.prototype._complete = function () {\n var iterators = this.iterators;\n var len = iterators.length;\n this.unsubscribe();\n if (len === 0) {\n this.destination.complete();\n return;\n }\n this.active = len;\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n if (iterator.stillUnsubscribed) {\n var destination = this.destination;\n destination.add(iterator.subscribe(iterator, i));\n }\n else {\n this.active--;\n }\n }\n };\n ZipSubscriber.prototype.notifyInactive = function () {\n this.active--;\n if (this.active === 0) {\n this.destination.complete();\n }\n };\n ZipSubscriber.prototype.checkIterators = function () {\n var iterators = this.iterators;\n var len = iterators.length;\n var destination = this.destination;\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) {\n return;\n }\n }\n var shouldComplete = false;\n var args = [];\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n var result = iterator.next();\n if (iterator.hasCompleted()) {\n shouldComplete = true;\n }\n if (result.done) {\n destination.complete();\n return;\n }\n args.push(result.value);\n }\n if (this.resultSelector) {\n this._tryresultSelector(args);\n }\n else {\n destination.next(args);\n }\n if (shouldComplete) {\n destination.complete();\n }\n };\n ZipSubscriber.prototype._tryresultSelector = function (args) {\n var result;\n try {\n result = this.resultSelector.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return ZipSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__[\"Subscriber\"]));\n\nvar StaticIterator = (function () {\n function StaticIterator(iterator) {\n this.iterator = iterator;\n this.nextResult = iterator.next();\n }\n StaticIterator.prototype.hasValue = function () {\n return true;\n };\n StaticIterator.prototype.next = function () {\n var result = this.nextResult;\n this.nextResult = this.iterator.next();\n return result;\n };\n StaticIterator.prototype.hasCompleted = function () {\n var nextResult = this.nextResult;\n return nextResult && !!nextResult.done;\n };\n return StaticIterator;\n}());\nvar StaticArrayIterator = (function () {\n function StaticArrayIterator(array) {\n this.array = array;\n this.index = 0;\n this.length = 0;\n this.length = array.length;\n }\n StaticArrayIterator.prototype[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__[\"iterator\"]] = function () {\n return this;\n };\n StaticArrayIterator.prototype.next = function (value) {\n var i = this.index++;\n var array = this.array;\n return i < this.length ? { value: array[i], done: false } : { value: null, done: true };\n };\n StaticArrayIterator.prototype.hasValue = function () {\n return this.array.length > this.index;\n };\n StaticArrayIterator.prototype.hasCompleted = function () {\n return this.array.length === this.index;\n };\n return StaticArrayIterator;\n}());\nvar ZipBufferIterator = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ZipBufferIterator, _super);\n function ZipBufferIterator(destination, parent, observable) {\n var _this = _super.call(this, destination) || this;\n _this.parent = parent;\n _this.observable = observable;\n _this.stillUnsubscribed = true;\n _this.buffer = [];\n _this.isComplete = false;\n return _this;\n }\n ZipBufferIterator.prototype[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__[\"iterator\"]] = function () {\n return this;\n };\n ZipBufferIterator.prototype.next = function () {\n var buffer = this.buffer;\n if (buffer.length === 0 && this.isComplete) {\n return { value: null, done: true };\n }\n else {\n return { value: buffer.shift(), done: false };\n }\n };\n ZipBufferIterator.prototype.hasValue = function () {\n return this.buffer.length > 0;\n };\n ZipBufferIterator.prototype.hasCompleted = function () {\n return this.buffer.length === 0 && this.isComplete;\n };\n ZipBufferIterator.prototype.notifyComplete = function () {\n if (this.buffer.length > 0) {\n this.isComplete = true;\n this.parent.notifyInactive();\n }\n else {\n this.destination.complete();\n }\n };\n ZipBufferIterator.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.buffer.push(innerValue);\n this.parent.checkIterators();\n };\n ZipBufferIterator.prototype.subscribe = function (value, index) {\n return Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__[\"subscribeToResult\"])(this, this.observable, this, index);\n };\n return ZipBufferIterator;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__[\"OuterSubscriber\"]));\n//# sourceMappingURL=zip.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/observable/zip.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/audit.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/audit.js ***! + \*****************************************************************/ +/*! exports provided: audit */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"audit\", function() { return audit; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nfunction audit(durationSelector) {\n return function auditOperatorFunction(source) {\n return source.lift(new AuditOperator(durationSelector));\n };\n}\nvar AuditOperator = (function () {\n function AuditOperator(durationSelector) {\n this.durationSelector = durationSelector;\n }\n AuditOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector));\n };\n return AuditOperator;\n}());\nvar AuditSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AuditSubscriber, _super);\n function AuditSubscriber(destination, durationSelector) {\n var _this = _super.call(this, destination) || this;\n _this.durationSelector = durationSelector;\n _this.value = null;\n _this.hasValue = false;\n _this.throttled = null;\n return _this;\n }\n AuditSubscriber.prototype._next = function (value) {\n this.value = value;\n this.hasValue = true;\n if (!this.throttled) {\n var duration = void 0;\n try {\n var durationSelector = this.durationSelector;\n duration = durationSelector(value);\n }\n catch (err) {\n return this.destination.error(err);\n }\n var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(this, duration);\n if (!innerSubscription || innerSubscription.closed) {\n this.clearThrottle();\n }\n else {\n this.add(this.throttled = innerSubscription);\n }\n }\n };\n AuditSubscriber.prototype.clearThrottle = function () {\n var _a = this, value = _a.value, hasValue = _a.hasValue, throttled = _a.throttled;\n if (throttled) {\n this.remove(throttled);\n this.throttled = null;\n throttled.unsubscribe();\n }\n if (hasValue) {\n this.value = null;\n this.hasValue = false;\n this.destination.next(value);\n }\n };\n AuditSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex) {\n this.clearThrottle();\n };\n AuditSubscriber.prototype.notifyComplete = function () {\n this.clearThrottle();\n };\n return AuditSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=audit.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/audit.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/auditTime.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/auditTime.js ***! + \*********************************************************************/ +/*! exports provided: auditTime */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"auditTime\", function() { return auditTime; });\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _audit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./audit */ \"./node_modules/rxjs/dist/esm5/internal/operators/audit.js\");\n/* harmony import */ var _observable_timer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../observable/timer */ \"./node_modules/rxjs/dist/esm5/internal/observable/timer.js\");\n\n\n\nfunction auditTime(duration, scheduler) {\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__[\"async\"]; }\n return Object(_audit__WEBPACK_IMPORTED_MODULE_1__[\"audit\"])(function () { return Object(_observable_timer__WEBPACK_IMPORTED_MODULE_2__[\"timer\"])(duration, scheduler); });\n}\n//# sourceMappingURL=auditTime.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/auditTime.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/buffer.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/buffer.js ***! + \******************************************************************/ +/*! exports provided: buffer */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"buffer\", function() { return buffer; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nfunction buffer(closingNotifier) {\n return function bufferOperatorFunction(source) {\n return source.lift(new BufferOperator(closingNotifier));\n };\n}\nvar BufferOperator = (function () {\n function BufferOperator(closingNotifier) {\n this.closingNotifier = closingNotifier;\n }\n BufferOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier));\n };\n return BufferOperator;\n}());\nvar BufferSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(BufferSubscriber, _super);\n function BufferSubscriber(destination, closingNotifier) {\n var _this = _super.call(this, destination) || this;\n _this.buffer = [];\n _this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(_this, closingNotifier));\n return _this;\n }\n BufferSubscriber.prototype._next = function (value) {\n this.buffer.push(value);\n };\n BufferSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var buffer = this.buffer;\n this.buffer = [];\n this.destination.next(buffer);\n };\n return BufferSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=buffer.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/buffer.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/bufferCount.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/bufferCount.js ***! + \***********************************************************************/ +/*! exports provided: bufferCount */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bufferCount\", function() { return bufferCount; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction bufferCount(bufferSize, startBufferEvery) {\n if (startBufferEvery === void 0) { startBufferEvery = null; }\n return function bufferCountOperatorFunction(source) {\n return source.lift(new BufferCountOperator(bufferSize, startBufferEvery));\n };\n}\nvar BufferCountOperator = (function () {\n function BufferCountOperator(bufferSize, startBufferEvery) {\n this.bufferSize = bufferSize;\n this.startBufferEvery = startBufferEvery;\n if (!startBufferEvery || bufferSize === startBufferEvery) {\n this.subscriberClass = BufferCountSubscriber;\n }\n else {\n this.subscriberClass = BufferSkipCountSubscriber;\n }\n }\n BufferCountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery));\n };\n return BufferCountOperator;\n}());\nvar BufferCountSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(BufferCountSubscriber, _super);\n function BufferCountSubscriber(destination, bufferSize) {\n var _this = _super.call(this, destination) || this;\n _this.bufferSize = bufferSize;\n _this.buffer = [];\n return _this;\n }\n BufferCountSubscriber.prototype._next = function (value) {\n var buffer = this.buffer;\n buffer.push(value);\n if (buffer.length == this.bufferSize) {\n this.destination.next(buffer);\n this.buffer = [];\n }\n };\n BufferCountSubscriber.prototype._complete = function () {\n var buffer = this.buffer;\n if (buffer.length > 0) {\n this.destination.next(buffer);\n }\n _super.prototype._complete.call(this);\n };\n return BufferCountSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\nvar BufferSkipCountSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(BufferSkipCountSubscriber, _super);\n function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) {\n var _this = _super.call(this, destination) || this;\n _this.bufferSize = bufferSize;\n _this.startBufferEvery = startBufferEvery;\n _this.buffers = [];\n _this.count = 0;\n return _this;\n }\n BufferSkipCountSubscriber.prototype._next = function (value) {\n var _a = this, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers, count = _a.count;\n this.count++;\n if (count % startBufferEvery === 0) {\n buffers.push([]);\n }\n for (var i = buffers.length; i--;) {\n var buffer = buffers[i];\n buffer.push(value);\n if (buffer.length === bufferSize) {\n buffers.splice(i, 1);\n this.destination.next(buffer);\n }\n }\n };\n BufferSkipCountSubscriber.prototype._complete = function () {\n var _a = this, buffers = _a.buffers, destination = _a.destination;\n while (buffers.length > 0) {\n var buffer = buffers.shift();\n if (buffer.length > 0) {\n destination.next(buffer);\n }\n }\n _super.prototype._complete.call(this);\n };\n return BufferSkipCountSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=bufferCount.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/bufferCount.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/bufferTime.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/bufferTime.js ***! + \**********************************************************************/ +/*! exports provided: bufferTime */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bufferTime\", function() { return bufferTime; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n\n\n\n\nfunction bufferTime(bufferTimeSpan) {\n var length = arguments.length;\n var scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__[\"async\"];\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_3__[\"isScheduler\"])(arguments[arguments.length - 1])) {\n scheduler = arguments[arguments.length - 1];\n length--;\n }\n var bufferCreationInterval = null;\n if (length >= 2) {\n bufferCreationInterval = arguments[1];\n }\n var maxBufferSize = Number.POSITIVE_INFINITY;\n if (length >= 3) {\n maxBufferSize = arguments[2];\n }\n return function bufferTimeOperatorFunction(source) {\n return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler));\n };\n}\nvar BufferTimeOperator = (function () {\n function BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n this.bufferTimeSpan = bufferTimeSpan;\n this.bufferCreationInterval = bufferCreationInterval;\n this.maxBufferSize = maxBufferSize;\n this.scheduler = scheduler;\n }\n BufferTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferTimeSubscriber(subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler));\n };\n return BufferTimeOperator;\n}());\nvar Context = (function () {\n function Context() {\n this.buffer = [];\n }\n return Context;\n}());\nvar BufferTimeSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(BufferTimeSubscriber, _super);\n function BufferTimeSubscriber(destination, bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.bufferTimeSpan = bufferTimeSpan;\n _this.bufferCreationInterval = bufferCreationInterval;\n _this.maxBufferSize = maxBufferSize;\n _this.scheduler = scheduler;\n _this.contexts = [];\n var context = _this.openContext();\n _this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0;\n if (_this.timespanOnly) {\n var timeSpanOnlyState = { subscriber: _this, context: context, bufferTimeSpan: bufferTimeSpan };\n _this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n }\n else {\n var closeState = { subscriber: _this, context: context };\n var creationState = { bufferTimeSpan: bufferTimeSpan, bufferCreationInterval: bufferCreationInterval, subscriber: _this, scheduler: scheduler };\n _this.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState));\n _this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState));\n }\n return _this;\n }\n BufferTimeSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n var len = contexts.length;\n var filledBufferContext;\n for (var i = 0; i < len; i++) {\n var context_1 = contexts[i];\n var buffer = context_1.buffer;\n buffer.push(value);\n if (buffer.length == this.maxBufferSize) {\n filledBufferContext = context_1;\n }\n }\n if (filledBufferContext) {\n this.onBufferFull(filledBufferContext);\n }\n };\n BufferTimeSubscriber.prototype._error = function (err) {\n this.contexts.length = 0;\n _super.prototype._error.call(this, err);\n };\n BufferTimeSubscriber.prototype._complete = function () {\n var _a = this, contexts = _a.contexts, destination = _a.destination;\n while (contexts.length > 0) {\n var context_2 = contexts.shift();\n destination.next(context_2.buffer);\n }\n _super.prototype._complete.call(this);\n };\n BufferTimeSubscriber.prototype._unsubscribe = function () {\n this.contexts = null;\n };\n BufferTimeSubscriber.prototype.onBufferFull = function (context) {\n this.closeContext(context);\n var closeAction = context.closeAction;\n closeAction.unsubscribe();\n this.remove(closeAction);\n if (!this.closed && this.timespanOnly) {\n context = this.openContext();\n var bufferTimeSpan = this.bufferTimeSpan;\n var timeSpanOnlyState = { subscriber: this, context: context, bufferTimeSpan: bufferTimeSpan };\n this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n }\n };\n BufferTimeSubscriber.prototype.openContext = function () {\n var context = new Context();\n this.contexts.push(context);\n return context;\n };\n BufferTimeSubscriber.prototype.closeContext = function (context) {\n this.destination.next(context.buffer);\n var contexts = this.contexts;\n var spliceIndex = contexts ? contexts.indexOf(context) : -1;\n if (spliceIndex >= 0) {\n contexts.splice(contexts.indexOf(context), 1);\n }\n };\n return BufferTimeSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_2__[\"Subscriber\"]));\nfunction dispatchBufferTimeSpanOnly(state) {\n var subscriber = state.subscriber;\n var prevContext = state.context;\n if (prevContext) {\n subscriber.closeContext(prevContext);\n }\n if (!subscriber.closed) {\n state.context = subscriber.openContext();\n state.context.closeAction = this.schedule(state, state.bufferTimeSpan);\n }\n}\nfunction dispatchBufferCreation(state) {\n var bufferCreationInterval = state.bufferCreationInterval, bufferTimeSpan = state.bufferTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler;\n var context = subscriber.openContext();\n var action = this;\n if (!subscriber.closed) {\n subscriber.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, { subscriber: subscriber, context: context }));\n action.schedule(state, bufferCreationInterval);\n }\n}\nfunction dispatchBufferClose(arg) {\n var subscriber = arg.subscriber, context = arg.context;\n subscriber.closeContext(context);\n}\n//# sourceMappingURL=bufferTime.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/bufferTime.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/bufferToggle.js": +/*!************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/bufferToggle.js ***! + \************************************************************************/ +/*! exports provided: bufferToggle */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bufferToggle\", function() { return bufferToggle; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n\n\n\n\nfunction bufferToggle(openings, closingSelector) {\n return function bufferToggleOperatorFunction(source) {\n return source.lift(new BufferToggleOperator(openings, closingSelector));\n };\n}\nvar BufferToggleOperator = (function () {\n function BufferToggleOperator(openings, closingSelector) {\n this.openings = openings;\n this.closingSelector = closingSelector;\n }\n BufferToggleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector));\n };\n return BufferToggleOperator;\n}());\nvar BufferToggleSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(BufferToggleSubscriber, _super);\n function BufferToggleSubscriber(destination, openings, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.openings = openings;\n _this.closingSelector = closingSelector;\n _this.contexts = [];\n _this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(_this, openings));\n return _this;\n }\n BufferToggleSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n var len = contexts.length;\n for (var i = 0; i < len; i++) {\n contexts[i].buffer.push(value);\n }\n };\n BufferToggleSubscriber.prototype._error = function (err) {\n var contexts = this.contexts;\n while (contexts.length > 0) {\n var context_1 = contexts.shift();\n context_1.subscription.unsubscribe();\n context_1.buffer = null;\n context_1.subscription = null;\n }\n this.contexts = null;\n _super.prototype._error.call(this, err);\n };\n BufferToggleSubscriber.prototype._complete = function () {\n var contexts = this.contexts;\n while (contexts.length > 0) {\n var context_2 = contexts.shift();\n this.destination.next(context_2.buffer);\n context_2.subscription.unsubscribe();\n context_2.buffer = null;\n context_2.subscription = null;\n }\n this.contexts = null;\n _super.prototype._complete.call(this);\n };\n BufferToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue);\n };\n BufferToggleSubscriber.prototype.notifyComplete = function (innerSub) {\n this.closeBuffer(innerSub.context);\n };\n BufferToggleSubscriber.prototype.openBuffer = function (value) {\n try {\n var closingSelector = this.closingSelector;\n var closingNotifier = closingSelector.call(this, value);\n if (closingNotifier) {\n this.trySubscribe(closingNotifier);\n }\n }\n catch (err) {\n this._error(err);\n }\n };\n BufferToggleSubscriber.prototype.closeBuffer = function (context) {\n var contexts = this.contexts;\n if (contexts && context) {\n var buffer = context.buffer, subscription = context.subscription;\n this.destination.next(buffer);\n contexts.splice(contexts.indexOf(context), 1);\n this.remove(subscription);\n subscription.unsubscribe();\n }\n };\n BufferToggleSubscriber.prototype.trySubscribe = function (closingNotifier) {\n var contexts = this.contexts;\n var buffer = [];\n var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]();\n var context = { buffer: buffer, subscription: subscription };\n contexts.push(context);\n var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(this, closingNotifier, context);\n if (!innerSubscription || innerSubscription.closed) {\n this.closeBuffer(context);\n }\n else {\n innerSubscription.context = context;\n this.add(innerSubscription);\n subscription.add(innerSubscription);\n }\n };\n return BufferToggleSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__[\"OuterSubscriber\"]));\n//# sourceMappingURL=bufferToggle.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/bufferToggle.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/bufferWhen.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/bufferWhen.js ***! + \**********************************************************************/ +/*! exports provided: bufferWhen */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bufferWhen\", function() { return bufferWhen; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\nfunction bufferWhen(closingSelector) {\n return function (source) {\n return source.lift(new BufferWhenOperator(closingSelector));\n };\n}\nvar BufferWhenOperator = (function () {\n function BufferWhenOperator(closingSelector) {\n this.closingSelector = closingSelector;\n }\n BufferWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector));\n };\n return BufferWhenOperator;\n}());\nvar BufferWhenSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(BufferWhenSubscriber, _super);\n function BufferWhenSubscriber(destination, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.closingSelector = closingSelector;\n _this.subscribing = false;\n _this.openBuffer();\n return _this;\n }\n BufferWhenSubscriber.prototype._next = function (value) {\n this.buffer.push(value);\n };\n BufferWhenSubscriber.prototype._complete = function () {\n var buffer = this.buffer;\n if (buffer) {\n this.destination.next(buffer);\n }\n _super.prototype._complete.call(this);\n };\n BufferWhenSubscriber.prototype._unsubscribe = function () {\n this.buffer = null;\n this.subscribing = false;\n };\n BufferWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.openBuffer();\n };\n BufferWhenSubscriber.prototype.notifyComplete = function () {\n if (this.subscribing) {\n this.complete();\n }\n else {\n this.openBuffer();\n }\n };\n BufferWhenSubscriber.prototype.openBuffer = function () {\n var closingSubscription = this.closingSubscription;\n if (closingSubscription) {\n this.remove(closingSubscription);\n closingSubscription.unsubscribe();\n }\n var buffer = this.buffer;\n if (this.buffer) {\n this.destination.next(buffer);\n }\n this.buffer = [];\n var closingNotifier;\n try {\n var closingSelector = this.closingSelector;\n closingNotifier = closingSelector();\n }\n catch (err) {\n return this.error(err);\n }\n closingSubscription = new _Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]();\n this.closingSubscription = closingSubscription;\n this.add(closingSubscription);\n this.subscribing = true;\n closingSubscription.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToResult\"])(this, closingNotifier));\n this.subscribing = false;\n };\n return BufferWhenSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"OuterSubscriber\"]));\n//# sourceMappingURL=bufferWhen.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/bufferWhen.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/catchError.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/catchError.js ***! + \**********************************************************************/ +/*! exports provided: catchError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"catchError\", function() { return catchError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../InnerSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\nfunction catchError(selector) {\n return function catchErrorOperatorFunction(source) {\n var operator = new CatchOperator(selector);\n var caught = source.lift(operator);\n return (operator.caught = caught);\n };\n}\nvar CatchOperator = (function () {\n function CatchOperator(selector) {\n this.selector = selector;\n }\n CatchOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));\n };\n return CatchOperator;\n}());\nvar CatchSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(CatchSubscriber, _super);\n function CatchSubscriber(destination, selector, caught) {\n var _this = _super.call(this, destination) || this;\n _this.selector = selector;\n _this.caught = caught;\n return _this;\n }\n CatchSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var result = void 0;\n try {\n result = this.selector(err, this.caught);\n }\n catch (err2) {\n _super.prototype.error.call(this, err2);\n return;\n }\n this._unsubscribeAndRecycle();\n var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"InnerSubscriber\"](this, undefined, undefined);\n this.add(innerSubscriber);\n var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToResult\"])(this, result, undefined, undefined, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n this.add(innerSubscription);\n }\n }\n };\n return CatchSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=catchError.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/catchError.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/combineAll.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/combineAll.js ***! + \**********************************************************************/ +/*! exports provided: combineAll */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"combineAll\", function() { return combineAll; });\n/* harmony import */ var _observable_combineLatest__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../observable/combineLatest */ \"./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js\");\n\nfunction combineAll(project) {\n return function (source) { return source.lift(new _observable_combineLatest__WEBPACK_IMPORTED_MODULE_0__[\"CombineLatestOperator\"](project)); };\n}\n//# sourceMappingURL=combineAll.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/combineAll.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/combineLatestWith.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/combineLatestWith.js ***! + \*****************************************************************************/ +/*! exports provided: combineLatest, combineLatestWith */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"combineLatest\", function() { return combineLatest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"combineLatestWith\", function() { return combineLatestWith; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _observable_combineLatest__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../observable/combineLatest */ \"./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js\");\n/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../observable/from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n\n\n\n\nfunction combineLatest() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var project = undefined;\n if (typeof observables[observables.length - 1] === 'function') {\n project = observables.pop();\n }\n if (observables.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__[\"isArray\"])(observables[0])) {\n observables = observables[0].slice();\n }\n return function (source) { return source.lift.call(Object(_observable_from__WEBPACK_IMPORTED_MODULE_3__[\"from\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])([source], observables)), new _observable_combineLatest__WEBPACK_IMPORTED_MODULE_2__[\"CombineLatestOperator\"](project)); };\n}\nfunction combineLatestWith() {\n var otherSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n otherSources[_i] = arguments[_i];\n }\n return combineLatest.apply(void 0, otherSources);\n}\n//# sourceMappingURL=combineLatestWith.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/combineLatestWith.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/concat.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/concat.js ***! + \******************************************************************/ +/*! exports provided: concat */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"concat\", function() { return concat; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _observable_concat__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../observable/concat */ \"./node_modules/rxjs/dist/esm5/internal/observable/concat.js\");\n\n\nfunction concat() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function (source) { return source.lift.call(_observable_concat__WEBPACK_IMPORTED_MODULE_1__[\"concat\"].apply(void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])([source], observables)), undefined); };\n}\n//# sourceMappingURL=concat.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/concat.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/concatAll.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/concatAll.js ***! + \*********************************************************************/ +/*! exports provided: concatAll */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"concatAll\", function() { return concatAll; });\n/* harmony import */ var _mergeAll__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mergeAll */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js\");\n\nfunction concatAll() {\n return Object(_mergeAll__WEBPACK_IMPORTED_MODULE_0__[\"mergeAll\"])(1);\n}\n//# sourceMappingURL=concatAll.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/concatAll.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/concatMap.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/concatMap.js ***! + \*********************************************************************/ +/*! exports provided: concatMap */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"concatMap\", function() { return concatMap; });\n/* harmony import */ var _mergeMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mergeMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js\");\n\nfunction concatMap(project, resultSelector) {\n if (typeof resultSelector === 'function') {\n return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__[\"mergeMap\"])(project, resultSelector, 1);\n }\n return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__[\"mergeMap\"])(project, 1);\n}\n//# sourceMappingURL=concatMap.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/concatMap.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/concatMapTo.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/concatMapTo.js ***! + \***********************************************************************/ +/*! exports provided: concatMapTo */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"concatMapTo\", function() { return concatMapTo; });\n/* harmony import */ var _concatMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./concatMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/concatMap.js\");\n\nfunction concatMapTo(innerObservable, resultSelector) {\n if (typeof resultSelector === 'function') {\n return Object(_concatMap__WEBPACK_IMPORTED_MODULE_0__[\"concatMap\"])(function () { return innerObservable; }, resultSelector);\n }\n return Object(_concatMap__WEBPACK_IMPORTED_MODULE_0__[\"concatMap\"])(function () { return innerObservable; });\n}\n//# sourceMappingURL=concatMapTo.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/concatMapTo.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/concatWith.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/concatWith.js ***! + \**********************************************************************/ +/*! exports provided: concatWith */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"concatWith\", function() { return concatWith; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _observable_concat__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../observable/concat */ \"./node_modules/rxjs/dist/esm5/internal/observable/concat.js\");\n\n\nfunction concatWith() {\n var otherSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n otherSources[_i] = arguments[_i];\n }\n return function (source) { return source.lift.call(_observable_concat__WEBPACK_IMPORTED_MODULE_1__[\"concat\"].apply(void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])([source], otherSources)), undefined); };\n}\n//# sourceMappingURL=concatWith.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/concatWith.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/count.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/count.js ***! + \*****************************************************************/ +/*! exports provided: count */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"count\", function() { return count; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction count(predicate) {\n return function (source) { return source.lift(new CountOperator(predicate, source)); };\n}\nvar CountOperator = (function () {\n function CountOperator(predicate, source) {\n this.predicate = predicate;\n this.source = source;\n }\n CountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source));\n };\n return CountOperator;\n}());\nvar CountSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(CountSubscriber, _super);\n function CountSubscriber(destination, predicate, source) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.source = source;\n _this.count = 0;\n _this.index = 0;\n return _this;\n }\n CountSubscriber.prototype._next = function (value) {\n if (this.predicate) {\n this._tryPredicate(value);\n }\n else {\n this.count++;\n }\n };\n CountSubscriber.prototype._tryPredicate = function (value) {\n var result;\n try {\n result = this.predicate(value, this.index++, this.source);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.count++;\n }\n };\n CountSubscriber.prototype._complete = function () {\n this.destination.next(this.count);\n this.destination.complete();\n };\n return CountSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=count.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/count.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/debounce.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/debounce.js ***! + \********************************************************************/ +/*! exports provided: debounce */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"debounce\", function() { return debounce; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nfunction debounce(durationSelector) {\n return function (source) { return source.lift(new DebounceOperator(durationSelector)); };\n}\nvar DebounceOperator = (function () {\n function DebounceOperator(durationSelector) {\n this.durationSelector = durationSelector;\n }\n DebounceOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector));\n };\n return DebounceOperator;\n}());\nvar DebounceSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(DebounceSubscriber, _super);\n function DebounceSubscriber(destination, durationSelector) {\n var _this = _super.call(this, destination) || this;\n _this.durationSelector = durationSelector;\n _this.value = null;\n _this.hasValue = false;\n _this.durationSubscription = null;\n return _this;\n }\n DebounceSubscriber.prototype._next = function (value) {\n try {\n var result = this.durationSelector.call(this, value);\n if (result) {\n this._tryNext(value, result);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n DebounceSubscriber.prototype._complete = function () {\n this.emitValue();\n this.destination.complete();\n };\n DebounceSubscriber.prototype._tryNext = function (value, duration) {\n var subscription = this.durationSubscription;\n this.value = value;\n this.hasValue = true;\n if (subscription) {\n subscription.unsubscribe();\n this.remove(subscription);\n }\n subscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(this, duration);\n if (subscription && !subscription.closed) {\n this.add(this.durationSubscription = subscription);\n }\n };\n DebounceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.emitValue();\n };\n DebounceSubscriber.prototype.notifyComplete = function () {\n this.emitValue();\n };\n DebounceSubscriber.prototype.emitValue = function () {\n if (this.hasValue) {\n var value = this.value;\n var subscription = this.durationSubscription;\n if (subscription) {\n this.durationSubscription = null;\n subscription.unsubscribe();\n this.remove(subscription);\n }\n this.value = null;\n this.hasValue = false;\n _super.prototype._next.call(this, value);\n }\n };\n return DebounceSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=debounce.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/debounce.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js": +/*!************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js ***! + \************************************************************************/ +/*! exports provided: debounceTime */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"debounceTime\", function() { return debounceTime; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n\n\n\nfunction debounceTime(dueTime, scheduler) {\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_2__[\"async\"]; }\n return function (source) { return source.lift(new DebounceTimeOperator(dueTime, scheduler)); };\n}\nvar DebounceTimeOperator = (function () {\n function DebounceTimeOperator(dueTime, scheduler) {\n this.dueTime = dueTime;\n this.scheduler = scheduler;\n }\n DebounceTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler));\n };\n return DebounceTimeOperator;\n}());\nvar DebounceTimeSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(DebounceTimeSubscriber, _super);\n function DebounceTimeSubscriber(destination, dueTime, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.dueTime = dueTime;\n _this.scheduler = scheduler;\n _this.debouncedSubscription = null;\n _this.lastValue = null;\n _this.hasValue = false;\n return _this;\n }\n DebounceTimeSubscriber.prototype._next = function (value) {\n this.clearDebounce();\n this.lastValue = value;\n this.hasValue = true;\n this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this));\n };\n DebounceTimeSubscriber.prototype._complete = function () {\n this.debouncedNext();\n this.destination.complete();\n };\n DebounceTimeSubscriber.prototype.debouncedNext = function () {\n this.clearDebounce();\n if (this.hasValue) {\n var lastValue = this.lastValue;\n this.lastValue = null;\n this.hasValue = false;\n this.destination.next(lastValue);\n }\n };\n DebounceTimeSubscriber.prototype.clearDebounce = function () {\n var debouncedSubscription = this.debouncedSubscription;\n if (debouncedSubscription !== null) {\n this.remove(debouncedSubscription);\n debouncedSubscription.unsubscribe();\n this.debouncedSubscription = null;\n }\n };\n return DebounceTimeSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\nfunction dispatchNext(subscriber) {\n subscriber.debouncedNext();\n}\n//# sourceMappingURL=debounceTime.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js ***! + \**************************************************************************/ +/*! exports provided: defaultIfEmpty */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultIfEmpty\", function() { return defaultIfEmpty; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction defaultIfEmpty(defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n return function (source) { return source.lift(new DefaultIfEmptyOperator(defaultValue)); };\n}\nvar DefaultIfEmptyOperator = (function () {\n function DefaultIfEmptyOperator(defaultValue) {\n this.defaultValue = defaultValue;\n }\n DefaultIfEmptyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));\n };\n return DefaultIfEmptyOperator;\n}());\nvar DefaultIfEmptySubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(DefaultIfEmptySubscriber, _super);\n function DefaultIfEmptySubscriber(destination, defaultValue) {\n var _this = _super.call(this, destination) || this;\n _this.defaultValue = defaultValue;\n _this.isEmpty = true;\n return _this;\n }\n DefaultIfEmptySubscriber.prototype._next = function (value) {\n this.isEmpty = false;\n this.destination.next(value);\n };\n DefaultIfEmptySubscriber.prototype._complete = function () {\n if (this.isEmpty) {\n this.destination.next(this.defaultValue);\n }\n this.destination.complete();\n };\n return DefaultIfEmptySubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=defaultIfEmpty.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/delay.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/delay.js ***! + \*****************************************************************/ +/*! exports provided: delay */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"delay\", function() { return delay; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _util_isDate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isDate */ \"./node_modules/rxjs/dist/esm5/internal/util/isDate.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _Notification__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Notification */ \"./node_modules/rxjs/dist/esm5/internal/Notification.js\");\n\n\n\n\n\nfunction delay(delay, scheduler) {\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__[\"async\"]; }\n var absoluteDelay = Object(_util_isDate__WEBPACK_IMPORTED_MODULE_2__[\"isDate\"])(delay);\n var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);\n return function (source) { return source.lift(new DelayOperator(delayFor, scheduler)); };\n}\nvar DelayOperator = (function () {\n function DelayOperator(delay, scheduler) {\n this.delay = delay;\n this.scheduler = scheduler;\n }\n DelayOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));\n };\n return DelayOperator;\n}());\nvar DelaySubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(DelaySubscriber, _super);\n function DelaySubscriber(destination, delay, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.delay = delay;\n _this.scheduler = scheduler;\n _this.queue = [];\n _this.active = false;\n _this.errored = false;\n return _this;\n }\n DelaySubscriber.dispatch = function (state) {\n var source = state.source;\n var queue = source.queue;\n var scheduler = state.scheduler;\n var destination = state.destination;\n while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {\n queue.shift().notification.observe(destination);\n }\n if (queue.length > 0) {\n var delay_1 = Math.max(0, queue[0].time - scheduler.now());\n this.schedule(state, delay_1);\n }\n else if (source.isStopped) {\n source.destination.complete();\n source.active = false;\n }\n else {\n this.unsubscribe();\n source.active = false;\n }\n };\n DelaySubscriber.prototype._schedule = function (scheduler) {\n this.active = true;\n var destination = this.destination;\n destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {\n source: this, destination: this.destination, scheduler: scheduler\n }));\n };\n DelaySubscriber.prototype.scheduleNotification = function (notification) {\n if (this.errored === true) {\n return;\n }\n var scheduler = this.scheduler;\n var message = new DelayMessage(scheduler.now() + this.delay, notification);\n this.queue.push(message);\n if (this.active === false) {\n this._schedule(scheduler);\n }\n };\n DelaySubscriber.prototype._next = function (value) {\n this.scheduleNotification(_Notification__WEBPACK_IMPORTED_MODULE_4__[\"Notification\"].createNext(value));\n };\n DelaySubscriber.prototype._error = function (err) {\n this.errored = true;\n this.queue = [];\n this.destination.error(err);\n this.unsubscribe();\n };\n DelaySubscriber.prototype._complete = function () {\n if (this.queue.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n return DelaySubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__[\"Subscriber\"]));\nvar DelayMessage = (function () {\n function DelayMessage(time, notification) {\n this.time = time;\n this.notification = notification;\n }\n return DelayMessage;\n}());\n//# sourceMappingURL=delay.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/delay.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/delayWhen.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/delayWhen.js ***! + \*********************************************************************/ +/*! exports provided: delayWhen */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"delayWhen\", function() { return delayWhen; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\n\nfunction delayWhen(delayDurationSelector, subscriptionDelay) {\n if (subscriptionDelay) {\n return function (source) {\n return new SubscriptionDelayObservable(source, subscriptionDelay)\n .lift(new DelayWhenOperator(delayDurationSelector));\n };\n }\n return function (source) { return source.lift(new DelayWhenOperator(delayDurationSelector)); };\n}\nvar DelayWhenOperator = (function () {\n function DelayWhenOperator(delayDurationSelector) {\n this.delayDurationSelector = delayDurationSelector;\n }\n DelayWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector));\n };\n return DelayWhenOperator;\n}());\nvar DelayWhenSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(DelayWhenSubscriber, _super);\n function DelayWhenSubscriber(destination, delayDurationSelector) {\n var _this = _super.call(this, destination) || this;\n _this.delayDurationSelector = delayDurationSelector;\n _this.completed = false;\n _this.delayNotifierSubscriptions = [];\n _this.index = 0;\n return _this;\n }\n DelayWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(outerValue);\n this.removeSubscription(innerSub);\n this.tryComplete();\n };\n DelayWhenSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n DelayWhenSubscriber.prototype.notifyComplete = function (innerSub) {\n var value = this.removeSubscription(innerSub);\n if (value) {\n this.destination.next(value);\n }\n this.tryComplete();\n };\n DelayWhenSubscriber.prototype._next = function (value) {\n var index = this.index++;\n try {\n var delayNotifier = this.delayDurationSelector(value, index);\n if (delayNotifier) {\n this.tryDelay(delayNotifier, value);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n DelayWhenSubscriber.prototype._complete = function () {\n this.completed = true;\n this.tryComplete();\n this.unsubscribe();\n };\n DelayWhenSubscriber.prototype.removeSubscription = function (subscription) {\n subscription.unsubscribe();\n var subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription);\n if (subscriptionIdx !== -1) {\n this.delayNotifierSubscriptions.splice(subscriptionIdx, 1);\n }\n return subscription.outerValue;\n };\n DelayWhenSubscriber.prototype.tryDelay = function (delayNotifier, value) {\n var notifierSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__[\"subscribeToResult\"])(this, delayNotifier, value);\n if (notifierSubscription && !notifierSubscription.closed) {\n var destination = this.destination;\n destination.add(notifierSubscription);\n this.delayNotifierSubscriptions.push(notifierSubscription);\n }\n };\n DelayWhenSubscriber.prototype.tryComplete = function () {\n if (this.completed && this.delayNotifierSubscriptions.length === 0) {\n this.destination.complete();\n }\n };\n return DelayWhenSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__[\"OuterSubscriber\"]));\nvar SubscriptionDelayObservable = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SubscriptionDelayObservable, _super);\n function SubscriptionDelayObservable(source, subscriptionDelay) {\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.subscriptionDelay = subscriptionDelay;\n return _this;\n }\n SubscriptionDelayObservable.prototype._subscribe = function (subscriber) {\n this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source));\n };\n return SubscriptionDelayObservable;\n}(_Observable__WEBPACK_IMPORTED_MODULE_2__[\"Observable\"]));\nvar SubscriptionDelaySubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SubscriptionDelaySubscriber, _super);\n function SubscriptionDelaySubscriber(parent, source) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.source = source;\n _this.sourceSubscribed = false;\n return _this;\n }\n SubscriptionDelaySubscriber.prototype._next = function (unused) {\n this.subscribeToSource();\n };\n SubscriptionDelaySubscriber.prototype._error = function (err) {\n this.unsubscribe();\n this.parent.error(err);\n };\n SubscriptionDelaySubscriber.prototype._complete = function () {\n this.unsubscribe();\n this.subscribeToSource();\n };\n SubscriptionDelaySubscriber.prototype.subscribeToSource = function () {\n if (!this.sourceSubscribed) {\n this.sourceSubscribed = true;\n this.unsubscribe();\n this.source.subscribe(this.parent);\n }\n };\n return SubscriptionDelaySubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=delayWhen.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/delayWhen.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/dematerialize.js": +/*!*************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/dematerialize.js ***! + \*************************************************************************/ +/*! exports provided: dematerialize */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dematerialize\", function() { return dematerialize; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction dematerialize() {\n return function dematerializeOperatorFunction(source) {\n return source.lift(new DeMaterializeOperator());\n };\n}\nvar DeMaterializeOperator = (function () {\n function DeMaterializeOperator() {\n }\n DeMaterializeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DeMaterializeSubscriber(subscriber));\n };\n return DeMaterializeOperator;\n}());\nvar DeMaterializeSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(DeMaterializeSubscriber, _super);\n function DeMaterializeSubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n DeMaterializeSubscriber.prototype._next = function (value) {\n value.observe(this.destination);\n };\n return DeMaterializeSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=dematerialize.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/dematerialize.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/distinct.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/distinct.js ***! + \********************************************************************/ +/*! exports provided: distinct, DistinctSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"distinct\", function() { return distinct; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DistinctSubscriber\", function() { return DistinctSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nfunction distinct(keySelector, flushes) {\n return function (source) { return source.lift(new DistinctOperator(keySelector, flushes)); };\n}\nvar DistinctOperator = (function () {\n function DistinctOperator(keySelector, flushes) {\n this.keySelector = keySelector;\n this.flushes = flushes;\n }\n DistinctOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes));\n };\n return DistinctOperator;\n}());\nvar DistinctSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(DistinctSubscriber, _super);\n function DistinctSubscriber(destination, keySelector, flushes) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.values = new Set();\n if (flushes) {\n _this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(_this, flushes));\n }\n return _this;\n }\n DistinctSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.values.clear();\n };\n DistinctSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n DistinctSubscriber.prototype._next = function (value) {\n if (this.keySelector) {\n this._useKeySelector(value);\n }\n else {\n this._finalizeNext(value, value);\n }\n };\n DistinctSubscriber.prototype._useKeySelector = function (value) {\n var key;\n var destination = this.destination;\n try {\n key = this.keySelector(value);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this._finalizeNext(key, value);\n };\n DistinctSubscriber.prototype._finalizeNext = function (key, value) {\n var values = this.values;\n if (!values.has(key)) {\n values.add(key);\n this.destination.next(value);\n }\n };\n return DistinctSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n\n//# sourceMappingURL=distinct.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/distinct.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js": +/*!********************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js ***! + \********************************************************************************/ +/*! exports provided: distinctUntilChanged */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"distinctUntilChanged\", function() { return distinctUntilChanged; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction distinctUntilChanged(compare, keySelector) {\n return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); };\n}\nvar DistinctUntilChangedOperator = (function () {\n function DistinctUntilChangedOperator(compare, keySelector) {\n this.compare = compare;\n this.keySelector = keySelector;\n }\n DistinctUntilChangedOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));\n };\n return DistinctUntilChangedOperator;\n}());\nvar DistinctUntilChangedSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(DistinctUntilChangedSubscriber, _super);\n function DistinctUntilChangedSubscriber(destination, compare, keySelector) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.hasKey = false;\n if (typeof compare === 'function') {\n _this.compare = compare;\n }\n return _this;\n }\n DistinctUntilChangedSubscriber.prototype.compare = function (x, y) {\n return x === y;\n };\n DistinctUntilChangedSubscriber.prototype._next = function (value) {\n var key;\n try {\n var keySelector = this.keySelector;\n key = keySelector ? keySelector(value) : value;\n }\n catch (err) {\n return this.destination.error(err);\n }\n var result = false;\n if (this.hasKey) {\n try {\n var compare = this.compare;\n result = compare(this.key, key);\n }\n catch (err) {\n return this.destination.error(err);\n }\n }\n else {\n this.hasKey = true;\n }\n if (!result) {\n this.key = key;\n this.destination.next(value);\n }\n };\n return DistinctUntilChangedSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=distinctUntilChanged.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilKeyChanged.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilKeyChanged.js ***! + \***********************************************************************************/ +/*! exports provided: distinctUntilKeyChanged */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"distinctUntilKeyChanged\", function() { return distinctUntilKeyChanged; });\n/* harmony import */ var _distinctUntilChanged__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./distinctUntilChanged */ \"./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js\");\n\nfunction distinctUntilKeyChanged(key, compare) {\n return Object(_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_0__[\"distinctUntilChanged\"])(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; });\n}\n//# sourceMappingURL=distinctUntilKeyChanged.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilKeyChanged.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/elementAt.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/elementAt.js ***! + \*********************************************************************/ +/*! exports provided: elementAt */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"elementAt\", function() { return elementAt; });\n/* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/ArgumentOutOfRangeError */ \"./node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js\");\n/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./filter */ \"./node_modules/rxjs/dist/esm5/internal/operators/filter.js\");\n/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./throwIfEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js\");\n/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./defaultIfEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js\");\n/* harmony import */ var _take__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./take */ \"./node_modules/rxjs/dist/esm5/internal/operators/take.js\");\n\n\n\n\n\nfunction elementAt(index, defaultValue) {\n if (index < 0) {\n throw new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_0__[\"ArgumentOutOfRangeError\"]();\n }\n var hasDefaultValue = arguments.length >= 2;\n return function (source) { return source.pipe(Object(_filter__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(function (v, i) { return i === index; }), Object(_take__WEBPACK_IMPORTED_MODULE_4__[\"take\"])(1), hasDefaultValue\n ? Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__[\"defaultIfEmpty\"])(defaultValue)\n : Object(_throwIfEmpty__WEBPACK_IMPORTED_MODULE_2__[\"throwIfEmpty\"])(function () { return new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_0__[\"ArgumentOutOfRangeError\"](); })); };\n}\n//# sourceMappingURL=elementAt.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/elementAt.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/endWith.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/endWith.js ***! + \*******************************************************************/ +/*! exports provided: endWith */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"endWith\", function() { return endWith; });\n/* harmony import */ var _observable_concat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../observable/concat */ \"./node_modules/rxjs/dist/esm5/internal/observable/concat.js\");\n/* harmony import */ var _observable_of__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../observable/of */ \"./node_modules/rxjs/dist/esm5/internal/observable/of.js\");\n\n\nfunction endWith() {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n return function (source) { return Object(_observable_concat__WEBPACK_IMPORTED_MODULE_0__[\"concat\"])(source, _observable_of__WEBPACK_IMPORTED_MODULE_1__[\"of\"].apply(void 0, values)); };\n}\n//# sourceMappingURL=endWith.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/endWith.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/every.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/every.js ***! + \*****************************************************************/ +/*! exports provided: every */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"every\", function() { return every; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction every(predicate, thisArg) {\n return function (source) { return source.lift(new EveryOperator(predicate, thisArg, source)); };\n}\nvar EveryOperator = (function () {\n function EveryOperator(predicate, thisArg, source) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n this.source = source;\n }\n EveryOperator.prototype.call = function (observer, source) {\n return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source));\n };\n return EveryOperator;\n}());\nvar EverySubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(EverySubscriber, _super);\n function EverySubscriber(destination, predicate, thisArg, source) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.thisArg = thisArg;\n _this.source = source;\n _this.index = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n EverySubscriber.prototype.notifyComplete = function (everyValueMatch) {\n this.destination.next(everyValueMatch);\n this.destination.complete();\n };\n EverySubscriber.prototype._next = function (value) {\n var result = false;\n try {\n result = this.predicate.call(this.thisArg, value, this.index++, this.source);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (!result) {\n this.notifyComplete(false);\n }\n };\n EverySubscriber.prototype._complete = function () {\n this.notifyComplete(true);\n };\n return EverySubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=every.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/every.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/exhaust.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/exhaust.js ***! + \*******************************************************************/ +/*! exports provided: exhaust */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"exhaust\", function() { return exhaust; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nfunction exhaust() {\n return function (source) { return source.lift(new SwitchFirstOperator()); };\n}\nvar SwitchFirstOperator = (function () {\n function SwitchFirstOperator() {\n }\n SwitchFirstOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchFirstSubscriber(subscriber));\n };\n return SwitchFirstOperator;\n}());\nvar SwitchFirstSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SwitchFirstSubscriber, _super);\n function SwitchFirstSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.hasCompleted = false;\n _this.hasSubscription = false;\n return _this;\n }\n SwitchFirstSubscriber.prototype._next = function (value) {\n if (!this.hasSubscription) {\n this.hasSubscription = true;\n this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(this, value));\n }\n };\n SwitchFirstSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (!this.hasSubscription) {\n this.destination.complete();\n }\n };\n SwitchFirstSubscriber.prototype.notifyComplete = function (innerSub) {\n this.remove(innerSub);\n this.hasSubscription = false;\n if (this.hasCompleted) {\n this.destination.complete();\n }\n };\n return SwitchFirstSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=exhaust.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/exhaust.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/exhaustMap.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/exhaustMap.js ***! + \**********************************************************************/ +/*! exports provided: exhaustMap */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"exhaustMap\", function() { return exhaustMap; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../InnerSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../observable/from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n\n\n\n\n\n\nfunction exhaustMap(project, resultSelector) {\n if (resultSelector) {\n return function (source) { return source.pipe(exhaustMap(function (a, i) { return Object(_observable_from__WEBPACK_IMPORTED_MODULE_5__[\"from\"])(project(a, i)).pipe(Object(_map__WEBPACK_IMPORTED_MODULE_4__[\"map\"])(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };\n }\n return function (source) {\n return source.lift(new ExhaustMapOperator(project));\n };\n}\nvar ExhaustMapOperator = (function () {\n function ExhaustMapOperator(project) {\n this.project = project;\n }\n ExhaustMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project));\n };\n return ExhaustMapOperator;\n}());\nvar ExhaustMapSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ExhaustMapSubscriber, _super);\n function ExhaustMapSubscriber(destination, project) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.hasSubscription = false;\n _this.hasCompleted = false;\n _this.index = 0;\n return _this;\n }\n ExhaustMapSubscriber.prototype._next = function (value) {\n if (!this.hasSubscription) {\n this.tryNext(value);\n }\n };\n ExhaustMapSubscriber.prototype.tryNext = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.hasSubscription = true;\n this._innerSub(result, value, index);\n };\n ExhaustMapSubscriber.prototype._innerSub = function (result, value, index) {\n var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"InnerSubscriber\"](this, value, index);\n var destination = this.destination;\n destination.add(innerSubscriber);\n var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToResult\"])(this, result, undefined, undefined, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n };\n ExhaustMapSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (!this.hasSubscription) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n ExhaustMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n ExhaustMapSubscriber.prototype.notifyError = function (err) {\n this.destination.error(err);\n };\n ExhaustMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var destination = this.destination;\n destination.remove(innerSub);\n this.hasSubscription = false;\n if (this.hasCompleted) {\n this.destination.complete();\n }\n };\n return ExhaustMapSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=exhaustMap.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/exhaustMap.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/expand.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/expand.js ***! + \******************************************************************/ +/*! exports provided: expand, ExpandOperator, ExpandSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"expand\", function() { return expand; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ExpandOperator\", function() { return ExpandOperator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ExpandSubscriber\", function() { return ExpandSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nfunction expand(project, concurrent, scheduler) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent;\n return function (source) { return source.lift(new ExpandOperator(project, concurrent, scheduler)); };\n}\nvar ExpandOperator = (function () {\n function ExpandOperator(project, concurrent, scheduler) {\n this.project = project;\n this.concurrent = concurrent;\n this.scheduler = scheduler;\n }\n ExpandOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler));\n };\n return ExpandOperator;\n}());\n\nvar ExpandSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ExpandSubscriber, _super);\n function ExpandSubscriber(destination, project, concurrent, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.concurrent = concurrent;\n _this.scheduler = scheduler;\n _this.index = 0;\n _this.active = 0;\n _this.hasCompleted = false;\n if (concurrent < Number.POSITIVE_INFINITY) {\n _this.buffer = [];\n }\n return _this;\n }\n ExpandSubscriber.dispatch = function (arg) {\n var subscriber = arg.subscriber, result = arg.result, value = arg.value, index = arg.index;\n subscriber.subscribeToProjection(result, value, index);\n };\n ExpandSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n if (destination.closed) {\n this._complete();\n return;\n }\n var index = this.index++;\n if (this.active < this.concurrent) {\n destination.next(value);\n try {\n var project = this.project;\n var result = project(value, index);\n if (!this.scheduler) {\n this.subscribeToProjection(result, value, index);\n }\n else {\n var state = { subscriber: this, result: result, value: value, index: index };\n var destination_1 = this.destination;\n destination_1.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state));\n }\n }\n catch (e) {\n destination.error(e);\n }\n }\n else {\n this.buffer.push(value);\n }\n };\n ExpandSubscriber.prototype.subscribeToProjection = function (result, value, index) {\n this.active++;\n var destination = this.destination;\n destination.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(this, result, value, index));\n };\n ExpandSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.hasCompleted && this.active === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n ExpandSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this._next(innerValue);\n };\n ExpandSubscriber.prototype.notifyComplete = function (innerSub) {\n var buffer = this.buffer;\n var destination = this.destination;\n destination.remove(innerSub);\n this.active--;\n if (buffer && buffer.length > 0) {\n this._next(buffer.shift());\n }\n if (this.hasCompleted && this.active === 0) {\n this.destination.complete();\n }\n };\n return ExpandSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n\n//# sourceMappingURL=expand.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/expand.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/filter.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/filter.js ***! + \******************************************************************/ +/*! exports provided: filter */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"filter\", function() { return filter; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\nvar FilterOperator = (function () {\n function FilterOperator(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n FilterOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n };\n return FilterOperator;\n}());\nvar FilterSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(FilterSubscriber, _super);\n function FilterSubscriber(destination, predicate, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.thisArg = thisArg;\n _this.count = 0;\n return _this;\n }\n FilterSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n };\n return FilterSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=filter.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/filter.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/finalize.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/finalize.js ***! + \********************************************************************/ +/*! exports provided: finalize */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"finalize\", function() { return finalize; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n\n\n\nfunction finalize(callback) {\n return function (source) { return source.lift(new FinallyOperator(callback)); };\n}\nvar FinallyOperator = (function () {\n function FinallyOperator(callback) {\n this.callback = callback;\n }\n FinallyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FinallySubscriber(subscriber, this.callback));\n };\n return FinallyOperator;\n}());\nvar FinallySubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(FinallySubscriber, _super);\n function FinallySubscriber(destination, callback) {\n var _this = _super.call(this, destination) || this;\n _this.add(new _Subscription__WEBPACK_IMPORTED_MODULE_2__[\"Subscription\"](callback));\n return _this;\n }\n return FinallySubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=finalize.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/finalize.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/find.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/find.js ***! + \****************************************************************/ +/*! exports provided: find, FindValueOperator, FindValueSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"find\", function() { return find; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FindValueOperator\", function() { return FindValueOperator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FindValueSubscriber\", function() { return FindValueSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction find(predicate, thisArg) {\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate is not a function');\n }\n return function (source) { return source.lift(new FindValueOperator(predicate, source, false, thisArg)); };\n}\nvar FindValueOperator = (function () {\n function FindValueOperator(predicate, source, yieldIndex, thisArg) {\n this.predicate = predicate;\n this.source = source;\n this.yieldIndex = yieldIndex;\n this.thisArg = thisArg;\n }\n FindValueOperator.prototype.call = function (observer, source) {\n return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg));\n };\n return FindValueOperator;\n}());\n\nvar FindValueSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(FindValueSubscriber, _super);\n function FindValueSubscriber(destination, predicate, source, yieldIndex, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.source = source;\n _this.yieldIndex = yieldIndex;\n _this.thisArg = thisArg;\n _this.index = 0;\n return _this;\n }\n FindValueSubscriber.prototype.notifyComplete = function (value) {\n var destination = this.destination;\n destination.next(value);\n destination.complete();\n this.unsubscribe();\n };\n FindValueSubscriber.prototype._next = function (value) {\n var _a = this, predicate = _a.predicate, thisArg = _a.thisArg;\n var index = this.index++;\n try {\n var result = predicate.call(thisArg || this, value, index, this.source);\n if (result) {\n this.notifyComplete(this.yieldIndex ? index : value);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n FindValueSubscriber.prototype._complete = function () {\n this.notifyComplete(this.yieldIndex ? -1 : undefined);\n };\n return FindValueSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n\n//# sourceMappingURL=find.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/find.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/findIndex.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/findIndex.js ***! + \*********************************************************************/ +/*! exports provided: findIndex */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"findIndex\", function() { return findIndex; });\n/* harmony import */ var _operators_find__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../operators/find */ \"./node_modules/rxjs/dist/esm5/internal/operators/find.js\");\n\nfunction findIndex(predicate, thisArg) {\n return function (source) { return source.lift(new _operators_find__WEBPACK_IMPORTED_MODULE_0__[\"FindValueOperator\"](predicate, source, true, thisArg)); };\n}\n//# sourceMappingURL=findIndex.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/findIndex.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/first.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/first.js ***! + \*****************************************************************/ +/*! exports provided: first */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"first\", function() { return first; });\n/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/EmptyError */ \"./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js\");\n/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./filter */ \"./node_modules/rxjs/dist/esm5/internal/operators/filter.js\");\n/* harmony import */ var _take__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./take */ \"./node_modules/rxjs/dist/esm5/internal/operators/take.js\");\n/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./defaultIfEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js\");\n/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./throwIfEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js\");\n/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/identity */ \"./node_modules/rxjs/dist/esm5/internal/util/identity.js\");\n\n\n\n\n\n\nfunction first(predicate, defaultValue) {\n var hasDefaultValue = arguments.length >= 2;\n return function (source) { return source.pipe(predicate ? Object(_filter__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(function (v, i) { return predicate(v, i, source); }) : _util_identity__WEBPACK_IMPORTED_MODULE_5__[\"identity\"], Object(_take__WEBPACK_IMPORTED_MODULE_2__[\"take\"])(1), hasDefaultValue ? Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__[\"defaultIfEmpty\"])(defaultValue) : Object(_throwIfEmpty__WEBPACK_IMPORTED_MODULE_4__[\"throwIfEmpty\"])(function () { return new _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__[\"EmptyError\"](); })); };\n}\n//# sourceMappingURL=first.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/first.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/groupBy.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/groupBy.js ***! + \*******************************************************************/ +/*! exports provided: groupBy, GroupedObservable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"groupBy\", function() { return groupBy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GroupedObservable\", function() { return GroupedObservable; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n\n\n\n\n\nfunction groupBy(keySelector, elementSelector, durationSelector, subjectSelector) {\n return function (source) {\n return source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector));\n };\n}\nvar GroupByOperator = (function () {\n function GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector) {\n this.keySelector = keySelector;\n this.elementSelector = elementSelector;\n this.durationSelector = durationSelector;\n this.subjectSelector = subjectSelector;\n }\n GroupByOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector));\n };\n return GroupByOperator;\n}());\nvar GroupBySubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(GroupBySubscriber, _super);\n function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.elementSelector = elementSelector;\n _this.durationSelector = durationSelector;\n _this.subjectSelector = subjectSelector;\n _this.groups = null;\n _this.attemptedToUnsubscribe = false;\n _this.count = 0;\n return _this;\n }\n GroupBySubscriber.prototype._next = function (value) {\n var key;\n try {\n key = this.keySelector(value);\n }\n catch (err) {\n this.error(err);\n return;\n }\n this._group(value, key);\n };\n GroupBySubscriber.prototype._group = function (value, key) {\n var groups = this.groups;\n if (!groups) {\n groups = this.groups = new Map();\n }\n var group = groups.get(key);\n var element;\n if (this.elementSelector) {\n try {\n element = this.elementSelector(value);\n }\n catch (err) {\n this.error(err);\n }\n }\n else {\n element = value;\n }\n if (!group) {\n group = (this.subjectSelector ? this.subjectSelector() : new _Subject__WEBPACK_IMPORTED_MODULE_4__[\"Subject\"]());\n groups.set(key, group);\n var groupedObservable = new GroupedObservable(key, group, this);\n this.destination.next(groupedObservable);\n if (this.durationSelector) {\n var duration = void 0;\n try {\n duration = this.durationSelector(new GroupedObservable(key, group));\n }\n catch (err) {\n this.error(err);\n return;\n }\n this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this)));\n }\n }\n if (!group.closed) {\n group.next(element);\n }\n };\n GroupBySubscriber.prototype._error = function (err) {\n var groups = this.groups;\n if (groups) {\n groups.forEach(function (group, key) {\n group.error(err);\n });\n groups.clear();\n }\n this.destination.error(err);\n };\n GroupBySubscriber.prototype._complete = function () {\n var groups = this.groups;\n if (groups) {\n groups.forEach(function (group, key) {\n group.complete();\n });\n groups.clear();\n }\n this.destination.complete();\n };\n GroupBySubscriber.prototype.removeGroup = function (key) {\n this.groups.delete(key);\n };\n GroupBySubscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.attemptedToUnsubscribe = true;\n if (this.count === 0) {\n _super.prototype.unsubscribe.call(this);\n }\n }\n };\n return GroupBySubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\nvar GroupDurationSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(GroupDurationSubscriber, _super);\n function GroupDurationSubscriber(key, group, parent) {\n var _this = _super.call(this, group) || this;\n _this.key = key;\n _this.group = group;\n _this.parent = parent;\n return _this;\n }\n GroupDurationSubscriber.prototype._next = function (value) {\n this.complete();\n };\n GroupDurationSubscriber.prototype._unsubscribe = function () {\n var _a = this, parent = _a.parent, key = _a.key;\n this.key = this.parent = null;\n if (parent) {\n parent.removeGroup(key);\n }\n };\n return GroupDurationSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\nvar GroupedObservable = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(GroupedObservable, _super);\n function GroupedObservable(key, groupSubject, refCountSubscription) {\n var _this = _super.call(this) || this;\n _this.key = key;\n _this.groupSubject = groupSubject;\n _this.refCountSubscription = refCountSubscription;\n return _this;\n }\n GroupedObservable.prototype._subscribe = function (subscriber) {\n var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_2__[\"Subscription\"]();\n var _a = this, refCountSubscription = _a.refCountSubscription, groupSubject = _a.groupSubject;\n if (refCountSubscription && !refCountSubscription.closed) {\n subscription.add(new InnerRefCountSubscription(refCountSubscription));\n }\n subscription.add(groupSubject.subscribe(subscriber));\n return subscription;\n };\n return GroupedObservable;\n}(_Observable__WEBPACK_IMPORTED_MODULE_3__[\"Observable\"]));\n\nvar InnerRefCountSubscription = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(InnerRefCountSubscription, _super);\n function InnerRefCountSubscription(parent) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n parent.count++;\n return _this;\n }\n InnerRefCountSubscription.prototype.unsubscribe = function () {\n var parent = this.parent;\n if (!parent.closed && !this.closed) {\n _super.prototype.unsubscribe.call(this);\n parent.count -= 1;\n if (parent.count === 0 && parent.attemptedToUnsubscribe) {\n parent.unsubscribe();\n }\n }\n };\n return InnerRefCountSubscription;\n}(_Subscription__WEBPACK_IMPORTED_MODULE_2__[\"Subscription\"]));\n//# sourceMappingURL=groupBy.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/groupBy.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/ignoreElements.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/ignoreElements.js ***! + \**************************************************************************/ +/*! exports provided: ignoreElements */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ignoreElements\", function() { return ignoreElements; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction ignoreElements() {\n return function ignoreElementsOperatorFunction(source) {\n return source.lift(new IgnoreElementsOperator());\n };\n}\nvar IgnoreElementsOperator = (function () {\n function IgnoreElementsOperator() {\n }\n IgnoreElementsOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new IgnoreElementsSubscriber(subscriber));\n };\n return IgnoreElementsOperator;\n}());\nvar IgnoreElementsSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(IgnoreElementsSubscriber, _super);\n function IgnoreElementsSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n IgnoreElementsSubscriber.prototype._next = function (unused) {\n };\n return IgnoreElementsSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=ignoreElements.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/ignoreElements.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/isEmpty.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/isEmpty.js ***! + \*******************************************************************/ +/*! exports provided: isEmpty */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isEmpty\", function() { return isEmpty; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction isEmpty() {\n return function (source) { return source.lift(new IsEmptyOperator()); };\n}\nvar IsEmptyOperator = (function () {\n function IsEmptyOperator() {\n }\n IsEmptyOperator.prototype.call = function (observer, source) {\n return source.subscribe(new IsEmptySubscriber(observer));\n };\n return IsEmptyOperator;\n}());\nvar IsEmptySubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(IsEmptySubscriber, _super);\n function IsEmptySubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n IsEmptySubscriber.prototype.notifyComplete = function (isEmpty) {\n var destination = this.destination;\n destination.next(isEmpty);\n destination.complete();\n };\n IsEmptySubscriber.prototype._next = function (value) {\n this.notifyComplete(false);\n };\n IsEmptySubscriber.prototype._complete = function () {\n this.notifyComplete(true);\n };\n return IsEmptySubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=isEmpty.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/isEmpty.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/last.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/last.js ***! + \****************************************************************/ +/*! exports provided: last */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"last\", function() { return last; });\n/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/EmptyError */ \"./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js\");\n/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./filter */ \"./node_modules/rxjs/dist/esm5/internal/operators/filter.js\");\n/* harmony import */ var _takeLast__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./takeLast */ \"./node_modules/rxjs/dist/esm5/internal/operators/takeLast.js\");\n/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./throwIfEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js\");\n/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./defaultIfEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js\");\n/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/identity */ \"./node_modules/rxjs/dist/esm5/internal/util/identity.js\");\n\n\n\n\n\n\nfunction last(predicate, defaultValue) {\n var hasDefaultValue = arguments.length >= 2;\n return function (source) { return source.pipe(predicate ? Object(_filter__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(function (v, i) { return predicate(v, i, source); }) : _util_identity__WEBPACK_IMPORTED_MODULE_5__[\"identity\"], Object(_takeLast__WEBPACK_IMPORTED_MODULE_2__[\"takeLast\"])(1), hasDefaultValue ? Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_4__[\"defaultIfEmpty\"])(defaultValue) : Object(_throwIfEmpty__WEBPACK_IMPORTED_MODULE_3__[\"throwIfEmpty\"])(function () { return new _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__[\"EmptyError\"](); })); };\n}\n//# sourceMappingURL=last.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/last.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/map.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/map.js ***! + \***************************************************************/ +/*! exports provided: map, MapOperator */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"map\", function() { return map; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MapOperator\", function() { return MapOperator; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nvar MapOperator = (function () {\n function MapOperator(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n MapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n };\n return MapOperator;\n}());\n\nvar MapSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(MapSubscriber, _super);\n function MapSubscriber(destination, project, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.count = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n MapSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return MapSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=map.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/map.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/mapTo.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/mapTo.js ***! + \*****************************************************************/ +/*! exports provided: mapTo */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mapTo\", function() { return mapTo; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction mapTo(value) {\n return function (source) { return source.lift(new MapToOperator(value)); };\n}\nvar MapToOperator = (function () {\n function MapToOperator(value) {\n this.value = value;\n }\n MapToOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapToSubscriber(subscriber, this.value));\n };\n return MapToOperator;\n}());\nvar MapToSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(MapToSubscriber, _super);\n function MapToSubscriber(destination, value) {\n var _this = _super.call(this, destination) || this;\n _this.value = value;\n return _this;\n }\n MapToSubscriber.prototype._next = function (x) {\n this.destination.next(this.value);\n };\n return MapToSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=mapTo.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mapTo.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/materialize.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/materialize.js ***! + \***********************************************************************/ +/*! exports provided: materialize */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"materialize\", function() { return materialize; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _Notification__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Notification */ \"./node_modules/rxjs/dist/esm5/internal/Notification.js\");\n\n\n\nfunction materialize() {\n return function materializeOperatorFunction(source) {\n return source.lift(new MaterializeOperator());\n };\n}\nvar MaterializeOperator = (function () {\n function MaterializeOperator() {\n }\n MaterializeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MaterializeSubscriber(subscriber));\n };\n return MaterializeOperator;\n}());\nvar MaterializeSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(MaterializeSubscriber, _super);\n function MaterializeSubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n MaterializeSubscriber.prototype._next = function (value) {\n this.destination.next(_Notification__WEBPACK_IMPORTED_MODULE_2__[\"Notification\"].createNext(value));\n };\n MaterializeSubscriber.prototype._error = function (err) {\n var destination = this.destination;\n destination.next(_Notification__WEBPACK_IMPORTED_MODULE_2__[\"Notification\"].createError(err));\n destination.complete();\n };\n MaterializeSubscriber.prototype._complete = function () {\n var destination = this.destination;\n destination.next(_Notification__WEBPACK_IMPORTED_MODULE_2__[\"Notification\"].createComplete());\n destination.complete();\n };\n return MaterializeSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=materialize.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/materialize.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/max.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/max.js ***! + \***************************************************************/ +/*! exports provided: max */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"max\", function() { return max; });\n/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reduce */ \"./node_modules/rxjs/dist/esm5/internal/operators/reduce.js\");\n\nfunction max(comparer) {\n var max = (typeof comparer === 'function')\n ? function (x, y) { return comparer(x, y) > 0 ? x : y; }\n : function (x, y) { return x > y ? x : y; };\n return Object(_reduce__WEBPACK_IMPORTED_MODULE_0__[\"reduce\"])(max);\n}\n//# sourceMappingURL=max.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/max.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js ***! + \********************************************************************/ +/*! exports provided: mergeAll */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeAll\", function() { return mergeAll; });\n/* harmony import */ var _mergeMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mergeMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js\");\n/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/identity */ \"./node_modules/rxjs/dist/esm5/internal/util/identity.js\");\n\n\nfunction mergeAll(concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__[\"mergeMap\"])(_util_identity__WEBPACK_IMPORTED_MODULE_1__[\"identity\"], concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js ***! + \********************************************************************/ +/*! exports provided: mergeMap, MergeMapOperator, MergeMapSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeMap\", function() { return mergeMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MergeMapOperator\", function() { return MergeMapOperator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MergeMapSubscriber\", function() { return MergeMapSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../InnerSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js\");\n/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../observable/from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n\n\n\n\n\n\nfunction mergeMap(project, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(mergeMap(function (a, i) { return Object(_observable_from__WEBPACK_IMPORTED_MODULE_5__[\"from\"])(project(a, i)).pipe(Object(_map__WEBPACK_IMPORTED_MODULE_4__[\"map\"])(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); };\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); };\n}\nvar MergeMapOperator = (function () {\n function MergeMapOperator(project, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n this.project = project;\n this.concurrent = concurrent;\n }\n MergeMapOperator.prototype.call = function (observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n };\n return MergeMapOperator;\n}());\n\nvar MergeMapSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(MergeMapSubscriber, _super);\n function MergeMapSubscriber(destination, project, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.concurrent = concurrent;\n _this.hasCompleted = false;\n _this.buffer = [];\n _this.active = 0;\n _this.index = 0;\n return _this;\n }\n MergeMapSubscriber.prototype._next = function (value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n }\n else {\n this.buffer.push(value);\n }\n };\n MergeMapSubscriber.prototype._tryNext = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result, value, index);\n };\n MergeMapSubscriber.prototype._innerSub = function (ish, value, index) {\n var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_3__[\"InnerSubscriber\"](this, value, index);\n var destination = this.destination;\n destination.add(innerSubscriber);\n var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__[\"subscribeToResult\"])(this, ish, undefined, undefined, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n };\n MergeMapSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n MergeMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var buffer = this.buffer;\n this.remove(innerSub);\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n };\n return MergeMapSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"OuterSubscriber\"]));\n\n//# sourceMappingURL=mergeMap.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/mergeMapTo.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/mergeMapTo.js ***! + \**********************************************************************/ +/*! exports provided: mergeMapTo */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeMapTo\", function() { return mergeMapTo; });\n/* harmony import */ var _mergeMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mergeMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js\");\n\nfunction mergeMapTo(innerObservable, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n if (typeof resultSelector === 'function') {\n return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__[\"mergeMap\"])(function () { return innerObservable; }, resultSelector, concurrent);\n }\n if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__[\"mergeMap\"])(function () { return innerObservable; }, concurrent);\n}\n//# sourceMappingURL=mergeMapTo.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mergeMapTo.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/mergeScan.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/mergeScan.js ***! + \*********************************************************************/ +/*! exports provided: mergeScan, MergeScanOperator, MergeScanSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeScan\", function() { return mergeScan; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MergeScanOperator\", function() { return MergeScanOperator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MergeScanSubscriber\", function() { return MergeScanSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../InnerSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js\");\n\n\n\n\nfunction mergeScan(accumulator, seed, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n return function (source) { return source.lift(new MergeScanOperator(accumulator, seed, concurrent)); };\n}\nvar MergeScanOperator = (function () {\n function MergeScanOperator(accumulator, seed, concurrent) {\n this.accumulator = accumulator;\n this.seed = seed;\n this.concurrent = concurrent;\n }\n MergeScanOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MergeScanSubscriber(subscriber, this.accumulator, this.seed, this.concurrent));\n };\n return MergeScanOperator;\n}());\n\nvar MergeScanSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(MergeScanSubscriber, _super);\n function MergeScanSubscriber(destination, accumulator, acc, concurrent) {\n var _this = _super.call(this, destination) || this;\n _this.accumulator = accumulator;\n _this.acc = acc;\n _this.concurrent = concurrent;\n _this.hasValue = false;\n _this.hasCompleted = false;\n _this.buffer = [];\n _this.active = 0;\n _this.index = 0;\n return _this;\n }\n MergeScanSubscriber.prototype._next = function (value) {\n if (this.active < this.concurrent) {\n var index = this.index++;\n var destination = this.destination;\n var ish = void 0;\n try {\n var accumulator = this.accumulator;\n ish = accumulator(this.acc, value, index);\n }\n catch (e) {\n return destination.error(e);\n }\n this.active++;\n this._innerSub(ish, value, index);\n }\n else {\n this.buffer.push(value);\n }\n };\n MergeScanSubscriber.prototype._innerSub = function (ish, value, index) {\n var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_3__[\"InnerSubscriber\"](this, value, index);\n var destination = this.destination;\n destination.add(innerSubscriber);\n var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__[\"subscribeToResult\"])(this, ish, undefined, undefined, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n };\n MergeScanSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n if (this.hasValue === false) {\n this.destination.next(this.acc);\n }\n this.destination.complete();\n }\n this.unsubscribe();\n };\n MergeScanSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var destination = this.destination;\n this.acc = innerValue;\n this.hasValue = true;\n destination.next(innerValue);\n };\n MergeScanSubscriber.prototype.notifyComplete = function (innerSub) {\n var buffer = this.buffer;\n var destination = this.destination;\n destination.remove(innerSub);\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n if (this.hasValue === false) {\n this.destination.next(this.acc);\n }\n this.destination.complete();\n }\n };\n return MergeScanSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"OuterSubscriber\"]));\n\n//# sourceMappingURL=mergeScan.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mergeScan.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/mergeWith.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/mergeWith.js ***! + \*********************************************************************/ +/*! exports provided: merge, mergeWith */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"merge\", function() { return merge; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeWith\", function() { return mergeWith; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _observable_merge__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../observable/merge */ \"./node_modules/rxjs/dist/esm5/internal/observable/merge.js\");\n\n\nfunction merge() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function (source) { return source.lift.call(_observable_merge__WEBPACK_IMPORTED_MODULE_1__[\"merge\"].apply(void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])([source], observables)), undefined); };\n}\nfunction mergeWith() {\n var otherSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n otherSources[_i] = arguments[_i];\n }\n return merge.apply(void 0, otherSources);\n}\n//# sourceMappingURL=mergeWith.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/mergeWith.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/min.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/min.js ***! + \***************************************************************/ +/*! exports provided: min */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"min\", function() { return min; });\n/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reduce */ \"./node_modules/rxjs/dist/esm5/internal/operators/reduce.js\");\n\nfunction min(comparer) {\n var min = (typeof comparer === 'function')\n ? function (x, y) { return comparer(x, y) < 0 ? x : y; }\n : function (x, y) { return x < y ? x : y; };\n return Object(_reduce__WEBPACK_IMPORTED_MODULE_0__[\"reduce\"])(min);\n}\n//# sourceMappingURL=min.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/min.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/multicast.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/multicast.js ***! + \*********************************************************************/ +/*! exports provided: multicast, MulticastOperator */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"multicast\", function() { return multicast; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MulticastOperator\", function() { return MulticastOperator; });\n/* harmony import */ var _observable_ConnectableObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../observable/ConnectableObservable */ \"./node_modules/rxjs/dist/esm5/internal/observable/ConnectableObservable.js\");\n\nfunction multicast(subjectOrSubjectFactory, selector) {\n return function multicastOperatorFunction(source) {\n var subjectFactory;\n if (typeof subjectOrSubjectFactory === 'function') {\n subjectFactory = subjectOrSubjectFactory;\n }\n else {\n subjectFactory = function subjectFactory() {\n return subjectOrSubjectFactory;\n };\n }\n if (typeof selector === 'function') {\n return source.lift(new MulticastOperator(subjectFactory, selector));\n }\n var connectable = Object.create(source, _observable_ConnectableObservable__WEBPACK_IMPORTED_MODULE_0__[\"connectableObservableDescriptor\"]);\n connectable.source = source;\n connectable.subjectFactory = subjectFactory;\n return connectable;\n };\n}\nvar MulticastOperator = (function () {\n function MulticastOperator(subjectFactory, selector) {\n this.subjectFactory = subjectFactory;\n this.selector = selector;\n }\n MulticastOperator.prototype.call = function (subscriber, source) {\n var selector = this.selector;\n var subject = this.subjectFactory();\n var subscription = selector(subject).subscribe(subscriber);\n subscription.add(source.subscribe(subject));\n return subscription;\n };\n return MulticastOperator;\n}());\n\n//# sourceMappingURL=multicast.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/multicast.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/observeOn.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/observeOn.js ***! + \*********************************************************************/ +/*! exports provided: observeOn, ObserveOnOperator, ObserveOnSubscriber, ObserveOnMessage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observeOn\", function() { return observeOn; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObserveOnOperator\", function() { return ObserveOnOperator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObserveOnSubscriber\", function() { return ObserveOnSubscriber; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObserveOnMessage\", function() { return ObserveOnMessage; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _Notification__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Notification */ \"./node_modules/rxjs/dist/esm5/internal/Notification.js\");\n\n\n\nfunction observeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return function observeOnOperatorFunction(source) {\n return source.lift(new ObserveOnOperator(scheduler, delay));\n };\n}\nvar ObserveOnOperator = (function () {\n function ObserveOnOperator(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n this.scheduler = scheduler;\n this.delay = delay;\n }\n ObserveOnOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n };\n return ObserveOnOperator;\n}());\n\nvar ObserveOnSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ObserveOnSubscriber, _super);\n function ObserveOnSubscriber(destination, scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n var _this = _super.call(this, destination) || this;\n _this.scheduler = scheduler;\n _this.delay = delay;\n return _this;\n }\n ObserveOnSubscriber.dispatch = function (arg) {\n var notification = arg.notification, destination = arg.destination;\n notification.observe(destination);\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype.scheduleMessage = function (notification) {\n var destination = this.destination;\n destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));\n };\n ObserveOnSubscriber.prototype._next = function (value) {\n this.scheduleMessage(_Notification__WEBPACK_IMPORTED_MODULE_2__[\"Notification\"].createNext(value));\n };\n ObserveOnSubscriber.prototype._error = function (err) {\n this.scheduleMessage(_Notification__WEBPACK_IMPORTED_MODULE_2__[\"Notification\"].createError(err));\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype._complete = function () {\n this.scheduleMessage(_Notification__WEBPACK_IMPORTED_MODULE_2__[\"Notification\"].createComplete());\n this.unsubscribe();\n };\n return ObserveOnSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n\nvar ObserveOnMessage = (function () {\n function ObserveOnMessage(notification, destination) {\n this.notification = notification;\n this.destination = destination;\n }\n return ObserveOnMessage;\n}());\n\n//# sourceMappingURL=observeOn.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/observeOn.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/onErrorResumeNext.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/onErrorResumeNext.js ***! + \*****************************************************************************/ +/*! exports provided: onErrorResumeNext, onErrorResumeNextStatic */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onErrorResumeNext\", function() { return onErrorResumeNext; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onErrorResumeNextStatic\", function() { return onErrorResumeNextStatic; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../observable/from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../InnerSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\n\n\nfunction onErrorResumeNext() {\n var nextSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nextSources[_i] = arguments[_i];\n }\n if (nextSources.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__[\"isArray\"])(nextSources[0])) {\n nextSources = nextSources[0];\n }\n return function (source) { return source.lift(new OnErrorResumeNextOperator(nextSources)); };\n}\nfunction onErrorResumeNextStatic() {\n var nextSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nextSources[_i] = arguments[_i];\n }\n var source = null;\n if (nextSources.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__[\"isArray\"])(nextSources[0])) {\n nextSources = nextSources[0];\n }\n source = nextSources.shift();\n return Object(_observable_from__WEBPACK_IMPORTED_MODULE_1__[\"from\"])(source, null).lift(new OnErrorResumeNextOperator(nextSources));\n}\nvar OnErrorResumeNextOperator = (function () {\n function OnErrorResumeNextOperator(nextSources) {\n this.nextSources = nextSources;\n }\n OnErrorResumeNextOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources));\n };\n return OnErrorResumeNextOperator;\n}());\nvar OnErrorResumeNextSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(OnErrorResumeNextSubscriber, _super);\n function OnErrorResumeNextSubscriber(destination, nextSources) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.nextSources = nextSources;\n return _this;\n }\n OnErrorResumeNextSubscriber.prototype.notifyError = function (error, innerSub) {\n this.subscribeToNextSource();\n };\n OnErrorResumeNextSubscriber.prototype.notifyComplete = function (innerSub) {\n this.subscribeToNextSource();\n };\n OnErrorResumeNextSubscriber.prototype._error = function (err) {\n this.subscribeToNextSource();\n this.unsubscribe();\n };\n OnErrorResumeNextSubscriber.prototype._complete = function () {\n this.subscribeToNextSource();\n this.unsubscribe();\n };\n OnErrorResumeNextSubscriber.prototype.subscribeToNextSource = function () {\n var next = this.nextSources.shift();\n if (!!next) {\n var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_4__[\"InnerSubscriber\"](this, undefined, undefined);\n var destination = this.destination;\n destination.add(innerSubscriber);\n var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__[\"subscribeToResult\"])(this, next, undefined, undefined, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n }\n else {\n this.destination.complete();\n }\n };\n return OnErrorResumeNextSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__[\"OuterSubscriber\"]));\n//# sourceMappingURL=onErrorResumeNext.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/onErrorResumeNext.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/pairwise.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/pairwise.js ***! + \********************************************************************/ +/*! exports provided: pairwise */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pairwise\", function() { return pairwise; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction pairwise() {\n return function (source) { return source.lift(new PairwiseOperator()); };\n}\nvar PairwiseOperator = (function () {\n function PairwiseOperator() {\n }\n PairwiseOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new PairwiseSubscriber(subscriber));\n };\n return PairwiseOperator;\n}());\nvar PairwiseSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(PairwiseSubscriber, _super);\n function PairwiseSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.hasPrev = false;\n return _this;\n }\n PairwiseSubscriber.prototype._next = function (value) {\n var pair;\n if (this.hasPrev) {\n pair = [this.prev, value];\n }\n else {\n this.hasPrev = true;\n }\n this.prev = value;\n if (pair) {\n this.destination.next(pair);\n }\n };\n return PairwiseSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=pairwise.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/pairwise.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/partition.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/partition.js ***! + \*********************************************************************/ +/*! exports provided: partition */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"partition\", function() { return partition; });\n/* harmony import */ var _util_not__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/not */ \"./node_modules/rxjs/dist/esm5/internal/util/not.js\");\n/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./filter */ \"./node_modules/rxjs/dist/esm5/internal/operators/filter.js\");\n\n\nfunction partition(predicate, thisArg) {\n return function (source) { return [\n Object(_filter__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(predicate, thisArg)(source),\n Object(_filter__WEBPACK_IMPORTED_MODULE_1__[\"filter\"])(Object(_util_not__WEBPACK_IMPORTED_MODULE_0__[\"not\"])(predicate, thisArg))(source)\n ]; };\n}\n//# sourceMappingURL=partition.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/partition.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/pluck.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/pluck.js ***! + \*****************************************************************/ +/*! exports provided: pluck */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pluck\", function() { return pluck; });\n/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n\nfunction pluck() {\n var properties = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n properties[_i] = arguments[_i];\n }\n var length = properties.length;\n if (length === 0) {\n throw new Error('list of properties cannot be empty.');\n }\n return Object(_map__WEBPACK_IMPORTED_MODULE_0__[\"map\"])(function (x) {\n var currentProp = x;\n for (var i = 0; i < length; i++) {\n var p = currentProp[properties[i]];\n if (typeof p !== 'undefined') {\n currentProp = p;\n }\n else {\n return undefined;\n }\n }\n return currentProp;\n });\n}\n//# sourceMappingURL=pluck.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/pluck.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/publish.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/publish.js ***! + \*******************************************************************/ +/*! exports provided: publish */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"publish\", function() { return publish; });\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./multicast */ \"./node_modules/rxjs/dist/esm5/internal/operators/multicast.js\");\n\n\nfunction publish(selector) {\n return selector ?\n Object(_multicast__WEBPACK_IMPORTED_MODULE_1__[\"multicast\"])(function () { return new _Subject__WEBPACK_IMPORTED_MODULE_0__[\"Subject\"](); }, selector) :\n Object(_multicast__WEBPACK_IMPORTED_MODULE_1__[\"multicast\"])(new _Subject__WEBPACK_IMPORTED_MODULE_0__[\"Subject\"]());\n}\n//# sourceMappingURL=publish.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/publish.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/publishBehavior.js": +/*!***************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/publishBehavior.js ***! + \***************************************************************************/ +/*! exports provided: publishBehavior */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"publishBehavior\", function() { return publishBehavior; });\n/* harmony import */ var _BehaviorSubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../BehaviorSubject */ \"./node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js\");\n/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./multicast */ \"./node_modules/rxjs/dist/esm5/internal/operators/multicast.js\");\n\n\nfunction publishBehavior(value) {\n return function (source) { return Object(_multicast__WEBPACK_IMPORTED_MODULE_1__[\"multicast\"])(new _BehaviorSubject__WEBPACK_IMPORTED_MODULE_0__[\"BehaviorSubject\"](value))(source); };\n}\n//# sourceMappingURL=publishBehavior.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/publishBehavior.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/publishLast.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/publishLast.js ***! + \***********************************************************************/ +/*! exports provided: publishLast */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"publishLast\", function() { return publishLast; });\n/* harmony import */ var _AsyncSubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../AsyncSubject */ \"./node_modules/rxjs/dist/esm5/internal/AsyncSubject.js\");\n/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./multicast */ \"./node_modules/rxjs/dist/esm5/internal/operators/multicast.js\");\n\n\nfunction publishLast() {\n return function (source) { return Object(_multicast__WEBPACK_IMPORTED_MODULE_1__[\"multicast\"])(new _AsyncSubject__WEBPACK_IMPORTED_MODULE_0__[\"AsyncSubject\"]())(source); };\n}\n//# sourceMappingURL=publishLast.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/publishLast.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/publishReplay.js": +/*!*************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/publishReplay.js ***! + \*************************************************************************/ +/*! exports provided: publishReplay */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"publishReplay\", function() { return publishReplay; });\n/* harmony import */ var _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ReplaySubject */ \"./node_modules/rxjs/dist/esm5/internal/ReplaySubject.js\");\n/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./multicast */ \"./node_modules/rxjs/dist/esm5/internal/operators/multicast.js\");\n\n\nfunction publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) {\n if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') {\n scheduler = selectorOrScheduler;\n }\n var selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined;\n var subject = new _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__[\"ReplaySubject\"](bufferSize, windowTime, scheduler);\n return function (source) { return Object(_multicast__WEBPACK_IMPORTED_MODULE_1__[\"multicast\"])(function () { return subject; }, selector)(source); };\n}\n//# sourceMappingURL=publishReplay.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/publishReplay.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/race.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/race.js ***! + \****************************************************************/ +/*! exports provided: race */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"race\", function() { return race; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n/* harmony import */ var _observable_race__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../observable/race */ \"./node_modules/rxjs/dist/esm5/internal/observable/race.js\");\n\n\n\nfunction race() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function raceOperatorFunction(source) {\n if (observables.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__[\"isArray\"])(observables[0])) {\n observables = observables[0];\n }\n return source.lift.call(_observable_race__WEBPACK_IMPORTED_MODULE_2__[\"race\"].apply(void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])([source], observables)), undefined);\n };\n}\n//# sourceMappingURL=race.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/race.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/reduce.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/reduce.js ***! + \******************************************************************/ +/*! exports provided: reduce */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reduce\", function() { return reduce; });\n/* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./scan */ \"./node_modules/rxjs/dist/esm5/internal/operators/scan.js\");\n/* harmony import */ var _takeLast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./takeLast */ \"./node_modules/rxjs/dist/esm5/internal/operators/takeLast.js\");\n/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./defaultIfEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js\");\n/* harmony import */ var _util_pipe__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/pipe */ \"./node_modules/rxjs/dist/esm5/internal/util/pipe.js\");\n\n\n\n\nfunction reduce(accumulator, seed) {\n if (arguments.length >= 2) {\n return function reduceOperatorFunctionWithSeed(source) {\n return Object(_util_pipe__WEBPACK_IMPORTED_MODULE_3__[\"pipe\"])(Object(_scan__WEBPACK_IMPORTED_MODULE_0__[\"scan\"])(accumulator, seed), Object(_takeLast__WEBPACK_IMPORTED_MODULE_1__[\"takeLast\"])(1), Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_2__[\"defaultIfEmpty\"])(seed))(source);\n };\n }\n return function reduceOperatorFunction(source) {\n return Object(_util_pipe__WEBPACK_IMPORTED_MODULE_3__[\"pipe\"])(Object(_scan__WEBPACK_IMPORTED_MODULE_0__[\"scan\"])(function (acc, value, index) { return accumulator(acc, value, index + 1); }), Object(_takeLast__WEBPACK_IMPORTED_MODULE_1__[\"takeLast\"])(1))(source);\n };\n}\n//# sourceMappingURL=reduce.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/reduce.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/refCount.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/refCount.js ***! + \********************************************************************/ +/*! exports provided: refCount */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"refCount\", function() { return refCount; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction refCount() {\n return function refCountOperatorFunction(source) {\n return source.lift(new RefCountOperator(source));\n };\n}\nvar RefCountOperator = (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n _this.connection = null;\n return _this;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=refCount.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/refCount.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/repeat.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/repeat.js ***! + \******************************************************************/ +/*! exports provided: repeat */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"repeat\", function() { return repeat; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../observable/empty */ \"./node_modules/rxjs/dist/esm5/internal/observable/empty.js\");\n\n\n\nfunction repeat(count) {\n if (count === void 0) { count = -1; }\n return function (source) {\n if (count === 0) {\n return _observable_empty__WEBPACK_IMPORTED_MODULE_2__[\"EMPTY\"];\n }\n else if (count < 0) {\n return source.lift(new RepeatOperator(-1, source));\n }\n else {\n return source.lift(new RepeatOperator(count - 1, source));\n }\n };\n}\nvar RepeatOperator = (function () {\n function RepeatOperator(count, source) {\n this.count = count;\n this.source = source;\n }\n RepeatOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source));\n };\n return RepeatOperator;\n}());\nvar RepeatSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(RepeatSubscriber, _super);\n function RepeatSubscriber(destination, count, source) {\n var _this = _super.call(this, destination) || this;\n _this.count = count;\n _this.source = source;\n return _this;\n }\n RepeatSubscriber.prototype.complete = function () {\n if (!this.isStopped) {\n var _a = this, source = _a.source, count = _a.count;\n if (count === 0) {\n return _super.prototype.complete.call(this);\n }\n else if (count > -1) {\n this.count = count - 1;\n }\n source.subscribe(this._unsubscribeAndRecycle());\n }\n };\n return RepeatSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=repeat.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/repeat.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/repeatWhen.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/repeatWhen.js ***! + \**********************************************************************/ +/*! exports provided: repeatWhen */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"repeatWhen\", function() { return repeatWhen; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\nfunction repeatWhen(notifier) {\n return function (source) { return source.lift(new RepeatWhenOperator(notifier)); };\n}\nvar RepeatWhenOperator = (function () {\n function RepeatWhenOperator(notifier) {\n this.notifier = notifier;\n }\n RepeatWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source));\n };\n return RepeatWhenOperator;\n}());\nvar RepeatWhenSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(RepeatWhenSubscriber, _super);\n function RepeatWhenSubscriber(destination, notifier, source) {\n var _this = _super.call(this, destination) || this;\n _this.notifier = notifier;\n _this.source = source;\n _this.notifications = null;\n _this.retries = null;\n _this.retriesSubscription = null;\n _this.sourceIsBeingSubscribedTo = true;\n return _this;\n }\n RepeatWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.sourceIsBeingSubscribedTo = true;\n this.source.subscribe(this);\n };\n RepeatWhenSubscriber.prototype.notifyComplete = function (innerSub) {\n if (this.sourceIsBeingSubscribedTo === false) {\n return _super.prototype.complete.call(this);\n }\n };\n RepeatWhenSubscriber.prototype.complete = function () {\n this.sourceIsBeingSubscribedTo = false;\n if (!this.isStopped) {\n if (!this.retries) {\n this.subscribeToRetries();\n }\n if (!this.retriesSubscription || this.retriesSubscription.closed) {\n return _super.prototype.complete.call(this);\n }\n this._unsubscribeAndRecycle();\n this.notifications.next();\n }\n };\n RepeatWhenSubscriber.prototype._unsubscribe = function () {\n var _a = this, notifications = _a.notifications, retriesSubscription = _a.retriesSubscription;\n if (notifications) {\n notifications.unsubscribe();\n this.notifications = null;\n }\n if (retriesSubscription) {\n retriesSubscription.unsubscribe();\n this.retriesSubscription = null;\n }\n this.retries = null;\n };\n RepeatWhenSubscriber.prototype._unsubscribeAndRecycle = function () {\n var _unsubscribe = this._unsubscribe;\n this._unsubscribe = null;\n _super.prototype._unsubscribeAndRecycle.call(this);\n this._unsubscribe = _unsubscribe;\n return this;\n };\n RepeatWhenSubscriber.prototype.subscribeToRetries = function () {\n this.notifications = new _Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]();\n var retries;\n try {\n var notifier = this.notifier;\n retries = notifier(this.notifications);\n }\n catch (e) {\n return _super.prototype.complete.call(this);\n }\n this.retries = retries;\n this.retriesSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToResult\"])(this, retries);\n };\n return RepeatWhenSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"OuterSubscriber\"]));\n//# sourceMappingURL=repeatWhen.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/repeatWhen.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/retry.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/retry.js ***! + \*****************************************************************/ +/*! exports provided: retry */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"retry\", function() { return retry; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction retry(configOrCount) {\n if (configOrCount === void 0) { configOrCount = -1; }\n var config;\n if (configOrCount && typeof configOrCount === 'object') {\n config = configOrCount;\n }\n else {\n config = {\n count: configOrCount\n };\n }\n return function (source) { return source.lift(new RetryOperator(config.count, !!config.resetOnSuccess, source)); };\n}\nvar RetryOperator = (function () {\n function RetryOperator(count, resetOnSuccess, source) {\n this.count = count;\n this.resetOnSuccess = resetOnSuccess;\n this.source = source;\n }\n RetryOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RetrySubscriber(subscriber, this.count, this.resetOnSuccess, this.source));\n };\n return RetryOperator;\n}());\nvar RetrySubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(RetrySubscriber, _super);\n function RetrySubscriber(destination, count, resetOnSuccess, source) {\n var _this = _super.call(this, destination) || this;\n _this.count = count;\n _this.resetOnSuccess = resetOnSuccess;\n _this.source = source;\n _this.initialCount = _this.count;\n return _this;\n }\n RetrySubscriber.prototype.next = function (value) {\n _super.prototype.next.call(this, value);\n if (this.resetOnSuccess) {\n this.count = this.initialCount;\n }\n };\n RetrySubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _a = this, source = _a.source, count = _a.count;\n if (count === 0) {\n return _super.prototype.error.call(this, err);\n }\n else if (count > -1) {\n this.count = count - 1;\n }\n source.subscribe(this._unsubscribeAndRecycle());\n }\n };\n return RetrySubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=retry.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/retry.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/retryWhen.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/retryWhen.js ***! + \*********************************************************************/ +/*! exports provided: retryWhen */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"retryWhen\", function() { return retryWhen; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\nfunction retryWhen(notifier) {\n return function (source) { return source.lift(new RetryWhenOperator(notifier, source)); };\n}\nvar RetryWhenOperator = (function () {\n function RetryWhenOperator(notifier, source) {\n this.notifier = notifier;\n this.source = source;\n }\n RetryWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source));\n };\n return RetryWhenOperator;\n}());\nvar RetryWhenSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(RetryWhenSubscriber, _super);\n function RetryWhenSubscriber(destination, notifier, source) {\n var _this = _super.call(this, destination) || this;\n _this.notifier = notifier;\n _this.source = source;\n _this.errors = null;\n _this.retries = null;\n _this.retriesSubscription = null;\n return _this;\n }\n RetryWhenSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var errors = this.errors;\n var retries = this.retries;\n var retriesSubscription = this.retriesSubscription;\n if (!retries) {\n errors = new _Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]();\n try {\n var notifier = this.notifier;\n retries = notifier(errors);\n }\n catch (e) {\n return _super.prototype.error.call(this, e);\n }\n retriesSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToResult\"])(this, retries);\n }\n else {\n this.errors = null;\n this.retriesSubscription = null;\n }\n this._unsubscribeAndRecycle();\n this.errors = errors;\n this.retries = retries;\n this.retriesSubscription = retriesSubscription;\n errors.next(err);\n }\n };\n RetryWhenSubscriber.prototype._unsubscribe = function () {\n var _a = this, errors = _a.errors, retriesSubscription = _a.retriesSubscription;\n if (errors) {\n errors.unsubscribe();\n this.errors = null;\n }\n if (retriesSubscription) {\n retriesSubscription.unsubscribe();\n this.retriesSubscription = null;\n }\n this.retries = null;\n };\n RetryWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var _unsubscribe = this._unsubscribe;\n this._unsubscribe = null;\n this._unsubscribeAndRecycle();\n this._unsubscribe = _unsubscribe;\n this.source.subscribe(this);\n };\n return RetryWhenSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"OuterSubscriber\"]));\n//# sourceMappingURL=retryWhen.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/retryWhen.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/sample.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/sample.js ***! + \******************************************************************/ +/*! exports provided: sample */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sample\", function() { return sample; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nfunction sample(notifier) {\n return function (source) { return source.lift(new SampleOperator(notifier)); };\n}\nvar SampleOperator = (function () {\n function SampleOperator(notifier) {\n this.notifier = notifier;\n }\n SampleOperator.prototype.call = function (subscriber, source) {\n var sampleSubscriber = new SampleSubscriber(subscriber);\n var subscription = source.subscribe(sampleSubscriber);\n subscription.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(sampleSubscriber, this.notifier));\n return subscription;\n };\n return SampleOperator;\n}());\nvar SampleSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SampleSubscriber, _super);\n function SampleSubscriber() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.hasValue = false;\n return _this;\n }\n SampleSubscriber.prototype._next = function (value) {\n this.value = value;\n this.hasValue = true;\n };\n SampleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.emitValue();\n };\n SampleSubscriber.prototype.notifyComplete = function () {\n this.emitValue();\n };\n SampleSubscriber.prototype.emitValue = function () {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.value);\n }\n };\n return SampleSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=sample.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/sample.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/sampleTime.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/sampleTime.js ***! + \**********************************************************************/ +/*! exports provided: sampleTime */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sampleTime\", function() { return sampleTime; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n\n\n\nfunction sampleTime(period, scheduler) {\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_2__[\"async\"]; }\n return function (source) { return source.lift(new SampleTimeOperator(period, scheduler)); };\n}\nvar SampleTimeOperator = (function () {\n function SampleTimeOperator(period, scheduler) {\n this.period = period;\n this.scheduler = scheduler;\n }\n SampleTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler));\n };\n return SampleTimeOperator;\n}());\nvar SampleTimeSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SampleTimeSubscriber, _super);\n function SampleTimeSubscriber(destination, period, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.period = period;\n _this.scheduler = scheduler;\n _this.hasValue = false;\n _this.add(scheduler.schedule(dispatchNotification, period, { subscriber: _this, period: period }));\n return _this;\n }\n SampleTimeSubscriber.prototype._next = function (value) {\n this.lastValue = value;\n this.hasValue = true;\n };\n SampleTimeSubscriber.prototype.notifyNext = function () {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.lastValue);\n }\n };\n return SampleTimeSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\nfunction dispatchNotification(state) {\n var subscriber = state.subscriber, period = state.period;\n subscriber.notifyNext();\n this.schedule(state, period);\n}\n//# sourceMappingURL=sampleTime.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/sampleTime.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/scan.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/scan.js ***! + \****************************************************************/ +/*! exports provided: scan */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scan\", function() { return scan; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction scan(accumulator, seed) {\n var hasSeed = false;\n if (arguments.length >= 2) {\n hasSeed = true;\n }\n return function scanOperatorFunction(source) {\n return source.lift(new ScanOperator(accumulator, seed, hasSeed));\n };\n}\nvar ScanOperator = (function () {\n function ScanOperator(accumulator, seed, hasSeed) {\n if (hasSeed === void 0) { hasSeed = false; }\n this.accumulator = accumulator;\n this.seed = seed;\n this.hasSeed = hasSeed;\n }\n ScanOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));\n };\n return ScanOperator;\n}());\nvar ScanSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ScanSubscriber, _super);\n function ScanSubscriber(destination, accumulator, _state, _hasState) {\n var _this = _super.call(this, destination) || this;\n _this.accumulator = accumulator;\n _this._state = _state;\n _this._hasState = _hasState;\n _this.index = 0;\n return _this;\n }\n ScanSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n if (!this._hasState) {\n this._state = value;\n this._hasState = true;\n destination.next(value);\n }\n else {\n var index = this.index++;\n var result = void 0;\n try {\n result = this.accumulator(this._state, value, index);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this._state = result;\n destination.next(result);\n }\n };\n return ScanSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=scan.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/scan.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/sequenceEqual.js": +/*!*************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/sequenceEqual.js ***! + \*************************************************************************/ +/*! exports provided: sequenceEqual, SequenceEqualOperator, SequenceEqualSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sequenceEqual\", function() { return sequenceEqual; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SequenceEqualOperator\", function() { return SequenceEqualOperator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SequenceEqualSubscriber\", function() { return SequenceEqualSubscriber; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction sequenceEqual(compareTo, comparator) {\n return function (source) { return source.lift(new SequenceEqualOperator(compareTo, comparator)); };\n}\nvar SequenceEqualOperator = (function () {\n function SequenceEqualOperator(compareTo, comparator) {\n this.compareTo = compareTo;\n this.comparator = comparator;\n }\n SequenceEqualOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparator));\n };\n return SequenceEqualOperator;\n}());\n\nvar SequenceEqualSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SequenceEqualSubscriber, _super);\n function SequenceEqualSubscriber(destination, compareTo, comparator) {\n var _this = _super.call(this, destination) || this;\n _this.compareTo = compareTo;\n _this.comparator = comparator;\n _this._a = [];\n _this._b = [];\n _this._oneComplete = false;\n _this.destination.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this)));\n return _this;\n }\n SequenceEqualSubscriber.prototype._next = function (value) {\n if (this._oneComplete && this._b.length === 0) {\n this.emit(false);\n }\n else {\n this._a.push(value);\n this.checkValues();\n }\n };\n SequenceEqualSubscriber.prototype._complete = function () {\n if (this._oneComplete) {\n this.emit(this._a.length === 0 && this._b.length === 0);\n }\n else {\n this._oneComplete = true;\n }\n this.unsubscribe();\n };\n SequenceEqualSubscriber.prototype.checkValues = function () {\n var _c = this, _a = _c._a, _b = _c._b, comparator = _c.comparator;\n while (_a.length > 0 && _b.length > 0) {\n var a = _a.shift();\n var b = _b.shift();\n var areEqual = false;\n try {\n areEqual = comparator ? comparator(a, b) : a === b;\n }\n catch (e) {\n this.destination.error(e);\n }\n if (!areEqual) {\n this.emit(false);\n }\n }\n };\n SequenceEqualSubscriber.prototype.emit = function (value) {\n var destination = this.destination;\n destination.next(value);\n destination.complete();\n };\n SequenceEqualSubscriber.prototype.nextB = function (value) {\n if (this._oneComplete && this._a.length === 0) {\n this.emit(false);\n }\n else {\n this._b.push(value);\n this.checkValues();\n }\n };\n SequenceEqualSubscriber.prototype.completeB = function () {\n if (this._oneComplete) {\n this.emit(this._a.length === 0 && this._b.length === 0);\n }\n else {\n this._oneComplete = true;\n }\n };\n return SequenceEqualSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n\nvar SequenceEqualCompareToSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SequenceEqualCompareToSubscriber, _super);\n function SequenceEqualCompareToSubscriber(destination, parent) {\n var _this = _super.call(this, destination) || this;\n _this.parent = parent;\n return _this;\n }\n SequenceEqualCompareToSubscriber.prototype._next = function (value) {\n this.parent.nextB(value);\n };\n SequenceEqualCompareToSubscriber.prototype._error = function (err) {\n this.parent.error(err);\n this.unsubscribe();\n };\n SequenceEqualCompareToSubscriber.prototype._complete = function () {\n this.parent.completeB();\n this.unsubscribe();\n };\n return SequenceEqualCompareToSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=sequenceEqual.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/sequenceEqual.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/share.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/share.js ***! + \*****************************************************************/ +/*! exports provided: share */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"share\", function() { return share; });\n/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./multicast */ \"./node_modules/rxjs/dist/esm5/internal/operators/multicast.js\");\n/* harmony import */ var _refCount__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./refCount */ \"./node_modules/rxjs/dist/esm5/internal/operators/refCount.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n\n\n\nfunction shareSubjectFactory() {\n return new _Subject__WEBPACK_IMPORTED_MODULE_2__[\"Subject\"]();\n}\nfunction share() {\n return function (source) { return Object(_refCount__WEBPACK_IMPORTED_MODULE_1__[\"refCount\"])()(Object(_multicast__WEBPACK_IMPORTED_MODULE_0__[\"multicast\"])(shareSubjectFactory)(source)); };\n}\n//# sourceMappingURL=share.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/share.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/shareReplay.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/shareReplay.js ***! + \***********************************************************************/ +/*! exports provided: shareReplay */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"shareReplay\", function() { return shareReplay; });\n/* harmony import */ var _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ReplaySubject */ \"./node_modules/rxjs/dist/esm5/internal/ReplaySubject.js\");\n\nfunction shareReplay(configOrBufferSize, windowTime, scheduler) {\n var config;\n if (configOrBufferSize && typeof configOrBufferSize === 'object') {\n config = configOrBufferSize;\n }\n else {\n config = {\n bufferSize: configOrBufferSize,\n windowTime: windowTime,\n refCount: false,\n scheduler: scheduler\n };\n }\n return function (source) { return source.lift(shareReplayOperator(config)); };\n}\nfunction shareReplayOperator(_a) {\n var _b = _a.bufferSize, bufferSize = _b === void 0 ? Number.POSITIVE_INFINITY : _b, _c = _a.windowTime, windowTime = _c === void 0 ? Number.POSITIVE_INFINITY : _c, useRefCount = _a.refCount, scheduler = _a.scheduler;\n var subject;\n var refCount = 0;\n var subscription;\n var hasError = false;\n var isComplete = false;\n return function shareReplayOperation(source) {\n refCount++;\n if (!subject || hasError) {\n hasError = false;\n subject = new _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__[\"ReplaySubject\"](bufferSize, windowTime, scheduler);\n subscription = source.subscribe({\n next: function (value) { subject.next(value); },\n error: function (err) {\n hasError = true;\n subject.error(err);\n },\n complete: function () {\n isComplete = true;\n subscription = undefined;\n subject.complete();\n },\n });\n }\n var innerSub = subject.subscribe(this);\n this.add(function () {\n refCount--;\n innerSub.unsubscribe();\n if (subscription && !isComplete && useRefCount && refCount === 0) {\n subscription.unsubscribe();\n subscription = undefined;\n subject = undefined;\n }\n });\n };\n}\n//# sourceMappingURL=shareReplay.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/shareReplay.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/single.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/single.js ***! + \******************************************************************/ +/*! exports provided: single */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"single\", function() { return single; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/EmptyError */ \"./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js\");\n\n\n\nfunction single(predicate) {\n return function (source) { return source.lift(new SingleOperator(predicate, source)); };\n}\nvar SingleOperator = (function () {\n function SingleOperator(predicate, source) {\n this.predicate = predicate;\n this.source = source;\n }\n SingleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source));\n };\n return SingleOperator;\n}());\nvar SingleSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SingleSubscriber, _super);\n function SingleSubscriber(destination, predicate, source) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.source = source;\n _this.seenValue = false;\n _this.index = 0;\n return _this;\n }\n SingleSubscriber.prototype.applySingleValue = function (value) {\n if (this.seenValue) {\n this.destination.error('Sequence contains more than one element');\n }\n else {\n this.seenValue = true;\n this.singleValue = value;\n }\n };\n SingleSubscriber.prototype._next = function (value) {\n var index = this.index++;\n if (this.predicate) {\n this.tryNext(value, index);\n }\n else {\n this.applySingleValue(value);\n }\n };\n SingleSubscriber.prototype.tryNext = function (value, index) {\n try {\n if (this.predicate(value, index, this.source)) {\n this.applySingleValue(value);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n SingleSubscriber.prototype._complete = function () {\n var destination = this.destination;\n if (this.index > 0) {\n destination.next(this.seenValue ? this.singleValue : undefined);\n destination.complete();\n }\n else {\n destination.error(new _util_EmptyError__WEBPACK_IMPORTED_MODULE_2__[\"EmptyError\"]);\n }\n };\n return SingleSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=single.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/single.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/skip.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/skip.js ***! + \****************************************************************/ +/*! exports provided: skip */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"skip\", function() { return skip; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction skip(count) {\n return function (source) { return source.lift(new SkipOperator(count)); };\n}\nvar SkipOperator = (function () {\n function SkipOperator(total) {\n this.total = total;\n }\n SkipOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SkipSubscriber(subscriber, this.total));\n };\n return SkipOperator;\n}());\nvar SkipSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SkipSubscriber, _super);\n function SkipSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n SkipSubscriber.prototype._next = function (x) {\n if (++this.count > this.total) {\n this.destination.next(x);\n }\n };\n return SkipSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=skip.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/skip.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/skipLast.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/skipLast.js ***! + \********************************************************************/ +/*! exports provided: skipLast */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"skipLast\", function() { return skipLast; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/ArgumentOutOfRangeError */ \"./node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js\");\n\n\n\nfunction skipLast(count) {\n return function (source) { return source.lift(new SkipLastOperator(count)); };\n}\nvar SkipLastOperator = (function () {\n function SkipLastOperator(_skipCount) {\n this._skipCount = _skipCount;\n if (this._skipCount < 0) {\n throw new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__[\"ArgumentOutOfRangeError\"];\n }\n }\n SkipLastOperator.prototype.call = function (subscriber, source) {\n if (this._skipCount === 0) {\n return source.subscribe(new _Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"](subscriber));\n }\n else {\n return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount));\n }\n };\n return SkipLastOperator;\n}());\nvar SkipLastSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SkipLastSubscriber, _super);\n function SkipLastSubscriber(destination, _skipCount) {\n var _this = _super.call(this, destination) || this;\n _this._skipCount = _skipCount;\n _this._count = 0;\n _this._ring = new Array(_skipCount);\n return _this;\n }\n SkipLastSubscriber.prototype._next = function (value) {\n var skipCount = this._skipCount;\n var count = this._count++;\n if (count < skipCount) {\n this._ring[count] = value;\n }\n else {\n var currentIndex = count % skipCount;\n var ring = this._ring;\n var oldValue = ring[currentIndex];\n ring[currentIndex] = value;\n this.destination.next(oldValue);\n }\n };\n return SkipLastSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=skipLast.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/skipLast.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/skipUntil.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/skipUntil.js ***! + \*********************************************************************/ +/*! exports provided: skipUntil */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"skipUntil\", function() { return skipUntil; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../InnerSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\nfunction skipUntil(notifier) {\n return function (source) { return source.lift(new SkipUntilOperator(notifier)); };\n}\nvar SkipUntilOperator = (function () {\n function SkipUntilOperator(notifier) {\n this.notifier = notifier;\n }\n SkipUntilOperator.prototype.call = function (destination, source) {\n return source.subscribe(new SkipUntilSubscriber(destination, this.notifier));\n };\n return SkipUntilOperator;\n}());\nvar SkipUntilSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SkipUntilSubscriber, _super);\n function SkipUntilSubscriber(destination, notifier) {\n var _this = _super.call(this, destination) || this;\n _this.hasValue = false;\n var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"InnerSubscriber\"](_this, undefined, undefined);\n _this.add(innerSubscriber);\n _this.innerSubscription = innerSubscriber;\n var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToResult\"])(_this, notifier, undefined, undefined, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n _this.add(innerSubscription);\n _this.innerSubscription = innerSubscription;\n }\n return _this;\n }\n SkipUntilSubscriber.prototype._next = function (value) {\n if (this.hasValue) {\n _super.prototype._next.call(this, value);\n }\n };\n SkipUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.hasValue = true;\n if (this.innerSubscription) {\n this.innerSubscription.unsubscribe();\n }\n };\n SkipUntilSubscriber.prototype.notifyComplete = function () {\n };\n return SkipUntilSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=skipUntil.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/skipUntil.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/skipWhile.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/skipWhile.js ***! + \*********************************************************************/ +/*! exports provided: skipWhile */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"skipWhile\", function() { return skipWhile; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction skipWhile(predicate) {\n return function (source) { return source.lift(new SkipWhileOperator(predicate)); };\n}\nvar SkipWhileOperator = (function () {\n function SkipWhileOperator(predicate) {\n this.predicate = predicate;\n }\n SkipWhileOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate));\n };\n return SkipWhileOperator;\n}());\nvar SkipWhileSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SkipWhileSubscriber, _super);\n function SkipWhileSubscriber(destination, predicate) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.skipping = true;\n _this.index = 0;\n return _this;\n }\n SkipWhileSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n if (this.skipping) {\n this.tryCallPredicate(value);\n }\n if (!this.skipping) {\n destination.next(value);\n }\n };\n SkipWhileSubscriber.prototype.tryCallPredicate = function (value) {\n try {\n var result = this.predicate(value, this.index++);\n this.skipping = Boolean(result);\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n return SkipWhileSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=skipWhile.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/skipWhile.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/startWith.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/startWith.js ***! + \*********************************************************************/ +/*! exports provided: startWith */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"startWith\", function() { return startWith; });\n/* harmony import */ var _observable_concat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../observable/concat */ \"./node_modules/rxjs/dist/esm5/internal/observable/concat.js\");\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n\n\nfunction startWith() {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n var scheduler = values[values.length - 1];\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_1__[\"isScheduler\"])(scheduler)) {\n values.pop();\n return function (source) { return Object(_observable_concat__WEBPACK_IMPORTED_MODULE_0__[\"concat\"])(values, source, scheduler); };\n }\n else {\n return function (source) { return Object(_observable_concat__WEBPACK_IMPORTED_MODULE_0__[\"concat\"])(values, source); };\n }\n}\n//# sourceMappingURL=startWith.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/startWith.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js ***! + \***********************************************************************/ +/*! exports provided: subscribeOn */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subscribeOn\", function() { return subscribeOn; });\n/* harmony import */ var _observable_SubscribeOnObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../observable/SubscribeOnObservable */ \"./node_modules/rxjs/dist/esm5/internal/observable/SubscribeOnObservable.js\");\n\nfunction subscribeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return function subscribeOnOperatorFunction(source) {\n return source.lift(new SubscribeOnOperator(scheduler, delay));\n };\n}\nvar SubscribeOnOperator = (function () {\n function SubscribeOnOperator(scheduler, delay) {\n this.scheduler = scheduler;\n this.delay = delay;\n }\n SubscribeOnOperator.prototype.call = function (subscriber, source) {\n return new _observable_SubscribeOnObservable__WEBPACK_IMPORTED_MODULE_0__[\"SubscribeOnObservable\"](source, this.delay, this.scheduler).subscribe(subscriber);\n };\n return SubscribeOnOperator;\n}());\n//# sourceMappingURL=subscribeOn.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/switchAll.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/switchAll.js ***! + \*********************************************************************/ +/*! exports provided: switchAll */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"switchAll\", function() { return switchAll; });\n/* harmony import */ var _switchMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./switchMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js\");\n/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/identity */ \"./node_modules/rxjs/dist/esm5/internal/util/identity.js\");\n\n\nfunction switchAll() {\n return Object(_switchMap__WEBPACK_IMPORTED_MODULE_0__[\"switchMap\"])(_util_identity__WEBPACK_IMPORTED_MODULE_1__[\"identity\"]);\n}\n//# sourceMappingURL=switchAll.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/switchAll.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js ***! + \*********************************************************************/ +/*! exports provided: switchMap */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"switchMap\", function() { return switchMap; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../InnerSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../observable/from */ \"./node_modules/rxjs/dist/esm5/internal/observable/from.js\");\n\n\n\n\n\n\nfunction switchMap(project, resultSelector) {\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(switchMap(function (a, i) { return Object(_observable_from__WEBPACK_IMPORTED_MODULE_5__[\"from\"])(project(a, i)).pipe(Object(_map__WEBPACK_IMPORTED_MODULE_4__[\"map\"])(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };\n }\n return function (source) { return source.lift(new SwitchMapOperator(project)); };\n}\nvar SwitchMapOperator = (function () {\n function SwitchMapOperator(project) {\n this.project = project;\n }\n SwitchMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));\n };\n return SwitchMapOperator;\n}());\nvar SwitchMapSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(SwitchMapSubscriber, _super);\n function SwitchMapSubscriber(destination, project) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.index = 0;\n return _this;\n }\n SwitchMapSubscriber.prototype._next = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (error) {\n this.destination.error(error);\n return;\n }\n this._innerSub(result, value, index);\n };\n SwitchMapSubscriber.prototype._innerSub = function (result, value, index) {\n var innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"InnerSubscriber\"](this, value, index);\n var destination = this.destination;\n destination.add(innerSubscriber);\n this.innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToResult\"])(this, result, undefined, undefined, innerSubscriber);\n if (this.innerSubscription !== innerSubscriber) {\n destination.add(this.innerSubscription);\n }\n };\n SwitchMapSubscriber.prototype._complete = function () {\n var innerSubscription = this.innerSubscription;\n if (!innerSubscription || innerSubscription.closed) {\n _super.prototype._complete.call(this);\n }\n this.unsubscribe();\n };\n SwitchMapSubscriber.prototype._unsubscribe = function () {\n this.innerSubscription = null;\n };\n SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var destination = this.destination;\n destination.remove(innerSub);\n this.innerSubscription = null;\n if (this.isStopped) {\n _super.prototype._complete.call(this);\n }\n };\n SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n return SwitchMapSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=switchMap.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/switchMapTo.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/switchMapTo.js ***! + \***********************************************************************/ +/*! exports provided: switchMapTo */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"switchMapTo\", function() { return switchMapTo; });\n/* harmony import */ var _switchMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./switchMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js\");\n\nfunction switchMapTo(innerObservable, resultSelector) {\n return resultSelector ? Object(_switchMap__WEBPACK_IMPORTED_MODULE_0__[\"switchMap\"])(function () { return innerObservable; }, resultSelector) : Object(_switchMap__WEBPACK_IMPORTED_MODULE_0__[\"switchMap\"])(function () { return innerObservable; });\n}\n//# sourceMappingURL=switchMapTo.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/switchMapTo.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/take.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/take.js ***! + \****************************************************************/ +/*! exports provided: take */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"take\", function() { return take; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/ArgumentOutOfRangeError */ \"./node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js\");\n/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../observable/empty */ \"./node_modules/rxjs/dist/esm5/internal/observable/empty.js\");\n\n\n\n\nfunction take(count) {\n return function (source) {\n if (count === 0) {\n return _observable_empty__WEBPACK_IMPORTED_MODULE_3__[\"EMPTY\"];\n }\n else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\nvar TakeOperator = (function () {\n function TakeOperator(total) {\n this.total = total;\n if (this.total < 0) {\n throw new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__[\"ArgumentOutOfRangeError\"];\n }\n }\n TakeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n };\n return TakeOperator;\n}());\nvar TakeSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(TakeSubscriber, _super);\n function TakeSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n TakeSubscriber.prototype._next = function (value) {\n var total = this.total;\n var count = ++this.count;\n if (count <= total) {\n this.destination.next(value);\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n };\n return TakeSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=take.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/take.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/takeLast.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/takeLast.js ***! + \********************************************************************/ +/*! exports provided: takeLast */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"takeLast\", function() { return takeLast; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/ArgumentOutOfRangeError */ \"./node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js\");\n/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../observable/empty */ \"./node_modules/rxjs/dist/esm5/internal/observable/empty.js\");\n\n\n\n\nfunction takeLast(count) {\n return function takeLastOperatorFunction(source) {\n if (count === 0) {\n return _observable_empty__WEBPACK_IMPORTED_MODULE_3__[\"EMPTY\"];\n }\n else {\n return source.lift(new TakeLastOperator(count));\n }\n };\n}\nvar TakeLastOperator = (function () {\n function TakeLastOperator(total) {\n this.total = total;\n if (this.total < 0) {\n throw new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__[\"ArgumentOutOfRangeError\"];\n }\n }\n TakeLastOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeLastSubscriber(subscriber, this.total));\n };\n return TakeLastOperator;\n}());\nvar TakeLastSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(TakeLastSubscriber, _super);\n function TakeLastSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.ring = new Array();\n _this.count = 0;\n return _this;\n }\n TakeLastSubscriber.prototype._next = function (value) {\n var ring = this.ring;\n var total = this.total;\n var count = this.count++;\n if (ring.length < total) {\n ring.push(value);\n }\n else {\n var index = count % total;\n ring[index] = value;\n }\n };\n TakeLastSubscriber.prototype._complete = function () {\n var destination = this.destination;\n var count = this.count;\n if (count > 0) {\n var total = this.count >= this.total ? this.total : this.count;\n var ring = this.ring;\n for (var i = 0; i < total; i++) {\n var idx = (count++) % total;\n destination.next(ring[idx]);\n }\n }\n destination.complete();\n };\n return TakeLastSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=takeLast.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/takeLast.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js ***! + \*********************************************************************/ +/*! exports provided: takeUntil */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"takeUntil\", function() { return takeUntil; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nfunction takeUntil(notifier) {\n return function (source) { return source.lift(new TakeUntilOperator(notifier)); };\n}\nvar TakeUntilOperator = (function () {\n function TakeUntilOperator(notifier) {\n this.notifier = notifier;\n }\n TakeUntilOperator.prototype.call = function (subscriber, source) {\n var takeUntilSubscriber = new TakeUntilSubscriber(subscriber);\n var notifierSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(takeUntilSubscriber, this.notifier);\n if (notifierSubscription && !takeUntilSubscriber.seenValue) {\n takeUntilSubscriber.add(notifierSubscription);\n return source.subscribe(takeUntilSubscriber);\n }\n return takeUntilSubscriber;\n };\n return TakeUntilOperator;\n}());\nvar TakeUntilSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(TakeUntilSubscriber, _super);\n function TakeUntilSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.seenValue = false;\n return _this;\n }\n TakeUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.seenValue = true;\n this.complete();\n };\n TakeUntilSubscriber.prototype.notifyComplete = function () {\n };\n return TakeUntilSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=takeUntil.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/takeWhile.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/takeWhile.js ***! + \*********************************************************************/ +/*! exports provided: takeWhile */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"takeWhile\", function() { return takeWhile; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\nfunction takeWhile(predicate, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return function (source) {\n return source.lift(new TakeWhileOperator(predicate, inclusive));\n };\n}\nvar TakeWhileOperator = (function () {\n function TakeWhileOperator(predicate, inclusive) {\n this.predicate = predicate;\n this.inclusive = inclusive;\n }\n TakeWhileOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive));\n };\n return TakeWhileOperator;\n}());\nvar TakeWhileSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(TakeWhileSubscriber, _super);\n function TakeWhileSubscriber(destination, predicate, inclusive) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.inclusive = inclusive;\n _this.index = 0;\n return _this;\n }\n TakeWhileSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n var result;\n try {\n result = this.predicate(value, this.index++);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this.nextOrComplete(value, result);\n };\n TakeWhileSubscriber.prototype.nextOrComplete = function (value, predicateResult) {\n var destination = this.destination;\n if (Boolean(predicateResult)) {\n destination.next(value);\n }\n else {\n if (this.inclusive) {\n destination.next(value);\n }\n destination.complete();\n }\n };\n return TakeWhileSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=takeWhile.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/takeWhile.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/tap.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/tap.js ***! + \***************************************************************/ +/*! exports provided: tap */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tap\", function() { return tap; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _util_noop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/noop */ \"./node_modules/rxjs/dist/esm5/internal/util/noop.js\");\n/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/isFunction */ \"./node_modules/rxjs/dist/esm5/internal/util/isFunction.js\");\n\n\n\n\nfunction tap(nextOrObserver, error, complete) {\n return function tapOperatorFunction(source) {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\nvar DoOperator = (function () {\n function DoOperator(nextOrObserver, error, complete) {\n this.nextOrObserver = nextOrObserver;\n this.error = error;\n this.complete = complete;\n }\n DoOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n };\n return DoOperator;\n}());\nvar TapSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(TapSubscriber, _super);\n function TapSubscriber(destination, observerOrNext, error, complete) {\n var _this = _super.call(this, destination) || this;\n _this._tapNext = _util_noop__WEBPACK_IMPORTED_MODULE_2__[\"noop\"];\n _this._tapError = _util_noop__WEBPACK_IMPORTED_MODULE_2__[\"noop\"];\n _this._tapComplete = _util_noop__WEBPACK_IMPORTED_MODULE_2__[\"noop\"];\n _this._tapError = error || _util_noop__WEBPACK_IMPORTED_MODULE_2__[\"noop\"];\n _this._tapComplete = complete || _util_noop__WEBPACK_IMPORTED_MODULE_2__[\"noop\"];\n if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_3__[\"isFunction\"])(observerOrNext)) {\n _this._context = _this;\n _this._tapNext = observerOrNext;\n }\n else if (observerOrNext) {\n _this._context = observerOrNext;\n _this._tapNext = observerOrNext.next || _util_noop__WEBPACK_IMPORTED_MODULE_2__[\"noop\"];\n _this._tapError = observerOrNext.error || _util_noop__WEBPACK_IMPORTED_MODULE_2__[\"noop\"];\n _this._tapComplete = observerOrNext.complete || _util_noop__WEBPACK_IMPORTED_MODULE_2__[\"noop\"];\n }\n return _this;\n }\n TapSubscriber.prototype._next = function (value) {\n try {\n this._tapNext.call(this._context, value);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(value);\n };\n TapSubscriber.prototype._error = function (err) {\n try {\n this._tapError.call(this._context, err);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.error(err);\n };\n TapSubscriber.prototype._complete = function () {\n try {\n this._tapComplete.call(this._context);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n return this.destination.complete();\n };\n return TapSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=tap.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/tap.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/throttle.js": +/*!********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/throttle.js ***! + \********************************************************************/ +/*! exports provided: defaultThrottleConfig, throttle */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultThrottleConfig\", function() { return defaultThrottleConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"throttle\", function() { return throttle; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nvar defaultThrottleConfig = {\n leading: true,\n trailing: false\n};\nfunction throttle(durationSelector, config) {\n if (config === void 0) { config = defaultThrottleConfig; }\n return function (source) { return source.lift(new ThrottleOperator(durationSelector, !!config.leading, !!config.trailing)); };\n}\nvar ThrottleOperator = (function () {\n function ThrottleOperator(durationSelector, leading, trailing) {\n this.durationSelector = durationSelector;\n this.leading = leading;\n this.trailing = trailing;\n }\n ThrottleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing));\n };\n return ThrottleOperator;\n}());\nvar ThrottleSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ThrottleSubscriber, _super);\n function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.durationSelector = durationSelector;\n _this._leading = _leading;\n _this._trailing = _trailing;\n _this._sendValue = null;\n _this._hasValue = false;\n return _this;\n }\n ThrottleSubscriber.prototype._next = function (value) {\n this._hasValue = true;\n this._sendValue = value;\n if (!this._throttled) {\n if (this._leading) {\n this.send();\n }\n else {\n this.throttle(value);\n }\n }\n };\n ThrottleSubscriber.prototype.send = function () {\n var _a = this, _hasValue = _a._hasValue, _sendValue = _a._sendValue;\n if (_hasValue) {\n this.destination.next(_sendValue);\n this.throttle(_sendValue);\n }\n this._hasValue = false;\n this._sendValue = null;\n };\n ThrottleSubscriber.prototype.throttle = function (value) {\n var duration = this.tryDurationSelector(value);\n if (!!duration) {\n this.add(this._throttled = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(this, duration));\n }\n };\n ThrottleSubscriber.prototype.tryDurationSelector = function (value) {\n try {\n return this.durationSelector(value);\n }\n catch (err) {\n this.destination.error(err);\n return null;\n }\n };\n ThrottleSubscriber.prototype.throttlingDone = function () {\n var _a = this, _throttled = _a._throttled, _trailing = _a._trailing;\n if (_throttled) {\n _throttled.unsubscribe();\n }\n this._throttled = null;\n if (_trailing) {\n this.send();\n }\n };\n ThrottleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.throttlingDone();\n };\n ThrottleSubscriber.prototype.notifyComplete = function () {\n this.throttlingDone();\n };\n return ThrottleSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=throttle.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/throttle.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/throttleTime.js": +/*!************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/throttleTime.js ***! + \************************************************************************/ +/*! exports provided: throttleTime */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"throttleTime\", function() { return throttleTime; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _throttle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./throttle */ \"./node_modules/rxjs/dist/esm5/internal/operators/throttle.js\");\n\n\n\n\nfunction throttleTime(duration, scheduler, config) {\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_2__[\"async\"]; }\n if (config === void 0) { config = _throttle__WEBPACK_IMPORTED_MODULE_3__[\"defaultThrottleConfig\"]; }\n return function (source) { return source.lift(new ThrottleTimeOperator(duration, scheduler, !!config.leading, !!config.trailing)); };\n}\nvar ThrottleTimeOperator = (function () {\n function ThrottleTimeOperator(duration, scheduler, leading, trailing) {\n this.duration = duration;\n this.scheduler = scheduler;\n this.leading = leading;\n this.trailing = trailing;\n }\n ThrottleTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing));\n };\n return ThrottleTimeOperator;\n}());\nvar ThrottleTimeSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ThrottleTimeSubscriber, _super);\n function ThrottleTimeSubscriber(destination, duration, scheduler, leading, trailing) {\n var _this = _super.call(this, destination) || this;\n _this.duration = duration;\n _this.scheduler = scheduler;\n _this.leading = leading;\n _this.trailing = trailing;\n _this.throttled = null;\n _this._hasTrailingValue = false;\n _this._trailingValue = null;\n return _this;\n }\n ThrottleTimeSubscriber.prototype._next = function (value) {\n if (this.throttled) {\n if (this.trailing) {\n this._trailingValue = value;\n this._hasTrailingValue = true;\n }\n }\n else {\n this.add(this.throttled = this.scheduler.schedule(dispatchNext, this.duration, { subscriber: this }));\n if (this.leading) {\n this.destination.next(value);\n }\n else if (this.trailing) {\n this._trailingValue = value;\n this._hasTrailingValue = true;\n }\n }\n };\n ThrottleTimeSubscriber.prototype._complete = function () {\n if (this._hasTrailingValue) {\n this.destination.next(this._trailingValue);\n this.destination.complete();\n }\n else {\n this.destination.complete();\n }\n };\n ThrottleTimeSubscriber.prototype.clearThrottle = function () {\n var throttled = this.throttled;\n if (throttled) {\n if (this.trailing && this._hasTrailingValue) {\n this.destination.next(this._trailingValue);\n this._trailingValue = null;\n this._hasTrailingValue = false;\n }\n throttled.unsubscribe();\n this.remove(throttled);\n this.throttled = null;\n }\n };\n return ThrottleTimeSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\nfunction dispatchNext(arg) {\n var subscriber = arg.subscriber;\n subscriber.clearThrottle();\n}\n//# sourceMappingURL=throttleTime.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/throttleTime.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js": +/*!************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js ***! + \************************************************************************/ +/*! exports provided: throwIfEmpty */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"throwIfEmpty\", function() { return throwIfEmpty; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/EmptyError */ \"./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\n\n\nfunction throwIfEmpty(errorFactory) {\n if (errorFactory === void 0) { errorFactory = defaultErrorFactory; }\n return function (source) {\n return source.lift(new ThrowIfEmptyOperator(errorFactory));\n };\n}\nvar ThrowIfEmptyOperator = (function () {\n function ThrowIfEmptyOperator(errorFactory) {\n this.errorFactory = errorFactory;\n }\n ThrowIfEmptyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory));\n };\n return ThrowIfEmptyOperator;\n}());\nvar ThrowIfEmptySubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(ThrowIfEmptySubscriber, _super);\n function ThrowIfEmptySubscriber(destination, errorFactory) {\n var _this = _super.call(this, destination) || this;\n _this.errorFactory = errorFactory;\n _this.hasValue = false;\n return _this;\n }\n ThrowIfEmptySubscriber.prototype._next = function (value) {\n this.hasValue = true;\n this.destination.next(value);\n };\n ThrowIfEmptySubscriber.prototype._complete = function () {\n if (!this.hasValue) {\n var err = void 0;\n try {\n err = this.errorFactory();\n }\n catch (e) {\n err = e;\n }\n this.destination.error(err);\n }\n else {\n return this.destination.complete();\n }\n };\n return ThrowIfEmptySubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_2__[\"Subscriber\"]));\nfunction defaultErrorFactory() {\n return new _util_EmptyError__WEBPACK_IMPORTED_MODULE_1__[\"EmptyError\"]();\n}\n//# sourceMappingURL=throwIfEmpty.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/timeInterval.js": +/*!************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/timeInterval.js ***! + \************************************************************************/ +/*! exports provided: timeInterval, TimeInterval */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeInterval\", function() { return timeInterval; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TimeInterval\", function() { return TimeInterval; });\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./scan */ \"./node_modules/rxjs/dist/esm5/internal/operators/scan.js\");\n/* harmony import */ var _observable_defer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../observable/defer */ \"./node_modules/rxjs/dist/esm5/internal/observable/defer.js\");\n/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n\n\n\n\nfunction timeInterval(scheduler) {\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__[\"async\"]; }\n return function (source) { return Object(_observable_defer__WEBPACK_IMPORTED_MODULE_2__[\"defer\"])(function () {\n return source.pipe(Object(_scan__WEBPACK_IMPORTED_MODULE_1__[\"scan\"])(function (_a, value) {\n var current = _a.current;\n return ({ value: value, current: scheduler.now(), last: current });\n }, { current: scheduler.now(), value: undefined, last: undefined }), Object(_map__WEBPACK_IMPORTED_MODULE_3__[\"map\"])(function (_a) {\n var current = _a.current, last = _a.last, value = _a.value;\n return new TimeInterval(value, current - last);\n }));\n }); };\n}\nvar TimeInterval = (function () {\n function TimeInterval(value, interval) {\n this.value = value;\n this.interval = interval;\n }\n return TimeInterval;\n}());\n\n//# sourceMappingURL=timeInterval.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/timeInterval.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/timeout.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/timeout.js ***! + \*******************************************************************/ +/*! exports provided: timeout */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeout\", function() { return timeout; });\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _util_TimeoutError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/TimeoutError */ \"./node_modules/rxjs/dist/esm5/internal/util/TimeoutError.js\");\n/* harmony import */ var _timeoutWith__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./timeoutWith */ \"./node_modules/rxjs/dist/esm5/internal/operators/timeoutWith.js\");\n/* harmony import */ var _observable_throwError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../observable/throwError */ \"./node_modules/rxjs/dist/esm5/internal/observable/throwError.js\");\n\n\n\n\nfunction timeout(due, scheduler) {\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__[\"async\"]; }\n return Object(_timeoutWith__WEBPACK_IMPORTED_MODULE_2__[\"timeoutWith\"])(due, Object(_observable_throwError__WEBPACK_IMPORTED_MODULE_3__[\"throwError\"])(new _util_TimeoutError__WEBPACK_IMPORTED_MODULE_1__[\"TimeoutError\"]()), scheduler);\n}\n//# sourceMappingURL=timeout.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/timeout.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/timeoutWith.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/timeoutWith.js ***! + \***********************************************************************/ +/*! exports provided: timeoutWith */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeoutWith\", function() { return timeoutWith; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _util_isDate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isDate */ \"./node_modules/rxjs/dist/esm5/internal/util/isDate.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\n\nfunction timeoutWith(due, withObservable, scheduler) {\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__[\"async\"]; }\n return function (source) {\n var absoluteTimeout = Object(_util_isDate__WEBPACK_IMPORTED_MODULE_2__[\"isDate\"])(due);\n var waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due);\n return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler));\n };\n}\nvar TimeoutWithOperator = (function () {\n function TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler) {\n this.waitFor = waitFor;\n this.absoluteTimeout = absoluteTimeout;\n this.withObservable = withObservable;\n this.scheduler = scheduler;\n }\n TimeoutWithOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TimeoutWithSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler));\n };\n return TimeoutWithOperator;\n}());\nvar TimeoutWithSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(TimeoutWithSubscriber, _super);\n function TimeoutWithSubscriber(destination, absoluteTimeout, waitFor, withObservable, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.absoluteTimeout = absoluteTimeout;\n _this.waitFor = waitFor;\n _this.withObservable = withObservable;\n _this.scheduler = scheduler;\n _this.action = null;\n _this.scheduleTimeout();\n return _this;\n }\n TimeoutWithSubscriber.dispatchTimeout = function (subscriber) {\n var withObservable = subscriber.withObservable;\n subscriber._unsubscribeAndRecycle();\n subscriber.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__[\"subscribeToResult\"])(subscriber, withObservable));\n };\n TimeoutWithSubscriber.prototype.scheduleTimeout = function () {\n var action = this.action;\n if (action) {\n this.action = action.schedule(this, this.waitFor);\n }\n else {\n this.add(this.action = this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this));\n }\n };\n TimeoutWithSubscriber.prototype._next = function (value) {\n if (!this.absoluteTimeout) {\n this.scheduleTimeout();\n }\n _super.prototype._next.call(this, value);\n };\n TimeoutWithSubscriber.prototype._unsubscribe = function () {\n this.action = null;\n this.scheduler = null;\n this.withObservable = null;\n };\n return TimeoutWithSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__[\"OuterSubscriber\"]));\n//# sourceMappingURL=timeoutWith.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/timeoutWith.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/timestamp.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/timestamp.js ***! + \*********************************************************************/ +/*! exports provided: timestamp, Timestamp */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timestamp\", function() { return timestamp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Timestamp\", function() { return Timestamp; });\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n\n\nfunction timestamp(scheduler) {\n if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__[\"async\"]; }\n return Object(_map__WEBPACK_IMPORTED_MODULE_1__[\"map\"])(function (value) { return new Timestamp(value, scheduler.now()); });\n}\nvar Timestamp = (function () {\n function Timestamp(value, timestamp) {\n this.value = value;\n this.timestamp = timestamp;\n }\n return Timestamp;\n}());\n\n//# sourceMappingURL=timestamp.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/timestamp.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/toArray.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/toArray.js ***! + \*******************************************************************/ +/*! exports provided: toArray */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toArray\", function() { return toArray; });\n/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reduce */ \"./node_modules/rxjs/dist/esm5/internal/operators/reduce.js\");\n\nfunction toArrayReducer(arr, item, index) {\n if (index === 0) {\n return [item];\n }\n arr.push(item);\n return arr;\n}\nfunction toArray() {\n return Object(_reduce__WEBPACK_IMPORTED_MODULE_0__[\"reduce\"])(toArrayReducer, []);\n}\n//# sourceMappingURL=toArray.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/toArray.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/window.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/window.js ***! + \******************************************************************/ +/*! exports provided: window */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"window\", function() { return window; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\nfunction window(windowBoundaries) {\n return function windowOperatorFunction(source) {\n return source.lift(new WindowOperator(windowBoundaries));\n };\n}\nvar WindowOperator = (function () {\n function WindowOperator(windowBoundaries) {\n this.windowBoundaries = windowBoundaries;\n }\n WindowOperator.prototype.call = function (subscriber, source) {\n var windowSubscriber = new WindowSubscriber(subscriber);\n var sourceSubscription = source.subscribe(windowSubscriber);\n if (!sourceSubscription.closed) {\n windowSubscriber.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToResult\"])(windowSubscriber, this.windowBoundaries));\n }\n return sourceSubscription;\n };\n return WindowOperator;\n}());\nvar WindowSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(WindowSubscriber, _super);\n function WindowSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.window = new _Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]();\n destination.next(_this.window);\n return _this;\n }\n WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.openWindow();\n };\n WindowSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n WindowSubscriber.prototype.notifyComplete = function (innerSub) {\n this._complete();\n };\n WindowSubscriber.prototype._next = function (value) {\n this.window.next(value);\n };\n WindowSubscriber.prototype._error = function (err) {\n this.window.error(err);\n this.destination.error(err);\n };\n WindowSubscriber.prototype._complete = function () {\n this.window.complete();\n this.destination.complete();\n };\n WindowSubscriber.prototype._unsubscribe = function () {\n this.window = null;\n };\n WindowSubscriber.prototype.openWindow = function () {\n var prevWindow = this.window;\n if (prevWindow) {\n prevWindow.complete();\n }\n var destination = this.destination;\n var newWindow = this.window = new _Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]();\n destination.next(newWindow);\n };\n return WindowSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"OuterSubscriber\"]));\n//# sourceMappingURL=window.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/window.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/windowCount.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/windowCount.js ***! + \***********************************************************************/ +/*! exports provided: windowCount */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"windowCount\", function() { return windowCount; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n\n\n\nfunction windowCount(windowSize, startWindowEvery) {\n if (startWindowEvery === void 0) { startWindowEvery = 0; }\n return function windowCountOperatorFunction(source) {\n return source.lift(new WindowCountOperator(windowSize, startWindowEvery));\n };\n}\nvar WindowCountOperator = (function () {\n function WindowCountOperator(windowSize, startWindowEvery) {\n this.windowSize = windowSize;\n this.startWindowEvery = startWindowEvery;\n }\n WindowCountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery));\n };\n return WindowCountOperator;\n}());\nvar WindowCountSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(WindowCountSubscriber, _super);\n function WindowCountSubscriber(destination, windowSize, startWindowEvery) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.windowSize = windowSize;\n _this.startWindowEvery = startWindowEvery;\n _this.windows = [new _Subject__WEBPACK_IMPORTED_MODULE_2__[\"Subject\"]()];\n _this.count = 0;\n destination.next(_this.windows[0]);\n return _this;\n }\n WindowCountSubscriber.prototype._next = function (value) {\n var startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize;\n var destination = this.destination;\n var windowSize = this.windowSize;\n var windows = this.windows;\n var len = windows.length;\n for (var i = 0; i < len && !this.closed; i++) {\n windows[i].next(value);\n }\n var c = this.count - windowSize + 1;\n if (c >= 0 && c % startWindowEvery === 0 && !this.closed) {\n windows.shift().complete();\n }\n if (++this.count % startWindowEvery === 0 && !this.closed) {\n var window_1 = new _Subject__WEBPACK_IMPORTED_MODULE_2__[\"Subject\"]();\n windows.push(window_1);\n destination.next(window_1);\n }\n };\n WindowCountSubscriber.prototype._error = function (err) {\n var windows = this.windows;\n if (windows) {\n while (windows.length > 0 && !this.closed) {\n windows.shift().error(err);\n }\n }\n this.destination.error(err);\n };\n WindowCountSubscriber.prototype._complete = function () {\n var windows = this.windows;\n if (windows) {\n while (windows.length > 0 && !this.closed) {\n windows.shift().complete();\n }\n }\n this.destination.complete();\n };\n WindowCountSubscriber.prototype._unsubscribe = function () {\n this.count = 0;\n this.windows = null;\n };\n return WindowCountSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__[\"Subscriber\"]));\n//# sourceMappingURL=windowCount.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/windowCount.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/windowTime.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/windowTime.js ***! + \**********************************************************************/ +/*! exports provided: windowTime */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"windowTime\", function() { return windowTime; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduler/async */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/async.js\");\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/isNumeric */ \"./node_modules/rxjs/dist/esm5/internal/util/isNumeric.js\");\n/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/isScheduler */ \"./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js\");\n\n\n\n\n\n\nfunction windowTime(windowTimeSpan) {\n var scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_2__[\"async\"];\n var windowCreationInterval = null;\n var maxWindowSize = Number.POSITIVE_INFINITY;\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_5__[\"isScheduler\"])(arguments[3])) {\n scheduler = arguments[3];\n }\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_5__[\"isScheduler\"])(arguments[2])) {\n scheduler = arguments[2];\n }\n else if (Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_4__[\"isNumeric\"])(arguments[2])) {\n maxWindowSize = Number(arguments[2]);\n }\n if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_5__[\"isScheduler\"])(arguments[1])) {\n scheduler = arguments[1];\n }\n else if (Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_4__[\"isNumeric\"])(arguments[1])) {\n windowCreationInterval = Number(arguments[1]);\n }\n return function windowTimeOperatorFunction(source) {\n return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler));\n };\n}\nvar WindowTimeOperator = (function () {\n function WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {\n this.windowTimeSpan = windowTimeSpan;\n this.windowCreationInterval = windowCreationInterval;\n this.maxWindowSize = maxWindowSize;\n this.scheduler = scheduler;\n }\n WindowTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowTimeSubscriber(subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler));\n };\n return WindowTimeOperator;\n}());\nvar CountedSubject = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(CountedSubject, _super);\n function CountedSubject() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._numberOfNextedValues = 0;\n return _this;\n }\n CountedSubject.prototype.next = function (value) {\n this._numberOfNextedValues++;\n _super.prototype.next.call(this, value);\n };\n Object.defineProperty(CountedSubject.prototype, \"numberOfNextedValues\", {\n get: function () {\n return this._numberOfNextedValues;\n },\n enumerable: true,\n configurable: true\n });\n return CountedSubject;\n}(_Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]));\nvar WindowTimeSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(WindowTimeSubscriber, _super);\n function WindowTimeSubscriber(destination, windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.maxWindowSize = maxWindowSize;\n _this.windows = [];\n var window = _this.openWindow();\n if (windowCreationInterval !== null && windowCreationInterval >= 0) {\n var closeState = { subscriber: _this, window: window, context: null };\n var creationState = { windowTimeSpan: windowTimeSpan, windowCreationInterval: windowCreationInterval, subscriber: _this, scheduler: scheduler };\n _this.add(scheduler.schedule(dispatchWindowClose, windowTimeSpan, closeState));\n _this.add(scheduler.schedule(dispatchWindowCreation, windowCreationInterval, creationState));\n }\n else {\n var timeSpanOnlyState = { subscriber: _this, window: window, windowTimeSpan: windowTimeSpan };\n _this.add(scheduler.schedule(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState));\n }\n return _this;\n }\n WindowTimeSubscriber.prototype._next = function (value) {\n var windows = this.maxWindowSize < Number.POSITIVE_INFINITY ? this.windows.slice() : this.windows;\n var len = windows.length;\n for (var i = 0; i < len; i++) {\n var window_1 = windows[i];\n if (!window_1.closed) {\n window_1.next(value);\n if (this.maxWindowSize <= window_1.numberOfNextedValues) {\n this.closeWindow(window_1);\n }\n }\n }\n };\n WindowTimeSubscriber.prototype._error = function (err) {\n var windows = this.windows;\n while (windows.length > 0) {\n windows.shift().error(err);\n }\n this.destination.error(err);\n };\n WindowTimeSubscriber.prototype._complete = function () {\n var windows = this.windows;\n while (windows.length > 0) {\n windows.shift().complete();\n }\n this.destination.complete();\n };\n WindowTimeSubscriber.prototype.openWindow = function () {\n var window = new CountedSubject();\n this.windows.push(window);\n var destination = this.destination;\n destination.next(window);\n return window;\n };\n WindowTimeSubscriber.prototype.closeWindow = function (window) {\n var index = this.windows.indexOf(window);\n if (index >= 0) {\n window.complete();\n this.windows.splice(index, 1);\n }\n };\n return WindowTimeSubscriber;\n}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__[\"Subscriber\"]));\nfunction dispatchWindowTimeSpanOnly(state) {\n var subscriber = state.subscriber, windowTimeSpan = state.windowTimeSpan, window = state.window;\n if (window) {\n subscriber.closeWindow(window);\n }\n state.window = subscriber.openWindow();\n this.schedule(state, windowTimeSpan);\n}\nfunction dispatchWindowCreation(state) {\n var windowTimeSpan = state.windowTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler, windowCreationInterval = state.windowCreationInterval;\n var window = subscriber.openWindow();\n var action = this;\n var context = { action: action, subscription: null };\n var timeSpanState = { subscriber: subscriber, window: window, context: context };\n context.subscription = scheduler.schedule(dispatchWindowClose, windowTimeSpan, timeSpanState);\n action.add(context.subscription);\n action.schedule(state, windowCreationInterval);\n}\nfunction dispatchWindowClose(state) {\n var subscriber = state.subscriber, window = state.window, context = state.context;\n if (context && context.action && context.subscription) {\n context.action.remove(context.subscription);\n }\n subscriber.closeWindow(window);\n}\n//# sourceMappingURL=windowTime.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/windowTime.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/windowToggle.js": +/*!************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/windowToggle.js ***! + \************************************************************************/ +/*! exports provided: windowToggle */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"windowToggle\", function() { return windowToggle; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\n\nfunction windowToggle(openings, closingSelector) {\n return function (source) { return source.lift(new WindowToggleOperator(openings, closingSelector)); };\n}\nvar WindowToggleOperator = (function () {\n function WindowToggleOperator(openings, closingSelector) {\n this.openings = openings;\n this.closingSelector = closingSelector;\n }\n WindowToggleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowToggleSubscriber(subscriber, this.openings, this.closingSelector));\n };\n return WindowToggleOperator;\n}());\nvar WindowToggleSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(WindowToggleSubscriber, _super);\n function WindowToggleSubscriber(destination, openings, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.openings = openings;\n _this.closingSelector = closingSelector;\n _this.contexts = [];\n _this.add(_this.openSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__[\"subscribeToResult\"])(_this, openings, openings));\n return _this;\n }\n WindowToggleSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n if (contexts) {\n var len = contexts.length;\n for (var i = 0; i < len; i++) {\n contexts[i].window.next(value);\n }\n }\n };\n WindowToggleSubscriber.prototype._error = function (err) {\n var contexts = this.contexts;\n this.contexts = null;\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n while (++index < len) {\n var context_1 = contexts[index];\n context_1.window.error(err);\n context_1.subscription.unsubscribe();\n }\n }\n _super.prototype._error.call(this, err);\n };\n WindowToggleSubscriber.prototype._complete = function () {\n var contexts = this.contexts;\n this.contexts = null;\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n while (++index < len) {\n var context_2 = contexts[index];\n context_2.window.complete();\n context_2.subscription.unsubscribe();\n }\n }\n _super.prototype._complete.call(this);\n };\n WindowToggleSubscriber.prototype._unsubscribe = function () {\n var contexts = this.contexts;\n this.contexts = null;\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n while (++index < len) {\n var context_3 = contexts[index];\n context_3.window.unsubscribe();\n context_3.subscription.unsubscribe();\n }\n }\n };\n WindowToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n if (outerValue === this.openings) {\n var closingNotifier = void 0;\n try {\n var closingSelector = this.closingSelector;\n closingNotifier = closingSelector(innerValue);\n }\n catch (e) {\n return this.error(e);\n }\n var window_1 = new _Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]();\n var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_2__[\"Subscription\"]();\n var context_4 = { window: window_1, subscription: subscription };\n this.contexts.push(context_4);\n var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__[\"subscribeToResult\"])(this, closingNotifier, context_4);\n if (innerSubscription.closed) {\n this.closeWindow(this.contexts.length - 1);\n }\n else {\n innerSubscription.context = context_4;\n subscription.add(innerSubscription);\n }\n this.destination.next(window_1);\n }\n else {\n this.closeWindow(this.contexts.indexOf(outerValue));\n }\n };\n WindowToggleSubscriber.prototype.notifyError = function (err) {\n this.error(err);\n };\n WindowToggleSubscriber.prototype.notifyComplete = function (inner) {\n if (inner !== this.openSubscription) {\n this.closeWindow(this.contexts.indexOf(inner.context));\n }\n };\n WindowToggleSubscriber.prototype.closeWindow = function (index) {\n if (index === -1) {\n return;\n }\n var contexts = this.contexts;\n var context = contexts[index];\n var window = context.window, subscription = context.subscription;\n contexts.splice(index, 1);\n window.complete();\n subscription.unsubscribe();\n };\n return WindowToggleSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__[\"OuterSubscriber\"]));\n//# sourceMappingURL=windowToggle.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/windowToggle.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/windowWhen.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/windowWhen.js ***! + \**********************************************************************/ +/*! exports provided: windowWhen */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"windowWhen\", function() { return windowWhen; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ \"./node_modules/rxjs/dist/esm5/internal/Subject.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\n\nfunction windowWhen(closingSelector) {\n return function windowWhenOperatorFunction(source) {\n return source.lift(new WindowOperator(closingSelector));\n };\n}\nvar WindowOperator = (function () {\n function WindowOperator(closingSelector) {\n this.closingSelector = closingSelector;\n }\n WindowOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector));\n };\n return WindowOperator;\n}());\nvar WindowSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(WindowSubscriber, _super);\n function WindowSubscriber(destination, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.closingSelector = closingSelector;\n _this.openWindow();\n return _this;\n }\n WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.openWindow(innerSub);\n };\n WindowSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n WindowSubscriber.prototype.notifyComplete = function (innerSub) {\n this.openWindow(innerSub);\n };\n WindowSubscriber.prototype._next = function (value) {\n this.window.next(value);\n };\n WindowSubscriber.prototype._error = function (err) {\n this.window.error(err);\n this.destination.error(err);\n this.unsubscribeClosingNotification();\n };\n WindowSubscriber.prototype._complete = function () {\n this.window.complete();\n this.destination.complete();\n this.unsubscribeClosingNotification();\n };\n WindowSubscriber.prototype.unsubscribeClosingNotification = function () {\n if (this.closingNotification) {\n this.closingNotification.unsubscribe();\n }\n };\n WindowSubscriber.prototype.openWindow = function (innerSub) {\n if (innerSub === void 0) { innerSub = null; }\n if (innerSub) {\n this.remove(innerSub);\n innerSub.unsubscribe();\n }\n var prevWindow = this.window;\n if (prevWindow) {\n prevWindow.complete();\n }\n var window = this.window = new _Subject__WEBPACK_IMPORTED_MODULE_1__[\"Subject\"]();\n this.destination.next(window);\n var closingNotifier;\n try {\n var closingSelector = this.closingSelector;\n closingNotifier = closingSelector();\n }\n catch (e) {\n this.destination.error(e);\n this.window.error(e);\n return;\n }\n this.add(this.closingNotification = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToResult\"])(this, closingNotifier));\n };\n return WindowSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__[\"OuterSubscriber\"]));\n//# sourceMappingURL=windowWhen.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/windowWhen.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js ***! + \**************************************************************************/ +/*! exports provided: withLatestFrom */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"withLatestFrom\", function() { return withLatestFrom; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/OuterSubscriber.js\");\n/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js\");\n\n\n\nfunction withLatestFrom() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return function (source) {\n var project;\n if (typeof args[args.length - 1] === 'function') {\n project = args.pop();\n }\n var observables = args;\n return source.lift(new WithLatestFromOperator(observables, project));\n };\n}\nvar WithLatestFromOperator = (function () {\n function WithLatestFromOperator(observables, project) {\n this.observables = observables;\n this.project = project;\n }\n WithLatestFromOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));\n };\n return WithLatestFromOperator;\n}());\nvar WithLatestFromSubscriber = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(WithLatestFromSubscriber, _super);\n function WithLatestFromSubscriber(destination, observables, project) {\n var _this = _super.call(this, destination) || this;\n _this.observables = observables;\n _this.project = project;\n _this.toRespond = [];\n var len = observables.length;\n _this.values = new Array(len);\n for (var i = 0; i < len; i++) {\n _this.toRespond.push(i);\n }\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n _this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToResult\"])(_this, observable, observable, i));\n }\n return _this;\n }\n WithLatestFromSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.values[outerIndex] = innerValue;\n var toRespond = this.toRespond;\n if (toRespond.length > 0) {\n var found = toRespond.indexOf(outerIndex);\n if (found !== -1) {\n toRespond.splice(found, 1);\n }\n }\n };\n WithLatestFromSubscriber.prototype.notifyComplete = function () {\n };\n WithLatestFromSubscriber.prototype._next = function (value) {\n if (this.toRespond.length === 0) {\n var args = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])([value], this.values);\n if (this.project) {\n this._tryProject(args);\n }\n else {\n this.destination.next(args);\n }\n }\n };\n WithLatestFromSubscriber.prototype._tryProject = function (args) {\n var result;\n try {\n result = this.project.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return WithLatestFromSubscriber;\n}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"OuterSubscriber\"]));\n//# sourceMappingURL=withLatestFrom.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/zipAll.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/zipAll.js ***! + \******************************************************************/ +/*! exports provided: zipAll */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"zipAll\", function() { return zipAll; });\n/* harmony import */ var _observable_zip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../observable/zip */ \"./node_modules/rxjs/dist/esm5/internal/observable/zip.js\");\n\nfunction zipAll(project) {\n return function (source) { return source.lift(new _observable_zip__WEBPACK_IMPORTED_MODULE_0__[\"ZipOperator\"](project)); };\n}\n//# sourceMappingURL=zipAll.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/zipAll.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/operators/zipWith.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/operators/zipWith.js ***! + \*******************************************************************/ +/*! exports provided: zip, zipWith */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"zip\", function() { return zip; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"zipWith\", function() { return zipWith; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _observable_zip__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../observable/zip */ \"./node_modules/rxjs/dist/esm5/internal/observable/zip.js\");\n\n\nfunction zip() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function zipOperatorFunction(source) {\n return source.lift.call(_observable_zip__WEBPACK_IMPORTED_MODULE_1__[\"zip\"].apply(void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArrays\"])([source], observables)), undefined);\n };\n}\nfunction zipWith() {\n var otherInputs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n otherInputs[_i] = arguments[_i];\n }\n return zip.apply(void 0, otherInputs);\n}\n//# sourceMappingURL=zipWith.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/operators/zipWith.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js": +/*!*************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js ***! + \*************************************************************************/ +/*! exports provided: scheduleArray */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scheduleArray\", function() { return scheduleArray; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n\n\nfunction scheduleArray(input, scheduler) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]();\n var i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleArray.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js ***! + \*********************************************************************************/ +/*! exports provided: scheduleAsyncIterable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scheduleAsyncIterable\", function() { return scheduleAsyncIterable; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n\n\nfunction scheduleAsyncIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]();\n sub.add(scheduler.schedule(function () {\n var iterator = input[Symbol.asyncIterator]();\n sub.add(scheduler.schedule(function () {\n var _this = this;\n iterator.next().then(function (result) {\n if (result.done) {\n subscriber.complete();\n }\n else {\n subscriber.next(result.value);\n _this.schedule();\n }\n });\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleAsyncIterable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js": +/*!****************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js ***! + \****************************************************************************/ +/*! exports provided: scheduleIterable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scheduleIterable\", function() { return scheduleIterable; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../symbol/iterator */ \"./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js\");\n\n\n\nfunction scheduleIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]();\n var iterator;\n sub.add(function () {\n if (iterator && typeof iterator.return === 'function') {\n iterator.return();\n }\n });\n sub.add(scheduler.schedule(function () {\n iterator = input[_symbol_iterator__WEBPACK_IMPORTED_MODULE_2__[\"iterator\"]]();\n sub.add(scheduler.schedule(function () {\n if (subscriber.closed) {\n return;\n }\n var value;\n var done;\n try {\n var result = iterator.next();\n value = result.value;\n done = result.done;\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n this.schedule();\n }\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleIterable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js": +/*!******************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js ***! + \******************************************************************************/ +/*! exports provided: scheduleObservable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scheduleObservable\", function() { return scheduleObservable; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../symbol/observable */ \"./node_modules/rxjs/dist/esm5/internal/symbol/observable.js\");\n\n\n\nfunction scheduleObservable(input, scheduler) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]();\n sub.add(scheduler.schedule(function () {\n var observable = input[_symbol_observable__WEBPACK_IMPORTED_MODULE_2__[\"observable\"]]();\n sub.add(observable.subscribe({\n next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); },\n error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); },\n complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); },\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleObservable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js": +/*!***************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js ***! + \***************************************************************************/ +/*! exports provided: schedulePromise */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"schedulePromise\", function() { return schedulePromise; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n\n\nfunction schedulePromise(input, scheduler) {\n return new _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"](function (subscriber) {\n var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]();\n sub.add(scheduler.schedule(function () { return input.then(function (value) {\n sub.add(scheduler.schedule(function () {\n subscriber.next(value);\n sub.add(scheduler.schedule(function () { return subscriber.complete(); }));\n }));\n }, function (err) {\n sub.add(scheduler.schedule(function () { return subscriber.error(err); }));\n }); }));\n return sub;\n });\n}\n//# sourceMappingURL=schedulePromise.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js ***! + \*********************************************************************/ +/*! exports provided: scheduled */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scheduled\", function() { return scheduled; });\n/* harmony import */ var _scheduleObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./scheduleObservable */ \"./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js\");\n/* harmony import */ var _schedulePromise__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./schedulePromise */ \"./node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js\");\n/* harmony import */ var _scheduleArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./scheduleArray */ \"./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js\");\n/* harmony import */ var _scheduleIterable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./scheduleIterable */ \"./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js\");\n/* harmony import */ var _util_isInteropObservable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/isInteropObservable */ \"./node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js\");\n/* harmony import */ var _util_isPromise__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/isPromise */ \"./node_modules/rxjs/dist/esm5/internal/util/isPromise.js\");\n/* harmony import */ var _util_isArrayLike__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../util/isArrayLike */ \"./node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js\");\n/* harmony import */ var _util_isIterable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../util/isIterable */ \"./node_modules/rxjs/dist/esm5/internal/util/isIterable.js\");\n/* harmony import */ var _scheduleAsyncIterable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./scheduleAsyncIterable */ \"./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js\");\n\n\n\n\n\n\n\n\n\nfunction scheduled(input, scheduler) {\n if (input != null) {\n if (Object(_util_isInteropObservable__WEBPACK_IMPORTED_MODULE_4__[\"isInteropObservable\"])(input)) {\n return Object(_scheduleObservable__WEBPACK_IMPORTED_MODULE_0__[\"scheduleObservable\"])(input, scheduler);\n }\n else if (Object(_util_isPromise__WEBPACK_IMPORTED_MODULE_5__[\"isPromise\"])(input)) {\n return Object(_schedulePromise__WEBPACK_IMPORTED_MODULE_1__[\"schedulePromise\"])(input, scheduler);\n }\n else if (Object(_util_isArrayLike__WEBPACK_IMPORTED_MODULE_6__[\"isArrayLike\"])(input)) {\n return Object(_scheduleArray__WEBPACK_IMPORTED_MODULE_2__[\"scheduleArray\"])(input, scheduler);\n }\n else if (Object(_util_isIterable__WEBPACK_IMPORTED_MODULE_7__[\"isIterable\"])(input) || typeof input === 'string') {\n return Object(_scheduleIterable__WEBPACK_IMPORTED_MODULE_3__[\"scheduleIterable\"])(input, scheduler);\n }\n else if (Symbol && Symbol.asyncIterator && typeof input[Symbol.asyncIterator] === 'function') {\n return Object(_scheduleAsyncIterable__WEBPACK_IMPORTED_MODULE_8__[\"scheduleAsyncIterable\"])(input, scheduler);\n }\n }\n throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n//# sourceMappingURL=scheduled.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/Action.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/Action.js ***! + \******************************************************************/ +/*! exports provided: Action */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Action\", function() { return Action; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ \"./node_modules/rxjs/dist/esm5/internal/Subscription.js\");\n\n\nvar Action = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n return this;\n };\n return Action;\n}(_Subscription__WEBPACK_IMPORTED_MODULE_1__[\"Subscription\"]));\n\n//# sourceMappingURL=Action.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/Action.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameAction.js": +/*!********************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameAction.js ***! + \********************************************************************************/ +/*! exports provided: AnimationFrameAction */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AnimationFrameAction\", function() { return AnimationFrameAction; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncAction */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js\");\n\n\nvar AnimationFrameAction = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AnimationFrameAction, _super);\n function AnimationFrameAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () { return scheduler.flush(undefined); }));\n };\n AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n cancelAnimationFrame(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n };\n return AnimationFrameAction;\n}(_AsyncAction__WEBPACK_IMPORTED_MODULE_1__[\"AsyncAction\"]));\n\n//# sourceMappingURL=AnimationFrameAction.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameAction.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameScheduler.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameScheduler.js ***! + \***********************************************************************************/ +/*! exports provided: AnimationFrameScheduler */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AnimationFrameScheduler\", function() { return AnimationFrameScheduler; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncScheduler */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js\");\n\n\nvar AnimationFrameScheduler = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AnimationFrameScheduler, _super);\n function AnimationFrameScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AnimationFrameScheduler.prototype.flush = function (action) {\n this.active = true;\n this.scheduled = undefined;\n var actions = this.actions;\n var error;\n var index = -1;\n var count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AnimationFrameScheduler;\n}(_AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__[\"AsyncScheduler\"]));\n\n//# sourceMappingURL=AnimationFrameScheduler.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameScheduler.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/AsapAction.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/AsapAction.js ***! + \**********************************************************************/ +/*! exports provided: AsapAction */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AsapAction\", function() { return AsapAction; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _util_Immediate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/Immediate */ \"./node_modules/rxjs/dist/esm5/internal/util/Immediate.js\");\n/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AsyncAction */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js\");\n\n\n\nvar AsapAction = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AsapAction, _super);\n function AsapAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = _util_Immediate__WEBPACK_IMPORTED_MODULE_1__[\"Immediate\"].setImmediate(scheduler.flush.bind(scheduler, undefined)));\n };\n AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n _util_Immediate__WEBPACK_IMPORTED_MODULE_1__[\"Immediate\"].clearImmediate(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n };\n return AsapAction;\n}(_AsyncAction__WEBPACK_IMPORTED_MODULE_2__[\"AsyncAction\"]));\n\n//# sourceMappingURL=AsapAction.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AsapAction.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/AsapScheduler.js": +/*!*************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/AsapScheduler.js ***! + \*************************************************************************/ +/*! exports provided: AsapScheduler */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AsapScheduler\", function() { return AsapScheduler; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncScheduler */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js\");\n\n\nvar AsapScheduler = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AsapScheduler, _super);\n function AsapScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AsapScheduler.prototype.flush = function (action) {\n this.active = true;\n this.scheduled = undefined;\n var actions = this.actions;\n var error;\n var index = -1;\n var count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsapScheduler;\n}(_AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__[\"AsyncScheduler\"]));\n\n//# sourceMappingURL=AsapScheduler.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AsapScheduler.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js ***! + \***********************************************************************/ +/*! exports provided: AsyncAction */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AsyncAction\", function() { return AsyncAction; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Action__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Action */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/Action.js\");\n\n\nvar AsyncAction = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (this.closed) {\n return this;\n }\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n return setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && this.delay === delay && this.pending === false) {\n return id;\n }\n clearInterval(id);\n return undefined;\n };\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, delay) {\n var errored = false;\n var errorValue = undefined;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = !!e && e || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype._unsubscribe = function () {\n var id = this.id;\n var scheduler = this.scheduler;\n var actions = scheduler.actions;\n var index = actions.indexOf(this);\n this.work = null;\n this.state = null;\n this.pending = false;\n this.scheduler = null;\n if (index !== -1) {\n actions.splice(index, 1);\n }\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n };\n return AsyncAction;\n}(_Action__WEBPACK_IMPORTED_MODULE_1__[\"Action\"]));\n\n//# sourceMappingURL=AsyncAction.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js ***! + \**************************************************************************/ +/*! exports provided: AsyncScheduler */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AsyncScheduler\", function() { return AsyncScheduler; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Scheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Scheduler */ \"./node_modules/rxjs/dist/esm5/internal/Scheduler.js\");\n\n\nvar AsyncScheduler = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) { now = _Scheduler__WEBPACK_IMPORTED_MODULE_1__[\"Scheduler\"].now; }\n var _this = _super.call(this, SchedulerAction, function () {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) {\n return AsyncScheduler.delegate.now();\n }\n else {\n return now();\n }\n }) || this;\n _this.actions = [];\n _this.active = false;\n _this.scheduled = undefined;\n return _this;\n }\n AsyncScheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.schedule(work, delay, state);\n }\n else {\n return _super.prototype.schedule.call(this, work, delay, state);\n }\n };\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this.active) {\n actions.push(action);\n return;\n }\n var error;\n this.active = true;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift());\n this.active = false;\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(_Scheduler__WEBPACK_IMPORTED_MODULE_1__[\"Scheduler\"]));\n\n//# sourceMappingURL=AsyncScheduler.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/QueueAction.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/QueueAction.js ***! + \***********************************************************************/ +/*! exports provided: QueueAction */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QueueAction\", function() { return QueueAction; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncAction */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js\");\n\n\nvar QueueAction = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(QueueAction, _super);\n function QueueAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n QueueAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay > 0) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n };\n QueueAction.prototype.execute = function (state, delay) {\n return (delay > 0 || this.closed) ?\n _super.prototype.execute.call(this, state, delay) :\n this._execute(state, delay);\n };\n QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n return scheduler.flush(this);\n };\n return QueueAction;\n}(_AsyncAction__WEBPACK_IMPORTED_MODULE_1__[\"AsyncAction\"]));\n\n//# sourceMappingURL=QueueAction.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/QueueAction.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/QueueScheduler.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/QueueScheduler.js ***! + \**************************************************************************/ +/*! exports provided: QueueScheduler */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QueueScheduler\", function() { return QueueScheduler; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncScheduler */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js\");\n\n\nvar QueueScheduler = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(QueueScheduler, _super);\n function QueueScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return QueueScheduler;\n}(_AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__[\"AsyncScheduler\"]));\n\n//# sourceMappingURL=QueueScheduler.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/QueueScheduler.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/VirtualTimeScheduler.js": +/*!********************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/VirtualTimeScheduler.js ***! + \********************************************************************************/ +/*! exports provided: VirtualTimeScheduler, VirtualAction */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VirtualTimeScheduler\", function() { return VirtualTimeScheduler; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VirtualAction\", function() { return VirtualAction; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncAction */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js\");\n/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AsyncScheduler */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js\");\n\n\n\nvar VirtualTimeScheduler = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(VirtualTimeScheduler, _super);\n function VirtualTimeScheduler(SchedulerAction, maxFrames) {\n if (SchedulerAction === void 0) { SchedulerAction = VirtualAction; }\n if (maxFrames === void 0) { maxFrames = Number.POSITIVE_INFINITY; }\n var _this = _super.call(this, SchedulerAction, function () { return _this.frame; }) || this;\n _this.maxFrames = maxFrames;\n _this.frame = 0;\n _this.index = -1;\n return _this;\n }\n VirtualTimeScheduler.prototype.flush = function () {\n var _a = this, actions = _a.actions, maxFrames = _a.maxFrames;\n var error, action;\n while ((action = actions[0]) && action.delay <= maxFrames) {\n actions.shift();\n this.frame = action.delay;\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n }\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n VirtualTimeScheduler.frameTimeFactor = 10;\n return VirtualTimeScheduler;\n}(_AsyncScheduler__WEBPACK_IMPORTED_MODULE_2__[\"AsyncScheduler\"]));\n\nvar VirtualAction = (function (_super) {\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(VirtualAction, _super);\n function VirtualAction(scheduler, work, index) {\n if (index === void 0) { index = scheduler.index += 1; }\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.index = index;\n _this.active = true;\n _this.index = scheduler.index = index;\n return _this;\n }\n VirtualAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (!this.id) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.active = false;\n var action = new VirtualAction(this.scheduler, this.work);\n this.add(action);\n return action.schedule(state, delay);\n };\n VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n this.delay = scheduler.frame + delay;\n var actions = scheduler.actions;\n actions.push(this);\n actions.sort(VirtualAction.sortActions);\n return true;\n };\n VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n return undefined;\n };\n VirtualAction.prototype._execute = function (state, delay) {\n if (this.active === true) {\n return _super.prototype._execute.call(this, state, delay);\n }\n };\n VirtualAction.sortActions = function (a, b) {\n if (a.delay === b.delay) {\n if (a.index === b.index) {\n return 0;\n }\n else if (a.index > b.index) {\n return 1;\n }\n else {\n return -1;\n }\n }\n else if (a.delay > b.delay) {\n return 1;\n }\n else {\n return -1;\n }\n };\n return VirtualAction;\n}(_AsyncAction__WEBPACK_IMPORTED_MODULE_1__[\"AsyncAction\"]));\n\n//# sourceMappingURL=VirtualTimeScheduler.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/VirtualTimeScheduler.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/animationFrame.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/animationFrame.js ***! + \**************************************************************************/ +/*! exports provided: animationFrame */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"animationFrame\", function() { return animationFrame; });\n/* harmony import */ var _AnimationFrameAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AnimationFrameAction */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameAction.js\");\n/* harmony import */ var _AnimationFrameScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AnimationFrameScheduler */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameScheduler.js\");\n\n\nvar animationFrame = new _AnimationFrameScheduler__WEBPACK_IMPORTED_MODULE_1__[\"AnimationFrameScheduler\"](_AnimationFrameAction__WEBPACK_IMPORTED_MODULE_0__[\"AnimationFrameAction\"]);\n//# sourceMappingURL=animationFrame.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/animationFrame.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/asap.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/asap.js ***! + \****************************************************************/ +/*! exports provided: asap */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asap\", function() { return asap; });\n/* harmony import */ var _AsapAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AsapAction */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsapAction.js\");\n/* harmony import */ var _AsapScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsapScheduler */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsapScheduler.js\");\n\n\nvar asap = new _AsapScheduler__WEBPACK_IMPORTED_MODULE_1__[\"AsapScheduler\"](_AsapAction__WEBPACK_IMPORTED_MODULE_0__[\"AsapAction\"]);\n//# sourceMappingURL=asap.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/asap.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/async.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/async.js ***! + \*****************************************************************/ +/*! exports provided: async */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"async\", function() { return async; });\n/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AsyncAction */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js\");\n/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncScheduler */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js\");\n\n\nvar async = new _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__[\"AsyncScheduler\"](_AsyncAction__WEBPACK_IMPORTED_MODULE_0__[\"AsyncAction\"]);\n//# sourceMappingURL=async.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/async.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/scheduler/queue.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/scheduler/queue.js ***! + \*****************************************************************/ +/*! exports provided: queue */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"queue\", function() { return queue; });\n/* harmony import */ var _QueueAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./QueueAction */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/QueueAction.js\");\n/* harmony import */ var _QueueScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./QueueScheduler */ \"./node_modules/rxjs/dist/esm5/internal/scheduler/QueueScheduler.js\");\n\n\nvar queue = new _QueueScheduler__WEBPACK_IMPORTED_MODULE_1__[\"QueueScheduler\"](_QueueAction__WEBPACK_IMPORTED_MODULE_0__[\"QueueAction\"]);\n//# sourceMappingURL=queue.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/scheduler/queue.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js ***! + \*****************************************************************/ +/*! exports provided: getSymbolIterator, iterator, $$iterator */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getSymbolIterator\", function() { return getSymbolIterator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"iterator\", function() { return iterator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"$$iterator\", function() { return $$iterator; });\nfunction getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nvar iterator = getSymbolIterator();\nvar $$iterator = iterator;\n//# sourceMappingURL=iterator.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/symbol/observable.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/symbol/observable.js ***! + \*******************************************************************/ +/*! exports provided: observable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observable\", function() { return observable; });\nvar observable = (function () { return typeof Symbol === 'function' && Symbol.observable || '@@observable'; })();\n//# sourceMappingURL=observable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/symbol/observable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/symbol/rxSubscriber.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/symbol/rxSubscriber.js ***! + \*********************************************************************/ +/*! exports provided: rxSubscriber, $$rxSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rxSubscriber\", function() { return rxSubscriber; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"$$rxSubscriber\", function() { return $$rxSubscriber; });\nvar rxSubscriber = (function () {\n return typeof Symbol === 'function'\n ? Symbol('rxSubscriber')\n : '@@rxSubscriber_' + Math.random();\n})();\nvar $$rxSubscriber = rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/symbol/rxSubscriber.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js": +/*!******************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js ***! + \******************************************************************************/ +/*! exports provided: ArgumentOutOfRangeError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ArgumentOutOfRangeError\", function() { return ArgumentOutOfRangeError; });\nvar ArgumentOutOfRangeErrorImpl = (function () {\n function ArgumentOutOfRangeErrorImpl() {\n Error.call(this);\n this.message = 'argument out of range';\n this.name = 'ArgumentOutOfRangeError';\n return this;\n }\n ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);\n return ArgumentOutOfRangeErrorImpl;\n})();\nvar ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;\n//# sourceMappingURL=ArgumentOutOfRangeError.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js ***! + \*****************************************************************/ +/*! exports provided: EmptyError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EmptyError\", function() { return EmptyError; });\nvar EmptyErrorImpl = (function () {\n function EmptyErrorImpl() {\n Error.call(this);\n this.message = 'no elements in sequence';\n this.name = 'EmptyError';\n return this;\n }\n EmptyErrorImpl.prototype = Object.create(Error.prototype);\n return EmptyErrorImpl;\n})();\nvar EmptyError = EmptyErrorImpl;\n//# sourceMappingURL=EmptyError.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/Immediate.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/Immediate.js ***! + \****************************************************************/ +/*! exports provided: Immediate, TestTools */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Immediate\", function() { return Immediate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TestTools\", function() { return TestTools; });\nvar nextHandle = 1;\nvar resolved;\nvar activeHandles = {};\nfunction findAndClearHandle(handle) {\n if (handle in activeHandles) {\n delete activeHandles[handle];\n return true;\n }\n return false;\n}\nvar Immediate = {\n setImmediate: function (cb) {\n var handle = nextHandle++;\n activeHandles[handle] = true;\n if (!resolved) {\n resolved = Promise.resolve();\n }\n resolved.then(function () { return findAndClearHandle(handle) && cb(); });\n return handle;\n },\n clearImmediate: function (handle) {\n findAndClearHandle(handle);\n },\n};\nvar TestTools = {\n pending: function () {\n return Object.keys(activeHandles).length;\n }\n};\n//# sourceMappingURL=Immediate.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/Immediate.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js": +/*!******************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js ***! + \******************************************************************************/ +/*! exports provided: ObjectUnsubscribedError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObjectUnsubscribedError\", function() { return ObjectUnsubscribedError; });\nvar ObjectUnsubscribedErrorImpl = (function () {\n function ObjectUnsubscribedErrorImpl() {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n }\n ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\n return ObjectUnsubscribedErrorImpl;\n})();\nvar ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n//# sourceMappingURL=ObjectUnsubscribedError.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/TimeoutError.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/TimeoutError.js ***! + \*******************************************************************/ +/*! exports provided: TimeoutError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TimeoutError\", function() { return TimeoutError; });\nvar TimeoutErrorImpl = (function () {\n function TimeoutErrorImpl() {\n Error.call(this);\n this.message = 'Timeout has occurred';\n this.name = 'TimeoutError';\n return this;\n }\n TimeoutErrorImpl.prototype = Object.create(Error.prototype);\n return TimeoutErrorImpl;\n})();\nvar TimeoutError = TimeoutErrorImpl;\n//# sourceMappingURL=TimeoutError.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/TimeoutError.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js ***! + \**************************************************************************/ +/*! exports provided: UnsubscriptionError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UnsubscriptionError\", function() { return UnsubscriptionError; });\nvar UnsubscriptionErrorImpl = (function () {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ') : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n})();\nvar UnsubscriptionError = UnsubscriptionErrorImpl;\n//# sourceMappingURL=UnsubscriptionError.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/canReportError.js": +/*!*********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/canReportError.js ***! + \*********************************************************************/ +/*! exports provided: canReportError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"canReportError\", function() { return canReportError; });\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n\nfunction canReportError(observer) {\n while (observer) {\n var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped;\n if (closed_1 || isStopped) {\n return false;\n }\n else if (destination && destination instanceof _Subscriber__WEBPACK_IMPORTED_MODULE_0__[\"Subscriber\"]) {\n observer = destination;\n }\n else {\n observer = null;\n }\n }\n return true;\n}\n//# sourceMappingURL=canReportError.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/canReportError.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/deferred.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/deferred.js ***! + \***************************************************************/ +/*! exports provided: Deferred */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Deferred\", function() { return Deferred; });\nvar Deferred = (function () {\n function Deferred() {\n var _this = this;\n this.resolve = null;\n this.reject = null;\n this.promise = new Promise(function (a, b) {\n _this.resolve = a;\n _this.reject = b;\n });\n }\n return Deferred;\n}());\n\n//# sourceMappingURL=deferred.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/deferred.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/hostReportError.js": +/*!**********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/hostReportError.js ***! + \**********************************************************************/ +/*! exports provided: hostReportError */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hostReportError\", function() { return hostReportError; });\nfunction hostReportError(err) {\n setTimeout(function () { throw err; }, 0);\n}\n//# sourceMappingURL=hostReportError.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/hostReportError.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/identity.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/identity.js ***! + \***************************************************************/ +/*! exports provided: identity */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"identity\", function() { return identity; });\nfunction identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/identity.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isArray.js": +/*!**************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isArray.js ***! + \**************************************************************/ +/*! exports provided: isArray */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isArray\", function() { return isArray; });\nvar isArray = (function () { return Array.isArray || (function (x) { return x && typeof x.length === 'number'; }); })();\n//# sourceMappingURL=isArray.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isArray.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js ***! + \******************************************************************/ +/*! exports provided: isArrayLike */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isArrayLike\", function() { return isArrayLike; });\nvar isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isDate.js": +/*!*************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isDate.js ***! + \*************************************************************/ +/*! exports provided: isDate */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isDate\", function() { return isDate; });\nfunction isDate(value) {\n return value instanceof Date && !isNaN(+value);\n}\n//# sourceMappingURL=isDate.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isDate.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isFunction.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isFunction.js ***! + \*****************************************************************/ +/*! exports provided: isFunction */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFunction\", function() { return isFunction; });\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n//# sourceMappingURL=isFunction.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isFunction.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js ***! + \**************************************************************************/ +/*! exports provided: isInteropObservable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isInteropObservable\", function() { return isInteropObservable; });\n/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../symbol/observable */ \"./node_modules/rxjs/dist/esm5/internal/symbol/observable.js\");\n\nfunction isInteropObservable(input) {\n return input && typeof input[_symbol_observable__WEBPACK_IMPORTED_MODULE_0__[\"observable\"]] === 'function';\n}\n//# sourceMappingURL=isInteropObservable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isIterable.js": +/*!*****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isIterable.js ***! + \*****************************************************************/ +/*! exports provided: isIterable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isIterable\", function() { return isIterable; });\n/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../symbol/iterator */ \"./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js\");\n\nfunction isIterable(input) {\n return input && typeof input[_symbol_iterator__WEBPACK_IMPORTED_MODULE_0__[\"iterator\"]] === 'function';\n}\n//# sourceMappingURL=isIterable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isIterable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isNumeric.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isNumeric.js ***! + \****************************************************************/ +/*! exports provided: isNumeric */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isNumeric\", function() { return isNumeric; });\n/* harmony import */ var _isArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isArray */ \"./node_modules/rxjs/dist/esm5/internal/util/isArray.js\");\n\nfunction isNumeric(val) {\n return !Object(_isArray__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(val) && (val - parseFloat(val) + 1) >= 0;\n}\n//# sourceMappingURL=isNumeric.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isNumeric.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isObject.js": +/*!***************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isObject.js ***! + \***************************************************************/ +/*! exports provided: isObject */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObject\", function() { return isObject; });\nfunction isObject(x) {\n return x !== null && typeof x === 'object';\n}\n//# sourceMappingURL=isObject.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isObject.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isObservable.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isObservable.js ***! + \*******************************************************************/ +/*! exports provided: isObservable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObservable\", function() { return isObservable; });\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n\nfunction isObservable(obj) {\n return !!obj && (obj instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__[\"Observable\"] || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function'));\n}\n//# sourceMappingURL=isObservable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isObservable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isPromise.js": +/*!****************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isPromise.js ***! + \****************************************************************/ +/*! exports provided: isPromise */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isPromise\", function() { return isPromise; });\nfunction isPromise(value) {\n return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n//# sourceMappingURL=isPromise.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isPromise.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js ***! + \******************************************************************/ +/*! exports provided: isScheduler */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isScheduler\", function() { return isScheduler; });\nfunction isScheduler(value) {\n return value && typeof value.schedule === 'function';\n}\n//# sourceMappingURL=isScheduler.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/noop.js": +/*!***********************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/noop.js ***! + \***********************************************************/ +/*! exports provided: noop */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"noop\", function() { return noop; });\nfunction noop() { }\n//# sourceMappingURL=noop.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/noop.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/not.js": +/*!**********************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/not.js ***! + \**********************************************************/ +/*! exports provided: not */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"not\", function() { return not; });\nfunction not(pred, thisArg) {\n function notPred() {\n return !(notPred.pred.apply(notPred.thisArg, arguments));\n }\n notPred.pred = pred;\n notPred.thisArg = thisArg;\n return notPred;\n}\n//# sourceMappingURL=not.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/not.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/pipe.js": +/*!***********************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/pipe.js ***! + \***********************************************************/ +/*! exports provided: pipe, pipeFromArray */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pipe\", function() { return pipe; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pipeFromArray\", function() { return pipeFromArray; });\n/* harmony import */ var _identity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./identity */ \"./node_modules/rxjs/dist/esm5/internal/util/identity.js\");\n\nfunction pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nfunction pipeFromArray(fns) {\n if (fns.length === 0) {\n return _identity__WEBPACK_IMPORTED_MODULE_0__[\"identity\"];\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/pipe.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/root.js": +/*!***********************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/root.js ***! + \***********************************************************/ +/*! exports provided: root */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"root\", function() { return _root; });\nvar __window = typeof window !== 'undefined' && window;\nvar __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self;\nvar __global = typeof global !== 'undefined' && global;\nvar _root = __window || __global || __self;\n(function () {\n if (!_root) {\n throw new Error('RxJS could not find any global context (window, self, global)');\n }\n})();\n\n//# sourceMappingURL=root.js.map\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/root.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/subscribeTo.js": +/*!******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/subscribeTo.js ***! + \******************************************************************/ +/*! exports provided: subscribeTo */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subscribeTo\", function() { return subscribeTo; });\n/* harmony import */ var _subscribeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./subscribeToArray */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToArray.js\");\n/* harmony import */ var _subscribeToPromise__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./subscribeToPromise */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToPromise.js\");\n/* harmony import */ var _subscribeToIterable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./subscribeToIterable */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToIterable.js\");\n/* harmony import */ var _subscribeToObservable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./subscribeToObservable */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToObservable.js\");\n/* harmony import */ var _isArrayLike__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./isArrayLike */ \"./node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js\");\n/* harmony import */ var _isPromise__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./isPromise */ \"./node_modules/rxjs/dist/esm5/internal/util/isPromise.js\");\n/* harmony import */ var _isObject__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./isObject */ \"./node_modules/rxjs/dist/esm5/internal/util/isObject.js\");\n/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../symbol/iterator */ \"./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js\");\n/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../symbol/observable */ \"./node_modules/rxjs/dist/esm5/internal/symbol/observable.js\");\n/* harmony import */ var _subscribeToAsyncIterable__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./subscribeToAsyncIterable */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeToAsyncIterable.js\");\n\n\n\n\n\n\n\n\n\n\nvar subscribeTo = function (result) {\n if (!!result && typeof result[_symbol_observable__WEBPACK_IMPORTED_MODULE_8__[\"observable\"]] === 'function') {\n return Object(_subscribeToObservable__WEBPACK_IMPORTED_MODULE_3__[\"subscribeToObservable\"])(result);\n }\n else if (Object(_isArrayLike__WEBPACK_IMPORTED_MODULE_4__[\"isArrayLike\"])(result)) {\n return Object(_subscribeToArray__WEBPACK_IMPORTED_MODULE_0__[\"subscribeToArray\"])(result);\n }\n else if (Object(_isPromise__WEBPACK_IMPORTED_MODULE_5__[\"isPromise\"])(result)) {\n return Object(_subscribeToPromise__WEBPACK_IMPORTED_MODULE_1__[\"subscribeToPromise\"])(result);\n }\n else if (!!result && typeof result[_symbol_iterator__WEBPACK_IMPORTED_MODULE_7__[\"iterator\"]] === 'function') {\n return Object(_subscribeToIterable__WEBPACK_IMPORTED_MODULE_2__[\"subscribeToIterable\"])(result);\n }\n else if (Symbol && Symbol.asyncIterator &&\n !!result && typeof result[Symbol.asyncIterator] === 'function') {\n return Object(_subscribeToAsyncIterable__WEBPACK_IMPORTED_MODULE_9__[\"subscribeToAsyncIterable\"])(result);\n }\n else {\n var value = Object(_isObject__WEBPACK_IMPORTED_MODULE_6__[\"isObject\"])(result) ? 'an invalid object' : \"'\" + result + \"'\";\n var msg = \"You provided \" + value + \" where a stream was expected.\"\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n//# sourceMappingURL=subscribeTo.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeTo.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/subscribeToArray.js": +/*!***********************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/subscribeToArray.js ***! + \***********************************************************************/ +/*! exports provided: subscribeToArray */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subscribeToArray\", function() { return subscribeToArray; });\nvar subscribeToArray = function (array) { return function (subscriber) {\n for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n}; };\n//# sourceMappingURL=subscribeToArray.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToArray.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/subscribeToAsyncIterable.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/subscribeToAsyncIterable.js ***! + \*******************************************************************************/ +/*! exports provided: subscribeToAsyncIterable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subscribeToAsyncIterable\", function() { return subscribeToAsyncIterable; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\nfunction subscribeToAsyncIterable(asyncIterable) {\n return function (subscriber) {\n process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); });\n };\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_1, _a;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var value, e_1_1;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 11]);\n asyncIterable_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__asyncValues\"])(asyncIterable);\n _b.label = 1;\n case 1: return [4, asyncIterable_1.next()];\n case 2:\n if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4];\n value = asyncIterable_1_1.value;\n subscriber.next(value);\n _b.label = 3;\n case 3: return [3, 1];\n case 4: return [3, 11];\n case 5:\n e_1_1 = _b.sent();\n e_1 = { error: e_1_1 };\n return [3, 11];\n case 6:\n _b.trys.push([6, , 9, 10]);\n if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8];\n return [4, _a.call(asyncIterable_1)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [3, 10];\n case 9:\n if (e_1) throw e_1.error;\n return [7];\n case 10: return [7];\n case 11:\n subscriber.complete();\n return [2];\n }\n });\n });\n}\n//# sourceMappingURL=subscribeToAsyncIterable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToAsyncIterable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/subscribeToIterable.js": +/*!**************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/subscribeToIterable.js ***! + \**************************************************************************/ +/*! exports provided: subscribeToIterable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subscribeToIterable\", function() { return subscribeToIterable; });\n/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../symbol/iterator */ \"./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js\");\n\nvar subscribeToIterable = function (iterable) { return function (subscriber) {\n var iterator = iterable[_symbol_iterator__WEBPACK_IMPORTED_MODULE_0__[\"iterator\"]]();\n do {\n var item = iterator.next();\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n if (typeof iterator.return === 'function') {\n subscriber.add(function () {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n return subscriber;\n}; };\n//# sourceMappingURL=subscribeToIterable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToIterable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/subscribeToObservable.js": +/*!****************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/subscribeToObservable.js ***! + \****************************************************************************/ +/*! exports provided: subscribeToObservable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subscribeToObservable\", function() { return subscribeToObservable; });\n/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../symbol/observable */ \"./node_modules/rxjs/dist/esm5/internal/symbol/observable.js\");\n\nvar subscribeToObservable = function (obj) { return function (subscriber) {\n var obs = obj[_symbol_observable__WEBPACK_IMPORTED_MODULE_0__[\"observable\"]]();\n if (typeof obs.subscribe !== 'function') {\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n }\n else {\n return obs.subscribe(subscriber);\n }\n}; };\n//# sourceMappingURL=subscribeToObservable.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToObservable.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/subscribeToPromise.js": +/*!*************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/subscribeToPromise.js ***! + \*************************************************************************/ +/*! exports provided: subscribeToPromise */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subscribeToPromise\", function() { return subscribeToPromise; });\n/* harmony import */ var _hostReportError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hostReportError */ \"./node_modules/rxjs/dist/esm5/internal/util/hostReportError.js\");\n\nvar subscribeToPromise = function (promise) { return function (subscriber) {\n promise.then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, _hostReportError__WEBPACK_IMPORTED_MODULE_0__[\"hostReportError\"]);\n return subscriber;\n}; };\n//# sourceMappingURL=subscribeToPromise.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToPromise.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js": +/*!************************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js ***! + \************************************************************************/ +/*! exports provided: subscribeToResult */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subscribeToResult\", function() { return subscribeToResult; });\n/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../InnerSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/InnerSubscriber.js\");\n/* harmony import */ var _subscribeTo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./subscribeTo */ \"./node_modules/rxjs/dist/esm5/internal/util/subscribeTo.js\");\n/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Observable */ \"./node_modules/rxjs/dist/esm5/internal/Observable.js\");\n\n\n\nfunction subscribeToResult(outerSubscriber, result, outerValue, outerIndex, innerSubscriber) {\n if (innerSubscriber === void 0) { innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_0__[\"InnerSubscriber\"](outerSubscriber, outerValue, outerIndex); }\n if (innerSubscriber.closed) {\n return undefined;\n }\n if (result instanceof _Observable__WEBPACK_IMPORTED_MODULE_2__[\"Observable\"]) {\n return result.subscribe(innerSubscriber);\n }\n return Object(_subscribeTo__WEBPACK_IMPORTED_MODULE_1__[\"subscribeTo\"])(result)(innerSubscriber);\n}\n//# sourceMappingURL=subscribeToResult.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/subscribeToResult.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/internal/util/toSubscriber.js": +/*!*******************************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/internal/util/toSubscriber.js ***! + \*******************************************************************/ +/*! exports provided: toSubscriber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toSubscriber\", function() { return toSubscriber; });\n/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Subscriber */ \"./node_modules/rxjs/dist/esm5/internal/Subscriber.js\");\n/* harmony import */ var _symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../symbol/rxSubscriber */ \"./node_modules/rxjs/dist/esm5/internal/symbol/rxSubscriber.js\");\n/* harmony import */ var _Observer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Observer */ \"./node_modules/rxjs/dist/esm5/internal/Observer.js\");\n\n\n\nfunction toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof _Subscriber__WEBPACK_IMPORTED_MODULE_0__[\"Subscriber\"]) {\n return nextOrObserver;\n }\n if (nextOrObserver[_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"rxSubscriber\"]]) {\n return nextOrObserver[_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_1__[\"rxSubscriber\"]]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new _Subscriber__WEBPACK_IMPORTED_MODULE_0__[\"Subscriber\"](_Observer__WEBPACK_IMPORTED_MODULE_2__[\"empty\"]);\n }\n return new _Subscriber__WEBPACK_IMPORTED_MODULE_0__[\"Subscriber\"](nextOrObserver, error, complete);\n}\n//# sourceMappingURL=toSubscriber.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/internal/util/toSubscriber.js?"); + +/***/ }), + +/***/ "./node_modules/rxjs/dist/esm5/operators/index.js": +/*!********************************************************!*\ + !*** ./node_modules/rxjs/dist/esm5/operators/index.js ***! + \********************************************************/ +/*! exports provided: audit, auditTime, buffer, bufferCount, bufferTime, bufferToggle, bufferWhen, catchError, combineAll, combineLatest, combineLatestWith, concat, concatAll, concatMap, concatMapTo, concatWith, count, debounce, debounceTime, defaultIfEmpty, delay, delayWhen, dematerialize, distinct, distinctUntilChanged, distinctUntilKeyChanged, elementAt, endWith, every, exhaust, exhaustMap, expand, filter, finalize, find, findIndex, first, groupBy, ignoreElements, isEmpty, last, map, mapTo, materialize, max, mergeWith, merge, mergeAll, mergeMap, flatMap, mergeMapTo, mergeScan, min, multicast, observeOn, onErrorResumeNext, pairwise, partition, pluck, publish, publishBehavior, publishLast, publishReplay, race, reduce, repeat, repeatWhen, retry, retryWhen, refCount, sample, sampleTime, scan, sequenceEqual, share, shareReplay, single, skip, skipLast, skipUntil, skipWhile, startWith, subscribeOn, switchAll, switchMap, switchMapTo, take, takeLast, takeUntil, takeWhile, tap, throttle, throttleTime, throwIfEmpty, timeInterval, timeout, timeoutWith, timestamp, toArray, window, windowCount, windowTime, windowToggle, windowWhen, withLatestFrom, zip, zipWith, zipAll */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _internal_operators_audit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../internal/operators/audit */ \"./node_modules/rxjs/dist/esm5/internal/operators/audit.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"audit\", function() { return _internal_operators_audit__WEBPACK_IMPORTED_MODULE_0__[\"audit\"]; });\n\n/* harmony import */ var _internal_operators_auditTime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../internal/operators/auditTime */ \"./node_modules/rxjs/dist/esm5/internal/operators/auditTime.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"auditTime\", function() { return _internal_operators_auditTime__WEBPACK_IMPORTED_MODULE_1__[\"auditTime\"]; });\n\n/* harmony import */ var _internal_operators_buffer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../internal/operators/buffer */ \"./node_modules/rxjs/dist/esm5/internal/operators/buffer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"buffer\", function() { return _internal_operators_buffer__WEBPACK_IMPORTED_MODULE_2__[\"buffer\"]; });\n\n/* harmony import */ var _internal_operators_bufferCount__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../internal/operators/bufferCount */ \"./node_modules/rxjs/dist/esm5/internal/operators/bufferCount.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bufferCount\", function() { return _internal_operators_bufferCount__WEBPACK_IMPORTED_MODULE_3__[\"bufferCount\"]; });\n\n/* harmony import */ var _internal_operators_bufferTime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../internal/operators/bufferTime */ \"./node_modules/rxjs/dist/esm5/internal/operators/bufferTime.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bufferTime\", function() { return _internal_operators_bufferTime__WEBPACK_IMPORTED_MODULE_4__[\"bufferTime\"]; });\n\n/* harmony import */ var _internal_operators_bufferToggle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../internal/operators/bufferToggle */ \"./node_modules/rxjs/dist/esm5/internal/operators/bufferToggle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bufferToggle\", function() { return _internal_operators_bufferToggle__WEBPACK_IMPORTED_MODULE_5__[\"bufferToggle\"]; });\n\n/* harmony import */ var _internal_operators_bufferWhen__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../internal/operators/bufferWhen */ \"./node_modules/rxjs/dist/esm5/internal/operators/bufferWhen.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bufferWhen\", function() { return _internal_operators_bufferWhen__WEBPACK_IMPORTED_MODULE_6__[\"bufferWhen\"]; });\n\n/* harmony import */ var _internal_operators_catchError__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../internal/operators/catchError */ \"./node_modules/rxjs/dist/esm5/internal/operators/catchError.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"catchError\", function() { return _internal_operators_catchError__WEBPACK_IMPORTED_MODULE_7__[\"catchError\"]; });\n\n/* harmony import */ var _internal_operators_combineAll__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../internal/operators/combineAll */ \"./node_modules/rxjs/dist/esm5/internal/operators/combineAll.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"combineAll\", function() { return _internal_operators_combineAll__WEBPACK_IMPORTED_MODULE_8__[\"combineAll\"]; });\n\n/* harmony import */ var _internal_operators_combineLatestWith__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../internal/operators/combineLatestWith */ \"./node_modules/rxjs/dist/esm5/internal/operators/combineLatestWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"combineLatest\", function() { return _internal_operators_combineLatestWith__WEBPACK_IMPORTED_MODULE_9__[\"combineLatest\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"combineLatestWith\", function() { return _internal_operators_combineLatestWith__WEBPACK_IMPORTED_MODULE_9__[\"combineLatestWith\"]; });\n\n/* harmony import */ var _internal_operators_concat__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../internal/operators/concat */ \"./node_modules/rxjs/dist/esm5/internal/operators/concat.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"concat\", function() { return _internal_operators_concat__WEBPACK_IMPORTED_MODULE_10__[\"concat\"]; });\n\n/* harmony import */ var _internal_operators_concatAll__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../internal/operators/concatAll */ \"./node_modules/rxjs/dist/esm5/internal/operators/concatAll.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"concatAll\", function() { return _internal_operators_concatAll__WEBPACK_IMPORTED_MODULE_11__[\"concatAll\"]; });\n\n/* harmony import */ var _internal_operators_concatMap__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../internal/operators/concatMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/concatMap.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"concatMap\", function() { return _internal_operators_concatMap__WEBPACK_IMPORTED_MODULE_12__[\"concatMap\"]; });\n\n/* harmony import */ var _internal_operators_concatMapTo__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../internal/operators/concatMapTo */ \"./node_modules/rxjs/dist/esm5/internal/operators/concatMapTo.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"concatMapTo\", function() { return _internal_operators_concatMapTo__WEBPACK_IMPORTED_MODULE_13__[\"concatMapTo\"]; });\n\n/* harmony import */ var _internal_operators_concatWith__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../internal/operators/concatWith */ \"./node_modules/rxjs/dist/esm5/internal/operators/concatWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"concatWith\", function() { return _internal_operators_concatWith__WEBPACK_IMPORTED_MODULE_14__[\"concatWith\"]; });\n\n/* harmony import */ var _internal_operators_count__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../internal/operators/count */ \"./node_modules/rxjs/dist/esm5/internal/operators/count.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"count\", function() { return _internal_operators_count__WEBPACK_IMPORTED_MODULE_15__[\"count\"]; });\n\n/* harmony import */ var _internal_operators_debounce__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../internal/operators/debounce */ \"./node_modules/rxjs/dist/esm5/internal/operators/debounce.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"debounce\", function() { return _internal_operators_debounce__WEBPACK_IMPORTED_MODULE_16__[\"debounce\"]; });\n\n/* harmony import */ var _internal_operators_debounceTime__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../internal/operators/debounceTime */ \"./node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"debounceTime\", function() { return _internal_operators_debounceTime__WEBPACK_IMPORTED_MODULE_17__[\"debounceTime\"]; });\n\n/* harmony import */ var _internal_operators_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../internal/operators/defaultIfEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"defaultIfEmpty\", function() { return _internal_operators_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_18__[\"defaultIfEmpty\"]; });\n\n/* harmony import */ var _internal_operators_delay__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../internal/operators/delay */ \"./node_modules/rxjs/dist/esm5/internal/operators/delay.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"delay\", function() { return _internal_operators_delay__WEBPACK_IMPORTED_MODULE_19__[\"delay\"]; });\n\n/* harmony import */ var _internal_operators_delayWhen__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../internal/operators/delayWhen */ \"./node_modules/rxjs/dist/esm5/internal/operators/delayWhen.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"delayWhen\", function() { return _internal_operators_delayWhen__WEBPACK_IMPORTED_MODULE_20__[\"delayWhen\"]; });\n\n/* harmony import */ var _internal_operators_dematerialize__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../internal/operators/dematerialize */ \"./node_modules/rxjs/dist/esm5/internal/operators/dematerialize.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dematerialize\", function() { return _internal_operators_dematerialize__WEBPACK_IMPORTED_MODULE_21__[\"dematerialize\"]; });\n\n/* harmony import */ var _internal_operators_distinct__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../internal/operators/distinct */ \"./node_modules/rxjs/dist/esm5/internal/operators/distinct.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"distinct\", function() { return _internal_operators_distinct__WEBPACK_IMPORTED_MODULE_22__[\"distinct\"]; });\n\n/* harmony import */ var _internal_operators_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../internal/operators/distinctUntilChanged */ \"./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"distinctUntilChanged\", function() { return _internal_operators_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_23__[\"distinctUntilChanged\"]; });\n\n/* harmony import */ var _internal_operators_distinctUntilKeyChanged__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../internal/operators/distinctUntilKeyChanged */ \"./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilKeyChanged.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"distinctUntilKeyChanged\", function() { return _internal_operators_distinctUntilKeyChanged__WEBPACK_IMPORTED_MODULE_24__[\"distinctUntilKeyChanged\"]; });\n\n/* harmony import */ var _internal_operators_elementAt__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../internal/operators/elementAt */ \"./node_modules/rxjs/dist/esm5/internal/operators/elementAt.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"elementAt\", function() { return _internal_operators_elementAt__WEBPACK_IMPORTED_MODULE_25__[\"elementAt\"]; });\n\n/* harmony import */ var _internal_operators_endWith__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../internal/operators/endWith */ \"./node_modules/rxjs/dist/esm5/internal/operators/endWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"endWith\", function() { return _internal_operators_endWith__WEBPACK_IMPORTED_MODULE_26__[\"endWith\"]; });\n\n/* harmony import */ var _internal_operators_every__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../internal/operators/every */ \"./node_modules/rxjs/dist/esm5/internal/operators/every.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"every\", function() { return _internal_operators_every__WEBPACK_IMPORTED_MODULE_27__[\"every\"]; });\n\n/* harmony import */ var _internal_operators_exhaust__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../internal/operators/exhaust */ \"./node_modules/rxjs/dist/esm5/internal/operators/exhaust.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"exhaust\", function() { return _internal_operators_exhaust__WEBPACK_IMPORTED_MODULE_28__[\"exhaust\"]; });\n\n/* harmony import */ var _internal_operators_exhaustMap__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../internal/operators/exhaustMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/exhaustMap.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"exhaustMap\", function() { return _internal_operators_exhaustMap__WEBPACK_IMPORTED_MODULE_29__[\"exhaustMap\"]; });\n\n/* harmony import */ var _internal_operators_expand__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../internal/operators/expand */ \"./node_modules/rxjs/dist/esm5/internal/operators/expand.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"expand\", function() { return _internal_operators_expand__WEBPACK_IMPORTED_MODULE_30__[\"expand\"]; });\n\n/* harmony import */ var _internal_operators_filter__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ../internal/operators/filter */ \"./node_modules/rxjs/dist/esm5/internal/operators/filter.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"filter\", function() { return _internal_operators_filter__WEBPACK_IMPORTED_MODULE_31__[\"filter\"]; });\n\n/* harmony import */ var _internal_operators_finalize__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ../internal/operators/finalize */ \"./node_modules/rxjs/dist/esm5/internal/operators/finalize.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"finalize\", function() { return _internal_operators_finalize__WEBPACK_IMPORTED_MODULE_32__[\"finalize\"]; });\n\n/* harmony import */ var _internal_operators_find__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ../internal/operators/find */ \"./node_modules/rxjs/dist/esm5/internal/operators/find.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"find\", function() { return _internal_operators_find__WEBPACK_IMPORTED_MODULE_33__[\"find\"]; });\n\n/* harmony import */ var _internal_operators_findIndex__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ../internal/operators/findIndex */ \"./node_modules/rxjs/dist/esm5/internal/operators/findIndex.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"findIndex\", function() { return _internal_operators_findIndex__WEBPACK_IMPORTED_MODULE_34__[\"findIndex\"]; });\n\n/* harmony import */ var _internal_operators_first__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ../internal/operators/first */ \"./node_modules/rxjs/dist/esm5/internal/operators/first.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"first\", function() { return _internal_operators_first__WEBPACK_IMPORTED_MODULE_35__[\"first\"]; });\n\n/* harmony import */ var _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ../internal/operators/groupBy */ \"./node_modules/rxjs/dist/esm5/internal/operators/groupBy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"groupBy\", function() { return _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_36__[\"groupBy\"]; });\n\n/* harmony import */ var _internal_operators_ignoreElements__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ../internal/operators/ignoreElements */ \"./node_modules/rxjs/dist/esm5/internal/operators/ignoreElements.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ignoreElements\", function() { return _internal_operators_ignoreElements__WEBPACK_IMPORTED_MODULE_37__[\"ignoreElements\"]; });\n\n/* harmony import */ var _internal_operators_isEmpty__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ../internal/operators/isEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/isEmpty.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isEmpty\", function() { return _internal_operators_isEmpty__WEBPACK_IMPORTED_MODULE_38__[\"isEmpty\"]; });\n\n/* harmony import */ var _internal_operators_last__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ../internal/operators/last */ \"./node_modules/rxjs/dist/esm5/internal/operators/last.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"last\", function() { return _internal_operators_last__WEBPACK_IMPORTED_MODULE_39__[\"last\"]; });\n\n/* harmony import */ var _internal_operators_map__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ../internal/operators/map */ \"./node_modules/rxjs/dist/esm5/internal/operators/map.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"map\", function() { return _internal_operators_map__WEBPACK_IMPORTED_MODULE_40__[\"map\"]; });\n\n/* harmony import */ var _internal_operators_mapTo__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ../internal/operators/mapTo */ \"./node_modules/rxjs/dist/esm5/internal/operators/mapTo.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mapTo\", function() { return _internal_operators_mapTo__WEBPACK_IMPORTED_MODULE_41__[\"mapTo\"]; });\n\n/* harmony import */ var _internal_operators_materialize__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ../internal/operators/materialize */ \"./node_modules/rxjs/dist/esm5/internal/operators/materialize.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"materialize\", function() { return _internal_operators_materialize__WEBPACK_IMPORTED_MODULE_42__[\"materialize\"]; });\n\n/* harmony import */ var _internal_operators_max__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ../internal/operators/max */ \"./node_modules/rxjs/dist/esm5/internal/operators/max.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"max\", function() { return _internal_operators_max__WEBPACK_IMPORTED_MODULE_43__[\"max\"]; });\n\n/* harmony import */ var _internal_operators_mergeWith__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ../internal/operators/mergeWith */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeWith\", function() { return _internal_operators_mergeWith__WEBPACK_IMPORTED_MODULE_44__[\"mergeWith\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"merge\", function() { return _internal_operators_mergeWith__WEBPACK_IMPORTED_MODULE_44__[\"merge\"]; });\n\n/* harmony import */ var _internal_operators_mergeAll__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ../internal/operators/mergeAll */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeAll\", function() { return _internal_operators_mergeAll__WEBPACK_IMPORTED_MODULE_45__[\"mergeAll\"]; });\n\n/* harmony import */ var _internal_operators_mergeMap__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ../internal/operators/mergeMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeMap\", function() { return _internal_operators_mergeMap__WEBPACK_IMPORTED_MODULE_46__[\"mergeMap\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"flatMap\", function() { return _internal_operators_mergeMap__WEBPACK_IMPORTED_MODULE_46__[\"mergeMap\"]; });\n\n/* harmony import */ var _internal_operators_mergeMapTo__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ../internal/operators/mergeMapTo */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeMapTo.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeMapTo\", function() { return _internal_operators_mergeMapTo__WEBPACK_IMPORTED_MODULE_47__[\"mergeMapTo\"]; });\n\n/* harmony import */ var _internal_operators_mergeScan__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ../internal/operators/mergeScan */ \"./node_modules/rxjs/dist/esm5/internal/operators/mergeScan.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeScan\", function() { return _internal_operators_mergeScan__WEBPACK_IMPORTED_MODULE_48__[\"mergeScan\"]; });\n\n/* harmony import */ var _internal_operators_min__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ../internal/operators/min */ \"./node_modules/rxjs/dist/esm5/internal/operators/min.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"min\", function() { return _internal_operators_min__WEBPACK_IMPORTED_MODULE_49__[\"min\"]; });\n\n/* harmony import */ var _internal_operators_multicast__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ../internal/operators/multicast */ \"./node_modules/rxjs/dist/esm5/internal/operators/multicast.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"multicast\", function() { return _internal_operators_multicast__WEBPACK_IMPORTED_MODULE_50__[\"multicast\"]; });\n\n/* harmony import */ var _internal_operators_observeOn__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ../internal/operators/observeOn */ \"./node_modules/rxjs/dist/esm5/internal/operators/observeOn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"observeOn\", function() { return _internal_operators_observeOn__WEBPACK_IMPORTED_MODULE_51__[\"observeOn\"]; });\n\n/* harmony import */ var _internal_operators_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ../internal/operators/onErrorResumeNext */ \"./node_modules/rxjs/dist/esm5/internal/operators/onErrorResumeNext.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"onErrorResumeNext\", function() { return _internal_operators_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_52__[\"onErrorResumeNext\"]; });\n\n/* harmony import */ var _internal_operators_pairwise__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ../internal/operators/pairwise */ \"./node_modules/rxjs/dist/esm5/internal/operators/pairwise.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pairwise\", function() { return _internal_operators_pairwise__WEBPACK_IMPORTED_MODULE_53__[\"pairwise\"]; });\n\n/* harmony import */ var _internal_operators_partition__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ../internal/operators/partition */ \"./node_modules/rxjs/dist/esm5/internal/operators/partition.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"partition\", function() { return _internal_operators_partition__WEBPACK_IMPORTED_MODULE_54__[\"partition\"]; });\n\n/* harmony import */ var _internal_operators_pluck__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ../internal/operators/pluck */ \"./node_modules/rxjs/dist/esm5/internal/operators/pluck.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pluck\", function() { return _internal_operators_pluck__WEBPACK_IMPORTED_MODULE_55__[\"pluck\"]; });\n\n/* harmony import */ var _internal_operators_publish__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ../internal/operators/publish */ \"./node_modules/rxjs/dist/esm5/internal/operators/publish.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"publish\", function() { return _internal_operators_publish__WEBPACK_IMPORTED_MODULE_56__[\"publish\"]; });\n\n/* harmony import */ var _internal_operators_publishBehavior__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ../internal/operators/publishBehavior */ \"./node_modules/rxjs/dist/esm5/internal/operators/publishBehavior.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"publishBehavior\", function() { return _internal_operators_publishBehavior__WEBPACK_IMPORTED_MODULE_57__[\"publishBehavior\"]; });\n\n/* harmony import */ var _internal_operators_publishLast__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ../internal/operators/publishLast */ \"./node_modules/rxjs/dist/esm5/internal/operators/publishLast.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"publishLast\", function() { return _internal_operators_publishLast__WEBPACK_IMPORTED_MODULE_58__[\"publishLast\"]; });\n\n/* harmony import */ var _internal_operators_publishReplay__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ../internal/operators/publishReplay */ \"./node_modules/rxjs/dist/esm5/internal/operators/publishReplay.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"publishReplay\", function() { return _internal_operators_publishReplay__WEBPACK_IMPORTED_MODULE_59__[\"publishReplay\"]; });\n\n/* harmony import */ var _internal_operators_race__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ../internal/operators/race */ \"./node_modules/rxjs/dist/esm5/internal/operators/race.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"race\", function() { return _internal_operators_race__WEBPACK_IMPORTED_MODULE_60__[\"race\"]; });\n\n/* harmony import */ var _internal_operators_reduce__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ../internal/operators/reduce */ \"./node_modules/rxjs/dist/esm5/internal/operators/reduce.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reduce\", function() { return _internal_operators_reduce__WEBPACK_IMPORTED_MODULE_61__[\"reduce\"]; });\n\n/* harmony import */ var _internal_operators_repeat__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ../internal/operators/repeat */ \"./node_modules/rxjs/dist/esm5/internal/operators/repeat.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"repeat\", function() { return _internal_operators_repeat__WEBPACK_IMPORTED_MODULE_62__[\"repeat\"]; });\n\n/* harmony import */ var _internal_operators_repeatWhen__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ../internal/operators/repeatWhen */ \"./node_modules/rxjs/dist/esm5/internal/operators/repeatWhen.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"repeatWhen\", function() { return _internal_operators_repeatWhen__WEBPACK_IMPORTED_MODULE_63__[\"repeatWhen\"]; });\n\n/* harmony import */ var _internal_operators_retry__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ../internal/operators/retry */ \"./node_modules/rxjs/dist/esm5/internal/operators/retry.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"retry\", function() { return _internal_operators_retry__WEBPACK_IMPORTED_MODULE_64__[\"retry\"]; });\n\n/* harmony import */ var _internal_operators_retryWhen__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ../internal/operators/retryWhen */ \"./node_modules/rxjs/dist/esm5/internal/operators/retryWhen.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"retryWhen\", function() { return _internal_operators_retryWhen__WEBPACK_IMPORTED_MODULE_65__[\"retryWhen\"]; });\n\n/* harmony import */ var _internal_operators_refCount__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ../internal/operators/refCount */ \"./node_modules/rxjs/dist/esm5/internal/operators/refCount.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"refCount\", function() { return _internal_operators_refCount__WEBPACK_IMPORTED_MODULE_66__[\"refCount\"]; });\n\n/* harmony import */ var _internal_operators_sample__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ../internal/operators/sample */ \"./node_modules/rxjs/dist/esm5/internal/operators/sample.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sample\", function() { return _internal_operators_sample__WEBPACK_IMPORTED_MODULE_67__[\"sample\"]; });\n\n/* harmony import */ var _internal_operators_sampleTime__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ../internal/operators/sampleTime */ \"./node_modules/rxjs/dist/esm5/internal/operators/sampleTime.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sampleTime\", function() { return _internal_operators_sampleTime__WEBPACK_IMPORTED_MODULE_68__[\"sampleTime\"]; });\n\n/* harmony import */ var _internal_operators_scan__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ../internal/operators/scan */ \"./node_modules/rxjs/dist/esm5/internal/operators/scan.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scan\", function() { return _internal_operators_scan__WEBPACK_IMPORTED_MODULE_69__[\"scan\"]; });\n\n/* harmony import */ var _internal_operators_sequenceEqual__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ../internal/operators/sequenceEqual */ \"./node_modules/rxjs/dist/esm5/internal/operators/sequenceEqual.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sequenceEqual\", function() { return _internal_operators_sequenceEqual__WEBPACK_IMPORTED_MODULE_70__[\"sequenceEqual\"]; });\n\n/* harmony import */ var _internal_operators_share__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ../internal/operators/share */ \"./node_modules/rxjs/dist/esm5/internal/operators/share.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"share\", function() { return _internal_operators_share__WEBPACK_IMPORTED_MODULE_71__[\"share\"]; });\n\n/* harmony import */ var _internal_operators_shareReplay__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ../internal/operators/shareReplay */ \"./node_modules/rxjs/dist/esm5/internal/operators/shareReplay.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"shareReplay\", function() { return _internal_operators_shareReplay__WEBPACK_IMPORTED_MODULE_72__[\"shareReplay\"]; });\n\n/* harmony import */ var _internal_operators_single__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ../internal/operators/single */ \"./node_modules/rxjs/dist/esm5/internal/operators/single.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"single\", function() { return _internal_operators_single__WEBPACK_IMPORTED_MODULE_73__[\"single\"]; });\n\n/* harmony import */ var _internal_operators_skip__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ../internal/operators/skip */ \"./node_modules/rxjs/dist/esm5/internal/operators/skip.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"skip\", function() { return _internal_operators_skip__WEBPACK_IMPORTED_MODULE_74__[\"skip\"]; });\n\n/* harmony import */ var _internal_operators_skipLast__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ../internal/operators/skipLast */ \"./node_modules/rxjs/dist/esm5/internal/operators/skipLast.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"skipLast\", function() { return _internal_operators_skipLast__WEBPACK_IMPORTED_MODULE_75__[\"skipLast\"]; });\n\n/* harmony import */ var _internal_operators_skipUntil__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ../internal/operators/skipUntil */ \"./node_modules/rxjs/dist/esm5/internal/operators/skipUntil.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"skipUntil\", function() { return _internal_operators_skipUntil__WEBPACK_IMPORTED_MODULE_76__[\"skipUntil\"]; });\n\n/* harmony import */ var _internal_operators_skipWhile__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ../internal/operators/skipWhile */ \"./node_modules/rxjs/dist/esm5/internal/operators/skipWhile.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"skipWhile\", function() { return _internal_operators_skipWhile__WEBPACK_IMPORTED_MODULE_77__[\"skipWhile\"]; });\n\n/* harmony import */ var _internal_operators_startWith__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ../internal/operators/startWith */ \"./node_modules/rxjs/dist/esm5/internal/operators/startWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"startWith\", function() { return _internal_operators_startWith__WEBPACK_IMPORTED_MODULE_78__[\"startWith\"]; });\n\n/* harmony import */ var _internal_operators_subscribeOn__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ../internal/operators/subscribeOn */ \"./node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"subscribeOn\", function() { return _internal_operators_subscribeOn__WEBPACK_IMPORTED_MODULE_79__[\"subscribeOn\"]; });\n\n/* harmony import */ var _internal_operators_switchAll__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ../internal/operators/switchAll */ \"./node_modules/rxjs/dist/esm5/internal/operators/switchAll.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"switchAll\", function() { return _internal_operators_switchAll__WEBPACK_IMPORTED_MODULE_80__[\"switchAll\"]; });\n\n/* harmony import */ var _internal_operators_switchMap__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ../internal/operators/switchMap */ \"./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"switchMap\", function() { return _internal_operators_switchMap__WEBPACK_IMPORTED_MODULE_81__[\"switchMap\"]; });\n\n/* harmony import */ var _internal_operators_switchMapTo__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ../internal/operators/switchMapTo */ \"./node_modules/rxjs/dist/esm5/internal/operators/switchMapTo.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"switchMapTo\", function() { return _internal_operators_switchMapTo__WEBPACK_IMPORTED_MODULE_82__[\"switchMapTo\"]; });\n\n/* harmony import */ var _internal_operators_take__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ../internal/operators/take */ \"./node_modules/rxjs/dist/esm5/internal/operators/take.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"take\", function() { return _internal_operators_take__WEBPACK_IMPORTED_MODULE_83__[\"take\"]; });\n\n/* harmony import */ var _internal_operators_takeLast__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ../internal/operators/takeLast */ \"./node_modules/rxjs/dist/esm5/internal/operators/takeLast.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"takeLast\", function() { return _internal_operators_takeLast__WEBPACK_IMPORTED_MODULE_84__[\"takeLast\"]; });\n\n/* harmony import */ var _internal_operators_takeUntil__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ../internal/operators/takeUntil */ \"./node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"takeUntil\", function() { return _internal_operators_takeUntil__WEBPACK_IMPORTED_MODULE_85__[\"takeUntil\"]; });\n\n/* harmony import */ var _internal_operators_takeWhile__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ../internal/operators/takeWhile */ \"./node_modules/rxjs/dist/esm5/internal/operators/takeWhile.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"takeWhile\", function() { return _internal_operators_takeWhile__WEBPACK_IMPORTED_MODULE_86__[\"takeWhile\"]; });\n\n/* harmony import */ var _internal_operators_tap__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ../internal/operators/tap */ \"./node_modules/rxjs/dist/esm5/internal/operators/tap.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tap\", function() { return _internal_operators_tap__WEBPACK_IMPORTED_MODULE_87__[\"tap\"]; });\n\n/* harmony import */ var _internal_operators_throttle__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ../internal/operators/throttle */ \"./node_modules/rxjs/dist/esm5/internal/operators/throttle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"throttle\", function() { return _internal_operators_throttle__WEBPACK_IMPORTED_MODULE_88__[\"throttle\"]; });\n\n/* harmony import */ var _internal_operators_throttleTime__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ../internal/operators/throttleTime */ \"./node_modules/rxjs/dist/esm5/internal/operators/throttleTime.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"throttleTime\", function() { return _internal_operators_throttleTime__WEBPACK_IMPORTED_MODULE_89__[\"throttleTime\"]; });\n\n/* harmony import */ var _internal_operators_throwIfEmpty__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ../internal/operators/throwIfEmpty */ \"./node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"throwIfEmpty\", function() { return _internal_operators_throwIfEmpty__WEBPACK_IMPORTED_MODULE_90__[\"throwIfEmpty\"]; });\n\n/* harmony import */ var _internal_operators_timeInterval__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ../internal/operators/timeInterval */ \"./node_modules/rxjs/dist/esm5/internal/operators/timeInterval.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeInterval\", function() { return _internal_operators_timeInterval__WEBPACK_IMPORTED_MODULE_91__[\"timeInterval\"]; });\n\n/* harmony import */ var _internal_operators_timeout__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ../internal/operators/timeout */ \"./node_modules/rxjs/dist/esm5/internal/operators/timeout.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeout\", function() { return _internal_operators_timeout__WEBPACK_IMPORTED_MODULE_92__[\"timeout\"]; });\n\n/* harmony import */ var _internal_operators_timeoutWith__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ../internal/operators/timeoutWith */ \"./node_modules/rxjs/dist/esm5/internal/operators/timeoutWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeoutWith\", function() { return _internal_operators_timeoutWith__WEBPACK_IMPORTED_MODULE_93__[\"timeoutWith\"]; });\n\n/* harmony import */ var _internal_operators_timestamp__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ../internal/operators/timestamp */ \"./node_modules/rxjs/dist/esm5/internal/operators/timestamp.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timestamp\", function() { return _internal_operators_timestamp__WEBPACK_IMPORTED_MODULE_94__[\"timestamp\"]; });\n\n/* harmony import */ var _internal_operators_toArray__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ../internal/operators/toArray */ \"./node_modules/rxjs/dist/esm5/internal/operators/toArray.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toArray\", function() { return _internal_operators_toArray__WEBPACK_IMPORTED_MODULE_95__[\"toArray\"]; });\n\n/* harmony import */ var _internal_operators_window__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ../internal/operators/window */ \"./node_modules/rxjs/dist/esm5/internal/operators/window.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"window\", function() { return _internal_operators_window__WEBPACK_IMPORTED_MODULE_96__[\"window\"]; });\n\n/* harmony import */ var _internal_operators_windowCount__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(/*! ../internal/operators/windowCount */ \"./node_modules/rxjs/dist/esm5/internal/operators/windowCount.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"windowCount\", function() { return _internal_operators_windowCount__WEBPACK_IMPORTED_MODULE_97__[\"windowCount\"]; });\n\n/* harmony import */ var _internal_operators_windowTime__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(/*! ../internal/operators/windowTime */ \"./node_modules/rxjs/dist/esm5/internal/operators/windowTime.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"windowTime\", function() { return _internal_operators_windowTime__WEBPACK_IMPORTED_MODULE_98__[\"windowTime\"]; });\n\n/* harmony import */ var _internal_operators_windowToggle__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(/*! ../internal/operators/windowToggle */ \"./node_modules/rxjs/dist/esm5/internal/operators/windowToggle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"windowToggle\", function() { return _internal_operators_windowToggle__WEBPACK_IMPORTED_MODULE_99__[\"windowToggle\"]; });\n\n/* harmony import */ var _internal_operators_windowWhen__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(/*! ../internal/operators/windowWhen */ \"./node_modules/rxjs/dist/esm5/internal/operators/windowWhen.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"windowWhen\", function() { return _internal_operators_windowWhen__WEBPACK_IMPORTED_MODULE_100__[\"windowWhen\"]; });\n\n/* harmony import */ var _internal_operators_withLatestFrom__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(/*! ../internal/operators/withLatestFrom */ \"./node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"withLatestFrom\", function() { return _internal_operators_withLatestFrom__WEBPACK_IMPORTED_MODULE_101__[\"withLatestFrom\"]; });\n\n/* harmony import */ var _internal_operators_zipWith__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(/*! ../internal/operators/zipWith */ \"./node_modules/rxjs/dist/esm5/internal/operators/zipWith.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zip\", function() { return _internal_operators_zipWith__WEBPACK_IMPORTED_MODULE_102__[\"zip\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zipWith\", function() { return _internal_operators_zipWith__WEBPACK_IMPORTED_MODULE_102__[\"zipWith\"]; });\n\n/* harmony import */ var _internal_operators_zipAll__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(/*! ../internal/operators/zipAll */ \"./node_modules/rxjs/dist/esm5/internal/operators/zipAll.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zipAll\", function() { return _internal_operators_zipAll__WEBPACK_IMPORTED_MODULE_103__[\"zipAll\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack:///./node_modules/rxjs/dist/esm5/operators/index.js?"); + +/***/ }), + +/***/ "./node_modules/tslib/tslib.es6.js": +/*!*****************************************!*\ + !*** ./node_modules/tslib/tslib.es6.js ***! + \*****************************************/ +/*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault, __classPrivateFieldGet, __classPrivateFieldSet */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__extends\", function() { return __extends; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__assign\", function() { return __assign; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__rest\", function() { return __rest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__decorate\", function() { return __decorate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__param\", function() { return __param; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__metadata\", function() { return __metadata; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__awaiter\", function() { return __awaiter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__generator\", function() { return __generator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__exportStar\", function() { return __exportStar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__values\", function() { return __values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__read\", function() { return __read; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__spread\", function() { return __spread; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__spreadArrays\", function() { return __spreadArrays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__await\", function() { return __await; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncGenerator\", function() { return __asyncGenerator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncDelegator\", function() { return __asyncDelegator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncValues\", function() { return __asyncValues; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__makeTemplateObject\", function() { return __makeTemplateObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__importStar\", function() { return __importStar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__importDefault\", function() { return __importDefault; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__classPrivateFieldGet\", function() { return __classPrivateFieldGet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__classPrivateFieldSet\", function() { return __classPrivateFieldSet; });\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nfunction __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nfunction __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nfunction __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nfunction __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nfunction __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nfunction __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nfunction __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nfunction __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nfunction __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n\n\n//# sourceURL=webpack:///./node_modules/tslib/tslib.es6.js?"); + +/***/ }), + +/***/ "./node_modules/webpack/buildin/global.js": +/*!***********************************!*\ + !*** (webpack)/buildin/global.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n//# sourceURL=webpack:///(webpack)/buildin/global.js?"); + +/***/ }) + +}]); \ No newline at end of file diff --git a/docs/theme/material/assets/javascripts/worker/search.37585f48.min.js b/docs/theme/material/assets/javascripts/worker/search.37585f48.min.js new file mode 100644 index 00000000..edcf6ebf --- /dev/null +++ b/docs/theme/material/assets/javascripts/worker/search.37585f48.min.js @@ -0,0 +1,59 @@ +!function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=4)}([function(e,t,r){"use strict"; +/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var n=/["'&<>]/;e.exports=function(e){var t,r=""+e,i=n.exec(r);if(!i)return r;var s="",o=0,a=0;for(o=i.index;o0){var u=I.utils.clone(t)||{};u.position=[o,a],u.index=i.length,i.push(new I.Token(r.slice(o,s),u))}o=s+1}}return i},I.tokenizer.separator=/[\s\-]+/ +/*! + * lunr.Pipeline + * Copyright (C) 2019 Oliver Nightingale + */,I.Pipeline=function(){this._stack=[]},I.Pipeline.registeredFunctions=Object.create(null),I.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&I.utils.warn("Overwriting existing registered function: "+t),e.label=t,I.Pipeline.registeredFunctions[e.label]=e},I.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||I.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},I.Pipeline.load=function(e){var t=new I.Pipeline;return e.forEach((function(e){var r=I.Pipeline.registeredFunctions[e];if(!r)throw new Error("Cannot load unregistered function: "+e);t.add(r)})),t},I.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach((function(e){I.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},I.Pipeline.prototype.after=function(e,t){I.Pipeline.warnIfFunctionNotRegistered(t);var r=this._stack.indexOf(e);if(-1==r)throw new Error("Cannot find existingFn");r+=1,this._stack.splice(r,0,t)},I.Pipeline.prototype.before=function(e,t){I.Pipeline.warnIfFunctionNotRegistered(t);var r=this._stack.indexOf(e);if(-1==r)throw new Error("Cannot find existingFn");this._stack.splice(r,0,t)},I.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},I.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=i),s!=e);)n=r-t,i=t+Math.floor(n/2),s=this.elements[2*i];return s==e||s>e?2*i:sa?l+=2:o==a&&(t+=r[u+1]*n[l+1],u+=2,l+=2);return t},I.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},I.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var s,o=i.str.charAt(0);o in i.node.edges?s=i.node.edges[o]:(s=new I.TokenSet,i.node.edges[o]=s),1==i.str.length&&(s.final=!0),n.push({node:s,editsRemaining:i.editsRemaining,str:i.str.slice(1)})}if(0!=i.editsRemaining){if("*"in i.node.edges)var a=i.node.edges["*"];else{a=new I.TokenSet;i.node.edges["*"]=a}if(0==i.str.length&&(a.final=!0),n.push({node:a,editsRemaining:i.editsRemaining-1,str:i.str}),i.str.length>1&&n.push({node:i.node,editsRemaining:i.editsRemaining-1,str:i.str.slice(1)}),1==i.str.length&&(i.node.final=!0),i.str.length>=1){if("*"in i.node.edges)var u=i.node.edges["*"];else{u=new I.TokenSet;i.node.edges["*"]=u}1==i.str.length&&(u.final=!0),n.push({node:u,editsRemaining:i.editsRemaining-1,str:i.str.slice(1)})}if(i.str.length>1){var l,c=i.str.charAt(0),h=i.str.charAt(1);h in i.node.edges?l=i.node.edges[h]:(l=new I.TokenSet,i.node.edges[h]=l),1==i.str.length&&(l.final=!0),n.push({node:l,editsRemaining:i.editsRemaining-1,str:c+i.str.slice(2)})}}}return r},I.TokenSet.fromString=function(e){for(var t=new I.TokenSet,r=t,n=0,i=e.length;n=e;t--){var r=this.uncheckedNodes[t],n=r.child.toString();n in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[n]:(r.child._str=n,this.minimizedNodes[n]=r.child),this.uncheckedNodes.pop()}} +/*! + * lunr.Index + * Copyright (C) 2019 Oliver Nightingale + */,I.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},I.Index.prototype.search=function(e){return this.query((function(t){new I.QueryParser(e,t).parse()}))},I.Index.prototype.query=function(e){for(var t=new I.Query(this.fields),r=Object.create(null),n=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=0;a1?1:e},I.Builder.prototype.k1=function(e){this._k1=e},I.Builder.prototype.add=function(e,t){var r=e[this._ref],n=Object.keys(this._fields);this._documents[r]=t||{},this.documentCount+=1;for(var i=0;i=this.length)return I.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},I.QueryLexer.prototype.width=function(){return this.pos-this.start},I.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},I.QueryLexer.prototype.backup=function(){this.pos-=1},I.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=I.QueryLexer.EOS&&this.backup()},I.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(I.QueryLexer.TERM)),e.ignore(),e.more())return I.QueryLexer.lexText},I.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(I.QueryLexer.EDIT_DISTANCE),I.QueryLexer.lexText},I.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(I.QueryLexer.BOOST),I.QueryLexer.lexText},I.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(I.QueryLexer.TERM)},I.QueryLexer.termSeparator=I.tokenizer.separator,I.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==I.QueryLexer.EOS)return I.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return I.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(I.QueryLexer.TERM),I.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(I.QueryLexer.TERM),I.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(I.QueryLexer.PRESENCE),I.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(I.QueryLexer.PRESENCE),I.QueryLexer.lexText;if(t.match(I.QueryLexer.termSeparator))return I.QueryLexer.lexTerm}else e.escapeCharacter()}},I.QueryParser=function(e,t){this.lexer=new I.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},I.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=I.QueryParser.parseClause;e;)e=e(this);return this.query},I.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},I.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},I.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},I.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case I.QueryLexer.PRESENCE:return I.QueryParser.parsePresence;case I.QueryLexer.FIELD:return I.QueryParser.parseField;case I.QueryLexer.TERM:return I.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(r+=" with value '"+t.str+"'"),new I.QueryParseError(r,t.start,t.end)}},I.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=I.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=I.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+t.str+"'";throw new I.QueryParseError(r,t.start,t.end)}var n=e.peekLexeme();if(null==n){r="expecting term or field, found nothing";throw new I.QueryParseError(r,t.start,t.end)}switch(n.type){case I.QueryLexer.FIELD:return I.QueryParser.parseField;case I.QueryLexer.TERM:return I.QueryParser.parseTerm;default:r="expecting term or field, found '"+n.type+"'";throw new I.QueryParseError(r,n.start,n.end)}}},I.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var r=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),n="unrecognised field '"+t.str+"', possible fields: "+r;throw new I.QueryParseError(n,t.start,t.end)}e.currentClause.fields=[t.str];var i=e.peekLexeme();if(null==i){n="expecting term, found nothing";throw new I.QueryParseError(n,t.start,t.end)}switch(i.type){case I.QueryLexer.TERM:return I.QueryParser.parseTerm;default:n="expecting term, found '"+i.type+"'";throw new I.QueryParseError(n,i.start,i.end)}}},I.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(null!=r)switch(r.type){case I.QueryLexer.TERM:return e.nextClause(),I.QueryParser.parseTerm;case I.QueryLexer.FIELD:return e.nextClause(),I.QueryParser.parseField;case I.QueryLexer.EDIT_DISTANCE:return I.QueryParser.parseEditDistance;case I.QueryLexer.BOOST:return I.QueryParser.parseBoost;case I.QueryLexer.PRESENCE:return e.nextClause(),I.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+r.type+"'";throw new I.QueryParseError(n,r.start,r.end)}else e.nextClause()}},I.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var r=parseInt(t.str,10);if(isNaN(r)){var n="edit distance must be numeric";throw new I.QueryParseError(n,t.start,t.end)}e.currentClause.editDistance=r;var i=e.peekLexeme();if(null!=i)switch(i.type){case I.QueryLexer.TERM:return e.nextClause(),I.QueryParser.parseTerm;case I.QueryLexer.FIELD:return e.nextClause(),I.QueryParser.parseField;case I.QueryLexer.EDIT_DISTANCE:return I.QueryParser.parseEditDistance;case I.QueryLexer.BOOST:return I.QueryParser.parseBoost;case I.QueryLexer.PRESENCE:return e.nextClause(),I.QueryParser.parsePresence;default:n="Unexpected lexeme type '"+i.type+"'";throw new I.QueryParseError(n,i.start,i.end)}else e.nextClause()}},I.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var r=parseInt(t.str,10);if(isNaN(r)){var n="boost must be numeric";throw new I.QueryParseError(n,t.start,t.end)}e.currentClause.boost=r;var i=e.peekLexeme();if(null!=i)switch(i.type){case I.QueryLexer.TERM:return e.nextClause(),I.QueryParser.parseTerm;case I.QueryLexer.FIELD:return e.nextClause(),I.QueryParser.parseField;case I.QueryLexer.EDIT_DISTANCE:return I.QueryParser.parseEditDistance;case I.QueryLexer.BOOST:return I.QueryParser.parseBoost;case I.QueryLexer.PRESENCE:return e.nextClause(),I.QueryParser.parsePresence;default:n="Unexpected lexeme type '"+i.type+"'";throw new I.QueryParseError(n,i.start,i.end)}else e.nextClause()}},void 0===(i="function"==typeof(n=function(){return I})?n.call(t,r,t,e):n)||(e.exports=i)}()},function(e,t,r){"use strict";r.r(t),r.d(t,"handler",(function(){return h}));var n=function(){return(n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function s(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,s=r.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(n=s.next()).done;)o.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=s.return)&&r.call(s)}finally{if(i)throw i.error}}return o}function o(){for(var e=[],t=0;t"+r+""};return function(i){i=i.replace(/[\s*+-:~^]+/g," ").trim();var s=new RegExp("(^|"+e.separator+")("+i.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(t,"|")+")","img");return function(e){return n(n({},e),{title:e.title.replace(s,r),text:e.text.replace(s,r)})}}}(t),this.index=void 0===l?lunr((function(){var e,n,s,a,l;u=u||["trimmer","stopWordFilter"],this.pipeline.reset();try{for(var c=i(u),h=c.next();!h.done;h=c.next()){var d=h.value;this.pipeline.add(lunr[d])}}catch(t){e={error:t}}finally{try{h&&!h.done&&(n=c.return)&&n.call(c)}finally{if(e)throw e.error}}1===t.lang.length&&"en"!==t.lang[0]?this.use(lunr[t.lang[0]]):t.lang.length>1&&this.use((s=lunr).multiLanguage.apply(s,o(t.lang))),this.field("title",{boost:1e3}),this.field("text"),this.ref("location");try{for(var f=i(r),p=f.next();!p.done;p=f.next()){var y=p.value;this.add(y)}}catch(e){a={error:e}}finally{try{p&&!p.done&&(l=f.return)&&l.call(f)}finally{if(a)throw a.error}}})):lunr.Index.load("string"==typeof l?JSON.parse(l):l)}return e.prototype.query=function(e){var t=this;if(e)try{var r=this.index.search(e).reduce((function(e,r){var n=t.documents.get(r.ref);if(void 0!==n)if("parent"in n){var i=n.parent.location;e.set(i,o(e.get(i)||[],[r]))}else{i=n.location;e.set(i,e.get(i)||[])}return e}),new Map),n=this.highlight(e);return o(r).map((function(e){var r=s(e,2),i=r[0],o=r[1];return{article:n(t.documents.get(i)),sections:o.map((function(e){return n(t.documents.get(e.ref))}))}}))}catch(t){console.warn("Invalid query: "+e+" – see https://bit.ly/2s3ChXG")}return[]},e}();function h(e){switch(e.type){case u.SETUP:return function(e){var t,r,n="../lunr",s=[];try{for(var a=i(e.lang),u=a.next();!u.done;u=a.next()){var l=u.value;"ja"===l&&s.push(n+"/tinyseg.min.js"),"en"!==l&&s.push(n+"/min/lunr."+l+".min.js")}}catch(e){t={error:e}}finally{try{u&&!u.done&&(r=a.return)&&r.call(a)}finally{if(t)throw t.error}}e.lang.length>1&&s.push(n+"/min/lunr.multi.min.js"),s.length&&importScripts.apply(void 0,o([n+"/min/lunr.stemmer.support.min.js"],s))}(e.data.config),l=new c(e.data),{type:u.READY};case u.QUERY:return{type:u.RESULT,data:l?l.query(e.data):[]};default:throw new TypeError("Invalid message type")}}!function(e){e[e.SETUP=0]="SETUP",e[e.READY=1]="READY",e[e.QUERY=2]="QUERY",e[e.RESULT=3]="RESULT"}(u||(u={})),addEventListener("message",(function(e){postMessage(h(e.data))}))}]); +//# sourceMappingURL=search.37585f48.min.js.map \ No newline at end of file diff --git a/docs/theme/material/assets/javascripts/worker/search.37585f48.min.js.map b/docs/theme/material/assets/javascripts/worker/search.37585f48.min.js.map new file mode 100644 index 00000000..884ad522 --- /dev/null +++ b/docs/theme/material/assets/javascripts/worker/search.37585f48.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/escape-html/index.js","webpack:///./node_modules/lunr/lunr.js-exposed","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/lunr/lunr.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./src/assets/javascripts/integrations/search/_/index.ts","webpack:///./src/assets/javascripts/integrations/search/worker/message/index.ts","webpack:///./src/assets/javascripts/integrations/search/worker/main/index.ts","webpack:///./src/assets/javascripts/integrations/search/document/index.ts","webpack:///./src/assets/javascripts/integrations/search/highlighter/index.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","matchHtmlRegExp","string","escape","str","match","exec","html","index","lastIndex","length","charCodeAt","substring","g","this","Function","e","window","global","step2list","step3list","v","C","re_mgr0","re_mgr1","re_meq1","re_s_v","re_1a","re2_1a","re_1b","re2_1b","re_1b_2","re2_1b_2","re3_1b_2","re4_1b_2","re_1c","re_2","re_3","re_4","re2_4","re_5","re_5_1","re3_5","porterStemmer","lunr","config","builder","Builder","pipeline","add","trimmer","stopWordFilter","stemmer","searchPipeline","build","version","utils","warn","message","console","asString","obj","toString","clone","keys","val","Array","isArray","slice","TypeError","FieldRef","docRef","fieldName","stringValue","_stringValue","joiner","fromString","indexOf","fieldRef","undefined","Set","elements","complete","intersect","other","union","contains","empty","a","b","intersection","element","push","concat","idf","posting","documentCount","documentsWithTerm","x","Math","log","abs","Token","metadata","update","fn","tokenizer","map","toLowerCase","len","tokens","sliceEnd","sliceStart","sliceLength","charAt","separator","tokenMetadata","Pipeline","_stack","registeredFunctions","registerFunction","label","warnIfFunctionNotRegistered","load","serialised","forEach","fnName","Error","fns","arguments","after","existingFn","newFn","pos","splice","before","remove","run","stackLength","memo","j","result","k","runString","token","reset","toJSON","Vector","_magnitude","positionForIndex","start","end","pivotPoint","floor","pivotIndex","insert","insertIdx","upsert","position","magnitude","sumOfSquares","elementsLength","sqrt","dot","otherVector","dotProduct","aLen","bLen","aVal","bVal","similarity","toArray","output","RegExp","w","stem","suffix","firstch","re","re2","re3","re4","substr","toUpperCase","test","replace","fp","generateStopWordFilter","stopWords","words","reduce","stopWord","TokenSet","final","edges","id","_nextId","fromArray","arr","finish","root","fromClause","clause","fromFuzzyString","term","editDistance","stack","node","editsRemaining","frame","pop","noEditNode","char","insertionNode","substitutionNode","transposeNode","charA","charB","next","prefix","edge","_str","labels","sort","qNode","qEdges","qLen","nEdges","nLen","q","qEdge","nEdge","previousWord","uncheckedNodes","minimizedNodes","word","commonPrefix","minimize","child","nextNode","parent","downTo","childKey","Index","attrs","invertedIndex","fieldVectors","tokenSet","fields","search","queryString","query","QueryParser","parse","Query","matchingFields","queryVectors","termFieldCache","requiredMatches","prohibitedMatches","clauses","terms","clauseMatches","usePipeline","termTokenSet","expandedTerms","presence","REQUIRED","field","expandedTerm","termIndex","_index","fieldPosting","matchingDocumentRefs","termField","matchingDocumentsSet","PROHIBITED","boost","fieldMatch","matchingDocumentRef","matchingFieldRef","MatchData","allRequiredMatches","allProhibitedMatches","matchingFieldRefs","results","matches","isNegated","docMatch","fieldVector","score","matchData","combine","ref","serializedIndex","serializedVectors","serializedInvertedIndex","tokenSetBuilder","tuple","_ref","_fields","_documents","fieldTermFrequencies","fieldLengths","_b","_k1","metadataWhitelist","attributes","RangeError","number","k1","doc","extractor","fieldTerms","metadataKey","calculateAverageFieldLengths","fieldRefs","numberOfFields","accumulator","documentsWithField","averageFieldLength","createFieldVectors","fieldRefsLength","termIdfCache","fieldLength","termFrequencies","termsLength","fieldBoost","docBoost","scoreWithPrecision","tf","round","createTokenSet","use","args","unshift","apply","clonedMetadata","metadataKeys","otherMatchData","allFields","wildcard","String","NONE","LEADING","TRAILING","OPTIONAL","options","QueryParseError","QueryLexer","lexemes","escapeCharPositions","state","lexText","sliceString","subSlices","join","emit","type","escapeCharacter","EOS","width","ignore","backup","acceptDigitRun","charCode","more","FIELD","TERM","EDIT_DISTANCE","BOOST","PRESENCE","lexField","lexer","lexTerm","lexEditDistance","lexBoost","lexEOS","termSeparator","currentClause","lexemeIdx","parseClause","peekLexeme","consumeLexeme","lexeme","nextClause","completedClause","parser","parsePresence","parseField","parseTerm","errorMessage","nextLexeme","possibleFields","f","parseEditDistance","parseBoost","parseInt","isNaN","__assign","assign","__values","iterator","done","__read","ar","error","__spread","SearchMessageType","docs","documents","Map","path","hash","location","title","text","linked","set","setupSearchDocumentMap","highlight","_","data","trim","document","setupSearchHighlighter","lang","multiLanguage","JSON","groups","sections","article","section","err","handler","SETUP","base","scripts","importScripts","setupLunrLanguages","READY","QUERY","RESULT","addEventListener","ev","postMessage"],"mappings":"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C,GACtC,IAAIC,EAAQD,EAAUE,QAAO,SAAUnD,EAAMoD,GAE3C,OADApD,EAAKoD,GAAYA,EACVpD,IACN,IAEH,OAAO,SAAUK,GACf,GAAIA,GAAS6C,EAAM7C,EAAMlF,cAAgBkF,EAAMlF,WAAY,OAAOkF,IAiBtEpG,EAAKO,eAAiBP,EAAK+I,uBAAuB,CAChD,IACA,OACA,QACA,SACA,QACA,MACA,SACA,OACA,KACA,QACA,KACA,MACA,MACA,MACA,KACA,KACA,KACA,UACA,OACA,MACA,KACA,MACA,SACA,QACA,OACA,MACA,KACA,OACA,SACA,OACA,OACA,QACA,MACA,OACA,MACA,MACA,MACA,MACA,OACA,KACA,MACA,OACA,MACA,MACA,MACA,UACA,IACA,KACA,KACA,OACA,KACA,KACA,MACA,OACA,QACA,MACA,OACA,SACA,MACA,KACA,QACA,OACA,OACA,KACA,UACA,KACA,MACA,MACA,KACA,MACA,QACA,KACA,OACA,KACA,QACA,MACA,MACA,SACA,OACA,MACA,OACA,MACA,SACA,QACA,KACA,OACA,OACA,OACA,MACA,QACA,OACA,OACA,QACA,QACA,OACA,OACA,MACA,KACA,MACA,OACA,KACA,QACA,MACA,KACA,OACA,OACA,OACA,QACA,QACA,QACA,MACA,OACA,MACA,OACA,OACA,QACA,MACA,MACA,SAGF/I,EAAKyE,SAASG,iBAAiB5E,EAAKO,eAAgB;;;;IAqBpDP,EAAKM,QAAU,SAAU8F,GACvB,OAAOA,EAAMxC,QAAO,SAAUxG,GAC5B,OAAOA,EAAEyL,QAAQ,OAAQ,IAAIA,QAAQ,OAAQ,QAIjD7I,EAAKyE,SAASG,iBAAiB5E,EAAKM,QAAS;;;;IA2B7CN,EAAKoJ,SAAW,WACdlL,KAAKmL,OAAQ,EACbnL,KAAKoL,MAAQ,GACbpL,KAAKqL,GAAKvJ,EAAKoJ,SAASI,QACxBxJ,EAAKoJ,SAASI,SAAW,GAW3BxJ,EAAKoJ,SAASI,QAAU,EASxBxJ,EAAKoJ,SAASK,UAAY,SAAUC,GAGlC,IAFA,IAAIxJ,EAAU,IAAIF,EAAKoJ,SAASjJ,Q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","file":"assets/javascripts/worker/search.37585f48.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 4);\n","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n","module.exports = global[\"lunr\"] = require(\"-!./lunr.js\");","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/**\n * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.8\n * Copyright (C) 2019 Oliver Nightingale\n * @license MIT\n */\n\n;(function(){\n\n/**\n * A convenience function for configuring and constructing\n * a new lunr Index.\n *\n * A lunr.Builder instance is created and the pipeline setup\n * with a trimmer, stop word filter and stemmer.\n *\n * This builder object is yielded to the configuration function\n * that is passed as a parameter, allowing the list of fields\n * and other builder parameters to be customised.\n *\n * All documents _must_ be added within the passed config function.\n *\n * @example\n * var idx = lunr(function () {\n * this.field('title')\n * this.field('body')\n * this.ref('id')\n *\n * documents.forEach(function (doc) {\n * this.add(doc)\n * }, this)\n * })\n *\n * @see {@link lunr.Builder}\n * @see {@link lunr.Pipeline}\n * @see {@link lunr.trimmer}\n * @see {@link lunr.stopWordFilter}\n * @see {@link lunr.stemmer}\n * @namespace {function} lunr\n */\nvar lunr = function (config) {\n var builder = new lunr.Builder\n\n builder.pipeline.add(\n lunr.trimmer,\n lunr.stopWordFilter,\n lunr.stemmer\n )\n\n builder.searchPipeline.add(\n lunr.stemmer\n )\n\n config.call(builder, builder)\n return builder.build()\n}\n\nlunr.version = \"2.3.8\"\n/*!\n * lunr.utils\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A namespace containing utils for the rest of the lunr library\n * @namespace lunr.utils\n */\nlunr.utils = {}\n\n/**\n * Print a warning message to the console.\n *\n * @param {String} message The message to be printed.\n * @memberOf lunr.utils\n * @function\n */\nlunr.utils.warn = (function (global) {\n /* eslint-disable no-console */\n return function (message) {\n if (global.console && console.warn) {\n console.warn(message)\n }\n }\n /* eslint-enable no-console */\n})(this)\n\n/**\n * Convert an object to a string.\n *\n * In the case of `null` and `undefined` the function returns\n * the empty string, in all other cases the result of calling\n * `toString` on the passed object is returned.\n *\n * @param {Any} obj The object to convert to a string.\n * @return {String} string representation of the passed object.\n * @memberOf lunr.utils\n */\nlunr.utils.asString = function (obj) {\n if (obj === void 0 || obj === null) {\n return \"\"\n } else {\n return obj.toString()\n }\n}\n\n/**\n * Clones an object.\n *\n * Will create a copy of an existing object such that any mutations\n * on the copy cannot affect the original.\n *\n * Only shallow objects are supported, passing a nested object to this\n * function will cause a TypeError.\n *\n * Objects with primitives, and arrays of primitives are supported.\n *\n * @param {Object} obj The object to clone.\n * @return {Object} a clone of the passed object.\n * @throws {TypeError} when a nested object is passed.\n * @memberOf Utils\n */\nlunr.utils.clone = function (obj) {\n if (obj === null || obj === undefined) {\n return obj\n }\n\n var clone = Object.create(null),\n keys = Object.keys(obj)\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i],\n val = obj[key]\n\n if (Array.isArray(val)) {\n clone[key] = val.slice()\n continue\n }\n\n if (typeof val === 'string' ||\n typeof val === 'number' ||\n typeof val === 'boolean') {\n clone[key] = val\n continue\n }\n\n throw new TypeError(\"clone is not deep and does not support nested objects\")\n }\n\n return clone\n}\nlunr.FieldRef = function (docRef, fieldName, stringValue) {\n this.docRef = docRef\n this.fieldName = fieldName\n this._stringValue = stringValue\n}\n\nlunr.FieldRef.joiner = \"/\"\n\nlunr.FieldRef.fromString = function (s) {\n var n = s.indexOf(lunr.FieldRef.joiner)\n\n if (n === -1) {\n throw \"malformed field ref string\"\n }\n\n var fieldRef = s.slice(0, n),\n docRef = s.slice(n + 1)\n\n return new lunr.FieldRef (docRef, fieldRef, s)\n}\n\nlunr.FieldRef.prototype.toString = function () {\n if (this._stringValue == undefined) {\n this._stringValue = this.fieldName + lunr.FieldRef.joiner + this.docRef\n }\n\n return this._stringValue\n}\n/*!\n * lunr.Set\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A lunr set.\n *\n * @constructor\n */\nlunr.Set = function (elements) {\n this.elements = Object.create(null)\n\n if (elements) {\n this.length = elements.length\n\n for (var i = 0; i < this.length; i++) {\n this.elements[elements[i]] = true\n }\n } else {\n this.length = 0\n }\n}\n\n/**\n * A complete set that contains all elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.complete = {\n intersect: function (other) {\n return other\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return true\n }\n}\n\n/**\n * An empty set that contains no elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.empty = {\n intersect: function () {\n return this\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return false\n }\n}\n\n/**\n * Returns true if this set contains the specified object.\n *\n * @param {object} object - Object whose presence in this set is to be tested.\n * @returns {boolean} - True if this set contains the specified object.\n */\nlunr.Set.prototype.contains = function (object) {\n return !!this.elements[object]\n}\n\n/**\n * Returns a new set containing only the elements that are present in both\n * this set and the specified set.\n *\n * @param {lunr.Set} other - set to intersect with this set.\n * @returns {lunr.Set} a new set that is the intersection of this and the specified set.\n */\n\nlunr.Set.prototype.intersect = function (other) {\n var a, b, elements, intersection = []\n\n if (other === lunr.Set.complete) {\n return this\n }\n\n if (other === lunr.Set.empty) {\n return other\n }\n\n if (this.length < other.length) {\n a = this\n b = other\n } else {\n a = other\n b = this\n }\n\n elements = Object.keys(a.elements)\n\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i]\n if (element in b.elements) {\n intersection.push(element)\n }\n }\n\n return new lunr.Set (intersection)\n}\n\n/**\n * Returns a new set combining the elements of this and the specified set.\n *\n * @param {lunr.Set} other - set to union with this set.\n * @return {lunr.Set} a new set that is the union of this and the specified set.\n */\n\nlunr.Set.prototype.union = function (other) {\n if (other === lunr.Set.complete) {\n return lunr.Set.complete\n }\n\n if (other === lunr.Set.empty) {\n return this\n }\n\n return new lunr.Set(Object.keys(this.elements).concat(Object.keys(other.elements)))\n}\n/**\n * A function to calculate the inverse document frequency for\n * a posting. This is shared between the builder and the index\n *\n * @private\n * @param {object} posting - The posting for a given term\n * @param {number} documentCount - The total number of documents.\n */\nlunr.idf = function (posting, documentCount) {\n var documentsWithTerm = 0\n\n for (var fieldName in posting) {\n if (fieldName == '_index') continue // Ignore the term index, its not a field\n documentsWithTerm += Object.keys(posting[fieldName]).length\n }\n\n var x = (documentCount - documentsWithTerm + 0.5) / (documentsWithTerm + 0.5)\n\n return Math.log(1 + Math.abs(x))\n}\n\n/**\n * A token wraps a string representation of a token\n * as it is passed through the text processing pipeline.\n *\n * @constructor\n * @param {string} [str=''] - The string token being wrapped.\n * @param {object} [metadata={}] - Metadata associated with this token.\n */\nlunr.Token = function (str, metadata) {\n this.str = str || \"\"\n this.metadata = metadata || {}\n}\n\n/**\n * Returns the token string that is being wrapped by this object.\n *\n * @returns {string}\n */\nlunr.Token.prototype.toString = function () {\n return this.str\n}\n\n/**\n * A token update function is used when updating or optionally\n * when cloning a token.\n *\n * @callback lunr.Token~updateFunction\n * @param {string} str - The string representation of the token.\n * @param {Object} metadata - All metadata associated with this token.\n */\n\n/**\n * Applies the given function to the wrapped string token.\n *\n * @example\n * token.update(function (str, metadata) {\n * return str.toUpperCase()\n * })\n *\n * @param {lunr.Token~updateFunction} fn - A function to apply to the token string.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.update = function (fn) {\n this.str = fn(this.str, this.metadata)\n return this\n}\n\n/**\n * Creates a clone of this token. Optionally a function can be\n * applied to the cloned token.\n *\n * @param {lunr.Token~updateFunction} [fn] - An optional function to apply to the cloned token.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.clone = function (fn) {\n fn = fn || function (s) { return s }\n return new lunr.Token (fn(this.str, this.metadata), this.metadata)\n}\n/*!\n * lunr.tokenizer\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A function for splitting a string into tokens ready to be inserted into\n * the search index. Uses `lunr.tokenizer.separator` to split strings, change\n * the value of this property to change how strings are split into tokens.\n *\n * This tokenizer will convert its parameter to a string by calling `toString` and\n * then will split this string on the character in `lunr.tokenizer.separator`.\n * Arrays will have their elements converted to strings and wrapped in a lunr.Token.\n *\n * Optional metadata can be passed to the tokenizer, this metadata will be cloned and\n * added as metadata to every token that is created from the object to be tokenized.\n *\n * @static\n * @param {?(string|object|object[])} obj - The object to convert into tokens\n * @param {?object} metadata - Optional metadata to associate with every token\n * @returns {lunr.Token[]}\n * @see {@link lunr.Pipeline}\n */\nlunr.tokenizer = function (obj, metadata) {\n if (obj == null || obj == undefined) {\n return []\n }\n\n if (Array.isArray(obj)) {\n return obj.map(function (t) {\n return new lunr.Token(\n lunr.utils.asString(t).toLowerCase(),\n lunr.utils.clone(metadata)\n )\n })\n }\n\n var str = obj.toString().toLowerCase(),\n len = str.length,\n tokens = []\n\n for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {\n var char = str.charAt(sliceEnd),\n sliceLength = sliceEnd - sliceStart\n\n if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) {\n\n if (sliceLength > 0) {\n var tokenMetadata = lunr.utils.clone(metadata) || {}\n tokenMetadata[\"position\"] = [sliceStart, sliceLength]\n tokenMetadata[\"index\"] = tokens.length\n\n tokens.push(\n new lunr.Token (\n str.slice(sliceStart, sliceEnd),\n tokenMetadata\n )\n )\n }\n\n sliceStart = sliceEnd + 1\n }\n\n }\n\n return tokens\n}\n\n/**\n * The separator used to split a string into tokens. Override this property to change the behaviour of\n * `lunr.tokenizer` behaviour when tokenizing strings. By default this splits on whitespace and hyphens.\n *\n * @static\n * @see lunr.tokenizer\n */\nlunr.tokenizer.separator = /[\\s\\-]+/\n/*!\n * lunr.Pipeline\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.Pipelines maintain an ordered list of functions to be applied to all\n * tokens in documents entering the search index and queries being ran against\n * the index.\n *\n * An instance of lunr.Index created with the lunr shortcut will contain a\n * pipeline with a stop word filter and an English language stemmer. Extra\n * functions can be added before or after either of these functions or these\n * default functions can be removed.\n *\n * When run the pipeline will call each function in turn, passing a token, the\n * index of that token in the original list of all tokens and finally a list of\n * all the original tokens.\n *\n * The output of functions in the pipeline will be passed to the next function\n * in the pipeline. To exclude a token from entering the index the function\n * should return undefined, the rest of the pipeline will not be called with\n * this token.\n *\n * For serialisation of pipelines to work, all functions used in an instance of\n * a pipeline should be registered with lunr.Pipeline. Registered functions can\n * then be loaded. If trying to load a serialised pipeline that uses functions\n * that are not registered an error will be thrown.\n *\n * If not planning on serialising the pipeline then registering pipeline functions\n * is not necessary.\n *\n * @constructor\n */\nlunr.Pipeline = function () {\n this._stack = []\n}\n\nlunr.Pipeline.registeredFunctions = Object.create(null)\n\n/**\n * A pipeline function maps lunr.Token to lunr.Token. A lunr.Token contains the token\n * string as well as all known metadata. A pipeline function can mutate the token string\n * or mutate (or add) metadata for a given token.\n *\n * A pipeline function can indicate that the passed token should be discarded by returning\n * null, undefined or an empty string. This token will not be passed to any downstream pipeline\n * functions and will not be added to the index.\n *\n * Multiple tokens can be returned by returning an array of tokens. Each token will be passed\n * to any downstream pipeline functions and all will returned tokens will be added to the index.\n *\n * Any number of pipeline functions may be chained together using a lunr.Pipeline.\n *\n * @interface lunr.PipelineFunction\n * @param {lunr.Token} token - A token from the document being processed.\n * @param {number} i - The index of this token in the complete list of tokens for this document/field.\n * @param {lunr.Token[]} tokens - All tokens for this document/field.\n * @returns {(?lunr.Token|lunr.Token[])}\n */\n\n/**\n * Register a function with the pipeline.\n *\n * Functions that are used in the pipeline should be registered if the pipeline\n * needs to be serialised, or a serialised pipeline needs to be loaded.\n *\n * Registering a function does not add it to a pipeline, functions must still be\n * added to instances of the pipeline for them to be used when running a pipeline.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @param {String} label - The label to register this function with\n */\nlunr.Pipeline.registerFunction = function (fn, label) {\n if (label in this.registeredFunctions) {\n lunr.utils.warn('Overwriting existing registered function: ' + label)\n }\n\n fn.label = label\n lunr.Pipeline.registeredFunctions[fn.label] = fn\n}\n\n/**\n * Warns if the function is not registered as a Pipeline function.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @private\n */\nlunr.Pipeline.warnIfFunctionNotRegistered = function (fn) {\n var isRegistered = fn.label && (fn.label in this.registeredFunctions)\n\n if (!isRegistered) {\n lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\\n', fn)\n }\n}\n\n/**\n * Loads a previously serialised pipeline.\n *\n * All functions to be loaded must already be registered with lunr.Pipeline.\n * If any function from the serialised data has not been registered then an\n * error will be thrown.\n *\n * @param {Object} serialised - The serialised pipeline to load.\n * @returns {lunr.Pipeline}\n */\nlunr.Pipeline.load = function (serialised) {\n var pipeline = new lunr.Pipeline\n\n serialised.forEach(function (fnName) {\n var fn = lunr.Pipeline.registeredFunctions[fnName]\n\n if (fn) {\n pipeline.add(fn)\n } else {\n throw new Error('Cannot load unregistered function: ' + fnName)\n }\n })\n\n return pipeline\n}\n\n/**\n * Adds new functions to the end of the pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction[]} functions - Any number of functions to add to the pipeline.\n */\nlunr.Pipeline.prototype.add = function () {\n var fns = Array.prototype.slice.call(arguments)\n\n fns.forEach(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n this._stack.push(fn)\n }, this)\n}\n\n/**\n * Adds a single function after a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.after = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n pos = pos + 1\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Adds a single function before a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.before = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Removes a function from the pipeline.\n *\n * @param {lunr.PipelineFunction} fn The function to remove from the pipeline.\n */\nlunr.Pipeline.prototype.remove = function (fn) {\n var pos = this._stack.indexOf(fn)\n if (pos == -1) {\n return\n }\n\n this._stack.splice(pos, 1)\n}\n\n/**\n * Runs the current list of functions that make up the pipeline against the\n * passed tokens.\n *\n * @param {Array} tokens The tokens to run through the pipeline.\n * @returns {Array}\n */\nlunr.Pipeline.prototype.run = function (tokens) {\n var stackLength = this._stack.length\n\n for (var i = 0; i < stackLength; i++) {\n var fn = this._stack[i]\n var memo = []\n\n for (var j = 0; j < tokens.length; j++) {\n var result = fn(tokens[j], j, tokens)\n\n if (result === null || result === void 0 || result === '') continue\n\n if (Array.isArray(result)) {\n for (var k = 0; k < result.length; k++) {\n memo.push(result[k])\n }\n } else {\n memo.push(result)\n }\n }\n\n tokens = memo\n }\n\n return tokens\n}\n\n/**\n * Convenience method for passing a string through a pipeline and getting\n * strings out. This method takes care of wrapping the passed string in a\n * token and mapping the resulting tokens back to strings.\n *\n * @param {string} str - The string to pass through the pipeline.\n * @param {?object} metadata - Optional metadata to associate with the token\n * passed to the pipeline.\n * @returns {string[]}\n */\nlunr.Pipeline.prototype.runString = function (str, metadata) {\n var token = new lunr.Token (str, metadata)\n\n return this.run([token]).map(function (t) {\n return t.toString()\n })\n}\n\n/**\n * Resets the pipeline by removing any existing processors.\n *\n */\nlunr.Pipeline.prototype.reset = function () {\n this._stack = []\n}\n\n/**\n * Returns a representation of the pipeline ready for serialisation.\n *\n * Logs a warning if the function has not been registered.\n *\n * @returns {Array}\n */\nlunr.Pipeline.prototype.toJSON = function () {\n return this._stack.map(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n\n return fn.label\n })\n}\n/*!\n * lunr.Vector\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A vector is used to construct the vector space of documents and queries. These\n * vectors support operations to determine the similarity between two documents or\n * a document and a query.\n *\n * Normally no parameters are required for initializing a vector, but in the case of\n * loading a previously dumped vector the raw elements can be provided to the constructor.\n *\n * For performance reasons vectors are implemented with a flat array, where an elements\n * index is immediately followed by its value. E.g. [index, value, index, value]. This\n * allows the underlying array to be as sparse as possible and still offer decent\n * performance when being used for vector calculations.\n *\n * @constructor\n * @param {Number[]} [elements] - The flat list of element index and element value pairs.\n */\nlunr.Vector = function (elements) {\n this._magnitude = 0\n this.elements = elements || []\n}\n\n\n/**\n * Calculates the position within the vector to insert a given index.\n *\n * This is used internally by insert and upsert. If there are duplicate indexes then\n * the position is returned as if the value for that index were to be updated, but it\n * is the callers responsibility to check whether there is a duplicate at that index\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @returns {Number}\n */\nlunr.Vector.prototype.positionForIndex = function (index) {\n // For an empty vector the tuple can be inserted at the beginning\n if (this.elements.length == 0) {\n return 0\n }\n\n var start = 0,\n end = this.elements.length / 2,\n sliceLength = end - start,\n pivotPoint = Math.floor(sliceLength / 2),\n pivotIndex = this.elements[pivotPoint * 2]\n\n while (sliceLength > 1) {\n if (pivotIndex < index) {\n start = pivotPoint\n }\n\n if (pivotIndex > index) {\n end = pivotPoint\n }\n\n if (pivotIndex == index) {\n break\n }\n\n sliceLength = end - start\n pivotPoint = start + Math.floor(sliceLength / 2)\n pivotIndex = this.elements[pivotPoint * 2]\n }\n\n if (pivotIndex == index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex > index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex < index) {\n return (pivotPoint + 1) * 2\n }\n}\n\n/**\n * Inserts an element at an index within the vector.\n *\n * Does not allow duplicates, will throw an error if there is already an entry\n * for this index.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n */\nlunr.Vector.prototype.insert = function (insertIdx, val) {\n this.upsert(insertIdx, val, function () {\n throw \"duplicate index\"\n })\n}\n\n/**\n * Inserts or updates an existing index within the vector.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n * @param {function} fn - A function that is called for updates, the existing value and the\n * requested value are passed as arguments\n */\nlunr.Vector.prototype.upsert = function (insertIdx, val, fn) {\n this._magnitude = 0\n var position = this.positionForIndex(insertIdx)\n\n if (this.elements[position] == insertIdx) {\n this.elements[position + 1] = fn(this.elements[position + 1], val)\n } else {\n this.elements.splice(position, 0, insertIdx, val)\n }\n}\n\n/**\n * Calculates the magnitude of this vector.\n *\n * @returns {Number}\n */\nlunr.Vector.prototype.magnitude = function () {\n if (this._magnitude) return this._magnitude\n\n var sumOfSquares = 0,\n elementsLength = this.elements.length\n\n for (var i = 1; i < elementsLength; i += 2) {\n var val = this.elements[i]\n sumOfSquares += val * val\n }\n\n return this._magnitude = Math.sqrt(sumOfSquares)\n}\n\n/**\n * Calculates the dot product of this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The vector to compute the dot product with.\n * @returns {Number}\n */\nlunr.Vector.prototype.dot = function (otherVector) {\n var dotProduct = 0,\n a = this.elements, b = otherVector.elements,\n aLen = a.length, bLen = b.length,\n aVal = 0, bVal = 0,\n i = 0, j = 0\n\n while (i < aLen && j < bLen) {\n aVal = a[i], bVal = b[j]\n if (aVal < bVal) {\n i += 2\n } else if (aVal > bVal) {\n j += 2\n } else if (aVal == bVal) {\n dotProduct += a[i + 1] * b[j + 1]\n i += 2\n j += 2\n }\n }\n\n return dotProduct\n}\n\n/**\n * Calculates the similarity between this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The other vector to calculate the\n * similarity with.\n * @returns {Number}\n */\nlunr.Vector.prototype.similarity = function (otherVector) {\n return this.dot(otherVector) / this.magnitude() || 0\n}\n\n/**\n * Converts the vector to an array of the elements within the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toArray = function () {\n var output = new Array (this.elements.length / 2)\n\n for (var i = 1, j = 0; i < this.elements.length; i += 2, j++) {\n output[j] = this.elements[i]\n }\n\n return output\n}\n\n/**\n * A JSON serializable representation of the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toJSON = function () {\n return this.elements\n}\n/* eslint-disable */\n/*!\n * lunr.stemmer\n * Copyright (C) 2019 Oliver Nightingale\n * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt\n */\n\n/**\n * lunr.stemmer is an english language stemmer, this is a JavaScript\n * implementation of the PorterStemmer taken from http://tartarus.org/~martin\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token - The string to stem\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n * @function\n */\nlunr.stemmer = (function(){\n var step2list = {\n \"ational\" : \"ate\",\n \"tional\" : \"tion\",\n \"enci\" : \"ence\",\n \"anci\" : \"ance\",\n \"izer\" : \"ize\",\n \"bli\" : \"ble\",\n \"alli\" : \"al\",\n \"entli\" : \"ent\",\n \"eli\" : \"e\",\n \"ousli\" : \"ous\",\n \"ization\" : \"ize\",\n \"ation\" : \"ate\",\n \"ator\" : \"ate\",\n \"alism\" : \"al\",\n \"iveness\" : \"ive\",\n \"fulness\" : \"ful\",\n \"ousness\" : \"ous\",\n \"aliti\" : \"al\",\n \"iviti\" : \"ive\",\n \"biliti\" : \"ble\",\n \"logi\" : \"log\"\n },\n\n step3list = {\n \"icate\" : \"ic\",\n \"ative\" : \"\",\n \"alize\" : \"al\",\n \"iciti\" : \"ic\",\n \"ical\" : \"ic\",\n \"ful\" : \"\",\n \"ness\" : \"\"\n },\n\n c = \"[^aeiou]\", // consonant\n v = \"[aeiouy]\", // vowel\n C = c + \"[^aeiouy]*\", // consonant sequence\n V = v + \"[aeiou]*\", // vowel sequence\n\n mgr0 = \"^(\" + C + \")?\" + V + C, // [C]VC... is m>0\n meq1 = \"^(\" + C + \")?\" + V + C + \"(\" + V + \")?$\", // [C]VC[V] is m=1\n mgr1 = \"^(\" + C + \")?\" + V + C + V + C, // [C]VCVC... is m>1\n s_v = \"^(\" + C + \")?\" + v; // vowel in stem\n\n var re_mgr0 = new RegExp(mgr0);\n var re_mgr1 = new RegExp(mgr1);\n var re_meq1 = new RegExp(meq1);\n var re_s_v = new RegExp(s_v);\n\n var re_1a = /^(.+?)(ss|i)es$/;\n var re2_1a = /^(.+?)([^s])s$/;\n var re_1b = /^(.+?)eed$/;\n var re2_1b = /^(.+?)(ed|ing)$/;\n var re_1b_2 = /.$/;\n var re2_1b_2 = /(at|bl|iz)$/;\n var re3_1b_2 = new RegExp(\"([^aeiouylsz])\\\\1$\");\n var re4_1b_2 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var re_1c = /^(.+?[^aeiou])y$/;\n var re_2 = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;\n\n var re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;\n\n var re_4 = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;\n var re2_4 = /^(.+?)(s|t)(ion)$/;\n\n var re_5 = /^(.+?)e$/;\n var re_5_1 = /ll$/;\n var re3_5 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var porterStemmer = function porterStemmer(w) {\n var stem,\n suffix,\n firstch,\n re,\n re2,\n re3,\n re4;\n\n if (w.length < 3) { return w; }\n\n firstch = w.substr(0,1);\n if (firstch == \"y\") {\n w = firstch.toUpperCase() + w.substr(1);\n }\n\n // Step 1a\n re = re_1a\n re2 = re2_1a;\n\n if (re.test(w)) { w = w.replace(re,\"$1$2\"); }\n else if (re2.test(w)) { w = w.replace(re2,\"$1$2\"); }\n\n // Step 1b\n re = re_1b;\n re2 = re2_1b;\n if (re.test(w)) {\n var fp = re.exec(w);\n re = re_mgr0;\n if (re.test(fp[1])) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1];\n re2 = re_s_v;\n if (re2.test(stem)) {\n w = stem;\n re2 = re2_1b_2;\n re3 = re3_1b_2;\n re4 = re4_1b_2;\n if (re2.test(w)) { w = w + \"e\"; }\n else if (re3.test(w)) { re = re_1b_2; w = w.replace(re,\"\"); }\n else if (re4.test(w)) { w = w + \"e\"; }\n }\n }\n\n // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say)\n re = re_1c;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n w = stem + \"i\";\n }\n\n // Step 2\n re = re_2;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step2list[suffix];\n }\n }\n\n // Step 3\n re = re_3;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step3list[suffix];\n }\n }\n\n // Step 4\n re = re_4;\n re2 = re2_4;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n if (re.test(stem)) {\n w = stem;\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1] + fp[2];\n re2 = re_mgr1;\n if (re2.test(stem)) {\n w = stem;\n }\n }\n\n // Step 5\n re = re_5;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n re2 = re_meq1;\n re3 = re3_5;\n if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {\n w = stem;\n }\n }\n\n re = re_5_1;\n re2 = re_mgr1;\n if (re.test(w) && re2.test(w)) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n\n // and turn initial Y back to y\n\n if (firstch == \"y\") {\n w = firstch.toLowerCase() + w.substr(1);\n }\n\n return w;\n };\n\n return function (token) {\n return token.update(porterStemmer);\n }\n})();\n\nlunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer')\n/*!\n * lunr.stopWordFilter\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.generateStopWordFilter builds a stopWordFilter function from the provided\n * list of stop words.\n *\n * The built in lunr.stopWordFilter is built using this generator and can be used\n * to generate custom stopWordFilters for applications or non English languages.\n *\n * @function\n * @param {Array} token The token to pass through the filter\n * @returns {lunr.PipelineFunction}\n * @see lunr.Pipeline\n * @see lunr.stopWordFilter\n */\nlunr.generateStopWordFilter = function (stopWords) {\n var words = stopWords.reduce(function (memo, stopWord) {\n memo[stopWord] = stopWord\n return memo\n }, {})\n\n return function (token) {\n if (token && words[token.toString()] !== token.toString()) return token\n }\n}\n\n/**\n * lunr.stopWordFilter is an English language stop word list filter, any words\n * contained in the list will not be passed through the filter.\n *\n * This is intended to be used in the Pipeline. If the token does not pass the\n * filter then undefined will be returned.\n *\n * @function\n * @implements {lunr.PipelineFunction}\n * @params {lunr.Token} token - A token to check for being a stop word.\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n */\nlunr.stopWordFilter = lunr.generateStopWordFilter([\n 'a',\n 'able',\n 'about',\n 'across',\n 'after',\n 'all',\n 'almost',\n 'also',\n 'am',\n 'among',\n 'an',\n 'and',\n 'any',\n 'are',\n 'as',\n 'at',\n 'be',\n 'because',\n 'been',\n 'but',\n 'by',\n 'can',\n 'cannot',\n 'could',\n 'dear',\n 'did',\n 'do',\n 'does',\n 'either',\n 'else',\n 'ever',\n 'every',\n 'for',\n 'from',\n 'get',\n 'got',\n 'had',\n 'has',\n 'have',\n 'he',\n 'her',\n 'hers',\n 'him',\n 'his',\n 'how',\n 'however',\n 'i',\n 'if',\n 'in',\n 'into',\n 'is',\n 'it',\n 'its',\n 'just',\n 'least',\n 'let',\n 'like',\n 'likely',\n 'may',\n 'me',\n 'might',\n 'most',\n 'must',\n 'my',\n 'neither',\n 'no',\n 'nor',\n 'not',\n 'of',\n 'off',\n 'often',\n 'on',\n 'only',\n 'or',\n 'other',\n 'our',\n 'own',\n 'rather',\n 'said',\n 'say',\n 'says',\n 'she',\n 'should',\n 'since',\n 'so',\n 'some',\n 'than',\n 'that',\n 'the',\n 'their',\n 'them',\n 'then',\n 'there',\n 'these',\n 'they',\n 'this',\n 'tis',\n 'to',\n 'too',\n 'twas',\n 'us',\n 'wants',\n 'was',\n 'we',\n 'were',\n 'what',\n 'when',\n 'where',\n 'which',\n 'while',\n 'who',\n 'whom',\n 'why',\n 'will',\n 'with',\n 'would',\n 'yet',\n 'you',\n 'your'\n])\n\nlunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter')\n/*!\n * lunr.trimmer\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.trimmer is a pipeline function for trimming non word\n * characters from the beginning and end of tokens before they\n * enter the index.\n *\n * This implementation may not work correctly for non latin\n * characters and should either be removed or adapted for use\n * with languages with non-latin characters.\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token The token to pass through the filter\n * @returns {lunr.Token}\n * @see lunr.Pipeline\n */\nlunr.trimmer = function (token) {\n return token.update(function (s) {\n return s.replace(/^\\W+/, '').replace(/\\W+$/, '')\n })\n}\n\nlunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer')\n/*!\n * lunr.TokenSet\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A token set is used to store the unique list of all tokens\n * within an index. Token sets are also used to represent an\n * incoming query to the index, this query token set and index\n * token set are then intersected to find which tokens to look\n * up in the inverted index.\n *\n * A token set can hold multiple tokens, as in the case of the\n * index token set, or it can hold a single token as in the\n * case of a simple query token set.\n *\n * Additionally token sets are used to perform wildcard matching.\n * Leading, contained and trailing wildcards are supported, and\n * from this edit distance matching can also be provided.\n *\n * Token sets are implemented as a minimal finite state automata,\n * where both common prefixes and suffixes are shared between tokens.\n * This helps to reduce the space used for storing the token set.\n *\n * @constructor\n */\nlunr.TokenSet = function () {\n this.final = false\n this.edges = {}\n this.id = lunr.TokenSet._nextId\n lunr.TokenSet._nextId += 1\n}\n\n/**\n * Keeps track of the next, auto increment, identifier to assign\n * to a new tokenSet.\n *\n * TokenSets require a unique identifier to be correctly minimised.\n *\n * @private\n */\nlunr.TokenSet._nextId = 1\n\n/**\n * Creates a TokenSet instance from the given sorted array of words.\n *\n * @param {String[]} arr - A sorted array of strings to create the set from.\n * @returns {lunr.TokenSet}\n * @throws Will throw an error if the input array is not sorted.\n */\nlunr.TokenSet.fromArray = function (arr) {\n var builder = new lunr.TokenSet.Builder\n\n for (var i = 0, len = arr.length; i < len; i++) {\n builder.insert(arr[i])\n }\n\n builder.finish()\n return builder.root\n}\n\n/**\n * Creates a token set from a query clause.\n *\n * @private\n * @param {Object} clause - A single clause from lunr.Query.\n * @param {string} clause.term - The query clause term.\n * @param {number} [clause.editDistance] - The optional edit distance for the term.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromClause = function (clause) {\n if ('editDistance' in clause) {\n return lunr.TokenSet.fromFuzzyString(clause.term, clause.editDistance)\n } else {\n return lunr.TokenSet.fromString(clause.term)\n }\n}\n\n/**\n * Creates a token set representing a single string with a specified\n * edit distance.\n *\n * Insertions, deletions, substitutions and transpositions are each\n * treated as an edit distance of 1.\n *\n * Increasing the allowed edit distance will have a dramatic impact\n * on the performance of both creating and intersecting these TokenSets.\n * It is advised to keep the edit distance less than 3.\n *\n * @param {string} str - The string to create the token set from.\n * @param {number} editDistance - The allowed edit distance to match.\n * @returns {lunr.Vector}\n */\nlunr.TokenSet.fromFuzzyString = function (str, editDistance) {\n var root = new lunr.TokenSet\n\n var stack = [{\n node: root,\n editsRemaining: editDistance,\n str: str\n }]\n\n while (stack.length) {\n var frame = stack.pop()\n\n // no edit\n if (frame.str.length > 0) {\n var char = frame.str.charAt(0),\n noEditNode\n\n if (char in frame.node.edges) {\n noEditNode = frame.node.edges[char]\n } else {\n noEditNode = new lunr.TokenSet\n frame.node.edges[char] = noEditNode\n }\n\n if (frame.str.length == 1) {\n noEditNode.final = true\n }\n\n stack.push({\n node: noEditNode,\n editsRemaining: frame.editsRemaining,\n str: frame.str.slice(1)\n })\n }\n\n if (frame.editsRemaining == 0) {\n continue\n }\n\n // insertion\n if (\"*\" in frame.node.edges) {\n var insertionNode = frame.node.edges[\"*\"]\n } else {\n var insertionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = insertionNode\n }\n\n if (frame.str.length == 0) {\n insertionNode.final = true\n }\n\n stack.push({\n node: insertionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str\n })\n\n // deletion\n // can only do a deletion if we have enough edits remaining\n // and if there are characters left to delete in the string\n if (frame.str.length > 1) {\n stack.push({\n node: frame.node,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // deletion\n // just removing the last character from the str\n if (frame.str.length == 1) {\n frame.node.final = true\n }\n\n // substitution\n // can only do a substitution if we have enough edits remaining\n // and if there are characters left to substitute\n if (frame.str.length >= 1) {\n if (\"*\" in frame.node.edges) {\n var substitutionNode = frame.node.edges[\"*\"]\n } else {\n var substitutionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = substitutionNode\n }\n\n if (frame.str.length == 1) {\n substitutionNode.final = true\n }\n\n stack.push({\n node: substitutionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // transposition\n // can only do a transposition if there are edits remaining\n // and there are enough characters to transpose\n if (frame.str.length > 1) {\n var charA = frame.str.charAt(0),\n charB = frame.str.charAt(1),\n transposeNode\n\n if (charB in frame.node.edges) {\n transposeNode = frame.node.edges[charB]\n } else {\n transposeNode = new lunr.TokenSet\n frame.node.edges[charB] = transposeNode\n }\n\n if (frame.str.length == 1) {\n transposeNode.final = true\n }\n\n stack.push({\n node: transposeNode,\n editsRemaining: frame.editsRemaining - 1,\n str: charA + frame.str.slice(2)\n })\n }\n }\n\n return root\n}\n\n/**\n * Creates a TokenSet from a string.\n *\n * The string may contain one or more wildcard characters (*)\n * that will allow wildcard matching when intersecting with\n * another TokenSet.\n *\n * @param {string} str - The string to create a TokenSet from.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromString = function (str) {\n var node = new lunr.TokenSet,\n root = node\n\n /*\n * Iterates through all characters within the passed string\n * appending a node for each character.\n *\n * When a wildcard character is found then a self\n * referencing edge is introduced to continually match\n * any number of any characters.\n */\n for (var i = 0, len = str.length; i < len; i++) {\n var char = str[i],\n final = (i == len - 1)\n\n if (char == \"*\") {\n node.edges[char] = node\n node.final = final\n\n } else {\n var next = new lunr.TokenSet\n next.final = final\n\n node.edges[char] = next\n node = next\n }\n }\n\n return root\n}\n\n/**\n * Converts this TokenSet into an array of strings\n * contained within the TokenSet.\n *\n * This is not intended to be used on a TokenSet that\n * contains wildcards, in these cases the results are\n * undefined and are likely to cause an infinite loop.\n *\n * @returns {string[]}\n */\nlunr.TokenSet.prototype.toArray = function () {\n var words = []\n\n var stack = [{\n prefix: \"\",\n node: this\n }]\n\n while (stack.length) {\n var frame = stack.pop(),\n edges = Object.keys(frame.node.edges),\n len = edges.length\n\n if (frame.node.final) {\n /* In Safari, at this point the prefix is sometimes corrupted, see:\n * https://github.com/olivernn/lunr.js/issues/279 Calling any\n * String.prototype method forces Safari to \"cast\" this string to what\n * it's supposed to be, fixing the bug. */\n frame.prefix.charAt(0)\n words.push(frame.prefix)\n }\n\n for (var i = 0; i < len; i++) {\n var edge = edges[i]\n\n stack.push({\n prefix: frame.prefix.concat(edge),\n node: frame.node.edges[edge]\n })\n }\n }\n\n return words\n}\n\n/**\n * Generates a string representation of a TokenSet.\n *\n * This is intended to allow TokenSets to be used as keys\n * in objects, largely to aid the construction and minimisation\n * of a TokenSet. As such it is not designed to be a human\n * friendly representation of the TokenSet.\n *\n * @returns {string}\n */\nlunr.TokenSet.prototype.toString = function () {\n // NOTE: Using Object.keys here as this.edges is very likely\n // to enter 'hash-mode' with many keys being added\n //\n // avoiding a for-in loop here as it leads to the function\n // being de-optimised (at least in V8). From some simple\n // benchmarks the performance is comparable, but allowing\n // V8 to optimize may mean easy performance wins in the future.\n\n if (this._str) {\n return this._str\n }\n\n var str = this.final ? '1' : '0',\n labels = Object.keys(this.edges).sort(),\n len = labels.length\n\n for (var i = 0; i < len; i++) {\n var label = labels[i],\n node = this.edges[label]\n\n str = str + label + node.id\n }\n\n return str\n}\n\n/**\n * Returns a new TokenSet that is the intersection of\n * this TokenSet and the passed TokenSet.\n *\n * This intersection will take into account any wildcards\n * contained within the TokenSet.\n *\n * @param {lunr.TokenSet} b - An other TokenSet to intersect with.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.prototype.intersect = function (b) {\n var output = new lunr.TokenSet,\n frame = undefined\n\n var stack = [{\n qNode: b,\n output: output,\n node: this\n }]\n\n while (stack.length) {\n frame = stack.pop()\n\n // NOTE: As with the #toString method, we are using\n // Object.keys and a for loop instead of a for-in loop\n // as both of these objects enter 'hash' mode, causing\n // the function to be de-optimised in V8\n var qEdges = Object.keys(frame.qNode.edges),\n qLen = qEdges.length,\n nEdges = Object.keys(frame.node.edges),\n nLen = nEdges.length\n\n for (var q = 0; q < qLen; q++) {\n var qEdge = qEdges[q]\n\n for (var n = 0; n < nLen; n++) {\n var nEdge = nEdges[n]\n\n if (nEdge == qEdge || qEdge == '*') {\n var node = frame.node.edges[nEdge],\n qNode = frame.qNode.edges[qEdge],\n final = node.final && qNode.final,\n next = undefined\n\n if (nEdge in frame.output.edges) {\n // an edge already exists for this character\n // no need to create a new node, just set the finality\n // bit unless this node is already final\n next = frame.output.edges[nEdge]\n next.final = next.final || final\n\n } else {\n // no edge exists yet, must create one\n // set the finality bit and insert it\n // into the output\n next = new lunr.TokenSet\n next.final = final\n frame.output.edges[nEdge] = next\n }\n\n stack.push({\n qNode: qNode,\n output: next,\n node: node\n })\n }\n }\n }\n }\n\n return output\n}\nlunr.TokenSet.Builder = function () {\n this.previousWord = \"\"\n this.root = new lunr.TokenSet\n this.uncheckedNodes = []\n this.minimizedNodes = {}\n}\n\nlunr.TokenSet.Builder.prototype.insert = function (word) {\n var node,\n commonPrefix = 0\n\n if (word < this.previousWord) {\n throw new Error (\"Out of order word insertion\")\n }\n\n for (var i = 0; i < word.length && i < this.previousWord.length; i++) {\n if (word[i] != this.previousWord[i]) break\n commonPrefix++\n }\n\n this.minimize(commonPrefix)\n\n if (this.uncheckedNodes.length == 0) {\n node = this.root\n } else {\n node = this.uncheckedNodes[this.uncheckedNodes.length - 1].child\n }\n\n for (var i = commonPrefix; i < word.length; i++) {\n var nextNode = new lunr.TokenSet,\n char = word[i]\n\n node.edges[char] = nextNode\n\n this.uncheckedNodes.push({\n parent: node,\n char: char,\n child: nextNode\n })\n\n node = nextNode\n }\n\n node.final = true\n this.previousWord = word\n}\n\nlunr.TokenSet.Builder.prototype.finish = function () {\n this.minimize(0)\n}\n\nlunr.TokenSet.Builder.prototype.minimize = function (downTo) {\n for (var i = this.uncheckedNodes.length - 1; i >= downTo; i--) {\n var node = this.uncheckedNodes[i],\n childKey = node.child.toString()\n\n if (childKey in this.minimizedNodes) {\n node.parent.edges[node.char] = this.minimizedNodes[childKey]\n } else {\n // Cache the key for this node since\n // we know it can't change anymore\n node.child._str = childKey\n\n this.minimizedNodes[childKey] = node.child\n }\n\n this.uncheckedNodes.pop()\n }\n}\n/*!\n * lunr.Index\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * An index contains the built index of all documents and provides a query interface\n * to the index.\n *\n * Usually instances of lunr.Index will not be created using this constructor, instead\n * lunr.Builder should be used to construct new indexes, or lunr.Index.load should be\n * used to load previously built and serialized indexes.\n *\n * @constructor\n * @param {Object} attrs - The attributes of the built search index.\n * @param {Object} attrs.invertedIndex - An index of term/field to document reference.\n * @param {Object} attrs.fieldVectors - Field vectors\n * @param {lunr.TokenSet} attrs.tokenSet - An set of all corpus tokens.\n * @param {string[]} attrs.fields - The names of indexed document fields.\n * @param {lunr.Pipeline} attrs.pipeline - The pipeline to use for search terms.\n */\nlunr.Index = function (attrs) {\n this.invertedIndex = attrs.invertedIndex\n this.fieldVectors = attrs.fieldVectors\n this.tokenSet = attrs.tokenSet\n this.fields = attrs.fields\n this.pipeline = attrs.pipeline\n}\n\n/**\n * A result contains details of a document matching a search query.\n * @typedef {Object} lunr.Index~Result\n * @property {string} ref - The reference of the document this result represents.\n * @property {number} score - A number between 0 and 1 representing how similar this document is to the query.\n * @property {lunr.MatchData} matchData - Contains metadata about this match including which term(s) caused the match.\n */\n\n/**\n * Although lunr provides the ability to create queries using lunr.Query, it also provides a simple\n * query language which itself is parsed into an instance of lunr.Query.\n *\n * For programmatically building queries it is advised to directly use lunr.Query, the query language\n * is best used for human entered text rather than program generated text.\n *\n * At its simplest queries can just be a single term, e.g. `hello`, multiple terms are also supported\n * and will be combined with OR, e.g `hello world` will match documents that contain either 'hello'\n * or 'world', though those that contain both will rank higher in the results.\n *\n * Wildcards can be included in terms to match one or more unspecified characters, these wildcards can\n * be inserted anywhere within the term, and more than one wildcard can exist in a single term. Adding\n * wildcards will increase the number of documents that will be found but can also have a negative\n * impact on query performance, especially with wildcards at the beginning of a term.\n *\n * Terms can be restricted to specific fields, e.g. `title:hello`, only documents with the term\n * hello in the title field will match this query. Using a field not present in the index will lead\n * to an error being thrown.\n *\n * Modifiers can also be added to terms, lunr supports edit distance and boost modifiers on terms. A term\n * boost will make documents matching that term score higher, e.g. `foo^5`. Edit distance is also supported\n * to provide fuzzy matching, e.g. 'hello~2' will match documents with hello with an edit distance of 2.\n * Avoid large values for edit distance to improve query performance.\n *\n * Each term also supports a presence modifier. By default a term's presence in document is optional, however\n * this can be changed to either required or prohibited. For a term's presence to be required in a document the\n * term should be prefixed with a '+', e.g. `+foo bar` is a search for documents that must contain 'foo' and\n * optionally contain 'bar'. Conversely a leading '-' sets the terms presence to prohibited, i.e. it must not\n * appear in a document, e.g. `-foo bar` is a search for documents that do not contain 'foo' but may contain 'bar'.\n *\n * To escape special characters the backslash character '\\' can be used, this allows searches to include\n * characters that would normally be considered modifiers, e.g. `foo\\~2` will search for a term \"foo~2\" instead\n * of attempting to apply a boost of 2 to the search term \"foo\".\n *\n * @typedef {string} lunr.Index~QueryString\n * @example Simple single term query\n * hello\n * @example Multiple term query\n * hello world\n * @example term scoped to a field\n * title:hello\n * @example term with a boost of 10\n * hello^10\n * @example term with an edit distance of 2\n * hello~2\n * @example terms with presence modifiers\n * -foo +bar baz\n */\n\n/**\n * Performs a search against the index using lunr query syntax.\n *\n * Results will be returned sorted by their score, the most relevant results\n * will be returned first. For details on how the score is calculated, please see\n * the {@link https://lunrjs.com/guides/searching.html#scoring|guide}.\n *\n * For more programmatic querying use lunr.Index#query.\n *\n * @param {lunr.Index~QueryString} queryString - A string containing a lunr query.\n * @throws {lunr.QueryParseError} If the passed query string cannot be parsed.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.search = function (queryString) {\n return this.query(function (query) {\n var parser = new lunr.QueryParser(queryString, query)\n parser.parse()\n })\n}\n\n/**\n * A query builder callback provides a query object to be used to express\n * the query to perform on the index.\n *\n * @callback lunr.Index~queryBuilder\n * @param {lunr.Query} query - The query object to build up.\n * @this lunr.Query\n */\n\n/**\n * Performs a query against the index using the yielded lunr.Query object.\n *\n * If performing programmatic queries against the index, this method is preferred\n * over lunr.Index#search so as to avoid the additional query parsing overhead.\n *\n * A query object is yielded to the supplied function which should be used to\n * express the query to be run against the index.\n *\n * Note that although this function takes a callback parameter it is _not_ an\n * asynchronous operation, the callback is just yielded a query object to be\n * customized.\n *\n * @param {lunr.Index~queryBuilder} fn - A function that is used to build the query.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.query = function (fn) {\n // for each query clause\n // * process terms\n // * expand terms from token set\n // * find matching documents and metadata\n // * get document vectors\n // * score documents\n\n var query = new lunr.Query(this.fields),\n matchingFields = Object.create(null),\n queryVectors = Object.create(null),\n termFieldCache = Object.create(null),\n requiredMatches = Object.create(null),\n prohibitedMatches = Object.create(null)\n\n /*\n * To support field level boosts a query vector is created per\n * field. An empty vector is eagerly created to support negated\n * queries.\n */\n for (var i = 0; i < this.fields.length; i++) {\n queryVectors[this.fields[i]] = new lunr.Vector\n }\n\n fn.call(query, query)\n\n for (var i = 0; i < query.clauses.length; i++) {\n /*\n * Unless the pipeline has been disabled for this term, which is\n * the case for terms with wildcards, we need to pass the clause\n * term through the search pipeline. A pipeline returns an array\n * of processed terms. Pipeline functions may expand the passed\n * term, which means we may end up performing multiple index lookups\n * for a single query term.\n */\n var clause = query.clauses[i],\n terms = null,\n clauseMatches = lunr.Set.complete\n\n if (clause.usePipeline) {\n terms = this.pipeline.runString(clause.term, {\n fields: clause.fields\n })\n } else {\n terms = [clause.term]\n }\n\n for (var m = 0; m < terms.length; m++) {\n var term = terms[m]\n\n /*\n * Each term returned from the pipeline needs to use the same query\n * clause object, e.g. the same boost and or edit distance. The\n * simplest way to do this is to re-use the clause object but mutate\n * its term property.\n */\n clause.term = term\n\n /*\n * From the term in the clause we create a token set which will then\n * be used to intersect the indexes token set to get a list of terms\n * to lookup in the inverted index\n */\n var termTokenSet = lunr.TokenSet.fromClause(clause),\n expandedTerms = this.tokenSet.intersect(termTokenSet).toArray()\n\n /*\n * If a term marked as required does not exist in the tokenSet it is\n * impossible for the search to return any matches. We set all the field\n * scoped required matches set to empty and stop examining any further\n * clauses.\n */\n if (expandedTerms.length === 0 && clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = lunr.Set.empty\n }\n\n break\n }\n\n for (var j = 0; j < expandedTerms.length; j++) {\n /*\n * For each term get the posting and termIndex, this is required for\n * building the query vector.\n */\n var expandedTerm = expandedTerms[j],\n posting = this.invertedIndex[expandedTerm],\n termIndex = posting._index\n\n for (var k = 0; k < clause.fields.length; k++) {\n /*\n * For each field that this query term is scoped by (by default\n * all fields are in scope) we need to get all the document refs\n * that have this term in that field.\n *\n * The posting is the entry in the invertedIndex for the matching\n * term from above.\n */\n var field = clause.fields[k],\n fieldPosting = posting[field],\n matchingDocumentRefs = Object.keys(fieldPosting),\n termField = expandedTerm + \"/\" + field,\n matchingDocumentsSet = new lunr.Set(matchingDocumentRefs)\n\n /*\n * if the presence of this term is required ensure that the matching\n * documents are added to the set of required matches for this clause.\n *\n */\n if (clause.presence == lunr.Query.presence.REQUIRED) {\n clauseMatches = clauseMatches.union(matchingDocumentsSet)\n\n if (requiredMatches[field] === undefined) {\n requiredMatches[field] = lunr.Set.complete\n }\n }\n\n /*\n * if the presence of this term is prohibited ensure that the matching\n * documents are added to the set of prohibited matches for this field,\n * creating that set if it does not yet exist.\n */\n if (clause.presence == lunr.Query.presence.PROHIBITED) {\n if (prohibitedMatches[field] === undefined) {\n prohibitedMatches[field] = lunr.Set.empty\n }\n\n prohibitedMatches[field] = prohibitedMatches[field].union(matchingDocumentsSet)\n\n /*\n * Prohibited matches should not be part of the query vector used for\n * similarity scoring and no metadata should be extracted so we continue\n * to the next field\n */\n continue\n }\n\n /*\n * The query field vector is populated using the termIndex found for\n * the term and a unit value with the appropriate boost applied.\n * Using upsert because there could already be an entry in the vector\n * for the term we are working with. In that case we just add the scores\n * together.\n */\n queryVectors[field].upsert(termIndex, clause.boost, function (a, b) { return a + b })\n\n /**\n * If we've already seen this term, field combo then we've already collected\n * the matching documents and metadata, no need to go through all that again\n */\n if (termFieldCache[termField]) {\n continue\n }\n\n for (var l = 0; l < matchingDocumentRefs.length; l++) {\n /*\n * All metadata for this term/field/document triple\n * are then extracted and collected into an instance\n * of lunr.MatchData ready to be returned in the query\n * results\n */\n var matchingDocumentRef = matchingDocumentRefs[l],\n matchingFieldRef = new lunr.FieldRef (matchingDocumentRef, field),\n metadata = fieldPosting[matchingDocumentRef],\n fieldMatch\n\n if ((fieldMatch = matchingFields[matchingFieldRef]) === undefined) {\n matchingFields[matchingFieldRef] = new lunr.MatchData (expandedTerm, field, metadata)\n } else {\n fieldMatch.add(expandedTerm, field, metadata)\n }\n\n }\n\n termFieldCache[termField] = true\n }\n }\n }\n\n /**\n * If the presence was required we need to update the requiredMatches field sets.\n * We do this after all fields for the term have collected their matches because\n * the clause terms presence is required in _any_ of the fields not _all_ of the\n * fields.\n */\n if (clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = requiredMatches[field].intersect(clauseMatches)\n }\n }\n }\n\n /**\n * Need to combine the field scoped required and prohibited\n * matching documents into a global set of required and prohibited\n * matches\n */\n var allRequiredMatches = lunr.Set.complete,\n allProhibitedMatches = lunr.Set.empty\n\n for (var i = 0; i < this.fields.length; i++) {\n var field = this.fields[i]\n\n if (requiredMatches[field]) {\n allRequiredMatches = allRequiredMatches.intersect(requiredMatches[field])\n }\n\n if (prohibitedMatches[field]) {\n allProhibitedMatches = allProhibitedMatches.union(prohibitedMatches[field])\n }\n }\n\n var matchingFieldRefs = Object.keys(matchingFields),\n results = [],\n matches = Object.create(null)\n\n /*\n * If the query is negated (contains only prohibited terms)\n * we need to get _all_ fieldRefs currently existing in the\n * index. This is only done when we know that the query is\n * entirely prohibited terms to avoid any cost of getting all\n * fieldRefs unnecessarily.\n *\n * Additionally, blank MatchData must be created to correctly\n * populate the results.\n */\n if (query.isNegated()) {\n matchingFieldRefs = Object.keys(this.fieldVectors)\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n var matchingFieldRef = matchingFieldRefs[i]\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRef)\n matchingFields[matchingFieldRef] = new lunr.MatchData\n }\n }\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n /*\n * Currently we have document fields that match the query, but we\n * need to return documents. The matchData and scores are combined\n * from multiple fields belonging to the same document.\n *\n * Scores are calculated by field, using the query vectors created\n * above, and combined into a final document score using addition.\n */\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRefs[i]),\n docRef = fieldRef.docRef\n\n if (!allRequiredMatches.contains(docRef)) {\n continue\n }\n\n if (allProhibitedMatches.contains(docRef)) {\n continue\n }\n\n var fieldVector = this.fieldVectors[fieldRef],\n score = queryVectors[fieldRef.fieldName].similarity(fieldVector),\n docMatch\n\n if ((docMatch = matches[docRef]) !== undefined) {\n docMatch.score += score\n docMatch.matchData.combine(matchingFields[fieldRef])\n } else {\n var match = {\n ref: docRef,\n score: score,\n matchData: matchingFields[fieldRef]\n }\n matches[docRef] = match\n results.push(match)\n }\n }\n\n /*\n * Sort the results objects by score, highest first.\n */\n return results.sort(function (a, b) {\n return b.score - a.score\n })\n}\n\n/**\n * Prepares the index for JSON serialization.\n *\n * The schema for this JSON blob will be described in a\n * separate JSON schema file.\n *\n * @returns {Object}\n */\nlunr.Index.prototype.toJSON = function () {\n var invertedIndex = Object.keys(this.invertedIndex)\n .sort()\n .map(function (term) {\n return [term, this.invertedIndex[term]]\n }, this)\n\n var fieldVectors = Object.keys(this.fieldVectors)\n .map(function (ref) {\n return [ref, this.fieldVectors[ref].toJSON()]\n }, this)\n\n return {\n version: lunr.version,\n fields: this.fields,\n fieldVectors: fieldVectors,\n invertedIndex: invertedIndex,\n pipeline: this.pipeline.toJSON()\n }\n}\n\n/**\n * Loads a previously serialized lunr.Index\n *\n * @param {Object} serializedIndex - A previously serialized lunr.Index\n * @returns {lunr.Index}\n */\nlunr.Index.load = function (serializedIndex) {\n var attrs = {},\n fieldVectors = {},\n serializedVectors = serializedIndex.fieldVectors,\n invertedIndex = Object.create(null),\n serializedInvertedIndex = serializedIndex.invertedIndex,\n tokenSetBuilder = new lunr.TokenSet.Builder,\n pipeline = lunr.Pipeline.load(serializedIndex.pipeline)\n\n if (serializedIndex.version != lunr.version) {\n lunr.utils.warn(\"Version mismatch when loading serialised index. Current version of lunr '\" + lunr.version + \"' does not match serialized index '\" + serializedIndex.version + \"'\")\n }\n\n for (var i = 0; i < serializedVectors.length; i++) {\n var tuple = serializedVectors[i],\n ref = tuple[0],\n elements = tuple[1]\n\n fieldVectors[ref] = new lunr.Vector(elements)\n }\n\n for (var i = 0; i < serializedInvertedIndex.length; i++) {\n var tuple = serializedInvertedIndex[i],\n term = tuple[0],\n posting = tuple[1]\n\n tokenSetBuilder.insert(term)\n invertedIndex[term] = posting\n }\n\n tokenSetBuilder.finish()\n\n attrs.fields = serializedIndex.fields\n\n attrs.fieldVectors = fieldVectors\n attrs.invertedIndex = invertedIndex\n attrs.tokenSet = tokenSetBuilder.root\n attrs.pipeline = pipeline\n\n return new lunr.Index(attrs)\n}\n/*!\n * lunr.Builder\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.Builder performs indexing on a set of documents and\n * returns instances of lunr.Index ready for querying.\n *\n * All configuration of the index is done via the builder, the\n * fields to index, the document reference, the text processing\n * pipeline and document scoring parameters are all set on the\n * builder before indexing.\n *\n * @constructor\n * @property {string} _ref - Internal reference to the document reference field.\n * @property {string[]} _fields - Internal reference to the document fields to index.\n * @property {object} invertedIndex - The inverted index maps terms to document fields.\n * @property {object} documentTermFrequencies - Keeps track of document term frequencies.\n * @property {object} documentLengths - Keeps track of the length of documents added to the index.\n * @property {lunr.tokenizer} tokenizer - Function for splitting strings into tokens for indexing.\n * @property {lunr.Pipeline} pipeline - The pipeline performs text processing on tokens before indexing.\n * @property {lunr.Pipeline} searchPipeline - A pipeline for processing search terms before querying the index.\n * @property {number} documentCount - Keeps track of the total number of documents indexed.\n * @property {number} _b - A parameter to control field length normalization, setting this to 0 disabled normalization, 1 fully normalizes field lengths, the default value is 0.75.\n * @property {number} _k1 - A parameter to control how quickly an increase in term frequency results in term frequency saturation, the default value is 1.2.\n * @property {number} termIndex - A counter incremented for each unique term, used to identify a terms position in the vector space.\n * @property {array} metadataWhitelist - A list of metadata keys that have been whitelisted for entry in the index.\n */\nlunr.Builder = function () {\n this._ref = \"id\"\n this._fields = Object.create(null)\n this._documents = Object.create(null)\n this.invertedIndex = Object.create(null)\n this.fieldTermFrequencies = {}\n this.fieldLengths = {}\n this.tokenizer = lunr.tokenizer\n this.pipeline = new lunr.Pipeline\n this.searchPipeline = new lunr.Pipeline\n this.documentCount = 0\n this._b = 0.75\n this._k1 = 1.2\n this.termIndex = 0\n this.metadataWhitelist = []\n}\n\n/**\n * Sets the document field used as the document reference. Every document must have this field.\n * The type of this field in the document should be a string, if it is not a string it will be\n * coerced into a string by calling toString.\n *\n * The default ref is 'id'.\n *\n * The ref should _not_ be changed during indexing, it should be set before any documents are\n * added to the index. Changing it during indexing can lead to inconsistent results.\n *\n * @param {string} ref - The name of the reference field in the document.\n */\nlunr.Builder.prototype.ref = function (ref) {\n this._ref = ref\n}\n\n/**\n * A function that is used to extract a field from a document.\n *\n * Lunr expects a field to be at the top level of a document, if however the field\n * is deeply nested within a document an extractor function can be used to extract\n * the right field for indexing.\n *\n * @callback fieldExtractor\n * @param {object} doc - The document being added to the index.\n * @returns {?(string|object|object[])} obj - The object that will be indexed for this field.\n * @example Extracting a nested field\n * function (doc) { return doc.nested.field }\n */\n\n/**\n * Adds a field to the list of document fields that will be indexed. Every document being\n * indexed should have this field. Null values for this field in indexed documents will\n * not cause errors but will limit the chance of that document being retrieved by searches.\n *\n * All fields should be added before adding documents to the index. Adding fields after\n * a document has been indexed will have no effect on already indexed documents.\n *\n * Fields can be boosted at build time. This allows terms within that field to have more\n * importance when ranking search results. Use a field boost to specify that matches within\n * one field are more important than other fields.\n *\n * @param {string} fieldName - The name of a field to index in all documents.\n * @param {object} attributes - Optional attributes associated with this field.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this field.\n * @param {fieldExtractor} [attributes.extractor] - Function to extract a field from a document.\n * @throws {RangeError} fieldName cannot contain unsupported characters '/'\n */\nlunr.Builder.prototype.field = function (fieldName, attributes) {\n if (/\\//.test(fieldName)) {\n throw new RangeError (\"Field '\" + fieldName + \"' contains illegal character '/'\")\n }\n\n this._fields[fieldName] = attributes || {}\n}\n\n/**\n * A parameter to tune the amount of field length normalisation that is applied when\n * calculating relevance scores. A value of 0 will completely disable any normalisation\n * and a value of 1 will fully normalise field lengths. The default is 0.75. Values of b\n * will be clamped to the range 0 - 1.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.b = function (number) {\n if (number < 0) {\n this._b = 0\n } else if (number > 1) {\n this._b = 1\n } else {\n this._b = number\n }\n}\n\n/**\n * A parameter that controls the speed at which a rise in term frequency results in term\n * frequency saturation. The default value is 1.2. Setting this to a higher value will give\n * slower saturation levels, a lower value will result in quicker saturation.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.k1 = function (number) {\n this._k1 = number\n}\n\n/**\n * Adds a document to the index.\n *\n * Before adding fields to the index the index should have been fully setup, with the document\n * ref and all fields to index already having been specified.\n *\n * The document must have a field name as specified by the ref (by default this is 'id') and\n * it should have all fields defined for indexing, though null or undefined values will not\n * cause errors.\n *\n * Entire documents can be boosted at build time. Applying a boost to a document indicates that\n * this document should rank higher in search results than other documents.\n *\n * @param {object} doc - The document to add to the index.\n * @param {object} attributes - Optional attributes associated with this document.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this document.\n */\nlunr.Builder.prototype.add = function (doc, attributes) {\n var docRef = doc[this._ref],\n fields = Object.keys(this._fields)\n\n this._documents[docRef] = attributes || {}\n this.documentCount += 1\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i],\n extractor = this._fields[fieldName].extractor,\n field = extractor ? extractor(doc) : doc[fieldName],\n tokens = this.tokenizer(field, {\n fields: [fieldName]\n }),\n terms = this.pipeline.run(tokens),\n fieldRef = new lunr.FieldRef (docRef, fieldName),\n fieldTerms = Object.create(null)\n\n this.fieldTermFrequencies[fieldRef] = fieldTerms\n this.fieldLengths[fieldRef] = 0\n\n // store the length of this field for this document\n this.fieldLengths[fieldRef] += terms.length\n\n // calculate term frequencies for this field\n for (var j = 0; j < terms.length; j++) {\n var term = terms[j]\n\n if (fieldTerms[term] == undefined) {\n fieldTerms[term] = 0\n }\n\n fieldTerms[term] += 1\n\n // add to inverted index\n // create an initial posting if one doesn't exist\n if (this.invertedIndex[term] == undefined) {\n var posting = Object.create(null)\n posting[\"_index\"] = this.termIndex\n this.termIndex += 1\n\n for (var k = 0; k < fields.length; k++) {\n posting[fields[k]] = Object.create(null)\n }\n\n this.invertedIndex[term] = posting\n }\n\n // add an entry for this term/fieldName/docRef to the invertedIndex\n if (this.invertedIndex[term][fieldName][docRef] == undefined) {\n this.invertedIndex[term][fieldName][docRef] = Object.create(null)\n }\n\n // store all whitelisted metadata about this token in the\n // inverted index\n for (var l = 0; l < this.metadataWhitelist.length; l++) {\n var metadataKey = this.metadataWhitelist[l],\n metadata = term.metadata[metadataKey]\n\n if (this.invertedIndex[term][fieldName][docRef][metadataKey] == undefined) {\n this.invertedIndex[term][fieldName][docRef][metadataKey] = []\n }\n\n this.invertedIndex[term][fieldName][docRef][metadataKey].push(metadata)\n }\n }\n\n }\n}\n\n/**\n * Calculates the average document length for this index\n *\n * @private\n */\nlunr.Builder.prototype.calculateAverageFieldLengths = function () {\n\n var fieldRefs = Object.keys(this.fieldLengths),\n numberOfFields = fieldRefs.length,\n accumulator = {},\n documentsWithField = {}\n\n for (var i = 0; i < numberOfFields; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n field = fieldRef.fieldName\n\n documentsWithField[field] || (documentsWithField[field] = 0)\n documentsWithField[field] += 1\n\n accumulator[field] || (accumulator[field] = 0)\n accumulator[field] += this.fieldLengths[fieldRef]\n }\n\n var fields = Object.keys(this._fields)\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i]\n accumulator[fieldName] = accumulator[fieldName] / documentsWithField[fieldName]\n }\n\n this.averageFieldLength = accumulator\n}\n\n/**\n * Builds a vector space model of every document using lunr.Vector\n *\n * @private\n */\nlunr.Builder.prototype.createFieldVectors = function () {\n var fieldVectors = {},\n fieldRefs = Object.keys(this.fieldTermFrequencies),\n fieldRefsLength = fieldRefs.length,\n termIdfCache = Object.create(null)\n\n for (var i = 0; i < fieldRefsLength; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n fieldName = fieldRef.fieldName,\n fieldLength = this.fieldLengths[fieldRef],\n fieldVector = new lunr.Vector,\n termFrequencies = this.fieldTermFrequencies[fieldRef],\n terms = Object.keys(termFrequencies),\n termsLength = terms.length\n\n\n var fieldBoost = this._fields[fieldName].boost || 1,\n docBoost = this._documents[fieldRef.docRef].boost || 1\n\n for (var j = 0; j < termsLength; j++) {\n var term = terms[j],\n tf = termFrequencies[term],\n termIndex = this.invertedIndex[term]._index,\n idf, score, scoreWithPrecision\n\n if (termIdfCache[term] === undefined) {\n idf = lunr.idf(this.invertedIndex[term], this.documentCount)\n termIdfCache[term] = idf\n } else {\n idf = termIdfCache[term]\n }\n\n score = idf * ((this._k1 + 1) * tf) / (this._k1 * (1 - this._b + this._b * (fieldLength / this.averageFieldLength[fieldName])) + tf)\n score *= fieldBoost\n score *= docBoost\n scoreWithPrecision = Math.round(score * 1000) / 1000\n // Converts 1.23456789 to 1.234.\n // Reducing the precision so that the vectors take up less\n // space when serialised. Doing it now so that they behave\n // the same before and after serialisation. Also, this is\n // the fastest approach to reducing a number's precision in\n // JavaScript.\n\n fieldVector.insert(termIndex, scoreWithPrecision)\n }\n\n fieldVectors[fieldRef] = fieldVector\n }\n\n this.fieldVectors = fieldVectors\n}\n\n/**\n * Creates a token set of all tokens in the index using lunr.TokenSet\n *\n * @private\n */\nlunr.Builder.prototype.createTokenSet = function () {\n this.tokenSet = lunr.TokenSet.fromArray(\n Object.keys(this.invertedIndex).sort()\n )\n}\n\n/**\n * Builds the index, creating an instance of lunr.Index.\n *\n * This completes the indexing process and should only be called\n * once all documents have been added to the index.\n *\n * @returns {lunr.Index}\n */\nlunr.Builder.prototype.build = function () {\n this.calculateAverageFieldLengths()\n this.createFieldVectors()\n this.createTokenSet()\n\n return new lunr.Index({\n invertedIndex: this.invertedIndex,\n fieldVectors: this.fieldVectors,\n tokenSet: this.tokenSet,\n fields: Object.keys(this._fields),\n pipeline: this.searchPipeline\n })\n}\n\n/**\n * Applies a plugin to the index builder.\n *\n * A plugin is a function that is called with the index builder as its context.\n * Plugins can be used to customise or extend the behaviour of the index\n * in some way. A plugin is just a function, that encapsulated the custom\n * behaviour that should be applied when building the index.\n *\n * The plugin function will be called with the index builder as its argument, additional\n * arguments can also be passed when calling use. The function will be called\n * with the index builder as its context.\n *\n * @param {Function} plugin The plugin to apply.\n */\nlunr.Builder.prototype.use = function (fn) {\n var args = Array.prototype.slice.call(arguments, 1)\n args.unshift(this)\n fn.apply(this, args)\n}\n/**\n * Contains and collects metadata about a matching document.\n * A single instance of lunr.MatchData is returned as part of every\n * lunr.Index~Result.\n *\n * @constructor\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n * @property {object} metadata - A cloned collection of metadata associated with this document.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData = function (term, field, metadata) {\n var clonedMetadata = Object.create(null),\n metadataKeys = Object.keys(metadata || {})\n\n // Cloning the metadata to prevent the original\n // being mutated during match data combination.\n // Metadata is kept in an array within the inverted\n // index so cloning the data can be done with\n // Array#slice\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n clonedMetadata[key] = metadata[key].slice()\n }\n\n this.metadata = Object.create(null)\n\n if (term !== undefined) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = clonedMetadata\n }\n}\n\n/**\n * An instance of lunr.MatchData will be created for every term that matches a\n * document. However only one instance is required in a lunr.Index~Result. This\n * method combines metadata from another instance of lunr.MatchData with this\n * objects metadata.\n *\n * @param {lunr.MatchData} otherMatchData - Another instance of match data to merge with this one.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData.prototype.combine = function (otherMatchData) {\n var terms = Object.keys(otherMatchData.metadata)\n\n for (var i = 0; i < terms.length; i++) {\n var term = terms[i],\n fields = Object.keys(otherMatchData.metadata[term])\n\n if (this.metadata[term] == undefined) {\n this.metadata[term] = Object.create(null)\n }\n\n for (var j = 0; j < fields.length; j++) {\n var field = fields[j],\n keys = Object.keys(otherMatchData.metadata[term][field])\n\n if (this.metadata[term][field] == undefined) {\n this.metadata[term][field] = Object.create(null)\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k]\n\n if (this.metadata[term][field][key] == undefined) {\n this.metadata[term][field][key] = otherMatchData.metadata[term][field][key]\n } else {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(otherMatchData.metadata[term][field][key])\n }\n\n }\n }\n }\n}\n\n/**\n * Add metadata for a term/field pair to this instance of match data.\n *\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n */\nlunr.MatchData.prototype.add = function (term, field, metadata) {\n if (!(term in this.metadata)) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = metadata\n return\n }\n\n if (!(field in this.metadata[term])) {\n this.metadata[term][field] = metadata\n return\n }\n\n var metadataKeys = Object.keys(metadata)\n\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n\n if (key in this.metadata[term][field]) {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(metadata[key])\n } else {\n this.metadata[term][field][key] = metadata[key]\n }\n }\n}\n/**\n * A lunr.Query provides a programmatic way of defining queries to be performed\n * against a {@link lunr.Index}.\n *\n * Prefer constructing a lunr.Query using the {@link lunr.Index#query} method\n * so the query object is pre-initialized with the right index fields.\n *\n * @constructor\n * @property {lunr.Query~Clause[]} clauses - An array of query clauses.\n * @property {string[]} allFields - An array of all available fields in a lunr.Index.\n */\nlunr.Query = function (allFields) {\n this.clauses = []\n this.allFields = allFields\n}\n\n/**\n * Constants for indicating what kind of automatic wildcard insertion will be used when constructing a query clause.\n *\n * This allows wildcards to be added to the beginning and end of a term without having to manually do any string\n * concatenation.\n *\n * The wildcard constants can be bitwise combined to select both leading and trailing wildcards.\n *\n * @constant\n * @default\n * @property {number} wildcard.NONE - The term will have no wildcards inserted, this is the default behaviour\n * @property {number} wildcard.LEADING - Prepend the term with a wildcard, unless a leading wildcard already exists\n * @property {number} wildcard.TRAILING - Append a wildcard to the term, unless a trailing wildcard already exists\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with trailing wildcard\n * query.term('foo', { wildcard: lunr.Query.wildcard.TRAILING })\n * @example query term with leading and trailing wildcard\n * query.term('foo', {\n * wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING\n * })\n */\n\nlunr.Query.wildcard = new String (\"*\")\nlunr.Query.wildcard.NONE = 0\nlunr.Query.wildcard.LEADING = 1\nlunr.Query.wildcard.TRAILING = 2\n\n/**\n * Constants for indicating what kind of presence a term must have in matching documents.\n *\n * @constant\n * @enum {number}\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with required presence\n * query.term('foo', { presence: lunr.Query.presence.REQUIRED })\n */\nlunr.Query.presence = {\n /**\n * Term's presence in a document is optional, this is the default value.\n */\n OPTIONAL: 1,\n\n /**\n * Term's presence in a document is required, documents that do not contain\n * this term will not be returned.\n */\n REQUIRED: 2,\n\n /**\n * Term's presence in a document is prohibited, documents that do contain\n * this term will not be returned.\n */\n PROHIBITED: 3\n}\n\n/**\n * A single clause in a {@link lunr.Query} contains a term and details on how to\n * match that term against a {@link lunr.Index}.\n *\n * @typedef {Object} lunr.Query~Clause\n * @property {string[]} fields - The fields in an index this clause should be matched against.\n * @property {number} [boost=1] - Any boost that should be applied when matching this clause.\n * @property {number} [editDistance] - Whether the term should have fuzzy matching applied, and how fuzzy the match should be.\n * @property {boolean} [usePipeline] - Whether the term should be passed through the search pipeline.\n * @property {number} [wildcard=lunr.Query.wildcard.NONE] - Whether the term should have wildcards appended or prepended.\n * @property {number} [presence=lunr.Query.presence.OPTIONAL] - The terms presence in any matching documents.\n */\n\n/**\n * Adds a {@link lunr.Query~Clause} to this query.\n *\n * Unless the clause contains the fields to be matched all fields will be matched. In addition\n * a default boost of 1 is applied to the clause.\n *\n * @param {lunr.Query~Clause} clause - The clause to add to this query.\n * @see lunr.Query~Clause\n * @returns {lunr.Query}\n */\nlunr.Query.prototype.clause = function (clause) {\n if (!('fields' in clause)) {\n clause.fields = this.allFields\n }\n\n if (!('boost' in clause)) {\n clause.boost = 1\n }\n\n if (!('usePipeline' in clause)) {\n clause.usePipeline = true\n }\n\n if (!('wildcard' in clause)) {\n clause.wildcard = lunr.Query.wildcard.NONE\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.LEADING) && (clause.term.charAt(0) != lunr.Query.wildcard)) {\n clause.term = \"*\" + clause.term\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.TRAILING) && (clause.term.slice(-1) != lunr.Query.wildcard)) {\n clause.term = \"\" + clause.term + \"*\"\n }\n\n if (!('presence' in clause)) {\n clause.presence = lunr.Query.presence.OPTIONAL\n }\n\n this.clauses.push(clause)\n\n return this\n}\n\n/**\n * A negated query is one in which every clause has a presence of\n * prohibited. These queries require some special processing to return\n * the expected results.\n *\n * @returns boolean\n */\nlunr.Query.prototype.isNegated = function () {\n for (var i = 0; i < this.clauses.length; i++) {\n if (this.clauses[i].presence != lunr.Query.presence.PROHIBITED) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * Adds a term to the current query, under the covers this will create a {@link lunr.Query~Clause}\n * to the list of clauses that make up this query.\n *\n * The term is used as is, i.e. no tokenization will be performed by this method. Instead conversion\n * to a token or token-like string should be done before calling this method.\n *\n * The term will be converted to a string by calling `toString`. Multiple terms can be passed as an\n * array, each term in the array will share the same options.\n *\n * @param {object|object[]} term - The term(s) to add to the query.\n * @param {object} [options] - Any additional properties to add to the query clause.\n * @returns {lunr.Query}\n * @see lunr.Query#clause\n * @see lunr.Query~Clause\n * @example adding a single term to a query\n * query.term(\"foo\")\n * @example adding a single term to a query and specifying search fields, term boost and automatic trailing wildcard\n * query.term(\"foo\", {\n * fields: [\"title\"],\n * boost: 10,\n * wildcard: lunr.Query.wildcard.TRAILING\n * })\n * @example using lunr.tokenizer to convert a string to tokens before using them as terms\n * query.term(lunr.tokenizer(\"foo bar\"))\n */\nlunr.Query.prototype.term = function (term, options) {\n if (Array.isArray(term)) {\n term.forEach(function (t) { this.term(t, lunr.utils.clone(options)) }, this)\n return this\n }\n\n var clause = options || {}\n clause.term = term.toString()\n\n this.clause(clause)\n\n return this\n}\nlunr.QueryParseError = function (message, start, end) {\n this.name = \"QueryParseError\"\n this.message = message\n this.start = start\n this.end = end\n}\n\nlunr.QueryParseError.prototype = new Error\nlunr.QueryLexer = function (str) {\n this.lexemes = []\n this.str = str\n this.length = str.length\n this.pos = 0\n this.start = 0\n this.escapeCharPositions = []\n}\n\nlunr.QueryLexer.prototype.run = function () {\n var state = lunr.QueryLexer.lexText\n\n while (state) {\n state = state(this)\n }\n}\n\nlunr.QueryLexer.prototype.sliceString = function () {\n var subSlices = [],\n sliceStart = this.start,\n sliceEnd = this.pos\n\n for (var i = 0; i < this.escapeCharPositions.length; i++) {\n sliceEnd = this.escapeCharPositions[i]\n subSlices.push(this.str.slice(sliceStart, sliceEnd))\n sliceStart = sliceEnd + 1\n }\n\n subSlices.push(this.str.slice(sliceStart, this.pos))\n this.escapeCharPositions.length = 0\n\n return subSlices.join('')\n}\n\nlunr.QueryLexer.prototype.emit = function (type) {\n this.lexemes.push({\n type: type,\n str: this.sliceString(),\n start: this.start,\n end: this.pos\n })\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.escapeCharacter = function () {\n this.escapeCharPositions.push(this.pos - 1)\n this.pos += 1\n}\n\nlunr.QueryLexer.prototype.next = function () {\n if (this.pos >= this.length) {\n return lunr.QueryLexer.EOS\n }\n\n var char = this.str.charAt(this.pos)\n this.pos += 1\n return char\n}\n\nlunr.QueryLexer.prototype.width = function () {\n return this.pos - this.start\n}\n\nlunr.QueryLexer.prototype.ignore = function () {\n if (this.start == this.pos) {\n this.pos += 1\n }\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.backup = function () {\n this.pos -= 1\n}\n\nlunr.QueryLexer.prototype.acceptDigitRun = function () {\n var char, charCode\n\n do {\n char = this.next()\n charCode = char.charCodeAt(0)\n } while (charCode > 47 && charCode < 58)\n\n if (char != lunr.QueryLexer.EOS) {\n this.backup()\n }\n}\n\nlunr.QueryLexer.prototype.more = function () {\n return this.pos < this.length\n}\n\nlunr.QueryLexer.EOS = 'EOS'\nlunr.QueryLexer.FIELD = 'FIELD'\nlunr.QueryLexer.TERM = 'TERM'\nlunr.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE'\nlunr.QueryLexer.BOOST = 'BOOST'\nlunr.QueryLexer.PRESENCE = 'PRESENCE'\n\nlunr.QueryLexer.lexField = function (lexer) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.FIELD)\n lexer.ignore()\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexTerm = function (lexer) {\n if (lexer.width() > 1) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.TERM)\n }\n\n lexer.ignore()\n\n if (lexer.more()) {\n return lunr.QueryLexer.lexText\n }\n}\n\nlunr.QueryLexer.lexEditDistance = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.EDIT_DISTANCE)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexBoost = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.BOOST)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexEOS = function (lexer) {\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n}\n\n// This matches the separator used when tokenising fields\n// within a document. These should match otherwise it is\n// not possible to search for some tokens within a document.\n//\n// It is possible for the user to change the separator on the\n// tokenizer so it _might_ clash with any other of the special\n// characters already used within the search string, e.g. :.\n//\n// This means that it is possible to change the separator in\n// such a way that makes some words unsearchable using a search\n// string.\nlunr.QueryLexer.termSeparator = lunr.tokenizer.separator\n\nlunr.QueryLexer.lexText = function (lexer) {\n while (true) {\n var char = lexer.next()\n\n if (char == lunr.QueryLexer.EOS) {\n return lunr.QueryLexer.lexEOS\n }\n\n // Escape character is '\\'\n if (char.charCodeAt(0) == 92) {\n lexer.escapeCharacter()\n continue\n }\n\n if (char == \":\") {\n return lunr.QueryLexer.lexField\n }\n\n if (char == \"~\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexEditDistance\n }\n\n if (char == \"^\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexBoost\n }\n\n // \"+\" indicates term presence is required\n // checking for length to ensure that only\n // leading \"+\" are considered\n if (char == \"+\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n // \"-\" indicates term presence is prohibited\n // checking for length to ensure that only\n // leading \"-\" are considered\n if (char == \"-\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n if (char.match(lunr.QueryLexer.termSeparator)) {\n return lunr.QueryLexer.lexTerm\n }\n }\n}\n\nlunr.QueryParser = function (str, query) {\n this.lexer = new lunr.QueryLexer (str)\n this.query = query\n this.currentClause = {}\n this.lexemeIdx = 0\n}\n\nlunr.QueryParser.prototype.parse = function () {\n this.lexer.run()\n this.lexemes = this.lexer.lexemes\n\n var state = lunr.QueryParser.parseClause\n\n while (state) {\n state = state(this)\n }\n\n return this.query\n}\n\nlunr.QueryParser.prototype.peekLexeme = function () {\n return this.lexemes[this.lexemeIdx]\n}\n\nlunr.QueryParser.prototype.consumeLexeme = function () {\n var lexeme = this.peekLexeme()\n this.lexemeIdx += 1\n return lexeme\n}\n\nlunr.QueryParser.prototype.nextClause = function () {\n var completedClause = this.currentClause\n this.query.clause(completedClause)\n this.currentClause = {}\n}\n\nlunr.QueryParser.parseClause = function (parser) {\n var lexeme = parser.peekLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.type) {\n case lunr.QueryLexer.PRESENCE:\n return lunr.QueryParser.parsePresence\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expected either a field or a term, found \" + lexeme.type\n\n if (lexeme.str.length >= 1) {\n errorMessage += \" with value '\" + lexeme.str + \"'\"\n }\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n}\n\nlunr.QueryParser.parsePresence = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.str) {\n case \"-\":\n parser.currentClause.presence = lunr.Query.presence.PROHIBITED\n break\n case \"+\":\n parser.currentClause.presence = lunr.Query.presence.REQUIRED\n break\n default:\n var errorMessage = \"unrecognised presence operator'\" + lexeme.str + \"'\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term or field, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term or field, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseField = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n if (parser.query.allFields.indexOf(lexeme.str) == -1) {\n var possibleFields = parser.query.allFields.map(function (f) { return \"'\" + f + \"'\" }).join(', '),\n errorMessage = \"unrecognised field '\" + lexeme.str + \"', possible fields: \" + possibleFields\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.fields = [lexeme.str]\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseTerm = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n parser.currentClause.term = lexeme.str.toLowerCase()\n\n if (lexeme.str.indexOf(\"*\") != -1) {\n parser.currentClause.usePipeline = false\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseEditDistance = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var editDistance = parseInt(lexeme.str, 10)\n\n if (isNaN(editDistance)) {\n var errorMessage = \"edit distance must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.editDistance = editDistance\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseBoost = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var boost = parseInt(lexeme.str, 10)\n\n if (isNaN(boost)) {\n var errorMessage = \"boost must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.boost = boost\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\n /**\n * export the module via AMD, CommonJS or as a browser global\n * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js\n */\n ;(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory)\n } else if (typeof exports === 'object') {\n /**\n * Node. Does not work with strict CommonJS, but\n * only CommonJS-like enviroments that support module.exports,\n * like Node.\n */\n module.exports = factory()\n } else {\n // Browser globals (root is window)\n root.lunr = factory()\n }\n }(this, function () {\n /**\n * Just return a value to define the module export.\n * This example returns an object, but the module\n * can return a function as the exported value.\n */\n return lunr\n }))\n})();\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n ArticleDocument,\n SearchDocumentMap,\n SectionDocument,\n setupSearchDocumentMap\n} from \"../document\"\nimport {\n SearchHighlightFactoryFn,\n setupSearchHighlighter\n} from \"../highlighter\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search index configuration\n */\nexport interface SearchIndexConfig {\n lang: string[] /* Search languages */\n separator: string /* Search separator */\n}\n\n/**\n * Search index document\n */\nexport interface SearchIndexDocument {\n location: string /* Document location */\n title: string /* Document title */\n text: string /* Document text */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search index pipeline function\n */\nexport type SearchIndexPipelineFn =\n | \"stemmer\" /* Stemmer */\n | \"stopWordFilter\" /* Stop word filter */\n | \"trimmer\" /* Trimmer */\n\n/**\n * Search index pipeline\n */\nexport type SearchIndexPipeline = SearchIndexPipelineFn[]\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search index\n *\n * This interfaces describes the format of the `search_index.json` file which\n * is automatically built by the MkDocs search plugin.\n */\nexport interface SearchIndex {\n config: SearchIndexConfig /* Search index configuration */\n docs: SearchIndexDocument[] /* Search index documents */\n index?: object | string /* Prebuilt or serialized index */\n pipeline?: SearchIndexPipeline /* Search index pipeline */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search result\n */\nexport interface SearchResult {\n article: ArticleDocument /* Article document */\n sections: SectionDocument[] /* Section documents */\n}\n\n/* ----------------------------------------------------------------------------\n * Class\n * ------------------------------------------------------------------------- */\n\n/**\n * Search\n *\n * Note that `lunr` is injected via Webpack, as it will otherwise also be\n * bundled in the application bundle.\n */\nexport class Search {\n\n /**\n * Search document mapping\n *\n * A mapping of URLs (including hash fragments) to the actual articles and\n * sections of the documentation. The search document mapping must be created\n * regardless of whether the index was prebuilt or not, as `lunr` itself will\n * only store the actual index.\n */\n protected documents: SearchDocumentMap\n\n /**\n * Search highlight factory function\n */\n protected highlight: SearchHighlightFactoryFn\n\n /**\n * The `lunr` search index\n */\n protected index: lunr.Index\n\n /**\n * Create the search integration\n *\n * @param data - Search index\n */\n public constructor({ config, docs, pipeline, index }: SearchIndex) {\n this.documents = setupSearchDocumentMap(docs)\n this.highlight = setupSearchHighlighter(config)\n\n /* If no index was given, create it */\n if (typeof index === \"undefined\") {\n this.index = lunr(function() {\n pipeline = pipeline || [\"trimmer\", \"stopWordFilter\"]\n\n /* Set up pipeline according to configuration */\n this.pipeline.reset()\n for (const fn of pipeline)\n this.pipeline.add(lunr[fn])\n\n /* Set up alternate search languages */\n if (config.lang.length === 1 && config.lang[0] !== \"en\") {\n this.use((lunr as any)[config.lang[0]])\n } else if (config.lang.length > 1) {\n this.use((lunr as any).multiLanguage(...config.lang))\n }\n\n /* Set up fields and reference */\n this.field(\"title\", { boost: 1000 })\n this.field(\"text\")\n this.ref(\"location\")\n\n /* Index documents */\n for (const doc of docs)\n this.add(doc)\n })\n\n /* Prebuilt or serialized index */\n } else {\n this.index = lunr.Index.load(\n typeof index === \"string\"\n ? JSON.parse(index)\n : index\n )\n }\n }\n\n /**\n * Search for matching documents\n *\n * The search index which MkDocs provides is divided up into articles, which\n * contain the whole content of the individual pages, and sections, which only\n * contain the contents of the subsections obtained by breaking the individual\n * pages up at `h1` ... `h6`. As there may be many sections on different pages\n * with identical titles (for example within this very project, e.g. \"Usage\"\n * or \"Installation\"), they need to be put into the context of the containing\n * page. For this reason, section results are grouped within their respective\n * articles which are the top-level results that are returned.\n *\n * @param value - Query value\n *\n * @return Search results\n */\n public query(value: string): SearchResult[] {\n if (value) {\n try {\n\n /* Group sections by containing article */\n const groups = this.index.search(value)\n .reduce((results, result) => {\n const document = this.documents.get(result.ref)\n if (typeof document !== \"undefined\") {\n if (\"parent\" in document) {\n const ref = document.parent.location\n results.set(ref, [...results.get(ref) || [], result])\n } else {\n const ref = document.location\n results.set(ref, results.get(ref) || [])\n }\n }\n return results\n }, new Map())\n\n /* Create highlighter for query */\n const fn = this.highlight(value)\n\n /* Map groups to search documents */\n return [...groups].map(([ref, sections]) => ({\n article: fn(this.documents.get(ref) as ArticleDocument),\n sections: sections.map(section => {\n return fn(this.documents.get(section.ref) as SectionDocument)\n })\n }))\n\n /* Log errors to console (for now) */\n } catch (err) {\n // tslint:disable-next-line no-console\n console.warn(`Invalid query: ${value} – see https://bit.ly/2s3ChXG`)\n }\n }\n\n /* Return nothing in case of error or empty query */\n return []\n }\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SearchIndex, SearchResult } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search message type\n */\nexport const enum SearchMessageType {\n SETUP, /* Search index setup */\n READY, /* Search index ready */\n QUERY, /* Search query */\n RESULT /* Search results */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * A message containing the data necessary to setup the search index\n */\nexport interface SearchSetupMessage {\n type: SearchMessageType.SETUP /* Message type */\n data: SearchIndex /* Message data */\n}\n\n/**\n * A message indicating the search index is ready\n */\nexport interface SearchReadyMessage {\n type: SearchMessageType.READY /* Message type */\n}\n\n/**\n * A message containing a search query\n */\nexport interface SearchQueryMessage {\n type: SearchMessageType.QUERY /* Message type */\n data: string /* Message data */\n}\n\n/**\n * A message containing results for a search query\n */\nexport interface SearchResultMessage {\n type: SearchMessageType.RESULT /* Message type */\n data: SearchResult[] /* Message data */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * A message exchanged with the search worker\n */\nexport type SearchMessage =\n | SearchSetupMessage\n | SearchReadyMessage\n | SearchQueryMessage\n | SearchResultMessage\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Type guard for search setup messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchSetupMessage(\n message: SearchMessage\n): message is SearchSetupMessage {\n return message.type === SearchMessageType.SETUP\n}\n\n/**\n * Type guard for search ready messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchReadyMessage(\n message: SearchMessage\n): message is SearchReadyMessage {\n return message.type === SearchMessageType.READY\n}\n\n/**\n * Type guard for search query messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchQueryMessage(\n message: SearchMessage\n): message is SearchQueryMessage {\n return message.type === SearchMessageType.QUERY\n}\n\n/**\n * Type guard for search result messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nexport function isSearchResultMessage(\n message: SearchMessage\n): message is SearchResultMessage {\n return message.type === SearchMessageType.RESULT\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport \"expose-loader?lunr!lunr\"\n\nimport { Search, SearchIndexConfig } from \"../../_\"\nimport { SearchMessage, SearchMessageType } from \"../message\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Search\n */\nlet search: Search\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up multi-language support through `lunr-languages`\n *\n * This function will automatically import the stemmers necessary to process\n * the languages which were given through the search index configuration.\n *\n * @param config - Search index configuration\n */\nfunction setupLunrLanguages(config: SearchIndexConfig): void {\n const base = \"../lunr\"\n\n /* Add scripts for languages */\n const scripts = []\n for (const lang of config.lang) {\n if (lang === \"ja\") scripts.push(`${base}/tinyseg.min.js`)\n if (lang !== \"en\") scripts.push(`${base}/min/lunr.${lang}.min.js`)\n }\n\n /* Add multi-language support */\n if (config.lang.length > 1)\n scripts.push(`${base}/min/lunr.multi.min.js`)\n\n /* Load scripts synchronously */\n if (scripts.length)\n importScripts(\n `${base}/min/lunr.stemmer.support.min.js`,\n ...scripts\n )\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Message handler\n *\n * @param message - Source message\n *\n * @return Target message\n */\nexport function handler(message: SearchMessage): SearchMessage {\n switch (message.type) {\n\n /* Search setup message */\n case SearchMessageType.SETUP:\n setupLunrLanguages(message.data.config)\n search = new Search(message.data)\n return {\n type: SearchMessageType.READY\n }\n\n /* Search query message */\n case SearchMessageType.QUERY:\n return {\n type: SearchMessageType.RESULT,\n data: search ? search.query(message.data) : []\n }\n\n /* All other messages */\n default:\n throw new TypeError(\"Invalid message type\")\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Worker\n * ------------------------------------------------------------------------- */\n\naddEventListener(\"message\", ev => {\n postMessage(handler(ev.data))\n})\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport * as escapeHTML from \"escape-html\"\n\nimport { SearchIndexDocument } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * A top-level article\n */\nexport interface ArticleDocument extends SearchIndexDocument {\n linked: boolean /* Whether the section was linked */\n}\n\n/**\n * A section of an article\n */\nexport interface SectionDocument extends SearchIndexDocument {\n parent: ArticleDocument /* Parent article */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search document\n */\nexport type SearchDocument =\n | ArticleDocument\n | SectionDocument\n\n/**\n * Search document mapping\n */\nexport type SearchDocumentMap = Map\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search document mapping\n *\n * @param docs - Search index documents\n *\n * @return Search document map\n */\nexport function setupSearchDocumentMap(\n docs: SearchIndexDocument[]\n): SearchDocumentMap {\n const documents = new Map()\n for (const doc of docs) {\n const [path, hash] = doc.location.split(\"#\")\n\n /* Extract location and title */\n const location = doc.location\n const title = doc.title\n\n /* Escape and cleanup text */\n const text = escapeHTML(doc.text)\n .replace(/\\s+(?=[,.:;!?])/g, \"\")\n .replace(/\\s+/g, \" \")\n\n /* Handle section */\n if (hash) {\n const parent = documents.get(path) as ArticleDocument\n\n /* Ignore first section, override article */\n if (!parent.linked) {\n parent.title = doc.title\n parent.text = text\n parent.linked = true\n\n /* Add subsequent section */\n } else {\n documents.set(location, {\n location,\n title,\n text,\n parent\n })\n }\n\n /* Add article */\n } else {\n documents.set(location, {\n location,\n title,\n text,\n linked: false\n })\n }\n }\n return documents\n}\n","/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SearchIndexConfig } from \"../_\"\nimport { SearchDocument } from \"../document\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search highlight function\n *\n * @template T - Search document type\n *\n * @param document - Search document\n *\n * @return Highlighted document\n */\nexport type SearchHighlightFn = <\n T extends SearchDocument\n>(document: Readonly) => T\n\n/**\n * Search highlight factory function\n *\n * @param value - Query value\n *\n * @return Search highlight function\n */\nexport type SearchHighlightFactoryFn = (value: string) => SearchHighlightFn\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search highlighter\n *\n * @param config - Search index configuration\n *\n * @return Search highlight factory function\n */\nexport function setupSearchHighlighter(\n config: SearchIndexConfig\n): SearchHighlightFactoryFn {\n const separator = new RegExp(config.separator, \"img\")\n const highlight = (_: unknown, data: string, term: string) => {\n return `${data}${term}`\n }\n\n /* Return factory function */\n return (value: string) => {\n value = value\n .replace(/[\\s*+-:~^]+/g, \" \")\n .trim()\n\n /* Create search term match expression */\n const match = new RegExp(`(^|${config.separator})(${\n value\n .replace(/[|\\\\{}()[\\]^$+*?.-]/g, \"\\\\$&\")\n .replace(separator, \"|\")\n })`, \"img\")\n\n /* Highlight document */\n return document => ({\n ...document,\n title: document.title.replace(match, highlight),\n text: document.text.replace(match, highlight)\n })\n }\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/theme/material/assets/javascripts/worker/search.js b/docs/theme/material/assets/javascripts/worker/search.js new file mode 100644 index 00000000..29f901a3 --- /dev/null +++ b/docs/theme/material/assets/javascripts/worker/search.js @@ -0,0 +1,206 @@ +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "./src/assets/javascripts/integrations/search/worker/main/index.ts"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./node_modules/escape-html/index.js": +/*!*******************************************!*\ + !*** ./node_modules/escape-html/index.js ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n\n\n//# sourceURL=webpack:///./node_modules/escape-html/index.js?"); + +/***/ }), + +/***/ "./node_modules/expose-loader/index.js?lunr!./node_modules/lunr/lunr.js-exposed": +/*!*****************************************************************************!*\ + !*** ./node_modules/expose-loader?lunr!./node_modules/lunr/lunr.js-exposed ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* WEBPACK VAR INJECTION */(function(global) {module.exports = global[\"lunr\"] = __webpack_require__(/*! -!./lunr.js */ \"./node_modules/lunr/lunr.js\");\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/lunr/lunr.js-exposed?./node_modules/expose-loader?lunr"); + +/***/ }), + +/***/ "./node_modules/lunr/lunr.js": +/*!***********************************!*\ + !*** ./node_modules/lunr/lunr.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.8\n * Copyright (C) 2019 Oliver Nightingale\n * @license MIT\n */\n\n;(function(){\n\n/**\n * A convenience function for configuring and constructing\n * a new lunr Index.\n *\n * A lunr.Builder instance is created and the pipeline setup\n * with a trimmer, stop word filter and stemmer.\n *\n * This builder object is yielded to the configuration function\n * that is passed as a parameter, allowing the list of fields\n * and other builder parameters to be customised.\n *\n * All documents _must_ be added within the passed config function.\n *\n * @example\n * var idx = lunr(function () {\n * this.field('title')\n * this.field('body')\n * this.ref('id')\n *\n * documents.forEach(function (doc) {\n * this.add(doc)\n * }, this)\n * })\n *\n * @see {@link lunr.Builder}\n * @see {@link lunr.Pipeline}\n * @see {@link lunr.trimmer}\n * @see {@link lunr.stopWordFilter}\n * @see {@link lunr.stemmer}\n * @namespace {function} lunr\n */\nvar lunr = function (config) {\n var builder = new lunr.Builder\n\n builder.pipeline.add(\n lunr.trimmer,\n lunr.stopWordFilter,\n lunr.stemmer\n )\n\n builder.searchPipeline.add(\n lunr.stemmer\n )\n\n config.call(builder, builder)\n return builder.build()\n}\n\nlunr.version = \"2.3.8\"\n/*!\n * lunr.utils\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A namespace containing utils for the rest of the lunr library\n * @namespace lunr.utils\n */\nlunr.utils = {}\n\n/**\n * Print a warning message to the console.\n *\n * @param {String} message The message to be printed.\n * @memberOf lunr.utils\n * @function\n */\nlunr.utils.warn = (function (global) {\n /* eslint-disable no-console */\n return function (message) {\n if (global.console && console.warn) {\n console.warn(message)\n }\n }\n /* eslint-enable no-console */\n})(this)\n\n/**\n * Convert an object to a string.\n *\n * In the case of `null` and `undefined` the function returns\n * the empty string, in all other cases the result of calling\n * `toString` on the passed object is returned.\n *\n * @param {Any} obj The object to convert to a string.\n * @return {String} string representation of the passed object.\n * @memberOf lunr.utils\n */\nlunr.utils.asString = function (obj) {\n if (obj === void 0 || obj === null) {\n return \"\"\n } else {\n return obj.toString()\n }\n}\n\n/**\n * Clones an object.\n *\n * Will create a copy of an existing object such that any mutations\n * on the copy cannot affect the original.\n *\n * Only shallow objects are supported, passing a nested object to this\n * function will cause a TypeError.\n *\n * Objects with primitives, and arrays of primitives are supported.\n *\n * @param {Object} obj The object to clone.\n * @return {Object} a clone of the passed object.\n * @throws {TypeError} when a nested object is passed.\n * @memberOf Utils\n */\nlunr.utils.clone = function (obj) {\n if (obj === null || obj === undefined) {\n return obj\n }\n\n var clone = Object.create(null),\n keys = Object.keys(obj)\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i],\n val = obj[key]\n\n if (Array.isArray(val)) {\n clone[key] = val.slice()\n continue\n }\n\n if (typeof val === 'string' ||\n typeof val === 'number' ||\n typeof val === 'boolean') {\n clone[key] = val\n continue\n }\n\n throw new TypeError(\"clone is not deep and does not support nested objects\")\n }\n\n return clone\n}\nlunr.FieldRef = function (docRef, fieldName, stringValue) {\n this.docRef = docRef\n this.fieldName = fieldName\n this._stringValue = stringValue\n}\n\nlunr.FieldRef.joiner = \"/\"\n\nlunr.FieldRef.fromString = function (s) {\n var n = s.indexOf(lunr.FieldRef.joiner)\n\n if (n === -1) {\n throw \"malformed field ref string\"\n }\n\n var fieldRef = s.slice(0, n),\n docRef = s.slice(n + 1)\n\n return new lunr.FieldRef (docRef, fieldRef, s)\n}\n\nlunr.FieldRef.prototype.toString = function () {\n if (this._stringValue == undefined) {\n this._stringValue = this.fieldName + lunr.FieldRef.joiner + this.docRef\n }\n\n return this._stringValue\n}\n/*!\n * lunr.Set\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A lunr set.\n *\n * @constructor\n */\nlunr.Set = function (elements) {\n this.elements = Object.create(null)\n\n if (elements) {\n this.length = elements.length\n\n for (var i = 0; i < this.length; i++) {\n this.elements[elements[i]] = true\n }\n } else {\n this.length = 0\n }\n}\n\n/**\n * A complete set that contains all elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.complete = {\n intersect: function (other) {\n return other\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return true\n }\n}\n\n/**\n * An empty set that contains no elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.empty = {\n intersect: function () {\n return this\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return false\n }\n}\n\n/**\n * Returns true if this set contains the specified object.\n *\n * @param {object} object - Object whose presence in this set is to be tested.\n * @returns {boolean} - True if this set contains the specified object.\n */\nlunr.Set.prototype.contains = function (object) {\n return !!this.elements[object]\n}\n\n/**\n * Returns a new set containing only the elements that are present in both\n * this set and the specified set.\n *\n * @param {lunr.Set} other - set to intersect with this set.\n * @returns {lunr.Set} a new set that is the intersection of this and the specified set.\n */\n\nlunr.Set.prototype.intersect = function (other) {\n var a, b, elements, intersection = []\n\n if (other === lunr.Set.complete) {\n return this\n }\n\n if (other === lunr.Set.empty) {\n return other\n }\n\n if (this.length < other.length) {\n a = this\n b = other\n } else {\n a = other\n b = this\n }\n\n elements = Object.keys(a.elements)\n\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i]\n if (element in b.elements) {\n intersection.push(element)\n }\n }\n\n return new lunr.Set (intersection)\n}\n\n/**\n * Returns a new set combining the elements of this and the specified set.\n *\n * @param {lunr.Set} other - set to union with this set.\n * @return {lunr.Set} a new set that is the union of this and the specified set.\n */\n\nlunr.Set.prototype.union = function (other) {\n if (other === lunr.Set.complete) {\n return lunr.Set.complete\n }\n\n if (other === lunr.Set.empty) {\n return this\n }\n\n return new lunr.Set(Object.keys(this.elements).concat(Object.keys(other.elements)))\n}\n/**\n * A function to calculate the inverse document frequency for\n * a posting. This is shared between the builder and the index\n *\n * @private\n * @param {object} posting - The posting for a given term\n * @param {number} documentCount - The total number of documents.\n */\nlunr.idf = function (posting, documentCount) {\n var documentsWithTerm = 0\n\n for (var fieldName in posting) {\n if (fieldName == '_index') continue // Ignore the term index, its not a field\n documentsWithTerm += Object.keys(posting[fieldName]).length\n }\n\n var x = (documentCount - documentsWithTerm + 0.5) / (documentsWithTerm + 0.5)\n\n return Math.log(1 + Math.abs(x))\n}\n\n/**\n * A token wraps a string representation of a token\n * as it is passed through the text processing pipeline.\n *\n * @constructor\n * @param {string} [str=''] - The string token being wrapped.\n * @param {object} [metadata={}] - Metadata associated with this token.\n */\nlunr.Token = function (str, metadata) {\n this.str = str || \"\"\n this.metadata = metadata || {}\n}\n\n/**\n * Returns the token string that is being wrapped by this object.\n *\n * @returns {string}\n */\nlunr.Token.prototype.toString = function () {\n return this.str\n}\n\n/**\n * A token update function is used when updating or optionally\n * when cloning a token.\n *\n * @callback lunr.Token~updateFunction\n * @param {string} str - The string representation of the token.\n * @param {Object} metadata - All metadata associated with this token.\n */\n\n/**\n * Applies the given function to the wrapped string token.\n *\n * @example\n * token.update(function (str, metadata) {\n * return str.toUpperCase()\n * })\n *\n * @param {lunr.Token~updateFunction} fn - A function to apply to the token string.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.update = function (fn) {\n this.str = fn(this.str, this.metadata)\n return this\n}\n\n/**\n * Creates a clone of this token. Optionally a function can be\n * applied to the cloned token.\n *\n * @param {lunr.Token~updateFunction} [fn] - An optional function to apply to the cloned token.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.clone = function (fn) {\n fn = fn || function (s) { return s }\n return new lunr.Token (fn(this.str, this.metadata), this.metadata)\n}\n/*!\n * lunr.tokenizer\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A function for splitting a string into tokens ready to be inserted into\n * the search index. Uses `lunr.tokenizer.separator` to split strings, change\n * the value of this property to change how strings are split into tokens.\n *\n * This tokenizer will convert its parameter to a string by calling `toString` and\n * then will split this string on the character in `lunr.tokenizer.separator`.\n * Arrays will have their elements converted to strings and wrapped in a lunr.Token.\n *\n * Optional metadata can be passed to the tokenizer, this metadata will be cloned and\n * added as metadata to every token that is created from the object to be tokenized.\n *\n * @static\n * @param {?(string|object|object[])} obj - The object to convert into tokens\n * @param {?object} metadata - Optional metadata to associate with every token\n * @returns {lunr.Token[]}\n * @see {@link lunr.Pipeline}\n */\nlunr.tokenizer = function (obj, metadata) {\n if (obj == null || obj == undefined) {\n return []\n }\n\n if (Array.isArray(obj)) {\n return obj.map(function (t) {\n return new lunr.Token(\n lunr.utils.asString(t).toLowerCase(),\n lunr.utils.clone(metadata)\n )\n })\n }\n\n var str = obj.toString().toLowerCase(),\n len = str.length,\n tokens = []\n\n for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {\n var char = str.charAt(sliceEnd),\n sliceLength = sliceEnd - sliceStart\n\n if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) {\n\n if (sliceLength > 0) {\n var tokenMetadata = lunr.utils.clone(metadata) || {}\n tokenMetadata[\"position\"] = [sliceStart, sliceLength]\n tokenMetadata[\"index\"] = tokens.length\n\n tokens.push(\n new lunr.Token (\n str.slice(sliceStart, sliceEnd),\n tokenMetadata\n )\n )\n }\n\n sliceStart = sliceEnd + 1\n }\n\n }\n\n return tokens\n}\n\n/**\n * The separator used to split a string into tokens. Override this property to change the behaviour of\n * `lunr.tokenizer` behaviour when tokenizing strings. By default this splits on whitespace and hyphens.\n *\n * @static\n * @see lunr.tokenizer\n */\nlunr.tokenizer.separator = /[\\s\\-]+/\n/*!\n * lunr.Pipeline\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.Pipelines maintain an ordered list of functions to be applied to all\n * tokens in documents entering the search index and queries being ran against\n * the index.\n *\n * An instance of lunr.Index created with the lunr shortcut will contain a\n * pipeline with a stop word filter and an English language stemmer. Extra\n * functions can be added before or after either of these functions or these\n * default functions can be removed.\n *\n * When run the pipeline will call each function in turn, passing a token, the\n * index of that token in the original list of all tokens and finally a list of\n * all the original tokens.\n *\n * The output of functions in the pipeline will be passed to the next function\n * in the pipeline. To exclude a token from entering the index the function\n * should return undefined, the rest of the pipeline will not be called with\n * this token.\n *\n * For serialisation of pipelines to work, all functions used in an instance of\n * a pipeline should be registered with lunr.Pipeline. Registered functions can\n * then be loaded. If trying to load a serialised pipeline that uses functions\n * that are not registered an error will be thrown.\n *\n * If not planning on serialising the pipeline then registering pipeline functions\n * is not necessary.\n *\n * @constructor\n */\nlunr.Pipeline = function () {\n this._stack = []\n}\n\nlunr.Pipeline.registeredFunctions = Object.create(null)\n\n/**\n * A pipeline function maps lunr.Token to lunr.Token. A lunr.Token contains the token\n * string as well as all known metadata. A pipeline function can mutate the token string\n * or mutate (or add) metadata for a given token.\n *\n * A pipeline function can indicate that the passed token should be discarded by returning\n * null, undefined or an empty string. This token will not be passed to any downstream pipeline\n * functions and will not be added to the index.\n *\n * Multiple tokens can be returned by returning an array of tokens. Each token will be passed\n * to any downstream pipeline functions and all will returned tokens will be added to the index.\n *\n * Any number of pipeline functions may be chained together using a lunr.Pipeline.\n *\n * @interface lunr.PipelineFunction\n * @param {lunr.Token} token - A token from the document being processed.\n * @param {number} i - The index of this token in the complete list of tokens for this document/field.\n * @param {lunr.Token[]} tokens - All tokens for this document/field.\n * @returns {(?lunr.Token|lunr.Token[])}\n */\n\n/**\n * Register a function with the pipeline.\n *\n * Functions that are used in the pipeline should be registered if the pipeline\n * needs to be serialised, or a serialised pipeline needs to be loaded.\n *\n * Registering a function does not add it to a pipeline, functions must still be\n * added to instances of the pipeline for them to be used when running a pipeline.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @param {String} label - The label to register this function with\n */\nlunr.Pipeline.registerFunction = function (fn, label) {\n if (label in this.registeredFunctions) {\n lunr.utils.warn('Overwriting existing registered function: ' + label)\n }\n\n fn.label = label\n lunr.Pipeline.registeredFunctions[fn.label] = fn\n}\n\n/**\n * Warns if the function is not registered as a Pipeline function.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @private\n */\nlunr.Pipeline.warnIfFunctionNotRegistered = function (fn) {\n var isRegistered = fn.label && (fn.label in this.registeredFunctions)\n\n if (!isRegistered) {\n lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\\n', fn)\n }\n}\n\n/**\n * Loads a previously serialised pipeline.\n *\n * All functions to be loaded must already be registered with lunr.Pipeline.\n * If any function from the serialised data has not been registered then an\n * error will be thrown.\n *\n * @param {Object} serialised - The serialised pipeline to load.\n * @returns {lunr.Pipeline}\n */\nlunr.Pipeline.load = function (serialised) {\n var pipeline = new lunr.Pipeline\n\n serialised.forEach(function (fnName) {\n var fn = lunr.Pipeline.registeredFunctions[fnName]\n\n if (fn) {\n pipeline.add(fn)\n } else {\n throw new Error('Cannot load unregistered function: ' + fnName)\n }\n })\n\n return pipeline\n}\n\n/**\n * Adds new functions to the end of the pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction[]} functions - Any number of functions to add to the pipeline.\n */\nlunr.Pipeline.prototype.add = function () {\n var fns = Array.prototype.slice.call(arguments)\n\n fns.forEach(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n this._stack.push(fn)\n }, this)\n}\n\n/**\n * Adds a single function after a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.after = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n pos = pos + 1\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Adds a single function before a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.before = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Removes a function from the pipeline.\n *\n * @param {lunr.PipelineFunction} fn The function to remove from the pipeline.\n */\nlunr.Pipeline.prototype.remove = function (fn) {\n var pos = this._stack.indexOf(fn)\n if (pos == -1) {\n return\n }\n\n this._stack.splice(pos, 1)\n}\n\n/**\n * Runs the current list of functions that make up the pipeline against the\n * passed tokens.\n *\n * @param {Array} tokens The tokens to run through the pipeline.\n * @returns {Array}\n */\nlunr.Pipeline.prototype.run = function (tokens) {\n var stackLength = this._stack.length\n\n for (var i = 0; i < stackLength; i++) {\n var fn = this._stack[i]\n var memo = []\n\n for (var j = 0; j < tokens.length; j++) {\n var result = fn(tokens[j], j, tokens)\n\n if (result === null || result === void 0 || result === '') continue\n\n if (Array.isArray(result)) {\n for (var k = 0; k < result.length; k++) {\n memo.push(result[k])\n }\n } else {\n memo.push(result)\n }\n }\n\n tokens = memo\n }\n\n return tokens\n}\n\n/**\n * Convenience method for passing a string through a pipeline and getting\n * strings out. This method takes care of wrapping the passed string in a\n * token and mapping the resulting tokens back to strings.\n *\n * @param {string} str - The string to pass through the pipeline.\n * @param {?object} metadata - Optional metadata to associate with the token\n * passed to the pipeline.\n * @returns {string[]}\n */\nlunr.Pipeline.prototype.runString = function (str, metadata) {\n var token = new lunr.Token (str, metadata)\n\n return this.run([token]).map(function (t) {\n return t.toString()\n })\n}\n\n/**\n * Resets the pipeline by removing any existing processors.\n *\n */\nlunr.Pipeline.prototype.reset = function () {\n this._stack = []\n}\n\n/**\n * Returns a representation of the pipeline ready for serialisation.\n *\n * Logs a warning if the function has not been registered.\n *\n * @returns {Array}\n */\nlunr.Pipeline.prototype.toJSON = function () {\n return this._stack.map(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n\n return fn.label\n })\n}\n/*!\n * lunr.Vector\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A vector is used to construct the vector space of documents and queries. These\n * vectors support operations to determine the similarity between two documents or\n * a document and a query.\n *\n * Normally no parameters are required for initializing a vector, but in the case of\n * loading a previously dumped vector the raw elements can be provided to the constructor.\n *\n * For performance reasons vectors are implemented with a flat array, where an elements\n * index is immediately followed by its value. E.g. [index, value, index, value]. This\n * allows the underlying array to be as sparse as possible and still offer decent\n * performance when being used for vector calculations.\n *\n * @constructor\n * @param {Number[]} [elements] - The flat list of element index and element value pairs.\n */\nlunr.Vector = function (elements) {\n this._magnitude = 0\n this.elements = elements || []\n}\n\n\n/**\n * Calculates the position within the vector to insert a given index.\n *\n * This is used internally by insert and upsert. If there are duplicate indexes then\n * the position is returned as if the value for that index were to be updated, but it\n * is the callers responsibility to check whether there is a duplicate at that index\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @returns {Number}\n */\nlunr.Vector.prototype.positionForIndex = function (index) {\n // For an empty vector the tuple can be inserted at the beginning\n if (this.elements.length == 0) {\n return 0\n }\n\n var start = 0,\n end = this.elements.length / 2,\n sliceLength = end - start,\n pivotPoint = Math.floor(sliceLength / 2),\n pivotIndex = this.elements[pivotPoint * 2]\n\n while (sliceLength > 1) {\n if (pivotIndex < index) {\n start = pivotPoint\n }\n\n if (pivotIndex > index) {\n end = pivotPoint\n }\n\n if (pivotIndex == index) {\n break\n }\n\n sliceLength = end - start\n pivotPoint = start + Math.floor(sliceLength / 2)\n pivotIndex = this.elements[pivotPoint * 2]\n }\n\n if (pivotIndex == index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex > index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex < index) {\n return (pivotPoint + 1) * 2\n }\n}\n\n/**\n * Inserts an element at an index within the vector.\n *\n * Does not allow duplicates, will throw an error if there is already an entry\n * for this index.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n */\nlunr.Vector.prototype.insert = function (insertIdx, val) {\n this.upsert(insertIdx, val, function () {\n throw \"duplicate index\"\n })\n}\n\n/**\n * Inserts or updates an existing index within the vector.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n * @param {function} fn - A function that is called for updates, the existing value and the\n * requested value are passed as arguments\n */\nlunr.Vector.prototype.upsert = function (insertIdx, val, fn) {\n this._magnitude = 0\n var position = this.positionForIndex(insertIdx)\n\n if (this.elements[position] == insertIdx) {\n this.elements[position + 1] = fn(this.elements[position + 1], val)\n } else {\n this.elements.splice(position, 0, insertIdx, val)\n }\n}\n\n/**\n * Calculates the magnitude of this vector.\n *\n * @returns {Number}\n */\nlunr.Vector.prototype.magnitude = function () {\n if (this._magnitude) return this._magnitude\n\n var sumOfSquares = 0,\n elementsLength = this.elements.length\n\n for (var i = 1; i < elementsLength; i += 2) {\n var val = this.elements[i]\n sumOfSquares += val * val\n }\n\n return this._magnitude = Math.sqrt(sumOfSquares)\n}\n\n/**\n * Calculates the dot product of this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The vector to compute the dot product with.\n * @returns {Number}\n */\nlunr.Vector.prototype.dot = function (otherVector) {\n var dotProduct = 0,\n a = this.elements, b = otherVector.elements,\n aLen = a.length, bLen = b.length,\n aVal = 0, bVal = 0,\n i = 0, j = 0\n\n while (i < aLen && j < bLen) {\n aVal = a[i], bVal = b[j]\n if (aVal < bVal) {\n i += 2\n } else if (aVal > bVal) {\n j += 2\n } else if (aVal == bVal) {\n dotProduct += a[i + 1] * b[j + 1]\n i += 2\n j += 2\n }\n }\n\n return dotProduct\n}\n\n/**\n * Calculates the similarity between this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The other vector to calculate the\n * similarity with.\n * @returns {Number}\n */\nlunr.Vector.prototype.similarity = function (otherVector) {\n return this.dot(otherVector) / this.magnitude() || 0\n}\n\n/**\n * Converts the vector to an array of the elements within the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toArray = function () {\n var output = new Array (this.elements.length / 2)\n\n for (var i = 1, j = 0; i < this.elements.length; i += 2, j++) {\n output[j] = this.elements[i]\n }\n\n return output\n}\n\n/**\n * A JSON serializable representation of the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toJSON = function () {\n return this.elements\n}\n/* eslint-disable */\n/*!\n * lunr.stemmer\n * Copyright (C) 2019 Oliver Nightingale\n * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt\n */\n\n/**\n * lunr.stemmer is an english language stemmer, this is a JavaScript\n * implementation of the PorterStemmer taken from http://tartarus.org/~martin\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token - The string to stem\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n * @function\n */\nlunr.stemmer = (function(){\n var step2list = {\n \"ational\" : \"ate\",\n \"tional\" : \"tion\",\n \"enci\" : \"ence\",\n \"anci\" : \"ance\",\n \"izer\" : \"ize\",\n \"bli\" : \"ble\",\n \"alli\" : \"al\",\n \"entli\" : \"ent\",\n \"eli\" : \"e\",\n \"ousli\" : \"ous\",\n \"ization\" : \"ize\",\n \"ation\" : \"ate\",\n \"ator\" : \"ate\",\n \"alism\" : \"al\",\n \"iveness\" : \"ive\",\n \"fulness\" : \"ful\",\n \"ousness\" : \"ous\",\n \"aliti\" : \"al\",\n \"iviti\" : \"ive\",\n \"biliti\" : \"ble\",\n \"logi\" : \"log\"\n },\n\n step3list = {\n \"icate\" : \"ic\",\n \"ative\" : \"\",\n \"alize\" : \"al\",\n \"iciti\" : \"ic\",\n \"ical\" : \"ic\",\n \"ful\" : \"\",\n \"ness\" : \"\"\n },\n\n c = \"[^aeiou]\", // consonant\n v = \"[aeiouy]\", // vowel\n C = c + \"[^aeiouy]*\", // consonant sequence\n V = v + \"[aeiou]*\", // vowel sequence\n\n mgr0 = \"^(\" + C + \")?\" + V + C, // [C]VC... is m>0\n meq1 = \"^(\" + C + \")?\" + V + C + \"(\" + V + \")?$\", // [C]VC[V] is m=1\n mgr1 = \"^(\" + C + \")?\" + V + C + V + C, // [C]VCVC... is m>1\n s_v = \"^(\" + C + \")?\" + v; // vowel in stem\n\n var re_mgr0 = new RegExp(mgr0);\n var re_mgr1 = new RegExp(mgr1);\n var re_meq1 = new RegExp(meq1);\n var re_s_v = new RegExp(s_v);\n\n var re_1a = /^(.+?)(ss|i)es$/;\n var re2_1a = /^(.+?)([^s])s$/;\n var re_1b = /^(.+?)eed$/;\n var re2_1b = /^(.+?)(ed|ing)$/;\n var re_1b_2 = /.$/;\n var re2_1b_2 = /(at|bl|iz)$/;\n var re3_1b_2 = new RegExp(\"([^aeiouylsz])\\\\1$\");\n var re4_1b_2 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var re_1c = /^(.+?[^aeiou])y$/;\n var re_2 = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;\n\n var re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;\n\n var re_4 = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;\n var re2_4 = /^(.+?)(s|t)(ion)$/;\n\n var re_5 = /^(.+?)e$/;\n var re_5_1 = /ll$/;\n var re3_5 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var porterStemmer = function porterStemmer(w) {\n var stem,\n suffix,\n firstch,\n re,\n re2,\n re3,\n re4;\n\n if (w.length < 3) { return w; }\n\n firstch = w.substr(0,1);\n if (firstch == \"y\") {\n w = firstch.toUpperCase() + w.substr(1);\n }\n\n // Step 1a\n re = re_1a\n re2 = re2_1a;\n\n if (re.test(w)) { w = w.replace(re,\"$1$2\"); }\n else if (re2.test(w)) { w = w.replace(re2,\"$1$2\"); }\n\n // Step 1b\n re = re_1b;\n re2 = re2_1b;\n if (re.test(w)) {\n var fp = re.exec(w);\n re = re_mgr0;\n if (re.test(fp[1])) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1];\n re2 = re_s_v;\n if (re2.test(stem)) {\n w = stem;\n re2 = re2_1b_2;\n re3 = re3_1b_2;\n re4 = re4_1b_2;\n if (re2.test(w)) { w = w + \"e\"; }\n else if (re3.test(w)) { re = re_1b_2; w = w.replace(re,\"\"); }\n else if (re4.test(w)) { w = w + \"e\"; }\n }\n }\n\n // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say)\n re = re_1c;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n w = stem + \"i\";\n }\n\n // Step 2\n re = re_2;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step2list[suffix];\n }\n }\n\n // Step 3\n re = re_3;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step3list[suffix];\n }\n }\n\n // Step 4\n re = re_4;\n re2 = re2_4;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n if (re.test(stem)) {\n w = stem;\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1] + fp[2];\n re2 = re_mgr1;\n if (re2.test(stem)) {\n w = stem;\n }\n }\n\n // Step 5\n re = re_5;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n re2 = re_meq1;\n re3 = re3_5;\n if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {\n w = stem;\n }\n }\n\n re = re_5_1;\n re2 = re_mgr1;\n if (re.test(w) && re2.test(w)) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n\n // and turn initial Y back to y\n\n if (firstch == \"y\") {\n w = firstch.toLowerCase() + w.substr(1);\n }\n\n return w;\n };\n\n return function (token) {\n return token.update(porterStemmer);\n }\n})();\n\nlunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer')\n/*!\n * lunr.stopWordFilter\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.generateStopWordFilter builds a stopWordFilter function from the provided\n * list of stop words.\n *\n * The built in lunr.stopWordFilter is built using this generator and can be used\n * to generate custom stopWordFilters for applications or non English languages.\n *\n * @function\n * @param {Array} token The token to pass through the filter\n * @returns {lunr.PipelineFunction}\n * @see lunr.Pipeline\n * @see lunr.stopWordFilter\n */\nlunr.generateStopWordFilter = function (stopWords) {\n var words = stopWords.reduce(function (memo, stopWord) {\n memo[stopWord] = stopWord\n return memo\n }, {})\n\n return function (token) {\n if (token && words[token.toString()] !== token.toString()) return token\n }\n}\n\n/**\n * lunr.stopWordFilter is an English language stop word list filter, any words\n * contained in the list will not be passed through the filter.\n *\n * This is intended to be used in the Pipeline. If the token does not pass the\n * filter then undefined will be returned.\n *\n * @function\n * @implements {lunr.PipelineFunction}\n * @params {lunr.Token} token - A token to check for being a stop word.\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n */\nlunr.stopWordFilter = lunr.generateStopWordFilter([\n 'a',\n 'able',\n 'about',\n 'across',\n 'after',\n 'all',\n 'almost',\n 'also',\n 'am',\n 'among',\n 'an',\n 'and',\n 'any',\n 'are',\n 'as',\n 'at',\n 'be',\n 'because',\n 'been',\n 'but',\n 'by',\n 'can',\n 'cannot',\n 'could',\n 'dear',\n 'did',\n 'do',\n 'does',\n 'either',\n 'else',\n 'ever',\n 'every',\n 'for',\n 'from',\n 'get',\n 'got',\n 'had',\n 'has',\n 'have',\n 'he',\n 'her',\n 'hers',\n 'him',\n 'his',\n 'how',\n 'however',\n 'i',\n 'if',\n 'in',\n 'into',\n 'is',\n 'it',\n 'its',\n 'just',\n 'least',\n 'let',\n 'like',\n 'likely',\n 'may',\n 'me',\n 'might',\n 'most',\n 'must',\n 'my',\n 'neither',\n 'no',\n 'nor',\n 'not',\n 'of',\n 'off',\n 'often',\n 'on',\n 'only',\n 'or',\n 'other',\n 'our',\n 'own',\n 'rather',\n 'said',\n 'say',\n 'says',\n 'she',\n 'should',\n 'since',\n 'so',\n 'some',\n 'than',\n 'that',\n 'the',\n 'their',\n 'them',\n 'then',\n 'there',\n 'these',\n 'they',\n 'this',\n 'tis',\n 'to',\n 'too',\n 'twas',\n 'us',\n 'wants',\n 'was',\n 'we',\n 'were',\n 'what',\n 'when',\n 'where',\n 'which',\n 'while',\n 'who',\n 'whom',\n 'why',\n 'will',\n 'with',\n 'would',\n 'yet',\n 'you',\n 'your'\n])\n\nlunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter')\n/*!\n * lunr.trimmer\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.trimmer is a pipeline function for trimming non word\n * characters from the beginning and end of tokens before they\n * enter the index.\n *\n * This implementation may not work correctly for non latin\n * characters and should either be removed or adapted for use\n * with languages with non-latin characters.\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token The token to pass through the filter\n * @returns {lunr.Token}\n * @see lunr.Pipeline\n */\nlunr.trimmer = function (token) {\n return token.update(function (s) {\n return s.replace(/^\\W+/, '').replace(/\\W+$/, '')\n })\n}\n\nlunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer')\n/*!\n * lunr.TokenSet\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A token set is used to store the unique list of all tokens\n * within an index. Token sets are also used to represent an\n * incoming query to the index, this query token set and index\n * token set are then intersected to find which tokens to look\n * up in the inverted index.\n *\n * A token set can hold multiple tokens, as in the case of the\n * index token set, or it can hold a single token as in the\n * case of a simple query token set.\n *\n * Additionally token sets are used to perform wildcard matching.\n * Leading, contained and trailing wildcards are supported, and\n * from this edit distance matching can also be provided.\n *\n * Token sets are implemented as a minimal finite state automata,\n * where both common prefixes and suffixes are shared between tokens.\n * This helps to reduce the space used for storing the token set.\n *\n * @constructor\n */\nlunr.TokenSet = function () {\n this.final = false\n this.edges = {}\n this.id = lunr.TokenSet._nextId\n lunr.TokenSet._nextId += 1\n}\n\n/**\n * Keeps track of the next, auto increment, identifier to assign\n * to a new tokenSet.\n *\n * TokenSets require a unique identifier to be correctly minimised.\n *\n * @private\n */\nlunr.TokenSet._nextId = 1\n\n/**\n * Creates a TokenSet instance from the given sorted array of words.\n *\n * @param {String[]} arr - A sorted array of strings to create the set from.\n * @returns {lunr.TokenSet}\n * @throws Will throw an error if the input array is not sorted.\n */\nlunr.TokenSet.fromArray = function (arr) {\n var builder = new lunr.TokenSet.Builder\n\n for (var i = 0, len = arr.length; i < len; i++) {\n builder.insert(arr[i])\n }\n\n builder.finish()\n return builder.root\n}\n\n/**\n * Creates a token set from a query clause.\n *\n * @private\n * @param {Object} clause - A single clause from lunr.Query.\n * @param {string} clause.term - The query clause term.\n * @param {number} [clause.editDistance] - The optional edit distance for the term.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromClause = function (clause) {\n if ('editDistance' in clause) {\n return lunr.TokenSet.fromFuzzyString(clause.term, clause.editDistance)\n } else {\n return lunr.TokenSet.fromString(clause.term)\n }\n}\n\n/**\n * Creates a token set representing a single string with a specified\n * edit distance.\n *\n * Insertions, deletions, substitutions and transpositions are each\n * treated as an edit distance of 1.\n *\n * Increasing the allowed edit distance will have a dramatic impact\n * on the performance of both creating and intersecting these TokenSets.\n * It is advised to keep the edit distance less than 3.\n *\n * @param {string} str - The string to create the token set from.\n * @param {number} editDistance - The allowed edit distance to match.\n * @returns {lunr.Vector}\n */\nlunr.TokenSet.fromFuzzyString = function (str, editDistance) {\n var root = new lunr.TokenSet\n\n var stack = [{\n node: root,\n editsRemaining: editDistance,\n str: str\n }]\n\n while (stack.length) {\n var frame = stack.pop()\n\n // no edit\n if (frame.str.length > 0) {\n var char = frame.str.charAt(0),\n noEditNode\n\n if (char in frame.node.edges) {\n noEditNode = frame.node.edges[char]\n } else {\n noEditNode = new lunr.TokenSet\n frame.node.edges[char] = noEditNode\n }\n\n if (frame.str.length == 1) {\n noEditNode.final = true\n }\n\n stack.push({\n node: noEditNode,\n editsRemaining: frame.editsRemaining,\n str: frame.str.slice(1)\n })\n }\n\n if (frame.editsRemaining == 0) {\n continue\n }\n\n // insertion\n if (\"*\" in frame.node.edges) {\n var insertionNode = frame.node.edges[\"*\"]\n } else {\n var insertionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = insertionNode\n }\n\n if (frame.str.length == 0) {\n insertionNode.final = true\n }\n\n stack.push({\n node: insertionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str\n })\n\n // deletion\n // can only do a deletion if we have enough edits remaining\n // and if there are characters left to delete in the string\n if (frame.str.length > 1) {\n stack.push({\n node: frame.node,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // deletion\n // just removing the last character from the str\n if (frame.str.length == 1) {\n frame.node.final = true\n }\n\n // substitution\n // can only do a substitution if we have enough edits remaining\n // and if there are characters left to substitute\n if (frame.str.length >= 1) {\n if (\"*\" in frame.node.edges) {\n var substitutionNode = frame.node.edges[\"*\"]\n } else {\n var substitutionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = substitutionNode\n }\n\n if (frame.str.length == 1) {\n substitutionNode.final = true\n }\n\n stack.push({\n node: substitutionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // transposition\n // can only do a transposition if there are edits remaining\n // and there are enough characters to transpose\n if (frame.str.length > 1) {\n var charA = frame.str.charAt(0),\n charB = frame.str.charAt(1),\n transposeNode\n\n if (charB in frame.node.edges) {\n transposeNode = frame.node.edges[charB]\n } else {\n transposeNode = new lunr.TokenSet\n frame.node.edges[charB] = transposeNode\n }\n\n if (frame.str.length == 1) {\n transposeNode.final = true\n }\n\n stack.push({\n node: transposeNode,\n editsRemaining: frame.editsRemaining - 1,\n str: charA + frame.str.slice(2)\n })\n }\n }\n\n return root\n}\n\n/**\n * Creates a TokenSet from a string.\n *\n * The string may contain one or more wildcard characters (*)\n * that will allow wildcard matching when intersecting with\n * another TokenSet.\n *\n * @param {string} str - The string to create a TokenSet from.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromString = function (str) {\n var node = new lunr.TokenSet,\n root = node\n\n /*\n * Iterates through all characters within the passed string\n * appending a node for each character.\n *\n * When a wildcard character is found then a self\n * referencing edge is introduced to continually match\n * any number of any characters.\n */\n for (var i = 0, len = str.length; i < len; i++) {\n var char = str[i],\n final = (i == len - 1)\n\n if (char == \"*\") {\n node.edges[char] = node\n node.final = final\n\n } else {\n var next = new lunr.TokenSet\n next.final = final\n\n node.edges[char] = next\n node = next\n }\n }\n\n return root\n}\n\n/**\n * Converts this TokenSet into an array of strings\n * contained within the TokenSet.\n *\n * This is not intended to be used on a TokenSet that\n * contains wildcards, in these cases the results are\n * undefined and are likely to cause an infinite loop.\n *\n * @returns {string[]}\n */\nlunr.TokenSet.prototype.toArray = function () {\n var words = []\n\n var stack = [{\n prefix: \"\",\n node: this\n }]\n\n while (stack.length) {\n var frame = stack.pop(),\n edges = Object.keys(frame.node.edges),\n len = edges.length\n\n if (frame.node.final) {\n /* In Safari, at this point the prefix is sometimes corrupted, see:\n * https://github.com/olivernn/lunr.js/issues/279 Calling any\n * String.prototype method forces Safari to \"cast\" this string to what\n * it's supposed to be, fixing the bug. */\n frame.prefix.charAt(0)\n words.push(frame.prefix)\n }\n\n for (var i = 0; i < len; i++) {\n var edge = edges[i]\n\n stack.push({\n prefix: frame.prefix.concat(edge),\n node: frame.node.edges[edge]\n })\n }\n }\n\n return words\n}\n\n/**\n * Generates a string representation of a TokenSet.\n *\n * This is intended to allow TokenSets to be used as keys\n * in objects, largely to aid the construction and minimisation\n * of a TokenSet. As such it is not designed to be a human\n * friendly representation of the TokenSet.\n *\n * @returns {string}\n */\nlunr.TokenSet.prototype.toString = function () {\n // NOTE: Using Object.keys here as this.edges is very likely\n // to enter 'hash-mode' with many keys being added\n //\n // avoiding a for-in loop here as it leads to the function\n // being de-optimised (at least in V8). From some simple\n // benchmarks the performance is comparable, but allowing\n // V8 to optimize may mean easy performance wins in the future.\n\n if (this._str) {\n return this._str\n }\n\n var str = this.final ? '1' : '0',\n labels = Object.keys(this.edges).sort(),\n len = labels.length\n\n for (var i = 0; i < len; i++) {\n var label = labels[i],\n node = this.edges[label]\n\n str = str + label + node.id\n }\n\n return str\n}\n\n/**\n * Returns a new TokenSet that is the intersection of\n * this TokenSet and the passed TokenSet.\n *\n * This intersection will take into account any wildcards\n * contained within the TokenSet.\n *\n * @param {lunr.TokenSet} b - An other TokenSet to intersect with.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.prototype.intersect = function (b) {\n var output = new lunr.TokenSet,\n frame = undefined\n\n var stack = [{\n qNode: b,\n output: output,\n node: this\n }]\n\n while (stack.length) {\n frame = stack.pop()\n\n // NOTE: As with the #toString method, we are using\n // Object.keys and a for loop instead of a for-in loop\n // as both of these objects enter 'hash' mode, causing\n // the function to be de-optimised in V8\n var qEdges = Object.keys(frame.qNode.edges),\n qLen = qEdges.length,\n nEdges = Object.keys(frame.node.edges),\n nLen = nEdges.length\n\n for (var q = 0; q < qLen; q++) {\n var qEdge = qEdges[q]\n\n for (var n = 0; n < nLen; n++) {\n var nEdge = nEdges[n]\n\n if (nEdge == qEdge || qEdge == '*') {\n var node = frame.node.edges[nEdge],\n qNode = frame.qNode.edges[qEdge],\n final = node.final && qNode.final,\n next = undefined\n\n if (nEdge in frame.output.edges) {\n // an edge already exists for this character\n // no need to create a new node, just set the finality\n // bit unless this node is already final\n next = frame.output.edges[nEdge]\n next.final = next.final || final\n\n } else {\n // no edge exists yet, must create one\n // set the finality bit and insert it\n // into the output\n next = new lunr.TokenSet\n next.final = final\n frame.output.edges[nEdge] = next\n }\n\n stack.push({\n qNode: qNode,\n output: next,\n node: node\n })\n }\n }\n }\n }\n\n return output\n}\nlunr.TokenSet.Builder = function () {\n this.previousWord = \"\"\n this.root = new lunr.TokenSet\n this.uncheckedNodes = []\n this.minimizedNodes = {}\n}\n\nlunr.TokenSet.Builder.prototype.insert = function (word) {\n var node,\n commonPrefix = 0\n\n if (word < this.previousWord) {\n throw new Error (\"Out of order word insertion\")\n }\n\n for (var i = 0; i < word.length && i < this.previousWord.length; i++) {\n if (word[i] != this.previousWord[i]) break\n commonPrefix++\n }\n\n this.minimize(commonPrefix)\n\n if (this.uncheckedNodes.length == 0) {\n node = this.root\n } else {\n node = this.uncheckedNodes[this.uncheckedNodes.length - 1].child\n }\n\n for (var i = commonPrefix; i < word.length; i++) {\n var nextNode = new lunr.TokenSet,\n char = word[i]\n\n node.edges[char] = nextNode\n\n this.uncheckedNodes.push({\n parent: node,\n char: char,\n child: nextNode\n })\n\n node = nextNode\n }\n\n node.final = true\n this.previousWord = word\n}\n\nlunr.TokenSet.Builder.prototype.finish = function () {\n this.minimize(0)\n}\n\nlunr.TokenSet.Builder.prototype.minimize = function (downTo) {\n for (var i = this.uncheckedNodes.length - 1; i >= downTo; i--) {\n var node = this.uncheckedNodes[i],\n childKey = node.child.toString()\n\n if (childKey in this.minimizedNodes) {\n node.parent.edges[node.char] = this.minimizedNodes[childKey]\n } else {\n // Cache the key for this node since\n // we know it can't change anymore\n node.child._str = childKey\n\n this.minimizedNodes[childKey] = node.child\n }\n\n this.uncheckedNodes.pop()\n }\n}\n/*!\n * lunr.Index\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * An index contains the built index of all documents and provides a query interface\n * to the index.\n *\n * Usually instances of lunr.Index will not be created using this constructor, instead\n * lunr.Builder should be used to construct new indexes, or lunr.Index.load should be\n * used to load previously built and serialized indexes.\n *\n * @constructor\n * @param {Object} attrs - The attributes of the built search index.\n * @param {Object} attrs.invertedIndex - An index of term/field to document reference.\n * @param {Object} attrs.fieldVectors - Field vectors\n * @param {lunr.TokenSet} attrs.tokenSet - An set of all corpus tokens.\n * @param {string[]} attrs.fields - The names of indexed document fields.\n * @param {lunr.Pipeline} attrs.pipeline - The pipeline to use for search terms.\n */\nlunr.Index = function (attrs) {\n this.invertedIndex = attrs.invertedIndex\n this.fieldVectors = attrs.fieldVectors\n this.tokenSet = attrs.tokenSet\n this.fields = attrs.fields\n this.pipeline = attrs.pipeline\n}\n\n/**\n * A result contains details of a document matching a search query.\n * @typedef {Object} lunr.Index~Result\n * @property {string} ref - The reference of the document this result represents.\n * @property {number} score - A number between 0 and 1 representing how similar this document is to the query.\n * @property {lunr.MatchData} matchData - Contains metadata about this match including which term(s) caused the match.\n */\n\n/**\n * Although lunr provides the ability to create queries using lunr.Query, it also provides a simple\n * query language which itself is parsed into an instance of lunr.Query.\n *\n * For programmatically building queries it is advised to directly use lunr.Query, the query language\n * is best used for human entered text rather than program generated text.\n *\n * At its simplest queries can just be a single term, e.g. `hello`, multiple terms are also supported\n * and will be combined with OR, e.g `hello world` will match documents that contain either 'hello'\n * or 'world', though those that contain both will rank higher in the results.\n *\n * Wildcards can be included in terms to match one or more unspecified characters, these wildcards can\n * be inserted anywhere within the term, and more than one wildcard can exist in a single term. Adding\n * wildcards will increase the number of documents that will be found but can also have a negative\n * impact on query performance, especially with wildcards at the beginning of a term.\n *\n * Terms can be restricted to specific fields, e.g. `title:hello`, only documents with the term\n * hello in the title field will match this query. Using a field not present in the index will lead\n * to an error being thrown.\n *\n * Modifiers can also be added to terms, lunr supports edit distance and boost modifiers on terms. A term\n * boost will make documents matching that term score higher, e.g. `foo^5`. Edit distance is also supported\n * to provide fuzzy matching, e.g. 'hello~2' will match documents with hello with an edit distance of 2.\n * Avoid large values for edit distance to improve query performance.\n *\n * Each term also supports a presence modifier. By default a term's presence in document is optional, however\n * this can be changed to either required or prohibited. For a term's presence to be required in a document the\n * term should be prefixed with a '+', e.g. `+foo bar` is a search for documents that must contain 'foo' and\n * optionally contain 'bar'. Conversely a leading '-' sets the terms presence to prohibited, i.e. it must not\n * appear in a document, e.g. `-foo bar` is a search for documents that do not contain 'foo' but may contain 'bar'.\n *\n * To escape special characters the backslash character '\\' can be used, this allows searches to include\n * characters that would normally be considered modifiers, e.g. `foo\\~2` will search for a term \"foo~2\" instead\n * of attempting to apply a boost of 2 to the search term \"foo\".\n *\n * @typedef {string} lunr.Index~QueryString\n * @example Simple single term query\n * hello\n * @example Multiple term query\n * hello world\n * @example term scoped to a field\n * title:hello\n * @example term with a boost of 10\n * hello^10\n * @example term with an edit distance of 2\n * hello~2\n * @example terms with presence modifiers\n * -foo +bar baz\n */\n\n/**\n * Performs a search against the index using lunr query syntax.\n *\n * Results will be returned sorted by their score, the most relevant results\n * will be returned first. For details on how the score is calculated, please see\n * the {@link https://lunrjs.com/guides/searching.html#scoring|guide}.\n *\n * For more programmatic querying use lunr.Index#query.\n *\n * @param {lunr.Index~QueryString} queryString - A string containing a lunr query.\n * @throws {lunr.QueryParseError} If the passed query string cannot be parsed.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.search = function (queryString) {\n return this.query(function (query) {\n var parser = new lunr.QueryParser(queryString, query)\n parser.parse()\n })\n}\n\n/**\n * A query builder callback provides a query object to be used to express\n * the query to perform on the index.\n *\n * @callback lunr.Index~queryBuilder\n * @param {lunr.Query} query - The query object to build up.\n * @this lunr.Query\n */\n\n/**\n * Performs a query against the index using the yielded lunr.Query object.\n *\n * If performing programmatic queries against the index, this method is preferred\n * over lunr.Index#search so as to avoid the additional query parsing overhead.\n *\n * A query object is yielded to the supplied function which should be used to\n * express the query to be run against the index.\n *\n * Note that although this function takes a callback parameter it is _not_ an\n * asynchronous operation, the callback is just yielded a query object to be\n * customized.\n *\n * @param {lunr.Index~queryBuilder} fn - A function that is used to build the query.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.query = function (fn) {\n // for each query clause\n // * process terms\n // * expand terms from token set\n // * find matching documents and metadata\n // * get document vectors\n // * score documents\n\n var query = new lunr.Query(this.fields),\n matchingFields = Object.create(null),\n queryVectors = Object.create(null),\n termFieldCache = Object.create(null),\n requiredMatches = Object.create(null),\n prohibitedMatches = Object.create(null)\n\n /*\n * To support field level boosts a query vector is created per\n * field. An empty vector is eagerly created to support negated\n * queries.\n */\n for (var i = 0; i < this.fields.length; i++) {\n queryVectors[this.fields[i]] = new lunr.Vector\n }\n\n fn.call(query, query)\n\n for (var i = 0; i < query.clauses.length; i++) {\n /*\n * Unless the pipeline has been disabled for this term, which is\n * the case for terms with wildcards, we need to pass the clause\n * term through the search pipeline. A pipeline returns an array\n * of processed terms. Pipeline functions may expand the passed\n * term, which means we may end up performing multiple index lookups\n * for a single query term.\n */\n var clause = query.clauses[i],\n terms = null,\n clauseMatches = lunr.Set.complete\n\n if (clause.usePipeline) {\n terms = this.pipeline.runString(clause.term, {\n fields: clause.fields\n })\n } else {\n terms = [clause.term]\n }\n\n for (var m = 0; m < terms.length; m++) {\n var term = terms[m]\n\n /*\n * Each term returned from the pipeline needs to use the same query\n * clause object, e.g. the same boost and or edit distance. The\n * simplest way to do this is to re-use the clause object but mutate\n * its term property.\n */\n clause.term = term\n\n /*\n * From the term in the clause we create a token set which will then\n * be used to intersect the indexes token set to get a list of terms\n * to lookup in the inverted index\n */\n var termTokenSet = lunr.TokenSet.fromClause(clause),\n expandedTerms = this.tokenSet.intersect(termTokenSet).toArray()\n\n /*\n * If a term marked as required does not exist in the tokenSet it is\n * impossible for the search to return any matches. We set all the field\n * scoped required matches set to empty and stop examining any further\n * clauses.\n */\n if (expandedTerms.length === 0 && clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = lunr.Set.empty\n }\n\n break\n }\n\n for (var j = 0; j < expandedTerms.length; j++) {\n /*\n * For each term get the posting and termIndex, this is required for\n * building the query vector.\n */\n var expandedTerm = expandedTerms[j],\n posting = this.invertedIndex[expandedTerm],\n termIndex = posting._index\n\n for (var k = 0; k < clause.fields.length; k++) {\n /*\n * For each field that this query term is scoped by (by default\n * all fields are in scope) we need to get all the document refs\n * that have this term in that field.\n *\n * The posting is the entry in the invertedIndex for the matching\n * term from above.\n */\n var field = clause.fields[k],\n fieldPosting = posting[field],\n matchingDocumentRefs = Object.keys(fieldPosting),\n termField = expandedTerm + \"/\" + field,\n matchingDocumentsSet = new lunr.Set(matchingDocumentRefs)\n\n /*\n * if the presence of this term is required ensure that the matching\n * documents are added to the set of required matches for this clause.\n *\n */\n if (clause.presence == lunr.Query.presence.REQUIRED) {\n clauseMatches = clauseMatches.union(matchingDocumentsSet)\n\n if (requiredMatches[field] === undefined) {\n requiredMatches[field] = lunr.Set.complete\n }\n }\n\n /*\n * if the presence of this term is prohibited ensure that the matching\n * documents are added to the set of prohibited matches for this field,\n * creating that set if it does not yet exist.\n */\n if (clause.presence == lunr.Query.presence.PROHIBITED) {\n if (prohibitedMatches[field] === undefined) {\n prohibitedMatches[field] = lunr.Set.empty\n }\n\n prohibitedMatches[field] = prohibitedMatches[field].union(matchingDocumentsSet)\n\n /*\n * Prohibited matches should not be part of the query vector used for\n * similarity scoring and no metadata should be extracted so we continue\n * to the next field\n */\n continue\n }\n\n /*\n * The query field vector is populated using the termIndex found for\n * the term and a unit value with the appropriate boost applied.\n * Using upsert because there could already be an entry in the vector\n * for the term we are working with. In that case we just add the scores\n * together.\n */\n queryVectors[field].upsert(termIndex, clause.boost, function (a, b) { return a + b })\n\n /**\n * If we've already seen this term, field combo then we've already collected\n * the matching documents and metadata, no need to go through all that again\n */\n if (termFieldCache[termField]) {\n continue\n }\n\n for (var l = 0; l < matchingDocumentRefs.length; l++) {\n /*\n * All metadata for this term/field/document triple\n * are then extracted and collected into an instance\n * of lunr.MatchData ready to be returned in the query\n * results\n */\n var matchingDocumentRef = matchingDocumentRefs[l],\n matchingFieldRef = new lunr.FieldRef (matchingDocumentRef, field),\n metadata = fieldPosting[matchingDocumentRef],\n fieldMatch\n\n if ((fieldMatch = matchingFields[matchingFieldRef]) === undefined) {\n matchingFields[matchingFieldRef] = new lunr.MatchData (expandedTerm, field, metadata)\n } else {\n fieldMatch.add(expandedTerm, field, metadata)\n }\n\n }\n\n termFieldCache[termField] = true\n }\n }\n }\n\n /**\n * If the presence was required we need to update the requiredMatches field sets.\n * We do this after all fields for the term have collected their matches because\n * the clause terms presence is required in _any_ of the fields not _all_ of the\n * fields.\n */\n if (clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = requiredMatches[field].intersect(clauseMatches)\n }\n }\n }\n\n /**\n * Need to combine the field scoped required and prohibited\n * matching documents into a global set of required and prohibited\n * matches\n */\n var allRequiredMatches = lunr.Set.complete,\n allProhibitedMatches = lunr.Set.empty\n\n for (var i = 0; i < this.fields.length; i++) {\n var field = this.fields[i]\n\n if (requiredMatches[field]) {\n allRequiredMatches = allRequiredMatches.intersect(requiredMatches[field])\n }\n\n if (prohibitedMatches[field]) {\n allProhibitedMatches = allProhibitedMatches.union(prohibitedMatches[field])\n }\n }\n\n var matchingFieldRefs = Object.keys(matchingFields),\n results = [],\n matches = Object.create(null)\n\n /*\n * If the query is negated (contains only prohibited terms)\n * we need to get _all_ fieldRefs currently existing in the\n * index. This is only done when we know that the query is\n * entirely prohibited terms to avoid any cost of getting all\n * fieldRefs unnecessarily.\n *\n * Additionally, blank MatchData must be created to correctly\n * populate the results.\n */\n if (query.isNegated()) {\n matchingFieldRefs = Object.keys(this.fieldVectors)\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n var matchingFieldRef = matchingFieldRefs[i]\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRef)\n matchingFields[matchingFieldRef] = new lunr.MatchData\n }\n }\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n /*\n * Currently we have document fields that match the query, but we\n * need to return documents. The matchData and scores are combined\n * from multiple fields belonging to the same document.\n *\n * Scores are calculated by field, using the query vectors created\n * above, and combined into a final document score using addition.\n */\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRefs[i]),\n docRef = fieldRef.docRef\n\n if (!allRequiredMatches.contains(docRef)) {\n continue\n }\n\n if (allProhibitedMatches.contains(docRef)) {\n continue\n }\n\n var fieldVector = this.fieldVectors[fieldRef],\n score = queryVectors[fieldRef.fieldName].similarity(fieldVector),\n docMatch\n\n if ((docMatch = matches[docRef]) !== undefined) {\n docMatch.score += score\n docMatch.matchData.combine(matchingFields[fieldRef])\n } else {\n var match = {\n ref: docRef,\n score: score,\n matchData: matchingFields[fieldRef]\n }\n matches[docRef] = match\n results.push(match)\n }\n }\n\n /*\n * Sort the results objects by score, highest first.\n */\n return results.sort(function (a, b) {\n return b.score - a.score\n })\n}\n\n/**\n * Prepares the index for JSON serialization.\n *\n * The schema for this JSON blob will be described in a\n * separate JSON schema file.\n *\n * @returns {Object}\n */\nlunr.Index.prototype.toJSON = function () {\n var invertedIndex = Object.keys(this.invertedIndex)\n .sort()\n .map(function (term) {\n return [term, this.invertedIndex[term]]\n }, this)\n\n var fieldVectors = Object.keys(this.fieldVectors)\n .map(function (ref) {\n return [ref, this.fieldVectors[ref].toJSON()]\n }, this)\n\n return {\n version: lunr.version,\n fields: this.fields,\n fieldVectors: fieldVectors,\n invertedIndex: invertedIndex,\n pipeline: this.pipeline.toJSON()\n }\n}\n\n/**\n * Loads a previously serialized lunr.Index\n *\n * @param {Object} serializedIndex - A previously serialized lunr.Index\n * @returns {lunr.Index}\n */\nlunr.Index.load = function (serializedIndex) {\n var attrs = {},\n fieldVectors = {},\n serializedVectors = serializedIndex.fieldVectors,\n invertedIndex = Object.create(null),\n serializedInvertedIndex = serializedIndex.invertedIndex,\n tokenSetBuilder = new lunr.TokenSet.Builder,\n pipeline = lunr.Pipeline.load(serializedIndex.pipeline)\n\n if (serializedIndex.version != lunr.version) {\n lunr.utils.warn(\"Version mismatch when loading serialised index. Current version of lunr '\" + lunr.version + \"' does not match serialized index '\" + serializedIndex.version + \"'\")\n }\n\n for (var i = 0; i < serializedVectors.length; i++) {\n var tuple = serializedVectors[i],\n ref = tuple[0],\n elements = tuple[1]\n\n fieldVectors[ref] = new lunr.Vector(elements)\n }\n\n for (var i = 0; i < serializedInvertedIndex.length; i++) {\n var tuple = serializedInvertedIndex[i],\n term = tuple[0],\n posting = tuple[1]\n\n tokenSetBuilder.insert(term)\n invertedIndex[term] = posting\n }\n\n tokenSetBuilder.finish()\n\n attrs.fields = serializedIndex.fields\n\n attrs.fieldVectors = fieldVectors\n attrs.invertedIndex = invertedIndex\n attrs.tokenSet = tokenSetBuilder.root\n attrs.pipeline = pipeline\n\n return new lunr.Index(attrs)\n}\n/*!\n * lunr.Builder\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.Builder performs indexing on a set of documents and\n * returns instances of lunr.Index ready for querying.\n *\n * All configuration of the index is done via the builder, the\n * fields to index, the document reference, the text processing\n * pipeline and document scoring parameters are all set on the\n * builder before indexing.\n *\n * @constructor\n * @property {string} _ref - Internal reference to the document reference field.\n * @property {string[]} _fields - Internal reference to the document fields to index.\n * @property {object} invertedIndex - The inverted index maps terms to document fields.\n * @property {object} documentTermFrequencies - Keeps track of document term frequencies.\n * @property {object} documentLengths - Keeps track of the length of documents added to the index.\n * @property {lunr.tokenizer} tokenizer - Function for splitting strings into tokens for indexing.\n * @property {lunr.Pipeline} pipeline - The pipeline performs text processing on tokens before indexing.\n * @property {lunr.Pipeline} searchPipeline - A pipeline for processing search terms before querying the index.\n * @property {number} documentCount - Keeps track of the total number of documents indexed.\n * @property {number} _b - A parameter to control field length normalization, setting this to 0 disabled normalization, 1 fully normalizes field lengths, the default value is 0.75.\n * @property {number} _k1 - A parameter to control how quickly an increase in term frequency results in term frequency saturation, the default value is 1.2.\n * @property {number} termIndex - A counter incremented for each unique term, used to identify a terms position in the vector space.\n * @property {array} metadataWhitelist - A list of metadata keys that have been whitelisted for entry in the index.\n */\nlunr.Builder = function () {\n this._ref = \"id\"\n this._fields = Object.create(null)\n this._documents = Object.create(null)\n this.invertedIndex = Object.create(null)\n this.fieldTermFrequencies = {}\n this.fieldLengths = {}\n this.tokenizer = lunr.tokenizer\n this.pipeline = new lunr.Pipeline\n this.searchPipeline = new lunr.Pipeline\n this.documentCount = 0\n this._b = 0.75\n this._k1 = 1.2\n this.termIndex = 0\n this.metadataWhitelist = []\n}\n\n/**\n * Sets the document field used as the document reference. Every document must have this field.\n * The type of this field in the document should be a string, if it is not a string it will be\n * coerced into a string by calling toString.\n *\n * The default ref is 'id'.\n *\n * The ref should _not_ be changed during indexing, it should be set before any documents are\n * added to the index. Changing it during indexing can lead to inconsistent results.\n *\n * @param {string} ref - The name of the reference field in the document.\n */\nlunr.Builder.prototype.ref = function (ref) {\n this._ref = ref\n}\n\n/**\n * A function that is used to extract a field from a document.\n *\n * Lunr expects a field to be at the top level of a document, if however the field\n * is deeply nested within a document an extractor function can be used to extract\n * the right field for indexing.\n *\n * @callback fieldExtractor\n * @param {object} doc - The document being added to the index.\n * @returns {?(string|object|object[])} obj - The object that will be indexed for this field.\n * @example Extracting a nested field\n * function (doc) { return doc.nested.field }\n */\n\n/**\n * Adds a field to the list of document fields that will be indexed. Every document being\n * indexed should have this field. Null values for this field in indexed documents will\n * not cause errors but will limit the chance of that document being retrieved by searches.\n *\n * All fields should be added before adding documents to the index. Adding fields after\n * a document has been indexed will have no effect on already indexed documents.\n *\n * Fields can be boosted at build time. This allows terms within that field to have more\n * importance when ranking search results. Use a field boost to specify that matches within\n * one field are more important than other fields.\n *\n * @param {string} fieldName - The name of a field to index in all documents.\n * @param {object} attributes - Optional attributes associated with this field.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this field.\n * @param {fieldExtractor} [attributes.extractor] - Function to extract a field from a document.\n * @throws {RangeError} fieldName cannot contain unsupported characters '/'\n */\nlunr.Builder.prototype.field = function (fieldName, attributes) {\n if (/\\//.test(fieldName)) {\n throw new RangeError (\"Field '\" + fieldName + \"' contains illegal character '/'\")\n }\n\n this._fields[fieldName] = attributes || {}\n}\n\n/**\n * A parameter to tune the amount of field length normalisation that is applied when\n * calculating relevance scores. A value of 0 will completely disable any normalisation\n * and a value of 1 will fully normalise field lengths. The default is 0.75. Values of b\n * will be clamped to the range 0 - 1.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.b = function (number) {\n if (number < 0) {\n this._b = 0\n } else if (number > 1) {\n this._b = 1\n } else {\n this._b = number\n }\n}\n\n/**\n * A parameter that controls the speed at which a rise in term frequency results in term\n * frequency saturation. The default value is 1.2. Setting this to a higher value will give\n * slower saturation levels, a lower value will result in quicker saturation.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.k1 = function (number) {\n this._k1 = number\n}\n\n/**\n * Adds a document to the index.\n *\n * Before adding fields to the index the index should have been fully setup, with the document\n * ref and all fields to index already having been specified.\n *\n * The document must have a field name as specified by the ref (by default this is 'id') and\n * it should have all fields defined for indexing, though null or undefined values will not\n * cause errors.\n *\n * Entire documents can be boosted at build time. Applying a boost to a document indicates that\n * this document should rank higher in search results than other documents.\n *\n * @param {object} doc - The document to add to the index.\n * @param {object} attributes - Optional attributes associated with this document.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this document.\n */\nlunr.Builder.prototype.add = function (doc, attributes) {\n var docRef = doc[this._ref],\n fields = Object.keys(this._fields)\n\n this._documents[docRef] = attributes || {}\n this.documentCount += 1\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i],\n extractor = this._fields[fieldName].extractor,\n field = extractor ? extractor(doc) : doc[fieldName],\n tokens = this.tokenizer(field, {\n fields: [fieldName]\n }),\n terms = this.pipeline.run(tokens),\n fieldRef = new lunr.FieldRef (docRef, fieldName),\n fieldTerms = Object.create(null)\n\n this.fieldTermFrequencies[fieldRef] = fieldTerms\n this.fieldLengths[fieldRef] = 0\n\n // store the length of this field for this document\n this.fieldLengths[fieldRef] += terms.length\n\n // calculate term frequencies for this field\n for (var j = 0; j < terms.length; j++) {\n var term = terms[j]\n\n if (fieldTerms[term] == undefined) {\n fieldTerms[term] = 0\n }\n\n fieldTerms[term] += 1\n\n // add to inverted index\n // create an initial posting if one doesn't exist\n if (this.invertedIndex[term] == undefined) {\n var posting = Object.create(null)\n posting[\"_index\"] = this.termIndex\n this.termIndex += 1\n\n for (var k = 0; k < fields.length; k++) {\n posting[fields[k]] = Object.create(null)\n }\n\n this.invertedIndex[term] = posting\n }\n\n // add an entry for this term/fieldName/docRef to the invertedIndex\n if (this.invertedIndex[term][fieldName][docRef] == undefined) {\n this.invertedIndex[term][fieldName][docRef] = Object.create(null)\n }\n\n // store all whitelisted metadata about this token in the\n // inverted index\n for (var l = 0; l < this.metadataWhitelist.length; l++) {\n var metadataKey = this.metadataWhitelist[l],\n metadata = term.metadata[metadataKey]\n\n if (this.invertedIndex[term][fieldName][docRef][metadataKey] == undefined) {\n this.invertedIndex[term][fieldName][docRef][metadataKey] = []\n }\n\n this.invertedIndex[term][fieldName][docRef][metadataKey].push(metadata)\n }\n }\n\n }\n}\n\n/**\n * Calculates the average document length for this index\n *\n * @private\n */\nlunr.Builder.prototype.calculateAverageFieldLengths = function () {\n\n var fieldRefs = Object.keys(this.fieldLengths),\n numberOfFields = fieldRefs.length,\n accumulator = {},\n documentsWithField = {}\n\n for (var i = 0; i < numberOfFields; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n field = fieldRef.fieldName\n\n documentsWithField[field] || (documentsWithField[field] = 0)\n documentsWithField[field] += 1\n\n accumulator[field] || (accumulator[field] = 0)\n accumulator[field] += this.fieldLengths[fieldRef]\n }\n\n var fields = Object.keys(this._fields)\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i]\n accumulator[fieldName] = accumulator[fieldName] / documentsWithField[fieldName]\n }\n\n this.averageFieldLength = accumulator\n}\n\n/**\n * Builds a vector space model of every document using lunr.Vector\n *\n * @private\n */\nlunr.Builder.prototype.createFieldVectors = function () {\n var fieldVectors = {},\n fieldRefs = Object.keys(this.fieldTermFrequencies),\n fieldRefsLength = fieldRefs.length,\n termIdfCache = Object.create(null)\n\n for (var i = 0; i < fieldRefsLength; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n fieldName = fieldRef.fieldName,\n fieldLength = this.fieldLengths[fieldRef],\n fieldVector = new lunr.Vector,\n termFrequencies = this.fieldTermFrequencies[fieldRef],\n terms = Object.keys(termFrequencies),\n termsLength = terms.length\n\n\n var fieldBoost = this._fields[fieldName].boost || 1,\n docBoost = this._documents[fieldRef.docRef].boost || 1\n\n for (var j = 0; j < termsLength; j++) {\n var term = terms[j],\n tf = termFrequencies[term],\n termIndex = this.invertedIndex[term]._index,\n idf, score, scoreWithPrecision\n\n if (termIdfCache[term] === undefined) {\n idf = lunr.idf(this.invertedIndex[term], this.documentCount)\n termIdfCache[term] = idf\n } else {\n idf = termIdfCache[term]\n }\n\n score = idf * ((this._k1 + 1) * tf) / (this._k1 * (1 - this._b + this._b * (fieldLength / this.averageFieldLength[fieldName])) + tf)\n score *= fieldBoost\n score *= docBoost\n scoreWithPrecision = Math.round(score * 1000) / 1000\n // Converts 1.23456789 to 1.234.\n // Reducing the precision so that the vectors take up less\n // space when serialised. Doing it now so that they behave\n // the same before and after serialisation. Also, this is\n // the fastest approach to reducing a number's precision in\n // JavaScript.\n\n fieldVector.insert(termIndex, scoreWithPrecision)\n }\n\n fieldVectors[fieldRef] = fieldVector\n }\n\n this.fieldVectors = fieldVectors\n}\n\n/**\n * Creates a token set of all tokens in the index using lunr.TokenSet\n *\n * @private\n */\nlunr.Builder.prototype.createTokenSet = function () {\n this.tokenSet = lunr.TokenSet.fromArray(\n Object.keys(this.invertedIndex).sort()\n )\n}\n\n/**\n * Builds the index, creating an instance of lunr.Index.\n *\n * This completes the indexing process and should only be called\n * once all documents have been added to the index.\n *\n * @returns {lunr.Index}\n */\nlunr.Builder.prototype.build = function () {\n this.calculateAverageFieldLengths()\n this.createFieldVectors()\n this.createTokenSet()\n\n return new lunr.Index({\n invertedIndex: this.invertedIndex,\n fieldVectors: this.fieldVectors,\n tokenSet: this.tokenSet,\n fields: Object.keys(this._fields),\n pipeline: this.searchPipeline\n })\n}\n\n/**\n * Applies a plugin to the index builder.\n *\n * A plugin is a function that is called with the index builder as its context.\n * Plugins can be used to customise or extend the behaviour of the index\n * in some way. A plugin is just a function, that encapsulated the custom\n * behaviour that should be applied when building the index.\n *\n * The plugin function will be called with the index builder as its argument, additional\n * arguments can also be passed when calling use. The function will be called\n * with the index builder as its context.\n *\n * @param {Function} plugin The plugin to apply.\n */\nlunr.Builder.prototype.use = function (fn) {\n var args = Array.prototype.slice.call(arguments, 1)\n args.unshift(this)\n fn.apply(this, args)\n}\n/**\n * Contains and collects metadata about a matching document.\n * A single instance of lunr.MatchData is returned as part of every\n * lunr.Index~Result.\n *\n * @constructor\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n * @property {object} metadata - A cloned collection of metadata associated with this document.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData = function (term, field, metadata) {\n var clonedMetadata = Object.create(null),\n metadataKeys = Object.keys(metadata || {})\n\n // Cloning the metadata to prevent the original\n // being mutated during match data combination.\n // Metadata is kept in an array within the inverted\n // index so cloning the data can be done with\n // Array#slice\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n clonedMetadata[key] = metadata[key].slice()\n }\n\n this.metadata = Object.create(null)\n\n if (term !== undefined) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = clonedMetadata\n }\n}\n\n/**\n * An instance of lunr.MatchData will be created for every term that matches a\n * document. However only one instance is required in a lunr.Index~Result. This\n * method combines metadata from another instance of lunr.MatchData with this\n * objects metadata.\n *\n * @param {lunr.MatchData} otherMatchData - Another instance of match data to merge with this one.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData.prototype.combine = function (otherMatchData) {\n var terms = Object.keys(otherMatchData.metadata)\n\n for (var i = 0; i < terms.length; i++) {\n var term = terms[i],\n fields = Object.keys(otherMatchData.metadata[term])\n\n if (this.metadata[term] == undefined) {\n this.metadata[term] = Object.create(null)\n }\n\n for (var j = 0; j < fields.length; j++) {\n var field = fields[j],\n keys = Object.keys(otherMatchData.metadata[term][field])\n\n if (this.metadata[term][field] == undefined) {\n this.metadata[term][field] = Object.create(null)\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k]\n\n if (this.metadata[term][field][key] == undefined) {\n this.metadata[term][field][key] = otherMatchData.metadata[term][field][key]\n } else {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(otherMatchData.metadata[term][field][key])\n }\n\n }\n }\n }\n}\n\n/**\n * Add metadata for a term/field pair to this instance of match data.\n *\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n */\nlunr.MatchData.prototype.add = function (term, field, metadata) {\n if (!(term in this.metadata)) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = metadata\n return\n }\n\n if (!(field in this.metadata[term])) {\n this.metadata[term][field] = metadata\n return\n }\n\n var metadataKeys = Object.keys(metadata)\n\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n\n if (key in this.metadata[term][field]) {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(metadata[key])\n } else {\n this.metadata[term][field][key] = metadata[key]\n }\n }\n}\n/**\n * A lunr.Query provides a programmatic way of defining queries to be performed\n * against a {@link lunr.Index}.\n *\n * Prefer constructing a lunr.Query using the {@link lunr.Index#query} method\n * so the query object is pre-initialized with the right index fields.\n *\n * @constructor\n * @property {lunr.Query~Clause[]} clauses - An array of query clauses.\n * @property {string[]} allFields - An array of all available fields in a lunr.Index.\n */\nlunr.Query = function (allFields) {\n this.clauses = []\n this.allFields = allFields\n}\n\n/**\n * Constants for indicating what kind of automatic wildcard insertion will be used when constructing a query clause.\n *\n * This allows wildcards to be added to the beginning and end of a term without having to manually do any string\n * concatenation.\n *\n * The wildcard constants can be bitwise combined to select both leading and trailing wildcards.\n *\n * @constant\n * @default\n * @property {number} wildcard.NONE - The term will have no wildcards inserted, this is the default behaviour\n * @property {number} wildcard.LEADING - Prepend the term with a wildcard, unless a leading wildcard already exists\n * @property {number} wildcard.TRAILING - Append a wildcard to the term, unless a trailing wildcard already exists\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with trailing wildcard\n * query.term('foo', { wildcard: lunr.Query.wildcard.TRAILING })\n * @example query term with leading and trailing wildcard\n * query.term('foo', {\n * wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING\n * })\n */\n\nlunr.Query.wildcard = new String (\"*\")\nlunr.Query.wildcard.NONE = 0\nlunr.Query.wildcard.LEADING = 1\nlunr.Query.wildcard.TRAILING = 2\n\n/**\n * Constants for indicating what kind of presence a term must have in matching documents.\n *\n * @constant\n * @enum {number}\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with required presence\n * query.term('foo', { presence: lunr.Query.presence.REQUIRED })\n */\nlunr.Query.presence = {\n /**\n * Term's presence in a document is optional, this is the default value.\n */\n OPTIONAL: 1,\n\n /**\n * Term's presence in a document is required, documents that do not contain\n * this term will not be returned.\n */\n REQUIRED: 2,\n\n /**\n * Term's presence in a document is prohibited, documents that do contain\n * this term will not be returned.\n */\n PROHIBITED: 3\n}\n\n/**\n * A single clause in a {@link lunr.Query} contains a term and details on how to\n * match that term against a {@link lunr.Index}.\n *\n * @typedef {Object} lunr.Query~Clause\n * @property {string[]} fields - The fields in an index this clause should be matched against.\n * @property {number} [boost=1] - Any boost that should be applied when matching this clause.\n * @property {number} [editDistance] - Whether the term should have fuzzy matching applied, and how fuzzy the match should be.\n * @property {boolean} [usePipeline] - Whether the term should be passed through the search pipeline.\n * @property {number} [wildcard=lunr.Query.wildcard.NONE] - Whether the term should have wildcards appended or prepended.\n * @property {number} [presence=lunr.Query.presence.OPTIONAL] - The terms presence in any matching documents.\n */\n\n/**\n * Adds a {@link lunr.Query~Clause} to this query.\n *\n * Unless the clause contains the fields to be matched all fields will be matched. In addition\n * a default boost of 1 is applied to the clause.\n *\n * @param {lunr.Query~Clause} clause - The clause to add to this query.\n * @see lunr.Query~Clause\n * @returns {lunr.Query}\n */\nlunr.Query.prototype.clause = function (clause) {\n if (!('fields' in clause)) {\n clause.fields = this.allFields\n }\n\n if (!('boost' in clause)) {\n clause.boost = 1\n }\n\n if (!('usePipeline' in clause)) {\n clause.usePipeline = true\n }\n\n if (!('wildcard' in clause)) {\n clause.wildcard = lunr.Query.wildcard.NONE\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.LEADING) && (clause.term.charAt(0) != lunr.Query.wildcard)) {\n clause.term = \"*\" + clause.term\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.TRAILING) && (clause.term.slice(-1) != lunr.Query.wildcard)) {\n clause.term = \"\" + clause.term + \"*\"\n }\n\n if (!('presence' in clause)) {\n clause.presence = lunr.Query.presence.OPTIONAL\n }\n\n this.clauses.push(clause)\n\n return this\n}\n\n/**\n * A negated query is one in which every clause has a presence of\n * prohibited. These queries require some special processing to return\n * the expected results.\n *\n * @returns boolean\n */\nlunr.Query.prototype.isNegated = function () {\n for (var i = 0; i < this.clauses.length; i++) {\n if (this.clauses[i].presence != lunr.Query.presence.PROHIBITED) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * Adds a term to the current query, under the covers this will create a {@link lunr.Query~Clause}\n * to the list of clauses that make up this query.\n *\n * The term is used as is, i.e. no tokenization will be performed by this method. Instead conversion\n * to a token or token-like string should be done before calling this method.\n *\n * The term will be converted to a string by calling `toString`. Multiple terms can be passed as an\n * array, each term in the array will share the same options.\n *\n * @param {object|object[]} term - The term(s) to add to the query.\n * @param {object} [options] - Any additional properties to add to the query clause.\n * @returns {lunr.Query}\n * @see lunr.Query#clause\n * @see lunr.Query~Clause\n * @example adding a single term to a query\n * query.term(\"foo\")\n * @example adding a single term to a query and specifying search fields, term boost and automatic trailing wildcard\n * query.term(\"foo\", {\n * fields: [\"title\"],\n * boost: 10,\n * wildcard: lunr.Query.wildcard.TRAILING\n * })\n * @example using lunr.tokenizer to convert a string to tokens before using them as terms\n * query.term(lunr.tokenizer(\"foo bar\"))\n */\nlunr.Query.prototype.term = function (term, options) {\n if (Array.isArray(term)) {\n term.forEach(function (t) { this.term(t, lunr.utils.clone(options)) }, this)\n return this\n }\n\n var clause = options || {}\n clause.term = term.toString()\n\n this.clause(clause)\n\n return this\n}\nlunr.QueryParseError = function (message, start, end) {\n this.name = \"QueryParseError\"\n this.message = message\n this.start = start\n this.end = end\n}\n\nlunr.QueryParseError.prototype = new Error\nlunr.QueryLexer = function (str) {\n this.lexemes = []\n this.str = str\n this.length = str.length\n this.pos = 0\n this.start = 0\n this.escapeCharPositions = []\n}\n\nlunr.QueryLexer.prototype.run = function () {\n var state = lunr.QueryLexer.lexText\n\n while (state) {\n state = state(this)\n }\n}\n\nlunr.QueryLexer.prototype.sliceString = function () {\n var subSlices = [],\n sliceStart = this.start,\n sliceEnd = this.pos\n\n for (var i = 0; i < this.escapeCharPositions.length; i++) {\n sliceEnd = this.escapeCharPositions[i]\n subSlices.push(this.str.slice(sliceStart, sliceEnd))\n sliceStart = sliceEnd + 1\n }\n\n subSlices.push(this.str.slice(sliceStart, this.pos))\n this.escapeCharPositions.length = 0\n\n return subSlices.join('')\n}\n\nlunr.QueryLexer.prototype.emit = function (type) {\n this.lexemes.push({\n type: type,\n str: this.sliceString(),\n start: this.start,\n end: this.pos\n })\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.escapeCharacter = function () {\n this.escapeCharPositions.push(this.pos - 1)\n this.pos += 1\n}\n\nlunr.QueryLexer.prototype.next = function () {\n if (this.pos >= this.length) {\n return lunr.QueryLexer.EOS\n }\n\n var char = this.str.charAt(this.pos)\n this.pos += 1\n return char\n}\n\nlunr.QueryLexer.prototype.width = function () {\n return this.pos - this.start\n}\n\nlunr.QueryLexer.prototype.ignore = function () {\n if (this.start == this.pos) {\n this.pos += 1\n }\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.backup = function () {\n this.pos -= 1\n}\n\nlunr.QueryLexer.prototype.acceptDigitRun = function () {\n var char, charCode\n\n do {\n char = this.next()\n charCode = char.charCodeAt(0)\n } while (charCode > 47 && charCode < 58)\n\n if (char != lunr.QueryLexer.EOS) {\n this.backup()\n }\n}\n\nlunr.QueryLexer.prototype.more = function () {\n return this.pos < this.length\n}\n\nlunr.QueryLexer.EOS = 'EOS'\nlunr.QueryLexer.FIELD = 'FIELD'\nlunr.QueryLexer.TERM = 'TERM'\nlunr.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE'\nlunr.QueryLexer.BOOST = 'BOOST'\nlunr.QueryLexer.PRESENCE = 'PRESENCE'\n\nlunr.QueryLexer.lexField = function (lexer) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.FIELD)\n lexer.ignore()\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexTerm = function (lexer) {\n if (lexer.width() > 1) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.TERM)\n }\n\n lexer.ignore()\n\n if (lexer.more()) {\n return lunr.QueryLexer.lexText\n }\n}\n\nlunr.QueryLexer.lexEditDistance = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.EDIT_DISTANCE)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexBoost = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.BOOST)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexEOS = function (lexer) {\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n}\n\n// This matches the separator used when tokenising fields\n// within a document. These should match otherwise it is\n// not possible to search for some tokens within a document.\n//\n// It is possible for the user to change the separator on the\n// tokenizer so it _might_ clash with any other of the special\n// characters already used within the search string, e.g. :.\n//\n// This means that it is possible to change the separator in\n// such a way that makes some words unsearchable using a search\n// string.\nlunr.QueryLexer.termSeparator = lunr.tokenizer.separator\n\nlunr.QueryLexer.lexText = function (lexer) {\n while (true) {\n var char = lexer.next()\n\n if (char == lunr.QueryLexer.EOS) {\n return lunr.QueryLexer.lexEOS\n }\n\n // Escape character is '\\'\n if (char.charCodeAt(0) == 92) {\n lexer.escapeCharacter()\n continue\n }\n\n if (char == \":\") {\n return lunr.QueryLexer.lexField\n }\n\n if (char == \"~\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexEditDistance\n }\n\n if (char == \"^\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexBoost\n }\n\n // \"+\" indicates term presence is required\n // checking for length to ensure that only\n // leading \"+\" are considered\n if (char == \"+\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n // \"-\" indicates term presence is prohibited\n // checking for length to ensure that only\n // leading \"-\" are considered\n if (char == \"-\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n if (char.match(lunr.QueryLexer.termSeparator)) {\n return lunr.QueryLexer.lexTerm\n }\n }\n}\n\nlunr.QueryParser = function (str, query) {\n this.lexer = new lunr.QueryLexer (str)\n this.query = query\n this.currentClause = {}\n this.lexemeIdx = 0\n}\n\nlunr.QueryParser.prototype.parse = function () {\n this.lexer.run()\n this.lexemes = this.lexer.lexemes\n\n var state = lunr.QueryParser.parseClause\n\n while (state) {\n state = state(this)\n }\n\n return this.query\n}\n\nlunr.QueryParser.prototype.peekLexeme = function () {\n return this.lexemes[this.lexemeIdx]\n}\n\nlunr.QueryParser.prototype.consumeLexeme = function () {\n var lexeme = this.peekLexeme()\n this.lexemeIdx += 1\n return lexeme\n}\n\nlunr.QueryParser.prototype.nextClause = function () {\n var completedClause = this.currentClause\n this.query.clause(completedClause)\n this.currentClause = {}\n}\n\nlunr.QueryParser.parseClause = function (parser) {\n var lexeme = parser.peekLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.type) {\n case lunr.QueryLexer.PRESENCE:\n return lunr.QueryParser.parsePresence\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expected either a field or a term, found \" + lexeme.type\n\n if (lexeme.str.length >= 1) {\n errorMessage += \" with value '\" + lexeme.str + \"'\"\n }\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n}\n\nlunr.QueryParser.parsePresence = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.str) {\n case \"-\":\n parser.currentClause.presence = lunr.Query.presence.PROHIBITED\n break\n case \"+\":\n parser.currentClause.presence = lunr.Query.presence.REQUIRED\n break\n default:\n var errorMessage = \"unrecognised presence operator'\" + lexeme.str + \"'\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term or field, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term or field, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseField = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n if (parser.query.allFields.indexOf(lexeme.str) == -1) {\n var possibleFields = parser.query.allFields.map(function (f) { return \"'\" + f + \"'\" }).join(', '),\n errorMessage = \"unrecognised field '\" + lexeme.str + \"', possible fields: \" + possibleFields\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.fields = [lexeme.str]\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseTerm = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n parser.currentClause.term = lexeme.str.toLowerCase()\n\n if (lexeme.str.indexOf(\"*\") != -1) {\n parser.currentClause.usePipeline = false\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseEditDistance = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var editDistance = parseInt(lexeme.str, 10)\n\n if (isNaN(editDistance)) {\n var errorMessage = \"edit distance must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.editDistance = editDistance\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseBoost = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var boost = parseInt(lexeme.str, 10)\n\n if (isNaN(boost)) {\n var errorMessage = \"boost must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.boost = boost\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\n /**\n * export the module via AMD, CommonJS or as a browser global\n * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js\n */\n ;(function (root, factory) {\n if (true) {\n // AMD. Register as an anonymous module.\n !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))\n } else {}\n }(this, function () {\n /**\n * Just return a value to define the module export.\n * This example returns an object, but the module\n * can return a function as the exported value.\n */\n return lunr\n }))\n})();\n\n\n//# sourceURL=webpack:///./node_modules/lunr/lunr.js?"); + +/***/ }), + +/***/ "./node_modules/tslib/tslib.es6.js": +/*!*****************************************!*\ + !*** ./node_modules/tslib/tslib.es6.js ***! + \*****************************************/ +/*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault, __classPrivateFieldGet, __classPrivateFieldSet */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__extends\", function() { return __extends; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__assign\", function() { return __assign; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__rest\", function() { return __rest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__decorate\", function() { return __decorate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__param\", function() { return __param; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__metadata\", function() { return __metadata; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__awaiter\", function() { return __awaiter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__generator\", function() { return __generator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__exportStar\", function() { return __exportStar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__values\", function() { return __values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__read\", function() { return __read; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__spread\", function() { return __spread; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__spreadArrays\", function() { return __spreadArrays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__await\", function() { return __await; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncGenerator\", function() { return __asyncGenerator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncDelegator\", function() { return __asyncDelegator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncValues\", function() { return __asyncValues; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__makeTemplateObject\", function() { return __makeTemplateObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__importStar\", function() { return __importStar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__importDefault\", function() { return __importDefault; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__classPrivateFieldGet\", function() { return __classPrivateFieldGet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__classPrivateFieldSet\", function() { return __classPrivateFieldSet; });\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nfunction __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nfunction __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nfunction __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nfunction __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nfunction __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nfunction __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nfunction __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nfunction __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nfunction __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n\n\n//# sourceURL=webpack:///./node_modules/tslib/tslib.es6.js?"); + +/***/ }), + +/***/ "./node_modules/webpack/buildin/global.js": +/*!***********************************!*\ + !*** (webpack)/buildin/global.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n//# sourceURL=webpack:///(webpack)/buildin/global.js?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/_/index.ts": +/*!***************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/_/index.ts ***! + \***************************************************************/ +/*! exports provided: Search */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Search\", function() { return Search; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _document__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../document */ \"./src/assets/javascripts/integrations/search/document/index.ts\");\n/* harmony import */ var _highlighter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../highlighter */ \"./src/assets/javascripts/integrations/search/highlighter/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n/* ----------------------------------------------------------------------------\n * Class\n * ------------------------------------------------------------------------- */\n/**\n * Search\n *\n * Note that `lunr` is injected via Webpack, as it will otherwise also be\n * bundled in the application bundle.\n */\nvar Search = /** @class */ (function () {\n /**\n * Create the search integration\n *\n * @param data - Search index\n */\n function Search(_a) {\n var config = _a.config, docs = _a.docs, pipeline = _a.pipeline, index = _a.index;\n this.documents = Object(_document__WEBPACK_IMPORTED_MODULE_1__[\"setupSearchDocumentMap\"])(docs);\n this.highlight = Object(_highlighter__WEBPACK_IMPORTED_MODULE_2__[\"setupSearchHighlighter\"])(config);\n /* If no index was given, create it */\n if (typeof index === \"undefined\") {\n this.index = lunr(function () {\n var e_1, _a, _b, e_2, _c;\n pipeline = pipeline || [\"trimmer\", \"stopWordFilter\"];\n /* Set up pipeline according to configuration */\n this.pipeline.reset();\n try {\n for (var pipeline_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(pipeline), pipeline_1_1 = pipeline_1.next(); !pipeline_1_1.done; pipeline_1_1 = pipeline_1.next()) {\n var fn = pipeline_1_1.value;\n this.pipeline.add(lunr[fn]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (pipeline_1_1 && !pipeline_1_1.done && (_a = pipeline_1.return)) _a.call(pipeline_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n /* Set up alternate search languages */\n if (config.lang.length === 1 && config.lang[0] !== \"en\") {\n this.use(lunr[config.lang[0]]);\n }\n else if (config.lang.length > 1) {\n this.use((_b = lunr).multiLanguage.apply(_b, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(config.lang)));\n }\n /* Set up fields and reference */\n this.field(\"title\", { boost: 1000 });\n this.field(\"text\");\n this.ref(\"location\");\n try {\n /* Index documents */\n for (var docs_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(docs), docs_1_1 = docs_1.next(); !docs_1_1.done; docs_1_1 = docs_1.next()) {\n var doc = docs_1_1.value;\n this.add(doc);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (docs_1_1 && !docs_1_1.done && (_c = docs_1.return)) _c.call(docs_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n });\n /* Prebuilt or serialized index */\n }\n else {\n this.index = lunr.Index.load(typeof index === \"string\"\n ? JSON.parse(index)\n : index);\n }\n }\n /**\n * Search for matching documents\n *\n * The search index which MkDocs provides is divided up into articles, which\n * contain the whole content of the individual pages, and sections, which only\n * contain the contents of the subsections obtained by breaking the individual\n * pages up at `h1` ... `h6`. As there may be many sections on different pages\n * with identical titles (for example within this very project, e.g. \"Usage\"\n * or \"Installation\"), they need to be put into the context of the containing\n * page. For this reason, section results are grouped within their respective\n * articles which are the top-level results that are returned.\n *\n * @param value - Query value\n *\n * @return Search results\n */\n Search.prototype.query = function (value) {\n var _this = this;\n if (value) {\n try {\n /* Group sections by containing article */\n var groups = this.index.search(value)\n .reduce(function (results, result) {\n var document = _this.documents.get(result.ref);\n if (typeof document !== \"undefined\") {\n if (\"parent\" in document) {\n var ref = document.parent.location;\n results.set(ref, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(results.get(ref) || [], [result]));\n }\n else {\n var ref = document.location;\n results.set(ref, results.get(ref) || []);\n }\n }\n return results;\n }, new Map());\n /* Create highlighter for query */\n var fn_1 = this.highlight(value);\n /* Map groups to search documents */\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])(groups).map(function (_a) {\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), ref = _b[0], sections = _b[1];\n return ({\n article: fn_1(_this.documents.get(ref)),\n sections: sections.map(function (section) {\n return fn_1(_this.documents.get(section.ref));\n })\n });\n });\n /* Log errors to console (for now) */\n }\n catch (err) {\n // tslint:disable-next-line no-console\n console.warn(\"Invalid query: \" + value + \" \\u2013 see https://bit.ly/2s3ChXG\");\n }\n }\n /* Return nothing in case of error or empty query */\n return [];\n };\n return Search;\n}());\n\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/_/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/document/index.ts": +/*!**********************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/document/index.ts ***! + \**********************************************************************/ +/*! exports provided: setupSearchDocumentMap */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupSearchDocumentMap\", function() { return setupSearchDocumentMap; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var escape_html__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! escape-html */ \"./node_modules/escape-html/index.js\");\n/* harmony import */ var escape_html__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(escape_html__WEBPACK_IMPORTED_MODULE_1__);\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Create a search document mapping\n *\n * @param docs - Search index documents\n *\n * @return Search document map\n */\nfunction setupSearchDocumentMap(docs) {\n var e_1, _a;\n var documents = new Map();\n try {\n for (var docs_1 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(docs), docs_1_1 = docs_1.next(); !docs_1_1.done; docs_1_1 = docs_1.next()) {\n var doc = docs_1_1.value;\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(doc.location.split(\"#\"), 2), path = _b[0], hash = _b[1];\n /* Extract location and title */\n var location = doc.location;\n var title = doc.title;\n /* Escape and cleanup text */\n var text = escape_html__WEBPACK_IMPORTED_MODULE_1__(doc.text)\n .replace(/\\s+(?=[,.:;!?])/g, \"\")\n .replace(/\\s+/g, \" \");\n /* Handle section */\n if (hash) {\n var parent = documents.get(path);\n /* Ignore first section, override article */\n if (!parent.linked) {\n parent.title = doc.title;\n parent.text = text;\n parent.linked = true;\n /* Add subsequent section */\n }\n else {\n documents.set(location, {\n location: location,\n title: title,\n text: text,\n parent: parent\n });\n }\n /* Add article */\n }\n else {\n documents.set(location, {\n location: location,\n title: title,\n text: text,\n linked: false\n });\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (docs_1_1 && !docs_1_1.done && (_a = docs_1.return)) _a.call(docs_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return documents;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/document/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/highlighter/index.ts": +/*!*************************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/highlighter/index.ts ***! + \*************************************************************************/ +/*! exports provided: setupSearchHighlighter */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupSearchHighlighter\", function() { return setupSearchHighlighter; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Create a search highlighter\n *\n * @param config - Search index configuration\n *\n * @return Search highlight factory function\n */\nfunction setupSearchHighlighter(config) {\n var separator = new RegExp(config.separator, \"img\");\n var highlight = function (_, data, term) {\n return data + \"\" + term + \"\";\n };\n /* Return factory function */\n return function (value) {\n value = value\n .replace(/[\\s*+-:~^]+/g, \" \")\n .trim();\n /* Create search term match expression */\n var match = new RegExp(\"(^|\" + config.separator + \")(\" + value\n .replace(/[|\\\\{}()[\\]^$+*?.-]/g, \"\\\\$&\")\n .replace(separator, \"|\") + \")\", \"img\");\n /* Highlight document */\n return function (document) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({}, document), { title: document.title.replace(match, highlight), text: document.text.replace(match, highlight) })); };\n };\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/highlighter/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/worker/main/index.ts": +/*!*************************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/worker/main/index.ts ***! + \*************************************************************************/ +/*! exports provided: handler */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"handler\", function() { return handler; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var expose_loader_lunr_lunr__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! expose-loader?lunr!lunr */ \"./node_modules/expose-loader/index.js?lunr!./node_modules/lunr/lunr.js-exposed\");\n/* harmony import */ var expose_loader_lunr_lunr__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(expose_loader_lunr_lunr__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_ */ \"./src/assets/javascripts/integrations/search/_/index.ts\");\n/* harmony import */ var _message__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../message */ \"./src/assets/javascripts/integrations/search/worker/message/index.ts\");\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n\n\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n/**\n * Search\n */\nvar search;\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n/**\n * Set up multi-language support through `lunr-languages`\n *\n * This function will automatically import the stemmers necessary to process\n * the languages which were given through the search index configuration.\n *\n * @param config - Search index configuration\n */\nfunction setupLunrLanguages(config) {\n var e_1, _a;\n var base = \"../lunr\";\n /* Add scripts for languages */\n var scripts = [];\n try {\n for (var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(config.lang), _c = _b.next(); !_c.done; _c = _b.next()) {\n var lang = _c.value;\n if (lang === \"ja\")\n scripts.push(base + \"/tinyseg.min.js\");\n if (lang !== \"en\")\n scripts.push(base + \"/min/lunr.\" + lang + \".min.js\");\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n /* Add multi-language support */\n if (config.lang.length > 1)\n scripts.push(base + \"/min/lunr.multi.min.js\");\n /* Load scripts synchronously */\n if (scripts.length)\n importScripts.apply(void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spread\"])([base + \"/min/lunr.stemmer.support.min.js\"], scripts));\n}\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Message handler\n *\n * @param message - Source message\n *\n * @return Target message\n */\nfunction handler(message) {\n switch (message.type) {\n /* Search setup message */\n case _message__WEBPACK_IMPORTED_MODULE_3__[\"SearchMessageType\"].SETUP:\n setupLunrLanguages(message.data.config);\n search = new ___WEBPACK_IMPORTED_MODULE_2__[\"Search\"](message.data);\n return {\n type: _message__WEBPACK_IMPORTED_MODULE_3__[\"SearchMessageType\"].READY\n };\n /* Search query message */\n case _message__WEBPACK_IMPORTED_MODULE_3__[\"SearchMessageType\"].QUERY:\n return {\n type: _message__WEBPACK_IMPORTED_MODULE_3__[\"SearchMessageType\"].RESULT,\n data: search ? search.query(message.data) : []\n };\n /* All other messages */\n default:\n throw new TypeError(\"Invalid message type\");\n }\n}\n/* ----------------------------------------------------------------------------\n * Worker\n * ------------------------------------------------------------------------- */\naddEventListener(\"message\", function (ev) {\n postMessage(handler(ev.data));\n});\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/worker/main/index.ts?"); + +/***/ }), + +/***/ "./src/assets/javascripts/integrations/search/worker/message/index.ts": +/*!****************************************************************************!*\ + !*** ./src/assets/javascripts/integrations/search/worker/message/index.ts ***! + \****************************************************************************/ +/*! exports provided: SearchMessageType, isSearchSetupMessage, isSearchReadyMessage, isSearchQueryMessage, isSearchResultMessage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SearchMessageType\", function() { return SearchMessageType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSearchSetupMessage\", function() { return isSearchSetupMessage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSearchReadyMessage\", function() { return isSearchReadyMessage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSearchQueryMessage\", function() { return isSearchQueryMessage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSearchResultMessage\", function() { return isSearchResultMessage; });\n/*\n * Copyright (c) 2016-2020 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n/**\n * Search message type\n */\nvar SearchMessageType;\n(function (SearchMessageType) {\n SearchMessageType[SearchMessageType[\"SETUP\"] = 0] = \"SETUP\";\n SearchMessageType[SearchMessageType[\"READY\"] = 1] = \"READY\";\n SearchMessageType[SearchMessageType[\"QUERY\"] = 2] = \"QUERY\";\n SearchMessageType[SearchMessageType[\"RESULT\"] = 3] = \"RESULT\"; /* Search results */\n})(SearchMessageType || (SearchMessageType = {}));\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n/**\n * Type guard for search setup messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nfunction isSearchSetupMessage(message) {\n return message.type === SearchMessageType.SETUP;\n}\n/**\n * Type guard for search ready messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nfunction isSearchReadyMessage(message) {\n return message.type === SearchMessageType.READY;\n}\n/**\n * Type guard for search query messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nfunction isSearchQueryMessage(message) {\n return message.type === SearchMessageType.QUERY;\n}\n/**\n * Type guard for search result messages\n *\n * @param message - Search worker message\n *\n * @return Test result\n */\nfunction isSearchResultMessage(message) {\n return message.type === SearchMessageType.RESULT;\n}\n\n\n//# sourceURL=webpack:///./src/assets/javascripts/integrations/search/worker/message/index.ts?"); + +/***/ }) + +/******/ }); \ No newline at end of file diff --git a/docs/theme/material/assets/manifest.json b/docs/theme/material/assets/manifest.json new file mode 100644 index 00000000..234962d6 --- /dev/null +++ b/docs/theme/material/assets/manifest.json @@ -0,0 +1,7 @@ +{ + "assets/javascripts/bundle.js": "assets/javascripts/bundle.js", + "assets/javascripts/vendor.js": "assets/javascripts/vendor.js", + "assets/javascripts/worker/search.js": "assets/javascripts/worker/search.js", + "assets/stylesheets/main.css": "assets/stylesheets/main.css", + "assets/stylesheets/palette.css": "assets/stylesheets/palette.css" +} \ No newline at end of file diff --git a/docs/theme/material/assets/stylesheets/main.c8609f9b.min.css b/docs/theme/material/assets/stylesheets/main.c8609f9b.min.css new file mode 100644 index 00000000..d3b3efa7 --- /dev/null +++ b/docs/theme/material/assets/stylesheets/main.c8609f9b.min.css @@ -0,0 +1,3 @@ +html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none}body{margin:0}hr{box-sizing:content-box;overflow:visible}a,button,label,input{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}small{font-size:80%}sub,sup{position:relative;font-size:80%;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}table{border-collapse:separate;border-spacing:0}td,th{font-weight:normal;vertical-align:top}button{margin:0;padding:0;font-size:inherit;background:transparent;border:0}input{border:0;outline:0}:root{--md-default-fg-color: hsla(0, 0%, 0%, 0.87);--md-default-fg-color--light: hsla(0, 0%, 0%, 0.54);--md-default-fg-color--lighter: hsla(0, 0%, 0%, 0.26);--md-default-fg-color--lightest: hsla(0, 0%, 0%, 0.07);--md-default-bg-color: hsla(0, 0%, 100%, 1);--md-default-bg-color--light: hsla(0, 0%, 100%, 0.7);--md-default-bg-color--lighter: hsla(0, 0%, 100%, 0.3);--md-default-bg-color--lightest: hsla(0, 0%, 100%, 0.12);--md-primary-fg-color: hsla(231deg, 48%, 48%, 1);--md-primary-fg-color--light: hsla(230deg, 44%, 64%, 1);--md-primary-fg-color--dark: hsla(232deg, 54%, 41%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light);--md-accent-fg-color: hsla(231deg, 99%, 66%, 1);--md-accent-fg-color--transparent: hsla(231deg, 99%, 66%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light);--md-code-bg-color: hsla(0, 0%, 96%, 1);--md-code-fg-color: hsla(200, 18%, 26%, 1)}.md-icon svg{display:block;width:1.2rem;height:1.2rem;margin:0 auto;fill:currentColor}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,input{color:var(--md-default-fg-color);font-feature-settings:"kern","liga";font-family:-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif}code,pre,kbd{color:var(--md-default-fg-color);font-feature-settings:"kern";font-family:SFMono-Regular,Consolas,Menlo,monospace}.md-typeset{font-size:.8rem;line-height:1.6;-webkit-print-color-adjust:exact;color-adjust:exact}.md-typeset p,.md-typeset ul,.md-typeset ol,.md-typeset blockquote{margin:1em 0}.md-typeset h1{margin:0 0 2rem;color:var(--md-default-fg-color--light);font-weight:300;font-size:1.5625rem;line-height:1.3;letter-spacing:-0.01em}.md-typeset h2{margin:2rem 0 .8rem;font-weight:300;font-size:1.25rem;line-height:1.4;letter-spacing:-0.01em}.md-typeset h3{margin:1.6rem 0 .8rem;font-weight:400;font-size:1rem;line-height:1.5;letter-spacing:-0.01em}.md-typeset h2+h3{margin-top:.8rem}.md-typeset h4{margin:.8rem 0;font-weight:700;font-size:.8rem;letter-spacing:-0.01em}.md-typeset h5,.md-typeset h6{margin:.8rem 0;color:var(--md-default-fg-color--light);font-weight:700;font-size:.64rem;letter-spacing:-0.01em}.md-typeset h5{text-transform:uppercase}.md-typeset hr{margin:1.5em 0;border-bottom:.05rem dotted var(--md-default-fg-color--lighter)}.md-typeset a{color:var(--md-primary-fg-color);word-break:break-word}.md-typeset a,.md-typeset a::before{transition:color 125ms}.md-typeset a:focus,.md-typeset a:hover{color:var(--md-accent-fg-color)}.md-typeset code,.md-typeset pre,.md-typeset kbd{color:var(--md-code-fg-color);direction:ltr}@media print{.md-typeset code,.md-typeset pre,.md-typeset kbd{white-space:pre-wrap}}.md-typeset code{padding:0 .2941176471em;font-size:.85em;word-break:break-word;background-color:var(--md-code-bg-color);border-radius:.1rem;-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset h1 code,.md-typeset h2 code,.md-typeset h3 code,.md-typeset h4 code,.md-typeset h5 code,.md-typeset h6 code{margin:initial;padding:initial;background-color:transparent;box-shadow:none}.md-typeset a>code{color:currentColor}.md-typeset pre{position:relative;margin:1em 0;line-height:1.4}.md-typeset pre>code{display:block;margin:0;padding:.525rem 1.1764705882em;overflow:auto;word-break:normal;box-shadow:none;-webkit-box-decoration-break:slice;box-decoration-break:slice;touch-action:auto}.md-typeset pre>code::-webkit-scrollbar{width:.2rem;height:.2rem}.md-typeset pre>code::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-typeset pre>code::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@media screen and (max-width: 44.9375em){.md-typeset>pre{margin:1em -0.8rem}.md-typeset>pre code{border-radius:0}}.md-typeset kbd{display:inline-block;padding:0 .6666666667em;font-size:.75em;line-height:1.5;vertical-align:text-top;word-break:break-word;border-radius:.1rem;box-shadow:0 .1rem 0 .05rem var(--md-default-fg-color--lighter),0 .1rem 0 var(--md-default-fg-color--lighter),inset 0 -0.1rem .2rem var(--md-default-bg-color)}.md-typeset mark{padding:0 .25em;word-break:break-word;background-color:rgba(255,235,59,.5);border-radius:.1rem;-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset abbr{text-decoration:none;border-bottom:.05rem dotted var(--md-default-fg-color--light);cursor:help}.md-typeset small{opacity:.75}.md-typeset sup,.md-typeset sub{margin-left:.078125em}[dir=rtl] .md-typeset sup,[dir=rtl] .md-typeset sub{margin-right:.078125em;margin-left:initial}.md-typeset blockquote{padding-left:.6rem;color:var(--md-default-fg-color--light);border-left:.2rem solid var(--md-default-fg-color--lighter)}[dir=rtl] .md-typeset blockquote{padding-right:.6rem;padding-left:initial;border-right:.2rem solid var(--md-default-fg-color--lighter);border-left:initial}.md-typeset ul{list-style-type:disc}.md-typeset ul,.md-typeset ol{margin-left:.625em;padding:0}[dir=rtl] .md-typeset ul,[dir=rtl] .md-typeset ol{margin-right:.625em;margin-left:initial}.md-typeset ul ol,.md-typeset ol ol{list-style-type:lower-alpha}.md-typeset ul ol ol,.md-typeset ol ol ol{list-style-type:lower-roman}.md-typeset ul li,.md-typeset ol li{margin-bottom:.5em;margin-left:1.25em}[dir=rtl] .md-typeset ul li,[dir=rtl] .md-typeset ol li{margin-right:1.25em;margin-left:initial}.md-typeset ul li p,.md-typeset ul li blockquote,.md-typeset ol li p,.md-typeset ol li blockquote{margin:.5em 0}.md-typeset ul li:last-child,.md-typeset ol li:last-child{margin-bottom:0}.md-typeset ul li ul,.md-typeset ul li ol,.md-typeset ol li ul,.md-typeset ol li ol{margin:.5em 0 .5em .625em}[dir=rtl] .md-typeset ul li ul,[dir=rtl] .md-typeset ul li ol,[dir=rtl] .md-typeset ol li ul,[dir=rtl] .md-typeset ol li ol{margin-right:.625em;margin-left:initial}.md-typeset dd{margin:1em 0 1em 1.875em}[dir=rtl] .md-typeset dd{margin-right:1.875em;margin-left:initial}.md-typeset iframe,.md-typeset img,.md-typeset svg{max-width:100%;height:auto}.md-typeset table:not([class]){display:inline-block;max-width:100%;overflow:auto;font-size:.64rem;background:var(--md-default-bg-color);border-radius:.1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .05rem rgba(0,0,0,.1);touch-action:auto}.md-typeset table:not([class])+*{margin-top:1.5em}.md-typeset table:not([class]) th:not([align]),.md-typeset table:not([class]) td:not([align]){text-align:left}[dir=rtl] .md-typeset table:not([class]) th:not([align]),[dir=rtl] .md-typeset table:not([class]) td:not([align]){text-align:right}.md-typeset table:not([class]) th{min-width:5rem;padding:.6rem .8rem;color:var(--md-default-bg-color);vertical-align:top;background-color:var(--md-default-fg-color--light)}.md-typeset table:not([class]) td{padding:.6rem .8rem;vertical-align:top;border-top:.05rem solid var(--md-default-fg-color--lightest)}.md-typeset table:not([class]) tr{transition:background-color 125ms}.md-typeset table:not([class]) tr:hover{background-color:rgba(0,0,0,.035);box-shadow:0 .05rem 0 var(--md-default-bg-color) inset}.md-typeset table:not([class]) tr:first-child td{border-top:0}.md-typeset table:not([class]) a{word-break:normal}.md-typeset__scrollwrap{margin:1em -0.8rem;overflow-x:auto;touch-action:auto}.md-typeset__table{display:inline-block;margin-bottom:.5em;padding:0 .8rem}.md-typeset__table table{display:table;width:100%;margin:0;overflow:hidden}html{height:100%;overflow-x:hidden;font-size:125%;background-color:var(--md-default-bg-color)}@media screen and (min-width: 100em){html{font-size:137.5%}}@media screen and (min-width: 125em){html{font-size:150%}}body{position:relative;display:flex;flex-direction:column;width:100%;min-height:100%;font-size:.5rem}@media screen and (max-width: 59.9375em){body[data-md-state=lock]{position:fixed}}@media print{body{display:block}}hr{display:block;height:.05rem;padding:0;border:0}.md-grid{max-width:61rem;margin-right:auto;margin-left:auto}.md-container{display:flex;flex-direction:column;flex-grow:1}@media print{.md-container{display:block}}.md-main{flex-grow:1}.md-main__inner{display:flex;height:100%;margin-top:1.5rem}.md-ellipsis{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.md-toggle{display:none}.md-overlay{position:fixed;top:0;z-index:3;width:0;height:0;background-color:var(--md-default-fg-color--light);opacity:0;transition:width 0ms 250ms,height 0ms 250ms,opacity 250ms}@media screen and (max-width: 76.1875em){[data-md-toggle=drawer]:checked~.md-overlay{width:100%;height:100%;opacity:1;transition:width 0ms,height 0ms,opacity 250ms}}.md-skip{position:fixed;z-index:-1;margin:.5rem;padding:.3rem .5rem;color:var(--md-default-bg-color);font-size:.64rem;background-color:var(--md-default-fg-color);border-radius:.1rem;transform:translateY(0.4rem);opacity:0}.md-skip:focus{z-index:10;transform:translateY(0);opacity:1;transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1),opacity 175ms 75ms}@page{margin:25mm}.md-announce{overflow:auto;background-color:var(--md-default-fg-color)}.md-announce__inner{margin:.6rem auto;padding:0 .8rem;color:var(--md-default-bg-color);font-size:.7rem}@media print{.md-announce{display:none}}.md-typeset .md-button{display:inline-block;padding:.625em 2em;color:var(--md-primary-fg-color);font-weight:700;border:.1rem solid currentColor;border-radius:.1rem;transition:color 125ms,background-color 125ms,border-color 125ms}.md-typeset .md-button--primary{color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color);border-color:var(--md-primary-fg-color)}.md-typeset .md-button:focus,.md-typeset .md-button:hover{color:var(--md-accent-bg-color);background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color)}.md-clipboard{position:absolute;top:.4rem;right:.5em;z-index:1;width:1.5em;height:1.5em;color:var(--md-default-fg-color--lightest);border-radius:.1rem;cursor:pointer;transition:color 125ms}@media print{.md-clipboard{display:none}}.md-clipboard svg{width:1.125em;height:1.125em}pre:hover .md-clipboard{color:var(--md-default-fg-color--light)}pre .md-clipboard:focus,pre .md-clipboard:hover{color:var(--md-accent-fg-color)}.md-content{flex:1;max-width:100%}@media screen and (min-width: 60em)and (max-width: 76.1875em){.md-content{max-width:calc(100% - 12.1rem)}}@media screen and (min-width: 76.25em){.md-content{max-width:calc(100% - 12.1rem * 2)}}.md-content__inner{margin:0 .8rem 1.2rem;padding-top:.6rem}@media screen and (min-width: 76.25em){.md-content__inner{margin-right:1.2rem;margin-left:1.2rem}}.md-content__inner::before{display:block;height:.4rem;content:""}.md-content__inner>:last-child{margin-bottom:0}.md-content__button{float:right;margin:.4rem 0;margin-left:.4rem;padding:0}[dir=rtl] .md-content__button{float:left;margin-right:.4rem;margin-left:initial}[dir=rtl] .md-content__button svg{transform:scaleX(-1)}.md-typeset .md-content__button{color:var(--md-default-fg-color--lighter)}.md-content__button svg{display:inline;vertical-align:top}@media print{.md-content__button{display:none}}.md-dialog{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);position:fixed;right:.8rem;bottom:.8rem;left:initial;z-index:2;display:block;min-width:11.1rem;padding:.4rem .6rem;color:var(--md-default-bg-color);font-size:.7rem;background:var(--md-default-fg-color);border:none;border-radius:.1rem;transform:translateY(100%);opacity:0;transition:transform 0ms 400ms,opacity 400ms}[dir=rtl] .md-dialog{right:initial;left:.8rem}.md-dialog[data-md-state=open]{transform:translateY(0);opacity:1;transition:transform 400ms cubic-bezier(0.075, 0.85, 0.175, 1),opacity 400ms}@media print{.md-dialog{display:none}}.md-header{position:-webkit-sticky;position:sticky;top:0;right:0;left:0;z-index:2;height:2.4rem;color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color);box-shadow:0 0 .2rem rgba(0,0,0,0),0 .2rem .4rem rgba(0,0,0,0);transition:color 250ms,background-color 250ms}.no-js .md-header{box-shadow:none;transition:none}.md-header[data-md-state=shadow]{box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2);transition:color 250ms,background-color 250ms,box-shadow 250ms}@media print{.md-header{display:none}}.md-header-nav{display:flex;padding:0 .2rem}.md-header-nav__button{position:relative;z-index:1;margin:.2rem;padding:.4rem;cursor:pointer;transition:opacity 250ms}[dir=rtl] .md-header-nav__button svg{transform:scaleX(-1)}.md-header-nav__button:focus,.md-header-nav__button:hover{opacity:.7}.md-header-nav__button.md-logo{margin:.2rem;padding:.4rem}.md-header-nav__button.md-logo img,.md-header-nav__button.md-logo svg{display:block;width:1.2rem;height:1.2rem;fill:currentColor}.no-js .md-header-nav__button[for=__search]{display:none}@media screen and (min-width: 60em){.md-header-nav__button[for=__search]{display:none}}@media screen and (max-width: 76.1875em){.md-header-nav__button.md-logo{display:none}}@media screen and (min-width: 76.25em){.md-header-nav__button[for=__drawer]{display:none}}.md-header-nav__topic{position:absolute;width:100%;transition:transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 150ms}.md-header-nav__topic+.md-header-nav__topic{z-index:-1;transform:translateX(1.25rem);opacity:0;transition:transform 400ms cubic-bezier(1, 0.7, 0.1, 0.1),opacity 150ms;pointer-events:none}[dir=rtl] .md-header-nav__topic+.md-header-nav__topic{transform:translateX(-1.25rem)}.no-js .md-header-nav__topic{position:initial}.no-js .md-header-nav__topic+.md-header-nav__topic{display:none}.md-header-nav__title{flex-grow:1;padding:0 1rem;font-size:.9rem;line-height:2.4rem}.md-header-nav__title[data-md-state=active] .md-header-nav__topic{z-index:-1;transform:translateX(-1.25rem);opacity:0;transition:transform 400ms cubic-bezier(1, 0.7, 0.1, 0.1),opacity 150ms;pointer-events:none}[dir=rtl] .md-header-nav__title[data-md-state=active] .md-header-nav__topic{transform:translateX(1.25rem)}.md-header-nav__title[data-md-state=active] .md-header-nav__topic+.md-header-nav__topic{z-index:0;transform:translateX(0);opacity:1;transition:transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 150ms;pointer-events:initial}.md-header-nav__title>.md-header-nav__ellipsis{position:relative;width:100%;height:100%}.md-header-nav__source{display:none}@media screen and (min-width: 60em){.md-header-nav__source{display:block;width:11.7rem;max-width:11.7rem;margin-left:1rem}[dir=rtl] .md-header-nav__source{margin-right:1rem;margin-left:initial}}@media screen and (min-width: 76.25em){.md-header-nav__source{margin-left:1.4rem}[dir=rtl] .md-header-nav__source{margin-right:1.4rem}}.md-hero{overflow:hidden;color:var(--md-primary-bg-color);font-size:1rem;background-color:var(--md-primary-fg-color);transition:background 250ms}.md-hero__inner{margin-top:1rem;padding:.8rem .8rem .4rem;transition:transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 250ms;transition-delay:100ms}@media screen and (max-width: 76.1875em){.md-hero__inner{margin-top:2.4rem;margin-bottom:1.2rem}}[data-md-state=hidden] .md-hero__inner{transform:translateY(0.625rem);opacity:0;transition:transform 0ms 400ms,opacity 100ms 0ms;pointer-events:none}.md-hero--expand .md-hero__inner{margin-bottom:1.2rem}.md-footer{color:var(--md-default-bg-color);background-color:var(--md-default-fg-color)}@media print{.md-footer{display:none}}.md-footer-nav__inner{padding:.2rem;overflow:auto}.md-footer-nav__link{display:flex;padding-top:1.4rem;padding-bottom:.4rem;transition:opacity 250ms}@media screen and (min-width: 45em){.md-footer-nav__link{width:50%}}.md-footer-nav__link:focus,.md-footer-nav__link:hover{opacity:.7}.md-footer-nav__link--prev{float:left;width:25%}[dir=rtl] .md-footer-nav__link--prev{float:right}[dir=rtl] .md-footer-nav__link--prev svg{transform:scaleX(-1)}@media screen and (max-width: 44.9375em){.md-footer-nav__link--prev .md-footer-nav__title{display:none}}.md-footer-nav__link--next{float:right;width:75%;text-align:right}[dir=rtl] .md-footer-nav__link--next{float:left;text-align:left}[dir=rtl] .md-footer-nav__link--next svg{transform:scaleX(-1)}.md-footer-nav__title{position:relative;flex-grow:1;max-width:calc(100% - 2.4rem);padding:0 1rem;font-size:.9rem;line-height:2.4rem}.md-footer-nav__button{margin:.2rem;padding:.4rem}.md-footer-nav__direction{position:absolute;right:0;left:0;margin-top:-1rem;padding:0 1rem;color:var(--md-default-bg-color--light);font-size:.64rem}.md-footer-meta{background-color:var(--md-default-fg-color--lighter)}.md-footer-meta__inner{display:flex;flex-wrap:wrap;justify-content:space-between;padding:.2rem}html .md-footer-meta.md-typeset a{color:var(--md-default-bg-color--light)}html .md-footer-meta.md-typeset a:focus,html .md-footer-meta.md-typeset a:hover{color:var(--md-default-bg-color)}.md-footer-copyright{width:100%;margin:auto .6rem;padding:.4rem 0;color:var(--md-default-bg-color--lighter);font-size:.64rem}@media screen and (min-width: 45em){.md-footer-copyright{width:auto}}.md-footer-copyright__highlight{color:var(--md-default-bg-color--light)}.md-footer-social{margin:0 .4rem;padding:.2rem 0 .6rem}@media screen and (min-width: 45em){.md-footer-social{padding:.6rem 0}}.md-footer-social__link{display:inline-block;width:1.6rem;height:1.6rem;text-align:center}.md-footer-social__link::before{line-height:1.9}.md-footer-social__link svg{max-height:.8rem;vertical-align:-25%;fill:currentColor}.md-nav{font-size:.7rem;line-height:1.3}.md-nav__title{display:block;padding:0 .6rem;overflow:hidden;font-weight:700;text-overflow:ellipsis}.md-nav__title .md-nav__button{display:none}.md-nav__title .md-nav__button img{width:100%;height:auto}.md-nav__title .md-nav__button.md-logo img,.md-nav__title .md-nav__button.md-logo svg{display:block;width:2.4rem;height:2.4rem}.md-nav__title .md-nav__button.md-logo svg{fill:currentColor}.md-nav__list{margin:0;padding:0;list-style:none}.md-nav__item{padding:0 .6rem}.md-nav__item:last-child{padding-bottom:.6rem}.md-nav__item .md-nav__item{padding-right:0}[dir=rtl] .md-nav__item .md-nav__item{padding-right:.6rem;padding-left:0}.md-nav__item .md-nav__item:last-child{padding-bottom:0}.md-nav__link{display:block;margin-top:.625em;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:color 125ms;scroll-snap-align:start}html .md-nav__link[for=__toc]{display:none}html .md-nav__link[for=__toc]~.md-nav{display:none}.md-nav__link[data-md-state=blur]{color:var(--md-default-fg-color--light)}.md-nav__item .md-nav__link--active{color:var(--md-primary-fg-color)}.md-nav__item--nested>.md-nav__link{color:inherit}.md-nav__link:focus,.md-nav__link:hover{color:var(--md-accent-fg-color)}.md-nav__source{display:none}@media screen and (max-width: 76.1875em){.md-nav{background-color:var(--md-default-bg-color)}.md-nav--primary,.md-nav--primary .md-nav{position:absolute;top:0;right:0;left:0;z-index:1;display:flex;flex-direction:column;height:100%}.md-nav--primary .md-nav__title,.md-nav--primary .md-nav__item{font-size:.8rem;line-height:1.5}.md-nav--primary .md-nav__title{position:relative;height:5.6rem;padding:3rem .8rem .2rem;color:var(--md-default-fg-color--light);font-weight:400;line-height:2.4rem;white-space:nowrap;background-color:var(--md-default-fg-color--lightest);cursor:pointer}.md-nav--primary .md-nav__title .md-nav__icon{position:absolute;top:.4rem;left:.4rem;display:block;width:1.2rem;height:1.2rem;margin:.2rem}[dir=rtl] .md-nav--primary .md-nav__title .md-nav__icon{right:.4rem;left:initial}.md-nav--primary .md-nav__title~.md-nav__list{overflow-y:auto;background-color:var(--md-default-bg-color);box-shadow:inset 0 .05rem 0 var(--md-default-fg-color--lightest);-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;touch-action:pan-y}.md-nav--primary .md-nav__title~.md-nav__list>.md-nav__item:first-child{border-top:0}.md-nav--primary .md-nav__title[for=__drawer]{position:relative;color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color)}.md-nav--primary .md-nav__title[for=__drawer] .md-nav__button{position:absolute;top:.2rem;left:.2rem;display:block;margin:.2rem;padding:.4rem;font-size:2.4rem}html [dir=rtl] .md-nav--primary .md-nav__title[for=__drawer] .md-nav__button{right:.2rem;left:initial}.md-nav--primary .md-nav__list{flex:1}.md-nav--primary .md-nav__item{padding:0;border-top:.05rem solid var(--md-default-fg-color--lightest)}[dir=rtl] .md-nav--primary .md-nav__item{padding:0}.md-nav--primary .md-nav__item--nested>.md-nav__link{padding-right:2.4rem}[dir=rtl] .md-nav--primary .md-nav__item--nested>.md-nav__link{padding-right:.8rem;padding-left:2.4rem}.md-nav--primary .md-nav__item--active>.md-nav__link{color:var(--md-primary-fg-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:focus,.md-nav--primary .md-nav__item--active>.md-nav__link:hover{color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__link{position:relative;margin-top:0;padding:.6rem .8rem}.md-nav--primary .md-nav__link .md-nav__icon{position:absolute;top:50%;right:.6rem;margin-top:-0.6rem;color:inherit;font-size:1.2rem}[dir=rtl] .md-nav--primary .md-nav__link .md-nav__icon{right:initial;left:.6rem}[dir=rtl] .md-nav--primary .md-nav__icon svg{transform:scale(-1)}.md-nav--primary .md-nav--secondary .md-nav__link{position:static}.md-nav--primary .md-nav--secondary .md-nav{position:static;background-color:transparent}.md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-left:1.4rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-right:1.4rem;padding-left:initial}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-left:2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-right:2rem;padding-left:initial}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-left:2.6rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-right:2.6rem;padding-left:initial}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-left:3.2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-right:3.2rem;padding-left:initial}.md-nav__toggle~.md-nav{display:flex;transform:translateX(100%);opacity:0;transition:transform 250ms cubic-bezier(0.8, 0, 0.6, 1),opacity 125ms 50ms}[dir=rtl] .md-nav__toggle~.md-nav{transform:translateX(-100%)}.md-nav__toggle:checked~.md-nav{transform:translateX(0);opacity:1;transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1),opacity 125ms 125ms}.md-nav__toggle:checked~.md-nav>.md-nav__list{-webkit-backface-visibility:hidden;backface-visibility:hidden}}@media screen and (max-width: 59.9375em){html .md-nav__link[for=__toc]{display:block;padding-right:2.4rem}html .md-nav__link[for=__toc]+.md-nav__link{display:none}html .md-nav__link[for=__toc]~.md-nav{display:flex}html [dir=rtl] .md-nav__link{padding-right:.8rem;padding-left:2.4rem}.md-nav__source{display:block;padding:0 .2rem;color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color--dark)}}@media screen and (min-width: 60em){.md-nav--secondary .md-nav__title[for=__toc]{scroll-snap-align:start}.md-nav--secondary .md-nav__title .md-nav__icon{display:none}}@media screen and (min-width: 76.25em){.md-nav{transition:max-height 250ms cubic-bezier(0.86, 0, 0.07, 1)}.md-nav--primary .md-nav__title[for=__drawer]{scroll-snap-align:start}.md-nav--primary .md-nav__title .md-nav__icon{display:none}.md-nav__toggle~.md-nav{display:none}.md-nav__toggle:checked~.md-nav{display:block}.md-nav__item--nested>.md-nav>.md-nav__title{display:none}.md-nav__icon{float:right;height:.9rem;transition:transform 250ms}[dir=rtl] .md-nav__icon{float:left;transform:rotate(180deg)}.md-nav__icon svg{display:inline-block;width:.9rem;height:.9rem;vertical-align:-0.1rem}.md-nav__item--nested .md-nav__toggle:checked~.md-nav__link .md-nav__icon{transform:rotate(90deg)}}.md-search{position:relative}.no-js .md-search{display:none}@media screen and (min-width: 60em){.md-search{padding:.2rem 0}}.md-search__overlay{z-index:1;opacity:0}@media screen and (max-width: 59.9375em){.md-search__overlay{position:absolute;top:.2rem;left:-2.2rem;width:2rem;height:2rem;overflow:hidden;background-color:var(--md-default-bg-color);border-radius:1rem;transform-origin:center;transition:transform 300ms 100ms,opacity 200ms 200ms;pointer-events:none}[dir=rtl] .md-search__overlay{right:-2.2rem;left:initial}[data-md-toggle=search]:checked~.md-header .md-search__overlay{opacity:1;transition:transform 400ms,opacity 100ms}}@media screen and (max-width: 29.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(45)}}@media screen and (min-width: 30em)and (max-width: 44.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(60)}}@media screen and (min-width: 45em)and (max-width: 59.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(75)}}@media screen and (min-width: 60em){.md-search__overlay{position:fixed;top:0;left:0;width:0;height:0;background-color:var(--md-default-fg-color--light);cursor:pointer;transition:width 0ms 250ms,height 0ms 250ms,opacity 250ms}[dir=rtl] .md-search__overlay{right:0;left:initial}[data-md-toggle=search]:checked~.md-header .md-search__overlay{width:100%;height:100%;opacity:1;transition:width 0ms,height 0ms,opacity 250ms}}.md-search__inner{-webkit-backface-visibility:hidden;backface-visibility:hidden}@media screen and (max-width: 59.9375em){.md-search__inner{position:fixed;top:0;left:100%;z-index:2;width:100%;height:100%;transform:translateX(5%);opacity:0;transition:right 0ms 300ms,left 0ms 300ms,transform 150ms 150ms cubic-bezier(0.4, 0, 0.2, 1),opacity 150ms 150ms}[data-md-toggle=search]:checked~.md-header .md-search__inner{left:0;transform:translateX(0);opacity:1;transition:right 0ms 0ms,left 0ms 0ms,transform 150ms 150ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 150ms 150ms}[dir=rtl] [data-md-toggle=search]:checked~.md-header .md-search__inner{right:0;left:initial}html [dir=rtl] .md-search__inner{right:100%;left:initial;transform:translateX(-5%)}}@media screen and (min-width: 60em){.md-search__inner{position:relative;float:right;width:11.7rem;padding:.1rem 0;transition:width 250ms cubic-bezier(0.1, 0.7, 0.1, 1)}[dir=rtl] .md-search__inner{float:left}}@media screen and (min-width: 60em)and (max-width: 76.1875em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:23.4rem}}@media screen and (min-width: 76.25em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:34.4rem}}.md-search__form{position:relative}@media screen and (min-width: 60em){.md-search__form{border-radius:.1rem}}.md-search__input{position:relative;z-index:2;padding:0 2.2rem 0 3.6rem;text-overflow:ellipsis}[dir=rtl] .md-search__input{padding:0 3.6rem 0 2.2rem}.md-search__input::-webkit-input-placeholder{-webkit-transition:color 250ms;transition:color 250ms}.md-search__input::-moz-placeholder{-moz-transition:color 250ms;transition:color 250ms}.md-search__input::-ms-input-placeholder{-ms-transition:color 250ms;transition:color 250ms}.md-search__input::placeholder{transition:color 250ms}.md-search__input::-webkit-input-placeholder{color:var(--md-default-fg-color--light)}.md-search__input::-moz-placeholder{color:var(--md-default-fg-color--light)}.md-search__input::-ms-input-placeholder{color:var(--md-default-fg-color--light)}.md-search__input~.md-search__icon,.md-search__input::placeholder{color:var(--md-default-fg-color--light)}.md-search__input::-ms-clear{display:none}@media screen and (max-width: 59.9375em){.md-search__input{width:100%;height:2.4rem;font-size:.9rem}}@media screen and (min-width: 60em){.md-search__input{width:100%;height:1.8rem;padding-left:2.2rem;color:inherit;font-size:.8rem;background-color:var(--md-default-fg-color--lighter);border-radius:.1rem;transition:color 250ms,background-color 250ms}[dir=rtl] .md-search__input{padding-right:2.2rem}.md-search__input+.md-search__icon{color:var(--md-primary-bg-color)}.md-search__input::-webkit-input-placeholder{color:var(--md-primary-bg-color--light)}.md-search__input::-moz-placeholder{color:var(--md-primary-bg-color--light)}.md-search__input::-ms-input-placeholder{color:var(--md-primary-bg-color--light)}.md-search__input::placeholder{color:var(--md-primary-bg-color--light)}.md-search__input:hover{background-color:var(--md-default-bg-color--lightest)}[data-md-toggle=search]:checked~.md-header .md-search__input{color:var(--md-default-fg-color);text-overflow:clip;background-color:var(--md-default-bg-color);border-radius:.1rem .1rem 0 0}[data-md-toggle=search]:checked~.md-header .md-search__input::-webkit-input-placeholder{color:var(--md-default-fg-color--light)}[data-md-toggle=search]:checked~.md-header .md-search__input::-moz-placeholder{color:var(--md-default-fg-color--light)}[data-md-toggle=search]:checked~.md-header .md-search__input::-ms-input-placeholder{color:var(--md-default-fg-color--light)}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon,[data-md-toggle=search]:checked~.md-header .md-search__input::placeholder{color:var(--md-default-fg-color--light)}}.md-search__icon{position:absolute;z-index:2;width:1.2rem;height:1.2rem;cursor:pointer;transition:color 250ms,opacity 250ms}.md-search__icon:hover{opacity:.7}.md-search__icon[for=__search]{top:.3rem;left:.5rem}[dir=rtl] .md-search__icon[for=__search]{right:.5rem;left:initial}[dir=rtl] .md-search__icon[for=__search] svg{transform:scaleX(-1)}@media screen and (max-width: 59.9375em){.md-search__icon[for=__search]{top:.6rem;left:.8rem}[dir=rtl] .md-search__icon[for=__search]{right:.8rem;left:initial}.md-search__icon[for=__search] svg:first-child{display:none}}@media screen and (min-width: 60em){.md-search__icon[for=__search]{pointer-events:none}.md-search__icon[for=__search] svg:last-child{display:none}}.md-search__icon[type=reset]{top:.3rem;right:.5rem;transform:scale(0.75);opacity:0;transition:transform 150ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 150ms;pointer-events:none}[dir=rtl] .md-search__icon[type=reset]{right:initial;left:.5rem}@media screen and (max-width: 59.9375em){.md-search__icon[type=reset]{top:.6rem;right:.8rem}[dir=rtl] .md-search__icon[type=reset]{right:initial;left:.8rem}}[data-md-toggle=search]:checked~.md-header .md-search__input:not(:placeholder-shown)~.md-search__icon[type=reset]{transform:scale(1);opacity:1;pointer-events:initial}[data-md-toggle=search]:checked~.md-header .md-search__input:not(:placeholder-shown)~.md-search__icon[type=reset]:hover{opacity:.7}.md-search__output{position:absolute;z-index:1;width:100%;overflow:hidden;border-radius:0 0 .1rem .1rem}@media screen and (max-width: 59.9375em){.md-search__output{top:2.4rem;bottom:0}}@media screen and (min-width: 60em){.md-search__output{top:1.9rem;opacity:0;transition:opacity 400ms}[data-md-toggle=search]:checked~.md-header .md-search__output{box-shadow:0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.4);opacity:1}}.md-search__scrollwrap{height:100%;overflow-y:auto;background-color:var(--md-default-bg-color);box-shadow:inset 0 .05rem 0 var(--md-default-fg-color--lightest);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;touch-action:pan-y}@media(-webkit-max-device-pixel-ratio: 1), (max-resolution: 1dppx){.md-search__scrollwrap{transform:translateZ(0)}}@media screen and (min-width: 60em)and (max-width: 76.1875em){.md-search__scrollwrap{width:23.4rem}}@media screen and (min-width: 76.25em){.md-search__scrollwrap{width:34.4rem}}@media screen and (min-width: 60em){.md-search__scrollwrap{max-height:0}[data-md-toggle=search]:checked~.md-header .md-search__scrollwrap{max-height:75vh}.md-search__scrollwrap::-webkit-scrollbar{width:.2rem;height:.2rem}.md-search__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}}.md-search-result{color:var(--md-default-fg-color);word-break:break-word}.md-search-result__meta{padding:0 .8rem;color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.8rem;background-color:var(--md-default-fg-color--lightest);scroll-snap-align:start}@media screen and (min-width: 60em){.md-search-result__meta{padding-left:2.2rem}[dir=rtl] .md-search-result__meta{padding-right:2.2rem;padding-left:initial}}.md-search-result__list{margin:0;padding:0;list-style:none;border-top:.05rem solid var(--md-default-fg-color--lightest)}.md-search-result__item{box-shadow:0 -0.05rem 0 var(--md-default-fg-color--lightest)}.md-search-result__link{display:block;outline:0;transition:background 250ms;scroll-snap-align:start}.md-search-result__link:focus,.md-search-result__link:hover{background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:focus .md-search-result__article::before,.md-search-result__link:hover .md-search-result__article::before{opacity:.7}.md-search-result__link:last-child .md-search-result__teaser{margin-bottom:.6rem}.md-search-result__article{position:relative;padding:0 .8rem;overflow:hidden}@media screen and (min-width: 60em){.md-search-result__article{padding-left:2.2rem}[dir=rtl] .md-search-result__article{padding-right:2.2rem;padding-left:.8rem}}.md-search-result__article--document .md-search-result__title{margin:.55rem 0;font-weight:400;font-size:.8rem;line-height:1.4}.md-search-result__icon{position:absolute;left:0;margin:.1rem;padding:.4rem;color:var(--md-default-fg-color--light)}[dir=rtl] .md-search-result__icon{right:0;left:initial}[dir=rtl] .md-search-result__icon svg{transform:scaleX(-1)}@media screen and (max-width: 59.9375em){.md-search-result__icon{display:none}}.md-search-result__title{margin:.5em 0;font-weight:700;font-size:.64rem;line-height:1.4}.md-search-result__teaser{display:-webkit-box;max-height:1.65rem;margin:.5em 0;overflow:hidden;color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.4;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:2}@media screen and (max-width: 44.9375em){.md-search-result__teaser{max-height:2.5rem;-webkit-line-clamp:3}}@media screen and (min-width: 60em)and (max-width: 76.1875em){.md-search-result__teaser{max-height:2.5rem;-webkit-line-clamp:3}}.md-search-result em{font-weight:700;font-style:normal;text-decoration:underline}.md-sidebar{position:-webkit-sticky;position:sticky;top:2.4rem;width:12.1rem;padding:1.2rem 0;overflow:hidden}@media print{.md-sidebar{display:none}}@media screen and (max-width: 76.1875em){.md-sidebar--primary{position:fixed;top:0;left:-12.1rem;z-index:3;width:12.1rem;height:100%;background-color:var(--md-default-bg-color);transform:translateX(0);transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 250ms}[dir=rtl] .md-sidebar--primary{right:-12.1rem;left:initial}[data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{box-shadow:0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12),0 5px 5px -3px rgba(0,0,0,.4);transform:translateX(12.1rem)}[dir=rtl] [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{transform:translateX(-12.1rem)}.md-sidebar--primary .md-sidebar__scrollwrap{overflow:hidden}}.md-sidebar--secondary{display:none;order:2}@media screen and (min-width: 60em){.md-sidebar--secondary{display:block}.md-sidebar--secondary .md-sidebar__scrollwrap{touch-action:pan-y}}.md-sidebar__scrollwrap{max-height:100%;margin:0 .2rem;overflow-y:auto;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory}@media screen and (max-width: 76.1875em){.md-sidebar--primary .md-sidebar__scrollwrap{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;-webkit-scroll-snap-type:none;-ms-scroll-snap-type:none;scroll-snap-type:none}}.md-sidebar__scrollwrap::-webkit-scrollbar{width:.2rem;height:.2rem}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@-webkit-keyframes md-source__facts--done{0%{height:0}100%{height:.65rem}}@keyframes md-source__facts--done{0%{height:0}100%{height:.65rem}}@-webkit-keyframes md-source__fact--done{0%{transform:translateY(100%);opacity:0}50%{opacity:0}100%{transform:translateY(0%);opacity:1}}@keyframes md-source__fact--done{0%{transform:translateY(100%);opacity:0}50%{opacity:0}100%{transform:translateY(0%);opacity:1}}.md-source{display:block;font-size:.65rem;line-height:1.2;white-space:nowrap;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:opacity 250ms}.md-source:hover{opacity:.7}.md-source__icon{display:inline-block;width:2.4rem;height:2.4rem;vertical-align:middle}.md-source__icon svg{margin-top:.6rem;margin-left:.6rem}[dir=rtl] .md-source__icon svg{margin-right:.6rem;margin-left:initial}.md-source__icon+.md-source__repository{margin-left:-2rem;padding-left:2rem}[dir=rtl] .md-source__icon+.md-source__repository{margin-right:-2rem;margin-left:initial;padding-right:2rem;padding-left:initial}.md-source__repository{display:inline-block;max-width:calc(100% - 1.2rem);margin-left:.6rem;overflow:hidden;font-weight:700;text-overflow:ellipsis;vertical-align:middle}.md-source__facts{margin:0;padding:0;overflow:hidden;font-weight:700;font-size:.55rem;list-style-type:none;opacity:.75}[data-md-state=done] .md-source__facts{-webkit-animation:md-source__facts--done 250ms ease-in;animation:md-source__facts--done 250ms ease-in}.md-source__fact{float:left}[dir=rtl] .md-source__fact{float:right}[data-md-state=done] .md-source__fact{-webkit-animation:md-source__fact--done 400ms ease-out;animation:md-source__fact--done 400ms ease-out}.md-source__fact::before{margin:0 .1rem;content:"·"}.md-source__fact:first-child::before{display:none}.md-tabs{width:100%;overflow:auto;color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color);transition:background 250ms}.no-js .md-tabs{transition:none}@media screen and (max-width: 76.1875em){.md-tabs{display:none}}@media print{.md-tabs{display:none}}.md-tabs__list{margin:0;margin-left:.2rem;padding:0;white-space:nowrap;list-style:none;contain:content}[dir=rtl] .md-tabs__list{margin-right:.2rem;margin-left:initial}.md-tabs__item{display:inline-block;height:2.4rem;padding-right:.6rem;padding-left:.6rem}.md-tabs__link{display:block;margin-top:.8rem;font-size:.7rem;opacity:.7;transition:transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 250ms}.no-js .md-tabs__link{transition:none}.md-tabs__link--active,.md-tabs__link:hover{color:inherit;opacity:1}.md-tabs__item:nth-child(2) .md-tabs__link{transition-delay:20ms}.md-tabs__item:nth-child(3) .md-tabs__link{transition-delay:40ms}.md-tabs__item:nth-child(4) .md-tabs__link{transition-delay:60ms}.md-tabs__item:nth-child(5) .md-tabs__link{transition-delay:80ms}.md-tabs__item:nth-child(6) .md-tabs__link{transition-delay:100ms}.md-tabs__item:nth-child(7) .md-tabs__link{transition-delay:120ms}.md-tabs__item:nth-child(8) .md-tabs__link{transition-delay:140ms}.md-tabs__item:nth-child(9) .md-tabs__link{transition-delay:160ms}.md-tabs__item:nth-child(10) .md-tabs__link{transition-delay:180ms}.md-tabs__item:nth-child(11) .md-tabs__link{transition-delay:200ms}.md-tabs__item:nth-child(12) .md-tabs__link{transition-delay:220ms}.md-tabs__item:nth-child(13) .md-tabs__link{transition-delay:240ms}.md-tabs__item:nth-child(14) .md-tabs__link{transition-delay:260ms}.md-tabs__item:nth-child(15) .md-tabs__link{transition-delay:280ms}.md-tabs__item:nth-child(16) .md-tabs__link{transition-delay:300ms}.md-tabs[data-md-state=hidden]{pointer-events:none}.md-tabs[data-md-state=hidden] .md-tabs__link{transform:translateY(50%);opacity:0;transition:color 250ms,transform 0ms 400ms,opacity 100ms}@media screen and (min-width: 76.25em){.md-tabs~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--nested{display:none}.md-tabs--active~.md-main .md-nav--primary .md-nav__title{display:block;padding:0 .6rem;pointer-events:none;scroll-snap-align:start}.md-tabs--active~.md-main .md-nav--primary .md-nav__title[for=__drawer]{display:none}.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item{display:none}.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--active{display:block;padding:0}.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--active>.md-nav__link{display:none}.md-tabs--active~.md-main .md-nav[data-md-level="1"]{display:block}.md-tabs--active~.md-main .md-nav[data-md-level="1"]>.md-nav__list>.md-nav__item{padding:0 .6rem}.md-tabs--active~.md-main .md-nav[data-md-level="1"] .md-nav .md-nav__title{display:none}}:root{--md-admonition-icon--note: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--abstract: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--info: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--tip: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--success: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--question: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--warning: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--failure: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--danger: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--bug: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--example: url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--quote: url('data:image/svg+xml;charset=utf-8,')}.md-typeset .admonition,.md-typeset details{margin:1.5625em 0;padding:0 .6rem;overflow:hidden;font-size:.64rem;page-break-inside:avoid;border-left:.2rem solid #448aff;border-radius:.1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .05rem rgba(0,0,0,.1)}[dir=rtl] .md-typeset .admonition,[dir=rtl] .md-typeset details{border-right:.2rem solid #448aff;border-left:none}@media print{.md-typeset .admonition,.md-typeset details{box-shadow:none}}html .md-typeset .admonition>:last-child,html .md-typeset details>:last-child{margin-bottom:.6rem}.md-typeset .admonition .admonition,.md-typeset details .admonition,.md-typeset .admonition details,.md-typeset details details{margin:1em 0}.md-typeset .admonition .md-typeset__scrollwrap,.md-typeset details .md-typeset__scrollwrap{margin:1em -0.6rem}.md-typeset .admonition .md-typeset__table,.md-typeset details .md-typeset__table{padding:0 .6rem}.md-typeset .admonition-title,.md-typeset summary{position:relative;margin:0 -0.6rem;padding:.4rem .6rem .4rem 2rem;font-weight:700;background-color:rgba(68,138,255,.1)}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{padding:.4rem 2rem .4rem .6rem}html .md-typeset .admonition-title:last-child,html .md-typeset summary:last-child{margin-bottom:0}.md-typeset .admonition-title::before,.md-typeset summary::before{position:absolute;left:.6rem;width:1rem;height:1rem;background-color:#448aff;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);content:""}[dir=rtl] .md-typeset .admonition-title::before,[dir=rtl] .md-typeset summary::before{right:.6rem;left:initial}.md-typeset .admonition-title code,.md-typeset summary code{margin:initial;padding:initial;color:currentColor;background-color:transparent;border-radius:initial;box-shadow:none}.md-typeset .admonition.note,.md-typeset details.note{border-color:#448aff}.md-typeset .note>.admonition-title,.md-typeset .note>summary{background-color:rgba(68,138,255,.1)}.md-typeset .note>.admonition-title::before,.md-typeset .note>summary::before{background-color:#448aff;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note)}.md-typeset .admonition.abstract,.md-typeset details.abstract,.md-typeset .admonition.tldr,.md-typeset details.tldr,.md-typeset .admonition.summary,.md-typeset details.summary{border-color:#00b0ff}.md-typeset .abstract>.admonition-title,.md-typeset .abstract>summary,.md-typeset .tldr>.admonition-title,.md-typeset .tldr>summary,.md-typeset .summary>.admonition-title,.md-typeset .summary>summary{background-color:rgba(0,176,255,.1)}.md-typeset .abstract>.admonition-title::before,.md-typeset .abstract>summary::before,.md-typeset .tldr>.admonition-title::before,.md-typeset .tldr>summary::before,.md-typeset .summary>.admonition-title::before,.md-typeset .summary>summary::before{background-color:#00b0ff;-webkit-mask-image:var(--md-admonition-icon--abstract);mask-image:var(--md-admonition-icon--abstract)}.md-typeset .admonition.info,.md-typeset details.info,.md-typeset .admonition.todo,.md-typeset details.todo{border-color:#00b8d4}.md-typeset .info>.admonition-title,.md-typeset .info>summary,.md-typeset .todo>.admonition-title,.md-typeset .todo>summary{background-color:rgba(0,184,212,.1)}.md-typeset .info>.admonition-title::before,.md-typeset .info>summary::before,.md-typeset .todo>.admonition-title::before,.md-typeset .todo>summary::before{background-color:#00b8d4;-webkit-mask-image:var(--md-admonition-icon--info);mask-image:var(--md-admonition-icon--info)}.md-typeset .admonition.tip,.md-typeset details.tip,.md-typeset .admonition.important,.md-typeset details.important,.md-typeset .admonition.hint,.md-typeset details.hint{border-color:#00bfa5}.md-typeset .tip>.admonition-title,.md-typeset .tip>summary,.md-typeset .important>.admonition-title,.md-typeset .important>summary,.md-typeset .hint>.admonition-title,.md-typeset .hint>summary{background-color:rgba(0,191,165,.1)}.md-typeset .tip>.admonition-title::before,.md-typeset .tip>summary::before,.md-typeset .important>.admonition-title::before,.md-typeset .important>summary::before,.md-typeset .hint>.admonition-title::before,.md-typeset .hint>summary::before{background-color:#00bfa5;-webkit-mask-image:var(--md-admonition-icon--tip);mask-image:var(--md-admonition-icon--tip)}.md-typeset .admonition.success,.md-typeset details.success,.md-typeset .admonition.done,.md-typeset details.done,.md-typeset .admonition.check,.md-typeset details.check{border-color:#00c853}.md-typeset .success>.admonition-title,.md-typeset .success>summary,.md-typeset .done>.admonition-title,.md-typeset .done>summary,.md-typeset .check>.admonition-title,.md-typeset .check>summary{background-color:rgba(0,200,83,.1)}.md-typeset .success>.admonition-title::before,.md-typeset .success>summary::before,.md-typeset .done>.admonition-title::before,.md-typeset .done>summary::before,.md-typeset .check>.admonition-title::before,.md-typeset .check>summary::before{background-color:#00c853;-webkit-mask-image:var(--md-admonition-icon--success);mask-image:var(--md-admonition-icon--success)}.md-typeset .admonition.question,.md-typeset details.question,.md-typeset .admonition.faq,.md-typeset details.faq,.md-typeset .admonition.help,.md-typeset details.help{border-color:#64dd17}.md-typeset .question>.admonition-title,.md-typeset .question>summary,.md-typeset .faq>.admonition-title,.md-typeset .faq>summary,.md-typeset .help>.admonition-title,.md-typeset .help>summary{background-color:rgba(100,221,23,.1)}.md-typeset .question>.admonition-title::before,.md-typeset .question>summary::before,.md-typeset .faq>.admonition-title::before,.md-typeset .faq>summary::before,.md-typeset .help>.admonition-title::before,.md-typeset .help>summary::before{background-color:#64dd17;-webkit-mask-image:var(--md-admonition-icon--question);mask-image:var(--md-admonition-icon--question)}.md-typeset .admonition.warning,.md-typeset details.warning,.md-typeset .admonition.attention,.md-typeset details.attention,.md-typeset .admonition.caution,.md-typeset details.caution{border-color:#ff9100}.md-typeset .warning>.admonition-title,.md-typeset .warning>summary,.md-typeset .attention>.admonition-title,.md-typeset .attention>summary,.md-typeset .caution>.admonition-title,.md-typeset .caution>summary{background-color:rgba(255,145,0,.1)}.md-typeset .warning>.admonition-title::before,.md-typeset .warning>summary::before,.md-typeset .attention>.admonition-title::before,.md-typeset .attention>summary::before,.md-typeset .caution>.admonition-title::before,.md-typeset .caution>summary::before{background-color:#ff9100;-webkit-mask-image:var(--md-admonition-icon--warning);mask-image:var(--md-admonition-icon--warning)}.md-typeset .admonition.failure,.md-typeset details.failure,.md-typeset .admonition.missing,.md-typeset details.missing,.md-typeset .admonition.fail,.md-typeset details.fail{border-color:#ff5252}.md-typeset .failure>.admonition-title,.md-typeset .failure>summary,.md-typeset .missing>.admonition-title,.md-typeset .missing>summary,.md-typeset .fail>.admonition-title,.md-typeset .fail>summary{background-color:rgba(255,82,82,.1)}.md-typeset .failure>.admonition-title::before,.md-typeset .failure>summary::before,.md-typeset .missing>.admonition-title::before,.md-typeset .missing>summary::before,.md-typeset .fail>.admonition-title::before,.md-typeset .fail>summary::before{background-color:#ff5252;-webkit-mask-image:var(--md-admonition-icon--failure);mask-image:var(--md-admonition-icon--failure)}.md-typeset .admonition.danger,.md-typeset details.danger,.md-typeset .admonition.error,.md-typeset details.error{border-color:#ff1744}.md-typeset .danger>.admonition-title,.md-typeset .danger>summary,.md-typeset .error>.admonition-title,.md-typeset .error>summary{background-color:rgba(255,23,68,.1)}.md-typeset .danger>.admonition-title::before,.md-typeset .danger>summary::before,.md-typeset .error>.admonition-title::before,.md-typeset .error>summary::before{background-color:#ff1744;-webkit-mask-image:var(--md-admonition-icon--danger);mask-image:var(--md-admonition-icon--danger)}.md-typeset .admonition.bug,.md-typeset details.bug{border-color:#f50057}.md-typeset .bug>.admonition-title,.md-typeset .bug>summary{background-color:rgba(245,0,87,.1)}.md-typeset .bug>.admonition-title::before,.md-typeset .bug>summary::before{background-color:#f50057;-webkit-mask-image:var(--md-admonition-icon--bug);mask-image:var(--md-admonition-icon--bug)}.md-typeset .admonition.example,.md-typeset details.example{border-color:#651fff}.md-typeset .example>.admonition-title,.md-typeset .example>summary{background-color:rgba(101,31,255,.1)}.md-typeset .example>.admonition-title::before,.md-typeset .example>summary::before{background-color:#651fff;-webkit-mask-image:var(--md-admonition-icon--example);mask-image:var(--md-admonition-icon--example)}.md-typeset .admonition.quote,.md-typeset details.quote,.md-typeset .admonition.cite,.md-typeset details.cite{border-color:#9e9e9e}.md-typeset .quote>.admonition-title,.md-typeset .quote>summary,.md-typeset .cite>.admonition-title,.md-typeset .cite>summary{background-color:rgba(158,158,158,.1)}.md-typeset .quote>.admonition-title::before,.md-typeset .quote>summary::before,.md-typeset .cite>.admonition-title::before,.md-typeset .cite>summary::before{background-color:#9e9e9e;-webkit-mask-image:var(--md-admonition-icon--quote);mask-image:var(--md-admonition-icon--quote)}.codehilite .o,.highlight .o{color:inherit}.codehilite .ow,.highlight .ow{color:inherit}.codehilite .ge,.highlight .ge{color:#000}.codehilite .gr,.highlight .gr{color:#a00}.codehilite .gh,.highlight .gh{color:#999}.codehilite .go,.highlight .go{color:#888}.codehilite .gp,.highlight .gp{color:#555}.codehilite .gs,.highlight .gs{color:inherit}.codehilite .gu,.highlight .gu{color:#aaa}.codehilite .gt,.highlight .gt{color:#a00}.codehilite .gd,.highlight .gd{background-color:#fdd}.codehilite .gi,.highlight .gi{background-color:#dfd}.codehilite .k,.highlight .k{color:#3b78e7}.codehilite .kc,.highlight .kc{color:#a71d5d}.codehilite .kd,.highlight .kd{color:#3b78e7}.codehilite .kn,.highlight .kn{color:#3b78e7}.codehilite .kp,.highlight .kp{color:#a71d5d}.codehilite .kr,.highlight .kr{color:#3e61a2}.codehilite .kt,.highlight .kt{color:#3e61a2}.codehilite .c,.highlight .c{color:#999}.codehilite .cm,.highlight .cm{color:#999}.codehilite .cp,.highlight .cp{color:#666}.codehilite .c1,.highlight .c1{color:#999}.codehilite .ch,.highlight .ch{color:#999}.codehilite .cs,.highlight .cs{color:#999}.codehilite .na,.highlight .na{color:#c2185b}.codehilite .nb,.highlight .nb{color:#c2185b}.codehilite .bp,.highlight .bp{color:#3e61a2}.codehilite .nc,.highlight .nc{color:#c2185b}.codehilite .no,.highlight .no{color:#3e61a2}.codehilite .nd,.highlight .nd{color:#666}.codehilite .ni,.highlight .ni{color:#666}.codehilite .ne,.highlight .ne{color:#c2185b}.codehilite .nf,.highlight .nf{color:#c2185b}.codehilite .nl,.highlight .nl{color:#3b5179}.codehilite .nn,.highlight .nn{color:#ec407a}.codehilite .nt,.highlight .nt{color:#3b78e7}.codehilite .nv,.highlight .nv{color:#3e61a2}.codehilite .vc,.highlight .vc{color:#3e61a2}.codehilite .vg,.highlight .vg{color:#3e61a2}.codehilite .vi,.highlight .vi{color:#3e61a2}.codehilite .nx,.highlight .nx{color:#ec407a}.codehilite .m,.highlight .m{color:#e74c3c}.codehilite .mf,.highlight .mf{color:#e74c3c}.codehilite .mh,.highlight .mh{color:#e74c3c}.codehilite .mi,.highlight .mi{color:#e74c3c}.codehilite .il,.highlight .il{color:#e74c3c}.codehilite .mo,.highlight .mo{color:#e74c3c}.codehilite .s,.highlight .s{color:#0d904f}.codehilite .sb,.highlight .sb{color:#0d904f}.codehilite .sc,.highlight .sc{color:#0d904f}.codehilite .sd,.highlight .sd{color:#999}.codehilite .s2,.highlight .s2{color:#0d904f}.codehilite .se,.highlight .se{color:#183691}.codehilite .sh,.highlight .sh{color:#183691}.codehilite .si,.highlight .si{color:#183691}.codehilite .sx,.highlight .sx{color:#183691}.codehilite .sr,.highlight .sr{color:#009926}.codehilite .s1,.highlight .s1{color:#0d904f}.codehilite .ss,.highlight .ss{color:#0d904f}.codehilite .err,.highlight .err{color:#a61717}.codehilite .w,.highlight .w{color:transparent}.codehilite .hll,.highlight .hll{display:block;margin:0 -1.1764705882em;padding:0 1.1764705882em;background-color:rgba(255,235,59,.5)}.codehilitetable,.highlighttable{display:block;overflow:hidden}.codehilitetable tbody,.highlighttable tbody,.codehilitetable td,.highlighttable td{display:block;padding:0}.codehilitetable tr,.highlighttable tr{display:flex}.codehilitetable pre,.highlighttable pre{margin:0}.codehilitetable .linenos,.highlighttable .linenos{padding:.525rem 1.1764705882em;padding-right:0;font-size:.85em;background-color:var(--md-code-bg-color);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.codehilitetable .linenodiv,.highlighttable .linenodiv{padding-right:.5882352941em;box-shadow:inset -0.05rem 0 var(--md-default-fg-color--lightest)}.codehilitetable .linenodiv pre,.highlighttable .linenodiv pre{color:var(--md-default-fg-color--lighter);text-align:right}.codehilitetable .code,.highlighttable .code{flex:1;overflow:hidden}.md-typeset .codehilitetable,.md-typeset .highlighttable{margin:1em 0;direction:ltr;border-radius:.1rem}.md-typeset .codehilitetable code,.md-typeset .highlighttable code{border-radius:0}@media screen and (max-width: 44.9375em){.md-typeset>.codehilite,.md-typeset>.highlight{margin:1em -0.8rem}.md-typeset>.codehilite .hll,.md-typeset>.highlight .hll{margin:0 -0.8rem;padding:0 .8rem}.md-typeset>.codehilite code,.md-typeset>.highlight code{border-radius:0}.md-typeset>.codehilitetable,.md-typeset>.highlighttable{margin:1em -0.8rem;border-radius:0}.md-typeset>.codehilitetable .hll,.md-typeset>.highlighttable .hll{margin:0 -0.8rem;padding:0 .8rem}}:root{--md-footnotes-icon: url('data:image/svg+xml;charset=utf-8,')}.md-typeset [id^="fnref:"]{display:inline-block}.md-typeset [id^="fnref:"]:target{margin-top:-3.8rem;padding-top:3.8rem;pointer-events:none}.md-typeset [id^="fn:"]::before{display:none;height:0;content:""}.md-typeset [id^="fn:"]:target::before{display:block;margin-top:-3.5rem;padding-top:3.5rem;pointer-events:none}.md-typeset .footnote{color:var(--md-default-fg-color--light);font-size:.64rem}.md-typeset .footnote ol{margin-left:0}.md-typeset .footnote li{transition:color 125ms}.md-typeset .footnote li:target{color:var(--md-default-fg-color)}.md-typeset .footnote li :first-child{margin-top:0}.md-typeset .footnote li:hover .footnote-backref,.md-typeset .footnote li:target .footnote-backref{transform:translateX(0);opacity:1}.md-typeset .footnote li:hover .footnote-backref:hover{color:var(--md-accent-fg-color)}.md-typeset .footnote-ref{display:inline-block;pointer-events:initial}.md-typeset .footnote-backref{display:inline-block;color:var(--md-primary-fg-color);font-size:0;vertical-align:text-bottom;transform:translateX(0.25rem);opacity:0;transition:color 250ms,transform 250ms 250ms,opacity 125ms 250ms}[dir=rtl] .md-typeset .footnote-backref{transform:translateX(-0.25rem)}.md-typeset .footnote-backref::before{display:inline-block;width:.8rem;height:.8rem;background-color:currentColor;-webkit-mask-image:var(--md-footnotes-icon);mask-image:var(--md-footnotes-icon);content:""}[dir=rtl] .md-typeset .footnote-backref::before svg{transform:scaleX(-1)}@media print{.md-typeset .footnote-backref{color:var(--md-primary-fg-color);transform:translateX(0);opacity:1}}.md-typeset .headerlink{display:inline-block;margin-left:.5rem;visibility:hidden;opacity:0;transition:color 250ms,visibility 0ms 500ms,opacity 125ms}[dir=rtl] .md-typeset .headerlink{margin-right:.5rem;margin-left:initial}html body .md-typeset .headerlink{color:var(--md-default-fg-color--lighter)}@media print{.md-typeset .headerlink{display:none}}.md-typeset :hover>.headerlink,.md-typeset :target>.headerlink,.md-typeset .headerlink:focus{visibility:visible;opacity:1;transition:color 250ms,visibility 0ms,opacity 125ms}.md-typeset :target>.headerlink,.md-typeset .headerlink:focus,.md-typeset .headerlink:hover{color:var(--md-accent-fg-color)}.md-typeset h3[id]::before,.md-typeset h2[id]::before,.md-typeset h1[id]::before{display:block;margin-top:-0.4rem;padding-top:.4rem;content:""}.md-typeset h3[id]:target::before,.md-typeset h2[id]:target::before,.md-typeset h1[id]:target::before{margin-top:-3.4rem;padding-top:3.4rem}.md-typeset h4[id]::before{display:block;margin-top:-0.45rem;padding-top:.45rem;content:""}.md-typeset h4[id]:target::before{margin-top:-3.45rem;padding-top:3.45rem}.md-typeset h6[id]::before,.md-typeset h5[id]::before{display:block;margin-top:-0.6rem;padding-top:.6rem;content:""}.md-typeset h6[id]:target::before,.md-typeset h5[id]:target::before{margin-top:-3.6rem;padding-top:3.6rem}.md-typeset .MJXc-display{margin:.75em 0;padding:.75em 0;overflow:auto;touch-action:auto}@media screen and (max-width: 44.9375em){.md-typeset>p>.MJXc-display{margin:.75em -0.8rem;padding:.25em .8rem}}.md-typeset .MathJax_CHTML{outline:0}.md-typeset del.critic,.md-typeset ins.critic,.md-typeset .critic.comment{padding:0 .25em;border-radius:.1rem;-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset del.critic{background-color:#fdd}.md-typeset ins.critic{background-color:#dfd}.md-typeset .critic.comment{color:#999}.md-typeset .critic.comment::before{content:"/* "}.md-typeset .critic.comment::after{content:" */"}.md-typeset .critic.block{display:block;margin:1em 0;padding-right:.8rem;padding-left:.8rem;overflow:auto;box-shadow:none}.md-typeset .critic.block :first-child{margin-top:.5em}.md-typeset .critic.block :last-child{margin-bottom:.5em}:root{--md-details-icon: url('data:image/svg+xml;charset=utf-8,')}.md-typeset details{display:block;padding-top:0;overflow:visible}.md-typeset details[open]>summary::after{transform:rotate(90deg)}.md-typeset details:not([open]){padding-bottom:0}.md-typeset details:not([open])>summary{border-bottom-right-radius:.1rem}.md-typeset details::after{display:table;content:""}.md-typeset summary{display:block;min-height:1rem;padding:.4rem 1.8rem .4rem 2rem;border-top-right-radius:.1rem;cursor:pointer}[dir=rtl] .md-typeset summary{padding:.4rem 2rem .4rem 1.8rem}.md-typeset summary::-webkit-details-marker{display:none}.md-typeset summary::after{position:absolute;top:.4rem;right:.4rem;width:1rem;height:1rem;background-color:currentColor;-webkit-mask-image:var(--md-details-icon);mask-image:var(--md-details-icon);transform:rotate(0deg);transition:transform 250ms;content:""}[dir=rtl] .md-typeset summary::after{right:initial;left:.4rem;transform:rotate(180deg)}.md-typeset img.emojione,.md-typeset img.twemoji,.md-typeset img.gemoji{width:1.125em;vertical-align:-15%}.md-typeset span.twemoji{display:inline-block;height:1.125em;vertical-align:text-top}.md-typeset span.twemoji svg{width:1.125em;fill:currentColor}.highlight [data-linenos]::before{position:-webkit-sticky;position:sticky;left:-1.1764705882em;float:left;margin-right:1.1764705882em;margin-left:-1.1764705882em;padding-left:1.1764705882em;color:var(--md-default-fg-color--lighter);background-color:var(--md-code-bg-color);box-shadow:inset -0.05rem 0 var(--md-default-fg-color--lightest);content:attr(data-linenos);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.md-typeset .tabbed-content{display:none;order:99;width:100%;box-shadow:0 -0.05rem var(--md-default-fg-color--lightest)}.md-typeset .tabbed-content>.codehilite:only-child pre,.md-typeset .tabbed-content>.codehilitetable:only-child,.md-typeset .tabbed-content>.highlight:only-child pre,.md-typeset .tabbed-content>.highlighttable:only-child{margin:0}.md-typeset .tabbed-content>.codehilite:only-child pre>code,.md-typeset .tabbed-content>.codehilitetable:only-child>code,.md-typeset .tabbed-content>.highlight:only-child pre>code,.md-typeset .tabbed-content>.highlighttable:only-child>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-content>.tabbed-set{margin:0}.md-typeset .tabbed-set{position:relative;display:flex;flex-wrap:wrap;margin:1em 0;border-radius:.1rem}.md-typeset .tabbed-set>input{display:none}.md-typeset .tabbed-set>input:checked+label{color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color)}.md-typeset .tabbed-set>input:checked+label+.tabbed-content{display:block}.md-typeset .tabbed-set>label{z-index:1;width:auto;padding:.6rem 1.25em .5rem;color:var(--md-default-fg-color--light);font-weight:700;font-size:.64rem;border-bottom:.1rem solid transparent;cursor:pointer;transition:color 125ms}html .md-typeset .tabbed-set>label:hover{color:var(--md-accent-fg-color)}:root{--md-tasklist-icon: url('data:image/svg+xml;charset=utf-8,');--md-tasklist-icon--checked: url('data:image/svg+xml;charset=utf-8,')}.md-typeset .task-list-item{position:relative;list-style-type:none}.md-typeset .task-list-item [type=checkbox]{position:absolute;top:.45em;left:-2em}[dir=rtl] .md-typeset .task-list-item [type=checkbox]{right:-2em;left:initial}.md-typeset .task-list-control .task-list-indicator::before{position:absolute;top:.15em;left:-1.5em;width:1.25em;height:1.25em;background-color:var(--md-default-fg-color--lightest);-webkit-mask-image:var(--md-tasklist-icon);mask-image:var(--md-tasklist-icon);content:""}[dir=rtl] .md-typeset .task-list-control .task-list-indicator::before{right:-1.5em;left:initial}.md-typeset .task-list-control [type=checkbox]:checked+.task-list-indicator::before{background-color:#00e676;-webkit-mask-image:var(--md-tasklist-icon--checked);mask-image:var(--md-tasklist-icon--checked)}.md-typeset .task-list-control [type=checkbox]{z-index:-1;opacity:0} + +/*# sourceMappingURL=main.c8609f9b.min.css.map*/ \ No newline at end of file diff --git a/docs/theme/material/assets/stylesheets/main.c8609f9b.min.css.map b/docs/theme/material/assets/stylesheets/main.c8609f9b.min.css.map new file mode 100644 index 00000000..694598a4 --- /dev/null +++ b/docs/theme/material/assets/stylesheets/main.c8609f9b.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///main.scss","webpack:///./src/assets/stylesheets/base/_reset.scss","webpack:///./src/assets/stylesheets/base/_colors.scss","webpack:///./src/assets/stylesheets/base/_icons.scss","webpack:///./src/assets/stylesheets/base/_typeset.scss","webpack:///./src/assets/stylesheets/utilities/_break.scss","webpack:///./src/assets/stylesheets/layout/_base.scss","webpack:///./src/assets/stylesheets/layout/_announce.scss","webpack:///./src/assets/stylesheets/layout/_button.scss","webpack:///./src/assets/stylesheets/layout/_clipboard.scss","webpack:///./src/assets/stylesheets/layout/_content.scss","webpack:///./src/assets/stylesheets/layout/_dialog.scss","webpack:///./node_modules/material-shadows/material-shadows.scss","webpack:///./src/assets/stylesheets/layout/_header.scss","webpack:///./src/assets/stylesheets/layout/_hero.scss","webpack:///./src/assets/stylesheets/layout/_footer.scss","webpack:///./src/assets/stylesheets/layout/_nav.scss","webpack:///./src/assets/stylesheets/layout/_search.scss","webpack:///./src/assets/stylesheets/layout/_sidebar.scss","webpack:///./src/assets/stylesheets/layout/_source.scss","webpack:///./src/assets/stylesheets/layout/_tabs.scss","webpack:///./src/assets/stylesheets/extensions/_admonition.scss","webpack:///./node_modules/material-design-color/material-color.scss","webpack:///./src/assets/stylesheets/extensions/_codehilite.scss","webpack:///./src/assets/stylesheets/extensions/_footnotes.scss","webpack:///./src/assets/stylesheets/extensions/_permalinks.scss","webpack:///./src/assets/stylesheets/extensions/pymdown/_arithmatex.scss","webpack:///./src/assets/stylesheets/extensions/pymdown/_critic.scss","webpack:///./src/assets/stylesheets/extensions/pymdown/_details.scss","webpack:///./src/assets/stylesheets/extensions/pymdown/_emoji.scss","webpack:///./src/assets/stylesheets/extensions/pymdown/_highlight.scss","webpack:///./src/assets/stylesheets/extensions/pymdown/_tabbed.scss","webpack:///./src/assets/stylesheets/extensions/pymdown/_tasklist.scss"],"names":[],"mappings":"AAAA,KC6BA,qBACE,sBAIF,kBAGE,MAIF,6BACE,CADF,0BACE,CADF,yBACE,CADF,qBACE,MAIF,QACE,IAIF,sBACE,iBACA,sBAIF,uCAIE,GAIF,aACE,qBACA,OAIF,aACE,SAIF,iBAEE,cACA,cACA,wBACA,KAIF,cACE,KAIF,UACE,KAIF,iBACE,OAIF,wBACE,iBACA,OAIF,kBAEE,mBACA,QAIF,QACE,UACA,kBACA,uBACA,SACA,OAIF,QACE,UACA,OCjGF,4CAGE,oDACA,sDACA,uDACA,4CACA,qDACA,uDACA,yDACA,iDAGA,wDACA,uDACA,kDACA,gEACA,gDAGA,+DACA,iDACA,+DACA,wCAGA,2CACA,cCxBA,aACE,aACA,cACA,cACA,kBACA,MCRJ,kCACE,kCACA,YAIF,gCAEE,oCACA,wEACA,cAIF,gCAGE,6BACA,oDACA,aAWF,eACE,gBACA,iCACA,CADA,kBACA,oEAGA,YAIE,gBAIF,eACE,wCACA,gBACA,oBACA,gBACA,uBACA,gBAIF,mBACE,gBACA,kBACA,gBACA,uBACA,gBAIF,qBACE,gBACA,eACA,gBACA,uBACA,mBAIF,gBACE,gBAIF,cACE,gBACA,gBACA,uBACA,+BAIF,cAEE,wCACA,gBACA,iBACA,uBACA,gBAIF,wBACE,gBAIF,cACE,gEACA,eAIF,gCACE,sBACA,qCAGA,sBAEE,yCAIF,+BAEE,kDAKJ,6BAGE,cACA,cAGA,iDAPF,oBAQI,mBAKJ,uBACE,gBACA,sBACA,yCACA,oBACA,mCACA,CADA,0BACA,yHAIF,cAME,gBACA,6BACA,gBACA,oBAIF,kBACE,iBAIF,iBACE,aACA,gBACA,sBAGA,aACE,SACA,+BACA,cACA,kBACA,gBACA,mCACA,CADA,0BACA,kBACA,yCAGA,WACE,aACA,+CAIF,oDACE,qDAGA,0CACE,0CCfN,gBDyBA,kBACE,sBAGA,eACE,kBAMN,oBACE,wBACA,gBACA,gBACA,wBACA,sBACA,oBACA,+JAEE,kBAMJ,eACE,sBACA,qCACA,oBACA,mCACA,CADA,0BACA,kBAIF,oBACE,8DACA,YACA,mBAIF,WACE,iCAIF,qBAEE,qDAGA,sBACE,oBACA,wBAKJ,kBACE,wCACA,4DACA,kCAGA,mBACE,qBACA,6DACA,oBACA,gBAKJ,oBACE,+BAIF,kBAEE,UACA,mDAGA,mBACE,oBACA,qCAIF,2BACE,2CAGA,2BACE,qCAKJ,kBACE,mBACA,yDAGA,mBACE,oBACA,mGAIF,aAEE,2DAIF,eACE,qFAIF,yBAEE,6HAGA,mBACE,oBACA,gBAOR,wBACE,0BAGA,oBACE,oBACA,oDAKJ,cAGE,YACA,gCAIF,oBACE,eACA,cACA,iBACA,sCACA,oBACA,mEAEE,kBAEF,kCAKA,gBACE,+FAIF,eAEE,mHAGA,gBACE,mCAKJ,cACE,oBACA,iCACA,mBACA,mDACA,mCAIF,mBACE,mBACA,6DACA,mCAIF,iCACE,yCAGA,iCACE,uDACA,kDAIF,YACE,kCAMJ,iBACE,yBAKJ,kBACE,gBACA,kBACA,oBAIF,oBACE,mBACA,gBACA,0BAGA,aACE,WACA,SACA,gBACA,MErbN,WACE,kBAKA,eAOA,4CACA,sCDyIE,KCvJJ,gBAkBI,uCDqIA,KCvJJ,cAuBI,OAKJ,iBACE,aACA,sBACA,WACA,gBACA,gBAGA,0CDqIE,yBC/HA,cACE,eAMJ,KArBF,aAsBI,KAKJ,aACE,cACA,UACA,SACA,UAIF,eACE,kBACA,iBACA,eAIF,YACE,sBACA,YACA,cAIA,cAPF,aAQI,WAKJ,WACE,iBAGA,YACE,YACA,kBACA,cAKJ,aACE,gBACA,mBACA,uBACA,YAQF,YACE,aAIF,cACE,MACA,UACA,QACA,SACA,mDACA,UACA,0DAEE,0CDgDA,4CCxCA,UACE,YACA,UACA,8CAEE,WAYR,cACE,WAGA,aACA,oBACA,iCACA,iBACA,4CACA,oBACA,6BACA,UACA,gBAGA,UACE,wBACA,UACA,2EAEE,OAUN,WACE,cC1LF,aACE,4CACA,qBAGA,iBACE,gBACA,iCACA,gBACA,cAIF,aAbF,YAcI,yBCXF,oBACE,mBACA,iCACA,gBACA,gCACA,oBACA,iEAEE,iCAKF,gCACE,4CACA,wCACA,2DAIF,+BAEE,2CACA,uCACA,eC3BN,iBACE,UACA,WACA,UACA,YACA,aACA,2CACA,oBACA,eACA,uBACA,cAGA,cAbF,YAcI,oBAIF,aACE,eACA,yBAIF,uCACE,iDAIF,+BAEE,aC/BJ,MACE,eACA,+DLyII,YK3IN,8BAMI,yCL0JA,YKhKJ,kCAWI,qBAIF,qBACE,kBACA,wCL+IA,mBKjJF,mBAMI,mBACA,6BAKF,aACE,aACA,WACA,gCAIF,eACE,qBAKJ,WACE,eACA,kBACA,UACA,+BAGA,UACE,mBACA,oBACA,mCAGA,oBACE,iCAKJ,yCACE,yBAIF,cACE,mBACA,cAIF,oBA9BF,YA+BI,aCvEN,gGCFE,eDKA,YACA,aACA,aACA,UACA,cACA,kBACA,oBACA,iCACA,gBACA,sCACA,YACA,oBACA,2BACA,UACA,6CAEE,sBAIF,aACE,WACA,gCAIF,uBACE,UACA,6EAEE,cAKJ,WAtCF,YAuCI,aEvCJ,uBACE,CADF,eACE,MACA,QACA,OACA,UACA,cACA,iCACA,4CACA,+DAIE,8CAGA,mBAIF,eACE,gBACA,kCAIF,gEAEI,+DAGA,cAMJ,WApCF,YAqCI,iBAKJ,YACE,gBACA,wBAGA,iBACE,UACA,aACA,cACA,eACA,yBACA,sCAME,oBACE,2DAKJ,UAEE,gCAIF,YACE,cACA,uEAGA,aAEE,aACA,cACA,kBACA,6CAKJ,YACE,qCRyEF,qCQlEE,YACE,2CRmFJ,+BQ3EE,YACE,yCRwDJ,qCQhDE,YACE,wBAMN,iBACE,WACA,wEAEE,6CAIF,UACE,8BACA,UACA,wEAEE,oBAEF,uDAGA,8BACE,8BAKJ,gBACE,oDAIF,YACE,uBAKJ,WACE,eACA,gBACA,mBACA,mEAGA,UACE,+BACA,UACA,wEAEE,oBAEF,6EAGA,6BACE,yFAIF,SACE,wBACA,UACA,wEAEE,uBAEF,gDAKJ,iBACE,WACA,YACA,wBAKJ,YACE,qCRrCA,uBQoCF,aAKI,cACA,kBACA,iBACA,kCAGA,iBACE,oBACA,yCRjDJ,uBQoCF,kBAmBI,kCAGA,mBACE,WC3NR,eACE,iCACA,eACA,4CACA,4BACA,iBAGA,eACE,0BACA,wEAEE,uBAEF,0CToKA,gBS1KF,iBAUI,qBACA,yCAIF,8BACE,UACA,iDAEE,oBAEF,kCAIF,oBACE,YClCN,gCACE,4CACA,cAGA,WALF,YAMI,wBAQF,aACE,cACA,sBAIF,YACE,mBACA,qBACA,yBACA,qCVwIA,qBU5IF,SAQI,wDAIF,UAEE,4BAIF,UACE,UACA,sCAGA,WACE,0CAGA,oBACE,0CVkIN,iDU7HE,YAII,6BAMN,WACE,UACA,iBACA,sCAGA,UACE,gBACA,0CAGA,oBACE,uBAOR,iBACE,YACA,8BACA,eACA,gBACA,mBACA,wBAIF,YACE,cACA,2BAIF,iBACE,QACA,OACA,iBACA,eACA,wCACA,iBACA,iBAKJ,oDACE,wBAGA,YACE,eACA,8BACA,cACA,mCAIF,uCACE,iFAGA,gCAEE,sBAMN,UACE,kBACA,gBACA,0CACA,iBACA,qCVqBE,qBU1BJ,UASI,kCAIF,uCACE,mBAKJ,cACE,sBACA,qCVKE,kBUPJ,eAMI,0BAIF,oBACE,aACA,cACA,kBACA,iCAGA,eACE,6BAIF,gBACE,oBACA,kBACA,SClLN,eACE,gBACA,gBAGA,aACE,gBACA,gBACA,gBACA,uBACA,gCAGA,YACE,oCAGA,UACE,YACA,uFAOA,aAEE,aACA,cACA,4CAIF,iBACE,eAOR,QACE,UACA,gBACA,eAIF,eACE,0BAGA,oBACE,6BAIF,eACE,uCAGA,mBACE,eACA,wCAIF,gBACE,eAMN,aACE,kBACA,gBACA,uBACA,eACA,uBACA,wBACA,+BAIA,YACE,uCAGA,YACE,mCAKJ,uCACE,qCAIF,gCACE,qCAIF,aACE,yCAIF,+BAEE,iBAKJ,YACE,0CX2DA,QWlLJ,2CA4HI,2CAGA,iBAEE,MACA,QACA,OACA,UACA,aACA,sBACA,YACA,gEAOA,eAEE,gBACA,iCAIF,iBACE,cACA,yBACA,wCACA,gBACA,mBACA,mBACA,sDACA,eACA,+CAGA,iBACE,UACA,WACA,cACA,aACA,cACA,aACA,yDAGA,WACE,aACA,+CAKJ,eACE,4CACA,iEAEE,qCACF,CADE,gCACF,CADE,4BACF,mBACA,yEAGA,YACE,+CAKJ,iBACE,iCACA,4CACA,+DAGA,iBACE,UACA,WACA,cACA,aACA,cACA,iBACA,8EASJ,WACE,aACA,gCAKJ,MACE,gCAIF,SACE,6DACA,0CAGA,SACE,sDAIF,oBACE,gEAGA,mBACE,oBACA,sDAKJ,gCACE,uHAGA,+BAEE,gCAMN,iBACE,aACA,oBACA,8CAGA,iBACE,QACA,YACA,mBACA,cACA,iBACA,wDAGA,aACE,WACA,8CAYF,mBACE,mDASJ,eACE,6CAIF,eACE,6BACA,2DAGA,mBACE,qEAGA,oBACE,qBACA,mEAKJ,iBACE,6EAGA,kBACE,qBACA,2EAKJ,mBACE,qFAGA,oBACE,qBACA,mFAKJ,mBACE,6FAGA,oBACE,qBACA,yBAQV,YACE,2BACA,UACA,2EAEE,mCAIF,2BACE,iCAKJ,uBACE,UACA,4EAEE,+CAIF,kCACE,CADF,0BACE,2CX3MJ,8BWqNA,aACE,qBACA,6CAGA,YACE,uCAIF,YACE,8BAKJ,mBACE,oBACA,iBAIF,aACE,gBACA,iCACA,kDACA,sCXjQF,6CW4QE,uBACE,iDAIF,YACE,yCXlRJ,QWhKJ,0DAybI,+CAME,uBACE,+CAIF,YACE,yBAKJ,YACE,iCAIF,aACE,8CAIF,YACE,eAIF,WACE,aACA,2BACA,yBAGA,UACE,yBACA,mBAIF,oBACE,YACA,aACA,uBACA,2EAIF,uBACE,aCteR,iBACE,mBAGA,YACE,qCZmJA,WYxJJ,eAUI,sBAIF,SACE,UACA,0CZ0JA,oBY5JF,iBAMI,UACA,aACA,WACA,YACA,gBACA,4CACA,mBACA,wBACA,qDAEE,oBAEF,+BAGA,aACE,aACA,gEAIF,SACE,yCAEE,2CZ8HN,+DYxHA,mBAII,gEZ6EF,+DYjFF,mBASI,gEZwEF,+DYjFF,mBAcI,sCZwFJ,oBY1IF,cAwDI,MACA,OACA,QACA,SACA,mDACA,eACA,0DAEE,+BAKF,OACE,aACA,gEAIF,UACE,YACA,UACA,8CAEE,oBAQR,kCAEE,CAFF,0BAEE,0CZkEA,kBYpEF,cAMI,MACA,UACA,UACA,WACA,YACA,yBACA,UACA,iHAEE,8DAMF,MACE,wBACA,UACA,+GAEE,wEAMF,OACE,aACA,kCAKJ,UACE,aACA,0BACA,sCZQJ,kBYlDF,iBAgDI,YACA,cACA,gBACA,sDACA,6BAGA,UACE,gEZ3BF,6DYgCF,aAII,yCZfJ,6DYWA,aASI,mBAMN,iBACE,qCZ3BA,iBY0BF,mBAKI,oBAKJ,iBACE,UACA,0BACA,uBACA,6BAGA,yBACE,8CAIF,8BACE,CADF,sBACE,CALA,oCAIF,2BACE,CADF,sBACE,CALA,yCAIF,0BACE,CADF,sBACE,CALA,+BAIF,sBACE,8CAIF,uCAEE,CANA,oCAIF,uCAEE,CANA,yCAIF,uCAEE,CANA,kEAIF,uCAEE,8BAIF,YACE,0CZ1CF,kBYkBF,UA6BI,cACA,gBACA,sCZnEF,kBYoCF,UAoCI,cACA,oBACA,cACA,gBACA,qDACA,oBACA,8CAEE,6BAIF,oBACE,oCAIF,gCACE,8CAIF,uCACE,CALA,oCAIF,uCACE,CALA,yCAIF,uCACE,CALA,+BAIF,uCACE,yBAIF,qDACE,8DAIF,gCACE,mBACA,4CACA,8BACA,yFAGA,uCAEE,CALF,+EAGA,uCAEE,CALF,oFAGA,uCAEE,CALF,wJAGA,uCAEE,mBAOR,iBACE,UACA,aACA,cACA,eACA,qCAEE,wBAIF,UACE,gCAIF,SACE,WACA,0CAGA,WACE,aACA,8CAGA,oBACE,0CZjIN,+BYsHA,SAiBI,WACA,0CAGA,WACE,aACA,gDAIF,YACE,sCZpKN,+BYwIA,mBAkCI,+CAGA,YACE,+BAMN,SACE,YACA,sBACA,UACA,wEAEE,oBAEF,wCAGA,aACE,WACA,0CZ/KJ,6BYkKA,SAkBI,YACA,wCAGA,aACE,WACA,oHAKJ,kBAEE,UACA,uBACA,yHAGA,UACE,oBAOR,iBACE,UACA,WACA,gBACA,8BACA,0CZnNA,mBY8MF,UASI,SACA,sCZ1OF,mBYgOF,UAeI,UACA,yBACA,+DAGA,kGLpYJ,UKuYM,yBAMN,WACE,gBACA,4CACA,iEACA,mCAEA,CAFA,0BAEA,qCACA,CADA,gCACA,CADA,4BACA,mBACA,oEAGA,uBAXF,uBAYI,gEZ9RA,uBYkRJ,aAiBI,yCZ9QF,uBY6PF,aAsBI,sCZnRF,uBY6PF,YA2BI,mEAGA,eACE,2CAIF,WACE,aACA,iDAIF,oDACE,uDAGA,0CACE,oBAQV,gCACE,sBACA,yBAGA,eACE,wCACA,iBACA,mBACA,sDACA,wBACA,qCZ9TA,wBYwTF,mBAUI,mCAGA,oBACE,qBACA,0BAMN,QACE,UACA,gBACA,6DACA,yBAIF,4DACE,yBAIF,aACE,UACA,4BACA,wBACA,6DAGA,uDAEE,mIAGA,UACE,8DAKJ,mBACE,4BAKJ,iBACE,gBACA,gBACA,qCZrXA,2BYkXF,mBAOI,sCAGA,oBACE,mBACA,gEAQF,eACE,gBACA,gBACA,gBACA,yBAMN,iBACE,OACA,aACA,cACA,wCACA,mCAGA,OACE,aACA,uCAGA,oBACE,0CZ5YJ,wBY8XF,YAoBI,2BAKJ,aACE,gBACA,iBACA,gBACA,2BAMF,mBACE,mBACA,cACA,gBACA,wCACA,iBACA,gBACA,uBACA,4BACA,qBACA,0CZ3aA,0BYiaF,iBAcI,qBACA,gEZvdA,0BYwcJ,iBAoBI,qBACA,uBAOJ,eACE,kBACA,0BACA,aC1mBJ,uBACE,CADF,eACE,WACA,cACA,iBACA,gBACA,cAGA,YARF,YASI,2CbiKA,qBa1JA,cACE,MACA,cACA,UACA,cACA,YACA,4CACA,wBACA,yEAEE,gCAIF,cACE,aACA,oEAIF,sGNtBJ,8BMyBM,8EAGA,8BACE,8CAKJ,eACE,yBAMN,YACE,QACA,qCb+FA,uBajGF,aAMI,gDAGA,kBACE,0BAMN,eACE,eACA,gBACA,mCAEA,CAFA,0BAEA,qCACA,CADA,gCACA,CADA,4BACA,0Cb6FA,6CavFE,iBACE,MACA,QACA,SACA,OACA,SACA,8BACA,CADA,yBACA,CADA,qBACA,6CAKJ,WACE,aACA,kDAIF,oDACE,wDAGA,0CACE,2CClHR,GACE,QACE,MAGF,aACE,ED4GI,kCClHR,GACE,QACE,MAGF,aACE,2CAKJ,GACE,0BACE,UACA,KAGF,SACE,MAGF,wBACE,UACA,EAjBA,iCAKJ,GACE,0BACE,UACA,KAGF,SACE,MAGF,wBACE,UACA,aASJ,aACE,iBACA,gBACA,mBACA,mCAEA,CAFA,0BAEA,yBACA,kBAGA,UACE,kBAIF,oBACE,aACA,cACA,sBACA,sBAGA,gBACE,kBACA,gCAGA,kBACE,oBACA,yCAKJ,iBACE,kBACA,mDAGA,kBACE,oBACA,mBACA,qBACA,wBAMN,oBACE,8BACA,kBACA,gBACA,gBACA,uBACA,sBACA,mBAIF,QACE,UACA,gBACA,gBACA,iBACA,qBACA,YACA,wCAGA,sDACE,CADF,8CACE,kBAKJ,UACE,4BAGA,WACE,uCAIF,sDACE,CADF,8CACE,0BAIF,cACE,YACA,sCAIF,YACE,UCjIN,UACE,cACA,iCACA,4CACA,4BACA,iBAGA,eACE,0CfyKA,SelLJ,YAcI,eAIF,SAlBF,YAmBI,iBAIF,QACE,kBACA,UACA,mBACA,gBACA,gBACA,0BAGA,kBACE,oBACA,gBAKJ,oBACE,cACA,oBACA,mBACA,gBAKF,aACE,iBACA,gBACA,WACA,wEAEE,uBAIF,eACE,6CAIF,aAEE,UACA,4CAKA,qBACE,4CADF,qBACE,4CADF,qBACE,4CADF,qBACE,4CADF,sBACE,4CADF,sBACE,4CADF,sBACE,4CADF,sBACE,6CADF,sBACE,6CADF,sBACE,6CADF,sBACE,6CADF,sBACE,6CADF,sBACE,6CADF,sBACE,6CADF,sBACE,gCAMN,mBACE,+CAIA,yBACE,UACA,yDAEE,wCfyEJ,uEe/DA,YACE,2DAUE,aACE,gBACA,oBACA,wBACA,yEAGA,YACE,wEAKJ,YACE,gFAGA,aACE,UACA,8FAGA,YACE,sDAOR,aAGE,kFAGA,eACE,6EAIF,YACE,QChIV,4RAMI,owHAUF,iBACE,gBACA,gBACA,iBACA,wBACA,gCACA,oBACA,mEAEE,iEAIF,gCACE,iBACA,cAIF,4CAnBF,eAoBI,gFAIF,mBACE,iIAIF,YACE,6FAIF,kBACE,mFAIF,eACE,mDAKJ,iBACE,iBACA,+BACA,gBACA,qCACA,uEAGA,8BACE,mFAIF,eACE,mEAIF,iBACE,WACA,WACA,YACA,yBCgJU,mDD9I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IF,wBAxBF,YAyBI,+FAKJ,kBAGE,UACA,oDAEE,6FAMJ,+BAGE,kFAYE,aACE,mBACA,kBACA,WACA,uGAIF,kBACE,mBACA,4BAVF,aACE,oBACA,mBACA,WACA,mCAIF,mBACE,oBACA,uDAVF,aACE,mBACA,kBACA,WACA,qEAIF,kBACE,mBACA,2BCjEN,cACE,gBACA,cACA,kBACA,0CrByKA,4BqBrKF,oBAII,oBACA,6BAKJ,SACE,2ECrBF,eAGE,oBACA,mCACA,CADA,0BACA,wBAIF,qBJEwB,wBIGxB,qBJFyB,6BIOzB,UJKmB,qCIDjB,aACE,oCAIF,aACE,2BAKJ,aACE,aACA,oBACA,mBACA,cACA,gBACA,wCAGA,eACE,uCAIF,kBACE,OCpDN,+LACE,qBASA,aAGE,cACA,iBACA,0CAIA,uBACE,iCAIF,gBACE,yCAIA,gCACE,4BAKJ,aACE,WACA,qBAKJ,aAGE,gBACA,gCACA,8BACA,eACA,+BAGA,+BACE,6CAIF,YACE,4BAIF,iBACE,UACA,YACA,WACA,YACA,8BACA,0CACA,CADA,iCACA,uBACA,2BACA,WACA,sCAGA,aACE,WACA,yBACA,yEC3EN,aAGE,oBACA,0BAIF,oBACE,eACA,wBACA,8BAGA,aACE,kBACA,mCCbJ,uBACE,CADF,eACE,qBACA,WACA,4BACA,4BACA,4BACA,0CACA,yCACA,iEACA,2BACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,6BCdF,YACE,SACA,WACA,2DACA,6NAGA,QAIE,iPAGA,wBACE,0BACA,yCAKJ,QACE,yBAKJ,iBACE,aACA,eACA,aACA,oBACA,+BAGA,YACE,6CAGA,+BACE,uCACA,6DAGA,aACE,+BAMN,SACE,WACA,2BACA,wCACA,gBACA,iBACA,sCACA,eACA,uBACA,0CAGA,+BACE,OCnER,8MACE,mQACA,6BASA,iBACE,qBACA,6CAIA,iBACE,UACA,UACA,uDAGA,UACE,aACA,6DASJ,iBACE,UACA,YACA,aACA,cACA,sDACA,2CACA,CADA,kCACA,WACA,uEAGA,YACE,aACA,qFAKJ,wBVsWa,oDUpWX,CVoWW,2CUpWX,gDAIF,UACE,UACA,C","file":"assets/stylesheets/main.c8609f9b.min.css","sourcesContent":["html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}html{text-size-adjust:none}body{margin:0}hr{box-sizing:content-box;overflow:visible}a,button,label,input{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}small{font-size:80%}sub,sup{position:relative;font-size:80%;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}table{border-collapse:separate;border-spacing:0}td,th{font-weight:normal;vertical-align:top}button{margin:0;padding:0;font-size:inherit;background:transparent;border:0}input{border:0;outline:0}:root{--md-default-fg-color: hsla(0, 0%, 0%, 0.87);--md-default-fg-color--light: hsla(0, 0%, 0%, 0.54);--md-default-fg-color--lighter: hsla(0, 0%, 0%, 0.26);--md-default-fg-color--lightest: hsla(0, 0%, 0%, 0.07);--md-default-bg-color: hsla(0, 0%, 100%, 1);--md-default-bg-color--light: hsla(0, 0%, 100%, 0.7);--md-default-bg-color--lighter: hsla(0, 0%, 100%, 0.3);--md-default-bg-color--lightest: hsla(0, 0%, 100%, 0.12);--md-primary-fg-color: hsla(231deg, 48%, 48%, 1);--md-primary-fg-color--light: hsla(230deg, 44%, 64%, 1);--md-primary-fg-color--dark: hsla(232deg, 54%, 41%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light);--md-accent-fg-color: hsla(231deg, 99%, 66%, 1);--md-accent-fg-color--transparent: hsla(231deg, 99%, 66%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light);--md-code-bg-color: hsla(0, 0%, 96%, 1);--md-code-fg-color: hsla(200, 18%, 26%, 1)}.md-icon svg{display:block;width:1.2rem;height:1.2rem;margin:0 auto;fill:currentColor}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,input{color:var(--md-default-fg-color);font-feature-settings:\"kern\",\"liga\";font-family:-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif}code,pre,kbd{color:var(--md-default-fg-color);font-feature-settings:\"kern\";font-family:SFMono-Regular,Consolas,Menlo,monospace}.md-typeset{font-size:.8rem;line-height:1.6;color-adjust:exact}.md-typeset p,.md-typeset ul,.md-typeset ol,.md-typeset blockquote{margin:1em 0}.md-typeset h1{margin:0 0 2rem;color:var(--md-default-fg-color--light);font-weight:300;font-size:1.5625rem;line-height:1.3;letter-spacing:-0.01em}.md-typeset h2{margin:2rem 0 .8rem;font-weight:300;font-size:1.25rem;line-height:1.4;letter-spacing:-0.01em}.md-typeset h3{margin:1.6rem 0 .8rem;font-weight:400;font-size:1rem;line-height:1.5;letter-spacing:-0.01em}.md-typeset h2+h3{margin-top:.8rem}.md-typeset h4{margin:.8rem 0;font-weight:700;font-size:.8rem;letter-spacing:-0.01em}.md-typeset h5,.md-typeset h6{margin:.8rem 0;color:var(--md-default-fg-color--light);font-weight:700;font-size:.64rem;letter-spacing:-0.01em}.md-typeset h5{text-transform:uppercase}.md-typeset hr{margin:1.5em 0;border-bottom:.05rem dotted var(--md-default-fg-color--lighter)}.md-typeset a{color:var(--md-primary-fg-color);word-break:break-word}.md-typeset a,.md-typeset a::before{transition:color 125ms}.md-typeset a:focus,.md-typeset a:hover{color:var(--md-accent-fg-color)}.md-typeset code,.md-typeset pre,.md-typeset kbd{color:var(--md-code-fg-color);direction:ltr}@media print{.md-typeset code,.md-typeset pre,.md-typeset kbd{white-space:pre-wrap}}.md-typeset code{padding:0 .2941176471em;font-size:.85em;word-break:break-word;background-color:var(--md-code-bg-color);border-radius:.1rem;box-decoration-break:clone}.md-typeset h1 code,.md-typeset h2 code,.md-typeset h3 code,.md-typeset h4 code,.md-typeset h5 code,.md-typeset h6 code{margin:initial;padding:initial;background-color:transparent;box-shadow:none}.md-typeset a>code{color:currentColor}.md-typeset pre{position:relative;margin:1em 0;line-height:1.4}.md-typeset pre>code{display:block;margin:0;padding:.525rem 1.1764705882em;overflow:auto;word-break:normal;box-shadow:none;box-decoration-break:slice;touch-action:auto}.md-typeset pre>code::-webkit-scrollbar{width:.2rem;height:.2rem}.md-typeset pre>code::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-typeset pre>code::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@media screen and (max-width: 44.9375em){.md-typeset>pre{margin:1em -0.8rem}.md-typeset>pre code{border-radius:0}}.md-typeset kbd{display:inline-block;padding:0 .6666666667em;font-size:.75em;line-height:1.5;vertical-align:text-top;word-break:break-word;border-radius:.1rem;box-shadow:0 .1rem 0 .05rem var(--md-default-fg-color--lighter),0 .1rem 0 var(--md-default-fg-color--lighter),inset 0 -0.1rem .2rem var(--md-default-bg-color)}.md-typeset mark{padding:0 .25em;word-break:break-word;background-color:rgba(255,235,59,.5);border-radius:.1rem;box-decoration-break:clone}.md-typeset abbr{text-decoration:none;border-bottom:.05rem dotted var(--md-default-fg-color--light);cursor:help}.md-typeset small{opacity:.75}.md-typeset sup,.md-typeset sub{margin-left:.078125em}[dir=rtl] .md-typeset sup,[dir=rtl] .md-typeset sub{margin-right:.078125em;margin-left:initial}.md-typeset blockquote{padding-left:.6rem;color:var(--md-default-fg-color--light);border-left:.2rem solid var(--md-default-fg-color--lighter)}[dir=rtl] .md-typeset blockquote{padding-right:.6rem;padding-left:initial;border-right:.2rem solid var(--md-default-fg-color--lighter);border-left:initial}.md-typeset ul{list-style-type:disc}.md-typeset ul,.md-typeset ol{margin-left:.625em;padding:0}[dir=rtl] .md-typeset ul,[dir=rtl] .md-typeset ol{margin-right:.625em;margin-left:initial}.md-typeset ul ol,.md-typeset ol ol{list-style-type:lower-alpha}.md-typeset ul ol ol,.md-typeset ol ol ol{list-style-type:lower-roman}.md-typeset ul li,.md-typeset ol li{margin-bottom:.5em;margin-left:1.25em}[dir=rtl] .md-typeset ul li,[dir=rtl] .md-typeset ol li{margin-right:1.25em;margin-left:initial}.md-typeset ul li p,.md-typeset ul li blockquote,.md-typeset ol li p,.md-typeset ol li blockquote{margin:.5em 0}.md-typeset ul li:last-child,.md-typeset ol li:last-child{margin-bottom:0}.md-typeset ul li ul,.md-typeset ul li ol,.md-typeset ol li ul,.md-typeset ol li ol{margin:.5em 0 .5em .625em}[dir=rtl] .md-typeset ul li ul,[dir=rtl] .md-typeset ul li ol,[dir=rtl] .md-typeset ol li ul,[dir=rtl] .md-typeset ol li ol{margin-right:.625em;margin-left:initial}.md-typeset dd{margin:1em 0 1em 1.875em}[dir=rtl] .md-typeset dd{margin-right:1.875em;margin-left:initial}.md-typeset iframe,.md-typeset img,.md-typeset svg{max-width:100%;height:auto}.md-typeset table:not([class]){display:inline-block;max-width:100%;overflow:auto;font-size:.64rem;background:var(--md-default-bg-color);border-radius:.1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .05rem rgba(0,0,0,.1);touch-action:auto}.md-typeset table:not([class])+*{margin-top:1.5em}.md-typeset table:not([class]) th:not([align]),.md-typeset table:not([class]) td:not([align]){text-align:left}[dir=rtl] .md-typeset table:not([class]) th:not([align]),[dir=rtl] .md-typeset table:not([class]) td:not([align]){text-align:right}.md-typeset table:not([class]) th{min-width:5rem;padding:.6rem .8rem;color:var(--md-default-bg-color);vertical-align:top;background-color:var(--md-default-fg-color--light)}.md-typeset table:not([class]) td{padding:.6rem .8rem;vertical-align:top;border-top:.05rem solid var(--md-default-fg-color--lightest)}.md-typeset table:not([class]) tr{transition:background-color 125ms}.md-typeset table:not([class]) tr:hover{background-color:rgba(0,0,0,.035);box-shadow:0 .05rem 0 var(--md-default-bg-color) inset}.md-typeset table:not([class]) tr:first-child td{border-top:0}.md-typeset table:not([class]) a{word-break:normal}.md-typeset__scrollwrap{margin:1em -0.8rem;overflow-x:auto;touch-action:auto}.md-typeset__table{display:inline-block;margin-bottom:.5em;padding:0 .8rem}.md-typeset__table table{display:table;width:100%;margin:0;overflow:hidden}html{height:100%;overflow-x:hidden;font-size:125%;background-color:var(--md-default-bg-color)}@media screen and (min-width: 100em){html{font-size:137.5%}}@media screen and (min-width: 125em){html{font-size:150%}}body{position:relative;display:flex;flex-direction:column;width:100%;min-height:100%;font-size:.5rem}@media screen and (max-width: 59.9375em){body[data-md-state=lock]{position:fixed}}@media print{body{display:block}}hr{display:block;height:.05rem;padding:0;border:0}.md-grid{max-width:61rem;margin-right:auto;margin-left:auto}.md-container{display:flex;flex-direction:column;flex-grow:1}@media print{.md-container{display:block}}.md-main{flex-grow:1}.md-main__inner{display:flex;height:100%;margin-top:1.5rem}.md-ellipsis{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.md-toggle{display:none}.md-overlay{position:fixed;top:0;z-index:3;width:0;height:0;background-color:var(--md-default-fg-color--light);opacity:0;transition:width 0ms 250ms,height 0ms 250ms,opacity 250ms}@media screen and (max-width: 76.1875em){[data-md-toggle=drawer]:checked~.md-overlay{width:100%;height:100%;opacity:1;transition:width 0ms,height 0ms,opacity 250ms}}.md-skip{position:fixed;z-index:-1;margin:.5rem;padding:.3rem .5rem;color:var(--md-default-bg-color);font-size:.64rem;background-color:var(--md-default-fg-color);border-radius:.1rem;transform:translateY(0.4rem);opacity:0}.md-skip:focus{z-index:10;transform:translateY(0);opacity:1;transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1),opacity 175ms 75ms}@page{margin:25mm}.md-announce{overflow:auto;background-color:var(--md-default-fg-color)}.md-announce__inner{margin:.6rem auto;padding:0 .8rem;color:var(--md-default-bg-color);font-size:.7rem}@media print{.md-announce{display:none}}.md-typeset .md-button{display:inline-block;padding:.625em 2em;color:var(--md-primary-fg-color);font-weight:700;border:.1rem solid currentColor;border-radius:.1rem;transition:color 125ms,background-color 125ms,border-color 125ms}.md-typeset .md-button--primary{color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color);border-color:var(--md-primary-fg-color)}.md-typeset .md-button:focus,.md-typeset .md-button:hover{color:var(--md-accent-bg-color);background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color)}.md-clipboard{position:absolute;top:.4rem;right:.5em;z-index:1;width:1.5em;height:1.5em;color:var(--md-default-fg-color--lightest);border-radius:.1rem;cursor:pointer;transition:color 125ms}@media print{.md-clipboard{display:none}}.md-clipboard svg{width:1.125em;height:1.125em}pre:hover .md-clipboard{color:var(--md-default-fg-color--light)}pre .md-clipboard:focus,pre .md-clipboard:hover{color:var(--md-accent-fg-color)}.md-content{flex:1;max-width:100%}@media screen and (min-width: 60em)and (max-width: 76.1875em){.md-content{max-width:calc(100% - 12.1rem)}}@media screen and (min-width: 76.25em){.md-content{max-width:calc(100% - 12.1rem * 2)}}.md-content__inner{margin:0 .8rem 1.2rem;padding-top:.6rem}@media screen and (min-width: 76.25em){.md-content__inner{margin-right:1.2rem;margin-left:1.2rem}}.md-content__inner::before{display:block;height:.4rem;content:\"\"}.md-content__inner>:last-child{margin-bottom:0}.md-content__button{float:right;margin:.4rem 0;margin-left:.4rem;padding:0}[dir=rtl] .md-content__button{float:left;margin-right:.4rem;margin-left:initial}[dir=rtl] .md-content__button svg{transform:scaleX(-1)}.md-typeset .md-content__button{color:var(--md-default-fg-color--lighter)}.md-content__button svg{display:inline;vertical-align:top}@media print{.md-content__button{display:none}}.md-dialog{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);position:fixed;right:.8rem;bottom:.8rem;left:initial;z-index:2;display:block;min-width:11.1rem;padding:.4rem .6rem;color:var(--md-default-bg-color);font-size:.7rem;background:var(--md-default-fg-color);border:none;border-radius:.1rem;transform:translateY(100%);opacity:0;transition:transform 0ms 400ms,opacity 400ms}[dir=rtl] .md-dialog{right:initial;left:.8rem}.md-dialog[data-md-state=open]{transform:translateY(0);opacity:1;transition:transform 400ms cubic-bezier(0.075, 0.85, 0.175, 1),opacity 400ms}@media print{.md-dialog{display:none}}.md-header{position:sticky;top:0;right:0;left:0;z-index:2;height:2.4rem;color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color);box-shadow:0 0 .2rem rgba(0,0,0,0),0 .2rem .4rem rgba(0,0,0,0);transition:color 250ms,background-color 250ms}.no-js .md-header{box-shadow:none;transition:none}.md-header[data-md-state=shadow]{box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2);transition:color 250ms,background-color 250ms,box-shadow 250ms}@media print{.md-header{display:none}}.md-header-nav{display:flex;padding:0 .2rem}.md-header-nav__button{position:relative;z-index:1;margin:.2rem;padding:.4rem;cursor:pointer;transition:opacity 250ms}[dir=rtl] .md-header-nav__button svg{transform:scaleX(-1)}.md-header-nav__button:focus,.md-header-nav__button:hover{opacity:.7}.md-header-nav__button.md-logo{margin:.2rem;padding:.4rem}.md-header-nav__button.md-logo img,.md-header-nav__button.md-logo svg{display:block;width:1.2rem;height:1.2rem;fill:currentColor}.no-js .md-header-nav__button[for=__search]{display:none}@media screen and (min-width: 60em){.md-header-nav__button[for=__search]{display:none}}@media screen and (max-width: 76.1875em){.md-header-nav__button.md-logo{display:none}}@media screen and (min-width: 76.25em){.md-header-nav__button[for=__drawer]{display:none}}.md-header-nav__topic{position:absolute;width:100%;transition:transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 150ms}.md-header-nav__topic+.md-header-nav__topic{z-index:-1;transform:translateX(1.25rem);opacity:0;transition:transform 400ms cubic-bezier(1, 0.7, 0.1, 0.1),opacity 150ms;pointer-events:none}[dir=rtl] .md-header-nav__topic+.md-header-nav__topic{transform:translateX(-1.25rem)}.no-js .md-header-nav__topic{position:initial}.no-js .md-header-nav__topic+.md-header-nav__topic{display:none}.md-header-nav__title{flex-grow:1;padding:0 1rem;font-size:.9rem;line-height:2.4rem}.md-header-nav__title[data-md-state=active] .md-header-nav__topic{z-index:-1;transform:translateX(-1.25rem);opacity:0;transition:transform 400ms cubic-bezier(1, 0.7, 0.1, 0.1),opacity 150ms;pointer-events:none}[dir=rtl] .md-header-nav__title[data-md-state=active] .md-header-nav__topic{transform:translateX(1.25rem)}.md-header-nav__title[data-md-state=active] .md-header-nav__topic+.md-header-nav__topic{z-index:0;transform:translateX(0);opacity:1;transition:transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 150ms;pointer-events:initial}.md-header-nav__title>.md-header-nav__ellipsis{position:relative;width:100%;height:100%}.md-header-nav__source{display:none}@media screen and (min-width: 60em){.md-header-nav__source{display:block;width:11.7rem;max-width:11.7rem;margin-left:1rem}[dir=rtl] .md-header-nav__source{margin-right:1rem;margin-left:initial}}@media screen and (min-width: 76.25em){.md-header-nav__source{margin-left:1.4rem}[dir=rtl] .md-header-nav__source{margin-right:1.4rem}}.md-hero{overflow:hidden;color:var(--md-primary-bg-color);font-size:1rem;background-color:var(--md-primary-fg-color);transition:background 250ms}.md-hero__inner{margin-top:1rem;padding:.8rem .8rem .4rem;transition:transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 250ms;transition-delay:100ms}@media screen and (max-width: 76.1875em){.md-hero__inner{margin-top:2.4rem;margin-bottom:1.2rem}}[data-md-state=hidden] .md-hero__inner{transform:translateY(0.625rem);opacity:0;transition:transform 0ms 400ms,opacity 100ms 0ms;pointer-events:none}.md-hero--expand .md-hero__inner{margin-bottom:1.2rem}.md-footer{color:var(--md-default-bg-color);background-color:var(--md-default-fg-color)}@media print{.md-footer{display:none}}.md-footer-nav__inner{padding:.2rem;overflow:auto}.md-footer-nav__link{display:flex;padding-top:1.4rem;padding-bottom:.4rem;transition:opacity 250ms}@media screen and (min-width: 45em){.md-footer-nav__link{width:50%}}.md-footer-nav__link:focus,.md-footer-nav__link:hover{opacity:.7}.md-footer-nav__link--prev{float:left;width:25%}[dir=rtl] .md-footer-nav__link--prev{float:right}[dir=rtl] .md-footer-nav__link--prev svg{transform:scaleX(-1)}@media screen and (max-width: 44.9375em){.md-footer-nav__link--prev .md-footer-nav__title{display:none}}.md-footer-nav__link--next{float:right;width:75%;text-align:right}[dir=rtl] .md-footer-nav__link--next{float:left;text-align:left}[dir=rtl] .md-footer-nav__link--next svg{transform:scaleX(-1)}.md-footer-nav__title{position:relative;flex-grow:1;max-width:calc(100% - 2.4rem);padding:0 1rem;font-size:.9rem;line-height:2.4rem}.md-footer-nav__button{margin:.2rem;padding:.4rem}.md-footer-nav__direction{position:absolute;right:0;left:0;margin-top:-1rem;padding:0 1rem;color:var(--md-default-bg-color--light);font-size:.64rem}.md-footer-meta{background-color:var(--md-default-fg-color--lighter)}.md-footer-meta__inner{display:flex;flex-wrap:wrap;justify-content:space-between;padding:.2rem}html .md-footer-meta.md-typeset a{color:var(--md-default-bg-color--light)}html .md-footer-meta.md-typeset a:focus,html .md-footer-meta.md-typeset a:hover{color:var(--md-default-bg-color)}.md-footer-copyright{width:100%;margin:auto .6rem;padding:.4rem 0;color:var(--md-default-bg-color--lighter);font-size:.64rem}@media screen and (min-width: 45em){.md-footer-copyright{width:auto}}.md-footer-copyright__highlight{color:var(--md-default-bg-color--light)}.md-footer-social{margin:0 .4rem;padding:.2rem 0 .6rem}@media screen and (min-width: 45em){.md-footer-social{padding:.6rem 0}}.md-footer-social__link{display:inline-block;width:1.6rem;height:1.6rem;text-align:center}.md-footer-social__link::before{line-height:1.9}.md-footer-social__link svg{max-height:.8rem;vertical-align:-25%;fill:currentColor}.md-nav{font-size:.7rem;line-height:1.3}.md-nav__title{display:block;padding:0 .6rem;overflow:hidden;font-weight:700;text-overflow:ellipsis}.md-nav__title .md-nav__button{display:none}.md-nav__title .md-nav__button img{width:100%;height:auto}.md-nav__title .md-nav__button.md-logo img,.md-nav__title .md-nav__button.md-logo svg{display:block;width:2.4rem;height:2.4rem}.md-nav__title .md-nav__button.md-logo svg{fill:currentColor}.md-nav__list{margin:0;padding:0;list-style:none}.md-nav__item{padding:0 .6rem}.md-nav__item:last-child{padding-bottom:.6rem}.md-nav__item .md-nav__item{padding-right:0}[dir=rtl] .md-nav__item .md-nav__item{padding-right:.6rem;padding-left:0}.md-nav__item .md-nav__item:last-child{padding-bottom:0}.md-nav__link{display:block;margin-top:.625em;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:color 125ms;scroll-snap-align:start}html .md-nav__link[for=__toc]{display:none}html .md-nav__link[for=__toc]~.md-nav{display:none}.md-nav__link[data-md-state=blur]{color:var(--md-default-fg-color--light)}.md-nav__item .md-nav__link--active{color:var(--md-primary-fg-color)}.md-nav__item--nested>.md-nav__link{color:inherit}.md-nav__link:focus,.md-nav__link:hover{color:var(--md-accent-fg-color)}.md-nav__source{display:none}@media screen and (max-width: 76.1875em){.md-nav{background-color:var(--md-default-bg-color)}.md-nav--primary,.md-nav--primary .md-nav{position:absolute;top:0;right:0;left:0;z-index:1;display:flex;flex-direction:column;height:100%}.md-nav--primary .md-nav__title,.md-nav--primary .md-nav__item{font-size:.8rem;line-height:1.5}.md-nav--primary .md-nav__title{position:relative;height:5.6rem;padding:3rem .8rem .2rem;color:var(--md-default-fg-color--light);font-weight:400;line-height:2.4rem;white-space:nowrap;background-color:var(--md-default-fg-color--lightest);cursor:pointer}.md-nav--primary .md-nav__title .md-nav__icon{position:absolute;top:.4rem;left:.4rem;display:block;width:1.2rem;height:1.2rem;margin:.2rem}[dir=rtl] .md-nav--primary .md-nav__title .md-nav__icon{right:.4rem;left:initial}.md-nav--primary .md-nav__title~.md-nav__list{overflow-y:auto;background-color:var(--md-default-bg-color);box-shadow:inset 0 .05rem 0 var(--md-default-fg-color--lightest);scroll-snap-type:y mandatory;touch-action:pan-y}.md-nav--primary .md-nav__title~.md-nav__list>.md-nav__item:first-child{border-top:0}.md-nav--primary .md-nav__title[for=__drawer]{position:relative;color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color)}.md-nav--primary .md-nav__title[for=__drawer] .md-nav__button{position:absolute;top:.2rem;left:.2rem;display:block;margin:.2rem;padding:.4rem;font-size:2.4rem}html [dir=rtl] .md-nav--primary .md-nav__title[for=__drawer] .md-nav__button{right:.2rem;left:initial}.md-nav--primary .md-nav__list{flex:1}.md-nav--primary .md-nav__item{padding:0;border-top:.05rem solid var(--md-default-fg-color--lightest)}[dir=rtl] .md-nav--primary .md-nav__item{padding:0}.md-nav--primary .md-nav__item--nested>.md-nav__link{padding-right:2.4rem}[dir=rtl] .md-nav--primary .md-nav__item--nested>.md-nav__link{padding-right:.8rem;padding-left:2.4rem}.md-nav--primary .md-nav__item--active>.md-nav__link{color:var(--md-primary-fg-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:focus,.md-nav--primary .md-nav__item--active>.md-nav__link:hover{color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__link{position:relative;margin-top:0;padding:.6rem .8rem}.md-nav--primary .md-nav__link .md-nav__icon{position:absolute;top:50%;right:.6rem;margin-top:-0.6rem;color:inherit;font-size:1.2rem}[dir=rtl] .md-nav--primary .md-nav__link .md-nav__icon{right:initial;left:.6rem}[dir=rtl] .md-nav--primary .md-nav__icon svg{transform:scale(-1)}.md-nav--primary .md-nav--secondary .md-nav__link{position:static}.md-nav--primary .md-nav--secondary .md-nav{position:static;background-color:transparent}.md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-left:1.4rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-right:1.4rem;padding-left:initial}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-left:2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-right:2rem;padding-left:initial}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-left:2.6rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-right:2.6rem;padding-left:initial}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-left:3.2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-right:3.2rem;padding-left:initial}.md-nav__toggle~.md-nav{display:flex;transform:translateX(100%);opacity:0;transition:transform 250ms cubic-bezier(0.8, 0, 0.6, 1),opacity 125ms 50ms}[dir=rtl] .md-nav__toggle~.md-nav{transform:translateX(-100%)}.md-nav__toggle:checked~.md-nav{transform:translateX(0);opacity:1;transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1),opacity 125ms 125ms}.md-nav__toggle:checked~.md-nav>.md-nav__list{backface-visibility:hidden}}@media screen and (max-width: 59.9375em){html .md-nav__link[for=__toc]{display:block;padding-right:2.4rem}html .md-nav__link[for=__toc]+.md-nav__link{display:none}html .md-nav__link[for=__toc]~.md-nav{display:flex}html [dir=rtl] .md-nav__link{padding-right:.8rem;padding-left:2.4rem}.md-nav__source{display:block;padding:0 .2rem;color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color--dark)}}@media screen and (min-width: 60em){.md-nav--secondary .md-nav__title[for=__toc]{scroll-snap-align:start}.md-nav--secondary .md-nav__title .md-nav__icon{display:none}}@media screen and (min-width: 76.25em){.md-nav{transition:max-height 250ms cubic-bezier(0.86, 0, 0.07, 1)}.md-nav--primary .md-nav__title[for=__drawer]{scroll-snap-align:start}.md-nav--primary .md-nav__title .md-nav__icon{display:none}.md-nav__toggle~.md-nav{display:none}.md-nav__toggle:checked~.md-nav{display:block}.md-nav__item--nested>.md-nav>.md-nav__title{display:none}.md-nav__icon{float:right;height:.9rem;transition:transform 250ms}[dir=rtl] .md-nav__icon{float:left;transform:rotate(180deg)}.md-nav__icon svg{display:inline-block;width:.9rem;height:.9rem;vertical-align:-0.1rem}.md-nav__item--nested .md-nav__toggle:checked~.md-nav__link .md-nav__icon{transform:rotate(90deg)}}.md-search{position:relative}.no-js .md-search{display:none}@media screen and (min-width: 60em){.md-search{padding:.2rem 0}}.md-search__overlay{z-index:1;opacity:0}@media screen and (max-width: 59.9375em){.md-search__overlay{position:absolute;top:.2rem;left:-2.2rem;width:2rem;height:2rem;overflow:hidden;background-color:var(--md-default-bg-color);border-radius:1rem;transform-origin:center;transition:transform 300ms 100ms,opacity 200ms 200ms;pointer-events:none}[dir=rtl] .md-search__overlay{right:-2.2rem;left:initial}[data-md-toggle=search]:checked~.md-header .md-search__overlay{opacity:1;transition:transform 400ms,opacity 100ms}}@media screen and (max-width: 29.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(45)}}@media screen and (min-width: 30em)and (max-width: 44.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(60)}}@media screen and (min-width: 45em)and (max-width: 59.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(75)}}@media screen and (min-width: 60em){.md-search__overlay{position:fixed;top:0;left:0;width:0;height:0;background-color:var(--md-default-fg-color--light);cursor:pointer;transition:width 0ms 250ms,height 0ms 250ms,opacity 250ms}[dir=rtl] .md-search__overlay{right:0;left:initial}[data-md-toggle=search]:checked~.md-header .md-search__overlay{width:100%;height:100%;opacity:1;transition:width 0ms,height 0ms,opacity 250ms}}.md-search__inner{backface-visibility:hidden}@media screen and (max-width: 59.9375em){.md-search__inner{position:fixed;top:0;left:100%;z-index:2;width:100%;height:100%;transform:translateX(5%);opacity:0;transition:right 0ms 300ms,left 0ms 300ms,transform 150ms 150ms cubic-bezier(0.4, 0, 0.2, 1),opacity 150ms 150ms}[data-md-toggle=search]:checked~.md-header .md-search__inner{left:0;transform:translateX(0);opacity:1;transition:right 0ms 0ms,left 0ms 0ms,transform 150ms 150ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 150ms 150ms}[dir=rtl] [data-md-toggle=search]:checked~.md-header .md-search__inner{right:0;left:initial}html [dir=rtl] .md-search__inner{right:100%;left:initial;transform:translateX(-5%)}}@media screen and (min-width: 60em){.md-search__inner{position:relative;float:right;width:11.7rem;padding:.1rem 0;transition:width 250ms cubic-bezier(0.1, 0.7, 0.1, 1)}[dir=rtl] .md-search__inner{float:left}}@media screen and (min-width: 60em)and (max-width: 76.1875em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:23.4rem}}@media screen and (min-width: 76.25em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:34.4rem}}.md-search__form{position:relative}@media screen and (min-width: 60em){.md-search__form{border-radius:.1rem}}.md-search__input{position:relative;z-index:2;padding:0 2.2rem 0 3.6rem;text-overflow:ellipsis}[dir=rtl] .md-search__input{padding:0 3.6rem 0 2.2rem}.md-search__input::placeholder{transition:color 250ms}.md-search__input~.md-search__icon,.md-search__input::placeholder{color:var(--md-default-fg-color--light)}.md-search__input::-ms-clear{display:none}@media screen and (max-width: 59.9375em){.md-search__input{width:100%;height:2.4rem;font-size:.9rem}}@media screen and (min-width: 60em){.md-search__input{width:100%;height:1.8rem;padding-left:2.2rem;color:inherit;font-size:.8rem;background-color:var(--md-default-fg-color--lighter);border-radius:.1rem;transition:color 250ms,background-color 250ms}[dir=rtl] .md-search__input{padding-right:2.2rem}.md-search__input+.md-search__icon{color:var(--md-primary-bg-color)}.md-search__input::placeholder{color:var(--md-primary-bg-color--light)}.md-search__input:hover{background-color:var(--md-default-bg-color--lightest)}[data-md-toggle=search]:checked~.md-header .md-search__input{color:var(--md-default-fg-color);text-overflow:clip;background-color:var(--md-default-bg-color);border-radius:.1rem .1rem 0 0}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon,[data-md-toggle=search]:checked~.md-header .md-search__input::placeholder{color:var(--md-default-fg-color--light)}}.md-search__icon{position:absolute;z-index:2;width:1.2rem;height:1.2rem;cursor:pointer;transition:color 250ms,opacity 250ms}.md-search__icon:hover{opacity:.7}.md-search__icon[for=__search]{top:.3rem;left:.5rem}[dir=rtl] .md-search__icon[for=__search]{right:.5rem;left:initial}[dir=rtl] .md-search__icon[for=__search] svg{transform:scaleX(-1)}@media screen and (max-width: 59.9375em){.md-search__icon[for=__search]{top:.6rem;left:.8rem}[dir=rtl] .md-search__icon[for=__search]{right:.8rem;left:initial}.md-search__icon[for=__search] svg:first-child{display:none}}@media screen and (min-width: 60em){.md-search__icon[for=__search]{pointer-events:none}.md-search__icon[for=__search] svg:last-child{display:none}}.md-search__icon[type=reset]{top:.3rem;right:.5rem;transform:scale(0.75);opacity:0;transition:transform 150ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 150ms;pointer-events:none}[dir=rtl] .md-search__icon[type=reset]{right:initial;left:.5rem}@media screen and (max-width: 59.9375em){.md-search__icon[type=reset]{top:.6rem;right:.8rem}[dir=rtl] .md-search__icon[type=reset]{right:initial;left:.8rem}}[data-md-toggle=search]:checked~.md-header .md-search__input:not(:placeholder-shown)~.md-search__icon[type=reset]{transform:scale(1);opacity:1;pointer-events:initial}[data-md-toggle=search]:checked~.md-header .md-search__input:not(:placeholder-shown)~.md-search__icon[type=reset]:hover{opacity:.7}.md-search__output{position:absolute;z-index:1;width:100%;overflow:hidden;border-radius:0 0 .1rem .1rem}@media screen and (max-width: 59.9375em){.md-search__output{top:2.4rem;bottom:0}}@media screen and (min-width: 60em){.md-search__output{top:1.9rem;opacity:0;transition:opacity 400ms}[data-md-toggle=search]:checked~.md-header .md-search__output{box-shadow:0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.4);opacity:1}}.md-search__scrollwrap{height:100%;overflow-y:auto;background-color:var(--md-default-bg-color);box-shadow:inset 0 .05rem 0 var(--md-default-fg-color--lightest);backface-visibility:hidden;scroll-snap-type:y mandatory;touch-action:pan-y}@media(max-resolution: 1dppx){.md-search__scrollwrap{transform:translateZ(0)}}@media screen and (min-width: 60em)and (max-width: 76.1875em){.md-search__scrollwrap{width:23.4rem}}@media screen and (min-width: 76.25em){.md-search__scrollwrap{width:34.4rem}}@media screen and (min-width: 60em){.md-search__scrollwrap{max-height:0}[data-md-toggle=search]:checked~.md-header .md-search__scrollwrap{max-height:75vh}.md-search__scrollwrap::-webkit-scrollbar{width:.2rem;height:.2rem}.md-search__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}}.md-search-result{color:var(--md-default-fg-color);word-break:break-word}.md-search-result__meta{padding:0 .8rem;color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.8rem;background-color:var(--md-default-fg-color--lightest);scroll-snap-align:start}@media screen and (min-width: 60em){.md-search-result__meta{padding-left:2.2rem}[dir=rtl] .md-search-result__meta{padding-right:2.2rem;padding-left:initial}}.md-search-result__list{margin:0;padding:0;list-style:none;border-top:.05rem solid var(--md-default-fg-color--lightest)}.md-search-result__item{box-shadow:0 -0.05rem 0 var(--md-default-fg-color--lightest)}.md-search-result__link{display:block;outline:0;transition:background 250ms;scroll-snap-align:start}.md-search-result__link:focus,.md-search-result__link:hover{background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:focus .md-search-result__article::before,.md-search-result__link:hover .md-search-result__article::before{opacity:.7}.md-search-result__link:last-child .md-search-result__teaser{margin-bottom:.6rem}.md-search-result__article{position:relative;padding:0 .8rem;overflow:hidden}@media screen and (min-width: 60em){.md-search-result__article{padding-left:2.2rem}[dir=rtl] .md-search-result__article{padding-right:2.2rem;padding-left:.8rem}}.md-search-result__article--document .md-search-result__title{margin:.55rem 0;font-weight:400;font-size:.8rem;line-height:1.4}.md-search-result__icon{position:absolute;left:0;margin:.1rem;padding:.4rem;color:var(--md-default-fg-color--light)}[dir=rtl] .md-search-result__icon{right:0;left:initial}[dir=rtl] .md-search-result__icon svg{transform:scaleX(-1)}@media screen and (max-width: 59.9375em){.md-search-result__icon{display:none}}.md-search-result__title{margin:.5em 0;font-weight:700;font-size:.64rem;line-height:1.4}.md-search-result__teaser{display:-webkit-box;max-height:1.65rem;margin:.5em 0;overflow:hidden;color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.4;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:2}@media screen and (max-width: 44.9375em){.md-search-result__teaser{max-height:2.5rem;-webkit-line-clamp:3}}@media screen and (min-width: 60em)and (max-width: 76.1875em){.md-search-result__teaser{max-height:2.5rem;-webkit-line-clamp:3}}.md-search-result em{font-weight:700;font-style:normal;text-decoration:underline}.md-sidebar{position:sticky;top:2.4rem;width:12.1rem;padding:1.2rem 0;overflow:hidden}@media print{.md-sidebar{display:none}}@media screen and (max-width: 76.1875em){.md-sidebar--primary{position:fixed;top:0;left:-12.1rem;z-index:3;width:12.1rem;height:100%;background-color:var(--md-default-bg-color);transform:translateX(0);transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 250ms}[dir=rtl] .md-sidebar--primary{right:-12.1rem;left:initial}[data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{box-shadow:0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12),0 5px 5px -3px rgba(0,0,0,.4);transform:translateX(12.1rem)}[dir=rtl] [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{transform:translateX(-12.1rem)}.md-sidebar--primary .md-sidebar__scrollwrap{overflow:hidden}}.md-sidebar--secondary{display:none;order:2}@media screen and (min-width: 60em){.md-sidebar--secondary{display:block}.md-sidebar--secondary .md-sidebar__scrollwrap{touch-action:pan-y}}.md-sidebar__scrollwrap{max-height:100%;margin:0 .2rem;overflow-y:auto;backface-visibility:hidden;scroll-snap-type:y mandatory}@media screen and (max-width: 76.1875em){.md-sidebar--primary .md-sidebar__scrollwrap{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;scroll-snap-type:none}}.md-sidebar__scrollwrap::-webkit-scrollbar{width:.2rem;height:.2rem}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@keyframes md-source__facts--done{0%{height:0}100%{height:.65rem}}@keyframes md-source__fact--done{0%{transform:translateY(100%);opacity:0}50%{opacity:0}100%{transform:translateY(0%);opacity:1}}.md-source{display:block;font-size:.65rem;line-height:1.2;white-space:nowrap;backface-visibility:hidden;transition:opacity 250ms}.md-source:hover{opacity:.7}.md-source__icon{display:inline-block;width:2.4rem;height:2.4rem;vertical-align:middle}.md-source__icon svg{margin-top:.6rem;margin-left:.6rem}[dir=rtl] .md-source__icon svg{margin-right:.6rem;margin-left:initial}.md-source__icon+.md-source__repository{margin-left:-2rem;padding-left:2rem}[dir=rtl] .md-source__icon+.md-source__repository{margin-right:-2rem;margin-left:initial;padding-right:2rem;padding-left:initial}.md-source__repository{display:inline-block;max-width:calc(100% - 1.2rem);margin-left:.6rem;overflow:hidden;font-weight:700;text-overflow:ellipsis;vertical-align:middle}.md-source__facts{margin:0;padding:0;overflow:hidden;font-weight:700;font-size:.55rem;list-style-type:none;opacity:.75}[data-md-state=done] .md-source__facts{animation:md-source__facts--done 250ms ease-in}.md-source__fact{float:left}[dir=rtl] .md-source__fact{float:right}[data-md-state=done] .md-source__fact{animation:md-source__fact--done 400ms ease-out}.md-source__fact::before{margin:0 .1rem;content:\"·\"}.md-source__fact:first-child::before{display:none}.md-tabs{width:100%;overflow:auto;color:var(--md-primary-bg-color);background-color:var(--md-primary-fg-color);transition:background 250ms}.no-js .md-tabs{transition:none}@media screen and (max-width: 76.1875em){.md-tabs{display:none}}@media print{.md-tabs{display:none}}.md-tabs__list{margin:0;margin-left:.2rem;padding:0;white-space:nowrap;list-style:none;contain:content}[dir=rtl] .md-tabs__list{margin-right:.2rem;margin-left:initial}.md-tabs__item{display:inline-block;height:2.4rem;padding-right:.6rem;padding-left:.6rem}.md-tabs__link{display:block;margin-top:.8rem;font-size:.7rem;opacity:.7;transition:transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),opacity 250ms}.no-js .md-tabs__link{transition:none}.md-tabs__link--active,.md-tabs__link:hover{color:inherit;opacity:1}.md-tabs__item:nth-child(2) .md-tabs__link{transition-delay:20ms}.md-tabs__item:nth-child(3) .md-tabs__link{transition-delay:40ms}.md-tabs__item:nth-child(4) .md-tabs__link{transition-delay:60ms}.md-tabs__item:nth-child(5) .md-tabs__link{transition-delay:80ms}.md-tabs__item:nth-child(6) .md-tabs__link{transition-delay:100ms}.md-tabs__item:nth-child(7) .md-tabs__link{transition-delay:120ms}.md-tabs__item:nth-child(8) .md-tabs__link{transition-delay:140ms}.md-tabs__item:nth-child(9) .md-tabs__link{transition-delay:160ms}.md-tabs__item:nth-child(10) .md-tabs__link{transition-delay:180ms}.md-tabs__item:nth-child(11) .md-tabs__link{transition-delay:200ms}.md-tabs__item:nth-child(12) .md-tabs__link{transition-delay:220ms}.md-tabs__item:nth-child(13) .md-tabs__link{transition-delay:240ms}.md-tabs__item:nth-child(14) .md-tabs__link{transition-delay:260ms}.md-tabs__item:nth-child(15) .md-tabs__link{transition-delay:280ms}.md-tabs__item:nth-child(16) .md-tabs__link{transition-delay:300ms}.md-tabs[data-md-state=hidden]{pointer-events:none}.md-tabs[data-md-state=hidden] .md-tabs__link{transform:translateY(50%);opacity:0;transition:color 250ms,transform 0ms 400ms,opacity 100ms}@media screen and (min-width: 76.25em){.md-tabs~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--nested{display:none}.md-tabs--active~.md-main .md-nav--primary .md-nav__title{display:block;padding:0 .6rem;pointer-events:none;scroll-snap-align:start}.md-tabs--active~.md-main .md-nav--primary .md-nav__title[for=__drawer]{display:none}.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item{display:none}.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--active{display:block;padding:0}.md-tabs--active~.md-main .md-nav--primary>.md-nav__list>.md-nav__item--active>.md-nav__link{display:none}.md-tabs--active~.md-main .md-nav[data-md-level=\"1\"]{display:block}.md-tabs--active~.md-main .md-nav[data-md-level=\"1\"]>.md-nav__list>.md-nav__item{padding:0 .6rem}.md-tabs--active~.md-main .md-nav[data-md-level=\"1\"] .md-nav .md-nav__title{display:none}}:root{--md-admonition-icon--note: svg-load(\"@mdi/svg/svg/pencil.svg\");--md-admonition-icon--abstract: svg-load(\"@mdi/svg/svg/text-subject.svg\");--md-admonition-icon--info: svg-load(\"@mdi/svg/svg/information.svg\");--md-admonition-icon--tip: svg-load(\"@mdi/svg/svg/fire.svg\");--md-admonition-icon--success: svg-load(\"@mdi/svg/svg/check-circle.svg\");--md-admonition-icon--question: svg-load(\"@mdi/svg/svg/help-circle.svg\");--md-admonition-icon--warning: svg-load(\"@mdi/svg/svg/alert.svg\");--md-admonition-icon--failure: svg-load(\"@mdi/svg/svg/close-circle.svg\");--md-admonition-icon--danger: svg-load(\"@mdi/svg/svg/flash-circle.svg\");--md-admonition-icon--bug: svg-load(\"@mdi/svg/svg/bug.svg\");--md-admonition-icon--example: svg-load(\"@mdi/svg/svg/format-list-numbered.svg\");--md-admonition-icon--quote: svg-load(\"@mdi/svg/svg/format-quote-close.svg\")}.md-typeset .admonition,.md-typeset details{margin:1.5625em 0;padding:0 .6rem;overflow:hidden;font-size:.64rem;page-break-inside:avoid;border-left:.2rem solid #448aff;border-radius:.1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .05rem rgba(0,0,0,.1)}[dir=rtl] .md-typeset .admonition,[dir=rtl] .md-typeset details{border-right:.2rem solid #448aff;border-left:none}@media print{.md-typeset .admonition,.md-typeset details{box-shadow:none}}html .md-typeset .admonition>:last-child,html .md-typeset details>:last-child{margin-bottom:.6rem}.md-typeset .admonition .admonition,.md-typeset details .admonition,.md-typeset .admonition details,.md-typeset details details{margin:1em 0}.md-typeset .admonition .md-typeset__scrollwrap,.md-typeset details .md-typeset__scrollwrap{margin:1em -0.6rem}.md-typeset .admonition .md-typeset__table,.md-typeset details .md-typeset__table{padding:0 .6rem}.md-typeset .admonition-title,.md-typeset summary{position:relative;margin:0 -0.6rem;padding:.4rem .6rem .4rem 2rem;font-weight:700;background-color:rgba(68,138,255,.1)}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{padding:.4rem 2rem .4rem .6rem}html .md-typeset .admonition-title:last-child,html .md-typeset summary:last-child{margin-bottom:0}.md-typeset .admonition-title::before,.md-typeset summary::before{position:absolute;left:.6rem;width:1rem;height:1rem;background-color:#448aff;mask-image:var(--md-admonition-icon--note);content:\"\"}[dir=rtl] .md-typeset .admonition-title::before,[dir=rtl] .md-typeset summary::before{right:.6rem;left:initial}.md-typeset .admonition-title code,.md-typeset summary code{margin:initial;padding:initial;color:currentColor;background-color:transparent;border-radius:initial;box-shadow:none}.md-typeset .admonition.note,.md-typeset details.note{border-color:#448aff}.md-typeset .note>.admonition-title,.md-typeset .note>summary{background-color:rgba(68,138,255,.1)}.md-typeset .note>.admonition-title::before,.md-typeset .note>summary::before{background-color:#448aff;mask-image:var(--md-admonition-icon--note)}.md-typeset .admonition.abstract,.md-typeset details.abstract,.md-typeset .admonition.tldr,.md-typeset details.tldr,.md-typeset .admonition.summary,.md-typeset details.summary{border-color:#00b0ff}.md-typeset .abstract>.admonition-title,.md-typeset .abstract>summary,.md-typeset .tldr>.admonition-title,.md-typeset .tldr>summary,.md-typeset .summary>.admonition-title,.md-typeset .summary>summary{background-color:rgba(0,176,255,.1)}.md-typeset .abstract>.admonition-title::before,.md-typeset .abstract>summary::before,.md-typeset .tldr>.admonition-title::before,.md-typeset .tldr>summary::before,.md-typeset .summary>.admonition-title::before,.md-typeset .summary>summary::before{background-color:#00b0ff;mask-image:var(--md-admonition-icon--abstract)}.md-typeset .admonition.info,.md-typeset details.info,.md-typeset .admonition.todo,.md-typeset details.todo{border-color:#00b8d4}.md-typeset .info>.admonition-title,.md-typeset .info>summary,.md-typeset .todo>.admonition-title,.md-typeset .todo>summary{background-color:rgba(0,184,212,.1)}.md-typeset .info>.admonition-title::before,.md-typeset .info>summary::before,.md-typeset .todo>.admonition-title::before,.md-typeset .todo>summary::before{background-color:#00b8d4;mask-image:var(--md-admonition-icon--info)}.md-typeset .admonition.tip,.md-typeset details.tip,.md-typeset .admonition.important,.md-typeset details.important,.md-typeset .admonition.hint,.md-typeset details.hint{border-color:#00bfa5}.md-typeset .tip>.admonition-title,.md-typeset .tip>summary,.md-typeset .important>.admonition-title,.md-typeset .important>summary,.md-typeset .hint>.admonition-title,.md-typeset .hint>summary{background-color:rgba(0,191,165,.1)}.md-typeset .tip>.admonition-title::before,.md-typeset .tip>summary::before,.md-typeset .important>.admonition-title::before,.md-typeset .important>summary::before,.md-typeset .hint>.admonition-title::before,.md-typeset .hint>summary::before{background-color:#00bfa5;mask-image:var(--md-admonition-icon--tip)}.md-typeset .admonition.success,.md-typeset details.success,.md-typeset .admonition.done,.md-typeset details.done,.md-typeset .admonition.check,.md-typeset details.check{border-color:#00c853}.md-typeset .success>.admonition-title,.md-typeset .success>summary,.md-typeset .done>.admonition-title,.md-typeset .done>summary,.md-typeset .check>.admonition-title,.md-typeset .check>summary{background-color:rgba(0,200,83,.1)}.md-typeset .success>.admonition-title::before,.md-typeset .success>summary::before,.md-typeset .done>.admonition-title::before,.md-typeset .done>summary::before,.md-typeset .check>.admonition-title::before,.md-typeset .check>summary::before{background-color:#00c853;mask-image:var(--md-admonition-icon--success)}.md-typeset .admonition.question,.md-typeset details.question,.md-typeset .admonition.faq,.md-typeset details.faq,.md-typeset .admonition.help,.md-typeset details.help{border-color:#64dd17}.md-typeset .question>.admonition-title,.md-typeset .question>summary,.md-typeset .faq>.admonition-title,.md-typeset .faq>summary,.md-typeset .help>.admonition-title,.md-typeset .help>summary{background-color:rgba(100,221,23,.1)}.md-typeset .question>.admonition-title::before,.md-typeset .question>summary::before,.md-typeset .faq>.admonition-title::before,.md-typeset .faq>summary::before,.md-typeset .help>.admonition-title::before,.md-typeset .help>summary::before{background-color:#64dd17;mask-image:var(--md-admonition-icon--question)}.md-typeset .admonition.warning,.md-typeset details.warning,.md-typeset .admonition.attention,.md-typeset details.attention,.md-typeset .admonition.caution,.md-typeset details.caution{border-color:#ff9100}.md-typeset .warning>.admonition-title,.md-typeset .warning>summary,.md-typeset .attention>.admonition-title,.md-typeset .attention>summary,.md-typeset .caution>.admonition-title,.md-typeset .caution>summary{background-color:rgba(255,145,0,.1)}.md-typeset .warning>.admonition-title::before,.md-typeset .warning>summary::before,.md-typeset .attention>.admonition-title::before,.md-typeset .attention>summary::before,.md-typeset .caution>.admonition-title::before,.md-typeset .caution>summary::before{background-color:#ff9100;mask-image:var(--md-admonition-icon--warning)}.md-typeset .admonition.failure,.md-typeset details.failure,.md-typeset .admonition.missing,.md-typeset details.missing,.md-typeset .admonition.fail,.md-typeset details.fail{border-color:#ff5252}.md-typeset .failure>.admonition-title,.md-typeset .failure>summary,.md-typeset .missing>.admonition-title,.md-typeset .missing>summary,.md-typeset .fail>.admonition-title,.md-typeset .fail>summary{background-color:rgba(255,82,82,.1)}.md-typeset .failure>.admonition-title::before,.md-typeset .failure>summary::before,.md-typeset .missing>.admonition-title::before,.md-typeset .missing>summary::before,.md-typeset .fail>.admonition-title::before,.md-typeset .fail>summary::before{background-color:#ff5252;mask-image:var(--md-admonition-icon--failure)}.md-typeset .admonition.danger,.md-typeset details.danger,.md-typeset .admonition.error,.md-typeset details.error{border-color:#ff1744}.md-typeset .danger>.admonition-title,.md-typeset .danger>summary,.md-typeset .error>.admonition-title,.md-typeset .error>summary{background-color:rgba(255,23,68,.1)}.md-typeset .danger>.admonition-title::before,.md-typeset .danger>summary::before,.md-typeset .error>.admonition-title::before,.md-typeset .error>summary::before{background-color:#ff1744;mask-image:var(--md-admonition-icon--danger)}.md-typeset .admonition.bug,.md-typeset details.bug{border-color:#f50057}.md-typeset .bug>.admonition-title,.md-typeset .bug>summary{background-color:rgba(245,0,87,.1)}.md-typeset .bug>.admonition-title::before,.md-typeset .bug>summary::before{background-color:#f50057;mask-image:var(--md-admonition-icon--bug)}.md-typeset .admonition.example,.md-typeset details.example{border-color:#651fff}.md-typeset .example>.admonition-title,.md-typeset .example>summary{background-color:rgba(101,31,255,.1)}.md-typeset .example>.admonition-title::before,.md-typeset .example>summary::before{background-color:#651fff;mask-image:var(--md-admonition-icon--example)}.md-typeset .admonition.quote,.md-typeset details.quote,.md-typeset .admonition.cite,.md-typeset details.cite{border-color:#9e9e9e}.md-typeset .quote>.admonition-title,.md-typeset .quote>summary,.md-typeset .cite>.admonition-title,.md-typeset .cite>summary{background-color:rgba(158,158,158,.1)}.md-typeset .quote>.admonition-title::before,.md-typeset .quote>summary::before,.md-typeset .cite>.admonition-title::before,.md-typeset .cite>summary::before{background-color:#9e9e9e;mask-image:var(--md-admonition-icon--quote)}.codehilite .o,.highlight .o{color:inherit}.codehilite .ow,.highlight .ow{color:inherit}.codehilite .ge,.highlight .ge{color:#000}.codehilite .gr,.highlight .gr{color:#a00}.codehilite .gh,.highlight .gh{color:#999}.codehilite .go,.highlight .go{color:#888}.codehilite .gp,.highlight .gp{color:#555}.codehilite .gs,.highlight .gs{color:inherit}.codehilite .gu,.highlight .gu{color:#aaa}.codehilite .gt,.highlight .gt{color:#a00}.codehilite .gd,.highlight .gd{background-color:#fdd}.codehilite .gi,.highlight .gi{background-color:#dfd}.codehilite .k,.highlight .k{color:#3b78e7}.codehilite .kc,.highlight .kc{color:#a71d5d}.codehilite .kd,.highlight .kd{color:#3b78e7}.codehilite .kn,.highlight .kn{color:#3b78e7}.codehilite .kp,.highlight .kp{color:#a71d5d}.codehilite .kr,.highlight .kr{color:#3e61a2}.codehilite .kt,.highlight .kt{color:#3e61a2}.codehilite .c,.highlight .c{color:#999}.codehilite .cm,.highlight .cm{color:#999}.codehilite .cp,.highlight .cp{color:#666}.codehilite .c1,.highlight .c1{color:#999}.codehilite .ch,.highlight .ch{color:#999}.codehilite .cs,.highlight .cs{color:#999}.codehilite .na,.highlight .na{color:#c2185b}.codehilite .nb,.highlight .nb{color:#c2185b}.codehilite .bp,.highlight .bp{color:#3e61a2}.codehilite .nc,.highlight .nc{color:#c2185b}.codehilite .no,.highlight .no{color:#3e61a2}.codehilite .nd,.highlight .nd{color:#666}.codehilite .ni,.highlight .ni{color:#666}.codehilite .ne,.highlight .ne{color:#c2185b}.codehilite .nf,.highlight .nf{color:#c2185b}.codehilite .nl,.highlight .nl{color:#3b5179}.codehilite .nn,.highlight .nn{color:#ec407a}.codehilite .nt,.highlight .nt{color:#3b78e7}.codehilite .nv,.highlight .nv{color:#3e61a2}.codehilite .vc,.highlight .vc{color:#3e61a2}.codehilite .vg,.highlight .vg{color:#3e61a2}.codehilite .vi,.highlight .vi{color:#3e61a2}.codehilite .nx,.highlight .nx{color:#ec407a}.codehilite .m,.highlight .m{color:#e74c3c}.codehilite .mf,.highlight .mf{color:#e74c3c}.codehilite .mh,.highlight .mh{color:#e74c3c}.codehilite .mi,.highlight .mi{color:#e74c3c}.codehilite .il,.highlight .il{color:#e74c3c}.codehilite .mo,.highlight .mo{color:#e74c3c}.codehilite .s,.highlight .s{color:#0d904f}.codehilite .sb,.highlight .sb{color:#0d904f}.codehilite .sc,.highlight .sc{color:#0d904f}.codehilite .sd,.highlight .sd{color:#999}.codehilite .s2,.highlight .s2{color:#0d904f}.codehilite .se,.highlight .se{color:#183691}.codehilite .sh,.highlight .sh{color:#183691}.codehilite .si,.highlight .si{color:#183691}.codehilite .sx,.highlight .sx{color:#183691}.codehilite .sr,.highlight .sr{color:#009926}.codehilite .s1,.highlight .s1{color:#0d904f}.codehilite .ss,.highlight .ss{color:#0d904f}.codehilite .err,.highlight .err{color:#a61717}.codehilite .w,.highlight .w{color:transparent}.codehilite .hll,.highlight .hll{display:block;margin:0 -1.1764705882em;padding:0 1.1764705882em;background-color:rgba(255,235,59,.5)}.codehilitetable,.highlighttable{display:block;overflow:hidden}.codehilitetable tbody,.highlighttable tbody,.codehilitetable td,.highlighttable td{display:block;padding:0}.codehilitetable tr,.highlighttable tr{display:flex}.codehilitetable pre,.highlighttable pre{margin:0}.codehilitetable .linenos,.highlighttable .linenos{padding:.525rem 1.1764705882em;padding-right:0;font-size:.85em;background-color:var(--md-code-bg-color);user-select:none}.codehilitetable .linenodiv,.highlighttable .linenodiv{padding-right:.5882352941em;box-shadow:inset -0.05rem 0 var(--md-default-fg-color--lightest)}.codehilitetable .linenodiv pre,.highlighttable .linenodiv pre{color:var(--md-default-fg-color--lighter);text-align:right}.codehilitetable .code,.highlighttable .code{flex:1;overflow:hidden}.md-typeset .codehilitetable,.md-typeset .highlighttable{margin:1em 0;direction:ltr;border-radius:.1rem}.md-typeset .codehilitetable code,.md-typeset .highlighttable code{border-radius:0}@media screen and (max-width: 44.9375em){.md-typeset>.codehilite,.md-typeset>.highlight{margin:1em -0.8rem}.md-typeset>.codehilite .hll,.md-typeset>.highlight .hll{margin:0 -0.8rem;padding:0 .8rem}.md-typeset>.codehilite code,.md-typeset>.highlight code{border-radius:0}.md-typeset>.codehilitetable,.md-typeset>.highlighttable{margin:1em -0.8rem;border-radius:0}.md-typeset>.codehilitetable .hll,.md-typeset>.highlighttable .hll{margin:0 -0.8rem;padding:0 .8rem}}:root{--md-footnotes-icon: svg-load(\"@mdi/svg/svg/keyboard-return.svg\")}.md-typeset [id^=\"fnref:\"]{display:inline-block}.md-typeset [id^=\"fnref:\"]:target{margin-top:-3.8rem;padding-top:3.8rem;pointer-events:none}.md-typeset [id^=\"fn:\"]::before{display:none;height:0;content:\"\"}.md-typeset [id^=\"fn:\"]:target::before{display:block;margin-top:-3.5rem;padding-top:3.5rem;pointer-events:none}.md-typeset .footnote{color:var(--md-default-fg-color--light);font-size:.64rem}.md-typeset .footnote ol{margin-left:0}.md-typeset .footnote li{transition:color 125ms}.md-typeset .footnote li:target{color:var(--md-default-fg-color)}.md-typeset .footnote li :first-child{margin-top:0}.md-typeset .footnote li:hover .footnote-backref,.md-typeset .footnote li:target .footnote-backref{transform:translateX(0);opacity:1}.md-typeset .footnote li:hover .footnote-backref:hover{color:var(--md-accent-fg-color)}.md-typeset .footnote-ref{display:inline-block;pointer-events:initial}.md-typeset .footnote-backref{display:inline-block;color:var(--md-primary-fg-color);font-size:0;vertical-align:text-bottom;transform:translateX(0.25rem);opacity:0;transition:color 250ms,transform 250ms 250ms,opacity 125ms 250ms}[dir=rtl] .md-typeset .footnote-backref{transform:translateX(-0.25rem)}.md-typeset .footnote-backref::before{display:inline-block;width:.8rem;height:.8rem;background-color:currentColor;mask-image:var(--md-footnotes-icon);content:\"\"}[dir=rtl] .md-typeset .footnote-backref::before svg{transform:scaleX(-1)}@media print{.md-typeset .footnote-backref{color:var(--md-primary-fg-color);transform:translateX(0);opacity:1}}.md-typeset .headerlink{display:inline-block;margin-left:.5rem;visibility:hidden;opacity:0;transition:color 250ms,visibility 0ms 500ms,opacity 125ms}[dir=rtl] .md-typeset .headerlink{margin-right:.5rem;margin-left:initial}html body .md-typeset .headerlink{color:var(--md-default-fg-color--lighter)}@media print{.md-typeset .headerlink{display:none}}.md-typeset :hover>.headerlink,.md-typeset :target>.headerlink,.md-typeset .headerlink:focus{visibility:visible;opacity:1;transition:color 250ms,visibility 0ms,opacity 125ms}.md-typeset :target>.headerlink,.md-typeset .headerlink:focus,.md-typeset .headerlink:hover{color:var(--md-accent-fg-color)}.md-typeset h3[id]::before,.md-typeset h2[id]::before,.md-typeset h1[id]::before{display:block;margin-top:-0.4rem;padding-top:.4rem;content:\"\"}.md-typeset h3[id]:target::before,.md-typeset h2[id]:target::before,.md-typeset h1[id]:target::before{margin-top:-3.4rem;padding-top:3.4rem}.md-typeset h4[id]::before{display:block;margin-top:-0.45rem;padding-top:.45rem;content:\"\"}.md-typeset h4[id]:target::before{margin-top:-3.45rem;padding-top:3.45rem}.md-typeset h6[id]::before,.md-typeset h5[id]::before{display:block;margin-top:-0.6rem;padding-top:.6rem;content:\"\"}.md-typeset h6[id]:target::before,.md-typeset h5[id]:target::before{margin-top:-3.6rem;padding-top:3.6rem}.md-typeset .MJXc-display{margin:.75em 0;padding:.75em 0;overflow:auto;touch-action:auto}@media screen and (max-width: 44.9375em){.md-typeset>p>.MJXc-display{margin:.75em -0.8rem;padding:.25em .8rem}}.md-typeset .MathJax_CHTML{outline:0}.md-typeset del.critic,.md-typeset ins.critic,.md-typeset .critic.comment{padding:0 .25em;border-radius:.1rem;box-decoration-break:clone}.md-typeset del.critic{background-color:#fdd}.md-typeset ins.critic{background-color:#dfd}.md-typeset .critic.comment{color:#999}.md-typeset .critic.comment::before{content:\"/* \"}.md-typeset .critic.comment::after{content:\" */\"}.md-typeset .critic.block{display:block;margin:1em 0;padding-right:.8rem;padding-left:.8rem;overflow:auto;box-shadow:none}.md-typeset .critic.block :first-child{margin-top:.5em}.md-typeset .critic.block :last-child{margin-bottom:.5em}:root{--md-details-icon: svg-load(\"@mdi/svg/svg/chevron-right.svg\")}.md-typeset details{display:block;padding-top:0;overflow:visible}.md-typeset details[open]>summary::after{transform:rotate(90deg)}.md-typeset details:not([open]){padding-bottom:0}.md-typeset details:not([open])>summary{border-bottom-right-radius:.1rem}.md-typeset details::after{display:table;content:\"\"}.md-typeset summary{display:block;min-height:1rem;padding:.4rem 1.8rem .4rem 2rem;border-top-right-radius:.1rem;cursor:pointer}[dir=rtl] .md-typeset summary{padding:.4rem 2rem .4rem 1.8rem}.md-typeset summary::-webkit-details-marker{display:none}.md-typeset summary::after{position:absolute;top:.4rem;right:.4rem;width:1rem;height:1rem;background-color:currentColor;mask-image:var(--md-details-icon);transform:rotate(0deg);transition:transform 250ms;content:\"\"}[dir=rtl] .md-typeset summary::after{right:initial;left:.4rem;transform:rotate(180deg)}.md-typeset img.emojione,.md-typeset img.twemoji,.md-typeset img.gemoji{width:1.125em;vertical-align:-15%}.md-typeset span.twemoji{display:inline-block;height:1.125em;vertical-align:text-top}.md-typeset span.twemoji svg{width:1.125em;fill:currentColor}.highlight [data-linenos]::before{position:sticky;left:-1.1764705882em;float:left;margin-right:1.1764705882em;margin-left:-1.1764705882em;padding-left:1.1764705882em;color:var(--md-default-fg-color--lighter);background-color:var(--md-code-bg-color);box-shadow:inset -0.05rem 0 var(--md-default-fg-color--lightest);content:attr(data-linenos);user-select:none}.md-typeset .tabbed-content{display:none;order:99;width:100%;box-shadow:0 -0.05rem var(--md-default-fg-color--lightest)}.md-typeset .tabbed-content>.codehilite:only-child pre,.md-typeset .tabbed-content>.codehilitetable:only-child,.md-typeset .tabbed-content>.highlight:only-child pre,.md-typeset .tabbed-content>.highlighttable:only-child{margin:0}.md-typeset .tabbed-content>.codehilite:only-child pre>code,.md-typeset .tabbed-content>.codehilitetable:only-child>code,.md-typeset .tabbed-content>.highlight:only-child pre>code,.md-typeset .tabbed-content>.highlighttable:only-child>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-content>.tabbed-set{margin:0}.md-typeset .tabbed-set{position:relative;display:flex;flex-wrap:wrap;margin:1em 0;border-radius:.1rem}.md-typeset .tabbed-set>input{display:none}.md-typeset .tabbed-set>input:checked+label{color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color)}.md-typeset .tabbed-set>input:checked+label+.tabbed-content{display:block}.md-typeset .tabbed-set>label{z-index:1;width:auto;padding:.6rem 1.25em .5rem;color:var(--md-default-fg-color--light);font-weight:700;font-size:.64rem;border-bottom:.1rem solid transparent;cursor:pointer;transition:color 125ms}html .md-typeset .tabbed-set>label:hover{color:var(--md-accent-fg-color)}:root{--md-tasklist-icon: svg-load(\"@mdi/svg/svg/checkbox-blank-circle.svg\");--md-tasklist-icon--checked: svg-load(\"@mdi/svg/svg/check-circle.svg\")}.md-typeset .task-list-item{position:relative;list-style-type:none}.md-typeset .task-list-item [type=checkbox]{position:absolute;top:.45em;left:-2em}[dir=rtl] .md-typeset .task-list-item [type=checkbox]{right:-2em;left:initial}.md-typeset .task-list-control .task-list-indicator::before{position:absolute;top:.15em;left:-1.5em;width:1.25em;height:1.25em;background-color:var(--md-default-fg-color--lightest);mask-image:var(--md-tasklist-icon);content:\"\"}[dir=rtl] .md-typeset .task-list-control .task-list-indicator::before{right:-1.5em;left:initial}.md-typeset .task-list-control [type=checkbox]:checked+.task-list-indicator::before{background-color:#00e676;mask-image:var(--md-tasklist-icon--checked)}.md-typeset .task-list-control [type=checkbox]{z-index:-1;opacity:0}","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// stylelint-disable no-duplicate-selectors\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Enforce correct box model\nhtml {\n box-sizing: border-box;\n}\n\n// All elements shall inherit the document default\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n// Prevent adjustments of font size after orientation changes in IE and iOS\nhtml {\n text-size-adjust: none;\n}\n\n// Remove margin in all browsers\nbody {\n margin: 0;\n}\n\n// Reset horizontal rules in FF\nhr {\n box-sizing: content-box;\n overflow: visible;\n}\n\n// Reset tap outlines on iOS and Android\na,\nbutton,\nlabel,\ninput {\n -webkit-tap-highlight-color: transparent;\n}\n\n// Reset link styles\na {\n color: inherit;\n text-decoration: none;\n}\n\n// Normalize font-size in all browsers\nsmall {\n font-size: 80%;\n}\n\n// Prevent subscript and superscript from affecting line-height\nsub,\nsup {\n position: relative;\n font-size: 80%;\n line-height: 0;\n vertical-align: baseline;\n}\n\n// Correct subscript offset\nsub {\n bottom: -0.25em;\n}\n\n// Correct superscript offset\nsup {\n top: -0.5em;\n}\n\n// Remove borders on images\nimg {\n border-style: none;\n}\n\n// Reset table styles\ntable {\n border-collapse: separate;\n border-spacing: 0;\n}\n\n// Reset table cell styles\ntd,\nth {\n font-weight: normal; // stylelint-disable-line\n vertical-align: top;\n}\n\n// Reset button styles\nbutton {\n margin: 0;\n padding: 0;\n font-size: inherit;\n background: transparent;\n border: 0;\n}\n\n// Reset input styles\ninput {\n border: 0;\n outline: 0;\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Color definitions\n:root {\n\n // Default color shades\n --md-default-fg-color: hsla(0, 0%, 0%, 0.87);\n --md-default-fg-color--light: hsla(0, 0%, 0%, 0.54);\n --md-default-fg-color--lighter: hsla(0, 0%, 0%, 0.26);\n --md-default-fg-color--lightest: hsla(0, 0%, 0%, 0.07);\n --md-default-bg-color: hsla(0, 0%, 100%, 1);\n --md-default-bg-color--light: hsla(0, 0%, 100%, 0.7);\n --md-default-bg-color--lighter: hsla(0, 0%, 100%, 0.3);\n --md-default-bg-color--lightest: hsla(0, 0%, 100%, 0.12);\n\n // Primary color shades\n --md-primary-fg-color: hsla(#{hex2hsl($clr-indigo-500)}, 1);\n --md-primary-fg-color--light: hsla(#{hex2hsl($clr-indigo-300)}, 1);\n --md-primary-fg-color--dark: hsla(#{hex2hsl($clr-indigo-700)}, 1);\n --md-primary-bg-color: var(--md-default-bg-color);\n --md-primary-bg-color--light: var(--md-default-bg-color--light);\n\n // Accent color shades\n --md-accent-fg-color: hsla(#{hex2hsl($clr-indigo-a200)}, 1);\n --md-accent-fg-color--transparent: hsla(#{hex2hsl($clr-indigo-a200)}, 0.1);\n --md-accent-bg-color: var(--md-default-bg-color);\n --md-accent-bg-color--light: var(--md-default-bg-color--light);\n\n // Code block color shades\n --md-code-bg-color: hsla(0, 0%, 96%, 1);\n --md-code-fg-color: hsla(200, 18%, 26%, 1);\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Icon\n.md-icon {\n\n // SVG defaults\n svg {\n display: block;\n width: px2rem(24px);\n height: px2rem(24px);\n margin: 0 auto;\n fill: currentColor;\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules: font definitions\n// ----------------------------------------------------------------------------\n\n// Enable font-smoothing in Webkit and FF\nbody {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n// Default fonts\nbody,\ninput {\n color: var(--md-default-fg-color);\n font-feature-settings: \"kern\", \"liga\";\n font-family: -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif;\n}\n\n// Proportionally spaced fonts\ncode,\npre,\nkbd {\n color: var(--md-default-fg-color);\n font-feature-settings: \"kern\";\n font-family: SFMono-Regular, Consolas, Menlo, monospace;\n}\n\n// ----------------------------------------------------------------------------\n// Rules: typesetted content\n// ----------------------------------------------------------------------------\n\n// Content that is typeset - if possible, all margins, paddings and font sizes\n// should be set in ems, so nested blocks (e.g. Admonition) render correctly,\n// except headlines that should only appear on the top level and need to have\n// consistent spacing due to layout constraints.\n.md-typeset {\n font-size: ms(0);\n line-height: 1.6;\n color-adjust: exact;\n\n // Default spacing\n p,\n ul,\n ol,\n blockquote {\n margin: 1em 0;\n }\n\n // 1st level headline\n h1 {\n margin: 0 0 px2rem(40px);\n color: var(--md-default-fg-color--light);\n font-weight: 300;\n font-size: ms(3);\n line-height: 1.3;\n letter-spacing: -0.01em;\n }\n\n // 2nd level headline\n h2 {\n margin: px2rem(40px) 0 px2rem(16px);\n font-weight: 300;\n font-size: ms(2);\n line-height: 1.4;\n letter-spacing: -0.01em;\n }\n\n // 3rd level headline\n h3 {\n margin: px2rem(32px) 0 px2rem(16px);\n font-weight: 400;\n font-size: ms(1);\n line-height: 1.5;\n letter-spacing: -0.01em;\n }\n\n // 3rd level headline following an 2nd level headline\n h2 + h3 {\n margin-top: px2rem(16px);\n }\n\n // 4th level headline\n h4 {\n margin: px2rem(16px) 0;\n font-weight: 700;\n font-size: ms(0);\n letter-spacing: -0.01em;\n }\n\n // 5th and 6th level headline\n h5,\n h6 {\n margin: px2rem(16px) 0;\n color: var(--md-default-fg-color--light);\n font-weight: 700;\n font-size: ms(-1);\n letter-spacing: -0.01em;\n }\n\n // Overrides for 5th level headline\n h5 {\n text-transform: uppercase;\n }\n\n // Horizontal separators\n hr {\n margin: 1.5em 0;\n border-bottom: px2rem(1px) dotted var(--md-default-fg-color--lighter);\n }\n\n // Links\n a {\n color: var(--md-primary-fg-color);\n word-break: break-word;\n\n // Also enable color transition on pseudo elements\n &,\n &::before {\n transition: color 125ms;\n }\n\n // Focused or hover links\n &:focus,\n &:hover {\n color: var(--md-accent-fg-color);\n }\n }\n\n // Code blocks\n code,\n pre,\n kbd {\n color: var(--md-code-fg-color);\n direction: ltr;\n\n // Wrap text and hide scollbars\n @media print {\n white-space: pre-wrap;\n }\n }\n\n // Inline code blocks\n code {\n padding: 0 px2em(4px, 13.6px);\n font-size: px2em(13.6px);\n word-break: break-word;\n background-color: var(--md-code-bg-color);\n border-radius: px2rem(2px);\n box-decoration-break: clone;\n }\n\n // Disable containing block inside headlines\n h1 code,\n h2 code,\n h3 code,\n h4 code,\n h5 code,\n h6 code {\n margin: initial;\n padding: initial;\n background-color: transparent;\n box-shadow: none;\n }\n\n // Ensure link color in code blocks\n a > code {\n color: currentColor;\n }\n\n // Unformatted code blocks\n pre {\n position: relative;\n margin: 1em 0;\n line-height: 1.4;\n\n // Actual container with code, overflowing\n > code {\n display: block;\n margin: 0;\n padding: px2rem(10.5px) px2em(16px, 13.6px);\n overflow: auto;\n word-break: normal;\n box-shadow: none;\n box-decoration-break: slice;\n touch-action: auto;\n\n // Override native scrollbar styles\n &::-webkit-scrollbar {\n width: px2rem(4px);\n height: px2rem(4px);\n }\n\n // Scrollbar thumb\n &::-webkit-scrollbar-thumb {\n background-color: var(--md-default-fg-color--lighter);\n\n // Hovered scrollbar thumb\n &:hover {\n background-color: var(--md-accent-fg-color);\n }\n }\n }\n }\n\n // [mobile -]: Stretch to whole width\n @include break-to-device(mobile) {\n\n // Stretch top-level containers\n > pre {\n margin: 1em px2rem(-16px);\n\n // Remove rounded borders\n code {\n border-radius: 0;\n }\n }\n }\n\n // Keystrokes\n kbd {\n display: inline-block;\n padding: 0 px2em(8px, 12px);\n font-size: px2em(12px);\n line-height: 1.5;\n vertical-align: text-top;\n word-break: break-word;\n border-radius: px2rem(2px);\n box-shadow:\n 0 px2rem(2px) 0 px2rem(1px) var(--md-default-fg-color--lighter),\n 0 px2rem(2px) 0 var(--md-default-fg-color--lighter),\n inset 0 px2rem(-2px) px2rem(4px) var(--md-default-bg-color);\n }\n\n // Text highlighting marker\n mark {\n padding: 0 px2em(4px, 16px);\n word-break: break-word;\n background-color: transparentize($clr-yellow-500, 0.5);\n border-radius: px2rem(2px);\n box-decoration-break: clone;\n }\n\n // Abbreviations\n abbr {\n text-decoration: none;\n border-bottom: px2rem(1px) dotted var(--md-default-fg-color--light);\n cursor: help;\n }\n\n // Small text\n small {\n opacity: 0.75;\n }\n\n // Superscript and subscript\n sup,\n sub {\n margin-left: px2em(1px, 12.8px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2em(1px, 12.8px);\n margin-left: initial;\n }\n }\n\n // Blockquotes, possibly nested\n blockquote {\n padding-left: px2rem(12px);\n color: var(--md-default-fg-color--light);\n border-left: px2rem(4px) solid var(--md-default-fg-color--lighter);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(12px);\n padding-left: initial;\n border-right: px2rem(4px) solid var(--md-default-fg-color--lighter);\n border-left: initial;\n }\n }\n\n // Unordered lists\n ul {\n list-style-type: disc;\n }\n\n // Unordered and ordered lists\n ul,\n ol {\n margin-left: px2em(10px, 16px);\n padding: 0;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2em(10px, 16px);\n margin-left: initial;\n }\n\n // Nested ordered lists\n ol {\n list-style-type: lower-alpha;\n\n // Triply nested ordered list\n ol {\n list-style-type: lower-roman;\n }\n }\n\n // List elements\n li {\n margin-bottom: 0.5em;\n margin-left: px2em(20px, 16px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2em(20px, 16px);\n margin-left: initial;\n }\n\n // Decrease vertical spacing\n p,\n blockquote {\n margin: 0.5em 0;\n }\n\n // Remove margin on last element\n &:last-child {\n margin-bottom: 0;\n }\n\n // Nested lists\n ul,\n ol {\n margin: 0.5em 0 0.5em px2em(10px, 16px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2em(10px, 16px);\n margin-left: initial;\n }\n }\n }\n }\n\n // Definition lists\n dd {\n margin: 1em 0 1em px2em(30px, 16px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2em(30px, 16px);\n margin-left: initial;\n }\n }\n\n // Limit width to container, scale height proportionally\n iframe,\n img,\n svg {\n max-width: 100%;\n height: auto;\n }\n\n // Data tables\n table:not([class]) {\n display: inline-block;\n max-width: 100%;\n overflow: auto;\n font-size: ms(-1);\n background: var(--md-default-bg-color);\n border-radius: px2rem(2px);\n box-shadow:\n 0 px2rem(4px) px2rem(10px) hsla(0, 0%, 0%, 0.05),\n 0 0 px2rem(1px) hsla(0, 0%, 0%, 0.1);\n touch-action: auto;\n\n // Due to margin collapse because of the necessary inline-block hack, we\n // cannot increase the bottom margin on the table, so we just increase the\n // top margin on the following element\n & + * {\n margin-top: 1.5em;\n }\n\n // Table headings and cells\n th:not([align]),\n td:not([align]) {\n text-align: left;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n text-align: right;\n }\n }\n\n // Table headings\n th {\n min-width: px2rem(100px);\n padding: px2rem(12px) px2rem(16px);\n color: var(--md-default-bg-color);\n vertical-align: top;\n background-color: var(--md-default-fg-color--light);\n }\n\n // Table cells\n td {\n padding: px2rem(12px) px2rem(16px);\n vertical-align: top;\n border-top: px2rem(1px) solid var(--md-default-fg-color--lightest);\n }\n\n // Table rows\n tr {\n transition: background-color 125ms;\n\n // Add background on hover\n &:hover {\n background-color: rgba(0, 0, 0, 0.035);\n box-shadow: 0 px2rem(1px) 0 var(--md-default-bg-color) inset;\n }\n\n // Remove top border on first row\n &:first-child td {\n border-top: 0;\n }\n }\n\n\n // Do not wrap links in tables\n a {\n word-break: normal;\n }\n }\n\n // Wrapper for scrolling on overflow\n &__scrollwrap {\n margin: 1em px2rem(-16px);\n overflow-x: auto;\n touch-action: auto;\n }\n\n // Data table wrapper, in case JavaScript is available\n &__table {\n display: inline-block;\n margin-bottom: 0.5em;\n padding: 0 px2rem(16px);\n\n // Data tables\n table {\n display: table;\n width: 100%;\n margin: 0;\n overflow: hidden;\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Variables\n// ----------------------------------------------------------------------------\n\n///\n/// Device-specific breakpoints\n///\n/// @example\n/// $break-devices: (\n/// mobile: (\n/// portrait: 220px 479px,\n/// landscape: 480px 719px\n/// ),\n/// tablet: (\n/// portrait: 720px 959px,\n/// landscape: 960px 1219px\n/// ),\n/// screen: (\n/// small: 1220px 1599px,\n/// medium: 1600px 1999px,\n/// large: 2000px\n/// )\n/// );\n///\n$break-devices: () !default;\n\n// ----------------------------------------------------------------------------\n// Helpers\n// ----------------------------------------------------------------------------\n\n///\n/// Choose minimum and maximum device widths\n///\n@function break-select-min-max($devices) {\n $min: 1000000;\n $max: 0;\n @each $key, $value in $devices {\n @while type-of($value) == map {\n $value: break-select-min-max($value);\n }\n @if type-of($value) == list {\n @each $number in $value {\n @if type-of($number) == number {\n $min: min($number, $min);\n @if $max != null {\n $max: max($number, $max);\n }\n } @else {\n @error \"Invalid number: #{$number}\";\n }\n }\n } @else if type-of($value) == number {\n $min: min($value, $min);\n $max: null;\n } @else {\n @error \"Invalid value: #{$value}\";\n }\n }\n @return $min, $max;\n}\n\n///\n/// Select minimum and maximum widths for a device breakpoint\n///\n@function break-select-device($device) {\n $current: $break-devices;\n @for $n from 1 through length($device) {\n @if type-of($current) == map {\n $current: map-get($current, nth($device, $n));\n } @else {\n @error \"Invalid device map: #{$devices}\";\n }\n }\n @if type-of($current) == list or type-of($current) == number {\n $current: (default: $current);\n }\n @return break-select-min-max($current);\n}\n\n// ----------------------------------------------------------------------------\n// Mixins\n// ----------------------------------------------------------------------------\n\n///\n/// A minimum-maximum media query breakpoint\n///\n@mixin break-at($breakpoint) {\n @if type-of($breakpoint) == number {\n @media screen and (min-width: $breakpoint) {\n @content;\n }\n } @else if type-of($breakpoint) == list {\n $min: nth($breakpoint, 1);\n $max: nth($breakpoint, 2);\n @if type-of($min) == number and type-of($max) == number {\n @media screen and (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else {\n @error \"Invalid breakpoint: #{$breakpoint}\";\n }\n } @else {\n @error \"Invalid breakpoint: #{$breakpoint}\";\n }\n}\n\n///\n/// An orientation media query breakpoint\n///\n@mixin break-at-orientation($breakpoint) {\n @if type-of($breakpoint) == string {\n @media screen and (orientation: $breakpoint) {\n @content;\n }\n } @else {\n @error \"Invalid breakpoint: #{$breakpoint}\";\n }\n}\n\n///\n/// A maximum-aspect-ratio media query breakpoint\n///\n@mixin break-at-ratio($breakpoint) {\n @if type-of($breakpoint) == number {\n @media screen and (max-aspect-ratio: $breakpoint) {\n @content;\n }\n } @else {\n @error \"Invalid breakpoint: #{$breakpoint}\";\n }\n}\n\n///\n/// A minimum-maximum media query device breakpoint\n///\n@mixin break-at-device($device) {\n @if type-of($device) == string {\n $device: $device,;\n }\n @if type-of($device) == list {\n $breakpoint: break-select-device($device);\n @if nth($breakpoint, 2) != null {\n $min: nth($breakpoint, 1);\n $max: nth($breakpoint, 2);\n @media screen and (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else {\n @error \"Invalid device: #{$device}\";\n }\n } @else {\n @error \"Invalid device: #{$device}\";\n }\n}\n\n///\n/// A minimum media query device breakpoint\n///\n@mixin break-from-device($device) {\n @if type-of($device) == string {\n $device: $device,;\n }\n @if type-of($device) == list {\n $breakpoint: break-select-device($device);\n $min: nth($breakpoint, 1);\n @media screen and (min-width: $min) {\n @content;\n }\n } @else {\n @error \"Invalid device: #{$device}\";\n }\n}\n\n///\n/// A maximum media query device breakpoint\n///\n@mixin break-to-device($device) {\n @if type-of($device) == string {\n $device: $device,;\n }\n @if type-of($device) == list {\n $breakpoint: break-select-device($device);\n $max: nth($breakpoint, 2);\n @media screen and (max-width: $max) {\n @content;\n }\n } @else {\n @error \"Invalid device: #{$device}\";\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Variables\n// ----------------------------------------------------------------------------\n\n// Active (toggled) drawer\n$md-toggle__drawer--checked:\n \"[data-md-toggle=\\\"drawer\\\"]:checked ~\";\n\n// ----------------------------------------------------------------------------\n// Rules: base grid and containers\n// ----------------------------------------------------------------------------\n\n// Stretch container to viewport and set base font-sizefor simple calculations\n// based on relative ems (rems)\nhtml {\n height: 100%;\n // Hack: some browsers on some operating systems don't account for scroll\n // bars when firing media queries, so we need to do this for safety. This\n // currently impacts the table of contents component between 1220 and 1234px\n // and is to current knowledge not fixable.\n overflow-x: hidden;\n // Hack: normally, we would set the base font-size to 62.5%, so we can base\n // all calculations on 10px, but Chromium and Chrome define a minimal font\n // size of 12 if the system language is set to Chinese. For this reason we\n // just double the font-size, set it to 20px which seems to do the trick.\n //\n // See https://github.com/squidfunk/mkdocs-material/issues/911\n font-size: 125%;\n background-color: var(--md-default-bg-color);\n\n // [screen medium +]: Set base font-size to 11px\n @include break-from-device(screen medium) {\n font-size: 137.50%;\n }\n\n // [screen large +]: Set base font-size to 12px\n @include break-from-device(screen large) {\n font-size: 150%;\n }\n}\n\n// Stretch body to container and leave room for footer\nbody {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n min-height: 100%;\n // Hack: reset font-size to 10px, so the spacing for all inline elements is\n // correct again. Otherwise the spacing would be based on 20px.\n font-size: 0.5rem; // stylelint-disable-line unit-whitelist\n\n // [tablet portrait -]: Lock body to disable scroll bubbling\n @include break-to-device(tablet portrait) {\n\n // Lock body to viewport height (e.g. in search mode)\n &[data-md-state=\"lock\"] {\n position: fixed;\n }\n }\n\n // Hack: we must not use flex, or Firefox will only print the first page\n // see https://mzl.la/39DgR3m\n @media print {\n display: block;\n }\n}\n\n// Horizontal separators\nhr {\n display: block;\n height: px2rem(1px);\n padding: 0;\n border: 0;\n}\n\n// Template-wide grid\n.md-grid {\n max-width: px2rem(1220px);\n margin-right: auto;\n margin-left: auto;\n}\n\n// Content wrapper\n.md-container {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n\n // Hack: we must not use flex, or Firefox will only print the first page\n // see https://mzl.la/39DgR3m\n @media print {\n display: block;\n }\n}\n\n// The main content should stretch to maximum height in the table\n.md-main {\n flex-grow: 1;\n\n // Increase top spacing of content area to give typography more room\n &__inner {\n display: flex;\n height: 100%;\n margin-top: px2rem(24px + 6px);\n }\n}\n\n// Apply ellipsis in case of overflowing text\n.md-ellipsis {\n display: block;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n// ----------------------------------------------------------------------------\n// Rules: navigational elements\n// ----------------------------------------------------------------------------\n\n// Toggle checkbox\n.md-toggle {\n display: none;\n}\n\n// Overlay below expanded drawer\n.md-overlay {\n position: fixed;\n top: 0;\n z-index: 3;\n width: 0;\n height: 0;\n background-color: var(--md-default-fg-color--light);\n opacity: 0;\n transition:\n width 0ms 250ms,\n height 0ms 250ms,\n opacity 250ms;\n\n // [tablet -]: Trigger overlay\n @include break-to-device(tablet) {\n\n // Expanded drawer\n #{$md-toggle__drawer--checked} & {\n width: 100%;\n height: 100%;\n opacity: 1;\n transition:\n width 0ms,\n height 0ms,\n opacity 250ms;\n }\n }\n}\n\n// ----------------------------------------------------------------------------\n// Rules: skip link\n// ----------------------------------------------------------------------------\n\n// Skip link\n.md-skip {\n position: fixed;\n // Hack: if we don't set the negative z-index, the skip link will induce the\n // creation of new layers when code blocks are near the header on scrolling\n z-index: -1;\n margin: px2rem(10px);\n padding: px2rem(6px) px2rem(10px);\n color: var(--md-default-bg-color);\n font-size: ms(-1);\n background-color: var(--md-default-fg-color);\n border-radius: px2rem(2px);\n transform: translateY(px2rem(8px));\n opacity: 0;\n\n // Show skip link on focus\n &:focus {\n z-index: 10;\n transform: translateY(0);\n opacity: 1;\n transition:\n transform 250ms cubic-bezier(0.4, 0, 0.2, 1),\n opacity 175ms 75ms;\n }\n}\n\n// ----------------------------------------------------------------------------\n// Rules: print styles\n// ----------------------------------------------------------------------------\n\n// Add margins to page\n@page {\n margin: 25mm;\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Announcement bar\n.md-announce {\n overflow: auto;\n background-color: var(--md-default-fg-color);\n\n // Actual content\n &__inner {\n margin: px2rem(12px) auto;\n padding: 0 px2rem(16px);\n color: var(--md-default-bg-color);\n font-size: px2rem(14px);\n }\n\n // Hide for print\n @media print {\n display: none;\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // Button\n .md-button {\n display: inline-block;\n padding: px2em(10px, 16px) px2em(32px, 16px);\n color: var(--md-primary-fg-color);\n font-weight: 700;\n border: px2rem(2px) solid currentColor;\n border-radius: px2rem(2px);\n transition:\n color 125ms,\n background-color 125ms,\n border-color 125ms;\n\n // Primary button\n &--primary {\n color: var(--md-primary-bg-color);\n background-color: var(--md-primary-fg-color);\n border-color: var(--md-primary-fg-color);\n }\n\n // Focused or hovered button\n &:focus,\n &:hover {\n color: var(--md-accent-bg-color);\n background-color: var(--md-accent-fg-color);\n border-color: var(--md-accent-fg-color);\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Copy to clipboard\n.md-clipboard {\n position: absolute;\n top: px2rem(8px);\n right: px2em(8px, 16px);\n z-index: 1;\n width: px2em(24px, 16px);\n height: px2em(24px, 16px);\n color: var(--md-default-fg-color--lightest);\n border-radius: px2rem(2px);\n cursor: pointer;\n transition: color 125ms;\n\n // Hide for print\n @media print {\n display: none;\n }\n\n // Slightly smaller icon\n svg {\n width: px2em(18px, 16px);\n height: px2em(18px, 16px);\n }\n\n // Show on container hover\n pre:hover & {\n color: var(--md-default-fg-color--light);\n }\n\n // Focused or hovered icon\n pre &:focus,\n pre &:hover {\n color: var(--md-accent-fg-color);\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Content container\n.md-content {\n flex: 1;\n max-width: 100%;\n\n // [tablet landscape]: Decrease horizontal width\n @include break-at-device(tablet landscape) {\n max-width: calc(100% - #{px2rem(242px)});\n }\n\n // [screen +]: Decrease horizontal width\n @include break-from-device(screen) {\n max-width: calc(100% - #{px2rem(242px)} * 2);\n }\n\n // Define spacing\n &__inner {\n margin: 0 px2rem(16px) px2rem(24px);\n padding-top: px2rem(12px);\n\n // [screen +]: Increase horizontal spacing\n @include break-from-device(screen) {\n margin-right: px2rem(24px);\n margin-left: px2rem(24px);\n }\n\n // Hack: add pseudo element for spacing, as the overflow of the content\n // container may not be hidden due to an imminent offset error on targets\n &::before {\n display: block;\n height: px2rem(8px);\n content: \"\";\n }\n\n // Hack: remove bottom spacing of last element, due to margin collapse\n > :last-child {\n margin-bottom: 0;\n }\n }\n\n // Button next to the title\n &__button {\n float: right;\n margin: px2rem(8px) 0;\n margin-left: px2rem(8px);\n padding: 0;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n float: left;\n margin-right: px2rem(8px);\n margin-left: initial;\n\n // Flip icon vertically\n svg {\n transform: scaleX(-1);\n }\n }\n\n // Override default link color for icons\n .md-typeset & {\n color: var(--md-default-fg-color--lighter);\n }\n\n // Align text with icon\n svg {\n display: inline;\n vertical-align: top;\n }\n\n // Hide for print\n @media print {\n display: none;\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Dialog rendered as snackbar\n.md-dialog {\n @include z-depth(2);\n\n position: fixed;\n right: px2rem(16px);\n bottom: px2rem(16px);\n left: initial;\n z-index: 2;\n display: block;\n min-width: px2rem(222px);\n padding: px2rem(8px) px2rem(12px);\n color: var(--md-default-bg-color);\n font-size: px2rem(14px);\n background: var(--md-default-fg-color);\n border: none;\n border-radius: px2rem(2px);\n transform: translateY(100%);\n opacity: 0;\n transition:\n transform 0ms 400ms,\n opacity 400ms;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: initial;\n left: px2rem(16px);\n }\n\n // Show open dialog\n &[data-md-state=\"open\"] {\n transform: translateY(0);\n opacity: 1;\n transition:\n transform 400ms cubic-bezier(0.075, 0.85, 0.175, 1),\n opacity 400ms;\n }\n\n // Hide for print\n @media print {\n display: none;\n }\n}\n","//\n// Name: Material Shadows\n// Description: Mixins for Material Design Shadows.\n// Version: 3.0.1\n//\n// Author: Denis Malinochkin\n// Git: https://github.com/mrmlnc/material-shadows\n//\n// twitter: @mrmlnc\n//\n// ------------------------------------\n\n\n// Mixins\n// ------------------------------------\n\n@mixin z-depth-transition() {\n transition: box-shadow .28s cubic-bezier(.4, 0, .2, 1);\n}\n\n@mixin z-depth-focus() {\n box-shadow: 0 0 8px rgba(0, 0, 0, .18), 0 8px 16px rgba(0, 0, 0, .36);\n}\n\n@mixin z-depth-2dp() {\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .14),\n 0 1px 5px 0 rgba(0, 0, 0, .12),\n 0 3px 1px -2px rgba(0, 0, 0, .2);\n}\n\n@mixin z-depth-3dp() {\n box-shadow: 0 3px 4px 0 rgba(0, 0, 0, .14),\n 0 1px 8px 0 rgba(0, 0, 0, .12),\n 0 3px 3px -2px rgba(0, 0, 0, .4);\n}\n\n@mixin z-depth-4dp() {\n box-shadow: 0 4px 5px 0 rgba(0, 0, 0, .14),\n 0 1px 10px 0 rgba(0, 0, 0, .12),\n 0 2px 4px -1px rgba(0, 0, 0, .4);\n}\n\n@mixin z-depth-6dp() {\n box-shadow: 0 6px 10px 0 rgba(0, 0, 0, .14),\n 0 1px 18px 0 rgba(0, 0, 0, .12),\n 0 3px 5px -1px rgba(0, 0, 0, .4);\n}\n\n@mixin z-depth-8dp() {\n box-shadow: 0 8px 10px 1px rgba(0, 0, 0, .14),\n 0 3px 14px 2px rgba(0, 0, 0, .12),\n 0 5px 5px -3px rgba(0, 0, 0, .4);\n}\n\n@mixin z-depth-16dp() {\n box-shadow: 0 16px 24px 2px rgba(0, 0, 0, .14),\n 0 6px 30px 5px rgba(0, 0, 0, .12),\n 0 8px 10px -5px rgba(0, 0, 0, .4);\n}\n\n@mixin z-depth-24dp() {\n box-shadow: 0 9px 46px 8px rgba(0, 0, 0, .14),\n 0 24px 38px 3px rgba(0, 0, 0, .12),\n 0 11px 15px -7px rgba(0, 0, 0, .4);\n}\n\n@mixin z-depth($dp: 2) {\n @if $dp == 2 {\n @include z-depth-2dp();\n } @else if $dp == 3 {\n @include z-depth-3dp();\n } @else if $dp == 4 {\n @include z-depth-4dp();\n } @else if $dp == 6 {\n @include z-depth-6dp();\n } @else if $dp == 8 {\n @include z-depth-8dp();\n } @else if $dp == 16 {\n @include z-depth-16dp();\n } @else if $dp == 24 {\n @include z-depth-24dp();\n }\n}\n\n\n// Class generator\n// ------------------------------------\n\n@mixin z-depth-classes($transition: false, $focus: false) {\n @if $transition == true {\n &-transition {\n @include z-depth-transition();\n }\n }\n\n @if $focus == true {\n &-focus {\n @include z-depth-focus();\n }\n }\n\n // The available values for the shadow depth\n @each $depth in 2, 3, 4, 6, 8, 16, 24 {\n &-#{$depth}dp {\n @include z-depth($depth);\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Application header (stays always on top)\n.md-header {\n position: sticky;\n top: 0;\n right: 0;\n left: 0;\n z-index: 2;\n height: px2rem(48px);\n color: var(--md-primary-bg-color);\n background-color: var(--md-primary-fg-color);\n // Hack: reduce jitter by adding a transparent box shadow of the same size\n // so the size of the layer doesn't change during animation\n box-shadow:\n 0 0 px2rem(4px) rgba(0, 0, 0, 0),\n 0 px2rem(4px) px2rem(8px) rgba(0, 0, 0, 0);\n transition:\n color 250ms,\n background-color 250ms;\n\n // Always hide shadow, in case JavaScript is not available\n .no-js & {\n box-shadow: none;\n transition: none;\n }\n\n // Show and animate shadow\n &[data-md-state=\"shadow\"] {\n box-shadow:\n 0 0 px2rem(4px) rgba(0, 0, 0, 0.1),\n 0 px2rem(4px) px2rem(8px) rgba(0, 0, 0, 0.2);\n transition:\n color 250ms,\n background-color 250ms,\n box-shadow 250ms;\n }\n\n // Hide for print\n @media print {\n display: none;\n }\n}\n\n// Navigation within header\n.md-header-nav {\n display: flex;\n padding: 0 px2rem(4px);\n\n // Icon buttons\n &__button {\n position: relative;\n z-index: 1;\n margin: px2rem(4px);\n padding: px2rem(8px);\n cursor: pointer;\n transition: opacity 250ms;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n\n // Flip icon vertically\n svg {\n transform: scaleX(-1);\n }\n }\n\n // Focused or hovered icon\n &:focus,\n &:hover {\n opacity: 0.7;\n }\n\n // Logo\n &.md-logo {\n margin: px2rem(4px);\n padding: px2rem(8px);\n\n // Image or icon\n img,\n svg {\n display: block;\n width: px2rem(24px);\n height: px2rem(24px);\n fill: currentColor;\n }\n }\n\n // Hide search icon, if JavaScript is not available.\n .no-js &[for=\"__search\"] {\n display: none;\n }\n\n // [tablet landscape +]: Hide the search button\n @include break-from-device(tablet landscape) {\n\n // Search button\n &[for=\"__search\"] {\n display: none;\n }\n }\n\n // [tablet -]: Hide the logo\n @include break-to-device(tablet) {\n\n // Logo\n &.md-logo {\n display: none;\n }\n }\n\n // [screen +]: Hide the menu button\n @include break-from-device(screen) {\n\n // Menu button\n &[for=\"__drawer\"] {\n display: none;\n }\n }\n }\n\n // Header topics\n &__topic {\n position: absolute;\n width: 100%;\n transition:\n transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),\n opacity 150ms;\n\n // Page title\n & + & {\n z-index: -1;\n transform: translateX(px2rem(25px));\n opacity: 0;\n transition:\n transform 400ms cubic-bezier(1, 0.7, 0.1, 0.1),\n opacity 150ms;\n pointer-events: none;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n transform: translateX(px2rem(-25px));\n }\n }\n\n // Induce ellipsis, if no JavaScript is available\n .no-js & {\n position: initial;\n }\n\n // Hide page title as it is invisible anyway and will overflow the header\n .no-js & + & {\n display: none;\n }\n }\n\n // Header title - set line height to match icon for correct alignment\n &__title {\n flex-grow: 1;\n padding: 0 px2rem(20px);\n font-size: px2rem(18px);\n line-height: px2rem(48px);\n\n // Show page title\n &[data-md-state=\"active\"] .md-header-nav__topic {\n z-index: -1;\n transform: translateX(px2rem(-25px));\n opacity: 0;\n transition:\n transform 400ms cubic-bezier(1, 0.7, 0.1, 0.1),\n opacity 150ms;\n pointer-events: none;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n transform: translateX(px2rem(25px));\n }\n\n // Page title\n & + .md-header-nav__topic {\n z-index: 0;\n transform: translateX(0);\n opacity: 1;\n transition:\n transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),\n opacity 150ms;\n pointer-events: initial;\n }\n }\n\n // Patch ellipsis\n > .md-header-nav__ellipsis {\n position: relative;\n width: 100%;\n height: 100%;\n }\n }\n\n // Repository containing source\n &__source {\n display: none;\n\n // [tablet landscape +]: Show the reposistory from tablet\n @include break-from-device(tablet landscape) {\n display: block;\n width: px2rem(234px);\n max-width: px2rem(234px);\n margin-left: px2rem(20px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2rem(20px);\n margin-left: initial;\n }\n }\n\n // [screen +]: Increase spacing of search bar\n @include break-from-device(screen) {\n margin-left: px2rem(28px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2rem(28px);\n }\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Hero teaser\n.md-hero {\n overflow: hidden;\n color: var(--md-primary-bg-color);\n font-size: ms(1);\n background-color: var(--md-primary-fg-color);\n transition: background 250ms;\n\n // Inner wrapper\n &__inner {\n margin-top: px2rem(20px);\n padding: px2rem(16px) px2rem(16px) px2rem(8px);\n transition:\n transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),\n opacity 250ms;\n transition-delay: 100ms;\n\n // [tablet -]: Compensate for missing tabs\n @include break-to-device(tablet) {\n margin-top: px2rem(48px);\n margin-bottom: px2rem(24px);\n }\n\n // Fade-out tabs background upon scrolling\n [data-md-state=\"hidden\"] & {\n transform: translateY(px2rem(12.5px));\n opacity: 0;\n transition:\n transform 0ms 400ms,\n opacity 100ms 0ms;\n pointer-events: none;\n }\n\n // Adjust bottom spacing if there are no tabs\n .md-hero--expand & {\n margin-bottom: px2rem(24px);\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Application footer\n.md-footer {\n color: var(--md-default-bg-color);\n background-color: var(--md-default-fg-color);\n\n // Hide for print\n @media print {\n display: none;\n }\n}\n\n// Navigation within footer\n.md-footer-nav {\n\n // Set spacing\n &__inner {\n padding: px2rem(4px);\n overflow: auto;\n }\n\n // Links to previous and next page\n &__link {\n display: flex;\n padding-top: px2rem(28px);\n padding-bottom: px2rem(8px);\n transition: opacity 250ms;\n\n // [tablet +]: Set proportional width\n @include break-from-device(tablet) {\n width: 50%;\n }\n\n // Focused or hovered links\n &:focus,\n &:hover {\n opacity: 0.7;\n }\n\n // Link to previous page\n &--prev {\n float: left;\n width: 25%;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n float: right;\n\n // Flip icon vertically\n svg {\n transform: scaleX(-1);\n }\n }\n\n // Title\n .md-footer-nav__title {\n\n // [mobile -]: Hide title for previous page\n @include break-to-device(mobile) {\n display: none;\n }\n }\n }\n\n // Link to next page\n &--next {\n float: right;\n width: 75%;\n text-align: right;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n float: left;\n text-align: left;\n\n // Flip icon vertically\n svg {\n transform: scaleX(-1);\n }\n }\n }\n }\n\n // Link title - set line height to match icon for correct alignment\n &__title {\n position: relative;\n flex-grow: 1;\n max-width: calc(100% - #{px2rem(48px)});\n padding: 0 px2rem(20px);\n font-size: px2rem(18px);\n line-height: px2rem(48px);\n }\n\n // Link button\n &__button {\n margin: px2rem(4px);\n padding: px2rem(8px);\n }\n\n // Link direction\n &__direction {\n position: absolute;\n right: 0;\n left: 0;\n margin-top: px2rem(-20px);\n padding: 0 px2rem(20px);\n color: var(--md-default-bg-color--light);\n font-size: ms(-1);\n }\n}\n\n// Non-navigational information\n.md-footer-meta {\n background-color: var(--md-default-fg-color--lighter);\n\n // Set spacing\n &__inner {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n padding: px2rem(4px);\n }\n\n // Use a decent color for non-hovered links and ensure specificity\n html &.md-typeset a {\n color: var(--md-default-bg-color--light);\n\n // Focused or hovered link\n &:focus,\n &:hover {\n color: var(--md-default-bg-color);\n }\n }\n}\n\n// Copyright and theme information\n.md-footer-copyright {\n width: 100%;\n margin: auto px2rem(12px);\n padding: px2rem(8px) 0;\n color: var(--md-default-bg-color--lighter);\n font-size: ms(-1);\n\n // [tablet portrait +]: Show next to social media links\n @include break-from-device(tablet portrait) {\n width: auto;\n }\n\n // Highlight copyright information\n &__highlight {\n color: var(--md-default-bg-color--light);\n }\n}\n\n// Social links\n.md-footer-social {\n margin: 0 px2rem(8px);\n padding: px2rem(4px) 0 px2rem(12px);\n\n // [tablet portrait +]: Show next to copyright information\n @include break-from-device(tablet portrait) {\n padding: px2rem(12px) 0;\n }\n\n // Link with icon\n &__link {\n display: inline-block;\n width: px2rem(32px);\n height: px2rem(32px);\n text-align: center;\n\n // Adjust line-height to match height for correct alignment\n &::before {\n line-height: 1.9;\n }\n\n // Social icon\n svg {\n max-height: px2rem(16px);\n vertical-align: -25%;\n fill: currentColor;\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Navigation container\n.md-nav {\n font-size: px2rem(14px);\n line-height: 1.3;\n\n // List title\n &__title {\n display: block;\n padding: 0 px2rem(12px);\n overflow: hidden;\n font-weight: 700;\n text-overflow: ellipsis;\n\n // Hide buttons by default\n .md-nav__button {\n display: none;\n\n // Stretch images\n img {\n width: 100%;\n height: auto;\n }\n\n // Logo\n &.md-logo {\n\n // Image or icon\n img,\n svg {\n display: block;\n width: px2rem(48px);\n height: px2rem(48px);\n }\n\n // Icon\n svg {\n fill: currentColor;\n }\n }\n }\n }\n\n // List of items\n &__list {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n // List item\n &__item {\n padding: 0 px2rem(12px);\n\n // Add bottom spacing to last item\n &:last-child {\n padding-bottom: px2rem(12px);\n }\n\n // 2nd+ level items\n & & {\n padding-right: 0;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(12px);\n padding-left: 0;\n }\n\n // Remove bottom spacing for nested items\n &:last-child {\n padding-bottom: 0;\n }\n }\n }\n\n // Link inside item\n &__link {\n display: block;\n margin-top: 0.625em;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n transition: color 125ms;\n scroll-snap-align: start;\n\n // Hide link to table of contents by default - this will only match the\n // table of contents inside the drawer below and including tablet portrait\n html &[for=\"__toc\"] {\n display: none;\n\n // Hide table of contents by default\n & ~ .md-nav {\n display: none;\n }\n }\n\n // Blurred link\n &[data-md-state=\"blur\"] {\n color: var(--md-default-fg-color--light);\n }\n\n // Active link\n .md-nav__item &--active {\n color: var(--md-primary-fg-color);\n }\n\n // Reset active color for nested list titles\n .md-nav__item--nested > & {\n color: inherit;\n }\n\n // Focused or hovered link\n &:focus,\n &:hover {\n color: var(--md-accent-fg-color);\n }\n }\n\n // Repository containing source\n &__source {\n display: none;\n }\n\n // [tablet -]: Layered navigation\n @include break-to-device(tablet) {\n background-color: var(--md-default-bg-color);\n\n // Stretch primary navigation to drawer\n &--primary,\n &--primary .md-nav {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n // Adjust styles for primary navigation\n &--primary {\n\n // List title and item\n .md-nav__title,\n .md-nav__item {\n font-size: px2rem(16px);\n line-height: 1.5;\n }\n\n // List title\n .md-nav__title {\n position: relative;\n height: px2rem(112px);\n padding: px2rem(60px) px2rem(16px) px2rem(4px);\n color: var(--md-default-fg-color--light);\n font-weight: 400;\n line-height: px2rem(48px);\n white-space: nowrap;\n background-color: var(--md-default-fg-color--lightest);\n cursor: pointer;\n\n // Icon\n .md-nav__icon {\n position: absolute;\n top: px2rem(8px);\n left: px2rem(8px);\n display: block;\n width: px2rem(24px);\n height: px2rem(24px);\n margin: px2rem(4px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: px2rem(8px);\n left: initial;\n }\n }\n\n // Main lists\n ~ .md-nav__list {\n overflow-y: auto;\n background-color: var(--md-default-bg-color);\n box-shadow:\n inset 0 px2rem(1px) 0 var(--md-default-fg-color--lightest);\n scroll-snap-type: y mandatory;\n touch-action: pan-y;\n\n // Remove border for first list item\n > .md-nav__item:first-child {\n border-top: 0;\n }\n }\n\n // Site title in main navigation\n &[for=\"__drawer\"] {\n position: relative;\n color: var(--md-primary-bg-color);\n background-color: var(--md-primary-fg-color);\n\n // Site logo\n .md-nav__button {\n position: absolute;\n top: px2rem(4px);\n left: px2rem(4px);\n display: block;\n margin: px2rem(4px);\n padding: px2rem(8px);\n font-size: px2rem(48px);\n }\n }\n }\n\n // Adjust for right-to-left languages\n html [dir=\"rtl\"] & .md-nav__title {\n\n // Site title in main navigation\n &[for=\"__drawer\"] .md-nav__button {\n right: px2rem(4px);\n left: initial;\n }\n }\n\n // List of items\n .md-nav__list {\n flex: 1;\n }\n\n // List item\n .md-nav__item {\n padding: 0;\n border-top: px2rem(1px) solid var(--md-default-fg-color--lightest);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding: 0;\n }\n\n // Increase spacing to account for icon\n &--nested > .md-nav__link {\n padding-right: px2rem(48px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(16px);\n padding-left: px2rem(48px);\n }\n }\n\n // Active parent item\n &--active > .md-nav__link {\n color: var(--md-primary-fg-color);\n\n // Focused or hovered linl\n &:focus,\n &:hover {\n color: var(--md-accent-fg-color);\n }\n }\n }\n\n // Link inside item\n .md-nav__link {\n position: relative;\n margin-top: 0;\n padding: px2rem(12px) px2rem(16px);\n\n // Icon\n .md-nav__icon {\n position: absolute;\n top: 50%;\n right: px2rem(12px);\n margin-top: px2rem(-12px);\n color: inherit;\n font-size: px2rem(24px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: initial;\n left: px2rem(12px);\n }\n }\n }\n\n // Icon\n .md-nav__icon {\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n\n // Flip icon vertically\n svg {\n transform: scale(-1);\n }\n }\n }\n\n // Table of contents inside navigation\n .md-nav--secondary {\n\n // Set links to static to avoid unnecessary layering\n .md-nav__link {\n position: static;\n }\n\n // Set nested navigation for table of contents to static\n .md-nav {\n position: static;\n background-color: transparent;\n\n // 3rd level link\n .md-nav__link {\n padding-left: px2rem(28px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(28px);\n padding-left: initial;\n }\n }\n\n // 4th level link\n .md-nav .md-nav__link {\n padding-left: px2rem(40px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(40px);\n padding-left: initial;\n }\n }\n\n // 5th level link\n .md-nav .md-nav .md-nav__link {\n padding-left: px2rem(52px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(52px);\n padding-left: initial;\n }\n }\n\n // 6th level link\n .md-nav .md-nav .md-nav .md-nav__link {\n padding-left: px2rem(64px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(64px);\n padding-left: initial;\n }\n }\n }\n }\n }\n\n // Hide nested navigation by default\n .md-nav__toggle ~ & {\n display: flex;\n transform: translateX(100%);\n opacity: 0;\n transition:\n transform 250ms cubic-bezier(0.8, 0, 0.6, 1),\n opacity 125ms 50ms;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n transform: translateX(-100%);\n }\n }\n\n // Expand nested navigation, if toggle is checked\n .md-nav__toggle:checked ~ & {\n transform: translateX(0);\n opacity: 1;\n transition:\n transform 250ms cubic-bezier(0.4, 0, 0.2, 1),\n opacity 125ms 125ms;\n\n // Hack: reduce jitter\n > .md-nav__list {\n backface-visibility: hidden;\n }\n }\n }\n\n // [tablet portrait -]: Show table of contents in drawer\n @include break-to-device(tablet portrait) {\n\n // Show link to table of contents - higher specificity is necessary to\n // display the table of contents inside the drawer\n html &__link[for=\"__toc\"] {\n display: block;\n padding-right: px2rem(48px);\n\n // Hide link to current item\n + .md-nav__link {\n display: none;\n }\n\n // Show table of contents\n & ~ .md-nav {\n display: flex;\n }\n }\n\n // Adjust for right-to-left languages\n html [dir=\"rtl\"] &__link {\n padding-right: px2rem(16px);\n padding-left: px2rem(48px);\n }\n\n // Repository containing source\n &__source {\n display: block;\n padding: 0 px2rem(4px);\n color: var(--md-primary-bg-color);\n background-color: var(--md-primary-fg-color--dark);\n }\n }\n\n // [tablet landscape +]: Tree-like navigation\n @include break-from-device(tablet landscape) {\n\n // List title\n &--secondary .md-nav__title {\n\n // Snap to table of contents title\n &[for=\"__toc\"] {\n scroll-snap-align: start;\n }\n\n // Hide icon\n .md-nav__icon {\n display: none;\n }\n }\n }\n\n // [screen +]: Tree-like navigation\n @include break-from-device(screen) {\n transition: max-height 250ms cubic-bezier(0.86, 0, 0.07, 1);\n\n // List title\n &--primary .md-nav__title {\n\n // Snap to site title\n &[for=\"__drawer\"] {\n scroll-snap-align: start;\n }\n\n // Hide icon\n .md-nav__icon {\n display: none;\n }\n }\n\n // Hide nested navigation by default\n .md-nav__toggle ~ & {\n display: none;\n }\n\n // Show nested navigation, if toggle is checked\n .md-nav__toggle:checked ~ & {\n display: block;\n }\n\n // Hide titles for nested navigation\n &__item--nested > .md-nav > &__title {\n display: none;\n }\n\n // Icon\n &__icon {\n float: right;\n height: px2rem(18px);\n transition: transform 250ms;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n float: left;\n transform: rotate(180deg);\n }\n\n // Inline icon and adjust to match font size\n svg {\n display: inline-block;\n width: px2rem(18px);\n height: px2rem(18px);\n vertical-align: px2rem(-2px);\n }\n\n // Rotate icon for expanded lists\n .md-nav__item--nested .md-nav__toggle:checked ~ .md-nav__link & {\n transform: rotate(90deg);\n }\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Variables\n// ----------------------------------------------------------------------------\n\n// Active (toggled) search\n$md-toggle__search--checked:\n \"[data-md-toggle=\\\"search\\\"]:checked ~ .md-header\";\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Search container\n.md-search {\n position: relative;\n\n // Hide search, if JavaScript is not available.\n .no-js & {\n display: none;\n }\n\n // [tablet landscape +]: Header-embedded search\n @include break-from-device(tablet landscape) {\n padding: px2rem(4px) 0;\n }\n\n // Search modal overlay\n &__overlay {\n z-index: 1;\n opacity: 0;\n\n // [tablet portrait -]: Full-screen search bar\n @include break-to-device(tablet portrait) {\n position: absolute;\n top: px2rem(4px);\n left: px2rem(-44px);\n width: px2rem(40px);\n height: px2rem(40px);\n overflow: hidden;\n background-color: var(--md-default-bg-color);\n border-radius: px2rem(20px);\n transform-origin: center;\n transition:\n transform 300ms 100ms,\n opacity 200ms 200ms;\n pointer-events: none;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: px2rem(-44px);\n left: initial;\n }\n\n // Expanded overlay\n #{$md-toggle__search--checked} & {\n opacity: 1;\n transition:\n transform 400ms,\n opacity 100ms;\n }\n }\n\n // Set scale factors\n #{$md-toggle__search--checked} & {\n\n // [mobile portrait -]: Scale up 45 times\n @include break-to-device(mobile portrait) {\n transform: scale(45);\n }\n\n // [mobile landscape]: Scale up 60 times\n @include break-at-device(mobile landscape) {\n transform: scale(60);\n }\n\n // [tablet portrait]: Scale up 75 times\n @include break-at-device(tablet portrait) {\n transform: scale(75);\n }\n }\n\n // [tablet landscape +]: Overlay for better focus on search\n @include break-from-device(tablet landscape) {\n position: fixed;\n top: 0;\n left: 0;\n width: 0;\n height: 0;\n background-color: var(--md-default-fg-color--light);\n cursor: pointer;\n transition:\n width 0ms 250ms,\n height 0ms 250ms,\n opacity 250ms;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: 0;\n left: initial;\n }\n\n // Expanded overlay\n #{$md-toggle__search--checked} & {\n width: 100%;\n height: 100%;\n opacity: 1;\n transition:\n width 0ms,\n height 0ms,\n opacity 250ms;\n }\n }\n }\n\n // Search modal wrapper\n &__inner {\n // Hack: reduce jitter\n backface-visibility: hidden;\n\n // [tablet portrait -]: Put search modal off-canvas by default\n @include break-to-device(tablet portrait) {\n position: fixed;\n top: 0;\n left: 100%;\n z-index: 2;\n width: 100%;\n height: 100%;\n transform: translateX(5%);\n opacity: 0;\n transition:\n right 0ms 300ms,\n left 0ms 300ms,\n transform 150ms 150ms cubic-bezier(0.4, 0, 0.2, 1),\n opacity 150ms 150ms;\n\n // Active search modal\n #{$md-toggle__search--checked} & {\n left: 0;\n transform: translateX(0);\n opacity: 1;\n transition:\n right 0ms 0ms,\n left 0ms 0ms,\n transform 150ms 150ms cubic-bezier(0.1, 0.7, 0.1, 1),\n opacity 150ms 150ms;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: 0;\n left: initial;\n }\n }\n\n // Adjust for right-to-left languages\n html [dir=\"rtl\"] & {\n right: 100%;\n left: initial;\n transform: translateX(-5%);\n }\n }\n\n // [tablet landscape +]: Header-embedded search\n @include break-from-device(tablet landscape) {\n position: relative;\n float: right;\n width: px2rem(234px);\n padding: px2rem(2px) 0;\n transition: width 250ms cubic-bezier(0.1, 0.7, 0.1, 1);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n float: left;\n }\n }\n\n // Set maximum width\n #{$md-toggle__search--checked} & {\n\n // [tablet landscape]: Do not overlay title\n @include break-at-device(tablet landscape) {\n width: px2rem(468px);\n }\n\n // [screen +]: Match content width\n @include break-from-device(screen) {\n width: px2rem(688px);\n }\n }\n }\n\n // Search form\n &__form {\n position: relative;\n\n // [tablet landscape +]: Header-embedded search\n @include break-from-device(tablet landscape) {\n border-radius: px2rem(2px);\n }\n }\n\n // Search input\n &__input {\n position: relative;\n z-index: 2;\n padding: 0 px2rem(44px) 0 px2rem(72px);\n text-overflow: ellipsis;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding: 0 px2rem(72px) 0 px2rem(44px);\n }\n\n // Transition on placeholder\n &::placeholder {\n transition: color 250ms;\n }\n\n // Placeholder and icon color in active state\n ~ .md-search__icon,\n &::placeholder {\n color: var(--md-default-fg-color--light);\n }\n\n // Remove the \"x\" rendered by Internet Explorer\n &::-ms-clear {\n display: none;\n }\n\n // [tablet portrait -]: Full-screen search bar\n @include break-to-device(tablet portrait) {\n width: 100%;\n height: px2rem(48px);\n font-size: px2rem(18px);\n }\n\n // [tablet landscape +]: Header-embedded search\n @include break-from-device(tablet landscape) {\n width: 100%;\n height: px2rem(36px);\n padding-left: px2rem(44px);\n color: inherit;\n font-size: ms(0);\n background-color: var(--md-default-fg-color--lighter);\n border-radius: px2rem(2px);\n transition:\n color 250ms,\n background-color 250ms;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(44px);\n }\n\n // Icon color\n + .md-search__icon {\n color: var(--md-primary-bg-color);\n }\n\n // Placeholder color\n &::placeholder {\n color: var(--md-primary-bg-color--light);\n }\n\n // Hovered search field\n &:hover {\n background-color: var(--md-default-bg-color--lightest);\n }\n\n // Set light background on active search field\n #{$md-toggle__search--checked} & {\n color: var(--md-default-fg-color);\n text-overflow: clip;\n background-color: var(--md-default-bg-color);\n border-radius: px2rem(2px) px2rem(2px) 0 0;\n\n // Icon and placeholder color in active state\n + .md-search__icon,\n &::placeholder {\n color: var(--md-default-fg-color--light);\n }\n }\n }\n }\n\n // Icon\n &__icon {\n position: absolute;\n z-index: 2;\n width: px2rem(24px);\n height: px2rem(24px);\n cursor: pointer;\n transition:\n color 250ms,\n opacity 250ms;\n\n // Hovered icon\n &:hover {\n opacity: 0.7;\n }\n\n // Search icon\n &[for=\"__search\"] {\n top: px2rem(6px);\n left: px2rem(10px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: px2rem(10px);\n left: initial;\n\n // Flip icon vertically\n svg {\n transform: scaleX(-1);\n }\n }\n\n // [tablet portrait -]: Full-screen search bar\n @include break-to-device(tablet portrait) {\n top: px2rem(12px);\n left: px2rem(16px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: px2rem(16px);\n left: initial;\n }\n\n // Hide the magnifying glass (1st icon)\n svg:first-child {\n display: none;\n }\n }\n\n // [tablet landscape +]: Header-embedded search\n @include break-from-device(tablet landscape) {\n pointer-events: none;\n\n // Hide the arrow (2nd icon)\n svg:last-child {\n display: none;\n }\n }\n }\n\n // Reset button\n &[type=\"reset\"] {\n top: px2rem(6px);\n right: px2rem(10px);\n transform: scale(0.75);\n opacity: 0;\n transition:\n transform 150ms cubic-bezier(0.1, 0.7, 0.1, 1),\n opacity 150ms;\n pointer-events: none;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: initial;\n left: px2rem(10px);\n }\n\n // [tablet portrait -]: Full-screen search bar\n @include break-to-device(tablet portrait) {\n top: px2rem(12px);\n right: px2rem(16px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: initial;\n left: px2rem(16px);\n }\n }\n\n // Show reset button if search is active and input non-empty\n #{$md-toggle__search--checked}\n .md-search__input:not(:placeholder-shown) ~ & {\n transform: scale(1);\n opacity: 1;\n pointer-events: initial;\n\n // Hovered icon\n &:hover {\n opacity: 0.7;\n }\n }\n }\n }\n\n // Search output container\n &__output {\n position: absolute;\n z-index: 1;\n width: 100%;\n overflow: hidden;\n border-radius: 0 0 px2rem(2px) px2rem(2px);\n\n // [tablet portrait -]: Full-screen search bar\n @include break-to-device(tablet portrait) {\n top: px2rem(48px);\n bottom: 0;\n }\n\n // [tablet landscape +]: Header-embedded search\n @include break-from-device(tablet landscape) {\n top: px2rem(38px);\n opacity: 0;\n transition: opacity 400ms;\n\n // Show search output in active state\n #{$md-toggle__search--checked} & {\n @include z-depth(6);\n\n opacity: 1;\n }\n }\n }\n\n // Wrapper for scrolling on overflow\n &__scrollwrap {\n height: 100%;\n overflow-y: auto;\n background-color: var(--md-default-bg-color);\n box-shadow: inset 0 px2rem(1px) 0 var(--md-default-fg-color--lightest);\n // Hack: reduce jitter\n backface-visibility: hidden;\n scroll-snap-type: y mandatory;\n touch-action: pan-y;\n\n // Mitigiate excessive repaints on non-retina devices\n @media (max-resolution: 1dppx) {\n transform: translateZ(0);\n }\n\n // [tablet landscape]: Set absolute width to omit unnecessary reflow\n @include break-at-device(tablet landscape) {\n width: px2rem(468px);\n }\n\n // [screen +]: Set absolute width to omit unnecessary reflow\n @include break-from-device(screen) {\n width: px2rem(688px);\n }\n\n // [tablet landscape +]: Limit height to viewport\n @include break-from-device(tablet landscape) {\n max-height: 0;\n\n // Expand in active state\n #{$md-toggle__search--checked} & {\n max-height: 75vh;\n }\n\n // Override native scrollbar styles\n &::-webkit-scrollbar {\n width: px2rem(4px);\n height: px2rem(4px);\n }\n\n // Scrollbar thumb\n &::-webkit-scrollbar-thumb {\n background-color: var(--md-default-fg-color--lighter);\n\n // Hovered scrollbar thumb\n &:hover {\n background-color: var(--md-accent-fg-color);\n }\n }\n }\n }\n}\n\n// Search result\n.md-search-result {\n color: var(--md-default-fg-color);\n word-break: break-word;\n\n // Search metadata\n &__meta {\n padding: 0 px2rem(16px);\n color: var(--md-default-fg-color--light);\n font-size: ms(-1);\n line-height: px2rem(36px);\n background-color: var(--md-default-fg-color--lightest);\n scroll-snap-align: start;\n\n // [tablet landscape +]: Increase left indent\n @include break-from-device(tablet landscape) {\n padding-left: px2rem(44px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(44px);\n padding-left: initial;\n }\n }\n }\n\n // List of items\n &__list {\n margin: 0;\n padding: 0;\n list-style: none;\n border-top: px2rem(1px) solid var(--md-default-fg-color--lightest);\n }\n\n // List item\n &__item {\n box-shadow: 0 px2rem(-1px) 0 var(--md-default-fg-color--lightest);\n }\n\n // Link inside item\n &__link {\n display: block;\n outline: 0;\n transition: background 250ms;\n scroll-snap-align: start;\n\n // Focused or hovered link\n &:focus,\n &:hover {\n background-color: var(--md-accent-fg-color--transparent);\n\n // Slightly transparent icon\n .md-search-result__article::before {\n opacity: 0.7;\n }\n }\n\n // Add a little spacing on the teaser of the last link\n &:last-child .md-search-result__teaser {\n margin-bottom: px2rem(12px);\n }\n }\n\n // Article - document or section\n &__article {\n position: relative;\n padding: 0 px2rem(16px);\n overflow: hidden;\n\n // [tablet landscape +]: Increase left indent\n @include break-from-device(tablet landscape) {\n padding-left: px2rem(44px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding-right: px2rem(44px);\n padding-left: px2rem(16px);\n }\n }\n\n // Document\n &--document {\n\n // Title\n .md-search-result__title {\n margin: px2rem(11px) 0;\n font-weight: 400;\n font-size: ms(0);\n line-height: 1.4;\n }\n }\n }\n\n // Icon\n &__icon {\n position: absolute;\n left: 0;\n margin: px2rem(2px);\n padding: px2rem(8px);\n color: var(--md-default-fg-color--light);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: 0;\n left: initial;\n\n // Flip icon vertically\n svg {\n transform: scaleX(-1);\n }\n }\n\n // [tablet portrait -]: Hide page icon\n @include break-to-device(tablet portrait) {\n display: none;\n }\n }\n\n // Title\n &__title {\n margin: 0.5em 0;\n font-weight: 700;\n font-size: ms(-1);\n line-height: 1.4;\n }\n\n // stylelint-disable value-no-vendor-prefix, property-no-vendor-prefix\n\n // Teaser\n &__teaser {\n display: -webkit-box;\n max-height: px2rem(33px);\n margin: 0.5em 0;\n overflow: hidden;\n color: var(--md-default-fg-color--light);\n font-size: ms(-1);\n line-height: 1.4;\n text-overflow: ellipsis;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n\n // [mobile -]: Increase number of lines\n @include break-to-device(mobile) {\n max-height: px2rem(50px);\n -webkit-line-clamp: 3;\n }\n\n // [tablet landscape]: Increase number of lines\n @include break-at-device(tablet landscape) {\n max-height: px2rem(50px);\n -webkit-line-clamp: 3;\n }\n }\n\n // stylelint-enable value-no-vendor-prefix, property-no-vendor-prefix\n\n // Search term highlighting\n em {\n font-weight: 700;\n font-style: normal;\n text-decoration: underline;\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Variables\n// ----------------------------------------------------------------------------\n\n// Active (toggled) drawer\n$md-toggle__drawer--checked:\n \"[data-md-toggle=\\\"drawer\\\"]:checked ~ .md-container\";\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Sidebar container\n.md-sidebar {\n position: sticky;\n top: px2rem(48px);\n width: px2rem(242px);\n padding: px2rem(24px) 0;\n overflow: hidden;\n\n // Hide for print\n @media print {\n display: none;\n }\n\n // [tablet -]: Convert navigation to drawer\n @include break-to-device(tablet) {\n\n // Render primary sidebar as a slideout container\n &--primary {\n position: fixed;\n top: 0;\n left: px2rem(-242px);\n z-index: 3;\n width: px2rem(242px);\n height: 100%;\n background-color: var(--md-default-bg-color);\n transform: translateX(0);\n transition:\n transform 250ms cubic-bezier(0.4, 0, 0.2, 1),\n box-shadow 250ms;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: px2rem(-242px);\n left: initial;\n }\n\n // Expanded drawer\n #{$md-toggle__drawer--checked} & {\n @include z-depth(8);\n\n transform: translateX(px2rem(242px));\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n transform: translateX(px2rem(-242px));\n }\n }\n\n // Hide overflow for nested navigation\n .md-sidebar__scrollwrap {\n overflow: hidden;\n }\n }\n }\n\n // Secondary sidebar with table of contents\n &--secondary {\n display: none;\n order: 2;\n\n // [tablet landscape +]: Show table of contents next to body copy\n @include break-from-device(tablet landscape) {\n display: block;\n\n // Ensure smooth scrolling on iOS\n .md-sidebar__scrollwrap {\n touch-action: pan-y;\n }\n }\n }\n\n // Wrapper for scrolling on overflow\n &__scrollwrap {\n max-height: 100%;\n margin: 0 px2rem(4px);\n overflow-y: auto;\n // Hack: reduce jitter\n backface-visibility: hidden;\n scroll-snap-type: y mandatory;\n\n // [tablet -]: Adjust margins\n @include break-to-device(tablet) {\n\n // Stretch scrollwrap for primary sidebar\n .md-sidebar--primary & {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n margin: 0;\n scroll-snap-type: none;\n }\n }\n\n // Override native scrollbar styles\n &::-webkit-scrollbar {\n width: px2rem(4px);\n height: px2rem(4px);\n }\n\n // Scrollbar thumb\n &::-webkit-scrollbar-thumb {\n background-color: var(--md-default-fg-color--lighter);\n\n // Hovered scrollbar thumb\n &:hover {\n background-color: var(--md-accent-fg-color);\n }\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Keyframes\n// ----------------------------------------------------------------------------\n\n// Show source facts\n@keyframes md-source__facts--done {\n 0% {\n height: 0;\n }\n\n 100% {\n height: px2rem(13px);\n }\n}\n\n// Show source fact\n@keyframes md-source__fact--done {\n 0% {\n transform: translateY(100%);\n opacity: 0;\n }\n\n 50% {\n opacity: 0;\n }\n\n 100% {\n transform: translateY(0%);\n opacity: 1;\n }\n}\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Source container\n.md-source {\n display: block;\n font-size: px2rem(13px);\n line-height: 1.2;\n white-space: nowrap;\n // Hack: reduce jitter\n backface-visibility: hidden;\n transition: opacity 250ms;\n\n // Hovered source container\n &:hover {\n opacity: 0.7;\n }\n\n // Repository platform icon\n &__icon {\n display: inline-block;\n width: px2rem(48px);\n height: px2rem(48px);\n vertical-align: middle;\n\n // Align with margin only (as opposed to normal button alignment)\n svg {\n margin-top: px2rem(12px);\n margin-left: px2rem(12px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2rem(12px);\n margin-left: initial;\n }\n }\n\n // Correct alignment, if icon is present\n + .md-source__repository {\n margin-left: px2rem(-40px);\n padding-left: px2rem(40px);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2rem(-40px);\n margin-left: initial;\n padding-right: px2rem(40px);\n padding-left: initial;\n }\n }\n }\n\n // Repository name\n &__repository {\n display: inline-block;\n max-width: calc(100% - #{px2rem(24px)});\n margin-left: px2rem(12px);\n overflow: hidden;\n font-weight: 700;\n text-overflow: ellipsis;\n vertical-align: middle;\n }\n\n // Source facts (statistics etc.)\n &__facts {\n margin: 0;\n padding: 0;\n overflow: hidden;\n font-weight: 700;\n font-size: px2rem(11px);\n list-style-type: none;\n opacity: 0.75;\n\n // Show after the data was loaded\n [data-md-state=\"done\"] & {\n animation: md-source__facts--done 250ms ease-in;\n }\n }\n\n // Fact\n &__fact {\n float: left;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n float: right;\n }\n\n // Show after the data was loaded\n [data-md-state=\"done\"] & {\n animation: md-source__fact--done 400ms ease-out;\n }\n\n // Middle dot before fact\n &::before {\n margin: 0 px2rem(2px);\n content: \"\\00B7\";\n }\n\n // Remove middle dot on first fact\n &:first-child::before {\n display: none;\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Tabs with outline\n.md-tabs {\n width: 100%;\n overflow: auto;\n color: var(--md-primary-bg-color);\n background-color: var(--md-primary-fg-color);\n transition: background 250ms;\n\n // Omit transitions, in case JavaScript is not available\n .no-js & {\n transition: none;\n }\n\n // [tablet -]: Hide tabs for tablet and below, as they don't make any sense\n @include break-to-device(tablet) {\n display: none;\n }\n\n // Hide for print\n @media print {\n display: none;\n }\n\n // List of items\n &__list {\n margin: 0;\n margin-left: px2rem(4px);\n padding: 0;\n white-space: nowrap;\n list-style: none;\n contain: content;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n margin-right: px2rem(4px);\n margin-left: initial;\n }\n }\n\n // List item\n &__item {\n display: inline-block;\n height: px2rem(48px);\n padding-right: px2rem(12px);\n padding-left: px2rem(12px);\n }\n\n // Link inside item - could be defined as block elements and aligned via\n // line height, but this would imply more repaints when scrolling\n &__link {\n display: block;\n margin-top: px2rem(16px);\n font-size: px2rem(14px);\n opacity: 0.7;\n transition:\n transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1),\n opacity 250ms;\n\n // Omit transitions, in case JavaScript is not available\n .no-js & {\n transition: none;\n }\n\n // Active or hovered link\n &--active,\n &:hover {\n color: inherit;\n opacity: 1;\n }\n\n // Delay transitions by a small amount\n @for $i from 2 through 16 {\n .md-tabs__item:nth-child(#{$i}) & {\n transition-delay: 20ms * ($i - 1);\n }\n }\n }\n\n // Fade-out tabs background upon scrolling\n &[data-md-state=\"hidden\"] {\n pointer-events: none;\n\n // Hide tabs upon scrolling - disable transition to minimizes repaints\n // while scrolling down, while scrolling up seems to be okay\n .md-tabs__link {\n transform: translateY(50%);\n opacity: 0;\n transition:\n color 250ms,\n transform 0ms 400ms,\n opacity 100ms;\n }\n }\n\n // [screen +]: Adjust main navigation styles\n @include break-from-device(screen) {\n\n // Hide 1st level nested items, as they are listed in the tabs\n ~ .md-main .md-nav--primary > .md-nav__list > .md-nav__item--nested {\n display: none;\n }\n\n // Active tab\n &--active ~ .md-main {\n\n // Adjust 1st level styles\n .md-nav--primary {\n\n // Show title and remove spacing\n .md-nav__title {\n display: block;\n padding: 0 px2rem(12px);\n pointer-events: none;\n scroll-snap-align: start;\n\n // Hide site title\n &[for=\"__drawer\"] {\n display: none;\n }\n }\n\n // Hide 1st level items\n > .md-nav__list > .md-nav__item {\n display: none;\n\n // Show 1st level active nested items\n &--active {\n display: block;\n padding: 0;\n\n // Hide nested links\n > .md-nav__link {\n display: none;\n }\n }\n }\n }\n\n // Always expand nested navigation on 2nd level\n .md-nav[data-md-level=\"1\"] {\n // Hack: Always show active navigation tab on breakpoint screen, despite\n // of checkbox being checked or not. Fixes #1655.\n display: block;\n\n // Remove spacing on 2nd level items\n > .md-nav__list > .md-nav__item {\n padding: 0 px2rem(12px);\n }\n\n // Hide titles from 2nd level on\n .md-nav .md-nav__title {\n display: none;\n }\n }\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Variables\n// ----------------------------------------------------------------------------\n\n///\n/// Admonition flavours\n///\n$admonitions: (\n note: pencil $clr-blue-a200,\n abstract summary tldr: text-subject $clr-light-blue-a400,\n info todo: information $clr-cyan-a700,\n tip hint important: fire $clr-teal-a700,\n success check done: check-circle $clr-green-a700,\n question help faq: help-circle $clr-light-green-a700,\n warning caution attention: alert $clr-orange-a400,\n failure fail missing: close-circle $clr-red-a200,\n danger error: flash-circle $clr-red-a400,\n bug: bug $clr-pink-a400,\n example: format-list-numbered $clr-deep-purple-a400,\n quote cite: format-quote-close $clr-grey\n) !default;\n\n// ----------------------------------------------------------------------------\n// Rules: layout\n// ----------------------------------------------------------------------------\n\n// Icon definitions\n:root {\n @each $names, $props in $admonitions {\n $name: nth($names, 1);\n $icon: nth($props, 1);\n\n // Inline icon through string-replace-loader in webpack\n --md-admonition-icon--#{$name}: svg-load(\"@mdi/svg/svg/#{$icon}.svg\");\n }\n}\n\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // Admonition extension\n .admonition {\n margin: 1.5625em 0;\n padding: 0 px2rem(12px);\n overflow: hidden;\n font-size: ms(-1);\n page-break-inside: avoid;\n border-left: px2rem(4px) solid $clr-blue-a200;\n border-radius: px2rem(2px);\n box-shadow:\n 0 px2rem(4px) px2rem(10px) hsla(0, 0%, 0%, 0.05),\n 0 0 px2rem(1px) hsla(0, 0%, 0%, 0.1);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n border-right: px2rem(4px) solid $clr-blue-a200;\n border-left: none;\n }\n\n // Hack: omit rendering errors for print\n @media print {\n box-shadow: none;\n }\n\n // Adjust spacing on last element\n html & > :last-child {\n margin-bottom: px2rem(12px);\n }\n\n // Adjust margin for nested admonition blocks\n .admonition {\n margin: 1em 0;\n }\n\n // Wrapper for scrolling on overflow\n .md-typeset__scrollwrap {\n margin: 1em px2rem(-12px);\n }\n\n // Data table wrapper, in case JavaScript is available\n .md-typeset__table {\n padding: 0 px2rem(12px);\n }\n }\n\n // Admonition title\n .admonition-title {\n position: relative;\n margin: 0 px2rem(-12px);\n padding: px2rem(8px) px2rem(12px) px2rem(8px) px2rem(40px);\n font-weight: 700;\n background-color: transparentize($clr-blue-a200, 0.9);\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding: px2rem(8px) px2rem(40px) px2rem(8px) px2rem(12px);\n }\n\n // Reset spacing, if title is the only element\n html &:last-child {\n margin-bottom: 0;\n }\n\n // Icon\n &::before {\n position: absolute;\n left: px2rem(12px);\n width: px2rem(20px);\n height: px2rem(20px);\n background-color: $clr-blue-a200;\n mask-image: var(--md-admonition-icon--note);\n content: \"\";\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: px2rem(12px);\n left: initial;\n }\n }\n\n // Reset code inside Admonition titles\n code {\n margin: initial;\n padding: initial;\n color: currentColor;\n background-color: transparent;\n border-radius: initial;\n box-shadow: none;\n }\n }\n}\n\n// ----------------------------------------------------------------------------\n// Rules: flavours\n// ----------------------------------------------------------------------------\n\n@each $names, $props in $admonitions {\n $name: nth($names, 1);\n $tint: nth($props, 2);\n\n // Define base class\n .md-typeset .admonition.#{$name} {\n border-color: $tint;\n }\n\n // Define base class\n .md-typeset .#{$name} > .admonition-title {\n background-color: transparentize($tint, 0.9);\n\n // Icon\n &::before {\n background-color: $tint;\n mask-image: var(--md-admonition-icon--#{$name});\n }\n }\n\n // Define synonyms for base class\n @if length($names) > 1 {\n @for $n from 2 through length($names) {\n .#{nth($names, $n)} {\n @extend .#{$name};\n }\n }\n }\n}\n","// ==========================================================================\n//\n// Name: UI Color Palette\n// Description: The color palette of material design.\n// Version: 2.3.1\n//\n// Author: Denis Malinochkin\n// Git: https://github.com/mrmlnc/material-color\n//\n// twitter: @mrmlnc\n//\n// ==========================================================================\n\n\n//\n// List of base colors\n//\n\n// $clr-red\n// $clr-pink\n// $clr-purple\n// $clr-deep-purple\n// $clr-indigo\n// $clr-blue\n// $clr-light-blue\n// $clr-cyan\n// $clr-teal\n// $clr-green\n// $clr-light-green\n// $clr-lime\n// $clr-yellow\n// $clr-amber\n// $clr-orange\n// $clr-deep-orange\n// $clr-brown\n// $clr-grey\n// $clr-blue-grey\n// $clr-black\n// $clr-white\n\n\n//\n// Red\n//\n\n$clr-red-list: (\n \"base\": #f44336,\n \"50\": #ffebee,\n \"100\": #ffcdd2,\n \"200\": #ef9a9a,\n \"300\": #e57373,\n \"400\": #ef5350,\n \"500\": #f44336,\n \"600\": #e53935,\n \"700\": #d32f2f,\n \"800\": #c62828,\n \"900\": #b71c1c,\n \"a100\": #ff8a80,\n \"a200\": #ff5252,\n \"a400\": #ff1744,\n \"a700\": #d50000\n);\n\n$clr-red: map-get($clr-red-list, \"base\");\n\n$clr-red-50: map-get($clr-red-list, \"50\");\n$clr-red-100: map-get($clr-red-list, \"100\");\n$clr-red-200: map-get($clr-red-list, \"200\");\n$clr-red-300: map-get($clr-red-list, \"300\");\n$clr-red-400: map-get($clr-red-list, \"400\");\n$clr-red-500: map-get($clr-red-list, \"500\");\n$clr-red-600: map-get($clr-red-list, \"600\");\n$clr-red-700: map-get($clr-red-list, \"700\");\n$clr-red-800: map-get($clr-red-list, \"800\");\n$clr-red-900: map-get($clr-red-list, \"900\");\n$clr-red-a100: map-get($clr-red-list, \"a100\");\n$clr-red-a200: map-get($clr-red-list, \"a200\");\n$clr-red-a400: map-get($clr-red-list, \"a400\");\n$clr-red-a700: map-get($clr-red-list, \"a700\");\n\n\n//\n// Pink\n//\n\n$clr-pink-list: (\n \"base\": #e91e63,\n \"50\": #fce4ec,\n \"100\": #f8bbd0,\n \"200\": #f48fb1,\n \"300\": #f06292,\n \"400\": #ec407a,\n \"500\": #e91e63,\n \"600\": #d81b60,\n \"700\": #c2185b,\n \"800\": #ad1457,\n \"900\": #880e4f,\n \"a100\": #ff80ab,\n \"a200\": #ff4081,\n \"a400\": #f50057,\n \"a700\": #c51162\n);\n\n$clr-pink: map-get($clr-pink-list, \"base\");\n\n$clr-pink-50: map-get($clr-pink-list, \"50\");\n$clr-pink-100: map-get($clr-pink-list, \"100\");\n$clr-pink-200: map-get($clr-pink-list, \"200\");\n$clr-pink-300: map-get($clr-pink-list, \"300\");\n$clr-pink-400: map-get($clr-pink-list, \"400\");\n$clr-pink-500: map-get($clr-pink-list, \"500\");\n$clr-pink-600: map-get($clr-pink-list, \"600\");\n$clr-pink-700: map-get($clr-pink-list, \"700\");\n$clr-pink-800: map-get($clr-pink-list, \"800\");\n$clr-pink-900: map-get($clr-pink-list, \"900\");\n$clr-pink-a100: map-get($clr-pink-list, \"a100\");\n$clr-pink-a200: map-get($clr-pink-list, \"a200\");\n$clr-pink-a400: map-get($clr-pink-list, \"a400\");\n$clr-pink-a700: map-get($clr-pink-list, \"a700\");\n\n\n//\n// Purple\n//\n\n$clr-purple-list: (\n \"base\": #9c27b0,\n \"50\": #f3e5f5,\n \"100\": #e1bee7,\n \"200\": #ce93d8,\n \"300\": #ba68c8,\n \"400\": #ab47bc,\n \"500\": #9c27b0,\n \"600\": #8e24aa,\n \"700\": #7b1fa2,\n \"800\": #6a1b9a,\n \"900\": #4a148c,\n \"a100\": #ea80fc,\n \"a200\": #e040fb,\n \"a400\": #d500f9,\n \"a700\": #aa00ff\n);\n\n$clr-purple: map-get($clr-purple-list, \"base\");\n\n$clr-purple-50: map-get($clr-purple-list, \"50\");\n$clr-purple-100: map-get($clr-purple-list, \"100\");\n$clr-purple-200: map-get($clr-purple-list, \"200\");\n$clr-purple-300: map-get($clr-purple-list, \"300\");\n$clr-purple-400: map-get($clr-purple-list, \"400\");\n$clr-purple-500: map-get($clr-purple-list, \"500\");\n$clr-purple-600: map-get($clr-purple-list, \"600\");\n$clr-purple-700: map-get($clr-purple-list, \"700\");\n$clr-purple-800: map-get($clr-purple-list, \"800\");\n$clr-purple-900: map-get($clr-purple-list, \"900\");\n$clr-purple-a100: map-get($clr-purple-list, \"a100\");\n$clr-purple-a200: map-get($clr-purple-list, \"a200\");\n$clr-purple-a400: map-get($clr-purple-list, \"a400\");\n$clr-purple-a700: map-get($clr-purple-list, \"a700\");\n\n\n//\n// Deep purple\n//\n\n$clr-deep-purple-list: (\n \"base\": #673ab7,\n \"50\": #ede7f6,\n \"100\": #d1c4e9,\n \"200\": #b39ddb,\n \"300\": #9575cd,\n \"400\": #7e57c2,\n \"500\": #673ab7,\n \"600\": #5e35b1,\n \"700\": #512da8,\n \"800\": #4527a0,\n \"900\": #311b92,\n \"a100\": #b388ff,\n \"a200\": #7c4dff,\n \"a400\": #651fff,\n \"a700\": #6200ea\n);\n\n$clr-deep-purple: map-get($clr-deep-purple-list, \"base\");\n\n$clr-deep-purple-50: map-get($clr-deep-purple-list, \"50\");\n$clr-deep-purple-100: map-get($clr-deep-purple-list, \"100\");\n$clr-deep-purple-200: map-get($clr-deep-purple-list, \"200\");\n$clr-deep-purple-300: map-get($clr-deep-purple-list, \"300\");\n$clr-deep-purple-400: map-get($clr-deep-purple-list, \"400\");\n$clr-deep-purple-500: map-get($clr-deep-purple-list, \"500\");\n$clr-deep-purple-600: map-get($clr-deep-purple-list, \"600\");\n$clr-deep-purple-700: map-get($clr-deep-purple-list, \"700\");\n$clr-deep-purple-800: map-get($clr-deep-purple-list, \"800\");\n$clr-deep-purple-900: map-get($clr-deep-purple-list, \"900\");\n$clr-deep-purple-a100: map-get($clr-deep-purple-list, \"a100\");\n$clr-deep-purple-a200: map-get($clr-deep-purple-list, \"a200\");\n$clr-deep-purple-a400: map-get($clr-deep-purple-list, \"a400\");\n$clr-deep-purple-a700: map-get($clr-deep-purple-list, \"a700\");\n\n\n//\n// Indigo\n//\n\n$clr-indigo-list: (\n \"base\": #3f51b5,\n \"50\": #e8eaf6,\n \"100\": #c5cae9,\n \"200\": #9fa8da,\n \"300\": #7986cb,\n \"400\": #5c6bc0,\n \"500\": #3f51b5,\n \"600\": #3949ab,\n \"700\": #303f9f,\n \"800\": #283593,\n \"900\": #1a237e,\n \"a100\": #8c9eff,\n \"a200\": #536dfe,\n \"a400\": #3d5afe,\n \"a700\": #304ffe\n);\n\n$clr-indigo: map-get($clr-indigo-list, \"base\");\n\n$clr-indigo-50: map-get($clr-indigo-list, \"50\");\n$clr-indigo-100: map-get($clr-indigo-list, \"100\");\n$clr-indigo-200: map-get($clr-indigo-list, \"200\");\n$clr-indigo-300: map-get($clr-indigo-list, \"300\");\n$clr-indigo-400: map-get($clr-indigo-list, \"400\");\n$clr-indigo-500: map-get($clr-indigo-list, \"500\");\n$clr-indigo-600: map-get($clr-indigo-list, \"600\");\n$clr-indigo-700: map-get($clr-indigo-list, \"700\");\n$clr-indigo-800: map-get($clr-indigo-list, \"800\");\n$clr-indigo-900: map-get($clr-indigo-list, \"900\");\n$clr-indigo-a100: map-get($clr-indigo-list, \"a100\");\n$clr-indigo-a200: map-get($clr-indigo-list, \"a200\");\n$clr-indigo-a400: map-get($clr-indigo-list, \"a400\");\n$clr-indigo-a700: map-get($clr-indigo-list, \"a700\");\n\n\n//\n// Blue\n//\n\n$clr-blue-list: (\n \"base\": #2196f3,\n \"50\": #e3f2fd,\n \"100\": #bbdefb,\n \"200\": #90caf9,\n \"300\": #64b5f6,\n \"400\": #42a5f5,\n \"500\": #2196f3,\n \"600\": #1e88e5,\n \"700\": #1976d2,\n \"800\": #1565c0,\n \"900\": #0d47a1,\n \"a100\": #82b1ff,\n \"a200\": #448aff,\n \"a400\": #2979ff,\n \"a700\": #2962ff\n);\n\n$clr-blue: map-get($clr-blue-list, \"base\");\n\n$clr-blue-50: map-get($clr-blue-list, \"50\");\n$clr-blue-100: map-get($clr-blue-list, \"100\");\n$clr-blue-200: map-get($clr-blue-list, \"200\");\n$clr-blue-300: map-get($clr-blue-list, \"300\");\n$clr-blue-400: map-get($clr-blue-list, \"400\");\n$clr-blue-500: map-get($clr-blue-list, \"500\");\n$clr-blue-600: map-get($clr-blue-list, \"600\");\n$clr-blue-700: map-get($clr-blue-list, \"700\");\n$clr-blue-800: map-get($clr-blue-list, \"800\");\n$clr-blue-900: map-get($clr-blue-list, \"900\");\n$clr-blue-a100: map-get($clr-blue-list, \"a100\");\n$clr-blue-a200: map-get($clr-blue-list, \"a200\");\n$clr-blue-a400: map-get($clr-blue-list, \"a400\");\n$clr-blue-a700: map-get($clr-blue-list, \"a700\");\n\n\n//\n// Light Blue\n//\n\n$clr-light-blue-list: (\n \"base\": #03a9f4,\n \"50\": #e1f5fe,\n \"100\": #b3e5fc,\n \"200\": #81d4fa,\n \"300\": #4fc3f7,\n \"400\": #29b6f6,\n \"500\": #03a9f4,\n \"600\": #039be5,\n \"700\": #0288d1,\n \"800\": #0277bd,\n \"900\": #01579b,\n \"a100\": #80d8ff,\n \"a200\": #40c4ff,\n \"a400\": #00b0ff,\n \"a700\": #0091ea\n);\n\n$clr-light-blue: map-get($clr-light-blue-list, \"base\");\n\n$clr-light-blue-50: map-get($clr-light-blue-list, \"50\");\n$clr-light-blue-100: map-get($clr-light-blue-list, \"100\");\n$clr-light-blue-200: map-get($clr-light-blue-list, \"200\");\n$clr-light-blue-300: map-get($clr-light-blue-list, \"300\");\n$clr-light-blue-400: map-get($clr-light-blue-list, \"400\");\n$clr-light-blue-500: map-get($clr-light-blue-list, \"500\");\n$clr-light-blue-600: map-get($clr-light-blue-list, \"600\");\n$clr-light-blue-700: map-get($clr-light-blue-list, \"700\");\n$clr-light-blue-800: map-get($clr-light-blue-list, \"800\");\n$clr-light-blue-900: map-get($clr-light-blue-list, \"900\");\n$clr-light-blue-a100: map-get($clr-light-blue-list, \"a100\");\n$clr-light-blue-a200: map-get($clr-light-blue-list, \"a200\");\n$clr-light-blue-a400: map-get($clr-light-blue-list, \"a400\");\n$clr-light-blue-a700: map-get($clr-light-blue-list, \"a700\");\n\n\n//\n// Cyan\n//\n\n$clr-cyan-list: (\n \"base\": #00bcd4,\n \"50\": #e0f7fa,\n \"100\": #b2ebf2,\n \"200\": #80deea,\n \"300\": #4dd0e1,\n \"400\": #26c6da,\n \"500\": #00bcd4,\n \"600\": #00acc1,\n \"700\": #0097a7,\n \"800\": #00838f,\n \"900\": #006064,\n \"a100\": #84ffff,\n \"a200\": #18ffff,\n \"a400\": #00e5ff,\n \"a700\": #00b8d4\n);\n\n$clr-cyan: map-get($clr-cyan-list, \"base\");\n\n$clr-cyan-50: map-get($clr-cyan-list, \"50\");\n$clr-cyan-100: map-get($clr-cyan-list, \"100\");\n$clr-cyan-200: map-get($clr-cyan-list, \"200\");\n$clr-cyan-300: map-get($clr-cyan-list, \"300\");\n$clr-cyan-400: map-get($clr-cyan-list, \"400\");\n$clr-cyan-500: map-get($clr-cyan-list, \"500\");\n$clr-cyan-600: map-get($clr-cyan-list, \"600\");\n$clr-cyan-700: map-get($clr-cyan-list, \"700\");\n$clr-cyan-800: map-get($clr-cyan-list, \"800\");\n$clr-cyan-900: map-get($clr-cyan-list, \"900\");\n$clr-cyan-a100: map-get($clr-cyan-list, \"a100\");\n$clr-cyan-a200: map-get($clr-cyan-list, \"a200\");\n$clr-cyan-a400: map-get($clr-cyan-list, \"a400\");\n$clr-cyan-a700: map-get($clr-cyan-list, \"a700\");\n\n\n//\n// Teal\n//\n\n$clr-teal-list: (\n \"base\": #009688,\n \"50\": #e0f2f1,\n \"100\": #b2dfdb,\n \"200\": #80cbc4,\n \"300\": #4db6ac,\n \"400\": #26a69a,\n \"500\": #009688,\n \"600\": #00897b,\n \"700\": #00796b,\n \"800\": #00695c,\n \"900\": #004d40,\n \"a100\": #a7ffeb,\n \"a200\": #64ffda,\n \"a400\": #1de9b6,\n \"a700\": #00bfa5\n);\n\n$clr-teal: map-get($clr-teal-list, \"base\");\n\n$clr-teal-50: map-get($clr-teal-list, \"50\");\n$clr-teal-100: map-get($clr-teal-list, \"100\");\n$clr-teal-200: map-get($clr-teal-list, \"200\");\n$clr-teal-300: map-get($clr-teal-list, \"300\");\n$clr-teal-400: map-get($clr-teal-list, \"400\");\n$clr-teal-500: map-get($clr-teal-list, \"500\");\n$clr-teal-600: map-get($clr-teal-list, \"600\");\n$clr-teal-700: map-get($clr-teal-list, \"700\");\n$clr-teal-800: map-get($clr-teal-list, \"800\");\n$clr-teal-900: map-get($clr-teal-list, \"900\");\n$clr-teal-a100: map-get($clr-teal-list, \"a100\");\n$clr-teal-a200: map-get($clr-teal-list, \"a200\");\n$clr-teal-a400: map-get($clr-teal-list, \"a400\");\n$clr-teal-a700: map-get($clr-teal-list, \"a700\");\n\n\n//\n// Green\n//\n\n$clr-green-list: (\n \"base\": #4caf50,\n \"50\": #e8f5e9,\n \"100\": #c8e6c9,\n \"200\": #a5d6a7,\n \"300\": #81c784,\n \"400\": #66bb6a,\n \"500\": #4caf50,\n \"600\": #43a047,\n \"700\": #388e3c,\n \"800\": #2e7d32,\n \"900\": #1b5e20,\n \"a100\": #b9f6ca,\n \"a200\": #69f0ae,\n \"a400\": #00e676,\n \"a700\": #00c853\n);\n\n$clr-green: map-get($clr-green-list, \"base\");\n\n$clr-green-50: map-get($clr-green-list, \"50\");\n$clr-green-100: map-get($clr-green-list, \"100\");\n$clr-green-200: map-get($clr-green-list, \"200\");\n$clr-green-300: map-get($clr-green-list, \"300\");\n$clr-green-400: map-get($clr-green-list, \"400\");\n$clr-green-500: map-get($clr-green-list, \"500\");\n$clr-green-600: map-get($clr-green-list, \"600\");\n$clr-green-700: map-get($clr-green-list, \"700\");\n$clr-green-800: map-get($clr-green-list, \"800\");\n$clr-green-900: map-get($clr-green-list, \"900\");\n$clr-green-a100: map-get($clr-green-list, \"a100\");\n$clr-green-a200: map-get($clr-green-list, \"a200\");\n$clr-green-a400: map-get($clr-green-list, \"a400\");\n$clr-green-a700: map-get($clr-green-list, \"a700\");\n\n\n//\n// Light green\n//\n\n$clr-light-green-list: (\n \"base\": #8bc34a,\n \"50\": #f1f8e9,\n \"100\": #dcedc8,\n \"200\": #c5e1a5,\n \"300\": #aed581,\n \"400\": #9ccc65,\n \"500\": #8bc34a,\n \"600\": #7cb342,\n \"700\": #689f38,\n \"800\": #558b2f,\n \"900\": #33691e,\n \"a100\": #ccff90,\n \"a200\": #b2ff59,\n \"a400\": #76ff03,\n \"a700\": #64dd17\n);\n\n$clr-light-green: map-get($clr-light-green-list, \"base\");\n\n$clr-light-green-50: map-get($clr-light-green-list, \"50\");\n$clr-light-green-100: map-get($clr-light-green-list, \"100\");\n$clr-light-green-200: map-get($clr-light-green-list, \"200\");\n$clr-light-green-300: map-get($clr-light-green-list, \"300\");\n$clr-light-green-400: map-get($clr-light-green-list, \"400\");\n$clr-light-green-500: map-get($clr-light-green-list, \"500\");\n$clr-light-green-600: map-get($clr-light-green-list, \"600\");\n$clr-light-green-700: map-get($clr-light-green-list, \"700\");\n$clr-light-green-800: map-get($clr-light-green-list, \"800\");\n$clr-light-green-900: map-get($clr-light-green-list, \"900\");\n$clr-light-green-a100: map-get($clr-light-green-list, \"a100\");\n$clr-light-green-a200: map-get($clr-light-green-list, \"a200\");\n$clr-light-green-a400: map-get($clr-light-green-list, \"a400\");\n$clr-light-green-a700: map-get($clr-light-green-list, \"a700\");\n\n\n//\n// Lime\n//\n\n$clr-lime-list: (\n \"base\": #cddc39,\n \"50\": #f9fbe7,\n \"100\": #f0f4c3,\n \"200\": #e6ee9c,\n \"300\": #dce775,\n \"400\": #d4e157,\n \"500\": #cddc39,\n \"600\": #c0ca33,\n \"700\": #afb42b,\n \"800\": #9e9d24,\n \"900\": #827717,\n \"a100\": #f4ff81,\n \"a200\": #eeff41,\n \"a400\": #c6ff00,\n \"a700\": #aeea00\n);\n\n$clr-lime: map-get($clr-lime-list, \"base\");\n\n$clr-lime-50: map-get($clr-lime-list, \"50\");\n$clr-lime-100: map-get($clr-lime-list, \"100\");\n$clr-lime-200: map-get($clr-lime-list, \"200\");\n$clr-lime-300: map-get($clr-lime-list, \"300\");\n$clr-lime-400: map-get($clr-lime-list, \"400\");\n$clr-lime-500: map-get($clr-lime-list, \"500\");\n$clr-lime-600: map-get($clr-lime-list, \"600\");\n$clr-lime-700: map-get($clr-lime-list, \"700\");\n$clr-lime-800: map-get($clr-lime-list, \"800\");\n$clr-lime-900: map-get($clr-lime-list, \"900\");\n$clr-lime-a100: map-get($clr-lime-list, \"a100\");\n$clr-lime-a200: map-get($clr-lime-list, \"a200\");\n$clr-lime-a400: map-get($clr-lime-list, \"a400\");\n$clr-lime-a700: map-get($clr-lime-list, \"a700\");\n\n\n//\n// Yellow\n//\n\n$clr-yellow-list: (\n \"base\": #ffeb3b,\n \"50\": #fffde7,\n \"100\": #fff9c4,\n \"200\": #fff59d,\n \"300\": #fff176,\n \"400\": #ffee58,\n \"500\": #ffeb3b,\n \"600\": #fdd835,\n \"700\": #fbc02d,\n \"800\": #f9a825,\n \"900\": #f57f17,\n \"a100\": #ffff8d,\n \"a200\": #ffff00,\n \"a400\": #ffea00,\n \"a700\": #ffd600\n);\n\n$clr-yellow: map-get($clr-yellow-list, \"base\");\n\n$clr-yellow-50: map-get($clr-yellow-list, \"50\");\n$clr-yellow-100: map-get($clr-yellow-list, \"100\");\n$clr-yellow-200: map-get($clr-yellow-list, \"200\");\n$clr-yellow-300: map-get($clr-yellow-list, \"300\");\n$clr-yellow-400: map-get($clr-yellow-list, \"400\");\n$clr-yellow-500: map-get($clr-yellow-list, \"500\");\n$clr-yellow-600: map-get($clr-yellow-list, \"600\");\n$clr-yellow-700: map-get($clr-yellow-list, \"700\");\n$clr-yellow-800: map-get($clr-yellow-list, \"800\");\n$clr-yellow-900: map-get($clr-yellow-list, \"900\");\n$clr-yellow-a100: map-get($clr-yellow-list, \"a100\");\n$clr-yellow-a200: map-get($clr-yellow-list, \"a200\");\n$clr-yellow-a400: map-get($clr-yellow-list, \"a400\");\n$clr-yellow-a700: map-get($clr-yellow-list, \"a700\");\n\n\n//\n// amber\n//\n\n$clr-amber-list: (\n \"base\": #ffc107,\n \"50\": #fff8e1,\n \"100\": #ffecb3,\n \"200\": #ffe082,\n \"300\": #ffd54f,\n \"400\": #ffca28,\n \"500\": #ffc107,\n \"600\": #ffb300,\n \"700\": #ffa000,\n \"800\": #ff8f00,\n \"900\": #ff6f00,\n \"a100\": #ffe57f,\n \"a200\": #ffd740,\n \"a400\": #ffc400,\n \"a700\": #ffab00\n);\n\n$clr-amber: map-get($clr-amber-list, \"base\");\n\n$clr-amber-50: map-get($clr-amber-list, \"50\");\n$clr-amber-100: map-get($clr-amber-list, \"100\");\n$clr-amber-200: map-get($clr-amber-list, \"200\");\n$clr-amber-300: map-get($clr-amber-list, \"300\");\n$clr-amber-400: map-get($clr-amber-list, \"400\");\n$clr-amber-500: map-get($clr-amber-list, \"500\");\n$clr-amber-600: map-get($clr-amber-list, \"600\");\n$clr-amber-700: map-get($clr-amber-list, \"700\");\n$clr-amber-800: map-get($clr-amber-list, \"800\");\n$clr-amber-900: map-get($clr-amber-list, \"900\");\n$clr-amber-a100: map-get($clr-amber-list, \"a100\");\n$clr-amber-a200: map-get($clr-amber-list, \"a200\");\n$clr-amber-a400: map-get($clr-amber-list, \"a400\");\n$clr-amber-a700: map-get($clr-amber-list, \"a700\");\n\n\n//\n// Orange\n//\n\n$clr-orange-list: (\n \"base\": #ff9800,\n \"50\": #fff3e0,\n \"100\": #ffe0b2,\n \"200\": #ffcc80,\n \"300\": #ffb74d,\n \"400\": #ffa726,\n \"500\": #ff9800,\n \"600\": #fb8c00,\n \"700\": #f57c00,\n \"800\": #ef6c00,\n \"900\": #e65100,\n \"a100\": #ffd180,\n \"a200\": #ffab40,\n \"a400\": #ff9100,\n \"a700\": #ff6d00\n);\n\n$clr-orange: map-get($clr-orange-list, \"base\");\n\n$clr-orange-50: map-get($clr-orange-list, \"50\");\n$clr-orange-100: map-get($clr-orange-list, \"100\");\n$clr-orange-200: map-get($clr-orange-list, \"200\");\n$clr-orange-300: map-get($clr-orange-list, \"300\");\n$clr-orange-400: map-get($clr-orange-list, \"400\");\n$clr-orange-500: map-get($clr-orange-list, \"500\");\n$clr-orange-600: map-get($clr-orange-list, \"600\");\n$clr-orange-700: map-get($clr-orange-list, \"700\");\n$clr-orange-800: map-get($clr-orange-list, \"800\");\n$clr-orange-900: map-get($clr-orange-list, \"900\");\n$clr-orange-a100: map-get($clr-orange-list, \"a100\");\n$clr-orange-a200: map-get($clr-orange-list, \"a200\");\n$clr-orange-a400: map-get($clr-orange-list, \"a400\");\n$clr-orange-a700: map-get($clr-orange-list, \"a700\");\n\n\n//\n// Deep orange\n//\n\n$clr-deep-orange-list: (\n \"base\": #ff5722,\n \"50\": #fbe9e7,\n \"100\": #ffccbc,\n \"200\": #ffab91,\n \"300\": #ff8a65,\n \"400\": #ff7043,\n \"500\": #ff5722,\n \"600\": #f4511e,\n \"700\": #e64a19,\n \"800\": #d84315,\n \"900\": #bf360c,\n \"a100\": #ff9e80,\n \"a200\": #ff6e40,\n \"a400\": #ff3d00,\n \"a700\": #dd2c00\n);\n\n$clr-deep-orange: map-get($clr-deep-orange-list, \"base\");\n\n$clr-deep-orange-50: map-get($clr-deep-orange-list, \"50\");\n$clr-deep-orange-100: map-get($clr-deep-orange-list, \"100\");\n$clr-deep-orange-200: map-get($clr-deep-orange-list, \"200\");\n$clr-deep-orange-300: map-get($clr-deep-orange-list, \"300\");\n$clr-deep-orange-400: map-get($clr-deep-orange-list, \"400\");\n$clr-deep-orange-500: map-get($clr-deep-orange-list, \"500\");\n$clr-deep-orange-600: map-get($clr-deep-orange-list, \"600\");\n$clr-deep-orange-700: map-get($clr-deep-orange-list, \"700\");\n$clr-deep-orange-800: map-get($clr-deep-orange-list, \"800\");\n$clr-deep-orange-900: map-get($clr-deep-orange-list, \"900\");\n$clr-deep-orange-a100: map-get($clr-deep-orange-list, \"a100\");\n$clr-deep-orange-a200: map-get($clr-deep-orange-list, \"a200\");\n$clr-deep-orange-a400: map-get($clr-deep-orange-list, \"a400\");\n$clr-deep-orange-a700: map-get($clr-deep-orange-list, \"a700\");\n\n\n//\n// Brown\n//\n\n$clr-brown-list: (\n \"base\": #795548,\n \"50\": #efebe9,\n \"100\": #d7ccc8,\n \"200\": #bcaaa4,\n \"300\": #a1887f,\n \"400\": #8d6e63,\n \"500\": #795548,\n \"600\": #6d4c41,\n \"700\": #5d4037,\n \"800\": #4e342e,\n \"900\": #3e2723,\n);\n\n$clr-brown: map-get($clr-brown-list, \"base\");\n\n$clr-brown-50: map-get($clr-brown-list, \"50\");\n$clr-brown-100: map-get($clr-brown-list, \"100\");\n$clr-brown-200: map-get($clr-brown-list, \"200\");\n$clr-brown-300: map-get($clr-brown-list, \"300\");\n$clr-brown-400: map-get($clr-brown-list, \"400\");\n$clr-brown-500: map-get($clr-brown-list, \"500\");\n$clr-brown-600: map-get($clr-brown-list, \"600\");\n$clr-brown-700: map-get($clr-brown-list, \"700\");\n$clr-brown-800: map-get($clr-brown-list, \"800\");\n$clr-brown-900: map-get($clr-brown-list, \"900\");\n\n\n//\n// Grey\n//\n\n$clr-grey-list: (\n \"base\": #9e9e9e,\n \"50\": #fafafa,\n \"100\": #f5f5f5,\n \"200\": #eeeeee,\n \"300\": #e0e0e0,\n \"400\": #bdbdbd,\n \"500\": #9e9e9e,\n \"600\": #757575,\n \"700\": #616161,\n \"800\": #424242,\n \"900\": #212121,\n);\n\n$clr-grey: map-get($clr-grey-list, \"base\");\n\n$clr-grey-50: map-get($clr-grey-list, \"50\");\n$clr-grey-100: map-get($clr-grey-list, \"100\");\n$clr-grey-200: map-get($clr-grey-list, \"200\");\n$clr-grey-300: map-get($clr-grey-list, \"300\");\n$clr-grey-400: map-get($clr-grey-list, \"400\");\n$clr-grey-500: map-get($clr-grey-list, \"500\");\n$clr-grey-600: map-get($clr-grey-list, \"600\");\n$clr-grey-700: map-get($clr-grey-list, \"700\");\n$clr-grey-800: map-get($clr-grey-list, \"800\");\n$clr-grey-900: map-get($clr-grey-list, \"900\");\n\n\n//\n// Blue grey\n//\n\n$clr-blue-grey-list: (\n \"base\": #607d8b,\n \"50\": #eceff1,\n \"100\": #cfd8dc,\n \"200\": #b0bec5,\n \"300\": #90a4ae,\n \"400\": #78909c,\n \"500\": #607d8b,\n \"600\": #546e7a,\n \"700\": #455a64,\n \"800\": #37474f,\n \"900\": #263238,\n);\n\n$clr-blue-grey: map-get($clr-blue-grey-list, \"base\");\n\n$clr-blue-grey-50: map-get($clr-blue-grey-list, \"50\");\n$clr-blue-grey-100: map-get($clr-blue-grey-list, \"100\");\n$clr-blue-grey-200: map-get($clr-blue-grey-list, \"200\");\n$clr-blue-grey-300: map-get($clr-blue-grey-list, \"300\");\n$clr-blue-grey-400: map-get($clr-blue-grey-list, \"400\");\n$clr-blue-grey-500: map-get($clr-blue-grey-list, \"500\");\n$clr-blue-grey-600: map-get($clr-blue-grey-list, \"600\");\n$clr-blue-grey-700: map-get($clr-blue-grey-list, \"700\");\n$clr-blue-grey-800: map-get($clr-blue-grey-list, \"800\");\n$clr-blue-grey-900: map-get($clr-blue-grey-list, \"900\");\n\n\n//\n// Black\n//\n\n$clr-black-list: (\n \"base\": #000\n);\n\n$clr-black: map-get($clr-black-list, \"base\");\n\n\n//\n// White\n//\n\n$clr-white-list: (\n \"base\": #fff\n);\n\n$clr-white: map-get($clr-white-list, \"base\");\n\n\n//\n// List for all Colors for looping\n//\n\n$clr-list-all: (\n \"red\": $clr-red-list,\n \"pink\": $clr-pink-list,\n \"purple\": $clr-purple-list,\n \"deep-purple\": $clr-deep-purple-list,\n \"indigo\": $clr-indigo-list,\n \"blue\": $clr-blue-list,\n \"light-blue\": $clr-light-blue-list,\n \"cyan\": $clr-cyan-list,\n \"teal\": $clr-teal-list,\n \"green\": $clr-green-list,\n \"light-green\": $clr-light-green-list,\n \"lime\": $clr-lime-list,\n \"yellow\": $clr-yellow-list,\n \"amber\": $clr-amber-list,\n \"orange\": $clr-orange-list,\n \"deep-orange\": $clr-deep-orange-list,\n \"brown\": $clr-brown-list,\n \"grey\": $clr-grey-list,\n \"blue-grey\": $clr-blue-grey-list,\n \"black\": $clr-black-list,\n \"white\": $clr-white-list\n);\n\n\n//\n// Typography\n//\n\n$clr-ui-display-4: $clr-grey-600;\n$clr-ui-display-3: $clr-grey-600;\n$clr-ui-display-2: $clr-grey-600;\n$clr-ui-display-1: $clr-grey-600;\n$clr-ui-headline: $clr-grey-900;\n$clr-ui-title: $clr-grey-900;\n$clr-ui-subhead-1: $clr-grey-900;\n$clr-ui-body-2: $clr-grey-900;\n$clr-ui-body-1: $clr-grey-900;\n$clr-ui-caption: $clr-grey-600;\n$clr-ui-menu: $clr-grey-900;\n$clr-ui-button: $clr-grey-900;\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Variables\n// ----------------------------------------------------------------------------\n\n// Operators\n$codehilite-operator: inherit;\n$codehilite-operator-word: inherit;\n\n// Generics\n$codehilite-generic-emph: #000000;\n$codehilite-generic-error: #AA0000;\n$codehilite-generic-heading: #999999;\n$codehilite-generic-output: #888888;\n$codehilite-generic-prompt: #555555;\n$codehilite-generic-strong: inherit;\n$codehilite-generic-subheading: #AAAAAA;\n$codehilite-generic-traceback: #AA0000;\n\n// Diffs\n$codehilite-diff-deleted: #FFDDDD;\n$codehilite-diff-inserted: #DDFFDD;\n\n// Keywords\n$codehilite-keyword: #3B78E7;\n$codehilite-keyword-constant: #A71D5D;\n$codehilite-keyword-declaration: #3B78E7;\n$codehilite-keyword-namespace: #3B78E7;\n$codehilite-keyword-pseudo: #A71D5D;\n$codehilite-keyword-reserved: #3E61A2;\n$codehilite-keyword-type: #3E61A2;\n\n// Comments\n$codehilite-comment: #999999;\n$codehilite-comment-multiline: #999999;\n$codehilite-comment-preproc: #666666;\n$codehilite-comment-single: #999999;\n$codehilite-comment-shebang: #999999;\n$codehilite-comment-special: #999999;\n\n// Names\n$codehilite-name-attribute: #C2185B;\n$codehilite-name-builtin: #C2185B;\n$codehilite-name-builtin-pseudo: #3E61A2;\n$codehilite-name-class: #C2185B;\n$codehilite-name-constant: #3E61A2;\n$codehilite-name-decorator: #666666;\n$codehilite-name-entity: #666666;\n$codehilite-name-exception: #C2185B;\n$codehilite-name-function: #C2185B;\n$codehilite-name-label: #3B5179;\n$codehilite-name-namespace: #EC407A;\n$codehilite-name-tag: #3B78E7;\n$codehilite-name-variable: #3E61A2;\n$codehilite-name-variable-class: #3E61A2;\n$codehilite-name-variable-instance: #3E61A2;\n$codehilite-name-variable-global: #3E61A2;\n$codehilite-name-extension: #EC407A;\n\n// Numbers\n$codehilite-literal-number: #E74C3C;\n$codehilite-literal-number-float: #E74C3C;\n$codehilite-literal-number-hex: #E74C3C;\n$codehilite-literal-number-integer: #E74C3C;\n$codehilite-literal-number-integer-long: #E74C3C;\n$codehilite-literal-number-oct: #E74C3C;\n\n// Strings\n$codehilite-literal-string: #0D904F;\n$codehilite-literal-string-backticks: #0D904F;\n$codehilite-literal-string-char: #0D904F;\n$codehilite-literal-string-doc: #999999;\n$codehilite-literal-string-double: #0D904F;\n$codehilite-literal-string-escape: #183691;\n$codehilite-literal-string-heredoc: #183691;\n$codehilite-literal-string-interpol: #183691;\n$codehilite-literal-string-other: #183691;\n$codehilite-literal-string-regex: #009926;\n$codehilite-literal-string-single: #0D904F;\n$codehilite-literal-string-symbol: #0D904F;\n\n// Miscellaneous\n$codehilite-error: #A61717;\n$codehilite-whitespace: transparent;\n\n// ----------------------------------------------------------------------------\n// Rules: syntax highlighting\n// ----------------------------------------------------------------------------\n\n// Codehilite extension\n.codehilite {\n\n // Operators\n .o { color: $codehilite-operator; }\n .ow { color: $codehilite-operator-word; }\n\n // Generics\n .ge { color: $codehilite-generic-emph; }\n .gr { color: $codehilite-generic-error; }\n .gh { color: $codehilite-generic-heading; }\n .go { color: $codehilite-generic-output; }\n .gp { color: $codehilite-generic-prompt; }\n .gs { color: $codehilite-generic-strong; }\n .gu { color: $codehilite-generic-subheading; }\n .gt { color: $codehilite-generic-traceback; }\n\n // Diffs\n .gd { background-color: $codehilite-diff-deleted; }\n .gi { background-color: $codehilite-diff-inserted; }\n\n // Keywords\n .k { color: $codehilite-keyword; }\n .kc { color: $codehilite-keyword-constant; }\n .kd { color: $codehilite-keyword-declaration; }\n .kn { color: $codehilite-keyword-namespace; }\n .kp { color: $codehilite-keyword-pseudo; }\n .kr { color: $codehilite-keyword-reserved; }\n .kt { color: $codehilite-keyword-type; }\n\n // Comments\n .c { color: $codehilite-comment; }\n .cm { color: $codehilite-comment-multiline; }\n .cp { color: $codehilite-comment-preproc; }\n .c1 { color: $codehilite-comment-single; }\n .ch { color: $codehilite-comment-shebang; }\n .cs { color: $codehilite-comment-special; }\n\n // Names\n .na { color: $codehilite-name-attribute; }\n .nb { color: $codehilite-name-builtin; }\n .bp { color: $codehilite-name-builtin-pseudo; }\n .nc { color: $codehilite-name-class; }\n .no { color: $codehilite-name-constant; }\n .nd { color: $codehilite-name-entity; }\n .ni { color: $codehilite-name-entity; }\n .ne { color: $codehilite-name-exception; }\n .nf { color: $codehilite-name-function; }\n .nl { color: $codehilite-name-label; }\n .nn { color: $codehilite-name-namespace; }\n .nt { color: $codehilite-name-tag; }\n .nv { color: $codehilite-name-variable; }\n .vc { color: $codehilite-name-variable-class; }\n .vg { color: $codehilite-name-variable-global; }\n .vi { color: $codehilite-name-variable-instance; }\n .nx { color: $codehilite-name-extension; }\n\n // Numbers\n .m { color: $codehilite-literal-number; }\n .mf { color: $codehilite-literal-number-float; }\n .mh { color: $codehilite-literal-number-hex; }\n .mi { color: $codehilite-literal-number-integer; }\n .il { color: $codehilite-literal-number-integer-long; }\n .mo { color: $codehilite-literal-number-oct; }\n\n // Strings\n .s { color: $codehilite-literal-string; }\n .sb { color: $codehilite-literal-string-backticks; }\n .sc { color: $codehilite-literal-string-char; }\n .sd { color: $codehilite-literal-string-doc; }\n .s2 { color: $codehilite-literal-string-double; }\n .se { color: $codehilite-literal-string-escape; }\n .sh { color: $codehilite-literal-string-heredoc; }\n .si { color: $codehilite-literal-string-interpol; }\n .sx { color: $codehilite-literal-string-other; }\n .sr { color: $codehilite-literal-string-regex; }\n .s1 { color: $codehilite-literal-string-single; }\n .ss { color: $codehilite-literal-string-symbol; }\n\n // Miscellaneous\n .err { color: $codehilite-error; }\n .w { color: $codehilite-whitespace; }\n\n // Highlighted lines\n .hll {\n display: block;\n margin: 0 px2em(-16px, 13.6px);\n padding: 0 px2em(16px, 13.6px);\n background-color: transparentize($clr-yellow-500, 0.5);\n }\n}\n\n// ----------------------------------------------------------------------------\n// Rules: layout\n// ----------------------------------------------------------------------------\n\n// Block with line numbers\n.codehilitetable {\n display: block;\n overflow: hidden;\n\n // Set table elements to block layout, because otherwise the whole flexbox\n // hacking won't work correctly\n tbody,\n td {\n display: block;\n padding: 0;\n }\n\n // We need to use flexbox layout, because otherwise it's not possible to\n // make the code container scroll while keeping the line numbers static\n tr {\n display: flex;\n }\n\n // The pre tags are nested inside a table, so we need to remove the\n // margin because it collapses below all the overflows\n pre {\n margin: 0;\n }\n\n // Disable user selection, so code can be easily copied without\n // accidentally also copying the line numbers\n .linenos {\n padding: px2rem(10.5px) px2em(16px, 13.6px);\n padding-right: 0;\n font-size: px2em(13.6px);\n background-color: var(--md-code-bg-color);\n user-select: none;\n }\n\n // Add spacing to line number container\n .linenodiv {\n padding-right: px2em(8px, 13.6px);\n box-shadow: inset px2rem(-1px) 0 var(--md-default-fg-color--lightest);\n\n // Reset spacings\n pre {\n color: var(--md-default-fg-color--lighter);\n text-align: right;\n }\n }\n\n // The table cell containing the code container wrapper and code should\n // stretch horizontally to the remaining space\n .code {\n flex: 1;\n overflow: hidden;\n }\n}\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // Block with line numbers\n .codehilitetable {\n margin: 1em 0;\n direction: ltr;\n border-radius: px2rem(2px);\n\n // Remove rounded borders\n code {\n border-radius: 0;\n }\n }\n\n // [mobile -]: Stretch to whole width\n @include break-to-device(mobile) {\n\n // Full-width container\n > .codehilite {\n margin: 1em px2rem(-16px);\n\n // Stretch highlighted lines\n .hll {\n margin: 0 px2rem(-16px);\n padding: 0 px2rem(16px);\n }\n\n // Remove rounded borders\n code {\n border-radius: 0;\n }\n }\n\n // Full-width container on top-level\n > .codehilitetable {\n margin: 1em px2rem(-16px);\n border-radius: 0;\n\n // Stretch highlighted lines\n .hll {\n margin: 0 px2rem(-16px);\n padding: 0 px2rem(16px);\n }\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Icon definitions\n:root {\n --md-footnotes-icon: svg-load(\"@mdi/svg/svg/keyboard-return.svg\");\n}\n\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // All footnote references\n [id^=\"fnref:\"] {\n display: inline-block;\n\n // Targeted anchor\n &:target {\n margin-top: -1 * px2rem(48px + 12px + 16px);\n padding-top: px2rem(48px + 12px + 16px);\n pointer-events: none;\n }\n }\n\n // All footnote back references\n [id^=\"fn:\"] {\n\n // Add spacing to anchor for offset\n &::before {\n display: none;\n height: 0;\n content: \"\";\n }\n\n // Targeted anchor\n &:target::before {\n display: block;\n margin-top: -1 * px2rem(48px + 12px + 10px);\n padding-top: px2rem(48px + 12px + 10px);\n pointer-events: none;\n }\n }\n\n // Footnotes extension\n .footnote {\n color: var(--md-default-fg-color--light);\n font-size: ms(-1);\n\n // Remove additional spacing on footnotes\n ol {\n margin-left: 0;\n }\n\n // Footnote\n li {\n transition: color 125ms;\n\n // Darken color for targeted footnote\n &:target {\n color: var(--md-default-fg-color);\n }\n\n // Remove spacing on first element\n :first-child {\n margin-top: 0;\n }\n\n // Make back references visible on container hover\n &:hover .footnote-backref,\n &:target .footnote-backref {\n transform: translateX(0);\n opacity: 1;\n }\n\n // Hovered back reference\n &:hover .footnote-backref:hover {\n color: var(--md-accent-fg-color);\n }\n }\n }\n\n // Footnote reference\n .footnote-ref {\n display: inline-block;\n pointer-events: initial;\n }\n\n // Footnote back reference\n .footnote-backref {\n display: inline-block;\n color: var(--md-primary-fg-color);\n // Hack: remove Unicode arrow for icon\n font-size: 0;\n vertical-align: text-bottom;\n transform: translateX(px2rem(5px));\n opacity: 0;\n transition:\n color 250ms,\n transform 250ms 250ms,\n opacity 125ms 250ms;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n transform: translateX(px2rem(-5px));\n }\n\n // Back reference icon\n &::before {\n display: inline-block;\n width: px2rem(16px);\n height: px2rem(16px);\n background-color: currentColor;\n mask-image: var(--md-footnotes-icon);\n content: \"\";\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n\n // Flip icon vertically\n svg {\n transform: scaleX(-1)\n }\n }\n }\n\n // Always show for print\n @media print {\n color: var(--md-primary-fg-color);\n transform: translateX(0);\n opacity: 1;\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // Permalinks extension\n .headerlink {\n display: inline-block;\n margin-left: px2rem(10px);\n // Hack: if we don't set visibility hidden, the text content of the node\n // will include the headerlink character, which is why Google indexes them.\n visibility: hidden;\n opacity: 0;\n transition:\n color 250ms,\n visibility 0ms 500ms,\n opacity 125ms;\n\n // Adjust for RTL languages\n [dir=\"rtl\"] & {\n margin-right: px2rem(10px);\n margin-left: initial;\n }\n\n // Higher specificity for color due to palettes integration\n html body & {\n color: var(--md-default-fg-color--lighter);\n }\n\n // Hide for print\n @media print {\n display: none;\n }\n }\n\n // Make permalink visible on hover\n :hover > .headerlink,\n :target > .headerlink,\n .headerlink:focus {\n visibility: visible;\n opacity: 1;\n transition:\n color 250ms,\n visibility 0ms,\n opacity 125ms;\n }\n\n // Active or targeted permalink\n :target > .headerlink,\n .headerlink:focus,\n .headerlink:hover {\n color: var(--md-accent-fg-color);\n }\n\n // Correct anchor offset for link blurring\n @each $level, $delta in (\n h1 h2 h3: 8px,\n h4: 9px,\n h5 h6: 12px,\n ) {\n %#{nth($level, 1)} {\n\n // Un-targeted anchor\n &::before {\n display: block;\n margin-top: -1 * px2rem($delta);\n padding-top: px2rem($delta);\n content: \"\";\n }\n\n // Targeted anchor (48px from header, 12px from sidebar offset)\n &:target::before {\n margin-top: -1 * px2rem(48px + 12px + $delta);\n padding-top: px2rem(48px + 12px + $delta);\n }\n }\n\n // Define levels\n @for $n from 1 through length($level) {\n #{nth($level, $n)}[id] {\n @extend %#{nth($level, 1)};\n }\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// stylelint-disable selector-class-pattern\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // MathJax integration - add padding to omit vertical scrollbar\n .MJXc-display {\n margin: 0.75em 0;\n padding: 0.75em 0;\n overflow: auto;\n touch-action: auto;\n }\n\n // Stretch top-level containers\n > p > .MJXc-display {\n\n // [mobile -]: Stretch to whole width\n @include break-to-device(mobile) {\n margin: 0.75em px2rem(-16px);\n padding: 0.25em px2rem(16px);\n }\n }\n\n // Remove outline on tab index\n .MathJax_CHTML {\n outline: 0;\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // Deletions, additions and comments\n del.critic,\n ins.critic,\n .critic.comment {\n padding: 0 px2em(4px, 16px);\n border-radius: px2rem(2px);\n box-decoration-break: clone;\n }\n\n // Deletion\n del.critic {\n background-color: $codehilite-diff-deleted;\n }\n\n // Addition\n ins.critic {\n background-color: $codehilite-diff-inserted;\n }\n\n // Comment\n .critic.comment {\n color: $codehilite-comment;\n\n // Comment opening mark\n &::before {\n content: \"/* \";\n }\n\n // Comment closing mark\n &::after {\n content: \" */\";\n }\n }\n\n // Block\n .critic.block {\n display: block;\n margin: 1em 0;\n padding-right: px2rem(16px);\n padding-left: px2rem(16px);\n overflow: auto;\n box-shadow: none;\n\n // Decrease spacing on first element\n :first-child {\n margin-top: 0.5em;\n }\n\n // Decrease spacing on last element\n :last-child {\n margin-bottom: 0.5em;\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Icon definitions\n:root {\n --md-details-icon: svg-load(\"@mdi/svg/svg/chevron-right.svg\");\n}\n\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // Details extension\n details {\n @extend .admonition;\n\n display: block;\n padding-top: 0;\n overflow: visible;\n\n\n // Rotate title icon\n &[open] > summary::after {\n transform: rotate(90deg);\n }\n\n // Remove bottom spacing for closed details\n &:not([open]) {\n padding-bottom: 0;\n\n // We cannot set overflow: hidden, as the outline would not be visible,\n // so we need to correct the border radius\n > summary {\n border-bottom-right-radius: px2rem(2px);\n }\n }\n\n // Hack: omit margin collapse\n &::after {\n display: table;\n content: \"\";\n }\n }\n\n // Details title\n summary {\n @extend .admonition-title;\n\n display: block;\n min-height: px2rem(20px);\n padding: px2rem(8px) px2rem(36px) px2rem(8px) px2rem(40px);\n border-top-right-radius: px2rem(2px);\n cursor: pointer;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n padding: px2rem(8px) px2rem(40px) px2rem(8px) px2rem(36px);\n }\n\n // Remove default details marker\n &::-webkit-details-marker {\n display: none;\n }\n\n // Details marker\n &::after {\n position: absolute;\n top: px2rem(8px);\n right: px2rem(8px);\n width: px2rem(20px);\n height: px2rem(20px);\n background-color: currentColor;\n mask-image: var(--md-details-icon);\n transform: rotate(0deg);\n transition: transform 250ms;\n content: \"\";\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: initial;\n left: px2rem(8px);\n transform: rotate(180deg);\n }\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // Emojis\n img.emojione,\n img.twemoji,\n img.gemoji {\n width: px2em(18px);\n vertical-align: -15%;\n }\n\n // Inlined SVG icons via mkdocs-material-extensions\n span.twemoji {\n display: inline-block;\n height: px2em(18px);\n vertical-align: text-top;\n\n // Icon\n svg {\n width: px2em(18px);\n fill: currentColor;\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// When pymdownx.superfences is enabled but codehilite is disabled,\n// pymdownx.highlight will be used. When this happens, the outer container\n// and tables get this class names by default\n.highlight {\n @extend .codehilite;\n\n // Inline line numbers\n [data-linenos]::before {\n position: sticky;\n left: px2em(-16px, 13.6px);\n float: left;\n margin-right: px2em(16px, 13.6px);\n margin-left: px2em(-16px, 13.6px);\n padding-left: px2em(16px, 13.6px);\n color: var(--md-default-fg-color--lighter);\n background-color: var(--md-code-bg-color);\n box-shadow: inset px2rem(-1px) 0 var(--md-default-fg-color--lightest);\n content: attr(data-linenos);\n user-select: none;\n }\n}\n\n// Same as above, but for code blocks with line numbers enabled\n.highlighttable {\n @extend .codehilitetable;\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // Tabbed block content\n .tabbed-content {\n display: none;\n order: 99;\n width: 100%;\n box-shadow: 0 px2rem(-1px) var(--md-default-fg-color--lightest);\n\n // Mirror old superfences behavior, if there's only a single code block.\n > .codehilite:only-child pre,\n > .codehilitetable:only-child,\n > .highlight:only-child pre,\n > .highlighttable:only-child {\n margin: 0;\n\n // Remove rounded borders at the top\n > code {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n }\n\n // Nested tabs\n > .tabbed-set {\n margin: 0;\n }\n }\n\n // Tabbed block container\n .tabbed-set {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n margin: 1em 0;\n border-radius: px2rem(2px);\n\n // Hide radio buttons\n > input {\n display: none;\n\n // Active tab label\n &:checked + label {\n color: var(--md-accent-fg-color);\n border-color: var(--md-accent-fg-color);\n\n // Show tabbed block content\n & + .tabbed-content {\n display: block;\n }\n }\n }\n\n // Tab label\n > label {\n z-index: 1;\n width: auto;\n padding: px2rem(12px) 1.25em px2rem(10px);\n color: var(--md-default-fg-color--light);\n font-weight: 700;\n font-size: ms(-1);\n border-bottom: px2rem(2px) solid transparent;\n cursor: pointer;\n transition: color 125ms;\n\n // Hovered tab label\n html &:hover {\n color: var(--md-accent-fg-color);\n }\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Icon definitions\n:root {\n --md-tasklist-icon: svg-load(\"@mdi/svg/svg/checkbox-blank-circle.svg\");\n --md-tasklist-icon--checked: svg-load(\"@mdi/svg/svg/check-circle.svg\");\n}\n\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n // Remove list icon on task items\n .task-list-item {\n position: relative;\n list-style-type: none;\n\n // Make checkbox items align with normal list items, but position\n // everything in ems for correct layout at smaller font sizes\n [type=\"checkbox\"] {\n position: absolute;\n top: 0.45em;\n left: -2em;\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: -2em;\n left: initial;\n }\n }\n }\n\n // Wrapper for list controls, in case custom checkboxes are enabled\n .task-list-control {\n\n // Checkbox icon in unchecked state\n .task-list-indicator::before {\n position: absolute;\n top: 0.15em;\n left: px2em(-24px);\n width: px2em(20px);\n height: px2em(20px);\n background-color: var(--md-default-fg-color--lightest);\n mask-image: var(--md-tasklist-icon);\n content: \"\";\n\n // Adjust for right-to-left languages\n [dir=\"rtl\"] & {\n right: px2em(-24px);\n left: initial;\n }\n }\n\n // Checkbox icon in checked state\n [type=\"checkbox\"]:checked + .task-list-indicator::before {\n background-color: $clr-green-a400;\n mask-image: var(--md-tasklist-icon--checked);\n }\n\n // Hide original checkbox behind icon\n [type=\"checkbox\"] {\n z-index: -1;\n opacity: 0;\n }\n }\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/theme/material/assets/stylesheets/main.css b/docs/theme/material/assets/stylesheets/main.css new file mode 100644 index 00000000..e3330aeb --- /dev/null +++ b/docs/theme/material/assets/stylesheets/main.css @@ -0,0 +1,3076 @@ +@charset "UTF-8"; +html { + box-sizing: border-box; +} + +*, +*::before, +*::after { + box-sizing: inherit; +} + +html { + -webkit-text-size-adjust: none; + -moz-text-size-adjust: none; + -ms-text-size-adjust: none; + text-size-adjust: none; +} + +body { + margin: 0; +} + +hr { + box-sizing: content-box; + overflow: visible; +} + +a, +button, +label, +input { + -webkit-tap-highlight-color: transparent; +} + +a { + color: inherit; + text-decoration: none; +} + +small { + font-size: 80%; +} + +sub, +sup { + position: relative; + font-size: 80%; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +img { + border-style: none; +} + +table { + border-collapse: separate; + border-spacing: 0; +} + +td, +th { + font-weight: normal; + vertical-align: top; +} + +button { + margin: 0; + padding: 0; + font-size: inherit; + background: transparent; + border: 0; +} + +input { + border: 0; + outline: 0; +} + +:root { + --md-default-fg-color: hsla(0, 0%, 0%, 0.87); + --md-default-fg-color--light: hsla(0, 0%, 0%, 0.54); + --md-default-fg-color--lighter: hsla(0, 0%, 0%, 0.26); + --md-default-fg-color--lightest: hsla(0, 0%, 0%, 0.07); + --md-default-bg-color: hsla(0, 0%, 100%, 1); + --md-default-bg-color--light: hsla(0, 0%, 100%, 0.7); + --md-default-bg-color--lighter: hsla(0, 0%, 100%, 0.3); + --md-default-bg-color--lightest: hsla(0, 0%, 100%, 0.12); + --md-primary-fg-color: hsla(231deg, 48%, 48%, 1); + --md-primary-fg-color--light: hsla(230deg, 44%, 64%, 1); + --md-primary-fg-color--dark: hsla(232deg, 54%, 41%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); + --md-accent-fg-color: hsla(231deg, 99%, 66%, 1); + --md-accent-fg-color--transparent: hsla(231deg, 99%, 66%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); + --md-code-bg-color: hsla(0, 0%, 96%, 1); + --md-code-fg-color: hsla(200, 18%, 26%, 1); +} + +.md-icon svg { + display: block; + width: 1.2rem; + height: 1.2rem; + margin: 0 auto; + fill: currentColor; +} + +body { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +body, +input { + color: var(--md-default-fg-color); + font-feature-settings: "kern", "liga"; + font-family: -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; +} + +code, +pre, +kbd { + color: var(--md-default-fg-color); + font-feature-settings: "kern"; + font-family: SFMono-Regular, Consolas, Menlo, monospace; +} + +.md-typeset { + font-size: 0.8rem; + line-height: 1.6; + -webkit-print-color-adjust: exact; + color-adjust: exact; +} +.md-typeset p, +.md-typeset ul, +.md-typeset ol, +.md-typeset blockquote { + margin: 1em 0; +} +.md-typeset h1 { + margin: 0 0 2rem; + color: var(--md-default-fg-color--light); + font-weight: 300; + font-size: 1.5625rem; + line-height: 1.3; + letter-spacing: -0.01em; +} +.md-typeset h2 { + margin: 2rem 0 0.8rem; + font-weight: 300; + font-size: 1.25rem; + line-height: 1.4; + letter-spacing: -0.01em; +} +.md-typeset h3 { + margin: 1.6rem 0 0.8rem; + font-weight: 400; + font-size: 1rem; + line-height: 1.5; + letter-spacing: -0.01em; +} +.md-typeset h2 + h3 { + margin-top: 0.8rem; +} +.md-typeset h4 { + margin: 0.8rem 0; + font-weight: 700; + font-size: 0.8rem; + letter-spacing: -0.01em; +} +.md-typeset h5, +.md-typeset h6 { + margin: 0.8rem 0; + color: var(--md-default-fg-color--light); + font-weight: 700; + font-size: 0.64rem; + letter-spacing: -0.01em; +} +.md-typeset h5 { + text-transform: uppercase; +} +.md-typeset hr { + margin: 1.5em 0; + border-bottom: 0.05rem dotted var(--md-default-fg-color--lighter); +} +.md-typeset a { + color: var(--md-primary-fg-color); + word-break: break-word; +} +.md-typeset a, .md-typeset a::before { + transition: color 125ms; +} +.md-typeset a:focus, .md-typeset a:hover { + color: var(--md-accent-fg-color); +} +.md-typeset code, +.md-typeset pre, +.md-typeset kbd { + color: var(--md-code-fg-color); + direction: ltr; +} +@media print { + .md-typeset code, +.md-typeset pre, +.md-typeset kbd { + white-space: pre-wrap; + } +} +.md-typeset code { + padding: 0 0.2941176471em; + font-size: 0.85em; + word-break: break-word; + background-color: var(--md-code-bg-color); + border-radius: 0.1rem; + -webkit-box-decoration-break: clone; + box-decoration-break: clone; +} +.md-typeset h1 code, +.md-typeset h2 code, +.md-typeset h3 code, +.md-typeset h4 code, +.md-typeset h5 code, +.md-typeset h6 code { + margin: initial; + padding: initial; + background-color: transparent; + box-shadow: none; +} +.md-typeset a > code { + color: currentColor; +} +.md-typeset pre { + position: relative; + margin: 1em 0; + line-height: 1.4; +} +.md-typeset pre > code { + display: block; + margin: 0; + padding: 0.525rem 1.1764705882em; + overflow: auto; + word-break: normal; + box-shadow: none; + -webkit-box-decoration-break: slice; + box-decoration-break: slice; + touch-action: auto; +} +.md-typeset pre > code::-webkit-scrollbar { + width: 0.2rem; + height: 0.2rem; +} +.md-typeset pre > code::-webkit-scrollbar-thumb { + background-color: var(--md-default-fg-color--lighter); +} +.md-typeset pre > code::-webkit-scrollbar-thumb:hover { + background-color: var(--md-accent-fg-color); +} +@media screen and (max-width: 44.9375em) { + .md-typeset > pre { + margin: 1em -0.8rem; + } + .md-typeset > pre code { + border-radius: 0; + } +} +.md-typeset kbd { + display: inline-block; + padding: 0 0.6666666667em; + font-size: 0.75em; + line-height: 1.5; + vertical-align: text-top; + word-break: break-word; + border-radius: 0.1rem; + box-shadow: 0 0.1rem 0 0.05rem var(--md-default-fg-color--lighter), 0 0.1rem 0 var(--md-default-fg-color--lighter), inset 0 -0.1rem 0.2rem var(--md-default-bg-color); +} +.md-typeset mark { + padding: 0 0.25em; + word-break: break-word; + background-color: rgba(255, 235, 59, 0.5); + border-radius: 0.1rem; + -webkit-box-decoration-break: clone; + box-decoration-break: clone; +} +.md-typeset abbr { + text-decoration: none; + border-bottom: 0.05rem dotted var(--md-default-fg-color--light); + cursor: help; +} +.md-typeset small { + opacity: 0.75; +} +.md-typeset sup, +.md-typeset sub { + margin-left: 0.078125em; +} +[dir=rtl] .md-typeset sup, +[dir=rtl] .md-typeset sub { + margin-right: 0.078125em; + margin-left: initial; +} +.md-typeset blockquote { + padding-left: 0.6rem; + color: var(--md-default-fg-color--light); + border-left: 0.2rem solid var(--md-default-fg-color--lighter); +} +[dir=rtl] .md-typeset blockquote { + padding-right: 0.6rem; + padding-left: initial; + border-right: 0.2rem solid var(--md-default-fg-color--lighter); + border-left: initial; +} +.md-typeset ul { + list-style-type: disc; +} +.md-typeset ul, +.md-typeset ol { + margin-left: 0.625em; + padding: 0; +} +[dir=rtl] .md-typeset ul, +[dir=rtl] .md-typeset ol { + margin-right: 0.625em; + margin-left: initial; +} +.md-typeset ul ol, +.md-typeset ol ol { + list-style-type: lower-alpha; +} +.md-typeset ul ol ol, +.md-typeset ol ol ol { + list-style-type: lower-roman; +} +.md-typeset ul li, +.md-typeset ol li { + margin-bottom: 0.5em; + margin-left: 1.25em; +} +[dir=rtl] .md-typeset ul li, +[dir=rtl] .md-typeset ol li { + margin-right: 1.25em; + margin-left: initial; +} +.md-typeset ul li p, +.md-typeset ul li blockquote, +.md-typeset ol li p, +.md-typeset ol li blockquote { + margin: 0.5em 0; +} +.md-typeset ul li:last-child, +.md-typeset ol li:last-child { + margin-bottom: 0; +} +.md-typeset ul li ul, +.md-typeset ul li ol, +.md-typeset ol li ul, +.md-typeset ol li ol { + margin: 0.5em 0 0.5em 0.625em; +} +[dir=rtl] .md-typeset ul li ul, +[dir=rtl] .md-typeset ul li ol, +[dir=rtl] .md-typeset ol li ul, +[dir=rtl] .md-typeset ol li ol { + margin-right: 0.625em; + margin-left: initial; +} +.md-typeset dd { + margin: 1em 0 1em 1.875em; +} +[dir=rtl] .md-typeset dd { + margin-right: 1.875em; + margin-left: initial; +} +.md-typeset iframe, +.md-typeset img, +.md-typeset svg { + max-width: 100%; + height: auto; +} +.md-typeset table:not([class]) { + display: inline-block; + max-width: 100%; + overflow: auto; + font-size: 0.64rem; + background: var(--md-default-bg-color); + border-radius: 0.1rem; + box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.05rem rgba(0, 0, 0, 0.1); + touch-action: auto; +} +.md-typeset table:not([class]) + * { + margin-top: 1.5em; +} +.md-typeset table:not([class]) th:not([align]), +.md-typeset table:not([class]) td:not([align]) { + text-align: left; +} +[dir=rtl] .md-typeset table:not([class]) th:not([align]), +[dir=rtl] .md-typeset table:not([class]) td:not([align]) { + text-align: right; +} +.md-typeset table:not([class]) th { + min-width: 5rem; + padding: 0.6rem 0.8rem; + color: var(--md-default-bg-color); + vertical-align: top; + background-color: var(--md-default-fg-color--light); +} +.md-typeset table:not([class]) td { + padding: 0.6rem 0.8rem; + vertical-align: top; + border-top: 0.05rem solid var(--md-default-fg-color--lightest); +} +.md-typeset table:not([class]) tr { + transition: background-color 125ms; +} +.md-typeset table:not([class]) tr:hover { + background-color: rgba(0, 0, 0, 0.035); + box-shadow: 0 0.05rem 0 var(--md-default-bg-color) inset; +} +.md-typeset table:not([class]) tr:first-child td { + border-top: 0; +} +.md-typeset table:not([class]) a { + word-break: normal; +} +.md-typeset__scrollwrap { + margin: 1em -0.8rem; + overflow-x: auto; + touch-action: auto; +} +.md-typeset__table { + display: inline-block; + margin-bottom: 0.5em; + padding: 0 0.8rem; +} +.md-typeset__table table { + display: table; + width: 100%; + margin: 0; + overflow: hidden; +} + +html { + height: 100%; + overflow-x: hidden; + font-size: 125%; + background-color: var(--md-default-bg-color); +} +@media screen and (min-width: 100em) { + html { + font-size: 137.5%; + } +} +@media screen and (min-width: 125em) { + html { + font-size: 150%; + } +} + +body { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + min-height: 100%; + font-size: 0.5rem; +} +@media screen and (max-width: 59.9375em) { + body[data-md-state=lock] { + position: fixed; + } +} +@media print { + body { + display: block; + } +} + +hr { + display: block; + height: 0.05rem; + padding: 0; + border: 0; +} + +.md-grid { + max-width: 61rem; + margin-right: auto; + margin-left: auto; +} + +.md-container { + display: flex; + flex-direction: column; + flex-grow: 1; +} +@media print { + .md-container { + display: block; + } +} + +.md-main { + flex-grow: 1; +} +.md-main__inner { + display: flex; + height: 100%; + margin-top: 1.5rem; +} + +.md-ellipsis { + display: block; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.md-toggle { + display: none; +} + +.md-overlay { + position: fixed; + top: 0; + z-index: 3; + width: 0; + height: 0; + background-color: var(--md-default-fg-color--light); + opacity: 0; + transition: width 0ms 250ms, height 0ms 250ms, opacity 250ms; +} +@media screen and (max-width: 76.1875em) { + [data-md-toggle=drawer]:checked ~ .md-overlay { + width: 100%; + height: 100%; + opacity: 1; + transition: width 0ms, height 0ms, opacity 250ms; + } +} + +.md-skip { + position: fixed; + z-index: -1; + margin: 0.5rem; + padding: 0.3rem 0.5rem; + color: var(--md-default-bg-color); + font-size: 0.64rem; + background-color: var(--md-default-fg-color); + border-radius: 0.1rem; + transform: translateY(0.4rem); + opacity: 0; +} +.md-skip:focus { + z-index: 10; + transform: translateY(0); + opacity: 1; + transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1), opacity 175ms 75ms; +} + +@page { + margin: 25mm; +} +.md-announce { + overflow: auto; + background-color: var(--md-default-fg-color); +} +.md-announce__inner { + margin: 0.6rem auto; + padding: 0 0.8rem; + color: var(--md-default-bg-color); + font-size: 0.7rem; +} +@media print { + .md-announce { + display: none; + } +} + +.md-typeset .md-button { + display: inline-block; + padding: 0.625em 2em; + color: var(--md-primary-fg-color); + font-weight: 700; + border: 0.1rem solid currentColor; + border-radius: 0.1rem; + transition: color 125ms, background-color 125ms, border-color 125ms; +} +.md-typeset .md-button--primary { + color: var(--md-primary-bg-color); + background-color: var(--md-primary-fg-color); + border-color: var(--md-primary-fg-color); +} +.md-typeset .md-button:focus, .md-typeset .md-button:hover { + color: var(--md-accent-bg-color); + background-color: var(--md-accent-fg-color); + border-color: var(--md-accent-fg-color); +} + +.md-clipboard { + position: absolute; + top: 0.4rem; + right: 0.5em; + z-index: 1; + width: 1.5em; + height: 1.5em; + color: var(--md-default-fg-color--lightest); + border-radius: 0.1rem; + cursor: pointer; + transition: color 125ms; +} +@media print { + .md-clipboard { + display: none; + } +} +.md-clipboard svg { + width: 1.125em; + height: 1.125em; +} +pre:hover .md-clipboard { + color: var(--md-default-fg-color--light); +} +pre .md-clipboard:focus, pre .md-clipboard:hover { + color: var(--md-accent-fg-color); +} + +.md-content { + flex: 1; + max-width: 100%; +} +@media screen and (min-width: 60em) and (max-width: 76.1875em) { + .md-content { + max-width: calc(100% - 12.1rem); + } +} +@media screen and (min-width: 76.25em) { + .md-content { + max-width: calc(100% - 12.1rem * 2); + } +} +.md-content__inner { + margin: 0 0.8rem 1.2rem; + padding-top: 0.6rem; +} +@media screen and (min-width: 76.25em) { + .md-content__inner { + margin-right: 1.2rem; + margin-left: 1.2rem; + } +} +.md-content__inner::before { + display: block; + height: 0.4rem; + content: ""; +} +.md-content__inner > :last-child { + margin-bottom: 0; +} +.md-content__button { + float: right; + margin: 0.4rem 0; + margin-left: 0.4rem; + padding: 0; +} +[dir=rtl] .md-content__button { + float: left; + margin-right: 0.4rem; + margin-left: initial; +} +[dir=rtl] .md-content__button svg { + transform: scaleX(-1); +} +.md-typeset .md-content__button { + color: var(--md-default-fg-color--lighter); +} +.md-content__button svg { + display: inline; + vertical-align: top; +} +@media print { + .md-content__button { + display: none; + } +} + +.md-dialog { + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); + position: fixed; + right: 0.8rem; + bottom: 0.8rem; + left: initial; + z-index: 2; + display: block; + min-width: 11.1rem; + padding: 0.4rem 0.6rem; + color: var(--md-default-bg-color); + font-size: 0.7rem; + background: var(--md-default-fg-color); + border: none; + border-radius: 0.1rem; + transform: translateY(100%); + opacity: 0; + transition: transform 0ms 400ms, opacity 400ms; +} +[dir=rtl] .md-dialog { + right: initial; + left: 0.8rem; +} +.md-dialog[data-md-state=open] { + transform: translateY(0); + opacity: 1; + transition: transform 400ms cubic-bezier(0.075, 0.85, 0.175, 1), opacity 400ms; +} +@media print { + .md-dialog { + display: none; + } +} + +.md-header { + position: -webkit-sticky; + position: sticky; + top: 0; + right: 0; + left: 0; + z-index: 2; + height: 2.4rem; + color: var(--md-primary-bg-color); + background-color: var(--md-primary-fg-color); + box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0), 0 0.2rem 0.4rem rgba(0, 0, 0, 0); + transition: color 250ms, background-color 250ms; +} +.no-js .md-header { + box-shadow: none; + transition: none; +} +.md-header[data-md-state=shadow] { + box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.1), 0 0.2rem 0.4rem rgba(0, 0, 0, 0.2); + transition: color 250ms, background-color 250ms, box-shadow 250ms; +} +@media print { + .md-header { + display: none; + } +} + +.md-header-nav { + display: flex; + padding: 0 0.2rem; +} +.md-header-nav__button { + position: relative; + z-index: 1; + margin: 0.2rem; + padding: 0.4rem; + cursor: pointer; + transition: opacity 250ms; +} +[dir=rtl] .md-header-nav__button svg { + transform: scaleX(-1); +} +.md-header-nav__button:focus, .md-header-nav__button:hover { + opacity: 0.7; +} +.md-header-nav__button.md-logo { + margin: 0.2rem; + padding: 0.4rem; +} +.md-header-nav__button.md-logo img, +.md-header-nav__button.md-logo svg { + display: block; + width: 1.2rem; + height: 1.2rem; + fill: currentColor; +} +.no-js .md-header-nav__button[for=__search] { + display: none; +} +@media screen and (min-width: 60em) { + .md-header-nav__button[for=__search] { + display: none; + } +} +@media screen and (max-width: 76.1875em) { + .md-header-nav__button.md-logo { + display: none; + } +} +@media screen and (min-width: 76.25em) { + .md-header-nav__button[for=__drawer] { + display: none; + } +} +.md-header-nav__topic { + position: absolute; + width: 100%; + transition: transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1), opacity 150ms; +} +.md-header-nav__topic + .md-header-nav__topic { + z-index: -1; + transform: translateX(1.25rem); + opacity: 0; + transition: transform 400ms cubic-bezier(1, 0.7, 0.1, 0.1), opacity 150ms; + pointer-events: none; +} +[dir=rtl] .md-header-nav__topic + .md-header-nav__topic { + transform: translateX(-1.25rem); +} +.no-js .md-header-nav__topic { + position: initial; +} +.no-js .md-header-nav__topic + .md-header-nav__topic { + display: none; +} +.md-header-nav__title { + flex-grow: 1; + padding: 0 1rem; + font-size: 0.9rem; + line-height: 2.4rem; +} +.md-header-nav__title[data-md-state=active] .md-header-nav__topic { + z-index: -1; + transform: translateX(-1.25rem); + opacity: 0; + transition: transform 400ms cubic-bezier(1, 0.7, 0.1, 0.1), opacity 150ms; + pointer-events: none; +} +[dir=rtl] .md-header-nav__title[data-md-state=active] .md-header-nav__topic { + transform: translateX(1.25rem); +} +.md-header-nav__title[data-md-state=active] .md-header-nav__topic + .md-header-nav__topic { + z-index: 0; + transform: translateX(0); + opacity: 1; + transition: transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1), opacity 150ms; + pointer-events: initial; +} +.md-header-nav__title > .md-header-nav__ellipsis { + position: relative; + width: 100%; + height: 100%; +} +.md-header-nav__source { + display: none; +} +@media screen and (min-width: 60em) { + .md-header-nav__source { + display: block; + width: 11.7rem; + max-width: 11.7rem; + margin-left: 1rem; + } + [dir=rtl] .md-header-nav__source { + margin-right: 1rem; + margin-left: initial; + } +} +@media screen and (min-width: 76.25em) { + .md-header-nav__source { + margin-left: 1.4rem; + } + [dir=rtl] .md-header-nav__source { + margin-right: 1.4rem; + } +} + +.md-hero { + overflow: hidden; + color: var(--md-primary-bg-color); + font-size: 1rem; + background-color: var(--md-primary-fg-color); + transition: background 250ms; +} +.md-hero__inner { + margin-top: 1rem; + padding: 0.8rem 0.8rem 0.4rem; + transition: transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1), opacity 250ms; + transition-delay: 100ms; +} +@media screen and (max-width: 76.1875em) { + .md-hero__inner { + margin-top: 2.4rem; + margin-bottom: 1.2rem; + } +} +[data-md-state=hidden] .md-hero__inner { + transform: translateY(0.625rem); + opacity: 0; + transition: transform 0ms 400ms, opacity 100ms 0ms; + pointer-events: none; +} +.md-hero--expand .md-hero__inner { + margin-bottom: 1.2rem; +} + +.md-footer { + color: var(--md-default-bg-color); + background-color: var(--md-default-fg-color); +} +@media print { + .md-footer { + display: none; + } +} + +.md-footer-nav__inner { + padding: 0.2rem; + overflow: auto; +} +.md-footer-nav__link { + display: flex; + padding-top: 1.4rem; + padding-bottom: 0.4rem; + transition: opacity 250ms; +} +@media screen and (min-width: 45em) { + .md-footer-nav__link { + width: 50%; + } +} +.md-footer-nav__link:focus, .md-footer-nav__link:hover { + opacity: 0.7; +} +.md-footer-nav__link--prev { + float: left; + width: 25%; +} +[dir=rtl] .md-footer-nav__link--prev { + float: right; +} +[dir=rtl] .md-footer-nav__link--prev svg { + transform: scaleX(-1); +} +@media screen and (max-width: 44.9375em) { + .md-footer-nav__link--prev .md-footer-nav__title { + display: none; + } +} +.md-footer-nav__link--next { + float: right; + width: 75%; + text-align: right; +} +[dir=rtl] .md-footer-nav__link--next { + float: left; + text-align: left; +} +[dir=rtl] .md-footer-nav__link--next svg { + transform: scaleX(-1); +} +.md-footer-nav__title { + position: relative; + flex-grow: 1; + max-width: calc(100% - 2.4rem); + padding: 0 1rem; + font-size: 0.9rem; + line-height: 2.4rem; +} +.md-footer-nav__button { + margin: 0.2rem; + padding: 0.4rem; +} +.md-footer-nav__direction { + position: absolute; + right: 0; + left: 0; + margin-top: -1rem; + padding: 0 1rem; + color: var(--md-default-bg-color--light); + font-size: 0.64rem; +} + +.md-footer-meta { + background-color: var(--md-default-fg-color--lighter); +} +.md-footer-meta__inner { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + padding: 0.2rem; +} +html .md-footer-meta.md-typeset a { + color: var(--md-default-bg-color--light); +} +html .md-footer-meta.md-typeset a:focus, html .md-footer-meta.md-typeset a:hover { + color: var(--md-default-bg-color); +} + +.md-footer-copyright { + width: 100%; + margin: auto 0.6rem; + padding: 0.4rem 0; + color: var(--md-default-bg-color--lighter); + font-size: 0.64rem; +} +@media screen and (min-width: 45em) { + .md-footer-copyright { + width: auto; + } +} +.md-footer-copyright__highlight { + color: var(--md-default-bg-color--light); +} + +.md-footer-social { + margin: 0 0.4rem; + padding: 0.2rem 0 0.6rem; +} +@media screen and (min-width: 45em) { + .md-footer-social { + padding: 0.6rem 0; + } +} +.md-footer-social__link { + display: inline-block; + width: 1.6rem; + height: 1.6rem; + text-align: center; +} +.md-footer-social__link::before { + line-height: 1.9; +} +.md-footer-social__link svg { + max-height: 0.8rem; + vertical-align: -25%; + fill: currentColor; +} + +.md-nav { + font-size: 0.7rem; + line-height: 1.3; +} +.md-nav__title { + display: block; + padding: 0 0.6rem; + overflow: hidden; + font-weight: 700; + text-overflow: ellipsis; +} +.md-nav__title .md-nav__button { + display: none; +} +.md-nav__title .md-nav__button img { + width: 100%; + height: auto; +} +.md-nav__title .md-nav__button.md-logo img, +.md-nav__title .md-nav__button.md-logo svg { + display: block; + width: 2.4rem; + height: 2.4rem; +} +.md-nav__title .md-nav__button.md-logo svg { + fill: currentColor; +} +.md-nav__list { + margin: 0; + padding: 0; + list-style: none; +} +.md-nav__item { + padding: 0 0.6rem; +} +.md-nav__item:last-child { + padding-bottom: 0.6rem; +} +.md-nav__item .md-nav__item { + padding-right: 0; +} +[dir=rtl] .md-nav__item .md-nav__item { + padding-right: 0.6rem; + padding-left: 0; +} +.md-nav__item .md-nav__item:last-child { + padding-bottom: 0; +} +.md-nav__link { + display: block; + margin-top: 0.625em; + overflow: hidden; + text-overflow: ellipsis; + cursor: pointer; + transition: color 125ms; + scroll-snap-align: start; +} +html .md-nav__link[for=__toc] { + display: none; +} +html .md-nav__link[for=__toc] ~ .md-nav { + display: none; +} +.md-nav__link[data-md-state=blur] { + color: var(--md-default-fg-color--light); +} +.md-nav__item .md-nav__link--active { + color: var(--md-primary-fg-color); +} +.md-nav__item--nested > .md-nav__link { + color: inherit; +} +.md-nav__link:focus, .md-nav__link:hover { + color: var(--md-accent-fg-color); +} +.md-nav__source { + display: none; +} +@media screen and (max-width: 76.1875em) { + .md-nav { + background-color: var(--md-default-bg-color); + } + .md-nav--primary, .md-nav--primary .md-nav { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 1; + display: flex; + flex-direction: column; + height: 100%; + } + .md-nav--primary .md-nav__title, +.md-nav--primary .md-nav__item { + font-size: 0.8rem; + line-height: 1.5; + } + .md-nav--primary .md-nav__title { + position: relative; + height: 5.6rem; + padding: 3rem 0.8rem 0.2rem; + color: var(--md-default-fg-color--light); + font-weight: 400; + line-height: 2.4rem; + white-space: nowrap; + background-color: var(--md-default-fg-color--lightest); + cursor: pointer; + } + .md-nav--primary .md-nav__title .md-nav__icon { + position: absolute; + top: 0.4rem; + left: 0.4rem; + display: block; + width: 1.2rem; + height: 1.2rem; + margin: 0.2rem; + } + [dir=rtl] .md-nav--primary .md-nav__title .md-nav__icon { + right: 0.4rem; + left: initial; + } + .md-nav--primary .md-nav__title ~ .md-nav__list { + overflow-y: auto; + background-color: var(--md-default-bg-color); + box-shadow: inset 0 0.05rem 0 var(--md-default-fg-color--lightest); + -webkit-scroll-snap-type: y mandatory; + -ms-scroll-snap-type: y mandatory; + scroll-snap-type: y mandatory; + touch-action: pan-y; + } + .md-nav--primary .md-nav__title ~ .md-nav__list > .md-nav__item:first-child { + border-top: 0; + } + .md-nav--primary .md-nav__title[for=__drawer] { + position: relative; + color: var(--md-primary-bg-color); + background-color: var(--md-primary-fg-color); + } + .md-nav--primary .md-nav__title[for=__drawer] .md-nav__button { + position: absolute; + top: 0.2rem; + left: 0.2rem; + display: block; + margin: 0.2rem; + padding: 0.4rem; + font-size: 2.4rem; + } + html [dir=rtl] .md-nav--primary .md-nav__title[for=__drawer] .md-nav__button { + right: 0.2rem; + left: initial; + } + .md-nav--primary .md-nav__list { + flex: 1; + } + .md-nav--primary .md-nav__item { + padding: 0; + border-top: 0.05rem solid var(--md-default-fg-color--lightest); + } + [dir=rtl] .md-nav--primary .md-nav__item { + padding: 0; + } + .md-nav--primary .md-nav__item--nested > .md-nav__link { + padding-right: 2.4rem; + } + [dir=rtl] .md-nav--primary .md-nav__item--nested > .md-nav__link { + padding-right: 0.8rem; + padding-left: 2.4rem; + } + .md-nav--primary .md-nav__item--active > .md-nav__link { + color: var(--md-primary-fg-color); + } + .md-nav--primary .md-nav__item--active > .md-nav__link:focus, .md-nav--primary .md-nav__item--active > .md-nav__link:hover { + color: var(--md-accent-fg-color); + } + .md-nav--primary .md-nav__link { + position: relative; + margin-top: 0; + padding: 0.6rem 0.8rem; + } + .md-nav--primary .md-nav__link .md-nav__icon { + position: absolute; + top: 50%; + right: 0.6rem; + margin-top: -0.6rem; + color: inherit; + font-size: 1.2rem; + } + [dir=rtl] .md-nav--primary .md-nav__link .md-nav__icon { + right: initial; + left: 0.6rem; + } + [dir=rtl] .md-nav--primary .md-nav__icon svg { + transform: scale(-1); + } + .md-nav--primary .md-nav--secondary .md-nav__link { + position: static; + } + .md-nav--primary .md-nav--secondary .md-nav { + position: static; + background-color: transparent; + } + .md-nav--primary .md-nav--secondary .md-nav .md-nav__link { + padding-left: 1.4rem; + } + [dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link { + padding-right: 1.4rem; + padding-left: initial; + } + .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link { + padding-left: 2rem; + } + [dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link { + padding-right: 2rem; + padding-left: initial; + } + .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link { + padding-left: 2.6rem; + } + [dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link { + padding-right: 2.6rem; + padding-left: initial; + } + .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link { + padding-left: 3.2rem; + } + [dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link { + padding-right: 3.2rem; + padding-left: initial; + } + .md-nav__toggle ~ .md-nav { + display: flex; + transform: translateX(100%); + opacity: 0; + transition: transform 250ms cubic-bezier(0.8, 0, 0.6, 1), opacity 125ms 50ms; + } + [dir=rtl] .md-nav__toggle ~ .md-nav { + transform: translateX(-100%); + } + .md-nav__toggle:checked ~ .md-nav { + transform: translateX(0); + opacity: 1; + transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1), opacity 125ms 125ms; + } + .md-nav__toggle:checked ~ .md-nav > .md-nav__list { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + } +} +@media screen and (max-width: 59.9375em) { + html .md-nav__link[for=__toc] { + display: block; + padding-right: 2.4rem; + } + html .md-nav__link[for=__toc] + .md-nav__link { + display: none; + } + html .md-nav__link[for=__toc] ~ .md-nav { + display: flex; + } + html [dir=rtl] .md-nav__link { + padding-right: 0.8rem; + padding-left: 2.4rem; + } + .md-nav__source { + display: block; + padding: 0 0.2rem; + color: var(--md-primary-bg-color); + background-color: var(--md-primary-fg-color--dark); + } +} +@media screen and (min-width: 60em) { + .md-nav--secondary .md-nav__title[for=__toc] { + scroll-snap-align: start; + } + .md-nav--secondary .md-nav__title .md-nav__icon { + display: none; + } +} +@media screen and (min-width: 76.25em) { + .md-nav { + transition: max-height 250ms cubic-bezier(0.86, 0, 0.07, 1); + } + .md-nav--primary .md-nav__title[for=__drawer] { + scroll-snap-align: start; + } + .md-nav--primary .md-nav__title .md-nav__icon { + display: none; + } + .md-nav__toggle ~ .md-nav { + display: none; + } + .md-nav__toggle:checked ~ .md-nav { + display: block; + } + .md-nav__item--nested > .md-nav > .md-nav__title { + display: none; + } + .md-nav__icon { + float: right; + height: 0.9rem; + transition: transform 250ms; + } + [dir=rtl] .md-nav__icon { + float: left; + transform: rotate(180deg); + } + .md-nav__icon svg { + display: inline-block; + width: 0.9rem; + height: 0.9rem; + vertical-align: -0.1rem; + } + .md-nav__item--nested .md-nav__toggle:checked ~ .md-nav__link .md-nav__icon { + transform: rotate(90deg); + } +} + +.md-search { + position: relative; +} +.no-js .md-search { + display: none; +} +@media screen and (min-width: 60em) { + .md-search { + padding: 0.2rem 0; + } +} +.md-search__overlay { + z-index: 1; + opacity: 0; +} +@media screen and (max-width: 59.9375em) { + .md-search__overlay { + position: absolute; + top: 0.2rem; + left: -2.2rem; + width: 2rem; + height: 2rem; + overflow: hidden; + background-color: var(--md-default-bg-color); + border-radius: 1rem; + transform-origin: center; + transition: transform 300ms 100ms, opacity 200ms 200ms; + pointer-events: none; + } + [dir=rtl] .md-search__overlay { + right: -2.2rem; + left: initial; + } + [data-md-toggle=search]:checked ~ .md-header .md-search__overlay { + opacity: 1; + transition: transform 400ms, opacity 100ms; + } +} +@media screen and (max-width: 29.9375em) { + [data-md-toggle=search]:checked ~ .md-header .md-search__overlay { + transform: scale(45); + } +} +@media screen and (min-width: 30em) and (max-width: 44.9375em) { + [data-md-toggle=search]:checked ~ .md-header .md-search__overlay { + transform: scale(60); + } +} +@media screen and (min-width: 45em) and (max-width: 59.9375em) { + [data-md-toggle=search]:checked ~ .md-header .md-search__overlay { + transform: scale(75); + } +} +@media screen and (min-width: 60em) { + .md-search__overlay { + position: fixed; + top: 0; + left: 0; + width: 0; + height: 0; + background-color: var(--md-default-fg-color--light); + cursor: pointer; + transition: width 0ms 250ms, height 0ms 250ms, opacity 250ms; + } + [dir=rtl] .md-search__overlay { + right: 0; + left: initial; + } + [data-md-toggle=search]:checked ~ .md-header .md-search__overlay { + width: 100%; + height: 100%; + opacity: 1; + transition: width 0ms, height 0ms, opacity 250ms; + } +} +.md-search__inner { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +@media screen and (max-width: 59.9375em) { + .md-search__inner { + position: fixed; + top: 0; + left: 100%; + z-index: 2; + width: 100%; + height: 100%; + transform: translateX(5%); + opacity: 0; + transition: right 0ms 300ms, left 0ms 300ms, transform 150ms 150ms cubic-bezier(0.4, 0, 0.2, 1), opacity 150ms 150ms; + } + [data-md-toggle=search]:checked ~ .md-header .md-search__inner { + left: 0; + transform: translateX(0); + opacity: 1; + transition: right 0ms 0ms, left 0ms 0ms, transform 150ms 150ms cubic-bezier(0.1, 0.7, 0.1, 1), opacity 150ms 150ms; + } + [dir=rtl] [data-md-toggle=search]:checked ~ .md-header .md-search__inner { + right: 0; + left: initial; + } + html [dir=rtl] .md-search__inner { + right: 100%; + left: initial; + transform: translateX(-5%); + } +} +@media screen and (min-width: 60em) { + .md-search__inner { + position: relative; + float: right; + width: 11.7rem; + padding: 0.1rem 0; + transition: width 250ms cubic-bezier(0.1, 0.7, 0.1, 1); + } + [dir=rtl] .md-search__inner { + float: left; + } +} +@media screen and (min-width: 60em) and (max-width: 76.1875em) { + [data-md-toggle=search]:checked ~ .md-header .md-search__inner { + width: 23.4rem; + } +} +@media screen and (min-width: 76.25em) { + [data-md-toggle=search]:checked ~ .md-header .md-search__inner { + width: 34.4rem; + } +} +.md-search__form { + position: relative; +} +@media screen and (min-width: 60em) { + .md-search__form { + border-radius: 0.1rem; + } +} +.md-search__input { + position: relative; + z-index: 2; + padding: 0 2.2rem 0 3.6rem; + text-overflow: ellipsis; +} +[dir=rtl] .md-search__input { + padding: 0 3.6rem 0 2.2rem; +} +.md-search__input::-webkit-input-placeholder { + -webkit-transition: color 250ms; + transition: color 250ms; +} +.md-search__input::-moz-placeholder { + -moz-transition: color 250ms; + transition: color 250ms; +} +.md-search__input::-ms-input-placeholder { + -ms-transition: color 250ms; + transition: color 250ms; +} +.md-search__input::placeholder { + transition: color 250ms; +} +.md-search__input::-webkit-input-placeholder { + color: var(--md-default-fg-color--light); +} +.md-search__input::-moz-placeholder { + color: var(--md-default-fg-color--light); +} +.md-search__input::-ms-input-placeholder { + color: var(--md-default-fg-color--light); +} +.md-search__input ~ .md-search__icon, .md-search__input::placeholder { + color: var(--md-default-fg-color--light); +} +.md-search__input::-ms-clear { + display: none; +} +@media screen and (max-width: 59.9375em) { + .md-search__input { + width: 100%; + height: 2.4rem; + font-size: 0.9rem; + } +} +@media screen and (min-width: 60em) { + .md-search__input { + width: 100%; + height: 1.8rem; + padding-left: 2.2rem; + color: inherit; + font-size: 0.8rem; + background-color: var(--md-default-fg-color--lighter); + border-radius: 0.1rem; + transition: color 250ms, background-color 250ms; + } + [dir=rtl] .md-search__input { + padding-right: 2.2rem; + } + .md-search__input + .md-search__icon { + color: var(--md-primary-bg-color); + } + .md-search__input::-webkit-input-placeholder { + color: var(--md-primary-bg-color--light); + } + .md-search__input::-moz-placeholder { + color: var(--md-primary-bg-color--light); + } + .md-search__input::-ms-input-placeholder { + color: var(--md-primary-bg-color--light); + } + .md-search__input::placeholder { + color: var(--md-primary-bg-color--light); + } + .md-search__input:hover { + background-color: var(--md-default-bg-color--lightest); + } + [data-md-toggle=search]:checked ~ .md-header .md-search__input { + color: var(--md-default-fg-color); + text-overflow: clip; + background-color: var(--md-default-bg-color); + border-radius: 0.1rem 0.1rem 0 0; + } + [data-md-toggle=search]:checked ~ .md-header .md-search__input::-webkit-input-placeholder { + color: var(--md-default-fg-color--light); + } + [data-md-toggle=search]:checked ~ .md-header .md-search__input::-moz-placeholder { + color: var(--md-default-fg-color--light); + } + [data-md-toggle=search]:checked ~ .md-header .md-search__input::-ms-input-placeholder { + color: var(--md-default-fg-color--light); + } + [data-md-toggle=search]:checked ~ .md-header .md-search__input + .md-search__icon, [data-md-toggle=search]:checked ~ .md-header .md-search__input::placeholder { + color: var(--md-default-fg-color--light); + } +} +.md-search__icon { + position: absolute; + z-index: 2; + width: 1.2rem; + height: 1.2rem; + cursor: pointer; + transition: color 250ms, opacity 250ms; +} +.md-search__icon:hover { + opacity: 0.7; +} +.md-search__icon[for=__search] { + top: 0.3rem; + left: 0.5rem; +} +[dir=rtl] .md-search__icon[for=__search] { + right: 0.5rem; + left: initial; +} +[dir=rtl] .md-search__icon[for=__search] svg { + transform: scaleX(-1); +} +@media screen and (max-width: 59.9375em) { + .md-search__icon[for=__search] { + top: 0.6rem; + left: 0.8rem; + } + [dir=rtl] .md-search__icon[for=__search] { + right: 0.8rem; + left: initial; + } + .md-search__icon[for=__search] svg:first-child { + display: none; + } +} +@media screen and (min-width: 60em) { + .md-search__icon[for=__search] { + pointer-events: none; + } + .md-search__icon[for=__search] svg:last-child { + display: none; + } +} +.md-search__icon[type=reset] { + top: 0.3rem; + right: 0.5rem; + transform: scale(0.75); + opacity: 0; + transition: transform 150ms cubic-bezier(0.1, 0.7, 0.1, 1), opacity 150ms; + pointer-events: none; +} +[dir=rtl] .md-search__icon[type=reset] { + right: initial; + left: 0.5rem; +} +@media screen and (max-width: 59.9375em) { + .md-search__icon[type=reset] { + top: 0.6rem; + right: 0.8rem; + } + [dir=rtl] .md-search__icon[type=reset] { + right: initial; + left: 0.8rem; + } +} +[data-md-toggle=search]:checked ~ .md-header .md-search__input:not(:placeholder-shown) ~ .md-search__icon[type=reset] { + transform: scale(1); + opacity: 1; + pointer-events: initial; +} +[data-md-toggle=search]:checked ~ .md-header .md-search__input:not(:placeholder-shown) ~ .md-search__icon[type=reset]:hover { + opacity: 0.7; +} +.md-search__output { + position: absolute; + z-index: 1; + width: 100%; + overflow: hidden; + border-radius: 0 0 0.1rem 0.1rem; +} +@media screen and (max-width: 59.9375em) { + .md-search__output { + top: 2.4rem; + bottom: 0; + } +} +@media screen and (min-width: 60em) { + .md-search__output { + top: 1.9rem; + opacity: 0; + transition: opacity 400ms; + } + [data-md-toggle=search]:checked ~ .md-header .md-search__output { + box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12), 0 3px 5px -1px rgba(0, 0, 0, 0.4); + opacity: 1; + } +} +.md-search__scrollwrap { + height: 100%; + overflow-y: auto; + background-color: var(--md-default-bg-color); + box-shadow: inset 0 0.05rem 0 var(--md-default-fg-color--lightest); + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-scroll-snap-type: y mandatory; + -ms-scroll-snap-type: y mandatory; + scroll-snap-type: y mandatory; + touch-action: pan-y; +} +@media (-webkit-max-device-pixel-ratio: 1), (max-resolution: 1dppx) { + .md-search__scrollwrap { + transform: translateZ(0); + } +} +@media screen and (min-width: 60em) and (max-width: 76.1875em) { + .md-search__scrollwrap { + width: 23.4rem; + } +} +@media screen and (min-width: 76.25em) { + .md-search__scrollwrap { + width: 34.4rem; + } +} +@media screen and (min-width: 60em) { + .md-search__scrollwrap { + max-height: 0; + } + [data-md-toggle=search]:checked ~ .md-header .md-search__scrollwrap { + max-height: 75vh; + } + .md-search__scrollwrap::-webkit-scrollbar { + width: 0.2rem; + height: 0.2rem; + } + .md-search__scrollwrap::-webkit-scrollbar-thumb { + background-color: var(--md-default-fg-color--lighter); + } + .md-search__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: var(--md-accent-fg-color); + } +} + +.md-search-result { + color: var(--md-default-fg-color); + word-break: break-word; +} +.md-search-result__meta { + padding: 0 0.8rem; + color: var(--md-default-fg-color--light); + font-size: 0.64rem; + line-height: 1.8rem; + background-color: var(--md-default-fg-color--lightest); + scroll-snap-align: start; +} +@media screen and (min-width: 60em) { + .md-search-result__meta { + padding-left: 2.2rem; + } + [dir=rtl] .md-search-result__meta { + padding-right: 2.2rem; + padding-left: initial; + } +} +.md-search-result__list { + margin: 0; + padding: 0; + list-style: none; + border-top: 0.05rem solid var(--md-default-fg-color--lightest); +} +.md-search-result__item { + box-shadow: 0 -0.05rem 0 var(--md-default-fg-color--lightest); +} +.md-search-result__link { + display: block; + outline: 0; + transition: background 250ms; + scroll-snap-align: start; +} +.md-search-result__link:focus, .md-search-result__link:hover { + background-color: var(--md-accent-fg-color--transparent); +} +.md-search-result__link:focus .md-search-result__article::before, .md-search-result__link:hover .md-search-result__article::before { + opacity: 0.7; +} +.md-search-result__link:last-child .md-search-result__teaser { + margin-bottom: 0.6rem; +} +.md-search-result__article { + position: relative; + padding: 0 0.8rem; + overflow: hidden; +} +@media screen and (min-width: 60em) { + .md-search-result__article { + padding-left: 2.2rem; + } + [dir=rtl] .md-search-result__article { + padding-right: 2.2rem; + padding-left: 0.8rem; + } +} +.md-search-result__article--document .md-search-result__title { + margin: 0.55rem 0; + font-weight: 400; + font-size: 0.8rem; + line-height: 1.4; +} +.md-search-result__icon { + position: absolute; + left: 0; + margin: 0.1rem; + padding: 0.4rem; + color: var(--md-default-fg-color--light); +} +[dir=rtl] .md-search-result__icon { + right: 0; + left: initial; +} +[dir=rtl] .md-search-result__icon svg { + transform: scaleX(-1); +} +@media screen and (max-width: 59.9375em) { + .md-search-result__icon { + display: none; + } +} +.md-search-result__title { + margin: 0.5em 0; + font-weight: 700; + font-size: 0.64rem; + line-height: 1.4; +} +.md-search-result__teaser { + display: -webkit-box; + max-height: 1.65rem; + margin: 0.5em 0; + overflow: hidden; + color: var(--md-default-fg-color--light); + font-size: 0.64rem; + line-height: 1.4; + text-overflow: ellipsis; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; +} +@media screen and (max-width: 44.9375em) { + .md-search-result__teaser { + max-height: 2.5rem; + -webkit-line-clamp: 3; + } +} +@media screen and (min-width: 60em) and (max-width: 76.1875em) { + .md-search-result__teaser { + max-height: 2.5rem; + -webkit-line-clamp: 3; + } +} +.md-search-result em { + font-weight: 700; + font-style: normal; + text-decoration: underline; +} + +.md-sidebar { + position: -webkit-sticky; + position: sticky; + top: 2.4rem; + width: 12.1rem; + padding: 1.2rem 0; + overflow: hidden; +} +@media print { + .md-sidebar { + display: none; + } +} +@media screen and (max-width: 76.1875em) { + .md-sidebar--primary { + position: fixed; + top: 0; + left: -12.1rem; + z-index: 3; + width: 12.1rem; + height: 100%; + background-color: var(--md-default-bg-color); + transform: translateX(0); + transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1), box-shadow 250ms; + } + [dir=rtl] .md-sidebar--primary { + right: -12.1rem; + left: initial; + } + [data-md-toggle=drawer]:checked ~ .md-container .md-sidebar--primary { + box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.4); + transform: translateX(12.1rem); + } + [dir=rtl] [data-md-toggle=drawer]:checked ~ .md-container .md-sidebar--primary { + transform: translateX(-12.1rem); + } + .md-sidebar--primary .md-sidebar__scrollwrap { + overflow: hidden; + } +} +.md-sidebar--secondary { + display: none; + order: 2; +} +@media screen and (min-width: 60em) { + .md-sidebar--secondary { + display: block; + } + .md-sidebar--secondary .md-sidebar__scrollwrap { + touch-action: pan-y; + } +} +.md-sidebar__scrollwrap { + max-height: 100%; + margin: 0 0.2rem; + overflow-y: auto; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-scroll-snap-type: y mandatory; + -ms-scroll-snap-type: y mandatory; + scroll-snap-type: y mandatory; +} +@media screen and (max-width: 76.1875em) { + .md-sidebar--primary .md-sidebar__scrollwrap { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + margin: 0; + -webkit-scroll-snap-type: none; + -ms-scroll-snap-type: none; + scroll-snap-type: none; + } +} +.md-sidebar__scrollwrap::-webkit-scrollbar { + width: 0.2rem; + height: 0.2rem; +} +.md-sidebar__scrollwrap::-webkit-scrollbar-thumb { + background-color: var(--md-default-fg-color--lighter); +} +.md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover { + background-color: var(--md-accent-fg-color); +} + +@-webkit-keyframes md-source__facts--done { + 0% { + height: 0; + } + 100% { + height: 0.65rem; + } +} + +@keyframes md-source__facts--done { + 0% { + height: 0; + } + 100% { + height: 0.65rem; + } +} +@-webkit-keyframes md-source__fact--done { + 0% { + transform: translateY(100%); + opacity: 0; + } + 50% { + opacity: 0; + } + 100% { + transform: translateY(0%); + opacity: 1; + } +} +@keyframes md-source__fact--done { + 0% { + transform: translateY(100%); + opacity: 0; + } + 50% { + opacity: 0; + } + 100% { + transform: translateY(0%); + opacity: 1; + } +} +.md-source { + display: block; + font-size: 0.65rem; + line-height: 1.2; + white-space: nowrap; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition: opacity 250ms; +} +.md-source:hover { + opacity: 0.7; +} +.md-source__icon { + display: inline-block; + width: 2.4rem; + height: 2.4rem; + vertical-align: middle; +} +.md-source__icon svg { + margin-top: 0.6rem; + margin-left: 0.6rem; +} +[dir=rtl] .md-source__icon svg { + margin-right: 0.6rem; + margin-left: initial; +} +.md-source__icon + .md-source__repository { + margin-left: -2rem; + padding-left: 2rem; +} +[dir=rtl] .md-source__icon + .md-source__repository { + margin-right: -2rem; + margin-left: initial; + padding-right: 2rem; + padding-left: initial; +} +.md-source__repository { + display: inline-block; + max-width: calc(100% - 1.2rem); + margin-left: 0.6rem; + overflow: hidden; + font-weight: 700; + text-overflow: ellipsis; + vertical-align: middle; +} +.md-source__facts { + margin: 0; + padding: 0; + overflow: hidden; + font-weight: 700; + font-size: 0.55rem; + list-style-type: none; + opacity: 0.75; +} +[data-md-state=done] .md-source__facts { + -webkit-animation: md-source__facts--done 250ms ease-in; + animation: md-source__facts--done 250ms ease-in; +} +.md-source__fact { + float: left; +} +[dir=rtl] .md-source__fact { + float: right; +} +[data-md-state=done] .md-source__fact { + -webkit-animation: md-source__fact--done 400ms ease-out; + animation: md-source__fact--done 400ms ease-out; +} +.md-source__fact::before { + margin: 0 0.1rem; + content: "·"; +} +.md-source__fact:first-child::before { + display: none; +} + +.md-tabs { + width: 100%; + overflow: auto; + color: var(--md-primary-bg-color); + background-color: var(--md-primary-fg-color); + transition: background 250ms; +} +.no-js .md-tabs { + transition: none; +} +@media screen and (max-width: 76.1875em) { + .md-tabs { + display: none; + } +} +@media print { + .md-tabs { + display: none; + } +} +.md-tabs__list { + margin: 0; + margin-left: 0.2rem; + padding: 0; + white-space: nowrap; + list-style: none; + contain: content; +} +[dir=rtl] .md-tabs__list { + margin-right: 0.2rem; + margin-left: initial; +} +.md-tabs__item { + display: inline-block; + height: 2.4rem; + padding-right: 0.6rem; + padding-left: 0.6rem; +} +.md-tabs__link { + display: block; + margin-top: 0.8rem; + font-size: 0.7rem; + opacity: 0.7; + transition: transform 400ms cubic-bezier(0.1, 0.7, 0.1, 1), opacity 250ms; +} +.no-js .md-tabs__link { + transition: none; +} +.md-tabs__link--active, .md-tabs__link:hover { + color: inherit; + opacity: 1; +} +.md-tabs__item:nth-child(2) .md-tabs__link { + transition-delay: 20ms; +} +.md-tabs__item:nth-child(3) .md-tabs__link { + transition-delay: 40ms; +} +.md-tabs__item:nth-child(4) .md-tabs__link { + transition-delay: 60ms; +} +.md-tabs__item:nth-child(5) .md-tabs__link { + transition-delay: 80ms; +} +.md-tabs__item:nth-child(6) .md-tabs__link { + transition-delay: 100ms; +} +.md-tabs__item:nth-child(7) .md-tabs__link { + transition-delay: 120ms; +} +.md-tabs__item:nth-child(8) .md-tabs__link { + transition-delay: 140ms; +} +.md-tabs__item:nth-child(9) .md-tabs__link { + transition-delay: 160ms; +} +.md-tabs__item:nth-child(10) .md-tabs__link { + transition-delay: 180ms; +} +.md-tabs__item:nth-child(11) .md-tabs__link { + transition-delay: 200ms; +} +.md-tabs__item:nth-child(12) .md-tabs__link { + transition-delay: 220ms; +} +.md-tabs__item:nth-child(13) .md-tabs__link { + transition-delay: 240ms; +} +.md-tabs__item:nth-child(14) .md-tabs__link { + transition-delay: 260ms; +} +.md-tabs__item:nth-child(15) .md-tabs__link { + transition-delay: 280ms; +} +.md-tabs__item:nth-child(16) .md-tabs__link { + transition-delay: 300ms; +} +.md-tabs[data-md-state=hidden] { + pointer-events: none; +} +.md-tabs[data-md-state=hidden] .md-tabs__link { + transform: translateY(50%); + opacity: 0; + transition: color 250ms, transform 0ms 400ms, opacity 100ms; +} +@media screen and (min-width: 76.25em) { + .md-tabs ~ .md-main .md-nav--primary > .md-nav__list > .md-nav__item--nested { + display: none; + } + .md-tabs--active ~ .md-main .md-nav--primary .md-nav__title { + display: block; + padding: 0 0.6rem; + pointer-events: none; + scroll-snap-align: start; + } + .md-tabs--active ~ .md-main .md-nav--primary .md-nav__title[for=__drawer] { + display: none; + } + .md-tabs--active ~ .md-main .md-nav--primary > .md-nav__list > .md-nav__item { + display: none; + } + .md-tabs--active ~ .md-main .md-nav--primary > .md-nav__list > .md-nav__item--active { + display: block; + padding: 0; + } + .md-tabs--active ~ .md-main .md-nav--primary > .md-nav__list > .md-nav__item--active > .md-nav__link { + display: none; + } + .md-tabs--active ~ .md-main .md-nav[data-md-level="1"] { + display: block; + } + .md-tabs--active ~ .md-main .md-nav[data-md-level="1"] > .md-nav__list > .md-nav__item { + padding: 0 0.6rem; + } + .md-tabs--active ~ .md-main .md-nav[data-md-level="1"] .md-nav .md-nav__title { + display: none; + } +} + +:root { + --md-admonition-icon--note: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--abstract: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--info: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--tip: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--success: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--question: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--warning: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--failure: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--danger: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--bug: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--example: url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--quote: url('data:image/svg+xml;charset=utf-8,'); +} + +.md-typeset .admonition, .md-typeset details { + margin: 1.5625em 0; + padding: 0 0.6rem; + overflow: hidden; + font-size: 0.64rem; + page-break-inside: avoid; + border-left: 0.2rem solid #448aff; + border-radius: 0.1rem; + box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.05rem rgba(0, 0, 0, 0.1); +} +[dir=rtl] .md-typeset .admonition, [dir=rtl] .md-typeset details { + border-right: 0.2rem solid #448aff; + border-left: none; +} +@media print { + .md-typeset .admonition, .md-typeset details { + box-shadow: none; + } +} +html .md-typeset .admonition > :last-child, html .md-typeset details > :last-child { + margin-bottom: 0.6rem; +} +.md-typeset .admonition .admonition, .md-typeset details .admonition, .md-typeset .admonition details, .md-typeset details details { + margin: 1em 0; +} +.md-typeset .admonition .md-typeset__scrollwrap, .md-typeset details .md-typeset__scrollwrap { + margin: 1em -0.6rem; +} +.md-typeset .admonition .md-typeset__table, .md-typeset details .md-typeset__table { + padding: 0 0.6rem; +} +.md-typeset .admonition-title, .md-typeset summary { + position: relative; + margin: 0 -0.6rem; + padding: 0.4rem 0.6rem 0.4rem 2rem; + font-weight: 700; + background-color: rgba(68, 138, 255, 0.1); +} +[dir=rtl] .md-typeset .admonition-title, [dir=rtl] .md-typeset summary { + padding: 0.4rem 2rem 0.4rem 0.6rem; +} +html .md-typeset .admonition-title:last-child, html .md-typeset summary:last-child { + margin-bottom: 0; +} +.md-typeset .admonition-title::before, .md-typeset summary::before { + position: absolute; + left: 0.6rem; + width: 1rem; + height: 1rem; + background-color: #448aff; + -webkit-mask-image: var(--md-admonition-icon--note); + mask-image: var(--md-admonition-icon--note); + content: ""; +} +[dir=rtl] .md-typeset .admonition-title::before, [dir=rtl] .md-typeset summary::before { + right: 0.6rem; + left: initial; +} +.md-typeset .admonition-title code, .md-typeset summary code { + margin: initial; + padding: initial; + color: currentColor; + background-color: transparent; + border-radius: initial; + box-shadow: none; +} + +.md-typeset .admonition.note, .md-typeset details.note { + border-color: #448aff; +} + +.md-typeset .note > .admonition-title, .md-typeset .note > summary { + background-color: rgba(68, 138, 255, 0.1); +} +.md-typeset .note > .admonition-title::before, .md-typeset .note > summary::before { + background-color: #448aff; + -webkit-mask-image: var(--md-admonition-icon--note); + mask-image: var(--md-admonition-icon--note); +} + +.md-typeset .admonition.abstract, .md-typeset details.abstract, .md-typeset .admonition.tldr, .md-typeset details.tldr, .md-typeset .admonition.summary, .md-typeset details.summary { + border-color: #00b0ff; +} + +.md-typeset .abstract > .admonition-title, .md-typeset .abstract > summary, .md-typeset .tldr > .admonition-title, .md-typeset .tldr > summary, .md-typeset .summary > .admonition-title, .md-typeset .summary > summary { + background-color: rgba(0, 176, 255, 0.1); +} +.md-typeset .abstract > .admonition-title::before, .md-typeset .abstract > summary::before, .md-typeset .tldr > .admonition-title::before, .md-typeset .tldr > summary::before, .md-typeset .summary > .admonition-title::before, .md-typeset .summary > summary::before { + background-color: #00b0ff; + -webkit-mask-image: var(--md-admonition-icon--abstract); + mask-image: var(--md-admonition-icon--abstract); +} + +.md-typeset .admonition.info, .md-typeset details.info, .md-typeset .admonition.todo, .md-typeset details.todo { + border-color: #00b8d4; +} + +.md-typeset .info > .admonition-title, .md-typeset .info > summary, .md-typeset .todo > .admonition-title, .md-typeset .todo > summary { + background-color: rgba(0, 184, 212, 0.1); +} +.md-typeset .info > .admonition-title::before, .md-typeset .info > summary::before, .md-typeset .todo > .admonition-title::before, .md-typeset .todo > summary::before { + background-color: #00b8d4; + -webkit-mask-image: var(--md-admonition-icon--info); + mask-image: var(--md-admonition-icon--info); +} + +.md-typeset .admonition.tip, .md-typeset details.tip, .md-typeset .admonition.important, .md-typeset details.important, .md-typeset .admonition.hint, .md-typeset details.hint { + border-color: #00bfa5; +} + +.md-typeset .tip > .admonition-title, .md-typeset .tip > summary, .md-typeset .important > .admonition-title, .md-typeset .important > summary, .md-typeset .hint > .admonition-title, .md-typeset .hint > summary { + background-color: rgba(0, 191, 165, 0.1); +} +.md-typeset .tip > .admonition-title::before, .md-typeset .tip > summary::before, .md-typeset .important > .admonition-title::before, .md-typeset .important > summary::before, .md-typeset .hint > .admonition-title::before, .md-typeset .hint > summary::before { + background-color: #00bfa5; + -webkit-mask-image: var(--md-admonition-icon--tip); + mask-image: var(--md-admonition-icon--tip); +} + +.md-typeset .admonition.success, .md-typeset details.success, .md-typeset .admonition.done, .md-typeset details.done, .md-typeset .admonition.check, .md-typeset details.check { + border-color: #00c853; +} + +.md-typeset .success > .admonition-title, .md-typeset .success > summary, .md-typeset .done > .admonition-title, .md-typeset .done > summary, .md-typeset .check > .admonition-title, .md-typeset .check > summary { + background-color: rgba(0, 200, 83, 0.1); +} +.md-typeset .success > .admonition-title::before, .md-typeset .success > summary::before, .md-typeset .done > .admonition-title::before, .md-typeset .done > summary::before, .md-typeset .check > .admonition-title::before, .md-typeset .check > summary::before { + background-color: #00c853; + -webkit-mask-image: var(--md-admonition-icon--success); + mask-image: var(--md-admonition-icon--success); +} + +.md-typeset .admonition.question, .md-typeset details.question, .md-typeset .admonition.faq, .md-typeset details.faq, .md-typeset .admonition.help, .md-typeset details.help { + border-color: #64dd17; +} + +.md-typeset .question > .admonition-title, .md-typeset .question > summary, .md-typeset .faq > .admonition-title, .md-typeset .faq > summary, .md-typeset .help > .admonition-title, .md-typeset .help > summary { + background-color: rgba(100, 221, 23, 0.1); +} +.md-typeset .question > .admonition-title::before, .md-typeset .question > summary::before, .md-typeset .faq > .admonition-title::before, .md-typeset .faq > summary::before, .md-typeset .help > .admonition-title::before, .md-typeset .help > summary::before { + background-color: #64dd17; + -webkit-mask-image: var(--md-admonition-icon--question); + mask-image: var(--md-admonition-icon--question); +} + +.md-typeset .admonition.warning, .md-typeset details.warning, .md-typeset .admonition.attention, .md-typeset details.attention, .md-typeset .admonition.caution, .md-typeset details.caution { + border-color: #ff9100; +} + +.md-typeset .warning > .admonition-title, .md-typeset .warning > summary, .md-typeset .attention > .admonition-title, .md-typeset .attention > summary, .md-typeset .caution > .admonition-title, .md-typeset .caution > summary { + background-color: rgba(255, 145, 0, 0.1); +} +.md-typeset .warning > .admonition-title::before, .md-typeset .warning > summary::before, .md-typeset .attention > .admonition-title::before, .md-typeset .attention > summary::before, .md-typeset .caution > .admonition-title::before, .md-typeset .caution > summary::before { + background-color: #ff9100; + -webkit-mask-image: var(--md-admonition-icon--warning); + mask-image: var(--md-admonition-icon--warning); +} + +.md-typeset .admonition.failure, .md-typeset details.failure, .md-typeset .admonition.missing, .md-typeset details.missing, .md-typeset .admonition.fail, .md-typeset details.fail { + border-color: #ff5252; +} + +.md-typeset .failure > .admonition-title, .md-typeset .failure > summary, .md-typeset .missing > .admonition-title, .md-typeset .missing > summary, .md-typeset .fail > .admonition-title, .md-typeset .fail > summary { + background-color: rgba(255, 82, 82, 0.1); +} +.md-typeset .failure > .admonition-title::before, .md-typeset .failure > summary::before, .md-typeset .missing > .admonition-title::before, .md-typeset .missing > summary::before, .md-typeset .fail > .admonition-title::before, .md-typeset .fail > summary::before { + background-color: #ff5252; + -webkit-mask-image: var(--md-admonition-icon--failure); + mask-image: var(--md-admonition-icon--failure); +} + +.md-typeset .admonition.danger, .md-typeset details.danger, .md-typeset .admonition.error, .md-typeset details.error { + border-color: #ff1744; +} + +.md-typeset .danger > .admonition-title, .md-typeset .danger > summary, .md-typeset .error > .admonition-title, .md-typeset .error > summary { + background-color: rgba(255, 23, 68, 0.1); +} +.md-typeset .danger > .admonition-title::before, .md-typeset .danger > summary::before, .md-typeset .error > .admonition-title::before, .md-typeset .error > summary::before { + background-color: #ff1744; + -webkit-mask-image: var(--md-admonition-icon--danger); + mask-image: var(--md-admonition-icon--danger); +} + +.md-typeset .admonition.bug, .md-typeset details.bug { + border-color: #f50057; +} + +.md-typeset .bug > .admonition-title, .md-typeset .bug > summary { + background-color: rgba(245, 0, 87, 0.1); +} +.md-typeset .bug > .admonition-title::before, .md-typeset .bug > summary::before { + background-color: #f50057; + -webkit-mask-image: var(--md-admonition-icon--bug); + mask-image: var(--md-admonition-icon--bug); +} + +.md-typeset .admonition.example, .md-typeset details.example { + border-color: #651fff; +} + +.md-typeset .example > .admonition-title, .md-typeset .example > summary { + background-color: rgba(101, 31, 255, 0.1); +} +.md-typeset .example > .admonition-title::before, .md-typeset .example > summary::before { + background-color: #651fff; + -webkit-mask-image: var(--md-admonition-icon--example); + mask-image: var(--md-admonition-icon--example); +} + +.md-typeset .admonition.quote, .md-typeset details.quote, .md-typeset .admonition.cite, .md-typeset details.cite { + border-color: #9e9e9e; +} + +.md-typeset .quote > .admonition-title, .md-typeset .quote > summary, .md-typeset .cite > .admonition-title, .md-typeset .cite > summary { + background-color: rgba(158, 158, 158, 0.1); +} +.md-typeset .quote > .admonition-title::before, .md-typeset .quote > summary::before, .md-typeset .cite > .admonition-title::before, .md-typeset .cite > summary::before { + background-color: #9e9e9e; + -webkit-mask-image: var(--md-admonition-icon--quote); + mask-image: var(--md-admonition-icon--quote); +} + +.codehilite .o, .highlight .o { + color: inherit; +} +.codehilite .ow, .highlight .ow { + color: inherit; +} +.codehilite .ge, .highlight .ge { + color: #000000; +} +.codehilite .gr, .highlight .gr { + color: #AA0000; +} +.codehilite .gh, .highlight .gh { + color: #999999; +} +.codehilite .go, .highlight .go { + color: #888888; +} +.codehilite .gp, .highlight .gp { + color: #555555; +} +.codehilite .gs, .highlight .gs { + color: inherit; +} +.codehilite .gu, .highlight .gu { + color: #AAAAAA; +} +.codehilite .gt, .highlight .gt { + color: #AA0000; +} +.codehilite .gd, .highlight .gd { + background-color: #FFDDDD; +} +.codehilite .gi, .highlight .gi { + background-color: #DDFFDD; +} +.codehilite .k, .highlight .k { + color: #3B78E7; +} +.codehilite .kc, .highlight .kc { + color: #A71D5D; +} +.codehilite .kd, .highlight .kd { + color: #3B78E7; +} +.codehilite .kn, .highlight .kn { + color: #3B78E7; +} +.codehilite .kp, .highlight .kp { + color: #A71D5D; +} +.codehilite .kr, .highlight .kr { + color: #3E61A2; +} +.codehilite .kt, .highlight .kt { + color: #3E61A2; +} +.codehilite .c, .highlight .c { + color: #999999; +} +.codehilite .cm, .highlight .cm { + color: #999999; +} +.codehilite .cp, .highlight .cp { + color: #666666; +} +.codehilite .c1, .highlight .c1 { + color: #999999; +} +.codehilite .ch, .highlight .ch { + color: #999999; +} +.codehilite .cs, .highlight .cs { + color: #999999; +} +.codehilite .na, .highlight .na { + color: #C2185B; +} +.codehilite .nb, .highlight .nb { + color: #C2185B; +} +.codehilite .bp, .highlight .bp { + color: #3E61A2; +} +.codehilite .nc, .highlight .nc { + color: #C2185B; +} +.codehilite .no, .highlight .no { + color: #3E61A2; +} +.codehilite .nd, .highlight .nd { + color: #666666; +} +.codehilite .ni, .highlight .ni { + color: #666666; +} +.codehilite .ne, .highlight .ne { + color: #C2185B; +} +.codehilite .nf, .highlight .nf { + color: #C2185B; +} +.codehilite .nl, .highlight .nl { + color: #3B5179; +} +.codehilite .nn, .highlight .nn { + color: #EC407A; +} +.codehilite .nt, .highlight .nt { + color: #3B78E7; +} +.codehilite .nv, .highlight .nv { + color: #3E61A2; +} +.codehilite .vc, .highlight .vc { + color: #3E61A2; +} +.codehilite .vg, .highlight .vg { + color: #3E61A2; +} +.codehilite .vi, .highlight .vi { + color: #3E61A2; +} +.codehilite .nx, .highlight .nx { + color: #EC407A; +} +.codehilite .m, .highlight .m { + color: #E74C3C; +} +.codehilite .mf, .highlight .mf { + color: #E74C3C; +} +.codehilite .mh, .highlight .mh { + color: #E74C3C; +} +.codehilite .mi, .highlight .mi { + color: #E74C3C; +} +.codehilite .il, .highlight .il { + color: #E74C3C; +} +.codehilite .mo, .highlight .mo { + color: #E74C3C; +} +.codehilite .s, .highlight .s { + color: #0D904F; +} +.codehilite .sb, .highlight .sb { + color: #0D904F; +} +.codehilite .sc, .highlight .sc { + color: #0D904F; +} +.codehilite .sd, .highlight .sd { + color: #999999; +} +.codehilite .s2, .highlight .s2 { + color: #0D904F; +} +.codehilite .se, .highlight .se { + color: #183691; +} +.codehilite .sh, .highlight .sh { + color: #183691; +} +.codehilite .si, .highlight .si { + color: #183691; +} +.codehilite .sx, .highlight .sx { + color: #183691; +} +.codehilite .sr, .highlight .sr { + color: #009926; +} +.codehilite .s1, .highlight .s1 { + color: #0D904F; +} +.codehilite .ss, .highlight .ss { + color: #0D904F; +} +.codehilite .err, .highlight .err { + color: #A61717; +} +.codehilite .w, .highlight .w { + color: transparent; +} +.codehilite .hll, .highlight .hll { + display: block; + margin: 0 -1.1764705882em; + padding: 0 1.1764705882em; + background-color: rgba(255, 235, 59, 0.5); +} + +.codehilitetable, .highlighttable { + display: block; + overflow: hidden; +} +.codehilitetable tbody, .highlighttable tbody, +.codehilitetable td, +.highlighttable td { + display: block; + padding: 0; +} +.codehilitetable tr, .highlighttable tr { + display: flex; +} +.codehilitetable pre, .highlighttable pre { + margin: 0; +} +.codehilitetable .linenos, .highlighttable .linenos { + padding: 0.525rem 1.1764705882em; + padding-right: 0; + font-size: 0.85em; + background-color: var(--md-code-bg-color); + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.codehilitetable .linenodiv, .highlighttable .linenodiv { + padding-right: 0.5882352941em; + box-shadow: inset -0.05rem 0 var(--md-default-fg-color--lightest); +} +.codehilitetable .linenodiv pre, .highlighttable .linenodiv pre { + color: var(--md-default-fg-color--lighter); + text-align: right; +} +.codehilitetable .code, .highlighttable .code { + flex: 1; + overflow: hidden; +} + +.md-typeset .codehilitetable, .md-typeset .highlighttable { + margin: 1em 0; + direction: ltr; + border-radius: 0.1rem; +} +.md-typeset .codehilitetable code, .md-typeset .highlighttable code { + border-radius: 0; +} +@media screen and (max-width: 44.9375em) { + .md-typeset > .codehilite, .md-typeset > .highlight { + margin: 1em -0.8rem; + } + .md-typeset > .codehilite .hll, .md-typeset > .highlight .hll { + margin: 0 -0.8rem; + padding: 0 0.8rem; + } + .md-typeset > .codehilite code, .md-typeset > .highlight code { + border-radius: 0; + } + .md-typeset > .codehilitetable, .md-typeset > .highlighttable { + margin: 1em -0.8rem; + border-radius: 0; + } + .md-typeset > .codehilitetable .hll, .md-typeset > .highlighttable .hll { + margin: 0 -0.8rem; + padding: 0 0.8rem; + } +} + +:root { + --md-footnotes-icon: url('data:image/svg+xml;charset=utf-8,'); +} + +.md-typeset [id^="fnref:"] { + display: inline-block; +} +.md-typeset [id^="fnref:"]:target { + margin-top: -3.8rem; + padding-top: 3.8rem; + pointer-events: none; +} +.md-typeset [id^="fn:"]::before { + display: none; + height: 0; + content: ""; +} +.md-typeset [id^="fn:"]:target::before { + display: block; + margin-top: -3.5rem; + padding-top: 3.5rem; + pointer-events: none; +} +.md-typeset .footnote { + color: var(--md-default-fg-color--light); + font-size: 0.64rem; +} +.md-typeset .footnote ol { + margin-left: 0; +} +.md-typeset .footnote li { + transition: color 125ms; +} +.md-typeset .footnote li:target { + color: var(--md-default-fg-color); +} +.md-typeset .footnote li :first-child { + margin-top: 0; +} +.md-typeset .footnote li:hover .footnote-backref, .md-typeset .footnote li:target .footnote-backref { + transform: translateX(0); + opacity: 1; +} +.md-typeset .footnote li:hover .footnote-backref:hover { + color: var(--md-accent-fg-color); +} +.md-typeset .footnote-ref { + display: inline-block; + pointer-events: initial; +} +.md-typeset .footnote-backref { + display: inline-block; + color: var(--md-primary-fg-color); + font-size: 0; + vertical-align: text-bottom; + transform: translateX(0.25rem); + opacity: 0; + transition: color 250ms, transform 250ms 250ms, opacity 125ms 250ms; +} +[dir=rtl] .md-typeset .footnote-backref { + transform: translateX(-0.25rem); +} +.md-typeset .footnote-backref::before { + display: inline-block; + width: 0.8rem; + height: 0.8rem; + background-color: currentColor; + -webkit-mask-image: var(--md-footnotes-icon); + mask-image: var(--md-footnotes-icon); + content: ""; +} +[dir=rtl] .md-typeset .footnote-backref::before svg { + transform: scaleX(-1); +} +@media print { + .md-typeset .footnote-backref { + color: var(--md-primary-fg-color); + transform: translateX(0); + opacity: 1; + } +} + +.md-typeset .headerlink { + display: inline-block; + margin-left: 0.5rem; + visibility: hidden; + opacity: 0; + transition: color 250ms, visibility 0ms 500ms, opacity 125ms; +} +[dir=rtl] .md-typeset .headerlink { + margin-right: 0.5rem; + margin-left: initial; +} +html body .md-typeset .headerlink { + color: var(--md-default-fg-color--lighter); +} +@media print { + .md-typeset .headerlink { + display: none; + } +} +.md-typeset :hover > .headerlink, +.md-typeset :target > .headerlink, +.md-typeset .headerlink:focus { + visibility: visible; + opacity: 1; + transition: color 250ms, visibility 0ms, opacity 125ms; +} +.md-typeset :target > .headerlink, +.md-typeset .headerlink:focus, +.md-typeset .headerlink:hover { + color: var(--md-accent-fg-color); +} +.md-typeset h3[id]::before, .md-typeset h2[id]::before, .md-typeset h1[id]::before { + display: block; + margin-top: -0.4rem; + padding-top: 0.4rem; + content: ""; +} +.md-typeset h3[id]:target::before, .md-typeset h2[id]:target::before, .md-typeset h1[id]:target::before { + margin-top: -3.4rem; + padding-top: 3.4rem; +} +.md-typeset h4[id]::before { + display: block; + margin-top: -0.45rem; + padding-top: 0.45rem; + content: ""; +} +.md-typeset h4[id]:target::before { + margin-top: -3.45rem; + padding-top: 3.45rem; +} +.md-typeset h6[id]::before, .md-typeset h5[id]::before { + display: block; + margin-top: -0.6rem; + padding-top: 0.6rem; + content: ""; +} +.md-typeset h6[id]:target::before, .md-typeset h5[id]:target::before { + margin-top: -3.6rem; + padding-top: 3.6rem; +} +.md-typeset .MJXc-display { + margin: 0.75em 0; + padding: 0.75em 0; + overflow: auto; + touch-action: auto; +} +@media screen and (max-width: 44.9375em) { + .md-typeset > p > .MJXc-display { + margin: 0.75em -0.8rem; + padding: 0.25em 0.8rem; + } +} +.md-typeset .MathJax_CHTML { + outline: 0; +} + +.md-typeset del.critic, +.md-typeset ins.critic, +.md-typeset .critic.comment { + padding: 0 0.25em; + border-radius: 0.1rem; + -webkit-box-decoration-break: clone; + box-decoration-break: clone; +} +.md-typeset del.critic { + background-color: #FFDDDD; +} +.md-typeset ins.critic { + background-color: #DDFFDD; +} +.md-typeset .critic.comment { + color: #999999; +} +.md-typeset .critic.comment::before { + content: "/* "; +} +.md-typeset .critic.comment::after { + content: " */"; +} +.md-typeset .critic.block { + display: block; + margin: 1em 0; + padding-right: 0.8rem; + padding-left: 0.8rem; + overflow: auto; + box-shadow: none; +} +.md-typeset .critic.block :first-child { + margin-top: 0.5em; +} +.md-typeset .critic.block :last-child { + margin-bottom: 0.5em; +} + +:root { + --md-details-icon: url('data:image/svg+xml;charset=utf-8,'); +} + +.md-typeset details { + display: block; + padding-top: 0; + overflow: visible; +} +.md-typeset details[open] > summary::after { + transform: rotate(90deg); +} +.md-typeset details:not([open]) { + padding-bottom: 0; +} +.md-typeset details:not([open]) > summary { + border-bottom-right-radius: 0.1rem; +} +.md-typeset details::after { + display: table; + content: ""; +} +.md-typeset summary { + display: block; + min-height: 1rem; + padding: 0.4rem 1.8rem 0.4rem 2rem; + border-top-right-radius: 0.1rem; + cursor: pointer; +} +[dir=rtl] .md-typeset summary { + padding: 0.4rem 2rem 0.4rem 1.8rem; +} +.md-typeset summary::-webkit-details-marker { + display: none; +} +.md-typeset summary::after { + position: absolute; + top: 0.4rem; + right: 0.4rem; + width: 1rem; + height: 1rem; + background-color: currentColor; + -webkit-mask-image: var(--md-details-icon); + mask-image: var(--md-details-icon); + transform: rotate(0deg); + transition: transform 250ms; + content: ""; +} +[dir=rtl] .md-typeset summary::after { + right: initial; + left: 0.4rem; + transform: rotate(180deg); +} + +.md-typeset img.emojione, +.md-typeset img.twemoji, +.md-typeset img.gemoji { + width: 1.125em; + vertical-align: -15%; +} +.md-typeset span.twemoji { + display: inline-block; + height: 1.125em; + vertical-align: text-top; +} +.md-typeset span.twemoji svg { + width: 1.125em; + fill: currentColor; +} + +.highlight [data-linenos]::before { + position: -webkit-sticky; + position: sticky; + left: -1.1764705882em; + float: left; + margin-right: 1.1764705882em; + margin-left: -1.1764705882em; + padding-left: 1.1764705882em; + color: var(--md-default-fg-color--lighter); + background-color: var(--md-code-bg-color); + box-shadow: inset -0.05rem 0 var(--md-default-fg-color--lightest); + content: attr(data-linenos); + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.md-typeset .tabbed-content { + display: none; + order: 99; + width: 100%; + box-shadow: 0 -0.05rem var(--md-default-fg-color--lightest); +} +.md-typeset .tabbed-content > .codehilite:only-child pre, +.md-typeset .tabbed-content > .codehilitetable:only-child, +.md-typeset .tabbed-content > .highlight:only-child pre, +.md-typeset .tabbed-content > .highlighttable:only-child { + margin: 0; +} +.md-typeset .tabbed-content > .codehilite:only-child pre > code, +.md-typeset .tabbed-content > .codehilitetable:only-child > code, +.md-typeset .tabbed-content > .highlight:only-child pre > code, +.md-typeset .tabbed-content > .highlighttable:only-child > code { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.md-typeset .tabbed-content > .tabbed-set { + margin: 0; +} +.md-typeset .tabbed-set { + position: relative; + display: flex; + flex-wrap: wrap; + margin: 1em 0; + border-radius: 0.1rem; +} +.md-typeset .tabbed-set > input { + display: none; +} +.md-typeset .tabbed-set > input:checked + label { + color: var(--md-accent-fg-color); + border-color: var(--md-accent-fg-color); +} +.md-typeset .tabbed-set > input:checked + label + .tabbed-content { + display: block; +} +.md-typeset .tabbed-set > label { + z-index: 1; + width: auto; + padding: 0.6rem 1.25em 0.5rem; + color: var(--md-default-fg-color--light); + font-weight: 700; + font-size: 0.64rem; + border-bottom: 0.1rem solid transparent; + cursor: pointer; + transition: color 125ms; +} +html .md-typeset .tabbed-set > label:hover { + color: var(--md-accent-fg-color); +} + +:root { + --md-tasklist-icon: url('data:image/svg+xml;charset=utf-8,'); + --md-tasklist-icon--checked: url('data:image/svg+xml;charset=utf-8,'); +} + +.md-typeset .task-list-item { + position: relative; + list-style-type: none; +} +.md-typeset .task-list-item [type=checkbox] { + position: absolute; + top: 0.45em; + left: -2em; +} +[dir=rtl] .md-typeset .task-list-item [type=checkbox] { + right: -2em; + left: initial; +} +.md-typeset .task-list-control .task-list-indicator::before { + position: absolute; + top: 0.15em; + left: -1.5em; + width: 1.25em; + height: 1.25em; + background-color: var(--md-default-fg-color--lightest); + -webkit-mask-image: var(--md-tasklist-icon); + mask-image: var(--md-tasklist-icon); + content: ""; +} +[dir=rtl] .md-typeset .task-list-control .task-list-indicator::before { + right: -1.5em; + left: initial; +} +.md-typeset .task-list-control [type=checkbox]:checked + .task-list-indicator::before { + background-color: #00e676; + -webkit-mask-image: var(--md-tasklist-icon--checked); + mask-image: var(--md-tasklist-icon--checked); +} +.md-typeset .task-list-control [type=checkbox] { + z-index: -1; + opacity: 0; +} diff --git a/docs/theme/material/assets/stylesheets/palette.85bb4ebe.min.css b/docs/theme/material/assets/stylesheets/palette.85bb4ebe.min.css new file mode 100644 index 00000000..8f8a04a2 --- /dev/null +++ b/docs/theme/material/assets/stylesheets/palette.85bb4ebe.min.css @@ -0,0 +1,3 @@ +[data-md-color-primary=red]{--md-primary-fg-color: hsla(1deg, 83%, 63%, 1);--md-primary-fg-color--light: hsla(0deg, 73%, 77%, 1);--md-primary-fg-color--dark: hsla(1deg, 77%, 55%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=pink]{--md-primary-fg-color: hsla(340deg, 82%, 52%, 1);--md-primary-fg-color--light: hsla(340deg, 82%, 76%, 1);--md-primary-fg-color--dark: hsla(336deg, 78%, 43%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=purple]{--md-primary-fg-color: hsla(291deg, 47%, 51%, 1);--md-primary-fg-color--light: hsla(291deg, 47%, 71%, 1);--md-primary-fg-color--dark: hsla(287deg, 65%, 40%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=deep-purple]{--md-primary-fg-color: hsla(262deg, 47%, 55%, 1);--md-primary-fg-color--light: hsla(261deg, 46%, 74%, 1);--md-primary-fg-color--dark: hsla(262deg, 52%, 47%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=indigo]{--md-primary-fg-color: hsla(231deg, 48%, 48%, 1);--md-primary-fg-color--light: hsla(231deg, 44%, 74%, 1);--md-primary-fg-color--dark: hsla(232deg, 54%, 41%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=blue]{--md-primary-fg-color: hsla(207deg, 90%, 54%, 1);--md-primary-fg-color--light: hsla(207deg, 90%, 77%, 1);--md-primary-fg-color--dark: hsla(210deg, 79%, 46%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=light-blue]{--md-primary-fg-color: hsla(199deg, 98%, 48%, 1);--md-primary-fg-color--light: hsla(199deg, 92%, 74%, 1);--md-primary-fg-color--dark: hsla(201deg, 98%, 41%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=cyan]{--md-primary-fg-color: hsla(187deg, 100%, 42%, 1);--md-primary-fg-color--light: hsla(187deg, 72%, 71%, 1);--md-primary-fg-color--dark: hsla(186deg, 100%, 33%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=teal]{--md-primary-fg-color: hsla(174deg, 100%, 29%, 1);--md-primary-fg-color--light: hsla(174deg, 42%, 65%, 1);--md-primary-fg-color--dark: hsla(173deg, 100%, 24%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=green]{--md-primary-fg-color: hsla(122deg, 39%, 49%, 1);--md-primary-fg-color--light: hsla(122deg, 37%, 74%, 1);--md-primary-fg-color--dark: hsla(123deg, 43%, 39%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=light-green]{--md-primary-fg-color: hsla(88deg, 50%, 53%, 1);--md-primary-fg-color--light: hsla(88deg, 50%, 76%, 1);--md-primary-fg-color--dark: hsla(92deg, 48%, 42%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=lime]{--md-primary-fg-color: hsla(66deg, 70%, 54%, 1);--md-primary-fg-color--light: hsla(66deg, 71%, 77%, 1);--md-primary-fg-color--dark: hsla(62deg, 61%, 44%, 1);--md-primary-bg-color: var(--md-default-fg-color);--md-primary-bg-color--light: var(--md-default-fg-color--light)}[data-md-color-primary=yellow]{--md-primary-fg-color: hsla(54deg, 100%, 62%, 1);--md-primary-fg-color--light: hsla(54deg, 100%, 81%, 1);--md-primary-fg-color--dark: hsla(43deg, 96%, 58%, 1);--md-primary-bg-color: var(--md-default-fg-color);--md-primary-bg-color--light: var(--md-default-fg-color--light)}[data-md-color-primary=amber]{--md-primary-fg-color: hsla(45deg, 100%, 51%, 1);--md-primary-fg-color--light: hsla(45deg, 100%, 75%, 1);--md-primary-fg-color--dark: hsla(38deg, 100%, 50%, 1);--md-primary-bg-color: var(--md-default-fg-color);--md-primary-bg-color--light: var(--md-default-fg-color--light)}[data-md-color-primary=orange]{--md-primary-fg-color: hsla(36deg, 100%, 57%, 1);--md-primary-fg-color--light: hsla(36deg, 100%, 75%, 1);--md-primary-fg-color--dark: hsla(33deg, 100%, 49%, 1);--md-primary-bg-color: var(--md-default-fg-color);--md-primary-bg-color--light: var(--md-default-fg-color--light)}[data-md-color-primary=deep-orange]{--md-primary-fg-color: hsla(14deg, 100%, 63%, 1);--md-primary-fg-color--light: hsla(14deg, 100%, 78%, 1);--md-primary-fg-color--dark: hsla(14deg, 91%, 54%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=brown]{--md-primary-fg-color: hsla(16deg, 25%, 38%, 1);--md-primary-fg-color--light: hsla(15deg, 15%, 69%, 1);--md-primary-fg-color--dark: hsla(14deg, 26%, 29%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=grey]{--md-primary-fg-color: hsla(0deg, 0%, 46%, 1);--md-primary-fg-color--light: hsla(0deg, 0%, 93%, 1);--md-primary-fg-color--dark: hsla(0deg, 0%, 38%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=blue-grey]{--md-primary-fg-color: hsla(199deg, 18%, 40%, 1);--md-primary-fg-color--light: hsla(200deg, 15%, 73%, 1);--md-primary-fg-color--dark: hsla(199deg, 18%, 33%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=white]{--md-primary-fg-color: hsla(231deg, 48%, 48%, 1);--md-primary-fg-color--light: hsla(230deg, 44%, 64%, 1);--md-primary-fg-color--dark: hsla(232deg, 54%, 41%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=white] .md-header{color:var(--md-default-fg-color);background-color:var(--md-default-bg-color)}[data-md-color-primary=white] .md-hero{color:var(--md-default-fg-color);background-color:var(--md-default-bg-color)}[data-md-color-primary=white] .md-hero--expand{border-bottom:.05rem solid var(--md-default-fg-color--lightest)}@media screen and (max-width: 59.9375em){[data-md-color-primary=white] .md-nav__source{color:var(--md-default-fg-color);background-color:var(--md-default-fg-color--lightest)}}@media screen and (min-width: 60em){[data-md-color-primary=white] .md-search__input{background-color:var(--md-default-fg-color--lightest)}[data-md-color-primary=white] .md-search__input+.md-search__icon{color:var(--md-default-fg-color)}[data-md-color-primary=white] .md-search__input::-webkit-input-placeholder{color:var(--md-default-fg-color--light)}[data-md-color-primary=white] .md-search__input::-moz-placeholder{color:var(--md-default-fg-color--light)}[data-md-color-primary=white] .md-search__input::-ms-input-placeholder{color:var(--md-default-fg-color--light)}[data-md-color-primary=white] .md-search__input::placeholder{color:var(--md-default-fg-color--light)}[data-md-color-primary=white] .md-search__input:hover{background-color:var(--md-default-fg-color--lighter)}}@media screen and (max-width: 76.1875em){html [data-md-color-primary=white] .md-nav--primary .md-nav__title[for=__drawer]{color:var(--md-default-fg-color);background-color:var(--md-default-bg-color)}[data-md-color-primary=white] .md-hero{border-bottom:.05rem solid var(--md-default-fg-color--lightest)}}@media screen and (min-width: 76.25em){[data-md-color-primary=white] .md-tabs{color:var(--md-default-fg-color);background-color:var(--md-default-bg-color);border-bottom:.05rem solid var(--md-default-fg-color--lightest)}}[data-md-color-primary=black]{--md-primary-fg-color: hsla(231deg, 48%, 48%, 1);--md-primary-fg-color--light: hsla(230deg, 44%, 64%, 1);--md-primary-fg-color--dark: hsla(232deg, 54%, 41%, 1);--md-primary-bg-color: var(--md-default-bg-color);--md-primary-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-primary=black] .md-header{background-color:#000}[data-md-color-primary=black] .md-hero{background-color:#000}@media screen and (max-width: 59.9375em){[data-md-color-primary=black] .md-nav__source{background-color:var(--md-default-fg-color)}}@media screen and (min-width: 60em){[data-md-color-primary=black] .md-search__input{background-color:var(--md-default-bg-color--lighter)}[data-md-color-primary=black] .md-search__input:hover{background-color:var(--md-default-bg-color--lightest)}}@media screen and (max-width: 76.1875em){html [data-md-color-primary=black] .md-nav--primary .md-nav__title[for=__drawer]{background-color:#000}}@media screen and (min-width: 76.25em){[data-md-color-primary=black] .md-tabs{background-color:#000}}[data-md-color-accent=red]{--md-accent-fg-color: hsla(348deg, 100%, 55%, 1);--md-accent-fg-color--transparent: hsla(348deg, 100%, 55%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=pink]{--md-accent-fg-color: hsla(339deg, 100%, 48%, 1);--md-accent-fg-color--transparent: hsla(339deg, 100%, 48%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=purple]{--md-accent-fg-color: hsla(291deg, 96%, 62%, 1);--md-accent-fg-color--transparent: hsla(291deg, 96%, 62%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=deep-purple]{--md-accent-fg-color: hsla(256deg, 100%, 65%, 1);--md-accent-fg-color--transparent: hsla(256deg, 100%, 65%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=indigo]{--md-accent-fg-color: hsla(231deg, 99%, 66%, 1);--md-accent-fg-color--transparent: hsla(231deg, 99%, 66%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=blue]{--md-accent-fg-color: hsla(218deg, 100%, 63%, 1);--md-accent-fg-color--transparent: hsla(218deg, 100%, 63%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=light-blue]{--md-accent-fg-color: hsla(203deg, 100%, 46%, 1);--md-accent-fg-color--transparent: hsla(203deg, 100%, 46%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=cyan]{--md-accent-fg-color: hsla(188deg, 100%, 42%, 1);--md-accent-fg-color--transparent: hsla(188deg, 100%, 42%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=teal]{--md-accent-fg-color: hsla(172deg, 100%, 37%, 1);--md-accent-fg-color--transparent: hsla(172deg, 100%, 37%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=green]{--md-accent-fg-color: hsla(145deg, 100%, 39%, 1);--md-accent-fg-color--transparent: hsla(145deg, 100%, 39%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=light-green]{--md-accent-fg-color: hsla(97deg, 81%, 48%, 1);--md-accent-fg-color--transparent: hsla(97deg, 81%, 48%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)}[data-md-color-accent=lime]{--md-accent-fg-color: hsla(75deg, 100%, 46%, 1);--md-accent-fg-color--transparent: hsla(75deg, 100%, 46%, 0.1);--md-accent-bg-color: var(--md-default-fg-color);--md-accent-bg-color--light: var(--md-default-fg-color--light)}[data-md-color-accent=yellow]{--md-accent-fg-color: hsla(50deg, 100%, 50%, 1);--md-accent-fg-color--transparent: hsla(50deg, 100%, 50%, 0.1);--md-accent-bg-color: var(--md-default-fg-color);--md-accent-bg-color--light: var(--md-default-fg-color--light)}[data-md-color-accent=amber]{--md-accent-fg-color: hsla(40deg, 100%, 50%, 1);--md-accent-fg-color--transparent: hsla(40deg, 100%, 50%, 0.1);--md-accent-bg-color: var(--md-default-fg-color);--md-accent-bg-color--light: var(--md-default-fg-color--light)}[data-md-color-accent=orange]{--md-accent-fg-color: hsla(34deg, 100%, 50%, 1);--md-accent-fg-color--transparent: hsla(34deg, 100%, 50%, 0.1);--md-accent-bg-color: var(--md-default-fg-color);--md-accent-bg-color--light: var(--md-default-fg-color--light)}[data-md-color-accent=deep-orange]{--md-accent-fg-color: hsla(14deg, 100%, 63%, 1);--md-accent-fg-color--transparent: hsla(14deg, 100%, 63%, 0.1);--md-accent-bg-color: var(--md-default-bg-color);--md-accent-bg-color--light: var(--md-default-bg-color--light)} + +/*# sourceMappingURL=palette.85bb4ebe.min.css.map*/ \ No newline at end of file diff --git a/docs/theme/material/assets/stylesheets/palette.85bb4ebe.min.css.map b/docs/theme/material/assets/stylesheets/palette.85bb4ebe.min.css.map new file mode 100644 index 00000000..b650d405 --- /dev/null +++ b/docs/theme/material/assets/stylesheets/palette.85bb4ebe.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./src/assets/stylesheets/palette.scss","webpack:///./src/assets/stylesheets/utilities/_break.scss"],"names":[],"mappings":"AAiEE,4BACE,+CACA,sDACA,qDAOE,kDACA,gEAXJ,6BACE,iDACA,wDACA,uDAOE,kDACA,gEAXJ,+BACE,iDACA,wDACA,uDAOE,kDACA,gEAXJ,oCACE,iDACA,wDACA,uDAOE,kDACA,gEAXJ,+BACE,iDACA,wDACA,uDAOE,kDACA,gEAXJ,6BACE,iDACA,wDACA,uDAOE,kDACA,gEAXJ,mCACE,iDACA,wDACA,uDAOE,kDACA,gEAXJ,6BACE,kDACA,wDACA,wDAOE,kDACA,gEAXJ,6BACE,kDACA,wDACA,wDAOE,kDACA,gEAXJ,8BACE,iDACA,wDACA,uDAOE,kDACA,gEAXJ,oCACE,gDACA,uDACA,sDAOE,kDACA,gEAXJ,6BACE,gDACA,uDACA,sDAIE,kDACA,gEARJ,+BACE,iDACA,wDACA,sDAIE,kDACA,gEARJ,8BACE,iDACA,wDACA,uDAIE,kDACA,gEARJ,+BACE,iDACA,wDACA,uDAIE,kDACA,gEARJ,oCACE,iDACA,wDACA,sDAOE,kDACA,gEAXJ,8BACE,gDACA,uDACA,sDAOE,kDACA,gEAXJ,6BACE,8CACA,qDACA,oDAOE,kDACA,gEAXJ,kCACE,iDACA,wDACA,uDAOE,kDACA,gEAUN,8BACE,iDACA,wDACA,uDACA,kDACA,gEAGA,yCACE,iCACA,4CAIF,uCACE,iCACA,4CAGA,+CACE,gECmGF,yCD3FA,8CACE,iCACA,uDCuEF,oCD/DA,gDACE,sDAGA,iEACE,iCAIF,2EACE,wCADF,kEACE,wCADF,uEACE,wCADF,6DACE,wCAIF,sDACE,sDCkEJ,yCDzDA,iFACE,iCACA,4CAIF,uCACE,iECgCF,uCDxBA,uCACE,iCACA,4CACA,iEAUN,8BACE,iDACA,wDACA,uDACA,kDACA,gEAGA,yCACE,sBAIF,uCACE,sBCeA,yCDRA,8CACE,6CCXF,oCDmBA,gDACE,qDAGA,sDACE,uDCNJ,yCDeA,iFACE,uBClCF,uCD0CA,uCACE,uBA6BJ,2BACE,iDACA,gEAOE,iDACA,+DAVJ,4BACE,iDACA,gEAOE,iDACA,+DAVJ,8BACE,gDACA,+DAOE,iDACA,+DAVJ,mCACE,iDACA,gEAOE,iDACA,+DAVJ,8BACE,gDACA,+DAOE,iDACA,+DAVJ,4BACE,iDACA,gEAOE,iDACA,+DAVJ,kCACE,iDACA,gEAOE,iDACA,+DAVJ,4BACE,iDACA,gEAOE,iDACA,+DAVJ,4BACE,iDACA,gEAOE,iDACA,+DAVJ,6BACE,iDACA,gEAOE,iDACA,+DAVJ,mCACE,+CACA,8DAOE,iDACA,+DAVJ,4BACE,gDACA,+DAIE,iDACA,+DAPJ,8BACE,gDACA,+DAIE,iDACA,+DAPJ,6BACE,gDACA,+DAIE,iDACA,+DAPJ,8BACE,gDACA,+DAIE,iDACA,+DAPJ,mCACE,gDACA,+DAOE,iDACA,+D","file":"assets/stylesheets/palette.85bb4ebe.min.css","sourcesContent":["////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Dependencies\n// ----------------------------------------------------------------------------\n\n@import \"modularscale\";\n@import \"material-color\";\n\n// ----------------------------------------------------------------------------\n// Local imports\n// ----------------------------------------------------------------------------\n\n@import \"utilities/break\";\n@import \"utilities/convert\";\n\n@import \"config\";\n\n// ----------------------------------------------------------------------------\n// Rules: primary colors\n// ----------------------------------------------------------------------------\n\n@each $name, $colors in (\n \"red\": $clr-red-400 $clr-red-200 $clr-red-600,\n \"pink\": $clr-pink-500 $clr-pink-200 $clr-pink-700,\n \"purple\": $clr-purple-400 $clr-purple-200 $clr-purple-600,\n \"deep-purple\": $clr-deep-purple-400 $clr-deep-purple-200 $clr-deep-purple-500,\n \"indigo\": $clr-indigo-500 $clr-indigo-200 $clr-indigo-700,\n \"blue\": $clr-blue-500 $clr-blue-200 $clr-blue-700,\n \"light-blue\": $clr-light-blue-500 $clr-light-blue-200 $clr-light-blue-700,\n \"cyan\": $clr-cyan-500 $clr-cyan-200 $clr-cyan-700,\n \"teal\": $clr-teal-500 $clr-teal-200 $clr-teal-700,\n \"green\": $clr-green-500 $clr-green-200 $clr-green-700,\n \"light-green\": $clr-light-green-500 $clr-light-green-200 $clr-light-green-700,\n \"lime\": $clr-lime-500 $clr-lime-200 $clr-lime-700,\n \"yellow\": $clr-yellow-500 $clr-yellow-200 $clr-yellow-700,\n \"amber\": $clr-amber-500 $clr-amber-200 $clr-amber-700,\n \"orange\": $clr-orange-400 $clr-orange-200 $clr-orange-600,\n \"deep-orange\": $clr-deep-orange-400 $clr-deep-orange-200 $clr-deep-orange-600,\n \"brown\": $clr-brown-500 $clr-brown-200 $clr-brown-700,\n \"grey\": $clr-grey-600 $clr-grey-200 $clr-grey-700,\n \"blue-grey\": $clr-blue-grey-600 $clr-blue-grey-200 $clr-blue-grey-700\n) {\n\n // Color palette\n [data-md-color-primary=\"#{$name}\"] {\n --md-primary-fg-color: hsla(#{hex2hsl(nth($colors, 1))}, 1);\n --md-primary-fg-color--light: hsla(#{hex2hsl(nth($colors, 2))}, 1);\n --md-primary-fg-color--dark: hsla(#{hex2hsl(nth($colors, 3))}, 1);\n\n // Inverted text for lighter shades\n @if index(\"lime\" \"yellow\" \"amber\" \"orange\", $name) {\n --md-primary-bg-color: var(--md-default-fg-color);\n --md-primary-bg-color--light: var(--md-default-fg-color--light);\n } @else {\n --md-primary-bg-color: var(--md-default-bg-color);\n --md-primary-bg-color--light: var(--md-default-bg-color--light);\n }\n }\n}\n\n// ----------------------------------------------------------------------------\n// Rules: white\n// ----------------------------------------------------------------------------\n\n// Color palette\n[data-md-color-primary=\"white\"] {\n --md-primary-fg-color: hsla(#{hex2hsl($clr-indigo-500)}, 1);\n --md-primary-fg-color--light: hsla(#{hex2hsl($clr-indigo-300)}, 1);\n --md-primary-fg-color--dark: hsla(#{hex2hsl($clr-indigo-700)}, 1);\n --md-primary-bg-color: var(--md-default-bg-color);\n --md-primary-bg-color--light: var(--md-default-bg-color--light);\n\n // Application header (stays always on top)\n .md-header {\n color: var(--md-default-fg-color);\n background-color: var(--md-default-bg-color);\n }\n\n // Hero teaser\n .md-hero {\n color: var(--md-default-fg-color);\n background-color: var(--md-default-bg-color);\n\n // Add a border if there are no tabs\n &--expand {\n border-bottom: px2rem(1px) solid var(--md-default-fg-color--lightest);\n }\n }\n\n // [tablet portrait -]: Layered navigation\n @include break-to-device(tablet portrait) {\n\n // Repository containing source\n .md-nav__source {\n color: var(--md-default-fg-color);\n background-color: var(--md-default-fg-color--lightest);\n }\n }\n\n // [tablet portrait +]: Change color of search input\n @include break-from-device(tablet landscape) {\n\n // Search input\n .md-search__input {\n background-color: var(--md-default-fg-color--lightest);\n\n // Icon color\n + .md-search__icon {\n color: var(--md-default-fg-color);\n }\n\n // Placeholder color\n &::placeholder {\n color: var(--md-default-fg-color--light);\n }\n\n // Hovered search field\n &:hover {\n background-color: var(--md-default-fg-color--lighter);\n }\n }\n }\n\n // [tablet -]: Layered navigation\n @include break-to-device(tablet) {\n\n // Site title in main navigation\n html & .md-nav--primary .md-nav__title[for=\"__drawer\"] {\n color: var(--md-default-fg-color);\n background-color: var(--md-default-bg-color);\n }\n\n // Hero teaser\n .md-hero {\n border-bottom: px2rem(1px) solid var(--md-default-fg-color--lightest);\n }\n }\n\n // [screen +]: Set background color for tabs\n @include break-from-device(screen) {\n\n // Tabs with outline\n .md-tabs {\n color: var(--md-default-fg-color);\n background-color: var(--md-default-bg-color);\n border-bottom: px2rem(1px) solid var(--md-default-fg-color--lightest);\n }\n }\n}\n\n// ----------------------------------------------------------------------------\n// Rules: black\n// ----------------------------------------------------------------------------\n\n// Color palette\n[data-md-color-primary=\"black\"] {\n --md-primary-fg-color: hsla(#{hex2hsl($clr-indigo-500)}, 1);\n --md-primary-fg-color--light: hsla(#{hex2hsl($clr-indigo-300)}, 1);\n --md-primary-fg-color--dark: hsla(#{hex2hsl($clr-indigo-700)}, 1);\n --md-primary-bg-color: var(--md-default-bg-color);\n --md-primary-bg-color--light: var(--md-default-bg-color--light);\n\n // Application header (stays always on top)\n .md-header {\n background-color: hsla(0, 0%, 0%, 1);\n }\n\n // Hero teaser\n .md-hero {\n background-color: hsla(0, 0%, 0%, 1);\n }\n\n // [tablet portrait -]: Layered navigation\n @include break-to-device(tablet portrait) {\n\n // Repository containing source\n .md-nav__source {\n background-color: var(--md-default-fg-color);\n }\n }\n\n // [tablet landscape +]: Header-embedded search\n @include break-from-device(tablet landscape) {\n\n // Search input\n .md-search__input {\n background-color: var(--md-default-bg-color--lighter);\n\n // Hovered search field\n &:hover {\n background-color: var(--md-default-bg-color--lightest);\n }\n }\n }\n\n // [tablet -]: Layered navigation\n @include break-to-device(tablet) {\n\n // Site title in main navigation\n html & .md-nav--primary .md-nav__title[for=\"__drawer\"] {\n background-color: hsla(0, 0%, 0%, 1);\n }\n }\n\n // [screen +]: Set background color for tabs\n @include break-from-device(screen) {\n\n // Tabs with outline\n .md-tabs {\n background-color: hsla(0, 0%, 0%, 1);\n }\n }\n}\n\n// ----------------------------------------------------------------------------\n// Rules: accent colors\n// ----------------------------------------------------------------------------\n\n@each $name, $color in (\n \"red\": $clr-red-a400,\n \"pink\": $clr-pink-a400,\n \"purple\": $clr-purple-a200,\n \"deep-purple\": $clr-deep-purple-a200,\n \"indigo\": $clr-indigo-a200,\n \"blue\": $clr-blue-a200,\n \"light-blue\": $clr-light-blue-a700,\n \"cyan\": $clr-cyan-a700,\n \"teal\": $clr-teal-a700,\n \"green\": $clr-green-a700,\n \"light-green\": $clr-light-green-a700,\n \"lime\": $clr-lime-a700,\n \"yellow\": $clr-yellow-a700,\n \"amber\": $clr-amber-a700,\n \"orange\": $clr-orange-a400,\n \"deep-orange\": $clr-deep-orange-a200\n) {\n\n // Color palette\n [data-md-color-accent=\"#{$name}\"] {\n --md-accent-fg-color: hsla(#{hex2hsl($color)}, 1);\n --md-accent-fg-color--transparent: hsla(#{hex2hsl($color)}, 0.1);\n\n // Inverted text for lighter shades\n @if index(\"lime\" \"yellow\" \"amber\" \"orange\", $name) {\n --md-accent-bg-color: var(--md-default-fg-color);\n --md-accent-bg-color--light: var(--md-default-fg-color--light);\n } @else {\n --md-accent-bg-color: var(--md-default-bg-color);\n --md-accent-bg-color--light: var(--md-default-bg-color--light);\n }\n }\n}\n","////\n/// Copyright (c) 2016-2020 Martin Donath \n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Variables\n// ----------------------------------------------------------------------------\n\n///\n/// Device-specific breakpoints\n///\n/// @example\n/// $break-devices: (\n/// mobile: (\n/// portrait: 220px 479px,\n/// landscape: 480px 719px\n/// ),\n/// tablet: (\n/// portrait: 720px 959px,\n/// landscape: 960px 1219px\n/// ),\n/// screen: (\n/// small: 1220px 1599px,\n/// medium: 1600px 1999px,\n/// large: 2000px\n/// )\n/// );\n///\n$break-devices: () !default;\n\n// ----------------------------------------------------------------------------\n// Helpers\n// ----------------------------------------------------------------------------\n\n///\n/// Choose minimum and maximum device widths\n///\n@function break-select-min-max($devices) {\n $min: 1000000;\n $max: 0;\n @each $key, $value in $devices {\n @while type-of($value) == map {\n $value: break-select-min-max($value);\n }\n @if type-of($value) == list {\n @each $number in $value {\n @if type-of($number) == number {\n $min: min($number, $min);\n @if $max != null {\n $max: max($number, $max);\n }\n } @else {\n @error \"Invalid number: #{$number}\";\n }\n }\n } @else if type-of($value) == number {\n $min: min($value, $min);\n $max: null;\n } @else {\n @error \"Invalid value: #{$value}\";\n }\n }\n @return $min, $max;\n}\n\n///\n/// Select minimum and maximum widths for a device breakpoint\n///\n@function break-select-device($device) {\n $current: $break-devices;\n @for $n from 1 through length($device) {\n @if type-of($current) == map {\n $current: map-get($current, nth($device, $n));\n } @else {\n @error \"Invalid device map: #{$devices}\";\n }\n }\n @if type-of($current) == list or type-of($current) == number {\n $current: (default: $current);\n }\n @return break-select-min-max($current);\n}\n\n// ----------------------------------------------------------------------------\n// Mixins\n// ----------------------------------------------------------------------------\n\n///\n/// A minimum-maximum media query breakpoint\n///\n@mixin break-at($breakpoint) {\n @if type-of($breakpoint) == number {\n @media screen and (min-width: $breakpoint) {\n @content;\n }\n } @else if type-of($breakpoint) == list {\n $min: nth($breakpoint, 1);\n $max: nth($breakpoint, 2);\n @if type-of($min) == number and type-of($max) == number {\n @media screen and (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else {\n @error \"Invalid breakpoint: #{$breakpoint}\";\n }\n } @else {\n @error \"Invalid breakpoint: #{$breakpoint}\";\n }\n}\n\n///\n/// An orientation media query breakpoint\n///\n@mixin break-at-orientation($breakpoint) {\n @if type-of($breakpoint) == string {\n @media screen and (orientation: $breakpoint) {\n @content;\n }\n } @else {\n @error \"Invalid breakpoint: #{$breakpoint}\";\n }\n}\n\n///\n/// A maximum-aspect-ratio media query breakpoint\n///\n@mixin break-at-ratio($breakpoint) {\n @if type-of($breakpoint) == number {\n @media screen and (max-aspect-ratio: $breakpoint) {\n @content;\n }\n } @else {\n @error \"Invalid breakpoint: #{$breakpoint}\";\n }\n}\n\n///\n/// A minimum-maximum media query device breakpoint\n///\n@mixin break-at-device($device) {\n @if type-of($device) == string {\n $device: $device,;\n }\n @if type-of($device) == list {\n $breakpoint: break-select-device($device);\n @if nth($breakpoint, 2) != null {\n $min: nth($breakpoint, 1);\n $max: nth($breakpoint, 2);\n @media screen and (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else {\n @error \"Invalid device: #{$device}\";\n }\n } @else {\n @error \"Invalid device: #{$device}\";\n }\n}\n\n///\n/// A minimum media query device breakpoint\n///\n@mixin break-from-device($device) {\n @if type-of($device) == string {\n $device: $device,;\n }\n @if type-of($device) == list {\n $breakpoint: break-select-device($device);\n $min: nth($breakpoint, 1);\n @media screen and (min-width: $min) {\n @content;\n }\n } @else {\n @error \"Invalid device: #{$device}\";\n }\n}\n\n///\n/// A maximum media query device breakpoint\n///\n@mixin break-to-device($device) {\n @if type-of($device) == string {\n $device: $device,;\n }\n @if type-of($device) == list {\n $breakpoint: break-select-device($device);\n $max: nth($breakpoint, 2);\n @media screen and (max-width: $max) {\n @content;\n }\n } @else {\n @error \"Invalid device: #{$device}\";\n }\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/theme/material/assets/stylesheets/palette.css b/docs/theme/material/assets/stylesheets/palette.css new file mode 100644 index 00000000..837aafea --- /dev/null +++ b/docs/theme/material/assets/stylesheets/palette.css @@ -0,0 +1,364 @@ +[data-md-color-primary=red] { + --md-primary-fg-color: hsla(1deg, 83%, 63%, 1); + --md-primary-fg-color--light: hsla(0deg, 73%, 77%, 1); + --md-primary-fg-color--dark: hsla(1deg, 77%, 55%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=pink] { + --md-primary-fg-color: hsla(340deg, 82%, 52%, 1); + --md-primary-fg-color--light: hsla(340deg, 82%, 76%, 1); + --md-primary-fg-color--dark: hsla(336deg, 78%, 43%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=purple] { + --md-primary-fg-color: hsla(291deg, 47%, 51%, 1); + --md-primary-fg-color--light: hsla(291deg, 47%, 71%, 1); + --md-primary-fg-color--dark: hsla(287deg, 65%, 40%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=deep-purple] { + --md-primary-fg-color: hsla(262deg, 47%, 55%, 1); + --md-primary-fg-color--light: hsla(261deg, 46%, 74%, 1); + --md-primary-fg-color--dark: hsla(262deg, 52%, 47%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=indigo] { + --md-primary-fg-color: hsla(231deg, 48%, 48%, 1); + --md-primary-fg-color--light: hsla(231deg, 44%, 74%, 1); + --md-primary-fg-color--dark: hsla(232deg, 54%, 41%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=blue] { + --md-primary-fg-color: hsla(207deg, 90%, 54%, 1); + --md-primary-fg-color--light: hsla(207deg, 90%, 77%, 1); + --md-primary-fg-color--dark: hsla(210deg, 79%, 46%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=light-blue] { + --md-primary-fg-color: hsla(199deg, 98%, 48%, 1); + --md-primary-fg-color--light: hsla(199deg, 92%, 74%, 1); + --md-primary-fg-color--dark: hsla(201deg, 98%, 41%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=cyan] { + --md-primary-fg-color: hsla(187deg, 100%, 42%, 1); + --md-primary-fg-color--light: hsla(187deg, 72%, 71%, 1); + --md-primary-fg-color--dark: hsla(186deg, 100%, 33%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=teal] { + --md-primary-fg-color: hsla(174deg, 100%, 29%, 1); + --md-primary-fg-color--light: hsla(174deg, 42%, 65%, 1); + --md-primary-fg-color--dark: hsla(173deg, 100%, 24%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=green] { + --md-primary-fg-color: hsla(122deg, 39%, 49%, 1); + --md-primary-fg-color--light: hsla(122deg, 37%, 74%, 1); + --md-primary-fg-color--dark: hsla(123deg, 43%, 39%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=light-green] { + --md-primary-fg-color: hsla(88deg, 50%, 53%, 1); + --md-primary-fg-color--light: hsla(88deg, 50%, 76%, 1); + --md-primary-fg-color--dark: hsla(92deg, 48%, 42%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=lime] { + --md-primary-fg-color: hsla(66deg, 70%, 54%, 1); + --md-primary-fg-color--light: hsla(66deg, 71%, 77%, 1); + --md-primary-fg-color--dark: hsla(62deg, 61%, 44%, 1); + --md-primary-bg-color: var(--md-default-fg-color); + --md-primary-bg-color--light: var(--md-default-fg-color--light); +} + +[data-md-color-primary=yellow] { + --md-primary-fg-color: hsla(54deg, 100%, 62%, 1); + --md-primary-fg-color--light: hsla(54deg, 100%, 81%, 1); + --md-primary-fg-color--dark: hsla(43deg, 96%, 58%, 1); + --md-primary-bg-color: var(--md-default-fg-color); + --md-primary-bg-color--light: var(--md-default-fg-color--light); +} + +[data-md-color-primary=amber] { + --md-primary-fg-color: hsla(45deg, 100%, 51%, 1); + --md-primary-fg-color--light: hsla(45deg, 100%, 75%, 1); + --md-primary-fg-color--dark: hsla(38deg, 100%, 50%, 1); + --md-primary-bg-color: var(--md-default-fg-color); + --md-primary-bg-color--light: var(--md-default-fg-color--light); +} + +[data-md-color-primary=orange] { + --md-primary-fg-color: hsla(36deg, 100%, 57%, 1); + --md-primary-fg-color--light: hsla(36deg, 100%, 75%, 1); + --md-primary-fg-color--dark: hsla(33deg, 100%, 49%, 1); + --md-primary-bg-color: var(--md-default-fg-color); + --md-primary-bg-color--light: var(--md-default-fg-color--light); +} + +[data-md-color-primary=deep-orange] { + --md-primary-fg-color: hsla(14deg, 100%, 63%, 1); + --md-primary-fg-color--light: hsla(14deg, 100%, 78%, 1); + --md-primary-fg-color--dark: hsla(14deg, 91%, 54%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=brown] { + --md-primary-fg-color: hsla(16deg, 25%, 38%, 1); + --md-primary-fg-color--light: hsla(15deg, 15%, 69%, 1); + --md-primary-fg-color--dark: hsla(14deg, 26%, 29%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=grey] { + --md-primary-fg-color: hsla(0deg, 0%, 46%, 1); + --md-primary-fg-color--light: hsla(0deg, 0%, 93%, 1); + --md-primary-fg-color--dark: hsla(0deg, 0%, 38%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=blue-grey] { + --md-primary-fg-color: hsla(199deg, 18%, 40%, 1); + --md-primary-fg-color--light: hsla(200deg, 15%, 73%, 1); + --md-primary-fg-color--dark: hsla(199deg, 18%, 33%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-primary=white] { + --md-primary-fg-color: hsla(231deg, 48%, 48%, 1); + --md-primary-fg-color--light: hsla(230deg, 44%, 64%, 1); + --md-primary-fg-color--dark: hsla(232deg, 54%, 41%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} +[data-md-color-primary=white] .md-header { + color: var(--md-default-fg-color); + background-color: var(--md-default-bg-color); +} +[data-md-color-primary=white] .md-hero { + color: var(--md-default-fg-color); + background-color: var(--md-default-bg-color); +} +[data-md-color-primary=white] .md-hero--expand { + border-bottom: 0.05rem solid var(--md-default-fg-color--lightest); +} +@media screen and (max-width: 59.9375em) { + [data-md-color-primary=white] .md-nav__source { + color: var(--md-default-fg-color); + background-color: var(--md-default-fg-color--lightest); + } +} +@media screen and (min-width: 60em) { + [data-md-color-primary=white] .md-search__input { + background-color: var(--md-default-fg-color--lightest); + } + [data-md-color-primary=white] .md-search__input + .md-search__icon { + color: var(--md-default-fg-color); + } + [data-md-color-primary=white] .md-search__input::-webkit-input-placeholder { + color: var(--md-default-fg-color--light); + } + [data-md-color-primary=white] .md-search__input::-moz-placeholder { + color: var(--md-default-fg-color--light); + } + [data-md-color-primary=white] .md-search__input::-ms-input-placeholder { + color: var(--md-default-fg-color--light); + } + [data-md-color-primary=white] .md-search__input::placeholder { + color: var(--md-default-fg-color--light); + } + [data-md-color-primary=white] .md-search__input:hover { + background-color: var(--md-default-fg-color--lighter); + } +} +@media screen and (max-width: 76.1875em) { + html [data-md-color-primary=white] .md-nav--primary .md-nav__title[for=__drawer] { + color: var(--md-default-fg-color); + background-color: var(--md-default-bg-color); + } + [data-md-color-primary=white] .md-hero { + border-bottom: 0.05rem solid var(--md-default-fg-color--lightest); + } +} +@media screen and (min-width: 76.25em) { + [data-md-color-primary=white] .md-tabs { + color: var(--md-default-fg-color); + background-color: var(--md-default-bg-color); + border-bottom: 0.05rem solid var(--md-default-fg-color--lightest); + } +} + +[data-md-color-primary=black] { + --md-primary-fg-color: hsla(231deg, 48%, 48%, 1); + --md-primary-fg-color--light: hsla(230deg, 44%, 64%, 1); + --md-primary-fg-color--dark: hsla(232deg, 54%, 41%, 1); + --md-primary-bg-color: var(--md-default-bg-color); + --md-primary-bg-color--light: var(--md-default-bg-color--light); +} +[data-md-color-primary=black] .md-header { + background-color: black; +} +[data-md-color-primary=black] .md-hero { + background-color: black; +} +@media screen and (max-width: 59.9375em) { + [data-md-color-primary=black] .md-nav__source { + background-color: var(--md-default-fg-color); + } +} +@media screen and (min-width: 60em) { + [data-md-color-primary=black] .md-search__input { + background-color: var(--md-default-bg-color--lighter); + } + [data-md-color-primary=black] .md-search__input:hover { + background-color: var(--md-default-bg-color--lightest); + } +} +@media screen and (max-width: 76.1875em) { + html [data-md-color-primary=black] .md-nav--primary .md-nav__title[for=__drawer] { + background-color: black; + } +} +@media screen and (min-width: 76.25em) { + [data-md-color-primary=black] .md-tabs { + background-color: black; + } +} + +[data-md-color-accent=red] { + --md-accent-fg-color: hsla(348deg, 100%, 55%, 1); + --md-accent-fg-color--transparent: hsla(348deg, 100%, 55%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=pink] { + --md-accent-fg-color: hsla(339deg, 100%, 48%, 1); + --md-accent-fg-color--transparent: hsla(339deg, 100%, 48%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=purple] { + --md-accent-fg-color: hsla(291deg, 96%, 62%, 1); + --md-accent-fg-color--transparent: hsla(291deg, 96%, 62%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=deep-purple] { + --md-accent-fg-color: hsla(256deg, 100%, 65%, 1); + --md-accent-fg-color--transparent: hsla(256deg, 100%, 65%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=indigo] { + --md-accent-fg-color: hsla(231deg, 99%, 66%, 1); + --md-accent-fg-color--transparent: hsla(231deg, 99%, 66%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=blue] { + --md-accent-fg-color: hsla(218deg, 100%, 63%, 1); + --md-accent-fg-color--transparent: hsla(218deg, 100%, 63%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=light-blue] { + --md-accent-fg-color: hsla(203deg, 100%, 46%, 1); + --md-accent-fg-color--transparent: hsla(203deg, 100%, 46%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=cyan] { + --md-accent-fg-color: hsla(188deg, 100%, 42%, 1); + --md-accent-fg-color--transparent: hsla(188deg, 100%, 42%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=teal] { + --md-accent-fg-color: hsla(172deg, 100%, 37%, 1); + --md-accent-fg-color--transparent: hsla(172deg, 100%, 37%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=green] { + --md-accent-fg-color: hsla(145deg, 100%, 39%, 1); + --md-accent-fg-color--transparent: hsla(145deg, 100%, 39%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=light-green] { + --md-accent-fg-color: hsla(97deg, 81%, 48%, 1); + --md-accent-fg-color--transparent: hsla(97deg, 81%, 48%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} + +[data-md-color-accent=lime] { + --md-accent-fg-color: hsla(75deg, 100%, 46%, 1); + --md-accent-fg-color--transparent: hsla(75deg, 100%, 46%, 0.1); + --md-accent-bg-color: var(--md-default-fg-color); + --md-accent-bg-color--light: var(--md-default-fg-color--light); +} + +[data-md-color-accent=yellow] { + --md-accent-fg-color: hsla(50deg, 100%, 50%, 1); + --md-accent-fg-color--transparent: hsla(50deg, 100%, 50%, 0.1); + --md-accent-bg-color: var(--md-default-fg-color); + --md-accent-bg-color--light: var(--md-default-fg-color--light); +} + +[data-md-color-accent=amber] { + --md-accent-fg-color: hsla(40deg, 100%, 50%, 1); + --md-accent-fg-color--transparent: hsla(40deg, 100%, 50%, 0.1); + --md-accent-bg-color: var(--md-default-fg-color); + --md-accent-bg-color--light: var(--md-default-fg-color--light); +} + +[data-md-color-accent=orange] { + --md-accent-fg-color: hsla(34deg, 100%, 50%, 1); + --md-accent-fg-color--transparent: hsla(34deg, 100%, 50%, 0.1); + --md-accent-bg-color: var(--md-default-fg-color); + --md-accent-bg-color--light: var(--md-default-fg-color--light); +} + +[data-md-color-accent=deep-orange] { + --md-accent-fg-color: hsla(14deg, 100%, 63%, 1); + --md-accent-fg-color--transparent: hsla(14deg, 100%, 63%, 0.1); + --md-accent-bg-color: var(--md-default-bg-color); + --md-accent-bg-color--light: var(--md-default-bg-color--light); +} diff --git a/docs/theme/material/base.html b/docs/theme/material/base.html new file mode 100644 index 00000000..e288d08a --- /dev/null +++ b/docs/theme/material/base.html @@ -0,0 +1,329 @@ +{#- + This file was automatically generated - do not edit +-#} +{% import "partials/language.html" as lang with context %} +{% set palette = config.theme.palette %} +{% set font = config.theme.font %} +{% set donation_link = config.theme.donation_link or "#" %} + + + + + {% block site_meta %} + + + {% if page and page.meta and page.meta.description %} + + {% elif config.site_description %} + + {% endif %} + {% if page and page.meta and page.meta.redirect %} + + + + + {% elif page.canonical_url %} + + {% endif %} + {% if page and page.meta and page.meta.author %} + + {% elif config.site_author %} + + {% endif %} + + + {% endblock %} + {% block htmltitle %} + {% if page and page.meta and page.meta.title %} + {{ page.meta.title }} + {% elif page and page.title and not page.is_homepage %} + {{ page.title | striptags }} - {{ config.site_name }} + {% else %} + {{ config.site_name }} + {% endif %} + {% endblock %} + {% block styles %} + + {% if palette.primary or palette.accent %} + + {% endif %} + {% if palette.primary %} + {% import "partials/palette.html" as map %} + {% set primary = map.primary( + palette.primary | replace(" ", "-") | lower + ) %} + + {% endif %} + {% endblock %} + {% block libs %}{% endblock %} + {% block fonts %} + {% if font != false %} + + + + {% endif %} + {% endblock %} + {% if config.extra.manifest %} + + {% endif %} + {% for path in config["extra_css"] %} + + {% endfor %} + {% block analytics %} + {% if config.google_analytics %} + {% include "partials/integrations/analytics.html" %} + {% endif %} + {% endblock %} + {% block extrahead %}{% endblock %} + +{% set direction = config.theme.direction or lang.t('direction') %} +{% if palette.primary or palette.accent %} +{% set primary = palette.primary | replace(" ", "-") | lower %} +{% set accent = palette.accent | replace(" ", "-") | lower %} + + + {% else %} + + + {% endif %} + + + +
    + {% if page.toc | first is defined %} + {% set skip = page.toc | first %} + + {{ lang.t('skip.link.title') }} + + {% endif %} +
    +
    + {% if self.announce() %} + + {% endif %} +
    + {% block header %} + {% include "partials/header.html" %} + {% endblock %} +
    + {% block hero %} + {% if page and page.meta and page.meta.hero %} + {% include "partials/hero.html" with context %} + {% endif %} + {% endblock %} + {% block tabs %} + {% if "tabs" in config.theme.features %} + {% include "partials/tabs.html" %} + {% endif %} + {% endblock %} + + {% if page and page.url and "en/" in page.url%} +
    +
    Helping who helps you
    +

    + Support this work +

    + + Donation + +
    + {% endif %} + {% if page and page.url and "es/" in page.url%} +
    + + Traduccion: Dimitri + +
    Ayudando a quien te ayuda.
    +

    + Apoya este proyecto con una donación +

    + + Donación + +
    + {% endif %} + {% if page and page.url and "pt/" in page.url%} +
    +
    Ajudando quem te ajuda
    +

    + Apoie este trabalho +

    + + Doação + +
    + {% endif %} + +
    +
    +
    + {% block site_nav %} + {% if nav %} +
    +
    +
    + {% include "partials/nav.html" %} +
    +
    +
    + {% endif %} + {% if page.toc %} +
    +
    +
    + {% include "partials/toc.html" %} +
    +
    +
    + {% endif %} + {% endblock %} +
    +
    + {% block content %} + {% if page.edit_url %} + + {% include ".icons/material/pencil.svg" %} + + {% endif %} + {% block source %} + {% if page and page.meta and page.meta.source %} + {% include "partials/source-link.html" %} + {% endif %} + {% endblock %} + {% if not "\x3ch1" in page.content %} +

    {{ page.title | default(config.site_name, true)}}

    + {% endif %} + {{ page.content }} + {% if page and page.meta %} + {% if page.meta.git_revision_date_localized or + page.meta.revision_date + %} + {% include "partials/source-date.html" %} + {% endif %} + {% endif %} + {% endblock %} + {% block disqus %} + {% include "partials/integrations/disqus.html" %} + {% endblock %} +
    +
    +
    +
    + {% block footer %} + {% include "partials/footer.html" %} + {% endblock %} + + {% block scripts %} + + + {%- set translations = {} -%} + {%- for key in [ + "clipboard.copy", + "clipboard.copied", + "search.config.lang", + "search.config.pipeline", + "search.config.separator", + "search.result.placeholder", + "search.result.none", + "search.result.one", + "search.result.other" + ] -%} + {%- set _ = translations.update({ key: lang.t(key) }) -%} + {%- endfor -%} + + {% block config %}{% endblock %} + {% set features = config.theme.features | tojson %} + + {% for path in config["extra_javascript"] %} + + {% endfor %} + {% endblock %} + + + \ No newline at end of file diff --git a/docs/theme/material/logo.png b/docs/theme/material/logo.png new file mode 100644 index 00000000..a571a081 Binary files /dev/null and b/docs/theme/material/logo.png differ diff --git a/docs/theme/material/logo.svg b/docs/theme/material/logo.svg new file mode 100644 index 00000000..c0dd470f --- /dev/null +++ b/docs/theme/material/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/theme/material/main.html b/docs/theme/material/main.html new file mode 100644 index 00000000..094a197b --- /dev/null +++ b/docs/theme/material/main.html @@ -0,0 +1,4 @@ +{#- + This file was automatically generated - do not edit +-#} +{% extends "base.html" %} diff --git a/docs/theme/material/partials/footer.html b/docs/theme/material/partials/footer.html new file mode 100644 index 00000000..d8989fc9 --- /dev/null +++ b/docs/theme/material/partials/footer.html @@ -0,0 +1,56 @@ +{#- + This file was automatically generated - do not edit +-#} +{% import "partials/language.html" as lang with context %} + \ No newline at end of file diff --git a/docs/theme/material/partials/header.html b/docs/theme/material/partials/header.html new file mode 100644 index 00000000..cbf782e4 --- /dev/null +++ b/docs/theme/material/partials/header.html @@ -0,0 +1,44 @@ +{#- + This file was automatically generated - do not edit +-#} +
    + +
    diff --git a/docs/theme/material/partials/hero.html b/docs/theme/material/partials/hero.html new file mode 100644 index 00000000..2c244e18 --- /dev/null +++ b/docs/theme/material/partials/hero.html @@ -0,0 +1,12 @@ +{#- + This file was automatically generated - do not edit +-#} +{% set class = "md-hero" %} +{% if "tabs" not in config.theme.features %} + {% set class = "md-hero md-hero--expand" %} +{% endif %} +
    +
    + {{ page.meta.hero }} +
    +
    diff --git a/docs/theme/material/partials/integrations/analytics.html b/docs/theme/material/partials/integrations/analytics.html new file mode 100644 index 00000000..93104538 --- /dev/null +++ b/docs/theme/material/partials/integrations/analytics.html @@ -0,0 +1,7 @@ +{#- + This file was automatically generated - do not edit +-#} +{% set analytics = config.google_analytics %} + + + diff --git a/docs/theme/material/partials/integrations/disqus.html b/docs/theme/material/partials/integrations/disqus.html new file mode 100644 index 00000000..b6460de5 --- /dev/null +++ b/docs/theme/material/partials/integrations/disqus.html @@ -0,0 +1,12 @@ +{#- + This file was automatically generated - do not edit +-#} +{% set disqus = config.extra.disqus %} +{% if page and page.meta and page.meta.disqus is string %} + {% set disqus = page.meta.disqus %} +{% endif %} +{% if not page.is_homepage and disqus %} +

    {{ lang.t("meta.comments") }}

    +
    + +{% endif %} diff --git a/docs/theme/material/partials/language.html b/docs/theme/material/partials/language.html new file mode 100644 index 00000000..46188a6b --- /dev/null +++ b/docs/theme/material/partials/language.html @@ -0,0 +1,6 @@ +{#- + This file was automatically generated - do not edit +-#} +{% import "partials/language/" + config.theme.language + ".html" as lang %} +{% import "partials/language/en.html" as fallback %} +{% macro t(key) %}{{ lang.t(key) | default(fallback.t(key)) }}{% endmacro %} diff --git a/docs/theme/material/partials/language/af.html b/docs/theme/material/partials/language/af.html new file mode 100644 index 00000000..a625cd4b --- /dev/null +++ b/docs/theme/material/partials/language/af.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "af", + "clipboard.copy": "Kopieer na knipbord", + "clipboard.copied": "gekopieer na knipbord", + "edit.link.title": "Wysig hierdie bladsy", + "footer.previous": "Vorige", + "footer.next": "Volgende", + "meta.comments": "Kommentaar", + "meta.source": "Bron", + "search.config.lang": "nl", + "search.placeholder": "Soek", + "search.result.placeholder": "Tik om te begin soek", + "search.result.none": "Geen ooreenstemmende dokumente", + "search.result.one": "1 ooreenstemmende dokument", + "search.result.other": "# ooreenstemmende dokumente", + "skip.link.title": "Slaan oor na inhoud", + "source.link.title": "Slaan oor na inhoud", + "source.revision.date": "Laaste opdatering", + "toc.title": "Inhoudsopgawe" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/ar.html b/docs/theme/material/partials/language/ar.html new file mode 100644 index 00000000..777c82da --- /dev/null +++ b/docs/theme/material/partials/language/ar.html @@ -0,0 +1,24 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "ar", + "direction": "rtl", + "clipboard.copy": "نسخ إلى الحافظة", + "clipboard.copied": "تم النسخ الى الحافظة", + "edit.link.title": "عدل الصفحة", + "footer.previous": "السابقة", + "footer.next": "التالية", + "meta.comments": "التعليقات", + "meta.source": "المصدر", + "search.config.pipeline": "", + "search.placeholder": "بحث", + "search.result.placeholder": "اكتب لبدء البحث", + "search.result.none": "لا توجد نتائج", + "search.result.one": "نتائج البحث مستند واحد", + "search.result.other": "نتائج البحث # مستندات", + "skip.link.title": "انتقل إلى المحتوى", + "source.link.title": "اذهب إلى المصدر", + "source.revision.date": "اخر تحديث", + "toc.title": "جدول المحتويات" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/ca.html b/docs/theme/material/partials/language/ca.html new file mode 100644 index 00000000..d0ed166e --- /dev/null +++ b/docs/theme/material/partials/language/ca.html @@ -0,0 +1,22 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "ca", + "clipboard.copy": "Còpia al porta-retalls", + "clipboard.copied": "Copiat al porta-retalls", + "edit.link.title": "Edita aquesta pàgina", + "footer.previous": "Anterior", + "footer.next": "Següent", + "meta.comments": "Comentaris", + "meta.source": "Codi font", + "search.placeholder": "Cerca", + "search.result.placeholder": "Escriu per a començar a cercar", + "search.result.none": "Cap document coincideix", + "search.result.one": "1 document coincident", + "search.result.other": "# documents coincidents", + "skip.link.title": "Salta el contingut", + "source.link.title": "Ves al repositori", + "source.revision.date": "Darrera actualització", + "toc.title": "Taula de continguts" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/cs.html b/docs/theme/material/partials/language/cs.html new file mode 100644 index 00000000..013b4062 --- /dev/null +++ b/docs/theme/material/partials/language/cs.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "cs", + "clipboard.copy": "Kopírovat do schránky", + "clipboard.copied": "Zkopírováno do schránky", + "edit.link.title": "Upravit tuto stránku", + "footer.previous": "Předchozí", + "footer.next": "Další", + "meta.comments": "Komentáře", + "meta.source": "Zdroj", + "search.config.lang": "ro", + "search.placeholder": "Hledat", + "search.result.placeholder": "Pište co se má vyhledat", + "search.result.none": "Nenalezeny žádné dokumenty", + "search.result.one": "Nalezený dokument: 1", + "search.result.other": "Nalezené dokumenty: #", + "skip.link.title": "Přeskočit obsah", + "source.link.title": "Přejít do repozitáře", + "source.revision.date": "Poslední aktualizace", + "toc.title": "Obsah" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/da.html b/docs/theme/material/partials/language/da.html new file mode 100644 index 00000000..d98ff553 --- /dev/null +++ b/docs/theme/material/partials/language/da.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "da", + "clipboard.copy": "Kopiér til udklipsholderen", + "clipboard.copied": "Kopieret til udklipsholderen", + "edit.link.title": "Redigér denne side", + "footer.previous": "Forrige", + "footer.next": "Næste", + "meta.comments": "Kommentarer", + "meta.source": "Kilde", + "search.config.lang": "da", + "search.placeholder": "Søg", + "search.result.placeholder": "Indtast søgeord", + "search.result.none": "Ingen resultater fundet", + "search.result.one": "1 resultat", + "search.result.other": "# resultater", + "skip.link.title": "Gå til indholdet", + "source.link.title": "Åbn arkiv", + "source.revision.date": "Sidste ændring", + "toc.title": "Indholdsfortegnelse" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/de.html b/docs/theme/material/partials/language/de.html new file mode 100644 index 00000000..8c4590b1 --- /dev/null +++ b/docs/theme/material/partials/language/de.html @@ -0,0 +1,24 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "de", + "clipboard.copy": "In Zwischenablage kopieren", + "clipboard.copied": "In Zwischenablage kopiert", + "edit.link.title": "Seite editieren", + "footer.previous": "Zurück", + "footer.next": "Weiter", + "meta.comments": "Kommentare", + "meta.source": "Quellcode", + "search.config.lang": "de", + "search.placeholder": "Suche", + "search.result.initializer": "Suche wird initialisiert", + "search.result.placeholder": "Suchbegriff eingeben", + "search.result.none": "Keine Suchergebnisse", + "search.result.one": "1 Suchergebnis", + "search.result.other": "# Suchergebnisse", + "skip.link.title": "Zum Inhalt", + "source.link.title": "Quellcode", + "source.revision.date": "Letztes Update", + "toc.title": "Inhaltsverzeichnis" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/en.html b/docs/theme/material/partials/language/en.html new file mode 100644 index 00000000..2c295808 --- /dev/null +++ b/docs/theme/material/partials/language/en.html @@ -0,0 +1,32 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "en", + "direction": "ltr", + "clipboard.copy": "Copy to clipboard", + "clipboard.copied": "Copied to clipboard", + "edit.link.title": "Edit this page", + "footer.previous": "Previous", + "footer.next": "Next", + "footer.title": "Footer", + "header.title": "Header", + "meta.comments": "Comments", + "meta.source": "Source", + "nav.title": "Navigation", + "search.config.lang": "en", + "search.config.pipeline": "trimmer, stopWordFilter", + "search.config.separator": "[\s\-]+", + "search.placeholder": "Search", + "search.reset": "Clear", + "search.result.initializer": "Initializing search", + "search.result.placeholder": "Type to start searching", + "search.result.none": "No matching documents", + "search.result.one": "1 matching document", + "search.result.other": "# matching documents", + "skip.link.title": "Skip to content", + "source.link.title": "Go to repository", + "source.revision.date": "Last update", + "tabs.title": "Tabs", + "toc.title": "Table of contents" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/es.html b/docs/theme/material/partials/language/es.html new file mode 100644 index 00000000..11734226 --- /dev/null +++ b/docs/theme/material/partials/language/es.html @@ -0,0 +1,28 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "es", + "clipboard.copy": "Copiar al portapapeles", + "clipboard.copied": "Copiado al portapapeles", + "edit.link.title": "Editar esta página", + "footer.previous": "Anterior", + "footer.next": "Siguiente", + "footer.title": "Pie", + "header.title": "Cabecera", + "meta.comments": "Comentarios", + "meta.source": "Fuente", + "nav.title": "Navegación", + "search.config.lang": "es", + "search.placeholder": "Búsqueda", + "search.reset": "Limpiar", + "search.result.placeholder": "Teclee para comenzar búsqueda", + "search.result.none": "No se encontraron documentos", + "search.result.one": "1 documento encontrado", + "search.result.other": "# documentos encontrados", + "skip.link.title": "Saltar a contenido", + "source.link.title": "Ir al repositorio", + "source.revision.date": "Última actualización", + "tabs.title": "Pestañas", + "toc.title": "Tabla de contenidos" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/et.html b/docs/theme/material/partials/language/et.html new file mode 100644 index 00000000..47a1b218 --- /dev/null +++ b/docs/theme/material/partials/language/et.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "et", + "clipboard.copy": "Kopeeri lõikelauale", + "clipboard.copied": "Kopeeritud", + "edit.link.title": "Muuda seda lehte", + "footer.previous": "Eelmine", + "footer.next": "Järgmine", + "meta.comments": "Kommentaarid", + "meta.source": "Lähtekood", + "search.config.pipeline": "", + "search.placeholder": "Otsi", + "search.result.placeholder": "Otsimiseks kirjuta siia", + "search.result.none": "Otsingule ei leitud ühtegi vastet", + "search.result.one": "Leiti üks tulemus", + "search.result.other": "Leiti # tulemust", + "skip.link.title": "Keri sisuni", + "source.link.title": "Ava repositooriumis", + "source.revision.date": "Viimane uuendus", + "toc.title": "Sisukord" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/fa.html b/docs/theme/material/partials/language/fa.html new file mode 100644 index 00000000..d5e988c2 --- /dev/null +++ b/docs/theme/material/partials/language/fa.html @@ -0,0 +1,24 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "fa", + "direction": "rtl", + "clipboard.copy": "کپی کردن", + "clipboard.copied": "کپی شد", + "edit.link.title": "این صفحه را ویرایش کنید", + "footer.previous": "قبلی", + "footer.next": "بعدی", + "meta.comments": "نظرات", + "meta.source": "منبع", + "search.config.pipeline": "", + "search.placeholder": "جستجو", + "search.result.placeholder": "برای شروع جستجو تایپ کنید", + "search.result.none": "سندی یافت نشد", + "search.result.one": "1 سند یافت شد", + "search.result.other": "# سند یافت شد", + "skip.link.title": "پرش به محتویات", + "source.link.title": "رفتن به مخزن", + "source.revision.date": "اخرین بروزرسانی", + "toc.title": "فهرست موضوعات" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/fi.html b/docs/theme/material/partials/language/fi.html new file mode 100644 index 00000000..b2b93e22 --- /dev/null +++ b/docs/theme/material/partials/language/fi.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "fi", + "clipboard.copy": "Kopioi leikepöydälle", + "clipboard.copied": "Kopioitu leikepöydälle", + "edit.link.title": "Muokkaa tätä sivua", + "footer.previous": "Edellinen", + "footer.next": "Seuraava", + "meta.comments": "Kommentit", + "meta.source": "Lähdekodi", + "search.config.lang": "fi", + "search.placeholder": "Hae", + "search.result.placeholder": "Kirjoita aloittaaksesi haun", + "search.result.none": "Ei täsmääviä dokumentteja", + "search.result.one": "1 täsmäävä dokumentti", + "search.result.other": "# täsmäävää dokumenttia", + "skip.link.title": "Hyppää sisältöön", + "source.link.title": "Mene repositoryyn", + "source.revision.date": "Viimeisin päivitys", + "toc.title": "Sisällysluettelo" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/fr.html b/docs/theme/material/partials/language/fr.html new file mode 100644 index 00000000..221cad96 --- /dev/null +++ b/docs/theme/material/partials/language/fr.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "fr", + "clipboard.copy": "Copier dans le presse-papier", + "clipboard.copied": "Copié dans le presse-papier", + "edit.link.title": "Editer cette page", + "footer.previous": "Précédent", + "footer.next": "Suivant", + "meta.comments": "Commentaires", + "meta.source": "Source", + "search.config.lang": "fr", + "search.placeholder": "Rechercher", + "search.result.placeholder": "Taper pour démarrer la recherche", + "search.result.none": "Aucun document trouvé", + "search.result.one": "1 document trouvé", + "search.result.other": "# documents trouvés", + "skip.link.title": "Aller au contenu", + "source.link.title": "Aller au dépôt", + "source.revision.date": "Dernière mise à jour", + "toc.title": "Table des matières" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/gl.html b/docs/theme/material/partials/language/gl.html new file mode 100644 index 00000000..2c3c0d6a --- /dev/null +++ b/docs/theme/material/partials/language/gl.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "gl", + "clipboard.copy": "Copiar no cortapapeis", + "clipboard.copied": "Copiado no cortapapeis", + "edit.link.title": "Editar esta páxina", + "footer.previous": "Anterior", + "footer.next": "Seguinte", + "meta.comments": "Comentarios", + "meta.source": "Fonte", + "search.config.lang": "es", + "search.placeholder": "Busca", + "search.result.placeholder": "Insira un termo", + "search.result.none": "Sen resultados", + "search.result.one": "1 resultado atopado", + "search.result.other": "# resultados atopados", + "skip.link.title": "Ir ao contido", + "source.link.title": "Ir ao repositorio", + "source.revision.date": "Última actualización", + "toc.title": "Táboa de contidos" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/gr.html b/docs/theme/material/partials/language/gr.html new file mode 100644 index 00000000..26e49928 --- /dev/null +++ b/docs/theme/material/partials/language/gr.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "gr", + "clipboard.copy": "Αντιγραφή", + "clipboard.copied": "Αντιγράφηκε", + "edit.link.title": "Επεξεργασία αυτής της σελίδας", + "footer.previous": "Επόμενη", + "footer.next": "Προηγούμενη", + "meta.comments": "Σχόλια", + "meta.source": "Πηγή", + "search.config.pipeline": "", + "search.placeholder": "Αναζήτηση", + "search.result.placeholder": "Πληκτρολογήστε για να αρχίσει η αναζήτηση", + "search.result.none": "Δε βρέθηκαν αντίστοιχα αρχεία", + "search.result.one": "1 αντίστοιχο αρχείο", + "search.result.other": "# αντίστοιχα αρχεία", + "skip.link.title": "Μετάβαση στο περιεχόμενο", + "source.link.title": "Μετάβαση στο αποθετήριο", + "source.revision.date": "τελευταία ενημέρωση", + "toc.title": "Πίνακας περιεχομένων" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/he.html b/docs/theme/material/partials/language/he.html new file mode 100644 index 00000000..ed2d735b --- /dev/null +++ b/docs/theme/material/partials/language/he.html @@ -0,0 +1,24 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "he", + "direction": "rtl", + "clipboard.copy": "העתק ללוח", + "clipboard.copied": "הועתק ללוח", + "edit.link.title": "ערוך דף זה", + "footer.previous": "קודם", + "footer.next": "הַבָּא", + "meta.comments": "הערות", + "meta.source": "מָקוֹר", + "search.config.pipeline": "", + "search.placeholder": "לחפש", + "search.result.placeholder": "הקלד כדי להתחיל לחפש", + "search.result.none": "אין מסמכים תואמים", + "search.result.one": "1 מסמך תואם", + "search.result.other": "# מסמך תואם", + "skip.link.title": "דלג לתוכן", + "source.link.title": "עבור אל מאגר", + "source.revision.date": "העדכון אחרון", + "toc.title": "תוכן העניינים" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/hi.html b/docs/theme/material/partials/language/hi.html new file mode 100644 index 00000000..85377f8b --- /dev/null +++ b/docs/theme/material/partials/language/hi.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "hi", + "clipboard.copy": "क्लिपबोर्ड पर कॉपी करें", + "clipboard.copied": "क्लिपबोर्ड पर कॉपी कर दिया गया", + "edit.link.title": "इस पृष्ठ को संपादित करें", + "footer.previous": "पिछला", + "footer.next": "आगामी", + "meta.comments": "टिप्पणियाँ", + "meta.source": "स्रोत", + "search.config.pipeline": "", + "search.placeholder": "खोज", + "search.result.placeholder": "खोज शुरू करने के लिए टाइप करें", + "search.result.none": "कोई मिलान डॉक्यूमेंट नहीं", + "search.result.one": "1 मिलान डॉक्यूमेंट", + "search.result.other": "# मिलान डाक्यूमेंट्स", + "skip.link.title": "विषय पर बढ़ें", + "source.link.title": "रिपॉजिटरी पर जाएं", + "source.revision.date": "आखिरी अपडेट", + "toc.title": "विषय - सूची" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/hr.html b/docs/theme/material/partials/language/hr.html new file mode 100644 index 00000000..a52aeff5 --- /dev/null +++ b/docs/theme/material/partials/language/hr.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "hr", + "clipboard.copy": "Kopirajte u međuspremnik", + "clipboard.copied": "Kopirano u međuspremnik", + "edit.link.title": "Uredi stranicu", + "footer.previous": "Prethodno", + "footer.next": "Sljedeće", + "meta.comments": "Komentari", + "meta.source": "Izvor", + "search.config.pipeline": "", + "search.placeholder": "Pretraživanje", + "search.result.placeholder": "Unesite pojam pretraživanja", + "search.result.none": "Ništa nije pronađeno", + "search.result.one": "1 rezultat pretraživanja", + "search.result.other": "# rezultata pretraživanja", + "skip.link.title": "Preskočite na sadržaj", + "source.link.title": "Idite u repozitorij", + "source.revision.date": "Zadnje ažuriranje", + "toc.title": "Sadržaj" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/hu.html b/docs/theme/material/partials/language/hu.html new file mode 100644 index 00000000..c2230cab --- /dev/null +++ b/docs/theme/material/partials/language/hu.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "hu", + "clipboard.copy": "Másolás vágólapra", + "clipboard.copied": "Vágólapra másolva", + "edit.link.title": "Oldal szerkesztése", + "footer.previous": "Előző", + "footer.next": "Következő", + "meta.comments": "Hozzászólások", + "meta.source": "Forrás", + "search.config.lang": "hu", + "search.placeholder": "Keresés", + "search.result.placeholder": "Kereséshez írj ide valamit", + "search.result.none": "Nincs találat", + "search.result.one": "1 egyező dokumentum", + "search.result.other": "# egyező dokumentum", + "skip.link.title": "Kihagyás", + "source.link.title": "Főoldalra ugrás", + "source.revision.date": "Utolsó frissítés", + "toc.title": "Tartalomjegyzék" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/id.html b/docs/theme/material/partials/language/id.html new file mode 100644 index 00000000..b846e507 --- /dev/null +++ b/docs/theme/material/partials/language/id.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "id", + "clipboard.copy": "Salin ke memori", + "clipboard.copied": "Tersalin ke memori", + "edit.link.title": "Ubah halaman ini", + "footer.previous": "Sebelumnya", + "footer.next": "Selanjutnya", + "meta.comments": "Komentar", + "meta.source": "Sumber", + "search.config.pipeline": "", + "search.placeholder": "Cari", + "search.result.placeholder": "Ketik untuk mulai pencarian", + "search.result.none": "Tidak ada dokumen yang sesuai", + "search.result.one": "1 dokumen ditemukan", + "search.result.other": "# dokumen ditemukan", + "skip.link.title": "Lewati ke isi", + "source.link.title": "Menuju repositori", + "source.revision.date": "Pembaharuan Terakhir", + "toc.title": "Daftar isi" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/it.html b/docs/theme/material/partials/language/it.html new file mode 100644 index 00000000..3aa0730c --- /dev/null +++ b/docs/theme/material/partials/language/it.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "it", + "clipboard.copy": "Copia", + "clipboard.copied": "Copiato", + "edit.link.title": "Modifica", + "footer.previous": "Precedente", + "footer.next": "Prossimo", + "meta.comments": "Commenti", + "meta.source": "Sorgente", + "search.config.lang": "it", + "search.placeholder": "Cerca", + "search.result.placeholder": "Scrivi per iniziare a cercare", + "search.result.none": "Nessun documento trovato", + "search.result.one": "1 documento trovato", + "search.result.other": "# documenti trovati", + "skip.link.title": "Vai al contenuto", + "source.link.title": "Apri repository", + "source.revision.date": "Ultimo aggiornamento", + "toc.title": "Indice" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/ja.html b/docs/theme/material/partials/language/ja.html new file mode 100644 index 00000000..ee49cc02 --- /dev/null +++ b/docs/theme/material/partials/language/ja.html @@ -0,0 +1,24 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "ja", + "clipboard.copy": "クリップボードへコピー", + "clipboard.copied": "コピーしました", + "edit.link.title": "編集", + "footer.previous": "前", + "footer.next": "次", + "meta.comments": "コメント", + "meta.source": "ソース", + "search.config.lang": "ja", + "search.config.separator": "[\s\- 、。,.]+", + "search.placeholder": "検索", + "search.result.placeholder": "検索キーワードを入力してください", + "search.result.none": "何も見つかりませんでした", + "search.result.one": "1件見つかりました", + "search.result.other": "#件見つかりました", + "skip.link.title": "コンテンツにスキップ", + "source.link.title": "リポジトリへ", + "source.revision.date": "最終更新日", + "toc.title": "目次" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/kr.html b/docs/theme/material/partials/language/kr.html new file mode 100644 index 00000000..f1b863fd --- /dev/null +++ b/docs/theme/material/partials/language/kr.html @@ -0,0 +1,22 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "kr", + "clipboard.copy": "클립보드로 복사", + "clipboard.copied": "클립보드에 복사됨", + "edit.link.title": "이 페이지를 편집", + "footer.previous": "이전", + "footer.next": "다음", + "meta.comments": "댓글", + "meta.source": "출처", + "search.config.lang": "ja", + "search.placeholder": "검색", + "search.result.placeholder": "검색어를 입력하세요", + "search.result.none": "검색어와 일치하는 문서가 없습니다", + "search.result.one": "1개의 일치하는 문서", + "search.result.other": "#개의 일치하는 문서", + "source.link.title": "저장소로 이동", + "source.revision.date": "마지막 업데이트", + "toc.title": "목차" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/nl.html b/docs/theme/material/partials/language/nl.html new file mode 100644 index 00000000..1f28d8f7 --- /dev/null +++ b/docs/theme/material/partials/language/nl.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "nl", + "clipboard.copy": "Kopiëren naar klembord", + "clipboard.copied": "Gekopieerd naar klembord", + "edit.link.title": "Wijzig deze pagina", + "footer.previous": "Vorige", + "footer.next": "Volgende", + "meta.comments": "Reacties", + "meta.source": "Bron", + "search.config.lang": "nl", + "search.placeholder": "Zoeken", + "search.result.placeholder": "Typ om te beginnen met zoeken", + "search.result.none": "Geen overeenkomende documenten", + "search.result.one": "1 overeenkomende document", + "search.result.other": "# overeenkomende documenten", + "skip.link.title": "Ga naar inhoud", + "source.link.title": "Ga naar repository", + "source.revision.date": "Laatst geüpdatet op", + "toc.title": "Inhoudsopgave" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/nn.html b/docs/theme/material/partials/language/nn.html new file mode 100644 index 00000000..a961724f --- /dev/null +++ b/docs/theme/material/partials/language/nn.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "nn", + "clipboard.copy": "Kopier til utklippstavla", + "clipboard.copied": "Kopiert til utklippstavla", + "edit.link.title": "Rediger denne sida", + "footer.previous": "Førre", + "footer.next": "Neste", + "meta.comments": "Kommentarar", + "meta.source": "Kjelde", + "search.config.lang": "no", + "search.placeholder": "Søk", + "search.result.placeholder": "Skriv søkeord", + "search.result.none": "Ingen treff", + "search.result.one": "1 treff", + "search.result.other": "# treff", + "skip.link.title": "Gå til innhald", + "source.link.title": "Gå til kjelde", + "source.revision.date": "Siste oppdatering", + "toc.title": "Innhaldsliste" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/no.html b/docs/theme/material/partials/language/no.html new file mode 100644 index 00000000..2a5ed6e8 --- /dev/null +++ b/docs/theme/material/partials/language/no.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "no", + "clipboard.copy": "Kopier til utklippstavlen", + "clipboard.copied": "Kopiert til utklippstavlen", + "edit.link.title": "Rediger denne siden", + "footer.previous": "Forrige", + "footer.next": "Neste", + "meta.comments": "Kommentarer", + "meta.source": "Kilde", + "search.config.lang": "no", + "search.placeholder": "Søk", + "search.result.placeholder": "Skriv søkeord", + "search.result.none": "Ingen treff", + "search.result.one": "1 treff", + "search.result.other": "# treff", + "skip.link.title": "Gå til innhold", + "source.link.title": "Gå til kilde", + "source.revision.date": "Siste oppdatering", + "toc.title": "Innholdsfortegnelse" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/pl.html b/docs/theme/material/partials/language/pl.html new file mode 100644 index 00000000..a94e22b7 --- /dev/null +++ b/docs/theme/material/partials/language/pl.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "pl", + "clipboard.copy": "Kopiuj do schowka", + "clipboard.copied": "Skopiowane", + "edit.link.title": "Edytuj tę stronę", + "footer.previous": "Poprzednia strona", + "footer.next": "Następna strona", + "meta.comments": "Komentarze", + "meta.source": "Kod źródłowy", + "search.config.pipeline": "", + "search.placeholder": "Szukaj", + "search.result.placeholder": "Zacznij pisać, aby szukać", + "search.result.none": "Brak wyników wyszukiwania", + "search.result.one": "Wyniki wyszukiwania: 1", + "search.result.other": "Wyniki wyszukiwania: #", + "skip.link.title": "Przejdź do treści", + "source.link.title": "Idź do repozytorium", + "source.revision.date": "Ostatnia aktualizacja", + "toc.title": "Spis treści" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/pt.html b/docs/theme/material/partials/language/pt.html new file mode 100644 index 00000000..061ac210 --- /dev/null +++ b/docs/theme/material/partials/language/pt.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "pt", + "clipboard.copy": "Copiar para área de transferência", + "clipboard.copied": "Copiado para área de transferência", + "edit.link.title": "Editar esta página", + "footer.previous": "Anterior", + "footer.next": "Próximo", + "meta.comments": "Comentários", + "meta.source": "Fonte", + "search.config.lang": "pt", + "search.placeholder": "Buscar", + "search.result.placeholder": "Digite para iniciar a busca", + "search.result.none": "Nenhum resultado encontrado", + "search.result.one": "1 resultado encontrado", + "search.result.other": "# resultados encontrados", + "skip.link.title": "Ir para o conteúdo", + "source.link.title": "Ir ao repositório", + "source.revision.date": "Última atualização", + "toc.title": "Índice" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/ro.html b/docs/theme/material/partials/language/ro.html new file mode 100644 index 00000000..5891c791 --- /dev/null +++ b/docs/theme/material/partials/language/ro.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "ro", + "clipboard.copy": "Copiază în clipboard", + "clipboard.copied": "Copiat în clipboard", + "edit.link.title": "Editeaza această pagină", + "footer.previous": "Anterior", + "footer.next": "Următor", + "meta.comments": "Comentarii", + "meta.source": "Sursă", + "search.config.lang": "ro", + "search.placeholder": "Căutare", + "search.result.placeholder": "Tastează pentru a începe căutarea", + "search.result.none": "Nu a fost găsit niciun document", + "search.result.one": "1 document găsit", + "search.result.other": "# documente găsite", + "skip.link.title": "Sari la conținut", + "source.link.title": "Accesează repository-ul", + "source.revision.date": "Ultima actualizare", + "toc.title": "Cuprins" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/ru.html b/docs/theme/material/partials/language/ru.html new file mode 100644 index 00000000..84d20482 --- /dev/null +++ b/docs/theme/material/partials/language/ru.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "ru", + "clipboard.copy": "Копировать в буфер", + "clipboard.copied": "Скопировано в буфер", + "edit.link.title": "Редактировать страницу", + "footer.previous": "Назад", + "footer.next": "Вперед", + "meta.comments": "Комментарии", + "meta.source": "Исходный код", + "search.config.lang": "ru", + "search.placeholder": "Поиск", + "search.result.placeholder": "Начните печатать для поиска", + "search.result.none": "Совпадений не найдено", + "search.result.one": "Найдено 1 совпадение", + "search.result.other": "Найдено # совпадений", + "skip.link.title": "Перейти к содержанию", + "source.link.title": "Перейти к репозиторию", + "source.revision.date": "Последнее обновление", + "toc.title": "Содержание" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/sh.html b/docs/theme/material/partials/language/sh.html new file mode 100644 index 00000000..f0972497 --- /dev/null +++ b/docs/theme/material/partials/language/sh.html @@ -0,0 +1,22 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "sh", + "clipboard.copy": "Kopiraj u klipbord", + "clipboard.copied": "Iskopirano u klipbord", + "edit.link.title": "Uredi stranicu", + "footer.previous": "Prethodno", + "footer.next": "Sledeće", + "meta.comments": "Komentari", + "meta.source": "Izvor", + "search.config.lang": "ro", + "search.placeholder": "Pretraga", + "search.result.placeholder": "Unesite pojam pretrage", + "search.result.none": "Ništa nije pronađeno", + "search.result.one": "1 rezultat pretrage", + "search.result.other": "# rezultata pretrage", + "skip.link.title": "Idi na tekst", + "source.link.title": "Idi u repozitorijum", + "toc.title": "Sadržaj" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/si.html b/docs/theme/material/partials/language/si.html new file mode 100644 index 00000000..aa258b9c --- /dev/null +++ b/docs/theme/material/partials/language/si.html @@ -0,0 +1,22 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "si", + "clipboard.copy": "Kopiraj v odložišče", + "clipboard.copied": "Kopirano v odložišče", + "edit.link.title": "Uredi stran", + "footer.previous": "Prejšnja stran", + "footer.next": "Naslednja stran", + "meta.comments": "Komentarji", + "meta.source": "Izvorna koda", + "search.placeholder": "Išči", + "search.result.placeholder": "Vpiši iskalni niz", + "search.result.none": "Ni zadetkov", + "search.result.one": "1 zadetek", + "search.result.other": "# zadetkov", + "skip.link.title": "Skoči na vsebino", + "source.link.title": "Pojdi na repozitorij", + "source.revision.date": "Zadnja posodobitev", + "toc.title": "Kazalo" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/sk.html b/docs/theme/material/partials/language/sk.html new file mode 100644 index 00000000..66bd7dcf --- /dev/null +++ b/docs/theme/material/partials/language/sk.html @@ -0,0 +1,22 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "sk", + "clipboard.copy": "Kopírovať do schránky", + "clipboard.copied": "Skopírované do schránky", + "edit.link.title": "Upraviť túto stránku", + "footer.previous": "Späť", + "footer.next": "Ďalej", + "meta.comments": "Komentáre", + "meta.source": "Zdroj", + "search.placeholder": "Hľadať", + "search.result.placeholder": "Pre vyhľadávanie začni písať", + "search.result.none": "Žiadne vyhovujúce dokumenty", + "search.result.one": "Vyhovujúci dokument: 1", + "search.result.other": "Vyhovujúce dokumenty: #", + "skip.link.title": "Preskočiť na obsah", + "source.link.title": "Zobraziť repozitár", + "source.revision.date": "Posledná aktualizácia", + "toc.title": "Obsah" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/sr.html b/docs/theme/material/partials/language/sr.html new file mode 100644 index 00000000..695a08b7 --- /dev/null +++ b/docs/theme/material/partials/language/sr.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "sr", + "clipboard.copy": "Копирај у клипборд", + "clipboard.copied": "Ископирано у клипборд", + "edit.link.title": "Уреди страницу", + "footer.previous": "Претходно", + "footer.next": "Следеће", + "meta.comments": "Коментари", + "meta.source": "Извор", + "search.config.pipeline": "", + "search.placeholder": "Претрага", + "search.result.placeholder": "Унесите појам претраге", + "search.result.none": "Нису пронађени документи", + "search.result.one": "1 резултат претраге", + "search.result.other": "# резултата претраге", + "skip.link.title": "Иди на текст", + "source.link.title": "Иди у репозиторијум", + "source.revision.date": "Последња исправка", + "toc.title": "Садржај" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/sv.html b/docs/theme/material/partials/language/sv.html new file mode 100644 index 00000000..87243666 --- /dev/null +++ b/docs/theme/material/partials/language/sv.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "sv", + "clipboard.copy": "Kopiera till urklipp", + "clipboard.copied": "Kopierat till urklipp", + "edit.link.title": "Redigera sidan", + "footer.previous": "Föregående", + "footer.next": "Nästa", + "meta.comments": "Kommentarer", + "meta.source": "Källa", + "search.config.lang": "sv", + "search.placeholder": "Sök", + "search.result.placeholder": "Skriv sökord", + "search.result.none": "Inga sökresultat", + "search.result.one": "1 sökresultat", + "search.result.other": "# sökresultat", + "skip.link.title": "Gå till innehållet", + "source.link.title": "Gå till datakatalog", + "source.revision.date": "Senaste uppdateringen", + "toc.title": "Innehållsförteckning" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/th.html b/docs/theme/material/partials/language/th.html new file mode 100644 index 00000000..dacadfe8 --- /dev/null +++ b/docs/theme/material/partials/language/th.html @@ -0,0 +1,21 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "th", + "clipboard.copy": "คัดลอก", + "clipboard.copied": "คัดลอกแล้ว", + "edit.link.title": "แก้ไขหน้านี้", + "footer.previous": "ก่อนหน้า", + "footer.next": "ต่อไป", + "meta.comments": "ความคิดเห็น", + "meta.source": "แหล่งที่มา", + "search.placeholder": "ค้นหา", + "search.result.placeholder": "พิมพ์เพื่อเริ่มค้นหา", + "search.result.none": "ไม่พบเอกสารที่ตรงกัน", + "search.result.one": "พบเอกสารที่ตรงกัน", + "search.result.other": "พบ # เอกสารที่ตรงกัน", + "skip.link.title": "ข้ามไปที่เนื้อหา", + "source.link.title": "ไปที่ Repository", + "toc.title": "สารบัญ" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/tr.html b/docs/theme/material/partials/language/tr.html new file mode 100644 index 00000000..b34f99d2 --- /dev/null +++ b/docs/theme/material/partials/language/tr.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "tr", + "clipboard.copy": "Kopyala", + "clipboard.copied": "Kopyalandı", + "edit.link.title": "Düzenle", + "footer.previous": "Önceki", + "footer.next": "Sonraki", + "meta.comments": "Yorumlar", + "meta.source": "Kaynak", + "search.config.lang": "tr", + "search.placeholder": "Ara", + "search.result.placeholder": "Aramaya başlamak için yazın", + "search.result.none": "Eşleşen doküman bulunamadı", + "search.result.one": "1 doküman bulundu", + "search.result.other": "# doküman bulundu", + "skip.link.title": "Ana içeriğe geç", + "source.link.title": "Depoya git", + "source.revision.date": "Son Güncelleme", + "toc.title": "İçindekiler" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/uk.html b/docs/theme/material/partials/language/uk.html new file mode 100644 index 00000000..39a17c5e --- /dev/null +++ b/docs/theme/material/partials/language/uk.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "uk", + "clipboard.copy": "Скопіювати в буфер", + "clipboard.copied": "Скопійовано в буфер", + "edit.link.title": "Редагувати сторінку", + "footer.previous": "Назад", + "footer.next": "Вперед", + "meta.comments": "Коментарі", + "meta.source": "Вихідний код", + "search.config.lang": "ru", + "search.placeholder": "Пошук", + "search.result.placeholder": "Розпочніть писати для пошуку", + "search.result.none": "Збігів не знайдено", + "search.result.one": "Знайдено 1 збіг", + "search.result.other": "Знайдено # збігів", + "skip.link.title": "Перейти до змісту", + "source.link.title": "Перейти до репозиторію", + "source.revision.date": "Останнє оновлення", + "toc.title": "Зміст" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/vi.html b/docs/theme/material/partials/language/vi.html new file mode 100644 index 00000000..26cc93af --- /dev/null +++ b/docs/theme/material/partials/language/vi.html @@ -0,0 +1,22 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "vi", + "clipboard.copy": "Sao chép vào bộ nhớ", + "clipboard.copied": "Sao chép xong", + "edit.link.title": "Chỉnh sửa", + "footer.previous": "Trước", + "footer.next": "Sau", + "meta.comments": "Bình luận", + "meta.source": "Mã nguồn", + "search.placeholder": "Tìm kiếm", + "search.result.placeholder": "Nhập để bắt đầu tìm kiếm", + "search.result.none": "Không tìm thấy tài liệu liên quan", + "search.result.one": "1 tài liệu liên quan", + "search.result.other": "# tài liệu liên quan", + "skip.link.title": "Vào thẳng nội dung", + "source.link.title": "Đến kho lưu trữ mã nguồn", + "source.revision.date": "Cập nhật cuối cùng", + "toc.title": "Mục lục" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/zh-Hant.html b/docs/theme/material/partials/language/zh-Hant.html new file mode 100644 index 00000000..6bfc8942 --- /dev/null +++ b/docs/theme/material/partials/language/zh-Hant.html @@ -0,0 +1,24 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "zh-Hant", + "clipboard.copy": "拷貝", + "clipboard.copied": "已拷貝", + "edit.link.title": "編輯此頁", + "footer.previous": "上一頁", + "footer.next": "下一頁", + "meta.comments": "評論", + "meta.source": "來源", + "search.config.lang": "ja", + "search.config.separator": "[\,\。]+", + "search.placeholder": "搜尋", + "search.result.placeholder": "鍵入以開始檢索", + "search.result.none": "沒有找到符合條件的結果", + "search.result.one": "找到 1 个符合條件的結果", + "search.result.other": "# 個符合條件的結果", + "skip.link.title": "跳轉至", + "source.link.title": "前往 GitHub 倉庫", + "source.revision.date": "最後更新", + "toc.title": "目錄" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/zh-TW.html b/docs/theme/material/partials/language/zh-TW.html new file mode 100644 index 00000000..95d9e44d --- /dev/null +++ b/docs/theme/material/partials/language/zh-TW.html @@ -0,0 +1,24 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "zh-Hant", + "clipboard.copy": "複製", + "clipboard.copied": "已複製", + "edit.link.title": "編輯此頁", + "footer.previous": "上一頁", + "footer.next": "下一頁", + "meta.comments": "留言", + "meta.source": "來源", + "search.config.lang": "ja", + "search.config.separator": "[\s\- 、。,.?;]+", + "search.placeholder": "搜尋", + "search.result.placeholder": "打字進行搜尋", + "search.result.none": "沒有符合的項目", + "search.result.one": "找到 1 個符合的項目", + "search.result.other": "找到 # 個符合的項目", + "skip.link.title": "跳轉到", + "source.link.title": "前往倉庫", + "source.revision.date": "最後更新", + "toc.title": "目錄" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/language/zh.html b/docs/theme/material/partials/language/zh.html new file mode 100644 index 00000000..dd90cb57 --- /dev/null +++ b/docs/theme/material/partials/language/zh.html @@ -0,0 +1,24 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "zh", + "clipboard.copy": "复制", + "clipboard.copied": "已复制", + "edit.link.title": "编辑此页", + "footer.previous": "上一页", + "footer.next": "下一页", + "meta.comments": "评论", + "meta.source": "来源", + "search.config.lang": "ja", + "search.config.separator": "[\,\。]+", + "search.placeholder": "搜索", + "search.result.placeholder": "键入以开始搜索", + "search.result.none": "没有找到符合条件的结果", + "search.result.one": "找到 1 个符合条件的结果", + "search.result.other": "# 个符合条件的结果", + "skip.link.title": "跳转至", + "source.link.title": "前往 GitHub 仓库", + "source.revision.date": "最后更新", + "toc.title": "目录" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/logo.html b/docs/theme/material/partials/logo.html new file mode 100644 index 00000000..6d80f2ce --- /dev/null +++ b/docs/theme/material/partials/logo.html @@ -0,0 +1,9 @@ +{#- + This file was automatically generated - do not edit +-#} +{% if config.theme.logo %} + logo +{% else %} + {% set icon = config.theme.icon.logo or "material/library" %} + {% include ".icons/" ~ icon ~ ".svg" %} +{% endif %} diff --git a/docs/theme/material/partials/nav-item.html b/docs/theme/material/partials/nav-item.html new file mode 100644 index 00000000..21bc7097 --- /dev/null +++ b/docs/theme/material/partials/nav-item.html @@ -0,0 +1,66 @@ +{#- + This file was automatically generated - do not edit +-#} +{% set class = "md-nav__item" %} +{% if nav_item.active %} + {% set class = "md-nav__item md-nav__item--active" %} +{% endif %} +{% if nav_item.children %} +
  • + {% if nav_item.active %} + + {% else %} + + {% endif %} + + +
  • +{% elif nav_item == page %} +
  • + {% set toc = page.toc %} + + {% if toc | first is defined and "\x3ch1 id=" in page.content %} + {% set toc = (toc | first).children %} + {% endif %} + {% if toc | first is defined %} + + {% endif %} + + {{ nav_item.title }} + + {% if toc | first is defined %} + {% include "partials/toc.html" %} + {% endif %} +
  • +{% else %} +
  • + + {{ nav_item.title }} + +
  • +{% endif %} diff --git a/docs/theme/material/partials/nav.html b/docs/theme/material/partials/nav.html new file mode 100644 index 00000000..ca050757 --- /dev/null +++ b/docs/theme/material/partials/nav.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} + diff --git a/docs/theme/material/partials/palette.html b/docs/theme/material/partials/palette.html new file mode 100644 index 00000000..c8fe8f7a --- /dev/null +++ b/docs/theme/material/partials/palette.html @@ -0,0 +1,42 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro primary(key) %}{{ { + "red": "#ef5350", + "pink": "#e91e63", + "purple": "#ab47bc", + "deep-purple": "#7e57c2", + "indigo": "#3f51b5", + "blue": "#2196f3", + "light-blue": "#03a9f4", + "cyan": "#00bcd4", + "teal": "#009688", + "green": "#4caf50", + "light-green": "#8bc34a", + "lime": "#cddc39", + "yellow": "#ffee58", + "amber": "#ffc107", + "orange": "#ffa726", + "deep-orange": "#ff7043", + "brown": "#795548", + "grey": "#757575", + "blue-grey": "#546e7a" +}[key] }}{% endmacro %} +{% macro accent(key) %}{{ { + "red": "#ff1744", + "pink": "#f50057", + "purple": "#e040fb", + "deep-purple": "#7c4dff", + "indigo": "#536dfe", + "blue": "#448aff", + "light-blue": "#0091ea", + "cyan": "#00b8d4", + "teal": "#00bfa5", + "green": "#00c853", + "light-green": "#64dd17", + "lime": "#aeea00", + "yellow": "#ffd600", + "amber": "#ffab00", + "orange": "#ff9100", + "deep-orange": "#ff6e40" +}[key] }}{% endmacro %} diff --git a/docs/theme/material/partials/search.html b/docs/theme/material/partials/search.html new file mode 100644 index 00000000..05469ae1 --- /dev/null +++ b/docs/theme/material/partials/search.html @@ -0,0 +1,29 @@ +{#- + This file was automatically generated - do not edit +-#} +{% import "partials/language.html" as lang with context %} + diff --git a/docs/theme/material/partials/social.html b/docs/theme/material/partials/social.html new file mode 100644 index 00000000..ebe38ae5 --- /dev/null +++ b/docs/theme/material/partials/social.html @@ -0,0 +1,14 @@ +{#- + This file was automatically generated - do not edit +-#} +{% if config.extra.social %} + +{% endif %} \ No newline at end of file diff --git a/docs/theme/material/partials/source-date.html b/docs/theme/material/partials/source-date.html new file mode 100644 index 00000000..9c72b8bc --- /dev/null +++ b/docs/theme/material/partials/source-date.html @@ -0,0 +1,15 @@ +{#- + This file was automatically generated - do not edit +-#} +{% import "partials/language.html" as lang with context %} +{% set label = lang.t("source.revision.date") %} +
    +
    + + {% if page.meta.git_revision_date_localized %} + {{ label }}: {{ page.meta.git_revision_date_localized }} + {% elif page.meta.revision_date %} + {{ label }}: {{ page.meta.revision_date }} + {% endif %} + +
    diff --git a/docs/theme/material/partials/source-link.html b/docs/theme/material/partials/source-link.html new file mode 100644 index 00000000..237efe74 --- /dev/null +++ b/docs/theme/material/partials/source-link.html @@ -0,0 +1,14 @@ +{#- + This file was automatically generated - do not edit +-#} +{% import "partials/language.html" as lang with context %} +{% set repo = config.repo_url %} +{% if repo | last == "/" %} + {% set repo = repo[:-1] %} +{% endif %} +{% set path = page.meta.path | default([""]) %} + + {{ lang.t("meta.source") }} + {% set icon = config.theme.icon.repo or "fontawesome/brands/git-alt" %} + {% include ".icons/" ~ icon ~ ".svg" %} + diff --git a/docs/theme/material/partials/source.html b/docs/theme/material/partials/source.html new file mode 100644 index 00000000..095b49a2 --- /dev/null +++ b/docs/theme/material/partials/source.html @@ -0,0 +1,13 @@ +{#- + This file was automatically generated - do not edit +-#} +{% import "partials/language.html" as lang with context %} + +
    + {% set icon = config.theme.icon.repo or "fontawesome/brands/git-alt" %} + {% include ".icons/" ~ icon ~ ".svg" %} +
    +
    + {{ config.repo_name }} +
    +
    diff --git a/docs/theme/material/partials/tabs-item.html b/docs/theme/material/partials/tabs-item.html new file mode 100644 index 00000000..64ced43b --- /dev/null +++ b/docs/theme/material/partials/tabs-item.html @@ -0,0 +1,34 @@ +{#- + This file was automatically generated - do not edit +-#} +{% if nav_item.is_homepage or nav_item.url == "index.html" %} +
  • + {% if not page.ancestors | length and nav | selectattr("url", page.url) %} + + {{ nav_item.title }} + + {% else %} + + {{ nav_item.title }} + + {% endif %} +
  • +{% elif nav_item.children and nav_item.children | length > 0 %} + {% set title = title | default(nav_item.title) %} + {% if (nav_item.children | first).children %} + {% set nav_item = nav_item.children | first %} + {% include "partials/tabs-item.html" %} + {% else %} +
  • + {% if nav_item.active %} + + {{ title }} + + {% else %} + + {{ title }} + + {% endif %} +
  • + {% endif %} +{% endif %} diff --git a/docs/theme/material/partials/tabs.html b/docs/theme/material/partials/tabs.html new file mode 100644 index 00000000..d8e00a05 --- /dev/null +++ b/docs/theme/material/partials/tabs.html @@ -0,0 +1,16 @@ +{#- + This file was automatically generated - do not edit +-#} +{% set class = "md-tabs" %} +{% if page.ancestors | length > 0 %} + {% set class = "md-tabs md-tabs--active" %} +{% endif %} + diff --git a/docs/theme/material/partials/toc-item.html b/docs/theme/material/partials/toc-item.html new file mode 100644 index 00000000..3f0ffe46 --- /dev/null +++ b/docs/theme/material/partials/toc-item.html @@ -0,0 +1,17 @@ +{#- + This file was automatically generated - do not edit +-#} +
  • + + {{ toc_item.title }} + + {% if toc_item.children %} + + {% endif %} +
  • diff --git a/docs/theme/material/partials/toc.html b/docs/theme/material/partials/toc.html new file mode 100644 index 00000000..3a372bf0 --- /dev/null +++ b/docs/theme/material/partials/toc.html @@ -0,0 +1,23 @@ +{#- + This file was automatically generated - do not edit +-#} +{% import "partials/language.html" as lang with context %} + diff --git a/image/econimic_calendar.png b/image/econimic_calendar.png new file mode 100644 index 00000000..d2776fd7 Binary files /dev/null and b/image/econimic_calendar.png differ diff --git a/image/news_feed.png b/image/news_feed.png new file mode 100644 index 00000000..1dbfa2d3 Binary files /dev/null and b/image/news_feed.png differ diff --git a/iqoptionapi/__init__.py b/iqoptionapi/__init__.py index 6c249e46..26ca8a16 100644 --- a/iqoptionapi/__init__.py +++ b/iqoptionapi/__init__.py @@ -5,7 +5,9 @@ def _prepare_logging(): """Prepare logger for module IQ Option API.""" logger = logging.getLogger(__name__) - logger.setLevel(logging.DEBUG) + #https://github.com/Lu-Yi-Hsun/iqoptionapi_private/issues/1 + #try to fix this problem + #logger.setLevel(logging.DEBUG) logger.addHandler(logging.NullHandler()) websocket_logger = logging.getLogger("websocket") diff --git a/iqoptionapi/api.py b/iqoptionapi/api.py index b9a2d4de..7b8f9236 100644 --- a/iqoptionapi/api.py +++ b/iqoptionapi/api.py @@ -6,8 +6,14 @@ import threading import requests import ssl +import atexit +from collections import deque from iqoptionapi.http.login import Login from iqoptionapi.http.loginv2 import Loginv2 +from iqoptionapi.http.logout import Logout +from iqoptionapi.http.login2fa import Login2FA +from iqoptionapi.http.send_sms import SMS_Sender +from iqoptionapi.http.verify import Verify from iqoptionapi.http.getprofile import Getprofile from iqoptionapi.http.auth import Auth from iqoptionapi.http.token import Token @@ -15,7 +21,9 @@ from iqoptionapi.http.billing import Billing from iqoptionapi.http.buyback import Buyback from iqoptionapi.http.changebalance import Changebalance +from iqoptionapi.http.events import Events from iqoptionapi.ws.client import WebsocketClient +from iqoptionapi.ws.chanels.get_balances import * from iqoptionapi.ws.chanels.ssid import Ssid from iqoptionapi.ws.chanels.subscribe import * @@ -23,28 +31,29 @@ from iqoptionapi.ws.chanels.setactives import SetActives from iqoptionapi.ws.chanels.candles import GetCandles from iqoptionapi.ws.chanels.buyv2 import Buyv2 -from iqoptionapi.ws.chanels.buyv3 import Buyv3 - +from iqoptionapi.ws.chanels.buyv3 import * +from iqoptionapi.ws.chanels.user import * from iqoptionapi.ws.chanels.api_game_betinfo import Game_betinfo from iqoptionapi.ws.chanels.instruments import Get_instruments from iqoptionapi.ws.chanels.get_financial_information import GetFinancialInformation from iqoptionapi.ws.chanels.strike_list import Strike_list - +from iqoptionapi.ws.chanels.leaderboard import Leader_Board from iqoptionapi.ws.chanels.traders_mood import Traders_mood_subscribe from iqoptionapi.ws.chanels.traders_mood import Traders_mood_unsubscribe +from iqoptionapi.ws.chanels.technical_indicators import Technical_indicators from iqoptionapi.ws.chanels.buy_place_order_temp import Buy_place_order_temp from iqoptionapi.ws.chanels.get_order import Get_order from iqoptionapi.ws.chanels.get_deferred_orders import GetDeferredOrders from iqoptionapi.ws.chanels.get_positions import * - + from iqoptionapi.ws.chanels.get_available_leverages import Get_available_leverages from iqoptionapi.ws.chanels.cancel_order import Cancel_order from iqoptionapi.ws.chanels.close_position import Close_position from iqoptionapi.ws.chanels.get_overnight_fee import Get_overnight_fee from iqoptionapi.ws.chanels.heartbeat import Heartbeat - + from iqoptionapi.ws.chanels.digital_option import * from iqoptionapi.ws.chanels.api_game_getoptions import * from iqoptionapi.ws.chanels.sell_option import Sell_Option @@ -65,7 +74,7 @@ def nested_dict(n, type): if n == 1: return defaultdict(type) else: - return defaultdict(lambda: nested_dict(n-1, type)) + return defaultdict(lambda: nested_dict(n - 1, type)) # InsecureRequestWarning: Unverified HTTPS request is being made. @@ -76,8 +85,10 @@ def nested_dict(n, type): class IQOptionAPI(object): # pylint: disable=too-many-instance-attributes """Class for communication with IQ Option API.""" + # pylint: disable=too-many-public-methods - socket_option_opened={} + socket_option_opened = {} + socket_option_closed = {} timesync = TimeSync() profile = Profile() candles = Candles() @@ -88,16 +99,21 @@ class IQOptionAPI(object): # pylint: disable=too-many-instance-attributes underlying_list_data = None position_changed = None instrument_quites_generated_data = nested_dict(2, dict) - instrument_quotes_generated_raw_data=nested_dict(2, dict) + instrument_quotes_generated_raw_data = nested_dict(2, dict) instrument_quites_generated_timestamp = nested_dict(2, dict) strike_list = None - position_changed_data = {} + leaderboard_deals_client = None + #position_changed_data = nested_dict(2, dict) + # microserviceName_binary_options_name_option=nested_dict(2,dict) + order_async = nested_dict(2, dict) + order_binary = {} game_betinfo = Game_betinfo_data() instruments = None financial_information = None buy_id = None buy_order_id = None traders_mood = {} # get hight(put) % + technical_indicators = {} order_data = None positions = None position = None @@ -109,10 +125,10 @@ class IQOptionAPI(object): # pylint: disable=too-many-instance-attributes close_position_data = None overnight_fee = None # ---for real time - digital_option_placed_id = None - - microserviceName_binary_options_name_option={} + digital_option_placed_id = {} + live_deal_data = nested_dict(3, deque) + subscribe_commission_changed_data = nested_dict(2, dict) real_time_candles = nested_dict(3, dict) real_time_candles_maxdict_table = nested_dict(2, dict) candle_generated_check = nested_dict(2, dict) @@ -123,15 +139,20 @@ class IQOptionAPI(object): # pylint: disable=too-many-instance-attributes sold_digital_options_respond = None tpsl_changed_respond = None auto_margin_call_changed_respond = None - top_assets_updated_data={} - get_options_v2_data=None + top_assets_updated_data = {} + get_options_v2_data = None # --for binary option multi buy buy_multi_result = None buy_multi_option = {} # result = None - training_balance_reset_request=None + training_balance_reset_request = None + balances_raw = None + user_profile_client = None + leaderboard_userinfo_deals_client = None + users_availability = None # ------------------ + digital_payout = None def __init__(self, host, username, password, proxies=None): """ @@ -148,13 +169,15 @@ def __init__(self, host, username, password, proxies=None): self.session.trust_env = False self.username = username self.password = password + self.token_login2fa = None + self.token_sms = None self.proxies = proxies # is used to determine if a buyOrder was set or failed. If # it is None, there had been no buy order yet or just send. # If it is false, the last failed # If it is true, the last buy order was successful self.buy_successful = None - self.__active_account_type=None + self.__active_account_type = None def prepare_http_url(self, resource): """Construct http url from resource url. @@ -211,7 +234,8 @@ def send_http_request_v2(self, url, method, data=None, params=None, headers=None """ logger = logging.getLogger(__name__) - logger.debug(url) + logger.debug(method + ": " + url + " headers: " + str(self.session.headers) + + " cookies: " + str(self.session.cookies.get_dict())) response = self.session.request(method=method, url=url, @@ -224,7 +248,7 @@ def send_http_request_v2(self, url, method, data=None, params=None, headers=None logger.debug(response.headers) logger.debug(response.cookies) - response.raise_for_status() + # response.raise_for_status() return response @property @@ -235,18 +259,33 @@ def websocket(self): """ return self.websocket_client.wss - def send_websocket_request(self, name, msg, request_id=""): + def send_websocket_request(self, name, msg, request_id="", no_force_send=True): """Send websocket request to IQ Option server. :param str name: The websocket request name. :param dict msg: The websocket request msg. """ + logger = logging.getLogger(__name__) data = json.dumps(dict(name=name, msg=msg, request_id=request_id)) - logger.debug(data) + + while (global_value.ssl_Mutual_exclusion or global_value.ssl_Mutual_exclusion_write) and no_force_send: + pass + global_value.ssl_Mutual_exclusion_write = True self.websocket.send(data) + logger.debug(data) + global_value.ssl_Mutual_exclusion_write = False + + @property + def logout(self): + """Property for get IQ Option http login resource. + + :returns: The instance of :class:`Login + `. + """ + return Logout(self) @property def login(self): @@ -257,6 +296,33 @@ def login(self): """ return Login(self) + @property + def login_2fa(self): + """Property for get IQ Option http login 2FA resource. + + :returns: The instance of :class:`Login2FA + `. + """ + return Login2FA(self) + + @property + def send_sms_code(self): + """Property for get IQ Option http send sms code resource. + + :returns: The instance of :class:`SMS_Sender + `. + """ + return SMS_Sender(self) + + @property + def verify_2fa(self): + """Property for get IQ Option http verify 2fa resource. + + :returns: The instance of :class:`Verify + `. + """ + return Verify(self) + @property def loginv2(self): """Property for get IQ Option http loginv2 resource. @@ -304,15 +370,9 @@ def token(self): def reset_training_balance(self): # sendResults True/False # {"name":"sendMessage","request_id":"142","msg":{"name":"reset-training-balance","version":"2.0"}} - logger = logging.getLogger(__name__) - data = json.dumps(dict(name="sendMessage", - msg={"name": "reset-training-balance", - "version": "2.0"} - ) - ) - logger.debug(data) - self.websocket.send(data) + self.send_websocket_request(name="sendMessage", msg={"name": "reset-training-balance", + "version": "2.0"}) @property def changebalance(self): @@ -323,6 +383,10 @@ def changebalance(self): """ return Changebalance(self) + @property + def events(self): + return Events(self) + @property def billing(self): """Property for get IQ Option http billing resource. @@ -352,6 +416,15 @@ def getprofile(self): return Getprofile(self) # for active code ... + @property + def get_balances(self): + """Property for get IQ Option http getprofile resource. + + :returns: The instance of :class:`Login + `. + """ + return Get_Balances(self) + @property def get_instruments(self): return Get_instruments(self) @@ -370,6 +443,15 @@ def ssid(self): """ return Ssid(self) # -------------------------------------------------------------------------------- + + @property + def Subscribe_Live_Deal(self): + return Subscribe_live_deal(self) + + @property + def Unscribe_Live_Deal(self): + return Unscribe_live_deal(self) +# -------------------------------------------------------------------------------- # trader mood @property @@ -380,6 +462,13 @@ def subscribe_Traders_mood(self): def unsubscribe_Traders_mood(self): return Traders_mood_unsubscribe(self) +# -------------------------------------------------------------------------------- +# tecnical indicators + + @property + def get_Technical_indicators(self): + return Technical_indicators(self) + # -------------------------------------------------------------------------------- # --------------------------subscribe&unsubscribe--------------------------------- # -------------------------------------------------------------------------------- @@ -410,37 +499,86 @@ def unsubscribe(self): def unsubscribe_all_size(self): return Unsubscribe_candles(self) + def portfolio(self, Main_Name, name, instrument_type, user_balance_id="", limit=1, offset=0, request_id=""): + # Main name:"unsubscribeMessage"/"subscribeMessage"/"sendMessage"(only for portfolio.get-positions") + # name:"portfolio.order-changed"/"portfolio.get-positions"/"portfolio.position-changed" + # instrument_type="cfd"/"forex"/"crypto"/"digital-option"/"turbo-option"/"binary-option" + logger = logging.getLogger(__name__) + M_name = Main_Name + request_id = str(request_id) + if name == "portfolio.order-changed": + msg = {"name": name, + "version": "1.0", + "params": { + "routingFilters": {"instrument_type": str(instrument_type)} + } + } + + elif name == "portfolio.get-positions": + msg = {"name": name, + "version": "3.0", + "body": { + "instrument_type": str(instrument_type), + "limit": int(limit), + "offset": int(offset) + } + } + + elif name == "portfolio.position-changed": + msg = {"name": name, + "version": "2.0", + "params": { + "routingFilters": {"instrument_type": str(instrument_type), + "user_balance_id": user_balance_id + + } + } + } + + self.send_websocket_request( + name=M_name, msg=msg, request_id=request_id) + + def set_user_settings(self, balanceId, request_id=""): + # Main name:"unsubscribeMessage"/"subscribeMessage"/"sendMessage"(only for portfolio.get-positions") + # name:"portfolio.order-changed"/"portfolio.get-positions"/"portfolio.position-changed" + # instrument_type="cfd"/"forex"/"crypto"/"digital-option"/"turbo-option"/"binary-option" + + msg = {"name": "set-user-settings", + "version": "1.0", + "body": { + "name": "traderoom_gl_common", + "version": 3, + "config": { + "balanceId": balanceId + + } + + } + } + self.send_websocket_request( + name="sendMessage", msg=msg, request_id=str(request_id)) + def subscribe_position_changed(self, name, instrument_type, request_id): # instrument_type="multi-option","crypto","forex","cfd" # name="position-changed","trading-fx-option.position-changed",digital-options.position-changed - logger = logging.getLogger(__name__) - data = json.dumps(dict(name="subscribeMessage", - request_id=str(request_id), - msg={"name": name, - "version": "1.0", - "params": { - "routingFilters": {"instrument_type": str(instrument_type)} - - } - } - ) - ) + msg = {"name": name, + "version": "1.0", + "params": { + "routingFilters": {"instrument_type": str(instrument_type)} - logger.debug(data) - self.websocket.send(data) + } + } + self.send_websocket_request( + name="subscribeMessage", msg=msg, request_id=str(request_id)) def setOptions(self, request_id, sendResults): # sendResults True/False - logger = logging.getLogger(__name__) - data = json.dumps(dict(name="setOptions", - request_id=str(request_id), - msg={"sendResults": sendResults} - ) - ) - logger.debug(data) - self.websocket.send(data) - + msg = {"sendResults": sendResults} + + self.send_websocket_request( + name="setOptions", msg=msg, request_id=str(request_id)) + @property def Subscribe_Top_Assets_Updated(self): return Subscribe_top_assets_updated(self) @@ -449,6 +587,14 @@ def Subscribe_Top_Assets_Updated(self): def Unsubscribe_Top_Assets_Updated(self): return Unsubscribe_top_assets_updated(self) + @property + def Subscribe_Commission_Changed(self): + return Subscribe_commission_changed(self) + + @property + def Unsubscribe_Commission_Changed(self): + return Unsubscribe_commission_changed(self) + # -------------------------------------------------------------------------------- # ----------------------------------------------------------------------------------- @@ -461,6 +607,10 @@ def setactives(self): """ return SetActives(self) + @property + def Get_Leader_Board(self): + return Leader_Board(self) + @property def getcandles(self): """Property for get IQ Option websocket candles chanel. @@ -471,24 +621,15 @@ def getcandles(self): return GetCandles(self) def get_api_option_init_all(self): - logger = logging.getLogger(__name__) - - data = json.dumps(dict(name="api_option_init_all", - msg="")) - logger.debug(data) - self.websocket.send(data) + self.send_websocket_request(name="api_option_init_all", msg="") def get_api_option_init_all_v2(self): - logger = logging.getLogger(__name__) - data = json.dumps(dict(name="sendMessage", - msg={"name": "get-initialization-data", - "version": "3.0", - "body": {} - } - ) - ) - logger.debug(data) - self.websocket.send(data) + + msg = {"name": "get-initialization-data", + "version": "3.0", + "body": {} + } + self.send_websocket_request(name="sendMessage", msg=msg) # -------------get information------------- @property @@ -498,6 +639,7 @@ def get_betinfo(self): @property def get_options(self): return Get_options(self) + @property def get_options_v2(self): return Get_options_v2(self) @@ -508,6 +650,10 @@ def get_options_v2(self): def buyv3(self): return Buyv3(self) + @property + def buyv3_by_raw_expired(self): + return Buyv3_by_raw_expired(self) + @property def buy(self): """Property for get IQ Option websocket buyv2 request. @@ -521,23 +667,18 @@ def buy(self): @property def sell_option(self): return Sell_Option(self) - + @property def sell_digital_option(self): return Sell_Digital_Option(self) # ____________________for_______digital____________________ def get_digital_underlying(self): - logger = logging.getLogger(__name__) - data = json.dumps(dict(name="sendMessage", - msg={"name": "get-underlying-list", - "version": "2.0", - "body": {"type": "digital-option"} - } - ) - ) - logger.debug(data) - self.websocket.send(data) + msg = {"name": "get-underlying-list", + "version": "2.0", + "body": {"type": "digital-option"} + } + self.send_websocket_request(name="sendMessage", msg=msg) @property def get_strike_list(self): @@ -587,9 +728,11 @@ def get_positions(self): @property def get_position(self): return Get_position(self) + @property def get_digital_position(self): return Get_digital_position(self) + @property def get_position_history(self): return Get_position_history(self) @@ -620,43 +763,118 @@ def heartbeat(self): return Heartbeat(self) # ------------------------------------------------------- - def set_session_cookies(self): + def set_session(self, cookies, headers): """Method to set session cookies.""" - cookies = dict(platform="15") - self.session.headers["User-Agent"] = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36" + + self.session.headers.update(headers) + + self.session.cookies.clear_session_cookies() requests.utils.add_dict_to_cookiejar(self.session.cookies, cookies) - def connect(self): + def start_websocket(self): global_value.check_websocket_if_connect = None - """Method for connection to IQ Option API.""" - try: - response = self.login(self.username, self.password) # pylint: disable=not-callable - except Exception as e: - logger = logging.getLogger(__name__) - logger.error(e) - return False + global_value.check_websocket_if_error = False + global_value.websocket_error_reason = None - ssid = response.cookies["ssid"] - self.set_session_cookies() self.websocket_client = WebsocketClient(self) self.websocket_thread = threading.Thread(target=self.websocket.run_forever, kwargs={'sslopt': { "check_hostname": False, "cert_reqs": ssl.CERT_NONE, "ca_certs": "cacert.pem"}}) # for fix pyinstall error: cafile, capath and cadata cannot be all omitted self.websocket_thread.daemon = True self.websocket_thread.start() - while True: try: - if global_value.check_websocket_if_connect == 0 or global_value.check_websocket_if_connect == -1: - return False + if global_value.check_websocket_if_error: + return False, global_value.websocket_error_reason + if global_value.check_websocket_if_connect == 0: + return False, "Websocket connection closed." elif global_value.check_websocket_if_connect == 1: - break + return True, None except: pass pass - self.ssid(ssid) # pylint: disable=not-callable + # @tokensms.setter + def setTokenSMS(self, response): + token_sms = response.json()['token'] + self.token_sms = token_sms + + # @token2fa.setter + def setToken2FA(self, response): + token_2fa = response.json()['token'] + self.token_login2fa = token_2fa + + def get_ssid(self): + response = None + try: + if self.token_login2fa is None: + response = self.login( + self.username, self.password) # pylint: disable=not-callable + else: + response = self.login_2fa( + self.username, self.password, self.token_login2fa) + except Exception as e: + logger = logging.getLogger(__name__) + logger.error(e) + return e + return response + + def send_ssid(self): + self.profile.msg = None + self.ssid(global_value.SSID) # pylint: disable=not-callable + while self.profile.msg == None: + pass + if self.profile.msg == False: + return False + else: + return True + + def connect(self): + + global_value.ssl_Mutual_exclusion = False + global_value.ssl_Mutual_exclusion_write = False + """Method for connection to IQ Option API.""" + try: + self.close() + except: + pass + check_websocket, websocket_reason = self.start_websocket() + + if check_websocket == False: + return check_websocket, websocket_reason + + # doing temp ssid reconnect for speed up + if global_value.SSID != None: + + check_ssid = self.send_ssid() + + if check_ssid == False: + # ssdi time out need reget,if sent error ssid,the weksocket will close by iqoption server + response = self.get_ssid() + try: + global_value.SSID = response.cookies["ssid"] + except: + return False, response.text + atexit.register(self.logout) + self.start_websocket() + self.send_ssid() + + # the ssid is None need get ssid + else: + response = self.get_ssid() + try: + global_value.SSID = response.cookies["ssid"] + except: + self.close() + return False, response.text + atexit.register(self.logout) + self.send_ssid() + + # set ssis cookie + requests.utils.add_dict_to_cookiejar( + self.session.cookies, {"ssid": global_value.SSID}) + self.timesync.server_timestamp = None while True: try: @@ -664,7 +882,19 @@ def connect(self): break except: pass - return True + return True, None + + def connect2fa(self, sms_code): + response = self.verify_2fa(sms_code, self.token_sms) + + if response.json()['code'] != 'success': + return False, response.json()['message'] + + # token_2fa + self.setToken2FA(response) + if self.token_login2fa is None: + return False, None + return True, None def close(self): self.websocket.close() @@ -673,10 +903,26 @@ def close(self): def websocket_alive(self): return self.websocket_thread.is_alive() - def get_active_account_type(self): - return self.__active_account_type - - def set_active_account_type(self, active_account_type): - self.__active_account_type = 1 - if active_account_type.upper() != "REAL": - self.__active_account_type = 4 \ No newline at end of file + @property + def Get_User_Profile_Client(self): + return Get_user_profile_client(self) + + @property + def Request_Leaderboard_Userinfo_Deals_Client(self): + return Request_leaderboard_userinfo_deals_client(self) + + @property + def Get_Users_Availability(self): + return Get_users_availability(self) + + @property + def subscribe_digital_price_splitter(self): + return SubscribeDigitalPriceSplitter(self) + + @property + def unsubscribe_digital_price_splitter(self): + return UnsubscribeDigitalPriceSplitter(self) + + @property + def place_digital_option_v2(self): + return DigitalOptionsPlaceDigitalOptionV2(self) diff --git a/iqoptionapi/constants.py b/iqoptionapi/constants.py index 4f1fa80d..34c45bce 100644 --- a/iqoptionapi/constants.py +++ b/iqoptionapi/constants.py @@ -1,3 +1,387 @@ -"""Module for IQ Option API constants.""" -#~~~need to update~~~ -ACTIVES ={'EURUSD': 1, 'EURGBP': 2, 'GBPJPY': 3, 'EURJPY': 4, 'GBPUSD': 5, 'USDJPY': 6, 'AUDCAD': 7, 'NZDUSD': 8, 'USDRUB': 10, 'AMAZON': 31, 'APPLE': 32, 'BAIDU': 33, 'CISCO': 34, 'FACEBOOK': 35, 'GOOGLE': 36, 'INTEL': 37, 'MSFT': 38, 'YAHOO': 40, 'AIG': 41, 'CITI': 45, 'COKE': 46, 'GE': 48, 'GM': 49, 'GS': 50, 'JPM': 51, 'MCDON': 52, 'MORSTAN': 53, 'NIKE': 54, 'USDCHF': 72, 'XAUUSD': 74, 'XAGUSD': 75, 'EURUSD-OTC': 76, 'EURGBP-OTC': 77, 'USDCHF-OTC': 78, 'EURJPY-OTC': 79, 'NZDUSD-OTC': 80, 'GBPUSD-OTC': 81, 'USDJPY-OTC': 85, 'AUDCAD-OTC': 86, 'ALIBABA': 87, 'YANDEX': 95, 'AUDUSD': 99, 'USDCAD': 100, 'AUDJPY': 101, 'GBPCAD': 102, 'GBPCHF': 103, 'GBPAUD': 104, 'EURCAD': 105, 'CHFJPY': 106, 'CADCHF': 107, 'EURAUD': 108, 'TWITTER': 113, 'FERRARI': 133, 'TESLA': 167, 'USDNOK': 168, 'EURNZD': 212, 'USDSEK': 219, 'USDTRY': 220, 'MMM:US': 252, 'ABT:US': 253, 'ABBV:US': 254, 'ACN:US': 255, 'ATVI:US': 256, 'ADBE:US': 258, 'AAP:US': 259, 'AA:US': 269, 'MO:US': 278, 'AMGN:US': 290, 'T:US': 303, 'ADSK:US': 304, 'BAC:US': 313, 'BBY:US': 320, 'BA:US': 324, 'BMY:US': 328, 'CAT:US': 338, 'CTL:US': 344, 'CVX:US': 349, 'CTAS:US': 356, 'CTXS:US': 360, 'CL:US': 365, 'CMCSA:US': 366, 'CXO:US': 369, 'COP:US': 370, 'ED:US': 371, 'COST:US': 374, 'CVS:US': 379, 'DHI:US': 380, 'DHR:US': 381, 'DRI:US': 382, 'DVA:US': 383, 'DAL:US': 386, 'DVN:US': 388, 'DO:US': 389, 'DLR:US': 390, 'DFS:US': 391, 'DISCA:US': 392, 'DOV:US': 397, 'DTE:US': 400, 'DNB:US': 403, 'ETFC:US': 404, 'EMN:US': 405, 'EBAY:US': 407, 'ECL:US': 408, 'EIX:US': 409, 'EMR:US': 413, 'ETR:US': 415, 'EQT:US': 417, 'EFX:US': 418, 'EQR:US': 420, 'ESS:US': 421, 'EXPD:US': 426, 'EXR:US': 428, 'XOM:US': 429, 'FFIV:US': 430, 'FAST:US': 432, 'FRT:US': 433, 'FDX:US': 434, 'FIS:US': 435, 'FITB:US': 436, 'FSLR:US': 437, 'FE:US': 438, 'FISV:US': 439, 'FLS:US': 441, 'FMC:US': 443, 'FBHS:US': 448, 'FCX:US': 450, 'FTR:US': 451, 'GILD:US': 460, 'HAS:US': 471, 'HON:US': 480, 'IBM:US': 491, 'KHC:US': 513, 'LMT:US': 528, 'MA:US': 542, 'MDT:US': 548, 'MU:US': 553, 'NFLX:US': 569, 'NEE:US': 575, 'NVDA:US': 586, 'PYPL:US': 597, 'PFE:US': 603, 'PM:US': 605, 'PG:US': 617, 'QCOM:US': 626, 'DGX:US': 628, 'RTN:US': 630, 'CRM:US': 645, 'SLB:US': 647, 'SBUX:US': 666, 'SYK:US': 670, 'DIS:US': 689, 'TWX:US': 692, 'VZ:US': 723, 'V:US': 726, 'WMT:US': 729, 'WBA:US': 730, 'WFC:US': 733, 'SNAP': 756, 'DUBAI': 757, 'TA25': 758, 'AMD': 760, 'ALGN': 761, 'ANSS': 762, 'DRE': 772, 'IDXX': 775, 'RMD': 781, 'SU': 783, 'TFX': 784, 'TMUS': 785, 'QQQ': 796, 'SPY': 808, 'BTCUSD': 816, 'XRPUSD': 817, 'ETHUSD': 818, 'LTCUSD': 819, 'DSHUSD': 821, 'BCHUSD': 824, 'OMGUSD': 825, 'ZECUSD': 826, 'ETCUSD': 829, 'BTCUSD-L': 830, 'ETHUSD-L': 831, 'LTCUSD-L': 834, 'BCHUSD-L': 836, 'BTGUSD': 837, 'QTMUSD': 845, 'TRXUSD': 858, 'EOSUSD': 864, 'USDINR': 865, 'USDPLN': 866, 'USDBRL': 867, 'USDZAR': 868, 'DBX': 889, 'SPOT': 891, 'USDSGD': 892, 'USDHKD': 893, 'LLOYL-CHIX': 894, 'VODL-CHIX': 895, 'BARCL-CHIX': 896, 'TSCOL-CHIX': 897, 'BPL-CHIX': 898, 'HSBAL-CHIX': 899, 'RBSL-CHIX': 900, 'BLTL-CHIX': 901, 'MRWL-CHIX': 902, 'STANL-CHIX': 903, 'RRL-CHIX': 904, 'MKSL-CHIX': 905, 'BATSL-CHIX': 906, 'ULVRL-CHIX': 908, 'EZJL-CHIX': 909, 'ADSD-CHIX': 910, 'ALVD-CHIX': 911, 'BAYND-CHIX': 912, 'BMWD-CHIX': 913, 'CBKD-CHIX': 914, 'COND-CHIX': 915, 'DAID-CHIX': 916, 'DBKD-CHIX': 917, 'DPWD-CHIX': 919, 'DTED-CHIX': 920, 'EOAND-CHIX': 921, 'MRKD-CHIX': 922, 'SIED-CHIX': 923, 'TKAD-CHIX': 924, 'VOW3D-CHIX': 925, 'PIRCM-CHIX': 929, 'PSTM-CHIX': 930, 'TITM-CHIX': 931, 'CSGNZ-CHIX': 933, 'NESNZ-CHIX': 934, 'ROGZ-CHIX': 935, 'UBSGZ-CHIX': 936, 'SANE-CHIX': 937, 'BBVAE-CHIX': 938, 'TEFE-CHIX': 939, 'AIRP-CHIX': 940, 'HEIOA-CHIX': 941, 'ORP-CHIX': 942, 'AUDCHF': 943, 'AUDNZD': 944, 'CADJPY': 945, 'EURCHF': 946, 'GBPNZD': 947, 'NZDCAD': 948, 'NZDJPY': 949, 'EURNOK': 951, 'CHFSGD': 952, 'EURSGD': 955, 'USDMXN': 957, 'JUVEM': 958, 'ASRM': 959, 'MANU': 966, 'UKOUSD': 969, 'XPTUSD': 970, 'USOUSD': 971, 'W1': 977, 'AUDDKK': 983, 'AUDMXN': 985, 'AUDNOK': 986, 'AUDSEK': 988, 'AUDSGD': 989, 'AUDTRY': 990, 'CADMXN': 992, 'CADNOK': 993, 'CADPLN': 994, 'CADTRY': 995, 'CHFDKK': 996, 'CHFNOK': 998, 'CHFSEK': 1000, 'CHFTRY': 1001, 'DKKPLN': 1004, 'DKKSGD': 1005, 'EURDKK': 1007, 'EURMXN': 1008, 'EURTRY': 1010, 'GBPILS': 1013, 'GBPMXN': 1014, 'GBPNOK': 1015, 'GBPPLN': 1016, 'GBPSEK': 1017, 'GBPSGD': 1018, 'GBPTRY': 1019, 'NOKDKK': 1023, 'NOKJPY': 1024, 'NOKSEK': 1025, 'NZDDKK': 1026, 'NZDMXN': 1027, 'NZDNOK': 1028, 'NZDSEK': 1030, 'NZDSGD': 1031, 'NZDTRY': 1032, 'NZDZAR': 1033, 'PLNSEK': 1036, 'SEKDKK': 1037, 'SEKJPY': 1038, 'SGDJPY': 1041, 'USDDKK': 1045, 'NZDCHF': 1048, 'GBPHUF': 1049, 'USDCZK': 1050, 'USDHUF': 1051, 'CADSGD': 1054, 'EURCZK': 1056, 'EURHUF': 1057, 'USDTHB': 1062, 'IOTUSD-L': 1116, 'XLMUSD-L': 1117, 'NEOUSD-L': 1118, 'ADAUSD-L': 1119, 'XEMUSD-L': 1120, 'XRPUSD-L': 1122, 'EEM': 1203, 'FXI': 1204, 'IWM': 1205, 'GDX': 1206, 'XOP': 1209, 'XLK': 1210, 'XLE': 1211, 'XLU': 1212, 'IEMG': 1213, 'XLY': 1214, 'IYR': 1215, 'SQQQ': 1216, 'OIH': 1217, 'SMH': 1218, 'EWJ': 1219, 'XLB': 1221, 'DIA': 1222, 'TLT': 1223, 'SDS': 1224, 'EWW': 1225, 'XME': 1227, 'QID': 1229, 'AUS200': 1230, 'FRANCE40': 1231, 'GERMANY30': 1232, 'HONGKONG50': 1233, 'SPAIN35': 1234, 'US30': 1235, 'USNDAQ100': 1236, 'JAPAN225': 1237, 'USSPX500': 1239, 'UK100': 1241, 'TRXUSD-L': 1242, 'EOSUSD-L': 1244, 'BNBUSD-L': 1279, 'ACB': 1288, 'CGC': 1289, 'CRON': 1290, 'GWPH': 1291, 'MJ': 1292, 'TLRY': 1293, 'BUD': 1294, 'LYFT': 1313, 'PINS': 1315, 'ZM': 1316, 'UBER': 1334, 'MELI': 1335, 'BYND': 1336, 'BSVUSD-L': 1338, 'ONTUSD-L': 1339, 'ATOMUSD-L': 1340, 'WORK': 1343} +"" +"Module for IQ Option API constants." +""#~~~need to update~~~ +ACTIVES = { + "EURUSD": 1, + "EURGBP": 2, + "GBPJPY": 3, + "EURJPY": 4, + "GBPUSD": 5, + "USDJPY": 6, + "AUDCAD": 7, + "NZDUSD": 8, + "USDRUB": 10, + "AMAZON": 31, + "APPLE": 32, + "BAIDU": 33, + "CISCO": 34, + "FACEBOOK": 35, + "GOOGLE": 36, + "INTEL": 37, + "MSFT": 38, + "YAHOO": 40, + "AIG": 41, + "CITI": 45, + "COKE": 46, + "GE": 48, + "GM": 49, + "GS": 50, + "JPM": 51, + "MCDON": 52, + "MORSTAN": 53, + "NIKE": 54, + "USDCHF": 72, + "XAUUSD": 74, + "XAGUSD": 75, + "EURUSD-OTC": 76, + "EURGBP-OTC": 77, + "USDCHF-OTC": 78, + "EURJPY-OTC": 79, + "NZDUSD-OTC": 80, + "GBPUSD-OTC": 81, + "GBPJPY-OTC": 84, + "USDJPY-OTC": 85, + "AUDCAD-OTC": 86, + "ALIBABA": 87, + "YANDEX": 95, + "AUDUSD": 99, + "USDCAD": 100, + "AUDJPY": 101, + "GBPCAD": 102, + "GBPCHF": 103, + "GBPAUD": 104, + "EURCAD": 105, + "CHFJPY": 106, + "CADCHF": 107, + "EURAUD": 108, + "TWITTER": 113, + "FERRARI": 133, + "TESLA": 167, + "USDNOK": 168, + "EURNZD": 212, + "USDSEK": 219, + "USDTRY": 220, + "MMM:US": 252, + "ABT:US": 253, + "ABBV:US": 254, + "ACN:US": 255, + "ATVI:US": 256, + "ADBE:US": 258, + "AAP:US": 259, + "AA:US": 269, + "AGN:US": 272, + "MO:US": 278, + "AMGN:US": 290, + "T:US": 303, + "ADSK:US": 304, + "BAC:US": 313, + "BBY:US": 320, + "BA:US": 324, + "BMY:US": 328, + "CAT:US": 338, + "CTL:US": 344, + "CVX:US": 349, + "CTAS:US": 356, + "CTXS:US": 360, + "CL:US": 365, + "CMCSA:US": 366, + "CXO:US": 369, + "COP:US": 370, + "ED:US": 371, + "COST:US": 374, + "CVS:US": 379, + "DHI:US": 380, + "DHR:US": 381, + "DRI:US": 382, + "DVA:US": 383, + "DAL:US": 386, + "DVN:US": 388, + "DO:US": 389, + "DLR:US": 390, + "DFS:US": 391, + "DISCA:US": 392, + "DOV:US": 397, + "DTE:US": 400, + "DNB:US": 403, + "ETFC:US": 404, + "EMN:US": 405, + "EBAY:US": 407, + "ECL:US": 408, + "EIX:US": 409, + "EMR:US": 413, + "ETR:US": 415, + "EQT:US": 417, + "EFX:US": 418, + "EQR:US": 420, + "ESS:US": 421, + "EXPD:US": 426, + "EXR:US": 428, + "XOM:US": 429, + "FFIV:US": 430, + "FAST:US": 432, + "FRT:US": 433, + "FDX:US": 434, + "FIS:US": 435, + "FITB:US": 436, + "FSLR:US": 437, + "FE:US": 438, + "FISV:US": 439, + "FLS:US": 441, + "FMC:US": 443, + "FBHS:US": 448, + "FCX:US": 450, + "FTR:US": 451, + "GILD:US": 460, + "HAS:US": 471, + "HON:US": 480, + "IBM:US": 491, + "KHC:US": 513, + "LMT:US": 528, + "MA:US": 542, + "MDT:US": 548, + "MU:US": 553, + "NFLX:US": 569, + "NEE:US": 575, + "NVDA:US": 586, + "PYPL:US": 597, + "PFE:US": 603, + "PM:US": 605, + "PG:US": 617, + "QCOM:US": 626, + "DGX:US": 628, + "RTN:US": 630, + "CRM:US": 645, + "SLB:US": 647, + "SBUX:US": 666, + "SYK:US": 670, + "DIS:US": 689, + "TWX:US": 692, + "VZ:US": 723, + "V:US": 726, + "WMT:US": 729, + "WBA:US": 730, + "WFC:US": 733, + "SNAP": 756, + "DUBAI": 757, + "TA25": 758, + "AMD": 760, + "ALGN": 761, + "ANSS": 762, + "DRE": 772, + "IDXX": 775, + "RMD": 781, + "SU": 783, + "TFX": 784, + "TMUS": 785, + "QQQ": 796, + "SPY": 808, + "BTCUSD": 816, + "XRPUSD": 817, + "ETHUSD": 818, + "LTCUSD": 819, + "DSHUSD": 821, + "BCHUSD": 824, + "OMGUSD": 825, + "ZECUSD": 826, + "ETCUSD": 829, + "BTCUSD-L": 830, + "ETHUSD-L": 831, + "LTCUSD-L": 834, + "BCHUSD-L": 836, + "BTGUSD": 837, + "QTMUSD": 845, + "XLMUSD": 847, + "TRXUSD": 858, + "EOSUSD": 864, + "USDINR": 865, + "USDPLN": 866, + "USDBRL": 867, + "USDZAR": 868, + "DBX": 889, + "SPOT": 891, + "USDSGD": 892, + "USDHKD": 893, + "LLOYL-CHIX": 894, + "VODL-CHIX": 895, + "BARCL-CHIX": 896, + "TSCOL-CHIX": 897, + "BPL-CHIX": 898, + "HSBAL-CHIX": 899, + "RBSL-CHIX": 900, + "BLTL-CHIX": 901, + "MRWL-CHIX": 902, + "STANL-CHIX": 903, + "RRL-CHIX": 904, + "MKSL-CHIX": 905, + "BATSL-CHIX": 906, + "ULVRL-CHIX": 908, + "EZJL-CHIX": 909, + "ADSD-CHIX": 910, + "ALVD-CHIX": 911, + "BAYND-CHIX": 912, + "BMWD-CHIX": 913, + "CBKD-CHIX": 914, + "COND-CHIX": 915, + "DAID-CHIX": 916, + "DBKD-CHIX": 917, + "DPWD-CHIX": 919, + "DTED-CHIX": 920, + "EOAND-CHIX": 921, + "MRKD-CHIX": 922, + "SIED-CHIX": 923, + "TKAD-CHIX": 924, + "VOW3D-CHIX": 925, + "ENELM-CHIX": 926, + "ENIM-CHIX": 927, + "PIRCM-CHIX": 929, + "PSTM-CHIX": 930, + "TITM-CHIX": 931, + "UCGM-CHIX": 932, + "CSGNZ-CHIX": 933, + "NESNZ-CHIX": 934, + "ROGZ-CHIX": 935, + "UBSGZ-CHIX": 936, + "SANE-CHIX": 937, + "BBVAE-CHIX": 938, + "TEFE-CHIX": 939, + "AIRP-CHIX": 940, + "HEIOA-CHIX": 941, + "ORP-CHIX": 942, + "AUDCHF": 943, + "AUDNZD": 944, + "CADJPY": 945, + "EURCHF": 946, + "GBPNZD": 947, + "NZDCAD": 948, + "NZDJPY": 949, + "EURSEK": 950, + "EURNOK": 951, + "CHFSGD": 952, + "EURSGD": 955, + "USDMXN": 957, + "JUVEM": 958, + "ASRM": 959, + "MANU": 966, + "UKOUSD": 969, + "XPTUSD": 970, + "USOUSD": 971, + "W1": 977, + "AUDDKK": 983, + "AUDMXN": 985, + "AUDNOK": 986, + "AUDSEK": 988, + "AUDSGD": 989, + "AUDTRY": 990, + "CADMXN": 992, + "CADNOK": 993, + "CADPLN": 994, + "CADTRY": 995, + "CHFDKK": 996, + "CHFNOK": 998, + "CHFSEK": 1000, + "CHFTRY": 1001, + "DKKPLN": 1004, + "DKKSGD": 1005, + "EURDKK": 1007, + "EURMXN": 1008, + "EURTRY": 1010, + "EURZAR": 1011, + "GBPILS": 1013, + "GBPMXN": 1014, + "GBPNOK": 1015, + "GBPPLN": 1016, + "GBPSEK": 1017, + "GBPSGD": 1018, + "GBPTRY": 1019, + "NOKDKK": 1023, + "NOKJPY": 1024, + "NOKSEK": 1025, + "NZDDKK": 1026, + "NZDMXN": 1027, + "NZDNOK": 1028, + "NZDSEK": 1030, + "NZDSGD": 1031, + "NZDTRY": 1032, + "NZDZAR": 1033, + "PLNSEK": 1036, + "SEKDKK": 1037, + "SEKJPY": 1038, + "SGDJPY": 1041, + "USDDKK": 1045, + "NZDCHF": 1048, + "GBPHUF": 1049, + "USDCZK": 1050, + "USDHUF": 1051, + "CADSGD": 1054, + "EURCZK": 1056, + "EURHUF": 1057, + "USDTHB": 1062, + "IOTUSD-L": 1116, + "XLMUSD-L": 1117, + "NEOUSD-L": 1118, + "ADAUSD-L": 1119, + "XEMUSD-L": 1120, + "XRPUSD-L": 1122, + "EEM": 1203, + "FXI": 1204, + "IWM": 1205, + "GDX": 1206, + "XOP": 1209, + "XLK": 1210, + "XLE": 1211, + "XLU": 1212, + "IEMG": 1213, + "XLY": 1214, + "IYR": 1215, + "SQQQ": 1216, + "OIH": 1217, + "SMH": 1218, + "EWJ": 1219, + "XLB": 1221, + "DIA": 1222, + "TLT": 1223, + "SDS": 1224, + "EWW": 1225, + "XME": 1227, + "QID": 1229, + "AUS200": 1230, + "FRANCE40": 1231, + "GERMANY30": 1232, + "HONGKONG50": 1233, + "SPAIN35": 1234, + "US30": 1235, + "USNDAQ100": 1236, + "JAPAN225": 1237, + "USSPX500": 1239, + "UK100": 1241, + "TRXUSD-L": 1242, + "EOSUSD-L": 1244, + "BNBUSD-L": 1279, + "ACB": 1288, + "CGC": 1289, + "CRON": 1290, + "GWPH": 1291, + "MJ": 1292, + "TLRY": 1293, + "BUD": 1294, + "LYFT": 1313, + "PINS": 1315, + "ZM": 1316, + "UBER": 1334, + "MELI": 1335, + "BYND": 1336, + "BSVUSD-L": 1338, + "ONTUSD-L": 1339, + "ATOMUSD-L": 1340, + "WORK": 1343, + "FDJP": 1350, + "CAN": 1351, + "VIAC": 1352, + "TFC": 1353, + "USDXOF-OTC": 1379, + "USDZAR-OTC": 1380, + "USDSGD-OTC": 1381, + "USDHKD-OTC": 1382, + "USDINR-OTC": 1383, + "DOGEUSD-L": 1406, +} diff --git a/iqoptionapi/country_id.py b/iqoptionapi/country_id.py new file mode 100644 index 00000000..60bc5e49 --- /dev/null +++ b/iqoptionapi/country_id.py @@ -0,0 +1,190 @@ +ID = {"Worldwide":0, + "AF": 1, + "AL": 2, + "DZ": 3, + "AD": 5, + "AO": 6, + "AI": 7, + "AG": 9, + "AR": 10, + "AM": 11, + "AW": 12, + "AT": 14, + "AZ": 15, + "BS": 16, + "BH": 17, + "BD": 18, + "BB": 19, + "BY": 20, + "BZ": 22, + "BJ": 23, + "BM": 24, + "BO": 26, + "BA": 27, + "BW": 28, + "BV": 29, + "BR": 30, + "BN": 31, + "BG": 32, + "BF": 33, + "BI": 34, + "KH": 35, + "CM": 36, + "CV": 38, + "KY": 39, + "TD": 41, + "CL": 42, + "CN": 43, + "CC": 45, + "CO": 46, + "KM": 47, + "CG": 48, + "CK": 49, + "CR": 50, + "CI": 51, + "HR": 52, + "CU": 53, + "CY": 54, + "CZ": 55, + "DK": 56, + "DJ": 57, + "DM": 58, + "DO": 59, + "TL": 60, + "EC": 61, + "EG": 62, + "SV": 63, + "EE": 66, + "ET": 67, + "FO": 69, + "FJ": 70, + "FI": 71, + "FR": 72, + "GF": 73, + "PF": 74, + "GA": 75, + "GM": 76, + "GE": 77, + "DE": 78, + "GH": 79, + "GR": 81, + "GD": 83, + "GP": 84, + "GT": 86, + "GN": 87, + "GY": 88, + "HT": 89, + "HN": 90, + "HK": 91, + "HU": 92, + "IS": 93, + "ID": 94, + "IQ": 95, + "IE": 96, + "IT": 97, + "JM": 98, + "JO": 100, + "KZ": 101, + "KE": 102, + "KI": 103, + "KW": 104, + "KG": 105, + "LA": 106, + "LV": 107, + "LB": 108, + "LS": 109, + "LR": 110, + "LY": 111, + "LT": 113, + "LU": 114, + "MO": 115, + "MK": 116, + "MG": 117, + "MW": 118, + "MY": 119, + "MV": 120, + "ML": 121, + "MT": 122, + "MQ": 124, + "MR": 125, + "MU": 126, + "MX": 128, + "FM": 129, + "MD": 130, + "MC": 131, + "MN": 132, + "MA": 134, + "MZ": 135, + "MM": 136, + "NA": 137, + "NP": 139, + "NL": 140, + "AN": 141, + "NC": 142, + "NZ": 143, + "NI": 144, + "NE": 145, + "NG": 146, + "NO": 149, + "OM": 150, + "PK": 151, + "PW": 152, + "PA": 153, + "PG": 154, + "PY": 155, + "PE": 156, + "PH": 157, + "PL": 159, + "PT": 160, + "QA": 162, + "RE": 163, + "RO": 164, + "RW": 166, + "KN": 167, + "LC": 168, + "SA": 171, + "SN": 172, + "SC": 173, + "SG": 175, + "SK": 176, + "SI": 177, + "SO": 179, + "ZA": 180, + "KR": 181, + "ES": 182, + "LK": 183, + "SH": 184, + "SR": 186, + "SZ": 187, + "SE": 188, + "CH": 189, + "TW": 191, + "TJ": 192, + "TZ": 193, + "TH": 194, + "TG": 195, + "TT": 198, + "TN": 199, + "TR": 200, + "TM": 201, + "UG": 203, + "UA": 204, + "AE": 205, + "GB": 206, + "UY": 207, + "UZ": 208, + "VE": 211, + "VN": 212, + "VG": 213, + "YE": 216, + "ZM": 218, + "ZW": 219, + "RS": 220, + "ME": 221, + "IN": 225, + "TC": 234, + "CD": 235, + "GG": 236, + "IM": 237, + "JE": 239, + "CW": 246, } diff --git a/iqoptionapi/global_value.py b/iqoptionapi/global_value.py index 79bfe2e4..56f3f479 100644 --- a/iqoptionapi/global_value.py +++ b/iqoptionapi/global_value.py @@ -1,2 +1,14 @@ #python -check_websocket_if_connect=None \ No newline at end of file +check_websocket_if_connect=None +# try fix ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:2361) +ssl_Mutual_exclusion=False#mutex read write +#if false websocket can sent self.websocket.send(data) +#else can not sent self.websocket.send(data) +ssl_Mutual_exclusion_write=False#if thread wirite + +SSID=None + +check_websocket_if_error=False +websocket_error_reason=None + +balance_id=None \ No newline at end of file diff --git a/iqoptionapi/http/events.py b/iqoptionapi/http/events.py new file mode 100644 index 00000000..b47ed959 --- /dev/null +++ b/iqoptionapi/http/events.py @@ -0,0 +1,29 @@ +"""Module for IQ Option http login resource.""" + +from iqoptionapi.http.resource import Resource + + +class Events(Resource): + """Class for IQ option login resource.""" + # pylint: disable=too-few-public-methods + + url = "" + + def send_http(self,method, data=None, headers=None): + """Send get request for IQ Option API login http resource. + + :returns: The instance of :class:`requests.Response`. + """ + return self.api.send_http_request_v2(method=method, url="https://event.iqoption.com/api/v1/events",data=data) + + def __call__(self,method,data,headers=None): + """Method to get IQ Option API login http request. + + :param str username: The username of a IQ Option server. + :param str password: The password of a IQ Option server. + + :returns: The instance of :class:`requests.Response`. + """ + + + return self.send_http(method=method,data=data,headers=headers) diff --git a/iqoptionapi/http/login.py b/iqoptionapi/http/login.py index d7f9dbcc..b21b1161 100644 --- a/iqoptionapi/http/login.py +++ b/iqoptionapi/http/login.py @@ -14,7 +14,7 @@ def _post(self, data=None, headers=None): :returns: The instance of :class:`requests.Response`. """ - return self.api.send_http_request_v2(method="POST", url="https://auth.iqoption.com/api/v1.0/login",data=data, headers=headers) + return self.api.send_http_request_v2(method="POST", url="https://auth.iqoption.com/api/v2/login",data=data, headers=headers) def __call__(self, username, password): """Method to get IQ Option API login http request. @@ -24,7 +24,7 @@ def __call__(self, username, password): :returns: The instance of :class:`requests.Response`. """ - data = {"email": username, + data = {"identifier": username, "password": password} return self._post(data=data) diff --git a/iqoptionapi/http/login2fa.py b/iqoptionapi/http/login2fa.py new file mode 100644 index 00000000..f2d097aa --- /dev/null +++ b/iqoptionapi/http/login2fa.py @@ -0,0 +1,32 @@ +"""Module for IQ Option http login resource.""" + +from iqoptionapi.http.resource import Resource + + +class Login2FA(Resource): + """Class for IQ option login resource.""" + # pylint: disable=too-few-public-methods + + url = "" + + def _post(self, data=None, headers=None): + """Send get request for IQ Option API login http resource. + + :returns: The instance of :class:`requests.Response`. + """ + return self.api.send_http_request_v2(method="POST", url="https://auth.iqoption.com/api/v2/login",data=data, headers=headers) + + def __call__(self, username, password, token_login): + """Method to get IQ Option API login http request. + + :param str username: The username of a IQ Option server. + :param str password: The password of a IQ Option server. + :param str token: The token of a IQ Option server 2FA. + + :returns: The instance of :class:`requests.Response`. + """ + data = {"identifier": username, + "password": password, + "token": token_login} + + return self._post(data=data) diff --git a/iqoptionapi/http/logout.py b/iqoptionapi/http/logout.py new file mode 100644 index 00000000..554ed9b9 --- /dev/null +++ b/iqoptionapi/http/logout.py @@ -0,0 +1,22 @@ +"""Module for IQ Option http login resource.""" + +from iqoptionapi.http.resource import Resource + + +class Logout(Resource): + """Class for IQ option login resource.""" + # pylint: disable=too-few-public-methods + + url = "" + + def _post(self, data=None, headers=None): + """Send get request for IQ Option API login http resource. + + :returns: The instance of :class:`requests.Response`. + """ + return self.api.send_http_request_v2(method="POST", url="https://auth.iqoption.com/api/v1.0/logout",data=data, headers=headers) + + def __call__(self): + + return self._post() + diff --git a/iqoptionapi/http/send_sms.py b/iqoptionapi/http/send_sms.py new file mode 100644 index 00000000..f2151a19 --- /dev/null +++ b/iqoptionapi/http/send_sms.py @@ -0,0 +1,39 @@ +"""Module for IQ Option http sms resource.""" + +from iqoptionapi.http.resource import Resource +import json + + +class SMS_Sender(Resource): + """Class for IQ option sms resource.""" + # pylint: disable=too-few-public-methods + + url = "" + + def _post(self, data=None, headers=None): + """Send get request for IQ Option API sms http resource. + + :returns: The instance of :class:`requests.Response`. + """ + return self.api.send_http_request_v2(method="POST", url="https://auth.iqoption.com/api/v2/verify/2fa",data=json.dumps(data), headers=headers) + + def __call__(self, token_reason): + """Method to get IQ Option API sms http request. + + :param str method: The method of a IQ Option server 2FA. + :param str token_reason: The token of a IQ Option server 2FA. + + :returns: The instance of :class:`requests.Response`. + """ + data = {"method": "sms", + "token": token_reason} + + headers = { + 'Accept': 'application/json', + 'Content-Type': 'application/json', + 'Referer': 'https://iqoption.com/en/login', + 'Sec-Fetch-Mode': 'cors', + 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36' + } + + return self._post(data=data, headers=headers) diff --git a/iqoptionapi/http/verify.py b/iqoptionapi/http/verify.py new file mode 100644 index 00000000..aad69398 --- /dev/null +++ b/iqoptionapi/http/verify.py @@ -0,0 +1,39 @@ +"""Module for IQ Option http verify resource.""" + +from iqoptionapi.http.resource import Resource +import json + + +class Verify(Resource): + """Class for IQ option verify resource.""" + # pylint: disable=too-few-public-methods + + url = "" + + def _post(self, data=None, headers=None): + """Send get request for IQ Option API verify http resource. + + :returns: The instance of :class:`requests.Response`. + """ + return self.api.send_http_request_v2(method="POST", url="https://auth.iqoption.com/api/v2/verify/2fa",data=json.dumps(data), headers=headers) + + def __call__(self, sms_received, token_sms): + """Method to get IQ Option API verify http request. + + :param str sms_received: The sms received of a IQ Option server 2FA. + :param str token_sms: The token of a IQ Option server 2FA. + + :returns: The instance of :class:`requests.Response`. + """ + data = {"code": str(sms_received), + "token": token_sms} + + headers = { + 'Accept': 'application/json', + 'Content-Type': 'application/json', + 'Referer': 'https://iqoption.com/en/login', + 'Sec-Fetch-Mode': 'cors', + 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36' + } + + return self._post(data=data, headers=headers) diff --git a/iqoptionapi/stable_api.py b/iqoptionapi/stable_api.py index 4a6b4cbc..edbccb47 100644 --- a/iqoptionapi/stable_api.py +++ b/iqoptionapi/stable_api.py @@ -1,27 +1,32 @@ # python from iqoptionapi.api import IQOptionAPI import iqoptionapi.constants as OP_code +import iqoptionapi.country_id as Country import threading import time +import json import logging import operator - +import iqoptionapi.global_value as global_value from collections import defaultdict -from iqoptionapi.expiration import get_expiration_time,get_remaning_time -from datetime import datetime,timedelta +from collections import deque +from iqoptionapi.expiration import get_expiration_time, get_remaning_time +from iqoptionapi.version_control import api_version +from datetime import datetime, timedelta +from random import randint + - def nested_dict(n, type): if n == 1: return defaultdict(type) else: - return defaultdict(lambda: nested_dict(n-1, type)) + return defaultdict(lambda: nested_dict(n - 1, type)) class IQ_Option: - __version__ = "5.1.1" + __version__ = api_version - def __init__(self, email, password, active_account_type="PRACTIC"): + def __init__(self, email, password, active_account_type="PRACTICE"): self.size = [1, 5, 10, 15, 30, 60, 120, 300, 600, 900, 1800, 3600, 7200, 14400, 28800, 43200, 86400, 604800, 2592000] self.email = email @@ -31,122 +36,183 @@ def __init__(self, email, password, active_account_type="PRACTIC"): self.subscribe_candle = [] self.subscribe_candle_all_size = [] self.subscribe_mood = [] + self.subscribe_indicators = [] # for digit - self.get_digital_spot_profit_after_sale_data=nested_dict(2,int) + self.get_digital_spot_profit_after_sale_data = nested_dict(2, int) self.get_realtime_strike_list_temp_data = {} self.get_realtime_strike_list_temp_expiration = 0 + self.SESSION_HEADER = { + "User-Agent": r"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36"} + self.SESSION_COOKIE = {} # - self.max_reconnect = 5 - self.connect_count = 0 - self.active_account_type = active_account_type # --start - self.connect() - # self.update_ACTIVES_OPCODE() this auto function delay too long - self.get_balance_id() - # -------------------------------------------------------------------------- + # self.connect() + # this auto function delay too long + + # -------------------------------------------------------------------------- def get_server_timestamp(self): return self.api.timesync.server_timestamp - def set_max_reconnect(self, number): - self.max_reconnect = number + def re_subscribe_stream(self): + try: + for ac in self.subscribe_candle: + sp = ac.split(",") + self.start_candles_one_stream(sp[0], sp[1]) + except: + pass + # ----------------- + try: + for ac in self.subscribe_candle_all_size: + self.start_candles_all_size_stream(ac) + except: + pass + # -------------reconnect subscribe_mood + try: + for ac in self.subscribe_mood: + self.start_mood_stream(ac) + except: + pass - def connect(self): - while True: - try: - self.api.close() - except: + def set_session(self, header, cookie): + self.SESSION_HEADER = header + self.SESSION_COOKIE = cookie + + def connect(self, sms_code=None): + try: + self.api.close() + except: + pass + # logging.error('**warning** self.api.close() fail') + + self.api = IQOptionAPI( + "iqoption.com", self.email, self.password) + check = None + + # 2FA-- + if sms_code is not None: + self.api.setTokenSMS(self.resp_sms) + status, reason = self.api.connect2fa(sms_code) + if not status: + return status, reason + # 2FA-- + + self.api.set_session(headers=self.SESSION_HEADER, + cookies=self.SESSION_COOKIE) + + check, reason = self.api.connect() + + if check == True: + # -------------reconnect subscribe_candle + self.re_subscribe_stream() + + # ---------for async get name: "position-changed", microserviceName + while global_value.balance_id == None: pass - #logging.error('**warning** self.api.close() fail') - if self.connect_count < self.max_reconnect or self.max_reconnect<0: - self.api = IQOptionAPI( - "iqoption.com", self.email, self.password) - check = None - self.api.set_active_account_type(self.active_account_type) - check = self.api.connect() - - if check == True: - while self.api.profile.balance_id == None: - pass - # -------------reconnect subscribe_candle - try: - for ac in self.subscribe_candle: - sp = ac.split(",") - self.start_candles_one_stream(sp[0], sp[1]) - except: - pass - # ----------------- - try: - for ac in self.subscribe_candle_all_size: - self.start_candles_all_size_stream(ac) - except: - pass - # -------------reconnect subscribe_mood - try: - for ac in self.subscribe_mood: - self.start_mood_stream(ac) - except: - pass - - #---------for async get name: "position-changed", microserviceName - self.api.setOptions(1,True) - self.api.subscribe_position_changed("position-changed","multi-option",2) - self.api.subscribe_position_changed("trading-fx-option.position-changed","fx-option",3) - self.api.subscribe_position_changed("position-changed","crypto",4) - self.api.subscribe_position_changed("position-changed","forex",5) - self.api.subscribe_position_changed("digital-options.position-changed","digital-option",6) - self.api.subscribe_position_changed("position-changed","cfd",7) - - break - time.sleep(self.suspend*2) - self.connect_count = self.connect_count+1 - else: - logging.error('**error** reconnect() too many time please look log file') - exit(1) + + self.position_change_all( + "subscribeMessage", global_value.balance_id) + + self.order_changed_all("subscribeMessage") + self.api.setOptions(1, True) + + """ + self.api.subscribe_position_changed( + "position-changed", "multi-option", 2) + + self.api.subscribe_position_changed( + "trading-fx-option.position-changed", "fx-option", 3) + + self.api.subscribe_position_changed( + "position-changed", "crypto", 4) + + self.api.subscribe_position_changed( + "position-changed", "forex", 5) + + self.api.subscribe_position_changed( + "digital-options.position-changed", "digital-option", 6) + + self.api.subscribe_position_changed( + "position-changed", "cfd", 7) + """ + + # self.get_balance_id() + return True, None + else: + if json.loads(reason)['code'] == 'verify': + response = self.api.send_sms_code(json.loads(reason)['token']) + + if response.json()['code'] != 'success': + return False, response.json()['message'] + + # token_sms + self.resp_sms = response + return False, "2FA" + return False, reason + + # self.update_ACTIVES_OPCODE() + + def connect_2fa(self, sms_code): + return self.connect(sms_code=sms_code) def check_connect(self): # True/False - idle_time=abs(self.api.timesync.server_timestamp-time.time()) - if idle_time>6: + # if not connected, sometimes it's None, sometimes its '0', so + # both will fall on this first case + if not global_value.check_websocket_if_connect: return False else: return True # wait for timestamp getting -# _________________________UPDATE ACTIVES OPCODE_____________________ + # _________________________UPDATE ACTIVES OPCODE_____________________ def get_all_ACTIVES_OPCODE(self): return OP_code.ACTIVES def update_ACTIVES_OPCODE(self): # update from binary option self.get_ALL_Binary_ACTIVES_OPCODE() - #crypto /dorex/cfd + # crypto /dorex/cfd self.instruments_input_all_in_ACTIVES() dicc = {} for lis in sorted(OP_code.ACTIVES.items(), key=operator.itemgetter(1)): dicc[lis[0]] = lis[1] OP_code.ACTIVES = dicc - def get_name_by_activeId(self,activeId): - info=self.get_financial_information(activeId) + + def get_name_by_activeId(self, activeId): + info = self.get_financial_information(activeId) try: return info["msg"]["data"]["active"]["name"] except: return None - def get_financial_information(self,activeId): - self.api.financial_information=None + + def get_financial_information(self, activeId): + self.api.financial_information = None self.api.get_financial_information(activeId) - while self.api.financial_information==None: + while self.api.financial_information == None: pass return self.api.financial_information - def get_instruments(self,type): - #type="crypto"/"forex"/"cfd" + + def get_leader_board(self, country, from_position, to_position, near_traders_count, user_country_id=0, near_traders_country_count=0, top_country_count=0, top_count=0, top_type=2): + self.api.leaderboard_deals_client = None + + country_id = Country.ID[country] + self.api.Get_Leader_Board(country_id, user_country_id, from_position, to_position, + near_traders_country_count, near_traders_count, top_country_count, top_count, top_type) + + while self.api.leaderboard_deals_client == None: + pass + return self.api.leaderboard_deals_client + + def get_instruments(self, type): + # type="crypto"/"forex"/"cfd" time.sleep(self.suspend) self.api.instruments = None while self.api.instruments == None: try: self.api.get_instruments(type) start = time.time() - while self.api.instruments == None and time.time()-start < 10: + while self.api.instruments == None and time.time() - start < 10: pass except: logging.error('**error** api.get_instruments need reconnect') @@ -154,10 +220,9 @@ def get_instruments(self,type): return self.api.instruments def instruments_input_to_ACTIVES(self, type): - instruments=self.get_instruments(type) + instruments = self.get_instruments(type) for ins in instruments["instruments"]: OP_code.ACTIVES[ins["id"]] = ins["active_id"] - def instruments_input_all_in_ACTIVES(self): self.instruments_input_to_ACTIVES("crypto") @@ -166,12 +231,12 @@ def instruments_input_all_in_ACTIVES(self): def get_ALL_Binary_ACTIVES_OPCODE(self): init_info = self.get_all_init() - for dirr in (["binary","turbo"]): + for dirr in (["binary", "turbo"]): for i in init_info["result"][dirr]["actives"]: OP_code.ACTIVES[(init_info["result"][dirr] - ["actives"][i]["name"]).split(".")[1]] = int(i) - -# _________________________self.api.get_api_option_init_all() wss______________________ + ["actives"][i]["name"]).split(".")[1]] = int(i) + + # _________________________self.api.get_api_option_init_all() wss______________________ def get_all_init(self): while True: @@ -186,7 +251,7 @@ def get_all_init(self): time.sleep(5) start = time.time() while True: - if time.time()-start > 30: + if time.time() - start > 30: logging.error('**warning** get_all_init late 30 sec') break try: @@ -199,91 +264,96 @@ def get_all_init(self): return self.api.api_option_init_all_result except: pass + def get_all_init_v2(self): self.api.api_option_init_all_result_v2 = None - if self.check_connect()==False: + if self.check_connect() == False: self.connect() self.api.get_api_option_init_all_v2() - start_t=time.time() - while self.api.api_option_init_all_result_v2==None: - if time.time()-start_t>=30: + start_t = time.time() + while self.api.api_option_init_all_result_v2 == None: + if time.time() - start_t >= 30: logging.error('**warning** get_all_init_v2 late 30 sec') return None return self.api.api_option_init_all_result_v2 # return OP_code.ACTIVES -#------- chek if binary/digit/cfd/stock... if open or not - def get_all_open_time(self): - #for binary option turbo and binary - OPEN_TIME=nested_dict(3, dict) - binary_data=self.get_all_init_v2() - binary_list=["binary","turbo"] - for option in binary_list: - try: - for actives_id in binary_data[option]["actives"]: - active=binary_data[option]["actives"][actives_id] - name=str(active["name"]).split(".")[1] - if active["enabled"]==True: - if active["is_suspended"]==True: - OPEN_TIME[option][name]["open"]=False + # ------- chek if binary/digit/cfd/stock... if open or not + + def __get_binary_open(self): + # for turbo and binary pairs + binary_data = self.get_all_init_v2() + binary_list = ["binary", "turbo"] + if binary_data: + for option in binary_list: + if option in binary_data: + for actives_id in binary_data[option]["actives"]: + active = binary_data[option]["actives"][actives_id] + name = str(active["name"]).split(".")[1] + if active["enabled"] == True: + if active["is_suspended"] == True: + self.OPEN_TIME[option][name]["open"] = False + else: + self.OPEN_TIME[option][name]["open"] = True else: - OPEN_TIME[option][name]["open"]=True - else: - OPEN_TIME[option][name]["open"]=active["enabled"] - except: - pass - - #for digital - digital_data=self.get_digital_underlying_list_data()["underlying"] + self.OPEN_TIME[option][name]["open"] = active["enabled"] + + def __get_digital_open(self): + # for digital options + digital_data = self.get_digital_underlying_list_data()["underlying"] for digital in digital_data: - name=digital["underlying"] - schedule=digital["schedule"] - OPEN_TIME["digital"][name]["open"]=False + name = digital["underlying"] + schedule = digital["schedule"] + self.OPEN_TIME["digital"][name]["open"] = False for schedule_time in schedule: - start=schedule_time["open"] - end=schedule_time["close"] - if start 20: + if time.time() - start > 20: logging.error( '**error** start_candles_one_stream late for 20 sec') return False @@ -461,8 +618,8 @@ def start_candles_one_stream(self, ACTIVE, size): time.sleep(1) def stop_candles_one_stream(self, ACTIVE, size): - if ((ACTIVE+","+str(size)) in self.subscribe_candle) == True: - self.subscribe_candle.remove(ACTIVE+","+str(size)) + if ((ACTIVE + "," + str(size)) in self.subscribe_candle) == True: + self.subscribe_candle.remove(ACTIVE + "," + str(size)) while True: try: if self.api.candle_generated_check[str(ACTIVE)][int(size)] == {}: @@ -471,8 +628,9 @@ def stop_candles_one_stream(self, ACTIVE, size): pass self.api.candle_generated_check[str(ACTIVE)][int(size)] = {} self.api.unsubscribe(OP_code.ACTIVES[ACTIVE], size) - time.sleep(self.suspend*10) -# ------------------------Subscribe ALL SIZE----------------------- + time.sleep(self.suspend * 10) + + # ------------------------Subscribe ALL SIZE----------------------- def start_candles_all_size_stream(self, ACTIVE): self.api.candle_generated_all_size_check[str(ACTIVE)] = {} @@ -480,8 +638,8 @@ def start_candles_all_size_stream(self, ACTIVE): self.subscribe_candle_all_size.append(str(ACTIVE)) start = time.time() while True: - if time.time()-start > 20: - logging.error('**error** fail '+ACTIVE + + if time.time() - start > 20: + logging.error('**error** fail ' + ACTIVE + ' start_candles_all_size_stream late for 10 sec') return False try: @@ -508,38 +666,55 @@ def stop_candles_all_size_stream(self, ACTIVE): pass self.api.candle_generated_all_size_check[str(ACTIVE)] = {} self.api.unsubscribe_all_size(OP_code.ACTIVES[ACTIVE]) - time.sleep(self.suspend*10) -# ------------------------top_assets_updated--------------------------------------------- + time.sleep(self.suspend * 10) + + # ------------------------top_assets_updated--------------------------------------------- - def subscribe_top_assets_updated(self,instrument_type): + def subscribe_top_assets_updated(self, instrument_type): self.api.Subscribe_Top_Assets_Updated(instrument_type) - def unsubscribe_top_assets_updated(self,instrument_type): + + def unsubscribe_top_assets_updated(self, instrument_type): self.api.Unsubscribe_Top_Assets_Updated(instrument_type) - def get_top_assets_updated(self,instrument_type): + + def get_top_assets_updated(self, instrument_type): if instrument_type in self.api.top_assets_updated_data: return self.api.top_assets_updated_data[instrument_type] else: return None -# ----------------------------------------------- -# -----------------traders_mood---------------------- + # ------------------------commission_________ + # instrument_type: "binary-option"/"turbo-option"/"digital-option"/"crypto"/"forex"/"cfd" + def subscribe_commission_changed(self, instrument_type): + + self.api.Subscribe_Commission_Changed(instrument_type) + + def unsubscribe_commission_changed(self, instrument_type): + self.api.Unsubscribe_Commission_Changed(instrument_type) + + def get_commission_change(self, instrument_type): + return self.api.subscribe_commission_changed_data[instrument_type] + + # ----------------------------------------------- - def start_mood_stream(self, ACTIVES): + # -----------------traders_mood---------------------- + + def start_mood_stream(self, ACTIVES, instrument="turbo-option"): if ACTIVES in self.subscribe_mood == False: self.subscribe_mood.append(ACTIVES) while True: - self.api.subscribe_Traders_mood(OP_code.ACTIVES[ACTIVES]) + self.api.subscribe_Traders_mood( + OP_code.ACTIVES[ACTIVES], instrument) try: self.api.traders_mood[OP_code.ACTIVES[ACTIVES]] break except: time.sleep(5) - def stop_mood_stream(self, ACTIVES): + def stop_mood_stream(self, ACTIVES, instrument="turbo-option"): if ACTIVES in self.subscribe_mood == True: del self.subscribe_mood[ACTIVES] - self.api.unsubscribe_Traders_mood(OP_code.ACTIVES[ACTIVES]) + self.api.unsubscribe_Traders_mood(OP_code.ACTIVES[ACTIVES], instrument) def get_traders_mood(self, ACTIVES): # return highter % @@ -548,8 +723,30 @@ def get_traders_mood(self, ACTIVES): def get_all_traders_mood(self): # return highter % return self.api.traders_mood + ############################################################################################## + # -----------------technical_indicators---------------------- + + def get_technical_indicators(self, ACTIVES): + request_id = self.api.get_Technical_indicators( + OP_code.ACTIVES[ACTIVES]) + while self.api.technical_indicators.get(request_id) == None: + pass + return self.api.technical_indicators[request_id] + +############################################################################################## + + +############################################################################################## + + def check_binary_order(self, order_id): + while order_id not in self.api.order_binary: + pass + your_order = self.api.order_binary[order_id] + del self.api.order_binary[order_id] + return your_order + def check_win(self, id_number): # 'win':win money 'equal':no win no loose 'loose':loose money while True: @@ -562,16 +759,41 @@ def check_win(self, id_number): self.api.listinfodata.delete(id_number) return listinfodata_dict["win"] - def check_win_v2(self, id_number): + def check_win_v2(self, id_number, polling_time): while True: check, data = self.get_betinfo(id_number) - if check: + win = data["result"]["data"][str(id_number)]["win"] + if check and win != "": try: - return data["result"]["data"][str(id_number)]["win"] + + return data["result"]["data"][str(id_number)]["profit"] - data["result"]["data"][str(id_number)][ + "deposit"] except: pass - time.sleep(self.suspend) -# -------------------get infomation only for binary option------------------------ + time.sleep(polling_time) + + # Function by kkagill ( https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/196 | https://github.com/kkagill ) + # Function only work with Options! + + def check_win_v4(self, id_number): + while True: + try: + if self.api.socket_option_closed[id_number] != None: + break + except: + pass + x = self.api.socket_option_closed[id_number] + return x['msg']['win'], (0 if x['msg']['win'] == 'equal' else float(x['msg']['sum']) * -1 if x['msg']['win'] == 'loose' else float(x['msg']['win_amount']) - float(x['msg']['sum'])) + + def check_win_v3(self, id_number): + while True: + result = self.get_optioninfo_v2(10) + if result['msg']['closed_options'][0]['id'][0] == id_number and result['msg']['closed_options'][0]['id'][0] != None: + return result['msg']['closed_options'][0]['win'], (result['msg']['closed_options'][0]['win_amount'] - result['msg']['closed_options'][0]['amount'] if result['msg']['closed_options'][0]['win'] != 'equal' else 0) + break + time.sleep(1) + + # -------------------get infomation only for binary option------------------------ def get_betinfo(self, id_number): # INPUT:int @@ -585,17 +807,17 @@ def get_betinfo(self, id_number): '**error** def get_betinfo self.api.get_betinfo reconnect') self.connect() while self.api.game_betinfo.isSuccessful == None: - if time.time()-start > 10: + if time.time() - start > 10: logging.error( '**error** get_betinfo time out need reconnect') self.connect() self.api.get_betinfo(id_number) - time.sleep(self.suspend*10) + time.sleep(self.suspend * 10) if self.api.game_betinfo.isSuccessful == True: return self.api.game_betinfo.isSuccessful, self.api.game_betinfo.dict else: return self.api.game_betinfo.isSuccessful, None - time.sleep(self.suspend*10) + time.sleep(self.suspend * 10) def get_optioninfo(self, limit): self.api.api_game_getoptions_result = None @@ -604,32 +826,32 @@ def get_optioninfo(self, limit): pass return self.api.api_game_getoptions_result + def get_optioninfo_v2(self, limit): - self.api.get_options_v2_data=None - self.api.get_options_v2(limit,"binary,turbo") + self.api.get_options_v2_data = None + self.api.get_options_v2(limit, "binary,turbo") while self.api.get_options_v2_data == None: pass return self.api.get_options_v2_data + # __________________________BUY__________________________ - -# __________________________BUY__________________________ + # __________________FOR OPTION____________________________ -# __________________FOR OPTION____________________________ - - def buy_multi(self,price,ACTIVES,ACTION,expirations): - self.api.buy_multi_option={} - if len(price)==len(ACTIVES)==len(ACTION)==len(expirations): - buy_len=len(price) + def buy_multi(self, price, ACTIVES, ACTION, expirations): + self.api.buy_multi_option = {} + if len(price) == len(ACTIVES) == len(ACTION) == len(expirations): + buy_len = len(price) for idx in range(buy_len): - self.api.buyv3(price[idx], OP_code.ACTIVES[ACTIVES[idx]], ACTION[idx], expirations[idx],idx) - while len(self.api.buy_multi_option)= 5: + logging.error('**warning** buy late 5 sec') + return False, None + + return self.api.result, self.api.buy_multi_option[req_id]["id"] + def buy(self, price, ACTIVES, ACTION, expirations): + self.api.buy_multi_option = {} self.api.buy_successful = None - self.api.buy_id = None - self.api.buy(price, OP_code.ACTIVES[ACTIVES], ACTION, expirations) - start_t=time.time() - while self.api.buy_successful == None and self.api.buy_id == None: - if time.time()-start_t>=30: - logging.error('**warning** buy late 30 sec') - return False,None - - return self.api.buy_successful,self.api.buy_id - + # req_id = "buy" + req_id = str(randint(0, 10000)) + try: + self.api.buy_multi_option[req_id]["id"] = None + except: + pass + self.api.buyv3( + float(price), OP_code.ACTIVES[ACTIVES], str(ACTION), int(expirations), req_id) + start_t = time.time() + id = None + self.api.result = None + while self.api.result == None or id == None: + try: + if "message" in self.api.buy_multi_option[req_id].keys(): + return False, self.api.buy_multi_option[req_id]["message"] + except: + pass + try: + id = self.api.buy_multi_option[req_id]["id"] + except: + pass + if time.time() - start_t >= 5: + logging.error('**warning** buy late 5 sec') + return False, None + + return self.api.result, self.api.buy_multi_option[req_id]["id"] def sell_option(self, options_ids): self.api.sell_option(options_ids) @@ -673,15 +943,17 @@ def sell_digital_option(self, options_ids): pass return self.api.sold_digital_options_respond # __________________for Digital___________________ + def get_digital_underlying_list_data(self): - self.api.underlying_list_data=None + self.api.underlying_list_data = None self.api.get_digital_underlying() - start_t=time.time() - while self.api.underlying_list_data==None: - if time.time()-start_t>=30: - logging.error('**warning** get_digital_underlying_list_data late 30 sec') + start_t = time.time() + while self.api.underlying_list_data == None: + if time.time() - start_t >= 30: + logging.error( + '**warning** get_digital_underlying_list_data late 30 sec') return None - + return self.api.underlying_list_data def get_strike_list(self, ACTIVES, duration): @@ -695,27 +967,29 @@ def get_strike_list(self, ACTIVES, duration): temp = {} temp["call"] = data["call"]["id"] temp["put"] = data["put"]["id"] - ans[("%.6f" % (float(data["value"])*10e-7))] = temp + ans[("%.6f" % (float(data["value"]) * 10e-7))] = temp except: logging.error('**error** get_strike_list read problem...') return self.api.strike_list, None return self.api.strike_list, ans - def subscribe_strike_list(self, ACTIVE,expiration_period): - self.api.subscribe_instrument_quites_generated(ACTIVE,expiration_period) + def subscribe_strike_list(self, ACTIVE, expiration_period): + self.api.subscribe_instrument_quites_generated( + ACTIVE, expiration_period) - def unsubscribe_strike_list(self, ACTIVE,expiration_period): + def unsubscribe_strike_list(self, ACTIVE, expiration_period): del self.api.instrument_quites_generated_data[ACTIVE] - self.api.unsubscribe_instrument_quites_generated(ACTIVE,expiration_period) + self.api.unsubscribe_instrument_quites_generated( + ACTIVE, expiration_period) - def get_instrument_quites_generated_data(self,ACTIVE,duration): - while self.api.instrument_quotes_generated_raw_data[ACTIVE][duration*60]=={}: + def get_instrument_quites_generated_data(self, ACTIVE, duration): + while self.api.instrument_quotes_generated_raw_data[ACTIVE][duration * 60] == {}: pass - return self.api.instrument_quotes_generated_raw_data[ACTIVE][duration*60] + return self.api.instrument_quotes_generated_raw_data[ACTIVE][duration * 60] def get_realtime_strike_list(self, ACTIVE, duration): while True: - if not self.api.instrument_quites_generated_data[ACTIVE][duration*60]: + if not self.api.instrument_quites_generated_data[ACTIVE][duration * 60]: pass else: break @@ -723,7 +997,7 @@ def get_realtime_strike_list(self, ACTIVE, duration): strike_list dict: price:{call:id,put:id} """ ans = {} - now_timestamp = self.api.instrument_quites_generated_timestamp[ACTIVE][duration*60] + now_timestamp = self.api.instrument_quites_generated_timestamp[ACTIVE][duration * 60] while ans == {}: if self.get_realtime_strike_list_temp_data == {} or now_timestamp != self.get_realtime_strike_list_temp_expiration: @@ -733,7 +1007,7 @@ def get_realtime_strike_list(self, ACTIVE, duration): else: strike_list = self.get_realtime_strike_list_temp_data - profit = self.api.instrument_quites_generated_data[ACTIVE][duration*60] + profit = self.api.instrument_quites_generated_data[ACTIVE][duration * 60] for price_key in strike_list: try: side_data = {} @@ -748,199 +1022,226 @@ def get_realtime_strike_list(self, ACTIVE, duration): pass return ans - + def get_digital_current_profit(self, ACTIVE, duration): - profit = self.api.instrument_quites_generated_data[ACTIVE][duration*60] + profit = self.api.instrument_quites_generated_data[ACTIVE][duration * 60] for key in profit: - if key.find("SPT")!=-1: + if key.find("SPT") != -1: return profit[key] return False - #thank thiagottjv - #https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/65#issuecomment-513998357 - def buy_digital_spot(self, active,amount, action, duration, user_balance_id=None): - #Expiration time need to be formatted like this: YYYYMMDDHHII - #And need to be on GMT time - - #Type - P or C + + # thank thiagottjv + # https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/65#issuecomment-513998357 + + def buy_digital_spot(self, active, amount, action, duration): + # Expiration time need to be formatted like this: YYYYMMDDHHII + # And need to be on GMT time + + # Type - P or C + action = action.lower() if action == 'put': action = 'P' - elif action=='call': + elif action == 'call': action = 'C' else: logging.error('buy_digital_spot active error') - return -1 - #doEURUSD201907191250PT5MPSPT - timestamp=int(self.api.timesync.server_timestamp) - if duration==1: - exp,_=get_expiration_time(timestamp,duration) + return -1, None + # doEURUSD201907191250PT5MPSPT + timestamp = int(self.api.timesync.server_timestamp) + if duration == 1: + exp, _ = get_expiration_time(timestamp, duration) else: - now_date = datetime.fromtimestamp(timestamp)+timedelta(minutes=1,seconds=30) + now_date = datetime.fromtimestamp( + timestamp) + timedelta(minutes=1, seconds=30) while True: - if now_date.minute%duration==0 and time.mktime(now_date.timetuple())-timestamp>30: + if now_date.minute % duration == 0 and time.mktime(now_date.timetuple()) - timestamp > 30: break - now_date = now_date+timedelta(minutes=1) - exp=time.mktime(now_date.timetuple()) - - dateFormated = str(datetime.utcfromtimestamp(exp).strftime("%Y%m%d%H%M")) - instrument_id = "do" + active + dateFormated + "PT" + str(duration) + "M" + action + "SPT" - self.api.digital_option_placed_id=None - - self.api.place_digital_option(instrument_id,amount,user_balance_id) - while self.api.digital_option_placed_id==None: + now_date = now_date + timedelta(minutes=1) + exp = time.mktime(now_date.timetuple()) + + dateFormated = str(datetime.utcfromtimestamp( + exp).strftime("%Y%m%d%H%M")) + instrument_id = "do" + active + dateFormated + \ + "PT" + str(duration) + "M" + action + "SPT" + # self.api.digital_option_placed_id = None + + request_id = self.api.place_digital_option(instrument_id, amount) + + while self.api.digital_option_placed_id.get(request_id) == None: pass + digital_order_id = self.api.digital_option_placed_id.get(request_id) + if isinstance(digital_order_id, int): + return True, digital_order_id + else: + return False, digital_order_id + + # while self.api.digital_option_placed_id == None: + # pass + # if isinstance(self.api.digital_option_placed_id, int): + # return True, self.api.digital_option_placed_id + # else: + # return False, self.api.digital_option_placed_id - return self.api.digital_option_placed_id - def get_digital_spot_profit_after_sale(self,position_id): - def get_instrument_id_to_bid(data,instrument_id): + def get_digital_spot_profit_after_sale(self, position_id): + def get_instrument_id_to_bid(data, instrument_id): for row in data["msg"]["quotes"]: - if row["symbols"][0]==instrument_id: + if row["symbols"][0] == instrument_id: return row["price"]["bid"] return None - #Author:Lu-Yi-Hsun 2019/11/04 - #email:yihsun1992@gmail.com - #Source code reference - #https://github.com/Lu-Yi-Hsun/Decompiler-IQ-Option/blob/master/Source%20Code/5.27.0/sources/com/iqoption/dto/entity/position/Position.java#L564 - while self.get_async_order(position_id)==None: + + while self.get_async_order(position_id)["position-changed"] == {}: pass - #___________________/*position*/_________________ - position=self.get_async_order(position_id) - #doEURUSD201911040628PT1MPSPT - #z mean check if call or not + # ___________________/*position*/_________________ + position = self.get_async_order(position_id)["position-changed"]["msg"] + # doEURUSD201911040628PT1MPSPT + # z mean check if call or not if position["instrument_id"].find("MPSPT"): - z=False + z = False elif position["instrument_id"].find("MCSPT"): - z=True + z = True else: - logging.error('get_digital_spot_profit_after_sale position error'+str(position["instrument_id"])) - ACTIVES=position["instrument_underlying"] - amount=max(position["buy_amount"],position["sell_amount"]) - start_duration=position["instrument_id"].find("PT")+2 - end_duration=start_duration+position["instrument_id"][start_duration:].find("M") - - duration=int(position["instrument_id"][start_duration:end_duration]) - z2=False - - - getAbsCount=position["count"] - instrumentStrikeValue=position["instrument_strike_value"]/1000000.0 - spotLowerInstrumentStrike=position["extra_data"]["lower_instrument_strike"]/1000000.0 - spotUpperInstrumentStrike=position["extra_data"]["upper_instrument_strike"]/1000000.0 - - aVar=position["extra_data"]["lower_instrument_id"] - aVar2=position["extra_data"]["upper_instrument_id"] - getRate=position["currency_rate"] - - #___________________/*position*/_________________ - instrument_quites_generated_data=self.get_instrument_quites_generated_data(ACTIVES, duration) - - f_tmp=get_instrument_id_to_bid(instrument_quites_generated_data,aVar)#https://github.com/Lu-Yi-Hsun/Decompiler-IQ-Option/blob/master/Source%20Code/5.5.1/sources/com/iqoption/dto/entity/position/Position.java#L493 - #f is bidprice of lower_instrument_id ,f2 is bidprice of upper_instrument_id - if f_tmp!=None: - self.get_digital_spot_profit_after_sale_data[position_id]["f"]=f_tmp - f=f_tmp + logging.error( + 'get_digital_spot_profit_after_sale position error' + str(position["instrument_id"])) + + ACTIVES = position['raw_event']['instrument_underlying'] + amount = max(position['raw_event']["buy_amount"], + position['raw_event']["sell_amount"]) + start_duration = position["instrument_id"].find("PT") + 2 + end_duration = start_duration + \ + position["instrument_id"][start_duration:].find("M") + + duration = int(position["instrument_id"][start_duration:end_duration]) + z2 = False + + getAbsCount = position['raw_event']["count"] + instrumentStrikeValue = position['raw_event']["instrument_strike_value"] / 1000000.0 + spotLowerInstrumentStrike = position['raw_event']["extra_data"]["lower_instrument_strike"] / 1000000.0 + spotUpperInstrumentStrike = position['raw_event']["extra_data"]["upper_instrument_strike"] / 1000000.0 + + aVar = position['raw_event']["extra_data"]["lower_instrument_id"] + aVar2 = position['raw_event']["extra_data"]["upper_instrument_id"] + getRate = position['raw_event']["currency_rate"] + + # ___________________/*position*/_________________ + instrument_quites_generated_data = self.get_instrument_quites_generated_data( + ACTIVES, duration) + + + f_tmp = get_instrument_id_to_bid( + instrument_quites_generated_data, aVar) + # f is bidprice of lower_instrument_id ,f2 is bidprice of upper_instrument_id + if f_tmp != None: + self.get_digital_spot_profit_after_sale_data[position_id]["f"] = f_tmp + f = f_tmp else: - f=self.get_digital_spot_profit_after_sale_data[position_id]["f"] + f = self.get_digital_spot_profit_after_sale_data[position_id]["f"] - f2_tmp=get_instrument_id_to_bid(instrument_quites_generated_data,aVar2) - if f2_tmp!=None: - self.get_digital_spot_profit_after_sale_data[position_id]["f2"]=f2_tmp - f2=f2_tmp + f2_tmp = get_instrument_id_to_bid( + instrument_quites_generated_data, aVar2) + if f2_tmp != None: + self.get_digital_spot_profit_after_sale_data[position_id]["f2"] = f2_tmp + f2 = f2_tmp else: - f2=self.get_digital_spot_profit_after_sale_data[position_id]["f2"] - - if (spotLowerInstrumentStrike != instrumentStrikeValue) and f!=None and f2 !=None: - + f2 = self.get_digital_spot_profit_after_sale_data[position_id]["f2"] + + if (spotLowerInstrumentStrike != instrumentStrikeValue) and f != None and f2 != None: + if (spotLowerInstrumentStrike > instrumentStrikeValue or instrumentStrikeValue > spotUpperInstrumentStrike): if z: - instrumentStrikeValue = (spotUpperInstrumentStrike - instrumentStrikeValue) / abs(spotUpperInstrumentStrike - spotLowerInstrumentStrike); - f = abs(f2 - f); + instrumentStrikeValue = (spotUpperInstrumentStrike - instrumentStrikeValue) / abs( + spotUpperInstrumentStrike - spotLowerInstrumentStrike) + f = abs(f2 - f) else: - instrumentStrikeValue = (instrumentStrikeValue - spotUpperInstrumentStrike) / abs(spotUpperInstrumentStrike - spotLowerInstrumentStrike); - f = abs(f2 - f); - + instrumentStrikeValue = (instrumentStrikeValue - spotUpperInstrumentStrike) / abs( + spotUpperInstrumentStrike - spotLowerInstrumentStrike) + f = abs(f2 - f) + elif z: - f += ((instrumentStrikeValue - spotLowerInstrumentStrike) / (spotUpperInstrumentStrike - spotLowerInstrumentStrike)) * (f2 - f); + f += ((instrumentStrikeValue - spotLowerInstrumentStrike) / + (spotUpperInstrumentStrike - spotLowerInstrumentStrike)) * (f2 - f) else: - instrumentStrikeValue = (spotUpperInstrumentStrike - instrumentStrikeValue) / (spotUpperInstrumentStrike - spotLowerInstrumentStrike); - f -= f2; + instrumentStrikeValue = (spotUpperInstrumentStrike - instrumentStrikeValue) / ( + spotUpperInstrumentStrike - spotLowerInstrumentStrike) + f -= f2 f = f2 + (instrumentStrikeValue * f) - + if z2: pass - if f !=None: - #price=f/getRate - #https://github.com/Lu-Yi-Hsun/Decompiler-IQ-Option/blob/master/Source%20Code/5.27.0/sources/com/iqoption/dto/entity/position/Position.java#L603 - price=(f/getRate) - #getAbsCount Reference - #https://github.com/Lu-Yi-Hsun/Decompiler-IQ-Option/blob/master/Source%20Code/5.27.0/sources/com/iqoption/dto/entity/position/Position.java#L450 - return price*getAbsCount-amount + if f != None: + # price=f/getRate + price = (f / getRate) + # getAbsCount Reference + return price * getAbsCount - amount else: return None + def buy_digital(self, amount, instrument_id): - self.api.digital_option_placed_id=None - self.api.place_digital_option(instrument_id,amount) - start_t=time.time() - while self.api.digital_option_placed_id==None: - if time.time()-start_t>30: + self.api.digital_option_placed_id = None + self.api.place_digital_option(instrument_id, amount) + start_t = time.time() + while self.api.digital_option_placed_id == None: + if time.time() - start_t > 30: logging.error('buy_digital loss digital_option_placed_id') - return False,None - return True,self.api.digital_option_placed_id - def close_digital_option(self,position_id): - self.api.result=None - while self.get_async_order(position_id)==None: + return False, None + return True, self.api.digital_option_placed_id + + def close_digital_option(self, position_id): + self.api.result = None + while self.get_async_order(position_id)["position-changed"] == {}: pass - position_changed=self.get_async_order(position_id) - self.api.close_digital_option(position_changed["id"]) - while self.api.result==None: + position_changed = self.get_async_order( + position_id)["position-changed"]["msg"] + self.api.close_digital_option(position_changed["external_id"]) + while self.api.result == None: pass return self.api.result - def check_win_digital(self, buy_order_id): - data = self.get_digital_position(buy_order_id) - - if data["msg"]["position"]["status"] == "closed": - if data["msg"]["position"]["close_reason"]=="default": - return True, data["msg"]["position"]["pnl_realized"] - elif data["msg"]["position"]["close_reason"]=="expired": - return True, data["msg"]["position"]["pnl_realized"]-data["msg"]["position"]["buy_amount"] - else : - return False, None - - - def check_win_digital_v2(self,buy_order_id): - order_data=self.get_async_order(buy_order_id) - if order_data!=None: - if order_data["status"]=="closed": - if order_data["close_reason"]=="expired": - if order_data["close_effect_amount"]==0: - return True,-1*max(order_data["buy_amount"],order_data["sell_amount"]) - else: - return True,order_data["close_effect_amount"]-max(order_data["buy_amount"],order_data["sell_amount"]) - elif order_data["close_reason"]=="default": - return True,order_data["pnl_realized_enrolled"] + def check_win_digital(self, buy_order_id, polling_time): + while True: + time.sleep(polling_time) + data = self.get_digital_position(buy_order_id) + + if data["msg"]["position"]["status"] == "closed": + if data["msg"]["position"]["close_reason"] == "default": + return data["msg"]["position"]["pnl_realized"] + elif data["msg"]["position"]["close_reason"] == "expired": + return data["msg"]["position"]["pnl_realized"] - data["msg"]["position"]["buy_amount"] + + def check_win_digital_v2(self, buy_order_id): + + while self.get_async_order(buy_order_id)["position-changed"] == {}: + pass + order_data = self.get_async_order( + buy_order_id)["position-changed"]["msg"] + if order_data != None: + if order_data["status"] == "closed": + if order_data["close_reason"] == "expired": + return True, order_data["close_profit"] - order_data["invest"] + elif order_data["close_reason"] == "default": + return True, order_data["pnl_realized"] else: - return False,None + return False, None else: - return False,None + return False, None -# ---------------------------------------------------------- -# -----------------BUY_for__Forex__&&__stock(cfd)__&&__ctrpto + # ---------------------------------------------------------- + # -----------------BUY_for__Forex__&&__stock(cfd)__&&__ctrpto def buy_order(self, - instrument_type,instrument_id, - side,amount,leverage, - type,limit_price=None,stop_price=None, - - stop_lose_kind=None,stop_lose_value=None, - take_profit_kind=None,take_profit_value=None, - - use_trail_stop=False,auto_margin_call=False, - use_token_for_commission=False): + instrument_type, instrument_id, + side, amount, leverage, + type, limit_price=None, stop_price=None, + + stop_lose_kind=None, stop_lose_value=None, + take_profit_kind=None, take_profit_value=None, + + use_trail_stop=False, auto_margin_call=False, + use_token_for_commission=False): self.api.buy_order_id = None self.api.buy_order( - instrument_type=instrument_type, instrument_id=instrument_id, - side=side, amount=amount,leverage=leverage, - type=type,limit_price=limit_price, stop_price=stop_price, + instrument_type=instrument_type, instrument_id=instrument_id, + side=side, amount=amount, leverage=leverage, + type=type, limit_price=limit_price, stop_price=stop_price, stop_lose_value=stop_lose_value, stop_lose_kind=stop_lose_kind, take_profit_value=take_profit_value, take_profit_kind=take_profit_kind, use_trail_stop=use_trail_stop, auto_margin_call=auto_margin_call, @@ -958,59 +1259,58 @@ def buy_order(self, if data["status"] != "rejected": return True, self.api.buy_order_id else: - return False, None + return False, data["reject_status"] else: return False, None - def change_auto_margin_call(self,ID_Name,ID,auto_margin_call): - self.api.auto_margin_call_changed_respond=None - self.api.change_auto_margin_call(ID_Name,ID,auto_margin_call) - while self.api.auto_margin_call_changed_respond==None: + + def change_auto_margin_call(self, ID_Name, ID, auto_margin_call): + self.api.auto_margin_call_changed_respond = None + self.api.change_auto_margin_call(ID_Name, ID, auto_margin_call) + while self.api.auto_margin_call_changed_respond == None: pass - if self.api.auto_margin_call_changed_respond["status"]==2000: - return True,self.api.auto_margin_call_changed_respond + if self.api.auto_margin_call_changed_respond["status"] == 2000: + return True, self.api.auto_margin_call_changed_respond else: - return False,self.api.auto_margin_call_changed_respond - - def change_order(self,ID_Name ,order_id, - stop_lose_kind,stop_lose_value, - take_profit_kind,take_profit_value, - use_trail_stop,auto_margin_call): - check=True - if ID_Name=="position_id": + return False, self.api.auto_margin_call_changed_respond + + def change_order(self, ID_Name, order_id, + stop_lose_kind, stop_lose_value, + take_profit_kind, take_profit_value, + use_trail_stop, auto_margin_call): + check = True + if ID_Name == "position_id": check, order_data = self.get_order(order_id) position_id = order_data["position_id"] - ID=position_id - elif ID_Name=="order_id": - ID=order_id + ID = position_id + elif ID_Name == "order_id": + ID = order_id else: logging.error('change_order input error ID_Name') if check: self.api.tpsl_changed_respond = None self.api.change_order( - ID_Name=ID_Name,ID=ID, - stop_lose_kind=stop_lose_kind,stop_lose_value=stop_lose_value, - take_profit_kind=take_profit_kind,take_profit_value=take_profit_value, + ID_Name=ID_Name, ID=ID, + stop_lose_kind=stop_lose_kind, stop_lose_value=stop_lose_value, + take_profit_kind=take_profit_kind, take_profit_value=take_profit_value, use_trail_stop=use_trail_stop) - self.change_auto_margin_call(ID_Name=ID_Name,ID=ID,auto_margin_call=auto_margin_call) + self.change_auto_margin_call( + ID_Name=ID_Name, ID=ID, auto_margin_call=auto_margin_call) while self.api.tpsl_changed_respond == None: pass - if self.api.tpsl_changed_respond["status"]==2000: - return True,self.api.tpsl_changed_respond["msg"] + if self.api.tpsl_changed_respond["status"] == 2000: + return True, self.api.tpsl_changed_respond["msg"] else: - return False,self.api.tpsl_changed_respond + return False, self.api.tpsl_changed_respond else: logging.error('change_order fail to get position_id') - return False,None - - def get_async_order(self,buy_order_id): - if buy_order_id in self.api.position_changed_data: - return self.api.position_changed_data[buy_order_id] - elif buy_order_id in self.api.microserviceName_binary_options_name_option: - return self.api.microserviceName_binary_options_name_option[buy_order_id] - else: - return None + return False, None + + def get_async_order(self, buy_order_id): + # name': 'position-changed', 'microserviceName': "portfolio"/"digital-options" + return self.api.order_async[buy_order_id] + def get_order(self, buy_order_id): # self.api.order_data["status"] # reject:you can not get this order @@ -1025,10 +1325,11 @@ def get_order(self, buy_order_id): return True, self.api.order_data["msg"] else: return False, None - def get_pending(self,instrument_type): - self.api.deferred_orders=None + + def get_pending(self, instrument_type): + self.api.deferred_orders = None self.api.get_pending(instrument_type) - while self.api.deferred_orders==None: + while self.api.deferred_orders == None: pass if self.api.deferred_orders["status"] == 2000: return True, self.api.deferred_orders["msg"] @@ -1057,16 +1358,27 @@ def get_position(self, buy_order_id): return True, self.api.position["msg"] else: return False, None + # this function is heavy - def get_digital_position(self,order_id): + + def get_digital_position_by_position_id(self, position_id): self.api.position = None - while self.get_async_order(order_id)==None: + self.api.get_digital_position(position_id) + while self.api.position == None: pass - position_id=self.get_async_order(order_id)["id"] + return self.api.position + + def get_digital_position(self, order_id): + self.api.position = None + while self.get_async_order(order_id)["position-changed"] == {}: + pass + position_id = self.get_async_order( + order_id)["position-changed"]["msg"]["external_id"] self.api.get_digital_position(position_id) - while self.api.position==None: + while self.api.position == None: pass return self.api.position + def get_position_history(self, instrument_type): self.api.position_history = None self.api.get_position_history(instrument_type) @@ -1078,10 +1390,11 @@ def get_position_history(self, instrument_type): else: return False, None - def get_position_history_v2(self, instrument_type,limit,offset,start,end): - #instrument_type=crypto forex fx-option multi-option cfd digital-option turbo-option - self.api.position_history_v2 = None - self.api.get_position_history_v2(instrument_type,limit,offset,start,end) + def get_position_history_v2(self, instrument_type, limit, offset, start, end): + # instrument_type=crypto forex fx-option multi-option cfd digital-option turbo-option + self.api.position_history_v2 = None + self.api.get_position_history_v2( + instrument_type, limit, offset, start, end) while self.api.position_history_v2 == None: pass @@ -1090,10 +1403,13 @@ def get_position_history_v2(self, instrument_type,limit,offset,start,end): else: return False, None - def get_available_leverages(self, instrument_type, actives): + def get_available_leverages(self, instrument_type, actives=""): self.api.available_leverages = None - self.api.get_available_leverages( - instrument_type, OP_code.ACTIVES[actives]) + if actives == "": + self.api.get_available_leverages(instrument_type, "") + else: + self.api.get_available_leverages( + instrument_type, OP_code.ACTIVES[actives]) while self.api.available_leverages == None: pass if self.api.available_leverages["status"] == 2000: @@ -1124,10 +1440,11 @@ def close_position(self, position_id): return False else: return False - def close_position_v2(self,position_id): - while self.get_async_order(position_id)==None: + + def close_position_v2(self, position_id): + while self.get_async_order(position_id) == None: pass - position_changed=self.get_async_order(position_id) + position_changed = self.get_async_order(position_id) self.api.close_position(position_changed["id"]) while self.api.close_position_data == None: pass @@ -1135,8 +1452,6 @@ def close_position_v2(self,position_id): return True else: return False - - def get_overnight_fee(self, instrument_type, active): self.api.overnight_fee = None @@ -1147,7 +1462,149 @@ def get_overnight_fee(self, instrument_type, active): return True, self.api.overnight_fee["msg"] else: return False, None + def get_option_open_by_other_pc(self): return self.api.socket_option_opened - def del_option_open_by_other_pc(self,id): + + def del_option_open_by_other_pc(self, id): del self.api.socket_option_opened[id] + + # ----------------------------------------------------------------- + + def opcode_to_name(self, opcode): + return list(OP_code.ACTIVES.keys())[list(OP_code.ACTIVES.values()).index(opcode)] + + # name: + # "live-deal-binary-option-placed" + # "live-deal-digital-option" + def subscribe_live_deal(self, name, active, _type, buffersize): + active_id = OP_code.ACTIVES[active] + self.api.Subscribe_Live_Deal(name, active_id, _type) + """ + self.api.live_deal_data[name][active][_type]=deque(list(),buffersize) + + + while len(self.api.live_deal_data[name][active][_type])==0: + self.api.Subscribe_Live_Deal(name,active_id,_type) + time.sleep(1) + """ + + def unscribe_live_deal(self, name, active, _type): + active_id = OP_code.ACTIVES[active] + self.api.Unscribe_Live_Deal(name, active_id, _type) + """ + + while len(self.api.live_deal_data[name][active][_type])!=0: + self.api.Unscribe_Live_Deal(name,active_id,_type) + del self.api.live_deal_data[name][active][_type] + time.sleep(1) + """ + + def set_digital_live_deal_cb(self, cb): + self.api.digital_live_deal_cb = cb + + def set_binary_live_deal_cb(self, cb): + self.api.binary_live_deal_cb = cb + + def get_live_deal(self, name, active, _type): + return self.api.live_deal_data[name][active][_type] + + def pop_live_deal(self, name, active, _type): + return self.api.live_deal_data[name][active][_type].pop() + + def clear_live_deal(self, name, active, _type, buffersize): + self.api.live_deal_data[name][active][_type] = deque( + list(), buffersize) + + def get_user_profile_client(self, user_id): + self.api.user_profile_client = None + self.api.Get_User_Profile_Client(user_id) + while self.api.user_profile_client == None: + pass + + return self.api.user_profile_client + + def request_leaderboard_userinfo_deals_client(self, user_id, country_id): + self.api.leaderboard_userinfo_deals_client = None + + while True: + try: + if self.api.leaderboard_userinfo_deals_client["isSuccessful"] == True: + break + except: + pass + self.api.Request_Leaderboard_Userinfo_Deals_Client( + user_id, country_id) + time.sleep(0.2) + + return self.api.leaderboard_userinfo_deals_client + + def get_users_availability(self, user_id): + self.api.users_availability = None + + while self.api.users_availability == None: + self.api.Get_Users_Availability(user_id) + time.sleep(0.2) + return self.api.users_availability + + def get_digital_payout(self, active, seconds=0): + self.api.digital_payout = None + asset_id = OP_code.ACTIVES[active] + + self.api.subscribe_digital_price_splitter(asset_id) + + start = time.time() + while self.api.digital_payout is None: + if seconds and int(time.time() - start) > seconds: + break + + self.api.unsubscribe_digital_price_splitter(asset_id) + + return self.api.digital_payout if self.api.digital_payout else 0 + + def logout(self): + self.api.logout() + + def buy_digital_spot_v2(self, active, amount, action, duration): + action = action.lower() + + if action == 'put': + action = 'P' + elif action == 'call': + action = 'C' + else: + logging.error('buy_digital_spot_v2 active error') + return -1, None + + timestamp = int(self.api.timesync.server_timestamp) + + if duration == 1: + exp, _ = get_expiration_time(timestamp, duration) + else: + now_date = datetime.fromtimestamp( + timestamp) + timedelta(minutes=1, seconds=30) + + while True: + if now_date.minute % duration == 0 and time.mktime(now_date.timetuple()) - timestamp > 30: + break + now_date = now_date + timedelta(minutes=1) + + exp = time.mktime(now_date.timetuple()) + + date_formated = str(datetime.utcfromtimestamp(exp).strftime("%Y%m%d%H%M")) + active_id = str(OP_code.ACTIVES[active]) + instrument_id = "do" + active_id + "A" + \ + date_formated[:8] + "D" + date_formated[8:] + \ + "00T" + str(duration) + "M" + action + "SPT" + logger = logging.getLogger(__name__) + logger.info(instrument_id) + request_id = self.api.place_digital_option_v2(instrument_id, active_id, amount) + + while self.api.digital_option_placed_id.get(request_id) is None: + pass + + digital_order_id = self.api.digital_option_placed_id.get(request_id) + if isinstance(digital_order_id, int): + return True, digital_order_id + else: + return False, digital_order_id diff --git a/iqoptionapi/version_control.py b/iqoptionapi/version_control.py new file mode 100644 index 00000000..3234514f --- /dev/null +++ b/iqoptionapi/version_control.py @@ -0,0 +1 @@ +api_version = "7.1.1" \ No newline at end of file diff --git a/iqoptionapi/ws/chanels/api_game_getoptions.py b/iqoptionapi/ws/chanels/api_game_getoptions.py index 6ec0a1c9..b51effc7 100644 --- a/iqoptionapi/ws/chanels/api_game_getoptions.py +++ b/iqoptionapi/ws/chanels/api_game_getoptions.py @@ -3,7 +3,7 @@ from iqoptionapi.ws.chanels.base import Base import time - +import iqoptionapi.global_value as global_value class Get_options(Base): name = "api_game_getoptions" @@ -11,7 +11,7 @@ class Get_options(Base): def __call__(self,limit): data = {"limit":int(limit), - "user_balance_id":int(self.api.profile.balance_id) + "user_balance_id":int(global_value.balance_id) } self.send_websocket_request(self.name, data) @@ -24,7 +24,7 @@ def __call__(self,limit,instrument_type): "body":{ "limit":limit, "instrument_type":instrument_type, - "user_balance_id":int(self.api.profile.balance_id) + "user_balance_id":int(global_value.balance_id) } } self.send_websocket_request(self.name, data) \ No newline at end of file diff --git a/iqoptionapi/ws/chanels/buy_place_order_temp.py b/iqoptionapi/ws/chanels/buy_place_order_temp.py index bf1f9eed..8a1c688a 100644 --- a/iqoptionapi/ws/chanels/buy_place_order_temp.py +++ b/iqoptionapi/ws/chanels/buy_place_order_temp.py @@ -1,7 +1,7 @@ import datetime import time from iqoptionapi.ws.chanels.base import Base - +import iqoptionapi.global_value as global_value #work for forex digit cfd(stock) class Buy_place_order_temp(Base): @@ -43,7 +43,7 @@ def __call__(self, "use_token_for_commission":bool(use_token_for_commission), - "user_balance_id":int(self.api.profile.balance_id), + "user_balance_id":int(global_value.balance_id), "client_platform_id":"9",#important can not delete,9 mean your platform is linux } } diff --git a/iqoptionapi/ws/chanels/buyv2.py b/iqoptionapi/ws/chanels/buyv2.py index cde452ad..81e6ce0c 100644 --- a/iqoptionapi/ws/chanels/buyv2.py +++ b/iqoptionapi/ws/chanels/buyv2.py @@ -1,75 +1,39 @@ """Module for IQ Option buyV2 websocket chanel.""" -import datetime -import time +from datetime import datetime, timedelta +import iqoptionapi.global_value as global_value from iqoptionapi.ws.chanels.base import Base -import logging from iqoptionapi.expiration import get_expiration_time -from datetime import datetime,timedelta + class Buyv2(Base): """Class for IQ option buy websocket chanel.""" # pylint: disable=too-few-public-methods - name = "buyV2" + name = "sendMessage" - def __call__(self, price, active, direction,duration): + def __call__(self, price, active, direction, duration): """Method to send message to buyv2 websocket chanel. - :param price: The buying price. :param active: The buying active. :param direction: The buying direction. """ - # thank Darth-Carrotpie's code - #https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/6 - - exp,idx=get_expiration_time(int(self.api.timesync.server_timestamp),duration) - - if idx<5: - option="turbo" - else: - option="binary" + exp, idx = get_expiration_time( + int(self.api.timesync.server_timestamp), duration) + if idx < 5: + option = 3 # turbo + else: + option = 1 # non-turbo / binary data = { "price": price, "act": active, - "exp":int(exp), + "exp": int(exp), "type": option, "direction": direction.lower(), - "user_balance_id":int(self.api.profile.balance_id), + "user_balance_id": int(global_value.balance_id), "time": self.api.timesync.server_timestamp } self.send_websocket_request(self.name, data) - - # thank Darth-Carrotpie's code - #https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/6 -""" def get_expiration_time(self, duration): - exp=int(self.api.timesync.server_timestamp) - if duration>=1 and duration<=5: - option="turbo" - #Round to next full minute - #datetime.datetime.now().second>30 - if (exp % 60) > 30: - exp = exp - (exp % 60) + 60*(duration+1) - else: - exp = exp - (exp % 60)+60*(duration) - elif duration > 5: - option = "binary" - period = int(round(duration / 15)) - tmp_exp = exp - (exp % 60)#nuima sekundes - tmp_exp = tmp_exp - (tmp_exp%3600)#nuimam minutes - j=0 - while exp > tmp_exp + (j)*15*60:#find quarter - j = j+1 - if exp - tmp_exp > 5 * 60: - quarter = tmp_exp + (j)*15*60 - exp = quarter + period*15*60 - else: - quarter = tmp_exp + (j+1)*15*60 - exp = quarter + period*15*60 - else: - logging.error("ERROR get_expiration_time DO NOT LESS 1") - exit(1) - return exp, option""" \ No newline at end of file diff --git a/iqoptionapi/ws/chanels/buyv3.py b/iqoptionapi/ws/chanels/buyv3.py index 6adee191..21cf2b5f 100644 --- a/iqoptionapi/ws/chanels/buyv3.py +++ b/iqoptionapi/ws/chanels/buyv3.py @@ -2,32 +2,65 @@ import time from iqoptionapi.ws.chanels.base import Base import logging - +import iqoptionapi.global_value as global_value from iqoptionapi.expiration import get_expiration_time + + class Buyv3(Base): name = "sendMessage" - def __call__(self, price, active, direction, duration,request_id): + def __call__(self, price, active, direction, duration, request_id): # thank Darth-Carrotpie's code # https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/6 - exp,idx=get_expiration_time(int(self.api.timesync.server_timestamp),duration) - if idx<=5: - option = 3#"turbo" + exp, idx = get_expiration_time( + int(self.api.timesync.server_timestamp), duration) + if idx < 5: + option = 3 # "turbo" else: - option = 1#"binary" + option = 1 # "binary" data = { "body": {"price": price, "active_id": active, "expired": int(exp), "direction": direction.lower(), - "option_type_id":option, + "option_type_id": option, + "user_balance_id": int(global_value.balance_id) + }, + "name": "binary-options.open-option", + "version": "1.0" + } + self.send_websocket_request(self.name, data, str(request_id)) + + +class Buyv3_by_raw_expired(Base): + + name = "sendMessage" + + def __call__(self, price, active, direction, option, expired, request_id): + + # thank Darth-Carrotpie's code + # https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/6 + + if option == "turbo": + option_id = 3 # "turbo" + elif option == "binary": + option_id = 1 # "binary" + data = { + "body": {"price": price, + "active_id": active, + "expired": int(expired), + "direction": direction.lower(), + "option_type_id": option_id, + "user_balance_id": int(global_value.balance_id) }, "name": "binary-options.open-option", "version": "1.0" } - self.send_websocket_request(self.name, data,str(request_id)) + self.send_websocket_request(self.name, data, str(request_id)) + + """ # thank Darth-Carrotpie's code # https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/6 @@ -59,4 +92,4 @@ def get_expiration_time(self, duration): logging.error("ERROR get_expiration_time DO NOT LESS 1") exit(1) return exp, option -""" \ No newline at end of file +""" diff --git a/iqoptionapi/ws/chanels/candles.py b/iqoptionapi/ws/chanels/candles.py index 24ac8f2c..5a4cdba2 100644 --- a/iqoptionapi/ws/chanels/candles.py +++ b/iqoptionapi/ws/chanels/candles.py @@ -22,6 +22,7 @@ def __call__(self, active_id, interval, count,endtime): "version":"2.0", "body":{ "active_id":int(active_id), + "split_normalization": True, "size":interval,#time size sample:if interval set 1 mean get time 0~1 candle "to":int(endtime), #int(self.api.timesync.server_timestamp), "count":count,#get how many candle diff --git a/iqoptionapi/ws/chanels/digital_option.py b/iqoptionapi/ws/chanels/digital_option.py index 79888535..d6bab5c8 100644 --- a/iqoptionapi/ws/chanels/digital_option.py +++ b/iqoptionapi/ws/chanels/digital_option.py @@ -1,37 +1,65 @@ -#python +# python import datetime import time from iqoptionapi.ws.chanels.base import Base +import iqoptionapi.global_value as global_value +from random import randint +# work for forex digit cfd(stock) -#work for forex digit cfd(stock) class Digital_options_place_digital_option(Base): name = "sendMessage" - def __call__(self,instrument_id,amount, user_balance_id=None): - if user_balance_id==None: + + def __call__(self, instrument_id, amount, user_balance_id=None): + if user_balance_id == None: user_balance_id = int(self.api.profile.balance_id) - + data = { - "name": "digital-options.place-digital-option", - "version":"1.0", - "body":{ - "user_balance_id": user_balance_id, - "instrument_id":str(instrument_id), - "amount":str(amount) + "name": "digital-options.place-digital-option", + "version": "1.0", + "body": { + "user_balance_id": int(global_value.balance_id), + "instrument_id": str(instrument_id), + "amount": str(amount) } } - self.send_websocket_request(self.name, data) - + request_id = str(randint(0, 100000)) + self.send_websocket_request(self.name, data, request_id) + return request_id + + class Digital_options_close_position(Base): name = "sendMessage" - def __call__(self,position_id): + + def __call__(self, position_id): data = { - "name": "digital-options.close-position", - "version":"1.0", - "body":{ - "position_id":int(position_id) + "name": "digital-options.close-position", + "version": "1.0", + "body": { + "position_id": int(position_id) } } self.send_websocket_request(self.name, data) - + + +class DigitalOptionsPlaceDigitalOptionV2(Base): + name = "sendMessage" + + def __call__(self, instrument_id, asset_id, amount): + data = { + "name": "digital-options.place-digital-option", + "version": "2.0", + "body": { + "amount": str(amount), + "asset_id": int(asset_id), + "instrument_id": instrument_id, + "instrument_index": 0, + "user_balance_id": int(global_value.balance_id) + } + } + + request_id = str(randint(0, 100000)) + self.send_websocket_request(self.name, data, request_id) + + return request_id diff --git a/iqoptionapi/ws/chanels/get_balances.py b/iqoptionapi/ws/chanels/get_balances.py new file mode 100644 index 00000000..d9fd1d67 --- /dev/null +++ b/iqoptionapi/ws/chanels/get_balances.py @@ -0,0 +1,17 @@ + +from iqoptionapi.ws.chanels.base import Base +import time + +class Get_Balances(Base): + name = "sendMessage" + def __call__(self): + """ + :param options_ids: list or int + """ + + + data = {"name":"get-balances", + "version":"1.0" + } + + self.send_websocket_request(self.name, data) diff --git a/iqoptionapi/ws/chanels/get_deferred_orders.py b/iqoptionapi/ws/chanels/get_deferred_orders.py index d13c1174..e98aff6f 100644 --- a/iqoptionapi/ws/chanels/get_deferred_orders.py +++ b/iqoptionapi/ws/chanels/get_deferred_orders.py @@ -1,6 +1,6 @@ from iqoptionapi.ws.chanels.base import Base import time - +import iqoptionapi.global_value as global_value class GetDeferredOrders(Base): name = "sendMessage" @@ -10,7 +10,7 @@ def __call__(self,instrument_type): data = {"name":"get-deferred-orders", "version":"1.0", "body":{ - "user_balance_id":int(self.api.profile.balance_id), + "user_balance_id":int(global_value.balance_id), "instrument_type":instrument_type } diff --git a/iqoptionapi/ws/chanels/get_positions.py b/iqoptionapi/ws/chanels/get_positions.py index ad33ad29..4195b5df 100644 --- a/iqoptionapi/ws/chanels/get_positions.py +++ b/iqoptionapi/ws/chanels/get_positions.py @@ -1,7 +1,7 @@ import datetime import time from iqoptionapi.ws.chanels.base import Base - +import iqoptionapi.global_value as global_value class Get_positions(Base): name = "sendMessage" @@ -16,7 +16,7 @@ def __call__(self,instrument_type): "name":name , "body":{ "instrument_type":instrument_type, - "user_balance_id":int(self.api.profile.balance_id) + "user_balance_id":int(global_value.balance_id) } } self.send_websocket_request(self.name, data) @@ -38,7 +38,7 @@ def __call__(self,instrument_type): "name":"get-position-history", "body":{ "instrument_type":instrument_type, - "user_balance_id":int(self.api.profile.balance_id) + "user_balance_id":int(global_value.balance_id) } } self.send_websocket_request(self.name, data) @@ -54,7 +54,7 @@ def __call__(self,instrument_types,limit,offset,start=0,end=0): "offset":offset, "start":start, "end":end, - "user_balance_id":int(self.api.profile.balance_id) + "user_balance_id":int(global_value.balance_id) } } self.send_websocket_request(self.name, data) diff --git a/iqoptionapi/ws/chanels/heartbeat.py b/iqoptionapi/ws/chanels/heartbeat.py index 201fe0c6..6a61a3f6 100644 --- a/iqoptionapi/ws/chanels/heartbeat.py +++ b/iqoptionapi/ws/chanels/heartbeat.py @@ -12,4 +12,4 @@ def __call__(self,heartbeatTime): } } - self.send_websocket_request(self.name, data) + self.send_websocket_request(self.name, data,no_force_send=False) diff --git a/iqoptionapi/ws/chanels/leaderboard.py b/iqoptionapi/ws/chanels/leaderboard.py new file mode 100644 index 00000000..fafc7951 --- /dev/null +++ b/iqoptionapi/ws/chanels/leaderboard.py @@ -0,0 +1,26 @@ + +from iqoptionapi.ws.chanels.base import Base +import time +""" +{"name":"sendMessage","request_id":"356","msg":{"name":"request-leaderboard-deals-client","version":"1.0","body":{"country_id":0,"user_country_id":191,"from_position":1,"to_position":64,"near_traders_country_count":64,"near_traders_count":64,"top_country_count":64,"top_count":64,"top_type":2}}} +""" +class Leader_Board(Base): + name = "sendMessage" + def __call__(self, country_id,user_country_id,from_position,to_position,near_traders_country_count,near_traders_count,top_country_count,top_count,top_type): + + data = {"name":"request-leaderboard-deals-client", + "version":"1.0", + "body":{ + "country_id":country_id, + "user_country_id":user_country_id, + "from_position":from_position, + "to_position":to_position, + "near_traders_country_count":near_traders_country_count, + "near_traders_count":near_traders_count, + "top_country_count":top_country_count, + "top_count":top_count, + "top_type":top_type + } + } + + self.send_websocket_request(self.name, data) diff --git a/iqoptionapi/ws/chanels/subscribe.py b/iqoptionapi/ws/chanels/subscribe.py index 73727b84..c10eefce 100644 --- a/iqoptionapi/ws/chanels/subscribe.py +++ b/iqoptionapi/ws/chanels/subscribe.py @@ -3,26 +3,29 @@ from iqoptionapi.ws.chanels.base import Base import datetime import iqoptionapi.constants as OP_code + + class Subscribe(Base): """Class for IQ option candles websocket chanel.""" # pylint: disable=too-few-public-methods name = "subscribeMessage" - def __call__(self, active_id,size): - #{"name":"subscribeMessage","msg":{"name":"candle-generated","params":{"routingFilters":{"active_id":1,"size":1}}}} - - data = {"name":"candle-generated", - "params":{ - "routingFilters":{ - "active_id":str(active_id), - "size":int(size) - } - } + def __call__(self, active_id, size): + # {"name":"subscribeMessage","msg":{"name":"candle-generated","params":{"routingFilters":{"active_id":1,"size":1}}}} + + data = {"name": "candle-generated", + "params": { + "routingFilters": { + "active_id": str(active_id), + "size": int(size) + } + } } self.send_websocket_request(self.name, data) + class Subscribe_candles(Base): """Class for IQ option candles websocket chanel.""" # pylint: disable=too-few-public-methods @@ -30,45 +33,46 @@ class Subscribe_candles(Base): name = "subscribeMessage" def __call__(self, active_id): - - data = {"name":"candles-generated", - "params":{ - "routingFilters":{ - "active_id":str(active_id) - } - } + + data = {"name": "candles-generated", + "params": { + "routingFilters": { + "active_id": str(active_id) + } + } } self.send_websocket_request(self.name, data) + class Subscribe_Instrument_Quites_Generated(Base): name = "subscribeMessage" - - def __call__(self,ACTIVE,expiration_period): + + def __call__(self, ACTIVE, expiration_period): data = { "name": "instrument-quotes-generated", - "params":{ - "routingFilters":{ - "active":int(OP_code.ACTIVES[ACTIVE]), - "expiration_period":int(expiration_period*60), - "kind":"digital-option", - - }, + "params": { + "routingFilters": { + "active": int(OP_code.ACTIVES[ACTIVE]), + "expiration_period": int(expiration_period*60), + "kind": "digital-option", + }, + }, "version": "1.0" } self.send_websocket_request(self.name, data) def get_digital_expiration_time(self, duration): - exp=int(self.api.timesync.server_timestamp) + exp = int(self.api.timesync.server_timestamp) value = datetime.datetime.fromtimestamp(exp) minute = int(value.strftime('%M')) - second=int(value.strftime('%S')) - ans=exp-exp%60#delete second - ans=ans+(duration-minute%duration)*60 - if exp>ans-10: - ans=ans+(duration)*60 - + # second=int(value.strftime('%S')) + ans = exp-exp % 60 # delete second + ans = ans+(duration-minute % duration)*60 + if exp > ans-10: + ans = ans+(duration)*60 + return ans @@ -76,14 +80,81 @@ class Subscribe_top_assets_updated(Base): name = "subscribeMessage" def __call__(self, instrument_type): - - data = {"name":"top-assets-updated", - "params":{ - "routingFilters":{ - "instrument_type":str(instrument_type) - - } - }, - "version":"1.2" + + data = {"name": "top-assets-updated", + "params": { + "routingFilters": { + "instrument_type": str(instrument_type) + + } + }, + "version": "1.2" + } + self.send_websocket_request(self.name, data) + + +""" +{"name":"subscribeMessage","request_id":"s_114","msg":{"name":"commission-changed","version":"1.0","params":{"routingFilters":{"instrument_type":"digital-option","user_group_id":1}}}} +""" +#instrument_type: "binary-option"/"turbo-option"/"digital-option"/"crypto"/"forex"/"cfd" + + +class Subscribe_commission_changed(Base): + name = "subscribeMessage" + def __call__(self, instrument_type): + + data = {"name": "commission-changed", + "params": { + "routingFilters": { + "instrument_type": str(instrument_type) + } + }, + "version": "1.0" + } + self.send_websocket_request(self.name, data) + + +class Subscribe_live_deal(Base): + name = "subscribeMessage" + + def __call__(self, name, active_id, _type): + # "live-deal-binary-option-placed" + # "live-deal-digital-option" + if name == "live-deal-binary-option-placed": + _type_name = "option_type" # turbo/binary + _active_id = "active_id" + elif name == "live-deal-digital-option": + _type_name = "expiration_type" + _active_id = "instrument_active_id" + elif name == "live-deal": + _type_name = "instrument_type" + _active_id = "instrument_active_id" + + data = {"name": name, + "params": { + "routingFilters": { + _active_id: int(active_id), + _type_name: str(_type) + } + }, + "version": "2.0" } self.send_websocket_request(self.name, data) + + +class SubscribeDigitalPriceSplitter(Base): + name = "subscribeMessage" + + def __call__(self, asset_id): + data = { + "name": "price-splitter.client-price-generated", + "version": "1.0", + "params": { + "routingFilters": { + "instrument_type": "digital-option", + "asset_id": int(asset_id) + } + } + } + + self.send_websocket_request(self.name, msg=data) diff --git a/iqoptionapi/ws/chanels/technical_indicators.py b/iqoptionapi/ws/chanels/technical_indicators.py new file mode 100644 index 00000000..ca2e8eaf --- /dev/null +++ b/iqoptionapi/ws/chanels/technical_indicators.py @@ -0,0 +1,19 @@ +import datetime +import time +from iqoptionapi.ws.chanels.base import Base + + +class Technical_indicators(Base): + name = "sendMessage" + + def __call__(self, active): + data = { + "name": "trading-signals.get-technical-indicators", + "version": "1.0", + "body": { + "id": active + } + } + request_id = str(time.time()).split('.')[1] + self.send_websocket_request(self.name, data, request_id) + return request_id diff --git a/iqoptionapi/ws/chanels/traders_mood.py b/iqoptionapi/ws/chanels/traders_mood.py index e1f40e11..ac58c93a 100644 --- a/iqoptionapi/ws/chanels/traders_mood.py +++ b/iqoptionapi/ws/chanels/traders_mood.py @@ -4,46 +4,40 @@ class Traders_mood_subscribe(Base): - name = "subscribeMessage" - def __call__(self,active): - - + def __call__(self, active, instrument="turbo-option"): data = { "name": "traders-mood-changed", "params": - { + { "routingFilters": - { - "instrument":"turbo-option", - "asset_id":active - } - } + { + "instrument": instrument, + "asset_id": active + } + } } self.send_websocket_request(self.name, data) + class Traders_mood_unsubscribe(Base): - name = "unsubscribeMessage" - def __call__(self,active): - - + def __call__(self, active, instrument="turbo-option"): data = { "name": "traders-mood-changed", "params": - { + { "routingFilters": - { - "instrument":"turbo-option", - "asset_id":active - } - } + { + "instrument": instrument, + "asset_id": active + } + } } self.send_websocket_request(self.name, data) - diff --git a/iqoptionapi/ws/chanels/unsubscribe.py b/iqoptionapi/ws/chanels/unsubscribe.py index d19c9b96..9c22a442 100644 --- a/iqoptionapi/ws/chanels/unsubscribe.py +++ b/iqoptionapi/ws/chanels/unsubscribe.py @@ -3,84 +3,148 @@ from iqoptionapi.ws.chanels.base import Base import datetime import iqoptionapi.constants as OP_code + + class Unsubscribe(Base): """Class for IQ option candles websocket chanel.""" # pylint: disable=too-few-public-methods name = "unsubscribeMessage" - def __call__(self, active_id,size=1): - - data = {"name":"candle-generated", - "params":{ - "routingFilters":{ - "active_id":str(active_id), - "size":int(size) - } - } + def __call__(self, active_id, size=1): + + data = {"name": "candle-generated", + "params": { + "routingFilters": { + "active_id": str(active_id), + "size": int(size) + } + } } self.send_websocket_request(self.name, data) + class Unsubscribe_candles(Base): """Class for IQ option candles websocket chanel.""" # pylint: disable=too-few-public-methods name = "unsubscribeMessage" - def __call__(self, active_id,size=1): - - data = {"name":"candles-generated", - "params":{ - "routingFilters":{ - "active_id":str(active_id) - } - } + def __call__(self, active_id, size=1): + + data = {"name": "candles-generated", + "params": { + "routingFilters": { + "active_id": str(active_id) + } + } } self.send_websocket_request(self.name, data) + class Unsubscribe_Instrument_Quites_Generated(Base): name = "unsubscribeMessage" - - def __call__(self,ACTIVE,expiration_period): + + def __call__(self, ACTIVE, expiration_period): data = { "name": "instrument-quotes-generated", - "params":{ - "routingFilters":{ - "active":int(OP_code.ACTIVES[ACTIVE]), - "expiration_period":int(expiration_period*60), - "kind":"digital-option", - }, + "params": { + "routingFilters": { + "active": int(OP_code.ACTIVES[ACTIVE]), + "expiration_period": int(expiration_period*60), + "kind": "digital-option", }, + }, "version": "1.0" } self.send_websocket_request(self.name, data) def get_digital_expiration_time(self, duration): - exp=int(self.api.timesync.server_timestamp) + exp = int(self.api.timesync.server_timestamp) value = datetime.datetime.fromtimestamp(exp) minute = int(value.strftime('%M')) - second=int(value.strftime('%S')) - ans=exp-exp%60#delete second - ans=ans+(duration-minute%duration)*60 - if exp>ans-10: - ans=ans+(duration)*60 - + # second=int(value.strftime('%S')) + ans = exp-exp % 60 # delete second + ans = ans+(duration-minute % duration)*60 + if exp > ans-10: + ans = ans+(duration)*60 + return ans + class Unsubscribe_top_assets_updated(Base): name = "unsubscribeMessage" def __call__(self, instrument_type): - - data = {"name":"top-assets-updated", - "params":{ - "routingFilters":{ - "instrument_type":str(instrument_type) - - } - }, - "version":"1.2" + + data = {"name": "top-assets-updated", + "params": { + "routingFilters": { + "instrument_type": str(instrument_type) + + } + }, + "version": "1.2" } self.send_websocket_request(self.name, data) + + +class Unsubscribe_commission_changed(Base): + name = "unsubscribeMessage" + def __call__(self, instrument_type): + + data = {"name": "commission-changed", + "params": { + "routingFilters": { + "instrument_type": str(instrument_type) + } + }, + "version": "1.0" + } + self.send_websocket_request(self.name, data) + + +class Unscribe_live_deal(Base): + name = "unsubscribeMessage" + + def __call__(self, name, active_id, _type): + if name == "live-deal-binary-option-placed": + _type_name = "option_type" + _active_id = "active_id" + elif name == "live-deal-digital-option": + _type_name = "expiration_type" + _active_id = "instrument_active_id" + elif name == "live-deal": + _type_name = "instrument_type" + _active_id = "instrument_active_id" + + data = {"name": str(name), + "params": { + "routingFilters": { + _active_id: int(active_id), + _type_name: str(_type) + } + }, + "version": "2.0" + } + self.send_websocket_request(self.name, data) + + +class UnsubscribeDigitalPriceSplitter(Base): + name = "unsubscribeMessage" + + def __call__(self, asset_id): + data = { + "name": "price-splitter.client-price-generated", + "version": "1.0", + "params": { + "routingFilters": { + "instrument_type": "digital-option", + "asset_id": int(asset_id) + } + } + } + + self.send_websocket_request(self.name, msg=data) diff --git a/iqoptionapi/ws/chanels/user.py b/iqoptionapi/ws/chanels/user.py new file mode 100644 index 00000000..c79b068c --- /dev/null +++ b/iqoptionapi/ws/chanels/user.py @@ -0,0 +1,53 @@ +"""Module for IQ option unsubscribe websocket chanel.""" + +from iqoptionapi.ws.chanels.base import Base +import datetime +import iqoptionapi.constants as OP_code + + +class Get_user_profile_client(Base): + + name = "sendMessage" + + def __call__(self, user_id): + + data = {"name": "get-user-profile-client", + "body": { + "user_id": int(user_id) + }, + "version":"1.0" + } + + self.send_websocket_request(self.name, data) + +class Request_leaderboard_userinfo_deals_client(Base): + """Class for IQ option candles websocket chanel.""" + # pylint: disable=too-few-public-methods + name = "sendMessage" + + def __call__(self, user_id,country_id): + + data = {"name": "request-leaderboard-userinfo-deals-client", + "body": {"country_ids":[country_id], + "requested_user_id": int(user_id) + }, + "version":"1.0" + } + + self.send_websocket_request(self.name, data) + +class Get_users_availability(Base): + """Class for IQ option candles websocket chanel.""" + # pylint: disable=too-few-public-methods + name = "sendMessage" + + def __call__(self, user_id): + + data = {"name": "get-users-availability", + "body": { + "user_ids": [user_id] + }, + "version":"1.0" + } + + self.send_websocket_request(self.name, data) diff --git a/iqoptionapi/ws/client.py b/iqoptionapi/ws/client.py index aa5daaa0..b43e4245 100644 --- a/iqoptionapi/ws/client.py +++ b/iqoptionapi/ws/client.py @@ -5,9 +5,63 @@ import websocket import iqoptionapi.constants as OP_code import iqoptionapi.global_value as global_value +from threading import Thread +from iqoptionapi.ws.received.technical_indicators import technical_indicators +from iqoptionapi.ws.received.time_sync import time_sync +from iqoptionapi.ws.received.heartbeat import heartbeat +from iqoptionapi.ws.received.balances import balances +from iqoptionapi.ws.received.profile import profile +from iqoptionapi.ws.received.balance_changed import balance_changed +from iqoptionapi.ws.received.candles import candles +from iqoptionapi.ws.received.buy_complete import buy_complete +from iqoptionapi.ws.received.option import option +from iqoptionapi.ws.received.position_history import position_history +from iqoptionapi.ws.received.list_info_data import list_info_data +from iqoptionapi.ws.received.candle_generated import candle_generated_realtime +from iqoptionapi.ws.received.candle_generated_v2 import candle_generated_v2 +from iqoptionapi.ws.received.commission_changed import commission_changed +from iqoptionapi.ws.received.socket_option_opened import socket_option_opened +from iqoptionapi.ws.received.api_option_init_all_result import api_option_init_all_result +from iqoptionapi.ws.received.initialization_data import initialization_data +from iqoptionapi.ws.received.underlying_list import underlying_list +from iqoptionapi.ws.received.instruments import instruments +from iqoptionapi.ws.received.financial_information import financial_information +from iqoptionapi.ws.received.position_changed import position_changed +from iqoptionapi.ws.received.option_opened import option_opened +from iqoptionapi.ws.received.option_closed import option_closed +from iqoptionapi.ws.received.top_assets_updated import top_assets_updated +from iqoptionapi.ws.received.strike_list import strike_list +from iqoptionapi.ws.received.api_game_betinfo_result import api_game_betinfo_result +from iqoptionapi.ws.received.traders_mood_changed import traders_mood_changed +from iqoptionapi.ws.received.order import order +from iqoptionapi.ws.received.position import position +from iqoptionapi.ws.received.positions import positions +from iqoptionapi.ws.received.order_placed_temp import order_placed_temp +from iqoptionapi.ws.received.deferred_orders import deferred_orders +from iqoptionapi.ws.received.history_positions import history_positions +from iqoptionapi.ws.received.available_leverages import available_leverages +from iqoptionapi.ws.received.order_canceled import order_canceled +from iqoptionapi.ws.received.position_closed import position_closed +from iqoptionapi.ws.received.overnight_fee import overnight_fee +from iqoptionapi.ws.received.api_game_getoptions_result import api_game_getoptions_result +from iqoptionapi.ws.received.sold_options import sold_options +from iqoptionapi.ws.received.tpsl_changed import tpsl_changed +from iqoptionapi.ws.received.auto_margin_call_changed import auto_margin_call_changed +from iqoptionapi.ws.received.digital_option_placed import digital_option_placed +from iqoptionapi.ws.received.result import result +from iqoptionapi.ws.received.instrument_quotes_generated import instrument_quotes_generated +from iqoptionapi.ws.received.training_balance_reset import training_balance_reset +from iqoptionapi.ws.received.socket_option_closed import socket_option_closed +from iqoptionapi.ws.received.live_deal_binary_option_placed import live_deal_binary_option_placed +from iqoptionapi.ws.received.live_deal_digital_option import live_deal_digital_option +from iqoptionapi.ws.received.leaderboard_deals_client import leaderboard_deals_client +from iqoptionapi.ws.received.live_deal import live_deal +from iqoptionapi.ws.received.user_profile_client import user_profile_client +from iqoptionapi.ws.received.leaderboard_userinfo_deals_client import leaderboard_userinfo_deals_client +from iqoptionapi.ws.received.client_price_generated import client_price_generated +from iqoptionapi.ws.received.users_availability import users_availability - class WebsocketClient(object): """Class for work with IQ option websocket.""" @@ -21,284 +75,116 @@ def __init__(self, api): self.api.wss_url, on_message=self.on_message, on_error=self.on_error, on_close=self.on_close, on_open=self.on_open) - def dict_queue_add(self,dict,maxdict,key1,key2,key3,value): + + def dict_queue_add(self, dict, maxdict, key1, key2, key3, value): if key3 in dict[key1][key2]: - dict[key1][key2][key3]=value + dict[key1][key2][key3] = value else: while True: try: - dic_size=len(dict[key1][key2]) + dic_size = len(dict[key1][key2]) except: - dic_size=0 - if dic_size 5000: + for k in obj.keys(): + del obj[k] + break + + def on_message(self, message): # pylint: disable=unused-argument """Method to process websocket messages.""" + global_value.ssl_Mutual_exclusion = True logger = logging.getLogger(__name__) logger.debug(message) message = json.loads(str(message)) - if message["name"] == "timeSync": - self.api.timesync.server_timestamp = message["msg"] - ####################################################### - #---------------------for_realtime_candle______________ - ####################################################### - elif message["name"] == "candle-generated": - Active_name=list(OP_code.ACTIVES.keys())[list(OP_code.ACTIVES.values()).index(message["msg"]["active_id"])] - - active=str(Active_name) - size=int(message["msg"]["size"]) - from_=int(message["msg"]["from"]) - msg=message["msg"] - maxdict=self.api.real_time_candles_maxdict_table[Active_name][size] - - self.dict_queue_add(self.api.real_time_candles,maxdict,active,size,from_,msg) - self.api.candle_generated_check[active][size]=True - - elif message["name"]=="options": - self.api.get_options_v2_data=message - elif message["name"] == "candles-generated": - Active_name=list(OP_code.ACTIVES.keys())[list(OP_code.ACTIVES.values()).index(message["msg"]["active_id"])] - active=str(Active_name) - for k,v in message["msg"]["candles"].items(): - v["active_id"]=message["msg"]["active_id"] - v["at"]=message["msg"]["at"] - v["ask"]=message["msg"]["ask"] - v["bid"]=message["msg"]["bid"] - v["close"]=message["msg"]["value"] - v["size"]=int(k) - size=int(v["size"]) - from_=int(v["from"]) - maxdict=self.api.real_time_candles_maxdict_table[Active_name][size] - msg=v - self.dict_queue_add(self.api.real_time_candles,maxdict,active,size,from_,msg) - self.api.candle_generated_all_size_check[active]=True - - ####################################################### - #______________________________________________________ - ####################################################### - elif message["name"] =="heartbeat": - try: - self.api.heartbeat(message["msg"]) - except: - pass - elif message["name"] == "profile": - #--------------all------------- - self.api.profile.msg=message["msg"] - #--------------------------- - - for balance in message["msg"]["balances"]: - if self.api.get_active_account_type() == balance['type']: - try: - self.api.profile.balance = balance["amount"] - except: - pass - - try: - self.api.profile.balance_id = balance["id"] - except: - pass - - try: - self.api.profile.balance_type = balance["type"] - except: - pass - - try: - self.api.profile.currency = balance["currency"] - except: - pass - - try: - self.api.profile.balances = message["msg"]["balances"] - except: - pass - - try: - self.api.profile.currency_char = message["msg"]["currency_char"] - except: - pass - try: - self.api.profile.time_zone = message["msg"]["tz_offset"] - except: - pass + technical_indicators(self.api, message, self.api_dict_clean) + time_sync(self.api, message) + heartbeat(self.api, message) + balances(self.api, message) + profile(self.api, message) + balance_changed(self.api, message) + candles(self.api, message) + buy_complete(self.api, message) + option(self.api, message) + position_history(self.api, message) + list_info_data(self.api, message) + candle_generated_realtime(self.api, message, self.dict_queue_add) + candle_generated_v2(self.api, message, self.dict_queue_add) + commission_changed(self.api, message) + socket_option_opened(self.api, message) + api_option_init_all_result(self.api, message) + initialization_data(self.api, message) + underlying_list(self.api, message) + instruments(self.api, message) + financial_information(self.api, message) + position_changed(self.api, message) + option_opened(self.api, message) + option_closed(self.api, message) + top_assets_updated(self.api, message) + strike_list(self.api, message) + api_game_betinfo_result(self.api, message) + traders_mood_changed(self.api, message) + # ------for forex&cfd&crypto.. + order_placed_temp(self.api, message) + order(self.api, message) + position(self.api, message) + positions(self.api, message) + order_placed_temp(self.api, message) + deferred_orders(self.api, message) + history_positions(self.api, message) + available_leverages(self.api, message) + order_canceled(self.api, message) + position_closed(self.api, message) + overnight_fee(self.api, message) + api_game_getoptions_result(self.api, message) + sold_options(self.api, message) + tpsl_changed(self.api, message) + auto_margin_call_changed(self.api, message) + digital_option_placed(self.api, message, self.api_dict_clean) + result(self.api, message) + instrument_quotes_generated(self.api, message) + training_balance_reset(self.api, message) + socket_option_closed(self.api, message) + live_deal_binary_option_placed(self.api, message) + live_deal_digital_option(self.api, message) + leaderboard_deals_client(self.api, message) + live_deal(self.api, message) + user_profile_client(self.api, message) + leaderboard_userinfo_deals_client(self.api, message) + users_availability(self.api, message) + client_price_generated(self.api, message) + + global_value.ssl_Mutual_exclusion = False - - elif message['name'] == 'balance-changed': - balance = message['msg']['current_balance'] - if self.api.get_active_account_type() == balance['type']: - try: - self.api.profile.balance = balance["amount"] - except: - pass - - try: - self.api.profile.balance_id = balance["id"] - except: - pass - - try: - self.api.profile.balance_type = balance["type"] - except: - pass - - elif message["name"] == "candles": - try: - self.api.candles.candles_data = message["msg"]["candles"] - except: - pass - #Make sure ""self.api.buySuccessful"" more stable - #check buySuccessful have two fail action - #if "user not authorized" we get buyV2_result !!!need to reconnect!!! - #elif "we have user authoget_balancerized" we get buyComplete - #I Suggest if you get selget_balancef.api.buy_successful==False you need to reconnect iqoption server - elif message["name"] == "buyComplete": - try: - self.api.buy_successful = message["msg"]["isSuccessful"] - self.api.buy_id= message["msg"]["result"]["id"] - except: - pass - elif message["name"] == "buyV2_result": - self.api.buy_successful = message["msg"]["isSuccessful"] - #*********************buyv3 - #buy_multi_option - elif message["name"] == "option": - self.api.buy_multi_option[int(message["request_id"])] = message["msg"] - #********************************************************** - elif message["name"] == "listInfoData": - for get_m in message["msg"]: - self.api.listinfodata.set(get_m["win"],get_m["game_state"],get_m["id"]) - elif message["name"] == "socket-option-opened": - id=message["msg"]["id"] - self.api.socket_option_opened[id]=message - - elif message["name"] == "api_option_init_all_result": - self.api.api_option_init_all_result = message["msg"] - elif message["name"] == "initialization-data": - self.api.api_option_init_all_result_v2 = message["msg"] - elif message["name"] == "underlying-list": - self.api.underlying_list_data=message["msg"] - elif message["name"] == "instruments": - self.api.instruments=message["msg"] - elif message["name"]=="financial-information": - self.api.financial_information=message - elif message["name"]=="position-changed": - self.api.position_changed_data[int(message["msg"]["order_ids"][0])]=message["msg"] - elif message["name"]=="option-opened": - self.api.microserviceName_binary_options_name_option[int(message["msg"]["option_id"])]=message - elif message["name"]=="option-closed": - self.api.microserviceName_binary_options_name_option[int(message["msg"]["option_id"])]=message - elif message["name"]=="top-assets-updated": - self.api.top_assets_updated_data[str(message["msg"]["instrument_type"])]=message["msg"]["data"] - elif message["name"]=="strike-list": - self.api.strike_list=message - elif message["name"]=="api_game_betinfo_result": - try: - self.api.game_betinfo.isSuccessful=message["msg"]["isSuccessful"] - self.api.game_betinfo.dict=message["msg"] - except: - pass - elif message["name"]=="traders-mood-changed": - self.api.traders_mood[message["msg"]["asset_id"]]=message["msg"]["value"] - #------for forex&cfd&crypto.. - elif message["name"]=="order-placed-temp": - self.api.buy_order_id= message["msg"]["id"] - elif message["name"]=="order": - self.api.order_data=message - elif message["name"]=="positions": - self.api.positions=message - elif message["name"]=="position": - self.api.position=message - elif message["name"]=="deferred-orders": - self.api.deferred_orders=message - - elif message["name"]=="position-history": - self.api.position_history=message - elif message["name"]=="history-positions": - self.api.position_history_v2=message - elif message["name"]=="available-leverages": - self.api.available_leverages=message - elif message["name"]=="order-canceled": - self.api.order_canceled=message - elif message["name"]=="position-closed": - self.api.close_position_data=message - self.api.sold_digital_options_respond=message - elif message["name"]=="overnight-fee": - self.api.overnight_fee=message - elif message["name"]=="api_game_getoptions_result": - self.api.api_game_getoptions_result=message - elif message["name"]=="sold-options": - self.api.sold_options_respond=message - elif message["name"]=="tpsl-changed": - self.api.tpsl_changed_respond=message - elif message["name"]=="position-changed": - self.api.position_changed=message - elif message["name"]=="auto-margin-call-changed": - self.api.auto_margin_call_changed_respond=message - elif message["name"]=="digital-option-placed": - try: - self.api.digital_option_placed_id=message["msg"]["id"] - except: - self.api.digital_option_placed_id="error" - elif message["name"]=="result": - self.api.result=message["msg"]["success"] - elif message["name"]=="instrument-quotes-generated": - - Active_name=list(OP_code.ACTIVES.keys())[list(OP_code.ACTIVES.values()).index(message["msg"]["active"])] - period=message["msg"]["expiration"]["period"] - ans={} - for data in message["msg"]["quotes"]: - #FROM IQ OPTION SOURCE CODE - #https://github.com/Lu-Yi-Hsun/Decompiler-IQ-Option/blob/master/Source%20Code/5.5.1/sources/com/iqoption/dto/entity/strike/Quote.java#L91 - if data["price"]["ask"]==None: - ProfitPercent=None - else: - askPrice=(float)(data["price"]["ask"]) - ProfitPercent=((100-askPrice)*100)/askPrice - - for symble in data["symbols"]: - try: - """ - ID SAMPLE:doUSDJPY-OTC201811111204PT1MC11350481 - """ - - """ - dict ID-prodit:{ID:profit} - """ - - ans[symble]=ProfitPercent - except: - pass - self.api.instrument_quites_generated_timestamp[Active_name][period]=message["msg"]["expiration"]["timestamp"] - self.api.instrument_quites_generated_data[Active_name][period]=ans - - self.api.instrument_quotes_generated_raw_data[Active_name][period]=message - elif message["name"]=="training-balance-reset": - self.api.training_balance_reset_request=message["msg"]["isSuccessful"] - - - @staticmethod - def on_error(wss, error): # pylint: disable=unused-argument + def on_error(wss, error): # pylint: disable=unused-argument """Method to process websocket errors.""" logger = logging.getLogger(__name__) logger.error(error) - global_value.check_websocket_if_connect=-1 + global_value.websocket_error_reason = str(error) + global_value.check_websocket_if_error = True + @staticmethod - def on_open(wss): # pylint: disable=unused-argument + def on_open(wss): # pylint: disable=unused-argument """Method to process websocket open.""" logger = logging.getLogger(__name__) logger.debug("Websocket client connected.") - global_value.check_websocket_if_connect=1 + global_value.check_websocket_if_connect = 1 + @staticmethod - def on_close(wss): # pylint: disable=unused-argument + def on_close(wss): # pylint: disable=unused-argument """Method to process websocket close.""" logger = logging.getLogger(__name__) logger.debug("Websocket connection closed.") - global_value.check_websocket_if_connect=0 + global_value.check_websocket_if_connect = 0 diff --git a/iqoptionapi/ws/received/__init__.py b/iqoptionapi/ws/received/__init__.py new file mode 100644 index 00000000..cc42f6f1 --- /dev/null +++ b/iqoptionapi/ws/received/__init__.py @@ -0,0 +1 @@ +"""Module for IQ Option API websocket received.""" diff --git a/iqoptionapi/ws/received/api_game_betinfo_result.py b/iqoptionapi/ws/received/api_game_betinfo_result.py new file mode 100644 index 00000000..4f9da483 --- /dev/null +++ b/iqoptionapi/ws/received/api_game_betinfo_result.py @@ -0,0 +1,9 @@ +"""Module for IQ option websocket.""" + +def api_game_betinfo_result(api, message): + if message["name"] == "api_game_betinfo_result": + try: + api.game_betinfo.isSuccessful = message["msg"]["isSuccessful"] + api.game_betinfo.dict = message["msg"] + except: + pass \ No newline at end of file diff --git a/iqoptionapi/ws/received/api_game_getoptions_result.py b/iqoptionapi/ws/received/api_game_getoptions_result.py new file mode 100644 index 00000000..8d23d93e --- /dev/null +++ b/iqoptionapi/ws/received/api_game_getoptions_result.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def api_game_getoptions_result(api, message): + if message["name"] == "api_game_getoptions_result": + api.api_game_getoptions_result = message \ No newline at end of file diff --git a/iqoptionapi/ws/received/api_option_init_all_result.py b/iqoptionapi/ws/received/api_option_init_all_result.py new file mode 100644 index 00000000..b39a5288 --- /dev/null +++ b/iqoptionapi/ws/received/api_option_init_all_result.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def api_option_init_all_result(api, message): + if message["name"] == "api_option_init_all_result": + api.api_option_init_all_result = message["msg"] \ No newline at end of file diff --git a/iqoptionapi/ws/received/auto_margin_call_changed.py b/iqoptionapi/ws/received/auto_margin_call_changed.py new file mode 100644 index 00000000..04554021 --- /dev/null +++ b/iqoptionapi/ws/received/auto_margin_call_changed.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def auto_margin_call_changed(api, message): + if message["name"] == "auto-margin-call-changed": + api.auto_margin_call_changed_respond = message \ No newline at end of file diff --git a/iqoptionapi/ws/received/available_leverages.py b/iqoptionapi/ws/received/available_leverages.py new file mode 100644 index 00000000..7c8124e7 --- /dev/null +++ b/iqoptionapi/ws/received/available_leverages.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def available_leverages(api, message): + if message["name"] == "available-leverages": + api.available_leverages = message \ No newline at end of file diff --git a/iqoptionapi/ws/received/balance_changed.py b/iqoptionapi/ws/received/balance_changed.py new file mode 100644 index 00000000..48128b93 --- /dev/null +++ b/iqoptionapi/ws/received/balance_changed.py @@ -0,0 +1,20 @@ +"""Module for IQ option websocket.""" + +def balance_changed(api, message): + if message['name'] == 'balance-changed': + balance = message['msg']['current_balance'] + # if self.api.get_active_account_type() == balance['type']: + try: + api.profile.balance = balance["amount"] + except: + pass + + try: + api.profile.balance_id = balance["id"] + except: + pass + + try: + api.profile.balance_type = balance["type"] + except: + pass \ No newline at end of file diff --git a/iqoptionapi/ws/received/balances.py b/iqoptionapi/ws/received/balances.py new file mode 100644 index 00000000..75d82313 --- /dev/null +++ b/iqoptionapi/ws/received/balances.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def balances(api, message): + if message["name"] == "balances": + api.balances_raw = message \ No newline at end of file diff --git a/iqoptionapi/ws/received/buy_complete.py b/iqoptionapi/ws/received/buy_complete.py new file mode 100644 index 00000000..21c63789 --- /dev/null +++ b/iqoptionapi/ws/received/buy_complete.py @@ -0,0 +1,9 @@ +"""Module for IQ option websocket.""" + +def buy_complete(api, message): + if message['name'] == 'buyComplete': + try: + api.buy_successful = message["msg"]["isSuccessful"] + api.buy_id = message["msg"]["result"]["id"] + except: + pass \ No newline at end of file diff --git a/iqoptionapi/ws/received/candle_generated.py b/iqoptionapi/ws/received/candle_generated.py new file mode 100644 index 00000000..473899da --- /dev/null +++ b/iqoptionapi/ws/received/candle_generated.py @@ -0,0 +1,18 @@ +"""Module for IQ option websocket.""" +import iqoptionapi.constants as OP_code +import iqoptionapi.global_value as global_value + +def candle_generated_realtime(api, message, dict_queue_add): + if message["name"] == "candle-generated": + Active_name = list(OP_code.ACTIVES.keys())[list( + OP_code.ACTIVES.values()).index(message["msg"]["active_id"])] + + active = str(Active_name) + size = int(message["msg"]["size"]) + from_ = int(message["msg"]["from"]) + msg = message["msg"] + maxdict = api.real_time_candles_maxdict_table[Active_name][size] + + dict_queue_add(api.real_time_candles, + maxdict, active, size, from_, msg) + api.candle_generated_check[active][size] = True \ No newline at end of file diff --git a/iqoptionapi/ws/received/candle_generated_v2.py b/iqoptionapi/ws/received/candle_generated_v2.py new file mode 100644 index 00000000..c334cd4c --- /dev/null +++ b/iqoptionapi/ws/received/candle_generated_v2.py @@ -0,0 +1,21 @@ +import iqoptionapi.constants as OP_code + +def candle_generated_v2(api, message, dict_queue_add): + if message["name"] == "candles-generated": + Active_name = list(OP_code.ACTIVES.keys())[list( + OP_code.ACTIVES.values()).index(message["msg"]["active_id"])] + active = str(Active_name) + for k, v in message["msg"]["candles"].items(): + v["active_id"] = message["msg"]["active_id"] + v["at"] = message["msg"]["at"] + v["ask"] = message["msg"]["ask"] + v["bid"] = message["msg"]["bid"] + v["close"] = message["msg"]["value"] + v["size"] = int(k) + size = int(v["size"]) + from_ = int(v["from"]) + maxdict = api.real_time_candles_maxdict_table[Active_name][size] + msg = v + dict_queue_add(api.real_time_candles, maxdict, active, size, from_, msg) + + api.candle_generated_all_size_check[active] = True \ No newline at end of file diff --git a/iqoptionapi/ws/received/candles.py b/iqoptionapi/ws/received/candles.py new file mode 100644 index 00000000..965d2f47 --- /dev/null +++ b/iqoptionapi/ws/received/candles.py @@ -0,0 +1,8 @@ +"""Module for IQ option websocket.""" + +def candles(api, message): + if message['name'] == 'candles': + try: + api.candles.candles_data = message["msg"]["candles"] + except: + pass \ No newline at end of file diff --git a/iqoptionapi/ws/received/client_price_generated.py b/iqoptionapi/ws/received/client_price_generated.py new file mode 100644 index 00000000..68858c07 --- /dev/null +++ b/iqoptionapi/ws/received/client_price_generated.py @@ -0,0 +1,9 @@ +"""Module for IQ option websocket.""" + +def client_price_generated(api, message): + if message["name"] == "client-price-generated": + ask_price = [d for d in message["msg"]["prices"] if d['strike'] == 'SPT'][0]['call']['ask'] + api.digital_payout = int(((100-ask_price)*100)/ask_price) + api.client_price_generated = message["msg"] + else: + pass \ No newline at end of file diff --git a/iqoptionapi/ws/received/commission_changed.py b/iqoptionapi/ws/received/commission_changed.py new file mode 100644 index 00000000..b56877e6 --- /dev/null +++ b/iqoptionapi/ws/received/commission_changed.py @@ -0,0 +1,12 @@ +"""Module for IQ option websocket.""" +import iqoptionapi.constants as OP_code + +def commission_changed(api, message): + if message["name"] == "commission-changed": + instrument_type = message["msg"]["instrument_type"] + active_id = message["msg"]["active_id"] + Active_name = list(OP_code.ACTIVES.keys())[list( + OP_code.ACTIVES.values()).index(active_id)] + commission = message["msg"]["commission"]["value"] + api.subscribe_commission_changed_data[instrument_type][Active_name][api.timesync.server_timestamp] = int( + commission) \ No newline at end of file diff --git a/iqoptionapi/ws/received/deferred_orders.py b/iqoptionapi/ws/received/deferred_orders.py new file mode 100644 index 00000000..277f17c6 --- /dev/null +++ b/iqoptionapi/ws/received/deferred_orders.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def deferred_orders(api, message): + if message["name"] == "deferred-orders": + api.deferred_orders = message \ No newline at end of file diff --git a/iqoptionapi/ws/received/digital_option_placed.py b/iqoptionapi/ws/received/digital_option_placed.py new file mode 100644 index 00000000..643d9ae1 --- /dev/null +++ b/iqoptionapi/ws/received/digital_option_placed.py @@ -0,0 +1,13 @@ +"""Module for IQ option websocket.""" + +def digital_option_placed(api, message, api_dict_clean): + if message["name"] == "digital-option-placed": + if message["msg"].get("id") != None: + api_dict_clean(api.digital_option_placed_id) + api.digital_option_placed_id[message["request_id"] + ] = message["msg"]["id"] + else: + api.digital_option_placed_id[message["request_id"]] = { + "code": "error_place_digital_order", + "message": message["msg"]["message"] + } \ No newline at end of file diff --git a/iqoptionapi/ws/received/financial_information.py b/iqoptionapi/ws/received/financial_information.py new file mode 100644 index 00000000..a314a2bd --- /dev/null +++ b/iqoptionapi/ws/received/financial_information.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def financial_information(api, message): + if message["name"] == "financial-information": + api.financial_information = message \ No newline at end of file diff --git a/iqoptionapi/ws/received/heartbeat.py b/iqoptionapi/ws/received/heartbeat.py new file mode 100644 index 00000000..6f1bedfe --- /dev/null +++ b/iqoptionapi/ws/received/heartbeat.py @@ -0,0 +1,8 @@ +"""Module for IQ option websocket.""" + +def heartbeat(api, message): + if message["name"] == "heartbeat": + try: + api.heartbeat(message["msg"]) + except: + pass \ No newline at end of file diff --git a/iqoptionapi/ws/received/history_positions.py b/iqoptionapi/ws/received/history_positions.py new file mode 100644 index 00000000..6d42a0f2 --- /dev/null +++ b/iqoptionapi/ws/received/history_positions.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def history_positions(api, message): + if message["name"] == "history-positions": + api.position_history_v2 = message \ No newline at end of file diff --git a/iqoptionapi/ws/received/initialization_data.py b/iqoptionapi/ws/received/initialization_data.py new file mode 100644 index 00000000..e4042c44 --- /dev/null +++ b/iqoptionapi/ws/received/initialization_data.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def initialization_data(api, message): + if message["name"] == "initialization-data": + api.api_option_init_all_result_v2 = message["msg"] \ No newline at end of file diff --git a/iqoptionapi/ws/received/instrument_quotes_generated.py b/iqoptionapi/ws/received/instrument_quotes_generated.py new file mode 100644 index 00000000..2502ee70 --- /dev/null +++ b/iqoptionapi/ws/received/instrument_quotes_generated.py @@ -0,0 +1,35 @@ +"""Module for IQ option websocket.""" +import iqoptionapi.constants as OP_code + +def instrument_quotes_generated(api, message): + if message["name"] == "instrument-quotes-generated": + + Active_name = list(OP_code.ACTIVES.keys())[list(OP_code.ACTIVES.values()).index(message["msg"]["active"])] + period = message["msg"]["expiration"]["period"] + ans = {} + for data in message["msg"]["quotes"]: + # FROM IQ OPTION SOURCE CODE + if data["price"]["ask"] == None: + ProfitPercent = None + else: + askPrice = (float)(data["price"]["ask"]) + ProfitPercent = ((100-askPrice)*100)/askPrice + + for symble in data["symbols"]: + try: + """ + ID SAMPLE:doUSDJPY-OTC201811111204PT1MC11350481 + """ + + """ + dict ID-prodit:{ID:profit} + """ + + ans[symble] = ProfitPercent + except: + pass + api.instrument_quites_generated_timestamp[Active_name][ + period] = message["msg"]["expiration"]["timestamp"] + api.instrument_quites_generated_data[Active_name][period] = ans + + api.instrument_quotes_generated_raw_data[Active_name][period] = message \ No newline at end of file diff --git a/iqoptionapi/ws/received/instruments.py b/iqoptionapi/ws/received/instruments.py new file mode 100644 index 00000000..9ee5a5b8 --- /dev/null +++ b/iqoptionapi/ws/received/instruments.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def instruments(api, message): + if message["name"] == "instruments": + api.instruments = message["msg"] \ No newline at end of file diff --git a/iqoptionapi/ws/received/leaderboard_deals_client.py b/iqoptionapi/ws/received/leaderboard_deals_client.py new file mode 100644 index 00000000..a132f5ec --- /dev/null +++ b/iqoptionapi/ws/received/leaderboard_deals_client.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def leaderboard_deals_client(api, message): + if message["name"] == "leaderboard-deals-client": + api.leaderboard_deals_client = message["msg"] \ No newline at end of file diff --git a/iqoptionapi/ws/received/leaderboard_userinfo_deals_client.py b/iqoptionapi/ws/received/leaderboard_userinfo_deals_client.py new file mode 100644 index 00000000..17e0daee --- /dev/null +++ b/iqoptionapi/ws/received/leaderboard_userinfo_deals_client.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def leaderboard_userinfo_deals_client(api, message): + if message["name"] == "leaderboard-userinfo-deals-client": + api.leaderboard_userinfo_deals_client = message["msg"] \ No newline at end of file diff --git a/iqoptionapi/ws/received/list_info_data.py b/iqoptionapi/ws/received/list_info_data.py new file mode 100644 index 00000000..cde67f8e --- /dev/null +++ b/iqoptionapi/ws/received/list_info_data.py @@ -0,0 +1,6 @@ +"""Module for IQ option websocket.""" + +def list_info_data(api, message): + if message["name"] == "listInfoData": + for get_m in message["msg"]: + api.listinfodata.set(get_m["win"], get_m["game_state"], get_m["id"]) \ No newline at end of file diff --git a/iqoptionapi/ws/received/live_deal.py b/iqoptionapi/ws/received/live_deal.py new file mode 100644 index 00000000..e1a1f8bb --- /dev/null +++ b/iqoptionapi/ws/received/live_deal.py @@ -0,0 +1,25 @@ +"""Module for IQ option websocket.""" +import iqoptionapi.constants as OP_code +from threading import Thread + +def live_deal(api, message): + if message["name"] == "live-deal": + # name = message["name"] + active_id = message["msg"]["instrument_active_id"] + active = list(OP_code.ACTIVES.keys())[ + list(OP_code.ACTIVES.values()).index(active_id)] + _type = message["msg"]["instrument_type"] + try: + # api.live_deal_data[name][active][_type].appendleft( + # message["msg"]) + if hasattr(api.live_deal_cb, '__call__'): + cb_data = { + "active": active, + **message["msg"] + } + livedeal = Thread(target=api.live_deal_cb, + kwargs=(cb_data)) + livedeal.daemon = True + livedeal.start() + except: + pass \ No newline at end of file diff --git a/iqoptionapi/ws/received/live_deal_binary_option_placed.py b/iqoptionapi/ws/received/live_deal_binary_option_placed.py new file mode 100644 index 00000000..94f011dc --- /dev/null +++ b/iqoptionapi/ws/received/live_deal_binary_option_placed.py @@ -0,0 +1,25 @@ +"""Module for IQ option websocket.""" +import iqoptionapi.constants as OP_code +from threading import Thread + +def live_deal_binary_option_placed(api, message): + if message["name"] == "live-deal-binary-option-placed": + # name = message["name"] + active_id = message["msg"]["active_id"] + active = list(OP_code.ACTIVES.keys())[ + list(OP_code.ACTIVES.values()).index(active_id)] + _type = message["msg"]["option_type"] + try: + # self.api.live_deal_data[name][active][_type].appendleft( + # message["msg"]) + if hasattr(api.binary_live_deal_cb, '__call__'): + cb_data = { + "active": active, + **message["msg"] + } + realbinary = Thread(target=api.binary_live_deal_cb, + kwargs=(cb_data)) + realbinary.daemon = True + realbinary.start() + except: + pass \ No newline at end of file diff --git a/iqoptionapi/ws/received/live_deal_digital_option.py b/iqoptionapi/ws/received/live_deal_digital_option.py new file mode 100644 index 00000000..44ed0464 --- /dev/null +++ b/iqoptionapi/ws/received/live_deal_digital_option.py @@ -0,0 +1,25 @@ +"""Module for IQ option websocket.""" +import iqoptionapi.constants as OP_code +from threading import Thread + +def live_deal_digital_option(api, message): + if message["name"] == "live-deal-digital-option": + # name = message["name"] + active_id = message["msg"]["instrument_active_id"] + active = list(OP_code.ACTIVES.keys())[ + list(OP_code.ACTIVES.values()).index(active_id)] + _type = message["msg"]["expiration_type"] + try: + # self.api.live_deal_data[name][active][_type].appendleft( + # message["msg"]) + if hasattr(api.digital_live_deal_cb, '__call__'): + cb_data = { + "active": active, + **message["msg"] + } + realdigital = Thread(target=api.digital_live_deal_cb, + kwargs=(cb_data)) + realdigital.daemon = True + realdigital.start() + except: + pass \ No newline at end of file diff --git a/iqoptionapi/ws/received/option.py b/iqoptionapi/ws/received/option.py new file mode 100644 index 00000000..95db3f1a --- /dev/null +++ b/iqoptionapi/ws/received/option.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def option(api, message): + if message["name"] == "option": + api.buy_multi_option[str(message["request_id"])] = message["msg"] \ No newline at end of file diff --git a/iqoptionapi/ws/received/option_closed.py b/iqoptionapi/ws/received/option_closed.py new file mode 100644 index 00000000..ff7f81c7 --- /dev/null +++ b/iqoptionapi/ws/received/option_closed.py @@ -0,0 +1,7 @@ +"""Module for IQ option websocket.""" + +def option_closed(api, message): + if message["name"] == "option-closed": + api.order_async[int(message["msg"]["option_id"])][message["name"]] = message + if message["microserviceName"] == "binary-options": + api.order_binary[message["msg"]["option_id"]] = message['msg'] \ No newline at end of file diff --git a/iqoptionapi/ws/received/option_opened.py b/iqoptionapi/ws/received/option_opened.py new file mode 100644 index 00000000..c7ff1692 --- /dev/null +++ b/iqoptionapi/ws/received/option_opened.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def option_opened(api, message): + if message["name"] == "option-opened": + api.order_async[int(message["msg"]["option_id"])][message["name"]] = message \ No newline at end of file diff --git a/iqoptionapi/ws/received/options.py b/iqoptionapi/ws/received/options.py new file mode 100644 index 00000000..855c0b69 --- /dev/null +++ b/iqoptionapi/ws/received/options.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def option(api, message): + if message["name"] == "options": + api.get_options_v2_data = message \ No newline at end of file diff --git a/iqoptionapi/ws/received/order.py b/iqoptionapi/ws/received/order.py new file mode 100644 index 00000000..c91a84f3 --- /dev/null +++ b/iqoptionapi/ws/received/order.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def order(api, message): + if message["name"] == "order": + api.order_data = message diff --git a/iqoptionapi/ws/received/order_canceled.py b/iqoptionapi/ws/received/order_canceled.py new file mode 100644 index 00000000..9f62c84b --- /dev/null +++ b/iqoptionapi/ws/received/order_canceled.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def order_canceled(api, message): + if message["name"] == "order-canceled": + api.order_canceled = message \ No newline at end of file diff --git a/iqoptionapi/ws/received/order_placed_temp.py b/iqoptionapi/ws/received/order_placed_temp.py new file mode 100644 index 00000000..963a32f5 --- /dev/null +++ b/iqoptionapi/ws/received/order_placed_temp.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def order_placed_temp(api, message): + if message["name"] == "order-placed-temp": + api.buy_order_id = message["msg"]["id"] diff --git a/iqoptionapi/ws/received/overnight_fee.py b/iqoptionapi/ws/received/overnight_fee.py new file mode 100644 index 00000000..35e1925f --- /dev/null +++ b/iqoptionapi/ws/received/overnight_fee.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def overnight_fee(api, message): + if message["name"] == "overnight-fee": + api.overnight_fee = message \ No newline at end of file diff --git a/iqoptionapi/ws/received/position.py b/iqoptionapi/ws/received/position.py new file mode 100644 index 00000000..d1440acd --- /dev/null +++ b/iqoptionapi/ws/received/position.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def position(api, message): + if message["name"] == "position": + api.position = message diff --git a/iqoptionapi/ws/received/position_changed.py b/iqoptionapi/ws/received/position_changed.py new file mode 100644 index 00000000..466c9a39 --- /dev/null +++ b/iqoptionapi/ws/received/position_changed.py @@ -0,0 +1,10 @@ +"""Module for IQ option websocket.""" + +def position_changed(api, message): + if message["name"] == "position-changed": + if message["microserviceName"] == "portfolio" and (message["msg"]["source"] == "digital-options") or message["msg"]["source"] == "trading": + api.order_async[int(message["msg"]["raw_event"]["order_ids"][0])][message["name"]] = message + elif message["microserviceName"] == "portfolio" and message["msg"]["source"] == "binary-options": + api.order_async[int(message["msg"]["external_id"])][message["name"]] = message + else: + api.position_changed = message \ No newline at end of file diff --git a/iqoptionapi/ws/received/position_closed.py b/iqoptionapi/ws/received/position_closed.py new file mode 100644 index 00000000..df14dbe3 --- /dev/null +++ b/iqoptionapi/ws/received/position_closed.py @@ -0,0 +1,6 @@ +"""Module for IQ option websocket.""" + +def position_closed(api, message): + if message["name"] == "position-closed": + api.close_position_data = message + api.sold_digital_options_respond = message \ No newline at end of file diff --git a/iqoptionapi/ws/received/position_history.py b/iqoptionapi/ws/received/position_history.py new file mode 100644 index 00000000..a8094499 --- /dev/null +++ b/iqoptionapi/ws/received/position_history.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def position_history(api, message): + if message["name"] == "position-history": + api.position_history = message \ No newline at end of file diff --git a/iqoptionapi/ws/received/positions.py b/iqoptionapi/ws/received/positions.py new file mode 100644 index 00000000..ede287a6 --- /dev/null +++ b/iqoptionapi/ws/received/positions.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def positions(api, message): + if message["name"] == "positions": + api.positions = message diff --git a/iqoptionapi/ws/received/profile.py b/iqoptionapi/ws/received/profile.py new file mode 100644 index 00000000..d5cd1423 --- /dev/null +++ b/iqoptionapi/ws/received/profile.py @@ -0,0 +1,32 @@ +"""Module for IQ option websocket.""" +import iqoptionapi.global_value as global_value + +def profile(api, message): + if message["name"] == "profile": + api.profile.msg = message["msg"] + if api.profile.msg != False: + # --------------------------- + try: + api.profile.balance = message["msg"]["balance"] + except: + pass + # Set Default account + if global_value.balance_id == None: + for balance in message["msg"]["balances"]: + if balance["type"] == 4: + global_value.balance_id = balance["id"] + break + try: + api.profile.balance_id = message["msg"]["balance_id"] + except: + pass + + try: + api.profile.balance_type = message["msg"]["balance_type"] + except: + pass + + try: + api.profile.balances = message["msg"]["balances"] + except: + pass \ No newline at end of file diff --git a/iqoptionapi/ws/received/result.py b/iqoptionapi/ws/received/result.py new file mode 100644 index 00000000..07b6856c --- /dev/null +++ b/iqoptionapi/ws/received/result.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def result(api, message): + if message["name"] == "result": + api.result = message["msg"]["success"] \ No newline at end of file diff --git a/iqoptionapi/ws/received/socket_option_closed.py b/iqoptionapi/ws/received/socket_option_closed.py new file mode 100644 index 00000000..f38c5453 --- /dev/null +++ b/iqoptionapi/ws/received/socket_option_closed.py @@ -0,0 +1,6 @@ +"""Module for IQ option websocket.""" + +def socket_option_closed(api, message): + if message["name"] == "socket-option-closed": + id = message["msg"]["id"] + api.socket_option_closed[id] = message \ No newline at end of file diff --git a/iqoptionapi/ws/received/socket_option_opened.py b/iqoptionapi/ws/received/socket_option_opened.py new file mode 100644 index 00000000..e03c3860 --- /dev/null +++ b/iqoptionapi/ws/received/socket_option_opened.py @@ -0,0 +1,6 @@ +"""Module for IQ option websocket.""" + +def socket_option_opened(api, message): + if message["name"] == "socket-option-opened": + id = message["msg"]["id"] + api.socket_option_opened[id] = message \ No newline at end of file diff --git a/iqoptionapi/ws/received/sold_options.py b/iqoptionapi/ws/received/sold_options.py new file mode 100644 index 00000000..c7daf9ed --- /dev/null +++ b/iqoptionapi/ws/received/sold_options.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def sold_options(api, message): + if message["name"] == "sold-options": + api.sold_options_respond = message \ No newline at end of file diff --git a/iqoptionapi/ws/received/strike_list.py b/iqoptionapi/ws/received/strike_list.py new file mode 100644 index 00000000..09ec4c6d --- /dev/null +++ b/iqoptionapi/ws/received/strike_list.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def strike_list(api, message): + if message["name"] == "strike-list": + api.strike_list = message \ No newline at end of file diff --git a/iqoptionapi/ws/received/technical_indicators.py b/iqoptionapi/ws/received/technical_indicators.py new file mode 100644 index 00000000..2d9d57e4 --- /dev/null +++ b/iqoptionapi/ws/received/technical_indicators.py @@ -0,0 +1,12 @@ +"""Module for IQ option websocket.""" + +def technical_indicators(api, message, api_dict_clean): + if message["name"] == "technical-indicators": + if message["msg"].get("indicators") != None: + api_dict_clean(api.technical_indicators) + api.technical_indicators[message["request_id"]] = message["msg"]["indicators"] + else: + api.technical_indicators[message["request_id"]] = { + "code": "no_technical_indicator_available", + "message": message["msg"]["message"] + } \ No newline at end of file diff --git a/iqoptionapi/ws/received/time_sync.py b/iqoptionapi/ws/received/time_sync.py new file mode 100644 index 00000000..d0ea86f6 --- /dev/null +++ b/iqoptionapi/ws/received/time_sync.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def time_sync(api, message): + if message["name"] == "timeSync": + api.timesync.server_timestamp = message["msg"] \ No newline at end of file diff --git a/iqoptionapi/ws/received/top_assets_updated.py b/iqoptionapi/ws/received/top_assets_updated.py new file mode 100644 index 00000000..f71cf7cb --- /dev/null +++ b/iqoptionapi/ws/received/top_assets_updated.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def top_assets_updated(api, message): + if message["name"] == "top-assets-updated": + api.top_assets_updated_data[str(message["msg"]["instrument_type"])] = message["msg"]["data"] \ No newline at end of file diff --git a/iqoptionapi/ws/received/tpsl_changed.py b/iqoptionapi/ws/received/tpsl_changed.py new file mode 100644 index 00000000..9096792f --- /dev/null +++ b/iqoptionapi/ws/received/tpsl_changed.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def tpsl_changed(api, message): + if message["name"] == "tpsl-changed": + api.tpsl_changed_respond = message \ No newline at end of file diff --git a/iqoptionapi/ws/received/traders_mood_changed.py b/iqoptionapi/ws/received/traders_mood_changed.py new file mode 100644 index 00000000..8d247e6a --- /dev/null +++ b/iqoptionapi/ws/received/traders_mood_changed.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def traders_mood_changed(api, message): + if message["name"] == "traders-mood-changed": + api.traders_mood[message["msg"]["asset_id"]] = message["msg"]["value"] \ No newline at end of file diff --git a/iqoptionapi/ws/received/training_balance_reset.py b/iqoptionapi/ws/received/training_balance_reset.py new file mode 100644 index 00000000..372575e7 --- /dev/null +++ b/iqoptionapi/ws/received/training_balance_reset.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def training_balance_reset(api, message): + if message["name"] == "training-balance-reset": + api.training_balance_reset_request = message["msg"]["isSuccessful"] \ No newline at end of file diff --git a/iqoptionapi/ws/received/underlying_list.py b/iqoptionapi/ws/received/underlying_list.py new file mode 100644 index 00000000..9ed3813d --- /dev/null +++ b/iqoptionapi/ws/received/underlying_list.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def underlying_list(api, message): + if message["name"] == "underlying-list": + api.underlying_list_data = message["msg"] diff --git a/iqoptionapi/ws/received/user_profile_client.py b/iqoptionapi/ws/received/user_profile_client.py new file mode 100644 index 00000000..e112c21c --- /dev/null +++ b/iqoptionapi/ws/received/user_profile_client.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def user_profile_client(api, message): + if message["name"] == "user-profile-client": + api.user_profile_client = message["msg"] \ No newline at end of file diff --git a/iqoptionapi/ws/received/users_availability.py b/iqoptionapi/ws/received/users_availability.py new file mode 100644 index 00000000..3d399173 --- /dev/null +++ b/iqoptionapi/ws/received/users_availability.py @@ -0,0 +1,5 @@ +"""Module for IQ option websocket.""" + +def users_availability(api, message): + if message["name"] == "users-availability": + api.users_availability = message["msg"] \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 00000000..ba9983cc --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,103 @@ +site_name: iqoptionapi document +repo_name: "iqoptionapi" +repo_url: "https://github.com/iqoptionapi/iqoptionapi" +site_url: "https://iqoptionapi.github.io/iqoptionapi/" +docs_dir: "doc/" +site_dir: "docs/" +extra: + search: + language: "pt-br" + #-tokenizer: '[\a\-\.]+' + social: + - icon: "fontawesome/brands/github" + link: "https://github.com/iqoptionapi/iqoptionapi" + +plugins: + - search: + lang: + - pt + - en + - es + - macros + +theme: + language: "en" + logo: "logo.png" + name: "material" #readthedocs/readthedocs + custom_dir: doc/theme/material + donation_link: "https://streamelements.com/iqoptionapi/tip" + icon: assets/images/favicon.png + palette: + primary: "indigo" + accent: "Blue Grey" + features: [] + font: + text: "Roboto" + code: "Roboto Mono" + favicon: image/icon/iq.ico + +# Extensions +markdown_extensions: + - footnotes + - codehilite + - markdown.extensions.admonition + # - markdown.extensions.codehilite: + # guess_lang: false + # linenums: true + - markdown.extensions.def_list + - markdown.extensions.footnotes + - markdown.extensions.meta + - markdown.extensions.toc: + permalink: true + - pymdownx.superfences: + preserve_tabs: true + - pymdownx.arithmatex + - pymdownx.betterem: + smart_enable: all + - pymdownx.caret + - pymdownx.critic + - pymdownx.details + + - pymdownx.inlinehilite + - pymdownx.magiclink + - pymdownx.mark + - pymdownx.smartsymbols + - pymdownx.superfences + - pymdownx.tasklist: + custom_checkbox: true + - pymdownx.tilde + +extra_javascript: + - "javascripts/extra.js" + - "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js" + +nav: + - Home: index.md + - English: + - Get Start: en/index.md + - 2 factor Auth: en/2 factor/index.md + - Account: en/account/account.md + - For all: en/all/all.md + - Binary option: en/binary option/binary option.md + - Digital: en/digital/digital.md + - Foreign exchange futures: en/fef/fef.md + - candle: en/candle/candle.md + - Techincal Analysis: en/techinical analysis/index.md + - Portugues: + - Primeiros Passos: pt/index.md + - Conta: pt/account/account.md + - para Todos: pt/all/all.md + - Opções Binarias: pt/binary option/binary option.md + - Digital: pt/digital/digital.md + - Forex, Cripto, Ações, Commodities e Fundos: pt/fef/fef.md + - candle: pt/candle/candle.md + - Techincal Analysis: pt/techinical analysis/index.md + - Espanol: + - Empezar: es/index.md + - Cuenta: es/account/account.md + - Para todo: es/all/all.md + - Opciones Binarias: es/binary option/binary option.md + - Digital: es/digital/digital.md + - Futuros de divisas: es/fef/fef.md + - Velas: es/candle/candle.md + - Análisis técnico: es/techinical analysis/index.md diff --git a/old_document.md b/old_document.md new file mode 100644 index 00000000..e6f97592 --- /dev/null +++ b/old_document.md @@ -0,0 +1,1371 @@ +# IQ Option API + +Thank buy iqoptionapi private version + + +last update:2019/12/5 + +Version:6.0 + +fix buy() for binary option + + + +--- +## About API + +only support US Dollar account + +https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/73#issue-406537365 + +```python +#hight level api ,This api is write base on ""iqoptionapi.api" for more easy +from iqoptionapi.stable_api import IQ_Option +#low level api +from iqoptionapi.api import IQOptionAPI +``` +```bash +. +├── docs +├── iqoptionapi(API code) +    ├── http(doing http get/post) +    └── ws +    ├── chanels(Doing websocket action) +    └── objects(Get back data from websocket action) +``` + + + + +## Can not loging problem + +#### fix way 1 +```bash +sudo pip3 uninstall websocket-client +sudo pip3 install websocket-client==0.56 +``` + + + +### problem 2 + +#### websocket conflict with websocket-client + +if you have this problem + +https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/66 + +fix way +```bash +sudo pip3 uninstall websocket +sudo pip3 install websocket-client==0.47.0 +``` + +--- + +## Installation & GET new version + +clone or download this repository + +``` +python setup.py install +``` + +--- +## Littile sample +```python +import time +from iqoptionapi.stable_api import IQ_Option +I_want_money=IQ_Option("email","password") +goal="EURUSD" +print("get candles") +print(I_want_money.get_candles(goal,60,111,time.time())) +``` + +--- + +## Document + +### Import +```python +from iqoptionapi.stable_api import IQ_Option +``` +--- +### Debug mode on + +```python +import logging +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +``` +--- +### Login +!!! + +Login NOT support SMS Authorization yet + +I suggest close it because your robot will stop to wait you to check sms code (on phone).... + +!!! + +```python +I_want_money=IQ_Option("email","password") +``` + +--- +### set_max_reconnect +default number is 5 + +https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/22 + +Protect if you get some error (iqoptionapi auto reconnect) too many time,IQoption will ban your IP + +``` +I_want_money.set_max_reconnect(number) +``` + +--- +### Reconnect&check connect + +some time connect will close so this way can check connect and reconnect + +try close your network and restart network in this sample + +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import time +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +I_want_money=IQ_Option("email","password") +I_want_money.set_max_reconnect(-1)#allow unlimited reconnect +while True: + #you can !!close yuor network!! to simulation network fails + if I_want_money.check_connect()==False:#detect the websocket is close + print("try reconnect") + I_want_money.connect()#try to connect + print("reconnect Success") + time.sleep(1) +``` + + + +--- +### Check version + +```python +from iqoptionapi.stable_api import IQ_Option +print(IQ_Option.__version__) +``` +### Check connect + +return True/False + +```python +print(I_want_money.check_connect()) +``` + +### Reconnect +```python +I_want_money.connect() +``` +--- + +### Check Asset if open or not + +:exclamation:be careful get_all_open_time() is very heavy for network. + +get_all_open_time() return the DICT + +"cfd" is include Stock,Commodities,ETFs asset + +DICT["forex"/"cfd"/"crypto"/"digital"/"turbo"/"binary"][Asset Name]["open"] + +it will return True/False + +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import random +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +I_want_money=IQ_Option("email","password") +ALL_Asset=I_want_money.get_all_open_time() +#check if open or not +print(ALL_Asset["forex"]["EURUSD"]["open"]) +print(ALL_Asset["cfd"]["FACEBOOK"]["open"])#Stock,Commodities,ETFs +print(ALL_Asset["crypto"]["BTCUSD-L"]["open"]) +print(ALL_Asset["digital"]["EURUSD-OTC"]["open"]) + +#Binary have two diffenence type:"turbo","binary" +print(ALL_Asset["turbo"]["EURUSD-OTC"]["open"]) +print(ALL_Asset["binary"]["EURUSD-OTC"]["open"]) + + +#!!!! exception "" +print(ALL_Asset["binary"]["not exist asset"]["open"])#it will return "{}" a None of the dict + +#!!!!print all!!!! +for type_name, data in ALL_Asset.items(): + for Asset,value in data.items(): + print(type_name,Asset,value["open"]) +``` + +### View all ACTIVES Name +you will get right all ACTIVES and code + +[ACTIVES](iqoptionapi/constants.py) + +```python +print(I_want_money.get_all_ACTIVES_OPCODE()) +``` + +--- + +### For all + +this api can work for option&digital&Forex&Stock&Commodities&Crypto&ETFs + +#### get_async_order + +get the order data by id + +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import time +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +I_want_money=IQ_Option("email","password") + +ACTIVES="EURUSD" +duration=1#minute 1 or 5 +amount=1 +action="call"#put + +print("__For_Binary_Option__") +_,id=I_want_money.buy(amount,ACTIVES,action,duration) +while I_want_money.get_async_order(id)==None: + pass +print(I_want_money.get_async_order(id)) +print("\n\n") + +print("__For_Digital_Option__spot") +id=I_want_money.buy_digital_spot(ACTIVES,amount,action,duration) +while I_want_money.get_async_order(id)==None: + pass +order_data=I_want_money.get_async_order(id) +print(I_want_money.get_async_order(id)) +print("\n\n") + +print("__For_Forex_Stock_Commodities_Crypto_ETFs") +instrument_type="crypto" +instrument_id="BTCUSD" +side="buy" +amount=1.23 +leverage=3 +type="market" +limit_price=None +stop_price=None +stop_lose_kind="percent" +stop_lose_value=95 +take_profit_kind=None +take_profit_value=None +use_trail_stop=True +auto_margin_call=False +use_token_for_commission=False +check,id=I_want_money.buy_order(instrument_type=instrument_type, instrument_id=instrument_id, + side=side, amount=amount,leverage=leverage, + type=type,limit_price=limit_price, stop_price=stop_price, + stop_lose_value=stop_lose_value, stop_lose_kind=stop_lose_kind, + take_profit_value=take_profit_value, take_profit_kind=take_profit_kind, + use_trail_stop=use_trail_stop, auto_margin_call=auto_margin_call, + use_token_for_commission=use_token_for_commission) +while I_want_money.get_async_order(id)==None: + pass +order_data=I_want_money.get_async_order(id) +print(I_want_money.get_async_order(id)) +``` +#### get_commission_change + + +instrument_type: "binary-option"/"turbo-option"/"digital-option"/"crypto"/"forex"/"cfd" + +I_want_money.subscribe_commission_changed(instrument_type) +I_want_money.get_commission_change(instrument_type) +I_want_money.unsubscribe_commission_changed(instrument_type) + +Sample code + +```python +import time +from iqoptionapi.stable_api import IQ_Option +I_want_money=IQ_Option("email","password") +#instrument_type: "binary-option"/"turbo-option"/"digital-option"/"crypto"/"forex"/"cfd" +instrument_type=["binary-option","turbo-option","digital-option","crypto","forex","cfd"] +for ins in instrument_type: + I_want_money.subscribe_commission_changed(ins) +print("Start stream please wait profit change...") +while True: + for ins in instrument_type: + commissio_data=I_want_money.get_commission_change(ins) + if commissio_data!={}: + for active_name in commissio_data: + if commissio_data[active_name]!={}: + the_min_timestamp=min(commissio_data[active_name].keys()) + commissio=commissio_data[active_name][the_min_timestamp] + profit=(100-commissio)/100 + print("instrument_type: "+str(ins)+" active_name: "+str(active_name)+" profit change to: "+str(profit)) + #Data have been update so need del + del I_want_money.get_commission_change(ins)[active_name][the_min_timestamp] + time.sleep(1) +``` + + +### For Options + +#### BUY + +Sample +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import time +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +I_want_money=IQ_Option("email","pass") +goal="EURUSD" +print("get candles") +print(I_want_money.get_candles(goal,60,111,time.time())) +Money=1 +ACTIVES="EURUSD" +ACTION="call"#or "put" +expirations_mode=1 + +check,id=I_want_money.buy(Money,ACTIVES,ACTION,expirations_mode) +if check: + print("!buy!") +else: + print("buy fail") +``` + +```python +I_want_money.buy(Money,ACTIVES,ACTION,expirations) + #Money:How many you want to buy type(int) + #ACTIVES:sample input "EURUSD" OR "EURGBP".... you can view by get_all_ACTIVES_OPCODE + #ACTION:"call"/"put" type(str) + #expirations:input minute,careful too large will false to buy(Closed market time)thank Darth-Carrotpie's code (int)https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/6 + #return:if sucess return (True,id_number) esle return(Fale,None) +``` +#### buy_multi + +Sample +```python +from iqoptionapi.stable_api import IQ_Option +I_want_money=IQ_Option("email","password") +Money=[] +ACTIVES=[] +ACTION=[] +expirations_mode=[] + +Money.append(1) +ACTIVES.append("EURUSD") +ACTION.append("call")#put +expirations_mode.append(1) + +Money.append(1) +ACTIVES.append("EURAUD") +ACTION.append("call")#put +expirations_mode.append(1) + +print("buy multi") +id_list=I_want_money.buy_multi(Money,ACTIVES,ACTION,expirations_mode) + +print("check win only one id (id_list[0])") +print(I_want_money.check_win_v2(id_list[0])) +``` + +#### get_remaning + +purchase time=remaning time - 30 + +```python +from iqoptionapi.stable_api import IQ_Option +I_want_money=IQ_Option("email","password") +Money=1 +ACTIVES="EURUSD" +ACTION="call"#or "put" +expirations_mode=1 +while True: + remaning_time=I_want_money.get_remaning(expirations_mode) + purchase_time=remaning_time-30 + if purchase_time<4:#buy the binary option at purchase_time<4 + I_want_money.buy(Money,ACTIVES,ACTION,expirations_mode) + break +``` + +#### sell_option + +```python +I_want_money.sell_option(sell_all)#input int or list +``` + +Sample + +```python +from iqoptionapi.stable_api import IQ_Option +import time +print("login...") +I_want_money=IQ_Option("email","password") + +Money=1 +ACTIVES="EURUSD" +ACTION="call"#or "put" +expirations_mode=1 + +id=I_want_money.buy(Money,ACTIVES,ACTION,expirations_mode) +id2=I_want_money.buy(Money,ACTIVES,ACTION,expirations_mode) + +time.sleep(5) +sell_all=[] +sell_all.append(id) +sell_all.append(id2) +print(I_want_money.sell_option(sell_all)) +``` +#### check win + +(only for option) + +It will do loop until get win or loose + +:exclamation: + +it have a little problem when network close and reconnect miss get "listInfoData" + +this function will doing Infinity loop + +```python +I_want_money.check_win(23243221) +#""you need to get id_number from buy function"" +#I_want_money.check_win(id_number) +#this function will do loop check your bet until if win/equal/loose +``` +##### check_win_v2 + +(only for option) + +more better way + +an other way to fix that(implement by get_betinfo) + +input by int + +```python +from iqoptionapi.stable_api import IQ_Option +I_want_money=IQ_Option("email","password") +check,id = I_want_money.buy(1, "EURUSD", "call", 1) +print("start check win please wait") +print(I_want_money.check_win_v2(id)) +``` + +--- +"get_binary_option_detail" and "get_all_profit" are base on "get_all_init()",if you want raw data you can call +```python +I_want_money.get_all_init() +``` + +--- + + + +![](image/expiration_time.png) + +#### get_binary_option_detail + +sample +```python +from iqoptionapi.stable_api import IQ_Option +print("login...") +I_want_money=IQ_Option("email","password") +d=I_want_money.get_binary_option_detail() +print(d["CADCHF"]["turbo"]) +print(d["CADCHF"]["binary"]) +``` + +#### get all profit +sample +```python +from iqoptionapi.stable_api import IQ_Option +print("login...") +I_want_money=IQ_Option("email","password") +d=I_want_money.get_all_profit() +print(d["CADCHF"]["turbo"]) +print(d["CADCHF"]["binary"]) +``` +--- +#### get_betinfo + +(only for option) + +it will get infomation about Bet by "id" + +:exclamation: + +if your bet(id) not have answer yet(game_state) or wrong id it will return False +input by int + +```python + +isSuccessful,dict=I_want_money.get_betinfo(4452272449) +#I_want_money.get_betinfo +#INPUT: int +#OUTPUT:isSuccessful,dict + +``` +#### get_optioninfo + +input how many data you want to get from Trading History(only for binary option) + +``` +print(I_want_money.get_optioninfo(10)) +``` +#### get_optioninfo_v2 + +input how many data you want to get from Trading History(only for binary option) + +``` +print(I_want_money.get_optioninfo_v2(10)) +``` +#### get_option_open_by_other_pc + +if your account is login in other plance/PC and doing buy option + +you can get the option by this function + +```python +import time +from iqoptionapi.stable_api import IQ_Option +I_want_money=IQ_Option("email","password") +while True: + #please open website iqoption and buy some binary option + if I_want_money.get_option_open_by_other_pc()!={}: + break + time.sleep(1) +print("Get option from other Pc and same account") +print(I_want_money.get_option_open_by_other_pc()) + +id=list(I_want_money.get_option_open_by_other_pc().keys())[0] +I_want_money.del_option_open_by_other_pc(id) +print("After del by id") +print(I_want_money.get_option_open_by_other_pc()) +``` + +___ +--- +### For Digital +[Digital options buy with actual price sample code](https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/65#issuecomment-511660908) + +#### Sample + +```python +from iqoptionapi.stable_api import IQ_Option +import time +import random +I_want_money=IQ_Option("email","password") + +ACTIVES="EURUSD" +duration=1#minute 1 or 5 +amount=1 +I_want_money.subscribe_strike_list(ACTIVES,duration) +#get strike_list +data=I_want_money.get_realtime_strike_list(ACTIVES, duration) +print("get strike data") +print(data) +"""data +{'1.127100': + { 'call': + { 'profit': None, + 'id': 'doEURUSD201811120649PT1MC11271' + }, + 'put': + { 'profit': 566.6666666666666, + 'id': 'doEURUSD201811120649PT1MP11271' + } + }............ +} +""" +#get price list +price_list=list(data.keys()) +#random choose Strategy +choose_price=price_list[random.randint(0,len(price_list)-1)] +#get instrument_id +instrument_id=data[choose_price]["call"]["id"] +#get profit +profit=data[choose_price]["call"]["profit"] +print("choose you want to buy") +print("price:",choose_price,"side:call","instrument_id:",instrument_id,"profit:",profit) +#put instrument_id to buy +buy_check,id=I_want_money.buy_digital(amount,instrument_id) +if buy_check: + print("wait for check win") + #check win + while True: + check_close,win_money=I_want_money.check_win_digital_v2(id) + if check_close: + if float(win_money)>0: + win_money=("%.2f" % (win_money)) + print("you win",win_money,"money") + else: + print("you loose") + break + I_want_money.unsubscribe_strike_list(ACTIVES,duration) +else: + print("fail to buy,please run again") +``` +#### Get all strike list data + +##### Data format + +```python + +{'1.127100': { 'call': {'profit': None, 'id': 'doEURUSD201811120649PT1MC11271'}, 'put': {'profit': 566.6666666666666, 'id': 'doEURUSD201811120649PT1MP11271'} }.......} +``` + +##### sample + +```python +from iqoptionapi.stable_api import IQ_Option +import time +I_want_money=IQ_Option("email","password") +ACTIVES="EURUSD" +duration=1#minute 1 or 5 +I_want_money.subscribe_strike_list(ACTIVES,duration) +while True: + data=I_want_money.get_realtime_strike_list(ACTIVES, duration) + for price in data: + print("price",price,data[price]) + time.sleep(5) +I_want_money.unsubscribe_strike_list(ACTIVES,duration) +``` + +#### buy_digital_spot + +buy the digit in current price + +```python +from iqoptionapi.stable_api import IQ_Option + +I_want_money=IQ_Option("email","password") + +ACTIVES="EURUSD" +duration=1#minute 1 or 5 +amount=1 +action="call"#put +print(I_want_money.buy_digital_spot(ACTIVES,amount,action,duration)) +``` + +#### get_digital_spot_profit_after_sale + +get Profit After Sale(P/L) +![](image/profit_after_sale.png) +```python +from iqoptionapi.stable_api import IQ_Option +I_want_money=IQ_Option("email","passord") +ACTIVES="EURUSD" +duration=1#minute 1 or 5 +amount=100 +action="put"#put + +I_want_money.subscribe_strike_list(ACTIVES,duration) +id=I_want_money.buy_digital_spot(ACTIVES,amount,action,duration) + +while True: + PL=I_want_money.get_digital_spot_profit_after_sale(id) + if PL!=None: + print(PL) + +``` + +#### get_digital_current_profit + +get current price profit + + +```python +from iqoptionapi.stable_api import IQ_Option +import time +import logging +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +I_want_money=IQ_Option("email","password") +ACTIVES="EURUSD" +duration=1#minute 1 or 5 +I_want_money.subscribe_strike_list(ACTIVES,duration) +while True: + data=I_want_money.get_digital_current_profit(ACTIVES, duration) + print(data)#from first print it may be get false,just wait a second you can get the profit + time.sleep(1) +I_want_money.unsubscribe_strike_list(ACTIVES,duration) +``` + +#### Buy digit +```python +buy_check,id=I_want_money.buy_digital(amount,instrument_id) +#get instrument_id from I_want_money.get_realtime_strike_list +``` +#### check win for digital + +##### check_win_digital + + +this api is implement by get_digital_position() + +```python +I_want_money.check_win_digital(id)#get the id from I_want_money.buy_digital +#return:check_close,win_money +#return sample +#if you loose:Ture,o +#if you win:True,1232.3 +#if trade not clode yet:False,None +``` +##### check_win_digital_v2 + +:exclamation::exclamation: this api is asynchronous get id data,it only can get id data before you call the buy action. if you restart the program,the asynchronous id data can not get again,so check_win_digital_v2 may not working,so you need to use "check_win_digital"! + +```python +I_want_money.check_win_digital_v2(id)#get the id from I_want_money.buy_digital +#return:check_close,win_money +#return sample +#if you loose:Ture,o +#if you win:True,1232.3 +#if trade not clode yet:False,None +``` + +sample code + +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import random +import time +import datetime +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +I_want_money=IQ_Option("email","password") + + +ACTIVES="EURUSD" +duration=1#minute 1 or 5 +amount=1 +action="call"#put +id=(I_want_money.buy_digital_spot(ACTIVES,amount,action,duration)) +print(id) +if id !="error": + while True: + check,win=I_want_money.check_win_digital_v2(id) + if check==True: + break + if win<0: + print("you loss "+str(win)+"$") + else: + print("you win "+str(win)+"$") +else: + print("please try again") +``` + + +#### close digital +```python +I_want_money.close_digital_option(id) +``` +#### get digital data + +##### sample1 + +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import time +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +I_want_money=IQ_Option("email","password") +ACTIVES="EURUSD-OTC" +duration=1#minute 1 or 5 +amount=1 +action="call"#put +from datetime import datetime + +id=I_want_money.buy_digital_spot(ACTIVES,amount,action,duration) + +while True: + check,_=I_want_money.check_win_digital(id) + if check: + break +print(I_want_money.get_digital_position(id)) +print(I_want_money.check_win_digital(id)) +``` +#####sample 2 + +```python +#print(I_want_money.get_order(id))#not work for digital +print(I_want_money.get_positions("digital-option")) +print(I_want_money.get_digital_position(2323433))#in put the id +print(I_want_money.get_position_history("digital-option")) +``` + + +--- +### For Forex&Stock&Commodities&Crypto&ETFs + +#### you need to check Asset is open or close! + +try this api [get_all_open_time](#checkopen) +![](image/asset_close.png) + + + +#### About instrument_type and instrument_id + +you can search instrument_type and instrument_id from this file + +[search instrument_type and instrument_id](instrument.txt) + + +#### Sample +```python +from iqoptionapi.stable_api import IQ_Option +I_want_money=IQ_Option("email","password") + +instrument_type="crypto" +instrument_id="BTCUSD" +side="buy"#input:"buy"/"sell" +amount=1.23#input how many Amount you want to play + +#"leverage"="Multiplier" +leverage=3#you can get more information in get_available_leverages() + +type="market"#input:"market"/"limit"/"stop" + +#for type="limit"/"stop" + +# only working by set type="limit" +limit_price=None#input:None/value(float/int) + +# only working by set type="stop" +stop_price=None#input:None/value(float/int) + +#"percent"=Profit Percentage +#"price"=Asset Price +#"diff"=Profit in Money + +stop_lose_kind="percent"#input:None/"price"/"diff"/"percent" +stop_lose_value=95#input:None/value(float/int) + +take_profit_kind=None#input:None/"price"/"diff"/"percent" +take_profit_value=None#input:None/value(float/int) + +#"use_trail_stop"="Trailing Stop" +use_trail_stop=True#True/False + +#"auto_margin_call"="Use Balance to Keep Position Open" +auto_margin_call=False#True/False +#if you want "take_profit_kind"& +# "take_profit_value"& +# "stop_lose_kind"& +# "stop_lose_value" all being "Not Set","auto_margin_call" need to set:True + +use_token_for_commission=False#True/False + +check,order_id=I_want_money.buy_order(instrument_type=instrument_type, instrument_id=instrument_id, + side=side, amount=amount,leverage=leverage, + type=type,limit_price=limit_price, stop_price=stop_price, + stop_lose_value=stop_lose_value, stop_lose_kind=stop_lose_kind, + take_profit_value=take_profit_value, take_profit_kind=take_profit_kind, + use_trail_stop=use_trail_stop, auto_margin_call=auto_margin_call, + use_token_for_commission=use_token_for_commission) +print(I_want_money.get_order(order_id)) +print(I_want_money.get_positions("crypto")) +print(I_want_money.get_position_history("crypto")) +print(I_want_money.get_available_leverages("crypto","BTCUSD")) +print(I_want_money.close_position(order_id)) +print(I_want_money.get_overnight_fee("crypto","BTCUSD")) +``` + + + + +#### Buy + +return (True/False,buy_order_id/False) + +if Buy sucess return (True,buy_order_id) + +"percent"=Profit Percentage + +"price"=Asset Price + +"diff"=Profit in Money + +|parameter||||| +--|--|--|--|--| +instrument_type|[instrument_type](#instrumenttypeid) +instrument_id| [instrument_id](#instrumenttypeid) +side|"buy"|"sell" +amount|value(float/int) +leverage|value(int) +type|"market"|"limit"|"stop" +limit_price|None|value(float/int):Only working by set type="limit" +stop_price|None|value(float/int):Only working by set type="stop" +stop_lose_kind|None|"price"|"diff"|"percent" +stop_lose_value|None|value(float/int) +take_profit_kind|None|"price"|"diff"|"percent" +take_profit_value|None|value(float/int) +use_trail_stop|True|False +auto_margin_call|True|False +use_token_for_commission|True|False + +```python +check,order_id=I_want_money.buy_order( + instrument_type=instrument_type, instrument_id=instrument_id, + side=side, amount=amount,leverage=leverage, + type=type,limit_price=limit_price, stop_price=stop_price, + stop_lose_kind=stop_lose_kind, + stop_lose_value=stop_lose_value, + take_profit_kind=take_profit_kind, + take_profit_value=take_profit_value, + use_trail_stop=use_trail_stop, auto_margin_call=auto_margin_call, + use_token_for_commission=use_token_for_commission) + +``` +#### change_order + +##### change PENDING +![](image/change_ID_Name_order_id.png) + +##### change Position +![](image/change_ID_Name_position_id.png) + +|parameter||||| +--|--|--|--|--| +ID_Name|"position_id"|"order_id" +order_id|"you need to get order_id from buy_order()" +stop_lose_kind|None|"price"|"diff"|"percent" +stop_lose_value|None|value(float/int) +take_profit_kind|None|"price"|"diff"|"percent" +take_profit_value|None|value(float/int) +use_trail_stop|True|False +auto_margin_call|True|False + + +##### sample +```python +ID_Name="order_id"#"position_id"/"order_id" +stop_lose_kind=None +stop_lose_value=None +take_profit_kind="percent" +take_profit_value=200 +use_trail_stop=False +auto_margin_call=True +I_want_money.change_order(ID_Name=ID_Name,order_id=order_id, + stop_lose_kind=stop_lose_kind,stop_lose_value=stop_lose_value, + take_profit_kind=take_profit_kind,take_profit_value=take_profit_value, + use_trail_stop=use_trail_stop,auto_margin_call=auto_margin_call) +``` + +--- + + +#### get_order + + +get infomation about buy_order_id + +return (True/False,get_order,None) + +```python +I_want_money.get_order(buy_order_id) +``` + +#### get_pending +you will get there data + +![](image/get_pending.png) + +```python +I_want_money.get_pending(instrument_type) +``` +#### get_positions + +you will get there data + +![](image/get_positions.png) + +return (True/False,get_positions,None) + + +:exclamation: not support ""turbo-option"" + +instrument_type="crypto","forex","fx-option","multi-option","cfd","digital-option" + +```python +I_want_money.get_positions(instrument_type) +``` + +#### get_position +you will get there data + +![](image/get_position.png) + +you will get one position by buy_order_id + +return (True/False,position data,None) + +```python +I_want_money.get_positions(buy_order_id) +``` + +#### get_position_history + +you will get there data + +![](image/get_position_history.png) + +return (True/False,position_history,None) + +```python +I_want_money.get_position_history(instrument_type) +``` +#### get_position_history_v2 + +instrument_type="crypto","forex","fx-option","turbo-option","multi-option","cfd","digital-option" + +get_position_history_v2(instrument_type,limit,offset,start,end) + +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import random +import time +import datetime +logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +I_want_money=IQ_Option("email","password") + +#instrument_type="crypto","forex","fx-option","turbo-option","multi-option","cfd","digital-option" +instrument_type="digital-option" +limit=2#How many you want to get +offset=0#offset from end time,if end time is 0,it mean get the data from now +start=0#start time Timestamp +end=0#Timestamp +data=I_want_money.get_position_history_v2(instrument_type,limit,offset,start,end) + +print(data) + +#--------- this will get data start from 2019/7/1(end) to 2019/1/1(start) and only get 2(limit) data and offset is 0 +instrument_type="digital-option" +limit=2#How many you want to get +offset=0#offset from end time,if end time is 0,it mean get the data from now +start=int(time.mktime(datetime.datetime.strptime("2019/1/1", "%Y/%m/%d").timetuple())) +end=int(time.mktime(datetime.datetime.strptime("2019/7/1", "%Y/%m/%d").timetuple())) +data=I_want_money.get_position_history_v2(instrument_type,limit,offset,start,end) +print(data) + +``` + +#### get_available_leverages + +get available leverages + +return (True/False,available_leverages,None) + +```python +I_want_money.get_available_leverages(instrument_type,actives) +``` +#### cancel_order + +you will do this + +![](image/cancel_order.png) + +return (True/False) + +```python +I_want_money.cancel_order(buy_order_id) +``` + +#### close_position + +you will do this + +![](image/close_position.png) + +return (True/False) + +```python +I_want_money.close_position(buy_order_id) +``` + +#### get_overnight_fee + +return (True/False,overnight_fee,None) + +```python +I_want_money.get_overnight_fee(instrument_type,active) +``` +--- +--- + +### Candle + +#### get candles +:exclamation: + + get_candles can not get "real time data" ,it will late about 30sec + +if you very care about real time you need use + +"get realtime candles" OR "collect realtime candles" + +sample + +""now"" time 1:30:45sec + +1. you want to get candles 1:30:45sec now + + you may get 1:30:15sec data have been late approximately 30sec + +2. you want to get candles 1:00:33sec + + you will get the right data + +```python +I_want_money.get_candles(ACTIVES,interval,count,endtime) + #ACTIVES:sample input "EURUSD" OR "EURGBP".... youcan + #interval:duration of candles + #count:how many candles you want to get from now to past + #endtime:get candles from past to "endtime" +``` +:exclamation: +try this code to get more than 1000 candle +```python +from iqoptionapi.stable_api import IQ_Option +import time +I_want_money=IQ_Option("email","password") +end_from_time=time.time() +ANS=[] +for i in range(70): + data=I_want_money.get_candles("EURUSD", 60, 1000, end_from_time) + ANS =data+ANS + end_from_time=int(data[0]["from"])-1 +print(ANS) +``` + +#### get realtime candles + +##### Sample +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import time +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +print("login...") +I_want_money=IQ_Option("email","password") +goal="EURUSD" +size="all"#size=[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,"all"] +maxdict=10 +print("start stream...") +I_want_money.start_candles_stream(goal,size,maxdict) +#DO something +print("Do something...") +time.sleep(10) + +print("print candles") +cc=I_want_money.get_realtime_candles(goal,size) +for k in cc: + print(goal,"size",k,cc[k]) +print("stop candle") +I_want_money.stop_candles_stream(goal,size) +``` + +##### start_candles_stream + +* input: + * goal:"EURUSD"... + * size:[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,"all"] + * maxdict:set max buffer you want to save + +size + +![](image/time_interval.png) + +##### get_realtime_candles +* input: + * goal:"EURUSD"... + * size:[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,"all"] +* output: + * dict +##### stop_candles_stream +* input: + * goal:"EURUSD"... + * size:[1,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,28800,43200,86400,604800,2592000,"all"] + +--- +### time + +#### get_server_timestamp +the get_server_timestamp time is sync with iqoption +```python +I_want_money.get_server_timestamp() +``` + +#### Purchase Time +this sample get the Purchase time clock +```python +import time + +#get the end of the timestamp by expiration time +def get_expiration_time(t): + exp=time.time()#or I_want_money.get_server_timestamp() to get more Precision + if (exp % 60) > 30: + end = exp - (exp % 60) + 60*(t+1) + else: + end = exp - (exp % 60)+60*(t) + return end + +expiration_time=2 + +end_time=0 +while True: + if end_time-time.time()-30<=0: + end_time = get_expiration_time(expiration_time) + print(end_time-time.time()-30) + time.sleep(1) +``` +--- +### Get top_assets_updated + +instrument_type="binary-option"/"digital-option"/"forex"/"cfd"/"crypto" + +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import time +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +I_want_money=IQ_Option("email","password") +instrument_type="digital-option"#"binary-option"/"digital-option"/"forex"/"cfd"/"crypto" +I_want_money.subscribe_top_assets_updated(instrument_type) + +print("__Please_wait_for_sec__") +while True: + if I_want_money.get_top_assets_updated(instrument_type)!=None: + print(I_want_money.get_top_assets_updated(instrument_type)) + print("\n\n") + time.sleep(1) +I_want_money.unsubscribe_top_assets_updated(instrument_type) +``` + +#### get popularity by top_assets_updated() api + +https://github.com/Lu-Yi-Hsun/iqoptionapi/issues/131 + +![](https://user-images.githubusercontent.com/7738916/66943816-c9ee1380-f000-11e9-996e-e06efba64101.png) + +```python +from iqoptionapi.stable_api import IQ_Option +import logging +import time +import operator + +#logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(message)s') +def opcode_to_name(opcode_data,opcode): + return list(opcode_data.keys())[list(opcode_data.values()).index(opcode)] + +I_want_money=IQ_Option("email","password") +I_want_money.update_ACTIVES_OPCODE() +opcode_data=I_want_money.get_all_ACTIVES_OPCODE() + +instrument_type="digital-option"#"binary-option"/"digital-option"/"forex"/"cfd"/"crypto" +I_want_money.subscribe_top_assets_updated(instrument_type) + + +print("__Please_wait_for_sec__") +while True: + if I_want_money.get_top_assets_updated(instrument_type)!=None: + break + +top_assets=I_want_money.get_top_assets_updated(instrument_type) +popularity={} +for asset in top_assets: + opcode=asset["active_id"] + popularity_value=asset["popularity"]["value"] + try: + name=opcode_to_name(opcode_data,opcode) + popularity[name]=popularity_value + except: + pass + + +sorted_popularity = sorted(popularity.items(), key=operator.itemgetter(1)) +print("__Popularity_min_to_max__") +for lis in sorted_popularity: + print(lis) + +I_want_money.unsubscribe_top_assets_updated(instrument_type) +``` + + +--- +### Get mood + +for now... only support get binary option mood , i will implement beterr if need.. + +Sample + +```python +from iqoptionapi.stable_api import IQ_Option +I_want_money=IQ_Option("email","password") +goal="EURUSD" +I_want_money.start_mood_stream(goal) +print(I_want_money.get_traders_mood(goal)) +I_want_money.stop_mood_stream(goal) +``` + +#### get_traders_mood + + +get percent of higher(call) + +if you want to know percent of lower(put) just 1-higher +```python +I_want_money.get_traders_mood(goal) +#input:input "EURUSD" OR "EURGBP".... you can view by get_all_ACTIVES_OPCODE +#output:(float) the higher(call)% +#if you want to know lower(put)% try 1-I_want_money.get_traders_mood(goal) +``` +#### get_all_traders_mood +get all you start mood +```python +I_want_money.get_all_traders_mood(goal) +#output:(dict) all mood you start +``` + +### Account + +#### get balance +```python +I_want_money.get_balance() +``` + + +#### reset practice balance + +reset practice balance to $10000 + +```python +from iqoptionapi.stable_api import IQ_Option +I_want_money=IQ_Option("email","password") +print(I_want_money.reset_practice_balance()) +``` + +#### Change real/practice Account +```python +I_want_money.change_balance(MODE) + #MODE: "PRACTICE"/"REAL" +``` + +--- + + + + diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 00000000..f384cfdc --- /dev/null +++ b/setup.cfg @@ -0,0 +1,19 @@ +[flake8] +ignore = E203, E266, E501, W503 +max-line-length = 88 +max-complexity = 18 +select = B,C,E,F,W,T4 + +[isort] +multi_line_output=3 +include_trailing_comma=True +force_grid_wrap=0 +use_parentheses=True +line_length=88 + +[mypy] +files=iqoptionapi +ignore_missing_imports=true + +[tool:pytest] +testpaths=tests/ diff --git a/setup.py b/setup.py index 14e2c710..5f8d556a 100644 --- a/setup.py +++ b/setup.py @@ -1,16 +1,16 @@ """The python wrapper for IQ Option API package setup.""" from setuptools import (setup, find_packages) +from iqoptionapi.version_control import api_version setup( name="iqoptionapi", - version="5.2.2", + version=api_version, packages=find_packages(), - install_requires=["pylint","requests","websocket-client==0.56"], - include_package_data = True, + install_requires=["pylint", "requests", "websocket-client==0.56"], + include_package_data=True, description="Best IQ Option API for python", long_description="Best IQ Option API for python", - url="https://github.com/evecimar/iqoptionapi", - author="Evecimar", - author_email="silva.evecimar@gmail.com", + url="https://github.com/iqoptionapi/iqoptionapi", + author="Rafael Faria", zip_safe=False )